:root{
    --bg:#f3f6f9;
    --panel:#fff;
    --text:#172033;
    --muted:#64748b;
    --border:#dbe2ea;
    --accent:#2563eb;
    --accent2:#1d4ed8;
    --danger:#b91c1c;
    --warn:#92400e;
    --shadow:0 8px 24px rgba(15,23,42,.08)
}
 *{
    box-sizing:border-box
}
body{
    margin:0;
    background:var(--bg);
    color:var(--text);
    font:14px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif
}
.container{
    max-width:1800px;
    margin:0 auto;
    padding:18px
}
.schedule-container{
    max-width:none;
    width:100%
}
.install-wrap{
    min-height:100vh;
    display:grid;
    place-items:center;
    padding:20px
}
.install-panel{
    max-width:780px;
    width:100%
}
.topnav{
    position:sticky;
    top:0;
    z-index:50;
    background:#0f172a;
    color:white;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:10px 18px;
    box-shadow:0 2px 10px rgba(0,0,0,.15);
    flex-wrap:wrap;
    gap:8px 14px
}
.brand{
    font-weight:750;
    font-size:16px
}
.navlinks{
    display:flex;
    gap:6px
}
.navlinks a{
    color:#dbeafe;
    text-decoration:none;
    padding:8px 11px;
    border-radius:7px
}
.navlinks a:hover,.navlinks a.active{
    background:#1e293b;
    color:white
}
.topnav-context{
    flex:0 0 100%;
    min-width:0;
    padding-top:8px;
    border-top:1px solid rgba(148,163,184,.24)
}
.schedule-header-controls{
    display:flex;
    flex-wrap:wrap;
    align-items:end;
    gap:7px;
    width:100%
}
.schedule-header-controls label{
    display:flex;
    align-items:center;
    gap:5px;
    min-width:0;
    color:#cbd5e1;
    font-size:11px;
    font-weight:700
}
.schedule-header-controls label span{
    white-space:nowrap
}
.schedule-header-controls select{
    min-width:120px;
    max-width:220px;
    height:31px;
    padding:4px 7px;
    border-color:#475569;
    background:#1e293b;
    color:#fff
}
.schedule-header-controls label:first-child select{
    min-width:150px
}
.schedule-header-actions{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:5px
}
.schedule-header-actions .btn,
.schedule-header-actions button{
    min-height:31px;
    padding:5px 9px;
    border-color:#475569;
    background:#1e293b;
    color:#e2e8f0
}
.schedule-header-actions .btn:hover,
.schedule-header-actions button:hover{
    background:#334155;
    color:#fff
}
.schedule-header-actions .btn.primary{
    border-color:#3b82f6;
    background:#2563eb;
    color:#fff
}
.schedule-header-actions .btn.primary:hover{
    background:#1d4ed8
}
.schedule-header-hint{
    margin-left:auto;
    padding-bottom:6px;
    color:#94a3b8;
    font-size:11px;
    white-space:nowrap
}
.schedule-container{
    padding:8px 10px 14px
}
.export-schedule-modal{
    width:min(560px,100%)
}
.export-schedule-modal .print-sheet-picker{
    min-width:0;
    margin:0;
    background:#fff
}
.export-schedule-modal .print-sheet-picker + .print-sheet-picker{
    margin-top:10px
}
.export-schedule-modal .print-page-choices,
.export-schedule-modal .print-checkpoint-choices{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px
}
.export-schedule-modal .print-page-choices label,
.export-schedule-modal .print-checkpoint-choices label{
    padding:7px 8px;
    border:1px solid var(--border);
    border-radius:7px;
    background:#f8fafc
}
@media(max-width:980px){
    .schedule-header-hint{
        flex:1 1 100%;
        margin-left:0;
        padding-bottom:0
    }
}
@media(max-width:700px){
    .topnav{
        align-items:flex-start
    }
    .schedule-header-controls label{
        flex:1 1 180px
    }
    .schedule-header-controls select{
        width:100%;
        max-width:none
    }
    .schedule-header-actions{
        flex:1 1 100%
    }
    .export-schedule-modal .print-page-choices,
    .export-schedule-modal .print-checkpoint-choices{
        grid-template-columns:1fr
    }
}
.panel{
    background:var(--panel);
    border:1px solid var(--border);
    border-radius:12px;
    box-shadow:var(--shadow);
    padding:16px;
    margin-bottom:16px
}
.panel h1,.panel h2,.panel h3{
    margin-top:0
}
.muted{
    color:var(--muted)
}
.small{
    font-size:12px
}
.flash{
    padding:10px 12px;
    border-radius:8px;
    margin:10px 0;
    border:1px solid transparent
}
.flash.success{
    background:#dcfce7;
    border-color:#86efac
}
.flash.error{
    background:#fee2e2;
    border-color:#fca5a5
}
.flash.warning{
    background:#fef3c7;
    border-color:#fcd34d
}
.toolbar{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    align-items:end;
    margin-bottom:12px
}
.toolbar label{
    display:flex;
    flex-direction:column;
    gap:4px;
    font-size:12px;
    color:var(--muted)
}
input,select,textarea{
    font:inherit;
    border:1px solid #cbd5e1;
    border-radius:7px;
    padding:8px;
    background:white;
    color:var(--text)
}
input[type=color]{
    padding:2px;
    height:36px
}
.btn,button{
    display:inline-block;
    border:1px solid #cbd5e1;
    background:#fff;
    border-radius:7px;
    padding:8px 11px;
    color:#172033;
    text-decoration:none;
    cursor:pointer;
    font:inherit
}
.btn:hover,button:hover{
    background:#f8fafc
}
.btn.primary{
    background:var(--accent);
    border-color:var(--accent);
    color:white
}
.btn.primary:hover{
    background:var(--accent2)
}
.btn.danger{
    background:#fff1f2;
    border-color:#fecdd3;
    color:#9f1239
}
.btn.small{
    padding:5px 8px;
    font-size:12px
}
.form-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px
}
.form-grid label{
    display:flex;
    flex-direction:column;
    gap:5px
}
.form-grid .span-2{
    grid-column:1/-1
}
.check{
    flex-direction:row!important;
    align-items:center
}
.check input{
    width:auto
}
.table-wrap{
    overflow:auto;
    border:1px solid var(--border);
    border-radius:10px;
    background:white
}
.schedule-table{
    border-collapse:separate;
    border-spacing:0;
    min-width:max-content;
    width:100%
}
.schedule-table th,.schedule-table td{
    border-right:1px solid #e5e7eb;
    border-bottom:1px solid #e5e7eb;
    padding:5px;
    text-align:center;
    vertical-align:middle
}
.schedule-table thead th{
    position:sticky;
    top:0;
    background:#f8fafc;
    z-index:8
}
.schedule-table .sticky-col{
    position:sticky;
    left:0;
    z-index:9;
    background:#fff;
    min-width:220px;
    max-width:220px;
    text-align:left
}
.schedule-table thead .sticky-col{
    z-index:10;
    background:#f8fafc
}
.schedule-table .coverage-label{
    font-weight:700;
    background:#f1f5f9
}
.schedule-table .date-head{
    min-width:106px
}
.schedule-table .date-head.weekend{
    background:#fefce8
}
.date-dow{
    font-weight:700
}
.date-date{
    font-size:12px;
    color:var(--muted)
}
.coverage-cell{
    font-weight:800;
    min-width:106px
}
.coverage-cell small{
    display:block;
    font-weight:500;
    color:#334155
}
.staff-cell{
    font-weight:700
}
.staff-meta{
    font-size:11px;
    font-weight:500;
    color:var(--muted);
    margin-top:3px
}
.hours-pill{
    display:inline-block;
    border-radius:999px;
    background:#eef2ff;
    padding:2px 6px;
    margin-top:4px;
    font-size:11px
}
.hours-pill.hours-complete::after{
    content:"✓";
    color:#15803d;
    font-weight:900;
    margin-left:4px
}
.assignment-cell{
    min-width:106px;
    height:58px;
    cursor:pointer;
    position:relative;
    background:#fff
}
.schedule-table td.assignment-cell{
    border-right-color:#d1d5db;
    border-bottom-color:#d1d5db
}
.assignment-cell:not(.read-only){
    -webkit-user-select:none;
    user-select:none
}
.assignment-cell.weekend{
    background:#fffdf2
}
.assignment-cell.wrong-weekend{
    box-shadow:inset 0 0 0 2px #f59e0b
}
.shift-label{
    font-weight:750;
    font-size:12px
}
.shift-hours{
    font-size:11px;
    color:#475569
}
.status-label{
    font-weight:800;
    font-size:12px
}
.cell-note-badge{
    position:absolute;
    top:4px;
    right:5px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:13px;
    line-height:1;
    cursor:help
}
.request-badge{
    display:block;
    margin-top:3px;
    font-size:10px;
    color:#7c3aed
}
.history-note{
    display:block;
    margin-top:3px;
    font-size:9px;
    color:#94a3b8
}
.empty-mark{
    color:#cbd5e1
}
.legend{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin:8px 0
}
.legend span{
    display:inline-flex;
    align-items:center;
    gap:5px;
    font-size:12px
}
.legend i{
    width:14px;
    height:14px;
    border:1px solid rgba(0,0,0,.12);
    border-radius:3px
}
.modal-backdrop{
    display:none;
    position:fixed;
    inset:0;
    background:rgba(15,23,42,.55);
    z-index:100;
    align-items:center;
    justify-content:center;
    padding:18px
}
.modal-backdrop.open{
    display:flex
}
.modal{
    display:flex;
    flex-direction:column;
    width:min(640px,100%);
    max-height:90vh;
    overflow:hidden;
    background:#fff;
    border-radius:12px;
    box-shadow:0 20px 60px rgba(0,0,0,.25);
    padding:18px
}
.modal-head{
    display:flex;
    flex:0 0 auto;
    justify-content:space-between;
    gap:14px;
    align-items:flex-start
}
.modal-head-copy{
    min-width:0
}
.modal h2{
    margin:0
}
.modal-subtitle{
    margin:4px 0 0
}
.modal-close{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:34px;
    height:34px;
    padding:0;
    border:1px solid var(--border);
    border-radius:8px;
    background:#fff;
    color:var(--text);
    font-size:22px;
    line-height:1;
    cursor:pointer
}
.modal-close:hover{
    background:#f8fafc
}
.modal-close:focus-visible{
    outline:2px solid #93c5fd;
    outline-offset:2px
}
.modal-form{
    display:flex;
    flex:1 1 auto;
    flex-direction:column;
    min-height:0;
    overflow:hidden
}
.modal-content{
    flex:1 1 auto;
    min-height:0;
    margin-top:14px;
    overflow-y:auto;
    overscroll-behavior:contain
}
.choice-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    margin:10px 0
}
.choice{
    padding:10px;
    border:1px solid #cbd5e1;
    border-radius:8px;
    background:#fff;
    cursor:pointer;
    text-align:left
}
.choice.selected{
    border-color:#2563eb;
    box-shadow:inset 0 0 0 1px #2563eb;
    background:#eff6ff
}
.choice strong,.choice small{
    display:block
}
.modal-footer{
    display:flex;
    flex:0 0 auto;
    align-items:center;
    gap:12px;
    margin-top:16px;
    padding-top:12px;
    border-top:1px solid var(--border)
}
.modal-footer-left,
.modal-footer-right{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap
}
.modal-footer-right{
    justify-content:flex-end;
    margin-left:auto
}
.modal-field{
    display:block;
    margin-top:10px
}
.modal-field textarea{
    width:100%
}
.config-table{
    border-collapse:collapse;
    width:100%
}
.config-table th,.config-table td{
    border-bottom:1px solid var(--border);
    padding:7px;
    text-align:left;
    vertical-align:middle
}
.config-table input,.config-table select{
    width:100%
}
.section-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px
}

.staff-section-stack{
    grid-template-columns:1fr
}
.request-calendar{
    display:grid;
    grid-template-columns:repeat(7,minmax(90px,1fr));
    gap:7px
}
.day-card{
    background:#fff;
    border:1px solid var(--border);
    border-radius:9px;
    padding:8px;
    min-height:104px
}
.day-card.weekend{
    background:#fffdf0
}
.day-head{
    display:flex;
    justify-content:space-between;
    font-weight:700;
    margin-bottom:7px
}
.pref-buttons{
    display:grid;
    grid-template-columns:1fr;
    gap:4px
}
.pref-btn{
    padding:5px 6px;
    font-size:12px
}
.pref-btn.active{
    background:#dbeafe;
    border-color:#60a5fa
}
.pref-btn.off.active{
    background:#fee2e2;
    border-color:#f87171
}
.request-summary{
    padding:8px;
    border-radius:8px;
    background:#f8fafc;
    margin:8px 0
}
.suggestion{
    border-left:4px solid #60a5fa;
    padding:10px 12px;
    background:#fff;
    border-radius:8px;
    box-shadow:var(--shadow);
    margin-bottom:8px
}
.suggestion strong{
    display:block
}
.badge{
    display:inline-block;
    border-radius:999px;
    background:#e2e8f0;
    padding:2px 7px;
    font-size:11px
}
.badge.warn{
    background:#fef3c7
}
.badge.bad{
    background:#fee2e2
}
.badge.good{
    background:#dcfce7
}
.qr-wrap{
    text-align:center
}
.qr-heading{
    margin-bottom:18px
}
.qr-heading h1{
    margin-bottom:4px
}
.qr-unit-name{
    color:#475569;
    font-size:20px;
    font-weight:600
}
.qr-wrap svg{
    max-width:400px;
    width:100%;
    height:auto;
    background:white
}
.qr-help-note{
    display:flex;
    max-width:560px;
    margin:16px auto 20px;
    padding:12px 14px;
    flex-direction:column;
    gap:4px;
    border:1px solid #dbeafe;
    border-radius:10px;
    background:#f8fbff;
    color:#334155;
    text-align:left
}
.qr-help-note strong{
    color:#0f172a
}
.qr-scan-help{
    margin-top:6px
}
code{
    background:#f1f5f9;
    padding:2px 4px;
    border-radius:4px
}
@media(max-width:900px){
    .section-grid,.form-grid{
        grid-template-columns:1fr
    }
    .form-grid .span-2{
        grid-column:auto
    }
    .request-calendar{
        grid-template-columns:repeat(7,110px);
        overflow:auto
    }
    .topnav{
        align-items:flex-start;
        gap:8px
    }
    .navlinks{
        flex-wrap:wrap
    }
    .choice-grid{
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
}
@media print{
    .topnav,.no-print,.btn,button{
        display:none!important
    }
    .container{
        max-width:none;
        padding:0
    }
    .panel{
        box-shadow:none;
        border:none
    }
    .table-wrap{
        overflow:visible
    }
    .schedule-table .sticky-col,.schedule-table thead th{
        position:static
    }
}
 .config-list{
    display:flex;
    flex-direction:column
}
.config-row{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(120px,1fr));
    gap:8px;
    align-items:end;
    padding:9px 0;
    border-bottom:1px solid var(--border)
}
.config-row:last-child{
    border-bottom:0
}
.config-row>label{
    display:flex;
    flex-direction:column;
    gap:4px;
    font-size:12px;
    color:var(--muted)
}
.config-row>.check{
    padding-bottom:8px
}
/* Compact employee request editor (v1.2) */
 .request-page{
    --request-text-scale:1;
    background:linear-gradient(180deg,#f4f7fb 0,#eef2f6 100%);
    font-size:calc(14px * var(--request-text-scale))
}
.request-page[data-request-text-size="large"]{
    --request-text-scale:1.15
}
.request-page[data-request-text-size="largest"]{
    --request-text-scale:1.3
}
.staff-navigation-loading{
    position:fixed;
    z-index:10000;
    left:var(--staff-navigation-loading-left,0);
    top:var(--staff-navigation-loading-top,0);
    width:var(--staff-navigation-loading-width,100vw);
    height:var(--staff-navigation-loading-height,100vh);
    box-sizing:border-box;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:20px;
    background:rgba(241,245,249,.66);
    backdrop-filter:blur(1px);
    -webkit-backdrop-filter:blur(1px);
    cursor:progress
}
.staff-navigation-loading[hidden]{
    display:none!important
}
.staff-navigation-loading-card{
    display:flex;
    align-items:center;
    gap:10px;
    min-height:46px;
    padding:10px 14px;
    border:1px solid #cbd5e1;
    border-radius:12px;
    background:#fff;
    color:#334155;
    box-shadow:0 12px 32px rgba(15,23,42,.16);
    font-size:14px;
    font-weight:750
}
.staff-navigation-loading-spinner{
    width:20px;
    height:20px;
    flex:0 0 auto;
    border:3px solid #bfdbfe;
    border-top-color:#2563eb;
    border-radius:50%;
    animation:staff-navigation-loading-spin .7s linear infinite
}
.staff-app-navigating{
    cursor:progress
}
@keyframes staff-navigation-loading-spin{
    to{transform:rotate(360deg)}
}
@media(prefers-reduced-motion:reduce){
    .staff-navigation-loading-spinner{
        animation-duration:1.5s
    }
}
.request-page .small{
    font-size:calc(12px * var(--request-text-scale))
}
.request-page .modal-close{
    width:calc(34px * var(--request-text-scale));
    height:calc(34px * var(--request-text-scale));
    font-size:calc(22px * var(--request-text-scale))
}
.request-container{
    max-width:820px;
    padding:14px
}
.request-header-panel,.request-editor-panel{
    margin-bottom:12px
}
.request-header-panel{
    padding:18px;
    border-color:#d7e0ea;
    background:linear-gradient(180deg,#fff 0,#fcfdff 100%);
    box-shadow:0 12px 32px rgba(15,23,42,.07)
}
.request-header-top-row{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px
}
.request-header-actions{
    display:flex;
    flex:0 0 auto;
    align-items:center;
    gap:8px
}
.request-text-size-control{
    display:inline-flex;
    align-items:center;
    gap:3px;
    min-height:34px;
    padding:3px;
    border:1px solid #cbd5e1;
    border-radius:9px;
    background:#f8fafc
}
.request-text-size-label{
    padding:0 4px 0 5px;
    color:#64748b;
    font-size:calc(11px * var(--request-text-scale));
    font-weight:750;
    white-space:nowrap
}
.request-text-size-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:32px;
    min-height:26px;
    padding:3px 6px;
    border:0;
    border-radius:6px;
    background:transparent;
    color:#475569;
    font-size:calc(12px * var(--request-text-scale));
    font-weight:850;
    line-height:1
}
.request-text-size-button:hover,
.request-text-size-button:focus-visible{
    background:#e2e8f0;
    outline:none
}
.request-text-size-button:focus-visible{
    box-shadow:0 0 0 2px #93c5fd
}
.request-text-size-button[data-request-text-size-value="large"]{
    font-size:calc(13px * var(--request-text-scale))
}
.request-text-size-button[data-request-text-size-value="largest"]{
    font-size:calc(14px * var(--request-text-scale))
}
.request-text-size-button[aria-pressed="true"]{
    background:#dbeafe;
    color:#1d4ed8;
    box-shadow:inset 0 0 0 1px #93c5fd
}
.request-editor-panel{
    padding:14px
}
.todo-workspace-panel{
    position:relative;
    display:grid;
    gap:12px;
    margin-bottom:16px
}
.todo-workspace-segment{
    min-width:0;
    border:1px solid #dbe2ea;
    border-radius:12px;
    background:#fff;
    box-shadow:0 5px 18px rgba(15,23,42,.06)
}
.todo-workspace-panel,
.todo-configuration-modal,
.todo-provider-paging-modal,
.todo-task-group-picker-modal{
    font-size:calc(14px * var(--request-text-scale))
}
.todo-workspace-panel .btn.small,
.todo-configuration-modal .btn.small,
.todo-provider-paging-modal .btn.small,
.todo-task-group-picker-modal .btn.small{
    font-size:calc(12px * var(--request-text-scale))
}
.todo-configuration-modal{
    width:min(520px,100%)
}
.todo-task-group-picker-modal{
    width:min(520px,100%)
}
.todo-task-group-picker-name>span{
    display:block;
    margin-bottom:5px;
    font-weight:750
}
.todo-task-group-picker-name input{
    width:100%;
    min-height:42px
}
.todo-task-group-picker-patient-toggle{
    display:flex;
    align-items:center;
    gap:8px;
    min-height:36px;
    margin-top:10px;
    font-weight:750
}
.todo-task-group-picker-patient-toggle input{
    width:auto;
    margin:0
}
.todo-task-group-picker-patient-fields{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:10px 12px;
    margin:5px 0 10px;
    padding:10px;
    border:1px solid #dbe2ea;
    border-radius:10px;
    background:#f8fafc
}
.todo-task-group-picker-patient-fields[hidden]{
    display:none!important
}
.todo-task-group-picker-patient-fields .modal-field>span{
    display:block;
    margin-bottom:5px;
    font-weight:750
}
.todo-task-group-picker-patient-fields .modal-field input{
    width:100%;
    min-width:0;
    min-height:42px
}
.todo-task-group-picker-patient-fields .todo-task-group-picker-patient-toggle,
.todo-task-group-picker-patient-fields p{
    grid-column:1 / -1;
    margin-top:0
}
.todo-task-group-picker-pager-field,
.todo-patient-task-templates,
.todo-patient-task-template-empty{
    grid-column:1 / -1
}
.todo-patient-task-templates{
    margin:0;
    padding:0;
    border:0
}
.todo-patient-task-templates legend{
    margin-bottom:3px;
    font-weight:750
}
.todo-patient-task-templates>p{
    margin:0 0 7px
}
.todo-patient-task-template-options{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:6px;
    max-height:230px;
    overflow:auto
}
.todo-patient-task-template-options label{
    align-items:flex-start
}
.todo-patient-task-template-options span{
    display:grid;
    gap:2px;
    min-width:0
}
.todo-patient-task-template-options small{
    color:var(--muted);
    font-weight:500
}
.todo-patient-task-template-empty strong{
    display:block;
    margin-bottom:3px
}
.todo-patient-task-template-empty p{
    margin:0
}
.todo-task-group-picker-groups{
    margin:4px 0 0;
    padding:0;
    border:0
}
.todo-task-group-picker-groups legend{
    margin-bottom:7px;
    font-weight:750
}
.todo-task-group-picker-options{
    max-height:300px;
    overflow:auto
}
.todo-configuration-field>span{
    display:block;
    margin-bottom:5px;
    font-weight:750
}
.todo-configuration-field select,
.todo-configuration-field input{
    width:100%;
    min-height:42px
}
.todo-configuration-field p{
    margin:6px 0 0
}
.todo-configuration-checkbox{
    display:flex;
    align-items:center;
    gap:8px;
    min-height:36px;
    font-weight:650
}
.todo-configuration-checkbox input{
    width:18px;
    height:18px;
    margin:0
}
.todo-configuration-section{
    margin:12px 0 0;
    padding:12px;
    border:1px solid #dbe2ea;
    border-radius:10px
}
.todo-configuration-section legend{
    padding:0 5px;
    font-weight:800
}
.todo-configuration-section>p{
    margin:0 0 8px
}
.todo-configuration-status{
    min-height:18px;
    margin:10px 0 0;
    color:var(--muted)
}
.todo-timeline{
    position:relative;
    padding:14px 14px 10px;
    background:linear-gradient(180deg,#fff 0%,#f8fafc 100%)
}
.todo-timeline-heading{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:12px;
    min-width:0
}
.todo-timeline-heading>div{
    display:flex;
    align-items:baseline;
    gap:9px;
    min-width:0
}
.todo-timeline-heading strong{
    color:#0f172a;
    font-size:calc(14px * var(--request-text-scale))
}
.todo-timeline-summary,
.todo-timeline-now-label{
    color:#64748b;
    font-size:calc(12px * var(--request-text-scale));
    font-weight:650;
    white-space:nowrap
}
.todo-timeline-scroll{
    overflow:visible
}
.todo-timeline-track{
    position:relative;
    width:100%;
    height:76px;
    margin-top:7px
}
.todo-timeline-track::before{
    content:"";
    position:absolute;
    z-index:0;
    top:40px;
    right:0;
    left:0;
    height:2px;
    border-radius:999px;
    background:#cbd5e1
}
.todo-timeline-time-label{
    position:absolute;
    top:2px;
    transform:translateX(-50%);
    color:#64748b;
    font-size:calc(11px * var(--request-text-scale));
    font-variant-numeric:tabular-nums;
    white-space:nowrap
}
.todo-timeline-time-label-start{
    transform:none
}
.todo-timeline-time-label-end{
    transform:translateX(-100%)
}
.todo-timeline-time-label::after{
    content:"";
    position:absolute;
    top:20px;
    left:50%;
    width:1px;
    height:22px;
    background:#e2e8f0
}
.todo-timeline-time-label-start::after{
    left:0
}
.todo-timeline-time-label-end::after{
    left:100%
}
.todo-timeline-now-marker{
    position:absolute;
    z-index:1;
    top:22px;
    bottom:5px;
    width:0;
    border-left:2px dashed #475569;
    pointer-events:none
}
.todo-timeline-now-marker::before{
    content:"";
    position:absolute;
    top:-2px;
    left:-5px;
    width:8px;
    height:8px;
    border-radius:50%;
    background:#475569
}
.todo-timeline-point{
    position:absolute;
    z-index:3;
    top:31px;
    width:20px;
    height:20px;
    padding:0;
    transform:translateX(-50%);
    border:3px solid #fff;
    border-radius:50%;
    box-shadow:0 0 0 1px rgba(15,23,42,.16),0 2px 7px rgba(15,23,42,.16);
    color:#fff;
    cursor:pointer;
    font-size:calc(10px * var(--request-text-scale));
    font-weight:850;
    line-height:14px
}
.todo-timeline-point:hover,
.todo-timeline-point:focus-visible{
    z-index:5;
    transform:translateX(-50%) scale(1.2);
    outline:2px solid #1d4ed8;
    outline-offset:2px
}
.todo-timeline-point-completed,
.todo-timeline-legend-dot.completed{
    background:#16a34a
}
.todo-timeline-point-overdue,
.todo-timeline-legend-dot.overdue{
    background:#dc2626
}
.todo-timeline-point-upcoming,
.todo-timeline-legend-dot.upcoming{
    background:#2563eb
}
.todo-timeline-point-future,
.todo-timeline-legend-dot.future{
    background:#94a3b8
}
.todo-timeline-popover{
    position:absolute;
    z-index:20;
    top:67px;
    left:50%;
    width:min(430px,calc(100% - 20px));
    overflow:visible;
    transform:translateX(-50%);
    border:1px solid #cbd5e1;
    border-radius:12px;
    background:#fff;
    box-shadow:0 16px 38px rgba(15,23,42,.2);
    color:#0f172a
}
.todo-timeline-popover::before,
.todo-timeline-popover::after{
    content:"";
    position:absolute;
    left:var(--todo-timeline-popover-anchor-x,50%);
    width:0;
    height:0;
    transform:translateX(-50%);
    pointer-events:none
}
.todo-timeline-popover::before{
    top:-10px;
    border-right:10px solid transparent;
    border-bottom:10px solid #cbd5e1;
    border-left:10px solid transparent
}
.todo-timeline-popover::after{
    top:-8px;
    border-right:8px solid transparent;
    border-bottom:8px solid #f8fafc;
    border-left:8px solid transparent
}
.todo-timeline-popover[hidden]{
    display:none
}
.todo-timeline-popover-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:9px 10px;
    border-bottom:1px solid #e2e8f0;
    border-radius:11px 11px 0 0;
    background:#f8fafc
}
.todo-timeline-popover-heading strong{
    flex:0 0 auto;
    font-size:calc(14px * var(--request-text-scale));
    font-variant-numeric:tabular-nums
}
.todo-timeline-popover-heading-actions{
    display:flex;
    min-width:0;
    align-items:center;
    justify-content:flex-end;
    gap:10px
}
.todo-timeline-popover-heading-actions>span{
    color:#64748b;
    font-size:calc(11px * var(--request-text-scale));
    font-weight:700;
    white-space:nowrap
}
.todo-timeline-popover-hide-completed{
    display:inline-flex;
    align-items:center;
    gap:5px;
    color:#475569;
    font-size:calc(10px * var(--request-text-scale));
    font-weight:750;
    white-space:nowrap;
    cursor:pointer
}
.todo-timeline-popover-hide-completed input{
    width:14px;
    height:14px;
    margin:0;
    accent-color:#2563eb;
    cursor:pointer
}
.todo-timeline-popover-hide-completed input:disabled{
    cursor:not-allowed;
    opacity:.55
}
.todo-timeline-popover-tabs{
    display:flex;
    gap:5px;
    overflow-x:auto;
    padding:6px 8px 5px;
    border-bottom:1px solid #e2e8f0;
    background:#fff;
    scrollbar-width:thin
}
.todo-timeline-popover-tab{
    flex:0 0 auto;
    max-width:180px;
    padding:4px 8px;
    border:1px solid #cbd5e1;
    border-radius:999px;
    background:#fff;
    color:#475569;
    font-size:calc(10px * var(--request-text-scale));
    font-weight:750;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    cursor:pointer
}
.todo-timeline-popover-tab:hover,
.todo-timeline-popover-tab:focus-visible{
    border-color:#93c5fd;
    background:#eff6ff;
    color:#1d4ed8;
    outline:none
}
.todo-timeline-popover-tab.active{
    border-color:#2563eb;
    background:#dbeafe;
    color:#1d4ed8
}
.todo-timeline-popover-list{
    display:flex;
    max-height:300px;
    flex-direction:column;
    overflow:auto;
    overscroll-behavior:contain;
    padding:5px 6px 7px
}
.todo-timeline-popover-tab-group{
    padding:3px
}
.todo-timeline-popover-tab-group+.todo-timeline-popover-tab-group{
    margin-top:4px;
    padding-top:8px;
    border-top:1px solid #e2e8f0
}
.todo-timeline-popover-tab-heading{
    padding:2px 5px 5px;
    color:#0f172a;
    font-size:calc(12px * var(--request-text-scale));
    font-weight:800
}
.todo-timeline-popover-task{
    display:grid;
    grid-template-columns:18px minmax(0,1fr);
    align-items:start;
    gap:7px;
    padding:6px 5px;
    border-left:3px solid transparent;
    border-radius:7px
}
.todo-timeline-popover-task:hover{
    background:#f8fafc
}
.todo-timeline-popover-task-completed{
    border-left-color:#16a34a
}
.todo-timeline-popover-task-overdue{
    border-left-color:#dc2626
}
.todo-timeline-popover-task-upcoming{
    border-left-color:#2563eb
}
.todo-timeline-popover-task-future{
    border-left-color:#94a3b8
}
.todo-timeline-popover-complete{
    width:15px;
    height:15px;
    margin:2px 0 0;
    accent-color:#16a34a;
    cursor:pointer
}
.todo-timeline-popover-complete:disabled{
    cursor:not-allowed;
    opacity:.55
}
.todo-timeline-popover-copy{
    display:flex;
    min-width:0;
    flex-direction:column;
    gap:1px;
    width:100%;
    padding:0;
    border:0;
    border-radius:5px;
    background:transparent;
    color:inherit;
    text-align:left;
    cursor:pointer
}
.todo-timeline-popover-copy:hover,
.todo-timeline-popover-copy:focus-visible{
    background:#f1f5f9;
    outline:none
}
.todo-timeline-popover-copy:focus-visible{
    box-shadow:0 0 0 2px #2563eb
}
.todo-timeline-popover-copy>span{
    overflow:hidden;
    color:#334155;
    font-size:calc(12px * var(--request-text-scale));
    text-overflow:ellipsis;
    white-space:nowrap
}
.todo-timeline-popover-copy small{
    color:#64748b;
    font-size:calc(10px * var(--request-text-scale));
    font-weight:650
}
.todo-timeline-popover-task-content{
    min-width:0
}
.todo-timeline-popover-checks{
    display:grid;
    gap:4px;
    margin-top:5px;
    padding:5px 6px;
    border-radius:6px;
    background:#f8fafc
}
.todo-timeline-popover-check{
    display:grid;
    grid-template-columns:15px minmax(0,1fr);
    align-items:start;
    gap:5px;
    color:#475569;
    font-size:calc(11px * var(--request-text-scale));
    line-height:1.3;
    overflow-wrap:anywhere
}
.todo-timeline-popover-check input{
    width:13px;
    height:13px;
    margin:1px 0 0;
    accent-color:#2563eb;
    cursor:pointer
}
.todo-timeline-popover-check input:disabled{
    cursor:not-allowed;
    opacity:.55
}
.todo-timeline-popover-check em{
    display:block;
    margin-top:1px;
    color:#64748b;
    font-size:calc(10px * var(--request-text-scale));
    font-style:normal;
    white-space:pre-wrap
}
.todo-timeline-popover-check-error{
    padding-top:3px;
    color:#991b1b;
    font-size:calc(11px * var(--request-text-scale))
}
.todo-timeline-popover-check-error button{
    padding:2px 5px;
    border:1px solid #fca5a5;
    border-radius:4px;
    background:#fff;
    color:inherit;
    font:inherit;
    cursor:pointer
}
.todo-timeline-legend{
    display:flex;
    flex-wrap:wrap;
    gap:6px 14px;
    color:#64748b;
    font-size:calc(11px * var(--request-text-scale))
}
.todo-timeline-legend span{
    display:inline-flex;
    align-items:center;
    gap:5px
}
.todo-timeline-legend-dot{
    width:8px;
    height:8px;
    border-radius:50%
}
.todo-timeline-empty{
    position:absolute;
    inset:18px 0 auto;
    color:#64748b;
    font-size:calc(13px * var(--request-text-scale))
}
.todo-timeline-unconfigured .todo-timeline-track::before{
    display:none
}
.todo-tabs-segment{
    padding:10px 12px
}
.todo-tab-bar{
    display:flex;
    align-items:center;
    gap:8px;
    margin:0;
    padding:0;
    border:0
}
.todo-tabs-segment .todo-empty-tabs{
    margin:10px 2px 2px
}
.todo-tabs{
    display:flex;
    flex:1 1 auto;
    min-width:0;
    gap:6px;
    overflow-x:auto;
    padding:1px;
    scrollbar-width:thin
}
.todo-tab{
    flex:0 0 auto;
    padding:7px 11px;
    border:1px solid #dbe2ea;
    border-radius:999px;
    background:#f8fafc;
    color:#475569;
    font-weight:750;
    white-space:nowrap
}
.todo-tab:hover,
.todo-tab:focus-visible{
    border-color:#93c5fd;
    background:#eff6ff;
    color:#1e40af
}
.todo-tab[aria-selected="true"]{
    border-color:#2563eb;
    background:#2563eb;
    color:#fff;
    box-shadow:0 2px 7px rgba(37,99,235,.2)
}
.todo-add-tab{
    display:inline-flex;
    flex:0 0 34px;
    align-items:center;
    justify-content:center;
    width:34px;
    min-width:34px;
    padding:7px 0;
    font-size:calc(18px * var(--request-text-scale));
    line-height:1
}
.todo-category{
    padding:14px
}
.todo-category-heading{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:12px;
    margin-bottom:9px
}
.todo-category-heading h2{
    margin:1px 0 0;
    color:#0f172a;
    font-size:calc(20px * var(--request-text-scale))
}
.todo-category-eyebrow{
    display:block;
    color:#94a3b8;
    font-size:calc(10px * var(--request-text-scale));
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase
}
.todo-category-heading-actions{
    display:flex;
    flex:1 1 auto;
    min-width:0;
    align-items:center;
    gap:7px;
    flex-wrap:wrap
}
.todo-category-menu{
    position:relative;
    flex:0 0 auto
}
.todo-category-menu>summary{
    display:grid;
    width:34px;
    height:34px;
    place-items:center;
    border:1px solid #dbe2ea;
    border-radius:9px;
    background:#fff;
    color:#475569;
    cursor:pointer;
    font-size:calc(22px * var(--request-text-scale));
    font-weight:800;
    line-height:1;
    list-style:none
}
.todo-category-menu>summary::-webkit-details-marker{
    display:none
}
.todo-category-menu[open]>summary,
.todo-category-menu>summary:hover,
.todo-category-menu>summary:focus-visible{
    border-color:#93c5fd;
    background:#eff6ff;
    color:#1d4ed8
}
.todo-category-actions{
    position:absolute;
    z-index:20;
    top:39px;
    right:0;
    display:grid;
    gap:6px;
    min-width:128px;
    padding:7px;
    border:1px solid #dbe2ea;
    border-radius:10px;
    background:#fff;
    box-shadow:0 10px 28px rgba(15,23,42,.14)
}
.todo-category-actions .btn{
    width:100%
}
.todo-provider-paging-modal{
    width:min(1180px,100%);
    max-height:96vh
}
.todo-provider-paging-modal .modal-content{
    overflow:hidden
}
.todo-provider-paging-layout{
    display:grid;
    grid-template-columns:minmax(290px,340px) minmax(0,1fr);
    gap:14px;
    height:min(720px,calc(96vh - 180px));
    min-height:440px
}
.todo-provider-paging-charting{
    min-width:0;
    overflow-y:auto;
    padding-right:4px
}
.todo-provider-paging-pager-row{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:8px;
    padding:10px;
    border:1px solid #dbe2ea;
    border-radius:9px;
    background:#f8fafc
}
.todo-provider-paging-pager-field{
    min-width:0;
    flex:1 1 auto
}
.todo-provider-paging-pager-field span{
    display:block
}
.todo-provider-paging-pager-field span{
    margin-bottom:4px;
    color:#475569;
    font-size:calc(12px * var(--request-text-scale));
    font-weight:750
}
.todo-provider-paging-pager-field input{
    width:100%;
    min-height:34px
}
.todo-provider-paging-help{
    margin-top:10px;
    padding:10px 11px;
    border:1px solid #bfdbfe;
    border-radius:9px;
    background:#eff6ff;
    color:#1e3a8a
}
.todo-provider-paging-help p{
    margin:4px 0 0;
    font-size:calc(12px * var(--request-text-scale));
    line-height:1.45
}
.todo-provider-paging-help kbd{
    display:inline-block;
    padding:1px 5px;
    border:1px solid #93c5fd;
    border-bottom-width:2px;
    border-radius:4px;
    background:#fff;
    color:#1e3a8a;
    font:inherit;
    font-weight:800
}
.todo-provider-paging-field>span:first-child{
    display:block;
    margin-bottom:4px;
    font-weight:750
}
.todo-provider-paging-field input,
.todo-provider-paging-field textarea{
    width:100%
}
.todo-provider-paging-field input[readonly]{
    background:#f8fafc;
    color:#334155
}
.todo-provider-paging-field textarea{
    resize:vertical
}
.todo-provider-copy-button{
    margin-top:6px
}
.todo-provider-paging-count{
    float:right;
    color:#64748b;
    font-size:calc(11px * var(--request-text-scale));
    font-weight:650
}
.todo-provider-paging-chart-divider{
    margin:14px 0 2px;
    border-top:1px dashed #cbd5e1
}
.todo-provider-paging-frame-help{
    margin:10px 0 0
}
.todo-provider-paging-status{
    min-height:18px;
    margin:10px 0 0;
    color:#475569
}
.todo-provider-paging-frame-wrap{
    position:relative;
    min-width:0;
    min-height:0;
    overflow:hidden;
    border:1px solid #cbd5e1;
    border-radius:9px;
    background:#fff
}
.todo-provider-paging-frame-wrap.todo-provider-paging-frame-stale::after{
    content:"Pager changed — load the paging form before sending.";
    position:absolute;
    inset:0;
    display:grid;
    place-items:center;
    padding:20px;
    background:rgba(248,250,252,.9);
    color:#7c2d12;
    font-weight:800;
    text-align:center
}
.todo-provider-paging-frame-wrap.todo-provider-paging-frame-stale .todo-provider-paging-frame{
    pointer-events:none
}
.todo-provider-paging-frame{
    display:block;
    width:100%;
    height:100%;
    border:0;
    background:#fff
}
.todo-empty-tabs,
.todo-empty-tasks{
    margin:12px 2px 8px
}
.todo-task-table-wrap{
    overflow:visible;
    margin-top:6px
}
.todo-task-table{
    display:block;
    width:100%;
    border:0;
    border-collapse:separate;
    table-layout:auto
}
.todo-task-table thead{
    position:absolute;
    width:1px;
    height:1px;
    margin:-1px;
    padding:0;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0
}
.todo-task-table tbody{
    display:grid;
    gap:8px;
    width:100%
}
.todo-task-table .todo-task-row{
    display:grid;
    grid-template-columns:42px 92px minmax(0,1fr) 44px;
    grid-template-areas:
        "done time description actions"
        ". warning warning actions";
    align-items:start;
    gap:7px 9px;
    width:100%;
    padding:9px 9px 9px 7px;
    border:1px solid #e2e8f0;
    border-left:4px solid #cbd5e1;
    border-radius:11px;
    background:#fff;
    box-shadow:0 2px 8px rgba(15,23,42,.04);
    transition:border-color .15s ease,box-shadow .15s ease,background .15s ease
}
.todo-task-table td{
    display:block;
    min-width:0;
    width:auto;
    padding:0;
    border:0
}
.todo-task-done-cell{
    grid-area:done;
    display:flex!important;
    justify-content:center;
    padding-top:7px!important
}
.todo-task-time-cell{
    grid-area:time
}
.todo-task-time-tools-cell{
    display:none!important
}
.todo-task-time-tools{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:6px;
    width:100%
}
.todo-task-time-summary{
    display:flex;
    grid-column:1/-1;
    align-items:center;
    min-width:0;
    height:calc(2.6em + 14px);
    box-sizing:border-box;
    padding:6px 8px;
    overflow:hidden;
    border:1px solid #fed7aa;
    border-radius:8px;
    background:#fff7ed;
    color:#9a3412;
    font-size:calc(12px * var(--request-text-scale));
    font-weight:800;
    line-height:1.3;
    overflow-wrap:anywhere
}
.todo-task-time-summary[hidden]{
    display:flex!important;
    visibility:hidden
}
.todo-task-time-actions{
    display:grid;
    grid-column:1/-1;
    grid-template-columns:1fr 1fr;
    gap:6px
}
.todo-task-time-cancel,
.todo-task-time-confirm{
    min-height:40px;
    padding:7px 10px;
    border-radius:8px;
    font-size:calc(13px * var(--request-text-scale));
    font-weight:800
}
.todo-task-time-cancel{
    border-color:#cbd5e1;
    background:#fff;
    color:#475569
}
.todo-task-time-confirm{
    border-color:#2563eb;
    background:#2563eb;
    color:#fff
}
.todo-task-time-cancel:disabled,
.todo-task-time-confirm:disabled{
    cursor:default;
    opacity:.45
}
.todo-task-time-adjust-button{
    min-height:40px;
    padding:7px 8px;
    border-color:#cbd5e1;
    background:#f8fafc;
    color:#334155;
    font-size:calc(13px * var(--request-text-scale));
    font-weight:800;
    font-variant-numeric:tabular-nums
}
.todo-task-time-adjust-button:hover,
.todo-task-time-adjust-button:focus-visible{
    border-color:#93c5fd;
    background:#eff6ff;
    color:#1d4ed8
}
.todo-task-time-now-button{
    grid-column:1/-1
}
.todo-task-description-cell{
    grid-area:description
}
.todo-task-warning-cell{
    grid-area:warning;
    display:none!important;
    align-items:center;
    gap:8px;
    padding:3px 0 1px!important;
    color:#64748b;
    font-size:calc(12px * var(--request-text-scale));
    font-weight:700
}
.todo-task-warning-cell::before{
    content:"Warn before due";
    flex:0 0 auto
}
.todo-task-row.todo-task-details-open .todo-task-warning-cell{
    display:flex!important
}
.todo-task-actions-cell{
    grid-area:actions;
    display:flex!important;
    flex-direction:column;
    align-items:stretch;
    gap:5px;
    white-space:normal
}
.todo-task-done-input{
    width:22px;
    height:22px;
    margin:0;
    cursor:pointer
}
.todo-task-time-input,
.todo-task-warning-input,
.todo-task-description-input{
    width:100%;
    box-sizing:border-box;
    border:1px solid transparent;
    border-radius:7px;
    background:transparent;
    transition:border-color .15s ease,background .15s ease,box-shadow .15s ease
}
.todo-task-time-input:hover,
.todo-task-warning-input:hover,
.todo-task-description-input:hover{
    border-color:#dbe2ea;
    background:#f8fafc
}
.todo-task-time-input:focus,
.todo-task-warning-input:focus,
.todo-task-description-input:focus{
    border-color:#93c5fd;
    background:#fff;
    box-shadow:0 0 0 3px rgba(59,130,246,.1);
    outline:0
}
.todo-task-time-input{
    min-width:0;
    padding:8px 6px;
    color:#334155;
    font-size:calc(14px * var(--request-text-scale));
    font-weight:800;
    font-variant-numeric:tabular-nums;
    text-align:center
}
.todo-task-row.todo-task-time-pending .todo-task-time-input{
    border-color:#fdba74;
    background:#fff7ed;
    box-shadow:0 0 0 3px rgba(249,115,22,.10)
}
.todo-task-warning-input{
    width:74px;
    min-width:0;
    padding:6px 7px
}
.todo-task-description-input{
    height:calc(38px * var(--request-text-scale));
    min-height:calc(38px * var(--request-text-scale));
    padding:7px 8px;
    resize:none;
    color:#0f172a;
    font-size:calc(14px * var(--request-text-scale));
    line-height:1.35
}
.todo-task-description-checks{
    display:grid;
    gap:5px;
    margin:5px 8px 0
}
.todo-task-description-checks[hidden]{
    display:none
}
.todo-task-description-check-item{
    display:flex;
    align-items:flex-start;
    gap:4px;
    width:auto;
    max-width:100%;
    min-width:0
}
.todo-task-description-check{
    display:flex;
    flex:0 1 auto;
    align-items:flex-start;
    gap:7px;
    min-width:0;
    max-width:100%;
    overflow-wrap:anywhere;
    font-size:calc(13px * var(--request-text-scale));
    line-height:1.3
}
.todo-task-description-check>span{
    flex:1 1 auto;
    min-width:0;
    overflow-wrap:anywhere
}
.todo-task-description-check input{
    flex:0 0 auto;
    width:17px;
    height:17px;
    margin:0
}
.todo-task-description-check-help-wrap{
    position:relative;
    display:inline-flex;
    flex:0 0 auto;
    align-items:center;
    margin-left:8px
}
.todo-task-description-check-help{
    border:0;
    background:transparent;
    color:#2563eb;
    cursor:pointer;
    font-size:calc(12px * var(--request-text-scale));
    font-weight:700;
    line-height:1.3;
    padding:0 2px;
    text-decoration:underline;
    text-underline-offset:2px
}
.todo-task-description-check-help:hover,
.todo-task-description-check-help:focus-visible{
    color:#1d4ed8
}
.todo-task-description-check-help-popup{
    position:absolute;
    z-index:40;
    top:calc(100% + 8px);
    left:0;
    width:max-content;
    max-width:min(320px,calc(100vw - 32px));
    padding:8px 10px;
    border:1px solid #cbd5e1;
    border-radius:8px;
    background:#fff;
    box-shadow:0 8px 24px rgba(15,23,42,.16);
    color:#334155;
    font-size:calc(12px * var(--request-text-scale));
    font-weight:500;
    line-height:1.4;
    opacity:0;
    pointer-events:none;
    transform:translateY(-2px);
    transition:opacity .12s ease,transform .12s ease,visibility .12s ease;
    visibility:hidden;
    white-space:normal
}
.todo-task-description-check-help-popup::before{
    content:"";
    position:absolute;
    top:-5px;
    left:18px;
    width:8px;
    height:8px;
    border-top:1px solid #cbd5e1;
    border-left:1px solid #cbd5e1;
    background:#fff;
    transform:rotate(45deg)
}
.todo-task-description-check-help-wrap:hover .todo-task-description-check-help-popup,
.todo-task-description-check-help-wrap:focus-within .todo-task-description-check-help-popup,
.todo-task-description-check-help-wrap.is-open .todo-task-description-check-help-popup{
    opacity:1;
    transform:translateY(0);
    visibility:visible
}
.todo-task-description-check-remove{
    border:0;
    background:transparent;
    color:#64748b;
    cursor:pointer;
    flex:0 0 auto;
    font-size:calc(16px * var(--request-text-scale));
    line-height:16px;
    margin:-1px 0 0 auto;
    opacity:.55;
    padding:0 3px
}
.todo-task-description-check-remove:hover,
.todo-task-description-check-remove:focus-visible{
    opacity:1
}
.todo-task-description-check-remove:disabled{
    cursor:default;
    opacity:.3
}
.todo-task-details-toggle{
    display:grid;
    width:34px;
    height:34px;
    place-items:center;
    padding:0;
    border:1px solid transparent;
    border-radius:8px;
    background:transparent;
    color:#64748b;
    cursor:pointer;
    font-size:calc(20px * var(--request-text-scale));
    font-weight:800;
    line-height:1
}
.todo-task-details-toggle:hover,
.todo-task-details-toggle:focus-visible,
.todo-task-details-toggle[aria-expanded="true"]{
    border-color:#dbe2ea;
    background:#f8fafc;
    color:#1d4ed8
}
.todo-task-delete{
    display:none
}
.todo-task-row.todo-task-details-open .todo-task-delete{
    display:inline-flex
}
.todo-task-actions-cell .btn{
    justify-content:center;
    padding:5px 6px;
    font-size:calc(11px * var(--request-text-scale))
}
.todo-task-row.todo-task-completed{
    border-left-color:#22c55e;
    background:#f0fdf4
}
.todo-task-row.todo-task-completed .todo-task-time-input,
.todo-task-row.todo-task-completed .todo-task-description-input{
    color:#166534;
    opacity:.7
}
.todo-task-row.todo-task-completed .todo-task-description-input,
.todo-task-row.todo-task-completed .todo-task-description-check span{
    text-decoration:line-through
}
.todo-task-row.todo-task-upcoming{
    border-left-color:#3b82f6;
    background:#f8fbff
}
.todo-task-row.todo-task-upcoming .todo-task-time-input{
    color:#1d4ed8
}
.todo-task-row.todo-task-overdue{
    border-left-color:#ef4444;
    background:#fffafa
}
.todo-task-row.todo-task-overdue .todo-task-time-input{
    color:#b91c1c
}
.todo-task-row.todo-task-unsaved{
    border-color:#fb923c;
    border-left-color:#f97316;
    background:#fff7ed
}
.todo-task-row.todo-task-unsaved input,
.todo-task-row.todo-task-unsaved textarea{
    border-color:#fb923c
}
.todo-task-row.todo-task-highlight{
    box-shadow:0 0 0 3px rgba(37,99,235,.2),0 5px 16px rgba(15,23,42,.08)
}
.todo-task-row.todo-task-time-change-highlight{
    border-color:#f59e0b;
    border-left-color:#f59e0b;
    background:#fef3c7;
    box-shadow:0 0 0 4px rgba(245,158,11,.28),0 8px 22px rgba(15,23,42,.12)
}
.todo-task-row.todo-task-time-change-highlight .todo-task-time-input{
    background:#fffbeb;
    color:#92400e
}
.todo-task-retry[hidden]{
    display:none
}
.todo-task-footer{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    justify-content:flex-start;
    margin-top:12px
}
@media(max-width:720px){
    .todo-workspace-panel{
        gap:10px
    }
    .todo-timeline{
        padding:12px 10px 9px
    }
    .todo-tabs-segment{
        padding:9px 10px
    }
    .todo-category{
        padding:12px 10px
    }
    .request-header-top-row{
        min-width:0
    }
    .request-unit-name{
        flex:1 1 auto;
        min-width:0;
        overflow-wrap:anywhere
    }
    .request-header-actions{
        min-width:0
    }
    .todo-workspace-panel,
    .todo-workspace-overview,
    .todo-timeline,
    .todo-tab-bar,
    .todo-tabs,
    .todo-category,
    .todo-category-heading,
    .todo-task-table-wrap,
    .todo-task-table,
    .todo-task-table tbody,
    .todo-task-table .todo-task-row{
        max-width:100%;
        min-width:0
    }
    .todo-task-table-wrap{
        overflow-x:clip;
        overflow-y:visible
    }
    .todo-task-description-check-help-popup{
        position:fixed;
        z-index:220;
        top:var(--todo-task-help-top,12px);
        right:auto;
        bottom:auto;
        left:var(--todo-task-help-left,12px);
        width:var(--todo-task-help-width,min(320px,calc(100vw - 24px)));
        max-width:calc(100vw - 24px);
        max-height:var(--todo-task-help-max-height,min(50dvh,320px));
        overflow-y:auto;
        overscroll-behavior:contain;
        transform:translateY(-2px)
    }
    .todo-task-description-check-help-popup::before{
        display:none
    }
    .todo-task-description-check-help-wrap::after{
        content:"";
        position:fixed;
        z-index:221;
        top:var(--todo-task-help-arrow-y,0);
        left:var(--todo-task-help-arrow-x,0);
        width:8px;
        height:8px;
        box-sizing:border-box;
        border-top:1px solid #cbd5e1;
        border-left:1px solid #cbd5e1;
        background:#fff;
        opacity:0;
        pointer-events:none;
        transform:rotate(45deg);
        visibility:hidden
    }
    .todo-task-description-check-help-wrap.todo-task-help-above::after{
        transform:rotate(225deg)
    }
    .todo-task-description-check-help-wrap:not(.is-open):hover .todo-task-description-check-help-popup,
    .todo-task-description-check-help-wrap:not(.is-open):focus-within .todo-task-description-check-help-popup{
        opacity:0;
        transform:translateY(-2px);
        visibility:hidden
    }
    .todo-task-description-check-help-wrap.is-open .todo-task-description-check-help-popup{
        opacity:1;
        transform:translateY(0);
        visibility:visible
    }
    .todo-task-description-check-help-wrap.is-open::after{
        opacity:1;
        visibility:visible
    }
    .todo-category-heading>div{
        min-width:0
    }
    .todo-category-heading-actions{
        max-width:100%;
        min-width:0;
        flex-wrap:wrap
    }
    .todo-workspace-overview{
        top:0;
        margin:-2px -2px 14px;
        padding:2px 2px 0
    }
    .todo-timeline{
        padding:10px 10px 7px
    }
    .todo-timeline-heading{
        align-items:flex-start;
        flex-direction:column;
        gap:2px
    }
    .todo-timeline-heading>div{
        flex-wrap:wrap
    }
    .todo-timeline-legend{
        gap:4px 10px
    }
    .todo-tab-bar{
        align-items:stretch;
        flex-direction:column
    }
    .todo-task-table .todo-task-row{
        grid-template-columns:38px minmax(0,1fr) 40px;
        grid-template-areas:
            "done time actions"
            "description description description"
            "warning warning warning";
        gap:5px 7px
    }
    .todo-task-row.todo-task-time-tools-open .todo-task-time-tools-cell{
        position:fixed;
        z-index:230;
        top:var(--todo-task-time-tools-top,12px);
        left:var(--todo-task-time-tools-left,12px);
        display:block!important;
        width:var(--todo-task-time-tools-width,min(300px,calc(100vw - 24px)));
        max-width:calc(100vw - 24px);
        max-height:calc(100dvh - 24px);
        overflow-y:auto;
        overscroll-behavior:contain;
        padding:8px!important;
        border:1px solid #cbd5e1;
        border-radius:10px;
        background:#fff;
        box-shadow:0 12px 30px rgba(15,23,42,.22)
    }
    .todo-task-row.todo-task-time-tools-open .todo-task-time-tools-cell::before{
        content:"";
        position:absolute;
        top:var(--todo-task-time-tools-arrow-top,18px);
        left:-5px;
        width:8px;
        height:8px;
        box-sizing:border-box;
        border-top:1px solid #cbd5e1;
        border-left:1px solid #cbd5e1;
        background:#fff;
        transform:rotate(-45deg)
    }
    .todo-task-time-input{
        max-width:96px;
        min-width:0;
        text-align:left;
        cursor:pointer
    }
    .todo-task-done-cell{
        padding-top:6px!important
    }
    .todo-task-warning-cell{
        padding:3px 4px 0!important
    }
}
.request-unit-name{
    margin:0;
    color:#0f172a;
    font-size:calc(24px * var(--request-text-scale));
    font-weight:800;
    letter-spacing:-.025em;
    line-height:1.15
}
.request-unit-name::after{
    content:"";
    display:block;
    width:34px;
    height:3px;
    margin:9px 0 8px;
    border-radius:999px;
    background:#60a5fa
}
.request-todo-button,
.request-help-button{
    display:inline-flex;
    flex:0 0 auto;
    align-items:center;
    gap:6px;
    min-height:34px;
    padding:6px 10px;
    border:1px solid #cbd5e1;
    border-radius:9px;
    background:#fff;
    color:#334155;
    font-size:calc(12px * var(--request-text-scale));
    font-weight:750;
    text-decoration:none;
    box-shadow:0 1px 2px rgba(15,23,42,.04)
}
.request-more-button{
    display:inline-flex;
    flex:0 0 auto;
    align-items:center;
    justify-content:center;
    width:34px;
    min-width:34px;
    height:34px;
    padding:0;
    border:1px solid #cbd5e1;
    border-radius:50%;
    background:#fff;
    color:#334155;
    font-size:20px;
    font-weight:850;
    line-height:1;
    cursor:pointer;
    user-select:none
}
.request-more-button:hover,
.request-more-button:focus-visible,
.request-more-button[aria-expanded="true"]{
    border-color:#93c5fd;
    background:#eff6ff;
    color:#1d4ed8
}
.request-more-popover{
    --request-more-arrow-left:50%;
    position:fixed;
    z-index:140;
    width:min(230px,calc(100vw - 16px));
    padding:6px;
    border:1px solid #cbd5e1;
    border-radius:10px;
    background:#fff;
    color:#0f172a;
    box-shadow:0 12px 30px rgba(15,23,42,.22)
}
.request-more-popover[hidden]{
    display:none!important
}
.request-more-popover::before{
    content:"";
    position:absolute;
    left:var(--request-more-arrow-left);
    top:-6px;
    width:11px;
    height:11px;
    transform:translateX(-50%) rotate(45deg);
    border-left:1px solid #cbd5e1;
    border-top:1px solid #cbd5e1;
    background:#fff
}
.request-more-popover.open-above::before{
    top:auto;
    bottom:-6px;
    transform:translateX(-50%) rotate(225deg)
}
.request-more-item{display:flex;width:100%;align-items:center;min-height:40px;padding:8px 10px;border:0;border-radius:7px;background:transparent;color:#0f172a;font:inherit;font-size:calc(13px * var(--request-text-scale));font-weight:700;text-align:left;cursor:pointer}
.request-more-item:hover,.request-more-item:focus-visible{background:#eff6ff;color:#1d4ed8}
.request-more-item[hidden]{display:none!important}
.request-todo-button:hover,
.request-todo-button:focus-visible,
.request-help-button:hover,
.request-help-button:focus-visible{
    border-color:#93c5fd;
    background:#eff6ff;
    color:#1d4ed8
}
.request-help-button-mark{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:18px;
    height:18px;
    border-radius:999px;
    background:#dbeafe;
    color:#1d4ed8;
    font-size:calc(12px * var(--request-text-scale));
    font-weight:850;
    line-height:1
}
.request-title-row{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:10px
}
.request-title-row h1{
    margin:0 0 2px;
    color:#334155;
    font-size:calc(19px * var(--request-text-scale));
    font-weight:750;
    letter-spacing:-.01em
}
.todo-header-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:8px;
    flex-wrap:wrap
}
.todo-header-actions form{
    margin:0
}
.todo-selected-person-toolbar{
    margin-top:0
}
.todo-more-download-form{
    margin:0
}
.request-person-form{
    margin-top:10px
}
.request-person-form label{
    display:flex;
    align-items:center;
    gap:8px;
    font-size:calc(12px * var(--request-text-scale));
    color:var(--muted)
}
.request-person-form select{
    min-width:260px;
    max-width:100%;
    padding:6px 8px
}
.request-selector-form{
    display:block
}
.request-staff-picker{
    max-width:680px;
    margin-top:0
}
.request-staff-picker-step{
    margin-top:18px
}
.request-staff-picker-step[hidden],
.request-staff-option[hidden],
.request-staff-no-results[hidden]{
    display:none !important
}
.request-staff-picker-heading h2,
.request-staff-picker-toolbar h2{
    margin:0;
    font-size:calc(17px * var(--request-text-scale))
}
.request-staff-picker-heading p,
.request-staff-picker-toolbar p{
    margin:2px 0 0
}
.request-role-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(145px,1fr));
    gap:8px;
    margin-top:10px
}
.request-role-option{
    display:flex;
    min-height:62px;
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    gap:2px;
    padding:10px 12px;
    border:1px solid #d8e1ea;
    border-radius:10px;
    background:#fff;
    color:var(--text);
    text-align:left;
    box-shadow:inset 3px 0 0 #60a5fa,0 2px 6px rgba(15,23,42,.05);
    transition:border-color .15s ease,background .15s ease,box-shadow .15s ease,transform .15s ease
}
.request-role-option:hover,
.request-role-option:focus-visible{
    border-color:#93c5fd;
    background:#f8fbff;
    color:var(--text);
    box-shadow:inset 3px 0 0 #3b82f6,0 5px 14px rgba(15,23,42,.08);
    transform:translateY(-1px)
}
.request-role-option:focus-visible{
    outline:3px solid rgba(37,99,235,.12);
    outline-offset:1px
}
.request-role-option-all{
    grid-column:1/-1;
    min-height:42px;
    flex-direction:row;
    align-items:center;
    justify-content:center;
    gap:6px;
    padding:8px 10px;
    border-color:#e2e8f0;
    background:#f8fafc;
    color:#475569;
    box-shadow:none
}
.request-role-option-all:hover,
.request-role-option-all:focus-visible{
    border-color:#cbd5e1;
    background:#f1f5f9;
    color:#0f172a;
    box-shadow:none;
    transform:none
}
.request-role-name{
    font-size:calc(15px * var(--request-text-scale));
    font-weight:750
}
.request-role-count{
    color:var(--muted);
    font-size:calc(12px * var(--request-text-scale))
}
.request-staff-picker-toolbar{
    display:flex;
    align-items:flex-start;
    gap:10px
}
.request-selected-person-toolbar h1{
    margin:0 0 2px;
    color:#334155;
    font-size:calc(19px * var(--request-text-scale));
    font-weight:750;
    letter-spacing:-.01em
}
.request-picker-back{
    display:inline-flex;
    align-items:center;
    flex:0 0 auto;
    padding:6px 10px;
    border:1px solid #bfdbfe;
    border-radius:9px;
    background:#eff6ff;
    color:#1d4ed8;
    font-size:calc(12px * var(--request-text-scale));
    font-weight:750;
    text-decoration:none;
    box-shadow:none
}
.request-picker-back:hover,
.request-picker-back:focus-visible{
    border-color:#93c5fd;
    background:#dbeafe;
    color:#1e40af
}
.request-staff-search-label{
    display:block;
    margin:14px 0 5px;
    color:var(--text);
    font-size:calc(12px * var(--request-text-scale));
    font-weight:750
}
.request-staff-search{
    width:100%;
    padding:11px 12px;
    border-radius:10px;
    font-size:calc(16px * var(--request-text-scale))
}
.request-staff-search:focus{
    border-color:#60a5fa;
    outline:3px solid rgba(37,99,235,.12)
}
.request-staff-results-status{
    min-height:18px;
    margin:5px 1px 7px
}
.request-staff-list{
    display:grid;
    gap:7px;
    max-height:min(52vh,520px);
    overflow:auto;
    padding:1px 2px 2px;
    overscroll-behavior:contain
}
.request-staff-option{
    display:flex;
    width:100%;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:11px 13px;
    border-color:#dbe3ed;
    border-radius:10px;
    text-align:left;
    font-weight:700
}
.request-staff-option:hover,
.request-staff-option:focus-visible{
    border-color:#93c5fd;
    background:#eff6ff
}
.request-staff-no-results,
.request-staff-picker-empty{
    margin-top:10px;
    padding:12px 14px;
    border:1px dashed #cbd5e1;
    border-radius:10px;
    background:#f8fafc;
    color:var(--muted)
}
.request-staff-noscript{
    display:flex;
    align-items:end;
    gap:8px;
    margin-top:10px
}
.request-staff-noscript label{
    flex:1 1 auto
}
.request-staff-noscript select{
    width:100%;
    margin-top:4px
}
.request-schedule-panel{
    padding:12px 13px 14px;
    margin-bottom:12px;
    border-color:#d7e0ea;
    background:#fff
}
.request-schedule-panel form,
[data-request-schedule-workspace]{
    min-width:0
}
.request-schedule-panel .request-editor-panel{
    margin:0;
    padding:0;
    background:transparent;
    border:0;
    border-radius:0;
    box-shadow:none
}
.request-schedule-form{
    width:100%;
    margin:0
}
.request-schedule-selector{
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    align-items:center;
    column-gap:12px;
    width:100%
}
.request-schedule-selector noscript{
    grid-column:1 / -1
}
.request-schedule-selector-label{
    color:var(--text);
    font-size:calc(12px * var(--request-text-scale));
    font-weight:800;
    letter-spacing:.03em;
    text-transform:uppercase
}
.request-notice{
    display:flex;
    align-items:flex-start;
    gap:7px;
    width:100%;
    min-width:0;
    padding:6px 9px;
    border:1px solid #dbe3ed;
    border-radius:6px;
    font-size:calc(12px * var(--request-text-scale));
    line-height:1.4;
    font-weight:500;
    overflow-wrap:anywhere
}
.request-notice svg{
    width:15px;
    height:15px;
    flex-shrink:0;
    margin-top:1px
}
.request-notice span{
    min-width:0
}
.request-notice.is-loading{
    margin:9px 0;
    background:#f1f5f9;
    color:#475569
}
.request-schedule-status{
    display:inline-flex;
    align-items:center;
    min-height:22px;
    padding:2px 8px;
    border:1px solid #dbe3ed;
    border-radius:999px;
    background:white;
    color:var(--muted);
    font-size:calc(11px * var(--request-text-scale));
    font-weight:750;
    white-space:nowrap
}
.request-schedule-status.is-open,
.request-notice.is-open{
    border-color:#bbf7d0;
    background:#f0fdf4;
    color:#166534
}
.request-schedule-status.is-posted,
.request-notice.is-posted{
    border-color:#bfdbfe;
    background:#eff6ff;
    color:#1d4ed8
}
.request-schedule-status.is-closed,
.request-notice.is-closed{
    border-color:#fed7aa;
    background:#fff7ed;
    color:#9a3412
}
.request-schedule-status.is-historical,
.request-notice.is-historical{
    background:#f1f5f9;
    color:#475569
}

.request-live-status{
    margin:0 0 10px;
    font-weight:700
}
.request-live-status:empty{
    display:none
}
.schedule-live-status:empty{
    display:none
}
.schedule-live-status.is-warning{
    flex:1 1 100%;
    color:#fbbf24;
    font-weight:700;
    text-align:right
}
.request-schedule-select-shell{
    position:relative;
    min-width:0
}
@media(max-width:600px){
    .request-schedule-panel{
        padding:10px;
        border-radius:10px
    }
    .request-schedule-selector{
        grid-template-columns:minmax(0,1fr);
        row-gap:7px
    }
}
.request-schedule-select-shell::after{
    content:"";
    position:absolute;
    top:50%;
    right:14px;
    width:7px;
    height:7px;
    border-right:2px solid #64748b;
    border-bottom:2px solid #64748b;
    pointer-events:none;
    transform:translateY(-65%) rotate(45deg)
}
.request-selector-form select{
    width:100%;
    min-width:0;
    min-height:42px;
    padding:8px 38px 8px 11px;
    appearance:none;
    border:1px solid #cbd5e1;
    border-radius:9px;
    background:white;
    color:var(--text);
    font:inherit;
    font-weight:700;
    box-shadow:0 1px 2px rgba(15,23,42,.04)
}
.request-selector-form select:hover{
    border-color:#94a3b8
}
.request-selector-form select:focus{
    outline:none;
    border-color:var(--accent);
    box-shadow:0 0 0 3px rgba(37,99,235,.12)
}
.request-locked{
    margin:0 0 10px
}
.request-calendar-export,
[data-calendar-export-modal]{
    display:none!important
}
.request-calendar-export{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin:0 0 10px;
    padding:10px 12px;
    border:1px solid #dbe3ed;
    border-radius:10px;
    background:#f8fafc
}
.request-calendar-export>div{
    display:flex;
    flex-direction:column;
    gap:2px
}
.request-calendar-export .btn{
    flex:0 0 auto
}
.calendar-export-modal .modal-field input{
    width:100%;
    margin-top:4px
}
.staff-request-help-modal{
    width:min(560px,100%)
}
.staff-request-help-modal .modal-content{
    padding-right:2px
}
.request-help-progress{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin-bottom:16px;
    padding-bottom:12px;
    border-bottom:1px solid #eef2f7;
    color:#64748b;
    font-size:calc(12px * var(--request-text-scale));
    font-weight:750
}
.request-help-progress-dots{
    display:flex;
    align-items:center;
    gap:6px
}
.request-help-progress-dot{
    display:block;
    width:7px;
    height:7px;
    border-radius:999px;
    background:#cbd5e1;
    transition:width .15s ease,background .15s ease
}
.request-help-progress-dot.active{
    width:20px;
    background:#3b82f6
}
.request-help-step[hidden]{
    display:none !important
}
.request-help-step h3{
    margin:0 0 8px;
    color:#0f172a;
    font-size:calc(22px * var(--request-text-scale));
    line-height:1.2
}
.request-help-step h3:focus{
    outline:none
}
.request-help-step p{
    margin:0 0 10px;
    line-height:1.55
}
.request-help-step p:last-child{
    margin-bottom:0
}
.request-pin-offer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin-top:12px;
    padding:10px 12px;
    border:1px solid #dbe3ed;
    border-radius:10px;
    background:#f8fafc
}
.request-pin-offer>div{
    display:flex;
    flex-direction:column;
    gap:2px
}
.request-pin-locked-summary{
    border-color:#bfdbfe;
    background:linear-gradient(180deg,#eff6ff 0,#fff 100%)
}
[data-request-pin-modal]{
    align-items:stretch;
    justify-content:stretch;
    padding:0;
    background:#fff
}
.request-pin-modal{
    width:100vw;
    height:100vh;
    height:100dvh;
    max-height:none;
    border-radius:0;
    box-shadow:none;
    padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left))
}
.request-pin-modal .modal-content{
    display:flex;
    flex-direction:column;
    justify-content:center
}
.request-pin-form{
    width:100%
}
.request-pin-keypad-shell{
    display:flex;
    flex-direction:column;
    gap:16px;
    width:min(410px,100%);
    margin:auto
}
.request-pin-step-copy{
    display:flex;
    flex-direction:column;
    gap:4px;
    text-align:center
}
.request-pin-step-copy strong{
    font-size:calc(16px * var(--request-text-scale))
}
.request-pin-display{
    display:grid;
    place-items:center;
    min-height:44px;
    padding:10px 12px;
    border:1px solid #dbe3ed;
    border-radius:12px;
    background:#f8fafc
}
.request-pin-a11y{
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0
}
.request-pin-dots{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:7px;
    width:min(250px,100%)
}
.request-pin-dot{
    width:8px;
    height:8px;
    border:1.5px solid #94a3b8;
    border-radius:999px;
    background:#fff;
    transition:background .1s ease,border-color .1s ease,transform .1s ease
}
.request-pin-dot.filled{
    border-color:#172033;
    background:#172033;
    transform:scale(1.05)
}
.request-pin-number-pad{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:9px;
    width:min(320px,100%);
    margin:0 auto
}
.request-pin-key{
    min-height:58px;
    border:1px solid #cbd5e1;
    border-radius:13px;
    background:#fff;
    color:#172033;
    font-size:calc(22px * var(--request-text-scale));
    font-weight:800;
    font-variant-numeric:tabular-nums;
    cursor:pointer;
    box-shadow:0 2px 5px rgba(15,23,42,.06);
    transition:background .1s ease,border-color .1s ease,box-shadow .1s ease,transform .05s ease
}
.request-pin-key:hover{
    border-color:#94a3b8;
    background:#f8fafc
}
.request-pin-key:active{
    transform:translateY(1px);
    box-shadow:none
}
.request-pin-key:focus-visible{
    outline:2px solid #60a5fa;
    outline-offset:2px
}
.request-pin-key-utility{
    background:#f8fafc;
    color:#475569;
    font-size:calc(12px * var(--request-text-scale));
    font-weight:800
}
.request-pin-key-backspace{
    font-size:calc(20px * var(--request-text-scale))
}
.request-pin-feedback{
    min-height:18px;
    text-align:center
}
.request-pin-feedback.error{
    color:#b91c1c;
    font-weight:750
}
.request-pin-modal-actions{
    justify-content:flex-end
}
.request-pin-status{
    display:flex;
    align-items:center;
    gap:9px;
    margin-top:12px;
    padding:9px 11px;
    border:1px solid #bbf7d0;
    border-radius:10px;
    background:#f0fdf4
}
.request-pin-status-mark{
    display:grid;
    place-items:center;
    flex:0 0 24px;
    width:24px;
    height:24px;
    border-radius:999px;
    background:#166534;
    color:#fff;
    font-weight:900
}
.request-pin-status-copy{
    display:flex;
    flex:1 1 auto;
    min-width:0;
    flex-direction:column;
    gap:1px
}
.request-pin-status-actions{
    display:flex;
    align-items:center;
    flex:0 0 auto;
    flex-wrap:wrap;
    gap:8px;
    margin-left:auto
}
.request-pin-status-actions form{
    margin:0
}
.request-instructions{
    display:block;
    margin:9px 0
}
.request-coverage-legend{
    display:flex;
    align-items:center;
    gap:7px;
    margin:-2px 0 10px
}
.request-coverage-legend .request-day-coverage{
    flex:0 0 auto
}
.request-posted-legend{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px 14px;
    margin:0 0 10px;
    color:#475569
}
.request-posted-legend-item{
    display:inline-flex;
    align-items:center;
    gap:5px
}
.request-posted-legend-key{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:18px;
    height:18px;
    padding:0 4px;
    border:1px solid #cbd5e1;
    border-radius:4px;
    background:#f8fafc;
    color:#475569;
    font-size:calc(9px * var(--request-text-scale));
    font-weight:900;
    line-height:1
}
.request-posted-legend-match{
    display:inline-grid;
    place-items:center;
    min-width:18px;
    height:18px;
    color:#15803d;
    font-size:calc(12px * var(--request-text-scale));
    font-weight:900;
    line-height:1
}
.request-period{
    border:1px solid var(--border);
    border-radius:9px;
    overflow:hidden;
    margin:10px 0;
    background:#fff
}
.request-period-head{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
    padding:7px 9px;
    background:#f8fafc;
    border-bottom:1px solid var(--border)
}
.request-period-head strong{
    margin-right:5px
}
.request-hours{
    font-weight:750;
    font-size:calc(12px * var(--request-text-scale));
    background:#e0e7ff;
    border-radius:999px;
    padding:3px 8px;
    white-space:nowrap
}
.request-weekday-header,
.request-week{
    display:grid;
    grid-template-columns:calc(28px * var(--request-text-scale)) minmax(0,1fr);
    align-items:stretch
}
.request-weekday-header{
    background:#f8fafc;
    border-bottom:1px solid #edf0f3
}
.request-weekday-spacer{
    border-right:1px solid #edf0f3
}
.request-weekday-days{
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    gap:3px;
    padding:4px 4px 2px;
    color:#475569;
    font-size:calc(11px * var(--request-text-scale));
    font-weight:800;
    line-height:1;
    text-align:center
}
.request-week{
    border-bottom:1px solid #edf0f3
}
.request-week:last-child{
    border-bottom:0
}
.request-week-label{
    display:grid;
    place-items:center;
    font-size:calc(10px * var(--request-text-scale));
    font-weight:800;
    color:#64748b;
    background:#f8fafc;
    border-right:1px solid #edf0f3
}
.request-week-days{
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    gap:3px;
    padding:4px
}
.request-day{
    position:relative;
    min-width:0;
    min-height:calc(68px * var(--request-text-scale));
    padding:3px 2px;
    border:1px solid #d7dee7;
    border-radius:6px;
    background:#fff;
    text-align:center;
    line-height:1.05;
    display:grid;
    grid-template-rows:calc(13px * var(--request-text-scale)) calc(19px * var(--request-text-scale)) minmax(calc(24px * var(--request-text-scale)),1fr);
    align-items:center;
    justify-items:center;
    gap:2px;
    touch-action:manipulation;
    -webkit-tap-highlight-color:transparent;
    user-select:none
}
.request-day:hover{
    background:#f8fafc
}
.request-day:disabled{
    cursor:default;
    opacity:1
}
.request-day-date{
    width:100%;
    font-size:calc(11px * var(--request-text-scale));
    color:#64748b;
    line-height:1;
    text-align:center
}
.request-day-coverage-slot{
    min-height:calc(19px * var(--request-text-scale));
    display:flex;
    align-items:center;
    justify-content:center
}
.request-day-coverage{
    display:inline-flex;
    min-width:19px;
    align-items:center;
    justify-content:center;
    gap:3px;
    padding:2px 4px;
    border:1px solid rgba(15,23,42,.12);
    border-radius:999px;
    background:var(--request-coverage-color,#fff);
    color:var(--request-coverage-text-color,#334155);
    font-size:calc(9px * var(--request-text-scale));
    font-weight:900;
    line-height:1;
    text-align:center
}
.request-day-requested-count{
    opacity:.78;
    font-weight:850
}
.request-shift-time{
    display:inline-flex;
    flex-direction:column;
    align-items:center;
    line-height:1.02;
    vertical-align:middle
}
.request-shift-time-end{
    padding-left:0
}
.request-day-state{
    width:100%;
    min-height:calc(24px * var(--request-text-scale));
    font-size:calc(13px * var(--request-text-scale));
    font-weight:850;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
    margin-top:0
}
.request-day.posted-result,
.request-day.posted-result:hover{
    min-height:calc(72px * var(--request-text-scale));
    height:auto;
    padding:4px 3px 2px;
    grid-template-rows:calc(13px * var(--request-text-scale)) auto;
    align-content:start;
    background:#fff;
    border-color:#d7dee7
}
.request-day-posted-outcomes{
    width:100%;
    min-width:0;
    display:flex;
    flex-direction:column;
    align-self:start;
    gap:4px
}
.request-day-posted-line{
    width:100%;
    min-width:0;
    min-height:24px;
    display:grid;
    grid-template-columns:calc(14px * var(--request-text-scale)) minmax(0,1fr);
    align-items:center;
    gap:2px;
    line-height:1.05
}
.request-day-outcome-key{
    display:grid;
    place-items:center;
    width:calc(14px * var(--request-text-scale));
    height:calc(14px * var(--request-text-scale));
    border:1px solid #cbd5e1;
    border-radius:4px;
    background:#f8fafc;
    color:#475569;
    font-size:calc(8px * var(--request-text-scale));
    font-weight:900;
    line-height:1
}
.request-day-outcome-key.is-hidden{
    visibility:hidden
}
.request-day-outcome-value{
    min-width:0;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:calc(10px * var(--request-text-scale));
    line-height:1.05;
    overflow-wrap:anywhere
}
.request-day-posted-scheduled .request-day-outcome-value{
    font-weight:900;
    color:#0f172a
}
.request-day-posted-request .request-day-outcome-value{
    font-weight:750;
    color:#64748b
}
.request-day-request-match{
    display:inline-grid;
    place-items:center;
    min-width:18px;
    margin-left:0;
    font-size:calc(12px * var(--request-text-scale));
    font-weight:900;
    line-height:1;
    color:#15803d
}
.request-rotation-legend-key{
    display:inline-block;
    box-sizing:border-box;
    flex-grow:0;
    flex-shrink:0;
    flex-basis:16px;
    width:16px;
    height:16px;
    margin-top:1px;
    border:1px solid #d7dee7;
    border-radius:4px;
    background:#fff
}
.request-day.state-none .request-day-state{
    color:#b7c0cc
}
.request-day.state-12{
    background:#dbeafe;
    border-color:#93c5fd
}
.request-day.state-8{
    background:#dcfce7;
    border-color:#86efac
}
.request-day.state-status,
.request-rotation-legend-key.is-status{
    background:#fee2e2;
    border-color:#fca5a5
}
.request-day.posted-result.state-none,
.request-day.posted-result.state-8,
.request-day.posted-result.state-12,
.request-day.posted-result.state-status,
.request-day.posted-result.state-none:hover,
.request-day.posted-result.state-8:hover,
.request-day.posted-result.state-12:hover,
.request-day.posted-result.state-status:hover{
    background:#fff;
    border-color:#d7dee7
}
.request-day.state-8 .request-day-state,
.request-day.state-12 .request-day-state,
.request-day.state-status .request-day-state{
    font-size:calc(10px * var(--request-text-scale));
    line-height:1.1;
    overflow-wrap:anywhere
}
.request-day.state-status .request-day-state{
    color:#991b1b
}
.request-day.mandated-weekend,
.request-day.mandated-weekend:hover,
.request-rotation-legend-key.is-weekend{
    box-shadow:inset 0 0 0 2px var(--request-weekend-color,#93c5fd)
}
/* Each holiday name occupies one clipped line; full names remain in the chooser. */
.request-day.has-holiday{
    grid-template-rows:auto calc(19px * var(--request-text-scale)) minmax(calc(24px * var(--request-text-scale)),1fr);
    align-content:start
}
.request-day.has-holiday .request-day-date{
    display:grid;
    min-width:0;
    max-width:100%;
    width:100%;
    align-self:start;
    gap:2px;
    line-height:1.15
}
.request-day-holiday-name{
    display:block;
    min-width:0;
    max-width:100%;
    padding:1px;
    border-radius:3px;
    white-space:nowrap;
    overflow:hidden;
    overflow-wrap:normal;
    text-overflow:clip;
    color:#334155;
    font-weight:600
}
.request-day-holiday-name.is-other-group{
    color:#4b5563;
    font-weight:400
}
.request-day.outside-rotation.state-none:not(.posted-result){
    background:#d1d5db
}
.request-day.outside-rotation.state-none:not(.posted-result):hover{
    background:#c7cdd4
}
.request-day.outside-rotation.state-none:not(.posted-result) .request-day-date{
    color:#4b5563
}
.request-rotation-legend{
    display:grid;
    gap:6px;
    margin:10px 0;
    min-width:0;
    line-height:1.4
}
.request-rotation-legend-item{
    display:flex;
    align-items:flex-start;
    gap:7px;
    min-width:0
}
.request-rotation-legend-item > span:last-child{
    min-width:0;
    overflow-wrap:anywhere
}
.request-rotation-legend-key.is-outside{
    background:#d1d5db
}
.request-day.has-holiday.posted-result{
    grid-template-rows:auto auto
}
.request-shift-date{
    flex-shrink:0;
    min-width:0;
    white-space:normal;
    overflow-wrap:anywhere;
    margin:0 1px 6px;
    color:#475569;
    font-size:12px;
    font-weight:600;
    line-height:1.2
}
.request-shift-date[hidden]{
    display:none
}
.request-shift-popover{
    --request-shift-arrow-left:50%;
    --request-shift-max-height:80vh;
    position:fixed;
    display:flex;
    flex-direction:column;
    z-index:120;
    width:min(320px,calc(100vw - 16px));
    max-height:var(--request-shift-max-height);
    overflow:visible;
    padding:10px;
    border:1px solid #cbd5e1;
    border-radius:10px;
    background:#fff;
    box-shadow:0 12px 30px rgba(15,23,42,.22)
}
.request-shift-popover[hidden]{
    display:none !important
}
.request-shift-popover::before{
    content:"";
    position:absolute;
    left:var(--request-shift-arrow-left);
    top:-6px;
    width:11px;
    height:11px;
    transform:translateX(-50%) rotate(45deg);
    border-left:1px solid #cbd5e1;
    border-top:1px solid #cbd5e1;
    background:#fff
}
.request-shift-popover.open-above::before{
    top:auto;
    bottom:-6px;
    transform:translateX(-50%) rotate(225deg)
}
.request-shift-staffing{
    position:relative;
    flex-grow:0;
    flex-shrink:0;
    flex-basis:auto;
    min-height:0;
    overflow:visible;
    margin:0 1px 8px;
    padding:4px 6px;
    border:1px solid #dbe3ed;
    border-radius:8px;
    background:#f8fafc
}
.request-shift-staffing[hidden]{
    display:none
}
.request-coverage-numbers{
    max-width:100%;
    overflow-x:auto;
    overflow-y:hidden
}
.request-coverage-numbers:focus-visible{
    outline:2px solid #64748b;
    outline-offset:1px
}
.request-coverage-number-table{
    width:100%;
    border-collapse:collapse;
    table-layout:auto
}
.request-coverage-number-table th,
.request-coverage-number-table td{
    min-width:48px;
    padding:4px 3px;
    border:0;
    background:transparent;
    text-align:center;
    white-space:nowrap
}
.request-coverage-number-table th{
    color:#475569;
    font-size:10px;
    font-weight:500
}
.request-coverage-number-badge{
    display:inline-block;
    min-width:32px;
    padding:1px 7px;
    border:1px solid rgba(15,23,42,.12);
    border-radius:999px;
    font-size:11px;
    font-weight:650;
    line-height:1.2
}
.request-coverage-graph-legend{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:3px 10px;
    color:#475569;
    font-size:10px;
    line-height:1.4
}
.request-coverage-graph-key{
    display:inline-flex;
    align-items:center;
    gap:4px;
    white-space:nowrap
}
.request-coverage-graph-key::before{
    content:"";
    width:16px;
    border-top:2px solid #64748b
}
.request-coverage-graph-key.key-combined::before{
    border-top-style:dashed
}
.request-coverage-graph-scroll{
    max-width:100%;
    overflow-x:auto;
    overflow-y:hidden;
    overscroll-behavior-x:contain
}
.request-coverage-graph-canvas{
    width:100%
}
.request-coverage-graph{
    display:block;
    width:100%;
    height:58px;
    overflow:visible
}
.request-coverage-graph-grid{
    stroke:#e2e8f0;
    stroke-width:.6
}
.request-coverage-graph-scale{
    fill:#64748b;
    font-size:9px
}
.request-coverage-graph-guide{
    stroke:#94a3b8;
    stroke-width:.7;
    stroke-dasharray:2 3;
    pointer-events:none
}
.request-coverage-graph-hit{
    cursor:pointer
}
.request-coverage-graph-times{
    position:relative;
    height:24px
}
.request-coverage-graph-time{
    position:absolute;
    top:0;
    transform:translateX(-50%);
    width:44px;
    min-height:24px;
    padding:3px 0;
    border:0;
    border-radius:4px;
    background:transparent;
    color:#475569;
    font-size:10px;
    font-weight:600;
    cursor:pointer
}
.request-coverage-graph-time[aria-pressed="true"],
.request-coverage-graph-time:hover{
    background:#e2e8f0;
    color:#0f172a
}
.request-coverage-graph-time:focus-visible{
    outline:2px solid #2563eb;
    outline-offset:-2px
}
.request-coverage-graph-detail{
    position:absolute;
    left:5px;
    right:5px;
    top:21px;
    z-index:5;
    display:grid;
    min-height:0;
    padding:6px 9px;
    border:1px solid #cbd5e1;
    border-radius:6px;
    background:#fff;
    box-shadow:0 3px 9px rgba(15,23,42,.14);
    pointer-events:auto;
    cursor:pointer;
    text-align:left;
    color:#334155;
    font-size:11px;
    line-height:1.3;
    overflow-wrap:anywhere
}
.request-coverage-graph-detail[hidden]{
    display:none
}
.request-coverage-graph-detail:focus-visible{
    outline:2px solid #2563eb;
    outline-offset:1px
}
.request-coverage-graph-detail-content{
    display:grid;
    gap:1px
}
.request-coverage-graph-detail-heading{
    color:#64748b;
    font-size:10px
}
.request-shift-choice-list{
    display:grid;
    flex:1 1 auto;
    min-height:0;
    gap:5px;
    overflow-y:auto;
    padding:1px
}
.request-shift-popover.is-height-constrained{
    overflow-y:auto;
    overscroll-behavior-y:contain
}
.request-shift-popover.is-height-constrained .request-shift-choice-list{
    flex:0 0 auto;
    overflow-y:visible
}
.request-shift-choice{
    width:100%;
    min-height:46px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:7px 8px;
    border:1px solid #d7dee7;
    border-radius:7px;
    background:#fff;
    color:var(--text);
    text-align:left;
    cursor:pointer
}
.request-shift-choice:hover,
.request-shift-choice:focus-visible{
    border-color:#94a3b8;
    background:#f8fafc;
    outline:none
}
.request-shift-choice[aria-checked="true"]{
    border-color:#6366f1;
    box-shadow:0 0 0 2px rgba(99,102,241,.12)
}
.request-shift-choice-main{
    min-width:0;
    display:flex;
    flex:1 1 auto;
    flex-direction:column;
    align-items:flex-start;
    gap:1px
}
.request-shift-choice strong{
    font-size:calc(13px * var(--request-text-scale))
}
.request-shift-choice small{
    color:#64748b;
    font-size:calc(10px * var(--request-text-scale))
}
.request-shift-duration{
    flex:0 0 auto;
    min-width:34px;
    padding:3px 6px;
    border-radius:999px;
    text-align:center;
    font-size:calc(10px * var(--request-text-scale));
    font-weight:850
}
.request-shift-duration.duration-12{
    background:#dbeafe;
    color:#1e40af
}
.request-shift-duration.duration-8{
    background:#dcfce7;
    color:#166534
}
.request-shift-duration.duration-status{
    border:1px solid #cbd5e1;
    background:#f8fafc;
    color:#475569
}
.request-shift-choice-clear{
    min-height:38px;
    border-style:dashed
}
.request-shift-empty{
    padding:7px 4px
}
.request-note{
    display:flex;
    flex-direction:column;
    gap:4px;
    margin-top:10px;
    font-size:calc(12px * var(--request-text-scale));
    color:var(--muted)
}
.request-note textarea{
    width:100%;
    padding:7px
}
.request-submit-row{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
    margin-top:10px
}
.request-submit-row .btn{
    padding:7px 11px
}
 @media(max-width:600px){
    .request-page{
        overflow-x:hidden
    }
    .request-container{
        width:100%;
        max-width:100%;
        min-width:0;
        overflow-x:hidden;
        padding:8px
    }
    .request-header-panel{
        padding:14px;
        border-radius:10px
    }
    .request-header-top-row{
        align-items:center;
        flex-direction:row;
        flex-wrap:nowrap;
        gap:8px
    }
    .request-header-actions{
        width:auto;
        flex:0 0 auto;
        flex-wrap:nowrap;
        justify-content:flex-end;
        gap:6px
    }
    .request-text-size-label{
        position:absolute;
        width:1px;
        height:1px;
        padding:0;
        margin:-1px;
        overflow:hidden;
        clip:rect(0,0,0,0);
        white-space:nowrap;
        border:0
    }
    .request-todo-button,
    .request-help-button{
        min-height:32px;
        padding:5px 9px
    }
    .request-editor-panel{
        padding:10px;
        border-radius:8px
    }
    .todo-tab-bar{
        align-items:stretch;
        flex-direction:column;
        border-bottom:0
    }
    .todo-tabs{
        border-bottom:0
    }
    .todo-category-heading{
        align-items:center;
        flex-direction:row
    }
    .request-unit-name{
        flex:1 1 auto;
        min-width:0;
        font-size:calc(22px * var(--request-text-scale))
    }
    .request-title-row h1{
        font-size:calc(18px * var(--request-text-scale))
    }
    .request-person-form label{
        display:block
    }
    .request-person-form select{
        display:block;
        width:100%;
        min-width:0;
        margin-top:3px
    }
    .request-role-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:8px
    }
    .request-role-option{
        min-height:58px;
        padding:9px 10px
    }
    .request-role-option-all{
        min-height:40px;
        padding:7px 9px
    }
    .request-staff-list{
        max-height:56vh
    }
    .request-staff-option{
        min-height:48px;
        padding:11px 12px
    }
    .request-staff-noscript{
        align-items:stretch;
        flex-direction:column
    }
    .request-staff-noscript .btn{
        width:100%
    }
    .staff-request-help-modal{
        padding:15px
    }
    .request-help-step h3{
        font-size:calc(20px * var(--request-text-scale))
    }
    .request-selector-form{
        grid-template-columns:1fr
    }
    .request-calendar-export{
        align-items:stretch;
        flex-direction:column
    }
    .request-calendar-export .btn{
        width:100%;
        text-align:center
    }
    .request-pin-offer{
        align-items:stretch;
        flex-direction:column
    }
    .request-pin-offer .btn{
        width:100%
    }
    .request-pin-status{
        align-items:stretch;
        flex-wrap:wrap
    }
    .request-pin-status-mark{
        align-self:flex-start
    }
    .request-pin-status-actions{
        width:100%
    }
    .request-pin-status-actions .btn,
    .request-pin-status-actions form{
        flex:1 1 120px
    }
    .request-pin-status-actions form .btn{
        width:100%
    }
    .request-instructions{
        display:block
    }
    .request-instructions .small{
        margin-top:3px
    }
    .request-period-head{
        padding:6px
    }
    .request-period-head .small{
        display:block
    }
    .request-hours{
        font-size:calc(11px * var(--request-text-scale))
    }
    .request-weekday-header,
    .request-week{
        grid-template-columns:calc(22px * var(--request-text-scale)) minmax(0,1fr)
    }
    .request-weekday-days{
        gap:2px;
        padding:3px 3px 2px;
        font-size:calc(10px * var(--request-text-scale))
    }
    .request-week-days{
        gap:2px;
        padding:3px
    }
    .request-day{
        min-height:calc(64px * var(--request-text-scale));
        padding:2px 1px;
        border-radius:5px;
        grid-template-rows:calc(12px * var(--request-text-scale)) calc(17px * var(--request-text-scale)) minmax(calc(22px * var(--request-text-scale)),1fr)
    }
    .request-day.has-holiday{
        grid-template-rows:auto calc(17px * var(--request-text-scale)) minmax(calc(22px * var(--request-text-scale)),1fr)
    }
    .request-day-date{
        font-size:calc(10px * var(--request-text-scale))
    }
    .request-day-coverage-slot{
        min-height:calc(17px * var(--request-text-scale))
    }
    .request-day-coverage{
        min-width:17px;
        padding:2px 3px;
        font-size:calc(8px * var(--request-text-scale))
    }
    .request-day-state{
        font-size:calc(12px * var(--request-text-scale))
    }
    .request-day.posted-result{
        min-height:calc(68px * var(--request-text-scale));
        grid-template-rows:calc(12px * var(--request-text-scale)) auto
    }
    .request-day-posted-line{
        grid-template-columns:calc(13px * var(--request-text-scale)) minmax(0,1fr);
        gap:1px
    }
    .request-day-outcome-key{
        width:calc(13px * var(--request-text-scale));
        height:calc(13px * var(--request-text-scale));
        font-size:calc(7px * var(--request-text-scale))
    }
    .request-day-outcome-value{
        font-size:calc(9px * var(--request-text-scale))
    }
}
/* Schedule editor refinements (v1.3) */
.schedule-workspace{
    display:flex;
    flex-direction:column;
    max-height:calc(100vh - 145px);
    min-height:0
}
 .schedule-table-wrap{
    flex:1 1 auto;
    min-height:0;
    overflow:auto;
    position:relative;
    overscroll-behavior:contain
}
 .schedule-table .schedule-sticky-head{
    position:sticky;
    top:0;
    z-index:20
}
 .schedule-table .schedule-sticky-head th,.schedule-table .schedule-sticky-head td{
    position:relative;
    top:auto;
    background:#f8fafc;
    background-clip:padding-box
}
 .schedule-table .schedule-sticky-head .coverage-cell{
    background:#fff
}
 .schedule-table .schedule-sticky-head .coverage-label{
    background:#f1f5f9
}
 .schedule-table .schedule-sticky-head .sticky-col{
    position:sticky;
    left:0;
    z-index:24
}
 .schedule-table .coverage-row .coverage-label{
    font-size:11px;
    white-space:nowrap
}
 .schedule-table .coverage-cell{
    font-size:11px;
    line-height:1.15;
    height:32px;
    padding:3px 5px;
    cursor:help;
    white-space:normal
}
.coverage-role-number{
    font-size:13px;
    font-weight:900;
    white-space:nowrap
}
.coverage-role-separator{
    color:#94a3b8;
    margin:0 3px;
    font-weight:500
}
 .schedule-table .date-head{
    position:relative
}
 .assignment-cell.off-weekend{
    background:#fafafa
}
 .page-membership-field{
    display:flex;
    flex-direction:column;
    gap:4px;
    font-size:12px;
    color:var(--muted);
    min-width:220px
}
 .multi-checks{
    display:flex;
    flex-wrap:wrap;
    gap:5px 10px;
    align-items:center;
    border:1px solid #cbd5e1;
    border-radius:7px;
    padding:7px 8px;
    background:#fff;
    min-height:38px
}
 .multi-checks label{
    display:inline-flex!important;
    flex-direction:row!important;
    align-items:center;
    gap:4px;
    color:var(--text)!important;
    font-size:12px!important;
    white-space:nowrap
}
 .multi-checks input{
    width:auto!important;
    margin:0
}
.multi-checks.todo-patient-task-template-options{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    align-items:stretch;
    gap:7px
}
.multi-checks.todo-patient-task-template-options>label{
    display:flex!important;
    width:100%;
    min-width:0;
    flex-direction:row!important;
    align-items:flex-start;
    white-space:normal
}
.multi-checks.todo-patient-task-template-options>label>span{
    flex:1 1 auto;
    min-width:0
}
 .staff-config-row .page-membership-field{
    align-self:stretch
}
 @media(max-width:900px){
    .schedule-workspace{
        max-height:calc(100vh - 110px)
    }
}
 @media print{
    .schedule-workspace{
        display:block;
        max-height:none
    }
    .schedule-table-wrap{
        overflow:visible
    }
    .schedule-table .schedule-sticky-head{
        position:static
    }
    .schedule-table .schedule-sticky-head .sticky-col{
        position:static
    }
}
/* Configuration autosave + delete controls (v1.4) */
 .autosave-note{
    align-self:end;
    color:var(--muted);
    font-size:12px;
    padding:8px 0
}
 .autosave-row{
    transition:background-color .18s ease,opacity .18s ease
}
 .autosave-row.is-saving,.autosave-form.is-saving{
    opacity:.72
}
 .autosave-row.save-ok{
    background:#f0fdf4
}
 .autosave-row.save-error{
    background:#fff1f2
}
 .autosave-retry{
    grid-column:1 / -1;
    justify-self:start
}
 .trash-btn{
    width:32px;
    height:32px;
    padding:6px;
    display:inline-grid;
    place-items:center;
    border:1px solid #fecaca;
    border-radius:7px;
    background:#fff1f2;
    color:#b91c1c;
    cursor:pointer
}
 .trash-btn:hover{
    background:#fee2e2;
    border-color:#fca5a5;
    color:#991b1b
}
 .trash-btn:disabled{
    opacity:.5;
    cursor:not-allowed
}
 .trash-btn svg{
    width:16px;
    height:16px;
    fill:currentColor;
    display:block
}
 .toast-container{
    position:fixed;
    top:68px;
    right:18px;
    z-index:300;
    display:flex;
    flex-direction:column;
    gap:8px;
    pointer-events:none;
    max-width:min(390px,calc(100vw - 24px))
}
 .config-toast{
    transform:translateY(-8px);
    opacity:0;
    transition:opacity .2s ease,transform .2s ease;
    padding:10px 13px;
    border-radius:9px;
    border:1px solid #86efac;
    background:#dcfce7;
    color:#166534;
    box-shadow:0 10px 28px rgba(15,23,42,.18);
    font-size:13px;
    font-weight:650
}
 .config-toast.error{
    border-color:#fca5a5;
    background:#fee2e2;
    color:#991b1b
}
 .config-toast.show{
    transform:translateY(0);
    opacity:1
}
 @media(max-width:600px){
    .toast-container{
        top:60px;
        right:8px;
        left:8px;
        max-width:none
    }
}
/* Configurable weekend + schedule-day coverage highlighting (v1.5) */
 .coverage-highlight-check{
    align-self:end;
    display:flex!important;
    flex-direction:row!important;
    align-items:center;
    gap:6px;
    white-space:nowrap;
    padding-bottom:7px
}
 .coverage-highlight-check input{
    width:auto!important;
    margin:0
}
 .assignment-cell.coverage-day-highlight{
    background:var(--coverage-day-color,#fff)
}
/* Fast schedule editing, posted read-only state, and editable groups (v1.6) */
 .schedule-edit-help{
    margin-top:6px;
    color:#475569
}
 .assignment-cell.cell-saving{
    opacity:.58;
    cursor:progress
}
 .assignment-cell.cell-saved{
    outline:2px solid #22c55e;
    outline-offset:-2px
}
 .assignment-cell.read-only{
    cursor:default
}
 .assignment-cell.read-only:hover{
    outline:none
}
/* Configuration tabs */
 .config-intro{
    margin-bottom:10px
}
.config-tabs-shell{
    min-width:0
}
.config-tabs{
    display:flex;
    gap:5px;
    align-items:flex-end;
    overflow-x:auto;
    overflow-y:hidden;
    padding:3px 4px 0;
    margin:0 0 12px;
    border-bottom:1px solid var(--border);
    scrollbar-width:thin
}
.config-tab{
    flex:0 0 auto;
    border:1px solid transparent;
    border-bottom:0;
    background:transparent;
    color:var(--muted);
    font-weight:750;
    padding:10px 15px;
    border-radius:9px 9px 0 0;
    margin-bottom:-1px
}
.config-tab:hover{
    background:#f8fafc;
    color:var(--text)
}
.config-tab.active{
    background:var(--panel);
    color:var(--accent2);
    border-color:var(--border);
    box-shadow:0 -3px 10px rgba(15,23,42,.035)
}
.config-tab:focus-visible{
    outline:2px solid #93c5fd;
    outline-offset:2px
}
.config-tab-panel{
    display:none;
    min-width:0
}
.config-tab-panel.active{
    display:block
}
.config-tab-panel>.panel:last-child,.config-tab-panel>.section-grid:last-child .panel{
    margin-bottom:16px
}
@media(max-width:600px){
    .config-tabs{
        gap:2px
    }
    .config-tab{
        padding:9px 11px;
        font-size:12px
    }
}
 
/* Configuration add-record sections */
.config-add{
    margin:0 0 14px;
    padding:12px;
    background:#f8fafc;
    border:1px solid var(--border);
    border-radius:9px
}
.config-add .toolbar{
    margin-bottom:0
}
.request-schedule-box{
    margin-top:14px
}
.config-add > form + form{
    margin-top:8px
}
.request-action-form{
    display:inline-block;
    margin:0 6px 0 0
}
.request-action-form.is-saving{
    opacity:.7
}

/* Staff request notes */
.request-note-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-left:6px;
    cursor:help;
    font-size:14px;
    line-height:1;
}

/* Unit authentication and manager session controls */
.auth-page{
    min-height:100vh;
    display:grid;
    place-items:center;
    padding:20px
}
.auth-wrap{
    width:min(520px,100%)
}
.auth-panel{
    margin:0
}
.unit-name{
    display:block;
    margin-top:2px;
    color:#bfdbfe;
    font-size:11px;
    font-weight:600
}
.logout-form{
    display:inline-flex;
    margin:0 0 0 4px
}
.logout-form .btn{
    background:#1e293b;
    border-color:#334155;
    color:#e2e8f0
}
.logout-form .btn:hover{
    background:#334155
}
.recovery-qr code{
    overflow-wrap:anywhere
}

/* Role-specific coverage configuration */
.coverage-target-row{
    align-items:end
}
.coverage-target-fields{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    align-items:end
}
.coverage-target-fields label{
    min-width:90px
}
.coverage-target-fields input{
    width:82px
}
.coverage-colors-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px
}
.coverage-colors-heading h2{
    margin-bottom:4px
}
.coverage-role-tabs{
    display:flex;
    gap:4px;
    overflow-x:auto;
    margin:14px 0 0;
    padding:0 2px;
    border-bottom:1px solid var(--border);
    scrollbar-width:thin
}
.coverage-role-tab{
    flex:0 0 auto;
    border:1px solid transparent;
    border-bottom:0;
    border-radius:8px 8px 0 0;
    margin-bottom:-1px;
    padding:8px 12px;
    background:transparent;
    color:var(--muted);
    font-weight:700
}
.coverage-role-tab:hover{
    background:#f8fafc;
    color:var(--text)
}
.coverage-role-tab.active{
    background:var(--panel);
    color:var(--accent2);
    border-color:var(--border)
}
.coverage-role-tab:focus-visible{
    outline:2px solid #93c5fd;
    outline-offset:2px
}
.coverage-colors-panel{
    margin-top:14px
}
.coverage-role-rules[hidden]{
    display:none
}
.coverage-role-number{
    cursor:help
}

/* Multi-page paper schedule printing */
.print-sheet-picker{
    flex:1 1 100%;
    min-width:min(100%,560px);
    margin:2px 0 0;
    padding:8px 10px;
    border:1px solid var(--border);
    border-radius:8px;
    background:#f8fafc
}
.print-sheet-picker legend{
    padding:0 4px;
    font-size:12px;
    font-weight:800
}
.print-page-choices,
.print-checkpoint-choices{
    display:flex;
    flex-wrap:wrap;
    gap:5px 12px;
    margin-bottom:7px
}
.print-page-choices label,
.print-checkpoint-choices label{
    display:inline-flex;
    flex-direction:row;
    align-items:center;
    gap:4px;
    font-size:12px;
    color:var(--text)
}
.print-page-choices input,
.print-checkpoint-choices input{
    width:auto;
    margin:0
}
.paper-print-page-measure{
    display:none
}
.paper-print-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px
}
.paper-print-actions{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    justify-content:flex-end
}
.paper-print-sheet{
    page:paper-schedule;
    margin:0 0 18px;
    padding:12px;
    border:1px solid var(--border);
    border-radius:10px;
    background:#fff
}
.paper-sheet-header{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:12px;
    margin-bottom:5px
}
.paper-sheet-header h1{
    margin:0;
    font-size:18px
}
.paper-sheet-order,.paper-role-order{
    font-size:11px
}
.paper-sheet-order{
    font-weight:800;
    text-align:right;
    white-space:nowrap
}
.paper-role-order{
    margin:0 0 5px
}
.paper-schedule-table{
    width:100%;
    border-collapse:collapse;
    table-layout:fixed
}
.paper-schedule-table th,.paper-schedule-table td{
    border:1px solid #64748b;
    padding:3px 2px;
    text-align:center;
    vertical-align:middle
}
.paper-schedule-table .paper-staff-heading,.paper-schedule-table .paper-staff-cell{
    width:150px;
    text-align:left;
    padding-left:5px
}
.paper-week-head{
    font-size:9px;
    line-height:1.1;
    background:#f8fafc
}
.paper-date-head{
    font-size:9px;
    line-height:1.05
}
.paper-date-head small{
    display:block;
    font-size:9px;
    font-weight:500
}
.paper-date-head.weekend,.paper-assignment-cell.weekend{
    background:#fffdf2
}
.paper-schedule-table .week-start{
    border-left-width:2px
}
.paper-coverage-row th{
    font-size:9px;
    white-space:nowrap
}
.paper-coverage-cell{
    height:20px;
    font-size:9px;
    font-weight:800;
    line-height:1
}
.paper-role-count{
    font-size:12px
}
.paper-role-separator{
    margin:0 2px;
    font-weight:500
}
.paper-staff-cell strong,.paper-staff-cell small,.paper-assignment-cell strong,.paper-assignment-cell small{
    display:block
}
.paper-staff-cell{
    font-size:10px;
    line-height:1.15
}
.paper-staff-cell small{
    margin-top:2px;
    font-size:8px;
    font-weight:500
}
.paper-assignment-cell{
    height:38px;
    font-size:9px;
    line-height:1.05
}
.paper-assignment-cell small{
    margin-top:2px;
    font-size:8px
}
.paper-assignment-cell.assigned-weekend{
    background:var(--paper-weekend-color,#eef2ff)
}
.paper-empty-page{
    height:48px;
    text-align:left!important;
    padding-left:8px!important
}

@page paper-schedule{
    size:landscape;
    margin:0.18in
}

@media print{
    .paper-print-page-measure{
        display:block;
        position:absolute;
        top:0;
        left:0;
        width:0;
        height:100vh;
        overflow:hidden;
        visibility:hidden;
        pointer-events:none
    }
    .paper-print-sheet{
        break-after:page;
        page-break-after:always;
        margin:0;
        padding:0;
        border:0;
        border-radius:0;
        print-color-adjust:exact;
        -webkit-print-color-adjust:exact
    }
    .paper-print-sheet:last-child{
        break-after:auto;
        page-break-after:auto
    }
    .paper-sheet-header{
        margin-bottom:0.05in
    }
    .paper-sheet-header h1{
        font-size:10pt
    }
    .paper-sheet-order,.paper-role-order{
        font-size:6.4pt
    }
    .paper-role-order{
        margin-bottom:0.04in
    }
    .paper-schedule-table{
        width:100%;
        table-layout:fixed
    }
    .paper-schedule-table thead{
        display:table-header-group
    }
    .paper-schedule-table tr{
        break-inside:avoid;
        page-break-inside:avoid
    }
    .paper-schedule-table th,.paper-schedule-table td{
        padding:0.006in 0.006in;
        border:0.55pt solid #334155;
        overflow:hidden
    }
    .paper-schedule-table .week-start{
        border-left:1.15pt solid #475569
    }
    .paper-schedule-table .paper-staff-heading,.paper-schedule-table .paper-staff-cell{
        width:1.2in;
        padding-left:0.025in;
        overflow-wrap:anywhere
    }
    .paper-week-head{
        height:0.16in;
        font-size:5.2pt;
        white-space:nowrap
    }
    .paper-date-head{
        height:0.25in;
        font-size:5.1pt;
        white-space:nowrap
    }
    .paper-date-head small{
        font-size:4.6pt
    }
    .paper-coverage-row th,.paper-coverage-cell{
        height:0.15in;
        font-size:4.5pt;
        letter-spacing:-0.15pt
    }
    .paper-role-count{
        font-size:6pt
    }
    .paper-role-separator{
        margin:0 0.5px
    }
    .paper-staff-cell{
        font-size:5.6pt
    }
    .paper-staff-cell small{
        font-size:4.7pt
    }
    .paper-assignment-cell{
        height:var(--paper-assignment-row-height,0.20in);
        font-size:5.1pt;
        line-height:1
    }
    .paper-assignment-cell small{
        margin-top:1px;
        font-size:4.4pt
    }
}
/* Staff shift eligibility (v2.3) */
.shift-eligibility-field{
    display:flex;
    flex-direction:column;
    gap:4px;
    font-size:12px;
    color:var(--muted);
    min-width:280px
}
.shift-eligibility-field>.multi-checks{
    align-items:flex-start
}
.shift-eligibility-field .any-shift-option{
    font-weight:700
}
.shift-eligibility-field.allows-any-shift [data-specific-shift]+span{
    opacity:.5
}
.assignment-cell.wrong-shift{
    background-image:linear-gradient(rgba(126,34,206,.08),rgba(126,34,206,.08))
}
.shift-eligibility-badge{
    position:absolute;
    top:2px;
    right:3px;
    min-width:16px;
    height:16px;
    padding:0 4px;
    border-radius:999px;
    background:#7e22ce;
    color:#fff;
    font-size:10px;
    line-height:16px;
    font-weight:900;
    text-align:center;
    z-index:2
}
.choice.shift-not-allowed{
    border-style:dashed;
    border-color:#a855f7;
    background:#faf5ff
}
.choice.shift-not-allowed::after{
    content:'Normally not allowed';
    display:block;
    margin-top:3px;
    font-size:10px;
    color:#7e22ce;
    font-weight:700
}
@media print{
    .shift-eligibility-badge,.schedule-cell-markers{display:none}
}

/* Compact staff configuration list + modal editor (v2.4 UI) */
.staff-panel-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px
}
.staff-panel-heading h2{
    margin-bottom:4px
}
.staff-panel-heading p{
    margin-top:0;
    max-width:760px
}
.staff-list-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin:14px 0 8px
}
.staff-search{
    width:min(360px,100%)
}
.staff-search input{
    width:100%
}
.staff-summary-list{
    border:1px solid var(--border);
    border-radius:10px;
    overflow:hidden;
    background:#fff
}
.staff-summary-row{
    display:grid;
    grid-template-columns:minmax(180px,1.35fr) minmax(150px,.9fr) minmax(180px,1.15fr) auto auto;
    gap:14px;
    align-items:center;
    padding:10px 12px;
    border-bottom:1px solid var(--border)
}
.staff-summary-row:last-of-type{
    border-bottom:0
}
.staff-summary-row[hidden]{
    display:none
}
.staff-summary-primary,
.staff-summary-detail{
    min-width:0
}
.staff-summary-primary strong{
    display:block;
    font-size:14px;
    overflow-wrap:anywhere
}
.staff-summary-meta{
    display:flex;
    flex-wrap:wrap;
    gap:3px 10px;
    margin-top:3px;
    color:var(--muted);
    font-size:11px
}
.staff-summary-detail{
    display:flex;
    flex-direction:column;
    gap:2px;
    font-size:12px;
    overflow-wrap:anywhere
}
.staff-summary-label{
    color:var(--muted);
    font-size:10px;
    font-weight:800;
    letter-spacing:.04em;
    text-transform:uppercase
}
.staff-summary-status,
.staff-summary-action{
    white-space:nowrap
}
.staff-filter-empty{
    padding:16px;
    text-align:center
}
.staff-edit-modal{
    width:min(760px,100%)
}
.staff-modal-section{
    padding:14px 0;
    border-top:1px solid var(--border)
}
.staff-modal-section h3{
    margin:0 0 10px;
    font-size:14px
}
.staff-modal-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))
}
.staff-modal-grid .page-membership-field,
.staff-modal-grid .shift-eligibility-field{
    min-width:0
}
.staff-active-field{
    align-self:end;
    min-height:38px
}
.staff-request-pin-control{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:12px;
    border:1px solid var(--border);
    border-radius:9px;
    background:#f8fafc
}
.staff-request-pin-control>div{
    display:flex;
    flex-direction:column;
    gap:3px
}
.staff-request-pin-control small{
    color:var(--muted);
    line-height:1.35
}
.staff-request-pin-control .btn{
    flex:0 0 auto
}
.staff-reopen-request-table-wrap{
    margin-bottom:6px
}
.staff-reopen-request-table th:last-child,
.staff-reopen-request-table td:last-child{
    width:1%;
    white-space:nowrap
}
.staff-modal-actions .trash-btn[hidden]{
    display:none
}
@media(max-width:900px){
    .staff-summary-row{
        grid-template-columns:minmax(0,1fr) auto;
        gap:8px 12px
    }
    .staff-summary-detail{
        grid-column:1 / -1
    }
    .staff-summary-status{
        grid-column:1
    }
    .staff-summary-action{
        grid-column:2;
        grid-row:1
    }
}
@media(max-width:620px){
    .todo-task-group-picker-patient-fields{
        grid-template-columns:minmax(0,1fr)
    }
    .modal-backdrop[data-todo-task-group-picker="add-tab"]{
        align-items:stretch;
        justify-content:stretch;
        padding:0
    }
    .modal-backdrop[data-todo-task-group-picker="add-tab"] .todo-task-group-picker-modal{
        width:100%;
        max-width:100vw;
        height:100vh;
        height:100dvh;
        max-height:none;
        min-width:0;
        overflow-x:hidden;
        border-radius:0;
        box-shadow:none;
        padding:14px;
        padding-top:max(14px,env(safe-area-inset-top));
        padding-right:max(14px,env(safe-area-inset-right));
        padding-bottom:max(14px,env(safe-area-inset-bottom));
        padding-left:max(14px,env(safe-area-inset-left))
    }
    .modal-backdrop[data-todo-task-group-picker="add-tab"] .modal-head,
    .modal-backdrop[data-todo-task-group-picker="add-tab"] .modal-form,
    .modal-backdrop[data-todo-task-group-picker="add-tab"] .modal-content,
    .modal-backdrop[data-todo-task-group-picker="add-tab"] .modal-footer{
        width:100%;
        max-width:100%;
        min-width:0
    }
    .modal-backdrop[data-todo-task-group-picker="add-tab"] .modal-content{
        overflow-x:hidden;
        overscroll-behavior:contain;
        -webkit-overflow-scrolling:touch
    }
    .modal-backdrop[data-todo-task-group-picker="add-tab"] .todo-patient-task-template-options{
        max-height:none;
        overflow:visible
    }
    .modal-backdrop[data-todo-configuration-modal]{
        align-items:stretch;
        justify-content:stretch;
        padding:0
    }
    .todo-configuration-modal{
        width:100%;
        height:100vh;
        height:100dvh;
        max-height:none;
        border-radius:0;
        padding:14px;
        padding-top:max(14px,env(safe-area-inset-top));
        padding-right:max(14px,env(safe-area-inset-right));
        padding-bottom:max(14px,env(safe-area-inset-bottom));
        padding-left:max(14px,env(safe-area-inset-left))
    }
    .todo-configuration-modal{
        max-width:100vw;
        min-width:0;
        overflow-x:hidden
    }
    .todo-configuration-modal .modal-head,
    .todo-configuration-modal .modal-form,
    .todo-configuration-modal .modal-content,
    .todo-configuration-modal .modal-footer,
    .todo-configuration-field,
    .todo-configuration-section{
        width:100%;
        max-width:100%;
        min-width:0
    }
    .todo-configuration-modal .modal-content{
        display:grid;
        grid-template-columns:minmax(0,1fr);
        align-content:start;
        overflow-x:hidden;
        overscroll-behavior:contain;
        -webkit-overflow-scrolling:touch
    }
    .todo-configuration-modal .modal-content>*{
        min-width:0;
        max-width:100%
    }
    .todo-configuration-field input,
    .todo-configuration-field select{
        display:block;
        box-sizing:border-box;
        width:100%;
        inline-size:100%;
        max-width:100%;
        max-inline-size:100%;
        min-width:0;
        min-inline-size:0;
        font-size:max(16px,calc(14px * var(--request-text-scale)))
    }
    .todo-configuration-field select{
        text-overflow:ellipsis
    }
    .todo-configuration-section{
        width:auto;
        inline-size:auto;
        margin:10px 0 0;
        padding:10px
    }
    .todo-configuration-section legend{
        max-width:100%
    }
    .todo-configuration-checkbox{
        width:100%;
        min-width:0
    }
    .todo-configuration-checkbox span{
        min-width:0
    }
    .todo-configuration-notification-actions{
        display:flex;
        width:100%
    }
    .todo-configuration-notification-actions .btn{
        max-width:100%;
        white-space:normal
    }
    .todo-configuration-modal .modal-footer{
        padding-bottom:env(safe-area-inset-bottom)
    }
    .staff-panel-heading,
    .staff-list-toolbar{
        align-items:stretch;
        flex-direction:column
    }
    .staff-panel-heading .btn,
    .staff-search{
        width:100%
    }
    .staff-modal-grid{
        grid-template-columns:1fr
    }
    .staff-modal-grid .span-2{
        grid-column:auto
    }
    .staff-request-pin-control{
        align-items:stretch;
        flex-direction:column
    }
    .staff-request-pin-control .btn{
        width:100%
    }
    .modal-footer{
        align-items:stretch;
        flex-direction:column-reverse
    }
    .modal-footer-left,
    .modal-footer-right{
        width:100%;
        margin-left:0
    }
    .modal-footer-right .btn{
        flex:1
    }
}

/* In-schedule suggestions drawer */
.suggestions-drawer{
    position:fixed;
    top:0;
    right:0;
    bottom:0;
    width:min(460px,94vw);
    background:#fff;
    border-left:1px solid var(--border);
    box-shadow:-18px 0 48px rgba(15,23,42,.2);
    z-index:96;
    transform:translateX(102%);
    transition:transform .2s ease;
    overflow-y:auto
}
.suggestions-drawer.open{
    transform:translateX(0)
}
.suggestions-drawer-scrim{
    display:none;
    position:fixed;
    inset:0;
    background:rgba(15,23,42,.16);
    z-index:95
}
.suggestions-drawer-scrim.open{
    display:block
}
body.suggestions-drawer-open{
    overflow:hidden
}
.suggestions-drawer-head{
    position:sticky;
    top:0;
    z-index:2;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    padding:16px;
    background:#fff;
    border-bottom:1px solid var(--border)
}
.suggestions-drawer-head h2{
    margin:0 0 2px
}
.suggestions-drawer-head>button{
    width:34px;
    height:34px;
    padding:0;
    font-size:22px;
    line-height:1
}
.suggestions-drawer-tools{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:7px 12px;
    padding:10px 16px 0
}
.suggestions-marker-toggles{
    display:flex;
    flex-wrap:wrap;
    gap:6px 12px;
    margin-left:auto
}
.suggestions-marker-toggles label{
    display:inline-flex;
    align-items:center;
    gap:5px;
    color:#475569;
    font-size:11px;
    font-weight:700;
    cursor:pointer
}
.suggestions-marker-toggles input{
    width:auto;
    margin:0
}
#suggestionsDrawerStatus{
    min-height:28px;
    padding:7px 16px 0
}
.suggestions-drawer-tabs{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:6px;
    padding:6px 16px 0;
    border-bottom:1px solid var(--border)
}
.suggestions-drawer-tab{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    min-width:0;
    padding:9px 8px 8px;
    border:1px solid #cbd5e1;
    border-bottom:0;
    border-radius:8px 8px 0 0;
    background:#f8fafc;
    color:#475569;
    font-size:12px;
    font-weight:800;
    cursor:pointer
}
.suggestions-drawer-tab[aria-selected="true"]{
    margin-bottom:-1px;
    background:#fff;
    color:#0f172a;
    border-color:#94a3b8;
    box-shadow:0 1px 0 #fff
}
.suggestions-drawer-tab:disabled{
    opacity:.42;
    cursor:not-allowed
}
.suggestions-drawer-tab:focus-visible{
    outline:2px solid #2563eb;
    outline-offset:1px
}
.suggestions-drawer-content{
    padding:0 16px 18px
}
.suggestions-tab-panel{
    padding:14px 0 0
}
.drawer-tab-message{
    padding:14px 0
}
.drawer-count{
    display:inline-grid;
    min-width:22px;
    height:22px;
    place-items:center;
    padding:0 6px;
    border-radius:999px;
    background:#e2e8f0;
    color:#475569;
    font-size:11px
}
.drawer-gap-list{
    list-style:none;
    padding:0;
    margin:0 0 7px;
    display:grid;
    gap:6px
}
.drawer-gap-list li{
    display:flex;
    justify-content:space-between;
    gap:10px;
    padding:7px 9px;
    border:1px solid #fde68a;
    border-radius:7px;
    background:#fffbeb;
    font-size:12px
}
.drawer-gap-list span{
    text-align:right
}
.drawer-suggestion-group{
    margin-bottom:12px;
    border:1px solid #e2e8f0;
    border-radius:9px;
    background:#fff;
    overflow:hidden
}
.drawer-suggestion-group-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:8px 10px;
    border-bottom:1px solid #e2e8f0;
    background:#f1f5f9
}
.drawer-suggestion-group-head span{
    color:var(--muted);
    font-size:11px
}
.drawer-suggestion-group .drawer-suggestion-card{
    margin:8px 8px 0
}
.drawer-suggestion-group .drawer-suggestion-card:last-child{
    margin-bottom:8px
}
.drawer-suggestion-card{
    display:grid;
    gap:5px;
    padding:10px;
    margin-bottom:8px;
    border:1px solid #bfdbfe;
    border-left:4px solid #60a5fa;
    border-radius:8px;
    background:#f8fbff
}
.drawer-suggestion-title{
    display:flex;
    justify-content:space-between;
    gap:10px
}
.drawer-suggestion-title span{
    color:var(--muted);
    white-space:nowrap
}
.drawer-suggestion-actions{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:8px;
    margin-top:2px
}
.drawer-warning{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:8px;
    padding:8px 0;
    border-top:1px solid #f1f5f9
}
.drawer-warning:first-of-type{
    border-top:0
}
.drawer-warning .btn{
    flex:0 0 auto
}
.drawer-good{
    margin:0;
    color:#166534
}
.drawer-loading{
    padding:18px 0;
    color:var(--muted)
}
.assignment-cell.suggestion-focus{
    outline:3px solid #2563eb;
    outline-offset:-3px;
    box-shadow:inset 0 0 0 1px #fff
}
.schedule-cell-markers{
    position:absolute;
    top:2px;
    left:3px;
    z-index:3;
    display:flex;
    flex-wrap:nowrap;
    gap:2px;
    pointer-events:none
}
.schedule-cell-marker{
    display:inline-grid;
    width:16px;
    height:16px;
    place-items:center;
    border-radius:999px;
    box-shadow:0 0 0 1px rgba(255,255,255,.9);
    color:#fff;
    font-size:10px;
    font-weight:900;
    line-height:1
}
.schedule-cell-marker-warning.bad{
    background:#dc2626
}
.schedule-cell-marker-warning.warn{
    background:#d97706
}
.schedule-cell-marker-suggestion{
    background:#2563eb
}
@media(max-width:620px){
    .suggestions-drawer{
        width:100vw
    }
    .drawer-gap-list li,
    .drawer-suggestion-title,
    .drawer-warning{
        align-items:flex-start;
        flex-direction:column
    }
    .drawer-gap-list span{
        text-align:left
    }
}

/* Scheduling rules / holiday configuration */
.scheduling-rules-form{max-width:900px}
.holiday-panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.holiday-seed-form{margin:12px 0 18px;align-items:end;flex-wrap:wrap}
.holiday-add-form{width:100%}
.holiday-form-grid{max-width:960px}
.role-config-row{grid-template-columns:minmax(150px,.8fr) minmax(90px,.35fr) auto minmax(320px,2fr) auto;align-items:start}
.request-coverage-roles{border:0;padding:0;margin:0;min-width:0}
.request-coverage-roles legend{font-size:.85rem;font-weight:600;margin-bottom:6px}
.request-coverage-role-checks{display:flex;flex-wrap:wrap;gap:6px 12px}
.request-coverage-role-checks label{white-space:nowrap}
@media(max-width:900px){.role-config-row{grid-template-columns:1fr}.role-config-row .request-coverage-roles{width:100%}}
.holiday-config-row{grid-template-columns:minmax(150px,.7fr) minmax(220px,1.2fr) minmax(320px,2fr) auto;align-items:start}
.holiday-groups{border:0;padding:0;margin:0;min-width:0}
.holiday-groups legend{font-size:.85rem;font-weight:600;margin-bottom:6px}
.holiday-group-checks{display:flex;flex-wrap:wrap;gap:6px 12px}
.holiday-group-checks label{white-space:nowrap}
@media(max-width:900px){.holiday-config-row{grid-template-columns:1fr}.holiday-config-row .holiday-groups{width:100%}}
.drawer-pattern-note{margin-top:6px;padding:6px 8px;border-left:3px solid currentColor;opacity:.9}
.schedule-table .date-head.holiday{box-shadow:inset 0 3px 0 rgba(180,83,9,.65)}

/* Required holiday highlighting */
.holiday-display-form{
    max-width:520px;
    margin:10px 0 14px
}
.holiday-display-form input[type="color"]{
    width:64px;
    min-height:38px;
    padding:2px
}
.schedule-table .date-head.required-holiday-date{
    box-shadow:inset 0 4px 0 var(--holiday-highlight-color,#facc15)
}
.assignment-cell.required-workday{
    border-right-color:var(--required-workday-color,#94a3b8);
    border-bottom-color:var(--required-workday-color,#94a3b8)
}
.assignment-cell.required-workday::after{
    content:"";
    position:absolute;
    inset:-1px;
    box-sizing:border-box;
    border:2px solid var(--required-workday-color,#94a3b8);
    border-radius:0;
    pointer-events:none;
    z-index:2
}
.request-day.required-holiday,
.request-day.required-holiday:hover,
.request-rotation-legend-key.is-holiday{
    box-shadow:inset 0 0 0 2px var(--holiday-highlight-color,#facc15)
}

/* Schedule color editor */
.schedule-colors-modal{
    width:min(960px,100%)
}
.schedule-colors-modal .modal-content{
    overflow-x:hidden
}
.schedule-color-help{
    margin:0 0 14px;
    padding:9px 10px;
    border:1px solid var(--border);
    border-radius:8px;
    background:#f8fafc
}
.schedule-color-selected-preview{
    display:flex;
    min-width:0;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin:0 0 16px;
    padding:10px 12px;
    border:1px solid var(--border);
    border-radius:9px;
    background:#fff
}
.schedule-color-selected-preview-table-wrap{
    flex:0 0 auto;
    max-width:100%;
    overflow:auto;
    border:1px solid var(--border);
    border-radius:8px;
    background:#fff
}
.schedule-color-selected-preview-table{
    width:auto;
    min-width:0;
    --coverage-day-color:#f8fafc;
    --required-workday-color:#94a3b8
}
.schedule-color-selected-preview-table .assignment-cell{
    cursor:default
}
.schedule-color-selected-preview-table.empty{
    --coverage-day-color:#f8fafc;
    --required-workday-color:#cbd5e1
}
.schedule-color-selected-preview-table.coverage-highlight-disabled .coverage-day-highlight{
    background:#fff
}
.schedule-color-section + .schedule-color-section{
    margin-top:18px
}
.schedule-color-section h3{
    margin:0 0 8px
}
.schedule-color-role-picker{
    display:flex;
    align-items:center;
    gap:8px;
    margin:0 0 7px;
    font-size:12px;
    font-weight:700
}
.schedule-color-role-picker select{
    width:auto;
    min-width:150px
}
.schedule-color-list,
.schedule-color-role-list{
    display:flex;
    min-width:0;
    flex-direction:column;
    gap:7px
}
.schedule-color-role{
    min-width:0;
    padding:10px;
    border:1px solid var(--border);
    border-radius:9px
}
.schedule-color-role h4{
    margin:0 0 7px
}
.schedule-color-row{
    display:grid;
    width:100%;
    min-width:0;
    grid-template-columns:minmax(220px,1fr) minmax(44px,auto) minmax(92px,auto);
    align-items:center;
    gap:10px;
    padding:7px 0;
    border-bottom:1px solid #e2e8f0
}
.schedule-color-selectable-row{
    grid-template-columns:28px minmax(200px,1fr) minmax(44px,auto) minmax(92px,auto);
    cursor:pointer
}
.schedule-coverage-color-row{
    grid-template-columns:28px minmax(170px,1fr) minmax(44px,auto) minmax(116px,auto) minmax(92px,auto)
}
.schedule-color-row.selected{
    margin:0;
    padding-left:6px;
    padding-right:6px;
    border-radius:6px;
    background:#eff6ff
}
.schedule-color-row:last-child{
    border-bottom:0
}
.schedule-color-select-control{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:0!important;
    font-size:12px!important
}
.schedule-color-select-control input[type="radio"]{
    width:auto;
    min-height:0;
    margin:0
}
.schedule-color-copy{
    min-width:0
}
.schedule-color-copy strong,
.schedule-color-copy span{
    display:block
}
.schedule-color-copy span{
    margin-top:2px;
    color:var(--muted);
    font-size:11px
}
.schedule-color-preview{
    display:inline-flex;
    width:38px;
    height:30px;
    box-sizing:border-box;
    align-items:center;
    justify-content:center;
    border-radius:4px;
    font-size:11px;
    font-weight:800
}
.schedule-color-preview.border-preview{
    border:3px solid var(--schedule-color-preview,#94a3b8);
    background:#fff
}
.schedule-color-preview.fill-preview{
    border:1px solid #94a3b8;
    background:var(--schedule-color-preview,#fff)
}
.schedule-color-row > label:not(.schedule-color-select-control){
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:6px;
    color:var(--muted);
    font-size:11px
}
.schedule-color-highlight-control{
    justify-content:flex-start!important;
    color:var(--text)!important;
    white-space:nowrap
}
.schedule-color-highlight-control input[type="checkbox"]{
    width:auto!important;
    min-height:0;
    margin:0
}
.schedule-color-row input[type="color"]{
    width:52px;
    min-height:34px;
    padding:2px
}
@media(max-width:650px){
    .schedule-color-row{
        grid-template-columns:minmax(0,1fr) minmax(44px,auto) 78px
    }
    .schedule-color-selectable-row{
        grid-template-columns:24px minmax(0,1fr) minmax(44px,auto) 78px
    }
    .schedule-coverage-color-row{
        grid-template-columns:24px minmax(0,1fr) minmax(44px,auto) 28px 78px
    }
    .schedule-color-row > label:not(.schedule-color-select-control){
        font-size:0
    }
    .schedule-color-selected-preview{
        align-items:flex-start
    }
}


.request-staffing-popover{
    --request-staffing-arrow-left:50%;
    --request-staffing-max-height:80vh;
    position:fixed;
    display:flex;
    flex-direction:column;
    z-index:130;
    width:min(320px,calc(100vw - 16px));
    max-height:var(--request-staffing-max-height);
    overflow:visible;
    padding:10px;
    border:1px solid #cbd5e1;
    border-radius:10px;
    background:#fff;
    box-shadow:0 12px 30px rgba(15,23,42,.22)
}
.request-staffing-popover[hidden]{
    display:none !important
}
.request-staffing-popover::before{
    content:"";
    position:absolute;
    left:var(--request-staffing-arrow-left);
    top:-6px;
    width:11px;
    height:11px;
    transform:translateX(-50%) rotate(45deg);
    border-left:1px solid #cbd5e1;
    border-top:1px solid #cbd5e1;
    background:#fff
}
.request-staffing-popover.open-above::before{
    top:auto;
    bottom:-6px;
    transform:translateX(-50%) rotate(225deg)
}
.request-staffing-popover-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    margin-bottom:8px
}
.request-staffing-popover-close{
    flex:0 0 auto;
    width:28px;
    height:28px;
    padding:0;
    border:1px solid #cbd5e1;
    border-radius:7px;
    background:#fff;
    color:#475569;
    font-size:20px;
    line-height:1;
    cursor:pointer
}
.request-staffing-popover-body{
    flex:1 1 auto;
    min-height:0;
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior:contain
}
.request-staffing-section{
    padding:8px 0;
    border-top:1px solid #e2e8f0
}
.request-staffing-section:first-of-type{
    border-top:0
}
.request-staffing-person{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:12px;
    padding:5px 0;
    font-size:13px
}
.request-staffing-person-name{
    min-width:0;
    font-weight:750;
    overflow-wrap:anywhere
}
.request-staffing-person-shift{
    flex:0 0 auto;
    color:#64748b;
    font-size:12px;
    text-align:right
}
.request-staffing-empty{
    padding:5px 0;
    color:#64748b;
    font-size:12px
}

/* Patient task template configuration */
.todo-task-group-tabs{
    margin-top:14px;
    margin-bottom:14px
}
.todo-task-group-tab{
    max-width:240px
}
.todo-task-group-tab [data-todo-group-tab-label]{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap
}
.todo-task-group-add-tab{
    min-width:42px;
    padding:5px 12px 7px;
    font-size:20px;
    line-height:1
}
.todo-task-group-panel[hidden]{
    display:none
}
.todo-template-groups{
    display:grid;
    gap:18px
}
.todo-template-group-card{
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none
}
.todo-task-group-create-card{
    max-width:720px
}
.todo-task-group-create-card h3{
    margin:0 0 4px
}
.todo-task-group-add-form{
    align-items:end;
    margin:14px 0 0
}
.todo-template-group-row{
    padding:0 0 14px;
    margin-bottom:14px;
    border-bottom:1px solid #e2e8f0;
    grid-template-columns:minmax(220px,2fr) minmax(100px,.7fr) minmax(90px,.7fr) auto
}
.todo-template-list{
    display:grid;
    gap:12px;
    margin:0 0 14px;
    padding:0;
    border:0
}
.todo-template-row{
    grid-template-columns:minmax(150px,1.25fr) minmax(110px,.85fr) minmax(95px,.7fr) minmax(105px,.75fr) minmax(105px,.75fr) minmax(90px,.65fr) minmax(80px,.55fr) auto;
    gap:10px 12px;
    align-items:end;
    padding:14px;
    border:1px solid #e2e8f0;
    border-radius:10px;
    background:#f8fafc
}
.todo-template-row:last-child{
    border-bottom:1px solid #e2e8f0
}
.todo-template-description-field{
    min-width:0;
    grid-column:1/-1
}
.todo-template-description-field input{
    width:100%;
    box-sizing:border-box
}
.todo-template-basis-field,
.todo-template-offset-field,
.todo-template-repeat-field,
.todo-template-repeat-duration-field,
.todo-template-warning-field,
.todo-template-order-field{
    min-width:0
}
.todo-template-basis-select,
.todo-template-offset-input,
.todo-template-repeat-input,
.todo-template-repeat-duration-input,
.todo-template-warning-input,
.todo-template-order-field input{
    width:100%;
    max-width:none;
    box-sizing:border-box
}
.todo-template-patient-options{
    display:grid;
    align-self:end;
    align-content:end;
    gap:6px;
    min-width:0;
    min-height:38px
}
.todo-template-patient-options .check{
    justify-content:flex-start;
    margin:0;
    padding:0;
    color:var(--text);
    font-size:14px;
    font-weight:400;
    line-height:1.3
}
.todo-template-patient-options .check input{
    margin:0
}
.todo-template-patient-default-field:has(input:disabled){
    opacity:.55
}
.todo-template-role-field{
    grid-column:1/-1;
    min-width:0;
    margin:0;
    padding:0;
    border:0
}
.todo-template-role-field legend{
    margin-bottom:5px;
    color:#475569;
    font-size:12px;
    font-weight:750
}
.todo-template-role-field>small{
    display:block;
    margin-top:4px;
    color:#64748b
}
.todo-template-role-checks{
    align-items:flex-start
}
.todo-template-footer-actions{
    grid-column:1/-1;
    display:flex;
    align-items:flex-end;
    justify-content:flex-start;
    gap:8px;
    min-width:0
}
.todo-template-footer-actions .todo-template-order-field{
    flex:0 1 160px;
    width:160px
}
.todo-template-footer-actions .todo-template-order-field input,
.todo-template-footer-actions .trash-btn{
    height:40px;
    box-sizing:border-box
}
.todo-template-footer-actions .trash-btn{
    width:40px
}
.todo-template-delete-action{
    display:flex;
    flex:0 0 auto;
    align-items:flex-end;
    justify-content:flex-start;
    min-height:38px
}
.todo-template-add-form{
    display:grid;
    grid-template-columns:minmax(150px,1.25fr) minmax(110px,.85fr) minmax(95px,.7fr) minmax(105px,.75fr) minmax(105px,.75fr) minmax(90px,.65fr) minmax(80px,.55fr) auto;
    gap:10px 12px;
    align-items:end;
    margin:0;
    padding:14px;
    border:1px dashed #cbd5e1;
    border-radius:10px;
    background:#f8fafc
}
.todo-template-add-form .todo-template-description-field{
    grid-column:1/-1
}
.todo-template-add-heading{
    grid-column:1/-1;
    color:#334155;
    font-size:14px;
    font-weight:800
}
.todo-template-add-form>button{
    min-height:38px
}
@media(max-width:1050px){
    .todo-template-row,
    .todo-template-add-form{
        grid-template-columns:repeat(4,minmax(0,1fr))
    }
    .todo-template-description-field,
    .todo-template-add-heading{
        grid-column:1/-1
    }
}
@media(max-width:720px){
    .todo-task-group-tab{
        max-width:180px
    }
    .todo-task-group-add-tab{
        min-width:38px
    }
    .todo-task-group-add-form{
        display:grid;
        grid-template-columns:1fr
    }
    .todo-task-group-add-form label,
    .todo-task-group-add-form button{
        width:100%
    }
    .todo-template-group-row,
    .todo-template-row,
    .todo-template-add-form{
        grid-template-columns:1fr
    }
    .todo-template-description-field,
    .todo-template-add-heading{
        grid-column:1
    }
    .todo-template-row{
        padding:12px
    }
    .todo-template-footer-actions{
        grid-column:1;
        width:100%
    }
    .todo-template-footer-actions .todo-template-order-field{
        flex:1 1 auto;
        width:auto
    }
}

@media (max-width:900px){
    .todo-provider-paging-modal .modal-content{
        overflow-y:auto
    }
    .todo-provider-paging-layout{
        grid-template-columns:1fr;
        height:auto;
        min-height:0
    }
    .todo-provider-paging-charting{
        overflow:visible;
        padding-right:0
    }
    .todo-provider-paging-frame-wrap{
        height:620px
    }
}

.todo-template-preview{
    --request-text-scale:1;
    grid-column:1/-1;
    width:100%;
    max-width:792px;
    min-width:0;
    margin:2px auto 0 0;
    padding-top:10px;
    border-top:1px dashed #cbd5e1
}
.todo-template-preview-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin:0 2px 7px;
    color:#475569;
    font-size:12px;
    font-weight:800
}
.todo-template-preview-hint{
    color:#94a3b8;
    font-size:11px;
    font-weight:650
}
.todo-template-preview .todo-task-description-input{
    overflow:hidden;
    white-space:nowrap
}

/* Staffing-day labels are presentation only; actual assignment dates stay intact. */
.checkpoint-next-day{
    color:#64748b;
    font-size:.85em;
    font-weight:400;
    white-space:nowrap
}
.request-coverage-next-day{
    display:block;
    font-size:8px;
    line-height:9px;
    font-weight:400;
    white-space:nowrap
}

.request-coverage-graph-time.has-next-day{
    padding:1px 0;
    font:600 10px/11px sans-serif;
    font-family:inherit
}


/* Advisory request rules: always below the calendar, separate from save errors. */
.request-rules{margin:14px 0;padding:0;border:0;border-radius:0;background:transparent}
.request-rule-summary{border:1px solid #fdba74;border-left:3px solid #ea580c;border-radius:6px;padding:10px 12px;background:#fff7ed;overflow-wrap:anywhere}
.request-rule-summary.has-warnings{color:#9a3412}
.request-rule-summary .request-rule-guidance{margin:4px 0 6px;font-size:.95em;color:inherit}
.request-rule-summary ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.request-rule-summary li.is-warning{color:#9a3412}
.request-rules [data-request-rule-feedback]{margin:8px 0;padding:8px 10px;border:1px solid #fca5a5;border-radius:6px;background:#fef2f2;color:#991b1b;overflow-wrap:anywhere}
.request-rules [data-request-rule-feedback]:empty{display:none}
.request-rule-editor{margin:16px 0;padding:14px;border:1px solid #d7dee7;border-radius:8px}
.request-rule-editor h3{margin:0 0 8px}
.request-rule-editor fieldset{border:0;margin:0;padding:0;min-width:0}
.request-rule-editor [data-request-rule-rows]{display:grid;gap:9px;margin-bottom:10px}
.request-rule-row{display:grid;grid-template-columns:auto minmax(130px,1.3fr) minmax(130px,1.5fr) minmax(80px,.6fr) minmax(120px,1fr) auto;align-items:end;gap:8px;padding:10px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px}
.request-rule-row label{display:grid;gap:4px;min-width:0;font-size:13px}
.request-rule-row label.check{display:flex;align-items:center;align-self:center}
.request-rule-row input[type=number],.request-rule-row select{min-width:0;width:100%;box-sizing:border-box}
.request-rule-row [hidden]{display:none!important}
.request-rule-row .check input{width:auto}
.request-rule-editor[data-unsaved="1"] [data-request-rule-save-status]{color:#92400e}
@media(max-width:1050px){.request-rule-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.request-rule-row{grid-template-columns:minmax(0,1fr)}.request-rule-editor{padding:10px}}

.request-rules[hidden],.request-rules [hidden]{display:none!important}
.request-rule-editor .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.request-rule-editor [data-request-rule-save]{margin-left:8px}
.request-rule-row [data-rule-no-target]{align-self:center}
