/* VSO feature styling — burgundy, warm gold, and archival paper. */
.calendar-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:24px}
.calendar-metrics .card{padding:20px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.calendar-metrics strong{font:600 30px Georgia,serif;color:var(--ink)}
.calendar-metrics .muted{font-size:13px;max-width:165px}
.legal-calendar-layout{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(290px,1fr);gap:24px;align-items:start}
.legal-calendar{overflow:hidden;padding:0}
.calendar-toolbar{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:24px}
.calendar-toolbar h2{margin:4px 0 0}
.calendar-toolbar .eyebrow{margin:0}
.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.calendar-weekdays{background:#f6f6f1;border-top:1px solid #e9e9df;border-bottom:1px solid #e9e9df}
.calendar-weekdays span{text-align:center;font-size:12px;font-weight:600;color:var(--muted);padding:13px 0;letter-spacing:.04em}
.calendar-day{background:var(--paper);border:0;border-right:1px solid #eeeee7;border-bottom:1px solid #eeeee7;min-height:110px;padding:10px 7px 7px;text-align:left;cursor:pointer;position:relative;font:inherit;display:flex;flex-direction:column;gap:8px;color:var(--ink)}
.calendar-day:nth-child(7n){border-right:0}
.calendar-day:hover{background:var(--bg)}
.calendar-day.outside{background:var(--bg);cursor:default}
.calendar-day.selected{background:var(--bg);box-shadow:inset 0 0 0 2px var(--ink);z-index:1}
.calendar-day-number{display:flex;align-items:center;justify-content:center;width:25px;height:25px;font-size:13px;border-radius:50%}
.calendar-day.today .calendar-day-number{background:var(--burgundy);color:#fff;font-weight:700}
.calendar-cell-events{display:flex;flex-direction:column;gap:4px;width:100%;min-width:0}
.calendar-event-chip{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-left:2px solid var(--gold);background:var(--bg);color:var(--ink);padding:4px 5px;font-size:11px;line-height:1.25;border-radius:3px}
.calendar-event-chip.deadline{border-color:#bb9550;background:#fcf4df;color:#876522}
.calendar-event-chip.inactive{opacity:.5;text-decoration:line-through}
.calendar-more{font-size:11px;color:var(--burgundy);padding:1px 5px}
.calendar-legend{padding:18px 24px;display:flex;align-items:center;flex-wrap:wrap;gap:18px;font-size:11px;color:var(--burgundy)}
.calendar-legend span{display:flex;align-items:center;gap:7px}
.calendar-legend span:last-child{margin-left:auto}
.calendar-legend i{height:7px;width:7px;border-radius:50%;background:var(--burgundy)}
.calendar-legend .deadline-dot{background:#bb9550}
.calendar-mobile-count{display:none}
.calendar-agenda{padding:0;overflow:hidden}
.calendar-agenda>.card-head{padding:24px;border-bottom:1px solid #eeeee7}
.calendar-agenda>.card-head h2{font-size:18px;line-height:1.45}
.agenda-entry{padding:22px 24px;border-bottom:1px solid #eeeee7;position:relative}
.agenda-entry:last-child{border-bottom:0}
.agenda-entry:before{content:'';position:absolute;left:0;top:26px;width:3px;height:25px;background:var(--burgundy)}
.agenda-entry.deadline:before{background:#bb9550}
.agenda-time{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--burgundy);font-size:12px;margin-bottom:9px}
.agenda-title{padding:0;border:0;background:none;color:var(--ink);font:600 14px/1.5 inherit;text-align:left;cursor:pointer}
.agenda-title:hover{text-decoration:underline}
.agenda-entry p{font-size:13px;line-height:1.6;margin:5px 0}
.agenda-person{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--burgundy);margin-top:10px}
.agenda-entry .compact{margin-top:12px;font-size:12px}
.calendar-warning{background:#fff5dc;color:#775711;border:1px solid #ecd7a5;border-radius:7px;padding:12px 14px;font-size:13px;line-height:1.6;margin:12px 0}
.calendar-warning[hidden]{display:none}
.calendar-verifications{margin-top:24px}
.deadline-review-row{display:flex;align-items:center;justify-content:space-between;padding:16px 0;gap:18px;border-top:1px solid #eeeee7}
.deadline-review-row p{margin:6px 0 0;font-size:13px}
.deadline-review-row strong{font-size:14px}
.hearing-detail-top h2{font-family:Georgia,serif;font-size:27px;line-height:1.35;margin:12px 0}
.hearing-detail-top>.pill{float:right}
.hearing-date{color:var(--ink);font-size:14px}
.hearing-notes,.hearing-outcome,.hearing-directions{margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}
.hearing-notes p,.hearing-outcome p{font-size:14px;white-space:pre-wrap;line-height:1.75}
.hearing-direction{width:100%;display:flex;align-items:center;justify-content:space-between;text-align:left;padding:14px;background:var(--bg);border:1px solid var(--line);border-radius:6px;margin:8px 0;cursor:pointer;font:inherit;font-size:14px;color:var(--ink)}
.hearing-direction small{display:block;margin-top:5px;color:var(--burgundy)}
.hearing-history{margin-top:24px;font-size:13px;color:var(--burgundy)}
.hearing-history summary{cursor:pointer}
.hearing-history article{padding:12px 0;border-bottom:1px solid var(--line)}
.hearing-actions{padding-top:24px;margin-top:20px;border-top:1px solid var(--line);flex-wrap:wrap}
.direction-form{padding:18px;margin:18px 0;border:1px solid var(--line);border-radius:8px;background:var(--bg)}
.direction-form legend,.next-hearing-fields legend{font-size:13px;font-weight:600;color:var(--ink);padding:0 8px}
.next-hearing-fields{border:1px solid var(--line);border-radius:8px;margin-top:24px;padding:18px}
.modal-intro{line-height:1.7;font-size:14px}
.calendar-agenda .empty-state{padding:50px 24px}
.calendar-agenda .empty-state h3{font-family:Georgia,serif;font-weight:400;font-size:22px}
.calendar-agenda .empty-state p{font-size:13px;line-height:1.7}
.calendar-agenda .empty-state .button{margin-top:10px}
@media(min-width:1450px){.calendar-day{min-height:125px}}
@media(max-width:1100px){.legal-calendar-layout{grid-template-columns:minmax(0,1fr)}
.calendar-agenda{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.calendar-agenda>.card-head{grid-column:1/-1}
.calendar-agenda .empty-state{grid-column:1/-1}
.agenda-entry{border-right:1px solid #eeeee7}
.calendar-day{min-height:104px}}
@media(max-width:650px){.calendar-metrics{gap:8px}
.calendar-metrics .card{padding:14px 12px;display:block}
.calendar-metrics .muted{display:block;font-size:11px;min-height:30px}
.calendar-metrics strong{display:block;margin-top:8px;font-size:25px}
.calendar-toolbar{padding:18px 14px;gap:10px}
.calendar-toolbar h2{font-size:20px}
.calendar-toolbar .eyebrow{font-size:10px}
.calendar-toolbar .button{font-size:12px;padding:8px}
.calendar-toolbar .icon-button{width:28px;height:32px}
.calendar-toolbar .row-actions{gap:4px}
.calendar-weekdays span{font-size:11px}
.calendar-day{min-height:69px;padding:7px 4px}
.calendar-cell-events{display:none}
.calendar-mobile-count{display:block;font-size:10px;color:var(--ink);margin-left:7px}
.calendar-day-number{font-size:12px;width:22px;height:22px}
.calendar-legend{padding:14px;gap:12px;font-size:10px}
.calendar-agenda{display:block}
.calendar-agenda>.card-head,.agenda-entry{padding:20px}
.deadline-review-row{align-items:flex-start}
.deadline-review-row .button{font-size:11px;white-space:nowrap}
.direction-form{padding:12px}
.calendar-legend span:last-child{margin-left:0}}
.modal-body label.field{font-size:12px;font-weight:600;color:var(--burgundy)}
.modal-body label.field input,.modal-body label.field select,.modal-body label.field textarea{font-weight:400}
.agenda-title{font-family:inherit;font-size:14px;font-weight:600;line-height:1.5}
.calendar-verifications{padding:0 24px 10px}
.calendar-verifications>.card-head{padding-left:0;padding-right:0}
.calendar-agenda .pill.neutral{color:var(--burgundy);background:var(--bg)}
.calendar-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
.calendar-reminder-summary{width:100%;text-align:left;color:inherit;font:inherit;border:1px solid var(--line);cursor:pointer;justify-content:space-between!important}
.calendar-reminder-summary:hover{border-color:#8985ad;background:#faf9ff}
.calendar-reminder-summary>span{min-width:0}
.calendar-reminder-summary .muted{display:block}
.calendar-reminder-summary small{display:block;color:#76738a;font-size:10px;margin-top:7px}
.calendar-reminder-summary strong{color:#777092}
.calendar-task-toggle-row{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:0 24px 18px;font-size:11px;color:var(--burgundy)}
.calendar-task-toggle-row label{display:flex;align-items:center;gap:7px;color:#6a665f;cursor:pointer}
.calendar-task-toggle-row input{width:14px;height:14px;accent-color:#777092}
.calendar-event-chip.task{border-color:#8a83ad;background:#f1eef8;color:#756a94}
.calendar-legend .task-dot{background:#8a83ad}
.agenda-entry.task:before{background:#8a83ad}
.agenda-entry.task .agenda-title{color:#665c80}
.agenda-entry.task.completed{opacity:.58}
.agenda-event-kind{display:block;font-size:10px;color:#786f8f;margin:0 0 5px;letter-spacing:.03em}
.agenda-entry .task-calendar-step{font-size:11px;color:#756d81;margin-top:9px;line-height:1.7}
.agenda-entry .task-calendar-reminder{display:flex;align-items:flex-start;gap:7px;font-size:11px;color:#7b708d;background:#f6f3fa;border:1px solid #ece6f2;border-radius:5px;padding:10px;margin-top:12px}
.task-calendar-reminder svg{margin-top:2px;flex-shrink:0}
.task-calendar-reminder strong{display:block;font-weight:500;line-height:1.6;color:#75678d;font-size:11px}
.agenda-entry .task-calendar-reminder.cleared{background:#f3f6ef;color:#6c7763;border-color:#e7eddc}
.calendar-reminder-list article{padding:17px 0;border-bottom:1px solid #e8e5ed}
.calendar-reminder-list article .eyebrow{color:#776d8e;font-size:11px;letter-spacing:.04em}
.calendar-reminder-list article p{font-size:13px;margin:7px 0}
.calendar-reminder-list article small{font-size:11px;color:#7a6d89}
.calendar-reminder-delivery{padding:15px;background:#f6f4f9;border:1px solid #ece7f1;border-radius:7px;color:#796f88;font-size:12px;line-height:1.8;margin:22px 0 0}
@media(max-width:1250px){.calendar-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
.calendar-metrics .muted{max-width:none}}
@media(max-width:650px){.calendar-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
.calendar-metrics .card{display:flex;align-items:center;min-height:85px}
.calendar-metrics .muted{min-height:0;font-size:11px}
.calendar-metrics strong{margin-top:0}
.calendar-reminder-summary small{font-size:10px}
.calendar-task-toggle-row{padding:0 15px 15px;align-items:flex-start;gap:10px}
.calendar-task-toggle-row>span{max-width:100px;text-align:right;font-size:10px;line-height:1.7}
.calendar-legend{gap:10px}
.calendar-reminder-list article{padding:14px 0}}
.calendar-source-receipt{white-space:normal;text-align:left;line-height:1.65}
.calendar-receipt-source-note{font-size:13px;line-height:1.75;padding:12px 14px;background:var(--bg);border:1px solid var(--line);border-radius:6px}
.calendar-event-chip.availability{border-color:#b57865;background:repeating-linear-gradient(135deg,#fbf1eb,#fbf1eb 6px,#f7e9e0 6px,#f7e9e0 8px);color:#8b5c48}
.calendar-legend .availability-dot{background:#b57865}
.agenda-entry.availability{background:#fcf8f5}
.agenda-entry.availability:before{background:#b57865}
.agenda-entry.availability .agenda-event-kind{color:#926b58}
.agenda-entry.availability .agenda-title{display:block;color:#795640;cursor:default}
.agenda-entry .calendar-availability-note{font-size:11px;color:#846d5b;margin-top:10px}
.calendar-coverage{display:flex;align-items:flex-start;flex-wrap:wrap;gap:5px 10px;margin-top:12px;padding:10px 12px;border:1px solid var(--line);border-radius:7px;background:var(--bg)}
.calendar-coverage .agenda-event-kind{width:100%;margin:0;color:var(--burgundy)}
.calendar-coverage .button{margin-top:0;font-size:12px;white-space:normal;text-align:left}
.calendar-availability-toggle-row{padding-top:0}
.calendar-availability-toggle-row input{accent-color:#b57865}
.hearing-actions+.calendar-coverage{margin-top:16px}

/* Handover acceptance is an office target, with its own visual treatment. */
.calendar-page-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center}
.calendar-handover-toggle-row{align-items:flex-start}
.calendar-handover-toggle-row>span{max-width:230px;text-align:right;line-height:1.65}
.calendar-event-chip.handover_acceptance{border-color:#907c37;background:#f4efd9;color:#6f612e}
.calendar-legend .handover-dot{background:#907c37;border-radius:1px;transform:rotate(45deg)}
.agenda-entry.handover_acceptance{background:#fffdf5}
.agenda-entry.handover_acceptance:before{background:#907c37}
.agenda-entry.handover_acceptance.overdue:before{background:var(--burgundy)}
.agenda-entry.handover_acceptance .agenda-event-kind{color:#8b763d}
.agenda-entry.handover_acceptance .calendar-handover-progress{font-size:12px;font-weight:600;color:#6e5d34}
.agenda-entry.handover_acceptance .calendar-handover-note{font-size:11px;line-height:1.8;color:var(--muted);border-top:1px solid var(--line);padding-top:10px;margin-top:12px}
.agenda-entry.handover_acceptance .calendar-handover-reminders{font-size:11px;line-height:1.8;color:#7a6741}
@media(max-width:650px){.calendar-page-actions{justify-content:flex-start;gap:8px}.calendar-page-actions .button{font-size:11px;padding:9px 11px}.calendar-handover-toggle-row>span{max-width:110px}}

/* The hearing diary */
.calendar-metrics{gap:18px}.calendar-metrics .card{border-radius:6px;border-top:2px solid #d3b477;padding:24px;background:var(--paper);box-shadow:none}.calendar-metrics strong{font:400 37px Georgia,serif;color:var(--burgundy)}.calendar-metrics .muted{font-size:12px;line-height:1.7;color:var(--muted)}.calendar-reminder-summary{border-color:var(--line)}.calendar-reminder-summary:hover{background:#faf2eb;border-color:#c7a675}.calendar-reminder-summary strong{color:var(--burgundy)}.calendar-reminder-summary small{color:#91703b;font-size:10px}
.legal-calendar-layout{gap:26px;grid-template-columns:minmax(0,1.85fr) minmax(300px,1fr)}.legal-calendar{border-radius:7px;border-color:var(--line);box-shadow:none}.calendar-toolbar{padding:28px 26px 23px;border-top:3px solid var(--burgundy)}.calendar-toolbar h2{font-family:Georgia,serif;font-size:29px;font-weight:400;letter-spacing:-.5px;color:var(--burgundy)}.calendar-toolbar .eyebrow{color:#8d6b3b;letter-spacing:.14em;font-size:10px}.calendar-weekdays{background:#efe5d7;border-color:#d9c9b0}.calendar-weekdays span{font-size:10px;letter-spacing:.1em;color:#8a6f4b;text-transform:uppercase;padding:14px 0}.calendar-days{background:var(--paper)}.calendar-day{background:var(--paper);border-color:#e9dfd1;padding:12px 9px 9px;min-height:121px;gap:10px;color:var(--ink)}.calendar-day:hover{background:#faf1eb}.calendar-day.outside{background:#f4eee4}.calendar-day.selected{background:#f7eae8;box-shadow:inset 0 0 0 2px var(--burgundy)}.calendar-day-number{font-size:13px;width:28px;height:28px;color:#5f4c55}.calendar-day.today .calendar-day-number{background:var(--burgundy);color:#fff9ec;font-weight:500}.calendar-event-chip{border-left:2px solid var(--burgundy);background:#f3e4e7;color:#6a1832;border-radius:2px;padding:5px 6px;font-size:11px;line-height:1.4}.calendar-event-chip.deadline{border-color:#b98b42;background:#f6ecd5;color:#785822}.calendar-event-chip.task{border-color:#9b8677;background:#f0ebe4;color:#776255}.calendar-event-chip.availability{border-color:#ae775e;background:repeating-linear-gradient(135deg,#f9eee5,#f9eee5 6px,#efdfd0 6px,#efdfd0 8px);color:#825a46}.calendar-more{font-size:11px;color:var(--muted)}.calendar-legend{padding:20px 26px;font-size:11px;border-top:1px solid var(--line);background:#fcf8f0;color:#806e60;gap:19px}.calendar-legend i{background:var(--burgundy);width:6px;height:6px}.calendar-legend .deadline-dot{background:var(--gold)}.calendar-legend .task-dot{background:#9b8677}.calendar-mobile-count{color:var(--burgundy)}
.calendar-task-toggle-row{padding:0 26px 20px;font-size:11px;color:var(--muted)}.calendar-task-toggle-row label{color:#6f5f65;font-size:12px}.calendar-task-toggle-row input{accent-color:var(--burgundy)}.calendar-agenda{border-radius:7px;border-color:var(--line);box-shadow:none}.calendar-agenda>.card-head{padding:25px 24px;background:var(--burgundy);border-color:#77324a}.calendar-agenda>.card-head h2{color:#fff5de;font:400 25px/1.4 Georgia,serif}.calendar-agenda>.card-head .eyebrow{color:#d3b477;font-size:10px;letter-spacing:.12em}.calendar-agenda>.card-head .muted,.calendar-agenda>.card-head p{color:#e3cdd0;font-size:12px;line-height:1.7}.agenda-entry{padding:25px 24px;background:var(--paper);border-color:var(--line)}.agenda-entry:before{background:var(--burgundy);top:28px;height:28px}.agenda-entry.deadline:before{background:var(--gold)}.agenda-entry.task:before{background:#9b8677}.agenda-time{font-size:12px;color:#86715f;margin-bottom:12px;flex-wrap:wrap;line-height:1.7}.agenda-title,.agenda-entry.task .agenda-title{font-family:Georgia,serif;font-size:20px;font-weight:400;color:var(--burgundy);line-height:1.45}.agenda-entry p{font-size:13px;color:#6f5e65;line-height:1.8;margin:8px 0}.agenda-person{font-size:12px;color:var(--muted);margin-top:14px}.agenda-event-kind{font-size:10px;color:#886e50;letter-spacing:.11em;text-transform:uppercase;margin-bottom:7px}.agenda-entry .task-calendar-step{font-size:12px;line-height:1.8;color:#807064}.agenda-entry .task-calendar-reminder{font-size:11px;color:#7b665a;background:#f6eee3;border-color:#e4d5bf;border-radius:5px;padding:12px}.task-calendar-reminder strong{font-size:11px;color:#7a5b33}.calendar-coverage{background:#faf1eb;border-color:#e6d4c9;border-left:2px solid #c8a368;border-radius:4px;padding:12px 13px;gap:8px 12px}.calendar-coverage .agenda-event-kind{color:#8e6c43}.calendar-coverage .button{font-size:12px}.calendar-warning{background:#faf0db;border-color:#d9bd83;border-left:3px solid var(--gold);border-radius:5px;color:#81612e;font-size:13px;line-height:1.8}.calendar-verifications{border-top:2px solid #d3b477;border-radius:6px;padding:0 26px 12px}.deadline-review-row{border-color:var(--line);padding:20px 0}.deadline-review-row strong{font-size:14px;color:var(--burgundy)}.deadline-review-row p{font-size:13px;color:var(--muted);line-height:1.8}
.hearing-detail-top h2{font-size:32px;font-weight:400;color:var(--burgundy);letter-spacing:-.4px}.hearing-date{font-size:16px;color:#8f6735;line-height:1.8}.hearing-notes,.hearing-outcome,.hearing-directions{border-color:var(--line);padding-top:22px;margin-top:28px}.hearing-notes h3,.hearing-directions h3{font:400 20px Georgia,serif;color:var(--burgundy)}.hearing-notes p,.hearing-outcome p{font-size:14px;color:#63555b;line-height:1.9}.hearing-direction{background:#faf4e9;border-color:#e3d2b4;border-radius:5px;padding:16px;color:var(--burgundy);font-size:14px}.hearing-direction small{font-size:12px;color:#8b6b3b}.hearing-history{font-size:13px;color:var(--muted)}.hearing-history article{border-color:var(--line);padding:15px 0}.direction-form,.next-hearing-fields{background:#faf5ec;border-color:#dcc7a2;border-radius:6px;padding:21px}.direction-form legend,.next-hearing-fields legend{font-size:12px;color:#926b36;letter-spacing:.05em}.calendar-source-receipt{font-size:12px;color:var(--burgundy)}.calendar-receipt-source-note,.calendar-reminder-delivery{background:#faf3e7;border-color:#e3d0ae;color:#7d674d;border-radius:5px;font-size:12px;line-height:1.9}.calendar-reminder-list article{border-color:var(--line);padding:22px 0}.calendar-reminder-list article .eyebrow{color:#936f36;font-size:10px;letter-spacing:.12em}.calendar-reminder-list article small{font-size:12px;color:#836c58}.modal-body label.field{color:#6c575f;font-size:12px}
@media(max-width:1100px){.legal-calendar-layout{grid-template-columns:1fr}.calendar-agenda{grid-template-columns:repeat(2,minmax(0,1fr))}.agenda-entry{border-right-color:var(--line)}.calendar-day{min-height:117px}}
@media(max-width:650px){.calendar-metrics{gap:12px}.calendar-metrics .card{padding:18px 16px;min-height:92px}.calendar-metrics strong{font-size:31px}.calendar-metrics .muted{font-size:11px}.calendar-toolbar{padding:21px 16px}.calendar-toolbar h2{font-size:25px}.calendar-day{min-height:78px;padding:8px 4px;gap:7px}.calendar-day-number{font-size:12px;width:25px;height:25px}.calendar-mobile-count{font-size:10px;margin-left:7px}.calendar-weekdays span{font-size:9px;letter-spacing:.07em}.calendar-legend{padding:17px 15px;font-size:10px;gap:12px}.calendar-agenda{display:block}.calendar-agenda>.card-head,.agenda-entry{padding:23px 20px}.calendar-agenda>.card-head h2{font-size:23px}.agenda-title,.agenda-entry.task .agenda-title{font-size:21px}.calendar-task-toggle-row{padding:0 16px 18px}.calendar-task-toggle-row label{font-size:11px}.calendar-task-toggle-row>span{font-size:10px}.calendar-verifications{padding:0 17px 10px}.hearing-detail-top h2{font-size:27px}.hearing-date{font-size:14px}}
