﻿/* ── TNC BRAND TOKENS ── */
:root{
  /* TNC colors: dark theme default */
  --bg:#0c0e16;--s1:#12151f;--s2:#181c2a;--s3:#1e2333;--s4:#252b3e;
  --bd:#252c40;--bd2:#333d58;
  --tnc-blue:#4d80f7;--tnc-violet:#8b52ee;--tnc-gold:#f5a623;
  --blue:#4d80f7;--blue2:#2452d4;
  --violet:#8b52ee;--violet2:#6327cc;
  --gold:#f5a623;--gold2:#d48a0f;
  --teal:#0d9488;--teal2:#0f766e;
  --rose:#e11d48;--rose2:#be123c;
  --green:#059669;--green2:#047857;
  --amber:#d97706;
  --t1:#eef2fa;--t2:#b8cede;--t3:#8fafc8;--t4:#607a94;
  --mono:'Inter',sans-serif;--sans:'Inter',sans-serif;--r:10px;
  --surface:var(--s1);--surface2:var(--s2);--t5:#3a4560;
  --blue-lt:#0b1630;--teal-lt:#072220;--violet-lt:#170f30;--gold-lt:#221700;--rose-lt:#200a12;--green-lt:#071e10;
  --sh-sm:0 1px 3px rgba(0,0,0,.3);--sh-md:0 4px 12px rgba(0,0,0,.4);--sh-lg:0 12px 32px rgba(0,0,0,.5);
  --pc01:#3b6ef5;--pc02:#2452d4;--pc03:#60a5fa;--pc04:#93c5fd;
  --pc05:#7c3aed;--pc06:#6327cc;--pc07:#a78bfa;--pc08:#c4b5fd;
  --pc09:#f5a623;--pc10:#d48a0f;--pc11:#fbbf24;--pc12:#fde68a;
  --pc13:#e11d48;--pc14:#fb7185;--pc15:#fda4af;--pc16:#be123c;
  --pc17:#0d9488;--pc18:#2dd4bf;--pc19:#0f766e;--pc20:#99f6e4;
  --pc21:#059669;--pc22:#34d399;--pc23:#047857;--pc24:#6ee7b7;
  --pc25:#d97706;--pc26:#f97316;--pc27:#fb923c;--pc28:#fed7aa;
  --pc29:#6366f1;--pc30:#818cf8;--pc31:#4f46e5;--pc32:#c7d2fe;
  --pc33:#ec4899;--pc34:#f472b6;--pc35:#db2777;--pc36:#fbcfe8;
  --pc37:#8b5cf6;--pc38:#a78bfa;--pc39:#7c3aed;--pc40:#ddd6fe;
}
:root[data-theme="light"]{
  --bg:#f5f6f8;--s1:#ffffff;--s2:#f0f1f4;--s3:#e8eaf0;--s4:#d8dbe6;
  --bd:#e4e6eb;--bd2:#d0d3db;
  --t1:#0f1117;--t2:#374151;--t3:#6b7280;--t4:#9ca3af;
  --tnc-blue:#2563eb;--tnc-violet:#7c3aed;--tnc-gold:#d97706;
  --blue:#2563eb;--blue2:#1d4ed8;
  --violet:#7c3aed;--violet2:#6d28d9;
  --gold:#d97706;--gold2:#b45309;
  --teal:#0f766e;--teal2:#0d6460;
  --rose:#be123c;--rose2:#9b0e31;
  --green:#047857;--green2:#036644;
  --amber:#b45309;
  --tag-bl-bg:#dbeafe;--tag-bl-border:#93c5fd;
  --tag-vio-bg:#ede9fe;--tag-vio-border:#c4b5fd;
  --tag-tl-bg:#d1fae5;--tag-tl-border:#6ee7b7;
  --tag-ro-bg:#fee2e2;--tag-ro-border:#fca5a5;
  --tag-gr-bg:#dcfce7;--tag-gr-border:#86efac;
  --tag-go-bg:#fef9c3;--tag-go-border:#fde047;
  --tag-gy-bg:#f3f4f6;--tag-gy-border:#d1d5db;
  --surface:var(--s1);--surface2:var(--s2);--t5:#c9cdd8;
  --blue-lt:#dbeafe;--teal-lt:#ccfbf1;--violet-lt:#ede9fe;--gold-lt:#fef3c7;--rose-lt:#ffe4e6;--green-lt:#dcfce7;
  --sh-sm:0 1px 3px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04);--sh-md:0 4px 12px rgba(0,0,0,.08),0 2px 4px rgba(0,0,0,.05);--sh-lg:0 12px 32px rgba(0,0,0,.10),0 4px 8px rgba(0,0,0,.06);
}
:root[data-theme="light"] .tag-bl{color:var(--tnc-blue);background:var(--tag-bl-bg);border-color:var(--tag-bl-border)}
:root[data-theme="light"] .tag-tl{color:var(--teal);background:var(--tag-tl-bg);border-color:var(--tag-tl-border)}
:root[data-theme="light"] .tag-ro{color:var(--rose);background:var(--tag-ro-bg);border-color:var(--tag-ro-border)}
:root[data-theme="light"] .tag-gr{color:var(--green);background:var(--tag-gr-bg);border-color:var(--tag-gr-border)}
:root[data-theme="light"] .tag-gy{color:var(--t2);background:var(--tag-gy-bg);border-color:var(--tag-gy-border)}
:root[data-theme="light"] .tag-vio{color:var(--tnc-violet);background:var(--tag-vio-bg);border-color:var(--tag-vio-border)}
*{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;transition:font-size .15s ease}
html[data-font="small"]{font-size:14px}
html[data-font="large"]{font-size:18px}
html{height:100%;overflow:hidden;background:var(--bg)}
body{font-family:var(--sans);background:var(--bg);color:var(--t1);display:flex;flex-direction:column;height:100%;overflow:hidden;max-width:1440px;margin:0 auto;border-left:1px solid var(--bd);border-right:1px solid var(--bd)}

/* ── TOPBAR ── */
#topbar{height:52px;background:var(--s1);border-bottom:1px solid var(--bd);display:flex;align-items:center;flex-shrink:0;z-index:10}
.tb-logo{height:100%;padding:0 16px;border-right:1px solid var(--bd);display:flex;align-items:center;gap:9px}
.tb-logo img{height:26px;width:auto;object-fit:contain}
.tb-logo svg{flex-shrink:0;color:var(--t1)}
.tb-logo-text{font-size:0.821rem;font-weight:700;color:var(--t1);letter-spacing:-.3px;white-space:nowrap;line-height:1}
.tb-logo-text em{font-style:normal;color:var(--tnc-blue)}
.tb-nav{display:flex;height:100%}
.tn{display:flex;align-items:center;gap:5px;height:100%;padding:0 14px;border:none;background:none;color:var(--t3);font-family:var(--sans);font-size:0.857rem;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;transition:color .14s;white-space:nowrap}
.tn:hover{color:var(--t1)}
.tn.on{color:var(--tnc-blue);border-bottom-color:transparent;background:var(--blue-lt);border-radius:6px;font-weight:600}
.tb-right{margin-left:auto;display:flex;align-items:center;gap:4px;padding:0 12px}
.tb-icon-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:none;color:var(--t3);cursor:pointer;border-radius:6px;transition:all .14s;flex-shrink:0}
.tb-icon-btn:hover{background:var(--s2);color:var(--t1)}
.psel-w{position:relative}
.psel{background:var(--s2);border:1px solid var(--bd);border-radius:var(--r);color:var(--t1);font-family:var(--sans);font-size:0.857rem;padding:5px 26px 5px 10px;cursor:pointer;appearance:none;outline:none;transition:border-color .14s;min-width:190px}
.psel:focus{border-color:var(--tnc-blue)}
.psel-a{position:absolute;right:8px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--t3);font-size:0.714rem}
.tag{border-radius:20px;padding:2px 9px;font-size:0.714rem;font-family:var(--mono);white-space:nowrap;border:1px solid}
.tag-bl{color:#7aa8f8;background:#0f1e3d;border-color:#1e3a72}
.tag-vi{color:#b89afa;background:#170f30;border-color:#301868}
.tag-go{color:#f5b83a;background:#221700;border-color:#4a3200}
.tag-tl{color:#2dd4bf;background:#072220;border-color:#0e3c38}
.tag-ro{color:#fb7185;background:#200a12;border-color:#481022}
.tag-gr{color:#34d399;background:#071e10;border-color:#0e3620}
.tag-gy{color:var(--t2);background:var(--s2);border-color:var(--bd)}

/* ── APP ── */
#app{display:flex;flex:1;overflow:hidden;min-height:0}
.view{display:none;flex:1;overflow:hidden;min-height:0}
.view.on{display:flex}
.sidebar{width:210px;flex-shrink:0;background:var(--s1);border-right:1px solid var(--bd);overflow-y:auto;display:flex;flex-direction:column}
.main{flex:1;overflow-y:auto;min-width:0}
.page{padding:24px 28px}

/* ── SIDEBAR ── */
.sb-sec{padding:12px 0 4px}
.sb-lbl{font-size:0.643rem;font-family:var(--mono);color:var(--t4);letter-spacing:.12em;text-transform:uppercase;padding:0 12px 4px}
.sbi{display:flex;align-items:center;width:calc(100% - 12px);margin:1px 6px;padding:7px 10px;background:none;border:none;border-radius:6px;color:var(--t3);font-family:var(--sans);font-size:0.857rem;cursor:pointer;transition:all .11s;text-align:left;gap:8px}
.sbi:hover{background:var(--s2);color:var(--t2)}
.sbi.on{background:var(--blue-lt);color:var(--tnc-blue);font-weight:500}
.sbi .cnt{font-family:var(--mono);font-size:0.643rem;color:var(--t4);background:var(--bg);border-radius:10px;padding:1px 5px;margin-left:auto;flex-shrink:0}
.sbi.on .cnt{color:var(--tnc-blue);background:transparent}
.sbi-n{font-size:0.821rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}

/* ── PAGE HDR ── */
.phd{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px;gap:12px}
.ptitle{font-size:1.286rem;font-weight:700;letter-spacing:-.2px}
.pmeta{display:flex;gap:5px;margin-top:4px;align-items:center;flex-wrap:wrap}
.phd-r{display:flex;gap:7px;align-items:center;flex-shrink:0;flex-wrap:wrap}

/* ── BUTTONS ── */
.btn{background:var(--s2);border:1px solid var(--bd);border-radius:var(--r);padding:6px 14px;font-size:0.821rem;font-family:var(--sans);font-weight:500;color:var(--t2);cursor:pointer;transition:all .12s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.btn:hover{background:var(--s3);color:var(--t1);border-color:var(--bd2)}
.btn.pri{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:600}
.btn.pri:hover{background:var(--blue2)}
.btn.vio{background:var(--violet);border-color:var(--violet);color:#fff;font-weight:600}
.btn.vio:hover{background:var(--violet2)}
.btn.gold{background:var(--gold);border-color:var(--gold);color:#1a1205;font-weight:600}
.btn.gold:hover{background:var(--gold2)}
.btn.teal{background:var(--teal);border-color:var(--teal);color:#fff;font-weight:600}
.btn.teal:hover{background:var(--teal2)}
.btn.ghost{background:none;border-color:transparent;color:var(--t3)}
.btn.ghost:hover{background:var(--s2);color:var(--t1);border-color:var(--bd)}
.btn.dng:hover{background:#200610;border-color:var(--rose);color:var(--rose)}
.btn.sm{padding:4px 9px;font-size:0.714rem}
.btn.xs{padding:2px 7px;font-size:0.714rem}
.btn-group{display:flex;gap:2px;background:var(--s2);border-radius:6px;padding:2px;border:1px solid var(--bd)}

/* ── FORMS ── */
.card{background:var(--s1);border:1px solid var(--bd);border-radius:10px}
.card-hd{padding:10px 12px;border-bottom:1px solid var(--bd);display:flex;align-items:center;justify-content:space-between}
.card-t{font-size:0.857rem;font-weight:600;display:flex;align-items:center;gap:6px}
.card-b{padding:12px}
.frow{display:grid;gap:8px;margin-bottom:8px}
.frow.c1{grid-template-columns:1fr}.frow.c2{grid-template-columns:1fr 1fr}.frow.c3{grid-template-columns:1fr 1fr 1fr}.frow.c4{grid-template-columns:1fr 1fr 1fr 1fr}.frow.c5{grid-template-columns:repeat(5,1fr)}.frow.c6{grid-template-columns:repeat(6,1fr)}
.fg{display:flex;flex-direction:column;gap:3px}
.fg label{font-size:0.643rem;font-family:var(--sans);color:var(--t3);letter-spacing:.08em;text-transform:uppercase;font-weight:500}
.fi,.fs,.fta{background:var(--s2);border:1px solid var(--bd);border-radius:6px;color:var(--t1);font-family:var(--sans);font-size:0.857rem;padding:6px 9px;outline:none;transition:border-color .14s;width:100%}
.fi:focus,.fs:focus,.fta:focus{border-color:var(--tnc-blue)}
.fi::placeholder,.fta::placeholder{color:var(--t4)}
.fi.mono{font-family:var(--mono);font-size:0.786rem}.fi[type=number]{font-family:var(--mono)}
.fs{appearance:none;cursor:pointer}
.fta{resize:vertical;min-height:55px}
.f-act{display:flex;gap:7px;justify-content:flex-end;margin-top:4px}

/* ── TABLES ── */
.tw{border-radius:10px;overflow:hidden;border:1px solid var(--bd);margin-bottom:14px}
.tbl{width:100%;border-collapse:collapse;background:var(--s1)}
.tbl th{background:var(--s2);padding:9px 12px;font-size:0.643rem;font-family:var(--sans);font-weight:500;color:var(--t3);text-align:left;letter-spacing:.06em;border-bottom:1px solid var(--bd);white-space:nowrap}
.tbl td{padding:9px 12px;font-size:0.857rem;vertical-align:middle;border-bottom:1px solid var(--bd)}
.tbl tr:last-child td{border-bottom:none}
.tbl tbody tr:hover{background:rgba(59,110,245,.04)}
.tbl td.mono{font-family:var(--mono);font-size:0.714rem}
.tbl td.act{text-align:right;white-space:nowrap}
.il{background:transparent;border:1px solid transparent;border-radius:5px;color:var(--t1);font-family:var(--sans);font-size:0.821rem;padding:3px 6px;outline:none;transition:all .12s;width:100%}
.il:hover{border-color:var(--bd)}.il:focus{border-color:var(--tnc-blue);background:var(--s3)}
.il.mono{font-family:var(--mono);font-size:0.714rem}.il[type=number]{font-family:var(--mono)}
.il-ro{background:var(--s2);border-color:transparent!important;color:var(--t2);cursor:default}

/* ── COLOR PICKER 40 ── */
.cp40{display:flex;flex-wrap:wrap;gap:5px;padding:8px;background:var(--s2);border:1px solid var(--bd);border-radius:8px;width:230px}
.cp40-sw{width:20px;height:20px;border-radius:4px;cursor:pointer;border:2px solid transparent;transition:all .1s;flex-shrink:0}
.cp40-sw:hover,.cp40-sw.on{border-color:#fff;transform:scale(1.15)}
/* Inline mini swatch */
.csw{display:inline-block;border-radius:2px;flex-shrink:0}

/* ── TIMESHEET ── */
.ts-proj-list{background:var(--s1);border:1px solid var(--bd);border-radius:10px;margin-bottom:10px;overflow:hidden}
.ts-proj-hd{padding:8px 12px;border-bottom:1px solid var(--bd);font-size:0.643rem;font-family:var(--mono);color:var(--t4);letter-spacing:.1em;text-transform:uppercase;display:flex;align-items:center;justify-content:space-between}
.ts-proj-row{display:flex;align-items:center;gap:10px;padding:6px 12px;border-bottom:1px solid var(--bd);font-size:0.786rem}
.ts-proj-row:last-child{border-bottom:none}
.ts-proj-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0;cursor:pointer;border:2px solid transparent;transition:border-color .12s}
.ts-proj-dot:hover{border-color:#fff}
.ts-proj-id{font-family:var(--mono);font-size:0.714rem;font-weight:600;flex:0 0 80px}
.ts-proj-desc{color:var(--t2);font-size:0.786rem;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ts-proj-gg{font-family:var(--mono);font-size:0.714rem;color:var(--t3);flex:0 0 40px;text-align:right}
/* color popup */
.cpop{position:absolute;z-index:200;box-shadow:0 8px 24px rgba(0,0,0,.6)}
/* week grid */
.mhd{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.mhd-t{font-size:1.071rem;font-weight:600}.mhd-s{font-family:var(--mono);font-size:0.714rem;color:var(--t3)}.mhd-s b{color:var(--tnc-blue)}
.week-blk{margin-bottom:8px;border-radius:10px;overflow:hidden;border:1px solid var(--bd)}
.week-cap{background:var(--s1);padding:3px 11px;font-size:0.643rem;font-family:var(--mono);color:var(--t4);letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid var(--bd)}
.ts-tbl{width:100%;border-collapse:collapse;background:var(--s1)}
.ts-tbl th{background:var(--s2);padding:4px 7px;font-size:0.643rem;font-family:var(--mono);font-weight:500;color:var(--t4);text-align:center;border-bottom:1px solid var(--bd);white-space:nowrap;min-width:50px}
.ts-tbl th:first-child{text-align:left}
.drow{border-bottom:1px solid var(--bd);transition:background .1s}.drow:last-child{border-bottom:none}
.drow:hover{background:rgba(59,110,245,.03)}.drow.we{background:rgba(255,255,255,.008)}.drow.hol{background:rgba(255,60,60,.03)}.drow.tdy{background:rgba(59,110,245,.1)!important}.drow.we .hi,.drow.hol .hi{opacity:.6}
.ts-tbl td{padding:3px 5px;vertical-align:middle}
.dc{padding-left:10px!important}
.dn{font-family:var(--mono);font-size:0.786rem;color:var(--t1);font-weight:500;line-height:1.2}
.dd{font-family:var(--mono);font-size:0.643rem;color:var(--t4);display:block;line-height:1.2}
.we .dn,.we .dd{color:var(--t4)}
.tc{font-family:var(--mono);font-size:0.786rem;font-weight:600;text-align:center;padding:3px 4px!important}
.tok{color:#34d399}.tov{color:#fb7185}.tun{color:#fbbf24}.tz{color:var(--t4)}
.hi{width:100%;min-width:44px;background:transparent;border:1px solid transparent;border-radius:4px;font-family:var(--mono);font-size:0.786rem;padding:3px 4px;text-align:center;outline:none;transition:all .12s;color:var(--t1)}
.hi:hover:not(:focus):not(:disabled){border-color:var(--bd)}.hi:focus{border-color:var(--tnc-blue);background:var(--s3)}
.hi.hv{font-weight:700}.hi:disabled{opacity:.14;cursor:not-allowed}

/* ── ADMIN SUB-TABS ── */
.admin-sub{display:flex;border-bottom:1px solid var(--bd);background:var(--s1);flex-shrink:0;padding:0 20px;overflow-x:auto}
.ast{background:none;border:none;border-bottom:2px solid transparent;color:var(--t3);font-family:var(--sans);font-size:0.857rem;font-weight:500;padding:12px 14px;cursor:pointer;transition:all .14s;white-space:nowrap}
.ast:hover{color:var(--t1)}.ast.on{color:var(--tnc-blue);border-bottom-color:var(--tnc-blue);font-weight:600}
.ast[aria-current="page"]{color:var(--tnc-blue);border-bottom-color:var(--tnc-blue);font-weight:600}

/* ── PROGRESS ── */
.pbar{background:var(--s3);border-radius:3px;overflow:hidden;height:4px}
.pbar-f{height:100%;border-radius:3px;transition:width .5s ease}
.bar-row{display:flex;align-items:center;gap:9px;margin-bottom:5px}
.bar-lbl{font-size:0.786rem;color:var(--t2);flex:0 0 145px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bar-track{flex:1;height:5px;background:var(--s3);border-radius:3px;overflow:hidden}
.bar-fill{height:100%;border-radius:3px;transition:width .6s ease}
.bar-val{font-family:var(--sans);font-size:0.714rem;color:var(--t3);flex:0 0 44px;text-align:right}

/* ── KPI ── */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-bottom:20px}
.kpi{background:var(--s1);border:1px solid var(--bd);border-radius:10px;padding:16px 18px}
.kpi-l{font-size:0.643rem;font-family:var(--sans);color:var(--t3);text-transform:uppercase;letter-spacing:.09em;margin-bottom:8px;font-weight:600}
.kpi-v{font-size:1.75rem;font-weight:700;font-family:var(--sans);line-height:1;letter-spacing:-.03em}
.kpi-s{font-size:0.786rem;color:var(--t3);margin-top:5px}

/* ── EFFORT ── */
.eff-wrap{background:var(--s1);border:1px solid var(--bd);border-radius:10px;overflow:hidden;margin-bottom:16px}
.eff-hd{padding:8px 12px;border-bottom:1px solid var(--bd);display:flex;align-items:center;justify-content:space-between;background:var(--s2)}
.eff-title{font-size:0.857rem;font-weight:600}
.eff-tbl{width:100%;border-collapse:collapse}
.eff-tbl th{background:var(--s3);padding:5px 8px;font-size:0.643rem;font-family:var(--sans);color:var(--t3);text-align:left;border-bottom:1px solid var(--bd);white-space:nowrap}
.eff-tbl td{padding:5px 8px;font-size:0.821rem;vertical-align:middle;border-bottom:1px solid var(--bd)}
.eff-tbl tr:last-child td{border-bottom:none}
.eff-tbl tr:hover td{background:rgba(59,110,245,.04)}
.eff-tbl tr.summary-row td{background:var(--s2);font-weight:600;border-top:2px solid var(--tnc-blue)}
.eff-foot{background:var(--s2);border-top:2px solid var(--bd2);padding:8px 12px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.eff-fi{display:flex;gap:5px;align-items:center}
.eff-fl{font-size:0.643rem;font-family:var(--sans);color:var(--t3);text-transform:uppercase}
.eff-fv{font-family:var(--sans);font-size:0.786rem;color:var(--t1);font-weight:600}
/* month distribution row */
.month-dist{display:flex;gap:2px}
.md-cell{flex:1;height:18px;border-radius:2px;font-size:0.571rem;font-family:var(--mono);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .1s}
.md-cell.has{color:#fff}

/* ── PROSPECT / CRM ── */
.crm-board{display:flex;gap:10px;overflow-x:auto;padding-bottom:8px;min-height:500px}
.crm-col{flex:0 0 240px;background:var(--s1);border:1px solid var(--bd);border-radius:10px;display:flex;flex-direction:column;overflow:hidden}
.crm-col-hd{padding:8px 12px;border-bottom:1px solid var(--bd);display:flex;align-items:center;justify-content:space-between}
.crm-col-title{font-size:0.786rem;font-weight:600;display:flex;align-items:center;gap:6px}
.crm-col-cnt{font-family:var(--mono);font-size:0.643rem;color:var(--t3);background:var(--bg);border-radius:10px;padding:1px 6px}
.crm-col-val{font-family:var(--mono);font-size:0.643rem;color:var(--t4)}
.crm-cards{flex:1;overflow-y:auto;padding:6px}
.crm-card{background:var(--s2);border:1px solid var(--bd);border-radius:6px;padding:10px 12px;margin-bottom:6px;cursor:pointer;transition:border-color .12s}
.crm-card:hover{border-color:var(--tnc-blue)}
.crm-card-name{font-size:0.786rem;font-weight:500;color:var(--t1);margin-bottom:4px;line-height:1.3}
.crm-card-client{font-size:0.714rem;color:var(--tnc-blue);font-family:var(--mono);margin-bottom:5px}
.crm-card-meta{display:flex;align-items:center;justify-content:space-between}
.crm-card-val{font-family:var(--mono);font-size:0.714rem;color:var(--tnc-gold);font-weight:600}
.crm-card-wp{font-family:var(--mono);font-size:0.643rem;padding:2px 6px;border-radius:10px;border:1px solid}
.crm-card-prio{font-size:0.643rem;padding:1px 5px;border-radius:3px;border:1px solid}

/* ── TIMELINE ── */
.tl-wrap{overflow-x:auto;padding-bottom:4px}
.tl-header{display:flex;background:var(--s2);border-bottom:1px solid var(--bd);min-width:700px}
.tl-hl{flex:0 0 150px;padding:5px 9px;font-size:0.643rem;font-family:var(--mono);color:var(--t3);text-transform:uppercase;letter-spacing:.06em;border-right:1px solid var(--bd)}
.tl-hcells{flex:1;display:flex}
.tl-hcell{flex:1;padding:4px 2px;text-align:center;font-size:0.643rem;font-family:var(--mono);color:var(--t4);border-right:1px solid var(--bd)}
.tl-row{display:flex;border-bottom:1px solid var(--bd);min-width:700px}
.tl-row:last-child{border-bottom:none}
.tl-rl{flex:0 0 150px;padding:6px 9px;font-size:0.786rem;color:var(--t2);border-right:1px solid var(--bd);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:5px}
.tl-cells{flex:1;display:flex}
.tl-cell{flex:1;min-height:26px;border-right:1px solid var(--bd);position:relative}
.tl-bar{position:absolute;inset:3px 1px;border-radius:3px;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:0.643rem;color:#fff;font-weight:500}

/* ── MODAL ── */
.ov{position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:500;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(8px)}
.ov.hide{display:none}
.modal{background:var(--s1);border:1px solid var(--bd);border-radius:14px;width:500px;max-width:96vw;max-height:88vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.7)}
.modal.lg{width:680px}.modal.xl{width:900px}
.m-hd{padding:13px 18px 10px;border-bottom:1px solid var(--bd);display:flex;align-items:center;justify-content:space-between}
.m-ht{font-size:0.929rem;font-weight:600}
.m-x{background:none;border:none;color:var(--t3);font-size:1.071rem;cursor:pointer;padding:2px 5px;border-radius:4px;line-height:1}
.m-x:hover{background:var(--s2);color:var(--t1)}
.m-srch{padding:9px 18px;border-bottom:1px solid var(--bd)}
.m-body{overflow-y:auto;flex:1;padding:6px 0}
.m-ft{padding:11px 18px;border-top:1px solid var(--bd);display:flex;justify-content:flex-end;gap:7px}
.mi{display:flex;align-items:center;gap:9px;padding:8px 18px;cursor:pointer;transition:background .1s}
.mi:hover{background:var(--s2)}.mi.sel{background:rgba(59,110,245,.07)}
.mchk{width:14px;height:14px;border-radius:4px;border:1px solid var(--bd);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .12s}
.mi.sel .mchk{background:var(--tnc-blue);border-color:var(--tnc-blue)}
.mchk svg{display:none}.mi.sel .mchk svg{display:block}
.minf{flex:1;min-width:0}
.minf-id{font-family:var(--mono);font-size:0.643rem;color:var(--tnc-blue)}
.minf-n{font-size:0.786rem;color:var(--t2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.minf-c{font-size:0.714rem;color:var(--t4)}

/* ── AUTH ── */
#auth-wall{position:fixed;inset:0;z-index:900;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#08090e 0%,#0e1018 50%,#12101e 100%)}
.auth-box{background:var(--s1);border:1px solid var(--bd);border-radius:14px;padding:30px 32px;width:340px;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.6)}
.auth-logo{height:36px;margin:0 auto 18px;display:block}
.auth-title{font-size:1.071rem;font-weight:600;margin-bottom:4px}
.auth-sub{font-size:0.786rem;color:var(--t3);margin-bottom:18px}
.auth-err{font-size:0.786rem;color:var(--rose);margin-top:8px;min-height:15px}

/* ── MISC ── */
.sec-t{font-size:0.786rem;font-weight:700;color:var(--t1);margin-bottom:10px;letter-spacing:.02em}
.no-data{text-align:center;color:var(--t4);font-size:0.786rem;font-family:var(--mono);padding:14px 0}
.divider{height:1px;background:var(--bd);margin:12px 0}
.empty-s{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;gap:9px;color:var(--t4);font-family:var(--mono);font-size:0.857rem}
.empty-icon{font-size:2.286rem;opacity:.2}
.toast{position:fixed;bottom:16px;right:16px;background:var(--green);color:#fff;font-size:0.786rem;font-weight:600;padding:8px 16px;border-radius:8px;z-index:999;transform:translateY(50px);opacity:0;transition:transform .24s,opacity .24s;pointer-events:none}
.toast.show{transform:translateY(0);opacity:1}
::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bd2);border-radius:2px}

/* ── FOCUS VISIBLE ── */
:focus-visible{outline:2px solid var(--tnc-blue);outline-offset:2px;border-radius:3px}
button:focus-visible,a:focus-visible{outline:2px solid var(--tnc-blue);outline-offset:2px}

/* ── TEMA: transizione fluida senza flash ── */
body,#topbar,.sidebar,.modal,.card,.kpi,.eff-wrap,.admin-sub{transition:background-color .18s,border-color .18s,color .18s}

/* ── OVERLAY: fade-in ── */
@keyframes _ovFadeIn{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}
@keyframes _ovFadeOut{from{opacity:1}to{opacity:0}}
.ov-panel{animation:_ovFadeIn .16s ease-out}

/* ── TOAST: tipi ── */
.toast{position:fixed;bottom:20px;right:20px;min-width:200px;max-width:380px;font-size:0.821rem;font-weight:600;padding:10px 16px;border-radius:8px;z-index:9999;transform:translateY(60px);opacity:0;transition:transform .22s cubic-bezier(.34,1.56,.64,1),opacity .18s;pointer-events:none;display:flex;align-items:center;gap:8px;box-shadow:0 4px 20px rgba(0,0,0,.4)}
.toast.show{transform:translateY(0);opacity:1}
.toast.t-ok{background:#065f46;color:#d1fae5;border:1px solid #059669}
.toast.t-warn{background:#78350f;color:#fef3c7;border:1px solid #d97706}
.toast.t-err{background:#7f1d1d;color:#fecaca;border:1px solid #e11d48}

/* ── EMPTY STATE ── */
.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;gap:12px;padding:40px 20px;text-align:center}
.empty-state-icon{font-size:2.857rem;opacity:.15;line-height:1}
.empty-state-title{font-size:0.929rem;font-weight:600;color:var(--t2)}
.empty-state-sub{font-size:0.786rem;color:var(--t4);font-family:var(--mono)}

/* ── VALIDAZIONE INLINE ── */
.fi.invalid,.fs.invalid{border-color:var(--rose)!important;background:rgba(225,29,72,.06)!important}
.field-err{font-family:var(--mono);font-size:0.643rem;color:var(--rose);margin-top:3px;min-height:13px}

/* ── BADGE BOZZA ── */
.badge-bozza{display:inline-flex;align-items:center;padding:1px 6px;border-radius:4px;font-family:var(--mono);font-size:0.571rem;font-weight:700;background:rgba(245,166,35,.15);color:var(--amber);border:1px solid rgba(245,166,35,.35);letter-spacing:.04em}

/* ── SALVATAGGIO IN CORSO ── */
.btn.saving{opacity:.6;pointer-events:none;cursor:wait}
.btn.saving::after{content:' …';font-style:italic}

/* ── LIGHT THEME: input e select ── */
:root[data-theme="light"] input:not([type="range"]):not([type="checkbox"]),:root[data-theme="light"] select,:root[data-theme="light"] textarea{background:var(--s1);border-color:var(--bd);color:var(--t1)}
:root[data-theme="light"] .sbi.on .cnt{background:#dbeafe}
:root[data-theme="light"] .auth-box{box-shadow:0 4px 30px rgba(0,0,0,.12)}
:root[data-theme="light"] .modal{box-shadow:0 8px 40px rgba(0,0,0,.15)}
:root[data-theme="light"] .eff-tbl tr:hover td{background:rgba(36,82,212,.04)}
:root[data-theme="light"] #auth-wall{background:linear-gradient(135deg,#f0eff0 0%,#F5F5F3 50%,#ece9f0 100%)}
:root[data-theme="light"] .crm-card{background:var(--s1)}
:root[data-theme="light"] .tag-bl{color:var(--tnc-blue);background:#dbeafe;border-color:#93c5fd}
:root[data-theme="light"] .tag-vi{color:var(--violet);background:#ede9fe;border-color:#c4b5fd}
:root[data-theme="light"] .tag-go{color:var(--gold);background:#fef9c3;border-color:#fde047}
:root[data-theme="light"] .tag-tl{color:var(--teal);background:#d1fae5;border-color:#6ee7b7}
:root[data-theme="light"] .tag-ro{color:var(--rose);background:#fee2e2;border-color:#fca5a5}
:root[data-theme="light"] .tag-gr{color:var(--green);background:#dcfce7;border-color:#86efac}
/* ── LIGHT THEME: airy aesthetic enhancements ── */
:root[data-theme="light"] #topbar{box-shadow:0 1px 3px rgba(0,0,0,.06)}
:root[data-theme="light"] .sidebar{box-shadow:1px 0 0 var(--bd)}
:root[data-theme="light"] .card{box-shadow:0 1px 3px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04)}
:root[data-theme="light"] .kpi{box-shadow:0 1px 3px rgba(0,0,0,.06)}
:root[data-theme="light"] .eff-wrap{box-shadow:0 1px 3px rgba(0,0,0,.05)}
:root[data-theme="light"] .crm-col{box-shadow:0 1px 2px rgba(0,0,0,.04)}
:root[data-theme="light"] .tbl tbody tr:hover{background:rgba(37,99,235,.04)}
:root[data-theme="light"] .btn{box-shadow:0 1px 2px rgba(0,0,0,.05)}
:root[data-theme="light"] .btn.pri{box-shadow:0 1px 3px rgba(37,99,235,.3)}
:root[data-theme="light"] .btn.vio{box-shadow:0 1px 3px rgba(124,58,237,.3)}
:root[data-theme="light"] .drow.tdy{background:rgba(37,99,235,.08)!important}
:root[data-theme="light"] #auth-wall{background:linear-gradient(135deg,#eef2ff 0%,#f5f6f8 50%,#f0eeff 100%)}
:root[data-theme="light"] #topbar{box-shadow:0 1px 4px rgba(0,0,0,.06)}

/* ── PROTOTYPE COMPONENTS ── */
.badge{display:inline-flex;align-items:center;padding:2px 7px;border-radius:99px;font-size:0.714rem;font-weight:600;white-space:nowrap}
.b-blue{background:var(--blue-lt);color:var(--blue)}
.b-teal{background:var(--teal-lt);color:var(--teal)}
.b-violet{background:var(--violet-lt);color:var(--violet)}
.b-gold{background:var(--gold-lt);color:var(--gold)}
.b-rose{background:var(--rose-lt);color:var(--rose)}
.b-green{background:var(--green-lt);color:var(--green)}
.b-grey{background:var(--s2);color:var(--t3)}

/* Section card */
.sc{background:var(--s1);border:1px solid var(--bd);border-radius:var(--r);padding:16px 20px;margin-bottom:16px}
.sc-title{font-size:0.786rem;font-weight:600;color:var(--t2);margin-bottom:12px;display:flex;align-items:center;gap:8px}
.sc-title .ct{margin-left:auto;font-size:0.714rem;font-weight:400;color:var(--t4)}

/* KPI cards (Prospect / Dashboard overview) */
.kpi-grid-p{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:20px}
.kpi-card{background:var(--s1);border:1px solid var(--bd);border-radius:var(--r);padding:16px 20px;min-height:88px;display:flex;flex-direction:column}
.kpi-lbl{font-size:0.643rem;font-weight:600;color:var(--t4);letter-spacing:.4px;text-transform:uppercase;margin-bottom:8px}
.kpi-val{font-size:1.375rem;font-weight:700;font-family:var(--sans);color:var(--t1);letter-spacing:-.5px;line-height:1}
.kpi-sub{font-size:0.714rem;font-family:var(--sans);color:var(--t4);margin-top:5px}

/* Effort section label */
.eff-sec-lbl{font-size:0.643rem;font-weight:600;color:var(--t4);letter-spacing:.6px;text-transform:uppercase;margin:16px 0 8px;padding-bottom:8px;border-bottom:1px solid var(--bd)}

/* Sidebar nav buttons — effort/prototype style */
.psnav-btn{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:6px;margin:1px 6px;font-size:0.821rem;font-weight:500;color:var(--t3);transition:background .16s,color .16s;cursor:pointer;border:none;background:none;width:calc(100% - 12px);text-align:left}
.psnav-btn:hover{background:var(--s2);color:var(--t2)}
.psnav-btn.on{background:var(--blue-lt);color:var(--blue)}

/* Mono text */
.mono{font-family:var(--mono);font-size:0.786rem}

/* Win% bar inline */
.wp-bar{display:flex;align-items:center;gap:6px;white-space:nowrap}
.wp-track{flex:0 0 40px;height:4px;background:var(--s2);border-radius:99px;overflow:hidden}
.wp-fill{height:100%;border-radius:99px}

/* Breadcrumb */
.bc{font-size:0.786rem;color:var(--t4);margin-bottom:16px;display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.bc-link{color:var(--blue);cursor:pointer}
.bc-sep{color:var(--t5)}

/* Page header — prototype style */
.ph{display:flex;align-items:flex-start;gap:12px;margin-bottom:24px}
.ph-title{font-size:1.125rem;font-weight:700;color:var(--t1);letter-spacing:-.3px}
.ph-sub{font-size:0.786rem;color:var(--t4);margin-top:2px}
.ph-actions{margin-left:auto;display:flex;gap:8px;align-items:center;flex-shrink:0}

/* Prospect pipeline bucket */
.pipe-bucket{border:1px solid var(--bd);border-radius:var(--r);padding:14px 16px;text-align:center;background:var(--s1);min-height:88px;display:flex;flex-direction:column;justify-content:center}
.pipe-bucket.won{background:var(--green-lt);border-color:var(--green)}
.pipe-lbl{font-size:0.643rem;font-weight:600;color:var(--t4);letter-spacing:.3px;text-transform:uppercase;margin-bottom:4px}
.pipe-bucket.won .pipe-lbl{color:var(--green)}
.pipe-val{font-size:1rem;font-weight:700;font-family:var(--sans);color:var(--t1)}
.pipe-cnt{font-size:0.714rem;font-family:var(--sans);color:var(--t4);margin-top:2px}

/* Effort sidebar — new client accordion */
.eff-cl-new-hdr{display:flex;align-items:center;gap:6px;padding:6px 10px 5px;cursor:pointer;user-select:none}
.eff-cl-new-hdr:hover .eff-cl-new-name{color:var(--t2)}
.eff-cl-new-name{font-size:0.714rem;font-weight:600;color:var(--t3);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.eff-cl-new-cnt{font-size:0.643rem;color:var(--t5);background:var(--s2);border:1px solid var(--bd);border-radius:99px;padding:0 5px;line-height:16px}