[hidden]{display:none !important}
:root{font-family:-apple-system,BlinkMacSystemFont,"Inter","Segoe UI",sans-serif;color-scheme:light;--bg:#f5f7fa;--surface:#fff;--surface-alt:#f9fafc;--text:#192a3b;--muted:#718092;--subtle:#95a1af;--line:#e7ecf2;--primary:#2451ce;--primary-soft:#ecf1ff;--shadow:0 8px 30px rgba(27,48,74,.045);--deep:#11243c;--green:#168967;--green-bg:#e8f6ee;--orange:#be762c;--orange-bg:#fff3e5;--red:#b44d53;--red-bg:#ffecef;--white-glow:rgba(255,255,255,.74)}
:root[data-theme="dark"]{color-scheme:dark;--bg:#0d1623;--surface:#152235;--surface-alt:#1a2a40;--text:#eaf1f8;--muted:#9dafc4;--subtle:#8093a9;--line:#29394f;--primary:#9fb7ff;--primary-soft:#223657;--shadow:0 8px 30px rgba(0,0,0,.11);--deep:#0c1521;--green:#71dbb2;--green-bg:#1a403a;--orange:#efb36f;--orange-bg:#443323;--red:#ee9ba4;--red-bg:#412a35;--white-glow:rgba(255,255,255,.04)}
*{box-sizing:border-box}body{padding:0;margin:0;background:var(--bg);color:var(--text);min-height:100vh;-webkit-tap-highlight-color:transparent}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:var(--primary)}.app-shell{min-height:100vh;display:grid;grid-template-columns:244px minmax(0,1fr)}.sidebar{background:var(--deep);color:#f1f6ff;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;padding:28px 14px 18px}.brand{display:flex;align-items:center;gap:11px;padding:4px 11px 39px}.brand-icon{display:grid;place-items:center;border-radius:15px;background:#2860ec;color:#fff;min-width:48px;height:48px;font-size:21px;font-weight:850;letter-spacing:-1.7px;box-shadow:inset 0 1px 0 #ffffff40}.brand-text{display:flex;flex-direction:column;gap:5px;line-height:1}.brand-text strong{font-size:18px;letter-spacing:-.6px}.brand-text span{font-size:9px;letter-spacing:1.5px;color:#9db2cf}.sidebar-label{font-size:10px;letter-spacing:1.65px;color:#7890ae;margin:0 12px 15px}.side-nav,.sidebar-bottom{display:grid;gap:5px}.side-nav button,.sidebar-bottom button{border:0;background:transparent;text-align:left;display:flex;align-items:center;gap:13px;padding:12px 16px;border-radius:10px;color:#afc0d7;font-weight:570;font-size:13px;width:100%}.side-nav button.active,.sidebar-bottom button.active{background:#233d5f;color:white}.side-nav button:hover,.sidebar-bottom button:hover{background:#1c3552;color:#fff}.nav-icon{font-size:22px;width:23px;line-height:1;display:inline-flex;align-items:center;justify-content:center;font-weight:400}.sidebar-bottom{margin-top:auto}.sidebar-note{border-top:1px solid #2c4360;padding:20px 13px 1px;font-size:11px;color:#91a6c1;display:flex;align-items:center;gap:7px}.small-dot{background:#46c996;width:7px;height:7px;border-radius:100%}.version{margin-left:auto}.workspace{min-width:0}.topbar{height:75px;border-bottom:1px solid var(--line);background:var(--surface);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,4vw,54px)}.topbar-trail{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--subtle);letter-spacing:1.1px}.topbar-trail b{font-size:12px;letter-spacing:0;color:var(--muted)}.trail-arrow{font-size:16px}.top-actions{display:flex;align-items:center;gap:16px}.today-pill{font-size:12px;font-weight:650;color:var(--muted)}.icon-button{border:1px solid var(--line);background:var(--surface-alt);color:var(--text);width:37px;height:37px;border-radius:10px;display:grid;place-items:center}.avatar{background:#243b5c;color:#fff;width:35px;height:35px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:800}.mobile-menu,.mobile-nav{display:none}.page{max-width:1530px;margin:auto;padding:36px clamp(20px,4vw,54px) 70px;outline:0}.header-row{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin:0 0 25px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--primary);font-weight:800;text-transform:uppercase;margin:0 0 10px}.page h1{margin:0;font-size:clamp(27px,3vw,34px);letter-spacing:-1.25px;line-height:1.15;font-weight:750}.page-sub{font-size:13px;color:var(--muted);margin:10px 0 0;line-height:1.55}.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.btn{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:10px;padding:11px 16px;display:inline-flex;gap:8px;align-items:center;justify-content:center;font-size:12px;font-weight:750;white-space:nowrap;min-height:42px}.btn:hover{filter:brightness(.98)}.btn.primary{background:#2c5ed7;color:white;border-color:#2c5ed7;box-shadow:0 6px 15px #2c5ed728}.btn.danger{color:var(--red)}.btn.small{min-height:34px;padding:8px 11px}.btn.icon{padding:9px 12px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin:0 0 23px}.stat-card,.panel,.feature-card,.note-panel{background:var(--surface);border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow)}.stat-card{padding:22px 23px}.stat-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.stat-label{font-size:11px;font-weight:700;color:var(--muted)}.stat-icon{display:grid;place-items:center;width:33px;height:33px;background:var(--primary-soft);color:var(--primary);border-radius:9px;font-size:20px}.stat-value{font-size:37px;font-weight:780;line-height:1.1;letter-spacing:-1px;margin:11px 0 5px;font-variant-numeric:tabular-nums}.stat-meta{font-size:11px;color:var(--subtle)}.green-text{color:var(--green)}.orange-text{color:var(--orange)}.columns{display:grid;grid-template-columns:1.6fr .95fr;gap:19px}.panel{overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:23px 23px 16px}.panel-head h2,.feature-card h2{margin:0;font-size:15px;letter-spacing:-.3px}.panel-head p{margin:6px 0 0;font-size:12px;color:var(--muted)}.link-button{border:0;background:none;color:var(--primary);font-weight:720;font-size:12px;white-space:nowrap}.mini-table,.full-table{width:100%;border-collapse:collapse;text-align:left}.mini-table th,.full-table th{background:var(--surface-alt);font-weight:750;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--subtle);padding:13px 19px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.mini-table td,.full-table td{padding:16px 19px;font-size:12px;border-bottom:1px solid var(--line);vertical-align:middle}.mini-table tr:last-child td,.full-table tr:last-child td{border-bottom:none}.name{font-weight:730}.watched{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:8px;vertical-align:-1px;border:1px solid #00000016}.watch-blue{background:#537db0}.watch-green{background:#78964a}.watch-amber{background:#c58146}.watch-white{background:#e2e7ee}.watch-red{background:#d24c54}.pill{display:inline-flex;align-items:center;gap:5px;border-radius:999px;background:var(--surface-alt);color:var(--muted);padding:6px 9px;font-size:10px;font-weight:740;white-space:nowrap}.pill.day{background:#e0f2f9;color:#245e79}.pill.night{background:#335f96;color:#fff}.pill.owed{background:var(--green-bg);color:var(--green)}.pill.owing{background:var(--orange-bg);color:var(--orange)}.pill.pending{background:var(--orange-bg);color:var(--orange)}.pill.cancelled{background:var(--red-bg);color:var(--red)}.tag-well{display:flex;gap:5px;flex-wrap:wrap}.right{text-align:right}.helper{font-size:11px;color:var(--muted);line-height:1.55}.list-person{display:flex;align-items:center;justify-content:space-between;padding:16px 21px;gap:12px;border-bottom:1px solid var(--line)}.list-person:last-child{border-bottom:0}.person-main{display:flex;align-items:center;gap:11px}.person-avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:var(--surface-alt);font-size:12px;font-weight:780;color:var(--muted);border:1px solid var(--line)}.person-sub{font-size:11px;color:var(--muted);margin-top:4px}.list-person .balance{font-weight:800;font-size:14px}.feature-card{margin-top:19px;padding:22px 23px;display:flex;justify-content:space-between;align-items:center;gap:16px;background:linear-gradient(120deg,var(--surface),var(--surface-alt))}.feature-card p{max-width:480px;font-size:12px;color:var(--muted);line-height:1.6;margin:7px 0 0}.feature-icon{background:var(--primary-soft);border-radius:14px;width:44px;height:44px;color:var(--primary);display:grid;place-items:center;font-size:24px}.feature-body{display:flex;gap:14px;align-items:center}.tools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:0 23px 20px}.control,.field input,.field select,.field textarea{background:var(--surface-alt);border:1px solid var(--line);color:var(--text);border-radius:10px;min-height:42px;padding:10px 12px;outline:0;font-size:12px}.control:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:#6d94e0}.tools input[type=search]{flex:1;min-width:170px}.field{display:flex;flex-direction:column;gap:7px}.field label{font-weight:710;font-size:11px;color:var(--muted)}.field .hint{color:var(--subtle);font-size:10px}.field textarea{min-height:85px;resize:vertical}.grid-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.full{grid-column:1/-1}.section-label{font-weight:800;font-size:11px;letter-spacing:.8px;color:var(--muted);margin:8px 0 14px;text-transform:uppercase}.checkboxline{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--text)}input[type=checkbox]{accent-color:#2c5ed7;width:16px;height:16px}.empty{padding:42px 20px;text-align:center;color:var(--muted);font-size:13px;line-height:1.7}.empty .symbol{font-size:32px;margin-bottom:8px}.more{color:var(--primary);background:none;border:0;font-weight:720}.badge-counter{font-size:10px;background:var(--primary-soft);color:var(--primary);padding:5px 8px;border-radius:8px}.directory-grid,.result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.directory-item,.result-card{padding:18px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}.directory-item{display:flex;justify-content:space-between;gap:10px;align-items:center}.dir-detail{display:flex;gap:11px;align-items:center}.directory-item .name{font-size:13px}.dir-actions{display:flex;gap:5px}.subhead{font-size:12px;color:var(--muted)}.cover-form{padding:23px;display:flex;flex-wrap:wrap;gap:12px;align-items:end}.cover-form .field{flex:1;min-width:180px}.result-card{min-height:150px}.result-card .row{display:flex;align-items:center;justify-content:space-between;gap:8px}.result-card h3{font-size:14px;margin:0}.result-card p{font-size:11px;color:var(--muted);line-height:1.6;margin:13px 0 0}.result-card .candidate{display:flex;justify-content:space-between;gap:7px;padding:9px 0;border-top:1px solid var(--line);font-size:12px}.result-card .candidate:first-of-type{margin-top:12px}.result-card .candidate b{color:var(--green)}.result-card.unavailable{opacity:.68}.note-panel{padding:19px;margin-top:16px;font-size:12px;color:var(--muted);line-height:1.65;border-style:dashed}.watch-picker{display:flex;gap:7px;flex-wrap:wrap}.watch-picker .chip{padding:8px 12px;border-radius:9px;color:var(--muted);background:var(--surface);border:1px solid var(--line);font-size:11px;font-weight:750}.watch-picker .chip.active{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}.month-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 20px}.month-title{font-size:18px;font-weight:770}.month-arrows{display:flex;gap:5px}.month-arrows button{border:1px solid var(--line);background:var(--surface-alt);color:var(--text);height:32px;width:32px;border-radius:8px}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.weekhead{font-size:11px;font-weight:700;color:var(--subtle);text-align:center;padding:9px 0}.daycell{min-height:79px;border-radius:9px;background:var(--surface-alt);border:1px solid var(--line);padding:10px;display:flex;flex-direction:column;gap:12px}.daycell.today{border-color:var(--primary)}.daycell.outside{opacity:.28}.daynum{font-size:12px;font-weight:750}.shiftmini{font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.5px;border-radius:5px;display:block;text-align:center;padding:7px 1px;background:var(--surface);color:var(--muted)}.shiftmini.day{background:#c3e5f3;color:#185b7b}.shiftmini.night{background:#365f92;color:#fff}.shiftmini.rest{background:var(--surface);color:var(--subtle)}.shiftmini.off18{background:#e9dcfc;color:#69549c}.key{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:17px;font-size:11px;color:var(--muted)}.key .dot{width:9px;height:9px;display:inline-block;border-radius:3px}.settings-list{display:grid;gap:14px}.setting-item{border:1px solid var(--line);border-radius:13px;padding:20px;display:flex;justify-content:space-between;align-items:center;gap:14px;background:var(--surface)}.setting-item h3{font-size:13px;margin:0 0 5px}.setting-item p{color:var(--muted);font-size:11px;margin:0;line-height:1.6}.setting-item select{min-width:140px}.connector{padding:15px 18px;border:1px solid var(--line);border-radius:12px;display:flex;align-items:center;justify-content:space-between;gap:15px;background:var(--surface)}.connector strong{font-size:12px}.connector p{font-size:11px;color:var(--muted);margin:5px 0 0}.disabled-status{font-size:10px;color:var(--orange);background:var(--orange-bg);padding:7px 9px;border-radius:99px;font-weight:750;white-space:nowrap}.modal-overlay{position:fixed;inset:0;background:#07101db3;backdrop-filter:blur(3px);z-index:100;display:flex;justify-content:center;align-items:center;padding:20px}.modal{background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:17px;box-shadow:0 30px 100px #0004;width:min(100%,690px);max-height:92vh;overflow-y:auto}.modal-head{padding:22px 24px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:10px}.modal-head h2{font-size:18px;margin:0}.modal-content{padding:23px 24px}.modal-footer{border-top:1px solid var(--line);padding:16px 24px;display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap}.modal-footer .spacer{flex:1}.file-list{display:grid;gap:8px;margin-top:10px}.file-item{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--line);padding:9px 12px;border-radius:9px;font-size:11px}.file-item button{border:0;background:none;color:var(--red)}#toastHost{position:fixed;right:22px;bottom:24px;z-index:130;display:grid;gap:8px}.toast{padding:13px 18px;border-radius:11px;background:#162a45;color:white;font-size:12px;box-shadow:0 15px 40px #0003;max-width:400px;animation:rise .2s}@keyframes rise{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.counting{font-variant-numeric:tabular-nums}.mono{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(max-width:1100px){.columns{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}.sidebar{width:210px}.app-shell{grid-template-columns:210px minmax(0,1fr)}.mini-table th,.mini-table td{padding:14px}.directory-grid{grid-template-columns:1fr}}@media(max-width:740px){.app-shell{display:block}.sidebar{display:none}.workspace{width:100%}.topbar{padding:0 17px;height:65px}.mobile-menu{display:grid}.today-pill{display:none}.topbar-trail{margin-right:auto;margin-left:10px}.page{padding:25px 15px 115px}.page h1{font-size:27px}.header-row{align-items:flex-start;flex-direction:column;gap:16px}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat-card{padding:17px 15px}.stat-value{font-size:32px}.stat-label{font-size:10px}.columns{gap:12px}.panel-head{padding:19px 17px 15px}.mini-table th,.mini-table td{padding:12px 9px;font-size:11px}.mini-table th:nth-child(3),.mini-table td:nth-child(3){display:none}.feature-card{flex-direction:column;align-items:stretch}.feature-card .btn{width:100%}.tools{padding:0 15px 15px}.full-table th,.full-table td{padding:12px 9px}.full-table .hide-mobile{display:none}.directory-grid,.result-grid{grid-template-columns:1fr}.cover-form{padding:17px;display:grid}.month-grid{gap:3px}.daycell{min-height:63px;padding:6px 3px;gap:8px}.daynum{font-size:10px;margin-left:5px}.shiftmini{font-size:8px;padding:6px 1px}.mobile-nav{position:fixed;display:grid;grid-template-columns:repeat(5,1fr);bottom:0;left:0;right:0;z-index:50;background:var(--surface);border-top:1px solid var(--line);padding:8px 0 calc(9px + env(safe-area-inset-bottom))}.mobile-nav button{border:0;background:none;color:var(--muted);display:flex;align-items:center;flex-direction:column;gap:3px;font-size:23px}.mobile-nav button.active{color:var(--primary)}.mobile-nav button span{font-size:10px;font-weight:750}.modal-overlay{padding:0;align-items:flex-end}.modal{max-height:96vh;width:100%;border-radius:19px 19px 0 0}.modal-head,.modal-content{padding:17px}.modal-footer{padding:14px 17px calc(14px + env(safe-area-inset-bottom))}.modal-footer .btn{flex:1}.setting-item{align-items:flex-start;flex-direction:column}.setting-item select{width:100%}#toastHost{right:15px;left:15px;bottom:90px}.toast{max-width:none}.sidebar.show-mobile{display:flex;z-index:80;position:fixed;left:0;width:280px;box-shadow:0 0 0 100vmax #0008}}

/* v0.2 servicewide directory and mobile layout refinements */
.dir-actions{flex-wrap:wrap;justify-content:flex-end}.candidate strong{font-weight:700}.result-card .section-label{font-size:10px}.modal-head [data-close]{cursor:pointer;min-width:34px;min-height:34px}.modal-footer [data-close]{cursor:pointer}
@media(max-width:740px){.directory-item{align-items:flex-start;flex-direction:column}.directory-item .dir-actions{width:100%;justify-content:flex-start}.directory-item .dir-actions .btn{flex:1}.result-card .candidate{align-items:flex-start}.candidate b{text-align:right}}

/* v0.3 authenticated sign-in */
[hidden]{display:none!important}
.login-screen{min-height:100dvh;display:grid;place-items:center;padding:28px 16px;background:var(--bg, #f4f7fb);color:var(--text,#1c2836)}
.login-panel{background:var(--surface, #ffffff);max-width:440px;width:100%;padding:32px;border-radius:22px;border:1px solid var(--line,#dce3ea);box-shadow:0 20px 60px rgba(10,30,50,.10)}
.login-logo{display:grid;place-items:center;width:64px;height:64px;border-radius:18px;background:#1d3553;color:white;font-size:22px;font-weight:800;letter-spacing:-.06em;margin-bottom:22px}
.login-panel h1{font-size:29px;letter-spacing:-.035em;margin:8px 0 12px}
.login-copy,.login-help{line-height:1.6;color:var(--muted,#64748b);font-size:13px}
.login-panel form{display:grid;gap:9px;margin-top:22px}
.login-panel label{font-size:12px;font-weight:700;margin-top:9px}
.login-panel input{border:1px solid var(--line,#cbd5e1);border-radius:10px;padding:13px 14px;background:var(--surface-alt,#fff);color:var(--text,#10223a);font:inherit;width:100%}
.login-panel button{margin-top:15px;width:100%;justify-content:center;min-height:44px}
.login-error{min-height:18px;color:#bf3b35;font-size:12px;margin:5px 0 0}
.login-message{line-height:1.5;font-size:12px;color:var(--muted,#64748b);margin:6px 0 0}
.login-help{font-size:11px;margin-top:18px}
