:root{color-scheme:light;--bg:#f7fbf6;--panel:#ffffff;--border:#dfeadf;--text:#173323;--muted:#6b7f70;--accent:#6aae7a;--accent-bg:#e9f8ec;--danger:#d96b6b;--danger-bg:#fff0f0;--sidebar:#e8f6eb}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}.shell{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}.loginShell{align-items:center;background:radial-gradient(circle at top left,rgba(106,174,122,.18),transparent 34%),radial-gradient(circle at bottom right,rgba(217,107,107,.08),transparent 30%),var(--bg);display:flex;justify-content:center;min-height:100vh;padding:24px}.loginCard{background:var(--panel);border:1px solid var(--border);border-radius:18px;box-shadow:0 24px 80px rgba(23,51,35,.12);display:grid;grid-gap:16px;gap:16px;max-width:460px;padding:28px;width:100%}.loginBrand{align-items:center;display:flex;gap:14px}.loginLogo{align-items:center;background:linear-gradient(135deg,#6aae7a,#d96b6b);border-radius:14px;color:#ffffff;display:inline-flex;font-size:24px;font-weight:800;height:52px;justify-content:center;width:52px}.loginIntro{color:var(--muted);line-height:1.6;margin:0}.loginCard label{color:var(--muted);display:grid;font-size:13px;grid-gap:6px;gap:6px}.loginCard button{margin:4px 0 0}.sidebar{background:var(--sidebar);color:#173323;padding:24px 16px}.brand{font-size:18px;font-weight:700;margin-bottom:28px}nav{display:grid;grid-gap:6px;gap:6px}nav a{border-radius:8px;color:#4d7159;padding:10px 12px}nav a.active,nav a:hover{background:#d5eedb;color:#173323}.content{padding:28px}.topbar{align-items:center;display:flex;justify-content:space-between;gap:20px;margin-bottom:22px}.eyebrow{color:var(--muted);font-size:13px;margin:0 0 4px}h1,h2{margin:0}h1{font-size:28px}h2{font-size:18px}.flag{background:var(--accent-bg);border:1px solid #b8e6c2;border-radius:8px;color:var(--accent);font-weight:700;padding:8px 10px;white-space:nowrap}.metrics{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.gridTwo{grid-gap:18px;grid-template-columns:repeat(2,minmax(0,1fr))}.gridTwo,.visualGrid{display:grid;gap:18px;margin-bottom:18px}.visualGrid{grid-gap:18px;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr)}.notice{background:#f0fdf4;border:1px solid #caecd0;border-radius:8px;color:#2f6d42;margin-bottom:18px;padding:12px 14px}.metrics div,.panel{background:var(--panel);border:1px solid var(--border);border-radius:8px}.metrics div{padding:16px}.metrics span{color:var(--muted);display:block;font-size:13px}.metrics strong{display:block;font-size:24px;margin-top:8px}.panel{overflow:hidden;margin-bottom:18px}.panelHeader{align-items:center;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:16px}.panelHeader span{color:var(--muted);font-size:13px}table{border-collapse:collapse;width:100%}td,th{border-bottom:1px solid var(--border);font-size:14px;padding:14px 16px;text-align:left}th{color:var(--muted);font-weight:700}tr:last-child td{border-bottom:0}.formPanel{padding-bottom:16px}.formPanel label{color:var(--muted);display:grid;font-size:13px;grid-gap:6px;gap:6px;padding:14px 16px 0}input,select{background:#ffffff;border:1px solid var(--border);border-radius:8px;color:var(--text);font:inherit;padding:10px 12px;width:100%}button{background:var(--accent);border:0;border-radius:8px;color:#ffffff;cursor:pointer;font:inherit;font-weight:700;margin:16px 16px 0;padding:10px 14px}.secondaryButton{background:#789682}button:disabled{cursor:not-allowed;opacity:.5}.buttonRow{display:flex;gap:10px;padding:16px 16px 0}.buttonRow button{margin:0}.sessionSummary{display:grid;grid-gap:6px;gap:6px;padding:16px 16px 0}.sessionSummary strong{font-size:18px}.sessionSummary small,.sessionSummary span{color:var(--muted)}.gaugePanel,.networkPanel{background:radial-gradient(circle at top left,rgba(106,174,122,.16),transparent 34%),radial-gradient(circle at bottom right,rgba(217,107,107,.06),transparent 32%),linear-gradient(135deg,#ffffff,#f9fff9)}.orbitField{height:360px;overflow:hidden;position:relative}.orbitField:before{animation:glowSweep 5s linear infinite;background:conic-gradient(from 120deg,transparent,rgba(106,174,122,.28),rgba(217,107,107,.12),transparent 36%);border-radius:50%;content:"";height:420px;opacity:.5;width:420px}.orbitField:before,.orbitRing{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.orbitRing{border:1px dashed rgba(106,174,122,.28);border-radius:50%}.ringOne{animation:slowSpin 18s linear infinite;height:210px;width:210px}.ringTwo{animation:slowSpinReverse 28s linear infinite;height:300px;width:300px}.coreNode{align-items:center;background:#6aae7a;border:8px solid #e9f8ec;border-radius:50%;box-shadow:0 18px 45px rgba(106,174,122,.28);color:#ffffff;display:grid;height:116px;justify-items:center;left:50%;padding:20px;position:absolute;top:50%;transform:translate(-50%,-50%);width:116px;z-index:3}.coreNode strong{font-size:18px}.coreNode small{color:#d5fff7;font-size:12px}.corePulse{animation:pulseHalo 2.6s ease-out infinite;border:1px solid rgba(106,174,122,.5);border-radius:50%;inset:-22px;position:absolute}.nodeOrb{animation:nodeFloat 4s ease-in-out infinite;background:#ffffff;border:1px solid rgba(106,174,122,.25);border-radius:18px;box-shadow:0 14px 34px rgba(15,23,42,.12);color:var(--text);display:grid;grid-gap:4px;gap:4px;margin:0;min-width:132px;padding:14px 16px;position:absolute;text-align:left;z-index:4}.nodeOrb.active,.nodeOrb:hover{background:#6aae7a;color:#ffffff;transform:translateY(-3px)}.nodeOrb small{color:var(--muted)}.nodeOrb.active small,.nodeOrb:hover small{color:#c6fff5}.nodeOrb0{left:10%;top:58px}.nodeOrb1{animation-delay:-1.2s;right:8%;top:88px}.nodeOrb2{animation-delay:-2.1s;bottom:52px;left:38%}.nodeSignal{animation:blinkSignal 1.8s ease-in-out infinite;background:#d96b6b;border-radius:50%;box-shadow:0 0 0 8px rgba(217,107,107,.12);height:9px;width:9px}.dataStream{animation:streamMove 2.8s linear infinite;background:linear-gradient(90deg,transparent,rgba(106,174,122,.88),rgba(217,107,107,.36),transparent);height:2px;left:50%;position:absolute;top:50%;transform-origin:left center;width:190px;z-index:2}.streamOne{transform:rotate(215deg)}.streamTwo{animation-delay:-.8s;transform:rotate(330deg)}.streamThree{animation-delay:-1.6s;transform:rotate(88deg)}.emptyOrbit,.emptyText{color:var(--muted);padding:18px}.gaugeWrap{grid-gap:18px;gap:18px;grid-template-columns:minmax(210px,.9fr) minmax(0,1fr);padding:24px}.gaugeWrap,.trafficGauge{align-items:center;display:grid}.trafficGauge{--gauge:120deg;animation:gaugeBreath 3s ease-in-out infinite;background:radial-gradient(circle at center,#ffffff 0 48%,transparent 49%),conic-gradient(from -170deg,#82bf90 var(--gauge),#d96b6b calc(var(--gauge) + 18deg),#e5eee6 0 340deg,transparent 0);border-radius:50%;height:230px;justify-items:center;margin:0 auto;position:relative;width:230px}.trafficGauge:after{border:1px solid rgba(106,174,122,.18);border-radius:50%;content:"";inset:18px;position:absolute}.gaugeNeedle{animation:needleTick 2.4s ease-in-out infinite;background:#0f172a;border-radius:999px;bottom:50%;height:74px;left:calc(50% - 2px);position:absolute;transform:rotate(38deg);transform-origin:bottom center;width:4px;z-index:2}.gaugeCenter{background:#ffffff;border:1px solid var(--border);border-radius:50%;box-shadow:0 10px 26px rgba(15,23,42,.1);display:grid;height:116px;place-items:center;position:relative;text-align:center;width:116px;z-index:3}.gaugeCenter strong{font-size:20px}.gaugeCenter small,.nodeStatusStack span,.trafficBarItem small{color:var(--muted);font-size:12px}.nodeStatusStack{display:grid;grid-gap:10px;gap:10px}.nodeStatusStack div{background:rgba(255,255,255,.72);border:1px solid var(--border);border-radius:12px;padding:14px}.nodeStatusStack strong{display:block;font-size:20px;margin-top:6px}.trafficBars{padding:18px}.trafficBarItem,.trafficBars{display:grid;grid-gap:14px;gap:14px}.trafficBarItem{align-items:center;grid-template-columns:220px minmax(160px,1fr) 90px}.trafficBarItem small,.trafficBarItem strong{display:block}.trafficBarItem em{color:var(--muted);font-style:normal;text-align:right}.barTrack{background:#e5eee6;border-radius:999px;height:12px;overflow:hidden;position:relative}.barTrack span{animation:barShimmer 2.8s linear infinite;background:linear-gradient(90deg,#6aae7a,#9bd3a6,#d96b6b);border-radius:inherit;display:block;height:100%;min-width:8%}.safetyPanel{background:radial-gradient(circle at top right,rgba(106,174,122,.13),transparent 34%),linear-gradient(135deg,#ffffff,#f7fff8)}.trialSteps{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr));padding:18px}.stepCard{background:#f6faf6;border:1px solid var(--border);border-radius:14px;display:grid;grid-gap:8px;gap:8px;padding:14px}.stepCard strong{font-size:14px}.stepCard span{color:var(--muted);font-size:12px;word-break:break-all}.stepCard.ok{background:#ebf8ee;border-color:#b8e6c2;box-shadow:inset 4px 0 0 #6aae7a}.stepCard.blocked{background:#fff6f6;border-color:#f4c7c7;box-shadow:inset 4px 0 0 #d96b6b}.readinessSummary{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));padding:18px}.codePreview{display:grid;grid-gap:10px;gap:10px;padding:16px}.codePreview strong{color:var(--muted);font-size:13px}.codePreview pre{background:#102017;border-radius:12px;color:#d8ffe0;font-size:12px;line-height:1.55;margin:0;max-height:220px;overflow:auto;padding:14px;white-space:pre-wrap;word-break:break-word}@keyframes slowSpin{0%{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(1turn)}}@keyframes slowSpinReverse{0%{transform:translate(-50%,-50%) rotate(1turn)}to{transform:translate(-50%,-50%) rotate(0deg)}}@keyframes glowSweep{0%{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(1turn)}}@keyframes pulseHalo{0%{opacity:.75;transform:scale(.78)}to{opacity:0;transform:scale(1.55)}}@keyframes blinkSignal{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.72)}}@keyframes nodeFloat{0%,to{translate:0 0}50%{translate:0 -8px}}@keyframes streamMove{0%{opacity:0;-webkit-clip-path:inset(0 100% 0 0);clip-path:inset(0 100% 0 0)}35%{opacity:1;-webkit-clip-path:inset(0 40% 0 0);clip-path:inset(0 40% 0 0)}to{opacity:0;-webkit-clip-path:inset(0 0 0 100%);clip-path:inset(0 0 0 100%)}}@keyframes gaugeBreath{0%,to{filter:drop-shadow(0 12px 18px rgba(106,174,122,.16))}50%{filter:drop-shadow(0 18px 28px rgba(106,174,122,.24))}}@keyframes needleTick{0%,to{transform:rotate(28deg)}50%{transform:rotate(48deg)}}@keyframes barShimmer{0%{filter:hue-rotate(0deg)}50%{filter:hue-rotate(16deg) brightness(1.08)}to{filter:hue-rotate(0deg)}}.smallButton{font-size:13px;margin:0;padding:7px 10px}.smallButton.secondary{background:#789682}.smallButton.danger{background:var(--danger)}.inlineActions{display:flex;flex-wrap:wrap;gap:6px}.exportPreview{background:linear-gradient(180deg,#f2fbf4,#ffffff);border:1px solid #cfe9d5;border-radius:18px;box-shadow:0 18px 45px rgba(57,125,78,.1);margin-top:16px;overflow:hidden}.exportPreview .sectionHeader{border-bottom:1px solid #dcefe1;margin:0}.exportPreview pre{color:#183c24;font-size:12px;line-height:1.65;margin:0;max-height:420px;overflow:auto;padding:16px;white-space:pre-wrap;word-break:break-word}.manualResultsPanel{background:#ffffff;border:1px solid #d8eddc;border-radius:18px;margin-top:18px;overflow:hidden}.manualResultsPanel .panelHeader p{color:var(--muted);font-size:13px;margin:4px 0 0}.filterRow{align-items:end;background:linear-gradient(135deg,#f2fbf4,#ffffff);border-bottom:1px solid var(--border);display:grid;grid-gap:14px;gap:14px;grid-template-columns:minmax(160px,.8fr) minmax(240px,1.4fr) minmax(120px,.4fr);padding:16px}.filterRow label{color:var(--muted);display:grid;font-size:13px;grid-gap:6px;gap:6px}.filterSummary{background:#e9f8ec;border:1px solid #b8e6c2;border-radius:14px;display:grid;grid-gap:2px;gap:2px;padding:10px 12px}.filterSummary strong{color:var(--accent);font-size:22px}.filterSummary span,td small{color:var(--muted);font-size:12px}td small{display:block;margin-top:4px}.linkText{max-width:420px;overflow-wrap:anywhere}.pill{border-radius:999px;display:inline-block;font-size:12px;font-weight:700;padding:4px 8px}.pill.ok{background:#e9f8ec;color:#2f6d42}.pill.warn{background:#fef3c7;color:#92400e}.pill.danger{background:var(--danger-bg);color:#991b1b}.policyNote{background:#fff6f6;border-top:1px solid var(--border);color:#991b1b;font-size:13px;padding:12px 16px}.importPanel{margin-bottom:0}.formGrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}.wideField{grid-column:span 3}@media (max-width:860px){.shell{grid-template-columns:1fr}.sidebar{padding:18px}nav{grid-template-columns:repeat(5,minmax(0,1fr));overflow-x:auto}.content{padding:18px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.formGrid,.gridTwo,.visualGrid{grid-template-columns:1fr}.wideField{grid-column:span 1}.filterRow,.trafficBarItem{grid-template-columns:1fr}.trafficBarItem em{text-align:left}}@media (max-width:560px){.panelHeader,.topbar{align-items:flex-start;flex-direction:column}.gaugeWrap,.metrics{grid-template-columns:1fr}.nodeOrb{min-width:112px}table{display:block;overflow-x:auto;white-space:nowrap}}