﻿/* ITDSV Enterprise Platform - v19 Enterprise Clean UI */
:root{
  --navy:#14336f; --navy-2:#0f2858; --blue:#2563eb; --blue-2:#1d4ed8;
  --green:#16a34a; --red:#dc2626; --orange:#f97316; --yellow:#eab308; --purple:#7c3aed; --teal:#0f766e;
  --bg:#f3f6fb; --surface:#ffffff; --surface-2:#f8fafc; --line:#dbe4ef; --line-soft:#e8eef6;
  --text:#0f172a; --muted:#64748b; --shadow:0 10px 28px rgba(15,23,42,.08); --shadow-sm:0 2px 8px rgba(15,23,42,.045);
}
*{box-sizing:border-box} html{font-size:15px} body{margin:0;font-family:Tahoma,"Noto Sans","Noto Sans KR","Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit}.layout{display:flex;min-height:100vh}.side{width:238px;background:linear-gradient(180deg,var(--navy-2),var(--navy));color:white;position:fixed;top:0;bottom:0;left:0;padding:14px 10px;border-right:0;overflow:auto;box-shadow:6px 0 24px rgba(15,23,42,.10);z-index:10}.brand{display:flex;gap:10px;align-items:center;padding:6px 5px 14px;border-bottom:1px solid rgba(255,255,255,.12);margin-bottom:10px}.logo{flex:0 0 auto;width:39px;height:39px;border-radius:11px;background:white;color:var(--navy);display:flex;align-items:center;justify-content:center;font-weight:950;font-size:12px;box-shadow:0 8px 18px rgba(0,0,0,.18)}.img-logo img{max-width:100%;max-height:100%;object-fit:contain}.brand-copy b{display:block;font-size:14px;line-height:1.15;letter-spacing:.1px;color:white}.brand-copy small{display:block;margin-top:3px;font-size:10.5px;line-height:1.2;color:#cbd5e1;font-weight:650}.nav{padding-top:4px}.nav a,.nav-parent{width:100%;height:34px;display:flex;align-items:center;gap:9px;text-decoration:none;border:0;background:transparent;color:#dfe9f8;border-radius:10px;padding:0 9px;margin:3px 0;font-size:12.7px;font-weight:760;cursor:pointer;text-align:left;transition:.15s ease}.nav a span,.nav-parent span{width:19px;text-align:center;font-size:14px;filter:drop-shadow(0 1px 1px rgba(0,0,0,.25))}.nav a b,.nav-parent b{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-parent em{font-style:normal;font-size:15px;opacity:.72}.nav a.active,.nav a:hover,.nav-parent:hover{background:rgba(255,255,255,.13);color:#fff}.nav-child{display:none;margin:1px 0 7px 19px;padding-left:9px;border-left:1px solid rgba(255,255,255,.16)}.nav-child.open{display:block}.nav-child a{height:28px!important;margin:1px 0!important;padding:0 8px!important;font-size:12px!important;color:#cbdcf3!important;border-radius:8px!important}.nav-child a.active,.nav-child a:hover{background:rgba(255,255,255,.12)!important;color:white!important}.userbox{margin-top:14px;padding:12px;border-radius:14px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.14);color:white}.userbox b{display:block;font-size:12.5px}.userbox span{display:inline-block;margin:7px 0 10px;background:#2563eb;color:white;padding:3px 7px;border-radius:99px;font-size:10px;font-weight:900}.btn.ghost{height:32px;background:white!important;color:var(--navy)!important;border:0!important}.main{margin-left:238px;width:calc(100% - 238px);min-height:100vh}.top{height:58px;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 18px;position:sticky;top:0;z-index:8;box-shadow:0 1px 0 rgba(15,23,42,.03)}.hamburger{width:34px;height:34px;border:1px solid var(--line);background:white;border-radius:11px;font-size:16px;cursor:pointer;margin-right:14px;color:#334155}.top-title{flex:1;text-align:center;line-height:1.05}.top-title b{display:block;font-size:15px;font-weight:900;letter-spacing:.02em;color:#0f172a}.top-title small{display:block;margin-top:4px;font-size:11.5px;font-weight:750;color:#475569}.top-right{display:flex;align-items:center;gap:8px}.last{background:#f8fafc;border:1px solid var(--line);border-radius:999px;padding:7px 10px;font-size:11.5px;color:#475569;font-weight:750;white-space:nowrap}.icon{width:34px;height:34px;border-radius:10px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;text-decoration:none;background:white;position:relative}.icon em{position:absolute;top:-6px;right:-6px;background:#ef4444;color:white;border-radius:999px;font-size:10px;padding:1px 5px;font-style:normal}.dropdown{position:relative;display:inline-block}.dropbtn{height:34px;border:1px solid var(--line);border-radius:10px;background:white;color:#0f172a;padding:0 10px;font-weight:850;font-size:12px;cursor:pointer;box-shadow:var(--shadow-sm);white-space:nowrap}.dropbtn:hover{border-color:#93c5fd}.dropmenu{display:none;position:absolute;right:0;top:40px;min-width:205px;background:white;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:7px;z-index:20}.dropdown:hover .dropmenu{display:block}.dropmenu a{display:block;text-decoration:none;color:#0f172a;padding:9px 11px;border-radius:10px;font-size:13px;font-weight:750}.dropmenu a:hover{background:#eff6ff;color:var(--blue)}.content{padding:20px 22px 26px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px}.page-head h1{margin:0;font-size:25px;font-weight:900;letter-spacing:-.03em}.page-head p{margin:4px 0 0;color:var(--muted);font-size:13px;font-weight:650}.head-actions{display:flex;gap:8px;flex-wrap:wrap}.btn{border:1px solid var(--line)!important;border-radius:10px!important;background:white!important;color:#0f172a!important;min-height:34px;padding:7px 11px!important;font-size:12.5px;font-weight:850!important;text-decoration:none!important;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;box-shadow:var(--shadow-sm)}.btn.primary{background:var(--blue)!important;color:white!important;border-color:var(--blue)!important}.btn.red{color:#dc2626!important;border-color:#fecaca!important;background:#fff1f2!important}.btn.small{min-height:30px;padding:6px 9px!important;font-size:12px!important}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;margin-bottom:14px}.kpi-card{position:relative;background:white;border:1px solid var(--line);border-radius:16px;padding:13px 14px 12px;min-height:100px;box-shadow:var(--shadow-sm);overflow:hidden}.kpi-card:before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--blue)}.kpi-icon{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;border-radius:9px;background:#eff6ff;font-size:15px;box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}.kpi-card p{margin:8px 0 1px;color:#475569;font-size:12.8px;font-weight:850}.kpi-card h2{margin:0;color:#0f172a;font-size:27px;font-weight:950;letter-spacing:-.04em;line-height:1.05}.kpi-card small{display:block;margin-top:2px;color:#64748b;font-size:11px;font-weight:750}.kpi-blue:before{background:var(--blue)}.kpi-green:before{background:var(--green)}.kpi-red:before{background:var(--red)}.kpi-orange:before{background:var(--orange)}.kpi-yellow:before{background:var(--yellow)}.kpi-purple:before{background:var(--purple)}.kpi-teal:before{background:var(--teal)}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.dash-card,.card,.subtab-card{background:white!important;border:1px solid var(--line)!important;border-radius:16px!important;box-shadow:var(--shadow-sm)!important;padding:15px!important;margin-bottom:14px!important}.card-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.card-title h3,.card h3{margin:0;color:#0f172a;font-size:16px;font-weight:900}.card-title span{font-size:11.5px;color:#64748b;font-weight:800}.bar-list{display:flex;flex-direction:column;gap:10px;min-height:120px}.bar-row{display:grid;grid-template-columns:145px 1fr 34px;gap:10px;align-items:center}.bar-row label{font-size:12.5px;font-weight:850;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar-row b{text-align:right;font-size:12.5px}.bar-track{height:10px;background:#e8eef6;border-radius:999px;overflow:hidden;box-shadow:inset 0 1px 2px rgba(15,23,42,.06)}.bar-track i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#60a5fa,#2563eb)}.status-bars .bar-track i{background:linear-gradient(90deg,#22c55e,#16a34a)}.donut-wrap{display:flex;align-items:center;justify-content:center;gap:28px;min-height:190px}.donut-chart{--p:0;width:138px;height:138px;border-radius:50%;background:conic-gradient(var(--blue) calc(var(--p)*1%),#e8eef6 0);display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative;box-shadow:0 8px 20px rgba(37,99,235,.14)}.donut-chart:before{content:"";position:absolute;inset:20px;background:white;border-radius:50%;box-shadow:inset 0 1px 4px rgba(15,23,42,.08)}.donut-chart span,.donut-chart small{position:relative;z-index:1}.donut-chart span{font-size:25px;font-weight:950}.donut-chart small{font-size:11px;font-weight:800;color:#64748b}.legend p{font-size:12.5px;font-weight:800;color:#334155}.dot{display:inline-block;width:9px;height:9px;border-radius:99px;margin-right:8px}.dot.blue{background:var(--blue)}.dot.red{background:var(--red)}.trend-bars{height:126px;background:#f8fafc;border:1px solid var(--line);border-radius:14px;display:flex;align-items:flex-end;gap:7px;padding:12px;margin-bottom:10px}.trend-bars i{flex:1;min-height:7px;border-radius:7px 7px 0 0;background:linear-gradient(180deg,#60a5fa,#2563eb);box-shadow:0 6px 14px rgba(37,99,235,.15)}table{width:100%;border-collapse:separate!important;border-spacing:0!important;background:white;border-radius:12px}th{background:#f1f5f9!important;color:#334155!important;text-align:left;font-size:12px!important;font-weight:900!important;padding:10px!important;border-bottom:1px solid var(--line)!important}td{padding:10px!important;border-bottom:1px solid #edf2f7!important;color:#0f172a!important;font-size:12.5px!important;font-weight:650}tr:hover td{background:#f8fbff}.compact th,.compact td{font-size:11.5px!important;padding:8px!important}.tabs,.subtabs,.mini-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}.tabs a,.subtabs a,.mini-tabs a{border:1px solid var(--line);border-radius:999px;padding:7px 11px;text-decoration:none;color:#334155;background:white;font-weight:850;font-size:12.5px}.tabs a.active,.subtabs a.active,.mini-tabs a.active{background:#eff6ff!important;color:var(--blue)!important;border-color:#bfdbfe!important}.empty,.center-text{text-align:center;color:#64748b;font-weight:750;padding:20px}.modal{display:none;position:fixed;inset:0;background:rgba(15,23,42,.36);align-items:center;justify-content:center;z-index:50}.modalbox{background:white;border-radius:18px;border:1px solid var(--line);box-shadow:var(--shadow);padding:18px;min-width:360px;max-width:90vw;max-height:90vh;overflow:auto}input,select,textarea{border:1px solid #cbd5e1;border-radius:10px;padding:8px 10px;font-family:inherit;font-size:13px;background:white}input:focus,select:focus,textarea:focus{outline:2px solid #bfdbfe;border-color:#60a5fa}.form-field label,label{font-weight:800;color:#334155;font-size:12.5px}.clean-toolbar,.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 12px}.pill{display:inline-block;background:#eef6ff;color:var(--blue);border:1px solid #bfdbfe;border-radius:999px;padding:3px 8px;font-weight:900;font-size:11px}.switch{position:relative;display:inline-block;width:46px;height:24px}.switch input{display:none}.switch span{position:absolute;cursor:pointer;inset:0;background:#cbd5e1;border-radius:999px;transition:.2s}.switch span:before{content:'';position:absolute;height:18px;width:18px;left:3px;top:3px;background:white;border-radius:50%;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.25)}.switch input:checked+span{background:var(--blue)}.switch input:checked+span:before{transform:translateX(22px)}footer{text-align:center;color:#94a3b8;padding:20px;font-size:12px}.mini-nav .side{width:76px}.mini-nav .main{margin-left:76px;width:calc(100% - 76px)}.mini-nav .brand-copy,.mini-nav .nav b,.mini-nav .nav-parent em,.mini-nav .nav-child,.mini-nav .userbox{display:none!important}.mini-nav .nav a,.mini-nav .nav-parent{justify-content:center;padding:0!important}.mini-nav .logo{width:38px;height:38px}.mini-nav .brand{justify-content:center}.login-page-v90{min-height:100vh;background:radial-gradient(circle at top left,#dbeafe 0,#f4f7fb 42%,#eef3f9 100%);display:flex;align-items:center;justify-content:center}.login-shell-v90{width:100%;display:flex;justify-content:center;padding:28px}.login-box-v90{width:min(480px,94vw);background:rgba(255,255,255,.95);border:1px solid #dbe4ef;border-radius:24px;box-shadow:0 24px 70px rgba(15,23,42,.16);padding:30px}.brand-v90{display:flex;align-items:center;gap:13px;margin-bottom:18px}.brand-logo-v90{width:56px;height:56px;border-radius:16px;background:linear-gradient(135deg,var(--navy),var(--blue));color:white;display:flex;align-items:center;justify-content:center;font-weight:950;box-shadow:0 12px 26px rgba(37,99,235,.24)}.brand-logo-img-v90 img{width:56px;height:56px;object-fit:contain}.brand-title-v90{font-size:21px;font-weight:950;letter-spacing:-.02em;color:#0f172a}.brand-sub-v90{font-size:12px;color:#64748b;font-weight:800}.lang-v90{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}.lang-v90 a{text-decoration:none;border:1px solid var(--line);border-radius:999px;padding:6px 10px;font-size:12px;font-weight:850;background:white}.lang-v90 a.active{background:var(--blue);border-color:var(--blue);color:white}.form-v90{display:grid;gap:8px}.form-v90 input{height:42px}.form-v90 button{height:44px;border:0;border-radius:12px;background:var(--blue);color:white;font-weight:900;margin-top:8px;cursor:pointer;box-shadow:0 12px 24px rgba(37,99,235,.22)}.err-v90{color:#dc2626;font-weight:750;min-height:18px}.register-v90{text-align:center;margin:13px 0}.register-v90 a{color:var(--blue);font-weight:850}.db-toggle-v90{width:100%;height:38px;border:1px solid var(--line);background:#f8fafc;border-radius:12px;font-weight:850;cursor:pointer}.db-box-v90{display:none;margin-top:14px;border-top:1px solid var(--line);padding-top:14px}.db-box-v90.open{display:block}.db-row-title b{display:block}.db-row-title span{color:#64748b;font-size:12px}.db-grid-v90{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.db-grid-v90 .full{grid-column:1/-1}.db-grid-v90 input,.db-grid-v90 select{width:100%;height:38px}.db-checks-v90{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0;font-size:12px}.db-actions-v90{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.db-actions-v90 button{height:38px;border:1px solid var(--blue);color:var(--blue);background:white;border-radius:10px;font-weight:850}.db-note-v90{font-size:12px;color:#64748b}@media(max-width:1250px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.last{display:none}}@media(max-width:780px){.side{transform:translateX(-100%);transition:.2s}.main{margin-left:0;width:100%}.mini-nav .side{transform:translateX(0);width:238px}.mini-nav .main{margin-left:0;width:100%}.mini-nav .brand-copy,.mini-nav .nav b,.mini-nav .nav-parent em,.mini-nav .userbox{display:block!important}.content{padding:16px}.kpi-grid{grid-template-columns:1fr}.page-head{flex-direction:column;gap:10px}.top-title{display:none}.bar-row{grid-template-columns:1fr}.donut-wrap{flex-direction:column}.db-grid-v90,.db-checks-v90,.db-actions-v90{grid-template-columns:1fr}}


/* v20 polish: horizontal balance, compact cards, permission matrix */
.grid4{display:grid!important;grid-template-columns:repeat(4,minmax(170px,1fr));gap:12px;margin-bottom:14px}.kpi{display:flex!important;align-items:center!important;gap:12px;background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow-sm);padding:13px;min-height:92px}.kpi .ico{width:34px;height:34px;border-radius:11px;background:#eef6ff;display:flex;align-items:center;justify-content:center}.kpi p{margin:0 0 4px;color:#475569;font-weight:850}.kpi h1{margin:0;font-size:28px;line-height:1;font-weight:950}.kpi small{color:#64748b;font-weight:750}.compact-kpi-grid .kpi-card{min-height:88px;padding:11px 13px}.compact-kpi-grid .kpi-card p{margin:6px 0 0}.compact-kpi-grid .kpi-card h2{font-size:25px}.settings-grid,.form-grid{display:grid!important;grid-template-columns:repeat(3,minmax(190px,1fr));gap:12px 14px;align-items:end;margin-bottom:12px}.settings-grid.four-col{grid-template-columns:repeat(4,minmax(170px,1fr))}.settings-grid.three-col{grid-template-columns:repeat(3,minmax(190px,1fr))}.form-field{display:flex!important;flex-direction:column;gap:5px;min-width:0}.form-field input,.form-field select,.form-field textarea{width:100%;box-sizing:border-box}.form-field.wide{grid-column:span 2}.form-card{background:#f8fbff;border:1px solid #e2e8f0;border-radius:14px;padding:14px;margin:12px 0 14px}.form-actions{display:flex;justify-content:flex-end;gap:8px}.card-head-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.card-head-row .subtabs,.card-head-row .toolbar{margin:0}.tiny-switch{width:38px;height:20px}.tiny-switch span:before{width:14px;height:14px}.tiny-switch input:checked+span:before{transform:translateX(18px)}.policy-table input.wide-input{width:100%;min-width:240px}.table-scroll{overflow:auto}.subtab-card{overflow:visible}.subtabs a,.tabs a,.mini-tabs a{white-space:nowrap}.side .nav-child a{font-weight:720}.top-title b{letter-spacing:.06em}.top-title small{letter-spacing:.02em}.content h2{font-size:23px;margin:0 0 14px;font-weight:950;color:#0f172a}.card,.subtab-card{padding:16px!important}.clean-toolbar{justify-content:flex-start}.hint{color:#64748b;font-size:12px;font-weight:700;margin:6px 0 12px}.inline-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.inline-form input[type=file]{padding:6px;max-width:260px}.action-cell form{display:inline}.kpi-card{transition:transform .12s ease,box-shadow .12s ease}.kpi-card:hover,.card:hover{box-shadow:0 8px 22px rgba(15,23,42,.08)!important}.modalbox.catalog-modal{width:min(1050px,92vw)}
.subtabs-grouped{align-items:center}.subtab-sep{width:1px;align-self:stretch;min-height:22px;background:var(--line);margin:0 3px}
@media(max-width:1200px){.grid4,.kpi-grid,.settings-grid.four-col{grid-template-columns:repeat(2,1fr)!important}.settings-grid,.settings-grid.three-col,.form-grid{grid-template-columns:repeat(2,1fr)!important}.form-field.wide{grid-column:span 1}}
@media(max-width:760px){.grid4,.kpi-grid,.settings-grid,.settings-grid.three-col,.settings-grid.four-col,.form-grid{grid-template-columns:1fr!important}.card-head-row{flex-direction:column;align-items:flex-start}.form-actions{justify-content:flex-start}}


/* ===== V21 Samsung N-SRM inspired enterprise UI (Doosung branding, not copied) ===== */
:root{--nsrm-navy:#06245c;--nsrm-blue:#0f5bff;--nsrm-soft:#f2f5fa;--nsrm-line:#d9e2ef;--nsrm-text:#0f172a;--nsrm-muted:#64748b;--nsrm-shadow:0 8px 20px rgba(15,23,42,.08)}
html,body{font-family:Tahoma,"Noto Sans","Noto Sans KR","Segoe UI",Arial,sans-serif!important;background:#f3f6fb;color:var(--nsrm-text)}
body.login-nsrm{min-height:100vh;margin:0;background:linear-gradient(120deg,rgba(3,12,32,.7),rgba(2,28,75,.62)),radial-gradient(circle at 20% 20%,rgba(65,120,255,.45),transparent 34%),linear-gradient(135deg,#0b1736 0%,#23456f 45%,#e7eef9 100%);overflow:auto}.login-bg-overlay{position:fixed;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.42),rgba(0,0,0,.1)),repeating-linear-gradient(135deg,rgba(255,255,255,.035) 0 2px,transparent 2px 12px);pointer-events:none}.login-nsrm-wrap{position:relative;z-index:1;min-height:100vh;display:grid;grid-template-columns:minmax(420px,1fr) 420px;align-items:center;gap:80px;max-width:1220px;margin:0 auto;padding:56px}.login-hero{color:white}.hero-kicker{font-size:13px;letter-spacing:.22em;font-weight:900;opacity:.88;margin-bottom:18px}.login-hero h1{font-size:72px;line-height:.88;margin:0;font-weight:950;letter-spacing:.02em;text-shadow:0 10px 34px rgba(0,0,0,.25)}.hero-line{width:180px;height:2px;background:rgba(255,255,255,.75);margin:18px 0}.login-hero h2{font-size:38px;line-height:1.08;margin:0 0 14px;color:rgba(255,255,255,.82);font-weight:900}.login-hero p{font-size:17px;font-weight:650;opacity:.88}.hero-badges{display:flex;gap:9px;flex-wrap:wrap;margin-top:24px}.hero-badges span{border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.12);backdrop-filter:blur(8px);padding:8px 12px;border-radius:999px;font-size:12px;font-weight:850}.login-card-nsrm{background:rgba(255,255,255,.94);border:1px solid rgba(255,255,255,.75);border-radius:22px;box-shadow:0 28px 70px rgba(3,12,32,.35);padding:26px 28px;backdrop-filter:blur(20px)}.login-card-head{display:flex;gap:13px;align-items:center;margin-bottom:14px}.login-logo-nsrm{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#05245f,#1362ff);color:#fff;font-weight:950;font-size:12px;box-shadow:0 10px 20px rgba(15,91,255,.22)}.login-logo-img img{width:48px;height:48px;object-fit:contain}.login-card-head h3{font-size:27px;margin:0;font-weight:950;letter-spacing:-.02em}.login-card-head p{margin:2px 0 0;color:#64748b;font-size:12.5px;font-weight:700}.login-language-center{display:flex;align-items:center;justify-content:center;gap:7px;margin:12px 0 18px}.login-language-center a{text-decoration:none;color:#475569;border:1px solid #dbe4ef;background:#fff;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:850}.login-language-center a.active{background:#0f5bff;color:white;border-color:#0f5bff}.login-form-nsrm{display:grid;gap:8px}.login-form-nsrm label{font-size:12px;text-transform:uppercase;color:#64748b;font-weight:900}.login-form-nsrm input,.login-form-nsrm select{height:42px;border:1px solid #dbe4ef;border-radius:10px;background:#f8fafc;padding:0 12px;font-weight:750}.login-row-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.login-options{display:flex;align-items:center;justify-content:space-between;font-size:12px;margin-top:2px}.login-options a{font-weight:800;color:#0f5bff}.login-main-btn{height:43px;border:0;border-radius:999px;background:linear-gradient(90deg,#0059ff,#2374ff);color:white;font-weight:950;letter-spacing:.02em;box-shadow:0 10px 24px rgba(15,91,255,.27);cursor:pointer}.login-main-btn:hover{filter:brightness(1.04);transform:translateY(-1px)}.login-quick-links{display:grid;gap:8px;margin-top:18px}.login-quick-links button{height:38px;border:1px solid #dbe4ef;background:#fff;border-radius:9px;text-align:left;padding:0 14px;font-weight:850;color:#334155}.login-foot-row{display:flex;align-items:center;justify-content:space-between;margin-top:14px;color:#64748b;font-size:11.5px}.db-box-nsrm{max-height:38vh;overflow:auto}.login-error{margin:8px 0;color:#dc2626;font-weight:850}.login-copy{position:fixed;z-index:1;left:0;right:0;bottom:18px;text-align:center;color:rgba(255,255,255,.7);font-size:11px}.auth-bg{display:flex;align-items:center;justify-content:center}.auth-center-card{position:relative;z-index:1;width:min(460px,92vw);background:rgba(255,255,255,.96);border:1px solid rgba(255,255,255,.78);border-radius:24px;box-shadow:0 28px 70px rgba(3,12,32,.35);padding:30px}.auth-wide{width:min(780px,94vw)}.otp-single-input{width:100%;height:56px!important;text-align:center;font-size:28px!important;font-weight:950;letter-spacing:.45em;border-radius:14px!important;background:#fff!important}.otp-one-form{display:grid;gap:12px}.otp-count{font-size:12px;color:#64748b;font-weight:800}.twofa-grid{display:grid;grid-template-columns:250px 1fr;gap:22px;align-items:center}.qr-wrap{background:white;border:1px solid #dbe4ef;border-radius:18px;display:flex;align-items:center;justify-content:center;padding:18px;box-shadow:var(--nsrm-shadow)}.qr-wrap img{width:210px;height:210px}.manual-key span{display:block;background:#f8fafc;border:1px dashed #94a3b8;border-radius:10px;padding:10px;font-weight:900;word-break:break-all}
/* Internal app: Samsung-style top nav + compact sidebar */
.side{background:#072663!important;width:222px!important;box-shadow:5px 0 20px rgba(4,20,57,.08)!important}.main{margin-left:222px!important;width:calc(100% - 222px)!important}.brand{padding:18px 12px!important;border-bottom:1px solid rgba(255,255,255,.14)!important}.brand-copy b{font-size:15px!important;line-height:1.15!important;letter-spacing:.01em}.brand-copy small{font-size:10px!important;line-height:1.25!important;color:rgba(255,255,255,.78)!important}.logo{width:42px!important;height:42px!important;border-radius:12px!important;background:#fff!important;color:#0b2a6b!important;box-shadow:0 5px 14px rgba(0,0,0,.12)!important}.nav{padding:10px 9px!important}.nav a,.nav-parent{height:34px!important;padding:0 10px!important;border-radius:8px!important;color:rgba(255,255,255,.83)!important;background:transparent!important;margin-bottom:3px!important;font-size:12.2px!important}.nav a.active,.nav-parent:hover,.nav a:hover{background:rgba(255,255,255,.12)!important;color:#fff!important}.nav-child{margin:2px 0 8px 28px!important;border-left:1px solid rgba(255,255,255,.12)!important}.nav-child a{height:27px!important;font-size:11.5px!important;color:rgba(255,255,255,.7)!important}.userbox{margin:10px!important;background:rgba(255,255,255,.1)!important;border:1px solid rgba(255,255,255,.14)!important;border-radius:12px!important;padding:11px!important}.top{height:45px!important;border-bottom:1px solid #d9e2ef!important;background:#fff!important;box-shadow:none!important}.top-title b{font-size:13.5px!important;letter-spacing:.04em!important}.top-title small{font-size:10.5px!important}.module-strip{height:38px;display:flex;align-items:center;gap:4px;padding:0 20px;background:#fff;border-bottom:1px solid #d9e2ef;box-shadow:0 1px 2px rgba(15,23,42,.03);overflow:auto}.module-strip a{height:28px;display:flex;align-items:center;padding:0 14px;border-radius:999px;text-decoration:none;color:#0f172a;font-weight:850;font-size:12px;white-space:nowrap}.module-strip a.active,.module-strip a:hover{background:#1f5eff;color:white}.content{padding:18px 22px!important}.content h2{font-size:22px!important;margin:0 0 12px!important}.subtab-card,.card{border:1px solid #d9e2ef!important;border-radius:14px!important;box-shadow:0 5px 16px rgba(15,23,42,.045)!important;background:#fff!important}.subtabs,.tabs,.mini-tabs{gap:5px!important;margin-bottom:10px!important}.subtabs a,.tabs a,.mini-tabs a{height:28px;display:inline-flex;align-items:center;border-radius:999px!important;padding:0 12px!important;font-size:12px!important}.kpi-grid,.compact-kpi-grid{display:grid!important;grid-template-columns:repeat(4,minmax(140px,1fr))!important;gap:10px!important}.kpi-card{min-height:76px!important;padding:10px 12px!important;display:grid!important;grid-template-columns:36px 1fr!important;grid-template-rows:auto auto!important;column-gap:10px!important;align-items:center!important}.kpi-card .kpi-icon{grid-row:1/3;width:34px!important;height:34px!important;border-radius:10px!important}.kpi-card p{margin:0!important;font-size:12px!important;font-weight:850!important}.kpi-card h2{margin:2px 0!important;font-size:24px!important;line-height:1!important}.kpi-card small{font-size:10.5px!important}.card-head-row{align-items:center!important;margin-bottom:10px!important}.toolbar,.clean-toolbar{gap:6px!important}.btn{height:30px!important;padding:0 11px!important;font-size:11.7px!important;border-radius:8px!important;display:inline-flex;align-items:center;justify-content:center}.btn.primary{box-shadow:none!important}.form-card{background:#f6f8fc!important;border:1px solid #e1e8f2!important;border-radius:12px!important;padding:12px!important}.settings-grid,.settings-grid.three-col,.settings-grid.four-col,.form-grid{grid-template-columns:repeat(4,minmax(160px,1fr))!important;gap:10px!important}.form-field.wide{grid-column:span 2!important}.form-field label{font-size:11.5px!important;margin-bottom:3px!important}.form-field input,.form-field select,.form-field textarea,input,select,textarea{height:34px!important;border-radius:7px!important;font-size:12.5px!important}.table-scroll{border:1px solid #e5edf6;border-radius:10px;overflow:auto}table{border-radius:10px!important}th{height:30px!important;padding:7px 9px!important;font-size:11.2px!important;background:#f3f6fb!important}td{padding:8px 9px!important;font-size:11.7px!important}.pill{font-size:10.5px!important;padding:2px 7px!important}.dashboard-grid{gap:12px!important}.bar-row{min-height:24px!important}.bar-track{height:8px!important}.donut{width:160px!important;height:160px!important}.mini-nav .side{width:68px!important}.mini-nav .main{margin-left:68px!important;width:calc(100% - 68px)!important}.mini-nav .module-strip{padding-left:14px}.mini-nav .brand{padding:14px 8px!important}.mini-nav .logo{width:36px!important;height:36px!important}
@media(max-width:1100px){.login-nsrm-wrap{grid-template-columns:1fr;gap:28px;padding:28px}.login-hero{text-align:center}.hero-line{margin:16px auto}.login-card-nsrm{max-width:430px;margin:0 auto}.settings-grid,.settings-grid.three-col,.settings-grid.four-col,.form-grid{grid-template-columns:repeat(2,minmax(170px,1fr))!important}.kpi-grid,.compact-kpi-grid{grid-template-columns:repeat(2,1fr)!important}.twofa-grid{grid-template-columns:1fr}.qr-wrap img{width:190px;height:190px}}
@media(max-width:720px){.login-hero h1{font-size:48px}.login-hero h2{font-size:26px}.login-row-2{grid-template-columns:1fr}.settings-grid,.settings-grid.three-col,.settings-grid.four-col,.form-grid{grid-template-columns:1fr!important}.kpi-grid,.compact-kpi-grid{grid-template-columns:1fr!important}.form-field.wide{grid-column:span 1!important}.module-strip{padding:0 10px}.main{margin-left:0!important;width:100%!important}.side{transform:translateX(-100%)}.mini-nav .side{transform:translateX(0);width:222px!important}.mini-nav .main{margin-left:0!important;width:100%!important}}


/* V22 Samsung-inspired top navigation fix: no vertical menu by default */
body.topnav-mode .side{display:none!important;}
body.topnav-mode .main{margin-left:0!important;width:100%!important;}
body.topnav-mode .top{height:48px!important;padding:0 18px!important;}
body.topnav-mode .hamburger{display:none!important;}
body.topnav-mode .top-title{text-align:left!important;max-width:520px;}
body.topnav-mode .top-title b{font-size:14px!important;letter-spacing:.08em!important;}
body.topnav-mode .top-title small{font-size:11px!important;opacity:.78;}
body.topnav-mode .module-strip.nsrm-topnav{height:38px!important;padding:0 18px!important;gap:8px!important;overflow:visible!important;background:#fff!important;border-bottom:1px solid #d7e0ee!important;box-shadow:0 1px 3px rgba(15,23,42,.04)!important;position:sticky;top:48px;z-index:7;}
.nsrm-topnav .topnav-group{height:100%;display:flex;align-items:center;position:relative;}
.nsrm-topnav .topnav-group>a{height:28px!important;padding:0 13px!important;border-radius:999px!important;text-decoration:none!important;font-size:12px!important;font-weight:900!important;color:#0f172a!important;display:flex!important;align-items:center!important;white-space:nowrap!important;}
.nsrm-topnav .topnav-group>a.active,.nsrm-topnav .topnav-group>a:hover{background:#1f5eff!important;color:#fff!important;}
.nsrm-topnav .topnav-menu{display:none;position:absolute;top:34px;left:0;min-width:220px;background:white;border:1px solid #d9e2ef;border-radius:12px;box-shadow:0 14px 40px rgba(15,23,42,.16);padding:8px;z-index:50;}
.nsrm-topnav .topnav-group:hover .topnav-menu{display:block;}
.nsrm-topnav .topnav-menu a{display:block;padding:9px 10px;border-radius:8px;text-decoration:none;color:#0f172a;font-size:12.2px;font-weight:750;}
.nsrm-topnav .topnav-menu a:hover{background:#eff6ff;color:#1f5eff;}
.tab-strip{display:flex;align-items:center;justify-content:space-between;gap:14px;height:34px;padding:0 18px;background:#f5f8fd;border-bottom:1px solid #e1e8f5;position:sticky;top:86px;z-index:6;overflow:hidden;}
.tab-strip-tabs{display:flex;align-items:flex-end;gap:5px;overflow-x:auto;flex:1;min-width:0;height:100%;scrollbar-width:thin;}
.tab-strip-tabs::-webkit-scrollbar{height:4px;}
.tab-strip-tab{display:inline-flex;align-items:center;gap:6px;height:27px;padding:0 8px 0 12px;border-radius:8px 8px 0 0;background:#eaf0fb;color:#4a5b7d;font-size:11.8px;font-weight:800;white-space:nowrap;border:1px solid #dbe4f6;border-bottom:none;flex-shrink:0;}
.tab-strip-tab a{color:inherit;text-decoration:none;}
.tab-strip-tab.active{background:#fff;color:#1f5eff;border-color:#c7d7f8;box-shadow:0 2px 0 #fff,0 -2px 6px rgba(31,94,255,.08);position:relative;top:1px;}
.tab-strip-tab .tab-close{opacity:.5;font-weight:900;padding:0 3px;border-radius:5px;cursor:pointer;line-height:1;}
.tab-strip-tab .tab-close:hover{opacity:1;background:#dbe4f7;color:#c1121f;}
.tab-strip-crumb{display:flex;align-items:center;gap:6px;font-size:11px;color:#8595b3;font-weight:700;white-space:nowrap;flex-shrink:0;}
.tab-strip-crumb a{color:#8595b3;text-decoration:none;}
.tab-strip-crumb a:hover{color:#1f5eff;}
.tab-strip-crumb .crumb-sep{opacity:.5;}
.tab-strip-crumb .crumb-current{color:#1f2937;font-weight:900;}
@media(max-width:820px){.tab-strip-crumb{display:none;}}
body.topnav-mode .content{padding:20px 24px!important;}
body.topnav-mode .kpi-grid,body.topnav-mode .compact-kpi-grid{grid-template-columns:repeat(4,minmax(180px,1fr))!important;}
body.topnav-mode .kpi-card{min-height:86px!important;}
body.topnav-mode .dashboard-grid{grid-template-columns:1fr 1fr!important;}
body.topnav-mode .settings-grid,body.topnav-mode .settings-grid.three-col,body.topnav-mode .settings-grid.four-col,body.topnav-mode .form-grid{grid-template-columns:repeat(4,minmax(180px,1fr))!important;}
body.topnav-mode .form-field.wide{grid-column:span 2!important;}
body.topnav-mode .subtab-card,body.topnav-mode .card{padding:14px!important;}
body.topnav-mode .subtabs{display:flex;gap:6px;flex-wrap:wrap;}
/* remove noisy/overlapped icons */
.kpi-icon{font-size:14px!important;box-shadow:none!important;filter:none!important;}
.login-module-line{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0 6px;}
.login-module-line span{height:34px;border:1px solid #dbe4ef;border-radius:9px;background:#f8fafc;display:flex;align-items:center;justify-content:center;font-size:11.5px;font-weight:900;color:#334155;}
.login-quick-links{display:none!important;}
.brand-hero-title{background:linear-gradient(90deg,#fff,#cfe1ff);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 12px 35px rgba(0,0,0,.32);letter-spacing:.06em;}
.brand-hero-sub{text-shadow:0 8px 24px rgba(0,0,0,.35);}
.login-language-center{justify-content:center!important;}
.login-card-nsrm{box-shadow:0 28px 70px rgba(3,12,32,.34)!important;}
.login-logo-nsrm{box-shadow:0 8px 22px rgba(31,94,255,.26)!important;}
@media(max-width:1200px){body.topnav-mode .module-strip.nsrm-topnav{overflow:auto!important}.nsrm-topnav .topnav-menu{position:fixed;top:86px;left:20px}.top-right .last{display:none}body.topnav-mode .kpi-grid,body.topnav-mode .compact-kpi-grid{grid-template-columns:repeat(2,minmax(180px,1fr))!important}body.topnav-mode .settings-grid,body.topnav-mode .settings-grid.three-col,body.topnav-mode .settings-grid.four-col,body.topnav-mode .form-grid{grid-template-columns:repeat(2,minmax(180px,1fr))!important}}
@media(max-width:720px){body.topnav-mode .dashboard-grid{grid-template-columns:1fr!important}.login-module-line{grid-template-columns:repeat(2,1fr)}body.topnav-mode .top-title small{display:none}.top-right .dropbtn{max-width:130px;overflow:hidden;text-overflow:ellipsis}.nsrm-topnav .topnav-group>a{padding:0 10px!important}}

/* ===== V23 Clean Login: remove clutter, move DB settings to Administration ===== */
.login-card-nsrm{width:390px;max-width:390px;padding:28px 30px!important;overflow:visible!important;}
.login-language-select{display:grid;grid-template-columns:88px 1fr;align-items:center;gap:10px;margin:12px 0 18px;padding:9px 10px;border:1px solid #dbe4ef;background:#f8fafc;border-radius:12px;}
.login-language-select label{font-size:12px!important;text-transform:none!important;color:#334155!important;font-weight:900!important;white-space:nowrap;}
.login-language-select select{height:34px!important;border:1px solid #dbe4ef;border-radius:10px;background:#fff;padding:0 10px;font-size:12.5px;font-weight:850;color:#0f172a;}
.login-row-1{display:grid;grid-template-columns:1fr;gap:10px;}
.login-form-nsrm{gap:10px!important;}
.login-form-nsrm input,.login-form-nsrm select{height:40px!important;}
.login-foot-clean{border-top:1px solid #e5edf7;padding-top:12px;margin-top:16px!important;font-size:11px!important;gap:14px;}
.login-foot-clean span:last-child{text-align:right;color:#64748b;line-height:1.25;max-width:220px;}
.hero-badges-soft{opacity:.95;margin-top:18px!important;}
.hero-badges-soft span{padding:7px 12px!important;box-shadow:0 8px 20px rgba(0,0,0,.14);}
.login-card-head h3{letter-spacing:-.03em;}
.login-module-line,.db-box-v90,.db-box-nsrm,.db-toggle-v90{display:none!important;}
.server-setup-page .form-card{padding:0;box-shadow:none;border:0;background:transparent;}
.inline-checks{grid-template-columns:repeat(4,minmax(180px,1fr))!important;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:12px;}
.muted{margin:4px 0 0;color:#64748b;font-size:12.5px;font-weight:700;}
@media(max-width:1100px){.login-card-nsrm{width:min(430px,92vw);max-width:430px}.login-language-select{grid-template-columns:1fr}.login-foot-clean span:last-child{text-align:left;max-width:none}.inline-checks{grid-template-columns:1fr 1fr!important}}
@media(max-width:720px){.inline-checks{grid-template-columns:1fr!important}.login-card-nsrm{padding:22px!important}}


/* ===== V24 Final Balance: full functions + clean N-SRM inspired UI ===== */
body.topnav-mode .top{height:56px!important;padding:0 20px!important;background:#fff!important}
body.topnav-mode .module-strip.nsrm-topnav{top:56px!important;height:42px!important;padding:0 20px!important;gap:10px!important}
.nsrm-topnav .topnav-group>a{height:30px!important;font-size:12.3px!important;padding:0 14px!important}
.nsrm-topnav .topnav-menu.mega{min-width:260px;display:none;grid-template-columns:1fr 1fr;gap:3px}
.nsrm-topnav .topnav-group:hover .topnav-menu.mega{display:grid}
.nsrm-topnav .topnav-menu a{font-size:12.2px!important;line-height:1.25}
body.topnav-mode .content{padding:22px 26px!important}
.page-head{margin-bottom:12px}.page-head h1{font-size:25px!important}.page-head p{font-size:13px!important}
body.topnav-mode .kpi-grid, body.topnav-mode .compact-kpi-grid{grid-template-columns:repeat(4,minmax(220px,1fr))!important;gap:12px!important}
body.topnav-mode .kpi-card{min-height:82px!important;grid-template-columns:42px 1fr!important;grid-template-rows:auto auto auto!important;padding:12px 14px!important;align-items:center!important}
body.topnav-mode .kpi-card .kpi-icon{width:32px!important;height:32px!important;grid-row:1/4;background:#f1f5f9!important}
body.topnav-mode .kpi-card p{font-size:12.5px!important;line-height:1.15!important;white-space:normal!important;margin:0!important}
body.topnav-mode .kpi-card h2{font-size:25px!important;margin:0!important;line-height:1.05!important}
body.topnav-mode .kpi-card small{font-size:10.8px!important;line-height:1.15!important;white-space:normal!important;max-width:110px!important}
.dashboard-grid{grid-template-columns:1fr 1fr!important}.dash-card,.card,.subtab-card{border-radius:14px!important;box-shadow:0 6px 18px rgba(15,23,42,.055)!important}.dash-card{min-height:220px!important}.bar-list{min-height:170px}.donut-wrap{min-height:220px}
.settings-grid.two-col{grid-template-columns:repeat(2,minmax(180px,1fr))!important}.settings-grid.three-col{grid-template-columns:repeat(3,minmax(180px,1fr))!important}.settings-grid.four-col,.form-grid{grid-template-columns:repeat(4,minmax(170px,1fr))!important}.form-field.wide{grid-column:span 2!important}.form-card{padding:14px!important}.form-field label{display:block;height:auto!important;min-height:17px!important;line-height:1.2!important}.form-field input,.form-field select,.form-field textarea{width:100%!important}.inline-form{align-items:center!important;gap:8px!important}.toolbar.clean-toolbar,.toolbar{align-items:center!important;gap:7px!important;flex-wrap:wrap!important}.card-head-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.table-scroll{max-width:100%}
/* login balance */
.login-bg-media,.login-bg-image{position:fixed;inset:0;width:100%;height:100%;object-fit:cover;background-size:cover;background-position:center;z-index:0}.login-bg-image{filter:brightness(.72)}.itdsv-v24-login .login-bg-overlay{background:linear-gradient(110deg,rgba(2,10,27,.88),rgba(10,31,68,.78),rgba(22,66,123,.60))!important}.login-v24-wrap{grid-template-columns:minmax(420px,640px) 450px!important;gap:90px!important;align-items:center!important;justify-content:center!important;min-height:100vh;padding:42px!important}.login-hero-v24{text-align:left!important}.login-hero-v24 .brand-hero-title{font-size:74px!important;line-height:.92!important}.login-hero-v24 .brand-hero-sub{font-size:33px!important}.login-card-v24{width:450px!important;max-width:450px!important;padding:30px 32px!important;border-radius:22px!important}.login-card-head-v24{margin-bottom:16px}.login-form-v24{display:flex!important;flex-direction:column!important;gap:11px!important}.login-field-full input{height:42px!important}.login-pair-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:end}.login-pair-row select{height:42px!important}.login-main-btn{height:44px!important;border-radius:13px!important}.login-options{margin:2px 0 4px!important}.login-foot-clean{display:flex;justify-content:space-between;align-items:center}.hero-badges span{font-weight:900}.login-row-2{grid-template-columns:1fr 1fr;gap:8px;margin-top:0!important}
.server-setup-page .grid2{grid-template-columns:1.15fr .85fr}.server-setup-page table small{color:#64748b}.brand-admin-v24 .inline-form{margin-bottom:10px}.logo-preview img{max-width:180px;max-height:90px;object-fit:contain;border:1px solid #e2e8f0;border-radius:12px;padding:8px;background:#fff}.account-admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.account-admin-grid .form-card{margin:0}.brand-preview-grid{display:grid;grid-template-columns:120px minmax(0,1fr);gap:16px;align-items:start;margin-top:10px}.login-surface-preview{position:relative;min-height:190px;border-radius:18px;overflow:hidden;border:1px solid #d8e3f6;background:#0b2b62;box-shadow:0 10px 24px rgba(15,23,42,.08)}.login-surface-media,.login-surface-media img,.login-surface-media video{position:absolute;inset:0;width:100%;height:100%}.login-surface-media img,.login-surface-media video{object-fit:cover}.login-surface-fallback{position:absolute;inset:0;background:linear-gradient(125deg,#081f4f,#163d7c,#306db0)}.login-surface-overlay{position:absolute;inset:0;background:linear-gradient(120deg,rgba(3,10,27,.84),rgba(8,28,67,.62),rgba(20,78,151,.26))}.login-surface-card{position:absolute;left:18px;right:18px;bottom:18px;z-index:1;display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);box-shadow:0 8px 20px rgba(15,23,42,.12)}.login-surface-card b,.login-surface-card small{display:block}.login-surface-card small{color:#475569}.login-surface-logo{width:54px;height:54px;border-radius:16px;background:#ffffff;color:#0b2a6b;display:flex;align-items:center;justify-content:center;font-weight:900;box-shadow:0 8px 16px rgba(15,23,42,.08);overflow:hidden}.login-surface-logo img{width:100%;height:100%;object-fit:contain;padding:8px}
@media(max-width:1280px){body.topnav-mode .kpi-grid,body.topnav-mode .compact-kpi-grid{grid-template-columns:repeat(2,minmax(220px,1fr))!important}.login-v24-wrap{grid-template-columns:1fr!important;gap:30px!important}.login-hero-v24{text-align:center!important}.hero-line{margin:16px auto}.server-setup-page .grid2,.grid2,.account-admin-grid,.brand-preview-grid{grid-template-columns:1fr}.nsrm-topnav .topnav-menu.mega{grid-template-columns:1fr}}
@media(max-width:720px){.login-card-v24{width:min(440px,92vw)!important;padding:24px!important}.login-pair-row{grid-template-columns:1fr}.login-hero-v24 .brand-hero-title{font-size:48px!important}.login-hero-v24 .brand-hero-sub{font-size:25px!important}.settings-grid.two-col,.settings-grid.three-col,.settings-grid.four-col,.form-grid{grid-template-columns:1fr!important}.form-field.wide{grid-column:span 1!important}.grid4{grid-template-columns:1fr}.dashboard-grid{grid-template-columns:1fr!important}}

/* ===== ITDSV v25: N-SRM balance hotfix ===== */
:root{--nsrm:#08245a;--nsrm2:#061a44;--nsrm-blue:#175cff;--soft-bg:#f5f7fb;--soft-line:#d6e0ee;}
body{background:#eef3fa!important;}
body.topnav-mode .main{margin-left:0!important;width:100%!important;}
body.topnav-mode .top{
  height:48px!important;background:linear-gradient(90deg,var(--nsrm2),var(--nsrm))!important;color:#fff!important;
  border-bottom:0!important;padding:0 18px!important;box-shadow:0 2px 10px rgba(0,0,0,.16)!important;
  display:grid!important;grid-template-columns:240px 1fr auto!important;gap:16px!important;align-items:center!important;
}
body.topnav-mode .hamburger{display:none!important;}
body.topnav-mode .top-title{justify-self:start!important;text-align:left!important;line-height:1.08!important;color:#fff!important;min-width:235px!important;}
body.topnav-mode .top-title b{color:#fff!important;font-size:14px!important;letter-spacing:.04em!important;font-weight:950!important;}
body.topnav-mode .top-title small{color:#dbeafe!important;font-size:10.5px!important;font-weight:760!important;margin-top:2px!important;}
body.topnav-mode .top-right{justify-self:end!important;margin-left:auto!important;gap:8px!important;}
body.topnav-mode .last{background:rgba(255,255,255,.12)!important;color:#eaf2ff!important;border-color:rgba(255,255,255,.25)!important;height:30px!important;display:flex;align-items:center!important;}
body.topnav-mode .icon,body.topnav-mode .dropbtn{height:30px!important;background:#fff!important;color:#08245a!important;border:0!important;box-shadow:0 1px 5px rgba(0,0,0,.18)!important;}
body.topnav-mode .icon{width:30px!important;}
body.topnav-mode .module-strip.nsrm-topnav{
  top:48px!important;height:39px!important;background:#fff!important;border-bottom:1px solid #cfd9e7!important;
  padding:0 18px!important;box-shadow:0 1px 4px rgba(15,23,42,.08)!important;gap:4px!important;
}
.nsrm-topnav .topnav-group>a{border-radius:0!important;height:39px!important;padding:0 15px!important;font-size:12px!important;color:#0a1f44!important;border-bottom:3px solid transparent!important;background:transparent!important;}
.nsrm-topnav .topnav-group>a.active,.nsrm-topnav .topnav-group>a:hover{background:#f1f6ff!important;color:#175cff!important;border-bottom-color:#175cff!important;}
.nsrm-topnav .topnav-menu{top:39px!important;left:0!important;border-radius:8px!important;box-shadow:0 18px 42px rgba(15,23,42,.20)!important;min-width:240px!important;padding:8px!important;}
.nsrm-topnav .topnav-menu.mega{min-width:410px!important;grid-template-columns:1fr 1fr!important;}
.nsrm-topnav .topnav-menu a{padding:9px 11px!important;font-size:12.2px!important;font-weight:800!important;}
.content{padding:18px 20px!important;}
.page-head{margin-bottom:12px!important}.page-head h1{font-size:24px!important}.page-head p{font-size:12.8px!important}
body.topnav-mode .kpi-grid, body.topnav-mode .compact-kpi-grid{grid-template-columns:repeat(4,minmax(230px,1fr))!important;gap:12px!important;}
body.topnav-mode .kpi-card{min-height:78px!important;padding:11px 13px!important;display:grid!important;grid-template-columns:38px 1fr!important;grid-template-areas:'icon label' 'icon value' 'icon sub'!important;column-gap:10px!important;align-items:center!important;}
body.topnav-mode .kpi-card .kpi-icon{grid-area:icon;width:30px!important;height:30px!important;font-size:14px!important;}
body.topnav-mode .kpi-card p{grid-area:label;font-size:12px!important;line-height:1.15!important;margin:0!important;color:#334155!important;font-weight:900!important;white-space:nowrap!important;}
body.topnav-mode .kpi-card h2{grid-area:value;font-size:24px!important;line-height:1!important;margin:0!important;}
body.topnav-mode .kpi-card small{grid-area:sub;font-size:10.8px!important;max-width:none!important;white-space:nowrap!important;line-height:1.1!important;color:#64748b!important;}
.dash-card,.card,.subtab-card{border-radius:13px!important;padding:14px!important;}
.dashboard-grid{gap:12px!important}.donut-chart{width:120px!important;height:120px!important}.donut-chart:before{inset:18px!important}.donut-wrap{min-height:166px!important}.trend-bars{height:118px!important}.bar-list{min-height:100px!important}.bar-row{grid-template-columns:132px 1fr 34px!important;}
table th,table td{font-size:11.8px!important;padding:8px 9px!important;}
/* Login/Register refinements */
.login-v24-wrap{grid-template-columns:minmax(430px,640px) 420px!important;gap:80px!important;}
.login-card-v24{width:420px!important;max-width:420px!important;padding:28px 30px!important;}
.login-card-head-v24{display:flex!important;align-items:center!important;gap:13px!important;margin-bottom:14px!important;}
.login-card-head-v24 h3{font-size:28px!important;line-height:1!important;margin:0!important;}
.login-card-head-v24 p{font-size:12px!important;margin:3px 0 0!important;color:#64748b!important;font-weight:760!important;}
.login-form-v24{gap:10px!important}.login-form-v24 label{font-size:11px!important;letter-spacing:.02em!important;color:#64748b!important;font-weight:950!important;}
.login-pair-row{grid-template-columns:1fr 1fr!important;gap:10px!important;}
.login-form-v24 input,.login-form-v24 select{height:39px!important;border-radius:8px!important;font-size:12.4px!important;}
.login-options{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;}.login-actions-inline{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.login-actions-inline a{text-decoration:none}
.login-main-btn{height:43px!important;border-radius:999px!important;}
.login-foot-clean{font-size:10.8px!important;}
.brand-hero-title{letter-spacing:.08em!important;text-shadow:0 10px 28px rgba(0,0,0,.34)!important}.brand-hero-sub{text-shadow:0 8px 20px rgba(0,0,0,.30)!important}
.register-wrap{grid-template-columns:minmax(430px,640px) 460px!important}.register-card{width:460px!important;max-width:460px!important}.register-form-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:11px 12px!important}.wide-register{grid-column:1/-1!important}.compact-language{margin:10px 0 15px!important}.register-clean .login-foot-clean a{color:#175cff!important;font-weight:900!important;text-decoration:none!important}.reset-wrap{grid-template-columns:minmax(430px,640px) 480px!important}.reset-card{width:480px!important;max-width:480px!important}.reset-form-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:11px 12px!important}.wide-reset{grid-column:1/-1!important}.reset-clean .login-foot-clean a{color:#175cff!important;font-weight:900!important;text-decoration:none!important}.reset-hint{margin-bottom:14px}.reset-language{margin:10px 0 15px!important}
@media(max-width:1280px){body.topnav-mode .kpi-grid, body.topnav-mode .compact-kpi-grid{grid-template-columns:repeat(2,minmax(220px,1fr))!important}.login-v24-wrap,.register-wrap,.reset-wrap{grid-template-columns:1fr!important;gap:30px!important}.login-hero-v24{text-align:center!important}.nsrm-topnav .topnav-menu.mega{grid-template-columns:1fr!important;min-width:260px!important}}
@media(max-width:820px){body.topnav-mode .top{grid-template-columns:1fr auto!important}.top-title small{display:none!important}.last{display:none!important}.module-strip{overflow:auto!important}.register-form-grid,.reset-form-grid,.login-pair-row{grid-template-columns:1fr!important}.login-card-v24,.register-card,.reset-card{width:min(430px,92vw)!important;max-width:92vw!important}.content{padding:14px!important}}


/* ===== V26 Samsung N-SRM refined + ERP-style brand ===== */
:root{--erp-navy:#06235a;--erp-navy2:#031633;--erp-blue:#1d63ff;--erp-sky:#38bdf8;--erp-bg:#f3f6fb;}
body.topnav-mode{background:var(--erp-bg)!important;color:#0b1b36!important;font-family:Tahoma,"Noto Sans","Noto Sans KR","Segoe UI",Arial,sans-serif!important;}
body.topnav-mode .top{height:50px!important;background:#07265e!important;border-bottom:1px solid rgba(255,255,255,.18)!important;box-shadow:0 2px 8px rgba(3,22,51,.22)!important;padding:0 18px!important;}
body.topnav-mode .top-title{text-align:left!important;min-width:310px!important;}
body.topnav-mode .top-title b{font-size:15px!important;letter-spacing:.06em!important;text-transform:uppercase!important;color:#fff!important;}
body.topnav-mode .top-title small{font-size:10.5px!important;color:#cbdcff!important;}
body.topnav-mode .top-right{margin-left:auto!important;gap:7px!important;}
.server-quick{height:30px;display:inline-flex;align-items:center;text-decoration:none;border:1px solid rgba(255,255,255,.20);background:rgba(255,255,255,.10);color:#eff6ff;border-radius:999px;padding:0 10px;font-size:11.5px;font-weight:900;white-space:nowrap;}
.server-quick:hover{background:rgba(255,255,255,.18)}
body.topnav-mode .module-strip.nsrm-topnav{height:38px!important;top:50px!important;background:#fff!important;padding:0 18px!important;border-bottom:1px solid #cbd7e8!important;box-shadow:0 2px 8px rgba(15,23,42,.06)!important;}
.nsrm-topnav .topnav-group>a{height:38px!important;font-size:12px!important;font-weight:900!important;padding:0 16px!important;color:#061a44!important;}
.nsrm-topnav .topnav-group>a.active,.nsrm-topnav .topnav-group>a:hover{background:#eef5ff!important;color:#0b5cff!important;border-bottom-color:#0b5cff!important;}
.nsrm-topnav .topnav-menu{top:38px!important;border:1px solid #d8e2f1!important;box-shadow:0 18px 44px rgba(4,20,48,.18)!important;border-radius:8px!important;}
.content{background:var(--erp-bg)!important;}
.page-head h1{font-size:24px!important;letter-spacing:-.03em!important;color:#071936!important;}
.kpi-grid{gap:10px!important}.kpi-card{min-height:74px!important;border-radius:12px!important;box-shadow:0 7px 18px rgba(15,35,80,.08)!important;border-color:#d8e2f1!important;}
body.topnav-mode .kpi-card{min-height:74px!important;}
.kpi-card h2{font-size:25px!important}.kpi-card p{font-size:12px!important}.kpi-card small{font-size:10.5px!important}
.dash-card,.card,.subtab-card{border-radius:12px!important;border-color:#d8e2f1!important;box-shadow:0 7px 20px rgba(15,35,80,.07)!important;}
.card-title h3,.card h3{font-size:15px!important;color:#061a44!important;}

.command-center{display:grid;grid-template-columns:minmax(260px,1.2fr) repeat(4,minmax(150px,1fr));gap:10px;margin:0 0 12px;}
.cc-brand{border-radius:14px;background:linear-gradient(135deg,#06235a,#0b56c4);color:#fff;padding:14px 16px;box-shadow:0 10px 22px rgba(6,35,90,.18);min-height:86px;}
.cc-brand .cc-kicker{display:block;font-size:10px;letter-spacing:.18em;font-weight:950;color:#bfdbfe;margin-bottom:7px}.cc-brand b{display:block;font-size:18px;line-height:1.05}.cc-brand small{display:block;margin-top:5px;color:#dbeafe;font-size:11px;font-weight:800}
.cc-tile{display:flex;align-items:center;gap:10px;text-decoration:none;background:#fff;border:1px solid #d8e2f1;border-radius:14px;padding:12px;box-shadow:0 7px 20px rgba(15,35,80,.07);color:#061a44;min-height:86px;}
.cc-tile span{width:34px;height:34px;border-radius:10px;background:#eef5ff;display:flex;align-items:center;justify-content:center;font-size:17px}.cc-tile p{margin:0;color:#475569;font-size:11.5px;font-weight:900}.cc-tile b{display:block;margin-top:2px;font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}.cc-tile small{font-size:10.5px;color:#64748b;font-weight:750}.cc-tile:hover{border-color:#93c5fd;transform:translateY(-1px)}
.exec-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px}.exec-card{background:#fff;border:1px solid #d8e2f1;border-radius:12px;padding:13px;box-shadow:0 7px 20px rgba(15,35,80,.07)}.exec-card h3{margin:0 0 8px;color:#061a44;font-size:14px}.exec-line{display:flex;justify-content:space-between;border-top:1px dashed #e2e8f0;padding:7px 0;font-size:12px;font-weight:800}.exec-line:first-of-type{border-top:0}.exec-line span{color:#64748b}.exec-line b{color:#0f172a}

.login-nsrm{font-family:Tahoma,"Noto Sans","Noto Sans KR","Segoe UI",Arial,sans-serif!important}.itdsv-v24-login .login-bg-overlay{background:linear-gradient(105deg,rgba(2,10,27,.90),rgba(5,28,70,.84),rgba(14,60,126,.68))!important}.login-v24-wrap{grid-template-columns:minmax(480px,660px) 430px!important;gap:94px!important}.login-card-v24{border-radius:18px!important;background:rgba(255,255,255,.94)!important;border:1px solid rgba(255,255,255,.62)!important;box-shadow:0 24px 60px rgba(0,0,0,.28)!important}.login-card-head-v24 h3{font-size:27px!important;color:#071936!important}.login-pair-row{grid-template-columns:1fr 1fr!important}.login-options{margin:4px 0 6px!important}.login-options label{display:flex;align-items:center;gap:6px}.login-main-btn{font-weight:950!important;letter-spacing:.01em!important;box-shadow:0 10px 22px rgba(29,99,255,.25)!important}
.erp-wordmark{color:#fff;text-shadow:0 12px 32px rgba(0,0,0,.35)}.erp-main{display:block;font-size:76px;line-height:.92;font-weight:950;letter-spacing:.10em}.erp-divider{display:block;width:156px;height:2px;background:linear-gradient(90deg,#fff,rgba(255,255,255,.15));margin:17px 0 12px}.erp-enterprise{display:block;line-height:1}.erp-enterprise b{font-size:34px;font-weight:850;color:#e5edf9;letter-spacing:-.035em}.erp-enterprise strong{font-size:60px;line-height:.8;color:#fff;font-weight:950;margin:0 2px;text-shadow:0 0 22px rgba(56,189,248,.28)}.erp-platform{display:block;margin-top:6px;font-size:20px;font-weight:850;color:#cbd5e1;letter-spacing:.02em}.hero-caption{font-size:15px!important;font-weight:850!important;color:#e2e8f0!important}.hero-badges-soft span{background:rgba(255,255,255,.12)!important;border-color:rgba(255,255,255,.28)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.20)}
.login-form-v24 input,.login-form-v24 select{border:1px solid #cbd7e8!important;background:#fff!important}.login-form-v24 input:focus,.login-form-v24 select:focus{border-color:#1d63ff!important;box-shadow:0 0 0 3px rgba(29,99,255,.13)!important;outline:0!important}.login-foot-clean{border-top:1px solid #e2e8f0;padding-top:12px;margin-top:12px;color:#64748b}.login-reset-card{margin-top:14px;padding:14px 15px;border:1px solid #dbe7f7;border-radius:16px;background:linear-gradient(180deg,#f9fbff 0%,#f2f7ff 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.95)}.login-reset-head{margin-bottom:8px}.login-reset-head h4{margin:0 0 3px;font-size:15px;color:#071936}.login-reset-head p{margin:0;font-size:11.5px;color:#64748b;line-height:1.4}.login-reset-form{gap:8px!important}.login-reset-form .login-main-btn{margin-top:2px}

@media(max-width:1280px){.command-center{grid-template-columns:1fr 1fr}.cc-brand{grid-column:1/-1}.exec-grid{grid-template-columns:1fr}.login-v24-wrap{grid-template-columns:1fr!important;gap:28px!important}.login-hero-v24{text-align:center!important}.erp-divider{margin-left:auto;margin-right:auto}}
@media(max-width:760px){.command-center{grid-template-columns:1fr}.login-pair-row{grid-template-columns:1fr!important}.erp-main{font-size:48px}.erp-enterprise strong{font-size:44px}.erp-enterprise b{font-size:28px}.top-right .server-quick{display:none}.exec-grid{grid-template-columns:1fr}}

/* ===== V27 Executive dashboard + clean ITDSV brand ===== */
body.topnav-mode .top-right .server-quick{display:none!important;}
body.topnav-mode .content{padding-top:18px!important;}
.page-head{margin-bottom:12px!important;}
.page-head h1{font-size:26px!important;}
.page-head p{font-size:12.5px!important;color:#516071!important;}

.itdsv-brandmark{color:#fff;text-shadow:0 16px 34px rgba(0,0,0,.34);}
.brand-hero-logo{width:92px;height:92px;border-radius:24px;background:rgba(255,255,255,.10);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;padding:14px;margin:0 0 18px;box-shadow:0 18px 40px rgba(0,0,0,.20),inset 0 1px 0 rgba(255,255,255,.18);}
.brand-hero-logo img{width:100%;height:100%;object-fit:contain;display:block;filter:drop-shadow(0 10px 20px rgba(0,0,0,.24));}
.brand-main{font-size:78px;line-height:.92;font-weight:950;letter-spacing:.12em;color:#f8fbff;}
.brand-main span{color:#7db7ff;text-shadow:0 0 24px rgba(58,154,255,.55);}
.brand-line{width:168px;height:2px;background:linear-gradient(90deg,#fff,rgba(255,255,255,.10));margin:17px 0 13px;}
.brand-sub{font-weight:900;letter-spacing:-.045em;line-height:1.02;}
.brand-sub strong{font-size:36px;color:#f7fbff;}
.brand-sub span{font-size:27px;color:#b9c8db;margin-left:6px;}
.login-hero-v24 .hero-caption,.login-hero-v24 p{font-size:15px!important;font-weight:850!important;color:#e2e8f0!important;}
.register-clean .itdsv-brandmark{margin:4px 0 10px;}

.erp-wordmark,.erp-main,.erp-enterprise,.erp-platform{display:none!important;}

.executive-command{display:grid;grid-template-columns:1.35fr repeat(4,1fr);gap:12px;margin:0 0 12px;}
.executive-brand-card{min-height:118px;border-radius:14px;padding:18px 20px;background:linear-gradient(135deg,#07265e 0%,#0d4aa9 58%,#1d63ff 100%);color:#fff;box-shadow:0 14px 30px rgba(7,38,94,.22);position:relative;overflow:hidden;}
.executive-brand-card:after{content:"";position:absolute;right:-42px;top:-42px;width:150px;height:150px;border-radius:50%;background:rgba(255,255,255,.10);}
.executive-brand-card .brand-kicker{display:block;font-size:10px;letter-spacing:.22em;font-weight:950;color:#cfe2ff;margin-bottom:9px;}
.executive-brand-card b{display:block;font-size:22px;line-height:1.05;font-weight:950;letter-spacing:-.02em;}
.executive-brand-card small{display:block;margin-top:6px;font-size:12px;font-weight:800;color:#e3eeff;}
.brand-mini-actions{display:flex;gap:7px;margin-top:13px;position:relative;z-index:1;}
.brand-mini-actions a{height:25px;padding:0 10px;border-radius:999px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.12);color:#fff;text-decoration:none;display:inline-flex;align-items:center;font-size:11px;font-weight:900;}
.executive-card{min-height:118px;background:#fff;border:1px solid #d7e2f2;border-radius:14px;box-shadow:0 9px 23px rgba(15,35,80,.08);padding:14px;display:grid;grid-template-columns:38px 1fr;grid-template-rows:auto auto auto;gap:2px 10px;text-decoration:none;color:#071936;position:relative;overflow:hidden;}
.executive-card:before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:#1d63ff;}
.executive-card span{grid-row:1/4;width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:#eef5ff;font-size:18px;align-self:start;}
.executive-card em{font-style:normal;color:#516071;font-size:11.5px;font-weight:950;text-transform:uppercase;letter-spacing:.02em;}
.executive-card strong{font-size:28px;font-weight:950;line-height:1;color:#071936;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px;}
.executive-card small{font-size:11px;color:#64748b;font-weight:750;line-height:1.25;}
.executive-card.blue:before{background:#1d63ff}.executive-card.red:before{background:#ef4444}.executive-card.green:before{background:#22c55e}.executive-card.orange:before{background:#f59e0b}
.executive-card:hover{transform:translateY(-1px);border-color:#93c5fd;}

.dashboard-lens-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:12px;}
.lens-card{background:#fff;border:1px solid #d7e2f2;border-radius:13px;box-shadow:0 8px 22px rgba(15,35,80,.07);padding:14px;min-height:118px;}
.lens-card h3{font-size:14px;font-weight:950;margin:0 0 8px;color:#071936;}
.lens-row{display:flex;align-items:center;justify-content:space-between;border-top:1px dashed #e3ebf5;padding:7px 0;font-size:12px;}
.lens-row:first-of-type{border-top:0;}
.lens-row b{font-weight:950;color:#071936;max-width:52%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.lens-row span{color:#64748b;font-weight:800;text-align:right;}
.lens-link{display:inline-flex;margin-top:8px;height:28px;align-items:center;border-radius:999px;padding:0 10px;background:#eef5ff;color:#0b5cff;text-decoration:none;font-weight:900;font-size:12px;}

.dashboard-kpis{margin-top:2px!important;}
body.topnav-mode .dashboard-kpis{grid-template-columns:repeat(4,minmax(190px,1fr))!important;}
body.topnav-mode .dashboard-kpis .kpi-card{min-height:68px!important;padding:10px 12px!important;border-radius:12px!important;}
body.topnav-mode .dashboard-kpis .kpi-card h2{font-size:22px!important;}
body.topnav-mode .dashboard-kpis .kpi-card p{font-size:11.5px!important;}
body.topnav-mode .dashboard-kpis .kpi-card small{font-size:10px!important;}
body.topnav-mode .dashboard-kpis .kpi-icon{width:28px!important;height:28px!important;}

@media(max-width:1400px){.executive-command{grid-template-columns:1fr 1fr}.executive-brand-card{grid-column:1/-1}.dashboard-lens-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.executive-command,.dashboard-lens-grid{grid-template-columns:1fr}.brand-hero-logo{margin:0 auto 18px;width:78px;height:78px;padding:12px}.brand-main{font-size:54px}.brand-sub strong{font-size:31px}.brand-sub span{font-size:23px}.brand-line{margin-left:auto;margin-right:auto}.itdsv-brandmark{text-align:center}}

/* ===== V28 Dashboard upgrade + easier top dropdowns ===== */
.top{position:relative;z-index:2000!important;overflow:visible!important}.top-right{overflow:visible!important}.dropdown{position:relative!important;display:inline-flex!important;align-items:center!important;padding:8px 2px!important;margin:-8px 0!important}.dropbtn{height:36px!important;min-width:112px!important;padding:0 13px!important;border:1px solid #d9e4f2!important;background:#fff!important;border-radius:11px!important;box-shadow:0 5px 14px rgba(15,35,80,.06)!important;font-weight:900!important;color:#071936!important;cursor:pointer!important}.dropmenu{display:none;position:absolute!important;right:0!important;top:calc(100% - 2px)!important;min-width:210px!important;background:#fff!important;border:1px solid #d8e2f1!important;border-radius:14px!important;box-shadow:0 20px 50px rgba(4,20,48,.22)!important;padding:8px!important;z-index:5000!important}.dropmenu:before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}.dropdown:hover .dropmenu,.dropdown.open .dropmenu{display:block!important}.dropmenu a{display:flex!important;align-items:center!important;min-height:36px!important;padding:8px 12px!important;border-radius:10px!important;text-decoration:none!important;color:#0f172a!important;font-size:12.5px!important;font-weight:850!important;white-space:nowrap!important}.dropmenu a:hover{background:#eef5ff!important;color:#0b5cff!important}.lang-menu{min-width:190px!important}.userbtn{min-width:170px!important;max-width:220px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.ds-dashboard{font-family:Tahoma,"Segoe UI","Noto Sans",Arial,sans-serif;color:#071936}.ds-page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.ds-page-head h1{margin:0;font-size:28px;font-weight:950;letter-spacing:-.035em}.ds-page-head p{margin:3px 0 0;color:#64748b;font-size:13px;font-weight:750}.ds-head-actions{display:flex;gap:10px}.ds-btn{height:36px;padding:0 15px;border-radius:10px;border:1px solid #dbe6f4;background:#fff;text-decoration:none;color:#071936;font-weight:900;display:inline-flex;align-items:center}.ds-btn.primary{background:#082b74;color:#fff;border-color:#082b74}.ds-kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px}.ds-kpi{min-height:116px;border-radius:16px;padding:18px;text-decoration:none;color:#071936;border:1px solid #dbe6f4;background:linear-gradient(135deg,#fff,#f6f9ff);box-shadow:0 10px 25px rgba(15,35,80,.07);display:flex;gap:14px;align-items:flex-start}.ds-kpi span{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#eef5ff;font-size:23px;box-shadow:inset 0 0 0 1px rgba(29,99,255,.18)}.ds-kpi small{display:block;color:#334155;font-size:12px;font-weight:950}.ds-kpi b{display:block;margin:5px 0 4px;font-size:27px;line-height:1;font-weight:950}.ds-kpi em{display:block;font-style:normal;color:#64748b;font-size:12px;font-weight:800}.ds-kpi i{display:block;height:6px;margin-top:13px;border-radius:999px;background:#dbe5f3;position:relative;overflow:hidden}.ds-kpi i:after{content:"";display:block;width:var(--w);height:100%;border-radius:999px;background:#1d4ed8}.ds-kpi.green{background:linear-gradient(135deg,#f8fffd,#eefbf6)}.ds-kpi.green i:after{background:#059669}.ds-kpi.red{background:linear-gradient(135deg,#fffafa,#fff1f2)}.ds-kpi.red i:after{background:#ef4444}.ds-kpi.orange{background:linear-gradient(135deg,#fffaf2,#fff7ed)}.ds-kpi.orange i:after{background:#f97316}.ds-main-grid{display:grid;grid-template-columns:1.18fr 1.1fr 1.22fr;gap:14px;margin-bottom:14px}.ds-bottom-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr 1.05fr;gap:14px}.ds-card{background:#fff;border:1px solid #dbe6f4;border-radius:16px;box-shadow:0 10px 25px rgba(15,35,80,.065);padding:16px;min-width:0}.ds-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.ds-card-head h3{margin:0;font-size:15px;font-weight:950;color:#071936}.ds-card-head a,.ds-card-head span{color:#0b4bd3;text-decoration:none;font-size:12px;font-weight:900}.ds-card-head select{height:30px;border:1px solid #dbe6f4;border-radius:9px;background:#fff;padding:0 10px;font-weight:850}.ds-map{height:240px;border-radius:14px;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden}.ds-map img{width:100%;height:100%;object-fit:contain;display:block;opacity:1}.ds-map-upload{display:flex;align-items:center;gap:10px}.ds-upload-btn{height:28px;padding:0 10px;border-radius:9px;background:#0b3a82;color:#fff;font-size:11.5px;font-weight:950;display:inline-flex;align-items:center;cursor:pointer;white-space:nowrap}.ds-upload-btn:hover{background:#082b74}.ds-legend{display:flex;gap:18px;align-items:center;margin-top:11px;color:#64748b;font-size:11.5px;font-weight:850}.ds-legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}.blue-dot{background:#2563eb}.green-dot{background:#16a34a}.orange-dot{background:#f59e0b}.ds-line-chart{height:250px;color:#0b2ca3;border-bottom:1px solid #e5edf7;border-left:1px solid #e5edf7;padding:10px}.ds-line-chart svg{width:100%;height:100%}.ds-months{display:flex;justify-content:space-between;margin-top:8px;color:#64748b;font-size:11px;font-weight:800}.ds-machine-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.ds-machine{position:relative;min-height:66px;background:#f3fbfa;border:1px solid #e1f2ee;border-radius:12px;padding:12px;text-decoration:none;color:#071936}.ds-machine b{display:block;font-size:12px;font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ds-machine small{display:block;margin-top:7px;color:#64748b;font-size:11px;font-weight:800}.ds-machine i{position:absolute;right:10px;bottom:10px;width:9px;height:9px;border-radius:50%;background:#10b981}.ds-machine.off{background:#fff1f2;border-color:#ffe0e3}.ds-machine.off i{background:#ef4444}.ds-table{width:100%;border-collapse:collapse}.ds-table th,.ds-table td{padding:10px 8px!important;border-bottom:1px solid #edf2f8;font-size:12px}.ds-table th{text-align:left;color:#64748b;background:#f8fafc!important}.mini-progress{height:7px;background:#e5edf7;border-radius:99px;overflow:hidden}.mini-progress i{display:block;height:100%;background:#0b5cff;border-radius:99px}.ds-search{height:30px;min-width:130px;border:1px solid #e2eaf5;background:#f8fafc;border-radius:9px;display:flex;align-items:center;padding:0 10px;color:#94a3b8;font-size:12px;font-weight:850}.ds-eff-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.ds-eff-grid div{min-height:88px;border:1px solid #e5edf7;border-radius:14px;background:#fbfdff;text-align:center;padding:12px 6px}.ds-eff-grid span{display:block;font-size:22px}.ds-eff-grid b{display:block;margin:7px 0 2px;font-size:18px;font-weight:950}.ds-eff-grid small{color:#64748b;font-size:11px;font-weight:850}#dsServerHealthCard .ds-eff-grid-5{grid-template-columns:repeat(5,1fr)!important;gap:5px!important}#dsServerHealthCard .ds-eff-grid-5 div{min-height:52px!important;padding:6px 2px!important}#dsServerHealthCard .ds-eff-grid-5 span{font-size:11px!important}#dsServerHealthCard .ds-eff-grid-5 b{display:inline!important;font-size:10.5px!important;margin:2px 4px 0 0!important}#dsServerHealthCard .ds-eff-grid-5 small{font-size:10.5px!important}.ds-bars{height:145px;display:flex;align-items:end;gap:8px;padding:8px 4px 0;border-bottom:1px solid #e5edf7}.ds-bars i{flex:1;min-width:6px;border-radius:6px 6px 0 0;background:linear-gradient(180deg,#60a5fa,#1d4ed8)}.ds-alerts{display:flex;flex-direction:column;gap:9px}.ds-alerts div{border:1px solid #e5edf7;border-radius:12px;padding:10px;background:#fbfdff}.ds-alerts b{display:block;font-size:12px}.ds-alerts small{display:block;margin-top:4px;color:#64748b;font-size:11px;font-weight:800}
@media(max-width:1450px){.ds-kpi-row{grid-template-columns:repeat(2,1fr)}.ds-main-grid,.ds-bottom-grid{grid-template-columns:1fr 1fr}.ds-map-card{grid-column:1/-1}}@media(max-width:900px){.ds-page-head{align-items:flex-start;flex-direction:column;gap:10px}.ds-kpi-row,.ds-main-grid,.ds-bottom-grid{grid-template-columns:1fr}.ds-machine-grid{grid-template-columns:1fr 1fr}.ds-eff-grid{grid-template-columns:1fr 1fr}.ds-eff-grid-5{grid-template-columns:repeat(3,1fr)}}

.ds-search-input{height:30px;min-width:150px;border:1px solid #e2eaf5;background:#f8fafc;border-radius:9px;padding:0 10px;color:#071936;font-size:12px;font-weight:850}
.ds-search-input::placeholder{color:#94a3b8}

/* =========================================================
   OPTION 1 - SAMSUNG STYLE DASHBOARD FINAL
   Clean navy/white enterprise theme + full Global Operations map
   ========================================================= */
:root{
  --itdsv-navy:#082b74;
  --itdsv-navy-2:#0b3a82;
  --itdsv-blue:#1d63ff;
  --itdsv-line:#d9e6f5;
  --itdsv-bg:#eef3fa;
  --itdsv-card:#ffffff;
  --itdsv-text:#071936;
  --itdsv-muted:#64748b;
}
body{background:var(--itdsv-bg)!important;}
.ds-dashboard{color:var(--itdsv-text)!important;}
.ds-page-head h1{color:#06183a!important;}
.ds-page-head p{color:#52657d!important;}
.ds-btn{border-color:#cfe0f3!important;box-shadow:0 3px 10px rgba(15,35,80,.05)!important;}
.ds-btn.primary{background:linear-gradient(135deg,#083078,#0b4bd3)!important;border-color:#083078!important;color:#fff!important;}

/* KPI cards - Samsung soft enterprise palette */
.ds-kpi{min-height:104px!important;border:1px solid var(--itdsv-line)!important;border-radius:16px!important;background:linear-gradient(135deg,#ffffff 0%,#f5f8ff 100%)!important;box-shadow:0 8px 22px rgba(15,35,80,.06)!important;transition:.18s ease!important;}
.ds-kpi:hover,.ds-card:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(15,35,80,.09)!important;}
.ds-kpi.green{background:linear-gradient(135deg,#ffffff 0%,#ecfff7 100%)!important;}
.ds-kpi.red{background:linear-gradient(135deg,#ffffff 0%,#fff2f3 100%)!important;}
.ds-kpi.orange{background:linear-gradient(135deg,#ffffff 0%,#fff7e8 100%)!important;}
.ds-kpi span{background:#eef5ff!important;border:1px solid #cfe0f3!important;box-shadow:none!important;}
.ds-kpi b{color:#06183a!important;}
.ds-kpi em,.ds-kpi small{color:#42556d!important;}
.ds-kpi i{background:#dfe8f5!important;}
.ds-kpi i:after{background:linear-gradient(90deg,#0b4bd3,#1d63ff)!important;}
.ds-kpi.green i:after{background:linear-gradient(90deg,#059669,#22c55e)!important;}
.ds-kpi.red i:after{background:linear-gradient(90deg,#ef4444,#fb7185)!important;}
.ds-kpi.orange i:after{background:linear-gradient(90deg,#f97316,#f59e0b)!important;}

/* Cards */
.ds-card{background:var(--itdsv-card)!important;border:1px solid var(--itdsv-line)!important;border-radius:18px!important;box-shadow:0 8px 22px rgba(15,35,80,.055)!important;transition:.18s ease!important;}
.ds-card-head{margin-bottom:10px!important;}
.ds-card-head h3{font-size:15px!important;color:#06183a!important;font-weight:950!important;}
.ds-card-head a,.ds-card-head span{color:#0b4bd3!important;font-weight:950!important;}
.ds-card-head select{border-color:#cfe0f3!important;color:#06183a!important;}

/* Global Operations - full map frame */
.ds-map-card{padding:16px 18px 13px!important;overflow:hidden!important;}
.ds-map-card .ds-card-head{align-items:center!important;margin-bottom:6px!important;}
.ds-map-upload{gap:12px!important;}
.ds-upload-btn{height:30px!important;padding:0 12px!important;border-radius:10px!important;background:linear-gradient(135deg,#082b74,#0b4bd3)!important;color:#fff!important;box-shadow:0 5px 14px rgba(11,75,211,.18)!important;}
.ds-map{height:236px!important;border-radius:15px!important;background:linear-gradient(180deg,#f7fbff 0%,#eef6ff 100%)!important;border:1px solid #e3edf9!important;position:relative!important;display:flex!important;align-items:center!important;justify-content:center!important;overflow:hidden!important;}
.ds-map:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 42%,rgba(29,99,255,.08),transparent 58%);pointer-events:none;}
.ds-map img{position:relative;z-index:1;width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important;display:block!important;transform:scale(1.18)!important;transform-origin:center center!important;filter:saturate(1.08) contrast(1.03)!important;}
.ds-legend{height:24px!important;margin-top:8px!important;color:#334155!important;font-size:11.5px!important;font-weight:900!important;}
.ds-legend i{width:8px!important;height:8px!important;box-shadow:0 0 0 3px rgba(29,99,255,.08)!important;}
.blue-dot{background:#2563eb!important}.green-dot{background:#10b981!important}.orange-dot{background:#f59e0b!important}

/* Chart - navy line + soft fill */
.ds-line-chart{height:250px!important;color:#0b3a82!important;border-color:#dfe8f5!important;background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%)!important;border-radius:12px!important;}
.ds-line-chart path:first-child{stroke:#0b3a82!important;}
.ds-months{color:#52657d!important;}
.ds-bars{height:150px!important;border-color:#dfe8f5!important;background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%)!important;border-radius:12px!important;padding:10px 10px 0!important;}
.ds-bars i{background:linear-gradient(180deg,#60a5fa 0%,#1d4ed8 100%)!important;border-radius:7px 7px 0 0!important;box-shadow:0 3px 8px rgba(29,78,216,.16)!important;}

/* Small panels */
.ds-machine,.ds-alerts div,.ds-eff-grid div{border-color:#dfe8f5!important;background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%)!important;}
.ds-machine{background:#f3fbfa!important;}
.ds-table th{background:#f6f9fd!important;color:#52657d!important;}
.ds-table td{border-bottom-color:#e8eef7!important;}
.mini-progress{background:#e4edf8!important;}
.mini-progress i{background:linear-gradient(90deg,#0b4bd3,#1d63ff)!important;}
.ds-search{background:#f8fbff!important;border-color:#dfe8f5!important;}

/* Keep layout close to option 1 */
.ds-main-grid{grid-template-columns:1.18fr 1.1fr 1.22fr!important;gap:16px!important;}
.ds-bottom-grid{grid-template-columns:1.25fr 1fr 1fr 1.05fr!important;gap:16px!important;}
.ds-kpi-row{gap:16px!important;margin-bottom:16px!important;}
@media(max-width:1450px){.ds-kpi-row{grid-template-columns:repeat(2,1fr)!important}.ds-main-grid,.ds-bottom-grid{grid-template-columns:1fr 1fr!important}.ds-map-card{grid-column:1/-1!important}.ds-map{height:260px!important}}
@media(max-width:900px){.ds-kpi-row,.ds-main-grid,.ds-bottom-grid{grid-template-columns:1fr!important}.ds-map{height:230px!important}.ds-map img{transform:scale(1.08)!important}}

/* =========================================================
   OPTION 1 - SAMSUNG STYLE EXACT REWORK
   Applied after all previous CSS to make dashboard match selected mockup.
   ========================================================= */
body{
  background:#eef3fa!important;
}
.ds-dashboard{
  max-width:none!important;
  padding:0!important;
}
.ds-page-head{
  margin:0 0 14px!important;
}
.ds-page-head h1{
  font-size:27px!important;
  line-height:1.1!important;
  font-weight:950!important;
  letter-spacing:-.03em!important;
}
.ds-page-head p{
  font-size:12.5px!important;
  color:#52657d!important;
}
.ds-kpi-row{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:14px!important;
  margin-bottom:14px!important;
}
.ds-kpi{
  min-height:90px!important;
  padding:15px 17px!important;
  border-radius:14px!important;
  box-shadow:0 8px 20px rgba(15,35,80,.055)!important;
}
.ds-kpi span{
  width:42px!important;
  height:42px!important;
  font-size:20px!important;
}
.ds-kpi b{
  font-size:25px!important;
}
.ds-kpi small,.ds-kpi em{
  font-size:11.5px!important;
}
.ds-main-grid{
  display:grid!important;
  grid-template-columns:1.08fr 1fr 1.12fr!important;
  gap:14px!important;
  margin-bottom:14px!important;
}
.ds-bottom-grid{
  display:grid!important;
  grid-template-columns:1.18fr .92fr 1fr .95fr!important;
  gap:14px!important;
}
.ds-card{
  border-radius:15px!important;
  border:1px solid #d9e6f5!important;
  background:#fff!important;
  box-shadow:0 7px 18px rgba(15,35,80,.055)!important;
  padding:14px!important;
}
.ds-card-head{
  margin-bottom:8px!important;
}
.ds-card-head h3{
  font-size:13.5px!important;
  font-weight:950!important;
  color:#06183a!important;
}
.ds-card-head a,.ds-card-head span{
  font-size:11.5px!important;
  color:#0b4bd3!important;
}
.ds-map-card{
  padding:14px 14px 10px!important;
}
.ds-map-upload{
  gap:8px!important;
}
.ds-upload-btn{
  height:26px!important;
  padding:0 10px!important;
  font-size:10.8px!important;
  border-radius:8px!important;
  background:#0b3a82!important;
}
.ds-map{
  height:150px!important;
  width:100%!important;
  border:0!important;
  border-radius:10px!important;
  background:#f7fbff!important;
  overflow:hidden!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.ds-map:before{display:none!important;}
.ds-map img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center!important;
  transform:none!important;
  filter:none!important;
  display:block!important;
}
.ds-legend{
  margin-top:8px!important;
  height:auto!important;
  gap:16px!important;
  font-size:10.8px!important;
  color:#334155!important;
  font-weight:850!important;
}
.ds-legend i{
  width:7px!important;
  height:7px!important;
  margin-right:5px!important;
  box-shadow:none!important;
}
.ds-line-chart{
  height:168px!important;
  padding:8px!important;
  border-radius:10px!important;
  color:#0b3a82!important;
}
.ds-months{
  font-size:10.5px!important;
  margin-top:6px!important;
}
.ds-machine-grid{
  grid-template-columns:1fr!important;
  gap:8px!important;
}
.ds-machine{
  min-height:52px!important;
  padding:10px!important;
  border-radius:10px!important;
}
.ds-table th,.ds-table td{
  padding:7.5px 7px!important;
  font-size:11.3px!important;
}
.ds-eff-grid{
  grid-template-columns:repeat(4,1fr)!important;
  gap:8px!important;
}
.ds-eff-grid div{
  min-height:74px!important;
  padding:9px 5px!important;
  border-radius:12px!important;
}
.ds-eff-grid span{font-size:19px!important;}
.ds-eff-grid b{font-size:16px!important;margin:5px 0 2px!important;}
.ds-eff-grid small{font-size:10.5px!important;}
.ds-bars{
  height:110px!important;
  gap:7px!important;
  padding:8px 8px 0!important;
}
.ds-alerts{gap:7px!important;}
.ds-alerts div{
  padding:8px 10px!important;
  border-radius:10px!important;
}
.ds-alerts b{font-size:11.3px!important;}
.ds-alerts small{font-size:10.3px!important;}
.ds-search{
  height:27px!important;
  font-size:11px!important;
  min-width:112px!important;
}
@media(max-width:1450px){
  .ds-kpi-row{grid-template-columns:repeat(2,1fr)!important;}
  .ds-main-grid,.ds-bottom-grid{grid-template-columns:1fr 1fr!important;}
  .ds-map-card{grid-column:auto!important;}
  .ds-map{height:165px!important;}
}
@media(max-width:900px){
  .ds-kpi-row,.ds-main-grid,.ds-bottom-grid{grid-template-columns:1fr!important;}
  .ds-map{height:170px!important;}
}

/* =========================================================
   FINAL PATCH - GLOBAL OPERATIONS BIG SQUARE CORNER CARD
   Purpose: make Global Operations a large square block in one corner,
   with uploaded map always shown fully, not cropped or distorted.
   ========================================================= */

.ds-main-grid{
  display:grid!important;
  grid-template-columns:minmax(420px,1.32fr) minmax(280px,1fr) minmax(300px,1fr)!important;
  gap:16px!important;
  align-items:stretch!important;
}

.ds-map-card{
  aspect-ratio:1 / 1!important;
  min-height:420px!important;
  height:auto!important;
  display:flex!important;
  flex-direction:column!important;
  padding:16px!important;
  border-radius:18px!important;
  overflow:hidden!important;
}

.ds-map-card .ds-card-head{
  flex:0 0 auto!important;
  margin-bottom:10px!important;
}

.ds-map{
  flex:1 1 auto!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  border-radius:14px!important;
  background:linear-gradient(180deg,#f7fbff 0%,#eef6ff 100%)!important;
  border:1px solid #e3edf9!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
  padding:10px!important;
}

.ds-map:before{
  display:block!important;
  content:""!important;
  position:absolute!important;
  inset:0!important;
  background:radial-gradient(circle at 50% 42%,rgba(29,99,255,.08),transparent 58%)!important;
  pointer-events:none!important;
}

.ds-map img{
  position:relative!important;
  z-index:1!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
  transform:none!important;
  filter:saturate(1.05) contrast(1.02)!important;
  display:block!important;
}

.ds-legend{
  flex:0 0 auto!important;
  justify-content:center!important;
  margin-top:10px!important;
  padding-top:8px!important;
  border-top:1px solid #edf2f7!important;
  gap:18px!important;
  font-size:11.5px!important;
}

.ds-chart-card,
.ds-machine-card{
  min-height:420px!important;
}

.ds-chart-card .ds-line-chart{
  height:calc(100% - 70px)!important;
  min-height:290px!important;
}

.ds-machine-card .ds-machine-grid{
  grid-template-columns:1fr!important;
  gap:10px!important;
}

.ds-machine-card .ds-machine{
  min-height:56px!important;
}

@media(max-width:1450px){
  .ds-main-grid{
    grid-template-columns:1fr 1fr!important;
  }
  .ds-map-card{
    aspect-ratio:1 / 1!important;
    min-height:390px!important;
  }
}

@media(max-width:900px){
  .ds-main-grid{
    grid-template-columns:1fr!important;
  }
  .ds-map-card{
    aspect-ratio:auto!important;
    min-height:360px!important;
  }
  .ds-map{
    min-height:285px!important;
  }
}

/* =========================================================
   FINAL BALANCED PATCH - 2026-06-11
   Reduce oversized square map, keep uploaded image full/clear,
   and balance all dashboard blocks like Option 1.
   Uploaded map size tested: 1439 x 1062 px.
   ========================================================= */

/* Smaller top menu/tab text */
.nav a,
.topnav a,
.menu a,
.navbar a,
.top-menu a,
.top .tabs a{
  font-size:12px!important;
  font-weight:850!important;
  padding-left:13px!important;
  padding-right:13px!important;
}

/* Compact header */
.ds-page-head{margin-bottom:12px!important;}
.ds-page-head h1{font-size:25px!important;}
.ds-page-head p{font-size:12px!important;}

/* KPI row: not too tall */
.ds-kpi-row{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:14px!important;
  margin-bottom:14px!important;
}
.ds-kpi{
  min-height:88px!important;
  padding:14px 16px!important;
}
.ds-kpi span{width:40px!important;height:40px!important;font-size:19px!important;}
.ds-kpi b{font-size:24px!important;}
.ds-kpi small,.ds-kpi em{font-size:11.5px!important;}

/* Main dashboard: balanced 3 columns, not one huge square */
.ds-main-grid{
  display:grid!important;
  grid-template-columns:1.18fr 1.08fr 1.18fr!important;
  gap:16px!important;
  align-items:stretch!important;
  margin-bottom:16px!important;
}

/* Global Operations: wide card, moderate height */
.ds-map-card{
  aspect-ratio:auto!important;
  min-height:unset!important;
  height:320px!important;
  padding:16px!important;
  display:flex!important;
  flex-direction:column!important;
  border-radius:18px!important;
  overflow:hidden!important;
}
.ds-map-card .ds-card-head{
  flex:0 0 auto!important;
  height:32px!important;
  min-height:32px!important;
  margin-bottom:8px!important;
}
.ds-map-card .ds-card-head h3{font-size:14px!important;}
.ds-map-upload{display:flex!important;align-items:center!important;gap:10px!important;}
.ds-upload-btn{
  height:27px!important;
  padding:0 11px!important;
  font-size:11px!important;
  border-radius:8px!important;
}
.ds-map-upload a{font-size:11.5px!important;}

/* Upload image frame: fit the user's 1439x1062 map without distortion */
.ds-map{
  flex:1 1 auto!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  padding:8px!important;
  border-radius:14px!important;
  background:linear-gradient(180deg,#f7fbff 0%,#eef6ff 100%)!important;
  border:1px solid #e3edf9!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
  position:relative!important;
}
.ds-map:before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  background:radial-gradient(circle at 50% 42%,rgba(29,99,255,.07),transparent 60%)!important;
  pointer-events:none!important;
}
.ds-map img{
  position:relative!important;
  z-index:1!important;
  max-width:100%!important;
  max-height:100%!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
  transform:none!important;
  display:block!important;
  filter:saturate(1.04) contrast(1.02)!important;
}
.ds-legend{
  flex:0 0 auto!important;
  height:24px!important;
  margin-top:8px!important;
  padding-top:6px!important;
  border-top:1px solid #edf2f7!important;
  display:flex!important;
  justify-content:flex-start!important;
  gap:16px!important;
  font-size:11px!important;
  white-space:nowrap!important;
}

/* Other top-row cards: same height as Global Operations */
.ds-chart-card,
.ds-machine-card{
  height:320px!important;
  min-height:unset!important;
  padding:16px!important;
}
.ds-chart-card .ds-line-chart{
  height:230px!important;
  min-height:unset!important;
}
.ds-machine-card .ds-machine-grid{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:10px!important;
  max-height:238px!important;
  overflow:auto!important;
}
.ds-machine-card .ds-machine{
  min-height:48px!important;
  padding:12px!important;
}

/* Bottom grid: compact and aligned */
.ds-bottom-grid{
  grid-template-columns:1.25fr 1fr 1fr 1.05fr!important;
  gap:16px!important;
  align-items:stretch!important;
}
.ds-bottom-grid .ds-card{
  min-height:250px!important;
}
.ds-eff-grid div{min-height:86px!important;}
.ds-bars{height:160px!important;}
.ds-alerts div{padding:9px 10px!important;}
.ds-table th,.ds-table td{font-size:11.5px!important;padding:9px 10px!important;}

@media(max-width:1450px){
  .ds-kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .ds-main-grid{grid-template-columns:1fr 1fr!important;}
  .ds-map-card{height:330px!important;}
  .ds-chart-card,.ds-machine-card{height:330px!important;}
  .ds-bottom-grid{grid-template-columns:1fr 1fr!important;}
}
@media(max-width:900px){
  .ds-kpi-row,.ds-main-grid,.ds-bottom-grid{grid-template-columns:1fr!important;}
  .ds-map-card,.ds-chart-card,.ds-machine-card{height:auto!important;min-height:300px!important;}
  .ds-map{min-height:230px!important;}
}

/* =========================================================
   FINAL USER PATCH - BALANCED GLOBAL OPERATIONS + QUICK MENUS
   - Uploaded image frame follows 1439x1062 ratio, medium size
   - Remaining blank space is used for shortcut menu cards
   - Other dashboard cards stay aligned and compact
   ========================================================= */

body.topnav-mode .nav a,
.nav a,
.topnav a{
  font-size:12px!important;
  padding-left:12px!important;
  padding-right:12px!important;
  white-space:nowrap!important;
}

.ds-dashboard{
  padding-bottom:18px!important;
}

.ds-page-head{
  margin-bottom:12px!important;
}

.ds-kpi-row{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:14px!important;
  margin-bottom:14px!important;
}

.ds-kpi{
  min-height:92px!important;
  padding:15px 17px!important;
}

.ds-main-grid{
  display:grid!important;
  grid-template-columns:1.08fr 1fr 1.05fr!important;
  gap:16px!important;
  align-items:stretch!important;
  margin-bottom:16px!important;
}

.ds-map-card{
  aspect-ratio:auto!important;
  min-height:360px!important;
  height:auto!important;
  padding:16px!important;
  display:flex!important;
  flex-direction:column!important;
}

.ds-map-card .ds-card-head{
  flex:0 0 auto!important;
  margin-bottom:10px!important;
}

.ds-map-layout{
  flex:1 1 auto!important;
  min-height:0!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 156px!important;
  gap:12px!important;
  align-items:stretch!important;
}

.ds-map{
  width:100%!important;
  height:auto!important;
  min-height:255px!important;
  max-height:330px!important;
  aspect-ratio:1439 / 1062!important;
  padding:8px!important;
  border-radius:14px!important;
  background:#ffffff!important;
  border:1px solid #dfe8f5!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
}

.ds-map img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
  transform:none!important;
  display:block!important;
}

.ds-map-side-menu{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:9px!important;
}

.ds-map-side-menu a{
  text-decoration:none!important;
  color:#071936!important;
  border:1px solid #dfe8f5!important;
  border-radius:13px!important;
  background:linear-gradient(180deg,#ffffff,#f8fbff)!important;
  padding:10px!important;
  min-height:62px!important;
  display:grid!important;
  grid-template-columns:30px 1fr!important;
  column-gap:8px!important;
  align-items:center!important;
  box-shadow:0 4px 12px rgba(15,35,80,.045)!important;
}

.ds-map-side-menu a:hover{
  transform:translateY(-1px)!important;
  box-shadow:0 8px 20px rgba(15,35,80,.09)!important;
  border-color:#bcd3f3!important;
}

.ds-map-side-menu span{
  grid-row:1 / 3!important;
  width:30px!important;
  height:30px!important;
  border-radius:10px!important;
  background:#eef5ff!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:15px!important;
}

.ds-map-side-menu b{
  font-size:12px!important;
  font-weight:950!important;
  line-height:1.1!important;
}

.ds-map-side-menu small{
  font-size:10px!important;
  color:#64748b!important;
  font-weight:800!important;
  line-height:1.25!important;
}

.ds-legend{
  flex:0 0 auto!important;
  height:auto!important;
  margin-top:10px!important;
  padding-top:8px!important;
  border-top:1px solid #edf2f7!important;
  justify-content:flex-start!important;
  gap:16px!important;
  font-size:11px!important;
}

.ds-chart-card,
.ds-machine-card{
  min-height:360px!important;
}

.ds-chart-card .ds-line-chart{
  height:255px!important;
  min-height:255px!important;
}

.ds-machine-card .ds-machine-grid{
  grid-template-columns:1fr!important;
  gap:9px!important;
}

.ds-machine-card .ds-machine{
  min-height:52px!important;
}

.ds-bottom-grid{
  grid-template-columns:1.16fr .92fr 1fr 1.02fr!important;
  gap:16px!important;
  align-items:stretch!important;
}

.ds-bottom-grid .ds-card{
  min-height:235px!important;
}

.ds-eff-grid{
  gap:10px!important;
}

.ds-bars{
  height:145px!important;
}

.ds-alerts div{
  padding:8px 10px!important;
}

@media(max-width:1500px){
  .ds-main-grid{grid-template-columns:1fr 1fr!important;}
  .ds-machine-card{grid-column:2!important;}
  .ds-map-card{grid-column:1!important;}
  .ds-map-layout{grid-template-columns:minmax(0,1fr) 145px!important;}
  .ds-bottom-grid{grid-template-columns:1fr 1fr!important;}
}

@media(max-width:1100px){
  .ds-main-grid,.ds-bottom-grid,.ds-kpi-row{grid-template-columns:1fr!important;}
  .ds-map-layout{grid-template-columns:1fr!important;}
  .ds-map-side-menu{grid-template-columns:repeat(2,1fr)!important;}
  .ds-map{max-height:none!important;}
}

/* =========================================================
   FINAL PATCH - SYMMETRIC DASHBOARD + DONUT STATISTICS
   - Global Operations uses uploaded image + circular statistics
   - Empty space is filled by donut charts and compact quick menu
   - Cards are aligned symmetrically
   ========================================================= */

.ds-dashboard{
  padding:0 2px 18px!important;
}

.ds-kpi-row{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:14px!important;
  margin-bottom:14px!important;
}

.ds-kpi{
  min-height:92px!important;
  padding:14px 16px!important;
}

.ds-kpi span{
  width:42px!important;
  height:42px!important;
  font-size:19px!important;
}

.ds-kpi b{
  font-size:24px!important;
}

.ds-main-grid{
  display:grid!important;
  grid-template-columns:1.12fr 1.02fr 1.12fr!important;
  gap:16px!important;
  align-items:stretch!important;
  margin-bottom:16px!important;
}

.ds-card{
  border-radius:17px!important;
}

.ds-map-card,
.ds-chart-card,
.ds-machine-card{
  height:355px!important;
  min-height:355px!important;
  padding:15px!important;
  display:flex!important;
  flex-direction:column!important;
}

.ds-card-head{
  min-height:30px!important;
  margin-bottom:9px!important;
}

.ds-card-head h3{
  font-size:14px!important;
}

.ds-map-upload{
  display:flex!important;
  align-items:center!important;
  gap:9px!important;
}

.ds-upload-btn{
  height:27px!important;
  padding:0 10px!important;
  font-size:11px!important;
  border-radius:8px!important;
}

.ds-map-upload a{
  font-size:11.5px!important;
}

.ds-map-layout{
  flex:1 1 auto!important;
  min-height:0!important;
  display:grid!important;
  grid-template-columns:minmax(0,1.45fr) minmax(190px,.72fr)!important;
  gap:12px!important;
  align-items:stretch!important;
}

.ds-map{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-height:none!important;
  aspect-ratio:auto!important;
  padding:8px!important;
  border-radius:14px!important;
  background:#ffffff!important;
  border:1px solid #dfe8f5!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
}

.ds-map img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
  transform:none!important;
}

.ds-map-stats-panel{
  display:grid!important;
  grid-template-rows:auto auto 1fr!important;
  gap:10px!important;
  min-width:0!important;
}

.ds-donut-row{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:10px!important;
}

.ds-donut-card{
  text-decoration:none!important;
  color:#071936!important;
  border:1px solid #dfe8f5!important;
  background:linear-gradient(180deg,#ffffff,#f8fbff)!important;
  border-radius:14px!important;
  padding:10px 8px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:124px!important;
  box-shadow:0 4px 12px rgba(15,35,80,.045)!important;
}

.ds-donut-card:hover,
.ds-mini-stat-grid a:hover,
.ds-quick-grid a:hover{
  transform:translateY(-1px)!important;
  box-shadow:0 9px 20px rgba(15,35,80,.09)!important;
  border-color:#bcd3f3!important;
}

.ds-donut{
  --p:0;
  --c:#2563eb;
  width:64px!important;
  height:64px!important;
  border-radius:50%!important;
  background:conic-gradient(var(--c) calc(var(--p) * 1%), #e6eef8 0)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  position:relative!important;
}

.ds-donut::after{
  content:"";
  position:absolute;
  width:44px;
  height:44px;
  border-radius:50%;
  background:#fff;
  box-shadow:inset 0 0 0 1px #edf2f7;
}

.ds-donut span{
  position:relative!important;
  z-index:1!important;
  font-size:13px!important;
  font-weight:950!important;
  color:#06183a!important;
}

.ds-donut-card b{
  margin-top:7px!important;
  font-size:12px!important;
  font-weight:950!important;
}

.ds-donut-card small{
  margin-top:2px!important;
  font-size:10.5px!important;
  color:#64748b!important;
  font-weight:800!important;
  text-align:center!important;
}

.ds-mini-stat-grid{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:10px!important;
}

.ds-mini-stat-grid a{
  text-decoration:none!important;
  color:#071936!important;
  border:1px solid #dfe8f5!important;
  background:#ffffff!important;
  border-radius:13px!important;
  padding:9px!important;
  min-height:72px!important;
  display:grid!important;
  grid-template-columns:28px 1fr!important;
  column-gap:8px!important;
  align-items:center!important;
}

.ds-mini-stat-grid span{
  grid-row:1 / 3!important;
  width:28px!important;
  height:28px!important;
  border-radius:10px!important;
  background:#eef5ff!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:14px!important;
}

.ds-mini-stat-grid b{
  font-size:18px!important;
  font-weight:950!important;
  line-height:1!important;
}

.ds-mini-stat-grid small{
  font-size:10.5px!important;
  color:#64748b!important;
  font-weight:800!important;
}

.ds-quick-grid{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:8px!important;
  align-content:end!important;
}

.ds-quick-grid a{
  height:32px!important;
  border-radius:10px!important;
  border:1px solid #dfe8f5!important;
  background:linear-gradient(180deg,#ffffff,#f8fbff)!important;
  color:#0b4bd3!important;
  text-decoration:none!important;
  font-size:11.5px!important;
  font-weight:950!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}

.ds-legend{
  height:24px!important;
  margin-top:8px!important;
  padding-top:7px!important;
  border-top:1px solid #edf2f7!important;
  justify-content:flex-start!important;
  gap:15px!important;
  font-size:10.8px!important;
  white-space:nowrap!important;
}

.ds-chart-card .ds-line-chart{
  flex:1 1 auto!important;
  height:auto!important;
  min-height:0!important;
}

.ds-months{
  flex:0 0 auto!important;
  margin-top:7px!important;
}

.ds-machine-card .ds-machine-grid{
  flex:1 1 auto!important;
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:8px!important;
  max-height:none!important;
  overflow:auto!important;
}

.ds-machine-card .ds-machine{
  min-height:47px!important;
  padding:10px!important;
}

.ds-bottom-grid{
  display:grid!important;
  grid-template-columns:1.16fr .96fr 1fr 1.06fr!important;
  gap:16px!important;
  align-items:stretch!important;
}

.ds-bottom-grid .ds-card{
  min-height:245px!important;
  height:245px!important;
  overflow:hidden!important;
}

.ds-eff-grid{
  gap:10px!important;
}

.ds-eff-grid div{
  min-height:78px!important;
}

.ds-bars{
  height:145px!important;
}

.ds-alerts div{
  padding:8px 10px!important;
}

@media(max-width:1500px){
  .ds-main-grid{grid-template-columns:1fr 1fr!important;}
  .ds-map-card{grid-column:1/-1!important;height:365px!important;}
  .ds-chart-card,.ds-machine-card{height:320px!important;min-height:320px!important;}
  .ds-bottom-grid{grid-template-columns:1fr 1fr!important;}
}

@media(max-width:1050px){
  .ds-kpi-row,.ds-main-grid,.ds-bottom-grid{grid-template-columns:1fr!important;}
  .ds-map-card,.ds-chart-card,.ds-machine-card{height:auto!important;min-height:320px!important;}
  .ds-map-layout{grid-template-columns:1fr!important;}
  .ds-map{min-height:260px!important;}
  .ds-map-stats-panel{grid-template-rows:auto auto auto!important;}
  .ds-bottom-grid .ds-card{height:auto!important;min-height:230px!important;}
}

/* =========================================================
   FINAL RESPONSIVE FIX - ZOOM SAFE OPTION 1
   - Fixes browser zoom overflow/overlap
   - Keeps Global Operations balanced with donut statistics
   - Makes dashboard rows symmetrical and prevents quick menu from spilling
   ========================================================= */
html, body{
  max-width:100%!important;
  overflow-x:hidden!important;
}
body.topnav-mode .content,
.content{
  max-width:100%!important;
  overflow-x:hidden!important;
}
body.topnav-mode .topnav a,
.module-strip a,
.nav a{
  font-size:clamp(10px,.72vw,12px)!important;
  padding-left:clamp(8px,.72vw,14px)!important;
  padding-right:clamp(8px,.72vw,14px)!important;
}
.ds-dashboard *{
  box-sizing:border-box!important;
}
.ds-page-head{
  flex-wrap:wrap!important;
  gap:10px!important;
}
.ds-kpi-row{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(210px,1fr))!important;
  gap:14px!important;
}
.ds-main-grid{
  display:grid!important;
  grid-template-columns:minmax(520px,1.08fr) minmax(420px,1fr) minmax(420px,1.05fr)!important;
  gap:16px!important;
  align-items:stretch!important;
}
.ds-map-card,
.ds-chart-card,
.ds-machine-card{
  height:420px!important;
  min-height:420px!important;
  overflow:hidden!important;
}
.ds-map-card{
  display:flex!important;
  flex-direction:column!important;
}
.ds-map-layout{
  flex:1 1 auto!important;
  min-height:0!important;
  display:grid!important;
  grid-template-columns:minmax(0,1.5fr) minmax(165px,.55fr)!important;
  gap:12px!important;
  align-items:stretch!important;
}
.ds-map{
  height:100%!important;
  min-height:0!important;
  max-height:none!important;
  aspect-ratio:auto!important;
  padding:8px!important;
  overflow:hidden!important;
}
.ds-map img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
}
.ds-map-stats-panel{
  min-height:0!important;
  overflow:hidden!important;
  display:grid!important;
  grid-template-rows:auto auto auto!important;
  align-content:center!important;
  gap:8px!important;
}
.ds-donut-row,
.ds-mini-stat-grid,
.ds-quick-grid{
  gap:8px!important;
}
.ds-donut-card{
  min-height:96px!important;
  padding:8px 6px!important;
}
.ds-donut{
  width:50px!important;
  height:50px!important;
}
.ds-donut::after{
  width:34px!important;
  height:34px!important;
}
.ds-donut span{
  font-size:11px!important;
}
.ds-donut-card b{
  font-size:11.3px!important;
  margin-top:5px!important;
}
.ds-donut-card small{
  font-size:9.5px!important;
  line-height:1.2!important;
}
.ds-mini-stat-grid a{
  min-height:56px!important;
  padding:7px!important;
}
.ds-mini-stat-grid span{
  width:24px!important;
  height:24px!important;
  font-size:12px!important;
}
.ds-mini-stat-grid b{
  font-size:15px!important;
}
.ds-mini-stat-grid small{
  font-size:9.5px!important;
}
.ds-quick-grid{
  grid-template-columns:1fr 1fr!important;
  align-content:start!important;
}
.ds-quick-grid a{
  height:27px!important;
  font-size:10.5px!important;
}
.ds-legend{
  height:22px!important;
  min-height:22px!important;
  overflow:hidden!important;
  margin-top:8px!important;
  font-size:10px!important;
  gap:10px!important;
}
.ds-chart-card .ds-line-chart{
  flex:1 1 auto!important;
  min-height:0!important;
  height:auto!important;
}
.ds-machine-card .ds-machine-grid{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow:auto!important;
}
.ds-bottom-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(260px,1fr))!important;
  gap:16px!important;
}
.ds-bottom-grid .ds-card{
  min-height:245px!important;
  height:245px!important;
}
@media(max-width:1700px){
  .ds-kpi-row{grid-template-columns:repeat(2,minmax(260px,1fr))!important;}
  .ds-main-grid{grid-template-columns:1fr 1fr!important;}
  .ds-map-card{grid-column:1 / -1!important;}
  .ds-bottom-grid{grid-template-columns:1fr 1fr!important;}
}
@media(max-width:1100px){
  .ds-kpi-row,.ds-main-grid,.ds-bottom-grid{grid-template-columns:1fr!important;}
  .ds-map-card,.ds-chart-card,.ds-machine-card{height:auto!important;min-height:360px!important;}
  .ds-map-layout{grid-template-columns:1fr!important;}
  .ds-map{min-height:280px!important;}
  .ds-map-stats-panel{grid-template-columns:1fr!important;}
  .ds-donut-row,.ds-mini-stat-grid,.ds-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}

/* ===== V29 Layout balance + compliance workspace ===== */
body.topnav-mode .top{
  display:grid!important;
  grid-template-columns:minmax(280px,1fr) auto!important;
  align-items:center!important;
  column-gap:18px!important;
}
body.topnav-mode .top-title{
  min-width:0!important;
  max-width:620px!important;
}
body.topnav-mode .top-right{
  min-width:0!important;
  flex-wrap:wrap!important;
  justify-content:flex-end!important;
}
body.topnav-mode .module-strip.nsrm-topnav{
  display:flex!important;
  justify-content:flex-start!important;
  padding:0 18px!important;
  overflow:visible!important;
}
.nsrm-topnav .topnav-group.open .topnav-menu{display:block!important;}
.nsrm-topnav .topnav-group.open .topnav-menu.mega{display:grid!important;}
.nsrm-topnav .topnav-group:hover .topnav-menu,
.nsrm-topnav .topnav-group:hover .topnav-menu.mega{
  display:none!important;
}
.nsrm-topnav .topnav-group.open:hover .topnav-menu{
  display:block!important;
}
.nsrm-topnav .topnav-group.open:hover .topnav-menu.mega{
  display:grid!important;
}
.nsrm-topnav .topnav-group.open > a{
  background:#eef5ff!important;
  color:#0b5cff!important;
  border-bottom-color:#0b5cff!important;
}
body.topnav-mode .content{
  max-width:1880px!important;
  margin:0 auto!important;
  padding:24px 28px 34px!important;
}
.ds-page-head{
  align-items:flex-end!important;
  gap:16px!important;
}
.ds-head-actions{
  flex-wrap:wrap!important;
  justify-content:flex-end!important;
}
.ds-main-grid{
  grid-template-columns:minmax(420px,1.08fr) minmax(420px,1fr) minmax(420px,1.08fr)!important;
  align-items:stretch!important;
}
.ds-bottom-grid{
  grid-template-columns:minmax(320px,1.18fr) minmax(280px,.92fr) minmax(320px,1fr) minmax(280px,.95fr)!important;
  align-items:stretch!important;
}
.ds-card,.card,.subtab-card{
  border-radius:18px!important;
}
.ds-card-head,.card-head-row{
  align-items:flex-start!important;
}
.table-wrap{
  overflow:auto!important;
}
.module-real-page .data-table td form,
.module-real-page .data-table td button{
  margin:2px 4px 2px 0!important;
}
.software-license-form .settings-grid{
  align-items:start!important;
}
.software-license-form textarea{
  min-height:76px!important;
  height:auto!important;
}
@media(max-width:1500px){
  .ds-main-grid,
  .ds-bottom-grid{
    grid-template-columns:1fr 1fr!important;
  }
  .ds-map-card{
    grid-column:1/-1!important;
  }
}
@media(max-width:980px){
  body.topnav-mode .top{
    grid-template-columns:1fr!important;
    row-gap:8px!important;
    height:auto!important;
    padding:12px 16px!important;
  }
  body.topnav-mode .top-right{
    justify-content:flex-start!important;
  }
  body.topnav-mode .module-strip.nsrm-topnav{
    justify-content:flex-start!important;
  }
  body.topnav-mode .content{
    padding:18px 16px 28px!important;
  }
  .ds-main-grid,
  .ds-bottom-grid{
    grid-template-columns:1fr!important;
  }
}

/* ===== V30 usability refinements ===== */
.action-cell{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
}
.action-cell form{
  margin:0;
}
.agent-pkg-actions{
  display:grid;
  grid-template-columns:repeat(3,minmax(84px,1fr));
  gap:6px;
  align-items:stretch;
}
.agent-pkg-actions .btn,
.agent-pkg-actions form{
  width:100%;
  box-sizing:border-box;
  display:flex;
}
.agent-pkg-actions form .btn{
  width:100%;
}
.agent-package-layout{display:grid;gap:14px;margin-top:14px}
.agent-package-workbench{padding:0!important;overflow:hidden}
.agent-workbench-heading{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:linear-gradient(180deg,#fff,#f7faff)}
.agent-workbench-heading h3,.agent-workbench-heading p{margin:0}
.agent-workbench-heading h3{margin-bottom:3px;color:#0f3d83}
.agent-package-workbench .agent-upload-form{border-top:1px solid #e2e8f0;border-bottom:1px solid #dbe5f2}
.agent-package-workbench .agent-release-grid{gap:0;margin:0}
.agent-package-workbench .agent-release-section{border:0;border-radius:0;box-shadow:none;background:#fff}
.agent-package-workbench .agent-release-section+.agent-release-section{border-left:1px solid #dbe5f2}
.agent-upload-panel{padding:0!important;overflow:hidden}
.agent-upload-panel>summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 16px;cursor:pointer;list-style:none;background:linear-gradient(180deg,#fff,#f7faff);color:#0f3d83;font-weight:900}
.agent-upload-panel>summary::-webkit-details-marker{display:none}
.agent-upload-panel>summary:after{content:'›';font-size:23px;line-height:1;transition:transform .16s ease}
.agent-upload-panel[open]>summary:after{transform:rotate(90deg)}
.agent-upload-panel>summary small{margin-left:auto;color:#64748b;font-weight:600}
.server-setup-page .agent-upload-form{padding:16px!important;background:#fff}
.agent-upload-form .agent-default-check{align-self:end;padding-bottom:7px}
.agent-release-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.agent-release-section{padding:16px!important;min-width:0}
.agent-release-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.agent-release-heading h3{margin:0 0 3px}
.agent-release-heading p{margin:0}
.agent-arch-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.agent-arch-card{min-width:0;padding:13px;border:1px solid #dbe5f2;border-radius:13px;background:linear-gradient(180deg,#fff,#f8fbff)}
.agent-arch-card.is-ready{box-shadow:inset 3px 0 #2563eb}
.agent-arch-card.is-missing{background:#fffaf7;box-shadow:inset 3px 0 #f59e0b}
.agent-arch-top{display:flex;align-items:center;gap:7px;color:#475569;font-size:11px;font-weight:800;margin-bottom:8px}
.agent-arch-top .pill{margin-left:auto}
.agent-arch-badge,.agent-table-arch{display:inline-flex;align-items:center;justify-content:center;border-radius:7px;background:#0f4aa5;color:#fff;font-weight:950;letter-spacing:.04em}
.agent-arch-badge{min-width:36px;padding:5px 7px;font-size:11px}
.agent-table-arch{margin-top:5px;padding:3px 6px;font-size:10px}
.agent-arch-name{display:block;min-height:32px;color:#0f172a;font-size:12px;line-height:1.35}
.agent-arch-meta{display:flex;gap:10px;margin:6px 0 10px;color:#64748b;font-size:11px;font-weight:750}
.agent-arch-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.agent-arch-actions .btn{padding:7px 10px}
.agent-package-history{padding:16px!important;min-width:0}
.agent-package-table{min-width:1040px}
.agent-package-table td{vertical-align:top}
.agent-package-table .note-cell{max-width:290px}
@media(max-width:1400px){
  .agent-pkg-actions{grid-template-columns:repeat(2,minmax(84px,1fr))}
  .agent-release-grid{grid-template-columns:1fr}
  .agent-package-workbench .agent-release-section+.agent-release-section{border-left:0;border-top:1px solid #dbe5f2}
}
@media(max-width:820px){
  .agent-arch-grid{grid-template-columns:1fr}
  .agent-upload-panel>summary small{display:none}
}
#assetModalV2 .asset-form-grid{
  grid-template-columns:repeat(3,minmax(220px,1fr))!important;
}
#assetModalV2 .asset-field{
  min-width:0;
}
.table-wrap,.table-scroll{
  overflow:auto;
}
.table-search{
  min-width:180px;
}
.count-link{
  cursor:pointer;
  text-decoration:underline;
  text-decoration-style:dotted;
  font-weight:600;
}
.count-link:hover{
  opacity:0.7;
}
.table-wrap,
.table-scroll,
.modal-table-wrap{
  position:relative;
}
.table-wrap > table,
.table-scroll > table{
  min-width:100%;
}
.card > table,
.subtab-card > table,
.v9req-card > table{
  display:block;
  width:100%;
  overflow:auto;
}
.table-wrap table thead th,
.table-scroll table thead th,
.card > table > tbody > tr:first-child > th,
.subtab-card > table > tbody > tr:first-child > th,
.v9req-card > table > tbody > tr:first-child > th,
.table-wrap table > tbody > tr:first-child > th,
.table-scroll table > tbody > tr:first-child > th,
.sticky-table thead th{
  position:sticky;
  top:-1px;
  z-index:2;
  box-shadow:0 1px 0 #dbe4ef,inset 0 -1px 0 #dbe4ef;
  background:#f7faff;
  transform:translateZ(0);
  backface-visibility:hidden;
}
.modalbox-wide{
  width:min(1320px,94vw)!important;
  max-width:94vw!important;
  display:flex;
  flex-direction:column;
  overflow:hidden!important;
}
.modal-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding-bottom:12px;
  margin-bottom:8px;
  border-bottom:1px solid #e5edf7;
}
.modal-head h3{
  margin:0;
}
.modal-body{
  overflow:hidden;
  max-height:none;
  padding-right:0;
}
.modal-software-grid{
  display:flex;
  flex-direction:column;
  gap:0;
}
.modal-software-head{
  border:1px solid #e5edf7;
  border-bottom:0;
  border-radius:12px 12px 0 0;
  overflow:hidden;
  background:#f7faff;
}
.modal-body .table-wrap,
.modal-body .modal-table-wrap{
  max-height:min(68vh,760px);
  overflow:auto!important;
  border:1px solid #e5edf7;
  border-radius:0 0 12px 12px;
}
.modal-body .modal-table-wrap table,
.modal-software-head table{
  min-width:100%;
  border-radius:0!important;
}
.modal-software-table{
  table-layout:fixed;
}
.modal-software-table th:nth-child(1),
.modal-software-table td:nth-child(1){
  width:34%;
}
.modal-software-table th:nth-child(2),
.modal-software-table td:nth-child(2){
  width:11%;
}
.modal-software-table th:nth-child(3),
.modal-software-table td:nth-child(3){
  width:10%;
}
.modal-software-table th:nth-child(4),
.modal-software-table td:nth-child(4){
  width:12%;
}
.modal-software-table th:nth-child(5),
.modal-software-table td:nth-child(5){
  width:10%;
}
.modal-software-table th:nth-child(6),
.modal-software-table td:nth-child(6){
  width:8%;
}
.modal-software-table th:nth-child(7),
.modal-software-table td:nth-child(7){
  width:15%;
}
.modal-software-table td{
  vertical-align:top;
}
.modal-software-table td:nth-child(2),
.modal-software-table td:nth-child(3),
.modal-software-table td:nth-child(6){
  white-space:nowrap;
}
.modal-software-table td:nth-child(4),
.modal-software-table td:nth-child(6),
.modal-software-table th:nth-child(4),
.modal-software-table th:nth-child(6){
  text-align:center;
}
.modal-software-table td:nth-child(7),
.modal-software-table th:nth-child(7){
  text-align:center;
}
.modal-software-table .action-cell{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  flex-wrap:nowrap;
}
.modal-software-table .action-cell form{
  display:inline-flex!important;
  margin:0!important;
}
.modal-software-table .action-cell .btn{
  white-space:nowrap;
  min-width:92px;
  padding:0 12px!important;
}
.modal-software-table .action-cell .hint{
  white-space:nowrap;
  margin:0;
}
.subtab-card .card-head-row{
  align-items:flex-start;
}
body.topnav-mode .content{
  max-width:1740px!important;
}
.ds-page-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
}
.ds-head-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.ds-kpi-row .ds-kpi{
  min-height:124px!important;
}
.ds-map-stats-panel{
  justify-content:start!important;
}
.ds-map-layout{
  grid-template-columns:1fr!important;
}
.ds-map{
  min-height:280px!important;
}
.users-admin-v2 + .card{
  display:none!important;
}
@media(max-width:1200px){
  #assetModalV2 .asset-form-grid{
    grid-template-columns:1fr 1fr!important;
  }
}
@media(max-width:760px){
  #assetModalV2 .asset-form-grid{
    grid-template-columns:1fr!important;
  }
  .ds-page-head{
    grid-template-columns:1fr;
  }
}

/* ===== V31 fluid workspace + safer toolbar/modal sizing ===== */
body.topnav-mode .content{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:22px 24px 32px!important;
}
.card,
.subtab-card,
.dash-card{
  width:100%!important;
  max-width:none!important;
}
.card-head-row,
.subtab-card .card-head-row{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:12px!important;
  flex-wrap:wrap!important;
}
.card-head-row > *{
  min-width:0!important;
}
.card-head-row .toolbar,
.card-head-row .clean-toolbar{
  flex:1 1 440px!important;
  justify-content:flex-end!important;
  align-items:center!important;
  gap:8px!important;
  flex-wrap:wrap!important;
}
.toolbar .inline-form,
.clean-toolbar .inline-form{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  flex-wrap:wrap!important;
  max-width:100%!important;
}
.toolbar input[type="file"],
.clean-toolbar input[type="file"],
.inline-form input[type="file"]{
  max-width:100%!important;
  min-width:220px!important;
}
.table-wrap,
.table-scroll{
  width:100%!important;
  max-width:100%!important;
}
.modalbox-wide{
  width:min(1500px,97vw)!important;
  max-width:97vw!important;
}
.modal-software-head table,
.modal-body .modal-table-wrap table,
.modal-software-table{
  width:100%!important;
  min-width:1180px!important;
}
.modal-software-table th:nth-child(1),
.modal-software-table td:nth-child(1){
  width:32%;
}
.modal-software-table th:nth-child(2),
.modal-software-table td:nth-child(2){
  width:11%;
}
.modal-software-table th:nth-child(3),
.modal-software-table td:nth-child(3){
  width:9%;
}
.modal-software-table th:nth-child(4),
.modal-software-table td:nth-child(4){
  width:12%;
}
.modal-software-table th:nth-child(5),
.modal-software-table td:nth-child(5){
  width:10%;
}
.modal-software-table th:nth-child(6),
.modal-software-table td:nth-child(6){
  width:10%;
}
.modal-software-table th:nth-child(7),
.modal-software-table td:nth-child(7){
  width:16%;
}
.modal-software-table .action-cell{
  gap:6px!important;
}
.modal-software-table .action-cell .btn{
  min-width:84px!important;
  padding:0 10px!important;
}
@media(max-width:1400px){
  .card-head-row .toolbar,
  .card-head-row .clean-toolbar{
    flex:1 1 100%!important;
    justify-content:flex-start!important;
  }
}
@media(max-width:980px){
  body.topnav-mode .content{
    padding:18px 16px 26px!important;
  }
  .card-head-row .toolbar,
  .card-head-row .clean-toolbar{
    flex:1 1 100%!important;
    justify-content:flex-start!important;
  }
  .modalbox-wide{
    width:min(97vw,1500px)!important;
  }
}

/* =========================================================
   EXCHANGE RATE TABLE
   Clean table layout with emoji flags, aligned columns
   ========================================================= */
.ds-rate-table {
  width:100%!important;
  border-collapse:collapse!important;
  font-size:13px!important;
}
.ds-rate-table thead th {
  padding:6px 8px!important;
  font-size:11px!important;
  font-weight:900!important;
  color:#64748b!important;
  background:#f8fafc!important;
  border-bottom:1px solid #e2e8f0!important;
  text-align:left!important;
}
.ds-rate-table thead th:nth-child(2),
.ds-rate-table thead th:nth-child(3) {
  text-align:right!important;
}
.ds-rate-table tbody tr:not(:last-child) td {
  border-bottom:1px solid #f1f4f9!important;
}
.ds-rate-table td {
  padding:8px!important;
  vertical-align:middle!important;
}
.ds-rate-table td:nth-child(2) {
  text-align:right!important;
  font-weight:950!important;
  color:#0f172a!important;
  white-space:nowrap!important;
  width:70px!important;
}
.ds-rate-table td:nth-child(3) {
  text-align:right!important;
  width:90px!important;
  white-space:nowrap!important;
}
.ds-rate-cell {
  display:flex!important;
  align-items:center!important;
  gap:6px!important;
}
.ds-rate-cell b {
  font-size:13px!important;
  font-weight:950!important;
  color:#0f172a!important;
}
.ds-rate-flag {
  font-size:18px!important;
  line-height:1!important;
  flex-shrink:0!important;
  display:inline-block!important;
}
.ds-rate-val {
  font-size:13px!important;
}
.ds-rate-chg {
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:5px!important;
}
.ds-rate-chg small {
  font-size:11px!important;
  font-weight:900!important;
}
.ds-rate-chg em {
  font-style:normal!important;
  font-size:10px!important;
  font-weight:900!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:30px!important;
  height:15px!important;
  border-radius:999px!important;
  padding:0 5px!important;
  line-height:1!important;
  color:#fff!important;
}
.ds-rate-chg.up small { color:#16a34a!important; }
.ds-rate-chg.up em { background:#16a34a!important; }
.ds-rate-chg.down small { color:#dc2626!important; }
.ds-rate-chg.down em { background:#dc2626!important; }
.ds-rate-chg.flat small { color:#64748b!important; }
.ds-rate-chg.flat em { background:#94a3b8!important; }

/* ===== V32 full software modal ===== */
#modal{
  padding:12px!important;
}
#modal .modalbox-wide{
  width:min(1680px,99vw)!important;
  max-width:99vw!important;
  height:min(94vh,1200px)!important;
  max-height:94vh!important;
  padding:16px 18px!important;
}
#modal .modal-head{
  flex:0 0 auto!important;
}
#modal .modal-head-actions{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  flex-wrap:wrap!important;
}
#modal .modal-icon-btn{
  min-width:38px!important;
  width:38px!important;
  height:38px!important;
  padding:0!important;
  font-size:18px!important;
  line-height:1!important;
  border-radius:10px!important;
}
#modal .modal-icon-btn.is-expanded{
  background:#eef5ff!important;
  border-color:#bfd7ff!important;
  color:#0b5cff!important;
}
#modal .modal-body{
  flex:1 1 auto!important;
  min-height:0!important;
}
#modal .modal-software-grid{
  height:100%!important;
}
#modal .modal-software-head,
#modal .modal-table-wrap{
  width:100%!important;
}
#modal .modal-body .modal-table-wrap{
  flex:1 1 auto!important;
  min-height:0!important;
  max-height:none!important;
  height:calc(94vh - 132px)!important;
}
#modal .modal-body .modal-table-wrap table,
#modal .modal-software-head table,
#modal .modal-software-table{
  width:100%!important;
  min-width:1320px!important;
}
#modal .modal-software-table th:nth-child(1),
#modal .modal-software-table td:nth-child(1){
  width:34%!important;
}
#modal .modal-software-table th:nth-child(2),
#modal .modal-software-table td:nth-child(2){
  width:12%!important;
}
#modal .modal-software-table th:nth-child(3),
#modal .modal-software-table td:nth-child(3){
  width:9%!important;
}
#modal .modal-software-table th:nth-child(4),
#modal .modal-software-table td:nth-child(4){
  width:13%!important;
}
#modal .modal-software-table th:nth-child(5),
#modal .modal-software-table td:nth-child(5){
  width:12%!important;
}
#modal .modal-software-table th:nth-child(6),
#modal .modal-software-table td:nth-child(6){
  width:8%!important;
}
#modal .modal-software-table th:nth-child(7),
#modal .modal-software-table td:nth-child(7){
  width:12%!important;
}
#modal .modal-software-table td:nth-child(5){
  word-break:break-word!important;
}
#modal .modal-software-table .action-cell{
  justify-content:flex-start!important;
  gap:8px!important;
}
#modal .modal-software-table .action-cell .btn{
  min-width:96px!important;
}
#modal.modal-expanded{
  padding:0!important;
}
#modal.modal-expanded .modalbox-wide{
  width:100vw!important;
  max-width:100vw!important;
  height:100vh!important;
  max-height:100vh!important;
  border-radius:0!important;
  padding:14px 16px!important;
}
#modal.modal-expanded .modal-body .modal-table-wrap{
  height:calc(100vh - 106px)!important;
}
#modal.modal-expanded .modal-body .modal-table-wrap table,
#modal.modal-expanded .modal-software-head table,
#modal.modal-expanded .modal-software-table{
  min-width:1380px!important;
}
@media(max-width:1360px){
  #modal .modalbox-wide{
    width:99vw!important;
    max-width:99vw!important;
  }
  #modal .modal-body .modal-table-wrap table,
  #modal .modal-software-head table,
  #modal .modal-software-table{
    min-width:1220px!important;
  }
}
@media(max-width:900px){
  #modal{
    padding:6px!important;
  }
  #modal .modalbox-wide{
    width:100vw!important;
    max-width:100vw!important;
    height:96vh!important;
    max-height:96vh!important;
    border-radius:14px!important;
    padding:12px!important;
  }
  #modal .modal-body .modal-table-wrap{
    height:calc(96vh - 118px)!important;
  }
  #modal.modal-expanded .modalbox-wide{
    padding:10px!important;
  }
  #modal.modal-expanded .modal-body .modal-table-wrap{
    height:calc(100vh - 98px)!important;
  }
}
.rbac-layout{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(360px,.95fr);
  gap:18px;
  align-items:start;
}
.rbac-admin-card .table-scroll{
  overflow:auto;
}
.rbac-role-tables{
  display:flex;
  flex-direction:column;
  gap:18px;
  min-width:0;
}
.rbac-branch-title{
  margin:0;
  font-size:13px;
  font-weight:800;
  color:#334155;
  text-transform:uppercase;
  letter-spacing:.03em;
}
.rbac-branch-title-dept{
  padding-top:4px;
  border-top:1px dashed #dbe6fb;
}
.rbac-editor{
  border:1px solid #dbe6fb;
  box-shadow:0 8px 24px rgba(16,39,84,.06);
}
.permission-group-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin-top:14px;
}
.permission-bulk-actions{
  display:flex;
  gap:8px;
  margin-top:14px;
}
.rbac-section-title{
  margin:22px 0 2px;
  font-size:15px;
  font-weight:850;
  color:#0f172a;
}
.rbac-section-title-actions{
  margin-top:26px;
  padding-top:18px;
  border-top:1px solid #dbe6fb;
}
.rbac-section-hint{
  margin:2px 0 0;
  font-size:12px;
}
.permission-group-card{
  border:1px solid #dbe6fb;
  border-radius:16px;
  padding:14px;
  background:#fbfdff;
}
.permission-group-card-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:6px;
}
.permission-group-card-head h4{
  margin:0;
  font-size:14px;
}
.permission-group-actions{
  display:flex;
  gap:5px;
}
.permission-check{
  display:flex;
  gap:10px;
  align-items:flex-start;
  padding:8px 0;
  border-top:1px dashed #e6eefc;
}
.permission-check:first-of-type{
  border-top:none;
}
.permission-check span{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.permission-check small{
  color:#64748b;
}
.permission-chip-list{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:flex-start;
}
.permission-chip-list .chip-extra{
  display:none;
}
.permission-chip-list.expanded .chip-extra{
  display:inline-block;
}
.permission-chip-list.expanded .pill-toggle{
  display:none;
}
.pill-toggle{
  border:1px dashed #bfdbfe;
  background:#f8fafc;
  color:#475569;
  cursor:pointer;
  font-family:inherit;
}
.pill-toggle:hover{
  background:#eff6ff;
  color:var(--blue);
}
.permission-catalog-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.pill-soft{
  background:#f4f7ff;
  color:#2456d3;
}
.status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:900;border:1px solid #dbe4ef;background:#f8fafc;color:#334155;white-space:nowrap}
.status-badge i{width:8px;height:8px;border-radius:50%;display:inline-block;flex:0 0 auto}
.status-badge.online{background:#ecfdf5;border-color:#bbf7d0;color:#166534}
.status-badge.online i{background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.15)}
.status-badge.offline{background:#fff1f2;border-color:#fecdd3;color:#b91c1c}
.status-badge.offline i{background:#ef4444;box-shadow:0 0 0 3px rgba(239,68,68,.12)}
.status-badge.neutral{background:#f8fafc;border-color:#dbe4ef;color:#475569}
.status-badge.neutral i{background:#94a3b8;box-shadow:0 0 0 3px rgba(148,163,184,.12)}
.status-meta{display:block;margin-top:4px;color:#64748b;font-size:11px;font-weight:800}
@media(max-width:1200px){
  .rbac-layout,
  .permission-group-grid,
  .permission-catalog-grid{
    grid-template-columns:1fr;
  }
}
.account-modalbox{
  width:min(1080px,92vw);
  max-height:90vh;
}
.account-modal-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.account-modal-section{
  margin:0;
}
.dlp-dashboard-v2{
  display:grid;
  gap:14px;
}
.dlp-kpi-strip{
  display:grid;
  grid-template-columns:repeat(4,minmax(180px,1fr));
  gap:12px;
}
.dlp-kpi-card{
  position:relative;
  background:#fff;
  border:1px solid #d9e2ef;
  border-radius:16px;
  padding:18px 18px 16px;
  min-height:104px;
  box-shadow:0 6px 18px rgba(15,23,42,.05);
}
.dlp-kpi-card::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  border-radius:16px 0 0 16px;
}
.dlp-kpi-card p,
.dlp-kpi-card h2,
.dlp-kpi-card small{
  margin:0;
}
.dlp-kpi-card p{
  color:#475569;
  font-size:12px;
  font-weight:850;
}
.dlp-kpi-card h2{
  margin-top:8px;
  font-size:40px;
  line-height:1;
  font-weight:950;
  color:#0f172a;
}
.dlp-kpi-card small{
  display:block;
  margin-top:8px;
  color:#64748b;
  font-size:11px;
  font-weight:750;
}
.dlp-blue::before{background:#3b82f6}
.dlp-orange::before{background:#f59e0b}
.dlp-red::before{background:#ef4444}
.dlp-green::before{background:#10b981}
.dlp-panel-grid{
  display:grid;
  grid-template-columns:1.45fr .9fr;
  gap:14px;
}
.dlp-panel{
  margin-bottom:0!important;
}
.dlp-trend-chart{
  min-height:280px;
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:10px;
  align-items:end;
  padding:10px 6px 0;
}
.dlp-trend-col{
  display:grid;
  gap:7px;
  justify-items:center;
}
.dlp-trend-stack{
  width:100%;
  min-height:190px;
  border-radius:14px;
  border:1px solid #e5edf7;
  background:linear-gradient(180deg,#f8fbff,#eef4fb);
  display:flex;
  align-items:flex-end;
  padding:0 8px 8px;
}
.dlp-trend-stack i{
  display:block;
  width:100%;
  border-radius:12px 12px 3px 3px;
  background:linear-gradient(180deg,#79adff,#245fe2);
  box-shadow:0 10px 24px rgba(36,95,226,.18);
}
.dlp-trend-col b{
  font-size:12px;
  color:#0f172a;
}
.dlp-trend-col span{
  font-size:11px;
  color:#64748b;
  font-weight:700;
}
.dlp-donut-wrap{
  display:grid;
  grid-template-columns:180px 1fr;
  gap:18px;
  align-items:center;
  min-height:280px;
}
.dlp-donut-ring{
  position:relative;
  width:180px;
  height:180px;
  border-radius:50%;
}
.dlp-donut-ring::after{
  content:"";
  position:absolute;
  inset:24px;
  border-radius:50%;
  background:#fff;
  box-shadow:inset 0 1px 4px rgba(15,23,42,.08);
}
.dlp-donut-center{
  position:absolute;
  inset:0;
  z-index:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}
.dlp-donut-center b{
  font-size:30px;
  font-weight:950;
}
.dlp-donut-center small{
  color:#64748b;
  font-weight:800;
}
.dlp-type-list{
  display:grid;
  gap:10px;
}
.dlp-type-item{
  display:grid;
  grid-template-columns:12px 1fr auto auto;
  gap:10px;
  align-items:center;
  padding:10px 12px;
  border:1px solid #e5edf7;
  border-radius:12px;
  background:#fbfdff;
}
.dlp-type-dot{
  width:12px;
  height:12px;
  border-radius:50%;
}
.dlp-type-item strong{
  font-size:12px;
  color:#0f172a;
}
.dlp-type-item b{
  font-size:12px;
  color:#0f172a;
}
.dlp-type-item small{
  color:#64748b;
  font-weight:800;
}
.dlp-filter-bar{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
}
.dlp-filter-bar .btn.is-active{
  background:#1f5eff!important;
  color:#fff!important;
  border-color:#1f5eff!important;
}
.dlp-score{
  display:inline-flex;
  min-width:40px;
  justify-content:center;
  padding:3px 9px;
  border-radius:999px;
  background:#eff6ff;
  color:#2456d3;
  font-weight:900;
}
.pill-blocked{
  background:#fff1f2;
  color:#dc2626;
  border-color:#fecaca;
}
.pill-allowed{
  background:#ecfdf5;
  color:#047857;
  border-color:#bbf7d0;
}
@media(max-width:1280px){
  .account-modal-grid,
  .dlp-panel-grid,
  .dlp-donut-wrap{
    grid-template-columns:1fr;
  }
  .dlp-kpi-strip{
    grid-template-columns:repeat(2,minmax(180px,1fr));
  }
}
@media(max-width:720px){
  .dlp-kpi-strip{
    grid-template-columns:1fr;
  }
  .dlp-trend-chart{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
}
.btn[disabled]{
  opacity:.42;
  cursor:not-allowed;
  pointer-events:none;
}
.account-summary-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-bottom:12px;
}
.account-summary-item{
  border:1px solid #dbe6f4;
  border-radius:12px;
  background:#fbfdff;
  padding:10px 12px;
}
.account-summary-item span{
  display:block;
  color:#64748b;
  font-size:11px;
  font-weight:800;
}
.account-summary-item b{
  display:block;
  margin-top:4px;
  color:#0f172a;
  font-size:13px;
  font-weight:900;
}
.modal-head-actions{
  display:flex;
  align-items:center;
  gap:8px;
}
.account-modalbox,
#userProfileModal .account-modalbox{
  width:min(1120px,92vw);
}
#accountModal.modal-expanded .account-modalbox,
#userProfileModal.modal-expanded .account-modalbox{
  width:min(1380px,97vw);
  max-width:97vw;
  max-height:96vh;
}
.user-profile-modal-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
}
.profile-readonly-grid textarea{
  resize:vertical;
  min-height:92px;
}
@media(max-width:1280px){
  .account-summary-grid{
    grid-template-columns:1fr;
  }
}
.agent-package-ops{display:grid;grid-template-columns:210px minmax(0,1fr);gap:16px;align-items:start;margin-top:12px}
.agent-package-qr{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:14px;border:1px dashed #c8d8ef;border-radius:14px;background:#fbfdff;min-height:220px}
.agent-package-qr img{width:170px;height:170px;object-fit:contain;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:10px}
.agent-qr-empty{width:170px;height:170px;border-radius:12px;border:1px dashed #cbd5e1;background:#f8fafc;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:900;color:#94a3b8}
.agent-package-qr small{color:#64748b;font-size:11px;font-weight:800;text-align:center}
.agent-package-actions{display:flex;flex-direction:column;gap:8px}
.agent-package-action-row{justify-content:flex-start}
.agent-section-tabs{position:sticky;top:92px;z-index:3;background:#fff;padding:10px 0 6px;margin-bottom:10px}
.agent-summary-grid .kpi-card{min-height:86px}
.agent-deployment-page .table-wrap table td small{display:block;margin-top:4px;color:#64748b}
.agent-overview-grid{grid-template-columns:minmax(320px,.8fr) minmax(540px,1.2fr)!important;align-items:start}
.agent-version-card,.agent-recent-card{min-height:0!important}
.agent-version-wrap,.agent-job-wrap{border:1px solid #e2e8f0;border-radius:14px;background:linear-gradient(180deg,#ffffff,#f8fbff)}
.agent-version-table td,.agent-job-table td{vertical-align:top}
.agent-version-status-cell{white-space:nowrap}
.agent-version-status-cell .pill,.agent-version-status-cell .pill-soft{margin-right:6px}
.agent-count-pill{display:inline-flex;min-width:34px;justify-content:center;align-items:center;padding:4px 10px;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-weight:900;border:1px solid #bfdbfe}
.agent-version-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
.agent-summary-chip{border:1px solid #dbe4ef;border-radius:14px;background:linear-gradient(180deg,#ffffff,#f8fbff);padding:12px}
.agent-summary-chip b{display:block;font-size:22px;line-height:1;color:#0f172a;margin-bottom:6px}
.agent-summary-chip span{display:block;font-size:11.5px;font-weight:800;color:#64748b}
.agent-job-wrap{max-height:610px;overflow:auto}
.agent-job-table th{position:sticky;top:0;z-index:1}
.agent-job-table td{padding-top:12px!important;padding-bottom:12px!important}
.agent-job-table tr:hover td{background:#f8fbff}
.agent-job-time{font-weight:800!important;color:#334155!important;white-space:nowrap;min-width:106px}
.agent-job-name-cell b{display:block;font-size:12.5px}
.agent-job-name-cell small{line-height:1.35}
.agent-job-pc{font-weight:850!important}
.agent-mode-pill{display:inline-flex;align-items:center;justify-content:center;padding:4px 8px;border-radius:999px;background:#eef2ff;border:1px solid #c7d2fe;color:#3730a3;font-size:10.5px;font-weight:900;letter-spacing:.04em}
.agent-job-status-cell .pill{margin-bottom:4px}
.agent-job-status-cell small{line-height:1.38;max-width:420px;word-break:break-word}
.agent-job-actions{display:flex;flex-direction:column;align-items:flex-end;gap:6px;min-width:90px}
.agent-job-actions .btn,.agent-job-actions form{width:100%}
.agent-job-actions form .btn{width:100%}
@media(max-width:1280px){.agent-overview-grid{grid-template-columns:1fr!important}.agent-job-wrap{max-height:none}.agent-version-summary{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:980px){.agent-package-ops{grid-template-columns:1fr}.agent-package-qr{min-height:unset}.agent-section-tabs{position:static}}
@media(max-width:760px){.agent-version-summary{grid-template-columns:1fr}}
.agent-job-modalbox{width:min(1380px,95vw)!important;max-width:95vw!important}
.agent-job-modal-body{max-height:min(82vh,880px);overflow:auto!important;padding-right:6px}
.agent-job-modal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.agent-job-modal-grid .wide{grid-column:1/-1}
.agent-job-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}
.agent-job-field{min-width:0;padding:10px 12px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fbff}
.agent-job-field b{display:block;margin-bottom:4px;font-size:11px;color:#64748b;text-transform:uppercase;letter-spacing:.04em}
.agent-job-field span{display:block;font-size:12.5px;font-weight:760;color:#0f172a;word-break:break-word}
.agent-job-extra{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px}
.agent-job-extra small{color:#64748b;font-weight:700}
.agent-job-panel{margin-top:12px}
.agent-job-panel label{display:block;margin-bottom:6px;font-size:11px;font-weight:900;color:#64748b;text-transform:uppercase;letter-spacing:.04em}
.agent-job-log,.agent-job-log-snippet{margin:0;padding:12px;border-radius:12px;background:#0f172a;color:#e2e8f0;border:1px solid rgba(148,163,184,.22);white-space:pre-wrap;word-break:break-word;font:12px/1.45 Consolas,"Courier New",monospace}
.agent-job-log{max-height:360px;overflow:auto}
.agent-job-log-snippet{max-height:180px;overflow:auto}
.agent-job-timeline-table td{vertical-align:top}
.agent-job-log-row td{background:#f8fafc}
.agent-job-log-row small{display:block;margin-bottom:6px;color:#64748b;font-weight:800}
@media(max-width:980px){.agent-job-modal-grid,.agent-job-fields{grid-template-columns:1fr}}

.ds-status-inline{display:flex;gap:10px;overflow-x:auto;padding:2px 2px 8px;scrollbar-width:thin}
.ds-status-chip{flex:0 0 auto;min-width:188px;padding:12px 14px;border-radius:14px;border:1px solid #dfe8f5;background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%);text-decoration:none;color:#071936;box-shadow:0 4px 12px rgba(15,35,80,.04)}
.ds-status-chip b{display:block;font-size:12px;font-weight:950;letter-spacing:.02em}
.ds-status-chip span{display:block;margin-top:6px;color:#64748b;font-size:11px;font-weight:850;white-space:nowrap}
.ds-status-empty{padding:10px 2px;color:#64748b;font-size:12px;font-weight:800}
.ds-subhead{margin:6px 0 0;color:#5b6b82;font-size:13px;font-weight:800}

.ds-asset-lines{display:flex;flex-direction:column;gap:8px;max-height:300px;overflow:auto;padding-right:2px}
.ds-asset-line{display:flex!important;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid #dfeaf6;border-radius:14px;background:#f7fdff;text-decoration:none;color:#071936}
.ds-asset-inline{display:flex!important;align-items:center;gap:10px;min-width:0;flex-wrap:nowrap;white-space:nowrap}
.ds-asset-line b{font-size:13px;font-weight:950;letter-spacing:.02em;white-space:nowrap}
.ds-asset-line small{display:inline!important;font-size:12px;font-weight:800;color:#5f7088;white-space:nowrap}
.ds-asset-line i{width:9px;height:9px;border-radius:50%;background:#22c55e;flex:0 0 auto}
.ds-asset-line i:not(.ok){background:#cbd5e1}
@media(max-width:900px){.ds-asset-line{padding:10px 12px}.ds-asset-inline{display:block}.ds-asset-line small{display:block;margin-top:4px}}

/* ===== V33 exchange rate aligned card ===== */
.ds-bottom-grid .ds-card:first-child{
  overflow:visible!important;
  min-height:auto!important;
}
.ds-rate-table{
  width:100%!important;
  table-layout:fixed!important;
  border-collapse:separate!important;
  border-spacing:0 6px!important;
  overflow:visible!important;
}
.ds-rate-table th,
.ds-rate-table td{
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:nowrap!important;
}
.ds-rate-table th:nth-child(1){width:43%!important;}
.ds-rate-table th:nth-child(2){width:27%!important;text-align:right!important;}
.ds-rate-table th:nth-child(3){width:30%!important;text-align:right!important;}
.ds-rate-table tbody tr{
  background:linear-gradient(135deg,#ffffff,#f8fbff)!important;
  box-shadow:0 1px 0 #e8eef7!important;
}
.ds-rate-table td{
  padding:9px 8px!important;
}
.ds-rate-cell{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  min-width:0!important;
}
.ds-rate-flag{
  width:32px!important;
  height:22px!important;
  border-radius:7px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 32px!important;
  color:#fff!important;
  font-size:11px!important;
  font-weight:950!important;
  letter-spacing:.02em!important;
  line-height:1!important;
  border:1px solid rgba(255,255,255,.55)!important;
  box-shadow:0 5px 12px rgba(15,35,80,.14)!important;
}
.ds-rate-flag-vn{background:linear-gradient(135deg,#d71920 0 68%,#ffcf33 68%)!important;}
.ds-rate-flag-kr{background:linear-gradient(135deg,#ffffff 0 48%,#c60c30 48% 68%,#003478 68%)!important;color:#071936!important;border-color:#dbe6f4!important;}
.ds-rate-flag-jp{background:radial-gradient(circle at 50% 50%,#bc002d 0 28%,#fff 30%)!important;color:#111827!important;border-color:#dbe6f4!important;}
.ds-rate-flag-cn{background:linear-gradient(135deg,#de2910,#ffde00)!important;color:#7a1a00!important;}
.ds-rate-flag-eu{background:linear-gradient(135deg,#003399,#1d4ed8)!important;}
.ds-rate-flag-us{background:linear-gradient(180deg,#b22234 0 14%,#fff 14% 28%,#b22234 28% 42%,#fff 42% 56%,#3c3b6e 56%)!important;}
.ds-rate-cell b{
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  font-size:13px!important;
}
.ds-rate-val{
  text-align:right!important;
  font-variant-numeric:tabular-nums!important;
  font-size:14px!important;
  letter-spacing:.01em!important;
}
.ds-rate-chg{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:7px!important;
  font-variant-numeric:tabular-nums!important;
}
.ds-rate-chg small{
  min-width:62px!important;
  text-align:right!important;
  display:inline-block!important;
}
.ds-rate-chg em{
  min-width:48px!important;
  height:20px!important;
}

/* ===== V36 exchange rate static flag images ===== */
.ds-bottom-grid .ds-card:first-child{
  overflow:visible!important;
  min-width:0!important;
}
.ds-bottom-grid .ds-card:first-child .ds-card-head{
  margin-bottom:8px!important;
}
.ds-bottom-grid .ds-card:first-child .ds-card-head span{
  white-space:normal!important;
  text-align:right!important;
  line-height:1.35!important;
}
.ds-rate-table{
  width:100%!important;
  table-layout:fixed!important;
  border-collapse:collapse!important;
  border-spacing:0!important;
  font-size:12px!important;
}
.ds-rate-table thead th:nth-child(1){width:42%!important;text-align:left!important;}
.ds-rate-table thead th:nth-child(2){width:27%!important;text-align:right!important;}
.ds-rate-table thead th:nth-child(3){width:31%!important;text-align:right!important;}
.ds-rate-table tbody tr{background:#fff!important;box-shadow:none!important;}
.ds-rate-table tbody tr:not(:last-child) td{border-bottom:1px solid #f1f5f9!important;}
.ds-rate-table th,.ds-rate-table td{
  padding:6px 4px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  vertical-align:middle!important;
}
.ds-rate-cell{
  display:inline-flex!important;
  align-items:center!important;
  gap:8px!important;
  min-width:0!important;
  max-width:100%!important;
}
.ds-rate-cell b{
  display:inline-block!important;
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  color:#000!important;
  font-size:12px!important;
  line-height:16px!important;
  font-weight:950!important;
}
.ds-rate-flag{
  position:relative!important;
  width:22px!important;
  min-width:22px!important;
  height:15px!important;
  flex:0 0 22px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
  margin:0!important;
  border:1px solid #d7dde8!important;
  border-radius:1px!important;
  background:#f8fafc!important;
  box-shadow:none!important;
  overflow:hidden!important;
  color:#111!important;
  font-size:0!important;
  line-height:1!important;
}
.ds-rate-flag img{
  width:100%!important;
  height:100%!important;
  display:block!important;
  object-fit:cover!important;
}
.ds-rate-flag.missing-flag::after{
  content:"?";
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  color:#111;
  font-size:10px;
  font-weight:950;
  background:#eef2f7;
}
.ds-rate-val{
  text-align:right!important;
  color:#000!important;
  font-size:12px!important;
  font-weight:850!important;
  font-variant-numeric:tabular-nums!important;
  overflow:visible!important;
  text-overflow:clip!important;
}
.ds-rate-chg{
  display:table-cell!important;
  text-align:right!important;
  overflow:visible!important;
  font-variant-numeric:tabular-nums!important;
}
.ds-rate-chg-inner{
  display:inline-grid!important;
  grid-template-columns:68px 42px!important;
  align-items:center!important;
  justify-content:end!important;
  column-gap:6px!important;
  margin-left:auto!important;
  width:auto!important;
  max-width:100%!important;
}
.ds-rate-chg-inner small{
  display:block!important;
  width:68px!important;
  min-width:68px!important;
  max-width:68px!important;
  text-align:right!important;
  font-size:10px!important;
  line-height:16px!important;
  font-weight:900!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.ds-rate-chg-inner em{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:42px!important;
  min-width:42px!important;
  height:16px!important;
  padding:0!important;
  border-radius:3px!important;
  color:#fff!important;
  font-size:9px!important;
  line-height:16px!important;
  font-weight:950!important;
}
.ds-rate-chg.up small::before{content:"";}
.ds-rate-chg.down small::before{content:"";}
.ds-rate-chg.up small{color:#ff3b30!important;}
.ds-rate-chg.up em{background:#ff4d4f!important;}
.ds-rate-chg.down small{color:#16a34a!important;}
.ds-rate-chg.down em{background:#16a34a!important;}
.ds-rate-chg.flat small{color:#111!important;}
.ds-rate-chg.flat em{background:#9ca3af!important;}

/* ===== V37 compact agent management table ===== */
.agent-compact-page{overflow:visible!important}
.agent-legend{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0 12px;padding:9px 10px;border:1px solid #dbe6f4;border-radius:12px;background:#f8fbff}
.agent-command-note{margin-left:auto;color:#64748b;font-size:11.5px;font-weight:800}
.agent-table-wrap{max-height:calc(100vh - 235px);overflow:auto;border:1px solid #dbe6f4;border-radius:14px;background:#fff}
.agent-compact-table{width:100%;border-collapse:separate!important;border-spacing:0!important;table-layout:fixed!important;font-size:12px!important}
.agent-compact-table th{position:sticky;top:0;z-index:2;background:#eef3fb!important;color:#0f274b!important;font-size:11px!important;font-weight:950!important;text-align:left!important;padding:10px 9px!important;border-bottom:1px solid #d8e3f2!important;white-space:nowrap!important}
.agent-compact-table td{padding:9px!important;vertical-align:top!important;border-bottom:1px solid #edf2f8!important;border-right:1px solid #edf2f8!important;line-height:1.35!important;overflow:hidden!important;text-overflow:ellipsis!important}
.agent-compact-table tr:hover td{background:#f8fbff!important}
.agent-compact-table th:nth-child(1){width:82px}.agent-compact-table th:nth-child(2){width:118px}.agent-compact-table th:nth-child(3){width:75px}.agent-compact-table th:nth-child(4){width:108px}.agent-compact-table th:nth-child(5){width:165px}.agent-compact-table th:nth-child(6){width:130px}.agent-compact-table th:nth-child(7){width:96px}.agent-compact-table th:nth-child(8){width:250px}.agent-compact-table th:nth-child(9){width:150px}.agent-compact-table th:nth-child(10){width:150px}
.agent-pc-cell b{display:block;color:#001a3d;font-size:12.5px}.agent-pc-cell small,.agent-compact-table small{display:block;color:#64748b;font-size:11px;font-weight:750;margin-top:3px;line-height:1.35}.agent-time-cell{white-space:normal!important;color:#334155;font-weight:800}.agent-command-cell{max-width:250px!important}.agent-command-pill{display:inline-flex;max-width:100%;align-items:center;border-radius:999px;padding:4px 8px;font-size:10.5px;font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid #dbe4ef;background:#f8fafc;color:#334155}.agent-command-pill.is-ok{background:#ecfdf5;border-color:#bbf7d0;color:#166534}.agent-command-pill.is-error{background:#fff1f2;border-color:#fecdd3;color:#b91c1c}.agent-command-pill.is-wait{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.agent-command-error,.agent-command-ok{display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden!important;word-break:break-word;margin-top:5px!important;line-height:1.35!important}.agent-command-error{color:#dc2626!important}.agent-command-ok{color:#059669!important}.agent-feature-cell{display:flex;gap:5px;flex-wrap:wrap}.agent-state-chip{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:22px;padding:0 8px;border-radius:999px;font-size:10px;font-weight:950;border:1px solid #dbe4ef;white-space:nowrap}.agent-state-chip.state-locked{background:#fee2e2;border-color:#fecaca;color:#991b1b}.agent-state-chip.state-open{background:#dcfce7;border-color:#bbf7d0;color:#166534}.agent-state-chip.state-wait{background:#f1f5f9;border-color:#cbd5e1;color:#475569}.agent-remote-cell{overflow:visible!important}.agent-remote-form{display:flex;gap:6px;align-items:flex-start;flex-wrap:wrap}.agent-action-menu{position:relative;display:inline-block}.agent-action-menu summary{list-style:none;cursor:pointer}.agent-action-menu summary::-webkit-details-marker{display:none}.agent-action-panel{position:absolute;right:0;top:calc(100% + 6px);z-index:20;display:grid;grid-template-columns:1fr 1fr;gap:6px;min-width:245px;padding:10px;border:1px solid #cfe0f3;border-radius:14px;background:#fff;box-shadow:0 18px 40px rgba(15,35,80,.18)}.agent-maint-menu .agent-action-panel{grid-template-columns:1fr;min-width:220px}.agent-action-panel form{display:grid;gap:6px}.agent-action-panel input[type=password]{height:32px;border:1px solid #dbe4ef;border-radius:9px;padding:0 9px;box-sizing:border-box}.agent-action-btn{height:30px;border:1px solid #dbe4ef;border-radius:9px;background:#fff;color:#0f274b;font-size:11px;font-weight:900;cursor:pointer}.agent-action-btn.lock{background:#fff1f2;border-color:#fecdd3;color:#b91c1c}.agent-action-btn.open{background:#ecfdf5;border-color:#bbf7d0;color:#166534}.agent-action-btn.warn{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.agent-action-btn.danger{background:#fee2e2;border-color:#fecaca;color:#991b1b}.agent-action-btn:hover{filter:brightness(.98);transform:translateY(-1px)}
@media(max-width:1200px){.agent-command-note{flex:1 1 100%;margin-left:0}.agent-table-wrap{max-height:none}.agent-action-panel{right:auto;left:0}}

/* ===== V38 agent menu visible inline ===== */
.agent-table-wrap{overflow:auto!important;overflow-y:visible!important;max-height:none!important}
.agent-compact-table td.agent-remote-cell{overflow:visible!important;min-width:160px!important;background:#fbfdff!important}
.agent-remote-form{display:flex!important;gap:6px!important;align-items:flex-start!important;flex-wrap:wrap!important}
.agent-action-menu{position:static!important;display:inline-block!important;margin-top:0!important;vertical-align:top!important}
.agent-action-menu summary.btn{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:31px!important;background:#fff!important;color:#0f274b!important;border:1px solid #cfe0f3!important;box-shadow:0 4px 12px rgba(15,35,80,.08)!important}
.agent-action-menu[open] summary.btn{background:#123f88!important;color:#fff!important;border-color:#123f88!important}
.agent-action-panel{position:static!important;right:auto!important;top:auto!important;z-index:auto!important;display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important;width:100%!important;min-width:0!important;margin-top:8px!important;padding:10px!important;border:1px solid #bfd4f2!important;border-radius:12px!important;background:#ffffff!important;box-shadow:0 8px 18px rgba(15,35,80,.12)!important;box-sizing:border-box!important}
.agent-maint-menu{display:block!important;margin-top:6px!important;width:100%!important}
.agent-maint-menu .agent-action-panel{grid-template-columns:1fr!important;width:100%!important;min-width:0!important}
.agent-action-panel form{display:grid!important;gap:7px!important;margin:0!important}
.agent-action-btn{min-width:0!important;width:100%!important;white-space:normal!important;line-height:1.2!important;padding:0 8px!important}
.agent-command-note{font-family:Tahoma,"Segoe UI","Noto Sans",Arial,sans-serif!important}
.agent-state-chip,.agent-command-pill,.agent-action-btn,.agent-action-menu summary{font-family:Tahoma,"Segoe UI","Noto Sans",Arial,sans-serif!important}


/* ===== V39 real agent feature state ===== */
.agent-feature-cell{display:flex!important;gap:5px!important;flex-wrap:wrap!important;align-items:flex-start!important}
.agent-feature-cell .agent-state-chip{min-width:64px!important;justify-content:flex-start!important;padding:0 8px!important}
.agent-feature-time{flex:1 1 100%;color:#64748b!important;font-size:10px!important;margin-top:2px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.agent-legend .agent-command-note{font-size:11px!important;color:#475569!important}

/* ===== V40 agent toggle action buttons ===== */
.agent-toggle-panel{grid-template-columns:1fr!important;min-width:180px!important}
.agent-toggle-panel .agent-action-btn{height:34px!important;font-size:12px!important;text-align:left!important;justify-content:flex-start!important;padding:0 10px!important;border-width:1px!important}
.agent-toggle-panel .agent-action-btn.lock{background:#fee2e2!important;border-color:#fca5a5!important;color:#991b1b!important;box-shadow:0 5px 12px rgba(220,38,38,.10)!important}
.agent-toggle-panel .agent-action-btn.open{background:#dcfce7!important;border-color:#86efac!important;color:#166534!important;box-shadow:0 5px 12px rgba(22,163,74,.10)!important}
.agent-toggle-panel .agent-action-btn.warn{background:#fff7ed!important;border-color:#fdba74!important;color:#9a3412!important}
.agent-toggle-panel .agent-action-btn.danger{background:#fee2e2!important;border-color:#fca5a5!important;color:#991b1b!important}
.agent-state-chip{font-family:Tahoma,"Segoe UI",Arial,sans-serif!important}

/* ===== V41 direct red green agent actions ===== */
.agent-compact-table th:nth-child(8){width:260px!important}
.agent-compact-table th:nth-child(9){width:250px!important}
.agent-direct-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important;align-items:stretch!important}
.agent-direct-actions .agent-action-btn{height:32px!important;font-size:11.5px!important;text-align:center!important;justify-content:center!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;padding:0 8px!important}
.agent-direct-actions .agent-action-menu{grid-column:auto!important;width:100%!important}
.agent-direct-actions .agent-action-menu summary.btn{width:100%!important;box-sizing:border-box!important;height:32px!important;min-height:32px!important}
.agent-direct-actions .agent-action-panel{width:100%!important;box-sizing:border-box!important}
.agent-action-btn.neutral{background:#eff6ff!important;border-color:#bfdbfe!important;color:#1d4ed8!important;box-shadow:0 5px 12px rgba(37,99,235,.10)!important}
.agent-action-sample{display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:999px;font-size:10.5px;font-weight:950;border:1px solid #dbe4ef}.agent-action-sample.lock{background:#fee2e2;border-color:#fecaca;color:#991b1b}.agent-action-sample.open{background:#dcfce7;border-color:#bbf7d0;color:#166534}
.agent-legend{align-items:center!important}

/* ===== V42 merged agent control status column ===== */
.agent-compact-table th:nth-child(8){width:260px!important}
.agent-compact-table th:nth-child(9){width:290px!important}
.agent-control-state-cell{background:#fbfdff!important;overflow:visible!important}
.agent-state-row{display:flex!important;gap:5px!important;flex-wrap:wrap!important;margin-bottom:8px!important}
.agent-state-row .agent-state-chip{min-width:76px!important;height:22px!important;justify-content:flex-start!important;padding:0 8px!important;font-size:10px!important}
.agent-menu-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important;align-items:start!important}
.agent-menu-actions>.agent-action-btn.neutral{height:32px!important;width:100%!important}
.agent-menu-actions .agent-action-menu{width:100%!important}
.agent-menu-actions .agent-action-menu summary.btn{width:100%!important;height:32px!important;min-height:32px!important;box-sizing:border-box!important;background:#fff!important}
.agent-menu-actions .agent-action-menu[open] summary.btn{background:#123f88!important;color:#fff!important;border-color:#123f88!important}
.agent-menu-actions .agent-action-panel{width:100%!important;min-width:0!important;box-sizing:border-box!important;grid-template-columns:1fr!important}
.agent-control-menu{grid-column:2!important;grid-row:1!important}.agent-system-menu{grid-column:1 / -1!important}.agent-maint-menu{display:block!important;margin-top:7px!important;width:100%!important}.agent-maint-menu summary.btn{width:100%!important;box-sizing:border-box!important;text-align:center!important;justify-content:center!important}.agent-maint-menu .agent-action-panel{width:100%!important;box-sizing:border-box!important}
.agent-action-sample{display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:999px;font-size:10.5px;font-weight:950;border:1px solid #dbe4ef}.agent-action-sample.lock{background:#fee2e2;border-color:#fecaca;color:#991b1b}.agent-action-sample.open{background:#dcfce7;border-color:#bbf7d0;color:#166534}


/* ===== V43 agent merged dropdown readable ===== */
.agent-control-state-cell .agent-action-panel{position:static!important;right:auto!important;top:auto!important;margin-top:7px!important;width:100%!important;min-width:0!important;box-shadow:0 10px 24px rgba(15,35,80,.10)!important;border-color:#bfdbfe!important;background:#ffffff!important}
.agent-control-state-cell .agent-action-menu{display:block!important;width:100%!important}
.agent-control-state-cell .agent-action-menu summary.btn{font-weight:950!important;color:#123f88!important;border-color:#bfdbfe!important;background:linear-gradient(180deg,#fff,#eff6ff)!important}
.agent-control-state-cell .agent-action-menu[open] summary.btn{background:#123f88!important;color:#fff!important;border-color:#123f88!important}
.agent-control-state-cell .agent-action-btn{font-family:inherit!important;white-space:nowrap!important}
.agent-control-state-cell .agent-action-btn.lock{background:#fee2e2!important;border-color:#fecaca!important;color:#b91c1c!important}
.agent-control-state-cell .agent-action-btn.open{background:#dcfce7!important;border-color:#bbf7d0!important;color:#166534!important}
.agent-menu-actions{grid-template-columns:1fr 1fr!important}
.agent-system-menu,.agent-maint-menu{grid-column:1 / -1!important}
.agent-state-row .agent-state-chip{font-family:inherit!important}


/* ===== V44 direct agent toggle buttons ===== */
.agent-direct-control-cell{min-width:260px!important;background:#fbfdff!important}
.agent-direct-control-form{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important;align-items:stretch!important}
.agent-toggle-btn{height:34px!important;border-radius:10px!important;border:1px solid #dbe4ef!important;font-size:11px!important;font-weight:950!important;cursor:pointer!important;box-shadow:0 6px 16px rgba(15,35,80,.06)!important;white-space:nowrap!important}
.agent-toggle-btn.locked{background:#fee2e2!important;border-color:#fecaca!important;color:#b91c1c!important}
.agent-toggle-btn.open{background:#dcfce7!important;border-color:#bbf7d0!important;color:#166534!important}
.agent-toggle-btn.wait{background:#f1f5f9!important;border-color:#cbd5e1!important;color:#475569!important}
.agent-toggle-btn.neutral{background:#eff6ff!important;border-color:#bfdbfe!important;color:#1d4ed8!important}
.agent-toggle-btn:hover,.agent-direct-control-cell .agent-action-btn:hover{filter:brightness(.98)!important;transform:translateY(-1px)!important}
.agent-more-menu{display:block!important;width:100%!important}
.agent-direct-control-form .agent-more-menu{grid-column:1 / -1!important}
.agent-more-menu summary.btn,.agent-direct-maint-menu summary.btn{width:100%!important;height:32px!important;box-sizing:border-box!important;justify-content:center!important;background:linear-gradient(180deg,#fff,#eff6ff)!important;color:#123f88!important;border-color:#bfdbfe!important;font-weight:950!important}
.agent-more-menu[open] summary.btn,.agent-direct-maint-menu[open] summary.btn{background:#123f88!important;color:#fff!important;border-color:#123f88!important}
.agent-direct-control-cell .agent-action-panel{position:static!important;margin-top:7px!important;width:100%!important;min-width:0!important;box-sizing:border-box!important;grid-template-columns:1fr!important;box-shadow:0 10px 24px rgba(15,35,80,.10)!important}
.agent-direct-maint-menu{display:block!important;width:100%!important;margin-top:7px!important}
.agent-direct-maint-menu .agent-action-panel{display:grid!important;grid-template-columns:1fr!important}
.agent-compact-table th:nth-child(9){width:310px!important}


/* ===== V45 USB device controls ===== */
.agent-usb-device-menu{display:block!important;width:100%!important;margin-top:7px!important}
.agent-usb-device-menu summary.btn{width:100%!important;height:32px!important;box-sizing:border-box!important;justify-content:center!important;background:linear-gradient(180deg,#fff,#eef7ff)!important;color:#0f3f7a!important;border-color:#bfdbfe!important;font-weight:950!important}
.agent-usb-device-menu[open] summary.btn{background:#0f3f7a!important;color:#fff!important;border-color:#0f3f7a!important}
.agent-usb-device-list{display:grid!important;gap:8px!important;margin-top:8px!important;padding:8px!important;border:1px solid #dbeafe!important;border-radius:12px!important;background:#f8fbff!important}
.agent-usb-device-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important;align-items:center!important;padding:8px!important;border:1px solid #e2e8f0!important;border-radius:10px!important;background:#fff!important}
.agent-usb-device-name b{display:block!important;color:#0f172a!important;font-size:11px!important}.agent-usb-device-name small{display:block!important;color:#64748b!important;font-size:10px!important;margin-top:2px!important}.agent-usb-device-actions{display:flex!important;gap:6px!important;align-items:center!important}.agent-usb-empty{font-size:11px!important;color:#64748b!important;font-weight:800!important;padding:6px!important}.clip1{display:inline-block!important;max-width:220px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;vertical-align:bottom!important}
.note-cell{word-break:break-word;overflow-wrap:anywhere}
.notice{padding:10px 14px;border-radius:10px;font-weight:700;font-size:13px;margin-bottom:12px;border:1px solid transparent}
.notice.ok{background:#e6f7ec;color:#166534;border-color:#bbe8cc}
.notice.err{background:#fdecec;color:#a11d1d;border-color:#f5c2c2}
.agent-hw-list{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important;margin-top:8px!important;padding:8px!important;border:1px solid #dbeafe!important;border-radius:12px!important;background:#f8fbff!important}.agent-hw-block{display:grid!important;gap:4px!important;padding:8px!important;border:1px solid #e2e8f0!important;border-radius:10px!important;background:#fff!important}.agent-hw-block b{color:#0f172a!important;font-size:11px!important}.agent-hw-row span{display:block!important;color:#334155!important;font-size:10.5px!important}.agent-hw-row small{display:block!important;color:#64748b!important;font-size:10px!important;margin-top:2px!important}.agent-hw-empty{font-size:11px!important;color:#64748b!important;font-weight:800!important}


/* ===== V46 Agent scale to 300 PCs ===== */
.agent-list-tools{display:grid!important;grid-template-columns:minmax(260px,1fr) 150px 145px auto!important;gap:8px!important;align-items:center!important;margin:10px 0 12px!important;padding:8px!important;border:1px solid #dbeafe!important;border-radius:14px!important;background:linear-gradient(180deg,#f8fbff,#fff)!important}
.agent-list-search input,.agent-list-select{height:34px!important;border:1px solid #cfe0f3!important;border-radius:10px!important;background:#fff!important;color:#0f274b!important;font-weight:800!important;padding:0 11px!important;box-sizing:border-box!important;width:100%!important}.agent-list-info{justify-self:end;color:#315174!important;font-size:12px!important;font-weight:950!important}
.agent-table-wrap{max-height:calc(100vh - 230px)!important;overflow:auto!important;border-radius:14px!important}.agent-compact-table{table-layout:fixed!important;width:100%!important}.agent-compact-table .agent-table-head th{position:sticky!important;top:0!important;z-index:4!important;background:#eaf2fb!important;box-shadow:0 1px 0 #d7e5f5!important}.agent-compact-table td{padding:8px 9px!important;vertical-align:top!important}.agent-compact-table tr.agent-row{height:auto!important}.agent-compact-table th:nth-child(1){width:88px!important}.agent-compact-table th:nth-child(2){width:130px!important}.agent-compact-table th:nth-child(3){width:90px!important}.agent-compact-table th:nth-child(4){width:118px!important}.agent-compact-table th:nth-child(5){width:190px!important}.agent-compact-table th:nth-child(6){width:150px!important}.agent-compact-table th:nth-child(7){width:112px!important}.agent-compact-table th:nth-child(8){width:250px!important}.agent-compact-table th:nth-child(9){width:330px!important}
.agent-command-cell{max-width:250px!important}.agent-command-error,.agent-command-ok{-webkit-line-clamp:1!important;font-size:10.5px!important}.agent-command-cell:hover .agent-command-error,.agent-command-cell:hover .agent-command-ok{-webkit-line-clamp:4!important;background:#fff!important;position:relative!important;z-index:5!important}.agent-direct-control-form{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:5px!important}.agent-toggle-btn{height:28px!important;font-size:10.5px!important;padding:0 6px!important}.agent-direct-control-form .agent-more-menu{grid-column:auto!important}.agent-more-menu summary.btn,.agent-direct-maint-menu summary.btn,.agent-usb-device-menu summary.btn{height:28px!important;font-size:10.5px!important}.agent-usb-device-menu,.agent-direct-maint-menu{margin-top:5px!important}.agent-usb-device-list{max-height:220px!important;overflow:auto!important}.agent-pager{display:flex!important;justify-content:flex-end!important;align-items:center!important;gap:8px!important;margin-top:10px!important}.agent-page-label{min-width:70px!important;text-align:center!important;color:#315174!important;font-size:12px!important;font-weight:950!important}.agent-pager button:disabled{opacity:.45!important;cursor:not-allowed!important}
@media(max-width:1100px){.agent-list-tools{grid-template-columns:1fr 1fr!important}.agent-list-info{justify-self:start}.agent-direct-control-form{grid-template-columns:1fr 1fr!important}}


/* ===== V47 Agent department filter + reusable table tools ===== */
.agent-list-tools{grid-template-columns:minmax(240px,1fr) 135px 180px 145px auto!important}
.agent-compact-table th:nth-child(3){width:88px!important}.agent-compact-table th:nth-child(4){width:120px!important}.agent-compact-table th:nth-child(5){width:112px!important}.agent-compact-table th:nth-child(6){width:180px!important}.agent-compact-table th:nth-child(7){width:145px!important}.agent-compact-table th:nth-child(8){width:112px!important}.agent-compact-table th:nth-child(9){width:240px!important}.agent-compact-table th:nth-child(10){width:330px!important}
.itdsv-table-tools{display:grid;grid-template-columns:minmax(220px,1fr) 145px auto;gap:8px;align-items:center;margin:8px 0;padding:8px;border:1px solid #dbeafe;border-radius:12px;background:#f8fbff}.itdsv-table-tools input,.itdsv-table-tools select{height:32px;border:1px solid #cfe0f3;border-radius:9px;padding:0 10px;font-weight:800}.itdsv-table-info{justify-self:end;color:#315174;font-size:12px;font-weight:950}.table-scroll table th{position:sticky;top:0;z-index:2}@media(max-width:1100px){.agent-list-tools{grid-template-columns:1fr 1fr!important}}

/* Can doi do rong cot: cot it du lieu (so, pill ngan) hep lai, cot nhieu
   dong/chu (thiet bi, lenh, thao tac) rong hon. table-layout:fixed de cac
   width nay co hieu luc that (khong bi noi dung day gian). */
#agentFleetTable{table-layout:fixed;width:100%}
#agentFleetTable th,#agentFleetTable td{overflow-wrap:break-word;word-break:break-word}
#agentFleetTable th:nth-child(1){width:70px}   /* Trang thai */
#agentFleetTable th:nth-child(2){width:130px}  /* PC */
#agentFleetTable th:nth-child(3){width:95px}   /* Nguoi dung */
#agentFleetTable th:nth-child(4){width:100px}  /* Phong ban */
#agentFleetTable th:nth-child(5){width:210px}  /* Thiet bi */
#agentFleetTable th:nth-child(6){width:140px}  /* Mang */
#agentFleetTable th:nth-child(7){width:105px}  /* Lan cuoi thay */
#agentFleetTable th:nth-child(8){width:190px}  /* Bao mat agent */
#agentFleetTable th:nth-child(9){width:220px}  /* Lenh gan nhat */
#agentFleetTable th:nth-child(10){width:140px} /* Thao tac nhanh */

#swDeviceTable{table-layout:fixed;width:100%}
#swDeviceTable th,#swDeviceTable td{overflow-wrap:break-word;word-break:break-word}

#softwareAssignmentTable{table-layout:fixed;width:100%}
#softwareAssignmentTable th,#softwareAssignmentTable td{overflow-wrap:break-word;word-break:break-word}
#softwareAssignmentTable th:nth-child(1){width:26%} /* Phan mem + ghi chu -- can nhieu cho nhat */
#softwareAssignmentTable th:nth-child(2){width:10%} /* Ban quyen/License ID */
#softwareAssignmentTable th:nth-child(3){width:18%} /* PC/Tai san */
#softwareAssignmentTable th:nth-child(4){width:8%}  /* Seats */
#softwareAssignmentTable th:nth-child(5){width:14%} /* Nguoi nhan */
#softwareAssignmentTable th:nth-child(6){width:10%} /* Trang thai */
#softwareAssignmentTable th:nth-child(7){width:14%} /* Thao tac */
#swDeviceTable th:nth-child(1){width:100px!important}  /* PC -- !important: khong cho JS auto-balance (app.js) ghi de bang inline style, cot nay chi can gon */
#swDeviceTable th:nth-child(2){width:95px!important}   /* Online */
#swDeviceTable th:nth-child(3){width:110px!important}  /* Nguoi dung */
#swDeviceTable th:nth-child(4){width:85px!important}   /* Phong ban */
#swDeviceTable th:nth-child(5){width:180px}  /* OS/IP/MAC */
#swDeviceTable th:nth-child(6){width:55px}   /* So phan mem */
#swDeviceTable th:nth-child(7){width:55px}   /* Da cap phep */
#swDeviceTable th:nth-child(8){width:150px}  /* Can ra soat */
#swDeviceTable th:nth-child(9){width:135px}  /* Vi pham */
#swDeviceTable th:nth-child(10){width:160px} /* Ban quyen HDH/Office */
#swDeviceTable th:nth-child(11){width:105px} /* Quet */
#swDeviceTable th:nth-child(12){width:160px} /* Trang thai */
#swDeviceTable th:nth-child(13){width:210px} /* Thao tac */

/* .ds-eff-grid-5 tung chi duoc scope rieng cho #dsServerHealthCard, nen bat
   ky card nao khac dung class nay (vd "Bao mat & phan cung mo rong") deu roi
   ve CSS mac dinh .ds-eff-grid (4 cot), khien o thu 5 troi xuong dong rieng
   va chong len o ben canh. Tong quat hoa rule nay cho MOI card dung
   .ds-eff-grid-5, khong rieng 1 ID nao. Dat o cuoi file de thang cac rule
   .ds-eff-grid !important o tren (cung do specificity, uu tien theo thu tu). */
.ds-eff-grid-5{grid-template-columns:repeat(5,1fr)!important;gap:5px!important}
.ds-eff-grid-5 div{min-height:52px!important;padding:6px 2px!important}
.ds-eff-grid-5 span{font-size:11px!important}
.ds-eff-grid-5 b{display:inline!important;font-size:10.5px!important;margin:2px 4px 0 0!important}
.ds-eff-grid-5 small{font-size:10.5px!important}
@media(max-width:900px){.ds-eff-grid-5{grid-template-columns:repeat(3,1fr)!important}}


/* ===== Software cleanup / uninstall tab (swc) ===== */
.swc-stats{display:flex;gap:12px;flex-wrap:wrap;margin:14px 0 18px}
.swc-stat{flex:1;min-width:160px;background:linear-gradient(180deg,#ffffff,#fbfcfe);border:1px solid var(--line-soft);border-radius:14px;padding:14px 18px}
.swc-stat .n{font-size:26px;font-weight:800;line-height:1;color:var(--navy)}
.swc-stat .l{font-size:12px;color:var(--muted);margin-top:7px;font-weight:600}
.swc-stat.danger .n{color:var(--red)}
.swc-item{border:1px solid var(--line);border-radius:14px;margin-bottom:10px;background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden;transition:box-shadow .16s ease,border-color .16s ease}
.swc-item[open]{box-shadow:var(--shadow);border-color:#cbd8ec}
.swc-sum{list-style:none;cursor:pointer;display:flex;align-items:center;gap:13px;padding:15px 18px;border-left:4px solid var(--red)}
.swc-sum::-webkit-details-marker{display:none}
.swc-sum:hover{background:#fcfdff}
.swc-chev{flex:none;color:#94a3b8;transition:transform .18s ease}
.swc-item[open] .swc-chev{transform:rotate(90deg)}
.swc-pc{font-weight:700;font-size:15px;color:var(--text);letter-spacing:.2px}
.swc-dept{font-size:12px;color:var(--muted)}
.swc-state{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px}
.swc-state.on{background:#e7f7ec;color:#15803d}
.swc-state.off{background:#eef1f5;color:#64748b}
.swc-state .d{width:7px;height:7px;border-radius:50%;background:currentColor}
.swc-total{font-size:12.5px;color:var(--muted)}
.swc-spacer{flex:1}
.swc-vio{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca;font-weight:800;font-size:12px;padding:5px 13px;border-radius:999px;white-space:nowrap}
.swc-body{padding:2px 14px 14px 20px;background:#fcfdff;overflow-x:auto}
.swc-tbl{width:100%;min-width:1040px;border-collapse:separate;border-spacing:0}
.swc-tbl th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;padding:9px 12px;border-bottom:1px solid var(--line-soft)}
.swc-tbl td{padding:11px 12px;border-bottom:1px solid var(--line-soft);font-size:13px;vertical-align:middle}
.swc-tbl tr:last-child td{border-bottom:none}
.swc-tbl tbody tr:hover{background:#ffffff}
.swc-sw{display:block;font-weight:700;color:var(--text);line-height:1.35}
.swc-ver{display:block;font-size:10.5px;color:#64748b;font-family:ui-monospace,Menlo,Consolas,monospace;margin-top:4px;line-height:1.35}
.swc-pub{display:block;font-size:11px;color:#64748b;margin-top:3px}
.swc-reason{font-size:12px;color:#8a5a00}
.swc-risk{display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:.03em;padding:3px 9px;border-radius:6px}
.swc-risk.hi{background:#fee2e2;color:#b91c1c}
.swc-risk.md{background:#fff3e0;color:#b45309}
.swc-kind-chip{display:inline-flex;align-items:center;white-space:nowrap;border-radius:999px;padding:4px 9px;font-size:10.5px;font-weight:800;border:1px solid transparent}
.swc-kind-chip.software{background:#fff7ed;color:#c2410c;border-color:#fed7aa}
.swc-kind-chip.license{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}
.swc-kind-chip.activation{background:#ecfdf5;color:#047857;border-color:#a7f3d0}
.swc-cmd-status{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;border-radius:999px;padding:5px 10px;font-size:11px;font-weight:800;border:1px solid transparent}
.swc-cmd-status .dot{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 14%,transparent)}
.swc-cmd-status.idle{background:#f8fafc;color:#64748b;border-color:#e2e8f0}
.swc-cmd-status.queued{background:#fff7ed;color:#c2410c;border-color:#fed7aa}
.swc-cmd-status.running{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}
.swc-cmd-status.done{background:#ecfdf5;color:#15803d;border-color:#bbf7d0}
.swc-cmd-status.failed{background:#fef2f2;color:#b91c1c;border-color:#fecaca}
.swc-cmd-detail{display:block;max-width:220px;margin-top:5px;color:#64748b;font-size:10.5px;line-height:1.35}
.swc-action-stack{display:flex;justify-content:flex-end;align-items:center;gap:8px;flex-wrap:wrap}
.swc-action-stack form{display:inline-flex;margin:0}
.swc-del{display:inline-flex;align-items:center;gap:6px;background:#fff;color:#b91c1c;border:1px solid #fecaca;border-radius:8px;padding:6px 12px;font-size:12.5px;font-weight:600;cursor:pointer;transition:all .14s}
.swc-del:hover{background:#b91c1c;color:#fff;border-color:#b91c1c}
.swc-del.swc-activate{background:#ecfdf5;color:#047857;border-color:#6ee7b7}
.swc-del.swc-activate:hover{background:#047857;color:#fff;border-color:#047857}
.swc-del.swc-force-uninstall{background:#fff1f2;color:#be123c;border-color:#fecdd3}
.swc-del.swc-force-uninstall:hover{background:#be123c;color:#fff;border-color:#be123c}
.swc-del:disabled{background:#f8fafc;color:#94a3b8;border-color:#e2e8f0;cursor:not-allowed;box-shadow:none}
.swc-empty{text-align:center;color:var(--muted);padding:36px 0;font-size:14px}

.adp-badge{display:inline-block;padding:1px 8px;border-radius:10px;font-size:11px;font-weight:800}
.adp-lan{background:#dcfce7;color:#166534}
.adp-wifi{background:#dbeafe;color:#1e40af}
.adp-virtual{background:#f1f5f9;color:#64748b}
.adp-bt{background:#ede9fe;color:#6d28d9}
.adp-other{background:#fef3c7;color:#92400e}

/* Dashboard operational cards: keep the three live summaries readable enough
   to support a quick decision without replacing their dedicated detail pages. */
.ds-bottom-grid .ds-card.ds-ops-card{
  height:auto!important;
  min-height:276px!important;
  overflow:visible!important;
}
.ds-ops-meta{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:-2px 0 9px;font-size:10.5px;font-weight:800;color:#64748b;white-space:nowrap;overflow:hidden}
.ds-ops-meta small{overflow:hidden;text-overflow:ellipsis;font-size:10.5px;font-weight:800}
.ds-live{display:inline-flex;align-items:center;gap:5px;color:#15803d;min-width:0;overflow:hidden;text-overflow:ellipsis}
.ds-live.pending{color:#a16207}
.ds-live i,.ds-ops-lines i{width:7px;height:7px;border-radius:50%;background:currentColor;display:inline-block;flex:none}
.ds-ops-kpis{margin-bottom:9px}
.ds-ops-kpis div{position:relative}
.ds-ops-kpis div.warn{background:#fffaf0!important;border-color:#f9d58b!important}
.ds-ops-kpis div.danger{background:#fff4f4!important;border-color:#f5b8b8!important}
.ds-ops-kpis small{line-height:1.25!important}
.ds-ops-kpis em{font-style:normal;white-space:nowrap}
.ds-ops-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}
.ds-ops-detail-grid div{min-width:0;border-top:1px solid #edf2f7;padding-top:7px}
.ds-ops-detail-grid small{display:block;color:#64748b;font-size:10px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ds-ops-detail-grid b{display:block;margin-top:2px;color:#0f274f;font-size:10.5px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ds-ops-lines{display:flex;gap:6px;overflow:hidden;margin-top:1px}
.ds-ops-lines span{display:inline-flex;align-items:center;gap:4px;min-width:0;max-width:100%;border:1px solid #e1e9f4;border-radius:999px;padding:3px 7px;color:#64748b;font-size:9.5px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ds-ops-lines .up{color:#15803d;background:#f0fdf4;border-color:#bbf7d0}.ds-ops-lines .down{color:#b91c1c;background:#fff5f5;border-color:#fecaca}
.ds-ops-lines .pending{color:#a16207;background:#fffbeb;border-color:#fde68a}
.ds-ops-coverage{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:8px}
.ds-ops-coverage span{display:grid;grid-template-columns:38px 1fr;align-items:center;gap:5px;min-width:0}
.ds-ops-coverage small{font-size:10px;color:#64748b;font-weight:900}
.ds-ops-coverage i{height:5px;border-radius:99px;overflow:hidden;background:#e5edf7}
.ds-ops-coverage i b{display:block;height:100%;background:#2563eb;border-radius:99px}
@media(max-width:1050px){.ds-bottom-grid .ds-card.ds-ops-card{min-height:0!important}.ds-ops-meta{white-space:normal}.ds-ops-coverage{margin-bottom:3px}}

.lc-badge{display:inline-block;padding:1px 8px;border-radius:10px;font-size:11px;font-weight:800}
.lc-summary{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:8px 2px 12px;font-size:12px}
.lc-commercial{background:#fee2e2;color:#991b1b}
.lc-freeware{background:#dcfce7;color:#166534}
.lc-open_source{background:#dbeafe;color:#1e40af}
.lc-driver{background:#e0e7ff;color:#3730a3}
.lc-vendor_bundled{background:#fef3c7;color:#92400e}
.lc-vendor_managed{background:#e0f2fe;color:#075985}
.lc-banned{background:#111827;color:#fca5a5}
.lc-unknown{background:#f1f5f9;color:#64748b}
.login-password-wrap{position:relative}
.login-password-wrap input{width:100%;padding-right:44px!important;box-sizing:border-box}
.login-password-toggle{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:34px;height:34px;border:0;border-radius:8px;background:transparent;color:#64748b;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:7px}
.login-password-toggle:hover{background:#eef4ff;color:#1d63ff}
.login-password-toggle:focus-visible{outline:2px solid #1d63ff;outline-offset:1px}
.login-password-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.login-password-toggle svg[hidden]{display:none}
.user-group-header td{background:#f1f5f9!important;padding:7px 10px!important;font-size:11.5px!important;border-bottom:1px solid var(--line)!important;border-top:1px solid var(--line)!important}
.user-group-header td b{color:#0f172a;font-size:12.5px}
.ns-state{display:flex!important;flex-direction:column;gap:5px;padding:12px 14px;border-radius:10px;background:#f8fafc;border:1px solid #e2e8f0;border-left:4px solid #94a3b8;margin-bottom:12px}
.ns-state.ok{border-left-color:#16a34a;background:#f0fdf4}
.ns-state.warn{border-left-color:#dc2626;background:#fef2f2}
.ns-state b{font-size:14px;font-weight:800;color:#0f172a;display:block}
.ns-state span{font-size:12.5px;color:#475569;font-weight:600;display:block}
.ns-state small{font-size:11px;color:#94a3b8;font-weight:700;display:block}
.user-group-header td .muted{color:#64748b;font-weight:700}
.ns-note-form{margin:0}
.ns-note-form input{width:150px;height:28px!important;padding:2px 8px!important;font-size:11.5px!important;border:1px solid #e2e8f0;border-radius:6px;background:#fbfdff}
.ns-note-form input:focus{border-color:#93c5fd;background:#fff}
.ns-range-pills{display:flex;gap:6px}
.ns-range-pills a.pill{text-decoration:none;cursor:pointer}
.ns-range-pills a.pill.active{background:var(--blue);color:#fff;border-color:var(--blue)}

/* Dashboard redesign 19/08/2026: bieu do that theo du lieu (thay bar/line gia) */

/* DLP trend -- bieu do cot SVG that (thay <i style="height:%"> khong mau) */
.ds-bars-svg{width:100%;height:140px;overflow:visible}
.ds-bars-axis{stroke:#e2eaf5;stroke-width:1}
.ds-bar-rect{fill:#93c5fd;transition:fill .15s ease}
.ds-bar-rect.current{fill:#1d4ed8}
.ds-bar-rect:hover{fill:#3b82f6}
.ds-bars-labels{display:flex;margin-top:6px}
.ds-bars-labels span{flex:1;text-align:center;color:#94a3b8;font-size:10px;font-weight:800}
.ds-bars-labels span.current{color:#1d4ed8;font-weight:950}

/* Asset distribution -- diem du lieu that tren duong (thay duong cong gia) */
.ds-trend-dot{fill:#fff;stroke:#1d4ed8;stroke-width:2}
.ds-trend-dot.current{fill:#f97316;stroke:#fff;stroke-width:2}

/* Nhan ngan gon dau nhom card van hanh (Server/FortiGate/SNMP) -- 1 dong,
   khong them card/khoi rieng (nguoi dung tu choi ban tach khoi truoc do). */
.ds-group-label{grid-column:1/-1;margin:4px 2px -2px;font-size:12px;font-weight:900;letter-spacing:.04em;text-transform:uppercase;color:#64748b}

/* Dashboard cards use one consistent visual height, matching the NAS widget.
   Content remains compact inside each card; only short cards receive the
   same breathing room so rows align cleanly. */
.ds-dashboard .ds-card{min-height:330px!important}
.ds-dashboard .ds-card{display:flex;flex-direction:column;gap:10px}
.ds-dashboard .ds-card{justify-content:space-between}
.ds-dashboard .ds-card-head{flex:0 0 auto;margin-bottom:0!important}
.ds-dashboard .ds-card > table,.ds-dashboard .ds-card > .ds-table{flex:1 1 auto}
.ds-dashboard .ds-ops-kpis{flex:0 0 auto;align-items:stretch}
.ds-dashboard .ds-ops-kpis>div{min-height:74px;display:flex;flex-direction:column;justify-content:center}
.ds-dashboard .ds-ops-detail-grid{margin-top:auto}
@media(max-width:1050px){.ds-dashboard .ds-card{min-height:0!important}}
.ds-windows-server-list{display:grid;gap:10px;margin-top:10px}.ds-windows-server-row{border:1px solid #e1e8f3;border-radius:10px;padding:10px 11px;background:#fbfdff}.ds-windows-server-title{display:flex;align-items:center;gap:7px;min-width:0}.ds-windows-server-title>span{width:8px;height:8px;border-radius:50%;background:#d64545;display:inline-flex;flex:0 0 auto}.ds-windows-server-title>span.up{background:#17a660}.ds-windows-server-title b{font-size:13px;color:#123a70}.ds-windows-server-title small{color:#637795;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ds-windows-server-title em{margin-left:auto;font-size:10px;font-style:normal;font-weight:700}.ds-windows-server-title em.ok{color:#14894e}.ds-windows-server-title em.danger{color:#c23b3b}.ds-windows-server-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:9px}.ds-windows-server-metrics span{border:1px solid #e3eaf4;border-radius:7px;padding:6px 7px;display:flex;flex-direction:column;gap:2px}.ds-windows-server-metrics small{font-size:10px;color:#6d7f99}.ds-windows-server-metrics b{font-size:12px;color:#183e73}.ds-windows-server-metrics span.warn{border-color:#f0bd74;background:#fffaf0}.ds-windows-server-foot{display:flex;justify-content:space-between;gap:8px;margin-top:8px;font-size:10px;color:#70819b}.ds-windows-server-foot span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ds-windows-server-foot small{white-space:nowrap}@media(max-width:700px){.ds-windows-server-metrics{grid-template-columns:repeat(2,1fr)}.ds-windows-server-foot{display:block}.ds-windows-server-foot small{display:block;margin-top:3px}}
.ds-monitor-detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.ds-monitor-detail-grid>div{border:1px solid #e1e8f3;border-radius:9px;background:#fbfdff;padding:8px;min-width:0}.ds-monitor-detail-grid b{display:block;font-size:11px;color:#173e76;margin-bottom:5px}.ds-monitor-detail-grid span{display:block;font-size:10px;color:#637795;line-height:1.55;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}.ds-monitor-detail-grid span.up{color:#14894e}.ds-monitor-detail-grid span.down{color:#c23b3b}.ds-monitor-detail-wide{grid-template-columns:1.35fr .65fr}.ds-monitor-detail-wide>div:first-child{max-height:190px;overflow:auto}
.ds-monitor-detail-grid span.idle{color:#64748b}
.ds-network-snmp-card .ds-monitor-detail-wide>div:first-child{max-height:none;overflow:visible}.ds-l3-port-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 8px}.ds-l3-port-list span{font-size:9.5px!important;line-height:1.35!important}
.ds-monitor-alert-box{margin-top:10px;border:1px solid #d9eee2;border-radius:9px;background:#f5fcf8;padding:8px 10px}.ds-monitor-alert-box.has-alert{border-color:#f2c6a0;background:#fff8f2}.ds-monitor-alert-box b{display:block;font-size:11px;color:#7b4a12;margin-bottom:3px}.ds-monitor-alert-box span{display:block;font-size:10px;line-height:1.5;color:#9a4c23}.ds-monitor-alert-box .ok-text{color:#168554}
.ds-monitor-alert-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.ds-monitor-alert-grid>div{border:1px solid #e1e8f3;border-radius:9px;background:#fbfdff;padding:8px}.ds-monitor-alert-grid b{display:block;font-size:11px;color:#173e76;margin-bottom:4px}.ds-monitor-alert-grid span{display:block;font-size:10px;color:#637795;line-height:1.55}.ds-monitor-alert-grid span:not(:last-child){border-bottom:1px dashed #e7edf5;padding-bottom:2px;margin-bottom:2px}
.ds-quality-detail{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.ds-quality-detail>div{border:1px solid #e1e8f3;border-radius:9px;background:#fbfdff;padding:9px}.ds-quality-detail b{display:block;font-size:11px;color:#173e76;margin-bottom:5px}.ds-quality-detail span{display:block;font-size:10px;color:#637795;line-height:1.6}.ds-quality-detail strong{color:#183e73}.ds-quality-detail .mini-progress{margin:5px 0;height:6px}.ds-quality-status{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}.ds-quality-status span{border:1px solid #e3eaf4;border-radius:8px;padding:6px 7px;font-size:10px;color:#637795;background:#fff}.ds-quality-status span i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#16a34a;margin-right:4px}.ds-quality-status span.warn{border-color:#f0bd74;background:#fffaf0}.ds-quality-status span.warn i{background:#e59b1a}.ds-quality-status b{color:#173e76}
@media(max-width:700px){.ds-monitor-alert-grid{grid-template-columns:1fr}}
@media(max-width:700px){.ds-monitor-detail-grid,.ds-monitor-detail-wide{grid-template-columns:1fr}}
.ds-dashboard .ds-ops-meta{min-height:22px}.ds-dashboard .ds-ops-kpis{min-height:88px}.ds-dashboard .ds-monitor-detail-grid:last-child,.ds-dashboard .ds-monitor-alert-box,.ds-dashboard .ds-quality-status{margin-top:auto}.ds-dashboard .ds-monitor-alert-grid{margin-top:10px}.ds-dashboard .ds-quality-detail{min-height:112px}.ds-dashboard .ds-quality-status{min-height:52px;align-content:end}.ds-dashboard .ds-windows-server-kpis{grid-template-columns:repeat(4,1fr)!important}
.ds-dashboard .ds-card{overflow:visible}.ds-dashboard .ds-monitor-alert-grid span,.ds-dashboard .ds-quality-detail span{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
.ds-server-storage{border:1px solid #e1e8f3;border-radius:9px;background:#fbfdff;padding:8px 10px;margin-top:10px}.ds-server-storage>b{display:block;font-size:11px;color:#173e76;margin-bottom:5px}.ds-server-storage>div{display:grid;grid-template-columns:35px 72px 1fr;align-items:center;gap:7px;margin-top:5px;font-size:10px;color:#637795}.ds-server-storage>div>span:nth-child(2){text-align:right;color:#183e73}.ds-server-storage i{height:6px;background:#e7edf5;border-radius:8px;overflow:hidden}.ds-server-storage i em{display:block;height:100%;background:#2684ff;border-radius:8px}.ds-server-storage>small{display:block;font-size:10px;color:#7b8799}.ds-server-storage .storage-total{margin-top:6px;color:#183e73;font-weight:700}
.ds-server-backup{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:7px;margin-top:10px;border:1px solid #d9eee2;border-radius:9px;background:#f5fcf8;padding:8px 10px;font-size:10px}.ds-server-backup b{font-size:11px;color:#173e76}.ds-server-backup span{color:#637795;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ds-server-backup small{grid-column:1/-1;color:#637795}.ds-server-backup.backup-missing{border-color:#f0bd74;background:#fffaf0}.ds-server-backup.backup-missing b{color:#8a5613}.ds-server-backup.backup-ok span:last-of-type{color:#168554}@media(max-width:700px){.ds-server-backup{grid-template-columns:1fr 1fr}.ds-server-backup span:last-of-type{grid-column:1/-1}}
.ds-ops-detail-grid>div.warn{border:1px solid #f0bd74;background:#fffaf0;border-radius:8px;padding:6px}.ds-ops-detail-grid>div.ok{border:1px solid #d9eee2;background:#f5fcf8;border-radius:8px;padding:6px}.ds-ops-detail-grid>div.warn b{color:#9a4c23}.ds-ops-detail-grid>div.ok b{color:#168554}
.ds-dashboard .ds-bottom-grid>.ds-ops-card,.ds-dashboard .ds-bottom-grid>.ds-fx-card,.ds-dashboard .ds-bottom-grid>.ds-quality-card{min-height:330px!important;min-width:0}.ds-dashboard .ds-fx-card{overflow:visible!important}.ds-dashboard .ds-quality-card{overflow:visible!important}.ds-dashboard .ds-fx-card .ds-rate-table{flex:1 1 auto;min-width:0}.ds-dashboard .ds-fx-card .ds-rate-cell b{min-width:0}.ds-dashboard .ds-quality-card .ds-quality-detail,.ds-dashboard .ds-quality-card .ds-quality-status{flex-shrink:0}
.ds-dashboard .ds-bottom-grid{grid-auto-rows:minmax(330px,auto)!important;align-items:stretch!important}.ds-dashboard .ds-bottom-grid>.ds-card{height:100%;box-sizing:border-box!important;min-height:330px!important}.ds-dashboard .ds-bottom-grid>.ds-card:first-child{min-height:330px!important}.ds-dashboard .ds-bottom-grid>.ds-card:not(.ds-ops-card):not(.ds-fx-card):not(.ds-quality-card){min-height:330px!important}
.ds-dashboard .ds-bottom-grid{grid-auto-rows:auto!important;row-gap:14px!important}.ds-dashboard .ds-bottom-grid>.ds-card{height:auto!important}
.ds-dashboard .ds-group-label{margin:0 2px -5px!important;line-height:1.2}
@media(max-width:700px){.ds-dashboard .ds-windows-server-kpis{grid-template-columns:repeat(2,1fr)!important}}
.ds-dashboard .ds-quality-card .ds-eff-grid{gap:7px!important}.ds-dashboard .ds-quality-card .ds-eff-grid>div{min-height:66px!important;padding:7px 4px!important}.ds-dashboard .ds-quality-card .ds-eff-grid span{font-size:18px}.ds-dashboard .ds-quality-card .ds-eff-grid b{font-size:16px;margin:4px 0 1px}.ds-dashboard .ds-quality-card .ds-quality-detail{min-height:88px!important}.ds-dashboard .ds-quality-card .ds-quality-status{min-height:44px!important}.ds-dashboard .ds-quality-card .ds-quality-status span{padding:5px 6px!important}
.ds-dashboard .ds-extended-card,.ds-dashboard .ds-iot-card,.ds-dashboard .ds-quality-card{min-height:430px!important;height:430px!important;box-sizing:border-box}.ds-dashboard .ds-extended-card .ds-monitor-alert-grid{margin-top:auto}
.ds-quality-extra{display:grid;grid-template-columns:1.1fr .9fr;gap:8px;margin-top:10px}.ds-quality-extra>div{border:1px solid #e1e8f3;border-radius:9px;background:#fbfdff;padding:8px}.ds-quality-extra b{display:block;font-size:11px;color:#173e76;margin-bottom:5px}.ds-quality-extra span{display:grid;grid-template-columns:72px 1fr 26px;align-items:center;gap:5px;font-size:10px;color:#637795;margin-top:5px}.ds-quality-extra span>em{font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ds-quality-extra span>i{height:5px;border-radius:8px;background:#e7edf5;overflow:hidden}.ds-quality-extra span>i>b{height:100%;background:#2684ff;border-radius:8px}.ds-quality-extra span>strong{font-size:10px;color:#173e76;text-align:right}.ds-quality-extra>div:last-child span{display:flex;justify-content:space-between;gap:6px}.ds-quality-extra>div:last-child strong{color:#173e76}@media(max-width:700px){.ds-quality-extra{grid-template-columns:1fr}}
.ds-dashboard .ds-bottom-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}.ds-dashboard .ds-fx-card{min-width:0!important}.ds-dashboard .ds-fx-card .ds-card-head{gap:6px}.ds-dashboard .ds-fx-card .ds-card-head h3{font-size:14px}.ds-dashboard .ds-fx-card .ds-rate-table th,.ds-dashboard .ds-fx-card .ds-rate-table td{padding:5px 3px!important;font-size:11px!important}.ds-dashboard .ds-fx-card .ds-rate-flag{width:25px!important;height:18px!important;flex-basis:25px!important}.ds-dashboard .ds-fx-card .ds-rate-cell{gap:5px!important}.ds-dashboard .ds-fx-card .ds-rate-val{font-size:12px!important}.ds-dashboard .ds-fx-card .ds-rate-chg{gap:3px!important}.ds-dashboard .ds-fx-card .ds-rate-chg small{min-width:44px!important;font-size:9px!important}.ds-dashboard .ds-fx-card .ds-rate-chg em{min-width:38px!important;height:17px!important;font-size:9px!important}
.ds-dashboard .ds-main-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}.ds-dashboard .ds-fx-main-card{min-height:330px!important;overflow:visible!important}.ds-dashboard .ds-fx-main-card .ds-rate-table{flex:1 1 auto}
.ds-dashboard .ds-machine-card .ds-asset-lines{max-height:236px!important;gap:6px!important;overflow:auto}.ds-dashboard .ds-machine-card .ds-asset-line{padding:8px 10px!important;min-height:0!important;border-radius:9px}.ds-dashboard .ds-machine-card .ds-asset-line b{font-size:11px!important}.ds-dashboard .ds-machine-card .ds-asset-line small{font-size:10px!important}.ds-dashboard .ds-machine-card .ds-asset-inline{gap:6px!important}
.ds-asset-status-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:0 0 9px}.ds-asset-status-strip>span{display:grid;grid-template-columns:8px 1fr;column-gap:5px;align-items:center;border:1px solid #e2eaf4;border-radius:8px;padding:6px 7px;background:#fbfdff;min-width:0}.ds-asset-status-strip i{width:8px;height:8px;border-radius:50%;grid-row:1/3;background:#2563eb}.ds-asset-status-strip i.stock{background:#16a34a}.ds-asset-status-strip i.repair{background:#f59e0b}.ds-asset-status-strip i.disposed{background:#94a3b8}.ds-asset-status-strip b{font-size:13px;color:#173e76;line-height:1}.ds-asset-status-strip small{font-size:9px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:700px){.ds-asset-status-strip{grid-template-columns:1fr}.ds-asset-status-strip>span{grid-template-columns:8px 1fr}}
.ds-dashboard .ds-fx-top-card{width:100%;min-height:0!important;height:auto!important;margin:0 0 14px!important;padding:12px 14px!important}.ds-dashboard .ds-fx-top-card .ds-card-head{margin-bottom:6px!important}.ds-dashboard .ds-fx-top-card .ds-rate-table{flex:none!important}
.ds-dashboard .ds-quality-card{order:6}.ds-dashboard .ds-fx-card{order:7}.ds-dashboard .ds-extended-card,.ds-dashboard .ds-iot-card{order:8}.ds-dashboard .ds-bottom-grid>.ds-card:not(.ds-quality-card):not(.ds-fx-card):not(.ds-extended-card):not(.ds-iot-card){order:0}
@media(max-width:1450px){.ds-dashboard .ds-bottom-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}@media(max-width:700px){.ds-dashboard .ds-bottom-grid{grid-template-columns:1fr!important}}
@media(max-width:1450px){.ds-dashboard .ds-main-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}@media(max-width:700px){.ds-dashboard .ds-main-grid{grid-template-columns:1fr!important}}
.ds-dashboard .ds-ops-card{padding:14px!important}.ds-dashboard .ds-ops-card>.ds-card-head{padding-bottom:9px;border-bottom:1px solid #edf2f7}.ds-dashboard .ds-ops-card>.ds-ops-meta{padding:5px 8px;border:1px solid #e5edf7;border-radius:8px;background:#fbfdff}.ds-dashboard .ds-ops-kpis>div{border-radius:10px!important;box-shadow:0 2px 7px rgba(20,54,100,.035)}.ds-dashboard .ds-ops-detail-grid>div{border:1px solid #e4ebf4;border-radius:8px;background:#fbfdff;padding:7px 8px;min-height:42px}.ds-dashboard .ds-ops-detail-grid>div small{white-space:normal}.ds-dashboard .ds-ops-lines{flex-wrap:wrap;overflow:visible;gap:5px}.ds-dashboard .ds-ops-lines span{flex:1 1 auto;max-width:none;justify-content:center}.ds-dashboard .ds-monitor-detail-grid>div,.ds-dashboard .ds-server-storage,.ds-dashboard .ds-server-backup{box-shadow:0 2px 7px rgba(20,54,100,.025)}
.ds-dashboard .ds-windows-server-card .ds-server-storage{min-height:88px;box-sizing:border-box}
.ds-dashboard .ds-windows-server-card>.ds-monitor-alert-box{min-height:62px;box-sizing:border-box}
.ds-dashboard .ds-linux-server-card{min-height:430px!important;height:430px!important;box-sizing:border-box;justify-content:flex-start!important}.ds-dashboard .ds-linux-server-card .ds-ops-detail-grid>div{min-height:56px!important;box-sizing:border-box}.ds-dashboard .ds-linux-server-card .ds-monitor-detail-grid>div{min-height:98px;box-sizing:border-box;display:flex;flex-direction:column}.ds-dashboard .ds-linux-server-card .ds-monitor-detail-grid>div>span{min-height:16px;display:flex;align-items:center}.ds-dashboard .ds-linux-server-card>.ds-server-backup{min-height:52px;box-sizing:border-box;margin-top:auto}
.ds-iot-list{display:grid;gap:5px;margin-top:2px}.ds-iot-row{display:grid;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:7px;min-width:0;border:1px solid #e4ebf4;border-radius:8px;background:#fbfdff;padding:5px 7px}.ds-iot-row>i{width:8px;height:8px;border-radius:50%;background:#94a3b8}.ds-iot-row.online>i{background:#16a34a}.ds-iot-row.offline>i{background:#dc2626}.ds-iot-row>div{min-width:0}.ds-iot-row b,.ds-iot-row small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ds-iot-row b{font-size:10px;color:#173e76}.ds-iot-row small{font-size:9px;color:#64748b;margin-top:1px}.ds-iot-row em{font-size:9px;font-style:normal;font-weight:800;color:#64748b;white-space:nowrap}.ds-iot-row.online em{color:#168554}.ds-iot-row.offline em{color:#b45309}.ds-iot-empty{display:block;padding:12px 0;color:#64748b;text-align:center;font-size:10px}
.ds-asset-total-line{margin:-3px 0 2px;padding:5px 8px;border:1px solid #e3eaf4;border-radius:8px;background:#fbfdff;color:#637795;font-size:10px;font-weight:800;text-align:center}
.ds-dlp-breakdown{display:grid;grid-template-columns:112px 1fr;gap:12px;align-items:center;margin-top:12px;padding-top:10px;border-top:1px solid #edf2f7}.ds-dlp-donut{width:102px;height:102px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;box-shadow:inset 0 0 0 14px #fff}.ds-dlp-donut span{font-size:19px;font-weight:950;color:#173e76;line-height:1}.ds-dlp-donut small{font-size:9px;color:#64748b;margin-top:3px}.ds-dlp-legend{display:grid;grid-template-columns:1fr 1fr;gap:5px 10px}.ds-dlp-legend>div{display:grid;grid-template-columns:8px 1fr auto;align-items:center;gap:5px;font-size:10px;color:#64748b;min-width:0}.ds-dlp-legend i{width:8px;height:8px;border-radius:50%}.ds-dlp-legend span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ds-dlp-legend b{color:#173e76;font-size:10px}
@media(max-width:700px){.ds-dlp-breakdown{grid-template-columns:90px 1fr}.ds-dlp-donut{width:84px;height:84px}.ds-dlp-legend{grid-template-columns:1fr}}

/* The two Linux cards expose the same six sections.  Give those sections a
   shared row map so differing text lengths never push one card out of line. */
.ds-dashboard .ds-linux-server-card{display:grid!important;grid-template-rows:30px 26px 70px 112px 98px 55px;gap:8px!important;height:auto!important;min-height:459px!important;align-content:start;justify-content:initial!important}
.ds-dashboard .ds-linux-server-card>.ds-card-head,.ds-dashboard .ds-linux-server-card>.ds-ops-meta,.ds-dashboard .ds-linux-server-card>.ds-ops-kpis,.ds-dashboard .ds-linux-server-card>.ds-ops-detail-grid,.ds-dashboard .ds-linux-server-card>.ds-monitor-detail-grid,.ds-dashboard .ds-linux-server-card>.ds-server-backup{margin:0!important;min-height:0!important;box-sizing:border-box}
.ds-dashboard .ds-linux-server-card>.ds-ops-meta{height:26px}
.ds-dashboard .ds-linux-server-card>.ds-ops-kpis{height:70px}
.ds-dashboard .ds-linux-server-card>.ds-ops-detail-grid{height:112px;grid-auto-rows:minmax(0,1fr)}
.ds-dashboard .ds-linux-server-card>.ds-ops-detail-grid>div{min-height:0!important}
.ds-dashboard .ds-linux-server-card>.ds-monitor-detail-grid{height:98px;margin-top:0!important}
.ds-dashboard .ds-linux-server-card>.ds-monitor-detail-grid>div{min-height:0!important}
.ds-dashboard .ds-linux-server-card>.ds-server-backup{height:55px;min-height:55px!important;margin-top:0!important}
/* Keep the three ITDSV service names legible inside their fixed dashboard row. */
#dsServerHealthCard .ds-service-status{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:5px;min-height:18px!important;width:100%;line-height:1.25}
#dsServerHealthCard .ds-service-status em{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:normal}
#dsServerHealthCard .ds-service-status small{font-size:9px!important;line-height:1.2!important;white-space:nowrap;color:inherit!important}

/* Put the four servers together before the network and storage monitors. */
.ds-dashboard .ds-bottom-grid>.ds-linux-server-card,.ds-dashboard .ds-bottom-grid>.ds-windows-server-card{order:1!important}
.ds-dashboard .ds-unifi-card{border-top:1px solid #dbe5f0!important;justify-content:flex-start!important;gap:10px!important}.ds-dashboard .ds-unifi-card .ds-card-head h3{color:#123d72}.ds-dashboard .ds-unifi-card .ds-ops-kpis>div:first-child{border-color:#b9def9;background:#f3faff}.ds-dashboard .ds-unifi-card .ds-monitor-detail-grid{margin-top:10px!important}.ds-dashboard .ds-unifi-client-strip{margin-top:10px!important}
.unifi-console{border-color:#dce6f1!important;background:#f8fafc!important;box-shadow:0 7px 20px rgba(32,73,120,.06)!important}.unifi-console .card-head-row{padding-bottom:10px;border-bottom:1px solid #e2eaf2}.unifi-console .compact-kpi-grid{gap:10px}.unifi-console .kpi-card{background:#fff!important;border:1px solid #dfe8f2!important;border-top:3px solid #2185d0!important;box-shadow:none!important}.unifi-console .kpi-card.kpi-green{border-top-color:#18a66d!important}.unifi-console .kpi-card.kpi-orange{border-top-color:#e7a226!important}.unifi-console .kpi-card.kpi-red{border-top-color:#df5965!important}.unifi-console .unifi-device-table th{background:#edf4fa;color:#47627f;font-size:11px}.unifi-console .unifi-device-table td{background:#fff;border-color:#e6edf4}.unifi-console .unifi-device-table tr:hover td{background:#f5fbff}.unifi-state-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;vertical-align:middle;background:#95a4b8}.unifi-state-dot.is-online{background:#22ad70;box-shadow:0 0 0 3px #e6f8ef}.unifi-state-dot.is-offline{background:#e04c59;box-shadow:0 0 0 3px #fff0f1}
.ds-dashboard .ds-bottom-grid>.ds-ops-card:not(.ds-linux-server-card):not(.ds-windows-server-card){order:2!important}
.server-fleet-card{margin-bottom:14px}.server-fleet-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.server-fleet-item{min-width:0;border:1px solid #dfe8f3;border-radius:10px;background:#fbfdff;padding:10px;display:grid;grid-template-columns:1fr auto;gap:7px;text-decoration:none;color:inherit}.server-fleet-item:hover{border-color:#9ebbe3;background:#f7fbff}.server-fleet-item>div:first-child b,.server-fleet-item>div:first-child small{display:block}.server-fleet-item>div:first-child b{font-size:12px;color:#173e76}.server-fleet-item>div:first-child small,.server-fleet-item>small{font-size:10px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.server-fleet-item .pill{align-self:start;font-size:9px}.server-fleet-item.is-online .pill{background:#ecfdf5;color:#168554}.server-fleet-item.is-offline .pill{background:#fff1f2;color:#b91c1c}.server-fleet-metrics{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.server-fleet-metrics span{border-radius:7px;background:#f1f6fc;padding:5px;font-size:9px;color:#64748b;text-align:center}.server-fleet-metrics b{display:block;margin-top:2px;color:#173e76;font-size:11px}@media(max-width:1100px){.server-fleet-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.server-fleet-grid{grid-template-columns:1fr}}
.server-performance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.server-performance-panel{min-width:0;min-height:320px;display:flex;flex-direction:column}.server-performance-panel .card-head-row{margin-bottom:10px}.server-performance-panel .pill{font-size:10px}.server-performance-panel.is-online .pill{background:#ecfdf5;color:#168554}.server-performance-panel.is-offline .pill{background:#fff1f2;color:#b91c1c}.server-performance-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.server-performance-kpis span{border:1px solid #e2eaf4;border-radius:9px;background:#fbfdff;padding:8px 5px;text-align:center;color:#64748b;font-size:10px}.server-performance-kpis b{display:block;margin-top:3px;color:#173e76;font-size:14px}.server-performance-info{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.server-performance-info span{min-width:0;border:1px solid #e2eaf4;border-radius:8px;background:#fbfdff;padding:7px}.server-performance-info small,.server-performance-info b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.server-performance-info small{font-size:10px;color:#64748b}.server-performance-info b{margin-top:3px;font-size:10px;color:#173e76}.server-performance-detail{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.server-performance-detail>div{min-width:0;border:1px solid #e1e8f3;border-radius:9px;background:#fbfdff;padding:8px}.server-performance-detail b,.server-performance-detail span{display:block;font-size:10px;line-height:1.55}.server-performance-detail b{color:#173e76;margin-bottom:3px}.server-performance-detail span{color:#637795;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.server-performance-detail span.up{color:#168554}.server-performance-detail span.down{color:#b91c1c}@media(max-width:900px){.server-performance-grid{grid-template-columns:1fr}}@media(max-width:600px){.server-performance-kpis{grid-template-columns:repeat(2,1fr)}.server-performance-info,.server-performance-detail{grid-template-columns:1fr}}
.server-command-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 14px;padding:14px 16px;border:1px solid #dce7f5;border-radius:13px;background:linear-gradient(105deg,#fff,#f5f9ff)}.server-command-head h2{margin:0;color:#102d5f;font-size:19px}.server-command-head p{margin:4px 0 0;color:#6b7e9b;font-size:11px;font-weight:700}.server-command-live,.server-state{display:inline-flex;align-items:center;gap:6px;color:#168554;font-weight:800;font-size:11px;white-space:nowrap}.server-command-live i,.server-state i{width:8px;height:8px;border-radius:50%;background:currentColor}.server-performance-grid{gap:14px}.server-performance-panel{min-height:405px;padding:15px!important;border-top:3px solid #71b3ff;box-shadow:0 8px 20px rgba(24,61,112,.06)}.server-performance-panel.is-online{border-top-color:#24a66a}.server-performance-panel.is-offline{border-top-color:#df6c6c}.server-performance-title{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.server-performance-title>div{display:flex;align-items:center;gap:9px;min-width:0}.server-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#edf5ff;font-size:16px;flex:none}.server-performance-title h3{margin:0;color:#122f61;font-size:15px}.server-performance-title small{display:block;margin-top:2px;color:#6c7f9b;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.server-performance-meta{display:flex;justify-content:space-between;gap:9px;margin:9px 0 11px;padding-bottom:9px;border-bottom:1px solid #e9eef6;color:#71819b;font-size:10px}.server-performance-meta span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.server-performance-kpis{gap:6px}.server-performance-kpis span{padding:7px 5px;background:#f9fbfe;font-size:9.5px}.server-performance-kpis b{font-size:14px}.server-performance-kpis i{display:block;height:4px;margin-top:5px;overflow:hidden;border-radius:6px;background:#e4ebf5}.server-performance-kpis i em{display:block;height:100%;border-radius:6px;background:#2f80ed}.server-performance-kpis span:nth-child(2) i em{background:#18a765}.server-performance-kpis span:nth-child(3) i em{background:#e7a02e}.server-performance-kpis small{display:block;margin-top:5px;font-size:8.5px;color:#71819b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.server-performance-info{margin-top:9px}.server-performance-info span{padding:7px 8px}.server-performance-detail{margin-top:9px;flex:1}.server-performance-detail>div{padding:8px}.server-performance-detail>div>b{font-size:11px;margin-bottom:5px}.server-performance-detail>div>span{display:grid;grid-template-columns:minmax(0,1fr) 54px 32px;align-items:center;gap:6px;line-height:1.35;margin-top:4px;color:#637795}.server-performance-detail>div>span>em{font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.server-performance-detail>div>span>i{height:5px;overflow:hidden;border-radius:7px;background:#e6edf6}.server-performance-detail>div>span>i>b{display:block;height:100%;margin:0;background:#2f80ed;border-radius:7px}.server-performance-detail>div>span>strong{text-align:right;color:#27446f;font-size:9px}.server-performance-detail>div:last-child>span{grid-template-columns:8px minmax(0,1fr) auto}.server-performance-detail>div:last-child>span>i{width:7px;height:7px;border-radius:50%;background:#22a565}.server-performance-detail>div:last-child>span.down>i{background:#d95c5c}.server-performance-detail>div:last-child>span.up{color:#168554}.server-performance-detail>div:last-child>span.down{color:#b94a4a}@media(max-width:900px){.server-performance-grid{grid-template-columns:1fr}}@media(max-width:600px){.server-command-head{align-items:flex-start;flex-direction:column}.server-performance-kpis{grid-template-columns:repeat(2,1fr)}.server-performance-info,.server-performance-detail{grid-template-columns:1fr}}
.server-performance-panel{min-height:620px}.server-performance-info span small:last-child{margin-top:3px;font-size:9px}.server-health-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}.server-health-grid>div{min-width:0;border:1px solid #e1e8f3;border-radius:9px;background:#fbfdff;padding:8px}.server-health-grid b{display:block;color:#173e76;font-size:10.5px;margin-bottom:4px}.server-health-grid span{display:flex;justify-content:space-between;gap:7px;font-size:9.5px;line-height:1.55;color:#64748b}.server-health-grid em{font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.server-health-grid strong{font-size:9.5px;color:#168554;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.server-health-grid .health-bad strong{color:#b94a4a}.server-alert-strip{display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px;align-items:start;margin-top:9px;padding:7px 9px;border:1px solid #ccebd9;border-radius:8px;background:#f2fbf6;color:#167a50;font-size:9.5px;line-height:1.35}.server-alert-strip b{white-space:nowrap}.server-alert-strip span{overflow:hidden;text-overflow:ellipsis}.server-alert-strip.has-alerts{background:#fff8ed;border-color:#f2ca84;color:#9a5a00}.server-trend{margin-top:9px;padding-top:8px;border-top:1px solid #e8eef6}.server-trend-head{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#173e76}.server-trend-head span{color:#74839a;font-size:9px}.server-mini-charts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:6px}.server-mini-charts span{display:block;min-width:0;border:1px solid #e5ecf5;border-radius:7px;padding:4px 5px;background:#fcfdff}.server-mini-charts em{display:block;font-style:normal;color:#71819b;font-size:8px;font-weight:800}.server-mini-charts svg{display:block;width:100%;height:31px;margin:1px 0}.server-mini-charts small{display:block;color:#173e76;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.server-trend-empty{display:block;margin-top:7px;color:#71819b;font-size:9px;text-align:center;padding:6px;background:#fbfdff;border:1px dashed #dce7f3;border-radius:7px}@media(max-width:700px){.server-performance-panel{min-height:0}.server-health-grid{grid-template-columns:1fr}.server-mini-charts{grid-template-columns:repeat(2,minmax(0,1fr)}}
/* Server health is read from a distance on a monitoring wall: use a calmer,
   larger type scale without changing the density of other dashboard modules. */
.server-command-head h2{font-size:21px}.server-command-head p,.server-command-live,.server-state{font-size:12px}.server-performance-title h3{font-size:17px}.server-performance-title small,.server-performance-meta{font-size:11px}.server-performance-kpis span{font-size:11px;padding:9px 6px}.server-performance-kpis b{font-size:16px}.server-performance-kpis small{font-size:9.5px}.server-performance-info small{font-size:11px}.server-performance-info b{font-size:12px}.server-performance-detail>div>b,.server-health-grid b{font-size:12px}.server-performance-detail>div>span,.server-health-grid span{font-size:11px;line-height:1.6}.server-performance-detail>div>span>strong,.server-health-grid strong{font-size:10.5px}.server-alert-strip{font-size:11px;padding:8px 10px}.server-trend-head{font-size:11px}.server-trend-head span{font-size:10px}.server-mini-charts em,.server-mini-charts small{font-size:9.5px}.server-trend-empty{font-size:10.5px}
