:root{--font:-apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", system-ui, "Segoe UI", sans-serif;--canvas:#f1f2ef;--rail:#f7f8f5;--surface:#fbfcfa;--raised:#fff;--subtle:#eceeea;--hover:#f4f5f2;--line:#dfe2dd;--line-strong:#c9cec8;--ink:#1f2320;--muted:#5f655f;--faint:#737973;--accent:#1f6252;--accent-dark:#173f35;--accent-hover:#1d4c40;--accent-pale:#dcebe5;--accent-line:#a9c9bc;--warning:#8a5a22;--warning-pale:#eceeea;--warning-line:#c9cec8;--danger:#a8423c;--danger-pale:#f8e8e6;--danger-line:#ebc5c0;--info:#44607a;--info-pale:#e6edf3;--text-xs:.6875rem;--text-sm:.75rem;--text-md:.875rem;--text-base:.9375rem;--text-lg:1.0625rem;--text-xl:1.25rem;--text-2xl:1.875rem;--radius-lg:18px;--radius-md:12px;--radius-sm:9px;--shadow-float:0 18px 48px #1a262029, 0 2px 6px #1a26200f;--shadow-press:0 1px 2px #1a262014;--ease:cubic-bezier(.16, 1, .3, 1);--focus:0 0 0 3px #1f625247;font-family:var(--font);color:var(--ink);background:var(--canvas);font-synthesis:none;text-rendering:optimizelegibility;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;accent-color:var(--accent);caret-color:var(--accent)}*,:before,:after{box-sizing:border-box}html{background:var(--canvas);-webkit-text-size-adjust:100%}body{background:var(--canvas);min-width:320px;min-height:100dvh;font-size:var(--text-md);-webkit-font-smoothing:antialiased;margin:0;line-height:1.45}body.sheet-open{overflow:hidden}h1,h2,h3,h4,p,dl,dd,ol,ul,figure{margin:0}ol,ul{padding:0;list-style:none}img,svg,video{max-width:100%;display:block}button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}button{cursor:pointer;text-align:inherit;background:0 0;border:0;padding:0}button:disabled{cursor:not-allowed}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}::selection{background:var(--accent-pale);color:var(--accent-dark)}:focus{outline:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):focus-visible,select:focus-visible,textarea:focus-visible{outline:none}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}code{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.92em}[aria-busy=true]{cursor:progress}.app-loading{place-items:center;min-height:100dvh;display:grid}.brand-mark{border-radius:12px;flex:none;width:40px;height:40px}.app-loading .brand-mark{animation:1.6s ease-in-out infinite breathe}@keyframes breathe{50%{opacity:.55}}.button{border-radius:var(--radius-md);min-height:44px;font-size:var(--text-md);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-weight:600;line-height:1.1;text-decoration:none;transition:background-color .18s,border-color .18s,color .18s,transform .12s;display:inline-flex}.button:active:not(:disabled){transform:scale(.98)}.button:disabled{opacity:.5}.button svg{flex:none}.button-primary{background:var(--accent-dark);color:#fff}.button-primary:hover:not(:disabled){background:var(--accent-hover)}.button-secondary{background:var(--raised);border-color:var(--line);color:var(--ink)}.button-secondary:hover:not(:disabled){border-color:var(--line-strong);background:var(--hover)}.button-danger{background:var(--danger);color:#fff}.button-danger:hover:not(:disabled){background:#923832}.button-block{width:100%}.icon-button{border:1px solid var(--line);background:var(--raised);border-radius:var(--radius-md);width:40px;height:40px;color:var(--muted);flex:none;place-items:center;transition:background-color .18s,color .18s,border-color .18s;display:grid}.icon-button:hover:not(:disabled){color:var(--ink);border-color:var(--line-strong)}.icon-button:disabled{opacity:.35}.field{align-content:start;gap:7px;min-width:0;margin-bottom:16px;display:grid}.field>span,.field-label{font-size:var(--text-md);align-items:baseline;gap:8px;font-weight:600;display:flex}.field-optional{color:var(--faint);font-style:normal;font-weight:400;font-size:var(--text-sm)}.field input:not([type=checkbox]):not([type=radio]),.field select,.field textarea,.department-add input{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--raised);width:100%;min-height:46px;font-size:var(--text-md);padding:0 13px;transition:border-color .18s,box-shadow .18s}.field select,.toolbar-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' width='16' height='16'%3E%3Cpath fill='%235f655f' d='M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z'/%3E%3C/svg%3E");background-position:right 13px center;background-repeat:no-repeat;padding-right:38px}.field textarea{resize:vertical;min-height:88px;padding:11px 13px;line-height:1.45}.field input:focus,.field select:focus,.field textarea:focus,.department-add input:focus{border-color:var(--accent);box-shadow:var(--focus)}.field input::placeholder,.field textarea::placeholder,.department-add input::placeholder,.search-box input::placeholder{color:var(--faint)}.field input[readonly]{background:var(--subtle)}.field small{color:var(--muted);font-size:var(--text-sm);line-height:1.4}.field em{color:var(--danger);font-style:normal;font-size:var(--text-sm);font-weight:500;line-height:1.4}.field-invalid input,.field-invalid select,.field-invalid textarea,.search-select-invalid .search-select-input{border-color:var(--danger)!important}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px;display:grid}.form-intro{color:var(--muted);font-size:var(--text-md);max-width:60ch;margin-bottom:18px;line-height:1.5}.form-note{color:var(--warning);background:var(--warning-pale);border-radius:var(--radius-sm);font-size:var(--text-sm);margin:0 0 16px;padding:10px 12px;line-height:1.45}.form-error{color:var(--danger);background:var(--danger-pale);border:1px solid var(--danger-line);border-radius:var(--radius-md);font-size:var(--text-md);margin:0 0 16px;padding:11px 13px;line-height:1.45}.form-error strong{font-weight:650}.form-error .button{margin-top:10px}.inline-form{align-items:flex-end;gap:10px;margin-top:18px;display:flex}.inline-form .field{flex:1;margin-bottom:0}.inline-form>.button{margin-bottom:25px}.checkbox{cursor:pointer;align-items:flex-start;gap:11px;padding:12px 0;display:flex}.checkbox input{flex:none;width:18px;height:18px;margin:2px 0 0}.checkbox strong{font-size:var(--text-md);font-weight:600;display:block}.checkbox small{color:var(--muted);font-size:var(--text-sm);margin-top:3px;line-height:1.4;display:block}.password-field{display:block;position:relative}.password-field input{padding-right:64px!important}.password-field button{min-height:34px;color:var(--accent);font-size:var(--text-sm);border-radius:8px;padding:0 10px;font-weight:600;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.password-field button:hover{background:var(--accent-pale)}.search-select{font-weight:400;position:relative}.search-select-input{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--raised);align-items:center;gap:9px;min-height:46px;padding:0 5px 0 12px;transition:border-color .18s,box-shadow .18s;display:flex}.search-select:focus-within .search-select-input{border-color:var(--accent);box-shadow:var(--focus)}.field .search-select-input input{flex:1;min-width:0;min-height:42px!important;box-shadow:none!important;background:0 0!important;border:0!important;padding:0!important}.search-select-input>svg{color:var(--faint);flex:none}.search-select-detail{color:var(--faint);font-size:var(--text-sm);white-space:nowrap;text-overflow:ellipsis;max-width:45%;overflow:hidden}.search-select-input button{width:34px;height:34px;color:var(--muted);border-radius:8px;flex:none;place-items:center;display:grid}.search-select-input button:hover{background:var(--subtle)}.search-select-menu{z-index:55;max-height:264px;font-size:var(--text-md);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--raised);box-shadow:var(--shadow-float);padding:5px;position:fixed;overflow:auto}.search-select-menu button{border-radius:8px;width:100%;padding:9px 11px;display:block}.search-select-menu button[aria-selected=true]{background:var(--accent-pale)}.search-select-menu button.is-active{background:var(--hover);box-shadow:inset 0 0 0 1px var(--line-strong)}.search-select-menu button[aria-selected=true].is-active{background:var(--accent-pale);box-shadow:inset 0 0 0 1px var(--accent-line)}.search-select-menu strong,.search-select-menu span{display:block}.search-select-menu strong{font-size:var(--text-md);font-weight:600}.search-select-menu span{color:var(--muted);font-size:var(--text-sm);margin-top:2px}.search-select-empty{color:var(--muted);font-size:var(--text-sm);text-align:center;padding:16px 12px;line-height:1.45}.segmented{background:var(--subtle);scrollbar-width:none;border-radius:11px;align-items:center;gap:2px;max-width:100%;padding:3px;display:inline-flex;overflow-x:auto}.segmented::-webkit-scrollbar{display:none}.segmented button{white-space:nowrap;color:var(--muted);min-height:34px;font-size:var(--text-md);border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 13px;font-weight:600;transition:background-color .18s,color .18s;display:inline-flex}.segmented button:hover:not(.active){color:var(--ink)}.segmented button.active{background:var(--raised);color:var(--ink);box-shadow:var(--shadow-press)}.segmented-count{background:var(--danger-pale);min-width:18px;height:18px;color:var(--danger);font-size:var(--text-xs);font-variant-numeric:tabular-nums;border-radius:999px;place-items:center;padding:0 5px;font-weight:700;display:inline-grid}.field .segmented{width:100%}.field .segmented button{flex:1}.field .segmented{min-height:46px}.field .segmented button{min-height:38px}.direction-control{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:18px;display:grid}.direction-control button{border:1px solid var(--line);background:var(--raised);border-radius:var(--radius-md);justify-content:center;align-items:center;gap:8px;min-height:52px;padding:0 12px;font-weight:600;transition:background-color .18s,border-color .18s,color .18s;display:flex}.direction-control button:hover:not(.active){border-color:var(--line-strong)}.direction-control button.active{color:var(--accent-dark);border-color:var(--accent);background:var(--accent-pale);box-shadow:inset 0 0 0 1px var(--accent)}.app-shell{grid-template-columns:248px minmax(0,1fr);min-height:100dvh;display:grid}.sidebar{border-right:1px solid var(--line);background:var(--rail);flex-direction:column;height:100dvh;padding:18px 12px 14px;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-brand{align-items:center;gap:11px;padding:2px 8px 20px;display:flex}.sidebar-brand div{min-width:0;display:grid}.sidebar-brand strong{font-size:var(--text-base);letter-spacing:-.01em;font-weight:650}.sidebar-brand span{color:var(--muted);font-size:var(--text-sm);white-space:nowrap;text-overflow:ellipsis;margin-top:1px;overflow:hidden}.sidebar-search{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--raised);height:40px;color:var(--faint);align-items:center;gap:9px;margin-bottom:14px;padding:0 11px;transition:border-color .18s,box-shadow .18s;display:flex}.sidebar-search:focus-within{border-color:var(--accent);box-shadow:var(--focus)}.sidebar-search input{min-width:0;color:var(--ink);font-size:var(--text-md);background:0 0;border:0;outline:0;flex:1}.sidebar-search input::placeholder{color:var(--faint)}.sidebar nav{gap:2px;display:grid}.nav-label{color:var(--faint);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;padding:18px 11px 6px;font-weight:650}.nav-item{color:var(--muted);min-height:40px;font-size:var(--text-md);border-radius:10px;align-items:center;gap:11px;padding:0 11px;font-weight:500;text-decoration:none;transition:background-color .15s,color .15s;display:flex}.nav-item:hover{background:var(--subtle);color:var(--ink)}.nav-item.active{background:var(--accent-pale);color:var(--accent-dark);font-weight:600}.sidebar-footer{border-top:1px solid var(--line);align-items:center;gap:10px;margin-top:auto;padding:14px 4px 0;display:flex}.sidebar-footer .person{flex:1;min-width:0}.sidebar-footer .person strong,.sidebar-footer .person small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.sidebar-footer .person strong{font-size:var(--text-md);font-weight:600}.sidebar-footer .person small{font-size:var(--text-sm);color:var(--muted);margin-top:1px}.main{min-width:0;padding-bottom:48px}.topbar{display:none}.content{width:100%;max-width:1320px;margin:0 auto;padding:32px clamp(20px,3vw,40px)}.account-card{border-bottom:1px solid var(--line);align-items:center;gap:14px;margin-bottom:8px;padding-bottom:18px;display:flex}.account-card strong{font-size:var(--text-lg);font-weight:650;display:block}.account-card span{color:var(--muted);font-size:var(--text-md);overflow-wrap:anywhere;margin-top:2px;display:block}.account-links{margin-bottom:18px;display:grid}.account-link{border-bottom:1px solid var(--line);align-items:center;gap:12px;min-height:52px;font-weight:500;text-decoration:none;display:flex}.account-link span{flex:1}.account-link svg:last-child{color:var(--faint)}.page-title{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title action";align-items:center;column-gap:20px;margin-bottom:24px;display:grid}.page-title h1{grid-area:title;min-width:0}.page-title-action{grid-area:action;display:flex}.page-title h1{font-size:var(--text-2xl);letter-spacing:-.03em;text-wrap:balance;font-weight:700;line-height:1.1}.page-actions{flex:none;align-items:center;gap:8px;display:flex}.section-head{justify-content:space-between;align-items:baseline;gap:12px;margin:32px 0 12px;display:flex}.section-head h2{font-size:var(--text-xl);letter-spacing:-.02em;font-weight:650}.section-head a,.panel-header a{color:var(--accent);font-size:var(--text-md);white-space:nowrap;align-items:center;gap:4px;font-weight:600;text-decoration:none;display:inline-flex}.section-head a:hover,.panel-header a:hover{text-underline-offset:3px;text-decoration:underline}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.register-switch{margin:-6px 0 16px}.search-box{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--raised);min-width:240px;max-width:520px;height:44px;color:var(--faint);flex:1;align-items:center;gap:9px;padding:0 6px 0 13px;transition:border-color .18s,box-shadow .18s;display:flex}.search-box:focus-within{border-color:var(--accent);box-shadow:var(--focus)}.search-box:has(.search-clear:focus-visible){border-color:var(--line);box-shadow:none}.search-box input{min-width:0;height:100%;color:var(--ink);font-size:var(--text-md);background:0 0;border:0;outline:0;flex:1}.search-box input::-webkit-search-cancel-button{display:none}.search-clear{width:32px;height:32px;color:var(--muted);border-radius:8px;place-items:center;display:grid}.search-clear:hover{background:var(--subtle);color:var(--ink)}.panel,.data-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}.panel-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:14px 18px;display:flex}.panel-header h3{font-size:var(--text-base);font-weight:650}.panel-header>span{color:var(--muted);font-size:var(--text-sm)}.panel-empty{color:var(--muted);font-size:var(--text-md);padding:22px 18px;line-height:1.5}.sheet-body .panel-empty{padding:4px 0 8px}.panel-more{border-top:1px solid var(--line);width:100%;min-height:48px;color:var(--accent);text-align:center;font-weight:600;display:block}.panel-more:hover{background:var(--hover)}.list-limit{color:var(--muted);font-size:var(--text-sm);text-align:center;border-top:1px solid var(--line);padding:14px 18px}.list-row{border-bottom:1px solid var(--line);align-items:center;gap:12px;min-height:68px;padding:12px 18px;display:flex}.list-row:last-child{border-bottom:0}.list-link{text-decoration:none;transition:background-color .15s}.list-link:hover{background:var(--hover)}.row-main{flex:1;min-width:0}.row-main strong,.row-main span{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.row-main strong{font-size:var(--text-base);font-weight:600}.row-main span{color:var(--muted);font-size:var(--text-sm);margin-top:3px}.row-meta{text-align:right;font-size:var(--text-sm);color:var(--muted);font-variant-numeric:tabular-nums;flex:none}.row-meta strong{color:var(--ink);font-size:var(--text-md);margin-bottom:3px;font-weight:600;display:block}.movement-glyph{border-radius:10px;flex:none;place-items:center;width:34px;height:34px;display:grid}.movement-in{background:var(--accent-pale);color:var(--accent)}.movement-out{background:var(--warning-pale);color:var(--warning)}.movement-neutral{background:var(--subtle);color:var(--muted)}.avatar{color:#4d554f;letter-spacing:-.01em;background:#e2e6e1;border-radius:50%;flex:none;place-items:center;font-weight:650;line-height:1;display:inline-grid}.avatar-sm{width:32px;height:32px;font-size:var(--text-xs)}.avatar-md{width:40px;height:40px;font-size:var(--text-sm)}.avatar-lg{width:52px;height:52px;font-size:var(--text-base)}.presence-pill{font-size:var(--text-sm);white-space:nowrap;border-radius:999px;justify-self:start;align-items:center;gap:6px;padding:4px 9px;font-weight:600;display:inline-flex}.presence-pill span{border-radius:50%;width:6px;height:6px}.presence-in{background:var(--accent-pale);color:var(--accent-dark)}.presence-in span{background:var(--accent)}.presence-out{background:var(--warning-pale);color:var(--warning)}.presence-out span{background:#b47835}.leader-badge,.guest-badge{font-size:var(--text-xs);vertical-align:1px;white-space:nowrap;border-radius:6px;margin-left:7px;padding:2px 7px;font-weight:600;line-height:1.5;display:inline-block}.row-main .leader-badge,.row-main .guest-badge,.employee-identity .leader-badge{width:auto;margin-top:0;display:inline-block;overflow:visible}.leader-badge{color:var(--accent-dark);background:var(--accent-pale)}.guest-badge{color:var(--info);background:var(--info-pale)}.overdue{color:var(--danger)!important}.empty-state{text-align:center;padding:48px 24px}.empty-state h3{font-size:var(--text-lg);text-wrap:balance;font-weight:650}.empty-state p{color:var(--muted);font-size:var(--text-md);max-width:44ch;margin:8px auto 0;line-height:1.5}.empty-state .button{margin-top:18px}.metric-strip{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);grid-template-columns:repeat(5,minmax(0,1fr));display:grid;overflow:hidden}.metric{border-right:1px solid var(--line);min-height:144px;color:inherit;padding:18px 20px 16px;text-decoration:none;transition:background-color .15s;display:block;position:relative;overflow:hidden}a.metric:hover{background:var(--hover)}.metric:last-child{border-right:0}.metric header{font-size:var(--text-md);align-items:center;gap:9px;font-weight:600;display:flex;position:relative}.metric-icon{border:1px solid var(--line);background:var(--raised);width:30px;height:30px;color:var(--accent);border-radius:9px;flex:none;place-items:center;display:grid}.metric strong{letter-spacing:-.04em;font-variant-numeric:tabular-nums;margin-top:20px;font-size:2.25rem;font-weight:600;line-height:1;display:block;position:relative}.metric small{color:var(--muted);font-size:var(--text-sm);margin-top:8px;line-height:1.35;display:block;position:relative}.metric-alert small{color:var(--danger);font-weight:600}.metric-illustration{width:108px;height:108px;color:var(--accent);opacity:.1;pointer-events:none;place-items:center;display:grid;position:absolute;bottom:-16px;right:-14px;transform:rotate(-5deg)}.metric-illustration svg{display:block;position:relative}.dashboard-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}.dashboard-grid-even{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.department-chart{gap:15px;padding:16px 18px 18px;display:grid}.department-label{font-size:var(--text-sm);justify-content:space-between;gap:12px;margin-bottom:7px;display:flex}.department-label span:first-child{font-weight:600}.department-label span:last-child{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.department-track{gap:2px;height:8px;display:flex}.department-track i{background:#e2e6e1;border-radius:3px;flex:1}.department-track i.active{background:var(--accent)}.employee-row{border-bottom:1px solid var(--line);text-align:left;grid-template-columns:40px minmax(0,1.5fr) minmax(0,1fr) minmax(0,150px) 104px 20px;align-items:center;gap:14px;width:100%;min-height:72px;padding:12px 16px;transition:background-color .15s;display:grid}.employee-row:last-child{border-bottom:0}.employee-row:hover{background:var(--hover)}.employee-identity{min-width:0}.employee-identity strong{min-width:0;font-size:var(--text-base);white-space:nowrap;align-items:center;font-weight:600;display:flex}.employee-row .secondary{color:var(--muted);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;margin-top:3px;overflow:hidden}.employee-dept{font-size:var(--text-md);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.employee-time{color:var(--muted);font-size:var(--text-sm);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.employee-name{text-overflow:ellipsis;min-width:0;overflow:hidden}.employee-identity strong .leader-badge,.employee-identity strong .team-badge{flex:none}.employee-identity strong>:is(.leader-badge,.team-badge)+:is(.leader-badge,.team-badge):before{white-space:pre}.employee-presence-line{color:var(--muted);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;display:none;overflow:hidden}@media (max-width:1100px){.employee-row .employee-presence-line{display:block}}@media (max-width:768px){:root .employee-row .row-arrow{display:none}}.data-list{transition:opacity .18s}.data-list.is-refreshing{opacity:.6}.data-list .empty-state h3{overflow-wrap:anywhere}.list-refresh-error{color:var(--muted);font-size:var(--text-sm);margin:0 0 10px}.list-refresh-error .link-button:disabled{opacity:.6}.employee-row.user-row{grid-template-columns:40px minmax(0,1.4fr) minmax(0,.8fr) minmax(0,1fr) minmax(0,150px) 20px}.user-row.is-disabled .employee-name{color:var(--muted)}.user-flags{color:var(--muted);font-size:var(--text-sm);flex:none;margin-left:8px;font-weight:500}.user-role,.user-staff span,.user-staff small,.user-seen,.user-summary{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.user-role{font-size:var(--text-md)}.user-staff{min-width:0}.user-staff span,.user-staff small{font-size:var(--text-md);display:block}.user-staff small,.user-seen,.user-summary{color:var(--muted);font-size:var(--text-sm)}.user-staff span+small{margin-top:2px}.user-summary{margin-top:2px;display:none}@media (max-width:1100px){.employee-row.user-row{grid-template-columns:40px minmax(0,1.4fr) minmax(0,.8fr) minmax(0,150px) 20px}.user-row .user-staff{display:none}}@media (max-width:768px){.employee-row.user-row{grid-template-columns:40px minmax(0,1fr)}.user-row .user-role,.user-row .user-seen{display:none}.user-row .user-summary{display:block}}@media (max-width:390px){.employee-row.user-row{grid-template-columns:36px minmax(0,1fr)}}.role-choice{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--raised);padding:0 14px;display:grid}.role-option+.role-option{border-top:1px solid var(--line)}.role-option label{cursor:pointer;flex:1}.role-option.is-disabled{opacity:.55}.role-option.is-disabled,.role-option.is-disabled label{cursor:not-allowed}.detail-list.user-facts{margin:0 0 20px}.user-actions{flex-wrap:wrap;gap:8px;display:flex}.user-actions .button{flex:1}.credential-password{align-items:center;gap:10px;display:flex}.credential-password code{flex:1;min-width:0}.credential-copy{flex:none;min-height:36px;padding:0 14px}.duty-today.duty-today-caution{border-color:var(--warning-line);background:0 0}.duty-today.duty-today-caution span{color:var(--warning)}.duty-today.duty-today-caution .duty-today-icon{background:var(--subtle)}.row-arrow{color:var(--faint);place-items:center;display:grid}.person-head{border-bottom:1px solid var(--line);align-items:center;gap:13px;margin-bottom:18px;padding-bottom:18px;display:flex}.person-head .row-main strong{font-size:var(--text-lg);white-space:normal;overflow-wrap:anywhere}.person-head .row-main span{white-space:normal;overflow-wrap:anywhere}.person-presence{font-weight:500;color:var(--ink)!important}.contact-row{gap:8px;margin:4px 0 6px;display:flex}.contact-row .button{flex:1}.sheet-section-title{font-size:var(--text-base);margin:22px 0 10px;font-weight:650}.sheet-section-head{justify-content:space-between;align-items:baseline;margin:22px 0 10px;display:flex}.sheet-section-head .sheet-section-title{margin:0}.sheet-section-head>span{color:var(--muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.history-list{display:grid}.history-list li{border-bottom:1px solid var(--line);align-items:center;gap:11px;padding:10px 0;display:flex}.history-list li:last-child{border-bottom:0}.history-list .movement-glyph{border-radius:9px;width:30px;height:30px}.history-list strong,.history-list span{display:block}.history-list strong{font-size:var(--text-md);font-weight:600}.history-list span{color:var(--muted);font-size:var(--text-sm);margin-top:2px}.detail-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 14px;margin-top:18px;display:grid}.detail-list dt,.trip-summary dt{color:var(--muted);font-size:var(--text-sm);margin-bottom:3px}.detail-list dd,.trip-summary dd{font-size:var(--text-md);overflow-wrap:anywhere;font-weight:600}.detail-list a{color:var(--accent)}.account-provision{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--raised);margin-top:8px;padding:4px 14px 2px}.account-provision-fields{border-top:1px solid var(--line);padding:6px 0 4px}.credential-result h3{font-size:var(--text-lg);margin-bottom:8px;font-weight:650}.credential-result p{color:var(--muted);line-height:1.5}.credential-result dl{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--raised);gap:10px;margin-top:18px;padding:14px;display:grid}.credential-result dt{color:var(--muted);font-size:var(--text-sm)}.credential-result dd{word-break:break-all;margin-top:2px;font-weight:600}.credential-result code{font-size:var(--text-base)}.person-head .person-edit{min-height:36px;font-size:var(--text-sm);gap:6px;margin-top:10px;padding:0 12px}.trip-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,380px),1fr));gap:14px;display:grid}.trip-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);text-align:left;width:100%;padding:18px;transition:border-color .15s,background-color .15s;position:relative}.trip-card:hover{border-color:var(--line-strong);background:var(--raised)}.trip-card-booked{border-color:var(--accent-line)}.trip-card header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:20px;display:flex}.trip-card h3{font-size:var(--text-lg);letter-spacing:-.01em;overflow-wrap:anywhere;font-weight:650}.trip-card header p{color:var(--muted);font-size:var(--text-md);font-variant-numeric:tabular-nums;margin-top:4px}.trip-direction-badge{min-height:28px;font-size:var(--text-sm);border-radius:8px;flex:none;align-items:center;gap:5px;padding:0 9px;font-weight:600;display:inline-flex}.trip-out{background:var(--warning-pale);color:var(--warning)}.trip-in{background:var(--accent-pale);color:var(--accent-dark)}.trip-route{grid-template-columns:auto minmax(24px,1fr) auto;align-items:center;gap:10px;display:grid}.trip-route>span{font-size:var(--text-md);overflow-wrap:anywhere;font-weight:600}.route-line{background:var(--line-strong);height:1px;position:relative}.route-line:before,.route-line:after{content:"";background:var(--accent);border-radius:50%;width:7px;height:7px;position:absolute;top:-3px}.route-line:before{left:0}.route-line:after{right:0}.trip-footer{border-top:1px solid var(--line);font-size:var(--text-sm);color:var(--muted);justify-content:space-between;align-items:center;gap:12px;margin-top:18px;padding-top:14px;display:flex}.trip-footer strong{color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:600}.trip-booked{color:var(--accent-dark);font-weight:600}.trip-full{color:var(--danger)!important}.trip-summary{border-bottom:1px solid var(--line);padding-bottom:18px}.trip-route-large>span{font-size:var(--text-base)}.trip-summary dl{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:14px;margin-top:18px;display:grid}.trip-direction-field{margin-bottom:16px}.trip-direction-field>span{margin-bottom:7px;font-weight:600;display:block}.trip-direction-field .direction-control{margin-bottom:0}.self-book{gap:12px;margin-top:18px;display:grid}.self-book p{color:var(--muted);line-height:1.5}.manifest-movement{border-radius:var(--radius-md);background:var(--subtle);margin-top:18px;padding:16px}.manifest-movement>div:first-child strong{font-size:var(--text-base);font-weight:650}.manifest-movement>div:first-child p{color:var(--muted);font-size:var(--text-md);margin:3px 0 12px;line-height:1.45}.manifest-movement .direction-control{margin-bottom:10px}.manifest-movement .direction-control button{min-height:46px}.manifest-conflict{margin:12px 0 0}.manifest-conflict span{display:block}.manifest-conflict .button{width:100%}.manifest-passenger .segmented{margin-bottom:14px}.manifest-passenger .field{margin-bottom:12px}.manifest-booking-row{min-height:64px;padding:8px 10px 8px 16px}.manifest-person{text-align:left;flex:1;align-items:center;gap:10px;min-width:0;padding:4px 0;display:flex}.manifest-person:hover strong{text-underline-offset:3px;text-decoration:underline}.manifest-mark-button{min-height:38px;font-size:var(--text-sm);flex:none;padding:0 12px}.manifest-mark-button.is-done{background:var(--accent-pale);color:var(--accent-dark);opacity:1}.qr-pass{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--raised);text-align:center;justify-items:center;gap:4px;margin-top:18px;padding:22px 18px;display:grid}.qr-pass-code{background:#fff;border-radius:14px;margin-bottom:12px;padding:8px}.qr-pass>strong,.qr-pass-name{font-size:var(--text-xl);overflow-wrap:anywhere;font-weight:650}.qr-pass>span{color:var(--muted);font-size:var(--text-md)}.qr-pass-status{background:var(--accent-pale);border-radius:999px;margin-top:6px;padding:3px 9px;font-weight:600;color:var(--accent-dark)!important;font-size:var(--text-sm)!important}.qr-pass p{color:var(--muted);font-size:var(--text-sm);max-width:36ch;margin-top:14px}.qr-pass code{background:var(--subtle);font-size:var(--text-sm);word-break:break-all;-webkit-user-select:all;user-select:all;border-radius:8px;margin-top:4px;padding:6px 10px}.trip-card header>div{min-width:0}.trip-card-open{text-align:left}.trip-card-open:after{content:"";border-radius:var(--radius-lg);position:absolute;inset:0}.trip-card-open:focus-visible{outline:none}.trip-card:has(.trip-card-open:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.qr-pass-name:focus:not(:focus-visible){outline:none}.refresh-failed{color:var(--muted);font-size:var(--text-sm);margin:0 0 12px}.refresh-failed button{color:var(--accent-dark);text-underline-offset:3px;font-weight:600;text-decoration:underline}.roster-loading-day{opacity:.55;transition:opacity .15s}@media (max-width:460px){.page-actions-compact .button-primary{width:44px;padding:0}.page-actions-compact .button-primary span{display:none}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.scan-direction{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:16px;display:grid}.scan-direction-option{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);text-align:left;align-items:center;gap:14px;min-height:76px;padding:14px 18px;transition:background-color .18s,border-color .18s,box-shadow .18s;display:flex}.scan-direction-option:hover:not(.active){border-color:var(--line-strong);background:var(--raised)}.scan-direction-option strong,.scan-direction-option small{display:block}.scan-direction-option strong{font-size:var(--text-base);font-weight:650}.scan-direction-option small{color:var(--muted);font-size:var(--text-sm);margin-top:2px}.scan-direction-icon{background:var(--subtle);width:40px;height:40px;color:var(--muted);border-radius:12px;flex:none;place-items:center;transition:background-color .18s,color .18s;display:grid}.scan-direction-out.active{background:var(--warning-pale);border-color:#c79a5e;box-shadow:inset 0 0 0 1px #c79a5e}.scan-direction-out.active .scan-direction-icon{color:#fff;background:#b47835}.scan-direction-out.active small{color:var(--warning)}.scan-direction-in.active{background:var(--accent-pale);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.scan-direction-in.active .scan-direction-icon{background:var(--accent);color:#fff}.scan-direction-in.active small{color:var(--accent-dark)}.scan-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}.scan-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);min-width:0;padding:18px}.scan-card-head{justify-content:space-between;align-items:center;gap:12px;min-height:26px;margin-bottom:14px;display:flex}.scan-card-head h2{font-size:var(--text-lg);font-weight:650}.scan-live{color:var(--accent-dark);font-size:var(--text-sm);align-items:center;gap:7px;font-weight:600;display:inline-flex}.scan-live i{background:var(--accent);border-radius:50%;width:7px;height:7px}.scan-viewport{aspect-ratio:4/3;background:var(--rail);border:1px dashed var(--line-strong);border-radius:14px;place-items:center;display:grid;position:relative;overflow:hidden}.scan-viewport:not(.is-active){aspect-ratio:auto;min-height:300px}.scan-viewport.is-active{background:#0f2a23;border:0}.scan-viewport video{object-fit:cover;opacity:0;width:100%;height:100%;position:absolute;inset:0}.scan-viewport.is-active video{opacity:1}.scanner-frame{aspect-ratio:1;border:2px solid #ffffffeb;border-radius:20px;width:min(58%,280px);position:absolute;box-shadow:0 0 0 999px #081a166b}.scan-viewport-note{color:#d8e5df;font-size:var(--text-md);position:relative}.scan-viewport-idle{text-align:center;justify-items:center;gap:14px;max-width:380px;padding:24px;display:grid;position:relative}.scan-idle-icon{background:var(--raised);border:1px solid var(--line);width:58px;height:58px;color:var(--accent);border-radius:16px;place-items:center;display:grid}.scan-viewport-idle p{color:var(--muted);text-wrap:pretty;line-height:1.5}.scan-stop{min-height:38px;color:var(--accent-dark);background:#fffffff2;position:absolute;bottom:12px;right:12px}.scan-camera-error{margin:12px 0 0}.scan-code-form{gap:8px;display:flex}.scan-code-form input{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--raised);min-width:0;min-height:48px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:var(--text-base);letter-spacing:.02em;flex:1;padding:0 14px;transition:border-color .18s,box-shadow .18s}.scan-code-form input:focus{border-color:var(--accent);box-shadow:var(--focus)}.scan-code-form input::placeholder{color:var(--faint)}.scan-code-form .button{min-height:48px}.button-out{color:#fff;background:#8a5a22}.button-out:hover:not(:disabled){background:#774c1b}.scan-feedback:empty{display:none}.scan-feedback{margin-top:14px}.scan-result,.scan-failure{border-radius:var(--radius-md);animation:pop-in .25s var(--ease);align-items:flex-start;gap:12px;padding:14px;display:flex}.scan-result>svg,.scan-failure>svg{flex:none}.scan-result strong,.scan-result span,.scan-failure strong,.scan-failure span{display:block}.scan-result strong{font-size:var(--text-lg);color:var(--ink);font-weight:650}.scan-result span{font-size:var(--text-md);margin-top:2px}.scan-result-in{background:var(--accent-pale);color:var(--accent-dark);border:1px solid var(--accent-line)}.scan-result-out{background:var(--warning-pale);color:var(--warning);border:1px solid var(--warning-line)}.scan-failure{background:var(--danger-pale);border:1px solid var(--danger-line);color:var(--danger)}.scan-failure>div{flex:1;min-width:0}.scan-failure strong{font-weight:650}.scan-failure span{color:var(--ink);margin-top:3px;line-height:1.45}.scan-failure .button{white-space:normal;text-align:center;width:100%;margin-top:10px;padding-block:10px;line-height:1.3}@keyframes pop-in{0%{opacity:0;transform:translateY(4px)}}.scan-log{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}.scan-log h3{font-size:var(--text-md);margin-bottom:6px;font-weight:650}.scan-log>p{color:var(--muted);font-size:var(--text-md)}.scan-log li{border-bottom:1px solid var(--line);font-size:var(--text-md);align-items:center;gap:10px;padding:8px 0;display:flex}.scan-log li:last-child{border-bottom:0}.scan-log .movement-glyph{border-radius:8px;width:26px;height:26px}.scan-log-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.scan-log-what{color:var(--muted);font-size:var(--text-sm)}.scan-log time{color:var(--muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums;text-align:right;min-width:38px}.scan-manual{border-radius:var(--radius-md);background:var(--subtle);color:var(--ink);font-size:var(--text-md);justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding:13px 14px;line-height:1.4;text-decoration:none;transition:background-color .15s;display:flex}.scan-manual:hover{background:var(--accent-pale)}.scan-manual strong{font-weight:650}.scan-manual svg{color:var(--accent);flex:none}.scan-result>div{overflow-wrap:anywhere;flex:1;min-width:0}.scan-grid-desk{grid-template-columns:minmax(0,760px)}.scan-entry-desk{padding:22px}.scan-entry-desk .scan-card-head{margin-bottom:4px}.scan-entry-hint{color:var(--muted);font-size:var(--text-md);margin-bottom:14px}.scan-entry-row{align-items:stretch;gap:8px;display:flex}.scan-entry-row .scan-code-form{flex:1;min-width:0}.scan-entry-desk .scan-code-form{flex-direction:row}.scan-entry-desk .scan-code-form input{letter-spacing:.04em;min-height:56px;font-size:1.25rem}.scan-entry-desk .scan-code-form .button,.scan-entry-desk .scan-camera-open{min-height:56px}.scan-camera-open{flex:none}.scan-modal .scan-viewport{aspect-ratio:16/10}.scan-modal .scan-viewport:not(.is-active){min-height:320px}.scan-modal-status{min-height:22px;color:var(--muted);font-size:var(--text-md);margin-bottom:12px}.scan-modal-count{color:var(--muted);font-size:var(--text-sm);margin-top:12px}.scan-viewport-problem p{color:var(--ink)}.scan-viewport-problem .scan-idle-icon{color:var(--warning)}.list-link:focus-visible,.metric:focus-visible{outline-offset:-2px;border-radius:0}#needs-attention{scroll-margin-top:16px}a.panel-more{font-size:var(--text-md);justify-content:center;align-items:center;padding:0 18px;text-decoration:none;display:flex}.refresh-error{color:var(--warning);font-size:var(--text-md);flex-wrap:wrap;align-items:center;gap:6px;margin:-6px 0 14px;display:flex}.refresh-error .link-button{font-size:inherit}.refresh-error .link-button:disabled{color:var(--muted);text-decoration:none}.panel>.refresh-error,.settings-card>.refresh-error{border-bottom:1px solid var(--line);margin:0;padding:10px 18px}.team-minimums>.refresh-error{border-bottom:1px solid var(--line);margin:0;padding-bottom:12px}.data-list.is-stale{opacity:.55;transition:opacity .15s}.settings-section{border-top:1px solid var(--line);grid-template-columns:minmax(200px,300px) minmax(0,1fr);gap:24px 40px;padding:28px 0;display:grid}.settings-section:first-of-type{border-top:0;padding-top:4px}.settings-section-copy h2{font-size:var(--text-lg);font-weight:650}.settings-section-copy p{color:var(--muted);margin-top:6px;line-height:1.5}.settings-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);min-width:0;padding:20px}.settings-card-flush{padding:0;overflow:hidden}.department-add{border-bottom:1px solid var(--line);gap:9px;padding:14px 16px;display:flex}.department-add input{outline:0;flex:1;min-width:0;min-height:44px}.department-note{margin:12px 16px 0}.department-list{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.department-list-row{border-bottom:1px solid var(--line);align-items:center;gap:12px;min-height:62px;padding:10px 12px 10px 16px;display:flex}.department-list-row:nth-child(odd){border-right:1px solid var(--line)}.department-list-row>div{flex:1;min-width:0}.department-list-row>div strong,.department-list-row>div span{display:block}.department-list-row>div strong{font-size:var(--text-md);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.department-list-row>div span{color:var(--muted);font-size:var(--text-sm);margin-top:2px}.department-list-row .movement-glyph{border-radius:9px;width:30px;height:30px}.department-list>.empty-state{grid-column:1/-1}.import-steps{counter-reset:step;flex-wrap:wrap;gap:8px;margin:-8px 0 16px;display:flex}.import-steps li{counter-increment:step;background:var(--subtle);color:var(--muted);font-size:var(--text-sm);border-radius:999px;align-items:center;gap:8px;padding:6px 12px 6px 6px;font-weight:600;display:flex}.import-steps li:before{content:counter(step);background:var(--raised);width:22px;height:22px;font-size:var(--text-xs);border-radius:50%;place-items:center;display:grid}.import-steps li.current{background:var(--accent-pale);color:var(--accent-dark)}.import-steps li.current:before{background:var(--accent-dark);color:#fff}.import-steps li.done{color:var(--accent-dark)}.import-panel{gap:16px;padding:20px;display:grid}.import-panel .form-error{margin:0}.import-drop{border:1.5px dashed var(--line-strong);background:var(--rail);text-align:center;color:var(--accent);border-radius:16px;padding:32px 20px;transition:border-color .15s,background-color .15s}.import-drop.is-dragging{border-color:var(--accent);background:var(--accent-pale)}.import-drop>svg{margin:0 auto}.import-drop input{display:none}.import-drop h3{font-size:var(--text-lg);color:var(--ink);overflow-wrap:anywhere;margin:12px 0 6px;font-weight:650}.import-drop p{color:var(--muted);max-width:56ch;margin:0 auto 16px;line-height:1.5}.import-checking{color:var(--muted)}.import-summary{background:var(--line);border:1px solid var(--line);border-radius:var(--radius-md);grid-template-columns:repeat(3,1fr);gap:1px;display:grid;overflow:hidden}.import-summary div{background:var(--surface);padding:14px 16px}.import-summary strong{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:650;display:block}.import-summary span{color:var(--muted);font-size:var(--text-sm)}.import-summary .has-errors strong{color:var(--danger)}.import-errors{border-radius:var(--radius-md);background:var(--danger-pale);border:1px solid var(--danger-line);color:var(--ink);padding:14px 16px}.import-errors>strong{color:var(--danger);margin-bottom:8px;display:block}.import-errors li{border-top:1px solid var(--danger-line);font-size:var(--text-md);padding:6px 0;line-height:1.45}.import-errors li span{min-width:64px;color:var(--danger);font-weight:600;display:inline-block}.import-errors p{color:var(--muted);font-size:var(--text-sm);margin-top:8px}.import-confirm{border-radius:var(--radius-md);background:var(--accent-pale);color:var(--accent-dark);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;font-weight:600;display:flex}.import-done{text-align:center;color:var(--accent);justify-items:center;gap:8px;padding:40px 24px;display:grid}.import-done h2{font-size:var(--text-xl);color:var(--ink);margin-top:6px;font-weight:650}.import-done p{color:var(--muted);max-width:52ch;line-height:1.5}.import-done-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:12px;display:flex}.sheet-layer{z-index:40;background:#1c221e52;justify-content:center;align-items:center;padding:24px;animation:.18s ease-out backdrop-in;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:min(580px,100%);max-height:min(860px,90dvh);box-shadow:var(--shadow-float);animation:sheet-scale .26s var(--ease);border-radius:20px;outline:none;flex-direction:column;display:flex}.sheet-wide{width:min(760px,100%)}.sheet-grabber{display:none}.sheet>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px 14px 22px;display:flex}.sheet>header h2{font-size:var(--text-lg);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:650;overflow:hidden}.sheet>header .icon-button{background:0 0;border:0}.sheet>header .icon-button:hover{background:var(--subtle)}.sheet-body{overscroll-behavior:contain;flex:1;padding:22px;overflow-y:auto}.sheet>footer{padding:12px 22px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);justify-content:flex-end;gap:9px;display:flex}@keyframes fade-in{0%{opacity:0}}@keyframes backdrop-in{0%{background-color:#1c221e00}}@keyframes sheet-scale{0%{opacity:0;transform:translateY(8px)scale(.985)}}@keyframes sheet-up{0%{transform:translateY(100%)}}.toast-region{z-index:60;pointer-events:none;gap:8px;width:min(380px,100vw - 32px);display:grid;position:fixed;bottom:20px;right:20px}.toast-stack{display:contents}.toast strong,.toast span{overflow-wrap:anywhere}.toast{pointer-events:auto;background:var(--ink);color:#fff;box-shadow:var(--shadow-float);animation:toast-in .28s var(--ease);border-radius:14px;align-items:flex-start;gap:11px;padding:13px 10px 13px 14px;display:flex}.toast>svg{flex:none;margin-top:1px}.toast-success>svg{color:#8ed9be}.toast-error>svg{color:#f2a59e}.toast>div{flex:1;min-width:0}.toast strong,.toast span{display:block}.toast strong{font-size:var(--text-md);font-weight:600}.toast span{color:#cfd6d1;font-size:var(--text-sm);margin-top:2px;line-height:1.4}.toast button{color:#aeb7b1;border-radius:8px;flex:none;place-items:center;width:28px;height:28px;display:grid}.toast button:hover{color:#fff;background:#ffffff1a}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}@keyframes toast-down{0%{opacity:0;transform:translateY(-8px)}}.mobile-nav{display:none}@media (max-width:1100px){.metric-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.metric:nth-child(3n){border-right:0}.metric:nth-child(-n+3){border-bottom:1px solid var(--line)}.employee-row{grid-template-columns:40px minmax(0,1.5fr) minmax(0,1fr) 104px 20px}.employee-row .employee-time{display:none}.settings-section{grid-template-columns:1fr;gap:14px}.scan-code-form{flex-direction:column}}@media (max-width:1000px){.dashboard-grid,.dashboard-grid-even,.scan-grid{grid-template-columns:minmax(0,1fr)}}@media (max-width:768px){body{font-size:var(--text-base)}.app-shell{display:block}.sidebar{display:none}.main{padding-bottom:calc(76px + env(safe-area-inset-bottom))}.topbar{z-index:20;-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--line);background:#f7f8f5f0;justify-content:space-between;align-items:center;gap:12px;height:58px;padding:0 14px;display:flex;position:sticky;top:0}.mobile-brand{align-items:center;gap:10px;min-width:0;display:flex}.mobile-brand .brand-mark{border-radius:9px;width:32px;height:32px}.mobile-brand span{min-width:0;display:grid}.mobile-brand strong{font-size:var(--text-md);font-weight:650}.mobile-brand small{font-size:var(--text-xs);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.account-button{border-radius:50%;place-items:center;width:44px;height:44px;display:grid}.content{padding:20px 16px 28px}.page-title{grid-template-areas:"title action";column-gap:12px;margin-bottom:18px}.page-title h1{font-size:1.625rem}.page-actions .button-secondary{width:44px;padding:0}.page-actions .button-secondary span{display:none}.page-title .button{min-height:44px;padding:0 14px}.section-head{margin:26px 0 10px}.section-head h2{font-size:var(--text-lg)}.toolbar{flex-direction:column;align-items:stretch;gap:10px}.search-box{flex:none;min-width:0;max-width:none;height:46px}.search-box input,.sidebar-search input,.field input:not([type=checkbox]):not([type=radio]),.field select,.field textarea,.department-add input,.team-minimum-row input,.date-range input{font-size:16px}.toolbar .segmented,.register-switch .segmented{width:100%}.toolbar .segmented button,.register-switch .segmented button{flex:1;min-height:38px;padding:0 8px}.panel,.data-list{border-radius:16px}.list-row{padding:11px 14px}.row-meta{max-width:42%}.row-meta strong{font-size:var(--text-sm)}.metric-strip{background:0 0;border:0;border-radius:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;overflow:visible}.metric{background:var(--surface);border-radius:16px;min-height:124px;padding:14px;border:1px solid var(--line)!important}.metric:last-child:nth-child(odd){grid-column:1/-1}.metric header{font-size:var(--text-sm);gap:8px}.metric-icon{border-radius:8px;width:28px;height:28px}.metric strong{margin-top:16px;font-size:1.875rem}.metric-illustration{width:88px;height:88px;bottom:-14px;right:-16px}.metric-illustration svg{width:76px;height:76px}.employee-row{grid-template-columns:40px minmax(0,1fr) auto;gap:11px;padding:11px 14px}.employee-row .employee-dept,.employee-row .employee-time,.employee-row .row-arrow{display:none}.form-grid,.detail-list{grid-template-columns:minmax(0,1fr)}.trip-grid{grid-template-columns:minmax(0,1fr);gap:10px}.scan-direction{gap:8px;margin-bottom:12px}.scan-direction-option{border-radius:16px;gap:10px;min-height:64px;padding:10px 12px}.scan-direction-icon{border-radius:10px;width:34px;height:34px}.scan-direction-option strong{font-size:var(--text-md)}.scan-card{border-radius:16px;padding:14px}.scan-viewport:not(.is-active){aspect-ratio:auto}.scan-viewport-idle{gap:12px;padding:18px 16px}.scan-viewport-idle p{font-size:var(--text-md)}.scan-code-form{flex-direction:column}.scan-code-form input{font-size:16px}.trip-card{border-radius:16px;padding:16px}.settings-section{padding:22px 0}.settings-card{border-radius:16px;padding:16px}.settings-card-flush{padding:0}.inline-form{flex-direction:column;align-items:stretch}.inline-form>.button{margin-bottom:0}.department-list{grid-template-columns:minmax(0,1fr)}.department-list-row:nth-child(odd){border-right:0}.sheet-layer{align-items:flex-end;padding:0}.sheet{width:100%;max-height:92dvh;animation:sheet-up .32s var(--ease);border-radius:22px 22px 0 0}.sheet-grabber{background:var(--line-strong);border-radius:3px;flex:none;width:36px;height:5px;margin:8px auto 0;display:block}.sheet>header{padding:8px 10px 12px 18px}.sheet-body{padding:18px}.sheet>footer{padding:12px 18px calc(12px + env(safe-area-inset-bottom))}.sheet>footer .button{flex:1}.toast-region{left:12px;right:12px;top:calc(8px + env(safe-area-inset-top));width:auto;bottom:auto}.toast{animation-name:toast-down}.mobile-nav{z-index:20;padding:6px 6px calc(6px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--line);background:#fafbf9f5;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;display:grid;position:fixed;bottom:0;left:0;right:0}.mobile-nav-2{grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-nav-4{grid-template-columns:repeat(4,minmax(0,1fr))}.mobile-nav a{min-width:0;min-height:52px;color:var(--muted);font-size:var(--text-xs);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-weight:600;text-decoration:none;display:flex}.mobile-nav a.active{background:var(--accent-pale);color:var(--accent-dark)}}@media (max-width:390px){.content{padding-left:12px;padding-right:12px}.metric{padding:12px}.metric strong{font-size:1.625rem}.employee-row{grid-template-columns:36px minmax(0,1fr) auto;padding-left:12px;padding-right:12px}.avatar-md{width:36px;height:36px}.presence-pill{padding:4px 7px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.section-head>span{color:var(--muted);font-size:var(--text-md)}.section-head .section-alert{color:var(--danger);font-weight:600}.team-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;display:grid}.team-card{border:1px solid var(--line);background:var(--surface);color:inherit;transition:border-color .15s var(--ease), background-color .15s var(--ease);border-radius:16px;flex-direction:column;gap:6px;padding:16px 18px;text-decoration:none;display:flex}.team-card:hover{border-color:var(--line-strong);background:var(--raised)}.team-card header{align-items:center;gap:10px;display:flex}.team-card h3{min-width:0;font-size:var(--text-md);flex:1;font-weight:600}.team-card-icon{width:32px;height:32px;color:var(--accent-dark);background:var(--accent-pale);border-radius:10px;flex:none;place-items:center;display:grid}.team-card-below{border-color:var(--danger-line);background:var(--danger-pale)}.team-card-below:hover{border-color:var(--danger);background:var(--danger-pale)}.team-card-below .team-card-icon{color:var(--danger);background:#fff}.team-card-at-minimum .team-card-icon{color:var(--warning);background:var(--warning-pale)}.team-state{font-size:var(--text-xs);white-space:nowrap;border-radius:999px;flex:none;padding:3px 9px;font-weight:600}.team-state-covered{color:var(--accent-dark);background:var(--accent-pale)}.team-state-at-minimum{color:var(--warning);background:var(--warning-pale)}.team-state-below{color:#fff;background:var(--danger)}.team-count{color:var(--muted);font-size:var(--text-md);margin-top:6px}.team-count strong{color:var(--ink);font-size:var(--text-2xl);letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-right:2px;font-weight:650}.team-card-below .team-count strong{color:var(--danger)}.team-min{color:var(--muted);font-size:var(--text-sm)}.team-card-below .team-min{color:var(--danger);font-weight:600}.team-away{border-top:1px solid var(--line);color:var(--muted);font-size:var(--text-sm);margin:6px 0 0;padding:8px 0 0;list-style:none}.team-card-below .team-away{border-top-color:var(--danger-line)}.team-away li{justify-content:space-between;gap:12px;padding:2px 0;display:flex}.team-away li span:first-child{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.team-away li span:last-child{flex:none}.team-badge{font-size:var(--text-xs);vertical-align:1px;white-space:nowrap;color:var(--danger);background:var(--danger-pale);border-radius:6px;margin-left:7px;padding:2px 7px;font-weight:600;line-height:1.5;display:inline-block}.team-badge.team-first-aid{color:#1d5a8a;background:#e2edf7}.row-main .team-badge,.employee-identity .team-badge{width:auto;margin-top:0;display:inline-block;overflow:visible}.coverage-warning{border:1px solid var(--warning-line);background:var(--warning-pale);color:var(--warning);font-size:var(--text-sm);border-radius:12px;align-items:flex-start;gap:10px;margin:12px 0 16px;padding:12px 14px;line-height:1.45;display:flex}.coverage-warning strong{color:var(--ink)}.toast-warning>svg{color:#f0c38a}.team-minimums{gap:10px;display:grid}.team-minimum-row{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;gap:12px;padding:12px 0;display:grid}.team-minimum-row:last-child{border-bottom:0}.team-minimum-row strong{font-size:var(--text-md);font-weight:600;display:block}.team-minimum-row span{color:var(--muted);font-size:var(--text-sm)}.team-minimum-row form{align-items:center;gap:8px;display:flex}.team-minimum-row input{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--raised);text-align:center;width:80px;height:40px;font-size:var(--text-md);font-variant-numeric:tabular-nums;padding:0 10px}.team-minimum-row input:focus{border-color:var(--accent);box-shadow:var(--focus)}.team-minimum-row input[aria-invalid=true]{border-color:var(--danger)}.team-minimum-row a{color:var(--accent)}@media (max-width:768px){.team-grid,.team-minimum-row{grid-template-columns:1fr}}.toolbar-select{border:1px solid var(--line);border-radius:var(--radius-md);background-color:var(--raised);width:auto;min-width:210px;height:44px;font-size:var(--text-md);cursor:pointer;margin-left:auto;padding:0 38px 0 13px}.toolbar-select:hover{border-color:var(--line-strong)}.toolbar-select:focus-visible{border-color:var(--accent);box-shadow:var(--focus)}@media (max-width:768px){.toolbar-select{width:100%;margin-left:0;font-size:16px}}.app-shell{transition:grid-template-columns .22s var(--ease)}.sidebar-brand div{flex:1}.sidebar-toggle{width:32px;height:32px;color:var(--faint);border-radius:9px;flex:none;place-items:center;transition:background-color .15s,color .15s;display:grid}.sidebar-toggle:hover{background:var(--subtle);color:var(--ink)}.nav-text{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.sidebar-search-collapsed{border:1px solid var(--line);background:var(--raised);width:100%;margin-bottom:8px}.app-shell.is-collapsed{grid-template-columns:72px minmax(0,1fr)}.is-collapsed .sidebar{padding:18px 12px 14px;overflow-x:hidden}.is-collapsed .sidebar-brand{flex-direction:column;gap:12px;padding:2px 0 16px}.is-collapsed .sidebar-brand div,.is-collapsed .nav-text,.is-collapsed .sidebar-footer .person{display:none}.is-collapsed .nav-item{justify-content:center;gap:0;padding:0}.is-collapsed .nav-label{background:var(--line);color:#0000;height:1px;margin:12px 6px;padding:0;overflow:hidden}.is-collapsed .sidebar-footer{flex-direction:column;gap:8px;padding:12px 0 0}.button-quiet-danger{color:var(--danger);background:0 0;padding:0 12px}.button-quiet-danger:hover:not(:disabled){background:var(--danger-pale)}.sheet-footer-start{margin-right:auto}.icon-button-quiet{width:36px;height:36px;color:var(--faint);background:0 0;border-color:#0000}.icon-button-quiet:hover:not(:disabled){background:var(--subtle);color:var(--ink);border-color:#0000}.icon-button-danger:hover:not(:disabled){background:var(--danger-pale);color:var(--danger)}.toast .toast-action{color:#8ed9be;width:auto;height:28px;font-size:var(--text-sm);padding:0 10px;font-weight:650}.toast .toast-action:hover{color:#fff}.link-button{color:var(--accent);font-weight:600}.link-button:hover{text-decoration:underline}.empty-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.section-head .section-head-meta{align-items:center;gap:16px;display:flex}.confirm-layer{z-index:50;background:#1c221e61;place-items:center;padding:20px;animation:.16s ease-out backdrop-in;display:grid;position:fixed;inset:0}.confirm{background:var(--surface);width:min(420px,100%);box-shadow:var(--shadow-float);animation:sheet-scale .22s var(--ease);border-radius:18px;padding:22px 22px 18px}.confirm h2{font-size:var(--text-lg);letter-spacing:-.01em;text-wrap:balance;overflow-wrap:anywhere;font-weight:650;line-height:1.3}.confirm-body{color:var(--muted);margin-top:8px;line-height:1.5}.confirm-body strong{color:var(--ink)}.confirm-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.paused{place-items:center;min-height:100dvh;padding:24px 16px;display:grid}.paused-card{border:1px solid var(--line);background:var(--surface);border-radius:20px;justify-items:start;gap:12px;width:min(460px,100%);padding:28px;display:grid}.paused-card h1{font-size:var(--text-2xl);letter-spacing:-.03em;margin-top:6px;line-height:1.1}.paused-card p{color:var(--muted);line-height:1.5}.paused-card .paused-note{font-size:var(--text-sm)}.paused-card .button{margin-top:8px}.paused-icon{background:var(--subtle);width:44px;height:44px;color:var(--muted);border-radius:12px;place-items:center;display:grid}.duty-today{border:1px solid var(--line);background:var(--subtle);border-radius:12px;align-items:center;gap:12px;margin:0 0 18px;padding:12px 14px;display:flex}.duty-today-icon{background:var(--raised);width:32px;height:32px;color:var(--muted);border-radius:10px;flex:none;place-items:center;display:grid}.duty-today div{flex:1;min-width:0}.duty-today strong,.duty-today span{display:block}.duty-today strong{font-size:var(--text-md);font-weight:600}.duty-today span{color:var(--muted);font-size:var(--text-sm);margin-top:1px}.duty-today a,.section-link{color:var(--accent);font-size:var(--text-sm);flex:none;align-items:center;gap:5px;font-weight:600;text-decoration:none;display:inline-flex}.duty-today a:hover,.section-link:hover{text-decoration:underline}.roster-date{align-items:center;gap:8px;margin-bottom:18px;display:flex}.roster-date-picker{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--raised);cursor:pointer;align-items:center;min-height:40px;padding:0 14px;font-weight:600;display:flex;position:relative}.roster-date-picker:focus-within{border-color:var(--accent);box-shadow:var(--focus)}.roster-date-picker input{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.roster-date-picker input::-webkit-calendar-picker-indicator{cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.roster-today{min-height:40px}.roster-today-label{background:var(--accent-pale);color:var(--accent-dark);font-size:var(--text-xs);border-radius:999px;padding:3px 9px;font-weight:650}.roster-empty-note{border:1px dashed var(--line-strong);color:var(--muted);border-radius:14px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;padding:14px 16px;line-height:1.45;display:flex}.roster-grid{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));align-items:start;gap:14px;display:grid}.roster-team{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);overflow:hidden}.roster-team-below{border-color:var(--danger-line)}.roster-team>header{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:16px 18px;display:flex}.roster-team>header>div{flex:1;min-width:0}.roster-team h2{font-size:var(--text-base);font-weight:650}.roster-team>header p{color:var(--muted);font-size:var(--text-sm);margin-top:2px}.roster-ert{color:var(--danger);background:var(--danger-pale)}.roster-first-aid{color:#1d5a8a;background:#e2edf7}.roster-role h3{color:var(--faint);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;padding:12px 18px 4px;font-weight:650}.roster-member{align-items:center;gap:12px;min-height:60px;padding:8px 12px 8px 18px;display:flex}.roster-member+.roster-member{border-top:1px solid var(--line)}.roster-member .row-main a{text-decoration:none}.roster-member .row-main a:hover{text-decoration:underline}.roster-member-actions{flex:none;gap:2px;display:flex}.roster-team>.panel-empty{padding:18px}.roster-team>footer{border-top:1px solid var(--line);padding:12px 18px 16px}.roster-footnote{color:var(--muted);font-size:var(--text-sm);margin-top:12px}.pdf-options{gap:10px;display:grid}.pdf-option{border:1px solid var(--line);background:var(--raised);border-radius:14px;align-items:flex-start;gap:14px;padding:16px;transition:border-color .15s,background-color .15s;display:flex}.pdf-option:hover:not(:disabled){border-color:var(--accent-line);background:var(--accent-pale)}.pdf-option>svg{color:var(--accent-dark);margin-top:-1px}.pdf-option strong,.pdf-option small{display:block}.pdf-option strong{font-weight:650}.pdf-option small{color:var(--muted);font-size:var(--text-sm);margin-top:3px;line-height:1.45}.org-chart{--org-line:var(--line-strong);--org-gap:22px;overscroll-behavior-x:contain;scrollbar-width:thin;padding:18px 16px 20px;overflow-x:auto}.org-chart.org-more-left{-webkit-mask-image:linear-gradient(90deg,#0000,#000 56px);mask-image:linear-gradient(90deg,#0000,#000 56px)}.org-chart.org-more-right{-webkit-mask-image:linear-gradient(270deg,#0000,#000 56px);mask-image:linear-gradient(270deg,#0000,#000 56px)}.org-chart.org-more-left.org-more-right{-webkit-mask-image:linear-gradient(90deg,#0000,#000 56px calc(100% - 56px),#0000);mask-image:linear-gradient(90deg,#0000,#000 56px calc(100% - 56px),#0000)}.org-level{padding:var(--org-gap) 0 0;justify-content:center;margin:0;list-style:none;display:flex;position:relative}.org-root{width:max-content;min-width:100%;padding-top:0}.org-node{padding:var(--org-gap) 7px 0;flex-direction:column;align-items:center;display:flex;position:relative}.org-root>.org-node{padding-top:0}.org-node:before,.org-node:after{content:"";width:50%;height:var(--org-gap);border-top:1px solid var(--org-line);position:absolute;top:0}.org-node:before{right:50%}.org-node:after{border-left:1px solid var(--org-line);left:50%}.org-node:first-child:before,.org-node:last-child:after{border-top:0}.org-node:last-child:before{border-right:1px solid var(--org-line);border-top-right-radius:6px}.org-node:first-child:after{border-top-left-radius:6px}.org-node:only-child:before{display:none}.org-node:only-child:after{border-radius:0}.org-root>.org-node:before,.org-root>.org-node:after{display:none}.org-node>.org-level:before{content:"";height:var(--org-gap);border-left:1px solid var(--org-line);position:absolute;top:0;left:50%}.org-card-slot{z-index:1;position:relative}.org-card{border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--raised);text-align:left;width:188px}.org-card>h3{border-bottom:1px solid var(--line);min-height:calc(2.6em + 17px);line-height:1.3;font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--ink);overflow-wrap:anywhere;align-items:center;margin:0;padding:8px 12px;font-weight:700;display:flex}.org-card-people{margin:0;padding:6px 0;list-style:none}.org-person{align-items:center;gap:6px;min-height:34px;padding:3px 6px 3px 12px;display:flex;position:relative}.org-person>div{flex:1;min-width:0}.org-person a,.org-person strong{color:var(--ink);font-size:var(--text-md);overflow-wrap:anywhere;font-weight:600;line-height:1.3;text-decoration:none;display:block}.org-person a:hover{text-decoration:underline}.org-person small{color:var(--muted);font-size:var(--text-xs);overflow-wrap:anywhere;display:block}.org-person small.is-away{color:var(--warning)}.org-person .icon-button{flex:none;width:28px;height:28px}.org-person-actions{flex:none;display:flex}@media (hover:hover){.org-person-actions{border-radius:var(--radius-sm);background:var(--raised);box-shadow:-10px 0 10px var(--raised);opacity:0;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.org-person:hover .org-person-actions,.org-person:focus-within .org-person-actions{opacity:1}}.org-node:not(:has(>.org-level))>.org-card-slot{flex:1;display:flex}.org-node:not(:has(>.org-level))>.org-card-slot>.org-card{flex:1}.org-card-empty{color:var(--faint);font-size:var(--text-sm);margin:0;padding:10px 12px 12px}.org-card-actions{border-top:1px solid var(--line);justify-content:flex-end;gap:2px;padding:4px 6px;display:flex}.org-card-actions .icon-button{width:30px;height:30px}.org-card-actions .org-card-move{gap:2px;margin-right:auto;display:flex}.roster-team-chart{grid-column:1/-1}.roster-unassigned{color:var(--faint);font-size:var(--text-sm);padding:4px 18px 12px;font-style:italic}.structure-intro{max-width:70ch;color:var(--muted);margin:-6px 0 18px;line-height:1.5}.structure-intro a{color:var(--accent)}.structure-teams{gap:18px;display:grid}.structure-team{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);overflow:hidden}.structure-team-head{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:flex-end;gap:12px 24px;padding:16px 18px;display:flex}.structure-team-head .field{margin-bottom:0}.structure-name{flex:1;align-items:flex-end;gap:8px;min-width:min(100%,300px);display:flex}.structure-name .field{flex:1}.structure-team>footer{border-top:1px solid var(--line);padding:12px 18px 16px}.back-link{color:var(--muted);font-size:var(--text-md);align-items:center;gap:6px;margin-bottom:14px;font-weight:500;text-decoration:none;display:inline-flex}.back-link:hover{color:var(--ink)}.audit-head{align-items:center;gap:14px;margin-bottom:22px;display:flex}.audit-head h1{font-size:var(--text-2xl);letter-spacing:-.03em;white-space:normal;overflow-wrap:anywhere;font-weight:700;line-height:1.1}.audit-head .row-main span{white-space:normal}.audit-filters{flex-wrap:wrap}.date-range{gap:8px;display:flex}.date-range label{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--raised);height:44px;color:var(--muted);font-size:var(--text-sm);align-items:center;gap:8px;padding:0 4px 0 12px;display:flex}.date-range label:focus-within{border-color:var(--accent);box-shadow:var(--focus)}.date-range input{color:var(--ink);font-size:var(--text-md);background:0 0;border:0;outline:0;min-width:0}.audit-count{color:var(--muted);font-size:var(--text-sm);align-items:center;gap:12px;margin:-4px 0 10px;display:flex}.audit-row{border-bottom:1px solid var(--line);align-items:flex-start;gap:12px;padding:13px 18px;display:flex}.audit-row:last-child{border-bottom:0}.audit-row .row-main span.audit-notes{color:var(--ink);white-space:normal;margin-top:5px}.trash-intro{color:var(--muted);font-size:var(--text-md);margin:-6px 0 14px}.trash-type{background:var(--subtle);vertical-align:1px;border-radius:6px;margin-left:8px;padding:2px 7px;font-weight:600;color:var(--muted)!important;font-size:var(--text-xs)!important;display:inline!important}.trash-actions{flex:none;align-items:center;gap:4px;display:flex}@media (max-width:768px){.org-chart{--org-gap:18px;padding:14px 12px 16px}.org-card{width:156px}.roster-grid{grid-template-columns:minmax(0,1fr)}.roster-date{flex-wrap:wrap}.roster-date-picker{flex:1;justify-content:center}.roster-empty-note{flex-direction:column;align-items:stretch}.roster-member{padding-left:14px}.audit-head{flex-wrap:wrap}.audit-head h1{font-size:1.625rem}.audit-head .button,.date-range{width:100%}.date-range label{flex:1}.audit-row{padding:12px 14px}.trash-row{flex-wrap:wrap}.trash-row .row-meta{max-width:none}.trash-actions{width:100%;padding-left:46px}.trash-actions .button{flex:1}.confirm-actions{flex-direction:column-reverse}.confirm-actions .button{width:100%}.button-quiet-danger span{display:none}.sheet>footer .button-quiet-danger{flex:none;width:44px;padding:0}}.login{--login-frame:12px;background:var(--canvas);grid-template:"photo""side"1fr/minmax(0,1fr);min-height:100dvh;display:grid}.login-side{z-index:1;padding:26px 20px max(20px, env(safe-area-inset-bottom));background:var(--surface);border-radius:22px 22px 0 0;flex-direction:column;grid-area:side;margin-top:-22px;display:flex;position:relative;box-shadow:0 -10px 30px -18px #06242c59}.login-brand{font-size:var(--text-base);letter-spacing:-.01em;color:var(--ink);align-items:center;gap:10px;font-weight:650;display:flex}.login-brand img{border-radius:9px;width:32px;height:32px}.login-side>*{width:min(420px,100%);margin-inline:auto}.login-form{padding:28px 0 36px}.login-form h1{letter-spacing:-.03em;text-wrap:balance;overflow-wrap:anywhere;margin-bottom:26px;font-size:1.75rem;font-weight:700;line-height:1.15}.login-error{align-items:flex-start;gap:10px;display:flex}.login-error svg{flex:none;margin-top:1px}.login-form .password-field button{min-width:44px;color:var(--muted);place-items:center;display:grid}.login-form .password-field button:hover{color:var(--ink);background:var(--subtle)}.login-submit{min-height:50px;font-size:var(--text-base);margin-top:8px}.login-foot{color:var(--muted);font-size:var(--text-sm);margin-top:auto}.login-photo{background:#18586a;grid-area:photo;height:clamp(190px,36svh,360px);margin:0;position:relative;overflow:hidden}.login-photo img{object-fit:cover;object-position:50% 62%;width:100%;height:100%;animation:2.4s cubic-bezier(.16,1,.3,1) both login-settle;position:absolute;inset:0}.login-photo figcaption{display:none}@keyframes login-settle{0%{transform:scale(1.06)}}@media (min-width:640px) and (max-width:999px){.login-side{padding:34px 32px 24px}.login-form{padding-top:40px}.login-photo img{object-position:50% 40%}}@media (min-width:1000px){.login{padding:var(--login-frame);grid-template:"side photo"minmax(0,1fr)/minmax(440px,5fr) 7fr}.login-side{min-height:calc(100dvh - var(--login-frame) * 2);box-shadow:none;background:0 0;border-radius:0;margin-top:0;padding:clamp(20px,3vh,36px) clamp(36px,4.5vw,72px)}.login-side>*{margin-inline:0}.login-brand,.login-foot{width:auto}.login-form{width:min(380px,100%);margin-block:auto;padding:40px 0}.login-form h1{font-size:var(--text-2xl);margin-bottom:30px}.login-photo{height:auto;min-height:calc(100dvh - var(--login-frame) * 2);border-radius:22px;margin:0}.login-photo img{object-position:50% 30%}.login-photo figcaption{color:#f7faf9db;font-size:var(--text-sm);text-shadow:0 1px 12px #06242c73;font-weight:500;display:block;position:absolute;bottom:20px;left:24px}}@media (prefers-reduced-motion:reduce){.login-photo img{animation:none}}:root :is(.movement-glyph,.duty-today-icon,.metric-icon,.scan-direction-icon,.scan-idle-icon,.team-card-icon){flex:none;place-items:center;margin:0;line-height:0;display:grid}:root :is(.leader-badge,.guest-badge,.team-badge){color:var(--muted);font-size:var(--text-sm);font-weight:500;line-height:inherit;vertical-align:baseline;white-space:nowrap;background:0 0;border-radius:0;margin:0 0 0 8px;padding:0;display:inline}:root :is(.leader-badge,.guest-badge,.team-badge)+:is(.leader-badge,.guest-badge,.team-badge){margin-left:0}:root :is(.leader-badge,.guest-badge,.team-badge)+:is(.leader-badge,.guest-badge,.team-badge):before{content:" · "}:root .team-state{font-size:var(--text-sm);color:var(--muted);background:0 0;border-radius:0;padding:0;font-weight:600}:root .team-state-at-minimum{color:var(--warning)}:root .team-state-below{color:var(--danger)}:root .trip-direction-badge{min-height:0;color:var(--muted);background:0 0;border-radius:0;padding:0;font-weight:600}:root .segmented-count{min-width:0;height:auto;color:var(--muted);background:0 0;border-radius:0;padding:0;font-weight:600}:root .roster-today-label,:root .qr-pass-status{background:0 0;border-radius:0;padding:0;font-weight:600;color:var(--muted)!important}:root .import-steps{gap:4px 18px}:root .import-steps li{color:var(--faint);background:0 0;border-radius:0;padding:0}:root .import-steps li:before{content:counter(step) ".";width:auto;height:auto;color:inherit;font-size:inherit;background:0 0;border-radius:0}:root .import-steps li.current{color:var(--ink);background:0 0}:root .import-steps li.current:before{color:inherit;background:0 0}:root .import-steps li.done{color:var(--muted)}:root :is(.team-card-icon,.roster-team-icon,.roster-ert,.roster-first-aid){background:var(--subtle);color:var(--muted)}:root .team-card-below,:root .team-card-below:hover{background:var(--surface)}:root .team-card-below .team-card-icon{background:var(--subtle);color:var(--danger)}.empty-state h3,.empty-state p,.confirm h2,.confirm-body{overflow-wrap:anywhere}.g-status{font-size:var(--text-sm);color:var(--ink);white-space:nowrap;align-items:center;gap:7px;font-weight:600;display:inline-flex}.g-status:before{content:"";background:var(--faint);border-radius:50%;flex:none;width:7px;height:7px}.g-status-ok:before{background:var(--accent)}.g-status-busy:before{background:#b47835}.g-status-bad:before{background:var(--danger)}.g-status-bad{color:var(--danger)}.g-muted{color:var(--muted);font-weight:400}.g-auth{place-items:center;min-height:100dvh;padding:24px 16px;display:grid}.g-auth-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);width:100%;max-width:420px;padding:28px 24px 24px}.g-auth-brand{align-items:center;gap:12px;margin-bottom:22px;display:flex}.g-auth-brand strong{font-size:var(--text-lg);font-weight:650;display:block}.g-auth-brand span{color:var(--muted);font-size:var(--text-sm)}.g-auth-card h1{font-size:var(--text-xl);letter-spacing:-.02em;margin-bottom:6px;font-weight:650}.g-auth-card>p{color:var(--muted);margin-bottom:18px;line-height:1.5}.g-qr{align-items:center;gap:16px;margin-bottom:18px;display:flex}.g-qr svg{border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;flex:none;padding:8px}.g-secret{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:var(--text-sm);word-break:break-all;color:var(--muted)}.g-codes{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--raised);font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:var(--text-md);grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px;margin-bottom:18px;padding:14px;display:grid}.g-resort-row{border-bottom:1px solid var(--line);min-height:68px;color:inherit;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr) 20px;align-items:center;gap:16px;padding:12px 18px;text-decoration:none;display:grid}.g-resort-row:last-child{border-bottom:0}.g-resort-row:hover{background:var(--hover)}.g-cell{min-width:0}.g-cell>strong,.g-cell>span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.g-cell strong{font-size:var(--text-base);font-weight:600}.g-cell>span{color:var(--muted);font-size:var(--text-sm);margin-top:3px}.g-cell>.g-status{color:var(--ink);font-size:var(--text-md);margin:0 0 3px;display:flex}.g-cell>.g-status-bad{color:var(--danger)}.g-row-arrow{color:var(--faint)}.g-invoice-row{border-bottom:1px solid var(--line);text-align:left;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) minmax(0,1fr) auto;align-items:center;gap:16px;width:100%;min-height:64px;padding:12px 18px;display:grid}.g-invoice-row:last-child{border-bottom:0}.g-invoice-row:hover{background:var(--hover)}.g-amount{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-weight:600}.g-span-all{grid-column:1/-1}.g-confirm-input{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--raised);width:100%;min-height:44px;font-size:var(--text-md);resize:vertical;margin-top:12px;padding:10px 12px}.g-confirm-input:focus{border-color:var(--accent);box-shadow:var(--focus);outline:none}.g-detail-head{margin-bottom:18px}.g-detail-head p{color:var(--muted);overflow-wrap:anywhere;margin-top:6px}.g-detail-head a{color:var(--accent)}.g-tabs{border-bottom:1px solid var(--line);scrollbar-width:none;gap:4px;margin-bottom:22px;display:flex;overflow-x:auto}.g-tabs a{color:var(--muted);white-space:nowrap;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 12px;font-weight:500;text-decoration:none}.g-tabs a:hover{color:var(--ink)}.g-tabs a.active{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}.g-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;display:grid}.g-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);min-width:0;padding:18px}.g-card h2{font-size:var(--text-base);margin-bottom:4px;font-weight:650}.g-card>p{color:var(--muted);line-height:1.5;font-size:var(--text-md)}.g-card .detail-list{margin-top:14px}.g-actions{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.g-steps{margin-top:12px;display:grid}.g-step{border-top:1px solid var(--line);grid-template-columns:22px minmax(0,1fr);gap:10px;padding:12px 0;display:grid}.g-step:first-child{border-top:0}.g-step-icon{color:var(--faint);margin-top:1px}.g-step-done .g-step-icon{color:var(--accent)}.g-step-failed .g-step-icon{color:var(--danger)}.g-step strong{font-weight:600;display:block}.g-step span,.g-step pre{color:var(--muted);font-size:var(--text-sm)}.g-pre{background:var(--raised);border:1px solid var(--line);border-radius:var(--radius-sm);font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:var(--text-sm);white-space:pre-wrap;overflow-wrap:anywhere;max-height:320px;margin:8px 0 0;padding:12px;line-height:1.55;overflow:auto}.g-secret-box{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--raised);margin:14px 0;padding:14px}.g-secret-box dt{color:var(--muted);font-size:var(--text-sm)}.g-secret-box dd{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:var(--text-base);word-break:break-all;margin:2px 0 10px;font-weight:600}.g-secret-box dd:last-child{margin-bottom:0}.g-table{border-collapse:collapse;width:100%;font-size:var(--text-md)}.g-table th{text-align:left;color:var(--muted);font-weight:500;font-size:var(--text-sm);border-bottom:1px solid var(--line);padding:8px 0}.g-table td{border-bottom:1px solid var(--line);vertical-align:top;padding:10px 0}.g-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;padding-left:12px}.g-totals{font-variant-numeric:tabular-nums;grid-template-columns:1fr auto;gap:6px 16px;max-width:320px;margin:14px 0 0 auto;display:grid}.g-totals dt{color:var(--muted)}.g-totals dd{text-align:right}.g-totals .g-total{color:var(--ink);font-weight:700}.g-filter-bar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:14px;display:flex}.g-filter-bar .search-box{flex:1}.g-notice{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);align-items:flex-start;gap:10px;margin-bottom:16px;padding:12px 14px;line-height:1.5;display:flex}.g-notice svg{color:#b47835;flex:none;margin-top:2px}.g-notice-bad svg{color:var(--danger)}.g-section-gap{margin-top:16px}@media (max-width:900px){.g-resort-row{grid-template-columns:minmax(0,1fr) auto}.g-resort-row .g-cell-billing,.g-resort-row .g-row-arrow{display:none}.g-grid{grid-template-columns:minmax(0,1fr)}.g-invoice-row{grid-template-columns:minmax(0,1fr) auto}.g-invoice-row .g-cell-period{display:none}}@media (max-width:480px){.g-resort-row{grid-template-columns:minmax(0,1fr);gap:6px}.g-invoice-row .g-cell-resort{display:none}.g-codes{grid-template-columns:1fr}}.g-fieldset{border:0;min-width:0;margin:0;padding:0}.g-fieldset .checkbox{margin-bottom:10px}.g-actions-tight{flex-wrap:nowrap;margin-top:0}.g-small-status{font-size:var(--text-sm);font-weight:500;display:none}@media (max-width:900px){.g-small-status{display:block}}@media (max-width:600px){.team-minimum-row .g-actions-tight{flex-wrap:wrap}}.g-table code{font-size:var(--text-sm);overflow-wrap:anywhere}
