:root{--bg: #f4f5f2;--surface: #ffffff;--ink: #15191e;--ink-2: #2e343c;--muted: #586170;--line: #dde1e5;--line-soft: #eef0f2;--field: #a9b0b8;--accent: #1f4fd1;--accent-ink: #163a9e;--accent-soft: #eef2fb;--accent-soft-2: #e3e8f6;--ok: #1b6e42;--ok-soft: #e2f3e9;--warn-ink: #6b4500;--warn-text: #3d2c00;--warn-soft: #fff6de;--warn-line: #f2d27a;--sun: #f2a900;--danger: #a3261b;--danger-soft: #fbe9e7;--dark: #1c232b;--radius: 12px;--mono: "IBM Plex Mono", ui-monospace, monospace;--sans: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--header-h: 60px;color-scheme:light}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}#root{container:solvark / inline-size}body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}a{color:var(--accent)}a:hover{color:var(--accent-ink)}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}:focus-visible{outline:3px solid #8fb0ff;outline-offset:2px}.mono{font-family:var(--mono)}.muted{color:var(--muted)}.small{font-size:12px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.app-header{position:sticky;top:0;z-index:20;background:var(--surface);border-bottom:1px solid var(--line);padding:8px 24px;padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right));display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;min-height:var(--header-h)}.brand{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--ink);font-weight:700;font-size:17px;min-height:44px}.brand:hover{color:var(--ink)}.project-switch{position:relative;min-width:0}.project-name{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;gap:2px;font-size:14px;color:var(--ink-2);white-space:nowrap;max-width:300px;padding:6px 10px;border:1px solid transparent;border-radius:8px;cursor:pointer}.project-name:hover,.project-name:focus-visible,.project-name[aria-expanded=true]{border-color:var(--line);background:var(--accent-soft)}.project-name-text{overflow:hidden;text-overflow:ellipsis;font-weight:600;color:var(--ink)}.project-status{color:var(--muted);flex:none}.project-name .caret{flex:none;margin-left:6px;font-size:11px;color:var(--muted)}.project-menu{position:absolute;left:0;top:calc(100% + 6px);z-index:40;width:min(340px,calc(100vw - 32px));background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 10px 30px #15191e2e;padding:6px;display:flex;flex-direction:column;gap:6px}.project-menu-list{display:flex;flex-direction:column;max-height:min(360px,60vh);overflow-y:auto}.project-menu .live-option.current{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.step-nav{display:flex;gap:4px;margin:0 auto;overflow-x:auto;scrollbar-width:none}.step-nav::-webkit-scrollbar{display:none}.step-link{display:flex;align-items:center;gap:6px;padding:0 12px;min-height:44px;border-radius:8px;color:var(--muted);text-decoration:none;font-size:14px;white-space:nowrap}.step-link .n{font-family:var(--mono)}.step-link:hover{background:var(--line-soft);color:var(--ink)}.step-link.done{color:var(--ok)}.step-link.active{background:var(--ink);color:#fff;font-weight:600}.step-link.locked{color:#9aa1aa;pointer-events:none}.avatar{width:36px;height:36px;border-radius:999px;background:var(--accent-soft-2);color:#1f3f9e;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;flex-shrink:0}.mode-badge{font-size:12px;border-radius:999px;padding:2px 10px;border:1px solid var(--warn-line);background:var(--warn-soft);color:var(--warn-ink);white-space:nowrap}@container solvark (max-width: 1150px){.step-nav{order:10;flex-basis:100%;margin:0}}.workspace{display:grid;gap:16px;padding:16px 24px 24px;padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right));grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"view view" "left right";align-items:start}.workspace>.left{grid-area:left}.workspace>.view{grid-area:view}.workspace>.right{grid-area:right}.workspace .view{height:clamp(380px,calc(var(--vh, 1vh) * 56),620px)}@container solvark (min-width: 1280px){.workspace{grid-template-columns:300px minmax(0,1fr) 360px;grid-template-areas:"left view right";height:calc(var(--vh, 1dvh) * 100 - var(--header-h));align-items:stretch}.workspace .view{height:auto;min-height:520px}.workspace>.left,.workspace>.right{overflow-y:auto;min-height:0}.workspace>.right>.nav-actions{position:sticky;bottom:0;padding-top:8px;background:linear-gradient(transparent,var(--bg) 12px)}}@container solvark (max-width: 760px){.workspace{grid-template-columns:minmax(0,1fr);grid-template-areas:"view" "left" "right";padding:12px 16px}}.split{display:grid;gap:16px;padding:16px 24px 24px;padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right));grid-template-columns:minmax(0,1fr) minmax(320px,400px);align-items:start}@container solvark (max-width: 900px){.split{grid-template-columns:minmax(0,1fr);padding:12px 16px}}.stack{display:flex;flex-direction:column;gap:12px}.row{display:flex;gap:8px;align-items:center}.wrap{flex-wrap:wrap}.grow{flex-grow:1}.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}@container solvark (max-width: 640px){.three{grid-template-columns:minmax(0,1fr)}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;display:flex;flex-direction:column;gap:12px}.card.tight{gap:8px}.card h1{margin:0;font-size:22px;font-weight:700}.card-title{font-size:14px;font-weight:700;margin:0}.panel-col{display:flex;flex-direction:column;gap:12px}.note{border-radius:10px;padding:12px 14px;font-size:13px;line-height:1.5;background:var(--warn-soft);border:1px solid var(--warn-line);color:var(--warn-text)}.note strong{color:var(--warn-ink)}.note.info{background:var(--accent-soft);border-color:#c8d5f5;color:#1f3f9e}.note.dark{background:var(--ink);border-color:var(--ink);color:#e9ecef}.field{display:flex;flex-direction:column;gap:4px}.field label,.label{font-size:13px;font-weight:600}.field .hint{font-size:12px;color:var(--muted)}.input,.select{height:44px;border:1px solid var(--field);border-radius:8px;padding:0 12px;font-size:15px;background:#fff;min-width:0;width:100%}textarea.input{height:auto;padding:10px 12px;font:inherit;font-size:14px;line-height:1.45;resize:vertical}.note.error{background:var(--danger-soft);border-color:#efbdb7;color:var(--danger)}.input.mono{font-family:var(--mono);font-size:14px}.input-unit{position:relative}.input-unit .input{padding-right:52px}.input-unit span{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--muted);pointer-events:none}.btn{min-height:44px;padding:0 16px;border-radius:8px;border:1px solid var(--field);background:#fff;font-size:14px;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;color:var(--ink)}.btn:hover{background:var(--line-soft);color:var(--ink)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.btn.primary:hover{background:var(--accent-ink);color:#fff}.btn.dark{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:600}.btn.big{min-height:48px;font-size:15px;border-radius:10px}.btn.dashed{border-style:dashed}.btn.output{justify-content:space-between;text-align:left}.btn.output .small{text-align:right}.btn.ghost{border-color:transparent}.btn.danger{color:var(--danger)}.seg{display:flex;gap:6px}.seg>button{flex:1 1 0;min-height:44px;border:1px solid var(--field);border-radius:8px;background:#fff;font-size:14px}.seg>button[aria-pressed=true]{border:2px solid var(--accent);background:var(--accent-soft);font-weight:600}.choice{text-align:left;border:1px solid var(--line);background:#fff;border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:4px;width:100%}.choice[aria-pressed=true]{border:2px solid var(--accent);background:var(--accent-soft)}.nav-actions{display:flex;gap:8px;margin-top:auto}.nav-actions>:first-child:not(:only-child){flex:1 1 0}.nav-actions>:last-child{flex:2 1 0}.pill{display:inline-flex;align-items:center;border-radius:6px;padding:2px 8px;font-size:12px;font-weight:600;white-space:nowrap}.pill.ok{background:var(--ok-soft);color:var(--ok)}.pill.warn{background:var(--warn-soft);color:var(--warn-ink);border:1px solid var(--warn-line)}.pill.info{background:var(--accent-soft);color:#1f3f9e}.pill.bad{background:var(--danger-soft);color:var(--danger)}.kv{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;font-size:13px}.kv dt{color:var(--muted)}.kv dd{margin:0;font-weight:600}.line-item{display:flex;justify-content:space-between;gap:8px;font-size:13px;align-items:center}.table{border-collapse:collapse;width:100%;font-size:13px}.table th{font-weight:500;color:var(--muted);text-align:left;padding:6px 0}.table td{padding:8px 0;border-top:1px solid var(--line-soft);vertical-align:middle}.table .num{text-align:right;font-family:var(--mono)}.table-wrap{overflow-x:auto}.stat{display:flex;flex-direction:column;gap:2px}.stat .k{font-size:12px;color:var(--muted)}.stat .v{font-family:var(--mono);font-weight:700;font-size:22px}.list-check{display:flex;gap:8px;align-items:flex-start;font-size:13px}.viewport{position:relative;border-radius:var(--radius);overflow:hidden;background:var(--dark);touch-action:none;min-width:0}.viewport canvas{display:block;width:100%;height:100%}.overlay{position:absolute;display:flex;gap:6px;flex-wrap:wrap;pointer-events:none}.overlay>*{pointer-events:auto}.overlay.tl{top:12px;left:12px;right:70px}.overlay.tr{top:12px;right:12px;flex-direction:column}.overlay.bl{bottom:12px;left:12px;right:180px;align-items:flex-end}.overlay.br{bottom:12px;right:12px}.tool{min-height:44px;padding:0 12px;border-radius:8px;border:1px solid #4a5562;background:#26303a;color:#e9ecef;font-size:13px}.tool[aria-pressed=true]{background:#fff;color:var(--ink);border-color:#fff;font-weight:600}.tool.sm{min-height:36px;padding:0 10px}.tool:disabled{opacity:.45}.box-select{position:absolute;border:1.5px solid #f2a900;background:#f2a9001f;pointer-events:none}.chip.conflict{background:#c8372df0;color:#fff}.chip{background:#fffffff0;border-radius:8px;padding:7px 11px;font-size:12px;color:var(--ink-2)}.chip.dark{background:#15191ee0;color:#fff}.attribution{font-size:11px;color:#fff;background:#0000008c;padding:3px 8px;border-radius:4px}.icon-btn{width:44px;height:44px;border:0;border-radius:8px;background:#fff;font-size:20px;display:flex;align-items:center;justify-content:center}.shade-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:2px}.shade-grid span{aspect-ratio:1.4;border-radius:2px;background:#dfe7f7}.shade-grid span.blocked{background:#3b4552}.shade-grid span.near{background:#15191e;outline:2px solid var(--sun);outline-offset:-2px}.shade-grid span.below-horizon{background:repeating-linear-gradient(45deg,#eef0f2 0 3px,#f8f9fa 3px 6px)}.home{max-width:1360px;margin:0 auto;padding:32px 24px;display:flex;flex-direction:column;gap:24px}.home h1{margin:0;font-size:34px;line-height:1.15}.flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}@container solvark (max-width: 900px){.flow{grid-template-columns:repeat(2,minmax(0,1fr))}}@container solvark (max-width: 600px){.flow{grid-template-columns:minmax(0,1fr)}}.flow-card .num{width:32px;height:32px;border-radius:999px;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--mono);flex-shrink:0}.tag{font-size:12px;background:var(--accent-soft);color:#1f3f9e;border-radius:6px;padding:3px 8px}.report-layout{display:grid;gap:16px;padding:16px 24px 24px;padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right));grid-template-columns:minmax(0,1fr) minmax(300px,360px);grid-template-areas:"left left" "view right";align-items:start}.report-layout>.left{grid-area:left}.report-layout>.view{grid-area:view;min-width:0}.report-layout>.right{grid-area:right}.report-layout .toc ol{display:flex;flex-wrap:wrap;gap:4px}@container solvark (min-width: 1280px){.report-layout{grid-template-columns:250px minmax(0,1fr) 340px;grid-template-areas:"left view right"}.report-layout .toc ol{display:block}}@container solvark (max-width: 900px){.report-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"left" "view" "right";padding:12px 16px}}.report-page{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 4px 24px #15191e14;padding:36px 40px;max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:16px;font-size:13px}.report-page h2{margin:0;font-size:20px}.report-page h3{margin:0;font-size:15px}.report-head{display:flex;justify-content:space-between;border-bottom:2px solid var(--ink);padding-bottom:10px;font-size:12px;gap:12px}.toc a{display:flex;gap:10px;align-items:center;min-height:44px;padding:0 10px;border-radius:8px;color:var(--ink);text-decoration:none;font-size:14px}.toc a[aria-current=page]{background:var(--accent-soft);font-weight:600}.toc ol{list-style:none;margin:0;padding:0}@media print{@page{size:A4;margin:14mm}body{background:#fff}.no-print,.app-header{display:none!important}.split,.report-layout{display:block;padding:0}.report-page{box-shadow:none;border:0;padding:0;max-width:none;break-after:page}.print-all .report-page{display:flex!important}}.report-page{min-height:1075px}.report-foot{margin-top:auto;display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:8px}.report-page .cover-title{margin:0;font-size:44px;line-height:1.05;letter-spacing:-.02em}.report-page .cover-company{margin-top:auto;color:var(--muted);line-height:1.6}.report-page .lead{margin:0;font-size:16px;color:var(--muted)}.report-page .ph{background:var(--warn-soft);color:var(--warn-ink);border:1px dashed var(--warn-line);border-radius:4px;padding:0 4px;font-weight:500;display:inline-block;max-width:100%}.report-page .ph-box,.report-page .ph-img{background:var(--warn-soft);color:var(--warn-ink);border:1px dashed var(--warn-line);border-radius:8px;padding:12px;font-size:12px}.report-page .ph-img{width:72px;height:72px;padding:6px;flex:none;display:flex;align-items:center;text-align:center;font-size:10px}.report-page .product{display:flex;gap:12px;border-top:1px solid var(--line);padding-top:10px}.report-page .product img{width:72px;height:72px;object-fit:contain;flex:none}.report-page .statement{border-left:3px solid var(--field);padding-left:12px;color:var(--ink-2)}.report-page .statement p{margin:0 0 8px}.report-page .table .sub-head td{font-weight:700;background:var(--line-soft)}.report-page .notes{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px}.report-page sup{font-size:.65em}@media print{.report-page{min-height:0}.report-page .ph,.report-page .ph-box,.report-page .ph-img{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.report-page .table.compact td{padding-top:4px;padding-bottom:4px}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:min(400px,100%);gap:16px}.user-menu{position:relative}.user-menu summary{list-style:none;cursor:pointer}.user-menu summary::-webkit-details-marker{display:none}.user-menu .menu{position:absolute;right:0;top:calc(100% + 8px);z-index:50;min-width:240px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 24px #15191e1f;padding:12px;display:flex;flex-direction:column;gap:8px}.save-state{font-size:12px;color:var(--muted);white-space:nowrap}.save-state.error{color:var(--danger)}.readonly-scope{border:0;padding:0;margin:0;min-width:0;display:contents}.readonly-banner{background:var(--warn-soft);border-bottom:1px solid var(--warn-line);color:var(--warn-text);padding:8px 24px;font-size:14px}.admin-tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line)}.admin-tabs a{padding:10px 14px;color:var(--ink-2);text-decoration:none;border-bottom:2px solid transparent;font-weight:500}.admin-tabs a[aria-current=page]{color:var(--ink);border-bottom-color:var(--ink)}.matrix th.rot{white-space:nowrap;font-size:13px}.matrix td.c,.matrix th.c{text-align:center}.matrix input[type=checkbox]{width:20px;height:20px}.inline-form{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}.inline-form .field{min-width:160px;flex:1}.company-editor .grid-2,.company-editor .grid-3{display:grid;gap:10px 14px;grid-template-columns:repeat(2,minmax(0,1fr))}.company-editor .grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}@container solvark (max-width: 760px){.company-editor .grid-2,.company-editor .grid-3{grid-template-columns:minmax(0,1fr)}}.company-editor textarea.input{min-height:0;padding-top:8px;padding-bottom:8px;resize:vertical;font-family:var(--sans)}.company-editor .logo-box{width:160px;height:72px;border:1px dashed var(--field);border-radius:8px;display:flex;align-items:center;justify-content:center;background:var(--surface);overflow:hidden}.company-editor .logo-box img{max-width:100%;max-height:100%;object-fit:contain}.company-editor .photo-box{display:flex;flex-direction:column;gap:4px;width:180px}.company-editor .photo-box img{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:8px}.company-editor .term-row{display:flex;gap:10px;align-items:flex-start;border-top:1px solid var(--line-soft);padding-top:10px}.company-editor .product-editor{border-top:1px solid var(--line-soft);padding:10px 0}.company-editor .product-editor summary{cursor:pointer;min-height:32px}.company-editor .product-editor[open]{display:flex;flex-direction:column;gap:12px}.company-editor .save-bar{position:sticky;bottom:0;display:flex;gap:10px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px;box-shadow:0 -4px 16px #15191e0f}.company-editor .danger-text{color:var(--danger)}.install{max-width:1440px;margin:0 auto;padding:24px;display:flex;flex-direction:column;gap:16px}.install-grid{display:grid;gap:16px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}@container solvark (max-width: 1000px){.install-grid{grid-template-columns:minmax(0,1fr)}}.sheet-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.sld-sheet{min-width:1240px;background:#fff;padding:24px;display:flex;flex-direction:column;gap:12px;font-size:12px;color:var(--ink)}.sld-top{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:16px}.sld-frame{border:1.5px solid var(--ink);display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:16px;padding:16px}.sld-side{display:flex;flex-direction:column;gap:16px}.sld-box{border:1px solid var(--line);padding:14px 16px}.sld-box ol{margin:0;padding-left:16px;line-height:1.7}.sld-box p{margin:8px 0 0}.sld-box table{width:100%;border-collapse:collapse}.sld-box th{text-align:left;font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:4px 4px 6px 0;border-bottom:1px solid var(--line)}.sld-box td{padding:6px 4px 0 0}.sld-h{font-weight:700;font-size:11px;letter-spacing:.04em;text-transform:uppercase;margin-bottom:10px}.sld-title{display:flex;flex-direction:column;gap:10px}.sld-cell{border:1.5px solid var(--ink);padding:10px 12px;display:flex;flex-direction:column;gap:2px}.sld-cell small{color:var(--muted);margin-top:8px}.sld-cell small:first-child{margin-top:0}.sld-logo{min-height:110px;align-items:center;justify-content:center;color:var(--muted)}.sld-logo img{max-width:100%;max-height:90px;object-fit:contain}.sld-table{width:calc(100% - 206px);border-collapse:collapse;border:1.5px solid var(--ink)}.test-sheet .sld-table{width:100%}.sld-table caption{border:1.5px solid var(--ink);border-bottom:0;padding:5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.sld-table th{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:6px 8px;border-bottom:1px solid var(--ink);text-align:center}.sld-table td{padding:6px 8px;text-align:center;height:26px}.sld-table .wide{text-align:left;width:30%}.test-sheet .sld-table td{height:34px;border-top:1px solid var(--line);border-left:1px solid var(--line-soft)}.test-fields{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.test-fields div{display:flex;flex-direction:column;gap:4px}.test-fields span{border-bottom:1px solid var(--ink);height:22px}.proposal{display:flex;flex-direction:column;gap:4px;padding:8px 0;border-top:1px solid var(--line)}.proposal-views{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin-top:4px}.proposal-thumb{padding:0;border:1px solid var(--line);border-radius:4px;overflow:hidden;background:none;cursor:zoom-in;aspect-ratio:8 / 5}.proposal-thumb[aria-pressed=true]{outline:2px solid var(--accent)}.proposal-thumb img,.proposal-view img{display:block;width:100%;height:100%;object-fit:cover}.proposal-view{margin:4px 0 0}.proposal-view img{border-radius:4px;height:auto}.proposal[aria-current]{background:var(--warn-soft);margin:0 -8px;padding:8px}.btn.live-start{min-height:36px;padding:0 12px;gap:8px;white-space:nowrap}.btn.live-start.on,.btn.live-start.on:disabled{border-color:var(--ok);color:var(--ok);background:var(--ok-soft);opacity:1}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--field);flex:none}.live-dot.live{background:#1fa45a;box-shadow:0 0 0 3px #1fa45a33}.live-dot.connecting,.live-dot.reconnecting{background:var(--sun)}.live-dot.error{background:var(--danger)}.live-shield{position:fixed;inset:0;z-index:60;cursor:default;box-shadow:inset 0 0 0 3px #1f4fd18c}.live-pointers{position:fixed;inset:0;z-index:61;pointer-events:none}.live-pointer{position:absolute;left:-2px;top:-1px;display:flex;align-items:flex-start;gap:2px;transition:transform 60ms linear;will-change:transform}.live-pointer span{margin-top:14px;background:var(--accent);color:#fff;font-size:12px;font-weight:600;padding:1px 6px;border-radius:6px;white-space:nowrap}.live-click{position:absolute;width:28px;height:28px;margin:-14px 0 0 -14px;border-radius:50%;border:2px solid var(--accent);animation:live-click .7s ease-out forwards}@keyframes live-click{0%{transform:scale(.3);opacity:1}to{transform:scale(1.6);opacity:0}}.live-panel,.live-join{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:70;width:min(360px,calc(100vw - 32px));background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 10px 30px #15191e2e}.live-join{display:flex;flex-direction:column;gap:8px;padding:16px}.live-join .row{display:flex;gap:8px}.live-head{all:unset;box-sizing:border-box;width:100%;display:flex;align-items:center;gap:8px;padding:12px 16px;cursor:pointer;min-height:44px}.live-chevron{margin-left:auto;color:var(--muted)}.live-body{padding:0 16px 14px;display:flex;flex-direction:column;gap:10px}.live-body p{margin:0}.live-members{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.live-members li{display:flex;align-items:center;gap:8px;min-height:32px}.live-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-badge{font-size:12px;font-weight:600;color:var(--accent-ink);background:var(--accent-soft-2);border-radius:6px;padding:2px 6px}.live-mic{width:10px;height:10px;border-radius:50%;flex:none;border:2px solid var(--field)}.live-mic.on{background:#1fa45a;border-color:#1fa45a}.live-mic.muted{background:var(--danger-soft);border-color:var(--danger)}.live-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.live-actions .btn,.live-members .btn.small,.live-body>.btn{min-height:36px;padding:0 12px}.live-follow{display:inline-flex;align-items:center;gap:6px;font-size:14px}.live-error{color:var(--danger)}@media print{.live-panel,.live-join,.live-shield,.live-pointers{display:none!important}}.tag.live-tag{margin-left:8px;text-decoration:none;background:var(--ok-soft);color:var(--ok)}html.live-stage,html.live-stage body{overflow:hidden;background:var(--dark)}html.live-stage #root{position:fixed;overflow:auto;min-height:0;transform-origin:0 0;background:var(--bg);box-shadow:0 0 0 1px #ffffff26}.live-start-wrap{position:relative}.btn.live-start.others{border-color:var(--ok);color:var(--ok)}.live-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:40;width:300px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 10px 30px #15191e2e;padding:6px;display:flex;flex-direction:column}.live-option{all:unset;box-sizing:border-box;display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:8px;cursor:pointer;white-space:normal}.live-option:hover,.live-option:focus-visible{background:var(--accent-soft)}.live-badge.host{color:var(--warn-ink);background:var(--warn-soft)}.live-requests{list-style:none;margin:0;padding:8px;display:flex;flex-direction:column;gap:6px;background:var(--accent-soft);border-radius:8px}.live-requests li{display:flex;align-items:center;gap:6px}.link-btn{border:0;background:none;padding:0;color:var(--accent);font:inherit;text-decoration:underline;cursor:pointer}.login-card.wide{width:min(520px,100%)}.code-row{display:flex;gap:8px}.code-row .input{flex:1 1 auto;min-width:0}.code-row .btn{flex:0 0 auto;white-space:nowrap}.phone-row{display:flex;gap:8px}.phone-row .input:first-child{flex:0 0 84px}.phone-row .input:last-child{flex:1 1 auto;min-width:0}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px}.credits-badge{font-family:var(--mono);font-size:13px;font-weight:600;border:1px solid var(--line);border-radius:999px;padding:6px 12px;color:inherit;text-decoration:none;white-space:nowrap}.credits-badge.low{border-color:#efbdb7;color:var(--danger)}.status-pending{background:var(--warn-soft);color:var(--warn-ink)}.status-rejected{background:var(--danger-soft);color:var(--danger)}
