.rpt{--rpt-mono:ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--rpt-good:var(--color-success);--rpt-bad:var(--color-danger);--rpt-warn:var(--color-warning);flex-direction:column;gap:1rem;display:flex}.rpt-eyebrow{font-family:var(--rpt-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-muted);margin:0 0 .35rem;font-size:.68rem}.rpt-strip{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface-alt);flex-wrap:wrap;align-items:center;gap:.5rem .75rem;padding:.55rem .9rem;display:flex}.rpt-strip .rpt-date{font-family:var(--rpt-mono);letter-spacing:.04em;font-size:.85rem}.rpt-strip .rpt-title{font-weight:600}.rpt-strip .rpt-lead{flex-basis:100%;margin:0;font-size:.95rem}.rpt-strip .rpt-lead b{color:var(--color-primary);font-weight:600}.rpt-nights{align-items:flex-end;gap:3px;height:34px;display:flex}.rpt-night{cursor:pointer;background:0 0;border:0;border-radius:3px;flex-direction:column;flex:1;justify-content:flex-end;min-width:10px;height:100%;padding:0;display:flex}.rpt-night span{background:var(--color-border);border-radius:2px;width:100%;min-height:2px;display:block}.rpt-night.observed span{background:color-mix(in srgb, var(--color-primary) 55%, transparent)}.rpt-night.active span{background:var(--color-primary)}.rpt-night:focus-visible{outline:2px solid var(--color-primary)}.rpt-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}@media (width<=720px){.rpt-grid{grid-template-columns:1fr}}.rpt-card{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius);min-width:0;padding:1rem 1.1rem}.rpt-card h3{align-items:center;gap:.45rem;margin:0 0 .6rem;font-size:1rem;display:flex}.rpt-card h3 .ic{color:var(--rpt-bad);font-size:.9rem}.rpt-card p{color:var(--color-text-muted);margin:.5rem 0 0;font-size:.9rem}.rpt-card p.strong{color:var(--color-text)}.rpt-big{font-family:var(--rpt-mono);color:var(--rpt-good);margin:.2rem 0 .15rem;font-size:1.9rem;line-height:1.1}.rpt-big.bad{color:var(--rpt-bad)}.rpt-big.muted{color:var(--color-text-muted);font-size:1.2rem}.rpt-sub{font-family:var(--rpt-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);font-size:.7rem}.rpt-sub b{color:var(--color-text);font-weight:600}.rpt-chips{flex-wrap:wrap;gap:.4rem;margin-top:.6rem;display:flex}.rpt-chip{font-family:var(--rpt-mono);letter-spacing:.04em;border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:999px;padding:.15rem .55rem;font-size:.7rem}.rpt-chip.on{color:var(--rpt-bad);border-color:color-mix(in srgb, var(--rpt-bad) 50%, transparent);background:color-mix(in srgb, var(--rpt-bad) 12%, transparent)}.rpt-tables{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.5rem;margin-top:.5rem;display:grid}.rpt-table{border-radius:calc(var(--radius) - 2px);border:1px solid var(--color-border);background:color-mix(in srgb, var(--rpt-bad) calc(var(--heat) * 55%), var(--color-surface));min-width:0;padding:.6rem .7rem}.rpt-table .l{font-family:var(--rpt-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.62rem;overflow:hidden}.rpt-table .v{font-family:var(--rpt-mono);margin:.15rem 0 .1rem;font-size:1.35rem}.rpt-table .c{font-family:var(--rpt-mono);color:var(--color-text-muted);font-size:.68rem}.rpt-bars{flex-direction:column;gap:.3rem;margin-top:.6rem;display:flex}.rpt-bar{font-family:var(--rpt-mono);color:var(--color-text-muted);grid-template-columns:3rem minmax(0,1fr) 2.2rem auto;align-items:center;gap:.6rem;font-size:.7rem;display:grid}.rpt-bar .track{background:color-mix(in srgb, var(--color-border) 50%, transparent);border-radius:3px;height:12px;overflow:hidden}.rpt-bar .fill{background:var(--rpt-good);border-radius:3px;height:100%}.rpt-bar.short .fill{background:var(--rpt-bad)}.rpt-bar .n{text-align:end;color:var(--color-text)}.rpt-bar .note{letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.rpt-bar.short .note{color:var(--rpt-bad)}.rpt-calc{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem;display:grid}@media (width<=860px){.rpt-calc{grid-template-columns:1fr}}.rpt-slider{margin:0 0 .85rem}.rpt-slider .row{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.rpt-slider label{font-family:var(--rpt-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);font-size:.66rem}.rpt-slider .val{font-family:var(--rpt-mono);font-size:.85rem}.rpt-slider .src{font-family:var(--rpt-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary);margin-inline-start:.4rem;font-size:.6rem}.rpt-slider input[type=range]{width:100%;accent-color:var(--rpt-bad);margin:.25rem 0 0}.rpt-assume{border:1px solid color-mix(in srgb, var(--rpt-bad) 55%, transparent);border-radius:var(--radius);margin-top:.4rem;padding:.8rem .9rem}.rpt-assume .rpt-eyebrow{color:var(--rpt-bad)}.rpt-answer{border:1px solid var(--rpt-bad);border-radius:var(--radius);background:var(--color-surface-alt);padding:1rem 1.1rem}.rpt-answer .amount{font-family:var(--rpt-mono);margin:.2rem 0 .1rem;font-size:2.2rem;line-height:1}.rpt-answer .facts{border-top:1px solid var(--color-border);grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;margin-top:.9rem;padding-top:.7rem;display:grid}.rpt-answer .facts .v{font-family:var(--rpt-mono);font-size:.95rem}.rpt-answer .facts .v.good{color:var(--rpt-good)}.rpt-lines{margin-top:1rem}.rpt-line{border-bottom:1px solid color-mix(in srgb, var(--color-border) 60%, transparent);justify-content:space-between;gap:1rem;padding:.45rem 0;font-size:.85rem;display:flex}.rpt-line .w{font-family:var(--rpt-mono);color:var(--color-text-muted);margin-top:.15rem;font-size:.66rem}.rpt-line .v{font-family:var(--rpt-mono);white-space:nowrap}.rpt-line.em{font-weight:600}.rpt-line.em .v{color:var(--rpt-bad)}.rpt-tbl{border-collapse:collapse;width:100%;margin-top:.5rem;font-size:.82rem}.rpt-tbl th{text-align:start;font-family:var(--rpt-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);padding:.3rem .5rem .3rem 0;font-size:.62rem;font-weight:500}.rpt-tbl td{border-bottom:1px solid color-mix(in srgb, var(--color-border) 50%, transparent);vertical-align:top;padding:.35rem .5rem .35rem 0}.rpt-tbl td.num{font-family:var(--rpt-mono);text-align:end;white-space:nowrap}.rpt-tbl th.num{text-align:end}.rpt-trail-filters{flex-wrap:wrap;gap:.35rem;margin:.4rem 0 .2rem;display:flex}.rpt-trail-filters button{font-family:var(--rpt-mono);letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;background:0 0;border-radius:999px;padding:.2rem .6rem;font-size:.66rem}.rpt-trail-filters button.on{color:var(--color-text);border-color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 15%, transparent)}.rpt-trail-row td.t{font-family:var(--rpt-mono);white-space:nowrap;color:var(--color-text-muted)}.rpt-trail-row td.k{font-family:var(--rpt-mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;font-size:.66rem}.rpt-trail-row.alert_fired td.k,.rpt-trail-row.escalated td.k,.rpt-trail-row.dirty td.k{color:var(--rpt-bad)}.rpt-trail-row.escalated td.k{font-weight:700}.rpt-trail-row.alert_resolved td.k,.rpt-trail-row.staff_visit td.k{color:var(--rpt-good)}.rpt-trail-row.audit td.k{color:var(--color-primary)}.rpt-empty{border:1px dashed var(--color-border);border-radius:var(--radius);text-align:center;color:var(--color-text-muted);padding:1.5rem}.rpt-foot{color:var(--color-text-muted);margin:0;font-size:.8rem}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-sans);background:var(--color-surface);color:var(--color-text);-webkit-font-smoothing:antialiased}a{color:var(--color-primary)}h1,h2,h3{letter-spacing:-.01em}p{line-height:1.5}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.muted{color:var(--color-text-muted)}.stack{flex-direction:column;gap:.75rem;display:flex}.card{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem}button{cursor:pointer;font-family:inherit}.btn{border-radius:calc(var(--radius) * .7);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:.4rem;padding:.55rem 1rem;font-size:.9rem;font-weight:600;transition:transform .12s,background-color .15s,border-color .15s,box-shadow .15s;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{box-shadow:0 4px 14px color-mix(in srgb, var(--color-primary) 45%, transparent);filter:brightness(1.08)}.btn-outline{border-color:var(--color-border);color:var(--color-text);background:0 0}.btn-outline:hover{border-color:var(--color-primary);color:var(--color-primary)}.btn-sm{min-height:34px;padding:.4rem .7rem;font-size:.8rem}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.input,select{color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:calc(var(--radius) * .6);min-height:40px;padding:.6rem .7rem;font-family:inherit;font-size:.9rem;transition:border-color .15s}.input:focus,select:focus{border-color:var(--color-primary)}.input::placeholder{color:var(--color-text-muted)}.badge{border-radius:999px;align-items:center;gap:.3rem;padding:.2rem .6rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge-info{background:color-mix(in srgb, var(--color-primary) 20%, transparent);color:var(--color-primary)}.badge-warning{background:color-mix(in srgb, var(--color-warning) 25%, transparent);color:var(--color-warning)}.badge-error{background:color-mix(in srgb, var(--color-danger) 25%, transparent);color:var(--color-danger)}.badge-opportunity,.badge-success{background:color-mix(in srgb, var(--color-success) 25%, transparent);color:var(--color-success)}.app-logo{background:url(/favicon.svg) 50%/contain no-repeat;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;display:inline-flex}.nav-link{color:var(--color-text-muted);border-radius:999px;align-items:center;padding:.4rem .75rem;font-size:.9rem;font-weight:500;text-decoration:none;transition:background-color .15s,color .15s;display:inline-flex}.nav-link:hover{color:var(--color-text);background:var(--color-surface-alt)}.nav-link.active{color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 14%, transparent)}.role-grid{text-align:start;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.85rem;display:grid}.role-card{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius);text-align:start;color:var(--color-text);align-items:flex-start;gap:.85rem;padding:1.1rem;transition:border-color .15s,transform .15s,box-shadow .15s;display:flex}.role-card:hover,.role-card:focus-visible{border-color:var(--color-primary);box-shadow:0 8px 20px color-mix(in srgb, var(--color-primary) 18%, transparent);transform:translateY(-2px)}.role-card-icon{border-radius:calc(var(--radius) * .7);background:color-mix(in srgb, var(--color-primary) 16%, transparent);flex-shrink:0;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;font-size:1.3rem;display:flex}.role-card-title{margin:0 0 .2rem;font-weight:700}.role-card-desc{color:var(--color-text-muted);margin:0;font-size:.85rem;line-height:1.4}.app-bar{border-bottom:1px solid var(--color-border);padding:calc(env(safe-area-inset-top,0px) + .45rem) 1rem .25rem;z-index:10;background:var(--color-surface);flex:none;position:relative}.app-bar-row{align-items:center;gap:.6rem;max-width:960px;margin:0 auto;display:flex}.app-bar-who{flex-direction:column;flex:1;min-width:0;line-height:1.15;display:flex}.app-bar-who .muted{white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;overflow:hidden}.app-bar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.35rem;display:flex}.app-bar-tabs{flex-wrap:wrap;row-gap:.35rem;margin-top:.35rem}.app-tabs{white-space:nowrap;scrollbar-width:none;flex:auto;gap:.25rem;display:flex;overflow-x:auto}.app-bar-tools{align-items:center;gap:.4rem;margin-inline-start:auto;display:flex}.notify-note{top:110%;z-index:20;background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:8px;width:max-content;max-width:70vw;padding:.4rem .6rem;font-size:.8rem;position:absolute;inset-inline-end:0;box-shadow:0 4px 14px #00000040}.case-timeline{border-inline-start:2px solid var(--color-border);margin:0;padding:0;list-style:none}.case-timeline li{padding:.3rem 0;padding-inline-start:.8rem;position:relative}.case-timeline li strong{font-variant-numeric:tabular-nums;margin-inline-end:.4rem}@media (width<=640px){.btn-sm{min-height:2.25rem}}.waiter-counts{grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:.75rem;display:grid}.count-tile{border:1px solid var(--color-border);text-align:center;background:var(--color-surface-alt);border-radius:10px;padding:.5rem .25rem}.count-tile b{font-size:1.6rem;line-height:1.1;display:block}.count-tile span{color:var(--color-text-muted);font-size:.8rem}.count-hot{border-color:var(--color-danger)}.count-hot b{color:var(--color-danger)}details>summary{cursor:pointer;padding:.35rem 0}.crew-board{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.5rem;display:grid}.crew-chip{border:1px solid var(--color-border);background:var(--color-surface-alt);border-radius:10px;flex-direction:column;min-width:0;padding:.45rem .6rem;display:flex}.crew-chip span{color:var(--color-text-muted);font-size:.8rem}.crew-late{border-color:var(--color-warning)}.health-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.75rem;display:grid}.health-card{border:1px solid var(--color-border);background:var(--color-surface-alt);border-radius:10px;min-width:0;overflow:hidden}.health-down{border-color:var(--color-danger)}.health-frame{aspect-ratio:16/9;object-fit:cover;background:#000;width:100%;display:block}.health-frame-empty{color:var(--color-text-muted);justify-content:center;align-items:center;font-size:.85rem;display:flex}.health-body{flex-direction:column;gap:.15rem;min-width:0;padding:.5rem .65rem .6rem;display:flex}.health-name,.health-line{text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;overflow:hidden}.form-grid{gap:.6rem;max-width:520px;margin-top:.6rem;display:grid}.form-grid label{gap:.2rem;font-size:.85rem;display:grid}.form-grid input,.form-grid select{width:100%}.swipe-row{border-radius:var(--radius);position:relative;overflow:clip}.swipe-card{touch-action:pan-y;will-change:transform;position:relative}.swipe-hint{border-radius:var(--radius);opacity:0;align-items:center;padding:0 1.25rem;font-weight:700;transition:opacity .12s,background-color .12s;display:flex;position:absolute;inset:0}.swipe-hint-ack{color:var(--color-success);background:color-mix(in srgb, var(--color-success) 16%, var(--color-surface));justify-content:flex-start}.swipe-hint-open{color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 14%, var(--color-surface));justify-content:flex-end}.swipe-to-ack .swipe-hint-ack,.swipe-to-open .swipe-hint-open{opacity:1}.swipe-armed.swipe-to-ack .swipe-hint-ack{color:#fff;background:var(--color-success)}.swipe-armed.swipe-to-open .swipe-hint-open{color:#fff;background:var(--color-primary)}.case-pager{touch-action:pan-y;max-width:640px;margin:0 auto;overflow-x:clip}.case-nav{justify-content:space-between;align-items:center;gap:.5rem;min-height:2.5rem;display:flex}.case-back{white-space:nowrap;font-size:.9rem}.case-nav-pages{align-items:center;gap:.35rem;display:inline-flex}.case-nav-btn{justify-content:center;min-width:2.5rem;min-height:2.5rem;padding:0;font-size:1.25rem;line-height:1}.case-count{text-align:center;font-variant-numeric:tabular-nums;min-width:4.5rem;color:var(--color-text-muted);font-size:.9rem}.case-slide{will-change:transform}.case-enter-next{animation:.22s cubic-bezier(.2,.8,.2,1) case-in-next}.case-enter-prev{animation:.22s cubic-bezier(.2,.8,.2,1) case-in-prev}@keyframes case-in-next{0%{opacity:0;transform:translate(40%)}}@keyframes case-in-prev{0%{opacity:0;transform:translate(-40%)}}[dir=rtl] .case-enter-next{animation-name:case-in-prev}[dir=rtl] .case-enter-prev{animation-name:case-in-next}.alert-banner{z-index:50;top:calc(env(safe-area-inset-top,0px) + .5rem);background:var(--color-surface);width:min(560px,100% - 1rem);color:var(--color-text);border:1px solid var(--color-border);border-inline-start:5px solid var(--color-primary);border-radius:var(--radius);align-items:stretch;animation:.26s cubic-bezier(.2,.9,.3,1.2) banner-in;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #00000047}.alert-banner-urgent{border-inline-start-color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 10%, var(--color-surface))}.alert-banner-leaving{animation:.22s ease-in forwards banner-out}@keyframes banner-in{0%{transform:translate(-50%,calc(-100% - 1.5rem))}}@keyframes banner-out{to{opacity:0;transform:translate(-50%,calc(-100% - 1.5rem))}}.alert-banner-body{min-width:0;color:inherit;font:inherit;text-align:start;cursor:pointer;background:0 0;border:0;flex:1;align-items:flex-start;gap:.65rem;padding:.7rem .4rem .7rem .75rem;display:flex}.alert-banner-icon{font-size:1.4rem;line-height:1.2}.alert-banner-text{flex-direction:column;gap:.1rem;min-width:0;display:flex}.alert-banner-text strong{color:var(--color-primary)}.alert-banner-urgent .alert-banner-text strong{color:var(--color-danger)}.alert-banner-text span{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.9rem;display:-webkit-box;overflow:hidden}.alert-banner-text small{color:var(--color-text-muted)}.alert-banner-close{color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;padding:0 .85rem;font-size:1.4rem}.sound-toggle{justify-content:center;min-width:2.25rem}@media (prefers-reduced-motion:reduce){.case-enter-next,.case-enter-prev,.alert-banner,.alert-banner-leaving{animation:none}.alert-banner-leaving{opacity:0}.swipe-hint{transition:none}}.swipe-card:focus-visible{outline-offset:-2px}.alert-list{container-type:inline-size}.alert-grid{grid-template-columns:minmax(0,1fr);align-items:start;gap:.75rem;display:grid}@container (width>=700px){.alert-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.alert-grid>.swipe-row-wide{grid-column:1/-1}}.alert-sev-info{--sev:var(--color-primary)}.alert-sev-warning{--sev:var(--color-warning)}.alert-sev-error{--sev:var(--color-danger)}.alert-sev-opportunity{--sev:var(--color-success)}.alert-card{border-inline-start:4px solid var(--sev);cursor:pointer;flex-direction:column;gap:.55rem;padding:.85rem .9rem .75rem;display:flex}.alert-card-closed{border-inline-start-color:var(--color-border)}.alert-card-head{align-items:flex-start;gap:.7rem;display:flex}.alert-card-icon{border-radius:calc(var(--radius) * 1.2);background:color-mix(in srgb, var(--sev) 16%, transparent);flex:none;place-items:center;width:2.5rem;height:2.5rem;font-size:1.3rem;display:grid}.alert-card-closed .alert-card-icon{filter:grayscale(.6);opacity:.75}.alert-card-title{flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.alert-card-title strong{font-size:1rem;line-height:1.25}.alert-card-where{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;overflow:hidden}.alert-card-age{font-variant-numeric:tabular-nums;color:var(--sev);flex:none;padding-top:.1rem;font-size:.8rem;font-weight:600}.alert-card-closed .alert-card-age{color:var(--color-text-muted);font-weight:400}.alert-card-msg{margin:0;font-size:.95rem;line-height:1.4}.alert-card-chips{flex-wrap:wrap;gap:.35rem;display:flex}.alert-card-note{color:var(--color-text-muted);margin:0;font-size:.78rem}.alert-card-foot{border-top:1px solid var(--color-border);flex-wrap:wrap;align-items:center;gap:.5rem;padding-top:.55rem;display:flex}.alert-card-foot-end{justify-content:flex-end}.alert-card-links{gap:.25rem;display:inline-flex}.alert-card-link{min-height:2.25rem;font:inherit;color:var(--color-text-muted);border-radius:calc(var(--radius) * .7);cursor:pointer;background:0 0;border:0;align-items:center;gap:.4rem;margin-inline-start:-.6rem;padding:0 .6rem;font-size:.85rem;font-weight:600;text-decoration:none;display:inline-flex}.alert-card-link+.alert-card-link{margin-inline-start:0}.alert-card-link:hover{color:var(--color-primary)}.live-dot{background:var(--color-success);width:.5rem;height:.5rem;box-shadow:0 0 0 0 color-mix(in srgb, var(--color-success) 60%, transparent);border-radius:50%;animation:1.8s infinite live-pulse}@keyframes live-pulse{70%{box-shadow:0 0 0 .45rem #0000}}.alert-card-actions{gap:.4rem;margin-inline-start:auto;display:flex}.alert-card-actions .btn{justify-content:center}@container (width<=460px){.alert-card-actions{flex:100%;margin-inline-start:0}.alert-card-actions .btn{flex:1;min-height:2.75rem;font-size:.95rem}}.waiter-page{max-width:560px;margin:0 auto}@media (width>=768px){.waiter-page,.case-pager{max-width:900px}.waiter-counts{max-width:560px}.alert-banner{left:auto;right:auto;width:420px;animation-name:banner-in-side;inset-inline-end:1rem;transform:none}.alert-banner-leaving{animation-name:banner-out-side}}@keyframes banner-in-side{0%{transform:translateY(calc(-100% - 1.5rem))}}@keyframes banner-out-side{to{opacity:0;transform:translateY(calc(-100% - 1.5rem))}}@media (prefers-reduced-motion:reduce){.live-dot{animation:none}.alert-banner{animation:none!important}}.app-shell{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.app-main{overscroll-behavior:contain;scrollbar-gutter:stable;flex:1;min-height:0;overflow:hidden auto}.app-main-inner{max-width:960px;padding:1rem 1rem calc(env(safe-area-inset-bottom,0px) + 1.25rem);margin:0 auto}*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--color-text-muted) 45%, transparent) transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--color-text-muted) 45%, transparent);border-radius:3px}::-webkit-scrollbar-track{background:0 0}@media (width<=640px){.app-main-inner{padding:.75rem .75rem calc(env(safe-area-inset-bottom,0px) + 1rem)}.app-bar{padding-inline:.75rem}}.login-screen{box-sizing:border-box;max-width:900px;min-height:100dvh;padding:calc(env(safe-area-inset-top,0px) + clamp(.75rem, 4vh, 3rem)) 1rem clamp(.75rem, 3vh, 2rem);text-align:center;flex-direction:column;justify-content:center;margin:0 auto;display:flex}.login-screen>p{margin:0 0 clamp(.4rem,1.6vh,1rem)}.login-brand{justify-content:center;align-items:center;gap:.6rem;margin-bottom:clamp(.25rem,1.2vh,.75rem);display:flex}.login-brand .app-logo{width:clamp(1.75rem,4.5vh,2.25rem);height:clamp(1.75rem,4.5vh,2.25rem)}.login-brand h1{margin:0;font-size:clamp(1.4rem,4vh,1.9rem)}.login-screen .role-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(.5rem,1.4vh,.85rem)}.login-screen .role-card{flex-direction:column;gap:.45rem;padding:clamp(.7rem,1.8vh,1.1rem)}.login-screen .role-card-desc{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}@media (width>=900px){.login-screen .role-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=380px),(height<=700px){.login-screen .role-card-desc{-webkit-line-clamp:2;font-size:.78rem}.login-screen .role-card-icon{width:2.25rem;height:2.25rem;font-size:1.1rem}}@media (height<=600px){.login-screen .role-card-desc{display:none}}
