/* ================================================================
   TAG ONLINE RP — Theme "Pastel Tangerine"
   พื้นส้มพาสเทล + ส้มสด + น้ำตาลเข้ม (espresso) + เขียวทีล สำหรับสถานะปิด
   ================================================================ */
:root{
  --bg:          #FFF3E8;
  --bg-2:        #FFE6D2;
  --surface:     rgba(255,255,255,.82);
  --surface-solid:#FFFFFF;
  --line:        #F6D9C2;
  --line-strong: #EFC3A0;

  --brand:       #F2711C;
  --brand-2:     #FF9A4D;
  --brand-deep:  #C2470E;
  --brand-soft:  #FFE2CC;
  --brand-ghost: #FFF0E4;

  --ink:         #2B1A10;
  --ink-2:       #5A4232;
  --muted:       #9A7B66;

  --espresso:    #2B1A10;
  --espresso-2:  #4A2C19;

  --open:        #D9480F;
  --open-bg:     #FFE4D3;
  --closed:      #0E9384;
  --closed-bg:   #D6F5EF;

  --teal:        #14B8A6;
  --rose:        #F2557A;
  --gold:        #F5A524;
  --plum:        #8B5CF6;

  --radius:      20px;
  --radius-sm:   12px;
  --shadow:      0 10px 30px -12px rgba(150,70,20,.28), 0 2px 6px rgba(150,70,20,.06);
  --shadow-lg:   0 24px 60px -20px rgba(150,70,20,.40);
}

*{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body{
  font-family:'Kanit', system-ui, sans-serif;
  font-weight:400;
  color:var(--ink);
  background:
    radial-gradient(1200px 600px at -10% -10%, #FFD6B5 0%, transparent 60%),
    radial-gradient(900px 500px at 110% 10%, #FFE9C7 0%, transparent 55%),
    radial-gradient(900px 700px at 50% 120%, #FFD9C2 0%, transparent 60%),
    var(--bg);
  background-attachment:fixed;
  min-height:100vh;
  display:flex; flex-direction:column;
  font-size:15.5px;
}
body::before{ /* dot grid */
  content:""; position:fixed; inset:0; pointer-events:none; z-index:0;
  background-image:radial-gradient(rgba(194,71,14,.10) 1px, transparent 1.2px);
  background-size:22px 22px;
  mask-image:linear-gradient(to bottom, #000 0%, transparent 85%);
  -webkit-mask-image:linear-gradient(to bottom, #000 0%, transparent 85%);
}
.bg-orbs{ position:fixed; inset:0; pointer-events:none; z-index:0; overflow:hidden; }
.bg-orbs span{ position:absolute; border-radius:50%; filter:blur(60px); opacity:.55; }
.bg-orbs span:nth-child(1){ width:340px; height:340px; background:#FFB37A; top:-120px; right:-80px; }
.bg-orbs span:nth-child(2){ width:260px; height:260px; background:#FFD08A; bottom:10%; left:-90px; opacity:.35; }
.bg-orbs span:nth-child(3){ width:220px; height:220px; background:#9EE7DC; bottom:-80px; right:15%; opacity:.25; }

a{ color:var(--brand-deep); }
a:hover{ color:var(--brand); }
h1,h2,h3,h4,h5,h6{ font-weight:600; color:var(--ink); }
::selection{ background:var(--brand); color:#fff; }

/* ---------------- Top bar ---------------- */
.topbar{
  position:sticky; top:0; z-index:50;
  background:rgba(43,26,16,.92);
  backdrop-filter:blur(14px) saturate(1.4); -webkit-backdrop-filter:blur(14px) saturate(1.4);
  border-bottom:1px solid rgba(255,154,77,.25);
  box-shadow:0 8px 24px -14px rgba(0,0,0,.5);
}
.topbar-inner{
  max-width:1180px; margin:0 auto; padding:10px 18px;
  display:flex; align-items:center; gap:18px;
}
.topbar-inner.wide{ max-width:1600px; }
.brand{ display:flex; align-items:center; gap:10px; text-decoration:none; flex-shrink:0; }
.brand-icon{ width:44px; height:44px; margin:-6px -4px -6px -6px; filter:drop-shadow(0 4px 10px rgba(242,113,28,.45)); }
.brand-text{ color:#FFE7D4; font-weight:500; letter-spacing:.06em; font-size:1rem; white-space:nowrap; }
.brand-text b{ color:#fff; font-weight:700; }
.brand-text em{
  font-style:normal; font-weight:800; color:var(--espresso);
  background:linear-gradient(135deg,var(--brand-2),var(--brand));
  padding:1px 8px; border-radius:7px; margin-left:3px;
}
.topnav{ display:flex; gap:4px; overflow-x:auto; scrollbar-width:none; margin-left:auto; }
.topnav::-webkit-scrollbar{ display:none; }
.topnav a{
  display:flex; align-items:center; gap:7px; white-space:nowrap;
  color:#E9CDB8; text-decoration:none; font-size:.92rem;
  padding:8px 13px; border-radius:11px; transition:.2s;
}
.topnav a i{ font-size:.9rem; opacity:.85; }
.topnav a:hover{ color:#fff; background:rgba(255,255,255,.08); }
.topnav a.active{
  color:var(--espresso); font-weight:600;
  background:linear-gradient(135deg,#FFB27A,var(--brand));
  box-shadow:0 6px 16px -6px rgba(242,113,28,.8);
}
@media (max-width: 991px){
  .topbar-inner{ flex-wrap:wrap; gap:8px; padding:10px 14px; }
  .topnav{ width:100%; margin-left:0; padding-bottom:2px; }
  .topnav a{ padding:7px 11px; font-size:.86rem; }
}

/* ---------------- Page ---------------- */
.page{ position:relative; z-index:1; width:100%; max-width:1180px; margin:0 auto; padding:26px 18px 40px; flex:1; }
.page.wide{ max-width:1600px; }
.page.narrow{ max-width:780px; }
@media (max-width:575px){ .page{ padding:18px 14px 30px; } }

.page-title{ display:flex; align-items:center; gap:16px; margin-bottom:22px; }
.page-title h1{ font-size:1.6rem; margin:0; font-weight:700; letter-spacing:-.01em; }
.page-title p{ margin:2px 0 0; color:var(--muted); font-size:.97rem; }
.pt-icon{
  width:54px; height:54px; border-radius:16px; flex-shrink:0;
  display:grid; place-items:center; font-size:1.35rem; color:#fff;
  background:linear-gradient(135deg,var(--brand-2),var(--brand));
  box-shadow:0 10px 22px -8px rgba(242,113,28,.75), inset 0 1px 0 rgba(255,255,255,.35);
}
.tone-teal  .pt-icon{ background:linear-gradient(135deg,#2DD4BF,var(--closed)); box-shadow:0 10px 22px -8px rgba(14,147,132,.7); }
.tone-dark  .pt-icon{ background:linear-gradient(135deg,var(--espresso-2),var(--espresso)); box-shadow:0 10px 22px -8px rgba(43,26,16,.7); }
.tone-rose  .pt-icon{ background:linear-gradient(135deg,#FF8FA3,var(--rose)); box-shadow:0 10px 22px -8px rgba(242,85,122,.7); }
.tone-gold  .pt-icon{ background:linear-gradient(135deg,#FFD166,var(--gold)); box-shadow:0 10px 22px -8px rgba(245,165,36,.7); }
.tone-plum  .pt-icon{ background:linear-gradient(135deg,#B79CFF,var(--plum)); box-shadow:0 10px 22px -8px rgba(139,92,246,.6); }
@media (max-width:575px){ .page-title h1{ font-size:1.3rem; } .pt-icon{ width:46px; height:46px; font-size:1.15rem; } }

/* ---------------- Cards ---------------- */
.glass{
  background:var(--surface);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.9);
  outline:1px solid var(--line); outline-offset:-1px;
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}
.card-pad{ padding:26px; }
@media (max-width:575px){ .card-pad{ padding:18px; } }
.section-h{
  display:flex; align-items:center; gap:10px; margin:0 0 14px;
  font-size:1.05rem; font-weight:600; color:var(--ink);
}
.section-h i{ color:var(--brand); }
.section-h small{ color:var(--muted); font-weight:400; font-size:.85rem; margin-left:auto; }

/* ---------------- Forms ---------------- */
.form-label{ font-weight:500; color:var(--ink-2); margin-bottom:6px; font-size:.95rem; }
.form-label .req{ color:var(--open); }
.form-control, .form-select{
  border-radius:var(--radius-sm); border:1.5px solid var(--line);
  background-color:#FFFDFB; padding:.68rem .95rem; font-size:1rem; color:var(--ink);
  transition:border-color .15s, box-shadow .15s;
}
.form-control:focus, .form-select:focus{
  border-color:var(--brand); background-color:#fff;
  box-shadow:0 0 0 4px rgba(242,113,28,.16);
}
.form-control:disabled, .form-control[readonly]{ background:var(--brand-ghost); color:var(--ink-2); border-style:dashed; }
.form-text{ color:var(--muted); }
.form-select{ background-position:right .9rem center; }

.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:575px){ .field-row{ grid-template-columns:1fr; } }

.tag-no-display{
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  padding:16px 20px; border-radius:16px; margin-bottom:22px;
  background:linear-gradient(135deg,var(--espresso),var(--espresso-2));
  color:#FFE7D4; position:relative; overflow:hidden;
}
.tag-no-display::after{
  content:""; position:absolute; right:-40px; top:-40px; width:160px; height:160px; border-radius:50%;
  background:radial-gradient(circle, rgba(242,113,28,.55), transparent 70%);
}
.tag-no-display .lbl{ font-size:.82rem; letter-spacing:.12em; text-transform:uppercase; opacity:.7; }
.tag-no-display .no{ font-size:1.7rem; font-weight:700; color:#fff; letter-spacing:.04em; line-height:1.1; }
.tag-no-display .no span{ color:var(--brand-2); }
.tag-no-display .when{ text-align:right; font-size:.9rem; position:relative; z-index:1; }
.tag-no-display .when b{ display:block; color:#fff; font-weight:500; }

/* topic chips */
.topic-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:8px; }
.topic-grid input{ position:absolute; opacity:0; pointer-events:none; }
.topic-grid label{
  display:flex; align-items:flex-start; gap:9px; height:100%;
  padding:10px 12px; border-radius:12px; cursor:pointer; font-size:.93rem; line-height:1.35;
  background:#FFFDFB; border:1.5px solid var(--line); color:var(--ink-2); transition:.15s;
}
.topic-grid label i{ color:var(--line-strong); margin-top:3px; transition:.15s; }
.topic-grid label:hover{ border-color:var(--brand-2); background:var(--brand-ghost); }
.topic-grid input:checked + label{
  border-color:var(--brand); background:linear-gradient(135deg,#FFF1E5,#FFE0C7); color:var(--ink);
  box-shadow:0 6px 16px -10px rgba(242,113,28,.9);
}
.topic-grid input:checked + label i{ color:var(--brand); }
.topic-grid input:checked + label i::before{ content:"\f058"; }
.topic-grid input:focus-visible + label{ box-shadow:0 0 0 4px rgba(242,113,28,.2); }

/* dropzone */
.dropzone{
  display:flex; align-items:center; gap:14px; cursor:pointer;
  padding:16px; border-radius:14px; border:2px dashed var(--line-strong);
  background:repeating-linear-gradient(45deg,#FFF8F2,#FFF8F2 10px,#FFF3EA 10px,#FFF3EA 20px);
  transition:.15s; margin:0;
}
.dropzone:hover{ border-color:var(--brand); }
.dropzone input{ position:absolute; width:1px; height:1px; opacity:0; }
.dz-icon{ width:46px; height:46px; border-radius:12px; display:grid; place-items:center; background:var(--brand-soft); color:var(--brand-deep); font-size:1.2rem; flex-shrink:0; }
.dz-title{ font-weight:500; color:var(--ink); }
.dz-name{ font-size:.85rem; color:var(--muted); word-break:break-all; }
.dropzone.has-file{ border-style:solid; border-color:var(--closed); background:#F1FCFA; }
.dropzone.has-file .dz-icon{ background:var(--closed-bg); color:var(--closed); }
.dropzone.is-required{ border-color:#F0A27A; }
.preview-box img{ margin-top:12px; max-height:240px; max-width:100%; border-radius:12px; box-shadow:var(--shadow); }

/* ---------------- Buttons ---------------- */
.btn{ font-weight:500; border-radius:12px; padding:.62rem 1.15rem; transition:transform .15s, box-shadow .15s, background .15s; }
.btn:active{ transform:translateY(1px); }
.btn-lg{ padding:.85rem 1.4rem; font-size:1.06rem; border-radius:14px; }
.btn-brand{
  color:#fff; border:0;
  background:linear-gradient(135deg,var(--brand-2),var(--brand) 55%,var(--brand-deep));
  box-shadow:0 10px 22px -10px rgba(242,113,28,.9), inset 0 1px 0 rgba(255,255,255,.3);
}
.btn-brand:hover, .btn-brand:focus{ color:#fff; transform:translateY(-2px); box-shadow:0 16px 28px -12px rgba(242,113,28,.95); }
.btn-teal{
  color:#fff; border:0;
  background:linear-gradient(135deg,#2DD4BF,var(--closed));
  box-shadow:0 10px 22px -10px rgba(14,147,132,.85);
}
.btn-teal:hover, .btn-teal:focus{ color:#fff; transform:translateY(-2px); }
.btn-dark-warm{ color:#FFE7D4; border:0; background:linear-gradient(135deg,var(--espresso-2),var(--espresso)); }
.btn-dark-warm:hover{ color:#fff; transform:translateY(-2px); }
.btn-soft{ color:var(--brand-deep); background:var(--brand-soft); border:1px solid #FFD2B0; }
.btn-soft:hover{ color:var(--brand-deep); background:#FFD6B8; }
.btn-ghost{ color:var(--ink-2); background:rgba(255,255,255,.7); border:1.5px solid var(--line); }
.btn-ghost:hover{ color:var(--ink); background:#fff; border-color:var(--line-strong); }
.btn-danger-soft{ color:#B42318; background:#FFE4E1; border:1px solid #FFCDC7; }
.btn-danger-soft:hover{ color:#fff; background:#E5484D; border-color:#E5484D; }
.btn-sm{ padding:.38rem .75rem; font-size:.86rem; border-radius:10px; }

/* ---------------- Status ---------------- */
.badge-status{
  display:inline-flex; align-items:center; gap:6px; white-space:nowrap;
  padding:5px 11px; border-radius:999px; font-size:.84rem; font-weight:500;
}
.badge-status i{ font-size:.75rem; }
.badge-status.is-open{ color:var(--open); background:var(--open-bg); }
.badge-status.is-open i{ animation:pulse 1.6s infinite; }
.badge-status.is-closed{ color:var(--closed); background:var(--closed-bg); }
@keyframes pulse{ 0%,100%{opacity:1} 50%{opacity:.35} }

.chip{ display:inline-flex; align-items:center; gap:6px; padding:4px 10px; border-radius:999px; font-size:.82rem; background:var(--brand-ghost); color:var(--ink-2); border:1px solid var(--line); }
.chip i{ color:var(--brand); font-size:.78rem; }

/* ---------------- Alerts ---------------- */
.alert-pop{
  display:flex; gap:14px; align-items:center; padding:16px 18px; border-radius:16px; margin-bottom:20px;
  border:1px solid; animation:pop .35s ease-out;
}
.alert-pop .ai{ width:42px; height:42px; border-radius:12px; display:grid; place-items:center; font-size:1.15rem; flex-shrink:0; }
.alert-pop.ok{ background:#ECFDF8; border-color:#AEEBDD; color:#0B5F55; }
.alert-pop.ok .ai{ background:var(--closed); color:#fff; }
.alert-pop.warn{ background:#FFF5EB; border-color:#FFD2AE; color:#8A3A0B; }
.alert-pop.warn .ai{ background:var(--brand); color:#fff; }
.alert-pop.err{ background:#FFF1F0; border-color:#FFCCC7; color:#A8071A; }
.alert-pop.err .ai{ background:#E5484D; color:#fff; }
.alert-pop b{ font-weight:600; }
@keyframes pop{ from{ transform:translateY(-6px); opacity:0 } to{ transform:none; opacity:1 } }

.empty{ text-align:center; padding:50px 20px; color:var(--muted); }
.empty i{ font-size:2.6rem; color:var(--line-strong); margin-bottom:12px; display:block; }

/* ---------------- Tables ---------------- */
.table-wrap{ overflow:auto; border-radius:16px; }
.table-warm{ width:100%; margin:0; border-collapse:separate; border-spacing:0; font-size:.93rem; }
.table-warm thead th{
  position:sticky; top:0; z-index:2;
  background:linear-gradient(180deg,var(--espresso-2),var(--espresso));
  color:#FFE7D4; font-weight:500; font-size:.86rem; letter-spacing:.02em;
  padding:12px 12px; white-space:nowrap; border:0;
}
.table-warm thead th:first-child{ border-top-left-radius:14px; }
.table-warm thead th:last-child{ border-top-right-radius:14px; }
.table-warm tbody td{ padding:11px 12px; border-bottom:1px solid #F7E4D5; vertical-align:middle; background:rgba(255,255,255,.75); }
.table-warm tbody tr:nth-child(even) td{ background:rgba(255,244,234,.85); }
.table-warm tbody tr:hover td{ background:#FFE9D8; }
.table-warm tbody tr:last-child td:first-child{ border-bottom-left-radius:14px; }
.table-warm tbody tr:last-child td:last-child{ border-bottom-right-radius:14px; }
.table-warm .tag-no{ font-weight:600; color:var(--brand-deep); white-space:nowrap; }
.table-warm .num{ text-align:right; font-variant-numeric:tabular-nums; }
.table-warm .sub{ display:block; color:var(--muted); font-size:.8rem; }
.table-warm tr.total td{ background:var(--brand-soft) !important; font-weight:600; }
.img-thumb{ width:62px; height:62px; object-fit:cover; border-radius:10px; box-shadow:0 2px 8px rgba(0,0,0,.12); cursor:zoom-in; }

/* toolbar / filters */
.toolbar{ display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-bottom:16px; }
.search{
  position:relative; flex:1; min-width:220px;
}
.search i{ position:absolute; left:14px; top:50%; transform:translateY(-50%); color:var(--muted); }
.search input{ padding-left:40px; }
.seg{ display:inline-flex; padding:4px; border-radius:13px; background:rgba(255,255,255,.75); border:1px solid var(--line); }
.seg button{ border:0; background:transparent; padding:6px 13px; border-radius:10px; font-size:.9rem; color:var(--ink-2); }
.seg button.on{ background:var(--espresso); color:#FFE7D4; }
.seg button .n{ display:inline-block; min-width:22px; padding:0 6px; margin-left:4px; border-radius:99px; background:rgba(0,0,0,.08); font-size:.78rem; }
.seg button.on .n{ background:var(--brand); color:#fff; }

/* ---------------- Ticket cards (เลือกปิดงาน) ---------------- */
.ticket{
  display:grid; grid-template-columns:1fr auto; gap:18px; padding:20px 22px;
  position:relative; overflow:hidden;
}
.ticket::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:6px; background:linear-gradient(180deg,var(--brand-2),var(--brand)); }
.ticket .t-no{ font-weight:700; color:var(--brand-deep); letter-spacing:.03em; }
.ticket .t-title{ font-size:1.08rem; font-weight:600; margin:2px 0 6px; }
.ticket .t-issue{ color:var(--ink-2); margin-bottom:10px; }
.ticket .t-meta{ display:flex; flex-wrap:wrap; gap:6px; }
.ticket .t-side{ display:flex; flex-direction:column; align-items:flex-end; justify-content:space-between; gap:10px; }
.ticket .t-img{ width:150px; height:110px; object-fit:cover; border-radius:12px; box-shadow:var(--shadow); }
.ticket .t-noimg{ width:150px; height:110px; border-radius:12px; display:grid; place-items:center; background:var(--brand-ghost); color:var(--line-strong); font-size:1.6rem; border:1px dashed var(--line-strong); }
.age{ font-size:.82rem; color:var(--open); font-weight:500; }
@media (max-width:640px){
  .ticket{ grid-template-columns:1fr; }
  .ticket .t-side{ flex-direction:row; align-items:center; }
  .ticket .t-img,.ticket .t-noimg{ width:110px; height:84px; }
}

/* ---------------- View tag ---------------- */
.timeline{ position:relative; padding-left:34px; }
.timeline::before{ content:""; position:absolute; left:13px; top:8px; bottom:8px; width:2px; background:linear-gradient(var(--brand),var(--closed)); border-radius:2px; }
.tl-item{ position:relative; margin-bottom:22px; }
.tl-item:last-child{ margin-bottom:0; }
.tl-dot{ position:absolute; left:-34px; top:2px; width:28px; height:28px; border-radius:50%; display:grid; place-items:center; color:#fff; font-size:.8rem; box-shadow:0 0 0 5px var(--bg); }
.tl-dot.o{ background:var(--brand); }
.tl-dot.c{ background:var(--closed); }
.tl-dot.p{ background:#D7C2B2; }
.kv{ display:grid; grid-template-columns:130px 1fr; gap:6px 14px; font-size:.95rem; }
.kv dt{ color:var(--muted); font-weight:400; }
.kv dd{ margin:0; color:var(--ink); }
@media (max-width:480px){ .kv{ grid-template-columns:1fr; gap:0; } .kv dd{ margin-bottom:8px; } }
.photo{ width:100%; max-height:380px; object-fit:contain; background:#FFF6EE; border-radius:14px; border:1px solid var(--line); cursor:zoom-in; }

/* ---------------- KPI ---------------- */
.kpi{
  position:relative; overflow:hidden; padding:20px 22px; border-radius:var(--radius); color:#fff; height:100%;
  box-shadow:var(--shadow);
}
.kpi::after{ content:""; position:absolute; right:-30px; bottom:-30px; width:130px; height:130px; border-radius:50%; background:rgba(255,255,255,.14); }
.kpi .k-lbl{ font-size:.9rem; opacity:.92; display:flex; align-items:center; gap:8px; }
.kpi .k-val{ font-size:2.4rem; font-weight:700; line-height:1.1; margin-top:6px; letter-spacing:-.02em; }
.kpi .k-val small{ font-size:1rem; font-weight:500; opacity:.85; margin-left:4px; }
.kpi .k-sub{ font-size:.82rem; opacity:.85; }
.kpi .k-ic{ position:absolute; right:18px; top:16px; font-size:1.6rem; opacity:.35; }
.kpi.k-orange{ background:linear-gradient(135deg,#FF9A4D,#F2711C 60%,#D9480F); }
.kpi.k-teal{ background:linear-gradient(135deg,#2DD4BF,#0E9384); }
.kpi.k-dark{ background:linear-gradient(135deg,#5A3820,#2B1A10); }
.kpi.k-gold{ background:linear-gradient(135deg,#FFC94D,#F59E0B); color:#3B2207; }
.kpi.k-rose{ background:linear-gradient(135deg,#FF8FA3,#E5486F); }
.chart-box{ position:relative; height:300px; }
.chart-box.tall{ height:360px; }

.progress-warm{ height:10px; border-radius:99px; background:#F6E2D3; overflow:hidden; }
.progress-warm > span{ display:block; height:100%; border-radius:99px; background:linear-gradient(90deg,var(--brand-2),var(--brand)); }
.progress-warm.teal > span{ background:linear-gradient(90deg,#2DD4BF,var(--closed)); }

.rank{ width:30px; height:30px; border-radius:9px; display:inline-grid; place-items:center; font-weight:700; font-size:.88rem; background:#F6E2D3; color:var(--ink-2); }
.rank.r1{ background:linear-gradient(135deg,#FFD166,#F5A524); color:#3B2207; }
.rank.r2{ background:linear-gradient(135deg,#E6E9EE,#B8C0CC); color:#2B2F36; }
.rank.r3{ background:linear-gradient(135deg,#F3B58A,#C9733C); color:#fff; }

.leader{ list-style:none; padding:0; margin:0; }
.leader li{ display:flex; align-items:center; gap:12px; padding:10px 0; border-bottom:1px dashed var(--line); }
.leader li:last-child{ border-bottom:0; }
.leader .nm{ flex:1; }
.leader .ct{ font-weight:600; padding:3px 10px; border-radius:99px; background:var(--brand-soft); color:var(--brand-deep); font-size:.88rem; }
.leader.teal .ct{ background:var(--closed-bg); color:var(--closed); }

/* ---------------- Footer ---------------- */
.site-footer{
  position:relative; z-index:1; text-align:center; padding:18px 14px 26px; color:var(--muted); font-size:.86rem;
  display:flex; justify-content:center; gap:8px; flex-wrap:wrap;
}
.site-footer b{ color:var(--ink-2); font-weight:500; }
.site-footer .dot{ color:var(--line-strong); }

/* ---------------- Lightbox ---------------- */
.lightbox{ position:fixed; inset:0; z-index:1000; background:rgba(25,14,8,.85); display:none; align-items:center; justify-content:center; padding:20px; cursor:zoom-out; backdrop-filter:blur(6px); }
.lightbox.show{ display:flex; }
.lightbox img{ max-width:100%; max-height:100%; border-radius:12px; box-shadow:0 30px 80px rgba(0,0,0,.6); }

/* ---------------- Print ---------------- */
.print-header{ display:none; }
@media print{
  body{ background:#fff !important; font-size:11px; }
  body::before, .bg-orbs, .no-print, .topbar, .site-footer{ display:none !important; }
  .page{ max-width:none; padding:0; }
  .glass{ box-shadow:none; outline:0; border:0; background:#fff; backdrop-filter:none; }
  .print-header{ display:block; text-align:center; margin-bottom:12px; }
  .table-warm thead th{ background:#2B1A10 !important; color:#fff !important; -webkit-print-color-adjust:exact; print-color-adjust:exact; position:static; }
  .table-warm tbody td{ background:#fff !important; padding:5px 6px; }
  .img-thumb{ width:44px; height:44px; box-shadow:none; }
}
