:root{--bg:#060b10;--panel:#0c141c;--panel2:#091017;--line:#172733;--text:#eef6fb;--muted:#718391;--cyan:#2ca6b5;--cyan2:#45d5df;--blue:#244f72;--danger:#ff5b70}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;background:radial-gradient(circle at 72% -10%,#113241 0,transparent 30%),linear-gradient(160deg,#071017,#05090d 55%);color:var(--text);font:14px Inter,"Segoe UI",Arial,sans-serif;display:flex;min-height:100vh}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.14;background-image:linear-gradient(#19303b 1px,transparent 1px),linear-gradient(90deg,#19303b 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,black,transparent 65%)}aside{width:260px;border-right:1px solid var(--line);background:#071017ee;backdrop-filter:blur(16px);position:fixed;z-index:4;inset:0 auto 0 0;padding:22px 16px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;padding:2px 8px 26px;border-bottom:1px solid #13222c}.brand img{width:66px;height:42px;object-fit:contain;object-position:left center;background:white;border-radius:5px;padding:3px}.brand b{font-size:19px;letter-spacing:5px}.brand small{display:block;color:#6f8795;font-size:7px;margin-top:3px;letter-spacing:.7px;max-width:140px;line-height:1.35}nav{display:grid;gap:5px;margin-top:18px}nav label{font-size:9px;letter-spacing:1.8px;color:#405563;margin:20px 12px 7px}.nav{border:0;background:transparent;color:#8193a0;text-align:left;padding:12px 14px;border-radius:8px;font-weight:650;cursor:pointer}.nav span{margin-left:10px}.nav.active,.nav:hover{background:linear-gradient(90deg,#10222c,#0b161d);color:#fff}.nav.active{box-shadow:inset 2px 0 var(--cyan2)}.sidefoot{margin-top:auto;border-top:1px solid var(--line);padding:18px 10px 0;color:#81919c;line-height:1.8;font-size:12px}.sidefoot small{color:#435763}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--cyan2);box-shadow:0 0 12px var(--cyan2)}main{position:relative;z-index:1;margin-left:260px;width:calc(100% - 260px);padding:0 36px 50px}header{height:84px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}h1{font-size:19px;margin:0 0 4px;letter-spacing:.3px}header p{margin:0;color:var(--muted);font-size:11px}.status{display:flex;gap:9px;align-items:center;color:var(--muted);font-size:11px}.status b{color:#dce8ee;margin-left:15px}.view{display:none;padding-top:28px}.view.active{display:block}.hero{min-height:330px;border:1px solid #19303c;border-radius:18px;padding:48px;background:linear-gradient(110deg,#0c1720 0,#091119 55%,#0a2028 100%);display:flex;justify-content:space-between;align-items:center;overflow:hidden;position:relative;box-shadow:0 25px 80px #0007}.hero:after{content:"";position:absolute;right:-100px;bottom:-210px;width:520px;height:520px;border:1px solid #1e5360;border-radius:50%;box-shadow:0 0 100px #22b7c31a}.eyebrow{font-size:9px;letter-spacing:2px;color:var(--cyan2);font-weight:800}.hero h2{font-size:42px;line-height:1.08;margin:14px 0;letter-spacing:1px}.hero h2 em{font-style:normal;color:#8298a5}.hero p,.desc,.sectiontitle p{color:var(--muted);line-height:1.7}.hero-tags{display:flex;gap:10px;margin-top:28px;flex-wrap:wrap}.hero-tags span{font-size:8px;letter-spacing:1.6px;color:#76909d;border:1px solid #1c3541;padding:7px 9px;border-radius:3px}.techmark{width:260px;height:230px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:2}.ring{position:absolute;border:1px solid #1c5260;border-radius:50%}.r1{inset:5px}.r2{inset:31px;border-style:dashed}.vmark{font-size:48px;font-weight:900;letter-spacing:8px;color:#dcecf4;text-shadow:0 0 30px #45d5df44}.vmark span{color:var(--cyan2)}.techmark small{font-size:7px;letter-spacing:2px;color:#5f7f8c;margin-top:8px}.cards,.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:18px}.grid{grid-template-columns:1fr 1fr}.toolcard,.metric,.panel{border:1px solid var(--line);border-radius:13px;background:linear-gradient(145deg,#0d161e,#091017);padding:24px;box-shadow:0 15px 45px #0003}.toolcard{cursor:pointer;transition:.2s;position:relative;overflow:hidden}.toolcard:after{content:"";position:absolute;width:90px;height:90px;border:1px solid #153844;border-radius:50%;right:-35px;top:-35px}.toolcard:hover{transform:translateY(-3px);border-color:#285362}.icon{font-size:28px;color:var(--cyan2);margin-bottom:17px}.toolcard h3{margin-top:8px}.toolcard p,.metric p{color:var(--muted)}.open{color:var(--cyan2)!important;font-size:9px!important;font-weight:800;letter-spacing:1px}.metric small,.stats small{color:var(--muted);font-size:9px;letter-spacing:1.5px}.metric strong{display:block;font-size:18px;margin-top:18px;letter-spacing:1px}.metric strong i{display:inline-block;width:7px;height:7px;background:var(--cyan2);border-radius:50%;box-shadow:0 0 12px var(--cyan2);margin-right:7px}.scanline{height:1px;background:linear-gradient(90deg,transparent,var(--cyan2),transparent);margin-top:28px;opacity:.45}.sectiontitle{margin-bottom:22px}.sectiontitle h2{font-size:28px;margin:8px 0 0}.sectiontitle p{margin:5px 0}.panelhead{display:flex;align-items:center;justify-content:space-between}h3{font-size:17px;margin:12px 0}.safe{color:var(--cyan2);background:#0b2026;border:1px solid #1b4852;padding:7px 10px;border-radius:20px;font-size:9px;font-weight:800;letter-spacing:1px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:24px}label{color:var(--muted);font-size:11px}select,input{display:block;width:100%;margin-top:8px;background:#060c11;border:1px solid var(--line);color:white;border-radius:7px;padding:12px;outline:none}.actions{display:flex;gap:10px;margin-top:20px}button{font-family:inherit}.primary,.secondary,.record,.danger,.tiny{border-radius:7px;padding:11px 16px;border:1px solid var(--line);font-weight:800;font-size:10px;letter-spacing:.7px;cursor:pointer}.primary{background:linear-gradient(135deg,#2da6b5,#3bc7cf);color:#041014;border-color:#45d5df}.secondary,.tiny{background:#0e1921;color:#a9bac4}.record{background:#281218;color:#ff6b82;border-color:#4c202a}.danger{background:#281218;color:#ff6b82}.full{display:block;margin-top:20px}.filename{display:flex;align-items:center}.filename input{border-radius:7px 0 0 7px}.filename span{margin-top:8px;padding:12px;background:#101b23;border:1px solid var(--line);border-left:0;border-radius:0 7px 7px 0;color:var(--muted)}.stats{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);margin-top:22px;padding-top:18px}.stats b{display:block;margin-top:7px}.mutedbadge{font-size:9px;color:#81909f;border:1px solid var(--line);padding:7px 10px;border-radius:20px}.terminal{margin-top:18px;min-height:310px}.termhead{display:grid;grid-template-columns:160px 180px 1fr;margin:22px -24px 0;padding:10px 24px;border-block:1px solid var(--line);color:#526775;font-size:9px;letter-spacing:1px}.empty{text-align:center;color:#607480;padding:55px}.empty div{font-size:35px;color:var(--cyan)}.empty b{display:block;color:#9aaab4;margin:10px}.bigstatus{margin-top:25px;padding:18px;background:#060c11;border:1px solid var(--line);border-radius:8px;color:#81909e;font-weight:800}.bigstatus span{display:inline-block;width:8px;height:8px;background:#66717d;border-radius:50%;margin-right:8px}.console{background:#05090c;border:1px solid #13222b;border-radius:7px;min-height:220px;padding:18px;color:#718995;font:12px Consolas,monospace}.loglist{margin-top:18px}.logrow{display:grid;grid-template-columns:1fr 120px 160px 180px;align-items:center;border-top:1px solid var(--line);padding:15px 5px}.logrow small{color:var(--muted)}.logrow a{color:var(--cyan2);text-decoration:none;font-weight:800;margin-right:14px}.logrow button{background:none;border:0;color:#ff667c;cursor:pointer}#toast{position:fixed;z-index:10;right:25px;bottom:25px;background:#102127;border:1px solid #28515c;padding:13px 18px;border-radius:8px;display:none}@media(max-width:800px){aside{width:68px;padding:16px 8px}.brand>div:last-child,.nav span,nav label,.sidefoot{display:none}.brand{padding:0 2px 22px}.brand img{width:50px;height:38px}.nav{text-align:center;font-size:17px}main{margin-left:68px;width:calc(100% - 68px);padding:0 14px 30px}header{height:70px}.status span:not(.dot),#clock{display:none}.hero{padding:27px;min-height:270px}.hero h2{font-size:28px}.techmark{display:none}.cards,.grid{grid-template-columns:1fr}.fields{grid-template-columns:1fr}.logrow{grid-template-columns:1fr auto}.logrow small:nth-of-type(2){display:none}.hero-tags{gap:5px}}

.version-info{font-size:11px;letter-spacing:.12em;opacity:.5;padding:14px 18px;text-transform:uppercase}
.modalback{display:none;position:fixed;inset:0;background:rgba(0,8,14,.78);backdrop-filter:blur(8px);z-index:9999;align-items:center;justify-content:center;padding:20px}.modalback.open{display:flex}.modal{width:min(560px,100%);background:#0b1720;border:1px solid #1c3442;border-radius:22px;padding:26px;box-shadow:0 30px 90px rgba(0,0,0,.55)}.modalhead{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:22px}.modalhead h3{font-size:26px;margin:6px 0}.xbtn{background:transparent;border:1px solid #233b49;color:#9bb0bc;border-radius:12px;font-size:25px;width:42px;height:42px}.modal label{display:block;color:#9bb0bc;margin:14px 0 7px;font-size:13px}.modal input[type=text],.modal input[type=file]{width:100%;box-sizing:border-box;background:#061017;border:1px solid #203746;color:#e8f2f7;border-radius:12px;padding:14px}.toggleline{display:flex;justify-content:space-between;align-items:center;background:#07131a;border:1px solid #1c3340;border-radius:14px;padding:14px 16px;margin-top:15px}.toggleline input{width:20px;height:20px}.modalactions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.warnbox{border:1px solid #60313a;background:#241219;border-radius:14px;padding:14px;color:#ff9eaa;margin-top:14px}.filehint{font-size:12px;color:#718895;margin-top:7px}.advanced{margin-top:12px;color:#8198a5}.advanced summary{cursor:pointer;font-size:12px}.progresswrap{margin-top:16px;background:#061017;border:1px solid #1c3340;border-radius:12px;overflow:hidden;height:12px}.progressbar{height:100%;width:0;background:linear-gradient(90deg,#24c9d8,#53e2e9);transition:width .2s}.progresslabel{font-size:12px;color:#8da4b0;margin-top:7px;text-align:right}

.portguide{margin-top:18px}.porttitle{font-size:11px;letter-spacing:.18em;color:#48d8e4;font-weight:800;margin-bottom:10px}.device{display:grid;grid-template-columns:1fr 1fr;gap:10px;background:linear-gradient(145deg,#07141c,#0b202a);border:1px solid #1d3947;border-radius:18px;padding:12px;position:relative}.device:before{content:"VIMA CAN INTERFACE";position:absolute;top:8px;left:50%;transform:translateX(-50%);font-size:8px;letter-spacing:.14em;color:#3d5966}.port{margin-top:12px;padding:13px 10px;border:1px solid #223c49;border-radius:12px;text-align:center;background:#071118;transition:.2s}.port b{display:block;font-size:18px}.port span{display:block;font-size:9px;letter-spacing:.12em;color:#7f97a4;margin:3px}.port small{font-size:9px;color:#607985}.port.selected{border-color:#42d6e1;box-shadow:0 0 0 1px rgba(66,214,225,.18),0 0 22px rgba(66,214,225,.08)}.port.selected b{color:#54e1e9}.phasebox{margin-top:14px;padding:15px;background:#071118;border:1px solid #1b3340;border-radius:14px}.phasebox b,.phasebox small{display:block}.phasebox small{color:#78909d;margin-top:4px}@media(max-width:700px){.device{grid-template-columns:1fr 1fr}.port small{font-size:8px}}

/* v0.7 product polish */
.compact-console{height:220px;max-height:260px;min-height:160px}
.hidden{display:none!important}
.progresswrap.indeterminate{position:relative;overflow:hidden}
.progresswrap.indeterminate .progressbar{position:absolute;width:35%!important;animation:vimaSweep 1.15s ease-in-out infinite}
@keyframes vimaSweep{0%{left:-35%}50%{left:45%}100%{left:100%}}
.portguide .device{padding:14px;gap:10px}
.portguide .port{padding:16px 12px}
.portguide .port b{font-size:25px}
#cemb .sectiontitle p{max-width:560px}

/* VIMA v0.8 — app/PWA and mobile controls */
.hidden{display:none!important}.installbtn{background:#0e2028;color:#52dce5;border:1px solid #24505b;border-radius:8px;padding:8px 11px;font-size:9px;font-weight:800;letter-spacing:.8px;cursor:pointer}.downloadready{margin-top:18px;border:1px solid #22505a;background:#071a21;border-radius:14px;padding:15px;display:flex;align-items:center;justify-content:space-between;gap:15px}.downloadready b,.downloadready small{display:block}.downloadready b{margin-top:5px}.downloadready small{color:#78909d;margin-top:3px}.downloadbtn{text-decoration:none;white-space:nowrap}.mobilebar{display:none}.vmark{font-size:42px}
@media(max-width:800px){
 body{display:block;padding-bottom:78px} aside{display:none} main{margin-left:0;width:100%;padding:0 14px 28px} header{position:sticky;top:0;z-index:20;height:62px;background:#071017eF;backdrop-filter:blur(16px);padding:0 3px} header h1{font-size:17px}.view{padding-top:18px}.hero{border-radius:15px;padding:23px 20px;min-height:240px}.hero h2{font-size:27px}.panel,.toolcard,.metric{padding:18px;border-radius:14px}.sectiontitle h2{font-size:24px}.actions{display:grid;grid-template-columns:1fr 1fr}.actions button{min-height:48px}.modalback{padding:10px;align-items:flex-end}.modal{border-radius:22px 22px 12px 12px;padding:20px;max-height:90vh;overflow:auto}.modalactions{display:grid;grid-template-columns:1fr 1fr}.modalactions button{min-height:48px}.console{font-size:11px;min-height:190px;max-height:240px}.downloadready{align-items:stretch;flex-direction:column}.downloadbtn{text-align:center;padding:14px}.mobilebar{display:grid;position:fixed;z-index:100;left:0;right:0;bottom:0;height:70px;grid-template-columns:repeat(4,1fr);background:#071017f5;border-top:1px solid #1a303b;backdrop-filter:blur(18px);padding-bottom:env(safe-area-inset-bottom)}.mnav{border:0;background:transparent;color:#657b88;font-size:19px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.mnav span{font-size:8px;font-weight:800;letter-spacing:1px}.mnav.active{color:#48d8e4}.status{gap:6px}.installbtn{padding:7px 8px}.portguide .device{gap:7px}.port{padding:11px 6px}.port b{font-size:16px}
}

/* v0.10 hierarchical navigation */
.tree-nav{display:block;overflow-y:auto;overflow-x:hidden;padding-right:3px}.tree-nav details{margin:4px 0}.tree-nav summary{list-style:none;cursor:pointer;color:#718894;font-size:9px;font-weight:800;letter-spacing:1.5px;padding:9px 12px;border-radius:7px}.tree-nav summary::-webkit-details-marker{display:none}.tree-nav summary:before{content:"›";display:inline-block;width:14px;transition:.18s}.tree-nav details[open]>summary:before{transform:rotate(90deg)}.tree-nav .tree{margin-left:9px;padding-left:8px;border-left:1px solid #17303b}.tree-nav .tree .nav{padding:8px 10px;font-size:11px;width:100%}.tree-nav .tree summary{font-size:10px;letter-spacing:.4px;color:#8ca0aa}.placeholder{opacity:.72}.mobilemenu{max-height:82vh;overflow:auto}.mobile-menu-group{margin:14px 0}.mobile-menu-group h4{font-size:10px;letter-spacing:1.4px;color:#48d8e4;margin:16px 0 8px}.mobile-menu-group button{display:block;width:100%;text-align:left;background:#0b151c;border:1px solid #172b36;color:#a9bac4;border-radius:9px;padding:12px;margin:6px 0}.mobile-menu-group .indent{margin-left:12px;width:calc(100% - 12px)}
