#journal ul.top-menu,
#journal .journal-doctor-tabs {
    list-style: none;
    margin: 0 0 10px 0;
    padding: 0;
    overflow: hidden;
}
#journal ul.top-menu li,
#journal .journal-doctor-tabs li {
    display: inline-block;
    float: left;
    text-align: center;
    background-color: #ebe5cd;
    border: solid 1px #d4ceb8;
    margin-right: 2px;
}
#journal ul.top-menu li.active,
#journal .journal-doctor-tabs li.active {
    background-color: #602a00;
    border-color: #602a00;
}
#journal ul.top-menu li a,
#journal .journal-doctor-tabs li a {
    display: block;
    padding: 4px 15px;
    text-decoration: none;
    font-weight: normal;
    color: #005bb0;
}
#journal ul.top-menu li.active a,
#journal .journal-doctor-tabs li.active a {
    color: #fff;
}

#journal .journal-current-date {
    margin: 8px 0 4px 0;
    font-weight: bold;
    font-size: 14px;
    color: #602a00;
}

/* Dispatcher body: vertical day timeline + action column, R6 RegList layout */
#journal .dispatcher-body {
    overflow: hidden;
    margin-top: 6px;
}
#journal .journal-timeline {
    float: left;
    width: 230px;
    border: 1px solid #808080;
    background: #ece9d8;
    max-height: 520px;
    overflow-y: auto;
}
#journal .timeline-slot {
    height: 19px;
    line-height: 19px;
    border-bottom: 1px solid #000;
    cursor: pointer;
    white-space: nowrap;
    overflow: hidden;
}
#journal .timeline-slot .ts-time {
    display: inline-block;
    width: 42px;
    padding-left: 6px;
    font-weight: bold;
    color: #000;
}
#journal .timeline-slot .ts-mark {
    display: inline-block;
    width: 14px;
    font-weight: bold;
    color: #800000;
}
#journal .timeline-slot .ts-name {
    font-weight: bold;
    color: #000;
}
#journal .timeline-slot.selected .ts-name { color: #060; }
#journal .timeline-slot.selected {
    outline: 2px solid navy;
    outline-offset: -2px;
}
/* Selected slot is filled with a darker shade of its own colour, not just framed (feedback). */
#journal .slot-available.selected { background: #3ad13a; }
#journal .slot-primary.selected   { background: #5566e6; }
#journal .slot-secondary.selected { background: #5cc9c9; }
#journal .slot-reserved.selected  { background: #d4d4d4; }
#journal .timeline-empty {
    padding: 12px;
    color: #555;
}

/* R6 slot palette (Shedule2 TColor values) */
#journal .slot-available { background: #75ff75; }
#journal .slot-primary   { background: #7b8fff; }
#journal .slot-secondary { background: #009f9f; }
#journal .slot-reserved  { background: #ffffff; }
#journal .slot-lunch     { background: #c0c0c0; color: #777; cursor: default; }

#journal .journal-actions {
    float: left;
    width: 120px;
    margin-left: 12px;
}
#journal .journal-actions a {
    display: block;
    position: relative;
    width: 110px;
    margin: 0 0 6px 0;
}
/* R6 dispatcher glyphs (extracted from the Delphi RegList.dfm), pinned to the left edge like the
   Delphi TBitBtn default (blGlyphLeft). The caption gets a fixed left padding so every label lines
   up in one column — the icon slot is reserved even for the icon-less «На приём». */
#journal .journal-actions a .act-ico {
    position: absolute;
    left: 8px;
    top: 50%;
    transform: translateY(-50%);
    width: 16px;
    height: 16px;
    image-rendering: pixelated;
}
#journal .journal-actions a span {
    display: block;
    text-align: left;
    padding: 5px 6px 7px 30px;
}

/* Third column: multi-month calendar (R6 RecCalendar) */
#journal .journal-calendar {
    float: left;
    margin-left: 16px;
}

#journal .journal-buffer {
    margin: 0 0 12px 0;
    background: #faf3d4;
    padding: 8px;
    border: 1px solid #e3d6a3;
    border-radius: 4px;
}
#journal .journal-buffer h4 {
    margin: 0 0 6px 0;
    color: #7a4a1e;
}
#journal .journal-buffer-grid {
    width: 100%;
    border-collapse: collapse;
    color: #5a4a2a;
}
#journal .journal-buffer-grid th {
    text-align: left;
    padding: 4px 8px;
    border-bottom: 1px solid #e3d6a3;
    font-weight: bold;
}
#journal .journal-buffer-grid tbody tr {
    cursor: pointer;
    border-bottom: 1px solid #ece0b5;
}
#journal .journal-buffer-grid td {
    padding: 4px 8px;
}
#journal .journal-buffer-grid tbody tr.selected {
    background: #e3cd80;
    font-weight: bold;
    box-shadow: inset 2px 0 0 #7a4a1e;
}
#journal .journal-buffer-grid tbody {
    min-height: 60px;
}
#journal .journal-buffer-grid tbody tr.buffer-empty {
    cursor: default;
}
#journal .journal-buffer-grid tbody tr.buffer-empty td {
    color: #a59565;
    padding: 14px 8px;
    text-align: center;
}

/* Spacing between heading and tabs; compact top tabs */
#journal .journal-view > h3 {
    margin: 0 0 8px 0;
}
#journal ul.top-menu {
    margin-top: 22px;
}
#journal ul.top-menu li a {
    padding: 2px 12px;
    font-size: 12px;
}

/* Disabled action buttons (R6 conditional enablement) */
#journal .journal-actions a.button-disabled,
#journal .schedules-subtab a.button-disabled {
    opacity: 0.4;
    cursor: default;
    pointer-events: none;
}

/* Keep hover (for the explanatory tooltip) on the disabled search button. */
#journal .journal-actions a.act-search.button-disabled {
    pointer-events: auto;
    cursor: not-allowed;
}

/* Timeline box height is matched to the action column in JS (border-box for exact fit) */
#journal .journal-timeline {
    box-sizing: border-box;
    min-height: 140px;
}

#journal .journal-card {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: #f5eedc;
    border: 1px solid #9e785a;
    box-shadow: 5px 5px 5px -2px #6f6b64;
    padding: 16px;
    z-index: 1000;
    min-width: 280px;
}
#journal .journal-card .card-contacts {
    margin: 10px 0;
}
#journal .journal-card .card-actions a {
    display: block;
    margin: 4px 0;
}

#journal .journal-picker {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: #f5eedc;
    border: 1px solid #9e785a;
    box-shadow: 5px 5px 5px -2px #6f6b64;
    padding: 16px;
    z-index: 1000;
    width: 360px;
}
#journal .journal-picker .picker-search {
    width: 100%;
    margin: 8px 0;
    box-sizing: border-box;
}
#journal .journal-picker .picker-results {
    width: 100%;
    border-collapse: collapse;
    max-height: 280px;
    display: block;
    overflow-y: auto;
}
#journal .journal-picker .picker-results tr {
    cursor: pointer;
    border-bottom: 1px solid #eee;
}
#journal .journal-picker .picker-results tr:hover {
    background: #FFF3B0;
}
#journal .journal-picker .picker-results td {
    padding: 4px 8px;
}
#journal .journal-picker .picker-buttons {
    margin-top: 10px;
    text-align: right;
}

/* Two-grid search dialog (R6 PatientSearchWindow) */
#journal .journal-search-dialog {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: #f5eedc;
    border: 1px solid #9e785a;
    box-shadow: 5px 5px 5px -2px #6f6b64;
    padding: 16px;
    z-index: 1000;
    width: 680px;
}
#journal .journal-search-dialog h4 {
    margin: 0 0 10px 0;
    color: #602a00;
}
#journal .journal-search-dialog .search-row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
}
#journal .journal-search-dialog .search-input {
    flex: 1;
    box-sizing: border-box;
    text-transform: uppercase;
    padding: 7px 8px;
    border: 1px solid #555;
}
#journal .journal-search-dialog .search-grids {
    display: flex;
    gap: 10px;
}
#journal .journal-search-dialog .search-grid-box {
    flex: 1;
    border: 1px solid #c9b48f;
    background: #fbf7ea;
    padding: 6px;
    border-radius: 3px;
}
#journal .journal-search-dialog .search-grid-title {
    font-weight: bold;
    margin-bottom: 4px;
    color: #602a00;
}
#journal .journal-search-dialog .search-grid-scroll {
    height: 240px;
    overflow-y: auto;
    background: #fff;
    border: 1px solid #cbb88f;
}
#journal .journal-search-dialog .search-grid {
    width: 100%;
    border-collapse: collapse;
}
#journal .journal-search-dialog .search-grid th {
    text-align: left;
    padding: 3px 6px;
    border-bottom: 1px solid #c9b48f;
    background: #ece3c8;
    color: #602a00;
    position: sticky;
    top: 0;
}
#journal .journal-search-dialog .search-grid th.sortable {
    cursor: pointer;
    user-select: none;
    white-space: nowrap;
}
#journal .journal-search-dialog .search-grid th.sortable:hover { background: #e2d6b3; }
#journal .journal-search-dialog .search-grid th .sort-ind { color: #806000; font-size: 10px; }
#journal .journal-search-dialog .search-grid td {
    padding: 3px 6px;
    border-bottom: 1px solid #eee;
}
#journal .journal-search-dialog .search-grid tbody tr {
    cursor: pointer;
}
#journal .journal-search-dialog .search-grid tbody tr:hover {
    background: #f7efce;
}
#journal .journal-search-dialog .search-grid tbody tr.selected {
    background: #ecdca0;
}
#journal .journal-search-dialog .search-grid-buttons {
    margin-top: 6px;
    display: flex;
    gap: 8px;
}
#journal .journal-search-dialog .search-footer {
    margin-top: 10px;
    text-align: right;
}

/* "На приём" visit-type picker + "Новый" registration dialogs */
#journal .journal-visit-dialog,
#journal .journal-newpatient-dialog {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: #f5eedc;
    border: 1px solid #9e785a;
    box-shadow: 5px 5px 5px -2px #6f6b64;
    padding: 16px;
    z-index: 1000;
    min-width: 320px;
}
#journal .journal-visit-dialog h4,
#journal .journal-newpatient-dialog h3 {
    margin: 0 0 10px 0;
    color: #602a00;
}
#journal .journal-visit-dialog h5 {
    margin: 12px 0 4px 0;
    color: #602a00;
}
#journal .journal-visit-dialog ul {
    list-style: none;
    margin: 0;
    padding: 0 0 0 8px;
}
#journal .journal-visit-dialog li {
    margin: 4px 0;
}
#journal .journal-visit-dialog .visit-type-link,
#journal .journal-visit-dialog .visit-continue-link {
    cursor: pointer;
}
#journal .journal-visit-dialog .visit-buttons,
#journal .journal-newpatient-dialog .journal-newpatient-buttons {
    margin-top: 12px;
    text-align: right;
}
#journal .journal-newpatient-dialog {
    width: 420px;
}
#journal .journal-newpatient-dialog h3 {
    margin: 0 0 6px 0;
    color: #602a00;
}
#journal .journal-newpatient-dialog .editor-label {
    margin-bottom: 4px;
}
#journal .journal-newpatient-dialog .textbox {
    width: 100%;
    box-sizing: border-box;
    margin: 0 0 10px 0;
}

/* Step-fill dialog */
#journal .journal-step-dialog {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: #f5eedc;
    border: 1px solid #9e785a;
    box-shadow: 5px 5px 5px -2px #6f6b64;
    padding: 16px;
    z-index: 1000;
    width: 300px;
}
#journal .journal-step-dialog h4 {
    margin: 0 0 10px 0;
}
#journal .journal-step-dialog .step-field {
    margin: 8px 0;
}
#journal .journal-step-dialog .step-minutes {
    width: 90px;
    margin-left: 6px;
}
#journal .journal-step-dialog .step-error {
    color: #b00000;
    margin: 6px 0;
    font-size: 12px;
}
#journal .journal-step-dialog .step-buttons {
    margin-top: 12px;
    text-align: right;
}

/* Multi-month calendar widget */
#journal .cal-toolbar {
    margin-bottom: 6px;
}
#journal .cal-months {
    overflow: hidden;
}
#journal .cal-month {
    float: left;
    margin: 0 12px 12px 0;
}
#journal .cal-month-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-weight: bold;
    color: #602a00;
    margin-bottom: 2px;
}
#journal .cal-month-head .cal-arrow-spacer {
    display: inline-block;
    width: 16px;
}
#journal .cal-prev, #journal .cal-next {
    text-decoration: none;
    color: #005bb0;
    padding: 0 4px;
}
#journal .cal-grid {
    border-collapse: collapse;
}
#journal .cal-grid th {
    width: 26px;
    font-size: 11px;
    font-weight: normal;
    color: #777;
    text-align: center;
    padding: 2px 0;
}
#journal .cal-grid td {
    width: 26px;
    height: 22px;
    text-align: center;
    border: 1px solid #ddd;
    cursor: pointer;
    font-size: 12px;
}
#journal .cal-grid td.cal-pad {
    border: none;
    cursor: default;
}
#journal .cal-day.cal-free    { background: #75ff75; }
#journal .cal-day.cal-booked  { background: #FFFF80; }
#journal .cal-day.cal-full    { background: #ff9b9b; }
#journal .cal-day.cal-today   { font-weight: bold; color: #005bb0; }
#journal .cal-day.cal-current { outline: 2px solid navy; outline-offset: -2px; }
#journal .cal-day.cal-selected {
    outline: 2px solid #602a00;
    outline-offset: -2px;
    font-weight: bold;
}

/* Schedules tab: sub-tabs + column layouts */
#journal .schedules-doctor-select {
    margin: 0 0 10px 0;
}
#journal .schedules-subtabs {
    list-style: none;
    margin: 0 0 12px 0;
    padding: 0;
    overflow: hidden;
}
#journal .schedules-subtabs li {
    float: left;
    background-color: #ebe5cd;
    border: solid 1px #d4ceb8;
    margin-right: 2px;
}
#journal .schedules-subtabs li.active {
    background-color: #602a00;
    border-color: #602a00;
}
#journal .schedules-subtabs li a {
    display: block;
    padding: 4px 15px;
    text-decoration: none;
    color: #005bb0;
}
#journal .schedules-subtabs li.active a {
    color: #fff;
}

#journal #schedulesCreate { overflow: hidden; }
#journal .sc-list {
    float: left;
    width: 200px;
}
#journal .sc-buttons {
    float: left;
    width: 160px;
    margin-left: 12px;
}
#journal .sc-buttons a {
    display: block;
    width: 150px;
    margin: 0 0 6px 0;
    text-align: center;
    white-space: nowrap;
}
#journal .sc-editor {
    float: left;
    margin-left: 16px;
}
#journal .template-list {
    list-style: none;
    margin: 0;
    padding: 0;
    border: 1px solid #d4ceb8;
}
#journal .template-item {
    padding: 4px 8px;
    border-bottom: 1px solid #eee;
    cursor: pointer;
}
#journal .template-item.selected {
    background: #fff4b0;
}
#journal .template-item .template-time {
    color: #777;
    margin-left: 6px;
    font-size: 11px;
}
#journal .editor-field {
    margin: 4px 0;
}
#journal .editor-slot-tools {
    margin: 8px 0;
}
#journal .editor-slots {
    border-collapse: collapse;
    margin: 8px 0;
}
#journal .editor-slots td {
    padding: 2px 6px;
    border: 1px solid #ccc;
}
#journal .editor-slots .slot-time {
    width: 56px;
}

/* Apply sub-tab */
#journal #schedulesApply { overflow: hidden; }
#journal .sa-side {
    float: left;
    width: 260px;
}
#journal .sa-side .assign-template-select {
    width: 100%;
    height: 160px;
    overflow-y: auto;
    margin-bottom: 8px;
    font-size: 14px;
    padding: 4px;
}
#journal .sa-side .assign-template-select option {
    padding: 4px 6px;
}
#journal .sa-side .sa-buttons a {
    display: block;
    margin: 0 0 6px 0;
    text-align: center;
}
#journal .sa-main {
    float: left;
    margin-left: 16px;
}
#journal .assign-weekday-range {
    margin-bottom: 12px;
    padding: 8px;
    background: #f3eeda;
    border: 1px solid #ddd0a3;
    border-radius: 4px;
}
#journal .assign-weekday-range .wr-row {
    margin-bottom: 6px;
}
#journal .assign-weekday-range .wr-row label {
    margin: 0 4px;
}
#journal .assign-weekday-range .wr-days label {
    display: inline-block;
    margin-right: 10px;
    white-space: nowrap;
}
#journal .assign-weekday-range .wr-buttons {
    margin-top: 8px;
}
#journal .assign-weekday-range .wr-buttons a {
    margin-right: 8px;
}

@media (max-width: 900px) {
    #journal .journal-timeline,
    #journal .journal-actions,
    #journal .journal-calendar { float: none; width: auto; margin-left: 0; margin-bottom: 12px; }
    #journal .journal-actions a { width: auto; }
    #journal .journal-card { min-width: 90%; }
    #journal .sc-list,
    #journal .sc-buttons,
    #journal .sc-editor,
    #journal .sa-side,
    #journal .sa-main,
    #journal .sa-calendar { float: none; width: auto; margin-left: 0; margin-bottom: 12px; }
}
