:root{--bg: #f4f4f6;--panel: #ffffff;--panel-2: #f9f9fb;--hover: #f0f0f3;--text: #15151a;--muted: #6c6c78;--border: #e4e4ea;--accent: #fffc00;--accent-ink: #111;--me: #f23c57;--them: #0eadff;--ok: #1f9d55;--warn: #e5a50a;--danger: #d93636;--bubble-me: #fff1f3;--bubble-them: #eef8ff;--shadow: 0 10px 30px rgba(20, 20, 30, .12);--radius: 14px;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0d0d10;--panel: #16161b;--panel-2: #1b1b21;--hover: #212128;--text: #ececf2;--muted: #9696a3;--border: #2a2a32;--bubble-me: #2a1519;--bubble-them: #10202b;--shadow: 0 10px 30px rgba(0, 0, 0, .5);color-scheme:dark}}:root[data-theme=dark]{--bg: #0d0d10;--panel: #16161b;--panel-2: #1b1b21;--hover: #212128;--text: #ececf2;--muted: #9696a3;--border: #2a2a32;--bubble-me: #2a1519;--bubble-them: #10202b;--shadow: 0 10px 30px rgba(0, 0, 0, .5);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}:focus-visible{outline:2px solid var(--them);outline-offset:2px}input,textarea{border:1px solid var(--border);background:var(--panel-2);padding:9px 11px;border-radius:10px;min-width:0;width:100%}input:focus,textarea:focus{outline:none;border-color:var(--them)}input[type=checkbox]{width:auto;accent-color:var(--me)}.muted{color:var(--muted)}.small{font-size:12px}.danger{color:var(--danger)}.pad{padding:16px}.pad-x{padding:0 16px}.spacer{flex:1}.row{display:flex;gap:8px;align-items:center}.row.end{justify-content:flex-end}.row.wrap{flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:14px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--border);background:var(--panel);border-radius:10px;padding:8px 14px;font-weight:500;white-space:nowrap}.btn:hover:not(:disabled){background:var(--hover)}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:transparent;font-weight:600}.btn.primary:hover:not(:disabled){filter:brightness(.95);background:var(--accent)}.btn.danger{background:var(--danger);color:#fff;border-color:transparent}.btn.small{padding:5px 10px;font-size:13px}.icon-btn{display:inline-grid;place-items:center;width:34px;height:34px;border:none;background:transparent;border-radius:9px;color:var(--muted)}.icon-btn:hover{background:var(--hover);color:var(--text)}.icon-btn.on{background:var(--hover);color:var(--text);box-shadow:inset 0 -2px 0 var(--accent)}.icon-btn.small{width:24px;height:24px}.icon-btn.tiny{width:20px;height:20px;border-radius:6px}.link{border:none;background:none;padding:0;color:var(--them);text-align:left}.link:hover{text-decoration:underline}.pill{font-size:11px;font-weight:600;padding:2px 8px;border-radius:99px;background:var(--hover);color:var(--muted);white-space:nowrap}.pill.connected{background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok)}.pill.needs_login,.pill.logging_in,.pill.starting{background:color-mix(in srgb,var(--warn) 20%,transparent);color:var(--warn)}.pill.error{background:color-mix(in srgb,var(--danger) 18%,transparent);color:var(--danger)}.badge{min-width:18px;height:18px;padding:0 5px;border-radius:99px;background:var(--me);color:#fff;font-size:11px;font-weight:700;display:inline-grid;place-items:center}.count{font-size:11px;color:var(--muted)}.alert{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger);padding:9px 12px;border-radius:10px;font-size:13px}.alert.slim{margin:0 12px 8px;padding:6px 10px}.spinner{width:14px;height:14px;border-radius:50%;display:inline-block;border:2px solid var(--border);border-top-color:var(--them);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.avatar{position:relative;flex-shrink:0;border-radius:50%;display:inline-grid;place-items:center;font-weight:700;background:hsl(var(--h) 70% 88%);color:hsl(var(--h) 45% 28%)}:root[data-theme=dark] .avatar{background:hsl(var(--h) 35% 26%);color:hsl(var(--h) 70% 85%)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .avatar{background:hsl(var(--h) 35% 26%);color:hsl(var(--h) 70% 85%)}}.dot{position:absolute;right:-1px;bottom:-1px;width:12px;height:12px;border-radius:50%;border:2px solid var(--panel);background:var(--muted)}.dot.connected{background:var(--ok)}.dot.needs_login,.dot.logging_in,.dot.starting{background:var(--warn)}.dot.error{background:var(--danger)}.setup{display:grid;place-items:center;min-height:100%;padding:16px}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.setup-card{width:100%;max-width:400px;padding:28px;display:flex;flex-direction:column;gap:14px}.setup-card p{margin:0}.brand{font-size:22px;font-weight:800;display:flex;align-items:center;gap:8px}.logo{font-size:26px}.field{display:flex;flex-direction:column;gap:5px}.field>span{font-size:13px;font-weight:500}.check{display:flex;gap:10px;align-items:flex-start;font-size:13px;cursor:pointer}.check input{margin-top:2px}.check small{display:block;margin-top:2px}.app{display:grid;grid-template-columns:72px 340px minmax(0,1fr);height:100%}.app.has-panel{grid-template-columns:72px 340px minmax(0,1fr) 400px}.rail{display:flex;flex-direction:column;align-items:center;gap:10px;padding:14px 0;background:var(--panel);border-right:1px solid var(--border)}.rail-logo{font-size:26px;padding-bottom:6px}.rail-accounts{display:flex;flex-direction:column;gap:10px;overflow-y:auto}.rail-account{position:relative;border:none;background:none;padding:3px;border-radius:50%}.rail-account.active{box-shadow:0 0 0 2px var(--accent)}.rail-account .badge{position:absolute;top:-4px;right:-6px}.rail-add{width:40px;height:40px;border-radius:50%;border:1.5px dashed var(--border);background:none;color:var(--muted);display:grid;place-items:center}.rail-add:hover:not(:disabled){border-color:var(--muted);color:var(--text)}.chatlist{display:flex;flex-direction:column;min-height:0;background:var(--panel);border-right:1px solid var(--border)}.chatlist-head{padding:14px 12px 10px 16px;display:flex;flex-direction:column;gap:8px}.account-title{display:flex;align-items:center;gap:8px;font-size:16px}.account-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toolbar{display:flex;gap:2px;margin-left:-6px}.search{margin:0 12px;display:flex;align-items:center;gap:6px;color:var(--muted);border:1px solid var(--border);background:var(--panel-2);border-radius:10px;padding:0 8px}.search input{border:none;background:none;padding:9px 2px}.tabs{display:flex;gap:4px;padding:10px 12px 8px;overflow-x:auto}.tabs button{border:none;background:none;padding:5px 10px;border-radius:99px;color:var(--muted);font-size:13px;font-weight:500;white-space:nowrap}.tabs button:hover{background:var(--hover)}.tabs button.on{background:var(--text);color:var(--panel)}.chatlist-items{flex:1;overflow-y:auto;padding:0 6px 10px}.chatrow{display:flex;align-items:center;gap:11px;width:100%;padding:9px 10px;border:none;background:none;border-radius:12px;text-align:left}.chatrow:hover{background:var(--hover)}.chatrow.active{background:var(--hover);box-shadow:inset 3px 0 0 var(--accent)}.chatrow-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.chatrow-top{display:flex;align-items:center;gap:6px}.chatrow-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chatrow.unread .chatrow-name{font-weight:800}.chatrow-preview{color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chatrow.unread .chatrow-preview{color:var(--text)}.chatrow-side{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.streak{font-size:12px;font-weight:600;color:var(--muted)}.soon{color:var(--warn);display:inline-flex}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:36px 20px}.empty p{margin:0;max-width:300px}.empty-icon{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--hover);color:var(--muted);margin-bottom:4px}.conversation{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--bg)}.conversation.empty-state{justify-content:center}.convo-head{display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--panel);border-bottom:1px solid var(--border)}.convo-head .back{display:none}.convo-title{display:flex;flex-direction:column;min-width:0}.convo-title strong{display:flex;gap:6px;align-items:center}.messages{flex:1;overflow-y:auto;padding:16px 20px 24px}.day-sep{display:flex;justify-content:center;margin:14px 0 6px}.day-sep span{font-size:11px;font-weight:600;color:var(--muted);background:var(--hover);padding:3px 10px;border-radius:99px}.group{display:flex;flex-direction:column;gap:3px;margin:10px 0;max-width:min(620px,80%)}.group.me{margin-left:auto;align-items:flex-end}.group-from{font-size:12px;font-weight:700;color:var(--them);margin:0 0 2px 4px}.group.me .group-from{color:var(--me)}.bubble-row{display:flex;flex-direction:column;max-width:100%;transition:opacity .4s,transform .4s}.group.me .bubble-row{align-items:flex-end}.bubble{position:relative;padding:8px 12px;border-radius:4px 14px 14px 4px;background:var(--bubble-them);border-left:3px solid var(--them);white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.4}.group.me .bubble{border-left:none;border-right:3px solid var(--me);background:var(--bubble-me);border-radius:14px 4px 4px 14px}.bubble-meta{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);height:0;overflow:hidden;opacity:0;transition:opacity .15s}.bubble-row:hover .bubble-meta,.bubble-row.soon .bubble-meta,.bubble-row.leaving .bubble-meta,.bubble-row.pending .bubble-meta{height:20px;opacity:1}.bubble-row:last-child .bubble-meta{height:20px;opacity:1}.hover-only{opacity:0}.bubble-row:hover .hover-only{opacity:1}.ttl{width:12px;height:12px;border-radius:50%;background:conic-gradient(var(--muted) calc(var(--f) * 360deg),var(--border) 0)}.bubble-row.soon .ttl{background:conic-gradient(var(--warn) calc(var(--f) * 360deg),var(--border) 0)}.bubble-row.soon .bubble-meta{color:var(--warn)}.gone-tag{margin-left:8px;font-size:10px;font-weight:700;text-transform:uppercase;background:var(--danger);color:#fff;padding:1px 6px;border-radius:6px;vertical-align:1px}.bubble-row.leaving{animation:leave 1.6s ease forwards}.bubble-row.leaving.deleted .bubble{text-decoration:line-through;text-decoration-color:var(--danger)}.bubble-row.leaving.expired .gone-tag{background:var(--muted)}@keyframes leave{0%,45%{opacity:1;transform:none;max-height:200px}to{opacity:0;transform:scale(.96);max-height:0;margin:0}}.bubble-row.pending .bubble{opacity:.6}.bubble-row.pending.failed .bubble{opacity:1;border-right-color:var(--danger)}.jump{position:absolute;right:20px;bottom:84px;display:flex;align-items:center;gap:4px;border:1px solid var(--border);background:var(--panel);border-radius:99px;padding:6px 12px;box-shadow:var(--shadow);font-size:13px;font-weight:600}.composer{display:flex;gap:8px;align-items:flex-end;padding:12px 16px;background:var(--panel);border-top:1px solid var(--border)}.composer textarea{resize:none;max-height:140px;line-height:1.4;border-radius:12px}.composer .send{width:42px;height:40px;padding:0;border-radius:12px}.composer.offline{justify-content:space-between;align-items:center;flex-wrap:wrap}.panel{min-width:0;min-height:0;background:var(--panel);border-left:1px solid var(--border)}.panel-inner{display:flex;flex-direction:column;gap:12px;height:100%;overflow-y:auto;padding-bottom:16px}.panel-inner>*{flex-shrink:0}.panel-head{display:flex;align-items:center;gap:8px;padding:12px 12px 0 16px}.screen-tabs,.screen-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:0 16px}.screen-tabs{overflow-x:auto;flex-wrap:nowrap;min-height:33px}.screen-tabs .btn{max-width:180px;overflow:hidden;text-overflow:ellipsis}.screen-tab-selected{border-color:var(--them);background:var(--hover)}.screen-toolbar .muted:last-child{flex-basis:100%}.screen-viewport{margin:0 16px;max-height:min(55vh,620px);min-height:160px;overflow:auto;overscroll-behavior:contain;background:#101014;border:1px solid var(--border);border-radius:12px;-webkit-overflow-scrolling:touch}.screen{position:relative;outline:none;background:#fff;min-width:100%}.screen.focused{box-shadow:inset 0 0 0 2px var(--them)}.screen img{display:block;width:100%;cursor:crosshair;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.screen-wait{aspect-ratio:16 / 9;display:flex;align-items:center;justify-content:center;gap:8px;color:#aaa}.screen-type-form{margin:0 16px;display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:12px;border:1px solid var(--border);background:var(--panel-2)}.screen-type-form .row{min-width:0}.screen-type-form .row input{flex:1;min-width:0}.screen-type-form .check{align-items:center}.screen-type-form .check input{margin:0}.screen-keys{display:flex;gap:6px;flex-wrap:wrap;padding:0 16px}.login-form{display:block;margin:0 16px;padding:14px;border-radius:12px;background:var(--panel-2);border:1px solid var(--border)}.login-form summary{font-weight:600;cursor:pointer}.login-form .stack{margin-top:12px}.login-form p{margin:12px 0}.live-browser-expanded,.live-browser:fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;width:100vw;height:100dvh;background:var(--panel);overflow:auto;padding-bottom:env(safe-area-inset-bottom,0px)}.live-browser:fullscreen{display:flex}.live-browser-expanded .screen-viewport,.live-browser:fullscreen .screen-viewport{flex:1 1 auto;min-height:min(45vh,380px);max-height:none}.live-browser-expanded .screen,.live-browser:fullscreen .screen{min-width:100%}.live-browser-expanded .panel-head,.live-browser:fullscreen .panel-head{padding-top:max(12px,env(safe-area-inset-top,12px))}@media(max-width:760px){.screen-viewport{max-height:42vh}.live-browser-expanded .screen-viewport,.live-browser:fullscreen .screen-viewport{min-height:35vh;max-height:none}.screen-toolbar .muted:last-child{font-size:11px}}.activity{list-style:none;margin:0;padding:0 8px}.act{display:flex;gap:10px;padding:8px;border-radius:10px}.act:hover{background:var(--hover)}.act-icon{width:26px;height:26px;flex-shrink:0;border-radius:50%;display:grid;place-items:center;background:var(--hover);color:var(--muted)}.act.new .act-icon{color:var(--them)}.act.deleted .act-icon{color:var(--danger)}.act-body{display:flex;flex-direction:column;gap:1px;min-width:0}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:16px;background:#0a0a0f73;animation:fade .15s}.modal{width:100%;max-width:460px;max-height:calc(100% - 32px);overflow-y:auto;padding:18px 20px 20px}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;font-size:16px}.segmented{display:flex;background:var(--hover);border-radius:10px;padding:3px}.segmented button{flex:1;border:none;background:none;padding:7px 8px;border-radius:8px;font-weight:500;font-size:13px;color:var(--muted)}.segmented button.on{background:var(--panel);color:var(--text);box-shadow:0 1px 3px #0000001f}.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-size:13px}.kv .link{margin-left:8px}.danger-zone{border:1px solid color-mix(in srgb,var(--danger) 40%,var(--border));border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px}.danger-zone p{margin:0}.toasts{position:fixed;z-index:60;right:16px;bottom:16px;display:flex;flex-direction:column;gap:8px;max-width:calc(100% - 32px)}.toast{display:flex;align-items:center;gap:10px;padding:10px 10px 10px 14px;border-radius:12px;background:var(--text);color:var(--panel);box-shadow:var(--shadow);animation:rise .2s}.toast.error{background:var(--danger);color:#fff}.toast.success{background:var(--ok);color:#fff}.toast .icon-btn{color:inherit}.conn-banner{position:fixed;z-index:40;top:12px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;padding:8px 10px 8px 14px;border-radius:99px;background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow);font-size:13px;max-width:calc(100% - 32px)}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}@media(max-width:1180px){.app.has-panel,.app{grid-template-columns:72px 300px minmax(0,1fr)}.panel{position:fixed;z-index:30;top:0;right:0;bottom:0;width:min(420px,100%);box-shadow:var(--shadow);animation:slide .2s}}@keyframes slide{0%{transform:translate(30px);opacity:0}}@media(max-width:760px){.app,.app.has-panel{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.rail{flex-direction:row;padding:8px 16px;border-right:none;border-bottom:1px solid var(--border)}.rail-logo{padding:0 4px 0 0;font-size:22px}.rail-accounts{flex-direction:row;overflow-x:auto}.rail-account .avatar{width:34px!important;height:34px!important}.rail-add{width:34px;height:34px;margin-left:auto}.chatlist{border-right:none}.app.has-chat .chatlist{display:none}.app:not(.has-chat) .conversation{display:none}.convo-head .back{display:inline-grid}.messages{padding:12px 12px 20px}.group{max-width:88%}.composer{padding:10px 12px}.bubble-meta{height:20px;opacity:1}.hover-only{opacity:1}.toasts{left:16px;right:16px}}.preserve{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 16px;font-size:13px;border-bottom:1px solid var(--border)}.preserve.off{background:var(--panel-2);color:var(--muted)}.preserve.pending{background:color-mix(in srgb,var(--warn) 14%,transparent);color:var(--text)}.preserve.on{background:color-mix(in srgb,var(--ok) 12%,transparent);color:var(--text)}.preserve .btn.small,.preserve .link{margin-left:auto}.preserve .link{white-space:nowrap}.handcode{font-family:ui-monospace,monospace;font-weight:700;letter-spacing:.5px;background:var(--panel);border:1px dashed var(--muted);border-radius:8px;padding:3px 10px;cursor:pointer}.preserve-dot{display:inline-flex;color:var(--ok)}.preserve-dot.pending{color:var(--warn)}.bubble-text{white-space:pre-wrap;overflow-wrap:anywhere}.bubble-row.deleted .bubble{border-left-color:var(--danger);background:color-mix(in srgb,var(--danger) 8%,var(--bubble-them))}.group.me .bubble-row.deleted .bubble{border-right-color:var(--danger)}.bubble-row.deleted .bubble-text{text-decoration:none;opacity:1}.bubble-row.gone .bubble{opacity:.8;border-left-style:dashed}.gone-tag{display:inline-block;margin-left:8px;font-size:10px;font-weight:700;text-transform:uppercase;vertical-align:1px;padding:1px 6px;border-radius:6px;background:var(--muted);color:var(--panel)}.gone-tag.del{background:var(--danger);color:#fff}.media-wrap{position:relative;display:inline-block;margin:2px 0 4px}.media{max-width:min(320px,70vw);max-height:360px;border-radius:10px;display:block;cursor:zoom-in}video.media{cursor:default}.once-badge{position:absolute;top:6px;left:6px;font-size:11px;font-weight:700;background:#0009;color:#fff;padding:2px 7px;border-radius:99px;pointer-events:none}.media-chip{display:inline-block;font-size:12px;color:var(--muted);background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:4px 10px}.media-chip.failed{color:var(--danger)}.snap-tag{font-weight:600;color:var(--them)}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:#000000d9;display:grid;place-items:center;padding:24px;cursor:zoom-out}.lightbox img{max-width:100%;max-height:100%;border-radius:8px}.comnexus-auth .setup-card{max-width:470px;width:min(100%,470px)}.comnexus-auth .auth-tabs{margin:14px 0}.comnexus-auth .setup-card form{margin-top:14px}.recovery-output{display:block;overflow-wrap:anywhere;font:700 14px/1.6 ui-monospace,monospace;padding:14px;background:var(--panel-2);border:1px dashed var(--ok);border-radius:10px}.admin-core-shell{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:var(--bg);overflow:auto;padding:max(16px,env(safe-area-inset-top,16px)) max(16px,env(safe-area-inset-right,16px)) max(24px,env(safe-area-inset-bottom,24px)) max(16px,env(safe-area-inset-left,16px))}.admin-head,.admin-content{max-width:1100px;margin:0 auto}.admin-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding-bottom:18px;border-bottom:1px solid var(--border);margin-bottom:20px}.admin-head strong{font-size:22px}.admin-head p{margin:5px 0}.admin-login{max-width:480px;margin:10vh auto 0;padding:22px}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.admin-stat{display:flex;flex-direction:column;gap:12px;padding:18px}.admin-stat strong{font-size:24px;overflow-wrap:anywhere}.admin-section{padding:18px}.admin-section h2{font-size:17px;margin:0}.admin-line{display:grid;grid-template-columns:1fr minmax(150px,240px) auto;gap:8px;align-items:center;border-top:1px solid var(--border);padding:12px 0}.admin-line select{width:100%;border-radius:8px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);padding:8px}.admin-user{padding:14px 0;border-top:1px solid var(--border)}.admin-user p{margin:6px 0}.admin-user .danger{margin-top:8px}@media(max-width:650px){.admin-line{grid-template-columns:minmax(0,1fr) auto}.admin-line>div{grid-column:1 / -1}.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-stat strong{font-size:18px}}.mirror-root{position:relative;min-height:0;min-width:0;overflow:hidden}.mirror-header{flex:0 0 auto}.mirror-viewport{position:relative;flex:1 1 auto;min-height:0;min-width:0;overflow:auto;background:#111;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.mirror-canvas{position:relative;min-width:100%;min-height:100%;display:flex;align-items:center;justify-content:center;outline:none;background:#111}.mirror-canvas img{width:100%;height:100%;object-fit:contain;display:block;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;cursor:crosshair}.mirror-canvas:focus-visible{outline:2px solid var(--them);outline-offset:-2px}.mirror-wait{display:flex;align-items:center;justify-content:center;gap:8px;color:#fff;min-height:150px}.mirror-fullscreen,.mirror-root:fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:110;width:100vw;height:100dvh;display:flex;flex-direction:column;padding:0;margin:0;border:0;border-radius:0;background:#0b0b0f;overflow:hidden}.mirror-fullscreen .mirror-header,.mirror-root:fullscreen .mirror-header{display:none}.mirror-fullscreen .mirror-viewport,.mirror-root:fullscreen .mirror-viewport{width:100%;height:100%;max-height:none;min-height:0;margin:0;padding:0;border:0;border-radius:0}.mirror-handle{position:absolute;z-index:6;bottom:max(12px,env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);width:52px;height:34px;display:grid;place-items:center;border-radius:999px;background:#141419b8;color:#fff;border:1px solid rgba(255,255,255,.24);box-shadow:0 5px 22px #0006;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.mirror-handle span{font-size:29px;line-height:1;transform:translateY(5px)}.mirror-dismiss{position:absolute;z-index:7;top:0;right:0;bottom:0;left:0;border:0;border-radius:0;background:#0000001f;width:100%}.mirror-drawer{position:absolute;z-index:8;bottom:0;left:0;right:0;background:var(--panel);color:var(--text);border-radius:18px 18px 0 0;border:1px solid var(--border);box-shadow:0 -14px 40px #0008;max-height:min(75dvh,680px);overflow:hidden;padding-bottom:env(safe-area-inset-bottom,0px)}.mirror-drawer-grip{display:flex;justify-content:center}.mirror-drawer-grip button{width:64px;height:36px;border:0;background:transparent;color:var(--muted)}.mirror-drawer-grip span{font-size:30px;line-height:1}.mirror-drawer-scroll{overflow-y:auto;max-height:calc(min(75dvh,680px) - 36px);padding:0 16px 16px;display:flex;flex-direction:column;gap:12px}.mirror-entry{display:flex;flex-direction:column;gap:8px}.mirror-entry>label:first-child{font-weight:600}.mirror-entry .row input{flex:1 1 auto;min-width:0}.mirror-entry .check{display:flex;align-items:center;gap:8px}.mirror-entry .check input{width:auto}.mirror-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.mirror-tabs{display:flex;overflow-x:auto;flex-wrap:nowrap;gap:6px}.mirror-tabs .btn{flex-shrink:0;max-width:170px;overflow:hidden;text-overflow:ellipsis}.mirror-status p{color:var(--danger);overflow-wrap:anywhere}.mirror-automatic summary,.mirror-status summary{cursor:pointer}.mirror-automatic form{margin-top:10px}.mirror-footnote{margin:0;padding-bottom:4px}@media(max-width:760px){.mirror-root:not(.mirror-fullscreen) .mirror-viewport{min-height:35vh}.mirror-fullscreen .mirror-viewport{min-height:0}.mirror-drawer{max-height:82dvh}.mirror-drawer-scroll{max-height:calc(82dvh - 36px)}}
