:root{--color-canvas:#f3ecde;--color-surface:#fffaf2;--color-surface-strong:#f9f0e2;--color-ink:#203126;--color-muted:#776e61;--color-line:#dac7a7;--color-line-soft:#eadfcf;--color-primary:#365b35;--color-primary-deep:#294528;--color-accent:#b78a36;--color-weekend:#5f7980;--color-holiday:#a35f43;--shadow-soft:0 16px 36px #3d301e1a;--radius-large:24px;--radius-medium:15px;--page-width:1680px;--font-serif:Georgia, "Times New Roman", serif;--font-system:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box}html{background:var(--color-canvas);color:var(--color-ink);font-family:var(--font-serif);scroll-behavior:smooth}body{min-width:320px;min-height:100vh;margin:0}button,select,input{color:inherit;font:inherit}button,select{cursor:pointer}button:focus-visible,select:focus-visible,input:focus-visible,a:focus-visible,.table-scroll:focus-visible{outline-offset:2px;outline:3px solid #b78a366b}h1,h2,p{margin-top:0}h2{letter-spacing:.02em;margin-bottom:0;font-size:1.48rem}[data-font-style=system]{font-family:var(--font-system)}[data-text-size=compact]{font-size:14px}[data-text-size=large]{font-size:18px}[data-background-detail=plain] .app-frame:before,[data-background-detail=plain] .app-frame:after{display:none}[data-motion=reduced] *{transition-duration:.01ms!important;animation-duration:.01ms!important}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}[data-colour-theme=light]{--color-canvas:#f4f5f4;--color-surface:#fff;--color-surface-strong:#eef1ee;--color-line:#c9d0ca;--color-line-soft:#e1e6e2;--color-muted:#5e675f}[data-colour-theme=high-contrast]{--color-canvas:#fff;--color-surface:#fff;--color-surface-strong:#f3f3f3;--color-ink:#000;--color-muted:#222;--color-line:#000;--color-line-soft:#777;--color-primary:#143d13;--color-primary-deep:#082608;--color-accent:#7a4c00;--color-weekend:#254f5a;--color-holiday:#7f1f00}[data-title-layout=one-line] .site-header h1{white-space:nowrap}[data-title-layout=two-lines] .site-header h1{max-width:720px;margin-left:auto;margin-right:auto}@media (width<=900px){[data-title-layout=one-line] .site-header h1{white-space:normal}}.app-frame{--app-panel-width:min(calc(100% - 38px), var(--page-width));background:radial-gradient(circle at 6% 24%, #b78a3614, transparent 24rem), radial-gradient(circle at 92% 68%, #365b3512, transparent 28rem), var(--color-canvas);grid-template-rows:auto minmax(0,1fr) auto;height:100dvh;display:grid;position:relative;overflow:hidden}.app-frame:before,.app-frame:after{z-index:0;content:"";pointer-events:none;border:1px solid #b78a361f;border-radius:50%;width:42rem;height:42rem;position:fixed}.app-frame:before{top:24rem;left:-26rem}.app-frame:after{bottom:-19rem;right:-25rem}.site-header,.dashboard-shell,.site-footer{z-index:1;width:var(--app-panel-width);margin-left:auto;margin-right:auto;position:relative}.site-header{border-bottom:1px solid var(--color-line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffaf2ad;grid-template-columns:1fr minmax(0,980px) 1fr;align-items:center;min-height:174px;padding:20px clamp(24px,5vw,92px) 18px;display:grid}.header-copy{text-align:center;grid-column:2}.eyebrow{color:var(--color-primary-deep);letter-spacing:.38em;text-transform:uppercase;margin-bottom:8px;font-size:.84rem;font-weight:700}.site-header h1{letter-spacing:.07em;text-transform:uppercase;margin-bottom:2px;font-size:clamp(2.4rem,4.4vw,4.25rem);font-weight:500;line-height:1}[data-title-size=medium] .site-header h1{font-size:clamp(2.8rem,5.1vw,4.8rem)}[data-title-size=large] .site-header h1{font-size:clamp(3.2rem,5.8vw,5.4rem)}.title-rule{background:linear-gradient(90deg, transparent, var(--color-line), transparent);justify-content:center;max-width:390px;height:1px;margin:8px auto 7px;display:flex}.title-rule span{border:1px solid var(--color-accent);background:var(--color-canvas);width:8px;height:8px;transform:translateY(-4px)rotate(45deg)}.subtitle{color:var(--color-muted);letter-spacing:.04em;margin-bottom:0;font-size:1.2rem;font-style:italic}.header-actions{flex-wrap:wrap;justify-content:flex-end;justify-self:end;gap:9px;display:flex}.settings-button,.logout-button{border:1px solid var(--color-line);background:var(--color-surface);min-height:44px;color:inherit;box-shadow:var(--shadow-soft);letter-spacing:.04em;border-radius:999px;justify-content:center;align-items:center;padding:12px 22px;font-weight:700;text-decoration:none;transition:transform .16s,border-color .16s;display:inline-flex}.settings-button:hover,.logout-button:hover{border-color:var(--color-accent);transform:translateY(-1px)}.logout-button{color:var(--color-holiday)}.dashboard-shell{overscroll-behavior:contain;scrollbar-gutter:stable;gap:14px;min-height:0;padding:18px 0 22px;display:grid;overflow-y:auto}.notice-card,.control-card,.holiday-manager,.roster-card{border:1px solid var(--color-line);border-radius:var(--radius-large);box-shadow:var(--shadow-soft);background:#fffaf2eb}.notice-card{align-items:center;gap:12px;padding:13px 18px;display:flex}.notice-card p{color:var(--color-muted);margin:2px 0 0}.notice-icon{background:var(--color-primary);color:#fff;border-radius:50%;flex:0 0 32px;place-items:center;width:32px;height:32px;font-weight:700;display:grid}.control-card,.holiday-manager,.roster-card{padding:20px}[data-layout-spacing=comfortable] .dashboard-shell{gap:24px;padding-top:28px}[data-layout-spacing=comfortable] .control-card,[data-layout-spacing=comfortable] .holiday-manager,[data-layout-spacing=comfortable] .roster-card{padding:28px}.section-heading-row{justify-content:space-between;align-items:center;gap:20px;display:flex}.section-kicker{color:var(--color-accent);letter-spacing:.18em;text-transform:uppercase;margin-bottom:4px;font-size:.76rem;font-weight:700}.period-controls{gap:12px;display:flex}.period-controls label,.holiday-form label{color:var(--color-muted);gap:4px;font-size:.78rem;font-weight:700;display:grid}.period-controls select,.holiday-form input,.settings-field select{border:1px solid var(--color-line);background:var(--color-surface);border-radius:12px;min-height:44px}.period-controls select{min-width:140px;padding:0 40px 0 13px}.site-footer{border-top:1px solid var(--color-line);color:var(--color-muted);text-align:center;background:#fffaf2c2;padding:16px 24px 13px}.site-footer p{margin-bottom:8px}.site-footer nav{flex-wrap:wrap;justify-content:center;gap:0;display:flex}.site-footer a{color:var(--color-primary);border-right:1px solid var(--color-line);text-underline-offset:3px;padding:0 10px}.site-footer a:last-child{border-right:0}.site-footer small{font-family:var(--font-system);margin-top:8px;font-size:.68rem;display:block}@media (width<=900px){.site-header{grid-template-columns:1fr auto}.header-copy{text-align:left;grid-column:1}.title-rule{justify-content:flex-start;margin-left:0}.site-header h1{letter-spacing:.02em}.section-heading-row,.dashboard-heading{flex-direction:column;align-items:stretch}.period-controls{flex-wrap:wrap}}@media (width<=560px){.app-frame{--app-panel-width:min(calc(100% - 20px), var(--page-width))}.site-header{min-height:150px;padding:18px}.site-header h1{font-size:2rem}.header-actions{flex-direction:column}.settings-button,.logout-button{min-height:40px;padding:10px 14px}.control-card,.holiday-manager,.roster-card{border-radius:18px;padding:15px}}@media (height<=480px){.site-header{min-height:0;padding-top:8px;padding-bottom:8px}.site-header h1{font-size:1.65rem}.eyebrow,.title-rule,.subtitle,.site-footer p,.site-footer nav{display:none}.site-footer{padding-top:6px;padding-bottom:6px}.site-footer small{margin-top:0}}.dashboard-shell>*{min-width:0}.primary-button,.secondary-button{border-radius:11px;min-height:40px;padding:8px 15px;font-weight:700}.primary-button{border:1px solid var(--color-primary);background:var(--color-primary);color:#fff}.primary-button:hover{background:var(--color-primary-deep)}.secondary-button{border:1px solid var(--color-line);background:var(--color-surface)}.secondary-button:hover{border-color:var(--color-accent)}.category-tabs{border:1px solid var(--color-line-soft);border-radius:var(--radius-medium);grid-template-columns:repeat(3,1fr);margin-top:18px;display:grid;overflow:hidden}.category-tabs button{border:0;border-right:1px solid var(--color-line-soft);text-align:left;background:0 0;align-content:center;gap:4px;min-height:67px;padding:10px 16px;display:grid}.category-tabs button:last-child{border-right:0}.category-tabs button:hover{background:var(--color-surface-strong)}.category-tabs button.active{background:var(--color-primary);color:#fff}.category-tabs button span{font-weight:700}.category-tabs button small{opacity:.75}.dashboard-metrics{grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px;display:grid}.dashboard-metrics article{border:1px solid var(--color-line-soft);border-radius:var(--radius-medium);background:var(--color-surface);justify-content:space-between;align-items:center;gap:15px;min-height:70px;padding:12px 15px;display:flex}.dashboard-metrics span{color:var(--color-muted);font-size:.86rem}.dashboard-metrics strong{font-size:1.65rem}.status-text{color:var(--color-holiday);font-size:1.05rem!important}.holiday-form{border:1px dashed var(--color-line);border-radius:var(--radius-medium);background:var(--color-surface-strong);grid-template-columns:190px minmax(220px,1fr) auto;align-items:end;gap:12px;margin-top:14px;padding:14px;display:grid}.holiday-form input{width:100%;padding:0 12px}.holiday-list{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.holiday-chip{background:#a35f4314;border:1px solid #a35f4347;border-radius:999px;align-items:center;gap:8px;min-height:36px;padding:4px 7px 4px 5px;display:inline-flex}.holiday-chip strong{background:var(--color-holiday);color:#fff;border-radius:50%;place-items:center;width:27px;height:27px;display:grid}.holiday-chip button{background:0 0;border:0;border-radius:50%;width:25px;height:25px;padding:0;font-size:1.1rem}.empty-note{color:var(--color-muted);margin:0;font-style:italic}.table-legend{color:var(--color-muted);flex-wrap:wrap;gap:12px;font-size:.78rem;display:flex}.table-legend span{align-items:center;gap:5px;display:inline-flex}.table-legend i{border-radius:50%;width:10px;height:10px}.legend-weekday{background:var(--color-primary)}.legend-weekend{background:var(--color-weekend)}.legend-holiday{background:var(--color-holiday)}.modal-backdrop{z-index:20;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#191f1975;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.settings-modal{border:1px solid var(--color-line);background:var(--color-surface);border-radius:24px;width:min(520px,100%);max-height:calc(100vh - 40px);padding:28px 28px 24px;position:relative;overflow:auto;box-shadow:0 28px 72px #1b1f194d}.settings-modal h2{margin-bottom:14px;font-size:1.75rem}.modal-intro{color:var(--color-muted);margin-bottom:20px}.modal-close{border:1px solid var(--color-line);background:var(--color-surface);border-radius:50%;width:38px;height:38px;font-size:1.45rem;line-height:1;position:absolute;top:20px;right:20px}.settings-fields{gap:12px;display:grid}.settings-field{grid-template-columns:minmax(130px,1fr) minmax(210px,1.55fr);align-items:center;gap:16px;display:grid}.settings-field>span{text-align:right;font-weight:700}.settings-field select{width:100%;padding:0 15px}.modal-actions{border-top:1px solid var(--color-line-soft);flex-wrap:wrap;gap:9px;margin-top:18px;padding-top:16px;display:flex}@media (width<=800px){.category-tabs,.dashboard-metrics{grid-template-columns:1fr}.category-tabs button{border-right:0;border-bottom:1px solid var(--color-line-soft)}.category-tabs button:last-child{border-bottom:0}.holiday-form{grid-template-columns:1fr}}@media (width<=540px){.settings-field{grid-template-columns:1fr;gap:5px}.settings-field>span{text-align:left}.modal-actions>*{width:100%}}.roster-heading{margin-bottom:13px}.workspace-status{min-height:24px;color:var(--color-muted);align-items:center;gap:8px;margin:-4px 0 10px;font-size:.78rem;display:flex}.workspace-status strong{color:inherit}.workspace-status-error{color:var(--color-holiday)}.workspace-status-saving{opacity:.82}.table-scroll{border:1px solid var(--color-line);border-radius:var(--radius-medium);background:var(--color-surface);scrollbar-color:var(--color-line) transparent;width:100%;overflow:auto}.roster-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-family:var(--font-system);white-space:nowrap;font-size:.72rem}.roster-table th,.roster-table td{border-right:1px solid var(--color-line-soft);border-bottom:1px solid var(--color-line-soft);text-align:center;height:42px;padding:5px 7px}.roster-table th{z-index:4;color:var(--color-ink);background:#f6eddf;position:sticky;top:0}.roster-table tbody tr:last-child td{border-bottom:0}.roster-table tr>:last-child{border-right:0}.roster-table tbody tr:hover td{background-color:#fffcf7}.roster-table .sticky-col{z-index:3;background:var(--color-surface);position:sticky}.roster-table th.sticky-col{z-index:6;background:#f6eddf}.col-index{width:45px;min-width:45px;left:0}.col-post{width:170px;min-width:170px;left:45px}.col-rank{width:80px;min-width:80px;font-weight:700;left:215px}.col-name{width:210px;min-width:210px;left:295px;text-align:left!important}.col-registry{width:105px;min-width:105px;left:505px;border-right:2px solid var(--color-line)!important}.roster-field{box-sizing:border-box;border:1px solid var(--color-line);width:100%;min-width:0;height:30px;color:var(--color-ink);font:inherit;background:#fffdf9;border-radius:7px;line-height:1.2}.roster-field:focus{outline-offset:1px;outline:2px solid #b78a368c}.roster-field:disabled,.duty-toggle:disabled{cursor:wait;opacity:.55}.roster-post-select{padding:4px 24px 4px 7px;font-weight:700}.roster-rank-select{padding:4px 3px;font-weight:700}.roster-text-input{padding:4px 7px}.roster-text-input::placeholder{color:var(--color-muted);opacity:.75}.roster-readonly{box-sizing:border-box;border:1px solid var(--color-line-soft);background:var(--color-surface-strong);width:100%;min-width:0;min-height:30px;color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap;border-radius:7px;justify-content:center;align-items:center;padding:4px 7px;display:flex;overflow:hidden}.roster-readonly.empty{color:var(--color-muted);opacity:.65;font-weight:400}.day-heading,.duty-cell{width:43px;min-width:43px}.duty-cell{padding:3px!important}.day-heading span,.day-heading small{display:block}.day-heading small{color:var(--color-muted);margin-top:2px;font-size:.62rem}.day-weekend{background-image:linear-gradient(#5f798014,#5f798014)}.day-holiday{background-image:linear-gradient(#a35f431a,#a35f431a)}.duty-toggle{width:100%;height:34px;color:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;place-items:center;padding:0;transition:background-color .14s,border-color .14s;display:grid}.duty-toggle:not(.active):after{color:#0000;content:"+";font-size:.9rem;font-weight:700;transition:color .14s}.duty-toggle:hover,.duty-toggle:focus-visible{border-color:var(--color-line);background:#fff9;outline:none}.duty-toggle:not(.active):hover:after,.duty-toggle:not(.active):focus-visible:after{color:var(--color-muted)}.duty-marker{color:#fff;pointer-events:none;border-radius:50%;place-items:center;width:26px;height:26px;font-size:.72rem;font-weight:800;display:inline-grid}.marker-weekday{background:var(--color-primary)}.marker-weekend{background:var(--color-weekend)}.marker-holiday{background:var(--color-holiday)}.total-heading,.total-cell{width:88px;min-width:88px;font-weight:800}.total-heading{border-left:1px solid var(--color-line)}.total-cell{background:#faf4e9;font-size:.83rem}.holiday-total{color:var(--color-holiday)}.grand-total{background:var(--color-primary)!important;color:#fff!important}.site-header,.dashboard-shell,.site-footer{width:var(--app-panel-width);box-sizing:border-box;max-width:none;margin-left:auto;margin-right:auto}.site-header{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr);align-items:center;row-gap:5px;min-height:0;padding:9px clamp(18px,4vw,64px)}.header-copy{display:contents}.site-header h1{text-align:center;text-overflow:ellipsis;white-space:nowrap;grid-area:1/1;min-width:0;margin:0;font-size:clamp(1.75rem,3vw,3rem);line-height:1;overflow:hidden}.eyebrow{letter-spacing:.24em;text-align:center;text-overflow:ellipsis;white-space:nowrap;grid-area:2/1;justify-self:center;min-width:0;margin:0;font-size:.72rem;line-height:1.1;overflow:hidden}.title-rule,.subtitle{display:none}.header-actions{z-index:2;flex-wrap:nowrap;position:absolute;bottom:8px;right:12px}.settings-button,.logout-button{white-space:nowrap;min-height:34px;padding:7px 14px}.dashboard-shell{grid-template-rows:auto minmax(0,1fr);overflow:hidden}.roster-card{grid-template-rows:auto minmax(0,1fr);min-height:0;display:grid}.roster-card .table-scroll{height:100%;min-height:0;overflow:auto}.table-legend{align-items:center;position:relative;overflow:visible}.holiday-control{align-items:center;display:inline-flex;position:relative}.holiday-legend-button{border:1px solid var(--color-line-soft);min-height:27px;color:var(--color-muted);font:inherit;white-space:nowrap;background:0 0;border-radius:999px;padding:3px 9px;font-size:.69rem;font-weight:700}.holiday-legend-button:hover,.holiday-legend-button:focus-visible{border-color:var(--color-line);background:var(--color-surface-strong);color:var(--color-primary)}.holiday-editor{z-index:20;border:1px solid var(--color-line);border-radius:var(--radius-medium);background:var(--color-surface);width:min(560px,100vw - 48px);box-shadow:var(--shadow-soft);padding:12px;position:absolute;top:calc(100% + 9px);right:0}.holiday-editor .holiday-form{margin-top:0}.site-footer{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr);align-items:center;row-gap:9px;padding:9px 16px 7px;display:grid}.site-footer p{text-align:center;white-space:nowrap;grid-area:1/1;margin:0;font-size:.92rem;line-height:1.2}.site-footer nav{white-space:nowrap;scrollbar-width:none;flex-wrap:nowrap;grid-area:2/1;justify-content:center;justify-self:center;min-width:0;overflow-x:auto}.site-footer nav::-webkit-scrollbar{display:none}.site-footer small{text-align:right;white-space:nowrap;grid-area:2/1;justify-self:end;margin:0;line-height:1.1}@media (width<=900px){.site-header h1{letter-spacing:.03em}}@media (width<=700px){.dashboard-shell{grid-template-rows:none;overflow-y:auto}.roster-card{display:block}.roster-card .table-scroll{height:auto}}@media (width<=560px){.site-header{row-gap:4px;min-height:0;padding:7px 10px}.site-header h1{font-size:clamp(1.2rem,5.8vw,1.65rem)}.eyebrow{letter-spacing:.1em;font-size:.56rem}.header-actions{flex-direction:row;gap:5px;bottom:5px;right:8px}.settings-button,.logout-button{min-height:30px;padding:5px 9px;font-size:.72rem}.holiday-editor{width:calc(100vw - 36px);right:-8px}.site-footer{row-gap:7px;padding:7px 8px 5px}.site-footer p{font-size:.8rem}.site-footer a{padding:0 6px;font-size:.68rem}.site-footer small{font-size:.62rem}}@media (height<=480px){.eyebrow,.site-footer p,.site-footer nav{display:initial}.title-rule,.subtitle{display:none}.site-header,.site-footer{padding-top:4px;padding-bottom:4px}}.roster-heading-tools{justify-items:end;gap:8px;display:grid}.export-actions{flex-wrap:wrap;justify-content:flex-end;gap:7px;display:flex}.export-button{border:1px solid var(--color-line);background:var(--color-surface);min-height:32px;color:var(--color-primary-deep);font-family:var(--font-system);letter-spacing:.045em;white-space:nowrap;border-radius:999px;padding:6px 13px;font-size:.7rem;font-weight:800;transition:border-color .16s,background-color .16s,transform .16s}.export-button:hover:not(:disabled),.export-button:focus-visible:not(:disabled){border-color:var(--color-accent);background:var(--color-surface-strong);transform:translateY(-1px)}.pdf-button{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.pdf-button:hover:not(:disabled),.pdf-button:focus-visible:not(:disabled){border-color:var(--color-primary-deep);background:var(--color-primary-deep)}.export-button:disabled{cursor:wait;opacity:.65}.roster-card.pdf-exporting{display:block!important;overflow:visible!important}.roster-card.pdf-exporting .table-scroll{height:auto!important;max-height:none!important;overflow:visible!important}.roster-card.pdf-exporting .roster-table th,.roster-card.pdf-exporting .roster-table .sticky-col{position:static!important}.roster-card.pdf-exporting .export-actions,.roster-card.pdf-exporting .holiday-control{display:none!important}@media (width<=900px){.roster-heading-tools{justify-items:start;width:100%}.export-actions{justify-content:flex-start}}@media print{@page{size:A4 landscape;margin:7mm}html,body,#root,.app-frame{background:#fff!important;width:auto!important;height:auto!important;min-height:0!important;overflow:visible!important}body.print-roster-only .site-header,body.print-roster-only .site-footer,body.print-roster-only .control-card{display:none!important}body.print-roster-only .dashboard-shell{width:auto!important;padding:0!important;display:block!important;overflow:visible!important}body.print-roster-only .roster-card{width:max-content!important;min-width:100%!important;box-shadow:none!important;border:0!important;border-radius:0!important;padding:0!important;display:block!important;overflow:visible!important}body.print-roster-only .roster-card .table-scroll{border-radius:0!important;width:max-content!important;height:auto!important;max-height:none!important;overflow:visible!important}body.print-roster-only .roster-table th,body.print-roster-only .roster-table .sticky-col{position:static!important}body.print-roster-only .export-actions,body.print-roster-only .holiday-control{display:none!important}body.print-roster-only .roster-heading{margin-bottom:8px}}.dashboard-shell{grid-template-rows:minmax(0,1fr);gap:0}.roster-heading-primary{flex-wrap:wrap;align-items:flex-end;gap:12px 20px;min-width:0;display:flex}.roster-title-copy{min-width:165px}.roster-period-controls{flex-wrap:nowrap;align-items:flex-end;gap:8px}.roster-period-controls label{gap:3px}.roster-period-controls select{border-radius:10px;min-width:118px;min-height:36px;padding:0 34px 0 11px}.personnel-archive-button{border-color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 10%, var(--color-surface));color:var(--color-primary-deep)}.personnel-archive-button:hover,.personnel-archive-button:focus-visible{border-color:var(--color-primary);background:color-mix(in srgb, var(--color-accent) 18%, var(--color-surface))}.personnel-modal{width:min(1080px,100%)}.personnel-file-actions{border:1px solid var(--color-line-soft);background:color-mix(in srgb, var(--color-accent) 6%, var(--color-surface));border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:14px;padding:11px 12px;display:flex}.personnel-file-group{flex-wrap:wrap;align-items:center;gap:7px;min-width:0;display:flex}.personnel-file-group+.personnel-file-group{border-left:1px solid var(--color-line-soft);padding-left:16px}.personnel-file-group strong{color:var(--color-primary-deep);white-space:nowrap;margin-right:2px;font-size:.75rem}.personnel-file-actions .secondary-button{letter-spacing:.035em;min-height:36px;padding:6px 12px;font-size:.72rem}.personnel-file-group:first-child .secondary-button{border-color:color-mix(in srgb, var(--color-primary) 42%, var(--color-line))}.personnel-file-input{display:none}.personnel-file-status{border-top:1px solid var(--color-line-soft);width:100%;color:var(--color-muted);margin:0;padding-top:8px;font-size:.76rem;font-weight:700}.personnel-add-form{border:1px solid var(--color-line-soft);border-radius:var(--radius-medium);background:var(--color-surface-strong);grid-template-columns:minmax(170px,1.2fr) minmax(110px,.7fr) minmax(220px,1.5fr) minmax(130px,.8fr) auto;align-items:end;gap:10px;padding:15px;display:grid}.personnel-add-form label{color:var(--color-muted);gap:5px;font-size:.76rem;font-weight:700;display:grid}.personnel-add-form select,.personnel-add-form input,.personnel-record select,.personnel-record input{box-sizing:border-box;border:1px solid var(--color-line);width:100%;min-width:0;height:38px;color:var(--color-ink);font:inherit;background:#fffdf9;border-radius:9px;padding:0 10px}.personnel-records{gap:8px;margin-top:16px;display:grid}.personnel-record{border:1px solid var(--color-line-soft);background:var(--color-surface);border-radius:12px;grid-template-columns:minmax(170px,1.2fr) minmax(110px,.7fr) minmax(220px,1.5fr) minmax(130px,.8fr) auto;align-items:center;gap:8px;padding:9px;display:grid}.personnel-delete-button{min-height:36px;color:var(--color-holiday);font:inherit;background:#a35f4314;border:1px solid #a35f4366;border-radius:9px;padding:6px 11px;font-weight:700}.personnel-delete-button:hover,.personnel-delete-button:focus-visible{border-color:var(--color-holiday);background:#a35f4324}.roster-personnel-select{text-overflow:ellipsis;padding:4px 27px 4px 7px}.roster-card.pdf-exporting .roster-period-controls,body.print-roster-only .roster-period-controls{display:none!important}@media (width<=1050px){.roster-heading-primary,.roster-heading-tools{width:100%}}@media (width<=900px){.personnel-add-form,.personnel-record{grid-template-columns:1fr 1fr}.personnel-add-form .primary-button,.personnel-delete-button{grid-column:1/-1}.personnel-file-group+.personnel-file-group{border-top:1px solid var(--color-line-soft);border-left:0;width:100%;padding-top:10px;padding-left:0}}@media (width<=560px){.roster-heading-primary,.roster-period-controls{width:100%}.roster-period-controls label{flex:1 1 0}.roster-period-controls select{width:100%;min-width:0}.personnel-add-form,.personnel-record{grid-template-columns:1fr}.personnel-add-form .primary-button,.personnel-delete-button{grid-column:auto}.personnel-file-group,.personnel-file-actions .secondary-button,.personnel-file-group strong{width:100%}}.dashboard-shell{scrollbar-gutter:auto;padding-left:0;padding-right:0}.dashboard-shell>.roster-card{box-sizing:border-box;justify-self:stretch;width:100%;max-width:none;margin-left:0;margin-right:0}.settings-button,.logout-button,.holiday-legend-button,.personnel-archive-button,.print-button,.pdf-button{transition:border-color .16s,background-color .16s,color .16s,box-shadow .16s,transform .16s;box-shadow:0 1px #232d230a}.settings-button{color:#5a5346;background:#f5f1e8;border-color:#d8cbb5}.logout-button{color:#8a5642;background:#f2e2d8;border-color:#d1ae9d}.holiday-legend-button{color:#8b5e4c;background:#f3e3dc;border-color:#d8b7a8}.personnel-archive-button{color:#35543a;background:#e4eee4;border-color:#afc4af}.print-button{color:#6e5d33;background:#f4eedf;border-color:#d6c8a8}.pdf-button{color:#5d5240;background:#e8e3d6;border-color:#beb29a}.settings-button:hover,.settings-button:focus-visible{background:#eee8dd;border-color:#c9baa1}.logout-button:hover,.logout-button:focus-visible{background:#ebd7cb;border-color:#c59680}.holiday-legend-button:hover,.holiday-legend-button:focus-visible{color:#7f503e;background:#eed8cf;border-color:#cda28f}.personnel-archive-button:hover,.personnel-archive-button:focus-visible{color:#2f4c34;background:#dce9dc;border-color:#94b095}.print-button:hover:not(:disabled),.print-button:focus-visible:not(:disabled){color:#625128;background:#efe7d4;border-color:#c7b58e}.pdf-button:hover:not(:disabled),.pdf-button:focus-visible:not(:disabled){color:#504634;background:#e0dacb;border-color:#aa9c82}.settings-button:hover,.settings-button:focus-visible,.logout-button:hover,.logout-button:focus-visible,.holiday-legend-button:hover,.holiday-legend-button:focus-visible,.personnel-archive-button:hover,.personnel-archive-button:focus-visible,.print-button:hover:not(:disabled),.print-button:focus-visible:not(:disabled),.pdf-button:hover:not(:disabled),.pdf-button:focus-visible:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 10px #232d2314}.settings-button:active,.logout-button:active,.holiday-legend-button:active,.personnel-archive-button:active,.print-button:active:not(:disabled),.pdf-button:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 4px #232d2312}
