:root{--bench: #dce8ed;--bench-deep: #c9d8df;--chassis: #14303a;--chassis-lift: #1c3d49;--signal: #2a9b9b;--signal-soft: #d4ecec;--amber: #d4921a;--amber-glow: #f3d9a0;--ink: #1c2a32;--ink-soft: #4a5c66;--paper: #f4f8fa;--fault: #c44b4b;--ok: #2f7d62;--line: #b7c9d1;--shadow: 0 10px 30px rgba(20, 48, 58, .08);--radius: 14px;--font: "Shabnam", Tahoma, sans-serif}@font-face{font-family:Shabnam;font-style:normal;font-weight:300;src:url(/fonts/Shabnam-Thin-FD.woff2) format("woff2");font-display:swap}@font-face{font-family:Shabnam;font-style:normal;font-weight:400;src:url(/fonts/Shabnam-Light-FD.woff2) format("woff2");font-display:swap}@font-face{font-family:Shabnam;font-style:normal;font-weight:500;src:url(/fonts/Shabnam-FD.woff2) format("woff2");font-display:swap}@font-face{font-family:Shabnam;font-style:normal;font-weight:600;src:url(/fonts/Shabnam-Medium-FD.woff2) format("woff2");font-display:swap}@font-face{font-family:Shabnam;font-style:normal;font-weight:700;src:url(/fonts/Shabnam-Bold-FD.woff2) format("woff2");font-display:swap}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;color:var(--ink);background:radial-gradient(1200px 420px at 10% -10%,rgba(42,155,155,.12),transparent 60%),var(--bench);font-family:var(--font);font-weight:400;line-height:1.55}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin:0}.app{max-width:1440px;margin:0 auto;padding:20px 20px 48px}.rail{background:var(--chassis);color:#e8f4f2;border-radius:18px;padding:18px 20px 16px;margin-bottom:16px;box-shadow:0 16px 40px #14303a47}.rail-top{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:16px}.rail-kicker{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#9fe3dc}.rail h1{font-size:22px;font-weight:700;margin-top:4px}.rail-meta{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;font-variant-numeric:tabular-nums;font-size:12px}.rail-meta span{background:var(--chassis-lift);border:1px solid rgba(159,227,220,.18);border-radius:999px;padding:4px 10px}.rail-steps{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:0;padding:0}.rail-steps li{display:flex;align-items:center;gap:8px;min-height:42px;padding:8px 10px;border-radius:12px;background:#ffffff0a;color:#8aa3ab;font-size:13px}.rail-steps li.done{color:#cfe7e4}.rail-steps li.on{color:#1c2a32;background:var(--amber)}.led{width:10px;height:10px;border-radius:50%;background:#3d5560;box-shadow:inset 0 0 0 1px #ffffff1a}.rail-steps li.done .led{background:var(--signal)}.rail-steps li.on .led{background:#fff;box-shadow:0 0 0 4px #ffffff47}@media (max-width: 800px){.rail-steps{grid-template-columns:1fr 1fr}.rail-top{flex-direction:column}}.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.panel-pad{padding:16px 18px}.grid-2{display:grid;gap:16px;grid-template-columns:1fr 1fr}.grid-actions{display:grid;gap:16px;grid-template-columns:1.2fr .8fr}.muted{color:var(--ink-soft);font-size:13px}.section-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}.section-title h2{font-size:15px;font-weight:700;letter-spacing:-.01em}.field-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px 12px}.field{display:flex;flex-direction:column;gap:5px}.field label,.field-label{font-size:12px;color:var(--ink-soft)}.field input,.field select,.field textarea,.control{width:100%;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);padding:8px 10px}.field input:focus,.field select:focus,.field textarea:focus,.control:focus{outline:2px solid rgba(42,155,155,.35);border-color:var(--signal)}.field input:disabled,.field select:disabled,.field textarea:disabled{background:#eef3f5;color:var(--ink-soft)}.btn{border:0;border-radius:999px;padding:8px 14px;background:var(--chassis);color:#f4f8fa;font-weight:600}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-quiet{background:transparent;color:var(--ink);border:1px solid var(--line)}.btn-signal{background:var(--signal);color:#fff}.btn-amber{background:var(--amber);color:#1c2a32}.btn-fault{background:var(--fault);color:#fff}.btn-row{display:flex;flex-wrap:wrap;gap:8px}.banner{border-radius:12px;padding:10px 12px;background:var(--amber-glow);color:#5a3b08;font-size:13px;font-weight:600}.banner-wait{background:var(--signal-soft);color:#145656}.banner-fault{background:#f8d9d9;color:#7a2424}.readonly-chip{display:flex;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:10px;background:#eef4f6;border:1px solid var(--line)}.readonly-chip b{font-variant-numeric:tabular-nums;font-weight:600}.switch{display:inline-flex;align-items:center;gap:8px}.switch input{accent-color:var(--signal)}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}table{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}th,td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:right;vertical-align:middle}th{background:#e8f0f3;font-weight:600}.log{max-height:280px;overflow:auto;font-size:12px;font-variant-numeric:tabular-nums;background:var(--chassis);color:#d7e4e0;border-radius:12px;padding:10px 12px}.log-item{display:grid;grid-template-columns:72px 28px 1fr;gap:8px;padding:4px 0;border-bottom:1px solid rgba(255,255,255,.06)}.log-in{color:var(--amber-glow)}.log-out{color:#9fe3dc}.json-box{width:100%;min-height:240px;font-family:ui-monospace,Consolas,monospace;font-size:12px;direction:ltr;text-align:left;background:var(--chassis);color:#e8f4f2;border:0;border-radius:12px;padding:12px}.logo-preview{width:72px;height:72px;object-fit:contain;background:#fff;border-radius:10px;border:1px solid var(--line)}.stream-preview{width:100%;max-width:360px;border-radius:12px;border:1px solid var(--line);background:var(--chassis)}.empty{padding:18px;border:1px dashed var(--line);border-radius:12px;color:var(--ink-soft);background:#f7fbfc}.seg{display:flex;flex-wrap:wrap;gap:4px}.seg button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:4px 10px;font-size:12px}.seg button.on{background:var(--chassis);color:#fff;border-color:var(--chassis)}.table-wrap .field{min-width:92px}.table-wrap .field label,.table-wrap .field-label{display:none}@media (max-width: 980px){.grid-2,.grid-actions{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}
