/* ===== RESET & BASE ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

/* ===== HGFIR / NTC THEME STYLES ===== */
:root{
  /* Base dark background colors */
  --bg:#1a1712;
  --bg2:#221f19;
  --bg3:#2d2921;
  --bg4:#38332a;

  /* Borders & Dividers */
  --border:rgba(200,169,110,0.12);
  --border2:rgba(200,169,110,0.06);

  /* Warm brand color variables */
  --text:#f0ebe2;
  --text-muted:#a09080;
  
  --primary:#c8a96e;        /* gold / brushed brass */
  --primary-dark:#a8893e;
  --primary-glow:rgba(200,169,110,0.22);
  
  --blue:#7b9fc8;          /* muted steel blue */
  --green:#7ab89a;         /* sage green */
  --red:#c8524a;           /* muted red */

  --radius:14px;
  --radius-sm:9px;
  --radius-xs:6px;
  --shadow:0 8px 32px rgba(0,0,0,0.5);
  --tr:.25s cubic-bezier(.4,0,.2,1);
}

/* NTC (Nhà Trên Cao) Theme Override Class */
body.brand-ntc {
  --primary:#74b49b;
  --primary-dark:#52a07c;
  --primary-glow:rgba(116,180,155,0.22);
  --bg:#111a16;
  --bg2:#172019;
  --bg3:#1e2c22;
  --bg4:#263628;
  --border:rgba(116,180,155,0.12);
  --border2:rgba(116,180,155,0.07);
  --text-muted:#809080;
}

html{scroll-behavior:smooth}
body{
  font-family:'Inter',sans-serif;
  background:var(--bg);
  color:var(--text);
  min-height:100vh;
  overflow-x:hidden;
  transition:background-color .3s ease;
}
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--bg4);border-radius:99px}
::-webkit-scrollbar-thumb:hover{background:var(--primary)}

/* ===== HEADER ===== */
.header{
  position:sticky;top:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 2rem;height:72px;
  background:rgba(26,23,18,0.92);
  backdrop-filter:blur(24px);
  border-bottom:1px solid var(--border);
  gap:1rem;
}
.header-left{display:flex;align-items:center;gap:.85rem;flex-shrink:0}

/* Dual Brand Switcher */
.brand-switcher {
  display:flex;gap:.35rem;
  background:var(--bg3);border:1px solid var(--border);
  border-radius:99px;padding:.28rem;
}
.brand-pill {
  display:flex;align-items:center;gap:.5rem;
  padding:.3rem .75rem .3rem .35rem;
  border-radius:99px;border:none;
  background:transparent;color:var(--text-muted);
  font-family:'Inter',sans-serif;font-size:.75rem;font-weight:500;
  cursor:pointer;transition:var(--tr);white-space:nowrap;
}
.brand-pill:hover {
  background:var(--bg4);color:var(--text);
}
.brand-pill.active {
  background:linear-gradient(135deg,var(--primary-dark),var(--primary));
  color:#1a1712;font-weight:700;
  box-shadow:0 2px 10px var(--primary-glow);
}
.brand-thumb {
  width:24px;height:24px;border-radius:50%;
  object-fit:cover;flex-shrink:0;
  border:1.5px solid rgba(200,169,110,.25);
}
.brand-thumb-fb {
  width:24px;height:24px;border-radius:50%;
  background:linear-gradient(135deg,var(--primary-dark),var(--primary));
  display:flex;align-items:center;justify-content:center;
  font-size:.6rem;font-weight:900;color:#1a1712;flex-shrink:0;
}
.brand-pill-name {
  max-width:90px;
  overflow:hidden;
  text-overflow:ellipsis;
}
.brand-info {
  padding-left:.75rem;
  border-left:1px solid var(--border);
  margin-left:.25rem;
}
.logo-title{
  font-size:1.1rem;font-weight:800;letter-spacing:-.03em;
  background:linear-gradient(90deg,var(--text),var(--primary));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.logo-sub{font-size:.68rem;color:var(--text-muted);margin-top:2px}

.header-right{display:flex;align-items:center;gap:.5rem;flex-shrink:0}

/* Links */
.btn-link{
  display:inline-flex;align-items:center;gap:.35rem;
  padding:.4rem .85rem;border-radius:99px;
  font-size:.76rem;font-weight:600;text-decoration:none;
  border:1.5px solid transparent;transition:var(--tr);white-space:nowrap
}
.btn-shopee{background:#ee4d2d;color:#fff}
.btn-shopee:hover{background:transparent;color:#ee4d2d;border-color:#ee4d2d}
.btn-facebook{background:#1877f2;color:#fff}
.btn-facebook:hover{background:transparent;color:#1877f2;border-color:#1877f2}
.btn-facebook-ntc {background:#2d6a4f;color:#d8f3dc}
.btn-facebook-ntc:hover {background:transparent;color:#52b788;border-color:#52b788}
.btn-fb-brand {transition:var(--tr)}

/* ===== MAIN CONTENT ===== */
.main-content{padding:1.5rem;max-width:1280px;margin:0 auto;display:flex;flex-direction:column;gap:1.5rem;}
.card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}

/* ===== UPLOAD CARD ===== */
.header-upload-card {padding:1.5rem}
.upload-flex-container {display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;}
.upload-title-text {font-size:1.15rem;font-weight:800;letter-spacing:-.02em;}
.upload-file-status {font-size:.82rem;color:var(--text-muted);margin-top:.35rem;}
.file-name-chip {font-weight:700;color:var(--text);background:var(--bg3);padding:.2rem .55rem;border-radius:4px;border:1px solid var(--border);}
.detect-success-badge {display:inline-block;margin-top:.45rem;padding:.2rem .65rem;font-size:.72rem;font-weight:600;color:var(--green);background:rgba(122,184,154,0.1);border:1px solid rgba(122,184,154,0.25);border-radius:99px;}

.upload-btn-group {display:flex;align-items:center;gap:.6rem;}
.btn-cancel{
  padding:.52rem 1.05rem;border-radius:var(--radius-sm);
  background:var(--bg3);border:1px solid var(--border);
  color:var(--text-muted);font-family:'Inter',sans-serif;
  font-size:.82rem;font-weight:600;cursor:pointer;transition:var(--tr);display:inline-flex;align-items:center;gap:.35rem;
}
.btn-cancel:hover{background:var(--bg4);color:var(--text)}
.btn-save-notes{
  display:inline-flex;align-items:center;gap:.4rem;
  padding:.55rem 1.25rem;border-radius:var(--radius-sm);
  background:linear-gradient(135deg,var(--primary-dark),var(--primary));
  border:none;color:#1a1712;font-weight:700;font-size:.82rem;
  cursor:pointer;font-family:'Inter',sans-serif;transition:var(--tr)
}
.btn-save-notes:hover{opacity:.88;transform:translateY(-1px);box-shadow:0 4px 12px var(--primary-glow)}

/* Custom mapping config panel */
.column-config-panel {
  margin-top:1.25rem;padding-top:1.25rem;
  border-top:1px dashed var(--border);
  animation:slideDown .25s ease-out;
}
@keyframes slideDown {from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
.config-panel-title {font-size:.82rem;font-weight:700;margin-bottom:.85rem;color:var(--primary)}

/* ===== KPI CARDS ===== */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}
.kpi-grid.four{grid-template-columns:repeat(4,1fr)}
@media(max-width:960px){.kpi-grid.four{grid-template-columns:repeat(2,1fr)}}
@media(max-width:580px){.kpi-grid.four{grid-template-columns:1fr}}

.kpi-card {
  border-radius:var(--radius);padding:1.25rem 1.4rem;
  display:flex;align-items:center;gap:.95rem;
  border:none;position:relative;overflow:hidden;
  box-shadow:0 4px 20px rgba(0,0,0,0.2);
  transition:var(--tr);cursor:default;
}
.kpi-card:hover {transform:translateY(-3px);box-shadow:var(--shadow)}

/* Card gradients matching Lucide specifications */
.bg-grad-orange {
  background:linear-gradient(135deg,#c8845a,#d4845a);
}
.bg-grad-blue {
  background:linear-gradient(135deg,#5b7ba8,#7b9fc8);
}
.bg-grad-green {
  background:linear-gradient(135deg,#52a07c,#7ab89a);
}
.bg-grad-purple {
  background:linear-gradient(135deg,#7b6aa8,#9b8ec0);
}

.kpi-icon {font-size:2rem;opacity:.88;flex-shrink:0}
.kpi-content {display:flex;flex-direction:column;gap:2px}
.kpi-label {font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:rgba(255,255,255,0.78)}
.kpi-value {font-size:1.32rem;font-weight:900;letter-spacing:-.02em;color:#fff}
.kpi-unit {font-size:.7rem;color:rgba(255,255,255,0.75);margin-top:2px}

/* ===== CHARTS ===== */
.card-title {font-size:.87rem;font-weight:700;margin-bottom:.85rem;color:var(--text)}
.chart-canvas {width:100%;height:320px;display:block}

/* ===== DATA TABLES ===== */
.table-card{padding:0}
.table-header-box {border-bottom:1px solid var(--border);background:rgba(255,255,255,0.01)}
.table-responsive{overflow-x:auto}
.data-table{width:100%;border-collapse:collapse;font-size:.78rem;min-width:700px}
.data-table th{
  background:var(--bg3);color:var(--text-muted);
  font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  padding:.65rem .9rem;text-align:left;border-bottom:1px solid var(--border);
}
.data-table td{padding:.62rem .9rem;border-bottom:1px solid var(--border2);color:var(--text);white-space:nowrap}
.data-table tr:last-child td{border-bottom:none}
.data-table tbody tr:hover td{background:rgba(200,169,110,0.03)}
.data-table .num-col{text-align:right;font-variant-numeric:tabular-nums}

/* CR Badges */
.cr-badge {display:inline-flex;padding:.2rem .65rem;border-radius:99px;font-size:.72rem;font-weight:700;}
.best-badge {background:rgba(122,184,154,0.15);border:1px solid rgba(122,184,154,0.3);color:#7ab89a}
.normal-badge {background:var(--bg3);border:1px solid var(--border);color:var(--text-muted)}

/* ===== FORMS & INPUTS ===== */
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.85rem}
.form-grid.two{grid-template-columns:repeat(2,1fr)}
.field-group{display:flex;flex-direction:column;gap:.35rem}
.field-group label{font-size:.68rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}
.modal-input{
  width:100%;padding:.58rem .85rem;
  background:var(--bg3);border:1px solid var(--border);
  border-radius:var(--radius-sm);color:var(--text);
  font-family:'Inter',sans-serif;font-size:.82rem;transition:border-color .2s
}
.modal-input:focus{outline:none;border-color:var(--primary)}

/* ===== OPERATIONAL / CSKH VIEW ===== */
.three-col-grid {display:grid;grid-template-columns:1fr 2fr;gap:1.5rem}
.span2 {grid-column:span 1}
@media(max-width:960px){.three-col-grid{grid-template-columns:1fr}}

/* Stat Mini Card */
.stat-mini-card {
  background:var(--bg3);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:.85rem 1.1rem;
  display:flex;align-items:center;gap:.75rem;
}
.stat-mini-icon {font-size:1.6rem;opacity:.9;flex-shrink:0;}
.stat-mini-label {font-size:.66rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;}
.stat-mini-value {font-size:1.15rem;font-weight:800;color:var(--text);display:block;margin-top:1px;}
.text-green {color:#7ab89a !important;}
.text-red {color:#c8524a !important;}

/* Manual self entered revenue banner */
.revenue-manual-banner {
  display:flex;justify-content:space-between;align-items:center;
  background:rgba(200,169,110,0.06);border:1.5px solid var(--border);
  border-radius:var(--radius-sm);padding:1.1rem 1.3rem;margin-top:1.1rem;
  flex-wrap:wrap;gap:1rem;
}
.banner-icon {font-size:2.2rem;opacity:.9;}
.banner-label {font-size:.68rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;}
.banner-val {font-size:1.45rem;font-weight:900;color:var(--primary);display:block;margin-top:2px;}
.banner-sublabel {font-size:.66rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;display:block;}
.banner-subval {font-size:1.12rem;font-weight:800;color:var(--text);display:block;margin-top:2px;}

/* Progress response rate bar */
.progress-container {margin-top:1.25rem;}
.progress-header {display:flex;justify-content:between;font-size:.76rem;font-weight:700;margin-bottom:.45rem;}
.progress-header span:last-child {color:#7ab89a;margin-left:auto;}
.progress-bar-bg {width:100%;height:8px;background:var(--bg3);border-radius:99px;overflow:hidden;}
.progress-bar-fill {height:100%;background:#7ab89a;border-radius:99px;transition:width .4s ease-out;}

/* ===== TOAST ===== */
.toast{
  position:fixed;bottom:1.5rem;right:1.5rem;z-index:9999;
  padding:.62rem 1.25rem;border-radius:var(--radius-sm);
  background:var(--bg3);border:1px solid var(--border);
  color:var(--text);font-size:.8rem;font-weight:500;
  box-shadow:var(--shadow);opacity:0;transform:translateY(16px);
  transition:all .3s ease;pointer-events:none
}
.toast.show{opacity:1;transform:translateY(0)}
.toast.success{border-color:var(--green);color:var(--green)}
.toast.error{border-color:var(--red);color:var(--red)}

/* ===== RESPONSIVE ===== */
@media(max-width:768px){
  .header{padding:0 1.25rem;height:64px}
  .main-content{padding:1rem;gap:1.25rem;}
  .upload-flex-container{flex-direction:column;align-items:stretch;}
  .upload-btn-group{justify-content:stretch;}
  .upload-btn-group button{flex:1;}
}
CSSEOF
echo "style.css updated"
