@import url("https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800&family=Sora:wght@600;700;800&display=swap");:root{--bg:#fff7f0;--bg-accent:#ffe4cc;--surface:hsla(0,0%,100%,.9);--surface-solid:#fff;--ink:#1a1410;--muted:#7a6558;--line:rgba(26,20,16,.1);--brand:#ff7a00;--brand-deep:#e85d00;--brand-soft:#ffe8d6;--warn:#b42318;--shadow:0 12px 32px rgba(232,93,0,.12);--radius:18px;--font:"Outfit",sans-serif;--display:"Sora",sans-serif;--safe-bottom:env(safe-area-inset-bottom,0px);--safe-top:env(safe-area-inset-top,0px)}*{box-sizing:border-box}body,html{margin:0;min-height:100%;color:var(--ink);font-family:var(--font);background:radial-gradient(900px 420px at 100% -10%,#ffd4a8 0,transparent 55%),radial-gradient(700px 380px at -10% 20%,#ffe8d6 0,transparent 50%),linear-gradient(180deg,#fffaf5 0,var(--bg) 45%,#ffefdf 100%);background-attachment:fixed;-webkit-font-smoothing:antialiased}a{color:var(--brand);text-decoration:none;font-weight:600}main.app-shell{width:min(100%,720px);margin:0 auto;padding:0 1rem calc(2rem + var(--safe-bottom))}main.app-shell.hero-auth{padding:calc(1rem + var(--safe-top)) 1rem calc(2rem + var(--safe-bottom))}@media (min-width:900px){main.app-shell{width:min(100%,980px)}}main.app-shell.admin-shell{width:min(100%,1200px)}@media (min-width:1100px){main.app-shell.admin-shell{padding-top:0}}.admin-tabs{gap:.45rem;margin-bottom:1rem}.admin-tabs,.admin-toolbar{display:flex;flex-wrap:wrap}.admin-toolbar{gap:.65rem;align-items:center;margin-bottom:.85rem}.admin-toolbar .filter-input{flex:1 1;min-width:180px;min-height:44px;padding:.55rem .9rem;border-radius:12px;border:1px solid var(--line);background:var(--surface-solid);font:inherit}.admin-toolbar .filter-input:focus{outline:2px solid rgba(232,93,0,.25);border-color:var(--brand)}.admin-toolbar .filter-select{min-height:44px;min-width:150px;padding:.55rem .9rem;border-radius:12px;border:1px solid var(--line);background:var(--surface-solid);font:inherit;color:inherit}.admin-toolbar .filter-select:focus{outline:2px solid rgba(232,93,0,.25);border-color:var(--brand)}.type-pill{display:inline-block;padding:.2rem .55rem;border-radius:999px;font-size:.78rem;font-weight:700;letter-spacing:.01em;background:#e8f0ec;color:#e85d00;white-space:nowrap}.type-pill.type-pulse_oximeter{background:#e8eef8;color:#1e4d8c}.type-pill.type-thermometer{background:#f8efe6;color:#8a4b16}.ai-report{background:#f7fbf8;border:1px solid #d7e3dc;border-radius:12px;padding:.85rem 1rem;margin-bottom:.25rem}.ai-report-head{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem;margin-bottom:.65rem}.ai-report-body{white-space:pre-wrap;font-family:inherit;font-size:.92rem;line-height:1.55;margin:0;max-height:480px;overflow:auto;color:#1a1410}.ai-report-ready{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;background:linear-gradient(135deg,#ffe8d6,#fff7f0);border:1px solid rgba(232,93,0,.18);border-radius:12px;font-weight:600;color:#e85d00}.ai-report-backdrop{padding:1.25rem;align-items:stretch}.modal-card.ai-report-modal{width:min(96vw,1100px);max-width:none;height:min(92vh,920px);max-height:min(92vh,920px);display:flex;flex-direction:column;padding:0;overflow:hidden;border-radius:22px;box-shadow:0 24px 64px rgba(18,35,28,.22)}.ai-report-modal-top{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.35rem 1.6rem 1.1rem;border-bottom:1px solid var(--line);background:radial-gradient(ellipse at top left,rgba(26,163,127,.12),transparent 55%),linear-gradient(180deg,#f4faf7,#fff);flex-shrink:0}.ai-report-kicker{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#ff7a00;margin-bottom:.35rem}.ai-report-modal-top h2{margin:0 0 .35rem;font-size:1.55rem;letter-spacing:-.02em}.ai-report-meta{display:flex;flex-wrap:wrap;gap:.35rem .85rem;margin:0;color:var(--muted);font-size:.92rem}.ai-report-stats{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.75rem}.ai-stat-chip{display:inline-flex;align-items:center;padding:.35rem .7rem;border-radius:999px;background:#fff;border:1px solid rgba(232,93,0,.18);color:#e85d00;font-size:.82rem;font-weight:700}.ai-ref-badge{display:inline-block;margin:.75rem 0 0;padding:.35rem .75rem;border-radius:999px;background:#fff4e5;color:#8a4b16;font-size:.8rem;font-weight:700}.vf-infographic{flex-shrink:0;margin:0;padding:.35rem 1.1rem .4rem;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#f7fbf9,#fff)}.vf-infographic-main{display:grid;grid-template-columns:110px 1fr;grid-gap:.55rem;gap:.55rem;align-items:center}.vf-score-block{text-align:center;padding:.25rem .35rem .3rem;border-radius:10px;background:#fff;border:1px solid rgba(232,93,0,.14);box-shadow:0 2px 8px rgba(18,35,28,.04)}.vf-label{font-size:.58rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:var(--muted)}.vf-score{font-family:var(--display);font-size:1.35rem;font-weight:800;line-height:1.05;margin:.05rem 0 .2rem;letter-spacing:-.03em}.vf-band{display:inline-block;padding:.1rem .4rem;border-radius:999px;color:#fff;font-size:.6rem;font-weight:700}.vf-gauge-block{min-width:0}.vf-gauge-track{position:relative;display:flex;height:8px;border-radius:999px;overflow:visible;background:#e8eee9}.vf-zone{height:100%}.vf-zone-good{background:#ff8f2a;border-radius:999px 0 0 999px}.vf-zone-warn{background:#e07a3d}.vf-zone-high{background:#c0392b;border-radius:0 999px 999px 0}.vf-marker{position:absolute;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;z-index:2}.vf-marker-dot{width:11px;height:11px;border-radius:50%;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.18)}.vf-marker-val{position:absolute;top:-.95rem;font-size:.62rem;font-weight:800;color:#1a1410;background:#fff;border:1px solid var(--line);border-radius:5px;padding:0 .25rem;white-space:nowrap}.vf-gauge-labels{justify-content:space-between;font-size:.6rem;color:var(--muted)}.vf-gauge-labels,.vf-legend{display:flex;margin-top:.2rem;font-weight:600}.vf-legend{flex-wrap:wrap;gap:.25rem .55rem;font-size:.62rem;color:#3d5248}.vf-legend .vf-dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:.22rem;vertical-align:middle}.vf-legend .vf-dot.good{background:#ff8f2a}.vf-legend .vf-dot.warn{background:#e07a3d}.vf-legend .vf-dot.high{background:#c0392b}.vf-profile{margin-top:.25rem;font-size:.68rem;color:var(--muted);font-weight:600}.ai-report-modal-top{padding:.9rem 1.35rem .75rem}.ai-report-modal-top h2{font-size:1.25rem}.ai-ref-badge,.ai-report-stats{margin-top:.45rem}.ai-ref-badge{padding:.22rem .6rem;font-size:.72rem}.ai-report-columns{display:grid;grid-template-columns:1fr 1fr;grid-gap:0;gap:0;flex:1 1;min-height:0;overflow:hidden;background:#f7faf8}@media (max-width:900px){.vf-infographic-main{grid-template-columns:1fr}}.ai-report-columns.single{grid-template-columns:1fr}.ai-report-col{display:flex;flex-direction:column;min-height:0;overflow:hidden;background:#fff}.ai-report-col+.ai-report-col{border-left:1px solid var(--line)}.ai-col-head{flex-shrink:0;padding:.75rem 1.4rem;font-weight:800;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid var(--line)}.ai-col-head.en{color:#e85d00;background:#eef8f3}.ai-col-head.zh{color:#8a4b16;background:#fff7ef}.ai-report-prose{padding:1.15rem 1.4rem 1.4rem;overflow:auto;flex:1 1;color:#1a1410;line-height:1.65}.ai-report-prose h3{font-size:1.02rem;margin:1.15rem 0 .45rem;color:#e85d00;font-weight:800}.ai-report-prose h3:first-child{margin-top:.15rem}.ai-report-prose p{margin:0 0 .85rem;font-size:.98rem}.ai-report-prose ul{margin:0 0 1rem;padding-left:1.15rem}.ai-report-prose li{margin:.35rem 0;font-size:.97rem}.ai-report-prose strong{color:#e85d00}.ai-report-foot{margin:0;padding:.7rem 1.5rem .95rem;border-top:1px solid var(--line);font-size:.8rem;flex-shrink:0;background:#fff}@media (max-width:900px){.ai-report-columns{grid-template-columns:1fr;overflow:auto}.ai-report-col+.ai-report-col{border-left:0;border-top:1px solid var(--line)}.modal-card.ai-report-modal{height:min(96vh,960px)}}.pagination-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-top:1rem;padding-top:.85rem;border-top:1px solid var(--line);color:var(--muted);font-size:.88rem}.pagination-bar .page-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem}.pagination-bar select{min-height:36px;border-radius:10px;border:1px solid var(--line);background:var(--surface-solid);padding:.25rem .5rem;font:inherit}.pagination-bar .btn.ghost{min-height:36px;padding:.35rem .7rem;font-size:.82rem}table.data tbody tr.row-click{cursor:pointer}table.data tbody tr.row-click:hover{background:rgba(232,93,0,.05)}.badge-soft{display:inline-flex;align-items:center;padding:.2rem .55rem;border-radius:999px;background:var(--brand-soft);color:var(--brand-deep);font-size:.75rem;font-weight:700;white-space:nowrap}.drawer-backdrop{position:fixed;inset:0;background:rgba(18,35,28,.35);z-index:80;display:flex;justify-content:flex-end}.drawer-panel{width:min(100%,440px);height:100%;background:#fff;box-shadow:-12px 0 40px rgba(232,93,0,.18);padding:1.25rem 1.25rem calc(1.25rem + var(--safe-bottom));overflow-y:auto;animation:drawer-in .2s ease-out}@keyframes drawer-in{0%{transform:translateX(24px);opacity:.6}to{transform:translateX(0);opacity:1}}.drawer-panel h2{font-family:var(--display);margin:0 0 .35rem;font-size:1.2rem;letter-spacing:-.02em}.drawer-meta{color:var(--muted);font-size:.88rem;margin:0 0 1rem}.drawer-section{margin-top:1.15rem}.drawer-section h3{margin:0 0 .55rem;font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.modal-backdrop{position:fixed;inset:0;background:rgba(18,35,28,.4);z-index:90;display:flex;align-items:center;justify-content:center;padding:1rem}.modal-card{width:min(100%,420px);background:#fff;border-radius:18px;box-shadow:var(--shadow);padding:1.25rem 1.35rem}.modal-card h2{font-family:var(--display);margin:0 0 .35rem;font-size:1.15rem}.modal-card .hint{margin:0 0 1rem;color:var(--muted);font-size:.88rem}.member-row{display:flex;justify-content:space-between;gap:.75rem;padding:.7rem 0;border-bottom:1px solid var(--line)}.member-row:last-child{border-bottom:0}.member-row .name{font-weight:700}.member-row .email{color:var(--muted);font-size:.85rem}.kv-grid{display:grid;grid-template-columns:110px 1fr;grid-gap:.35rem .75rem;gap:.35rem .75rem;font-size:.9rem}.kv-grid .k{color:var(--muted);font-weight:600}.notice{color:var(--brand-deep);background:var(--brand-soft);border:1px solid rgba(232,93,0,.2);border-radius:12px;padding:.65rem .85rem;font-size:.9rem;margin:0 0 .85rem}.limit-priority{margin:0 0 .9rem;padding:.75rem .9rem;border-radius:12px;background:#f3f7f5;border:1px solid var(--line);font-size:.86rem;color:var(--muted)}.limit-priority strong{display:block;color:var(--ink);margin-bottom:.35rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}.limit-priority ol{margin:0 0 .45rem;padding-left:1.15rem}.limit-priority li{margin:.15rem 0}.limit-priority em{font-style:normal;font-weight:700;color:var(--brand-deep)}.limit-priority p{margin:0;line-height:1.4}.limit-choice{display:block;width:100%;text-align:left;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:var(--surface-solid);border-radius:14px;padding:.85rem 1rem;margin-bottom:.55rem;cursor:pointer;font:inherit;color:var(--ink);transition:border-color .15s ease,background .15s ease}.limit-choice:hover{border-color:rgba(232,93,0,.35)}.limit-choice.active{border-color:var(--brand);background:var(--brand-soft);box-shadow:inset 0 0 0 1px rgba(232,93,0,.15)}.limit-choice-title{display:block;font-weight:700;letter-spacing:-.01em}.limit-choice-meta{display:block;margin-top:.2rem;color:var(--muted);font-size:.82rem}.brand-mark{display:inline-flex;align-items:center;gap:.65rem;font-family:var(--display);font-weight:700;letter-spacing:-.03em;color:var(--brand-deep)}.brand-mark .logo-dot,.brand-mark img{width:40px;height:40px;border-radius:0;object-fit:contain;background:transparent}.brand-mark .logo-dot{border-radius:10px;background:linear-gradient(145deg,#ff8f2a,var(--brand-deep));box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.25)}.brand-mark small{display:block;font-family:var(--font);font-size:.72rem;font-weight:500;color:var(--muted);letter-spacing:.02em}.hero-auth{min-height:calc(100dvh - 2rem);display:flex;flex-direction:column;justify-content:center;gap:1.25rem}.hero-auth h1{font-family:var(--display);font-size:clamp(1.8rem,6vw,2.4rem);line-height:1.15;letter-spacing:-.04em;margin:.35rem 0 .5rem}.lead{margin:0;color:var(--muted);font-size:1rem;line-height:1.5;max-width:34ch}.panel{background:var(--surface);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.15rem}@media (min-width:720px){.panel{padding:1.4rem 1.5rem}}.panel+.panel{margin-top:.9rem}.panel h2{font-family:var(--display);font-size:1.05rem;margin:0 0 .35rem;letter-spacing:-.02em}.panel .hint{margin:0 0 1rem;color:var(--muted);font-size:.88rem}.field{margin-bottom:.9rem}.field label{display:block;font-size:.8rem;font-weight:600;color:var(--muted);margin-bottom:.35rem}.field input,.field select,.field textarea{width:100%;min-height:48px;padding:.75rem .9rem;border-radius:12px;border:1px solid var(--line);background:var(--surface-solid);color:var(--ink);font:inherit;font-size:1rem}.field select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%235d7268' d='M1.4.6 6 5.2 10.6.6 12 2 6 8 0 2z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .9rem center;padding-right:2.4rem}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid rgba(232,93,0,.25);border-color:var(--brand)}.actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-top:.35rem}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;min-height:48px;padding:.75rem 1.15rem;border-radius:999px;background:linear-gradient(180deg,#ff7a00 0,var(--brand-deep) 100%);color:#fff;font:inherit;font-weight:700;letter-spacing:-.01em;cursor:pointer;box-shadow:0 8px 18px rgba(232,93,0,.28)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.secondary{background:#fff;color:var(--brand-deep);border:2px solid var(--brand);box-shadow:0 6px 16px rgba(232,93,0,.12)}.btn.secondary:focus-visible,.btn.secondary:hover{background:var(--brand-soft);outline:none}.roster-actions,.section-title-row{margin-bottom:.75rem}.section-title-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.section-title-row h2{margin:0}.btn.btn-compact{min-height:38px;padding:.4rem .9rem;font-size:.88rem;flex:none;width:auto;box-shadow:0 4px 12px rgba(232,93,0,.22)}.btn.btn-chip{min-height:34px;padding:.32rem .72rem;font-size:.82rem;font-weight:600;border-radius:10px;flex:none;width:auto;white-space:nowrap;letter-spacing:0;box-shadow:none;display:inline-flex;align-items:center;justify-content:center}.btn.btn-chip.ghost{background:#fff;color:var(--ink);border:1px solid rgba(18,35,28,.12)}.btn.btn-chip.ghost:focus-visible,.btn.btn-chip.ghost:hover{background:rgba(18,35,28,.04);outline:none}.btn.btn-chip.danger-ghost{background:#fff;color:var(--warn);border:1px solid rgba(180,35,24,.22);min-height:34px;padding:.32rem .72rem;font-size:.82rem}.btn.btn-chip.danger-ghost:focus-visible,.btn.btn-chip.danger-ghost:hover{background:rgba(180,35,24,.06);outline:none}.roster-actions .btn{flex:1 1 140px;text-align:center;justify-content:center;display:inline-flex;align-items:center}.roster-actions .btn.btn-chip{flex:none;align-self:center}a.btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.btn.ghost{color:var(--ink);border:1px solid var(--line)}.btn.danger-ghost,.btn.ghost{background:transparent;box-shadow:none}.btn.danger-ghost{color:var(--warn);border:1px solid rgba(180,35,24,.2);min-height:40px;padding:.45rem .8rem;font-size:.85rem}.btn.danger{background:linear-gradient(180deg,#d6453a,#b42318);color:#fff;box-shadow:0 8px 18px rgba(180,35,24,.28)}.av-modal-actions{display:flex;flex-wrap:wrap;gap:.55rem;justify-content:flex-end;margin-top:1rem}.av-modal-actions .btn{flex:1 1 120px;min-height:46px}.av-confirm-modal .hint{white-space:pre-wrap}.event-list-item{display:flex;flex-direction:column;gap:.4rem}.event-list-item .event-row{flex:1 1}.event-conclude-btn{align-self:flex-end;width:auto;margin-left:auto}@media (max-width:559px){.event-list-item .event-conclude-btn{margin-top:.15rem}}.event-status.open{color:var(--brand-deep)}.event-status.closed,.event-status.open{font-weight:700;text-transform:lowercase}.event-status.closed{color:var(--muted)}@media (min-width:560px){.event-list-item{flex-direction:row;align-items:center}.event-conclude-btn{align-self:center;margin-top:0}}.error{color:var(--warn);font-size:.9rem;margin:.4rem 0 .6rem}.nav-bar{display:flex;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.1rem;padding:.65rem .2rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(180deg,rgba(243,247,245,.92),rgba(243,247,245,.7))}.av-top,.nav-bar{position:-webkit-sticky;position:sticky;top:0;z-index:20}.av-top{margin:0 -1rem 1rem;padding:var(--safe-top) 1rem .5rem;background:#fff;border-bottom:1px solid rgba(26,20,16,.08);box-shadow:0 6px 18px rgba(26,20,16,.05)}.av-top-card{position:relative;display:block;padding:.65rem .15rem .15rem;border-radius:0;background:transparent;border:0;box-shadow:none;overflow:visible}.av-top-card:before{display:none}.av-top-row{justify-content:space-between;gap:.75rem}.av-top-brand,.av-top-row{display:flex;align-items:center;min-width:0}.av-top-brand{gap:.7rem;flex:1 1}.av-top-logo{flex:none;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#fff4ea,#ffe0c2);border:1px solid rgba(255,122,0,.18);box-shadow:0 4px 12px rgba(232,93,0,.12)}.av-top-logo img{width:30px;height:30px;object-fit:contain}.av-back-btn{flex:none;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid rgba(26,20,16,.08);border-radius:50%;background:#fff;color:var(--ink);cursor:pointer;box-shadow:0 1px 3px rgba(26,20,16,.06);-webkit-tap-highlight-color:transparent;transition:background .15s ease,color .15s ease,border-color .15s ease,transform .15s ease}.av-back-btn:focus-visible,.av-back-btn:hover{background:var(--brand-soft);border-color:rgba(255,122,0,.28);color:var(--brand-deep);outline:none}.av-back-btn:active{transform:scale(.96)}.av-top-text{display:flex;flex-direction:column;gap:.12rem;min-width:0;line-height:1.2}.av-top-text strong{font-family:var(--display);font-size:clamp(1.02rem,3.6vw,1.18rem);font-weight:800;letter-spacing:-.02em;color:var(--ink)}.av-top-text small,.av-top-text strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.av-top-text small{font-size:.76rem;font-weight:500;color:var(--muted)}.av-top-actions{display:flex;align-items:center;gap:.55rem;flex:none}.locale-switcher{display:inline-flex;align-items:center;gap:.1rem;padding:.14rem;border-radius:999px;background:hsla(0,0%,100%,.92);border:1px solid rgba(26,20,16,.08);box-shadow:0 1px 3px rgba(26,20,16,.06)}.locale-switcher-btn{border:none;background:transparent;color:var(--ink-muted,#6b635c);font-size:.72rem;font-weight:650;letter-spacing:.02em;padding:.32rem .62rem;border-radius:999px;cursor:pointer;line-height:1.2;transition:background .15s ease,color .15s ease,box-shadow .15s ease}.locale-switcher-btn.active{background:linear-gradient(180deg,#ff8f2a,#ff7a00 55%,#e85d00);color:#fff;box-shadow:0 2px 8px rgba(232,93,0,.32)}.locale-switcher-btn:not(.active):focus-visible,.locale-switcher-btn:not(.active):hover{background:rgba(255,122,0,.1);color:var(--brand-deep);outline:none}.av-login-lang .locale-switcher{background:hsla(0,0%,100%,.95)}.av-login-lang{position:absolute;top:1rem;right:1rem;z-index:2}html[lang=zh-Hans] .admin-settings-hint{word-break:keep-all;line-break:strict;text-wrap:pretty}.av-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid rgba(26,20,16,.08);border-radius:50%;background:#fff;color:#5c4c42;cursor:pointer;text-decoration:none;box-shadow:0 1px 3px rgba(26,20,16,.06);flex:none;-webkit-tap-highlight-color:transparent;transition:background .15s ease,color .15s ease,transform .15s ease}.av-icon-btn:focus-visible,.av-icon-btn:hover{background:var(--brand-soft);color:var(--brand-deep);outline:none}.av-icon-btn:active{transform:scale(.96)}.av-crumbs{margin:.55rem .15rem 0;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.av-crumbs::-webkit-scrollbar{display:none}.av-crumbs ol{display:flex;align-items:center;flex-wrap:nowrap;gap:.15rem;margin:0;padding:0;list-style:none;font-size:.92rem;font-weight:500;color:var(--muted);white-space:nowrap}.av-crumbs li{display:inline-flex;align-items:center;gap:.1rem;min-width:0}.av-crumb-chevron{flex:none;opacity:.45;color:var(--muted);margin:0 .15rem;width:14px;height:14px}.av-crumbs a{color:var(--brand-deep);text-decoration:none;font-weight:600;padding:.28rem .45rem;border-radius:999px;transition:color .15s ease,background .15s ease}.av-crumbs a:focus-visible,.av-crumbs a:hover{background:rgba(255,122,0,.1);outline:none}.av-crumbs [aria-current=page]{color:var(--ink);font-weight:700;font-size:.95rem;max-width:46vw;overflow:hidden;text-overflow:ellipsis;padding:.28rem .25rem}.admin-staff-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}.admin-staff-list li{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem .8rem;border-radius:12px;border:1px solid rgba(18,35,28,.08);background:#fff}.admin-staff-list li>div{display:flex;flex-direction:column;gap:.15rem;min-width:0}.admin-staff-actions{display:flex;flex-direction:column;align-items:stretch;gap:.3rem;flex:none;width:5.1rem}.admin-staff-actions .btn-chip{width:100%;justify-content:center;padding-left:.5rem;padding-right:.5rem}.admin-staff-list strong{font-size:.95rem}.admin-staff-list small{color:var(--muted);font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-staff-you{color:var(--muted);font-size:.82rem;padding:.32rem .5rem;white-space:nowrap;text-align:center;width:100%;line-height:1.35}@media (max-width:480px){.av-top{padding-left:.85rem;padding-right:.85rem}.av-top-card{padding:.55rem .05rem .1rem}.av-top-logo{width:44px;height:44px}.av-back-btn,.av-icon-btn{width:42px;height:42px}.admin-staff-list li{flex-wrap:wrap}}html.has-admin-nav main.app-shell{padding-bottom:calc(5.25rem + var(--safe-bottom))}.av-admin-nav{position:fixed;left:0;right:0;bottom:0;z-index:50;display:flex;align-items:stretch;justify-content:space-around;gap:.15rem;min-height:calc(58px + var(--safe-bottom));padding:.4rem .35rem calc(.4rem + var(--safe-bottom));background:hsla(0,0%,100%,.97);border-top:1px solid rgba(18,35,28,.08);box-shadow:0 -10px 30px rgba(26,20,16,.08);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.av-admin-nav-item{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;min-width:0;max-width:7rem;margin:0 auto;padding:.25rem .2rem;border-radius:12px;color:#9a8a7e;font-size:.7rem;font-weight:600;text-decoration:none;-webkit-tap-highlight-color:transparent}.av-admin-nav-item.is-active{color:var(--brand-deep);font-weight:700}.av-admin-nav-item:active{background:rgba(255,122,0,.08)}@media (min-width:900px){.av-admin-nav{left:50%;right:auto;width:min(100%,980px);transform:translateX(-50%);border-radius:16px 16px 0 0}}.password-field{display:flex;flex-direction:column;gap:.35rem;font-weight:600;font-size:.88rem}.password-field-wrap{position:relative;display:block}.password-field-wrap input{width:100%;padding-right:3rem;min-height:48px;box-sizing:border-box}.field .password-field-wrap input,.stack-form .password-field-wrap input{padding-right:3rem}.password-toggle{position:absolute;right:.35rem;top:50%;transform:translateY(-50%);width:40px;height:40px;border:0;border-radius:10px;background:transparent;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.password-toggle:focus-visible,.password-toggle:hover{color:var(--brand-deep);background:rgba(255,122,0,.08);outline:none}.password-field-hint{font-weight:500;color:var(--muted);font-size:.78rem}.field .password-field{width:100%}.profile-menu{position:relative}.profile-trigger{display:inline-flex;align-items:center;gap:.55rem;max-width:min(280px,62vw);padding:.35rem .55rem .35rem .35rem;border:1px solid rgba(18,35,28,.1);border-radius:999px;background:#fff;cursor:pointer;text-align:left;color:var(--ink);transition:border-color .15s ease,box-shadow .15s ease}.profile-trigger:hover,.profile-trigger[aria-expanded=true]{border-color:rgba(232,93,0,.35);box-shadow:0 0 0 3px rgba(232,93,0,.08)}.profile-avatar{flex:none;width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(145deg,#ff8f2a,var(--brand-deep));color:#fff;font-weight:700;font-size:.85rem}.profile-meta{display:flex;flex-direction:column;min-width:0;line-height:1.2}.profile-role{font-size:.72rem;font-weight:700;color:var(--brand-deep)}.profile-email{font-size:.78rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-caret{flex:none;color:var(--muted);font-size:.7rem;margin-right:.15rem}.profile-dropdown{position:absolute;right:0;top:calc(100% + .4rem);min-width:160px;padding:.35rem;border-radius:12px;background:#fff;border:1px solid rgba(18,35,28,.08);box-shadow:0 10px 28px rgba(18,35,28,.12);z-index:30}.profile-dropdown-item{display:block;width:100%;border:0;background:transparent;text-align:left;padding:.65rem .75rem;border-radius:8px;cursor:pointer;font:inherit;font-weight:600;color:var(--ink)}.profile-dropdown-item:hover{background:var(--brand-soft);color:var(--brand-deep)}@media (max-width:560px){.profile-meta{display:none}.profile-trigger{padding-right:.45rem}}.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.75rem;gap:.75rem;margin-bottom:.9rem}@media (min-width:720px){.stats{grid-template-columns:repeat(4,minmax(0,1fr))}}.stat{background:var(--surface-solid);border:1px solid var(--line);border-radius:16px;padding:.95rem 1rem;box-shadow:var(--shadow)}.stat .label{color:var(--muted);font-size:.78rem;font-weight:600}.stat .value{font-family:var(--display);font-size:1.45rem;font-weight:700;letter-spacing:-.03em;margin-top:.2rem}.list{display:flex;flex-direction:column;gap:.65rem}.list-item{display:grid;grid-gap:.25rem;gap:.25rem;padding:.85rem .95rem;border-radius:14px;background:var(--surface-solid);border:1px solid var(--line)}.list-item .title{font-weight:700;letter-spacing:-.01em}.list-item .meta{color:var(--muted);font-size:.85rem}.mono{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.84rem;word-break:break-all}.chip{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .55rem;border-radius:999px;background:var(--brand-soft);color:var(--brand-deep);font-size:.75rem;font-weight:700}.chip.muted{background:#eef2f0;color:var(--muted)}.fresh-key{word-break:break-all;margin:0;padding:0;border:0;background:transparent;color:var(--brand-deep)}.fresh-key-box{margin:.75rem 0 1rem;padding:.9rem 1rem;border-radius:14px;background:var(--brand-soft);border:1px solid rgba(232,93,0,.22)}.btn-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.55rem}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -.25rem;padding:0 .25rem}table.data{width:100%;border-collapse:collapse;min-width:520px;font-size:.9rem}table.data td,table.data th{text-align:left;padding:.7rem .45rem;border-bottom:1px solid var(--line);vertical-align:top}table.data th{color:var(--muted);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.empty{color:var(--muted);font-size:.92rem;padding:.5rem 0}.stack-form{display:grid;grid-gap:.65rem;gap:.65rem}@media (min-width:640px){.stack-form.inline{grid-template-columns:1fr auto;align-items:end}.stack-form.inline .field{margin-bottom:0}}.api-doc-auth,.api-doc-endpoint{margin:1rem 0 1.25rem;padding:1rem 1.1rem;border-radius:14px;background:#f7fbf9;border:1px solid var(--line)}.api-doc-endpoint-head{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;margin-bottom:.45rem}.api-method{display:inline-flex;padding:.15rem .5rem;border-radius:6px;background:var(--brand);color:#fff;font-size:.72rem;font-weight:800;letter-spacing:.04em}#open-api-docs h3,.api-doc-auth h3,.api-doc-endpoint h3{margin:.35rem 0 .4rem;font-family:var(--display);font-size:1.02rem}.api-doc-code{margin:.65rem 0 0;padding:.85rem 1rem;border-radius:12px;background:#1a1410;color:#ffe8d6;font-family:ui-monospace,Consolas,monospace;font-size:.78rem;line-height:1.45;overflow-x:auto;white-space:pre-wrap}.api-doc-table{width:100%;border-collapse:collapse;font-size:.88rem;margin-top:.5rem}.api-doc-table td,.api-doc-table th{text-align:left;padding:.55rem .45rem;border-bottom:1px solid var(--line);vertical-align:top}.api-doc-table th{color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.api-doc-table td.mono{white-space:nowrap}.pulseox-panel .live-layout{margin-top:.5rem}.live-page{max-width:1200px;margin:0 auto;padding:1.25rem 1.25rem calc(2rem + var(--safe-bottom))}.live-header{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;align-items:flex-start;margin-bottom:1.25rem}.live-header h1{font-family:var(--display);margin:.35rem 0 .15rem;font-size:1.6rem}.live-header a{color:var(--brand-deep);text-decoration:none;font-weight:600;font-size:.9rem}.live-actions{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.live-actions button,.live-actions select{font:inherit;padding:.45rem .7rem;border-radius:10px;border:1px solid var(--line);background:var(--surface-solid)}.live-layout{display:grid;grid-template-columns:1.4fr .9fr;grid-gap:1rem;gap:1rem}.live-monitor{margin:.85rem 0 1rem;border:1px solid var(--line);border-radius:16px;padding:1rem 1rem .75rem;background:var(--surface-solid)}.live-monitor-empty{margin:.5rem 0 1rem}.live-monitor-head{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;align-items:flex-start;margin-bottom:.75rem}.live-monitor-head h3{margin:0;font-family:var(--display);font-size:1.15rem}.live-monitor .detail-vitals{margin:0;min-width:min(100%,320px)}.live-monitor .live-trend-svg{height:150px}@media (max-width:860px){.live-layout{grid-template-columns:1fr}}.live-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:.75rem;gap:.75rem}.live-card{text-align:left;border:1px solid var(--line);border-radius:14px;padding:.85rem;background:var(--surface-solid);cursor:pointer;color:inherit;font:inherit}.live-card.active{outline:2px solid var(--brand)}.live-card .row{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.45rem;font-size:.78rem}.live-card .dot{width:8px;height:8px;border-radius:50%;background:#9aa}.live-card.online .dot{background:#1a9b6c}.live-card.offline{opacity:.65}.live-card-user{font-size:.78rem;color:var(--muted);margin:-.15rem 0 .35rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-card .vitals{display:grid;grid-gap:.15rem;gap:.15rem;font-size:.82rem;margin-bottom:.4rem}.live-card .vitals b{font-family:var(--display)}.spark{color:var(--brand-deep);display:block;width:100%;height:36px}.spark.empty{height:36px;background:repeating-linear-gradient(-45deg,transparent,transparent 4px,rgba(0,0,0,.03) 0,rgba(0,0,0,.03) 8px);border-radius:8px}.live-detail{border:1px solid var(--line);border-radius:16px;padding:1.1rem;background:var(--surface-solid);min-height:240px}.live-detail h2{margin:0;font-family:var(--display);font-size:1.1rem;word-break:break-all}.detail-vitals{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:.6rem;gap:.6rem;margin:1rem 0}.detail-vitals div{background:var(--brand-soft);border-radius:12px;padding:.7rem}.detail-vitals span{display:block;font-size:.75rem;color:var(--muted)}.detail-vitals strong{font-family:var(--display);font-size:1.25rem}.detail-chart .spark{height:80px;transform:scaleY(2);transform-origin:top left}.live-trend{margin-top:.25rem}.live-trend-legend{display:flex;align-items:center;gap:.85rem;margin-bottom:.35rem;font-size:.78rem}.live-trend-legend .lg.spo2{color:#0a7a62;font-weight:700}.live-trend-legend .lg.pr{color:#b45309;font-weight:700}.live-trend-legend .hint{margin-left:auto}.live-band-meta{display:flex;justify-content:space-between;gap:.75rem;align-items:baseline;margin:.15rem 0 .35rem;font-size:.82rem}.live-band-meta strong{font-family:var(--display)}.live-band.spo2 .live-band-meta strong{color:#0a7a62}.live-band.pr .live-band-meta strong{color:#b45309}.live-band-meta span{color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.live-trend-svg{display:block;width:100%;height:210px;background:#e85d00;border-radius:12px;margin-bottom:.65rem}.live-monitor .live-trend-svg{height:210px}.live-trend-svg .grid{stroke:hsla(0,0%,100%,.16);stroke-width:1}.live-trend-svg .axis,.live-trend-svg .axis-label{fill:hsla(0,0%,100%,.62);font-size:12px;font-family:var(--font)}.live-trend-svg .axis-label.spo2{fill:#7cffd4}.live-trend-svg .axis-label.pr{fill:#ffd07a}.live-trend-svg .trace{fill:none;stroke-width:2.6;stroke-linejoin:round;stroke-linecap:round}.live-trend-svg .trace.spo2{stroke:#7cffd4}.live-trend-svg .trace.pr{stroke:#ffd07a}.live-trend-svg .dot.spo2{fill:#7cffd4}.live-trend-svg .dot.pr{fill:#ffd07a}.live-trend-svg .pt-label{font-size:12px;font-weight:700;font-family:var(--display)}.live-trend-svg .pt-label.spo2{fill:#7cffd4}.live-trend-svg .pt-label.pr{fill:#ffd07a}.live-trend-svg .now-line{stroke-width:1;stroke-dasharray:4 4}.live-trend-svg .now-line.spo2{stroke:rgba(124,255,212,.45)}.live-trend-svg .now-line.pr{stroke:rgba(255,208,122,.45)}.live-trend-svg .now-badge.spo2{fill:#7cffd4}.live-trend-svg .now-badge.pr{fill:#ffd07a}.live-trend-svg .now-text{fill:#e85d00;font-size:13px;font-weight:800;font-family:var(--display)}.live-trend-svg.thermo .trace.thermo{stroke:#ffb4a2}.live-trend-svg .now-badge.thermo,.live-trend-svg.thermo .dot.thermo{fill:#ffb4a2}.live-band.thermo .live-band-meta strong{color:#b45309}.stack-form{gap:.75rem}.stack-form,.stack-form label{display:flex;flex-direction:column}.stack-form label{gap:.35rem}.field-label,.stack-form label{font-size:.9rem;font-weight:600}.field-label{display:inline-flex;align-items:center;gap:.3rem}.field-label .req{color:#e53935;font-weight:700;line-height:1}.field-hint,.field-label .optional-hint{color:var(--muted);font-weight:500;font-size:.82rem}.field-hint{margin:0;line-height:1.4}.stack-form .field{display:flex;flex-direction:column;gap:.35rem}.gender-field{gap:.5rem}.gender-radio-group{display:grid;grid-template-columns:1fr 1fr;grid-gap:.65rem;gap:.65rem}.gender-radio-option{position:relative;margin:0;font-weight:600}.gender-radio-option input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.gender-radio-card{display:flex;align-items:center;gap:.7rem;min-height:3.35rem;padding:.75rem .9rem;border:2px dashed #d8cfc4;border-radius:14px;background:#fffdf9;color:var(--ink);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:border-color .15s ease,border-style .15s ease,background .15s ease,box-shadow .15s ease,transform .12s ease}.gender-radio-indicator{flex:0 0 1.35rem;width:1.35rem;height:1.35rem;border:2px solid #c9bfb3;border-radius:999px;background:#fff;position:relative;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.gender-radio-copy{display:flex;flex-direction:column;gap:.1rem;min-width:0}.gender-radio-copy strong{font-size:.95rem;line-height:1.2}.gender-radio-hint{display:block;font-size:.75rem;font-weight:600;color:#9a8f84;letter-spacing:.01em}.gender-radio-option input:checked+.gender-radio-card{border-style:solid;border-color:var(--brand);background:rgba(255,122,0,.1);box-shadow:0 4px 14px rgba(255,122,0,.12)}.gender-radio-option input:checked+.gender-radio-card .gender-radio-indicator{border-color:var(--brand);background:#fff;box-shadow:inset 0 0 0 3px #fff}.gender-radio-option input:checked+.gender-radio-card .gender-radio-indicator:after{content:"";position:absolute;inset:3px;border-radius:999px;background:var(--brand)}.gender-radio-option input:checked+.gender-radio-card .gender-radio-hint{color:#c2410c;font-size:0}.gender-radio-option input:checked+.gender-radio-card .gender-radio-hint:after{content:"✓ Selected";font-size:.75rem;font-weight:600}.gender-radio-option input:focus-visible+.gender-radio-card{outline:2px solid var(--brand);outline-offset:2px}.gender-radio-option:active .gender-radio-card{transform:scale(.98)}.gender-radio-option:hover .gender-radio-card{border-color:rgba(255,122,0,.55);background:rgba(255,122,0,.04)}.gender-clear-btn{align-self:flex-start;margin-top:.15rem;padding:0;border:0;background:none;color:var(--muted);font:inherit;font-size:.82rem;font-weight:600;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.gender-clear-btn:hover{color:#c2410c}.event-filters input,.event-filters select,.stack-form input,.stack-form select{border:1px solid var(--line);border-radius:12px;padding:.7rem .85rem;font:inherit;background:#fff}.event-list,.participant-list,.results-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}.event-row,.participant-card{display:flex;align-items:center;gap:.75rem;width:100%;text-align:left;border:1px solid var(--line);border-radius:14px;padding:.85rem 1rem;background:#fff;cursor:pointer;font:inherit;color:inherit}.event-row small,.participant-card small,.participant-locked small{display:block;color:var(--muted);font-weight:500;margin-top:.15rem}.event-row .chev{margin-left:auto;font-size:1.4rem;color:var(--muted)}.event-filters{display:grid;grid-template-columns:1fr;grid-gap:.5rem;gap:.5rem;margin-bottom:.85rem}@media (min-width:640px){.event-filters{grid-template-columns:1.4fr .8fr .8fr}}.avatar{width:44px;height:44px;border-radius:50%;background:var(--brand-soft);color:var(--brand-deep);display:grid;place-items:center;font-weight:800;overflow:hidden;flex-shrink:0}.avatar.lg{width:64px;height:64px;font-size:1.2rem}.avatar img{width:100%;height:100%;object-fit:cover}.participant-card .meta{flex:1 1;min-width:0}.badge{font-size:.72rem;font-weight:700;padding:.25rem .55rem;border-radius:999px;background:#e8eeeb;color:var(--muted);white-space:nowrap}.badge.warn{background:#fef3c7;color:#92400e}.badge.ok{background:#ffe8d6;color:#e85d00}.oxi-connection-bar{display:flex;flex-direction:column;gap:.65rem;margin-bottom:.75rem}.oxi-connection-bar.compact{margin-bottom:1rem;padding:.65rem .85rem;background:var(--surface-2,#f8fafc);border-radius:10px;border:1px solid var(--border,#e2e8f0)}.oxi-connection-status{display:flex;align-items:center;gap:.5rem;font-size:.92rem}.oxi-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.oxi-dot.on{background:#22c55e}.oxi-dot.off{background:#94a3b8}.live-oxi{display:flex;gap:1rem;align-items:center;margin:1rem 0}.live-oxi-value{font-family:var(--display);font-size:3rem;font-weight:700;line-height:1;color:var(--brand-deep)}.live-oxi-value small{display:block;font-size:.85rem;color:var(--muted);font-weight:600;margin-top:.25rem}.live-oxi-side{color:var(--muted);font-size:.92rem;gap:.2rem}.live-oxi-side,.live-scales{display:flex;flex-direction:column}.live-scales{gap:.85rem;margin-top:.85rem}.live-scales.compact{gap:.65rem;margin-top:.75rem}.live-scale-block{padding:.65rem .75rem;border-radius:12px;border:1px solid var(--line);background:#fffaf5}.live-scale-label{margin:0 0 .35rem;font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.pre-snapshot{margin-top:.9rem;padding:.85rem .9rem;border-radius:14px;border:1px solid rgba(232,93,0,.22);background:linear-gradient(135deg,#fff7f0,#fff)}.pre-snapshot-head{display:flex;flex-direction:column;gap:.15rem;margin-bottom:.65rem}.pre-snapshot-head strong{font-family:var(--display);letter-spacing:-.02em}.pre-snapshot-head span{font-size:.78rem;color:var(--muted)}.pre-snapshot-metrics{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:.5rem;gap:.5rem}.pre-snapshot-metrics .pre-snap-label{display:block;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.pre-snapshot-metrics strong{display:block;margin-top:.15rem;font-family:var(--display);font-size:1.35rem;font-weight:800;letter-spacing:-.03em;color:var(--brand-deep);line-height:1.1}.pre-snapshot-metrics strong small{font-size:.72rem;margin-left:2px;color:var(--muted);font-weight:700}.spo2-range{margin-top:.75rem}.spo2-range-track{position:relative;display:flex;height:12px;border-radius:999px;overflow:hidden;background:#e5e7eb}.spo2-range-track.tall{height:16px;overflow:visible}.spo2-range-seg{height:100%;border-radius:0}.spo2-range-track.tall{border-radius:999px}.spo2-range-track.tall .spo2-range-seg:first-child{border-radius:999px 0 0 999px}.spo2-range-track.tall .spo2-range-seg:last-child{border-radius:0 999px 999px 0}.spo2-range-marker{position:absolute;top:50%;width:14px;height:14px;margin-left:-7px;margin-top:-7px;border-radius:50%;background:#fff;border:2px solid var(--ink);box-shadow:0 1px 4px rgba(0,0,0,.2);z-index:2}.spo2-range-marker.pre{border-color:#64748b;background:#f8fafc}.spo2-range-marker.post{border-color:#0284c7;background:#dbeafe;width:16px;height:16px;margin-left:-8px;margin-top:-8px;animation:prepost-post-marker-pulse 1.4s ease-in-out infinite}.spo2-range-compare{margin-top:.5rem}.spo2-range-pin-row{position:relative;height:1.85rem}.spo2-range-pin-row.top{margin-bottom:.4rem}.spo2-range-pin-row.bottom{margin-top:.4rem}.spo2-range-pin{position:absolute;transform:translateX(-50%);white-space:nowrap}.spo2-range-pin-label{display:inline-block;font-size:.88rem;font-weight:800;letter-spacing:.02em;padding:.22rem .62rem;border-radius:999px;background:#eef2f6;color:#334155}.spo2-range-pin.pre .spo2-range-pin-label{background:#e2e8f0;color:#475569;font-size:.84rem}.spo2-range-pin.post .spo2-range-pin-label{background:#ffe8d6;color:#c2410c;font-size:.95rem;box-shadow:0 0 0 2px rgba(232,93,0,.18);animation:prepost-post-emphasis 1.35s ease-in-out infinite}.spo2-range-legend{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:.55rem;font-size:.92rem;font-weight:700}.spo2-range-legend-item.pre{color:#64748b}.spo2-range-legend-item.post{padding:.12rem .45rem;border-radius:999px;background:rgba(255,232,214,.65)}.metric-scale-badge-post{font-size:.82rem!important;padding:.38rem .68rem!important}@keyframes prepost-post-emphasis{0%,to{opacity:1;transform:scale(1);box-shadow:0 0 0 0 rgba(232,93,0,.28)}50%{opacity:1;transform:scale(1.04);box-shadow:0 0 0 7px rgba(232,93,0,0)}}@keyframes prepost-post-marker-pulse{0%,to{box-shadow:0 0 0 0 rgba(2,132,199,.35)}50%{box-shadow:0 0 0 6px rgba(2,132,199,0)}}.spo2-range-labels{display:flex;justify-content:space-between;font-size:.7rem;color:var(--muted);margin-top:.25rem}.spo2-range-labels-scaled{position:relative;display:block;height:1rem;margin-top:.35rem}.spo2-tick{position:absolute;top:0;font-size:.7rem;font-weight:600;color:var(--muted);white-space:nowrap;transform:translateX(-50%)}.spo2-tick-start{transform:translateX(0)}.spo2-tick-end{transform:translateX(-100%)}.spo2-range-caption{margin:.35rem 0 0;font-size:.85rem;font-weight:700}.prepost-trend{margin-top:1.15rem;padding:1rem;border:1px solid var(--line);border-radius:14px;background:#fff}.prepost-trend-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.35rem}.prepost-trend-head strong{font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.prepost-trend-legend{display:flex;gap:.75rem;font-size:.78rem;font-weight:600}.prepost-trend-legend .leg.spo2{color:#e85d00}.prepost-trend-legend .leg.pr{color:#64748b}.prepost-trend-legend em{font-style:normal;margin-left:.3rem;opacity:.85}.prepost-trend-svg{width:100%;height:auto;display:block}.trend-axis{stroke:#e2e8f0;stroke-width:1}.trend-tick{fill:var(--muted);font-size:11px;font-weight:600}.trend-line.spo2{stroke:#e85d00;stroke-width:2.5;fill:none}.trend-line.pr{stroke:#94a3b8;stroke-width:2;fill:none}.trend-dot.spo2{fill:#e85d00;stroke:#fff;stroke-width:1.5}.trend-dot.pr{fill:#64748b;stroke:#fff;stroke-width:1.5}.trend-val{font-size:11px;font-weight:700}.trend-val.spo2{fill:#e85d00}.trend-val.pr{fill:#64748b}.pulse-compare{margin-top:0;padding:1.1rem 1.15rem 1.2rem;border-radius:18px;border:1px solid rgba(148,163,184,.16);background:radial-gradient(90% 70% at 0 100%,rgba(148,163,184,.1),transparent 50%),#fff;box-shadow:0 10px 28px rgba(15,23,42,.05)}.pulse-compare.accent-spo2{border-color:rgba(14,165,233,.16);background:radial-gradient(120% 80% at 100% 0,rgba(56,189,248,.12),transparent 55%),radial-gradient(90% 70% at 0 100%,rgba(148,163,184,.1),transparent 50%),#fff}.pulse-compare.accent-spo2 .pulse-col-panel.post{border-color:rgba(2,132,199,.45);background:linear-gradient(180deg,#eff6ff,#fff)}.pulse-compare.accent-spo2 .pulse-col-value.post{color:#0369a1}.pulse-compare.accent-spo2 .pulse-col-unit.post{color:#0ea5e9}.pulse-compare.accent-spo2 .pulse-col-meter-fill.post{background:linear-gradient(90deg,#7dd3fc,#0284c7)}.pulse-compare.accent-spo2 .pulse-compare-sub.post,.pulse-compare.accent-spo2 .pulse-phase-tag.post{color:#0284c7}.pulse-compare.accent-spo2 .pulse-compare-title strong{color:#0369a1}.pulse-compare.accent-spo2 .pulse-compare-arrow{color:#0284c7;border-color:rgba(14,165,233,.28)}.pulse-compare.accent-pulse{border-color:rgba(220,38,38,.16);background:radial-gradient(120% 80% at 100% 0,hsla(0,91%,71%,.12),transparent 55%),radial-gradient(90% 70% at 0 100%,rgba(148,163,184,.1),transparent 50%),#fff}.pulse-compare.accent-pulse .pulse-col-panel.post{border-color:rgba(220,38,38,.45);background:linear-gradient(180deg,#fff5f5,#fff)}.pulse-compare.accent-pulse .pulse-col-value.post{color:#b91c1c}.pulse-compare.accent-pulse .pulse-col-unit.post{color:#ef4444}.pulse-compare.accent-pulse .pulse-col-meter-fill.post{background:linear-gradient(90deg,#fca5a5,#dc2626)}.pulse-compare.accent-pulse .pulse-compare-sub.post,.pulse-compare.accent-pulse .pulse-phase-tag.post{color:#dc2626}.pulse-compare.accent-pulse .pulse-compare-title strong{color:#b91c1c}.pulse-compare.accent-pulse .pulse-compare-arrow{color:#dc2626;border-color:rgba(220,38,38,.28)}.pulse-compare.accent-pi{border-color:rgba(124,58,237,.16);background:radial-gradient(120% 80% at 100% 0,rgba(167,139,250,.14),transparent 55%),radial-gradient(90% 70% at 0 100%,rgba(148,163,184,.1),transparent 50%),#fff}.pulse-compare.accent-pi .pulse-col-panel.post{border-color:rgba(124,58,237,.45);background:linear-gradient(180deg,#f5f3ff,#fff)}.pulse-compare.accent-pi .pulse-col-value.post{color:#6d28d9}.pulse-compare.accent-pi .pulse-col-unit.post{color:#8b5cf6}.pulse-compare.accent-pi .pulse-col-meter-fill.post{background:linear-gradient(90deg,#c4b5fd,#7c3aed)}.pulse-compare.accent-pi .pulse-compare-sub.post,.pulse-compare.accent-pi .pulse-compare-title strong,.pulse-compare.accent-pi .pulse-phase-tag.post{color:#6d28d9}.pulse-compare.accent-pi .pulse-compare-arrow{color:#6d28d9;border-color:rgba(124,58,237,.28)}.pulse-col-band{margin-top:.2rem;font-size:.72rem;font-weight:700}.prepost-graphs{margin-top:1rem}.pulse-compare-head{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:1rem}.pulse-compare-title{display:flex;gap:.65rem;align-items:center}.pulse-compare-title strong{display:block;font-size:.98rem;font-weight:700;color:var(--brand-deep,#1a1410);letter-spacing:-.01em}.pulse-compare-subtitle,.pulse-compare-title small{display:flex;flex-wrap:wrap;gap:.45rem .65rem;margin-top:.15rem;font-size:.78rem;color:var(--muted);font-weight:500}.pulse-compare-sub.pre{color:#64748b;font-weight:600}.pulse-compare-sub.post{font-weight:800;padding:.1rem .4rem;border-radius:999px;background:rgba(255,232,214,.55)}.pulse-compare-badge{font-size:.78rem;font-weight:700;padding:.35rem .7rem;border-radius:999px;background:#f1f5f9;color:#475569;white-space:nowrap}.pulse-compare-badge.up{background:#ffe8d6;color:#e85d00}.pulse-compare-badge.down{background:#fee2e2;color:#991b1b}.pulse-compare-badge.neutral-delta{background:#e0f2fe;color:#0369a1}.pulse-compare-body{display:grid;grid-template-columns:1fr auto 1fr;grid-gap:.65rem;gap:.65rem;align-items:stretch;min-height:0}.pulse-col{display:flex;flex-direction:column;align-items:stretch;text-align:center;gap:.45rem;min-width:0}.pulse-phase-tag{display:inline-block;align-self:center;font-size:.78rem;font-weight:800;letter-spacing:.1em;padding:.22rem .72rem;border-radius:999px}.pulse-phase-tag.pre{color:#64748b;background:#f1f5f9}.pulse-phase-tag.post{font-size:.92rem;animation:prepost-post-emphasis 1.35s ease-in-out infinite}.pulse-col-panel{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1rem .75rem .85rem;border-radius:16px;border:2px solid rgba(148,163,184,.22);background:#f8fafc;min-height:148px}.pulse-col-panel.pre{border-color:rgba(148,163,184,.28);background:linear-gradient(180deg,#f8fafc,#fff)}.pulse-col-panel.post{border-width:2px;animation:prepost-post-emphasis 1.35s ease-in-out infinite}.pulse-col-value{font-family:var(--display);font-size:2.5rem;font-weight:700;line-height:1;color:#475569;letter-spacing:-.03em;animation:pulse-value-in .45s ease both}.pulse-col-value.post{font-size:2.85rem;color:#0369a1}.pulse-col-unit{margin-top:.25rem;font-size:.82rem;font-weight:600;color:#94a3b8;text-transform:lowercase}.pulse-col-unit.post{color:#0ea5e9;font-weight:700}.pulse-col-meter{width:100%;max-width:120px;height:6px;margin-top:.85rem;border-radius:999px;background:rgba(148,163,184,.18);overflow:hidden}.pulse-col-meter-fill{height:100%;border-radius:999px;transition:width .55s cubic-bezier(.22,1,.36,1)}.pulse-col-meter-fill.pre{background:linear-gradient(90deg,#94a3b8,#64748b)}.pulse-col-meter-fill.post{background:linear-gradient(90deg,#7dd3fc,#0284c7)}.pulse-compare-mid{display:flex;align-items:center;justify-content:center;align-self:center;padding:0 .15rem}.pulse-compare-arrow{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#fff;border:2px solid rgba(14,165,233,.28);color:#0284c7;font-weight:800;font-size:1.85rem;line-height:1;box-shadow:0 8px 20px rgba(15,23,42,.08)}@keyframes pulse-value-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.pulse-col-value{animation:none}.pulse-col-meter-fill{transition:none}.pulse-col-panel.post,.pulse-phase-tag.post,.spo2-range-pin.post .spo2-range-pin-label{animation:none}}.participant-locked{display:flex;gap:.85rem;align-items:center}.photo-preview{width:96px;height:96px;object-fit:cover;border-radius:14px;border:1px solid var(--line)}.ok-msg{color:#e85d00;background:#ffe8d6;padding:.65rem .85rem;border-radius:12px}.results-row{display:flex;gap:.75rem;padding:.75rem 0;border-bottom:1px solid var(--line)}.results-row:last-child{border-bottom:0}.results-body{flex:1 1;min-width:0}.results-metrics{display:flex;flex-wrap:wrap;gap:.65rem;font-size:.85rem;color:var(--muted);margin:.25rem 0 .35rem}.event-overall-chart{margin-bottom:.9rem}.event-overall-head{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;flex-wrap:wrap;margin-bottom:.85rem}.event-overall-head h2{margin:0 0 .25rem;font-size:1.15rem}.event-overall-head .muted{margin:0;font-size:.85rem}.event-overall-head .delta-pos{color:#e85d00;font-weight:700}.event-overall-head .delta-neg{color:#b91c1c;font-weight:700}.event-overall-legend{display:flex;flex-wrap:wrap;gap:.85rem;font-size:.78rem;font-weight:700}.event-overall-legend .leg{display:inline-flex;align-items:center;gap:.35rem}.event-overall-legend .leg:before{content:"";width:10px;height:10px;border-radius:3px}.event-overall-legend .leg.pre:before{background:linear-gradient(180deg,#94a3b8,#64748b)}.event-overall-legend .leg.post:before{background:linear-gradient(180deg,#ffb366,#e85d00)}.ov-grid-layout{display:grid;grid-template-columns:1fr;grid-gap:.75rem;gap:.75rem}@media (min-width:720px){.ov-grid-layout{grid-template-columns:1fr 1fr}}.ov-panel{border:1px solid var(--line);border-radius:14px;padding:.85rem .9rem .95rem;background:#fff}.ov-panel h3{margin:0;font-size:.95rem;font-family:var(--display);letter-spacing:-.02em}.ov-panel-sub{margin:.2rem 0 .55rem;font-size:.78rem;color:var(--muted)}.ov-empty{margin:.5rem 0 0;font-size:.85rem}.ov-agg-svg{display:block;margin:0 auto;max-width:220px}.ov-bar-val{fill:var(--ink);font-size:11px;font-weight:700}.ov-grid{stroke:#f0e6dc;stroke-width:1;stroke-dasharray:3 4}.ov-name{fill:#7a6558;font-size:11px;font-weight:700}.ov-pie-wrap{display:flex;align-items:center;gap:.85rem;flex-wrap:wrap}.ov-pie-svg{display:block;flex-shrink:0;margin:0 auto}.ov-pie-center-val{fill:var(--brand-deep);font-size:18px;font-weight:800;font-family:var(--display)}.ov-pie-center-label{fill:var(--muted);font-size:10px;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.ov-pie-legend{list-style:none;margin:0;padding:0;flex:1 1;min-width:140px;display:flex;flex-direction:column;gap:.45rem}.ov-pie-legend li{display:flex;align-items:center;gap:.45rem;font-size:.8rem}.ov-pie-swatch{width:10px;height:10px;border-radius:3px;flex-shrink:0}.ov-pie-leg-label{flex:1 1;font-weight:600;color:var(--ink)}.ov-pie-legend strong{font-weight:700;color:var(--muted);white-space:nowrap}.ov-outcome-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;grid-gap:.5rem;gap:.5rem}.ov-outcome-grid-3{grid-template-columns:1fr 1fr 1fr}.ov-spo2-track-label{margin-top:.85rem!important;font-weight:700}.ov-panel-rule{margin-bottom:.55rem!important}.delta-track{color:var(--muted);font-weight:700}.ov-outcome{border-radius:12px;padding:.65rem .7rem;background:#fff7f0;border:1px solid rgba(232,93,0,.12)}.ov-outcome.success{background:#fff4e8;border-color:rgba(232,93,0,.28)}.ov-outcome.up{background:#f0fdf4;border-color:rgba(22,163,74,.2)}.ov-outcome.flat{background:#f8fafc;border-color:var(--line)}.ov-outcome.down{background:#fef2f2;border-color:rgba(185,28,28,.18)}.ov-outcome-pct{font-family:var(--display);font-size:1.25rem;font-weight:800;letter-spacing:-.03em;color:var(--brand-deep)}.ov-outcome.up .ov-outcome-pct{color:#15803d}.ov-outcome.down .ov-outcome-pct{color:#b91c1c}.ov-outcome.flat .ov-outcome-pct{color:#64748b}.ov-outcome-label{font-size:.78rem;font-weight:700;margin-top:.1rem}.ov-outcome-count{font-size:.72rem;color:var(--muted);margin-top:.15rem}.ov-band-stack{display:flex;height:14px;border-radius:999px;overflow:hidden;background:#fff1e6;margin:.35rem 0 .65rem}.ov-band-seg{height:100%;min-width:2px}.ov-band-legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.ov-band-legend li{display:flex;align-items:center;gap:.45rem;font-size:.8rem}.ov-band-legend li span:nth-child(2){flex:1 1;color:var(--muted)}.ov-band-legend strong{font-weight:700;white-space:nowrap}.ov-band-swatch{width:10px;height:10px;border-radius:3px;flex-shrink:0}.stats-block{margin-bottom:.75rem}.stats-block.filtered{padding:.75rem;border:1px dashed var(--line);border-radius:14px;background:#f8fafc}.stats-caption{margin:0 0 .5rem;font-size:.82rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.results-filters{margin:.75rem 0 1rem}.prepost-graphs{display:flex;flex-direction:column;gap:.85rem;margin-top:1.15rem}.prepost-delta{font-size:.78rem;font-weight:700;padding:.2rem .55rem;border-radius:999px;background:#eef2f6;color:var(--muted)}.prepost-delta.up{background:#ffe8d6;color:#e85d00}.prepost-delta.down{background:#fee2e2;color:#991b1b}.prepost-delta.neutral{background:#eef2f6;color:#475569}.metric-graph{padding:.85rem .75rem .55rem;border-radius:16px;border:1px solid var(--line);background:#fff;box-shadow:0 8px 20px rgba(15,23,42,.04)}.metric-graph.accent-orange,.metric-graph.accent-teal{background:radial-gradient(90% 80% at 100% 0,rgba(255,122,0,.12),transparent 55%),#fff;border-color:rgba(232,93,0,.16)}.metric-graph.accent-sky{background:radial-gradient(90% 80% at 100% 0,rgba(56,189,248,.1),transparent 55%),#fff;border-color:rgba(14,165,233,.16)}.metric-graph-head{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;padding:0 .35rem;margin-bottom:.15rem}.metric-graph-head strong{display:block;font-size:.92rem;font-weight:700;color:var(--brand-deep,#1a1410)}.metric-graph-head small{display:block;margin-top:.15rem;font-size:.75rem;color:var(--muted);font-weight:500}.metric-graph-svg{width:100%;height:auto;display:block}.metric-grid{stroke:#e2e8f0;stroke-width:1;stroke-dasharray:3 4}.metric-axis-label{fill:#94a3b8;font-size:10px;font-weight:600}.metric-bar{filter:drop-shadow(0 6px 10px rgba(15,23,42,.12))}.metric-bar-val{fill:#475569;font-size:12px;font-weight:700}.metric-bar-val.post{fill:#e85d00}.accent-sky .metric-bar-val.post{fill:#0369a1}.metric-phase-label{fill:#94a3b8;font-size:11px;font-weight:800;letter-spacing:.06em}.metric-phase-label.post{fill:#e85d00}.accent-sky .metric-phase-label.post{fill:#0284c7}.metric-connector{stroke:#cbd5e1;stroke-width:1.5;stroke-dasharray:4 4;fill:none}.prepost-inline{display:flex;flex-direction:column;gap:.35rem;margin-top:.5rem;font-size:.85rem;color:var(--muted)}.prepost-inline .prepost-delta{margin-left:.35rem;vertical-align:middle}.participant-result-card{padding:1.15rem}.participant-result-head{display:flex;gap:1rem;align-items:center}.participant-result-meta h1{margin:0;font-size:1.35rem;font-family:var(--display);color:var(--brand-deep)}.participant-result-meta p{margin:.2rem 0 0;color:var(--muted);font-size:.92rem}.result-pill{display:inline-block;margin-top:.55rem;padding:.25rem .65rem;border-radius:999px;font-size:.78rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.result-pill.success{background:#ffe8d6;color:#e85d00}.result-pill.done{background:#eef2f6;color:var(--muted)}.participant-wellness{margin-top:1.15rem;padding-top:1rem;border-top:1px solid var(--line)}.metric-scale-cards,.participant-scales{margin-top:1.15rem;display:flex;flex-direction:column;gap:.75rem}.pre-snapshot .metric-scale-cards{margin-top:.85rem}.participant-scales .participant-wellness{margin-top:0;padding:1rem 0;border-top:1px solid var(--line)}.participant-scales .participant-wellness:first-child{border-top:0;padding-top:.35rem}.participant-wellness-label{margin:0 0 .5rem;font-size:.82rem;font-weight:600;color:var(--muted)}.participant-wellness-hint{margin:-.25rem 0 .55rem;font-size:.72rem;color:var(--muted);line-height:1.35}.metric-scale-card{position:relative;padding:.9rem .95rem 1rem 1rem;border-radius:16px;border:1px solid rgba(26,20,16,.06);background:#fff;overflow:hidden}.metric-scale-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:currentColor}.metric-scale-head{display:flex;align-items:center;gap:.65rem;margin-bottom:.7rem;min-width:0}.metric-icon-badge,.metric-scale-icon{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:12px;color:#fff;flex-shrink:0}.metric-icon-badge-spo2{background:linear-gradient(145deg,#38bdf8,#0284c7);box-shadow:0 6px 14px rgba(2,132,199,.28)}.metric-icon-badge-pulse{background:linear-gradient(145deg,#f87171,#dc2626);box-shadow:0 6px 14px rgba(220,38,38,.28)}.metric-icon-badge-pi{background:linear-gradient(145deg,#a78bfa,#7c3aed);box-shadow:0 6px 14px rgba(124,58,237,.28)}.metric-scale-titles{display:flex;flex-direction:column;gap:.05rem;min-width:0;flex:1 1;line-height:1.15}.metric-scale-titles strong{font-family:var(--display);font-size:1.15rem;font-weight:800;letter-spacing:-.02em;color:var(--ink)}.metric-scale-titles small{font-size:.74rem;font-weight:600;color:var(--muted)}.metric-scale-badge{flex:none;max-width:42%;padding:.3rem .55rem;border-radius:999px;font-size:.72rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metric-scale-hint{margin:-.2rem 0 .65rem;font-size:.72rem;color:var(--muted);line-height:1.35}.metric-spo2{color:#0284c7;background:linear-gradient(180deg,#eff6ff,#fff 55%);border-color:rgba(2,132,199,.16)}.metric-pulse{color:#dc2626;background:linear-gradient(180deg,#fff5f5,#fff 55%);border-color:rgba(220,38,38,.14)}.metric-pi{color:#7c3aed;background:linear-gradient(180deg,#f5f3ff,#fff 55%);border-color:rgba(124,58,237,.16)}.participant-result-empty{margin-top:1rem;display:flex;flex-direction:column;gap:.75rem;align-items:flex-start}.participant-result-actions{margin-top:.75rem}.results-body a{color:inherit;text-decoration:none}.results-body a:hover{text-decoration:underline}.muted{color:var(--muted)}.mqtt-station-bar,.oxi-stations{display:flex;flex-direction:column;gap:.75rem}.oxi-stations-head{display:flex;justify-content:space-between;align-items:center;gap:.65rem;flex-wrap:wrap}.oxi-stations-title{display:flex;align-items:baseline;gap:.5rem}.oxi-stations-title h3{margin:0;font-size:1.05rem;font-family:var(--display);letter-spacing:-.02em}.oxi-count{font-size:.75rem;font-weight:700;color:var(--brand-deep)}.oxi-stations-badges{display:flex;align-items:center;gap:.35rem}.oxi-chip,.oxi-place-pill,.oxi-status-pill{display:inline-flex;align-items:center;gap:.3rem;padding:.28rem .65rem;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.02em}.oxi-status-pill:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.oxi-status-pill.online{color:#15803d;background:#ecfdf5}.oxi-status-pill.connecting{color:#c2410c;background:#fff7ed}.oxi-status-pill.offline{color:#64748b;background:#f1f5f9}.oxi-place-pill{color:var(--brand-deep);background:var(--brand-soft);border:1px solid rgba(232,93,0,.18)}.oxi-selected-strip{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;padding:.75rem .9rem;border-radius:14px;border:1px solid rgba(232,93,0,.22);background:linear-gradient(135deg,#fff7f0,#fff)}.oxi-selected-strip.is-off{border-color:rgba(185,28,28,.2);background:linear-gradient(135deg,#fef2f2,#fff)}.oxi-selected-label{display:block;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:.15rem}.oxi-selected-main strong{display:block;font-size:.95rem}.oxi-selected-mac{display:block;margin-top:.1rem;font-size:.72rem;font-family:ui-monospace,Consolas,monospace;color:var(--muted)}.oxi-selected-side{display:flex;align-items:center;gap:.45rem}.oxi-chip.ok{color:#15803d;background:#ecfdf5}.oxi-chip.warn{color:#b91c1c;background:#fef2f2}.oxi-clear-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;color:var(--muted);font:inherit;font-size:.82rem;font-weight:600;text-decoration:underline;text-underline-offset:2px;min-height:auto;padding:0;border-radius:0;cursor:pointer}.oxi-clear-btn:hover{color:#c2410c}.oxi-empty{text-align:center;padding:1.25rem 1rem 1.35rem;border-radius:14px;border:1px dashed rgba(232,93,0,.28);background:#fffaf5}.oxi-empty-icon{display:flex;justify-content:center;gap:.45rem;margin-bottom:.75rem}.oxi-empty-icon span{width:10px;height:10px;border-radius:50%;background:#ffb366;opacity:.35;animation:oxi-pulse 1.4s ease-in-out infinite}.oxi-empty-icon span:nth-child(2){animation-delay:.2s;opacity:.55}.oxi-empty-icon span:nth-child(3){animation-delay:.4s;opacity:.8}@keyframes oxi-pulse{0%,to{transform:scale(.85);opacity:.35}50%{transform:scale(1.15);opacity:1}}.oxi-empty-title{margin:0;font-weight:800;font-family:var(--display);letter-spacing:-.02em}.oxi-empty-copy{font-size:.84rem;color:var(--muted);max-width:22rem;margin:.3rem auto 0}.oxi-stations-hint{margin:-.15rem 0 0}.oxi-station-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;grid-gap:.65rem;gap:.65rem}@media (min-width:640px){.oxi-station-grid{grid-template-columns:1fr 1fr}}.oxi-station{display:flex;align-items:flex-start;gap:.75rem;width:100%;text-align:left;border:2px dashed #d8cfc4;border-radius:14px;padding:.85rem .9rem;background:#fffdf9;font:inherit;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:border-color .15s ease,border-style .15s ease,background .15s ease,box-shadow .15s ease,transform .12s ease,opacity .15s ease}.oxi-station-indicator{flex:0 0 1.35rem;width:1.35rem;height:1.35rem;margin-top:.15rem;border:2px solid #c9bfb3;border-radius:999px;background:#fff;position:relative;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.oxi-station-body{flex:1 1;min-width:0}.oxi-station.on:hover:not(:disabled){border-color:rgba(255,122,0,.55);background:rgba(255,122,0,.04)}.oxi-station.on:active:not(:disabled){transform:scale(.99)}.oxi-station.selected{border-style:solid;border-color:var(--brand);background:rgba(255,122,0,.1);box-shadow:0 4px 14px rgba(255,122,0,.12)}.oxi-station.selected .oxi-station-indicator{border-color:var(--brand);background:#fff;box-shadow:inset 0 0 0 3px #fff}.oxi-station.selected .oxi-station-indicator:after{content:"";position:absolute;inset:3px;border-radius:999px;background:var(--brand)}.oxi-station.selected .oxi-station-hint{color:#c2410c;font-weight:700}.oxi-station.off{opacity:.72;background:#f8f6f3;border-color:#e5ddd3}.oxi-station.off,.oxi-station:disabled{cursor:not-allowed}.oxi-station-top{display:flex;align-items:flex-start;gap:.55rem}.oxi-station-id{flex:1 1;min-width:0}.oxi-station-id strong{display:block;font-size:.95rem;line-height:1.2}.oxi-station-id small{display:block;margin-top:.12rem;font-size:.7rem;font-family:ui-monospace,Consolas,monospace;color:var(--muted);overflow:hidden;text-overflow:ellipsis}.oxi-station-hint{display:block;margin-top:.28rem;font-size:.75rem;font-weight:600;color:#9a8f84;font-family:var(--font,inherit)}.oxi-station.on:not(.selected) .oxi-station-hint{color:#b45309}.oxi-pick-hint,.oxi-selected-tag{display:none}.oxi-station-metrics{display:grid;grid-template-columns:1fr 1fr .8fr;grid-gap:.35rem;gap:.35rem;margin-top:.75rem;padding-top:.7rem;border-top:1px solid rgba(26,20,16,.06)}.oxi-m-label{display:block;font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.oxi-m-val{display:block;margin-top:.1rem;font-family:var(--display);font-size:1.2rem;font-weight:800;letter-spacing:-.03em;color:var(--brand-deep);line-height:1.1}.oxi-m-val small{font-size:.75rem;margin-left:1px}.oxi-m-val.tiny{font-size:.95rem;color:var(--muted)}.oxi-m-val.tiny.ok{color:#15803d}.oxi-station-offline{margin:.65rem 0 0;font-size:.8rem;color:var(--muted)}.mqtt-station-head{display:flex;justify-content:space-between;gap:.5rem;align-items:center;flex-wrap:wrap}.mqtt-conn{font-size:.78rem;font-weight:600;color:var(--muted)}.mqtt-conn.online{color:#e85d00}.av-login{gap:1.5rem}.av-login-hero{text-align:center;display:flex;flex-direction:column;align-items:center}.av-login-logo{width:96px;height:96px;object-fit:contain;margin-bottom:.75rem;filter:drop-shadow(0 8px 20px rgba(232,93,0,.25))}.av-pill{display:inline-block;margin:0 0 .75rem;padding:.35rem .85rem;border-radius:999px;background:#fff;border:1px solid rgba(255,122,0,.35);color:var(--brand);font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.av-login h1{text-align:center;margin:0 0 .5rem}.av-accent{color:var(--brand)}.av-login .lead{text-align:center;max-width:28rem}html[lang=zh-Hans] .av-login .lead{word-break:keep-all;line-break:strict;text-wrap:pretty;max-width:20em}.av-login-panel{border:1px solid rgba(255,122,0,.18);box-shadow:var(--shadow)}.av-btn{width:100%;background:linear-gradient(90deg,#ff8f2a,#ff7a00 50%,#e85d00)}