:root{--bg:#070b18;--panel:rgba(255,255,255,.06);--stroke:rgba(255,255,255,.1);--text:#eef4ff;--muted:rgba(238,244,255,.72);--shadow: 0 12px 40px rgba(0,0,0,.35)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial;background:radial-gradient(1200px 600px at 10% 0%,rgba(83,137,255,.22),transparent 55%),radial-gradient(900px 520px at 90% 10%,rgba(56,240,184,.14),transparent 50%),var(--bg);color:var(--text)}.app{max-width:1260px;margin:0 auto;padding:18px;position:relative}.bgGlow{position:absolute;inset:-120px -40px auto -40px;height:240px;background:linear-gradient(90deg,#5389ff38,#38f0b81a);filter:blur(50px);opacity:.45;pointer-events:none}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid var(--stroke);border-radius:18px;background:linear-gradient(180deg,#ffffff14,#ffffff08);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.brand{display:flex;gap:12px;align-items:center}.logo{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:#5389ff38;border:1px solid rgba(83,137,255,.35);font-weight:800;letter-spacing:.5px}.title{font-size:18px;font-weight:800;line-height:1.1}.subtitle{color:var(--muted);font-size:13px;margin-top:3px}.card{margin-top:14px;border:1px solid var(--stroke);border-radius:18px;background:linear-gradient(180deg,#ffffff0f,#ffffff08);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.filters{display:grid;grid-template-columns:1fr 220px 120px;gap:12px;padding:14px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12px;color:var(--muted)}.field.end{align-items:stretch}.input,.select,textarea{width:100%;padding:11px 12px;border-radius:12px;border:1px solid var(--stroke);background:#0000002e;color:var(--text);outline:none}.input:focus,.select:focus,textarea:focus{border-color:#5389ff8c;box-shadow:0 0 0 4px #5389ff29}.btn{padding:11px 14px;border-radius:12px;border:1px solid var(--stroke);background:#ffffff0f;color:var(--text);cursor:pointer;transition:transform .05s ease,filter .15s ease,background .15s ease}.btn:hover{filter:brightness(1.1)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:linear-gradient(180deg,#5389ffa6,#5389ff59);border-color:#5389ffa6}.tableWrap{overflow:auto;border-radius:18px}table{width:100%;border-collapse:collapse;table-layout:fixed;min-width:0}thead th{position:sticky;top:0;z-index:1;text-align:left;font-size:12px;color:var(--muted);background:#00000038;border-bottom:1px solid var(--stroke);padding:12px 14px}tbody td{padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.06);vertical-align:top}tbody tr:hover{background:#ffffff08}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:1px solid var(--stroke);font-size:12px;white-space:nowrap}.dot{width:8px;height:8px;border-radius:50%;background:#eef4ffa6}.badge.ranh{border-color:#38f0b873;background:#38f0b81a}.badge.sudung{border-color:#5389ff8c;background:#5389ff1f}.badge.chomuon{border-color:#ffc4538c;background:#ffc4531a}.badge.hong{border-color:#ff537b8c;background:#ff537b1a}.actions{display:flex;gap:8px;flex-wrap:wrap}.note{font-size:12px;color:var(--muted);margin-top:6px}.modalOverlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:grid;place-items:center;padding:18px;z-index:50}.modal{width:100%;max-width:720px;border-radius:18px;border:1px solid var(--stroke);background:linear-gradient(180deg,#ffffff1a,#ffffff0d);box-shadow:0 22px 80px #0000008c;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:14px}.modal h2{margin:2px 0 12px;font-size:18px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modalFooter{margin-top:14px;display:flex;justify-content:flex-end;gap:10px}.helper{font-size:12px;color:var(--muted);margin-top:-4px}@media (max-width: 880px){.filters,.grid2{grid-template-columns:1fr}}td.col-location{white-space:nowrap;max-width:420px;overflow:hidden;text-overflow:ellipsis}td.col-iccid{white-space:nowrap;max-width:360px;overflow:hidden;text-overflow:ellipsis}th.stickyRight,td.stickyRight{position:sticky;right:0;background:#00000042;border-left:1px solid rgba(255,255,255,.06)}td.stickyRight{background:#0000002e}.menu{position:relative;display:inline-block}.menuBtn{display:inline-flex;align-items:center;gap:8px;padding:10px 12px}.menuPanel{position:absolute;right:0;top:calc(100% + 8px);min-width:200px;z-index:20;border-radius:14px;border:1px solid var(--stroke);background:linear-gradient(180deg,#ffffff1a,#ffffff0d);box-shadow:0 18px 60px #0000008c;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:8px}.menuItem{width:100%;text-align:left;padding:10px;border-radius:12px;border:1px solid transparent;background:transparent;color:var(--text);cursor:pointer}.menuItem:hover{background:#ffffff0f;border-color:#ffffff14}.menuItem:disabled{opacity:.5;cursor:not-allowed}.pager{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-top:1px solid rgba(255,255,255,.06)}.pager .left{color:var(--muted);font-size:13px}.pager .right{display:flex;align-items:center;gap:8px}.pageBtn{padding:8px 10px;border-radius:12px;border:1px solid var(--stroke);background:#ffffff0f;color:var(--text);cursor:pointer}.pageBtn:disabled{opacity:.5;cursor:not-allowed}.pageInfo{color:var(--muted);font-size:13px;min-width:90px;text-align:center}.pageSize{padding:8px 10px;border-radius:12px;border:1px solid var(--stroke);background:#0000002e;color:var(--text)}th,td{overflow:hidden;text-overflow:ellipsis}th.col-sosim,td.col-sosim{width:120px}th.col-iccid,td.col-iccid{width:260px}th.col-phanloai,td.col-phanloai{width:120px}th.col-vitri,td.col-vitri{width:320px}th.col-trangthai,td.col-trangthai{width:140px}th.col-nguoi,td.col-nguoi{width:150px}th.col-dt,td.col-dt{width:140px}th.col-actions,td.col-actions{width:170px}td.col-vitri,td.col-iccid{white-space:nowrap}th.stickyRight,td.stickyRight{background:#00000047}.splitWrap{display:flex;width:100%}.leftScroll{flex:1;overflow:auto;border-radius:18px 0 0 18px}.rightSidebar{width:190px;overflow:auto;border-left:1px solid rgba(255,255,255,.08);background:#00000029;border-radius:0 18px 18px 0}.sidebarHeader{position:sticky;top:0;z-index:2;padding:12px 14px;font-size:12px;color:var(--muted);background:#00000038;border-bottom:1px solid rgba(255,255,255,.1)}.sidebarRow{padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.06)}.sidebarRow:hover{background:#ffffff08}.leftScroll thead th{position:sticky;top:0;z-index:2}.splitHeight{max-height:560px}@media (max-width: 880px){.splitWrap{flex-direction:column}.rightSidebar{width:100%;border-left:none;border-top:1px solid rgba(255,255,255,.08);border-radius:0 0 18px 18px}.leftScroll{border-radius:18px 18px 0 0}}.leftScroll{overflow-y:auto!important;overflow-x:hidden!important}.leftScroll .tableWrap{overflow-y:auto;overflow-x:hidden}.leftScroll table{width:100%}th,td{white-space:nowrap}.actionBtns{display:flex;flex-direction:column;gap:8px}.actionBtns .btn{width:100%;justify-content:center}.actionBtns .btn.primary{background:#5389ff40}.actionBtns .btn.danger{border-color:#ff537b8c;background:#ff537b1a}.actionBtns .btn.warn{border-color:#ffc4538c;background:#ffc4531a}td.col-vitri{max-width:320px;overflow:hidden;text-overflow:ellipsis}td.col-iccid{max-width:260px;overflow:hidden;text-overflow:ellipsis}td.col-sosim{max-width:130px;overflow:hidden;text-overflow:ellipsis}th,td{font-size:13px}thead th{font-size:12px}th.col-sosim,td.col-sosim{width:110px}th.col-iccid,td.col-iccid{width:210px}th.col-phanloai,td.col-phanloai{width:90px}th.col-vitri,td.col-vitri{width:240px}th.col-trangthai,td.col-trangthai,th.col-nguoi,td.col-nguoi{width:120px}th.col-dt,td.col-dt{width:110px;display:table-cell}td.col-vitri{max-width:240px}td.col-iccid{max-width:210px}.rightSidebar{width:210px}.app{max-width:100%!important;width:100%;margin:0!important;padding:20px 28px}.card,.topbar{width:100%}tr.selectable{cursor:pointer}tr.selectable:hover td{background:#ffffff08}tr.selected td{background:#5389ff1a!important;box-shadow:inset 0 0 0 1px #5389ff33}.rightSidebar .emptyHint{padding:14px;color:var(--muted);font-size:13px}.sideMeta{padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.06)}.sideMeta .k{color:var(--muted);font-size:12px;margin-top:6px}.sideMeta .v{font-size:13px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
