/* GSR equipment tracker: shared DELCO/GSR shell from tv/styles.css + doosan.css. */
:root{
  --bg:#eef3f8;--ink:#132238;--muted:#65748a;--navy:#0b3f73;--navy-2:#145c99;
  --orange:#f06a22;--green:#0b8b63;--line:#d8e1eb;--good:#21a366;--warn:#f4b400;--bad:#e53935;
  --white:#fff;--shadow:0 10px 28px rgba(14,40,68,.14);
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);font-family:Arial,Helvetica,sans-serif;color:var(--ink)}
.shell{max-width:1560px;margin:0 auto;padding:0 0 12px}

/* Topbar — same navy gradient treatment as tv/styles.css */
.topbar{
  background:linear-gradient(135deg,#0a3766,#0d4a83);color:#fff;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:16px 28px;box-shadow:0 3px 12px rgba(0,0,0,.16);
}
.brand{display:flex;align-items:center;gap:16px;min-width:0}
.brand-mark{
  width:58px;height:58px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;
  border:3px solid rgba(255,255,255,.92);border-radius:50%;font-weight:900;font-size:19px;letter-spacing:.06em
}
.topbar h1{margin:0;font-size:clamp(19px,2.1vw,32px);line-height:1.05;letter-spacing:.015em}
.topbar h1 span{color:#ff8a32}
.topbar .brand p{margin:6px 0 0;font-size:clamp(9px,.8vw,13px);letter-spacing:.28em;opacity:.88}
.status-block{display:flex;align-items:center;gap:14px;flex:0 0 auto}
.sheet-link{
  padding:10px 15px;border:1px solid rgba(255,255,255,.5);border-radius:999px;
  background:rgba(255,255,255,.13);color:#fff;text-decoration:none;
  font-size:12px;font-weight:800;letter-spacing:.08em;white-space:nowrap
}
.sheet-link:hover{background:rgba(255,255,255,.24)}
.updated{display:grid;grid-template-columns:auto;justify-items:end;gap:2px}
.updated span{font-size:12px;opacity:.86;letter-spacing:.06em}
.updated strong{font-size:20px}

/* KPI tiles — metric cards with accent bars (styles.css .metric / doosan.css tiles) */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin:18px 22px}
.kpi{
  background:var(--white);border:1px solid var(--line);border-left:5px solid var(--navy-2);
  border-radius:11px;padding:14px 17px;display:grid;gap:5px;box-shadow:0 2px 10px rgba(20,60,90,.07)
}
.kpi span{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.kpi strong{font-size:33px;line-height:1;color:var(--navy)}
.kpi small{color:var(--muted);font-size:12px}
.kpi-next{border-left-color:#1775bd;background:linear-gradient(135deg,#f2f9ff,#e9f3fc)}
.kpi-next strong{color:#0b4f87}
.kpi-received{border-left-color:#16a276;background:linear-gradient(135deg,#f2fbf6,#e8f5ee)}
.kpi-received strong{color:#0b7a56}
.kpi-risk{border-left-color:#e53935;background:linear-gradient(135deg,#fff5f4,#ffeceb)}
.kpi-risk strong{color:#b3261e}
.kpi-missing{border-left-color:#f4b400;background:linear-gradient(135deg,#fffbef,#fff6e0)}
.kpi-missing strong{color:#8a6400}

/* Controls */
.controls{
  display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;
  margin:0 22px 12px;background:var(--white);border:1px solid var(--line);
  border-radius:11px;padding:13px 15px
}
.field{display:grid;gap:5px;color:#41546b;font-size:12px;font-weight:800;letter-spacing:.04em}
.field input,.field select{
  height:40px;min-width:200px;padding:0 11px;border:1px solid #c3d0de;border-radius:8px;
  background:#fff;font:inherit;font-size:14px;color:var(--ink)
}
.field input:focus,.field select:focus{outline:2px solid #9cc4e8;border-color:#5b9bd0}
.clear-btn{
  height:40px;padding:0 16px;border:1px solid var(--line);border-radius:8px;background:#f2f6fa;
  color:#3c5570;font-weight:800;font-size:13px;cursor:pointer
}
.clear-btn:hover{background:#e4edf6}

.notice{
  margin:0 26px 10px;padding:10px 14px;border-left:4px solid var(--orange);
  background:#fff8ee;border-radius:8px;color:#8a4b00;font-size:13px;font-weight:700
}
.notice:empty{display:none}

/* Panel — card with gradient head like tv .card */
.panel{
  margin:0 22px;background:var(--white);border:1px solid rgba(18,57,92,.14);
  border-radius:12px;overflow:hidden;box-shadow:var(--shadow);display:grid;grid-template-rows:auto 1fr auto
}
.panel-head{
  display:flex;align-items:center;gap:11px;padding:13px 18px;color:#fff;
  background:linear-gradient(90deg,#0b4f87,#1775bd);box-shadow:inset 0 -1px rgba(255,255,255,.15)
}
.panel-head h2{margin:0;font-size:16px;letter-spacing:.06em}
.head-icon{
  width:30px;height:30px;flex:0 0 auto;border-radius:50%;background:rgba(255,255,255,.18);
  border:2px solid rgba(255,255,255,.75);display:flex;align-items:center;justify-content:center;font-weight:900
}
.table-wrap{overflow:auto;max-height:72vh}
table{width:100%;min-width:1020px;border-collapse:collapse;font-size:13.5px}
thead th{
  position:sticky;top:0;z-index:2;text-align:left;background:#e8eef5;color:#34465a;
  padding:11px 10px;font-size:11px;letter-spacing:.07em;white-space:nowrap;border-bottom:2px solid #cfdbe8
}
tbody td{padding:9px 10px;border-top:1px solid #edf1f5;vertical-align:top}
tbody tr:hover{background:#f4f9fd}
tbody tr[data-status="Rủi ro/trễ"]{background:#fff5f3}
tbody tr[data-status="Rủi ro/trễ"]:hover{background:#ffefec}
tbody tr[data-status^="Đã nhận"]{background:#f4fbf7}
.col-id{width:86px}.col-group{width:230px}.col-qty{width:110px}.col-status{width:160px}.col-date{width:170px}

.id-chip{
  display:inline-block;padding:3px 9px;border-radius:6px;background:#e3eff9;color:#0b4f87;
  font-size:12px;font-weight:900;letter-spacing:.02em;white-space:nowrap
}
.item-button{
  padding:0;border:0;background:none;font:inherit;font-size:14px;font-weight:800;color:#12406e;
  text-align:left;cursor:pointer;line-height:1.35
}
.item-button:hover{text-decoration:underline}
.item-spec{display:block;margin-top:3px;color:var(--muted);font-size:12px;font-weight:400;line-height:1.35}
.group-chip{
  display:inline-block;padding:3px 8px;border-radius:999px;background:#eef4fa;border:1px solid #cfe0ef;
  color:#2c5378;font-size:11px;font-weight:800;line-height:1.25;white-space:nowrap
}
.qty-cell{font-weight:800;white-space:nowrap}

/* Status pills */
.badge{display:inline-block;padding:4px 11px;border-radius:999px;font-size:11.5px;font-weight:800;line-height:1.25;white-space:nowrap}
.badge-none{background:#eef2f6;color:#5a6c80;border:1px solid #d5dee8}
.badge-progress{background:#e3eff9;color:#0b4f87;border:1px solid #c2dcf1}
.badge-received{background:#e5f6ec;color:#0b7a56;border:1px solid #bfe6cf}
.badge-risk{background:#ffe9e6;color:#b3261e;border:1px solid #f3c1bd}
.badge-paused{background:#fff3d9;color:#8a6400;border:1px solid #eed9a3}

.date-cell{white-space:nowrap}
.date-cell small{display:block;margin-top:3px;color:var(--muted);font-size:11px}
.date-cell.overdue{color:#b3261e;font-weight:800}

.panel-foot{
  padding:11px 18px;border-top:1px solid var(--line);color:var(--muted);
  font-size:12.5px;font-weight:700;letter-spacing:.03em
}

.footer{
  margin-top:12px;padding:13px 28px;background:#0a3c6d;color:rgba(255,255,255,.9);
  display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:12px;letter-spacing:.04em
}

/* Detail dialog */
dialog{
  border:0;border-radius:14px;padding:0;max-width:680px;width:calc(100% - 32px);
  box-shadow:0 24px 60px rgba(10,40,70,.35);color:var(--ink)
}
dialog::backdrop{background:rgba(10,32,56,.55)}
.close{
  position:absolute;top:10px;right:12px;width:36px;height:36px;border:0;border-radius:50%;
  background:#eef3f8;color:#33475e;font-size:22px;line-height:1;cursor:pointer
}
.close:hover{background:#dce7f1}
.detail-head{padding:20px 24px 14px;background:linear-gradient(90deg,#0b4f87,#1775bd);color:#fff;border-radius:14px 14px 0 0}
.detail-head h2{margin:0;font-size:19px;line-height:1.3;padding-right:40px}
.detail-head p{margin:7px 0 0;font-size:12.5px;opacity:.92;letter-spacing:.05em}
.detail-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px 18px;
  padding:18px 24px 22px;margin:0
}
.detail-grid dt{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;margin-top:6px}
.detail-grid dd{margin:2px 0 0;font-size:14px;font-weight:700;line-height:1.45}
.detail-grid a{color:#0b4f87}

/* Mobile */
@media (max-width:900px){
  .topbar{flex-direction:column;align-items:flex-start}
  .status-block{width:100%;justify-content:space-between}
  .brand-mark{width:48px;height:48px;font-size:16px}
  .kpis{grid-template-columns:repeat(2,1fr);margin:14px}
  .controls,.panel{margin-left:14px;margin-right:14px}
  .field input,.field select{min-width:0;width:100%}
  .field{flex:1 1 160px}
  .table-wrap{max-height:none}
  table{min-width:0}
  .col-group,.col-date:nth-child(8),.col-qty:nth-child(5){display:none}
  .footer{flex-direction:column;text-align:center}
}
@media (max-width:560px){
  .kpis{grid-template-columns:1fr 1fr}
  .kpi strong{font-size:26px}
}
