:root{--bg:#eef3f8;--panel:#fff;--line:#d7e0ea;--text:#142033;--muted:#66768a;--nav:#0b1e31;--blue:#1677ff;--green:#18a957;--amber:#f3a712;--red:#e05252;--shadow:0 6px 24px rgba(24,48,74,.08)}
*{box-sizing:border-box}html,body{margin:0;height:100%;font-family:Tahoma,Arial,sans-serif;background:var(--bg);color:var(--text)}body{overflow:hidden}button,input,select,textarea{font:inherit}.app-header{height:56px;background:linear-gradient(90deg,#0b1d2f,#0e2f4f);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 14px;box-shadow:0 2px 10px rgba(0,0,0,.18);z-index:50;position:relative}.brand-wrap{display:flex;align-items:center;gap:10px}.brand-mark{width:38px;height:38px;border-radius:9px;background:linear-gradient(135deg,#2d8cff,#0b5fc5);display:grid;place-items:center;font-weight:700;box-shadow:inset 0 0 0 1px #ffffff44}.brand-title{font-weight:700;font-size:16px}.brand-sub{font-size:10px;color:#bfd1e2;margin-top:2px}.online-dot{font-size:10px;background:#17a957;color:#fff;padding:4px 7px;border-radius:999px}.top-actions{display:flex;gap:4px}.top-actions a{color:#dce8f3;text-decoration:none;padding:8px 10px;border-radius:7px;font-size:12px}.top-actions a:hover{background:#ffffff16;color:#fff}
.sim-shell{height:calc(100vh - 84px);display:grid;grid-template-columns:246px minmax(560px,1fr) 336px;grid-template-rows:minmax(380px,1fr) 276px;background:#eef3f8}.left-panel,.right-panel,.center-panel,.bottom-panel{min-width:0}.left-panel{grid-row:1/3;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column}.right-panel{background:#fff;border-left:1px solid var(--line);overflow:hidden}.center-panel{display:flex;flex-direction:column;min-width:0}.bottom-panel{grid-column:2/4;border-top:1px solid var(--line);background:#f5f8fb;display:grid;grid-template-columns:1.15fr .82fr .72fr;gap:8px;padding:8px;min-height:0}.panel-tabs,.right-tabs{height:45px;border-bottom:1px solid var(--line);display:flex;align-items:end;padding:0 10px;gap:10px;background:#fff}.panel-tabs button,.right-tabs button{border:0;background:transparent;padding:12px 3px 10px;color:#66768a;font-size:11px;font-weight:700;cursor:pointer;border-bottom:2px solid transparent}.panel-tabs button.active,.right-tabs button.active{color:var(--blue);border-color:var(--blue)}.left-scroll{overflow:auto;padding:10px 10px 22px}.search-box{display:flex;border:1px solid #cfd8e3;border-radius:8px;align-items:center;padding:0 8px;background:#fafcfe}.search-box span{color:#8494a6;font-size:18px}.search-box input{width:100%;border:0;outline:0;background:transparent;padding:8px;font-size:12px}.device-section{margin-top:14px}.device-section h3{font-size:11px;margin:0 0 8px;color:#27466c;text-transform:uppercase;letter-spacing:.35px}.device-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.device-card{border:1px solid transparent;background:transparent;border-radius:8px;padding:7px 3px 6px;min-height:68px;cursor:grab;color:#26364a}.device-card:hover{background:#eef6ff;border-color:#cfe3ff}.device-card span:last-child{font-size:9.5px;display:block;line-height:1.15;margin-top:4px}.device-icon{height:33px;display:grid;place-items:center}.device-icon svg{width:34px;height:34px;display:block}.cable-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px}.cable-grid button{border:1px solid #dde5ed;background:#fafcfe;border-radius:7px;padding:7px 5px;font-size:10px;cursor:pointer}.cable-grid button:hover{border-color:#9bc4ff;background:#eef6ff}.cable-grid span{display:block;color:#65768a;margin-top:3px}.control{width:100%;border:1px solid #cad5df;border-radius:7px;padding:8px;background:#fff;font-size:11px}.full{width:100%;margin-top:6px}
.toolbar{height:48px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:6px;padding:6px 9px;overflow:auto}.btn{border:1px solid #cfd8e2;background:#fff;border-radius:6px;padding:7px 10px;font-size:11px;cursor:pointer;white-space:nowrap;font-weight:700}.btn:hover{filter:brightness(.98)}.btn-success{background:#18a957;border-color:#18a957;color:#fff}.btn-warning{background:#ffc943;border-color:#e7b52f;color:#3b2b00}.btn-primary{background:#1677ff;border-color:#1677ff;color:#fff}.btn-danger{background:#fff5f5;border-color:#ffb3b3;color:#d62c2c}.btn-soft{background:#fff}.tool-sep{width:1px;height:26px;background:#dce3ea}.speed-box,.zoom-box{display:flex;align-items:center;gap:6px;font-size:10px;color:#506175}.speed-box{margin-left:auto}.speed-box input{width:92px}.zoom-box button{width:24px;height:24px;border:1px solid #d4dde6;background:#fff;border-radius:5px;cursor:pointer}.workspace-wrap{display:flex;flex-direction:column;min-height:0;flex:1}.workspace{position:relative;flex:1;overflow:hidden;background-color:#fbfcfe;background-image:radial-gradient(#cbd6e2 1px,transparent 1px);background-size:20px 20px;outline:none}.workspace::after{content:"WORKSPACE";position:absolute;top:10px;left:12px;font-size:9px;letter-spacing:1.5px;color:#9ca9b8;pointer-events:none}.link-layer{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}.empty-hint{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#8390a0;pointer-events:none}.empty-hint .hint-illustration{font-size:36px;color:#b9c4cf;margin-bottom:4px}.empty-hint b{font-size:14px;color:#617286}.empty-hint span{font-size:10px;margin-top:5px}.workspace-status{height:27px;background:#fff;border-top:1px solid var(--line);display:flex;align-items:center;gap:16px;padding:0 10px;font-size:9px;color:#607184}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px}.status-dot.gray{background:#9aa7b5}.status-dot.green{background:#18a957}.status-dot.amber{background:#f3a712}.status-dot.red{background:#e05252}
.net-node{position:absolute;width:116px;min-height:78px;z-index:3;text-align:center;user-select:none;cursor:move}.net-node .node-box{display:inline-flex;position:relative;min-width:66px;min-height:48px;align-items:center;justify-content:center;border:1px solid transparent;border-radius:10px;padding:4px}.net-node:hover .node-box,.net-node.selected .node-box{background:#eaf4ff;border-color:#6dafff}.net-node .node-icon svg{width:52px;height:44px;filter:drop-shadow(0 2px 2px #0b263d22)}.net-node .node-label{font-size:10px;font-weight:700;color:#26374b;line-height:1.2;margin-top:1px}.net-node .node-ip{font-size:8.5px;color:#5d7085;margin-top:2px}.net-node.off{opacity:.62;filter:grayscale(.55)}.net-node .led{position:absolute;right:6px;top:5px;width:7px;height:7px;border-radius:50%;background:#8e9aa7;box-shadow:0 0 0 2px #fff}.net-node.powered .led{background:#19b35e;box-shadow:0 0 6px #19b35e}.port-anchor{position:absolute;width:9px;height:9px;border-radius:50%;background:#34495e;border:2px solid #fff;box-shadow:0 0 0 1px #5d7085;z-index:5}.port-anchor.left{left:-3px;top:31px}.port-anchor.right{right:-3px;top:31px}.port-anchor.bottom{left:54px;bottom:15px}.net-link{stroke:#3b556e;stroke-width:2.2;fill:none}.net-link.up{stroke:#19a95b}.net-link.wireless{stroke:#1677ff;stroke-dasharray:4 5}.net-link.down{stroke:#aab4be;stroke-dasharray:3 3}.packet-pulse{position:absolute;width:12px;height:12px;border-radius:50%;background:#ffad18;box-shadow:0 0 0 4px #ffad1840;z-index:8;pointer-events:none;transition:transform .45s linear,left .45s linear,top .45s linear}.port-label{font-size:7px;fill:#34495e;background:#fff}
.inspector{height:calc(100% - 45px);overflow:auto;padding:12px}.empty-inspector{text-align:center;color:#8190a0;padding:55px 15px}.empty-inspector>div{font-size:42px;color:#c2ccd6}.empty-inspector b{font-size:13px;color:#596b7f}.empty-inspector p{font-size:10px;line-height:1.5}.device-summary{display:flex;align-items:center;gap:10px;padding-bottom:11px;border-bottom:1px solid #e5eaf0}.device-summary .big-icon svg{width:50px;height:50px}.device-summary h2{font-size:14px;margin:0 0 4px}.device-summary p{font-size:9px;margin:0;color:#718196}.badge{margin-left:auto;background:#dcf7e6;color:#147a3f;border-radius:5px;padding:4px 6px;font-size:9px}.badge.off{background:#eef1f4;color:#697988}.section-title{font-size:10px;color:#174f91;margin:14px 0 7px;text-transform:uppercase}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.form-field.fullrow{grid-column:1/-1}.form-field label{display:block;font-size:9px;color:#617286;margin-bottom:3px}.form-field input,.form-field select,.form-field textarea{width:100%;border:1px solid #d2dbe5;border-radius:6px;padding:7px;font-size:10px;background:#fff}.form-actions{display:flex;gap:6px;margin-top:10px}.mini-table{width:100%;border-collapse:collapse;font-size:9px}.mini-table th,.mini-table td{border:1px solid #e1e6ec;padding:6px;text-align:left}.mini-table th{background:#f5f8fb}.state-list{display:grid;grid-template-columns:1fr auto;gap:5px;font-size:9px;padding:6px 0}.bar{height:5px;border-radius:3px;background:#e8edf2;overflow:hidden}.bar>i{display:block;height:100%;background:#1eaf60}.cli-box{background:#0b1722;color:#a9f0bd;border-radius:6px;padding:9px;font-family:Consolas,monospace;font-size:9px;min-height:180px;white-space:pre-wrap}.cli-input{display:flex;margin-top:6px}.cli-input input{flex:1;border:1px solid #ccd6df;border-radius:6px 0 0 6px;padding:7px;font-family:Consolas,monospace;font-size:9px}.cli-input button{border:1px solid #1677ff;background:#1677ff;color:#fff;border-radius:0 6px 6px 0;padding:0 10px}
.bottom-card{background:#fff;border:1px solid var(--line);border-radius:6px;min-width:0;overflow:hidden}.bottom-head{height:36px;display:flex;align-items:center;justify-content:space-between;padding:0 10px;border-bottom:1px solid #e5eaf0;font-size:10px;color:#174f91}.bottom-head button{border:0;background:transparent;font-size:9px;color:#dc4141;cursor:pointer}.table-wrap{height:calc(100% - 36px);overflow:auto}.table-wrap table{width:100%;border-collapse:collapse;font-size:9px}.table-wrap th{position:sticky;top:0;background:#f5f8fb;z-index:2;text-align:left;padding:7px;border-bottom:1px solid #dfe6ed}.table-wrap td{padding:7px;border-bottom:1px solid #edf1f5}.table-wrap tr.event-row:hover{background:#eef6ff;cursor:pointer}.empty-row td{text-align:center;color:#8997a5;padding:35px 8px}.protocol{color:#086fe8;font-weight:700}.osi-stack{padding:7px;overflow:auto;height:calc(100% - 36px)}.osi-row{display:grid;grid-template-columns:28px 1fr auto;gap:5px;align-items:center;border:1px solid #e0e6ed;border-radius:5px;padding:6px 7px;margin-bottom:4px;font-size:9px}.osi-row .layer-no{font-weight:700;color:#6b7b8d}.osi-row.active{background:#1677ff;color:#fff;border-color:#1677ff}.osi-row.active .layer-no{color:#fff}.packet-detail{padding:10px;font-size:9px;line-height:1.55;overflow:auto;height:calc(100% - 36px)}.packet-detail p{color:#758597}.packet-section{border-bottom:1px solid #e5eaf0;padding:6px 0}.packet-section b{color:#176fd3}.packet-kv{display:grid;grid-template-columns:75px 1fr;gap:3px;margin-top:4px}.app-footer{height:28px;background:#0b1e31;color:#aebdca;display:flex;align-items:center;justify-content:space-between;padding:0 14px;font-size:8.5px}.page-wrap{min-height:calc(100vh - 84px);overflow:auto;padding:28px;background:#eef3f8}.page-head{max-width:900px;margin:auto}.page-head h1{margin:0 0 8px;font-size:24px}.page-head p{color:#627388}.scenario-cards{max-width:1100px;margin:22px auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.scenario-cards article{background:#fff;border:1px solid #dce4ec;border-radius:10px;padding:16px;box-shadow:var(--shadow)}.scenario-cards article span{font-size:9px;background:#eaf4ff;color:#1765b0;padding:4px 6px;border-radius:999px}.scenario-cards h2{font-size:15px}.scenario-cards p{font-size:11px;color:#697b8d;line-height:1.5}.scenario-cards a{font-size:10px;color:#1677ff;text-decoration:none;font-weight:700}
@media(max-width:1180px){.sim-shell{grid-template-columns:210px minmax(480px,1fr) 290px}.device-grid{grid-template-columns:repeat(3,1fr)}.bottom-panel{grid-template-columns:1.2fr .8fr}.packet-card{display:none}}@media(max-width:900px){body{overflow:auto}.sim-shell{height:auto;display:block}.left-panel,.right-panel{border:0}.left-panel{max-height:340px}.center-panel{height:650px}.right-panel{height:420px}.bottom-panel{display:grid;grid-template-columns:1fr;height:520px}.packet-card{display:block}.app-footer{display:none}.top-actions{display:none}}

/* v4.1 - icon thiết bị hiển thị trực tiếp từ PHP */
.device-card{min-height:82px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:5px!important;padding:7px 4px!important}
.device-card .device-icon{display:flex!important;width:54px!important;height:42px!important;align-items:center!important;justify-content:center!important;line-height:0!important}
.device-card .device-icon svg{display:block!important;width:54px!important;height:42px!important;max-width:100%!important;max-height:100%!important;overflow:visible!important}
.device-card .device-name{display:block!important;font-size:11px!important;line-height:1.15!important;text-align:center!important;color:#18324a!important;font-weight:600!important;min-height:24px!important}
.net-node .node-icon svg,.device-summary .big-icon svg{display:block;width:100%;height:100%}

/* v4.2 - drag/drop trực quan */
.device-card{touch-action:none;user-select:none;-webkit-user-drag:none}
.device-card.dragging{opacity:.52;transform:scale(.97);border-color:#2f80ed!important;background:#edf6ff!important}
.workspace.drag-target{outline:3px dashed #2f80ed!important;outline-offset:-7px;background-color:#f4f9ff!important}
.device-drag-ghost{
    position:fixed;z-index:999999;pointer-events:none;
    width:92px;min-height:76px;padding:7px 5px;
    background:#fff;border:1px solid #70aaf0;border-radius:10px;
    box-shadow:0 12px 32px rgba(20,60,100,.22);
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    color:#17324d;font:11px Tahoma,Arial,sans-serif;
}
.device-drag-ghost .ghost-icon{width:52px;height:39px;display:flex;align-items:center;justify-content:center}
.device-drag-ghost .ghost-icon svg{width:52px;height:39px;display:block}
.device-drag-ghost b{margin-top:3px;text-align:center;max-width:82px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.palette-tip{font-size:10px;color:#718397;padding:6px 2px 2px;text-align:center}

/* v4.3 - drag/drop sửa hoàn toàn */
.device-card{cursor:grab!important;touch-action:none!important;user-select:none!important;-webkit-user-drag:none!important}
.device-card:active{cursor:grabbing!important}
.device-card.dragging{opacity:.58!important;transform:scale(.96)!important}
.workspace.drag-target{outline:3px dashed #1677ff!important;outline-offset:-6px!important;background-color:#f4f9ff!important}
.device-drag-ghost{position:fixed!important;z-index:2147483647!important;pointer-events:none!important;width:96px!important;min-height:78px!important;padding:7px!important;background:#fff!important;border:2px solid #1677ff!important;border-radius:10px!important;box-shadow:0 12px 35px rgba(22,119,255,.28)!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;color:#17324d!important;font:11px Tahoma,Arial,sans-serif!important}
.device-drag-ghost .ghost-icon{width:56px!important;height:42px!important;display:flex!important;align-items:center!important;justify-content:center!important}
.device-drag-ghost .ghost-icon svg{width:56px!important;height:42px!important;display:block!important}
.device-drag-ghost b{margin-top:3px!important;text-align:center!important}

/* ============================================================
   v4.4 - CÁP KẾT NỐI ĐỘNG
   ============================================================ */
.cable-section{border-top:1px solid #eef3f7;padding-top:12px}
.cable-help{font-size:9.5px;line-height:1.35;color:#6b7d90;background:#f6f9fc;border:1px solid #e4ebf2;border-radius:7px;padding:6px 7px;margin-bottom:7px}
.cable-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:6px!important}
.cable-card{min-height:67px!important;border:1px solid #dbe5ee!important;background:#fff!important;border-radius:9px!important;padding:5px 4px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;cursor:pointer!important;transition:.15s!important}
.cable-card:hover{border-color:#86b7f4!important;background:#f4f9ff!important;transform:translateY(-1px)}
.cable-card.active{border-color:#1677ff!important;background:#eaf4ff!important;box-shadow:0 0 0 2px #1677ff22!important}
.cable-icon{height:27px!important;width:70px!important;display:flex!important;align-items:center!important;justify-content:center!important;margin:0!important}
.cable-icon svg{display:block!important;width:70px!important;height:26px!important}
.cable-name{font-size:9.5px!important;font-weight:700!important;color:#31455a!important;line-height:1.15!important;margin-top:3px!important;text-align:center!important}
.selected-cable-info{margin-top:7px;padding:6px 7px;border-radius:7px;background:#fffbea;border:1px solid #fde7a4;font-size:9.5px;line-height:1.35;color:#72571a}
.toolbar-cable{font-size:9px;font-weight:700;color:#1765a7;background:#e9f3ff;border:1px solid #cde4ff;border-radius:999px;padding:4px 7px;white-space:nowrap}
.net-link.copper-straight{stroke:#1677ff}
.net-link.copper-cross{stroke:#f97316}
.net-link.fiber{stroke:#16a34a;stroke-width:3}
.net-link.serial{stroke:#7c3aed;stroke-dasharray:8 3}
.net-link.wireless{stroke:#0ea5e9;stroke-dasharray:3 5;stroke-width:2.4}
.net-link.down{opacity:.55}
.net-link-label{font:7.5px Tahoma,Arial,sans-serif;fill:#31455a;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}
.net-link-label.cable{font-weight:700;fill:#1765a7}
.net-node.cable-first .node-box{background:#fff7db!important;border-color:#f5b82e!important;box-shadow:0 0 0 3px #f5b82e22}
.port-used{color:#16834b!important;font-weight:700}
.port-free{color:#7b8997}
.port-media{font-size:9px;color:#73879a}

.btn-cancelcmd{border-color:#efb0b0!important;color:#9e2e2e!important;background:#fff7f7!important}.btn-scenario,.scenario-modal-open{background:#eef7ff!important;border:1px solid #acd2f6!important;color:#17639d!important}
.scenario-modal-open{width:100%;padding:8px;border-radius:8px;font-weight:700;cursor:pointer;margin-bottom:8px}.net-modal{display:none;position:fixed;inset:0;z-index:100000}.net-modal.open{display:block}.net-modal-backdrop{position:absolute;inset:0;background:#0a1a2a99;backdrop-filter:blur(2px)}
.net-modal-dialog{position:relative;margin:3vh auto;background:#fff;border-radius:14px;box-shadow:0 22px 70px #0005;max-height:94vh;overflow:hidden}.scenario-library{width:min(1180px,94vw)}.net-modal-head{height:78px;padding:15px 18px;display:flex;justify-content:space-between;border-bottom:1px solid #e4ebf1;background:#f4f9ff}.net-modal-head h2{margin:0 0 5px;font-size:19px}.net-modal-head p{margin:0;color:#6a7d90;font-size:11px}.modal-close{border:0;background:#e9eef3;border-radius:8px;width:34px;height:34px;font-size:24px;cursor:pointer}
.scenario-filterbar{display:grid;grid-template-columns:1fr 190px 180px;gap:8px;padding:10px 14px;border-bottom:1px solid #edf1f5}.scenario-filterbar input,.scenario-filterbar select{border:1px solid #ccd8e2;border-radius:8px;padding:9px;font:12px Tahoma}.scenario-modal-body{display:grid;grid-template-columns:1fr 275px;height:calc(94vh - 130px)}.scenario-list{padding:12px;overflow:auto;background:#f5f8fb;display:grid;grid-template-columns:1fr 1fr;gap:10px;align-content:start}
.scenario-pack{position:relative;display:grid;grid-template-columns:50px 1fr auto;gap:10px;background:#fff;border:1px solid #dce5ed;border-radius:11px;padding:12px;min-height:145px}.scenario-pack.checked{border-color:#2d8be6;background:#f4f9ff}.pack-select{position:absolute;right:11px;top:9px;font-size:10px}.pack-icon{width:46px;height:46px;border-radius:10px;background:#eef6ff;display:grid;place-items:center;font-size:28px}.pack-main{padding-right:50px}.pack-main h3{font-size:13px;margin:5px 0}.pack-main p{font-size:10px;color:#708194;line-height:1.45}.pack-meta,.pack-components{display:flex;flex-wrap:wrap;gap:4px}.pack-meta span,.pack-component{font-size:9px;padding:3px 6px;border-radius:5px;background:#eef2f6;color:#52677a}.pack-component b{color:#1677ff}.pack-load{align-self:end;border:1px solid #9ec8ee;background:#eaf5ff;color:#1767a4;border-radius:7px;padding:7px 8px;font-size:10px;font-weight:700;cursor:pointer}
.scenario-summary{border-left:1px solid #dde5ec;padding:14px;overflow:auto}.summary-note{font-size:10px;color:#718397}.summary-empty{text-align:center;color:#8b9aaa;padding:24px}.summary-device{display:grid;grid-template-columns:36px 1fr auto;gap:7px;align-items:center;padding:7px 0;border-bottom:1px solid #edf1f4}.summary-device .sum-icon svg{width:34px;height:30px}.summary-device b{font-size:11px}.summary-device .qty{font-size:16px;font-weight:700;color:#1677ff}.full{width:100%}.command-toast{position:fixed;left:50%;top:70px;transform:translateX(-50%);z-index:999999;background:#18344d;color:#fff;padding:8px 12px;border-radius:8px;font-size:11px}
@media(max-width:900px){.scenario-modal-body{grid-template-columns:1fr}.scenario-summary{display:none}.scenario-list{grid-template-columns:1fr}.scenario-filterbar{grid-template-columns:1fr}}

.run-mode{height:31px;border:1px solid #cbd6e0;border-radius:7px;background:#fff;color:#31485b;font:10px Tahoma;padding:0 6px}
.sim-step-banner{position:absolute;left:50%;top:22px;transform:translateX(-50%);z-index:40;background:#102f48;color:#fff;border-radius:10px;padding:9px 14px;box-shadow:0 8px 25px #0003;min-width:340px;text-align:center;font:11px Tahoma;pointer-events:none}
.sim-step-banner b{color:#7fd3ff}.sim-step-banner .sub{display:block;color:#c7d8e6;margin-top:3px;font-size:9px}
.node-action{position:absolute;right:-7px;top:-7px;width:18px;height:18px;border-radius:50%;background:#ffb020;border:2px solid #fff;box-shadow:0 0 0 3px #ffb02044;animation:simPulse .8s infinite}
@keyframes simPulse{50%{transform:scale(1.3);opacity:.65}}
.net-link.sim-active{stroke-width:5!important;filter:drop-shadow(0 0 3px rgba(22,119,255,.7))}
.osi-row.active{background:#fff4d6!important;border-color:#f2b632!important;box-shadow:0 0 0 2px #f5b82e22 inset}

/* ============================================================
   LEARNING PATH v5.0
   ============================================================ */
.learning-page{height:calc(100vh - 86px);overflow:auto;background:#eef3f8;padding:16px}
.learning-wrap{max-width:1180px;margin:auto}.learning-hero{background:linear-gradient(110deg,#0c2940,#145b83);color:#fff;border-radius:16px;padding:22px 24px;display:flex;justify-content:space-between;gap:20px;align-items:center;box-shadow:0 10px 30px #12395422}
.learning-hero h1{margin:0 0 6px;font-size:24px}.learning-hero p{margin:0;color:#d4e6f3;line-height:1.5}.hero-badge{white-space:nowrap;background:#ffffff18;border:1px solid #ffffff2e;border-radius:12px;padding:12px 15px;text-align:center}.hero-badge b{display:block;font-size:24px}
.course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:15px}.course-card{background:#fff;border:1px solid #dce5ed;border-radius:14px;padding:16px;box-shadow:0 5px 18px #18334c0b}.course-card h2{font-size:17px;margin:5px 0}.course-card p{font-size:11px;color:#687c8f;line-height:1.5;min-height:49px}.course-icon{font-size:31px}.course-meta{display:flex;gap:5px;flex-wrap:wrap}.course-meta span{font-size:9px;background:#edf5fb;border-radius:999px;padding:4px 7px;color:#37617e}.course-open{display:inline-block;margin-top:10px;text-decoration:none;background:#1677ff;color:white;border-radius:8px;padding:8px 11px;font-size:11px;font-weight:700}
.curriculum{margin-top:14px}.module-card{background:#fff;border:1px solid #dce5ed;border-radius:13px;margin-bottom:10px;overflow:hidden}.module-head{padding:12px 15px;background:#f8fbfd;border-bottom:1px solid #e5ebf0;display:flex;justify-content:space-between}.module-head h3{margin:0;font-size:14px}.module-head span{font-size:10px;color:#718397}.lesson-row{display:grid;grid-template-columns:45px minmax(0,1fr) 125px 145px;gap:10px;align-items:center;padding:10px 14px;border-bottom:1px solid #eef2f5}.lesson-row:last-child{border:0}.lesson-order{width:33px;height:33px;border-radius:50%;display:grid;place-items:center;background:#eaf4ff;color:#1677ff;font-weight:700}.lesson-title b{font-size:12px}.lesson-title small{display:block;color:#7b8c9d;font-size:9.5px;margin-top:3px}.progress-pill{font-size:9px;padding:5px 7px;border-radius:999px;text-align:center;background:#f1f4f7;color:#6e7e8c}.progress-pill.passed{background:#dcfce7;color:#166534}.lesson-action{text-align:right}.lesson-action a{display:inline-block;text-decoration:none;border:1px solid #b9d6f3;background:#eef7ff;color:#17639d;border-radius:7px;padding:7px 9px;font-size:10px;font-weight:700}
.lesson-shell{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:12px;max-width:1180px;margin:auto}.lesson-main,.lesson-side{background:#fff;border:1px solid #dce5ed;border-radius:14px;overflow:hidden}.lesson-banner{padding:18px 20px;background:linear-gradient(100deg,#f4f9ff,#fff)}.lesson-banner .crumb{font-size:9px;color:#6e8294}.lesson-banner h1{font-size:22px;margin:6px 0}.lesson-banner p{font-size:11px;color:#687c8e;line-height:1.5}.lesson-tabs{display:flex;border-top:1px solid #edf1f4;border-bottom:1px solid #e5ebef;background:#fbfcfd;position:sticky;top:0;z-index:5}.lesson-tabs button{border:0;background:transparent;padding:10px 13px;font:700 10px Tahoma;color:#5e7284;cursor:pointer}.lesson-tabs button.active{color:#1677ff;border-bottom:2px solid #1677ff;background:#f2f8ff}
.lesson-content{padding:18px 20px;line-height:1.65;font-size:12px}.lesson-content h2{font-size:17px;color:#17344d;margin:18px 0 7px}.lesson-content h3{font-size:14px}.theory-box{background:#f7fafc;border:1px solid #e1e8ee;border-left:4px solid #1677ff;border-radius:8px;padding:11px 13px;margin:10px 0}.device-chip{display:inline-flex;align-items:center;gap:5px;margin:3px;padding:5px 7px;border-radius:7px;background:#f2f6f9;border:1px solid #dee7ee;font-size:10px}.layer-flow{display:flex;flex-wrap:wrap;gap:5px;align-items:center;margin:10px 0}.layer-flow span{background:#eaf4ff;color:#17639d;border:1px solid #cce3f7;border-radius:7px;padding:6px 8px;font-size:10px}.layer-flow i{color:#8495a5}
.lesson-side{height:max-content;position:sticky;top:10px}.side-section{padding:13px;border-bottom:1px solid #e9eef2}.side-section h3{font-size:12px;margin:0 0 8px}.side-stat{display:flex;justify-content:space-between;font-size:10px;padding:5px 0}.side-stat b{color:#17344d}.gate{border-radius:10px;padding:11px;background:#fff8e6;border:1px solid #f3d486;font-size:10px;line-height:1.5}.gate.ok{background:#ecfdf3;border-color:#a7e3bc}.gate strong{display:block;font-size:12px;margin-bottom:3px}.side-btn{display:block;width:100%;text-align:center;text-decoration:none;border:0;border-radius:8px;padding:9px;margin-top:8px;font:700 10px Tahoma;cursor:pointer}.side-btn.quiz{background:#1677ff;color:#fff}.side-btn.demo{background:#16a34a;color:#fff}.side-btn.locked{background:#e7ebef;color:#8996a3;pointer-events:none}
.quiz-wrap{max-width:900px;margin:auto}.quiz-card{background:#fff;border:1px solid #dce5ed;border-radius:14px;padding:18px;margin-bottom:12px}.quiz-head h1{margin:0 0 5px;font-size:21px}.quiz-head p{font-size:11px;color:#6c7f91}.question{border-top:1px solid #edf1f4;padding:13px 0}.question:first-of-type{border-top:0}.question h3{font-size:12px;line-height:1.5}.option{display:block;border:1px solid #dfe7ed;border-radius:8px;padding:8px 9px;margin:6px 0;font-size:11px;cursor:pointer}.option:hover{background:#f5f9fc}.option input{margin-right:7px}.quiz-submit{border:0;background:#1677ff;color:#fff;border-radius:8px;padding:10px 16px;font:700 11px Tahoma;cursor:pointer}.quiz-result{border-radius:12px;padding:15px;margin-bottom:12px;background:#fff;border:1px solid #dce5ed}.quiz-result.pass{border-color:#9edbb3;background:#f1fff6}.quiz-result.fail{border-color:#f0c1c1;background:#fff6f6}.quiz-score{font-size:30px;font-weight:700}.answer-explain{font-size:10px;color:#65798a;margin-top:5px;padding-left:22px}
@media(max-width:900px){.course-grid{grid-template-columns:1fr}.lesson-shell{grid-template-columns:1fr}.lesson-side{position:static}.lesson-row{grid-template-columns:38px 1fr}.lesson-row .progress-pill,.lesson-action{grid-column:2}.learning-page{height:auto}.learning-hero{display:block}.hero-badge{margin-top:12px}}

/* v5.1 CTDT */
.program-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:15px}
.program-card,.subject-card,.subject-hero,.program-heading{background:#fff;border:1px solid #dce5ed;border-radius:14px;padding:17px;box-shadow:0 5px 18px #18334c0b}
.program-icon{font-size:34px}.program-level{display:inline-block;font-size:9px;font-weight:700;color:#17639d;background:#eaf5ff;border-radius:999px;padding:4px 8px;margin:5px 0}
.program-card h2,.program-heading h2{font-size:17px;margin:5px 0}.program-card p,.program-heading p,.subject-card p,.subject-hero p{font-size:10.5px;color:#687c8f;line-height:1.5}
.subject-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:12px}.subject-card h3{font-size:15px;margin:5px 0}.subject-code{font-size:9px;font-weight:700;color:#fff;background:#315f7f;border-radius:6px;padding:4px 7px;display:inline-block}
.hours-row{display:flex;gap:5px;flex-wrap:wrap;margin:9px 0}.hours-row span{min-width:65px;text-align:center;background:#f4f8fb;border:1px solid #e1e8ee;border-radius:8px;padding:6px;font-size:8.5px;color:#718295}.hours-row b{display:block;font-size:14px;color:#17344d}.hours-row.large span{min-width:75px}
.learning-navback{margin:12px 0}.learning-navback a{font-size:10px;color:#17639d;text-decoration:none}.subject-hero{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px}.subject-hero h2{margin:7px 0 4px;font-size:20px}.module-head small{display:block;margin-top:4px;color:#738598;font-size:9px}.empty-learning{padding:22px;text-align:center;color:#6f8191}.quiz-breadcrumb{font-size:9px;color:#6f8295;margin-bottom:6px}.quiz-head-card{padding-bottom:12px}
.app-footer{font-size:9px}
@media(max-width:800px){.program-grid,.subject-grid{grid-template-columns:1fr}.subject-hero{display:block}}

/* ============================================================
   V5.3 - FULL OSI / MODELESS GUIDE / AUTH / RESULTS
   ============================================================ */
.sim-shell{height:calc(100vh - 82px);grid-template-rows:minmax(390px,1fr) 315px}
.bottom-panel{grid-template-columns:1.28fr 1.05fr .82fr;gap:8px}
.osi-stack.osi-full{padding:7px 8px}
.osi-full .osi-row{grid-template-columns:29px 108px minmax(72px,auto);grid-template-rows:auto auto;column-gap:7px;row-gap:2px;padding:6px 7px}
.osi-full .osi-row small{grid-column:2/4;color:#6c7f90;font-size:8.2px;line-height:1.35}
.osi-full .osi-row.active small{color:#fff}
.osi-full .osi-pdu{justify-self:end;font-weight:700;color:#3b5368}
.osi-full .osi-row.active .osi-pdu{color:#fff}
.workspace-guide-btn{position:absolute;right:12px;top:10px;z-index:25;border:1px solid #9fcdf4;background:#eef7ff;color:#17639d;border-radius:8px;padding:7px 10px;font:700 10px Tahoma;cursor:pointer;box-shadow:0 3px 10px #1234}
.lab-guide-drawer{position:absolute;right:10px;top:47px;z-index:24;width:310px;max-height:calc(100% - 62px);background:#fff;border:1px solid #b8d5ed;border-radius:11px;box-shadow:0 14px 34px #102a4333;display:none;overflow:hidden}
.lab-guide-drawer.open{display:block}
.guide-head{display:flex;justify-content:space-between;align-items:center;padding:9px 10px;background:#eaf5ff;border-bottom:1px solid #d3e5f3}
.guide-head div{display:flex;flex-direction:column;gap:2px}.guide-head b{font-size:11px}.guide-head span{font-size:9px;color:#5f7588}.guide-head button{border:0;background:#fff;border-radius:6px;width:27px;height:27px;cursor:pointer}
.guide-body{padding:10px;overflow:auto;max-height:calc(100vh - 220px);font-size:9.5px;line-height:1.45}.guide-body h4{font-size:10px;margin:10px 0 5px;color:#164f81}.guide-body ol{padding-left:20px;margin:5px 0}.guide-note{background:#fff8df;border:1px solid #f0d68d;border-radius:7px;padding:7px}.guide-link-row{display:grid;grid-template-columns:1fr auto 1fr;gap:4px;padding:5px 0;border-bottom:1px solid #edf1f4;font-size:8.5px}
.btn-save-result{border-color:#9ac8a8!important;color:#16733c!important;background:#f0fff5!important}
.user-chip{display:inline-flex;align-items:center;background:#ffffff18;border:1px solid #ffffff22;color:#fff;border-radius:999px;padding:5px 8px;font-size:9px}
.top-link-button{border:0;background:transparent;color:#dfe8ef;font:10px Tahoma;cursor:pointer}
.about-system-modal{display:none;position:fixed;inset:0;z-index:200000;background:#07152299;align-items:center;justify-content:center}.about-system-modal.open{display:flex}
.about-card{width:min(440px,90vw);background:#fff;border-radius:14px;padding:22px;position:relative;text-align:center;box-shadow:0 25px 70px #0005}.about-close{position:absolute;right:10px;top:10px;border:0;background:#eef2f5;border-radius:7px;width:30px;height:30px;font-size:20px;cursor:pointer}.about-logo{width:58px;height:58px;border-radius:13px;margin:0 auto 10px;display:grid;place-items:center;background:#1677ff;color:#fff;font-weight:700;font-size:18px}.about-card h2{margin:5px 0}.about-card p{font-size:10.5px;color:#64798c;line-height:1.55}.about-author{margin-top:15px;border-top:1px solid #e6ebef;padding-top:13px;display:flex;flex-direction:column;gap:4px}.about-author b{font-size:13px}.about-author span{font-size:10px;color:#6b7e90}
.app-footer{height:26px;font-size:8px}
.auth-page{min-height:calc(100vh - 80px);display:grid;place-items:center;background:#eef3f8;padding:24px}.auth-card{width:min(430px,94vw);background:#fff;border:1px solid #dce5ed;border-radius:15px;padding:22px;box-shadow:0 15px 40px #15334b18}.auth-brand{width:50px;height:50px;border-radius:11px;background:#1677ff;color:#fff;display:grid;place-items:center;font-weight:700;margin:auto}.auth-card h1{text-align:center;font-size:19px}.auth-switch{display:grid;grid-template-columns:1fr 1fr;background:#eef3f7;border-radius:9px;padding:4px;margin:12px 0}.auth-switch a{text-align:center;text-decoration:none;padding:8px;color:#617587;font-size:10px;border-radius:7px}.auth-switch a.active{background:#fff;color:#1768a7;font-weight:700;box-shadow:0 2px 8px #0001}.auth-card label{display:block;font-size:9.5px;margin:9px 0 4px}.auth-card input{width:100%;border:1px solid #ccd8e2;border-radius:8px;padding:10px;font:11px Tahoma}.auth-card form button{width:100%;margin-top:12px;border:0;border-radius:8px;background:#1677ff;color:#fff;padding:10px;font-weight:700;cursor:pointer}.auth-error{background:#fff0f0;border:1px solid #f3b8b8;color:#a62e2e;border-radius:8px;padding:8px;font-size:10px}.auth-note{font-size:9px;color:#718394;text-align:center}
.results-page{min-height:calc(100vh - 80px);background:#eef3f8;padding:18px}.results-wrap{max-width:1250px;margin:auto}.results-head{background:#fff;border:1px solid #dce5ed;border-radius:12px;padding:14px}.results-head h1{margin:0;font-size:20px}.results-head p{font-size:10px;color:#718394}.result-search{display:flex;gap:6px;margin:10px 0}.result-search input{flex:1;border:1px solid #ccd8e2;border-radius:8px;padding:8px}.result-search button{border:0;background:#1677ff;color:#fff;border-radius:8px;padding:0 14px}.result-table-wrap{background:#fff;border:1px solid #dce5ed;border-radius:12px;overflow:auto}.result-table{width:100%;border-collapse:collapse;font-size:9px;min-width:1000px}.result-table th,.result-table td{padding:8px;border-bottom:1px solid #edf1f4;text-align:left;vertical-align:top}.result-table th{background:#f5f8fb;position:sticky;top:0}.result-table small,.result-table em{display:block;margin-top:3px;color:#708394;font-size:8px}.grade-form{display:grid;grid-template-columns:62px 180px auto;gap:5px}.grade-form input,.grade-form textarea{border:1px solid #ccd8e2;border-radius:6px;padding:5px;font:9px Tahoma}.grade-form textarea{height:42px}.grade-form button{border:0;background:#1677ff;color:#fff;border-radius:6px;padding:5px 8px;font-size:9px}.result-msg{margin:10px 0;background:#eefaf2;border:1px solid #bce0c8;padding:8px;border-radius:7px}.empty-result{text-align:center!important;padding:25px!important;color:#7b8d9d}
@media(max-width:1180px){.bottom-panel{grid-template-columns:1.2fr 1fr}.packet-card{display:block}.osi-full .osi-row{grid-template-columns:27px 95px 1fr}.lab-guide-drawer{width:285px}}
@media(max-width:900px){.lab-guide-drawer{position:fixed;right:10px;left:10px;top:95px;width:auto;max-height:65vh}.bottom-panel{display:block}.bottom-card{height:280px;margin-bottom:8px}}
\n/* WINDOWS SERVER VIRTUAL LAB v6.0 */
.ws-lab-page{height:calc(100vh - 80px);background:#e9eff5;display:flex;flex-direction:column;overflow:hidden}.ws-lab-top{background:#fff;border-bottom:1px solid #cfdae3;padding:10px 14px;display:flex;justify-content:space-between;gap:15px;align-items:center}.ws-lab-top h1{margin:3px 0;font-size:17px}.ws-lab-top p{margin:0;font-size:9px;color:#65798b}.ws-crumb{font-size:8px;color:#5683a5}.ws-top-actions{display:flex;gap:6px}.ws-top-actions button{border:1px solid #bdd0df;background:#fff;border-radius:7px;padding:7px 10px;font:700 9px Tahoma;cursor:pointer}.ws-top-actions button:first-child{background:#1677ff;color:#fff;border-color:#1677ff}.ws-lab-shell{display:grid;grid-template-columns:245px minmax(650px,1fr) 245px;gap:7px;flex:1;min-height:0;padding:7px}.ws-task-panel,.ws-inspector,.ws-stage{background:#fff;border:1px solid #ccd8e2;border-radius:10px;overflow:hidden;min-height:0}.ws-task-panel,.ws-inspector{padding:10px;overflow:auto}.ws-task-panel h3,.ws-inspector h3{font-size:11px;margin:0 0 8px}.ws-progress{height:6px;border-radius:99px;background:#e9eef2;overflow:hidden;margin-bottom:8px}.ws-progress span{display:block;height:100%;width:0;background:#19a15f;transition:.2s}#wsTaskList{padding:0;margin:0;list-style:none}.ws-task-panel li{display:flex;gap:7px;padding:7px 4px;border-bottom:1px solid #edf1f4;cursor:pointer}.ws-task-panel li.done{background:#f0fff5}.ws-task-panel li b{font-size:9.5px}.ws-task-panel li small{display:block;font-size:8px;color:#718496;line-height:1.35;margin-top:2px}.ws-step-check{border:0;background:transparent;color:#6b8093;font-size:14px}.ws-fault-box{margin-top:10px;background:#fff6e8;border:1px solid #f1d39b;border-radius:8px;padding:8px}.ws-fault-box h4{font-size:9px;margin:0 0 5px}.ws-fault-box select,.ws-fault-box button{width:100%;margin-top:4px;padding:6px;border:1px solid #d6c5a6;border-radius:6px;font:8.5px Tahoma;background:#fff}.ws-stage{display:grid;grid-template-rows:250px 32px 1fr}.ws-network{position:relative;background-image:radial-gradient(#bfd1df 1px,transparent 1px);background-size:18px 18px;overflow:hidden}.ws-device{position:absolute;width:95px;text-align:center;padding:5px;border:1px solid #b9cad8;border-radius:9px;background:#fff;box-shadow:0 3px 9px #15334b18;z-index:2}.ws-device-icon{font-size:31px}.ws-device b{display:block;font-size:9px}.ws-device small{display:block;font-size:7.5px;color:#697c8d}.ws-led{position:absolute;right:5px;top:5px;width:7px;height:7px;border-radius:50%;background:#16a34a;box-shadow:0 0 6px #16a34a}.ws-led.off{background:#a5afb8;box-shadow:none}#wsLinkLayer{position:absolute;inset:0;width:100%;height:100%;z-index:1}.ws-link{stroke:#587d99;stroke-width:3}.ws-console-tabs{display:flex;background:#f4f7fa;border-top:1px solid #d8e1e8;border-bottom:1px solid #d8e1e8}.ws-console-tabs button{border:0;background:transparent;padding:7px 12px;font:700 8.5px Tahoma;color:#64788a}.ws-console-tabs button.active{background:#fff;color:#1677ff;border-bottom:2px solid #1677ff}.ws-console{min-height:0;overflow:hidden}.ws-tab{display:none;height:100%;overflow:auto}.ws-tab.active{display:block}.ws-window{height:100%;display:flex;flex-direction:column}.ws-titlebar{height:29px;background:#154e78;color:#fff;display:flex;justify-content:space-between;align-items:center;padding:0 9px;font-size:9px}.ws-server-manager{display:grid;grid-template-columns:155px 1fr;flex:1;min-height:0}.ws-sm-nav{background:#1d3446;padding:7px}.ws-sm-nav button{display:block;width:100%;border:0;background:transparent;color:#d9e4ec;text-align:left;padding:7px;border-radius:5px;font:8.5px Tahoma}.ws-sm-nav button.active,.ws-sm-nav button:hover{background:#2b5d80;color:#fff}.ws-sm-content{padding:12px;overflow:auto;font-size:9px}.ws-sm-content h2{font-size:15px;margin:0 0 9px}.ws-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.ws-kpis div,.ws-role-grid div{border:1px solid #dce4ea;border-radius:8px;padding:9px}.ws-kpis b{display:block;font-size:14px}.ws-kpis span,.ws-role-grid span{display:block;font-size:8px;color:#718496}.ws-role-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:9px}.ws-role-grid .installed{background:#effcf4;border-color:#b8dec5}.ws-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ws-form-grid label{font-size:8px;color:#5d7285}.ws-form-grid input,.ws-form-grid select{display:block;width:100%;margin-top:3px;padding:7px;border:1px solid #cbd7e1;border-radius:6px;font:9px Tahoma}.ws-form-actions{display:flex;gap:5px;margin-top:9px}.ws-form-actions button,.ws-sm-content>button,.ws-inline button,.ws-notice button{border:0;background:#1677ff;color:#fff;border-radius:6px;padding:7px 9px;font:700 8px Tahoma;cursor:pointer}.ws-role-picker label{display:block;padding:7px;border-bottom:1px solid #edf1f4}.ws-notice{margin-top:10px;background:#fff8df;border:1px solid #efd48d;border-radius:7px;padding:8px}.ws-notice button{display:block;margin-top:6px}.ws-tree{border:1px solid #d9e2e9;border-radius:7px;padding:9px}.ws-tree ul{margin:4px 0;padding-left:18px}.ws-inline{display:flex;gap:5px;margin-bottom:6px}.ws-inline input{flex:1;border:1px solid #cbd7e1;border-radius:6px;padding:6px;font:8.5px Tahoma}.ws-list span{display:inline-block;background:#edf5fa;border:1px solid #d7e4ed;border-radius:5px;padding:4px 6px;margin:2px;font-size:8px}.ws-empty{padding:20px;text-align:center;color:#7a8d9d}.ws-client-content{padding:12px}.ws-client-card{max-width:600px;background:#f8fbfd;border:1px solid #d9e3ea;border-radius:9px;padding:12px}.ws-client-card h2{margin:0 0 9px}.ws-cli{background:#07131c;color:#cce9ff;height:100%;padding:10px;font:10px Consolas,monospace;overflow:auto}.ws-cli pre{white-space:pre-wrap;color:#8bd89f}.ws-timeline{padding:7px}.ws-event{display:grid;grid-template-columns:70px 90px 100px 1fr;gap:6px;padding:5px;border-bottom:1px solid #edf1f4;font-size:8px}.ws-event em{font-style:normal;color:#65798b}.ws-status-list div{display:flex;justify-content:space-between;border-bottom:1px solid #edf1f4;padding:6px 0;font-size:8px}.ws-status-list b{max-width:130px;text-align:right}.ws-hint{background:#eef7ff;border:1px solid #c8e0f4;border-radius:7px;padding:8px;font-size:8.5px;line-height:1.45}.side-btn.ws-lab-link{background:#5b2da3;color:#fff}.side-btn.ws-lab-link.locked{background:#e8e5ef;color:#938ba1}@media(max-width:1100px){.ws-lab-shell{grid-template-columns:210px 1fr}.ws-inspector{display:none}}@media(max-width:800px){.ws-lab-page{height:auto}.ws-lab-shell{display:block}.ws-task-panel{margin-bottom:7px}.ws-stage{height:720px}.ws-server-manager{grid-template-columns:120px 1fr}}