:root{color-scheme:dark;--bg:#0a101e;--side:#0c1424;--card:#121c2e;--border:#263249;--ink:#eef3fb;--muted:#8b9ab4;--green:#58e8ae;--blue:#7eabff;--red:#ff7e90;--radius:16px}
*{box-sizing:border-box}body{margin:0;font-family:Vazirmatn,"Tahoma","Segoe UI",sans-serif;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.7}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.48;cursor:not-allowed}.hidden{display:none!important}.muted{color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:1.8px;font-family:Inter,monospace;direction:ltr;color:var(--blue);font-weight:800}.shell{display:flex;min-height:100vh}.sidebar{width:236px;background:var(--side);border-left:1px solid var(--border);padding:26px 17px;display:flex;flex-direction:column;position:fixed;inset:0 0 0 auto;z-index:3}.brand{display:flex;gap:11px;align-items:center;padding:5px 13px 28px}.brand-icon,.logo-icon{display:grid;place-items:center;background:linear-gradient(140deg,#5588ef,#856bff);box-shadow:0 8px 32px #665dfb44;color:white;border-radius:12px;font-size:25px;font-weight:bold;width:43px;height:43px}.brand strong{font:800 22px Inter,"Segoe UI",sans-serif;letter-spacing:-.5px;display:block;line-height:1.2}.brand small{color:var(--muted);display:block;font:700 9px Inter,monospace;letter-spacing:1.3px;padding-top:4px}.menu-caption{color:#63728d;font-size:11px;margin:22px 14px 11px}nav{display:grid;gap:5px}.nav-item{background:none;color:#a2b0c7;border:1px solid transparent;display:flex;gap:12px;align-items:center;text-align:right;padding:12px 13px;border-radius:10px;width:100%;font-weight:600}.nav-item:hover,.nav-item.active{background:#1c2a43;color:#eaf2ff}.nav-item.active{border-color:#304368}.nav-icon{font-size:20px;line-height:1;color:#8dacf7;min-width:23px;text-align:center}.tiny-arrow{margin-right:auto;font-size:20px}.sidebar-bottom{margin-top:auto;display:grid;gap:15px;padding:10px}.local-pill{border:1px solid #244d45;background:#14322c;color:#89eac8;border-radius:10px;padding:8px 11px;font-size:11px;display:flex;align-items:center;gap:8px}.live-dot,.green-dot{width:8px;height:8px;background:var(--green);border-radius:50%;display:inline-block;box-shadow:0 0 0 4px #58e8ae22}.side-foot{font:11px Inter,monospace;color:#556681;direction:ltr}.main{margin-right:236px;width:calc(100% - 236px);min-width:0}.topbar{height:75px;border-bottom:1px solid var(--border);padding:0 36px;display:flex;align-items:center;justify-content:space-between}.top-title,.top-actions{display:flex;align-items:center;gap:15px}.top-title{font-weight:700}.bread{font:700 10px Inter,monospace;color:var(--muted);letter-spacing:1px}.slash{color:#3d4b65}.top-actions{gap:12px}.date-label{font-size:11px;color:var(--muted)}.icon-btn{width:34px;height:34px;border:1px solid var(--border);border-radius:9px;background:#172238;color:#c4d1e8;font-size:20px;display:grid;place-items:center}.icon-btn:hover{background:#273951}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid transparent;border-radius:9px;padding:9px 15px;font-weight:700;white-space:nowrap}.btn.small{padding:6px 13px}.btn.primary{background:#597ef1;color:white;box-shadow:0 6px 18px #4d74f12b}.btn.primary:hover{background:#6c8fff}.btn.secondary{background:#202f48;color:#d5e5ff;border-color:#344a70}.btn.secondary:hover{background:#293e5d}.btn.ghost{background:transparent;border-color:#33415c;color:#a9b8ce}.btn.ghost:hover{background:#1e2b43}.btn.danger{background:#422832;border-color:#77404f;color:#ffadbb}.btn.danger:hover{background:#653343}.btn.wide{width:100%}.content{max-width:1420px;margin:auto;padding:34px 36px 65px}.page-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin:0 0 28px}.page-intro h1{font-size:28px;line-height:1.2;margin:11px 0 8px;letter-spacing:-.5px}.page-intro h1 span{color:#9e98ff}.page-intro .muted{margin:0}.pill{display:flex;gap:8px;align-items:center;border:1px solid #30415e;background:#14213a;border-radius:30px;padding:8px 14px;color:#b8c5de;font-size:11px;white-space:nowrap;margin-top:24px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:38px}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:22px 23px;min-height:142px}.stat-label{color:#a5b4cc;display:flex;justify-content:space-between;font-size:12px}.stat-label span{font-size:18px;color:#7899e9}.stat-value{font:750 37px Inter,"Segoe UI",sans-serif;direction:ltr;text-align:right;line-height:1.5;padding-top:3px}.stat-meta{font-size:11px;color:#6f829f}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:17px}.section-heading h2{font-size:18px;margin:0 0 3px}.section-heading p{font-size:12px;color:var(--muted);margin:0}.node-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.node-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;min-width:0}.node-head{display:flex;align-items:center;justify-content:space-between;gap:9px}.node-title{font-weight:800;font-size:15px;display:flex;align-items:center;gap:9px}.server-symbol{font:700 18px monospace;background:#233654;color:#93b8ff;padding:1px 9px;border-radius:8px}.status-badge{font:700 11px "Segoe UI",Tahoma,sans-serif;border-radius:30px;background:#283147;color:#bec8db;padding:4px 10px;white-space:nowrap}.status-badge.up{background:#164137;color:#7beac1}.status-badge.down{background:#473039;color:#ffb6c1}.node-ip{font:600 14px Inter,"Segoe UI",monospace;direction:ltr;text-align:right;margin:22px 0 6px;color:#dce9ff}.node-hint{font-size:11px;color:#7889a5}.node-divider,.divider{height:1px;background:var(--border);margin:20px 0}.port-caption{font-size:11px;color:var(--muted);margin:0 0 9px}.ports{display:flex;gap:7px;flex-wrap:wrap;min-height:28px}.port{font:700 11px Inter,monospace;direction:ltr;border-radius:6px;background:#24334e;border:1px solid #3b5072;color:#c5d8ff;padding:3px 9px}.node-health{display:flex;align-items:center;gap:7px;color:#99a8c1;font-size:11px;margin-top:17px}.health-good{color:#75e9bb}.health-bad{color:#ff9eaa}.card-actions{display:flex;align-items:center;gap:7px;margin-top:19px;flex-wrap:wrap}.card-actions .btn{padding:7px 10px;font-size:11px;flex:1}.empty{padding:36px;border:1px dashed var(--border);border-radius:12px;text-align:center;color:var(--muted);grid-column:1/-1}.info-strip{display:flex;gap:13px;border:1px solid #2f415c;background:#17253b;padding:17px 21px;border-radius:12px;margin-top:27px}.info-strip>span{font-size:22px;color:#89aeff}.info-strip strong{font-size:13px}.info-strip p{margin:4px 0 0;color:#9dadc7;font-size:12px}.table-wrap,.panel-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:right;min-width:690px}th,td{padding:19px 17px;border-bottom:1px solid #263249}th{color:#869bbd;background:#17243b;font-size:11px;font-weight:600}td{font-size:13px}tr:last-child td{border-bottom:0}.ltr{font-family:Inter,monospace;direction:ltr;text-align:right;font-size:12px}.table-btns{display:flex;gap:6px}.table-btns .btn{padding:5px 9px;font-size:11px}.add-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,1fr);gap:18px}.panel-card{padding:28px}.panel-card h2{font-size:18px;margin:7px 0 10px}.panel-card .muted{font-size:12px}.step-index{font:700 11px Inter,monospace;color:#86a8fa;direction:ltr;text-align:right}.dropzone{margin-top:24px;border:1.5px dashed #52698f;border-radius:14px;min-height:190px;display:flex;flex-direction:column;gap:7px;align-items:center;justify-content:center;text-align:center;background:#1a2a43;cursor:pointer;padding:18px}.dropzone:hover{background:#203350}.dropzone span{font-size:11px;color:#8b9db8}.upload-icon{font-size:32px;color:#99b6fa}.instruction{display:flex;gap:12px;align-items:flex-start;margin:20px 0}.instruction span{background:#273a5b;color:#98b9ff;width:27px;height:27px;display:grid;place-items:center;border-radius:50%;font:700 13px Inter,monospace;flex-shrink:0}.instruction p{font-size:12px;margin:0;color:#b3c3db}.note{background:#3b3328;border:1px solid #5d4938;color:#e2c49d;padding:13px;border-radius:9px;font-size:11px;margin-top:25px}.docs h2{margin-top:28px}.docs h2:first-child{margin-top:0}.docs p{color:#b4c4db;font-size:13px}.docs pre{background:#081321;padding:20px;border-radius:10px;overflow:auto;direction:ltr;text-align:left;font-size:12px;color:#93b5fd}.login-shell{min-height:100vh;display:grid;place-items:center;padding:18px;position:relative;overflow:hidden}.login-halo{position:absolute;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,#284275b5 0%,transparent 68%);filter:blur(10px);pointer-events:none}.login-card{position:relative;background:#121c2ef3;border:1px solid #354260;border-radius:20px;padding:36px;width:min(100%,425px);box-shadow:0 24px 65px #0009}.logo-icon{margin-bottom:24px}.login-card h1{font-size:25px;margin:10px 0}.login-card p{font-size:12px}.login-card label{font-size:12px;display:block;margin-top:28px;margin-bottom:8px}.login-card input{background:#0a1424;color:white;border:1px solid #405171;border-radius:10px;width:100%;padding:14px 15px;outline:0;direction:ltr;text-align:left}.login-card input:focus{border-color:#87a7ff;box-shadow:0 0 0 3px #5480f42c}.login-card .btn{margin-top:17px}.error-text{color:#ff9daa;font-size:12px;margin-top:12px;min-height:12px}.privacy-hint{text-align:center;color:#7991ae;font-size:11px!important;margin-top:28px}.modal-overlay{position:fixed;inset:0;background:#040916c9;z-index:20;display:flex;align-items:center;justify-content:center;padding:18px}.modal{width:min(100%,920px);background:#121d30;border:1px solid #3b4d68;border-radius:16px;box-shadow:0 25px 100px #000b;overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 25px;border-bottom:1px solid #26354d}.modal-header h2{margin:3px 0 0;font-size:18px}.modal pre{direction:ltr;text-align:left;white-space:pre-wrap;overflow:auto;max-height:60vh;font:12px/1.8 ui-monospace,SFMono-Regular,Consolas,monospace;color:#c4d9c8;background:#081423;margin:0;padding:22px}.modal-footer{display:flex;gap:10px;justify-content:flex-end;padding:16px 23px}.toast{position:fixed;z-index:30;bottom:25px;left:25px;background:#243755;border:1px solid #52729e;border-radius:9px;color:#edf5ff;box-shadow:0 10px 35px #0008;padding:13px 19px;font-size:12px;max-width:min(80vw,450px)}.toast.err{background:#512934;border-color:#ae576d;color:#ffe3e9}code{font-family:ui-monospace,monospace;color:#bad0fd;direction:ltr;unicode-bidi:embed}
@media(max-width:1100px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.node-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:780px){.sidebar{width:69px;padding:17px 7px}.sidebar .brand{padding:0 5px 25px}.sidebar .brand strong,.sidebar .brand small,.menu-caption,.nav-item:not(.active) .tiny-arrow,.nav-item{font-size:0}.nav-item{justify-content:center;padding:12px 5px}.nav-icon{font-size:23px}.sidebar-bottom{display:none}.main{margin-right:69px;width:calc(100% - 69px)}.content{padding:25px 18px}.topbar{padding:0 17px}.page-intro h1{font-size:23px}.add-layout{grid-template-columns:1fr}.date-label{display:none}}
@media(max-width:560px){.stats,.node-grid{grid-template-columns:1fr}.stat-card{min-height:115px}.content{padding:20px 13px}.page-intro{display:block}.page-intro .pill{display:inline-flex;margin-top:16px}.section-heading{align-items:flex-start;flex-direction:column}.section-heading .btn{width:100%}.top-title .bread,.top-title .slash{display:none}.stat-value{font-size:31px}.panel-card{padding:19px}.topbar{height:62px}.brand-icon{width:39px;height:39px}}
/* IRBridge v2 password-SSH guided provisioning */
.sshform {display:grid;grid-template-columns:1fr 1fr;gap:14px}
.sshform label {display:block;color:#b7c8e8;font-size:13px;margin-bottom:6px}
.sshform input {width:100%;box-sizing:border-box;background:#111d32;color:#f1f5ff;border:1px solid #365070;border-radius:10px;padding:12px 11px;font:inherit;direction:ltr;text-align:left;outline:none}
.sshform input:focus {border-color:#739eff}
.sshform .span2 {grid-column:1/-1}
.ssh-tip {background:#13293b;border:1px solid #31586b;padding:13px;border-radius:12px;line-height:1.9;color:#d4e5f0}
.ssh-fingerprint {background:#111a2b;padding:13px;border:1px solid #365070;border-radius:10px;overflow-wrap:anywhere;direction:ltr;text-align:left;font-family:monospace;font-size:12px}
.ssh-verify {display:flex;align-items:start;gap:10px;line-height:1.8}
.ssh-verify input {width:auto;margin-top:7px;flex:none}
.sshform button:disabled {opacity:.5;cursor:not-allowed}
@media(max-width:700px){.sshform{grid-template-columns:1fr}.sshform .span2{grid-column:1}}
