/* =====================================================================
   KLAPS — Painel  ·  Tema escuro, autoral
   ===================================================================== */

:root{
  --bg:        #0c0d10;
  --panel:     #131418;
  --panel-2:   #181a1f;
  --raised:    #1d2026;
  --line:      rgba(255,255,255,.08);
  --line-soft: rgba(255,255,255,.05);
  --hover:     rgba(255,255,255,.04);

  --ink:       #e9eaed;
  --muted:     #9a9ea7;
  --faint:     #61646c;

  --accent:    #e3b341;     /* âmbar discreto */
  --accent-ink:#1a1407;
  --teal:      #5eb8b3;

  --radius:    13px;
  --sidebar-w: 272px;

  /* tipos de dia (dessaturados p/ fundo escuro) */
  --t-trabalho:#d8dadf;
  --t-folga:   #6aa9e0;
  --t-domingo: #6b7079;
  --t-feriado: #e3b341;
  --t-doente:  #e0788a;
}

*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{
  font-family:"Geist","Inter Tight",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:var(--bg); color:var(--ink);
  font-size:16px; line-height:1.55; -webkit-font-smoothing:antialiased;
}
.mono{font-family:"Geist Mono","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace}
button{font-family:inherit;cursor:pointer;color:inherit}
a{color:inherit;text-decoration:none}
.hidden{display:none !important}
svg.ic{width:20px;height:20px;stroke:currentColor;stroke-width:1.6;fill:none;
  stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto;display:block}
.micro{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-weight:600}

/* =====================================================================
   LOGIN
   ===================================================================== */
.login{min-height:100vh;display:grid;place-items:center;padding:24px;
  background:radial-gradient(1200px 600px at 50% -10%, rgba(227,179,65,.06), transparent 60%), var(--bg)}
.login-card{width:100%;max-width:380px;text-align:center}
.login .mark{display:flex;align-items:center;justify-content:center;gap:11px;margin-bottom:6px}
.login .mark .dot{width:11px;height:11px;border-radius:3px;background:var(--accent)}
.login .mark b{font-size:22px;letter-spacing:.32em;font-weight:600;padding-left:.32em}
.login .tag{color:var(--muted);font-size:13px;margin-bottom:30px}
.login-box{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:26px 24px;text-align:left}
.login-box h2{margin:0 0 2px;font-size:18px;font-weight:600}
.login-box .h-sub{color:var(--muted);font-size:12.5px;margin-bottom:20px}
.lg-field{margin-bottom:12px}
.lg-field label{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin-bottom:6px;font-weight:600}
.lg-field input{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:9px;
  padding:11px 12px;font-size:14px;color:var(--ink)}
.lg-field input:focus{outline:none;border-color:var(--accent)}
.lg-btn{width:100%;background:var(--ink);color:#111;border:none;border-radius:9px;padding:12px;
  font-size:14px;font-weight:650;margin-top:6px}
.lg-btn:hover{background:#fff}
.lg-google{width:100%;background:transparent;border:1px solid var(--line);border-radius:9px;padding:11px;
  font-size:14px;font-weight:550;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--ink)}
.lg-google:hover{border-color:var(--muted);background:var(--hover)}
.lg-sep{display:flex;align-items:center;gap:12px;color:var(--faint);font-size:11px;margin:16px 0;letter-spacing:.1em}
.lg-sep::before,.lg-sep::after{content:"";height:1px;background:var(--line);flex:1}
.lg-who{display:flex;gap:8px;margin-top:18px}
.lg-who button{flex:1;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px;
  display:flex;align-items:center;gap:9px;font-size:13px;color:var(--muted)}
.lg-who button:hover{border-color:var(--accent);color:var(--ink)}
.lg-who .av{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;color:#111}
.lg-note{text-align:center;color:var(--faint);font-size:11px;margin-top:22px;line-height:1.5}
.lg-err{background:rgba(224,120,138,.12);border:1px solid rgba(224,120,138,.4);color:#e0788a;
  font-size:12.5px;border-radius:8px;padding:9px 11px;margin-bottom:12px;line-height:1.45}
.lg-toggle{text-align:center;color:var(--muted);font-size:12.5px;margin-top:16px}
.lg-toggle a{color:var(--accent);font-weight:600;cursor:pointer}
.lg-toggle a:hover{text-decoration:underline}
.lg-btn:disabled{opacity:.6}

/* =====================================================================
   SHELL
   ===================================================================== */
.app{display:flex;min-height:100vh}
.sidebar{width:var(--sidebar-w);flex:0 0 var(--sidebar-w);background:var(--panel);
  border-right:1px solid var(--line);height:100vh;position:sticky;top:0;
  display:flex;flex-direction:column;padding:18px 14px}
.brand{display:flex;align-items:center;gap:10px;padding:6px 8px 18px}
.brand .dot{width:10px;height:10px;border-radius:3px;background:var(--accent)}
.brand b{font-size:15px;letter-spacing:.26em;font-weight:600;padding-left:.26em}

/* switcher de espaço */
.spaces{display:flex;flex-direction:column;gap:3px;margin-bottom:14px}
.space{display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid transparent;border-radius:10px;
  background:transparent;width:100%;text-align:left;color:var(--muted);font-size:13.5px}
.space .sq{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;font-size:11px;font-weight:700;
  background:var(--raised);color:var(--muted);flex:0 0 auto}
.space small{display:block;font-size:10.5px;color:var(--faint)}
.space:hover{background:var(--hover);color:var(--ink)}
.space.active{background:var(--raised);border-color:var(--line);color:var(--ink)}
.space.active .sq{background:var(--accent);color:#111}

.nav-label{padding:8px 10px 6px}
.nav{display:flex;flex-direction:column;gap:2px}
.nav button{display:flex;align-items:center;gap:11px;width:100%;text-align:left;padding:9px 10px;
  border:none;background:transparent;border-radius:9px;color:var(--muted);font-size:14px;font-weight:500}
.nav button:hover{background:var(--hover);color:var(--ink)}
.nav button.active{background:var(--raised);color:var(--ink)}
.nav button.active svg{stroke:var(--accent)}
.nav .count{margin-left:auto;font-size:11px;color:var(--faint);font-weight:600}

.side-foot{margin-top:auto;padding-top:12px;border-top:1px solid var(--line)}
.user{display:flex;align-items:center;gap:10px;padding:8px 8px}
.user .av{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;color:#111;flex:0 0 auto}
.user .who{min-width:0;flex:1}
.user .who b{font-size:13px;display:block}
.user .who small{font-size:10.5px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.user .out{border:none;background:transparent;color:var(--faint);padding:6px;border-radius:7px}
.user .out:hover{background:var(--hover);color:var(--ink)}

/* =====================================================================
   MAIN
   ===================================================================== */
.main{flex:1;min-width:0;width:100%;padding:30px 44px 80px}
@media(max-width:1100px){.main{padding:26px 28px 70px}}
@media(max-width:680px){.main{padding:20px 16px 60px}}
.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:26px;flex-wrap:wrap}
.topbar h1{margin:0;font-size:22px;font-weight:600;letter-spacing:-.01em}
.topbar .sub{color:var(--muted);font-size:13px;margin-top:5px}
.topbar .right{display:flex;align-items:center;gap:10px}
.today{border:1px solid var(--line);border-radius:10px;padding:7px 12px;font-size:12px;color:var(--muted)}
.today b{color:var(--ink);font-weight:600}

.btn{border:1px solid var(--line);background:var(--panel-2);color:var(--ink);padding:8px 13px;border-radius:9px;
  font-size:13px;font-weight:550;display:inline-flex;align-items:center;gap:7px}
.btn:hover{border-color:var(--muted)}
.btn svg{width:15px;height:15px}
.btn.primary{background:var(--ink);color:#111;border-color:var(--ink);font-weight:650}
.btn.primary:hover{background:#fff}
.btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}
.btn.ghost:hover{background:var(--hover);color:var(--ink)}
.btn.sm{padding:5px 9px;font-size:12px}

.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}

/* badge */
.badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;padding:3px 9px;
  border-radius:7px;letter-spacing:.02em;text-transform:capitalize;border:1px solid var(--line);background:var(--panel-2)}
.badge .dot{width:6px;height:6px;border-radius:50%}

/* =====================================================================
   LOG
   ===================================================================== */
.log-wrap{display:grid;grid-template-columns:320px 1fr;gap:28px;align-items:start}
@media(max-width:960px){.log-wrap{grid-template-columns:1fr}}
.cal{padding:16px}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.cal-head b{font-size:14px;font-weight:600}
.cal-nav{display:flex;gap:4px}
.cal-nav button{border:1px solid var(--line);background:transparent;width:28px;height:28px;border-radius:8px;
  color:var(--muted);display:grid;place-items:center}
.cal-nav button:hover{border-color:var(--muted);color:var(--ink)}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cal-grid .wd{text-align:center;font-size:10px;font-weight:600;color:var(--faint);padding:2px 0;letter-spacing:.05em;min-width:0}
.cal-day{aspect-ratio:1;min-width:0;border-radius:8px;border:1px solid transparent;background:var(--panel-2);
  display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500;color:var(--muted);position:relative}
.cal-day:hover{border-color:var(--muted);color:var(--ink)}
.cal-day.empty{background:transparent;cursor:default}
.cal-day.off{color:var(--faint);background:transparent;border:1px solid var(--line-soft)}
.cal-day.today{color:var(--accent);border-color:var(--accent)}
.cal-day.sel{background:var(--ink);color:#111;font-weight:700}
.cal-day .pip{width:5px;height:5px;border-radius:50%;position:absolute;bottom:5px;left:50%;transform:translateX(-50%)}
.cal-legend{display:flex;flex-wrap:wrap;gap:9px 14px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}
.cal-legend span{display:inline-flex;align-items:center;gap:6px}
.cal-legend i{width:7px;height:7px;border-radius:50%}

.daylist{display:flex;flex-direction:column;gap:12px}
.day{padding:15px 17px}
.day-head{display:flex;align-items:center;gap:11px;margin-bottom:11px}
.day-date{font-size:14px;font-weight:650}
.day-wd{font-size:11px;color:var(--faint);text-transform:lowercase}
.day-head .spacer{flex:1}
.items{display:flex;flex-direction:column;gap:1px}
.item{display:flex;align-items:flex-start;gap:11px;padding:6px 6px;border-radius:7px}
.item:hover{background:var(--hover)}
.item:hover .item-del{opacity:1}
.chk{appearance:none;width:17px;height:17px;border:1.6px solid var(--faint);border-radius:5px;margin-top:1px;flex:0 0 auto;position:relative}
.chk:checked{background:var(--accent);border-color:var(--accent)}
.chk:checked::after{content:"";position:absolute;left:5px;top:1.5px;width:4px;height:8px;border:solid #111;border-width:0 2px 2px 0;transform:rotate(45deg)}
.item .tx{flex:1;font-size:13.5px}
.item.done .tx{color:var(--faint);text-decoration:line-through}
.item-del{opacity:0;border:none;background:transparent;color:var(--faint);padding:0 4px;line-height:1;display:grid;place-items:center}
.item-del:hover{color:var(--t-doente)}
.add-item{margin-top:9px}
.add-item input{width:100%;background:var(--bg);border:1px solid var(--line-soft);border-radius:8px;padding:8px 11px;font-size:13px;color:var(--ink)}
.add-item input:focus{outline:none;border-color:var(--accent)}
.empty-note{color:var(--faint);font-size:13px;padding:4px 6px}
.item-task{display:inline-flex;align-items:center;gap:3px;border:1px solid var(--line);background:var(--raised);
  color:var(--teal);font-size:10px;letter-spacing:.04em;text-transform:uppercase;font-weight:600;
  padding:1px 6px;border-radius:6px;margin-left:6px;vertical-align:middle;cursor:pointer}
.item-task svg{width:11px;height:11px}
.item-task:hover{border-color:var(--teal)}
.item.done .item-task{text-decoration:none;color:var(--teal)}
.task-pick{display:flex;flex-direction:column;gap:2px;max-height:160px;overflow-y:auto;border:1px solid var(--line);border-radius:9px;padding:6px;background:var(--bg)}
.tp{display:flex;align-items:flex-start;gap:9px;padding:6px 7px;border-radius:7px;font-size:13px;cursor:pointer}
.tp:hover{background:var(--hover)}
.tp input{width:16px;height:16px;margin-top:1px;accent-color:var(--accent);flex:0 0 auto}
.task-empty{color:var(--faint);font-size:12px;line-height:1.5;border:1px dashed var(--line);border-radius:9px;padding:10px}

/* =====================================================================
   KANBAN
   ===================================================================== */
.kanban{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:start}
@media(max-width:820px){.kanban{grid-template-columns:1fr}}
.col{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:13px;min-height:120px}
.col-head{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600}
.col-head .n{margin-left:auto;color:var(--faint)}
.col.drag-over{border-color:var(--accent)}
.tcard{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:11px 12px;margin-bottom:9px;cursor:grab}
.tcard:hover{border-color:var(--muted)}
.tcard:active{cursor:grabbing}
.tcard .tt{font-size:13.5px;font-weight:500;display:flex;gap:8px;align-items:flex-start}
.tcard .tt span{flex:1}
.tcard .meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11px;color:var(--faint);margin-top:9px}
.tcard .proj{display:inline-flex;align-items:center;gap:5px}
.tcard .proj i{width:6px;height:6px;border-radius:50%;background:var(--teal)}
.tdel{border:none;background:transparent;color:var(--faint);opacity:0;padding:0;display:grid;place-items:center}
.tcard:hover .tdel{opacity:1}
.tdel:hover{color:var(--t-doente)}
.add-task{width:100%;border:1px dashed var(--line);background:transparent;color:var(--faint);padding:9px;border-radius:9px;
  font-size:13px;display:flex;align-items:center;justify-content:center;gap:6px}
.add-task:hover{border-color:var(--accent);color:var(--accent)}

/* =====================================================================
   PROJETOS
   ===================================================================== */
.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px}
.pcard{padding:18px}
.pcard .cli{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-weight:600;margin-bottom:7px}
.pcard h3{margin:0 0 8px;font-size:15.5px;font-weight:600}
.pcard p{color:var(--muted);font-size:13px;margin:0 0 16px;line-height:1.5}
.progress{height:4px;background:var(--raised);border-radius:999px;overflow:hidden}
.progress i{display:block;height:100%;background:var(--accent);border-radius:999px}
.pcard .foot{display:flex;align-items:center;justify-content:space-between;margin-top:10px}
.pcard .pct{font-size:11px;color:var(--faint);font-weight:500}
.status-pill{font-size:11px;font-weight:600;padding:3px 9px;border-radius:7px;border:1px solid var(--line);display:inline-flex;align-items:center;gap:6px}
.status-pill .d{width:6px;height:6px;border-radius:50%}
.st-andamento .d{background:var(--accent)}
.st-concluido .d{background:var(--teal)}
.st-pausado .d{background:var(--faint)}

/* workspace por cliente */
.cw{margin-bottom:30px}
.cw-head{display:flex;align-items:center;gap:11px;margin-bottom:14px}
.cw-head .tag{width:11px;height:11px;border-radius:3px}
.cw-head h2{margin:0;font-size:18px;font-weight:600}
.cw-head .sig{font-size:10.5px;letter-spacing:.08em;color:var(--faint);border:1px solid var(--line);padding:2px 7px;border-radius:6px}
.cw-head .spacer{flex:1}
.cw-head .cw-count{font-size:12px;color:var(--faint)}
.cw-sub{margin:16px 2px 10px}

/* briefing */
.brief{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:14px;overflow:hidden}
.brief>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;
  padding:14px 16px;font-size:14px;font-weight:600;user-select:none}
.brief>summary::-webkit-details-marker{display:none}
.brief>summary .bt{display:flex;align-items:center;gap:9px}
.brief>summary .bt svg{stroke:var(--accent)}
.brief>summary small{color:var(--faint);font-size:11px;font-weight:500}
.brief[open]>summary{border-bottom:1px solid var(--line)}
.brief-body{padding:6px 18px 16px;columns:2;column-gap:28px}
@media(max-width:900px){.brief-body{columns:1}}
.brief-sec{break-inside:avoid;padding:12px 0;border-bottom:1px solid var(--line-soft)}
.brief-sec h4{margin:0 0 6px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-weight:600}
.brief-sec p{margin:0 0 7px;font-size:13px;color:var(--muted);line-height:1.55}
.brief-sec b{color:var(--ink);font-weight:600}
.brief-sec ul{margin:0;padding-left:16px}
.brief-sec li{font-size:13px;color:var(--muted);margin-bottom:4px}
.brief-foot{break-inside:avoid;margin-top:12px;padding-top:12px;font-size:12px;color:var(--faint)}
.brief-foot b{color:var(--muted)}

/* novidades do drive (inbox) */
.inbox{background:rgba(227,179,65,.05);border:1px solid rgba(227,179,65,.25);border-radius:var(--radius);padding:14px 16px;margin-bottom:14px}
.inbox-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-size:13.5px;font-weight:600}
.inbox-head .ih-t{display:flex;align-items:center;gap:8px}
.inbox-head .ih-t svg{stroke:var(--accent)}
.ib-n{background:var(--accent);color:#111;font-size:11px;font-weight:700;border-radius:999px;padding:0 7px}
.ib-note{color:var(--faint);font-size:11px;font-weight:400;margin-left:auto}
.inbox-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.ib-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px}
.ib-top{display:flex;align-items:flex-start;gap:9px;margin-bottom:9px}
.ib-ic{width:30px;height:30px;border-radius:7px;display:grid;place-items:center;background:var(--raised);color:var(--muted);flex:0 0 auto}
.ib-top b{font-size:13px;font-weight:600;line-height:1.3}
.ib-desc{margin-bottom:10px}
.ib-desc>summary{cursor:pointer;font-size:11.5px;color:var(--accent);font-weight:600;list-style:none}
.ib-desc>summary::-webkit-details-marker{display:none}
.ib-desc p{margin:8px 0 0;font-size:12.5px;color:var(--muted);line-height:1.5}
.ib-actions{display:flex;gap:6px;flex-wrap:wrap}
.ib-actions .btn{flex:1;justify-content:center;white-space:nowrap}
.ib-actions .btn svg{width:13px;height:13px}
.mv-note{font-size:12px;color:var(--faint);line-height:1.5;border:1px dashed var(--line);border-radius:9px;padding:10px;margin-top:4px}

/* =====================================================================
   ARQUIVOS
   ===================================================================== */
.client{padding:18px;margin-bottom:16px}
.client-head{display:flex;align-items:center;gap:11px;margin-bottom:15px}
.client-head .tag{width:10px;height:10px;border-radius:3px}
.client-head h3{margin:0;font-size:15.5px;font-weight:600}
.client-head .sig{font-size:10.5px;letter-spacing:.08em;color:var(--faint);border:1px solid var(--line);padding:2px 7px;border-radius:6px}
.client-head .spacer{flex:1}
.files{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.file{display:flex;align-items:center;gap:11px;padding:11px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2)}
.file:hover{border-color:var(--muted)}
.file .fi{width:34px;height:34px;border-radius:8px;display:grid;place-items:center;background:var(--raised);color:var(--muted);flex:0 0 auto}
.file .info{min-width:0;flex:1}
.file .info b{font-size:13px;font-weight:550;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.file .info small{color:var(--faint);font-size:11px}

/* =====================================================================
   LOG — abas, visão anual
   ===================================================================== */
.log-tabs{display:inline-flex;gap:2px;background:var(--panel-2);border:1px solid var(--line);border-radius:9px;padding:3px;margin-right:6px}
.lt{border:none;background:transparent;color:var(--muted);font-size:12.5px;font-weight:600;padding:6px 12px;border-radius:7px}
.lt:hover{color:var(--ink)}
.lt.on{background:var(--raised);color:var(--ink)}
.yearwrap{padding:18px 20px}
.yr-head{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:18px}
.yr-head b{font-size:16px;font-weight:600}
.yr-row{display:flex;align-items:center;gap:10px;margin-bottom:5px}
.yr-row .ym{width:34px;font-size:11px;color:var(--muted);text-transform:capitalize;flex:0 0 auto;text-align:right}
.yr-days{display:flex;gap:3px;flex-wrap:wrap}
.yr-d{width:15px;height:15px;border-radius:4px;background:var(--panel-2);border:1px solid var(--line-soft);cursor:pointer}
.yr-d:hover{outline:1px solid var(--muted)}

/* =====================================================================
   HÁBITOS
   ===================================================================== */
.habits{padding:18px}
.hab-sum{display:flex;align-items:center;gap:26px;padding-bottom:18px;margin-bottom:16px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.hsum-d{flex:0 0 auto}
.hsum-l{display:flex;flex-direction:column;gap:6px}
.hsum-t{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-weight:600;margin-bottom:2px}
.hl{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}
.hl i{width:9px;height:9px;border-radius:3px}
.hl b{color:var(--ink);margin-left:2px}
.hb-scroll{overflow-x:auto}
.hb-table{border-collapse:separate;border-spacing:3px;width:auto}
.hb-table th,.hb-table td{text-align:center;font-size:11px;color:var(--muted);padding:0}
.hb-wd{font-weight:600;color:var(--faint);font-size:9.5px}
.hb-wd.we{color:var(--t-doente)}
.hb-d{font-weight:600;min-width:24px;padding-bottom:6px}
.hb-d.td{color:var(--accent)}
.hb-name{text-align:left;font-size:13px;color:var(--ink);font-weight:500;white-space:nowrap;padding-right:18px;position:sticky;left:0;background:var(--panel)}
.hb-cat{display:inline-block;width:8px;height:8px;border-radius:3px;margin-right:8px;vertical-align:middle}
.hb-lbl{vertical-align:middle;cursor:pointer}
.hb-lbl:hover{color:var(--accent)}
.hb-del{opacity:0;border:none;background:transparent;color:var(--faint);margin-left:8px;vertical-align:middle}
.hb-del svg{width:13px;height:13px}
.hb-name:hover .hb-del{opacity:1}
.hb-del:hover{color:var(--t-doente)}
.hb-c{width:24px;height:24px;border:1px solid var(--line);border-radius:5px;cursor:pointer;background:var(--panel-2)}
.hb-c:hover{border-color:var(--muted)}
.hb-c.on{background:var(--accent);border-color:var(--accent)}
.hb-tot{font-weight:700;color:var(--ink);padding-left:10px;min-width:26px}
.hb-foot{display:flex;align-items:center;gap:12px;margin-top:18px}
.hb-bar{flex:1;height:5px;background:var(--raised);border-radius:999px;overflow:hidden}
.hb-bar i{display:block;height:100%;background:var(--accent)}
.hb-foot span{font-size:12px;color:var(--faint);font-weight:600;white-space:nowrap}

/* =====================================================================
   BUSCA
   ===================================================================== */
.side-search{display:flex;align-items:center;gap:9px;width:100%;border:1px solid var(--line);background:var(--panel-2);
  color:var(--muted);border-radius:9px;padding:8px 10px;font-size:13px;margin-bottom:14px}
.side-search:hover{border-color:var(--muted);color:var(--ink)}
.side-search svg{width:16px;height:16px}
.side-search .kbd{margin-left:auto;border:1px solid var(--line);border-radius:5px;padding:0 6px;font-size:11px;color:var(--faint)}
.search-bg{align-items:flex-start;padding-top:11vh}
.search-modal{background:var(--panel);border:1px solid var(--line);border-radius:14px;width:100%;max-width:560px;overflow:hidden;box-shadow:0 24px 70px rgba(0,0,0,.55)}
.search-top{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}
.search-top svg{width:18px;height:18px;stroke:var(--muted)}
.search-top input{flex:1;background:transparent;border:none;outline:none;color:var(--ink);font-size:15px}
.search-res{max-height:52vh;overflow-y:auto;padding:8px}
.sr-hint{color:var(--faint);font-size:13px;padding:18px;text-align:center}
.sr-grp{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-weight:600;padding:10px 10px 4px}
.sr-item{padding:8px 10px;border-radius:8px;cursor:pointer}
.sr-item:hover{background:var(--hover)}
.sr-tx{font-size:13.5px;color:var(--ink)}
.sr-sub{font-size:11.5px;color:var(--faint);margin-top:1px}

/* =====================================================================
   MODAL + TOAST
   ===================================================================== */
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(2px);display:grid;place-items:center;z-index:50;padding:20px}
.modal{background:var(--panel);border:1px solid var(--line);border-radius:14px;width:100%;max-width:430px;padding:22px}
.modal h3{margin:0 0 18px;font-size:16px;font-weight:600}
.field{margin-bottom:13px}
.field label{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin-bottom:6px;font-weight:600}
.field input:not([type="checkbox"]),.field select,.field textarea{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:9px;
  padding:9px 11px;font-size:14px;color:var(--ink);font-family:inherit}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent)}
.modal-foot{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}
.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:var(--raised);border:1px solid var(--line);
  color:var(--ink);padding:10px 18px;border-radius:10px;font-size:13px;opacity:0;transition:opacity .2s;z-index:60}
.toast.show{opacity:1}
