:root{font-family:Inter,system-ui,sans-serif;color:#e7edf3;background:#101820}@media(min-width:721px){:root{font-size:85%}}body{margin:0;min-height:100vh;overflow:hidden}#root{min-height:100vh}main{max-width:1100px;margin:3rem auto;padding:1.5rem}p{color:#76d4ff;font-weight:700;text-transform:uppercase;letter-spacing:.08em}h1{font-size:clamp(2rem,7vw,4rem);margin-top:0}@media(min-width:721px){h1{font-size:clamp(1.7rem,5.95vw,3.4rem)}}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}section{background:#172532;padding:1.25rem;border-radius:.75rem;margin:1rem 0}form{display:grid;gap:.65rem}input,textarea,select{box-sizing:border-box;width:100%;border:1px solid #3a5164;border-radius:.4rem;background:#0e1821;color:#fff;padding:.7rem;font:inherit}textarea{min-height:7rem;resize:vertical}button{border:0;border-radius:.4rem;background:#76d4ff;color:#062030;font-weight:700;padding:.7rem 1rem;cursor:pointer}.operator{display:block;max-width:360px;margin:1rem 0}.operator input{margin-top:.35rem}output{display:block;color:#9de6a6;margin:.75rem 0}.list article{display:flex;justify-content:space-between;gap:1rem;border-top:1px solid #314657;padding:1rem 0}.list article:first-child{border-top:0}.on-shift-officer-action{display:grid;grid-template-columns:minmax(130px,1fr) auto;align-self:start;gap:.35rem;min-width:220px}.on-shift-officer-action select{padding:.45rem}.on-shift-officer-action button{white-space:nowrap}.list span,.list small{display:block;margin-top:.25rem;color:#c6d4de}.list small{color:#8ea4b5}.date-filter{display:grid;gap:.35rem;max-width:220px;margin:.75rem 0}.app-shell{min-height:100vh;display:grid;grid-template-columns:252px minmax(0,1fr)}.shell{height:100vh;height:100dvh;display:grid;grid-template-columns:220px minmax(0,1fr);background:#101820;overflow:hidden}.shell aside{padding:1.5rem 1rem;background:#0a131c;border-right:1px solid #2d4456;display:flex;flex-direction:column;gap:.45rem;min-height:0;overflow:hidden}.shell aside strong{padding:.5rem;color:#76d4ff;font-size:1.1rem}.shell .nav{background:transparent;color:#b9cbd8;border:1px solid transparent;text-align:left}.shell .nav.active,.shell .nav:hover{background:#1b384d;border-color:#3d6d87;color:#fff}.shell main{max-width:1200px;width:100%;margin:0 auto;padding:2rem;box-sizing:border-box;min-height:0;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior:contain}.shell main::-webkit-scrollbar{display:none}.shell header{display:flex;flex-wrap:wrap;gap:.8rem;align-items:end}.shell header h1{margin:0}.page-title-row{display:flex;width:100%;align-items:center;justify-content:space-between;gap:1rem}.page-add-button{display:grid;width:2.5rem;height:2.5rem;padding:0;place-items:center;font-size:1.75rem;line-height:1}.logout-button{background:transparent;border:1px solid #5c7486;color:#d8e4eb}.logout-button:hover{border-color:#76d4ff;color:#fff}.sidebar-footer{margin-top:auto;padding-top:1rem}.sidebar-footer .logout-button{width:100%}.shell .operator{margin:0;flex:1}@media(max-width:720px){body{overflow:auto}.shell{height:auto;min-height:100vh;grid-template-columns:1fr;overflow:visible}.shell aside{display:grid;grid-template-columns:repeat(2,1fr);border-right:0;border-bottom:1px solid #2d4456;overflow:visible}.shell aside strong{grid-column:1/-1}.sidebar-footer{grid-column:1/-1;margin-top:0}.shell main{padding:1rem;overflow:visible}}:root{--bg: #101820;--panel: #172532;--surface: #0e1821;--line: #314657;--text: #e7edf3;--muted: #9fb0bd;--accent: #76d4ff;--accent-soft: #1b384d;--danger: #ef7777;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{background:var(--bg)}.shell{grid-template-columns:248px minmax(0,1fr);background:var(--bg)}.shell aside{padding:1.25rem 1rem;gap:.35rem;background:#0b141d;border-color:var(--line)}.brandmark{min-height:58px;margin:0 0 1rem;padding:.6rem;border-bottom:1px solid rgba(159,176,189,.15)}.brandmark img{width:38px;height:38px}.brandmark strong{color:var(--text)!important;font-size:.98rem!important}.shell .nav{min-height:44px;padding:.65rem .8rem;border-radius:12px;color:#b5c4ce;font-size:.94rem;transition:background .14s ease,border-color .14s ease,color .14s ease}.shell .nav.active,.shell .nav:hover{background:var(--accent-soft);border-color:#31566d;color:#fff}.shell main{max-width:1360px;padding:clamp(1.2rem,2.5vw,2.25rem)}.shell main>header{display:block;margin:0 0 1.5rem}.shell main>header>p,.section-eyebrow{margin:0 0 .5rem;color:var(--accent);font-size:.72rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.shell main h1{color:var(--text);font-size:clamp(1.8rem,3vw,2.45rem);letter-spacing:-.035em;line-height:1.12}.shell main h2{margin:0 0 1rem;color:var(--text);font-size:1.08rem;letter-spacing:-.015em}.page-title-row{align-items:center}section{margin:0 0 1rem;padding:clamp(1rem,2vw,1.4rem);border:1px solid rgba(159,176,189,.12);border-radius:18px;background:var(--panel);box-shadow:0 12px 30px #00000014}p{color:var(--muted);font-weight:400;letter-spacing:normal;line-height:1.55;text-transform:none}input,textarea,select{min-height:44px;border:1px solid #354b5c;border-radius:12px;background:var(--surface);color:var(--text);padding:.7rem .8rem;transition:border-color .14s ease,box-shadow .14s ease}textarea{min-height:112px}input::placeholder,textarea::placeholder{color:#8094a3}input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #76d4ff1f}button{min-height:42px;border-radius:12px;padding:.65rem .95rem;transition:transform .12s ease,opacity .12s ease,background .12s ease}button:hover:not(:disabled){filter:brightness(1.06)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{cursor:not-allowed;opacity:.48}.logout-button,.secondary-button{min-height:42px;border:1px solid #3a5164;background:transparent;color:var(--text)}output{margin:1rem 0 0;padding:.8rem 1rem;border:1px solid rgba(118,212,255,.18);border-radius:12px;background:#76d4ff12;color:var(--accent);line-height:1.45}.input-composer{margin-bottom:1rem}.input-composer form{gap:.85rem}.input-composer label,.announcement-form label{display:grid;gap:.4rem;color:var(--muted);font-size:.88rem;font-weight:650}.date-filter{display:grid;max-width:none;gap:.8rem;margin:.25rem 0 0}.date-filter-presets{display:flex;flex-wrap:wrap;gap:.45rem}.date-preset{min-height:36px;padding:.45rem .7rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:#c3d0d9;font-size:.8rem;font-weight:700}.date-preset.active{border-color:#39718f;background:var(--accent-soft);color:var(--accent)}.date-filter-range{display:flex;align-items:end;gap:.65rem;max-width:470px}.date-filter-range label{display:grid;flex:1;gap:.35rem;color:var(--muted);font-size:.75rem;font-weight:750}.date-filter-range input{width:100%;min-width:0}.date-filter-range>span{padding-bottom:.8rem;color:var(--muted);font-size:.82rem}.date-filter-range input:disabled{opacity:.5}.date-all-time-note{color:var(--muted);font-size:.82rem}.record-filter-row{display:grid;grid-template-columns:minmax(200px,1fr) minmax(170px,240px);align-items:end;gap:.75rem;margin:1rem 0 .5rem}.search-field{display:flex;min-height:46px;align-items:center;gap:.65rem;width:100%;padding:0 .75rem;border:1px solid #354b5c;border-radius:13px;background:var(--surface);color:var(--accent)}.search-field>span{font-size:1.35rem;line-height:1}.search-field input{min-height:42px;flex:1;min-width:0;padding-inline:0;border:0;background:transparent;box-shadow:none}.search-field input:focus{border:0;box-shadow:none}.search-field button{min-height:30px;width:30px;padding:0;border-radius:8px;background:transparent;color:var(--muted);font-size:1.2rem}.select-filter{display:grid;gap:.35rem;color:var(--muted);font-size:.75rem;font-weight:750}.select-filter select{width:100%}.list{margin-top:.5rem}.list article{align-items:center;padding:1rem 0;border-color:#9fb0bd21}.list article>div:first-child{min-width:0;flex:1}.list article strong{display:block;color:var(--text);font-size:.96rem;line-height:1.35}.list span,.list small{color:var(--muted);line-height:1.45}.list small{font-size:.78rem}.status-text{width:fit-content;margin-top:.45rem!important;padding:.2rem .55rem;border-radius:999px;font-size:.7rem!important;font-weight:800}.status-active{background:#46c96b1f;color:#83e09b!important}.status-expired,.status-revoked{background:#ef77771f;color:#ff9b9b!important}.list .empty-state,.empty-state{margin:0;padding:1.1rem .2rem;color:var(--muted)}.action-button{white-space:nowrap}.on-shift-officer-action{display:block;min-width:0}.dashboard-filter-panel{display:grid;gap:1rem}.dashboard-filter-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}.dashboard-filter-heading h2{margin:0}.dashboard-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;margin:0 0 1rem}.dashboard-metrics article{display:grid;gap:.4rem;padding:1rem 1.15rem;border:1px solid rgba(159,176,189,.13);border-radius:16px;background:var(--panel)}.dashboard-metrics span{color:var(--muted);font-size:.8rem;font-weight:700}.dashboard-metrics strong{color:var(--text);font-size:1.7rem;letter-spacing:-.04em}.dashboard-grid{gap:1rem}.dashboard-grid section{margin:0}.dashboard-on-shift{align-self:start}.dashboard-on-shift .list article select{width:auto;min-width:130px}.dashboard-expected-arrivals .list article{align-items:flex-start}.announcement{border-radius:12px;border-left-width:3px;padding:.9rem 3.5rem .9rem 1rem}.announcement-menu-options{overflow:hidden;border-radius:12px;box-shadow:0 14px 30px #0000004d}.announcement-menu-options button{border-radius:8px}.announcement-form{gap:.8rem}.announcement-form>button{margin-top:.25rem}.modal-backdrop{position:fixed;z-index:50;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:1.25rem;background:#03080ec2;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.officer-dialog{display:grid;width:min(100%,470px);max-height:min(82vh,720px);gap:1rem;padding:1.25rem;overflow:hidden;border:1px solid #354b5c;border-radius:22px;background:var(--panel);box-shadow:0 28px 90px #00000080}.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.dialog-heading h2{margin:0 0 .35rem}.dialog-heading p{margin:0;color:var(--muted);font-size:.88rem}.icon-button{min-height:36px;width:36px;padding:0;border:1px solid var(--line);background:var(--surface);color:var(--muted);font-size:1.35rem}.officer-search{flex:none}.officer-options{display:grid;gap:.45rem;overflow:auto;padding:.1rem .1rem .2rem}.officer-option{display:flex;min-height:60px;align-items:center;gap:.75rem;padding:.6rem;border:1px solid transparent;border-radius:13px;background:var(--surface);color:var(--text);text-align:left}.officer-option.selected{border-color:var(--accent);background:var(--accent-soft)}.officer-avatar{display:grid;width:38px;height:38px;flex:none;place-items:center;border-radius:12px;background:#76d4ff21;color:var(--accent);font-size:.75rem;font-weight:850}.officer-option>span:nth-child(2){display:grid;flex:1;gap:.2rem}.officer-option strong{color:var(--text);font-size:.9rem}.officer-option small{color:var(--muted)}.officer-option-section{padding:.45rem .25rem .1rem;color:var(--muted);font-size:.68rem;font-weight:850;letter-spacing:.1em}.option-check{color:var(--accent);font-weight:900}.dialog-actions{display:flex;gap:.7rem;padding-top:.25rem}.dialog-actions button{flex:1}@media(max-width:720px){.shell{grid-template-columns:1fr}.shell aside{gap:.45rem;padding:.85rem}.brandmark{grid-column:1 / -1;margin:0}.shell main{padding:1.1rem}.dashboard-metrics{gap:.55rem}.dashboard-metrics article{padding:.8rem}.dashboard-metrics span{font-size:.7rem}.dashboard-metrics strong{font-size:1.45rem}.record-filter-row{grid-template-columns:1fr}.date-filter-range{max-width:none}.list article{align-items:flex-start;flex-direction:column}.list article>button,.list article>.on-shift-officer-action{width:100%}.dashboard-on-shift .list article select{width:100%}}.brandmark{display:flex;align-items:center;gap:.65rem;padding:.45rem}.brandmark img{width:34px;height:34px;object-fit:contain}.brandmark strong{padding:0!important}.dashboard-shift-log{grid-column:1 / -1}.input-composer{margin-top:0}.dashboard-announcements{margin:0 0 1rem}.dashboard-announcements-compact{background:transparent}.announcement-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.dashboard-announcements h2{margin-top:0}.announcement-add-button{display:grid;width:2.5rem;height:2.5rem;padding:0;place-items:center;font-size:1.75rem;line-height:1}.announcement-list{display:grid;gap:.65rem}.announcement-empty-state{color:#8ea4b5}.announcement{position:relative;display:grid;gap:.25rem;padding:.75rem 3.4rem .75rem .9rem;border-left:.35rem solid #76d4ff;border-radius:0 .4rem .4rem 0;background:#0e1821}.announcement strong{color:#c6d4de;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase}.announcement span,.announcement small{color:#c6d4de}.announcement small{color:#8ea4b5}.announcement-menu{position:absolute;top:.5rem;right:.5rem}.announcement-menu-trigger{padding:0;border:0;width:2rem;color:#c6d4de;background:transparent;cursor:pointer;font-size:1.4rem;line-height:1;text-align:center}.announcement-menu-options{position:absolute;z-index:1;top:2rem;right:0;display:grid;min-width:7rem;gap:.25rem;padding:.35rem;border:1px solid #3a5164;border-radius:.4rem;background:#172532}.announcement-menu button{text-align:left}.announcement-delete-button{background:#ef6262}.announcement-attention{border-left-color:#f6d44b}.announcement-urgent{border-left-color:#ef6262}.announcement-form{margin-top:.75rem}.announcement-date-range{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.dashboard-clock-in{display:grid;align-self:start;gap:.75rem;padding-block:1.25rem}.dashboard-clock-in h2,.dashboard-clock-in .operator{margin:0}.dashboard-clock-in .operator{max-width:none}.dashboard-left-column{display:grid;align-content:start;gap:1rem}.dashboard-left-column section{margin:0}.dashboard-on-shift{align-self:start;margin:0}.officer-name{display:flex;align-items:center;gap:.5rem}.officer-status-bar{width:.3rem;height:1.2rem;border-radius:999px;background:#8ea4b5}.officer-status-on_shift{background:#46c96b}.officer-status-on_patrol{background:#ff9f43}.officer-status-on_break{background:#f6d44b}.dashboard-expected-arrivals h2{margin-top:0}.expected-arrival-checkbox{display:flex;align-items:center;gap:.65rem}.expected-arrival-checkbox input{width:auto}.expected-arrival-date-range{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cabin-stay-grid section{margin:0}.sanitization-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem}.sanitization-task{display:flex;align-items:center;gap:.65rem;padding:.7rem;border:1px solid #3a5164;border-radius:.4rem;background:#0e1821}.sanitization-task input{width:auto}@media(max-width:720px){.on-shift-officer-action{grid-template-columns:1fr;min-width:0}.dashboard-grid,.expected-arrival-date-range,.announcement-date-range{grid-template-columns:1fr}}
