.admin-controller-page{max-width:1460px}.admin-controller-layout{display:grid;gap:12px;grid-template-columns:1.2fr 1fr}.admin-controller-panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}.admin-controller-panel h2{margin:0;padding:11px 12px;font-size:14px;border-bottom:1px solid var(--line);background:#f8fbff;color:var(--brand-dark)}.admin-controller-body{padding:12px}.admin-controller-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.admin-controller-row.single{grid-template-columns:1fr}.admin-controller-field label{display:block;font-size:12px;color:var(--muted);margin-bottom:4px}.admin-controller-field input,.admin-controller-field select,.admin-controller-field textarea{width:100%;font-size:13px;border-radius:8px;border:1px solid var(--line);padding:8px 9px;font-family:inherit}.admin-controller-field textarea{min-height:350px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;line-height:1.45}.admin-controller-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}.admin-controller-actions button{width:auto;cursor:pointer;border-radius:8px;border:1px solid var(--line);padding:8px 12px;font-size:13px;font-weight:600;background:#fff;color:var(--brand-dark)}.admin-controller-actions button.primary{background:linear-gradient(90deg,var(--brand-dark),var(--brand));color:#fff;border:none}.admin-controller-actions button:disabled{opacity:.5;cursor:not-allowed}.admin-controller-format-toggle{display:flex;gap:6px}.admin-controller-format-toggle button{width:auto;padding:6px 10px;font-size:12px;border-radius:999px;border:1px solid var(--line);background:#fff;cursor:pointer}.admin-controller-format-toggle button.active{background:linear-gradient(90deg,var(--brand-dark),var(--brand));color:#fff;border-color:transparent}.admin-controller-hint{font-size:12px;color:var(--muted)}.admin-controller-info-box{border:1px solid var(--line);border-radius:8px;background:#f8fbff;padding:10px;margin-bottom:8px}.admin-controller-info-box h3{margin:0 0 6px;font-size:13px;color:var(--brand-dark)}.admin-controller-info-box p{margin:0 0 6px;font-size:12px}.admin-controller-info-box ul{margin:0 0 6px 16px;padding:0}.admin-controller-info-box li{font-size:12px;color:var(--muted);margin:2px 0}.admin-controller-validation{margin-bottom:8px;font-size:12px;padding:8px;border-radius:8px;border:1px solid transparent}.admin-controller-validation.ok{background:#eef9f1;color:var(--success);border-color:#bfe6cb}.admin-controller-validation.err{background:#fff1f1;color:var(--danger-text);border-color:#efc8c8}.admin-controller-validation.warn{background:#fff8ea;color:var(--warning);border-color:#f0ddb6}.admin-controller-status{font-size:12px;margin-top:8px;padding:8px;border-radius:8px;border:1px solid transparent;background:#f5f8fc;color:var(--muted)}.admin-controller-status.ok{background:#eef9f1;color:var(--success);border-color:#bfe6cb}.admin-controller-status.warn{background:#fff8ea;color:var(--warning);border-color:#f0ddb6}.admin-controller-status.err{background:#fff1f1;color:var(--danger-text);border-color:#efc8c8}.admin-controller-pre{margin:0;background:#0f2740;color:#ecf7ff;border-radius:8px;padding:10px;max-height:340px;overflow:auto;font-size:12px}.admin-controller-history-table{width:100%;border-collapse:collapse;font-size:12px}.admin-controller-history-table th,.admin-controller-history-table td{border-bottom:1px solid var(--line);padding:6px;text-align:left}@media(max-width:1100px){.admin-controller-layout{grid-template-columns:1fr}}@media(max-width:700px){.admin-controller-row{grid-template-columns:1fr}}.onboarding-page{max-width:1320px}.onboarding-layout{display:grid;gap:16px;grid-template-columns:1.1fr 1fr}.onboarding-panel{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 8px 24px #102a4314}.onboarding-panel-header{padding:14px 16px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fafdff,#f5f9fd)}.onboarding-panel-header h2{margin:0;font-size:16px;color:var(--brand-dark)}.onboarding-panel-header p{margin:4px 0 0;font-size:12px;color:var(--muted)}.onboarding-panel-body{padding:16px}.onboarding-section{margin-bottom:14px}.onboarding-section:last-child{margin-bottom:0}.onboarding-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.onboarding-field label{display:block;margin-bottom:5px;font-size:12px;font-weight:600;color:var(--muted)}.onboarding-field input,.onboarding-field select{width:100%;padding:10px 12px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--text);font-size:14px}.onboarding-field input:focus,.onboarding-field select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #1f4f8226}.onboarding-helper{margin-top:4px;font-size:12px;color:var(--muted)}.onboarding-checkbox-row{display:flex;flex-wrap:wrap;gap:12px;border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:#f8fbff}.onboarding-checkbox-row label{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text);margin:0;font-weight:400}.onboarding-checkbox-row input{width:auto;margin:0}.onboarding-service-list{border:1px solid var(--line);border-radius:8px;padding:10px;min-height:78px;max-height:170px;overflow:auto;background:#f8fbff}.onboarding-service-item{display:flex;align-items:center;gap:8px;margin-bottom:7px;font-size:13px;color:var(--text)}.onboarding-service-item:last-child{margin-bottom:0}.onboarding-service-item input{width:auto;margin:0}.onboarding-button-row{display:flex;gap:10px;flex-wrap:wrap}.onboarding-plan-hint{margin-top:8px;font-size:12px;color:#0f5ea8;background:#edf5ff;border:1px solid #bfd6f4;border-radius:8px;padding:7px 10px;font-weight:600}.onboarding-status-banner{padding:10px 12px;border-radius:8px;border:1px solid transparent;font-size:13px;font-weight:600;margin-top:12px;min-height:20px;background:#f5f8fc;color:var(--muted)}.onboarding-status-banner.ok{color:var(--success);background:#eefbf4;border-color:#bfead0}.onboarding-status-banner.warn{color:var(--warning);background:#fff7eb;border-color:#f0ddb8}.onboarding-status-banner.err{color:var(--danger-text);background:#fff1f1;border-color:#f4c7c7}.onboarding-apply-timer{margin-top:8px;font-size:12px;color:#0f5ea8;font-weight:600;min-height:16px}.onboarding-tracker-shell{margin-top:12px;border:1px solid #c9d9ea;border-radius:10px;background:linear-gradient(180deg,#fbfdff,#f5f9fd);padding:12px}.onboarding-tracker-title{margin:0;font-size:13px;font-weight:700;color:var(--brand-dark)}.onboarding-tracker-subtitle{margin:2px 0 0;font-size:12px;color:var(--muted)}.onboarding-tracker-subtitle.live{color:#0f5ea8;font-weight:600}.onboarding-tracker-subtitle.live:before{content:"●";display:inline-block;margin-right:6px;color:#1f75cb;animation:onboardingPulse 1.2s ease-in-out infinite}.onboarding-tracker-legend{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.onboarding-legend-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;background:#fff;padding:4px 8px;font-size:11px;color:var(--muted);font-weight:600}.onboarding-legend-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.onboarding-tracker-layout{display:grid;grid-template-columns:132px 1fr;gap:12px;align-items:center;margin-top:10px}.onboarding-tracker-ring-wrap{display:flex;justify-content:center;align-items:center}.onboarding-tracker-ring{width:116px;height:116px;border-radius:50%;background:#d2dde9;position:relative;box-shadow:inset 0 0 0 1px #102a431f}.onboarding-tracker-ring.live{animation:onboardingGlow 1.8s ease-in-out infinite}.onboarding-tracker-ring:after{content:"";position:absolute;top:18px;right:18px;bottom:18px;left:18px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 1px var(--line)}.onboarding-tracker-ring-center{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:flex;align-items:center;justify-content:center;flex-direction:column;pointer-events:none;text-align:center}.onboarding-tracker-ring-center strong{font-size:15px;color:var(--brand-dark);line-height:1}.onboarding-tracker-ring-center span{margin-top:4px;font-size:11px;color:var(--muted);line-height:1.2}.onboarding-worker-lane{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.onboarding-worker-step{border:1px solid var(--line);border-radius:8px;background:#fff;padding:8px 9px;min-height:56px;display:flex;flex-direction:column;justify-content:center;gap:3px}.onboarding-worker-step .row{display:flex;align-items:center;gap:7px}.onboarding-worker-dot{width:9px;height:9px;border-radius:50%;background:#94a3b8;box-shadow:0 0 0 2px #94a3b833;flex:0 0 auto}.onboarding-worker-step .name{font-size:12px;font-weight:700;color:var(--text);line-height:1.2}.onboarding-worker-step .state{font-size:11px;color:var(--muted);margin-left:16px}.onboarding-worker-step.pending .onboarding-worker-dot{background:#8d9bb0}.onboarding-worker-step.inprogress .onboarding-worker-dot{background:#1f75cb}.onboarding-worker-step.success .onboarding-worker-dot{background:#1d7f4e}.onboarding-worker-step.failed .onboarding-worker-dot{background:#b42318}.onboarding-worker-step.inprogress .state{color:#1f75cb;font-weight:600}.onboarding-worker-step.success .state{color:#1d7f4e;font-weight:600}.onboarding-worker-step.failed .state{color:#b42318;font-weight:700}.onboarding-worker-step.inprogress.live{border-color:#bfd6f4;box-shadow:0 0 0 2px #1f75cb1f}.onboarding-worker-step.inprogress.live .onboarding-worker-dot{animation:onboardingPulse 1s ease-in-out infinite}.onboarding-tracker-incident{margin-top:10px;border:1px solid #f4c7c7;background:#fff2f2;color:#8a1b14;border-radius:8px;padding:9px 10px;font-size:12px;line-height:1.4}.onboarding-lookup-grid{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}.onboarding-muted-note{margin-top:10px;font-size:12px;color:var(--muted)}.onboarding-results-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.onboarding-result-card{border:1px solid var(--line);border-radius:10px;background:#fff;overflow:hidden}.onboarding-result-card h3{margin:0;padding:10px 12px;font-size:13px;color:var(--brand-dark);border-bottom:1px solid var(--line);background:#f8fbff}.onboarding-result-card pre{margin:0;padding:12px;min-height:160px;max-height:360px;overflow:auto;background:#0f2740;color:#edf7ff;font-size:12px;line-height:1.45}.onboarding-btn-intake-primary{background:linear-gradient(90deg,var(--brand-dark),var(--brand));color:#fff;border:none;border-radius:8px;padding:10px 14px;font-size:13px;font-weight:700;cursor:pointer}.onboarding-btn-intake-secondary{background:#e7f4fb;color:#0a5d96;border:1px solid #cfe8f7;border-radius:8px;padding:10px 14px;font-size:13px;font-weight:700;cursor:pointer}.onboarding-btn-intake-ghost{background:#fff;color:var(--muted);border:1px solid var(--line);border-radius:8px;padding:10px 14px;font-size:13px;font-weight:700;cursor:pointer}.onboarding-btn-intake-primary:disabled,.onboarding-btn-intake-secondary:disabled,.onboarding-btn-intake-ghost:disabled{opacity:.5;cursor:not-allowed}@keyframes onboardingPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.92)}}@keyframes onboardingGlow{0%,to{box-shadow:inset 0 0 0 1px #102a431f,0 0 #1f75cb00}50%{box-shadow:inset 0 0 0 1px #102a431f,0 0 0 6px #1f75cb1f}}@media(max-width:1100px){.onboarding-layout,.onboarding-results-grid{grid-template-columns:1fr}}@media(max-width:700px){.onboarding-grid-2,.onboarding-lookup-grid,.onboarding-tracker-layout,.onboarding-worker-lane{grid-template-columns:1fr}}:root{--bg: #f7f9fc;--surface: #fff;--line: #d6dee8;--text: #213247;--muted: #60758c;--brand: #1f4f82;--brand-dark: #003f7d;--chip: #eef3f8;--danger-bg: #fdecec;--danger-text: #b42318;--success: #1d7f4e;--warning: #a86b00}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}a{color:var(--brand)}.topbar{background:linear-gradient(100deg,var(--brand-dark),var(--brand));color:#fff;border-bottom:1px solid rgba(255,255,255,.15)}.topbar-inner{max-width:1280px;margin:0 auto;padding:12px 18px;display:flex;justify-content:space-between;align-items:center}.brand h1{margin:0;font-size:20px}.brand p{margin:2px 0 0;font-size:12px;opacity:.9}.layout{display:grid;grid-template-columns:220px 1fr;min-height:calc(100vh - 56px)}.sidebar{background:var(--surface);border-right:1px solid var(--line);padding:16px 10px}.nav-group+.nav-group{margin-top:16px}.nav-label{margin:0 8px 8px;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.nav-link{display:block;padding:8px 10px;margin:2px 4px;border-radius:8px;color:var(--text);text-decoration:none;font-size:14px}.nav-link.active{background:#e8f0fa;color:var(--brand);font-weight:600}.content{padding:16px;max-width:1200px}.panel,.login-panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:16px}.panel h2,.login-panel h1{margin:0 0 8px;color:var(--brand)}.help{font-size:13px;color:var(--muted);margin:0 0 12px}.muted{color:var(--muted)}.kpi-row{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:12px;align-items:center}.kpi{font-size:14px}.data-table{width:100%;border-collapse:collapse;font-size:14px}.data-table th,.data-table td{border:1px solid var(--line);padding:8px 10px;text-align:left}.data-table th{background:var(--chip)}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;text-transform:lowercase;background:var(--chip)}.badge-ready,.badge-operational{background:#e6f4ea;color:var(--success)}.badge-unreachable,.badge-degraded,.badge-partial_outage{background:#fff4e5;color:var(--warning)}.badge-not_configured{background:var(--chip);color:var(--muted)}.error-banner{background:var(--danger-bg);color:var(--danger-text);border:1px solid #f5c2c0;border-radius:8px;padding:8px 12px;margin-bottom:12px}.error-list{color:var(--danger-text);font-size:13px}.form-grid{display:grid;gap:12px;max-width:360px}.form-grid label{display:grid;gap:4px;font-size:13px;color:var(--muted)}.form-grid input{padding:8px 10px;border:1px solid var(--line);border-radius:8px;font-size:14px}.form-grid select,.form-grid textarea{padding:8px 10px;border:1px solid var(--line);border-radius:8px;font-size:14px;font-family:inherit}.form-grid.wide{max-width:720px}.form-grid .full-width{grid-column:1 / -1}.btn-row{display:flex;flex-wrap:wrap;gap:8px}.btn-secondary-dark{background:var(--surface);color:var(--brand);border:1px solid var(--line);border-radius:8px;padding:8px 12px;font-weight:600;cursor:pointer}.btn-secondary-dark:disabled{opacity:.6;cursor:not-allowed}.checkbox-row{display:flex;flex-wrap:wrap;gap:12px;font-size:13px}.checkbox-row label{display:flex;align-items:center;gap:6px;color:var(--text)}.metric-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin:12px 0}.metric-grid .metric{padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--chip)}.metric-grid .metric strong{display:block;font-size:18px;color:var(--brand)}.metric-grid .metric span{font-size:12px;color:var(--muted)}.json-panel-wrap{margin-top:16px}.json-panel-wrap h3{margin:0 0 8px;font-size:14px;color:var(--muted)}.json-panel{margin:0;padding:12px;background:#1e2936;color:#e8edf4;border-radius:8px;overflow:auto;font-size:12px;line-height:1.45;max-height:420px}.btn-primary,.btn-secondary{border-radius:8px;padding:8px 12px;font-weight:600;cursor:pointer;border:1px solid transparent}.btn-primary{background:var(--brand);color:#fff}.btn-secondary{background:#ffffff1f;color:#fff;border-color:#ffffff59}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.card{display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--chip);text-decoration:none;color:inherit}.card strong{color:var(--brand)}.card span{font-size:13px;color:var(--muted)}code{background:var(--chip);padding:.1rem .35rem;border-radius:4px;font-size:.9em}.split-panels{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.panel.nested{padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--chip)}.panel.nested h3{margin:0 0 8px;font-size:14px;color:var(--brand)}.data-table.compact th,.data-table.compact td{padding:6px 8px;font-size:13px}tr.row-selected td{background:#e8f0fa}.filter-row{margin-bottom:12px}.field-label{display:block;font-size:13px;color:var(--muted);margin-bottom:4px}.audit-list{margin:8px 0 0;padding-left:18px;font-size:12px;color:var(--muted)}.content:has(.onboarding-page),.content:has(.admin-controller-page){max-width:1460px}@media(max-width:800px){.layout{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--line)}}
