:root{--bg:#0f172a;--panel:#111827;--panel2:#1f2937;--text:#e5e7eb;--muted:#9ca3af;--accent:#22c55e;--danger:#ef4444;--border:#374151}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}header{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px 20px;background:#020617;border-bottom:1px solid var(--border);position:sticky;top:0}header nav{display:flex;gap:10px;flex-wrap:wrap}a{color:#93c5fd;text-decoration:none}nav a,.button,button{background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:8px 12px;display:inline-block;cursor:pointer}button,.button.primary{background:#166534;border-color:#22c55e}main{max-width:1100px;margin:0 auto;padding:24px}.card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:18px;margin:0 0 18px 0;box-shadow:0 8px 30px rgba(0,0,0,.18)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}label{display:block;margin:12px 0 6px;color:var(--muted)}input,select,textarea{width:100%;padding:10px;border-radius:10px;border:1px solid var(--border);background:#020617;color:var(--text)}table{width:100%;border-collapse:collapse;overflow:auto}th,td{border-bottom:1px solid var(--border);text-align:left;padding:10px;vertical-align:top}pre{white-space:pre-wrap;background:#020617;border:1px solid var(--border);border-radius:12px;padding:12px;overflow:auto}.flash{background:#064e3b;border:1px solid #22c55e;color:#dcfce7;padding:12px;border-radius:12px;margin-bottom:14px}.flash.success{background:#064e3b;border-color:#22c55e;color:#dcfce7}.flash.info{background:#1e3a8a;border-color:#60a5fa;color:#dbeafe}.flash.warning{background:#713f12;border-color:#f59e0b;color:#fef3c7}.flash.error{background:#7f1d1d;border-color:#ef4444;color:#fee2e2}.error{background:#7f1d1d;border:1px solid #ef4444;color:#fee2e2;padding:12px;border-radius:12px;margin-bottom:14px}.status-ok{color:#22c55e}.status-bad{color:#ef4444}.muted{color:var(--muted)}footer{text-align:center;color:var(--muted);padding:30px}.small{font-size:.9rem}.pill{display:inline-block;border:1px solid var(--border);border-radius:999px;padding:3px 8px;margin:2px;background:#020617}
.highlight{border-color:#22c55e;box-shadow:0 0 0 1px rgba(34,197,94,.25),0 8px 30px rgba(0,0,0,.18)}.setup-code{font-size:2rem;letter-spacing:.08em;font-weight:800;background:#020617;border:1px dashed #22c55e;border-radius:14px;padding:16px;text-align:center;margin:14px 0;color:#bbf7d0}ol,ul{line-height:1.65}.button{margin:2px 4px 2px 0}

.button.danger, button.danger { background:#b42318; color:#fff; border-color:#b42318; }
.danger-link { color:#b42318; font-weight:700; }
.language-switcher{display:inline-block;margin:0 0 0 6px}.language-switcher select{width:auto;min-width:120px;padding:8px 10px;background:#f9fafb;color:#111827}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.copy-row{display:flex;gap:8px;align-items:stretch;flex-wrap:wrap;margin:14px 0}.copy-row .setup-code,.copy-row .token-code{flex:1 1 260px;margin:0}.copy-button{white-space:nowrap;background:#14532d;border-color:#22c55e}.token-code{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:1rem;word-break:break-all;background:#020617;border:1px dashed #22c55e;border-radius:14px;padding:16px;color:#bbf7d0}.inline-check{display:flex;align-items:center;gap:8px;margin:8px 0;color:var(--text)}.inline-check input{width:auto}header{z-index:20}header nav select{margin-left:4px}
.inline-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.inline-form input{width:auto;min-width:150px}.inline-form button{white-space:nowrap}.status-chip{display:inline-block;border-radius:999px;padding:3px 8px;border:1px solid var(--border);background:#020617}

.checkline { display: flex; align-items: flex-start; gap: .55rem; margin: .65rem 0; line-height: 1.35; }
.checkline input { width: auto; margin-top: .15rem; }
.legal-text pre { white-space: pre-wrap; font-family: inherit; line-height: 1.45; }

.action-list{display:flex;flex-direction:column;gap:10px;margin-top:10px}
.action-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.action-row .button{min-width:155px;text-align:center}
.small{font-size:.9rem}

.invite-notice{background:#064e3b;border:1px solid #22c55e;color:#dcfce7;padding:10px 12px;border-radius:12px;margin:0 0 14px 0;font-weight:600}.invite-notice a{color:#bbf7d0;text-decoration:underline;font-weight:700;margin-left:8px}


/* V0.4.12 */
.status-warn{color:#facc15}.status-dot{font-size:1.1rem;margin-right:.25rem}.station-card{background:#020617;border:1px solid var(--border);border-radius:14px;padding:14px;margin:0}.station-card h3{margin-top:0}
.password-row{display:flex;gap:8px;align-items:center}.password-row input{flex:1}.password-row button{white-space:nowrap;background:var(--panel2);border-color:var(--border)}
.password-meter{margin:10px 0 4px}.password-meter-label{font-size:.9rem;color:var(--muted);margin-bottom:6px}.password-meter-segments{display:grid;grid-template-columns:repeat(9,1fr);gap:4px}.password-meter-segments span{display:block;height:10px;border-radius:999px;background:#1f2937;border:1px solid #374151}.password-meter-segments span.weak{background:#ef4444;border-color:#f87171}.password-meter-segments span.accepted{background:#facc15;border-color:#fde047}.password-meter-segments span.strong{background:#22c55e;border-color:#86efac}
.scenario-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:14px}.scenario-card{display:flex;flex-direction:column;gap:8px;background:#020617;border:1px solid var(--border);border-radius:14px;padding:14px;color:var(--text)}.scenario-card:hover{border-color:#22c55e}.scenario-card span{color:var(--muted);font-size:.92rem;line-height:1.35}
@media (max-width:720px){header{position:static;display:block}header nav{margin-top:10px}main{padding:14px}.card{padding:14px}.action-row{align-items:stretch}.action-row .button{width:100%}.password-row{display:block}.password-row button{margin-top:8px;width:100%}table{display:block;overflow-x:auto;white-space:nowrap}.copy-row{display:block}.copy-button{width:100%;margin-top:8px}.setup-code{font-size:1.4rem}.inline-form input,.inline-form button{width:100%}}


/* V0.4.14 domain/staging foundation */
.staging-banner{position:sticky;top:0;z-index:40;background:#facc15;color:#111827;text-align:center;font-weight:800;padding:8px 12px;border-bottom:2px solid #92400e;letter-spacing:.02em}.env-pill{display:inline-block;margin-left:8px;border:1px solid var(--border);border-radius:999px;padding:2px 8px;font-size:.78rem;color:#facc15;background:#020617;vertical-align:middle}

/* V0.4.18 setup assistant redesign */
.setup-shell{padding:18px}.setup-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px}.setup-head h1{margin:0 0 8px 0}.setup-head p{margin:0;color:var(--muted);max-width:760px}.setup-wizard-grid{display:grid;grid-template-columns:minmax(260px,340px) 1fr;gap:16px;align-items:start}.setup-action-list{display:flex;flex-direction:column;gap:10px}.setup-action{display:grid;grid-template-columns:38px 1fr;gap:10px;align-items:flex-start;background:#020617;border:1px solid var(--border);border-radius:14px;padding:12px;color:var(--text)}.setup-action:hover,.setup-action.active{border-color:#22c55e;background:#07111f}.setup-action.active{box-shadow:0 0 0 1px rgba(34,197,94,.28)}.setup-step-number{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:999px;background:#facc15;color:#111827;font-weight:900;flex:0 0 auto}.setup-action-copy{display:flex;flex-direction:column;gap:4px}.setup-action-copy strong{line-height:1.2}.setup-action-copy small{color:var(--muted);font-size:.88rem;line-height:1.3}.setup-action-copy em{font-style:normal;color:#bbf7d0;font-size:.82rem}.setup-detail-panel{background:#020617;border:1px solid var(--border);border-radius:14px;padding:16px;min-height:250px}.setup-panel-title{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px}.setup-panel-title h2{margin:0 0 4px 0}.setup-panel-title p{margin:0}.compact-form label{margin-top:10px}.compact-form button{margin-top:12px}.form-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.setup-more{margin-top:16px;border-top:1px solid var(--border);padding-top:12px}.setup-more summary{cursor:pointer;font-weight:700;color:#bfdbfe}.setup-next-box{border:1px dashed var(--border);border-radius:12px;padding:14px;background:#0b1220}.setup-next-box p{margin-top:0}.setup-secondary-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--border);font-size:.94rem;color:var(--muted)}.setup-secondary-row a{color:#bfdbfe}.setup-result-card .setup-code{font-size:1.75rem}.setup-meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}.setup-meta-grid code{word-break:break-all}.setup-help-card h2{margin-top:0}
@media (max-width:860px){.setup-head{display:block}.setup-head .button{margin-top:12px}.setup-wizard-grid{grid-template-columns:1fr}.form-grid-3{grid-template-columns:1fr}.setup-action{grid-template-columns:34px 1fr}.setup-result-card .setup-code{font-size:1.35rem}}


/* V0.4.22 Public RX */
.public-rx-layout{display:grid;grid-template-columns:minmax(300px,1.35fr) minmax(260px,.8fr);gap:18px;align-items:start}.public-map{position:relative;min-height:430px;border:1px solid var(--border);border-radius:18px;background:radial-gradient(circle at 50% 50%,#1e3a8a 0,#12213d 45%,#020617 100%);overflow:hidden}.public-map:before{content:"";position:absolute;inset:24px;border:1px solid rgba(255,255,255,.12);border-radius:50%;opacity:.65}.map-grid-line{position:absolute;background:rgba(255,255,255,.12)}.map-grid-line.lat0{left:0;right:0;top:50%;height:1px}.map-grid-line.lng0{top:0;bottom:0;left:50%;width:1px}.map-label{position:absolute;color:rgba(229,231,235,.55);font-weight:800;font-size:.85rem}.map-label-n{top:8px;left:50%}.map-label-s{bottom:8px;left:50%}.map-label-w{left:10px;top:50%}.map-label-e{right:10px;top:50%}.map-empty{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:rgba(2,6,23,.85);border:1px solid var(--border);border-radius:12px;padding:12px;text-align:center}.map-pin{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:6px;color:#e5e7eb;font-size:.78rem;white-space:nowrap}.map-pin span{width:14px;height:14px;border-radius:999px;display:inline-block;border:2px solid #fff;box-shadow:0 0 0 3px rgba(2,6,23,.55)}.map-pin.online span{background:#22c55e}.map-pin.offline span{background:#ef4444}.map-pin b{background:rgba(2,6,23,.82);border:1px solid var(--border);border-radius:999px;padding:3px 7px}.public-station-list{display:flex;flex-direction:column;gap:10px}.public-station-row{display:grid;grid-template-columns:24px 1fr;gap:10px;align-items:start;background:#020617;border:1px solid var(--border);border-radius:14px;padding:12px;color:var(--text)}.public-station-row:hover{border-color:#22c55e}.public-station-row small{display:block;color:var(--muted);margin-top:3px}.public-rx-receiver .rx-control-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0}.rx-status{border:1px solid var(--border);border-radius:12px;background:#020617;padding:10px;margin:10px 0;color:#bfdbfe}.meter-block{display:grid;gap:9px;max-width:640px}.meter-row{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid var(--border);padding:7px 0}.s-meter{height:16px;background:#020617;border:1px solid var(--border);border-radius:999px;overflow:hidden}.s-meter span{display:block;height:100%;background:#22c55e;transition:width .16s linear}@media (max-width:860px){.public-rx-layout{grid-template-columns:1fr}.public-map{min-height:320px}.map-pin b{display:none}}
