/* co_attainment.css — EdCatalyst CO Attainment Analyzer */
:root {
  --primary: #e56d00; --secondary: #ff8c42; --light: #fff5ec;
  --navy: #1e3c72; --bg: #f5f5f7; --card-bg: #fff;
  --border: #e8e8e8; --text: #1e293b; --muted: #6b7280;
  --green: #16a34a; --red: #dc2626; --amber: #d97706;
  --shadow: 0 2px 14px rgba(0,0,0,.08); --radius: 14px;
}
body.dark { --bg:#111827; --card-bg:#1f2937; --border:#374151;
  --text:#f3f4f6; --muted:#9ca3af; }
body.dark .navbar { background:#1f2937!important; }
body.dark .nav-link { color:#f3f4f6!important; }
* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:'Poppins',sans-serif; background:var(--bg); color:var(--text); }
.hero-section { background:linear-gradient(135deg,var(--primary),var(--secondary));
  padding:70px 0 48px; text-align:center; color:#fff; }
.hero-section h1 { font-weight:700; font-size:2.1rem; margin-bottom:10px; }
.hero-section p { opacity:.92; }
.dark-toggle { position:fixed; top:82px; right:20px; z-index:999;
  background:var(--card-bg); border:1.5px solid var(--border); border-radius:50%;
  width:42px; height:42px; display:flex; align-items:center; justify-content:center;
  cursor:pointer; box-shadow:var(--shadow); font-size:1.1rem; color:var(--text); }
.dark-toggle:hover { border-color:var(--primary); color:var(--primary); }
.tool { background:var(--card-bg); border-radius:18px; padding:32px;
  box-shadow:var(--shadow); }
.step-card { border:1.5px solid var(--border); border-radius:var(--radius);
  padding:24px; margin-bottom:20px; background:var(--card-bg); }
.step-card .card-title { color:var(--primary); font-weight:700; font-size:1rem;
  margin-bottom:16px; display:flex; align-items:center; gap:8px; }

/* Upload zone */
.upload-zone { border:2.5px dashed var(--border); border-radius:var(--radius);
  padding:48px 24px; text-align:center; cursor:pointer; transition:all .25s;
  background:var(--bg); }
.upload-zone:hover, .upload-zone.dragover { border-color:var(--primary);
  background:var(--light); }
.upload-zone .upload-icon { font-size:3rem; color:var(--primary); margin-bottom:16px; }
.upload-zone h5 { font-weight:600; color:var(--text); margin-bottom:8px; }
.upload-zone p { color:var(--muted); font-size:.88rem; }
.upload-zone input[type="file"] { display:none; }
.btn-orange { background:var(--primary); color:#fff; border:none;
  font-family:'Poppins',sans-serif; font-weight:600; transition:all .22s; }
.btn-orange:hover { background:var(--secondary); color:#fff; transform:translateY(-1px); }

/* Info cards */
.info-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:14px; }
.info-card { background:var(--bg); border:1.5px solid var(--border); border-radius:10px;
  padding:14px 16px; }
.info-card .label { font-size:.75rem; color:var(--muted); font-weight:600;
  text-transform:uppercase; letter-spacing:.5px; margin-bottom:4px; }
.info-card .value { font-size:.95rem; font-weight:700; color:var(--text); }
.info-card .value input { border:none; background:transparent; font-weight:700;
  font-size:.95rem; color:var(--primary); width:100%; outline:none;
  font-family:'Poppins',sans-serif; }

/* Summary row */
.summary-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:14px; margin-bottom:24px; }
.summary-card { border-radius:12px; padding:18px; text-align:center; color:#fff; }
.summary-card .sc-val { font-size:2rem; font-weight:700; }
.summary-card .sc-lbl { font-size:.78rem; opacity:.9; font-weight:600; }
.sc-navy  { background:var(--navy); }
.sc-org   { background:var(--primary); }
.sc-green { background:var(--green); }
.sc-amber { background:var(--amber); }
.sc-red   { background:var(--red); }

/* Attainment table */
.att-table-wrap { overflow-x:auto; border-radius:10px;
  border:1.5px solid var(--border); margin-bottom:20px; }
.att-table { width:100%; border-collapse:collapse; font-size:.83rem; min-width:700px; }
.att-table th { background:var(--navy); color:#fff; padding:10px 12px;
  font-weight:600; text-align:center; white-space:nowrap; }
.att-table th.comp-hdr { background:var(--primary); }
.att-table td { padding:8px 12px; border-bottom:1px solid var(--border);
  text-align:center; }
.att-table tr:last-child td { border-bottom:none; }
.att-table tr:nth-child(even) td { background:rgba(0,0,0,.02); }
.att-table td.label-col { text-align:left; font-weight:600; color:var(--text); }

/* Level badges */
.lvl-badge { display:inline-block; padding:3px 10px; border-radius:20px;
  font-size:.72rem; font-weight:700; white-space:nowrap; }
.lvl-3 { background:#C6EFCE; color:#276221; }
.lvl-2 { background:#FFEB9C; color:#7d5a00; }
.lvl-1 { background:#FFD9B3; color:#7c3500; }
.lvl-0 { background:#FFC7CE; color:#9c0006; }

/* Chart */
.chart-wrap { background:var(--card-bg); border:1.5px solid var(--border);
  border-radius:var(--radius); padding:20px; margin-bottom:20px; }
.chart-wrap canvas { max-height:340px; }

/* Progress / spinner */
.parse-status { display:none; align-items:center; gap:10px; padding:14px;
  background:var(--light); border-radius:10px; margin-top:14px;
  color:var(--primary); font-weight:600; font-size:.9rem; }
.parse-status.active { display:flex; }
.spinner-border { width:1.2rem; height:1.2rem; border-width:.2em; color:var(--primary); }
.toast-msg { position:fixed; bottom:24px; right:24px; background:#1e293b;
  color:#fff; padding:12px 20px; border-radius:10px; font-size:.87rem;
  z-index:9999; box-shadow:0 8px 24px rgba(0,0,0,.15); animation:slideIn .3s ease;
  max-width:320px; font-family:'Poppins',sans-serif; }
.toast-msg.success { background:#15803d; }
.toast-msg.error   { background:#dc2626; }
@keyframes slideIn { from{transform:translateX(110%);opacity:0} to{transform:translateX(0);opacity:1} }

/* Final attainment display */
.final-att-box { background:linear-gradient(135deg,var(--navy),#2a5298);
  color:#fff; border-radius:16px; padding:28px; text-align:center; }
.final-att-box .att-value { font-size:3.5rem; font-weight:800; color:var(--secondary); }
.final-att-box .att-label { font-size:1rem; opacity:.9; margin-top:4px; }
.final-att-box .level-text { font-size:1.3rem; font-weight:700; margin-top:8px; }

/* Export buttons */
.export-row { display:flex; gap:12px; flex-wrap:wrap; margin-top:16px; }

/* Responsive */
@media(max-width:768px) {
  .tool { padding:18px; }
  .step-card { padding:16px; }
  .hero-section h1 { font-size:1.55rem; }
  .summary-row { grid-template-columns:1fr 1fr; }
  .export-row { flex-direction:column; }
}

/* ── NBA Report Print Styles (opens in new window) ── */
@media print { body { -webkit-print-color-adjust:exact; print-color-adjust:exact; } }
