:root{--bezel:#0a0a0c;--page:#0f1115;--panel:#171a20;--panel-2:#1e222a;--line:#2a2f38;--ink:#e8eaed;--muted:#9aa0a6;--accent:#4f8cff;--ok:#34c759;--warn:#ffb020;--danger:#ff5a52;--panel-min-w:280px;--panel-max-w:380px;--stage-pad:32px;--phone-w:390px;--phone-h:844px;--bezel-w:12px;--phone-radius:54px;--phone-scale:1}*{box-sizing:border-box}html,body{background:var(--page);height:100%;color:var(--ink);margin:0;font:15px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.layout{grid-template-columns:minmax(var(--panel-min-w),var(--panel-max-w))1fr;height:100vh;display:grid}@media (max-width:860px){.layout{grid-template-columns:1fr;height:auto}}.panel{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;gap:22px;padding:28px 24px;display:flex;overflow-y:auto}.brand{align-items:center;gap:12px;display:flex}.brand .logo{background:var(--panel-2);width:40px;height:40px;color:var(--accent);border-radius:10px;place-items:center;font-weight:700;display:grid}.brand h1{margin:0;font-size:17px;line-height:1.2}.brand .sub{color:var(--muted);font-size:12px}.panel h2{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;font-size:12px}.card{background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:12px 14px}.muted{color:var(--muted);margin:0;font-size:13px}.persona{border:0;border-top:1px solid var(--line);width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border-radius:0;align-items:center;gap:10px;padding:8px 0;display:flex}.persona:first-child{border-top:0;padding-top:0}.persona:disabled{cursor:default;opacity:.6}.persona:not(:disabled):hover .name{color:var(--accent)}.persona .avatar{width:32px;height:32px;color:var(--ink);background:#2b3340;border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:700;display:grid}.persona .name{font-weight:600;line-height:1.2}.persona .role{color:var(--muted);font-size:12px}.chip{border:1px solid var(--line);color:var(--muted);border-radius:999px;flex:none;margin-left:auto;padding:2px 8px;font-size:11px}.chip.busy{border-color:var(--warn);color:var(--warn)}.chip.ok{border-color:var(--ok);color:var(--ok)}ol.script{margin:0;padding-left:18px}ol.script li{margin:6px 0}ol.script small{color:var(--muted);display:block}.actions{flex-wrap:wrap;gap:8px;display:flex}.panel button:not(.persona),.gate button,.links-page button,a.button{font:inherit;border:1px solid var(--line);background:var(--panel-2);color:var(--ink);cursor:pointer;border-radius:8px;padding:8px 12px;font-size:13px;text-decoration:none}.panel button:disabled,.gate button:disabled,.links-page button:disabled{cursor:default;opacity:.6}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.danger{border-color:var(--danger);color:var(--danger)}label.field{color:var(--muted);margin-bottom:6px;font-size:12px;display:block}select{font:inherit;border:1px solid var(--line);background:var(--panel);width:100%;color:var(--ink);border-radius:8px;padding:8px 10px;font-size:13px}.preview-back{margin-top:8px}.status{color:var(--muted);align-items:flex-start;gap:8px;margin-top:auto;font-size:12px;display:flex}.status .dot{background:var(--warn);border-radius:50%;flex:none;width:8px;height:8px;margin-top:5px}.status .dot.ok{background:var(--ok)}.status .dot.error{background:var(--danger)}.status .error-text{color:var(--ink)}.stage{height:100vh;padding:var(--stage-pad);place-items:center;display:grid;overflow:hidden}.phone-slot{width:calc((var(--phone-w) + 2*var(--bezel-w))*var(--phone-scale));height:calc((var(--phone-h) + 2*var(--bezel-w))*var(--phone-scale))}.phone{width:var(--phone-w);height:var(--phone-h);box-sizing:content-box;transform:scale(var(--phone-scale));transform-origin:0 0;border-radius:var(--phone-radius);border:var(--bezel-w)solid var(--bezel);background:#000;position:relative;overflow:hidden;box-shadow:0 30px 70px #0009,0 0 0 2px #2a2d33,inset 0 0 0 1px #000}.island{background:var(--bezel);z-index:2;pointer-events:none;border-radius:20px;width:120px;height:34px;position:absolute;top:12px;left:50%;transform:translate(-50%)}.phone iframe{background:#fff;border:0;width:100%;height:100%;display:block}.gate{place-items:center;min-height:100vh;padding:24px;display:grid}.gate .card{flex-direction:column;gap:14px;width:min(420px,100%);padding:28px 24px;display:flex}.gate h1{margin:0;font-size:18px}.gate .error-text{color:var(--danger);margin:0;font-size:13px}.link-banner{border:1px solid var(--accent);color:var(--accent);background:var(--panel-2);border-radius:8px;padding:8px 12px;font-size:12px;font-weight:600}.links-page{flex-direction:column;gap:24px;max-width:1040px;margin:0 auto;padding:32px 24px 48px;display:flex}.links-page h1{margin:0 0 4px;font-size:20px}.links-page h2{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;font-size:12px}.links-page .error-text{color:var(--danger);margin:0 0 8px;font-size:13px}.links-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.links-page input[type=text],.links-page input[type=number]{font:inherit;border:1px solid var(--line);background:var(--panel);width:100%;color:var(--ink);border-radius:8px;padding:8px 10px;font-size:13px}.link-form,.link-reveal{flex-direction:column;gap:12px;display:flex}.link-form fieldset{border:0;margin:0;padding:0}.link-form .check{align-items:flex-start;gap:8px;padding:4px 0;font-size:14px;display:flex}.form-row{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.link-reveal{border-color:var(--accent)}.link-reveal h2{color:var(--ink)}.table-scroll{overflow-x:auto}.link-table{border-collapse:collapse;width:100%;font-size:13px}.link-table th,.link-table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:8px 10px}.link-table th{color:var(--muted);font-weight:600}.chip.status-active{border-color:var(--ok);color:var(--ok)}.chip.status-exhausted{border-color:var(--warn);color:var(--warn)}.chip.status-revoked{border-color:var(--danger);color:var(--danger)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}
