@font-face{font-family:Golos Text;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/golos-text-cyrillic-wght-mKek_fSS.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Golos Text;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/golos-text-latin-wght-BS5oQT7X.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #f6f2ed;--bg-accent: radial-gradient(120% 80% at 50% 0%, #fdf6f1 0%, #f6f2ed 55%);--surface: #ffffff;--surface-sunken: #f2ece5;--surface-raised: #fffdfb;--text: #17202e;--text-strong: #0d1522;--muted: #6a7183;--faint: #9aa1b1;--border: #e8e0d7;--border-strong: #d9cfc3;--primary: #ef2d32;--primary-press: #cf1f24;--primary-tint: #fdeceb;--on-primary: #ffffff;--online: #12996b;--online-tint: #e6f5ef;--warn: #c9821c;--warn-tint: #fdf1de;--offline: #8b93a4;--offline-tint: #eeeef1;--danger: #ef2d32;--danger-tint: #fdeceb;--shadow-sm: 0 1px 2px rgba(58, 42, 28, .05), 0 2px 8px rgba(58, 42, 28, .04);--shadow-md: 0 2px 6px rgba(58, 42, 28, .06), 0 12px 28px rgba(58, 42, 28, .07);--shadow-lg: 0 8px 20px rgba(58, 42, 28, .1), 0 24px 60px rgba(58, 42, 28, .12);--ring: 0 0 0 3px rgba(239, 45, 50, .22);--r-xs: 8px;--r-sm: 12px;--r-md: 16px;--r-lg: 22px;--r-xl: 28px;--r-pill: 999px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--fs-xs: .75rem;--fs-sm: .8125rem;--fs-base: .9375rem;--fs-md: 1rem;--fs-lg: 1.125rem;--fs-xl: 1.3125rem;--fs-2xl: 1.625rem;--topbar-h: 56px;--nav-h: 62px;--nav-rail-w: 66px;--page-w: 560px;--ease: cubic-bezier(.22, .61, .36, 1)}:root[data-theme=dark]{--bg: #0f1522;--bg-accent: radial-gradient(120% 80% at 50% 0%, #1a2237 0%, #0f1522 55%);--surface: #18202f;--surface-sunken: #131a28;--surface-raised: #1e2739;--text: #eef1f6;--text-strong: #ffffff;--muted: #9ba4b6;--faint: #6f7889;--border: #27314a;--border-strong: #35415e;--primary: #ff4d52;--primary-press: #e63b40;--primary-tint: #2c1c22;--online: #2fbc86;--online-tint: #14301f;--warn: #e3a444;--warn-tint: #2f2617;--offline: #7b8496;--offline-tint: #1d2433;--danger: #ff5a5f;--danger-tint: #2c1c22;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 2px 8px rgba(0, 0, 0, .35), 0 14px 34px rgba(0, 0, 0, .35);--shadow-lg: 0 10px 26px rgba(0, 0, 0, .45), 0 28px 70px rgba(0, 0, 0, .5);--ring: 0 0 0 3px rgba(255, 77, 82, .3)}*,*:before,*:after{box-sizing:border-box}html{height:100%;width:100%;overflow-x:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{min-height:100%;width:100%}body{margin:0;font-family:Golos Text,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:var(--fs-base);line-height:1.5;background:var(--bg);background-image:var(--bg-accent);background-attachment:fixed;color:var(--text);-webkit-font-smoothing:antialiased;touch-action:manipulation}#root{min-height:100%;min-height:100dvh;width:100%;overflow-x:hidden}h1,h2,h3{margin:0;color:var(--text-strong);letter-spacing:-.015em;line-height:1.25}h1{font-size:var(--fs-2xl);font-weight:700}h2{font-size:var(--fs-lg);font-weight:650}h3{font-size:var(--fs-md);font-weight:600}p{margin:0}a{color:var(--primary);text-decoration:none;font-weight:550}a:hover{text-decoration:underline}:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--r-xs)}.muted{color:var(--muted)}.note{font-size:var(--fs-sm);line-height:1.45}.error{color:var(--danger);font-size:var(--fs-sm);font-weight:550}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.shell{min-height:100vh;min-height:100dvh;width:100%;overflow-x:hidden}.topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:var(--sp-3);height:calc(var(--topbar-h) + env(safe-area-inset-top));padding:env(safe-area-inset-top) var(--sp-4) 0;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid transparent;transition:border-color .2s var(--ease)}.topbar--scrolled{border-bottom-color:var(--border)}.topbar-mark{width:30px;height:30px;border-radius:9px;background:url(/pwa-192x192.png) center / cover no-repeat;flex:0 0 auto;box-shadow:var(--shadow-sm)}.topbar-text{min-width:0;flex:1;display:flex;flex-direction:column;justify-content:center}.topbar-title{font-size:var(--fs-md);font-weight:650;color:var(--text-strong);letter-spacing:-.015em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-sub{font-size:var(--fs-xs);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-status{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:var(--r-pill);font-size:var(--fs-xs);font-weight:600;background:var(--offline-tint);color:var(--muted)}.topbar-status--online{background:var(--online-tint);color:var(--online)}.topbar-status--warn{background:var(--warn-tint);color:var(--warn)}.topbar-status--offline{background:var(--offline-tint);color:var(--muted)}.dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex:0 0 auto}.dot--pulse{animation:dot-pulse 2.4s ease-in-out infinite}@keyframes dot-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.82)}}.content{width:100%;max-width:var(--page-w);margin:0 auto;padding:var(--sp-4) var(--sp-4) calc(var(--nav-h) + env(safe-area-inset-bottom) + var(--sp-6))}.nav{position:fixed;left:0;right:0;bottom:0;z-index:50;display:flex;justify-content:center;gap:2px;padding:6px var(--sp-2) env(safe-area-inset-bottom);background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:saturate(1.4) blur(18px);-webkit-backdrop-filter:saturate(1.4) blur(18px);border-top:1px solid var(--border)}.nav-brand{display:none;align-items:center;gap:10px}.nav-brand-mark{width:28px;height:28px;border-radius:9px;background:url(/pwa-192x192.png) center / cover no-repeat;flex-shrink:0}.nav-item{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:7px 2px 6px;border-radius:var(--r-md);text-decoration:none;color:var(--muted);font-size:.6875rem;font-weight:550;letter-spacing:-.01em;-webkit-tap-highlight-color:transparent;transition:color .18s var(--ease),background-color .18s var(--ease)}.nav-item:hover{text-decoration:none}.nav-item:active{background:var(--surface-sunken)}.nav-item.active{color:var(--primary)}.nav-ico{width:23px;height:23px;transition:transform .22s var(--ease)}.nav-item.active .nav-ico{transform:translateY(-1px)}.nav-label{line-height:1;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 420px){.nav-item{font-size:.625rem;letter-spacing:-.02em;padding-left:0;padding-right:0}}@media (max-width: 360px){.nav{padding-left:var(--sp-1);padding-right:var(--sp-1)}.nav-item{font-size:.5625rem}.nav-ico{width:21px;height:21px}}.offline-bar{position:sticky;top:calc(var(--topbar-h) + env(safe-area-inset-top));z-index:39;display:flex;align-items:center;gap:var(--sp-2);margin:0 auto;max-width:var(--page-w);padding:9px var(--sp-4);background:var(--warn-tint);color:var(--warn);font-size:var(--fs-sm);font-weight:550}.offline-bar svg{width:17px;height:17px;flex:0 0 auto}.offline-bar span{flex:1;min-width:0}.refresh-toast{position:fixed;left:50%;top:calc(var(--topbar-h) + env(safe-area-inset-top) + 8px);transform:translate(-50%);z-index:60;padding:9px 16px;border-radius:var(--r-pill);background:var(--text-strong);color:var(--bg);font-size:var(--fs-sm);font-weight:550;box-shadow:var(--shadow-md);animation:toast-in .24s var(--ease)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}.tab-pane[hidden]{display:none}.stack{display:flex;flex-direction:column;gap:var(--sp-4)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-5);box-shadow:var(--shadow-sm)}.card.narrow{max-width:420px;margin:0 auto}.card>h2+.note{margin-top:var(--sp-1)}.card-flush{padding:0;overflow:hidden}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-3)}.card-head h2{flex:1;min-width:0}button{font:inherit;font-weight:600;letter-spacing:-.01em}.card button:not([class]),.form button:not([class]),button.btn{width:100%;min-height:48px;padding:12px 20px;border:0;border-radius:var(--r-md);background:var(--primary);color:var(--on-primary);font-size:var(--fs-md);cursor:pointer;transition:transform .12s var(--ease),background-color .15s var(--ease),opacity .15s var(--ease)}.card button:not([class]):active:not(:disabled),.form button:not([class]):active:not(:disabled),button.btn:active:not(:disabled){background:var(--primary-press);transform:scale(.985)}.card button:not([class]):disabled,.form button:not([class]):disabled,button.btn:disabled{background:var(--surface-sunken);color:var(--faint);cursor:not-allowed}.btn-secondary{width:100%;min-height:48px;padding:12px 20px;border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);color:var(--text);font-size:var(--fs-md);cursor:pointer;transition:background-color .15s var(--ease),transform .12s var(--ease)}.btn-secondary:active:not(:disabled){background:var(--surface-sunken);transform:scale(.985)}.btn-compact{min-height:36px;padding:7px 14px;border:1px solid var(--border-strong);border-radius:var(--r-pill);background:var(--surface);color:var(--text);font-size:var(--fs-sm);font-weight:600;cursor:pointer;white-space:nowrap;transition:background-color .15s var(--ease)}.btn-compact:active:not(:disabled){background:var(--surface-sunken)}.btn-compact:disabled{color:var(--faint);cursor:not-allowed}.btn-ghost{min-height:44px;padding:10px 18px;border:0;border-radius:var(--r-md);background:transparent;color:var(--muted);font-size:var(--fs-base);cursor:pointer}.btn-ghost:active{background:var(--surface-sunken)}.btn-link{display:inline-block;padding:10px 2px;border:0;background:none;color:var(--primary);font-size:var(--fs-base);font-weight:600;cursor:pointer}.link-btn{padding:6px 0;border:0;background:none;color:var(--primary);font-size:var(--fs-sm);font-weight:600;cursor:pointer}.btn-danger{min-height:44px;padding:11px 18px;border:1px solid color-mix(in srgb,var(--danger) 30%,transparent);border-radius:var(--r-md);background:var(--danger-tint);color:var(--danger);font-size:var(--fs-base);font-weight:600;cursor:pointer}.btn-danger:active:not(:disabled){background:color-mix(in srgb,var(--danger) 16%,transparent)}.btn-danger--block{width:100%}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex:0 0 auto;border:0;border-radius:var(--r-pill);background:var(--surface-sunken);color:var(--text);font-size:1.25rem;line-height:1;cursor:pointer;transition:background-color .15s var(--ease)}.icon-btn:active{background:var(--border)}.icon-btn svg{width:20px;height:20px}.icon-btn-accent{background:var(--primary);color:var(--on-primary);box-shadow:var(--shadow-sm)}.icon-btn-accent:active{background:var(--primary-press)}.row{display:flex;align-items:center;gap:var(--sp-3)}.form{display:flex;flex-direction:column;gap:var(--sp-4)}.form label,label.device-picker{display:flex;flex-direction:column;gap:7px;font-size:var(--fs-sm);font-weight:600;color:var(--muted)}input[type=text],input[type=email],input[type=password],input[type=date],input[type=time],input:not([type]),textarea,select{width:100%;font-family:inherit;font-size:1rem;font-weight:450;color:var(--text);background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--r-md);padding:12px 14px;min-height:48px;transition:border-color .15s var(--ease),box-shadow .15s var(--ease);-webkit-appearance:none;-moz-appearance:none;appearance:none}textarea{resize:vertical;line-height:1.5;min-height:84px}select{background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 15px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:38px}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--primary);box-shadow:var(--ring)}input::placeholder,textarea::placeholder{color:var(--faint)}input:disabled,textarea:disabled,select:disabled{background:var(--surface-sunken);color:var(--muted);cursor:not-allowed}.checkbox-row,.form label.checkbox-row{flex-direction:row;align-items:center;gap:10px;font-size:var(--fs-base);font-weight:500;color:var(--text)}.checkbox-row input[type=checkbox]{width:22px;height:22px;min-height:0;flex:0 0 auto;padding:0;border-radius:7px;accent-color:var(--primary);-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}input[type=range]{width:100%;min-height:0;height:32px;padding:0;border:0;background:transparent;accent-color:var(--primary);-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:var(--r-pill);background:var(--surface-sunken)}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;margin-top:-10px;border-radius:50%;background:var(--surface);border:2px solid var(--primary);box-shadow:var(--shadow-sm)}input[type=range]::-moz-range-track{height:6px;border-radius:var(--r-pill);background:var(--surface-sunken)}input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--surface);border:2px solid var(--primary)}.switch{position:relative;width:50px;height:30px;flex:0 0 auto;padding:0;border:0;border-radius:var(--r-pill);background:var(--border-strong);cursor:pointer;transition:background-color .2s var(--ease)}.switch.on{background:var(--online)}.switch .knob{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform .2s var(--ease)}.switch.on .knob{transform:translate(20px)}.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:var(--r-pill);background:var(--surface-sunken);color:var(--muted);font-size:var(--fs-xs);font-weight:600;white-space:nowrap}.badge-claimed{background:var(--online-tint);color:var(--online)}.badge-unclaimed{background:var(--warn-tint);color:var(--warn)}.page-skeleton{display:flex;flex-direction:column;gap:10px;padding:var(--sp-1) 0}.page-skeleton-line{height:13px;border-radius:var(--r-pill);background:linear-gradient(90deg,var(--surface-sunken) 25%,color-mix(in srgb,var(--surface-sunken) 55%,var(--surface)) 50%,var(--surface-sunken) 75%);background-size:220% 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite}@keyframes skeleton-shimmer{0%{background-position:120% 0}to{background-position:-120% 0}}.empty-card{text-align:center}.empty-hero{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-4) 0 var(--sp-2)}.empty-icon{display:grid;place-items:center;width:64px;height:64px;border-radius:var(--r-lg);background:var(--surface-sunken);color:var(--faint)}.empty-icon svg{width:32px;height:32px}.empty-hero h2{font-size:var(--fs-lg)}.empty-hero p{max-width:34ch}.load-error{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--sp-3);padding:var(--sp-5) var(--sp-2)}.load-error-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:var(--r-lg);background:var(--warn-tint);color:var(--warn)}.load-error-icon svg{width:28px;height:28px}.load-error h3{font-size:var(--fs-lg)}.load-error p{max-width:34ch}.load-error .btn-compact{min-height:42px;padding:9px 22px}.notice-banner{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--border);color:var(--text);font-size:var(--fs-sm);font-weight:550;box-shadow:var(--shadow-sm)}.notice-banner.notice-delivered{background:var(--online-tint);border-color:color-mix(in srgb,var(--online) 25%,transparent);color:var(--online)}.notice-banner.notice-failed{background:var(--danger-tint);border-color:color-mix(in srgb,var(--danger) 25%,transparent);color:var(--danger)}.notice-spinner{width:16px;height:16px;flex:0 0 auto;border:2px solid color-mix(in srgb,currentColor 30%,transparent);border-top-color:currentColor;border-radius:50%;animation:notice-spin .8s linear infinite}.notice-check{font-weight:700}@keyframes notice-spin{to{transform:rotate(360deg)}}.login-page{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:max(var(--sp-6),env(safe-area-inset-top)) var(--sp-4) max(var(--sp-6),env(safe-area-inset-bottom))}.login-card{width:100%;padding:var(--sp-6);border-radius:var(--r-xl);box-shadow:var(--shadow-lg)}.login-brand{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-6);text-align:center}.login-logo{width:60px;height:60px;border-radius:var(--r-md);box-shadow:var(--shadow-sm)}.login-brand h1{font-size:var(--fs-xl)}.login-brand p{font-size:var(--fs-sm)}.gate-card{width:100%;max-width:440px;padding:var(--sp-6);border-radius:var(--r-xl);box-shadow:var(--shadow-lg)}.gate-icon{display:grid;place-items:center;width:60px;height:60px;margin-bottom:var(--sp-4);border-radius:var(--r-lg);background:var(--warn-tint);color:var(--warn)}.gate-icon svg{width:30px;height:30px}.gate-card h1{font-size:var(--fs-xl);margin-bottom:var(--sp-3)}.gate-body{display:flex;flex-direction:column;gap:var(--sp-3);margin-bottom:var(--sp-5)}.gate-actions{display:flex;flex-direction:column;gap:var(--sp-2)}.gate-actions .btn-ghost{width:100%}.page-online{gap:var(--sp-3)}.status-hero{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm)}.status-hero--online{background:var(--online-tint);border-color:transparent}.status-hero--warn{background:var(--warn-tint);border-color:transparent}.status-hero--offline{background:var(--offline-tint);border-color:transparent}.status-hero--error{background:var(--danger-tint);border-color:transparent}.status-hero-top{display:flex;align-items:center;gap:var(--sp-3);width:100%;min-width:0}.status-hero-avatar{display:grid;place-items:center;width:42px;height:42px;flex:0 0 auto;border-radius:var(--r-pill);background:var(--surface);color:var(--primary);font-size:var(--fs-lg);font-weight:700;box-shadow:var(--shadow-sm)}.status-hero-text{flex:1;min-width:0}.status-hero-headline{font-size:var(--fs-md);font-weight:650;color:var(--text-strong);letter-spacing:-.015em}.status-hero-sub{font-size:var(--fs-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-hero-dot{width:10px;height:10px;flex:0 0 auto;border-radius:50%;background:var(--offline)}.status-hero-dot--online{background:var(--online);animation:dot-pulse 2.4s ease-in-out infinite}.status-hero-dot--warn{background:var(--warn)}.status-hero-dot--offline{background:var(--offline)}.status-hero-dot--error{background:var(--danger)}.camera-card{padding:0;overflow:hidden;background:#0d1117;border-color:transparent;box-shadow:var(--shadow-md)}.camera-stage{position:relative;width:100%;aspect-ratio:4 / 3;background:#0d1117;overflow:hidden}.camera-frame{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .3s var(--ease);-webkit-user-select:none;user-select:none}.camera-frame--visible{opacity:1}.camera-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:space-between;padding:var(--sp-3);pointer-events:none;background:linear-gradient(to bottom,#0000006b,#0000 26%,#0000 68%,#00000075)}.camera-overlay-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.camera-overlay-row--end{justify-content:flex-end}.camera-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:var(--r-pill);background:#0d11179e;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;font-size:var(--fs-xs);font-weight:650;letter-spacing:.02em}.camera-badge--live .dot{background:#ff4d52}.camera-badge--live .dot{animation:dot-pulse 1.8s ease-in-out infinite}.camera-badge--wait .dot{background:#e3a444}.camera-badge--muted{background:#0d111773}.camera-audio-btn{pointer-events:auto;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:0;border-radius:var(--r-pill);background:#0d11179e;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;cursor:pointer}.camera-audio-btn svg{width:19px;height:19px}.camera-audio-btn--on{background:var(--primary)}.camera-time{font-variant-numeric:tabular-nums;letter-spacing:.04em}.camera-time:empty{display:none}.camera-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);padding:var(--sp-5);text-align:center;color:#ffffffb8;font-size:var(--fs-sm)}.camera-placeholder .muted{color:#ffffffb8}.camera-placeholder p{max-width:30ch}.camera-placeholder-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:var(--r-lg);background:#ffffff14;color:#fff9}.camera-placeholder-icon svg{width:26px;height:26px}.camera-placeholder .btn-compact{background:#ffffff24;border-color:#ffffff3d;color:#fff}.camera-spinner{width:26px;height:26px;border:2.5px solid rgba(255,255,255,.22);border-top-color:#fffc;border-radius:50%;animation:notice-spin .9s linear infinite}.phrase-composer{display:flex;flex-direction:column;gap:var(--sp-3)}.phrase-templates{display:flex;gap:var(--sp-2);overflow-x:auto;scrollbar-width:none;margin:0 calc(-1 * var(--sp-5));padding:2px var(--sp-5);scroll-snap-type:x proximity}.phrase-templates::-webkit-scrollbar{display:none}.phrase-templates-wrap{position:relative}.phrase-templates-wrap:after{content:"";position:absolute;top:0;right:0;bottom:0;width:28px;pointer-events:none;background:linear-gradient(to right,transparent,var(--surface))}.phrase-chip{flex:0 0 auto;scroll-snap-align:start;min-height:38px;padding:8px 15px;border:1px solid var(--border-strong);border-radius:var(--r-pill);background:var(--surface);color:var(--text);font-size:var(--fs-sm);font-weight:550;cursor:pointer;white-space:nowrap;transition:background-color .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease)}.phrase-chip:active{background:var(--surface-sunken)}.phrase-chip--active{background:var(--primary-tint);border-color:color-mix(in srgb,var(--primary) 40%,transparent);color:var(--primary)}.phrase-preview{padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);background:var(--surface-sunken);border-left:3px solid var(--primary)}.phrase-preview-from{display:block;font-size:var(--fs-xs);font-weight:650;color:var(--primary);margin-bottom:2px}.phrase-preview-text{font-size:var(--fs-sm);line-height:1.5}.phrase-preview-label{font-weight:650;color:var(--muted)}.sos-block{display:flex;flex-direction:column;gap:var(--sp-2);align-items:center}.sos-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:52px;padding:13px 20px;border:1px solid color-mix(in srgb,var(--danger) 32%,transparent);border-radius:var(--r-md);background:var(--danger-tint);color:var(--danger);font-size:var(--fs-md);cursor:pointer}.sos-btn:active:not(:disabled){background:color-mix(in srgb,var(--danger) 16%,transparent)}.sos-btn:disabled{opacity:.55;cursor:not-allowed}.sos-btn-icon{padding:3px 8px;border-radius:var(--r-xs);background:var(--danger);color:#fff;font-size:var(--fs-xs);font-weight:800;letter-spacing:.06em}.sos-block-note{text-align:center}.segmented{display:flex;gap:3px;padding:3px;border-radius:var(--r-pill);background:var(--surface-sunken)}.segmented button{flex:1;min-height:38px;padding:8px 12px;border:0;border-radius:var(--r-pill);background:transparent;color:var(--muted);font-size:var(--fs-sm);font-weight:600;cursor:pointer;transition:background-color .18s var(--ease),color .18s var(--ease)}.segmented button.active{background:var(--surface);color:var(--text-strong);box-shadow:var(--shadow-sm)}.history-feed{display:flex;flex-direction:column;gap:var(--sp-4)}.history-day{display:flex;flex-direction:column;gap:var(--sp-2)}.history-day-label{padding-left:var(--sp-1);font-size:var(--fs-xs);font-weight:650;color:var(--faint);text-transform:uppercase;letter-spacing:.05em}.history-card{position:relative;padding:var(--sp-4);border-radius:var(--r-md);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm)}.history-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);margin-bottom:6px}.history-card-type{font-size:var(--fs-xs);font-weight:650;color:var(--muted)}.history-card--message .history-card-type{color:var(--primary)}.history-card--reminder .history-card-type{color:var(--warn)}.history-card--sos .history-card-type{color:var(--danger)}.history-card--dialog .history-card-type{color:var(--online)}.history-card-time{font-size:var(--fs-xs)}.history-card-title{font-size:var(--fs-sm);font-weight:600;color:var(--muted);margin-bottom:3px}.history-card-body{font-size:var(--fs-base);color:var(--text);line-height:1.5}.history-card-status{display:inline-flex;align-items:center;gap:5px;margin-top:var(--sp-3);padding:3px 10px;border-radius:var(--r-pill);background:var(--surface-sunken);color:var(--muted);font-size:var(--fs-xs);font-weight:600}.history-card-status.status-delivered{background:var(--online-tint);color:var(--online)}.history-card-status.status-processing,.history-card-status.status-pending{background:var(--warn-tint);color:var(--warn)}.history-card-status.status-failed{background:var(--danger-tint);color:var(--danger)}.dialog-turns{display:flex;flex-direction:column;gap:var(--sp-2)}.dialog-turn{padding:9px 13px;border-radius:var(--r-sm);font-size:var(--fs-base);line-height:1.45}.dialog-turn--user{background:var(--surface-sunken);color:var(--text)}.dialog-turn--assistant{background:var(--primary-tint);color:var(--text)}.dialog-role{font-size:var(--fs-xs);font-weight:650;color:var(--muted)}.reminders-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-2)}.reminders-head h2{font-size:var(--fs-lg)}.reminders-tz{margin-bottom:var(--sp-4)}.reminder-list{display:flex;flex-direction:column;gap:var(--sp-2);margin:0;padding:0;list-style:none}.reminder-row{display:flex;align-items:center;gap:var(--sp-3);width:100%;padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-raised);text-align:left;cursor:pointer;transition:background-color .15s var(--ease)}.reminder-row:active{background:var(--surface-sunken)}.reminder-row-when{flex:0 0 66px;order:-1;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;padding:7px 6px;border-radius:var(--r-sm);background:var(--primary-tint);color:var(--primary);line-height:1.2;text-align:center}.reminder-row-when strong{font-size:var(--fs-md);font-weight:700;font-variant-numeric:tabular-nums}.reminder-row-when>span{font-size:.6875rem;font-weight:600;opacity:.85}.reminder-row-text{flex:1;min-width:0;font-size:var(--fs-base);font-weight:550;color:var(--text)}.reminder-form{margin-top:var(--sp-2)}.reminder-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);background:var(--surface-sunken);font-size:var(--fs-base);font-weight:550}.reminder-toggle-row .muted{font-size:var(--fs-sm);font-weight:450}.reminder-form-actions{display:flex;flex-direction:column;gap:var(--sp-2)}.reminder-error{color:var(--danger);font-size:var(--fs-sm)}.device-context-note{padding:0 var(--sp-1);font-size:var(--fs-sm)}.settings-page{gap:var(--sp-5)}.settings-group{display:flex;flex-direction:column;gap:var(--sp-2)}.settings-group-title{padding-left:var(--sp-4);font-size:var(--fs-xs);font-weight:650;color:var(--faint);text-transform:uppercase;letter-spacing:.06em}.settings-lead{margin-bottom:var(--sp-3)}.settings-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3)}.settings-subsection{margin-top:var(--sp-4);padding-top:var(--sp-4);border-top:1px solid var(--border)}.settings-subtitle{margin-bottom:var(--sp-2);font-size:var(--fs-sm);font-weight:650;color:var(--muted)}.settings-account{margin-top:var(--sp-5)}.settings-app-card{padding:0;overflow:hidden}.settings-list{margin:0;padding:0;list-style:none}.settings-list li{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border);font-size:var(--fs-base);font-weight:550}.settings-list li:last-child{border-bottom:0}.settings-list li>div:first-child{min-width:0}.settings-list .muted{font-size:var(--fs-sm);font-weight:450}.settings-inline{padding:var(--sp-4) var(--sp-5);border-top:1px solid var(--border)}.settings-about{padding:var(--sp-4) var(--sp-5);border-top:1px solid var(--border);text-align:center;font-size:var(--fs-xs);line-height:1.6}.member-list{display:flex;flex-direction:column;gap:var(--sp-2);margin:0;padding:0;list-style:none}.member-list li{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:10px var(--sp-3);border-radius:var(--r-sm);background:var(--surface-sunken);font-size:var(--fs-sm)}.member-list li>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.volume-control{display:flex;flex-direction:column;gap:6px}.volume-control-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-2);font-size:var(--fs-sm);font-weight:600;color:var(--muted)}.volume-control-value{color:var(--text);font-variant-numeric:tabular-nums}.phrase-template-editor{display:flex;flex-direction:column;gap:var(--sp-3)}.phrase-template-list{display:flex;flex-direction:column;gap:var(--sp-3);margin:0;padding:0;list-style:none}.phrase-template-item{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-raised)}.phrase-template-label{font-weight:600}.phrase-template-text{min-height:62px}.phrase-template-item-actions{display:flex;justify-content:flex-end}.phrase-template-delete{color:var(--danger)}.phrase-template-add{min-height:46px;border:1px dashed var(--border-strong);border-radius:var(--r-md);background:transparent;color:var(--primary);font-size:var(--fs-base);font-weight:600;cursor:pointer}.phrase-template-add:active{background:var(--primary-tint)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:flex-end;justify-content:center;padding:0;background:#0d111780;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);animation:fade-in .2s var(--ease)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{width:100%;max-width:480px;max-height:92dvh;overflow-y:auto;border-radius:var(--r-xl) var(--r-xl) 0 0;border-bottom:0;padding:var(--sp-5) var(--sp-5) calc(var(--sp-5) + env(safe-area-inset-bottom));box-shadow:var(--shadow-lg);animation:slide-up .28s var(--ease)}@keyframes slide-up{0%{transform:translateY(18px);opacity:.6}to{transform:translateY(0);opacity:1}}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-2)}.modal-head h2{flex:1;min-width:0}.modal .form{margin-top:var(--sp-4)}@media (min-width: 600px){.modal-backdrop{align-items:center;padding:var(--sp-4)}.modal{border-radius:var(--r-xl);border-bottom:1px solid var(--border)}}.pwa-prompt{text-align:center}.pwa-prompt-icon img{width:66px;height:66px;border-radius:var(--r-md);box-shadow:var(--shadow-sm)}.pwa-prompt h2{margin:var(--sp-3) 0 var(--sp-2)}.pwa-prompt-actions{display:flex;flex-direction:column;gap:var(--sp-2);margin-top:var(--sp-5)}.pwa-prompt-actions button:not([class]){width:100%;min-height:48px;padding:12px 20px;border:0;border-radius:var(--r-md);background:var(--primary);color:var(--on-primary);font-size:var(--fs-md);cursor:pointer}.pwa-prompt-actions button:not([class])+button:not([class]){background:var(--surface-sunken);color:var(--text)}.pwa-ios-steps{margin-top:var(--sp-4);padding:var(--sp-4);border-radius:var(--r-md);background:var(--surface-sunken);text-align:left}.pwa-ios-steps-title{font-size:var(--fs-sm);font-weight:650;margin-bottom:var(--sp-2)}.pwa-ios-steps ol{margin:0;padding-left:20px}.pwa-ios-steps-list li{margin-bottom:8px;font-size:var(--fs-sm);line-height:1.5}.pwa-step-icon{display:inline-flex;vertical-align:-3px;color:var(--muted)}.pwa-step-icon svg{width:16px;height:16px}.wifi-setup-page{max-width:var(--page-w);margin:0 auto;padding:var(--sp-4) var(--sp-4) calc(var(--nav-h) + env(safe-area-inset-bottom) + var(--sp-6))}.content .wifi-setup-page{padding:0}.wifi-setup-head{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-5)}.wifi-setup-head h1{font-size:var(--fs-xl)}.wifi-setup-body{display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-5);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm)}.wifi-intro-lead{font-size:var(--fs-base);line-height:1.55}.wifi-setup-btn{width:100%;min-height:50px;padding:13px 20px;border:0;border-radius:var(--r-md);background:var(--primary);color:var(--on-primary);font-size:var(--fs-md);cursor:pointer}.wifi-setup-btn:disabled{background:var(--surface-sunken);color:var(--faint)}.wifi-waiting{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-8) var(--sp-5);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--border);text-align:center}.wifi-waiting .notice-spinner{width:30px;height:30px;border-width:3px;color:var(--primary)}.wifi-waiting strong{font-size:var(--fs-md)}.wifi-waiting .note{max-width:34ch}.wifi-result{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-6) var(--sp-5);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--border);text-align:center}.wifi-result-icon{display:grid;place-items:center;width:58px;height:58px;border-radius:var(--r-pill);font-size:1.6rem;font-weight:700}.wifi-result--ok .wifi-result-icon{background:var(--online-tint);color:var(--online)}.wifi-result--fail .wifi-result-icon{background:var(--danger-tint);color:var(--danger)}.wifi-result h2{font-size:var(--fs-lg)}.wifi-result .note{max-width:34ch}.wifi-result .wifi-setup-btn{margin-top:var(--sp-2)}.wifi-list{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;max-height:320px;overflow-y:auto}.wifi-option{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);width:100%;min-height:50px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-raised);color:var(--text);font-size:var(--fs-base);font-weight:550;text-align:left;cursor:pointer}.wifi-option:active{background:var(--surface-sunken)}.wifi-option.active{background:var(--primary-tint);border-color:color-mix(in srgb,var(--primary) 45%,transparent);color:var(--primary)}.wifi-option.active .muted{color:var(--primary)}.settings-wifi-form{gap:var(--sp-3)}.wifi-setup-logs{margin-top:var(--sp-4);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);background:var(--surface-sunken);font-size:var(--fs-sm)}.wifi-setup-logs summary{cursor:pointer;color:var(--muted);font-weight:600}.settings-wifi-logs{margin:var(--sp-3) 0 0;max-height:260px;overflow:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.6875rem;line-height:1.5;color:var(--muted);white-space:pre-wrap;word-break:break-word}.ptr-root{position:relative}.ptr-indicator{display:flex;align-items:center;justify-content:center;overflow:hidden;opacity:0;transition:height .2s var(--ease),opacity .2s var(--ease)}.ptr-indicator--visible{opacity:1}.ptr-indicator-inner{display:flex;align-items:center;gap:var(--sp-2);color:var(--muted);font-size:var(--fs-sm);font-weight:550}.ptr-spinner{width:18px;height:18px;border:2px solid var(--border-strong);border-top-color:var(--primary);border-radius:50%}.ptr-indicator--ready .ptr-spinner{border-top-color:var(--primary)}.ptr-spinner--active{animation:ptr-spin .8s linear infinite}.ptr-indicator--loading .ptr-label{color:var(--primary)}@keyframes ptr-spin{to{transform:rotate(360deg)}}@media (orientation: landscape) and (max-width: 1023px){.nav{top:0;right:0;bottom:0;left:auto;width:calc(var(--nav-rail-w) + env(safe-area-inset-right));flex-direction:column;justify-content:center;gap:var(--sp-1);border-top:0;border-left:1px solid var(--border);padding:max(var(--sp-3),env(safe-area-inset-top)) env(safe-area-inset-right) max(var(--sp-3),env(safe-area-inset-bottom)) 0}.nav-item{flex:0 0 auto;padding:8px 2px;font-size:.5625rem}.topbar,.offline-bar,.content{padding-right:calc(var(--nav-rail-w) + env(safe-area-inset-right) + var(--sp-4))}.content{padding-bottom:var(--sp-6)}.camera-stage{aspect-ratio:16 / 9}}@media (min-width: 768px){:root{--page-w: 680px}.content{padding-left:var(--sp-5);padding-right:var(--sp-5)}}@media (min-width: 1024px) and (hover: hover) and (pointer: fine){.nav{position:sticky;top:0;bottom:auto;justify-content:flex-start;gap:var(--sp-1);padding:10px var(--sp-6);border-top:0;border-bottom:1px solid var(--border)}.nav-brand{display:flex;margin-right:var(--sp-6);font-weight:700;letter-spacing:-.02em;color:var(--text-strong)}.nav-item{flex:0 0 auto;flex-direction:row;gap:8px;padding:9px 16px;border-radius:var(--r-pill);font-size:var(--fs-sm)}.nav-item.active{background:var(--primary-tint)}.nav-ico{width:19px;height:19px}.topbar{position:static;height:auto;padding:var(--sp-5) var(--sp-4) 0;background:none;backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:0}.offline-bar{position:static;border-radius:var(--r-md);margin-top:var(--sp-3)}.content{padding-bottom:var(--sp-8)}.nav-item:hover:not(.active){background:var(--surface-sunken);color:var(--text)}.btn-compact:hover:not(:disabled){background:var(--surface-sunken)}.phrase-chip:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.wifi-option:hover:not(:disabled){border-color:var(--border-strong)}.link-btn:hover:not(:disabled){text-decoration:underline}.card button:not([class]):hover:not(:disabled),.form button:not([class]):hover:not(:disabled),button.btn:hover:not(:disabled){background:var(--primary-press)}.icon-btn-accent:hover:not(:disabled){background:var(--primary-press)}.reminder-row:hover{background:var(--surface-sunken)}.phrase-template-add:hover:not(:disabled){background:var(--primary-tint)}}.camera-audio-error{padding:10px var(--sp-4) var(--sp-3);color:#ffffffb8;font-size:var(--fs-xs);line-height:1.45}.form label>p{font-weight:450;color:var(--muted)}.form label>.note{margin-bottom:2px}.card>.note+.form,.card>.note+.phrase-composer,.card>.note+.phrase-template-editor,.card>.note+.page-skeleton,.card>.note+.load-error,.card>.note+p{margin-top:var(--sp-4)}
