:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#f5f6f8;--panel:#fff;--line:#e3e5ea;--text:#1b1f27;--muted:#6b7280;--accent:#2563eb;--accent-hover:#1d4ed8;--accent-soft:#dbeafe;--danger:#dc2626;--danger-soft:#fee2e2;--mine:#dbeafe;--theirs:#f1f3f6;--warn-soft:#fff4e5;--warn-text:#8a4b00;--bar:#f7f7f9;font-family:-apple-system,PingFang SC,Helvetica Neue,Arial,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--accent-soft:#1e3a8a;--danger-soft:#3f1d1d;--bg:#0f1218;--panel:#171b23;--line:#2a3040;--text:#e6e8ee;--muted:#8b93a5;--mine:#1e3a8a;--theirs:#222837;--warn-soft:#3a2a12;--warn-text:#f5c27a;--bar:#121620}}*{box-sizing:border-box}html,body{overscroll-behavior:none;touch-action:pan-x pan-y;height:100%}@media (pointer:coarse){input,textarea,select{font-size:16px}button,.item,.bar,.composer,.tabs{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}}body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;margin:0}:root{--safe-top-raw:env(safe-area-inset-top,0px);--safe-bottom-raw:env(safe-area-inset-bottom,0px);--safe-top:var(--safe-top-raw);--safe-bottom:var(--safe-bottom-raw)}:root.status-bar-outside{--safe-top:0px}:root.keyboard-open{--safe-bottom:0px}:root{--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px)}button{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--panel);color:var(--text);white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;gap:6px;min-height:36px;padding:0 14px;font-weight:500;line-height:1;transition:background-color .15s,border-color .15s,box-shadow .15s,transform 50ms;display:inline-flex;box-shadow:0 1px 2px #0000000d}button:hover{background:var(--theirs);border-color:#d2d6de}button:active{box-shadow:none;transform:translateY(1px)}button:focus-visible{box-shadow:0 0 0 3px var(--accent-soft);outline:none}button.primary{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 1px 2px #2563eb59}button.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}button.small{padding:6px 12px;font-size:13px}button.danger{color:var(--danger);background:var(--danger-soft);box-shadow:none;border-color:#0000}button.danger:hover{background:var(--danger);color:#fff}button.link{color:var(--accent);min-height:0;box-shadow:none;background:0 0;border:none;padding:0;font-weight:500}button.link:hover{background:0 0;text-decoration:underline}button:disabled,button:disabled:hover{opacity:.45;cursor:default;box-shadow:none;transform:none}@media (prefers-color-scheme:dark){button:hover{border-color:#3a4152}}input,textarea,select{font:inherit;border:1px solid var(--line);background:var(--panel);width:100%;color:var(--text);border-radius:8px;padding:9px 11px}input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);cursor:pointer;flex:none;margin:0;padding:0}label{color:var(--muted);margin:10px 0 4px;font-size:13px;display:block}.center{top:var(--app-top,0px);height:var(--app-height,100%);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:calc(24px + var(--safe-top)) calc(24px + var(--safe-right)) calc(24px + var(--safe-bottom)) calc(24px + var(--safe-left));display:flex;position:fixed;left:0;right:0;overflow-y:auto}.center>*{margin:auto}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;width:100%;max-width:440px;padding:24px}.card h1{margin:0 0 12px;font-size:20px}.card>button{width:100%;min-height:44px;font-size:15px}.card>button+button{margin-top:10px}.muted{color:var(--muted);font-size:13px}.error{color:var(--danger);white-space:pre-wrap;margin-top:8px;font-size:13px}.row{align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap}.spread{justify-content:space-between}.stack>*+*{margin-top:10px}.mono{word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.kit{letter-spacing:2px;background:var(--theirs);text-align:center;-webkit-user-select:all;user-select:all;border-radius:10px;padding:14px;font-size:22px}.layout{top:var(--app-top,0px);height:var(--app-height,100%);grid-template-rows:minmax(0,1fr);grid-template-columns:320px 1fr;display:grid;position:fixed;left:0;right:0;overflow:hidden}.sidebar{border-right:1px solid var(--line);background:var(--panel);flex-direction:column;min-width:0;min-height:0;display:flex}.bar{height:calc(64px + var(--safe-top));padding:var(--safe-top) calc(12px + var(--safe-right)) 0 calc(16px + var(--safe-left));border-bottom:1px solid var(--line);background:var(--panel);flex:none;align-items:center;gap:10px;display:flex}.bar-text{flex:1;min-width:0;line-height:1.3}.bar-text strong{font-size:15px;display:block}.bar-actions{flex:none;gap:6px;display:flex}.ellipsis{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.dot{background:var(--muted);vertical-align:1px;border-radius:50%;width:7px;height:7px;margin-right:5px;display:inline-block}.dot.on{background:#16a34a}button.icon{width:36px;height:36px;color:var(--muted);box-shadow:none;background:0 0;border-color:#0000;border-radius:10px;gap:4px;padding:0;position:relative}button.icon:hover{background:var(--theirs);color:var(--text);border-color:#0000}button.icon.back{margin-left:-6px}button.icon .count{background:var(--accent);color:#fff;text-align:center;border-radius:8px;min-width:16px;height:16px;padding:0 4px;font-size:10px;line-height:16px;position:absolute;top:2px;right:2px}.list{padding:6px 8px calc(6px + var(--safe-bottom));flex:1;overflow:auto}.item{cursor:pointer;border-radius:12px;align-items:center;gap:12px;padding:10px;transition:background .12s;display:flex}.item:hover{background:var(--theirs)}.item.active{background:var(--accent-soft)}@media (prefers-color-scheme:dark){.item.active{background:#2563eb38}}.item-top,.item-bottom{justify-content:space-between;align-items:center;gap:8px;display:flex}.item-title{font-size:15px;font-weight:600}.item.unread .item-title{font-weight:700}.item-time{color:var(--muted);flex:none;font-size:11.5px}.item-bottom{margin-top:2px;font-size:12.5px}.item-bottom .badge{flex:none}.empty{color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:40px 16px;font-size:13px;display:flex}.empty svg{color:var(--muted);opacity:.6}.pane-empty{flex:1;font-size:14px}.empty-icon{background:var(--panel);border:1px solid var(--line);width:72px;height:72px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;margin-bottom:10px;display:flex}.empty-icon svg{color:var(--accent);opacity:1}.empty-title{color:var(--text);font-size:16px;font-weight:600}.badge{background:var(--accent);color:#fff;text-align:center;border-radius:999px;min-width:20px;height:20px;padding:0 6px;font-size:11px;font-weight:600;line-height:20px}.pane{background:var(--bg);flex-direction:column;min-width:0;height:100%;min-height:0;display:flex;overflow:hidden}.messages{overscroll-behavior:contain;flex-direction:column;flex:1;gap:12px;min-height:0;padding:16px 20px;display:flex;overflow:auto}.messages>:first-child{margin-top:auto}.load-more{justify-content:center;padding:2px 0 6px;display:flex}.msg{align-items:flex-end;gap:8px;max-width:72%;display:flex}.msg.theirs{align-self:flex-start}.msg.mine{align-self:flex-end}.msg.continued{margin-top:-6px}.msg-avatar{flex:none;align-self:flex-start;width:32px}.msg-body{flex-direction:column;min-width:0;display:flex}.msg.mine .msg-body{align-items:flex-end}.msg-sender{color:var(--muted);margin:0 0 3px 4px;font-size:12px}.bubble{background:var(--panel);border:1px solid var(--line);word-break:break-word;white-space:pre-wrap;border-radius:16px;padding:9px 13px;font-size:14.5px;line-height:1.45;box-shadow:0 1px 1px #00000008}.msg.theirs .bubble{border-bottom-left-radius:6px}.msg.mine .bubble{background:var(--accent);border-color:var(--accent);color:#fff;border-bottom-right-radius:6px}.msg.mine .bubble button{color:#fff;background:#ffffff29;border-color:#0000}.msg.mine .bubble button:hover{background:#ffffff47}.msg.mine .bubble .error{color:#fecaca}.meta{color:var(--muted);opacity:.85;align-items:center;gap:8px;margin:3px 4px 0;font-size:11px;display:flex}.meta .receipt{align-items:center;gap:2px;display:inline-flex}.meta .receipt.read{color:var(--accent)}.meta .weak-fs{color:var(--warn-text)}.meta button.link{color:var(--muted);font-size:11px}.meta button.link:hover{color:var(--danger)}.bubble.failed{border:1px dashed var(--danger);color:var(--danger);background:0 0}.composer{padding:8px calc(10px + var(--safe-right)) max(8px, calc(var(--safe-bottom) - 8px)) calc(10px + var(--safe-left));border-top:1px solid var(--line);background:var(--bar);align-items:flex-end;gap:8px;display:flex}.pending+.composer{border-top:none}.composer textarea{resize:none;background:var(--panel);border:1px solid var(--line);border-radius:21px;height:42px;min-height:42px;max-height:132px;padding:9px 16px;font-size:15px;line-height:22px;box-shadow:0 1px 1px #00000008}@media (pointer:coarse){.composer textarea{font-size:16px}}.composer textarea::placeholder{color:var(--muted)}.composer textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.composer button.round{background:var(--panel);border:1px solid var(--line);width:42px;height:42px;min-height:42px;color:var(--text);border-radius:50%;flex:none;padding:0;transition:background-color .15s,transform .12s,opacity .15s;box-shadow:0 1px 1px #00000008}.composer button.round:hover{background:var(--theirs)}.composer button.round.active{background:var(--theirs);transform:rotate(45deg)}.composer button.round.primary,.composer button.round.primary:hover{border-color:#0000}.composer button.round.primary{background:var(--accent);color:#fff;animation:.14s ease-out pop;box-shadow:0 1px 2px #2563eb59}.composer button.round.primary:hover{background:var(--accent-hover)}.composer button.round.primary:disabled{background:var(--accent)}.composer button.round.mic{color:var(--text)}.attach{flex:none;position:relative}.attach-backdrop{z-index:14;position:fixed;inset:0}.attach-menu{z-index:15;background:var(--panel);border:1px solid var(--line);transform-origin:0 100%;border-radius:14px;flex-direction:column;gap:2px;min-width:180px;padding:6px;animation:.14s ease-out pop;display:flex;position:absolute;bottom:calc(100% + 10px);left:0;box-shadow:0 12px 32px #0000002e}.attach-menu button{min-height:42px;box-shadow:none;background:0 0;border:none;border-radius:10px;justify-content:flex-start;gap:10px;padding:0 12px;font-size:14px}.attach-menu button:hover{background:var(--theirs)}.attach-menu button svg{color:var(--accent)}.bubble.map{background:var(--panel);border-color:var(--line);color:var(--text);width:min(280px,70vw);padding:0;overflow:hidden}.msg.mine .bubble.map{background:var(--panel);border-color:var(--line);color:var(--text)}.map-card{cursor:pointer;flex-direction:column;display:flex}.map-card:focus-visible{outline:3px solid var(--accent-soft)}.map-thumb{height:140px}.map-info{flex-direction:column;gap:2px;padding:8px 12px 10px;font-size:13px;line-height:1.35;display:flex}.map-info strong{font-size:14px}.map-info .mono{color:var(--muted);font-size:12px}.map{-webkit-user-select:none;user-select:none;background:#e9edf2;position:relative;overflow:hidden}.map.interactive{cursor:grab;touch-action:none}.map.interactive:active{cursor:grabbing}.map-tiles{position:absolute;inset:0}.map-tiles img{pointer-events:none;-webkit-user-drag:none;width:256px;height:256px;position:absolute}.map-attr{color:#0009;pointer-events:none;z-index:2;background:#ffffffb3;border-radius:3px;padding:0 4px;font-size:10px;line-height:14px;position:absolute;bottom:3px;right:4px}.map-consent{z-index:4;text-align:center;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;font-size:13px;display:flex;position:absolute;inset:0}.map-consent p{max-width:320px;margin:0;line-height:1.5}.map-consent.compact{z-index:1;font-size:12px}.map-zoom{z-index:3;flex-direction:column;gap:6px;display:flex;position:absolute;top:10px;right:10px}.map-zoom button{border-radius:8px;width:36px;height:36px;min-height:0;padding:0}.map-marker,.map-crosshair{color:var(--danger);pointer-events:none;z-index:2;filter:drop-shadow(0 3px 2px #0000004d);line-height:0;position:absolute;transform:translate(-50%,-92%)}.map-crosshair{top:50%;left:50%}.sheet{z-index:45;background:var(--panel);flex-direction:column;animation:.15s ease-out fade;display:flex;position:fixed;inset:0}.sheet-bar{height:calc(56px + var(--safe-top));padding:var(--safe-top) calc(12px + var(--safe-right)) 0 calc(8px + var(--safe-left));border-bottom:1px solid var(--line);flex:none;align-items:center;gap:10px;font-size:16px;display:flex}.sheet-map{flex:1;min-height:0;position:relative}.sheet-map>.map{position:absolute;inset:0}.map-locate{right:calc(12px + var(--safe-right));z-index:3;width:44px;height:44px;min-height:0;color:var(--accent);border-radius:50%;padding:0;position:absolute;bottom:16px}.map-status{z-index:3;background:var(--panel);border:1px solid var(--line);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:6px 12px;font-size:13px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #0000001f}.map-status .dot{background:var(--accent);border-radius:50%;width:8px;height:8px;animation:1s infinite blink}.sheet-panel{padding:12px calc(16px + var(--safe-right)) calc(12px + var(--safe-bottom)) calc(16px + var(--safe-left));border-top:1px solid var(--line);flex:none;align-items:center;gap:12px;display:flex}.sheet-panel .bar-text{font-size:14px;line-height:1.35}.sheet-panel .mono{font-size:12px}.sheet-panel button{min-height:44px}.sheet-panel button.primary{padding:0 24px}@media (max-width:520px){.sheet-panel{flex-wrap:wrap}.sheet-panel>.row{width:100%}.sheet-panel>.row button{flex:1}}@media (prefers-color-scheme:dark){.map{background:#1c2432}}.pending{background:var(--bar);border-top:1px solid var(--line);gap:8px;padding:8px 12px 0;display:flex;overflow-x:auto}.pending .thumb{border:1px solid var(--line);width:72px;height:72px;color:var(--muted);text-align:center;border-radius:8px;flex:none;justify-content:center;align-items:center;padding:4px;font-size:11px;display:flex;position:relative;overflow:hidden}.pending .thumb img{object-fit:cover;width:100%;height:100%}.pending .thumb button{color:#fff;width:20px;height:20px;min-height:0;box-shadow:none;background:#0009;border:none;border-radius:50%;padding:0;font-size:12px;position:absolute;top:2px;right:2px}.recording{border-top:1px solid var(--line);background:var(--panel);align-items:center;gap:12px;padding:8px 12px;font-size:13px;display:flex}.recording .dot{background:var(--danger);border-radius:50%;width:10px;height:10px;animation:1s infinite blink}.recording .row{margin-left:auto}@keyframes blink{50%{opacity:.2}}.bubble audio.voice{max-width:100%;height:36px;display:block}.bubble .photo{border-radius:8px;max-width:100%;max-height:360px;display:block}.bubble img.photo{cursor:zoom-in}.bubble.media{background:var(--panel);border-color:var(--line);padding:0;overflow:hidden}.bubble.media .stack>*+*{margin-top:0}.bubble.media .photo{border-radius:0;display:block}.lightbox{z-index:40;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:calc(64px + var(--safe-top)) 24px calc(24px + var(--safe-bottom));cursor:zoom-out;background:#080a0edb;justify-content:center;align-items:center;animation:.15s ease-out fade;display:flex;position:fixed;inset:0}.lightbox img{object-fit:contain;cursor:default;border-radius:6px;max-width:100%;max-height:100%;animation:.18s ease-out pop;box-shadow:0 20px 60px #00000080}.lightbox-bar{top:var(--safe-top);color:#fff;cursor:default;background:linear-gradient(#00000080,#0000);justify-content:space-between;align-items:center;gap:12px;height:56px;padding:0 12px 0 20px;font-size:14px;display:flex;position:absolute;left:0;right:0}.lightbox-bar button.icon{color:#fff}.lightbox-bar button.icon:hover{color:#fff;background:#ffffff29}@keyframes pop{0%{opacity:0;transform:scale(.96)}}.notice{background:var(--theirs);justify-content:space-between;align-items:center;gap:8px;padding:10px 16px;font-size:13px;display:flex}.notice.warn{background:var(--warn-soft);color:var(--warn-text)}.notice.reset-pending{flex-direction:column;align-items:stretch}.notice.reset-pending .mono{letter-spacing:1px;text-align:center;padding:6px 0;font-size:15px}.backdrop{top:var(--app-top,0px);height:var(--app-height,100%);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:20;background:#0f121859;animation:.15s ease-out fade;position:fixed;left:0;right:0}.drawer{background:var(--panel);border-left:1px solid var(--line);width:min(480px,100vw);padding:calc(20px + var(--safe-top)) calc(20px + var(--safe-right)) calc(20px + var(--safe-bottom)) 20px;animation:.18s ease-out slide;position:absolute;inset:0 0 0 auto;overflow:auto;box-shadow:-12px 0 32px #0000002e}.drawer-head{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.drawer-head h2{margin:0;font-size:20px}@keyframes fade{0%{opacity:0}}@keyframes slide{0%{opacity:0;transform:translate(24px)}}.modal-backdrop{z-index:60;background:#0f121873;justify-content:center;align-items:center;padding:24px;display:flex}.modal{background:var(--panel);border:1px solid var(--line);border-radius:16px;width:min(420px,100%);padding:22px 22px 18px;animation:.16s ease-out pop;box-shadow:0 24px 64px #00000047}.modal h2{margin:0;font-size:18px;line-height:1.3}.modal-body{white-space:pre-line;font-size:14px;line-height:1.55}.modal-actions{justify-content:flex-end;margin-top:6px}.modal-actions button{min-width:88px;min-height:38px}button.danger.solid{background:var(--danger);color:#fff;border-color:var(--danger);box-shadow:0 1px 2px #dc262659}button.danger.solid:hover{filter:brightness(.92)}@media (prefers-reduced-motion:reduce){.backdrop,.drawer,.modal{animation:none}}.table{border-collapse:collapse;width:100%;font-size:13px}.table td,.table th{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:6px 8px}.table button{min-height:30px;padding:0 10px;font-size:13px}.tabs{background:var(--theirs);scrollbar-width:none;border-radius:12px;gap:4px;margin-bottom:16px;padding:4px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tabs button{min-width:0;min-height:34px;box-shadow:none;color:var(--muted);background:0 0;border:none;border-radius:9px;flex:1 1 0;gap:5px;padding:0 6px;font-size:13.5px;font-weight:500}.tabs button svg{flex:none}@media (max-width:420px){.tabs button svg{display:none}}.tabs button:hover{color:var(--text);background:#ffffff80}.tabs button.active{background:var(--panel);color:var(--text);font-weight:600;box-shadow:0 1px 3px #0000001f}@media (max-width:800px){.layout{grid-template-columns:1fr}.layout.chat-open .sidebar,.layout:not(.chat-open) .pane{display:none}html,body{background:var(--bar)}.center{background:var(--bg)}}.section-title{letter-spacing:.04em;color:var(--muted);text-transform:uppercase;margin:18px 0 8px;font-size:12px;font-weight:600}.drawer-head+.section-title{margin-top:10px}.member-list{border:1px solid var(--line);border-radius:12px;margin:0;padding:0;list-style:none;overflow:hidden}.member+.member{border-top:1px solid var(--line)}.member-row{align-items:center;gap:12px;padding:10px 12px;display:flex}.member-row .bar-text{flex:1;min-width:0}.member-row strong{margin-right:6px;font-size:14.5px;font-weight:600;display:inline}.member-row button{min-height:32px;padding:0 12px;font-size:13px}.member-row button.active{background:var(--accent-soft);color:var(--accent);border-color:#0000}.avatar{color:#fff;-webkit-user-select:none;user-select:none;border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:600;display:inline-flex;box-shadow:inset 0 0 0 1px #ffffff2e}.avatar svg{color:#fff}.chip{vertical-align:1px;background:var(--theirs);color:var(--muted);border-radius:999px;margin-right:4px;padding:0 7px;font-size:11px;font-weight:500;line-height:18px;display:inline-block}.chip.owner{background:var(--warn-soft);color:var(--warn-text)}.chip.admin{background:var(--accent-soft);color:var(--accent)}.safety{background:var(--theirs);border-radius:10px;margin:0 12px 12px 62px;padding:10px 12px;font-size:13px}.safety .mono{letter-spacing:1px;margin-bottom:6px;font-size:14px}.field-row{align-items:center;gap:8px;display:flex}.field-row+.field-row{margin-top:10px}.field-row input{flex:1}.field-row button{flex:none}.hint{color:var(--muted);margin:6px 0 12px;font-size:12px}.action-row{align-items:center;gap:12px;padding:12px 0;display:flex}.action-row+.action-row{border-top:1px solid var(--line)}.action-row .bar-text{flex:1;min-width:0;font-size:14px}.action-row .muted{white-space:normal;margin-top:2px;font-size:12px}.action-row button,.action-row .button{flex:none}a.button{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--panel);color:var(--text);white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;gap:6px;min-height:36px;padding:0 14px;font-weight:500;line-height:1;text-decoration:none;display:inline-flex;box-shadow:0 1px 2px #0000000d}a.button:hover{background:var(--theirs);border-color:#d2d6de}a.button.small{min-height:32px;padding:6px 12px;font-size:13px}.badge.soft{background:var(--accent-soft);color:var(--accent);vertical-align:1px;margin-left:6px;font-weight:500}.downloads .action-row{padding:10px 0}.downloads .action-row:first-child{padding-top:4px}.downloads .action-row:last-of-type{padding-bottom:4px}.downloads .bar-text strong{font-size:14px}.card .downloads{text-align:left}.card details.downloads-box{border-top:1px solid var(--line);margin-top:14px;padding-top:10px}.card details.downloads-box summary{cursor:pointer;color:var(--muted);align-items:center;gap:6px;font-size:13px;list-style:none;display:flex}.card details.downloads-box summary::-webkit-details-marker{display:none}.card details.downloads-box summary:after{content:"▾";margin-left:auto;transition:transform .15s}.card details.downloads-box[open] summary:after{transform:rotate(180deg)}.shield{z-index:10000;background:var(--bg);justify-content:center;align-items:center;display:none;position:fixed;inset:0}.shield-mark{background:var(--accent);color:#fff;border-radius:22px;justify-content:center;align-items:center;width:72px;height:72px;display:flex}:root.app-hidden .shield{visibility:visible;display:flex}:root.app-hidden #root{visibility:hidden}.hint.good{color:#15803d}.hint.bad{color:var(--danger)}.chip.ok{color:#15803d;background:#dcfce7}.chip.warn{background:var(--warn-soft);color:var(--warn-text)}@media (prefers-color-scheme:dark){.chip.ok{color:#86efac;background:#14532d}.hint.good{color:#4ade80}}.push-prompt{z-index:30;padding:calc(10px + var(--safe-top)) calc(16px + var(--safe-right)) 10px calc(16px + var(--safe-left));background:var(--accent);color:#fff;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;font-size:13px;display:flex;position:absolute;top:0;left:0;right:0;box-shadow:0 2px 8px #0000002e}.push-prompt>span{flex:240px;line-height:1.4}.push-prompt>.row{margin-left:auto}.push-prompt .link{color:#fff;opacity:.9}.push-prompt button.primary{color:var(--accent);box-shadow:none;background:#fff;border-color:#fff}.lock-pending{background:var(--accent);color:#fff;text-align:center;border-radius:10px;padding:10px 14px;font-size:14px;font-weight:600}.call{z-index:50;padding:calc(48px + var(--safe-top)) 24px calc(40px + var(--safe-bottom));color:#fff;background:linear-gradient(#1b2130,#0f1218);flex-direction:column;justify-content:space-between;align-items:center;animation:.15s ease-out fade;display:flex;position:fixed;inset:0}.call-head{text-align:center;z-index:1;flex-direction:column;align-items:center;gap:10px;margin-top:8vh;display:flex}.call-head strong{margin-top:6px;font-size:24px}.call-status{opacity:.85;font-variant-numeric:tabular-nums;font-size:16px}.call-e2e{opacity:.55;font-size:12px}.call-head .error{color:#fca5a5;max-width:320px;font-size:13px}.call-actions{z-index:2;flex-direction:column;align-items:center;gap:22px;width:100%;max-width:420px;transition:opacity .2s,transform .2s;display:flex}.call-row{justify-content:space-around;align-items:flex-start;width:100%;display:flex}.call-ctl{color:#ffffffd9;flex-direction:column;align-items:center;gap:8px;width:96px;font-size:12px;display:flex}.call-ctl.spacer{visibility:hidden}.call-ctl.small{align-self:center}.call-ctl.small .call-btn{width:48px;height:48px;min-height:48px;box-shadow:none;background:#ffffff24}.call-btn{color:#fff;border:none;border-radius:50%;width:64px;height:64px;min-height:64px;padding:0;box-shadow:0 6px 18px #00000059}.call-btn.accept{background:#16a34a}.call-btn.accept:hover{background:#15803d}.call-btn.decline{background:var(--danger)}.call-btn.decline:hover{background:#b91c1c}.call-btn.neutral{background:#ffffff24}.call-btn.neutral:hover{background:#ffffff3d}.call-btn.neutral.on{color:#1b1f27;background:#fff}.call.video{background:#000;justify-content:flex-end;padding:0}.call.video .call-head{top:calc(16px + var(--safe-top));z-index:2;text-shadow:0 1px 4px #0009;margin:0;transition:opacity .2s;position:absolute;left:0;right:0}.call.video .call-head strong{margin-top:0;font-size:18px}.call.video .call-status{font-size:14px}.call.video .call-actions{padding:48px 0 calc(28px + var(--safe-bottom));background:linear-gradient(#0000,#00000073);max-width:none}.call.video .call-actions>.call-row{max-width:420px}.call.video.bare .call-head,.call.video.bare .call-actions{opacity:0;pointer-events:none}.call.video.bare .call-actions{transform:translateY(24px)}.call-stage{position:absolute;inset:0;overflow:hidden}.call-tile{background:#111;position:absolute;overflow:hidden}.call-tile video{object-fit:cover;width:100%;height:100%;display:block}.call-tile video.mirror{transform:scaleX(-1)}.call-tile.big{inset:0}.call-tile.pip{top:calc(96px + var(--safe-top));right:calc(12px + var(--safe-right));aspect-ratio:3/4;z-index:3;cursor:grab;touch-action:none;border-radius:8px;width:min(28vw,120px);transition:left .2s,top .2s;box-shadow:0 4px 16px #00000073}.call-tile.pip.dragging{cursor:grabbing;transition:none}.call-tile-empty{color:#fff9;background:linear-gradient(#1b2130,#0f1218);justify-content:center;align-items:center;width:100%;height:100%;display:flex}@media (min-width:900px){.call-tile.pip{aspect-ratio:4/3;width:180px}}.bubble.call-log{align-items:center;gap:8px;font-size:14px;display:inline-flex}.bubble.call-log.missed{color:var(--danger)}.lock-calling{background:#16a34a}
