/* =====================================================================
   TGDSM v1.3 - style.css | black header, black footer, white body
   ===================================================================== */
:root{
  --black:#0d0d10; --panel:#17171c; --line:#2a2a32;
  --accent:#f5a623; --accent-2:#ffc14d;
  --bg:#ffffff; --ink:#1c1c22; --muted:#6b6b76;
  --ok:#1a7f37; --warn:#b45309; --info:#1d4ed8; --err:#b91c1c;
  --radius:10px;
  --font:"Segoe UI Variable Text","Segoe UI",Inter,system-ui,-apple-system,Roboto,"Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:var(--font);background:var(--bg);color:var(--ink);
     font-size:15.5px;line-height:1.55;
     -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3{letter-spacing:.2px}
a{color:var(--info);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1200px;margin:0 auto;padding:0 16px}
.muted{color:var(--muted)} .small{font-size:12.5px} .grow{flex:1}

/* ---------- Header (black) ---------- */
.site-header{background:var(--black);color:#fff;border-bottom:3px solid var(--accent)}
.header-inner{display:flex;align-items:center;gap:18px;min-height:64px;flex-wrap:wrap;padding-top:6px;padding-bottom:6px}
.brand{display:flex;align-items:center;gap:10px;color:#fff}
.brand img{height:42px;width:auto}
.brand-text{display:flex;flex-direction:column;line-height:1.1}
.brand-text strong{font-size:18px;letter-spacing:1px}
.brand-text small{color:var(--accent);font-size:11px;letter-spacing:.5px}
.main-nav{display:flex;gap:4px;flex-wrap:wrap;margin-left:8px}
.main-nav a{color:#d8d8de;padding:8px 12px;border-radius:8px;font-weight:600;font-size:14px}
.main-nav a:hover{background:#222229;color:#fff;text-decoration:none}
.main-nav a.active{background:var(--accent);color:#111}
.user-box{margin-left:auto;display:flex;align-items:center;gap:10px}
.who{font-size:13px;color:#c9c9d1}

/* ---------- Footer (black) ---------- */
.site-footer{background:var(--black);color:#c9c9d1;margin-top:40px;border-top:3px solid var(--accent)}
.footer-inner{display:flex;gap:24px;flex-wrap:wrap;padding:22px 16px;align-items:flex-start}
.footer-inner strong{color:#fff}
.footer-contact{display:flex;flex-direction:column;gap:2px;font-size:13px}
.copy{margin-left:auto;font-size:12.5px;align-self:center}
.muted-light{color:#8f8f99;font-size:12px}

.main-content{padding:24px 16px 10px}
.page-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 14px}
.page-title h1{font-size:23px;margin:0;font-weight:800}

/* ---------- Cards / stats ---------- */
.card{background:#fff;border:1px solid #e3e3e8;border-radius:var(--radius);box-shadow:0 1px 3px rgba(0,0,0,.06);padding:18px;margin-bottom:18px}
.card h2{margin:0 0 12px;font-size:17px;font-weight:700}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:18px}
.stat{background:#fff;border:1px solid #e3e3e8;border-left:5px solid var(--accent);border-radius:var(--radius);padding:12px 14px}
.stat .n{font-size:27px;font-weight:800}
.stat .l{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.5px}
.stat.s-pending{border-left-color:var(--warn)}
.stat.s-transit{border-left-color:var(--info)}
.stat.s-delivered{border-left-color:var(--ok)}
.stat.s-info{border-left-color:#7c3aed}

/* ---------- Buttons ---------- */
.btn{display:inline-block;background:var(--accent);color:#111;border:1px solid transparent;padding:8px 14px;border-radius:8px;font-weight:700;cursor:pointer;font-size:14px;text-decoration:none;line-height:1.3;transition:background .15s ease}
.btn:hover{background:var(--accent-2);text-decoration:none}
.btn-outline{background:#fff;border-color:#c9c9d1;color:var(--ink)}
.btn-outline:hover{border-color:var(--accent);background:#fff}
.btn-danger{background:var(--err);color:#fff}
.btn-danger:hover{background:#d92d2d}
.btn-small{padding:4px 9px;font-size:12px;border-radius:6px}
.btn-ghost{background:transparent;border:1px solid #55555f;color:#e6e6ea}
.btn-ghost:hover{border-color:var(--accent);background:transparent;color:var(--accent)}

/* ---------- Forms ---------- */
form .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
label{display:block;font-weight:600;font-size:13px;margin-bottom:4px;color:#33333c}
input[type=text],input[type=password],input[type=email],input[type=number],input[type=date],select,textarea{
 width:100%;padding:9px 11px;border:1px solid #c9c9d1;border-radius:8px;font:inherit;font-size:14.5px;background:#fff;color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);border-color:var(--accent)}
textarea{min-height:70px;resize:vertical}
.field{margin-bottom:10px}
.checks{display:flex;flex-wrap:wrap;gap:6px 14px}
.checks label{font-weight:500;display:flex;align-items:center;gap:5px;margin:0}
fieldset{border:1px solid #e0e0e6;border-radius:8px;padding:12px;margin:0 0 12px}
legend{font-weight:700;font-size:13px;padding:0 6px}

/* ---------- Tables ---------- */
.table-wrap{overflow-x:auto}
table.list{width:100%;border-collapse:collapse;font-size:14px}
table.list th,table.list td{border-bottom:1px solid #ececf1;padding:9px 10px;text-align:left;vertical-align:top}
table.list th{background:#f4f4f8;font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:#44444e}
table.list tr:hover td{background:#fafafc}
table.list th.chk,table.list td.chk{width:30px;text-align:center}
.thumb{height:36px;width:auto;border-radius:4px;border:1px solid #ddd}
.actions{white-space:nowrap}
.inline{display:inline-block;margin:0}

/* ---------- Batch selection bar ---------- */
.batchbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;background:#fff7e6;
          border:1px solid #f0d9a8;border-radius:8px;padding:8px 10px;margin-bottom:10px}
.batchbar input[type=text]{width:auto;min-width:220px}

/* ---------- Badges ---------- */
.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:700;color:#fff}
.badge.b-pending{background:var(--warn)}
.badge.b-transit{background:var(--info)}
.badge.b-delivered{background:var(--ok)}
.badge.b-active{background:var(--ok)}
.badge.b-inactive{background:#777}

/* ---------- Flash ---------- */
.flash{padding:10px 14px;border-radius:8px;margin-bottom:12px;font-weight:600}
.flash-ok{background:#e7f6ec;color:var(--ok);border:1px solid #b7e2c5}
.flash-err{background:#fdecec;color:var(--err);border:1px solid #f5c2c2}

/* ---------- Toolbar / search ---------- */
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:6px}
.toolbar input[type=text],.toolbar select{width:auto;min-width:170px}
details.import-box summary{cursor:pointer;font-weight:600;color:var(--info)}
details.import-box form{margin-top:8px;padding:10px;border:1px dashed #c9c9d1;border-radius:8px}

/* ---------- Pagination ---------- */
.pagination{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap}
.pagination a,.pagination span{padding:5px 10px;border:1px solid #d8d8de;border-radius:6px;font-size:13px}
.pagination .cur{background:var(--black);color:#fff;border-color:var(--black)}

/* ---------- Login ---------- */
.login-body{background:var(--black);min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.login-card{background:#17171c;border:1px solid var(--line);border-radius:14px;padding:34px;width:100%;max-width:400px;color:#eee}
.login-card img.logo{display:block;margin:0 auto 6px;width:260px;max-width:100%}
.login-card .sub{text-align:center;color:#9a9aa4;font-size:13px;margin-bottom:20px}
.login-card label{color:#cfcfd6}
.login-card input{background:#0f0f13;border-color:var(--line);color:#fff}
.hint{background:#20202a;border:1px dashed var(--accent);color:#d9d9e0;padding:10px;border-radius:8px;font-size:12.5px;margin-top:16px}

/* ---------- Responsive / print ---------- */
@media (max-width:760px){
  .user-box{margin-left:0}
  .copy{margin-left:0}
}
@media print{
  .site-header,.site-footer,.no-print{display:none !important}
  body{background:#fff}
  .card{box-shadow:none;border:none}
}
/* ================= v1.7 sortable tables + batch status ================= */
table.list th.sortable{cursor:pointer;user-select:none;white-space:nowrap}
table.list th.sortable:hover{background:#e9e9f0}
table.list th.sort-asc::after{content:" \25B2";color:#b45309;font-size:10px}
table.list th.sort-desc::after{content:" \25BC";color:#b45309;font-size:10px}
.badge.b-open{background:var(--info)}
.badge.b-partial{background:var(--warn)}
.badge.b-closed{background:#3f3f46}
.batchbar select{width:auto;min-width:130px}