/* ============================================================
   Legal Agenda — design system
   Plano, denso, premium. Inspirado em Linear / Motion / Notion.
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }
html, body, #app { height: 100%; }
body { margin: 0; }

/* ===== Sistema visual "Autos": papel, tinta, pauta, carimbo. ===== */
:root {
  --bg: #F2EFE7;            /* papel */
  --surface: #F2EFE7;      /* papel — separação por fio, não por cor */
  --surface-2: #E9E3D3;    /* bloco secundário */
  --surface-3: #E4DDCC;    /* pauta */
  --border: #CFC8B6;       /* fio claro */
  --border-2: #B3AD9C;     /* fio médio */
  --rule: #14130F;         /* fio forte (tinta) */
  --text: #14130F;         /* tinta */
  --text-2: #3A382F;       /* tinta clara */
  --text-3: #6B675C;       /* grafite */
  --accent: #14130F;       /* a marca é tinta, não índigo */
  --accent-2: #14130F;
  --accent-soft: #E4DDCC;
  --shadow: none;
  --shadow-pop: 6px 6px 0 rgba(20,19,15,.10);   /* sombra editorial "dura" */
  --ok: #2F6B4F; --ok-soft: #E1EBE4;            /* cumprido */
  --warn: #B93A16;
  --danger: #B93A16;                            /* carimbo — só fatal */
  /* categorias: só o prazo fatal é colorido; o resto é tinta/grafite */
  --c-prazo: #B93A16;
  --c-aud: #14130F;
  --c-reu: #3A382F;
  --c-tar: #6B675C;
  --radius: 0px;
  --radius-lg: 0px;
  --side-w: 60px;
  --serif: 'Instrument Serif', Georgia, 'Times New Roman', serif;
  --mono: 'IBM Plex Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;
}
/* modo tinta (escuro): papel vira tinta, tinta vira papel */
[data-theme="dark"] {
  --bg: #14130F;
  --surface: #1A1811;
  --surface-2: #211E16;
  --surface-3: #2A2619;
  --border: #3A382F;
  --border-2: #4A4636;
  --rule: #F2EFE7;
  --text: #F2EFE7;
  --text-2: #C9C3B2;
  --text-3: #8C8779;
  --accent: #F2EFE7;
  --accent-2: #F2EFE7;
  --accent-soft: #2A2619;
  --shadow: none;
  --shadow-pop: 0 24px 48px rgba(0,0,0,.55);
  --ok: #6BAF8C; --ok-soft: rgba(47,107,79,.22);
  --warn: #E0653A;
  --danger: #E0653A;
  --c-prazo: #E0653A;
  --c-aud: #F2EFE7;
  --c-reu: #C9C3B2;
  --c-tar: #8C8779;
}

.cronos {
  font-family: 'Archivo', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  background: var(--bg);
  color: var(--text);
  -webkit-font-smoothing: antialiased;
  font-size: 14px;
  overflow: hidden;
}
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: var(--border-2); border-radius: 99px; border: 2px solid transparent; background-clip: padding-box; }
::-webkit-scrollbar-track { background: transparent; }
button { font-family: inherit; }
.loading { display: grid; place-items: center; height: 100%; color: var(--text-3); }

/* ---------- app shell ---------- */
.app { display: grid; grid-template-columns: var(--side-w) minmax(0, 1fr); height: 100vh; }

.side { background: var(--surface); border-right: 1px solid var(--border); display: flex; flex-direction: column; align-items: center; padding: 12px 0; gap: 4px; }
.side__logo { width: 34px; height: 34px; border-radius: 10px; background: var(--accent); color: #fff; display: grid; place-items: center; margin-bottom: 10px; }
.navbtn { width: 40px; height: 40px; border: none; background: transparent; color: var(--text-3); border-radius: 10px; display: grid; place-items: center; cursor: pointer; position: relative; transition: background .14s, color .14s; }
.navbtn:hover { background: var(--surface-2); color: var(--text); }
.navbtn.is-active { background: var(--accent-soft); color: var(--accent); }
.navbtn__dot { position: absolute; top: 7px; right: 7px; width: 7px; height: 7px; border-radius: 50%; background: var(--danger); }
.side__foot { margin-top: auto; display: flex; flex-direction: column; gap: 4px; }

.main { display: flex; flex-direction: column; min-width: 0; height: 100vh; }

/* ---------- topbar ---------- */
.topbar { display: flex; align-items: center; gap: 14px; padding: 11px 20px; border-bottom: 1px solid var(--border); background: var(--surface); flex-shrink: 0; }
.tnav { display: flex; align-items: center; gap: 4px; }
.period { display: flex; flex-direction: column; line-height: 1.15; min-width: 0; overflow: hidden; }
.period__title { font-size: 16px; font-weight: 600; letter-spacing: -.01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.period__sub { font-size: 11.5px; color: var(--text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sp { flex: 1; }
.seg { display: inline-flex; background: var(--surface-2); border: 1px solid var(--border); border-radius: 9px; padding: 3px; gap: 2px; }
.seg button { border: none; background: transparent; color: var(--text-2); font-size: 13px; font-weight: 500; padding: 5px 12px; border-radius: 6px; cursor: pointer; }
.seg button.is-on { background: var(--surface); color: var(--text); box-shadow: var(--shadow); font-weight: 600; }
.iconbtn { width: 34px; height: 34px; border-radius: 9px; border: 1px solid var(--border); background: var(--surface); color: var(--text-2); display: grid; place-items: center; cursor: pointer; transition: all .14s; }
.iconbtn:hover { background: var(--surface-2); color: var(--text); border-color: var(--border-2); }
.searchbtn { display: inline-flex; align-items: center; gap: 9px; height: 34px; padding: 0 11px; border-radius: 9px; border: 1px solid var(--border); background: var(--surface-2); color: var(--text-3); font-size: 13px; cursor: pointer; flex: 0 1 230px; min-width: 0; overflow: hidden; white-space: nowrap; }
.searchbtn:hover { border-color: var(--border-2); }
.ochip { display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 11px; border-radius: 9px; border: 1px solid var(--border); background: var(--surface-2); color: var(--text-2); font-size: 12.5px; font-weight: 600; white-space: nowrap; }
.ochip--on { color: #1f9d57; border-color: color-mix(in srgb, #1f9d57 35%, var(--border)); background: color-mix(in srgb, #1f9d57 9%, var(--surface-2)); }
button.ochip { cursor: pointer; }
button.ochip:hover { border-color: var(--border-2); }
.searchbtn kbd { margin-left: auto; font-size: 11px; background: var(--surface); border: 1px solid var(--border); border-radius: 5px; padding: 1px 6px; color: var(--text-3); font-family: inherit; }
.btn { display: inline-flex; align-items: center; gap: 7px; border: 1px solid transparent; border-radius: 9px; padding: 8px 14px; font-size: 13.5px; font-weight: 600; cursor: pointer; white-space: nowrap; transition: all .14s; }
.btn--primary { background: var(--accent); color: #fff; }
.btn--primary:hover { background: var(--accent-2); }
.btn--ghost { background: var(--surface-2); color: var(--text-2); border-color: var(--border); }
.btn--ghost:hover { background: var(--surface-3); color: var(--text); }
.btn--sm { padding: 6px 11px; font-size: 12.5px; }
.today-btn { padding: 7px 12px; }

/* ---------- view container ---------- */
.view { flex: 1; overflow-y: auto; padding: 18px 20px 40px; }

/* ---------- metric cards ---------- */
.metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin-bottom: 18px; }
.metric { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 13px 15px; display: flex; align-items: center; gap: 12px; box-shadow: var(--shadow); }
.metric__ic { width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; flex-shrink: 0; }
.metric__val { font-size: 21px; font-weight: 700; letter-spacing: -.02em; line-height: 1; }
.metric__lbl { font-size: 12px; color: var(--text-3); margin-top: 3px; }

/* ---------- HOJE ---------- */
.hoje { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: 18px; align-items: start; }
@media (max-width: 1080px) { .hoje { grid-template-columns: 1fr; } }
.panel { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow); overflow: hidden; }
.panel__h { display: flex; align-items: center; gap: 9px; padding: 13px 16px; border-bottom: 1px solid var(--border); font-size: 13.5px; font-weight: 600; }
.panel__h .ic { color: var(--text-3); }
.panel__count { margin-left: auto; font-size: 12px; color: var(--text-3); font-weight: 600; }
.panel__body { padding: 8px; }
.panel__body--pad { padding: 14px 16px; }

/* linha de agenda (com gutter de horário) */
.agrow { display: grid; grid-template-columns: 52px 1fr auto; align-items: start; gap: 10px; padding: 9px 8px; border-radius: 9px; cursor: pointer; transition: background .12s; }
.agrow:hover { background: var(--surface-2); }
.agrow__time { font-size: 12.5px; font-weight: 600; color: var(--text-2); font-variant-numeric: tabular-nums; padding-top: 1px; }
.agrow__time.is-none { color: var(--text-3); font-weight: 500; }
.agrow__main { min-width: 0; border-left: 2px solid var(--catc); padding-left: 10px; }
.agrow__title { font-size: 13.5px; font-weight: 600; line-height: 1.3; }
.agrow__meta { display: flex; gap: 7px; flex-wrap: wrap; margin-top: 4px; font-size: 11.5px; color: var(--text-3); align-items: center; }
.agrow.is-done .agrow__title { text-decoration: line-through; color: var(--text-3); }
.agrow__check { background: none; border: none; cursor: pointer; color: var(--text-3); padding: 2px; display: grid; align-self: start; }
.agrow__check:hover { color: var(--accent); }
.agrow.is-done .agrow__check { color: var(--ok); }

.tagcat { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; font-weight: 600; padding: 2px 8px; border-radius: 999px; color: var(--catc); background: color-mix(in srgb, var(--catc) 12%, transparent); }
.tag { font-size: 11px; font-weight: 600; padding: 2px 8px; border-radius: 999px; background: var(--surface-2); color: var(--text-2); border: 1px solid var(--border); }
.tag--danger { background: color-mix(in srgb, var(--danger) 14%, transparent); color: var(--danger); border-color: transparent; }
.tag--prio-alta { color: var(--danger); }
.dotsep { color: var(--text-3); }

.empty { text-align: center; color: var(--text-3); font-size: 13px; padding: 26px 12px; }
.empty .ic { display: block; margin: 0 auto 8px; color: var(--text-3); opacity: .6; }

/* ---------- SEMANA ---------- */
.week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 10px; align-items: stretch; min-height: calc(100vh - 150px); }
.day { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); display: flex; flex-direction: column; min-width: 0; transition: border-color .14s, background .14s; }
.day--today { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 4%, var(--surface)); }
.day--weekend { background: var(--surface-2); }
.day--drop { border-color: var(--accent); background: var(--accent-soft); box-shadow: inset 0 0 0 1px var(--accent); }
.day__h { display: flex; align-items: baseline; gap: 7px; padding: 9px 11px; border-bottom: 1px solid var(--border); }
.day__wd { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--text-3); }
.day--today .day__wd { color: var(--accent); }
.day__n { font-size: 15px; font-weight: 700; }
.day__cnt { margin-left: auto; font-size: 11px; font-weight: 600; color: var(--text-3); }
.day__list { display: flex; flex-direction: column; gap: 6px; padding: 8px; flex: 1; overflow-y: auto; }
.day__add { border: 1px dashed var(--border-2); background: transparent; color: var(--text-3); border-radius: 8px; padding: 7px; cursor: pointer; font-size: 12px; display: flex; align-items: center; justify-content: center; gap: 5px; transition: all .14s; }
.day__add:hover { border-color: var(--accent); color: var(--accent); }

/* ---------- chip (semana + mês) ---------- */
.chip { --catc: var(--c-tar); display: flex; align-items: center; gap: 6px; padding: 5px 8px 5px 9px; border-radius: 8px; border: 1px solid var(--border); background: var(--surface); box-shadow: inset 3px 0 0 var(--catc); cursor: grab; user-select: none; min-width: 0; transition: transform .1s, box-shadow .1s; }
.chip:hover { transform: translateY(-1px); box-shadow: inset 3px 0 0 var(--catc), var(--shadow); }
.chip:active { cursor: grabbing; }
.chip.prazo { --catc: var(--c-prazo); background: color-mix(in srgb, var(--c-prazo) 9%, var(--surface)); border-color: color-mix(in srgb, var(--c-prazo) 24%, var(--border)); }
.chip.audiencia { --catc: var(--c-aud); background: color-mix(in srgb, var(--c-aud) 7%, var(--surface)); }
.chip.reuniao { --catc: var(--c-reu); }
.chip.tarefa { --catc: var(--c-tar); }
.chip__check { background: none; border: none; padding: 0; color: var(--text-3); cursor: pointer; display: grid; flex-shrink: 0; }
.chip__check:hover { color: var(--accent); }
.chip__lead { font-size: 11px; font-weight: 700; color: var(--catc); font-variant-numeric: tabular-nums; flex-shrink: 0; }
.chip__title { flex: 1; font-size: 12.5px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.chip.is-done { opacity: .55; }
.chip.is-done .chip__title { text-decoration: line-through; }
.chip.is-done .chip__check { color: var(--ok); }
.chip.is-late { box-shadow: inset 3px 0 0 var(--danger), 0 0 0 1px color-mix(in srgb, var(--danger) 40%, transparent); }
.chip.dragging { opacity: .4; }

/* ---------- MÊS ---------- */
.monthhead { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; margin-bottom: 8px; }
.monthhead div { text-align: center; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: var(--text-3); }
.month { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); grid-auto-rows: 1fr; gap: 8px; min-height: calc(100vh - 170px); }
.cell { background: var(--surface); border: 1px solid var(--border); border-radius: 11px; padding: 7px; display: flex; flex-direction: column; gap: 5px; min-width: 0; cursor: pointer; transition: border-color .14s, background .14s; }
.cell:hover { border-color: var(--border-2); }
.cell--out { background: transparent; opacity: .5; }
.cell--weekend { background: var(--surface-2); }
.cell--today { border-color: var(--accent); }
.cell--drop { border-color: var(--accent); background: var(--accent-soft); box-shadow: inset 0 0 0 1px var(--accent); }
.cell__h { display: flex; align-items: center; justify-content: space-between; }
.cell__n { width: 22px; height: 22px; display: grid; place-items: center; font-size: 12.5px; font-weight: 600; color: var(--text-2); }
.cell--today .cell__n { background: var(--accent); color: #fff; border-radius: 50%; font-weight: 700; }
.cell--out .cell__n { color: var(--text-3); }
.cell__add { opacity: 0; width: 20px; height: 20px; border: none; background: var(--surface-3); color: var(--text-2); border-radius: 6px; display: grid; place-items: center; cursor: pointer; }
.cell:hover .cell__add { opacity: 1; }
.cell__add:hover { background: var(--accent); color: #fff; }
.cell__list { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.cell .chip { padding: 3px 6px; box-shadow: inset 3px 0 0 var(--catc); }
.cell .chip__title { font-size: 11.5px; }
.cell__more { border: none; background: transparent; color: var(--text-3); font-size: 11px; font-weight: 600; text-align: left; padding: 1px 5px; cursor: pointer; border-radius: 5px; }
.cell__more:hover { background: var(--surface-2); color: var(--text-2); }

/* ---------- PRAZOS (buckets) ---------- */
.buckets { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; align-items: start; }
.prazos2 { display: grid; grid-template-columns: 1.55fr 1fr; gap: 20px; align-items: start; }
@media (max-width: 1080px) { .prazos2 { grid-template-columns: 1fr; } }
.prazcol__title { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; color: var(--text); margin: 2px 2px 12px; }
.prazcol__title .pill { font-size: 11px; font-weight: 700; padding: 1px 8px; border-radius: 999px; background: var(--surface-2); color: var(--text-2); }
.prazcol .buckets { grid-template-columns: 1fr; }
.prazmonth { margin-bottom: 12px; }
.prazmonth:last-child { margin-bottom: 0; }
.prazmonth__h { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; color: var(--text-3); text-transform: uppercase; letter-spacing: .03em; padding: 4px 2px 8px; }
.prazmonth__h .pill { font-size: 10px; font-weight: 700; padding: 1px 7px; border-radius: 999px; background: var(--surface-2); color: var(--text-2); }
.audlist { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow); padding: 10px; }
.bucket { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow); overflow: hidden; }
.bucket__h { display: flex; align-items: center; gap: 8px; padding: 12px 14px; border-bottom: 1px solid var(--border); font-size: 13px; font-weight: 600; }
.bucket__h .pill { margin-left: auto; font-size: 11px; font-weight: 700; padding: 1px 8px; border-radius: 999px; background: var(--surface-2); color: var(--text-2); }
.bucket--late .bucket__h { color: var(--danger); }
.bucket--late .pill { background: color-mix(in srgb, var(--danger) 14%, transparent); color: var(--danger); }
.bucket__body { padding: 7px; display: flex; flex-direction: column; gap: 6px; }
.prow { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 9px; border: 1px solid var(--border); background: var(--surface); cursor: pointer; box-shadow: inset 3px 0 0 var(--catc); transition: background .12s; }
.prow:hover { background: var(--surface-2); }
.prow__date { font-size: 12px; font-weight: 700; color: var(--catc); width: 50px; flex-shrink: 0; font-variant-numeric: tabular-nums; }
.prow__main { min-width: 0; flex: 1; }
.prow__title { font-size: 13px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.prow__sub { font-size: 11.5px; color: var(--text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 2px; }

/* ---------- CADASTRO ---------- */
.reg__list { display: flex; flex-direction: column; gap: 9px; max-width: 920px; }
.regcard { display: flex; align-items: center; gap: 13px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 13px 15px; cursor: pointer; box-shadow: var(--shadow); transition: border-color .14s, transform .1s; }
.regcard:hover { border-color: var(--border-2); transform: translateY(-1px); }
.regcard__ic { width: 40px; height: 40px; border-radius: 11px; background: var(--accent-soft); color: var(--accent); display: grid; place-items: center; flex-shrink: 0; }
.regcard__main { flex: 1; min-width: 0; }
.regcard__title { font-size: 14.5px; font-weight: 600; }
.regcard__sub { display: flex; gap: 12px; flex-wrap: wrap; font-size: 12px; color: var(--text-3); margin-top: 3px; }
.regcard__sub span { display: inline-flex; align-items: center; gap: 4px; }
.regstatus { font-size: 11px; font-weight: 700; padding: 4px 10px; border-radius: 999px; white-space: nowrap; }
.regstatus--ativo { background: var(--ok-soft); color: var(--ok); }
.regstatus--suspenso { background: color-mix(in srgb, var(--warn) 16%, transparent); color: var(--warn); }
.regstatus--arquivado { background: var(--surface-2); color: var(--text-3); }

/* ---------- overlays: modal / palette ---------- */
.scrim { position: fixed; inset: 0; background: rgba(15,18,28,.5); backdrop-filter: blur(3px); display: flex; align-items: flex-start; justify-content: center; padding: 64px 20px 20px; z-index: 1000; animation: fade .14s ease; }
[data-theme="dark"] .scrim { background: rgba(0,0,0,.6); }
@keyframes fade { from { opacity: 0; } }
@keyframes pop { from { opacity: 0; transform: translateY(8px) scale(.99); } }

.modal { width: 100%; max-width: 580px; max-height: calc(100vh - 90px); overflow: auto; background: var(--surface); border: 1px solid var(--border); border-radius: 16px; box-shadow: var(--shadow-pop); animation: pop .2s cubic-bezier(.16,1,.3,1); }
.modal--wide { max-width: 720px; }
.modal__h { display: flex; align-items: center; justify-content: space-between; padding: 18px 20px; border-bottom: 1px solid var(--border); }
.modal__h h3 { font-size: 16px; font-weight: 700; margin: 0; }
.modal__b { padding: 18px 20px; }
.modal__f { display: flex; align-items: center; gap: 10px; padding: 14px 20px; border-top: 1px solid var(--border); }
.modal__f .sp { flex: 1; }

.field { margin-bottom: 15px; }
.field:last-child { margin-bottom: 0; }
.row { display: flex; gap: 12px; }
.row > .field { flex: 1; }
.label { display: block; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--text-2); margin-bottom: 6px; }
.input, .textarea, .select { width: 100%; background: var(--surface-2); border: 1px solid var(--border); border-radius: 9px; padding: 9px 11px; font-size: 13.5px; color: var(--text); outline: none; font-family: inherit; transition: border-color .14s, box-shadow .14s; }
.input:focus, .textarea:focus, .select:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.textarea { resize: vertical; min-height: 64px; }
.select { appearance: none; -webkit-appearance: none; cursor: pointer; }
.formseg { display: flex; gap: 6px; flex-wrap: wrap; }
.formseg button { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--border); background: var(--surface-2); color: var(--text-2); border-radius: 9px; padding: 8px 12px; font-size: 13px; font-weight: 500; cursor: pointer; transition: all .12s; }
.formseg button .ic { color: var(--catc, var(--text-3)); }
.formseg button.is-on { border-color: var(--accent); background: var(--accent-soft); color: var(--text); font-weight: 600; }
.mchips { display: flex; gap: 6px; flex-wrap: wrap; }
.mchip { border: 1px solid var(--border); background: var(--surface-2); color: var(--text-2); border-radius: 999px; padding: 6px 12px; font-size: 12.5px; font-weight: 500; cursor: pointer; transition: all .12s; }
.mchip:hover { border-color: var(--border-2); }
.mchip.is-on { border-color: var(--accent); background: var(--accent-soft); color: var(--text); font-weight: 600; }
.cdoc-row { padding: 10px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-2); margin-bottom: 8px; }
.cdoc-row__line { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.cdoc-row__line + .cdoc-row__line { margin-top: 8px; }
.ctags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 6px; }
.ctag { font-size: 11px; font-weight: 600; padding: 2px 8px; border-radius: 999px; background: var(--accent-soft); color: var(--accent); }
.calc { background: var(--surface-2); border: 1px solid var(--border); border-radius: 10px; padding: 12px; margin-top: 12px; }
.calc__h { font-size: 11.5px; font-weight: 600; color: var(--text-2); margin-bottom: 9px; display: flex; align-items: center; gap: 6px; }
.calc__row { display: flex; gap: 8px; align-items: flex-end; flex-wrap: wrap; }
.calc__out { font-size: 12px; color: var(--text-2); margin-top: 9px; }
.calc__out b { color: var(--text); }

/* command palette */
.palette { width: 100%; max-width: 560px; background: var(--surface); border: 1px solid var(--border); border-radius: 14px; box-shadow: var(--shadow-pop); overflow: hidden; animation: pop .16s ease; }
.palette__in { display: flex; align-items: center; gap: 10px; padding: 14px 16px; border-bottom: 1px solid var(--border); }
.palette__in input { flex: 1; border: none; background: transparent; outline: none; font-size: 15px; color: var(--text); font-family: inherit; }
.palette__list { max-height: 360px; overflow-y: auto; padding: 6px; }
.pgroup { font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--text-3); padding: 8px 10px 4px; }
.pcmd { display: flex; align-items: center; gap: 11px; padding: 9px 11px; border-radius: 9px; cursor: pointer; font-size: 13.5px; }
.pcmd .ic { color: var(--text-3); }
.pcmd.is-sel { background: var(--accent-soft); }
.pcmd.is-sel .ic { color: var(--accent); }
.pcmd__sub { margin-left: auto; font-size: 11.5px; color: var(--text-3); }

/* toast */
.toasts { position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%); z-index: 1200; display: flex; flex-direction: column; gap: 8px; align-items: center; }
.toast { background: var(--text); color: var(--surface); font-size: 13px; font-weight: 500; padding: 10px 16px; border-radius: 10px; box-shadow: var(--shadow-pop); animation: pop .18s ease; }

/* ---------- publicações (DJEN) ---------- */
.navbtn__badge { position: absolute; top: 2px; right: 2px; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 999px; background: var(--danger); color: #fff; font-size: 10px; font-weight: 700; display: grid; place-items: center; line-height: 1; }
.pubbar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 11px 15px; box-shadow: var(--shadow); margin-bottom: 14px; }
.pubbar__info { font-size: 12.5px; color: var(--text-2); display: flex; align-items: center; gap: 6px; flex-wrap: wrap; min-width: 0; }
.pubbar__info .ic { color: var(--text-3); }
.pubbar__actions { display: flex; gap: 8px; margin-left: auto; }
.publist { display: flex; flex-direction: column; gap: 9px; }
/* ---- Processos: barra de filtros + lista ---- */
.procbar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 12px 0 14px; }
.procbar__count { font-size: 12px; color: var(--text-3); font-variant-numeric: tabular-nums; white-space: nowrap; }
.procsearch { display: inline-flex; align-items: center; gap: 7px; height: 34px; padding: 0 11px; border-radius: 9px; border: 1px solid var(--border); background: var(--surface-2); color: var(--text-3); flex: 1 1 240px; min-width: 180px; }
.procsearch__in { border: 0; background: transparent; color: var(--text); font-size: 13px; outline: none; width: 100%; }
.select--sm { height: 34px; padding: 0 26px 0 10px; font-size: 12.5px; width: auto; }
.proclist { display: flex; flex-direction: column; gap: 8px; }
.procrow { display: flex; align-items: flex-start; gap: 12px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 12px 14px; cursor: pointer; box-shadow: var(--shadow); transition: border-color .14s, transform .1s; }
.procrow:hover { border-color: var(--border-2); transform: translateY(-1px); }
.procrow__l { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 5px; }
.procrow__cnj { font-size: 14px; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--text); }
.procrow__parts { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 12.5px; color: var(--text-2); }
.procrow__cli { display: inline-flex; align-items: center; gap: 5px; }
.procrow__doc { color: var(--text-3); font-variant-numeric: tabular-nums; }
.procrow__adv { color: var(--text-3); }
.procrow__adv::before { content: ''; }
.procrow__local, .procrow__meta { font-size: 12px; color: var(--text-3); display: flex; align-items: center; gap: 5px; }
.tag--polo { background: var(--surface-2); color: var(--text-3); }
.procrow__r { display: flex; flex-direction: column; align-items: flex-end; gap: 7px; flex-shrink: 0; }
.procstat { border-radius: 8px; border: 1px solid var(--border); padding: 4px 8px; font-size: 11.5px; font-weight: 700; cursor: pointer; background: var(--surface-2); }
.procstat--ativo { color: #1f9d57; border-color: color-mix(in srgb, #1f9d57 35%, var(--border)); background: color-mix(in srgb, #1f9d57 10%, var(--surface-2)); }
.procstat--suspenso { color: #c98a00; border-color: color-mix(in srgb, #c98a00 35%, var(--border)); background: color-mix(in srgb, #c98a00 10%, var(--surface-2)); }
.procstat--extinto { color: var(--danger); border-color: color-mix(in srgb, var(--danger) 35%, var(--border)); background: color-mix(in srgb, var(--danger) 8%, var(--surface-2)); }
.procstat--arquivado { color: var(--text-3); }
.agrow[draggable] { cursor: grab; }
.agrow.dragging { opacity: .5; }
.dia__drop.dia--drop { outline: 2px dashed var(--accent); outline-offset: -6px; border-radius: var(--radius-lg); }
/* ---- Dossiê do processo ---- */
.doss__actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.doss__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow); padding: 16px 18px; margin-bottom: 14px; }
.doss__cnj { font-size: 20px; font-weight: 800; font-variant-numeric: tabular-nums; margin: 8px 0 4px; }
.doss__subt { font-size: 13px; color: var(--text-2); }
.doss__headr { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.doss__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; align-items: start; }
@media (max-width: 980px) { .doss__grid { grid-template-columns: 1fr; } }
.doss__sec { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow); overflow: hidden; }
.doss__sech { display: flex; align-items: center; gap: 8px; padding: 12px 15px; border-bottom: 1px solid var(--border); font-size: 13px; font-weight: 700; }
.doss__secb { padding: 14px 15px; }
.doss__partes { display: flex; flex-direction: column; gap: 8px; }
.doss__parte { position: relative; border: 1px solid var(--border); border-radius: 10px; padding: 9px 11px; background: var(--surface-2); }
.doss__parte.is-cli { border-color: color-mix(in srgb, var(--accent) 40%, var(--border)); background: var(--accent-soft); }
.doss__partep { font-size: 11px; font-weight: 700; color: var(--text-3); text-transform: uppercase; letter-spacing: .02em; }
.doss__parten { font-size: 13.5px; font-weight: 600; }
.doss__parted { font-size: 12px; color: var(--text-3); font-variant-numeric: tabular-nums; }
.doss__parterm { position: absolute; top: 8px; right: 8px; }
.doss__last { font-size: 12.5px; color: var(--text-2); margin-bottom: 10px; padding-bottom: 10px; border-bottom: 1px dashed var(--border); }
.doss__evs { display: flex; flex-direction: column; gap: 4px; max-height: 360px; overflow: auto; }
.doss__ev { display: flex; gap: 10px; padding: 7px 4px; border-bottom: 1px solid var(--border); }
.doss__evn { flex-shrink: 0; font-size: 11px; font-weight: 700; color: var(--accent); font-variant-numeric: tabular-nums; min-width: 34px; }
.doss__evb { font-size: 12.5px; }
.doss__evd { font-size: 11px; color: var(--text-3); margin-top: 2px; }
.doss__pub { padding: 9px 0; border-bottom: 1px solid var(--border); }
.doss__pub:last-child { border-bottom: 0; }
.doss__pubh { display: flex; align-items: center; gap: 8px; font-size: 12.5px; }
.doss__pubh span { color: var(--text-3); }
.doss__pubd { margin-left: auto; }
.doss__pubt { font-size: 12px; color: var(--text-2); margin-top: 3px; }
.doss__task { display: flex; align-items: center; gap: 9px; padding: 8px 4px; border-bottom: 1px solid var(--border); cursor: pointer; }
.doss__task:last-child { border-bottom: 0; }
.doss__task:hover { background: var(--surface-2); }
.doss__taskt { flex: 1; font-size: 13px; }
.doss__taskd { font-size: 11.5px; color: var(--text-3); white-space: nowrap; }
.doss__docs { display: flex; flex-direction: column; gap: 6px; }
.doss__doc { display: flex; align-items: center; gap: 8px; }
.doss__docopen { flex: 1; display: inline-flex; align-items: center; gap: 8px; text-align: left; border: 1px solid var(--border); background: var(--surface-2); color: var(--text); border-radius: 9px; padding: 8px 11px; font-size: 12.5px; cursor: pointer; }
.doss__docopen:hover { border-color: var(--border-2); }
.doss__docd { font-size: 11px; color: var(--text-3); white-space: nowrap; }
/* ---- confirmação + lixeira ---- */
.btn--danger { background: var(--danger); color: #fff; }
.btn--danger:hover { filter: brightness(1.07); }
.confirm-scrim { position: fixed; inset: 0; z-index: 200; background: rgba(8, 9, 12, .55); display: flex; align-items: center; justify-content: center; padding: 20px; animation: fade .12s; }
.modal--confirm { width: 100%; max-width: 420px; background: var(--surface); border: 1px solid var(--border); border-radius: 16px; box-shadow: var(--shadow-pop); animation: pop .18s cubic-bezier(.16,1,.3,1); }
.confirm__t { font-size: 16px; font-weight: 700; margin: 0 0 8px; }
.confirm__m { font-size: 13.5px; color: var(--text-2); line-height: 1.5; margin: 0; }
.trashlist { display: flex; flex-direction: column; gap: 7px; }
.trashrow { display: flex; align-items: center; gap: 10px; border: 1px solid var(--border); border-radius: 10px; padding: 9px 12px; background: var(--surface-2); }
.trashrow__main { flex: 1; min-width: 0; }
.trashrow__t { font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; }
.trashrow__s { font-size: 11.5px; color: var(--text-3); }
.setrow { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--border); }
.setrow:last-of-type { border-bottom: 0; }
.settpath { font-size: 12px; color: var(--text-2); font-family: ui-monospace, monospace; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 380px; }
.onb__dots { display: flex; gap: 7px; justify-content: center; }
.onb__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--border-2); transition: all .2s; }
.onb__dot.is-on { background: var(--accent); width: 22px; border-radius: 4px; }
.onb__logo { width: 72px; height: 72px; border-radius: 20px; background: var(--accent); color: #fff; display: grid; place-items: center; margin: 6px auto 0; }
.onb__hint { font-size: 13.5px; color: var(--text-2); line-height: 1.6; margin: 0 0 14px; }
.onb__ok { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: #1f9d57; margin-top: 12px; }
.pubrow { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 12px 15px; cursor: pointer; box-shadow: var(--shadow); transition: border-color .14s, transform .1s; }
.pubrow:hover { border-color: var(--border-2); transform: translateY(-1px); }
.pubrow.is-new { box-shadow: inset 3px 0 0 var(--accent), var(--shadow); }
.pubrow__top { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.pubrow__tipo { font-size: 13px; font-weight: 600; }
.pubrow__date { margin-left: auto; font-size: 12px; color: var(--text-3); font-variant-numeric: tabular-nums; }
.pubrow__proc { font-size: 12.5px; color: var(--text-2); margin-top: 6px; font-variant-numeric: tabular-nums; }
.pubrow__snip { font-size: 12.5px; color: var(--text-3); margin-top: 5px; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pubpill { font-size: 10.5px; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: var(--surface-2); color: var(--text-3); }
.pubpill--nova { background: var(--accent-soft); color: var(--accent); }
.pubpill--lida { background: var(--surface-2); color: var(--text-3); }
.pubpill--task { background: var(--ok-soft); color: var(--ok); }
.pubmeta { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 16px; background: var(--surface-2); border: 1px solid var(--border); border-radius: 10px; padding: 12px 14px; margin-bottom: 14px; }
.pubmeta__row { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pubmeta__row span { font-size: 10.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--text-3); }
.pubmeta__row b { font-size: 13px; font-weight: 600; word-break: break-word; }
.pubtext { font-size: 13px; line-height: 1.6; color: var(--text); background: var(--surface-2); border: 1px solid var(--border); border-radius: 10px; padding: 14px 16px; max-height: 46vh; overflow-y: auto; white-space: normal; }

/* ---------- data fatal (controle/risco) ---------- */
.lblhint { font-weight: 500; text-transform: none; letter-spacing: 0; color: var(--text-3); font-size: 10px; margin-left: 5px; }
/* selo de fatal no chip (semana/mês) */
.chip__fatal { display: inline-flex; align-items: center; gap: 2px; font-size: 10.5px; font-weight: 700; padding: 1px 5px; border-radius: 5px; flex-shrink: 0; font-variant-numeric: tabular-nums; background: var(--surface-2); color: var(--text-2); }
.chip__fatal .ic { width: 10px; height: 10px; }
.chip__fatal--soon, .chip__fatal--today { background: color-mix(in srgb, var(--warn) 22%, transparent); color: var(--warn); }
.chip__fatal--over { background: color-mix(in srgb, var(--danger) 20%, transparent); color: var(--danger); }
.chip--fatalsoon { box-shadow: inset 3px 0 0 var(--warn), 0 0 0 1px color-mix(in srgb, var(--warn) 45%, transparent); }
.chip--fatalover { box-shadow: inset 3px 0 0 var(--danger), 0 0 0 1px color-mix(in srgb, var(--danger) 55%, transparent); }
/* selo de fatal na linha de agenda */
.fatal { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; font-weight: 600; padding: 2px 8px; border-radius: 999px; background: var(--surface-2); color: var(--text-2); }
.fatal--soon, .fatal--today { background: color-mix(in srgb, var(--warn) 16%, transparent); color: var(--warn); }
.fatal--over { background: color-mix(in srgb, var(--danger) 16%, transparent); color: var(--danger); }
/* linha de urgência por fatal (Home / Prazos) */
.fatalrow { display: flex; align-items: center; gap: 12px; padding: 9px 10px; border-radius: 10px; border: 1px solid var(--border); background: var(--surface); cursor: pointer; transition: background .12s, border-color .12s; margin-bottom: 6px; }
.fatalrow:hover { background: var(--surface-2); }
.fatalrow__days { flex-shrink: 0; width: 54px; text-align: center; border-radius: 8px; padding: 5px 2px; background: var(--surface-2); display: flex; flex-direction: column; line-height: 1.05; }
.fatalrow__days b { font-size: 16px; font-weight: 700; font-variant-numeric: tabular-nums; }
.fatalrow__days span { font-size: 9.5px; color: var(--text-3); text-transform: uppercase; letter-spacing: .03em; }
.fatalrow__main { min-width: 0; flex: 1; }
.fatalrow__title { font-size: 13px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fatalrow__sub { display: flex; align-items: center; gap: 4px; font-size: 11.5px; color: var(--text-3); margin-top: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fatalrow__sub .ic { color: var(--text-3); }
.fatalrow--soon, .fatalrow--today { border-color: color-mix(in srgb, var(--warn) 45%, var(--border)); }
.fatalrow--soon .fatalrow__days, .fatalrow--today .fatalrow__days { background: color-mix(in srgb, var(--warn) 18%, transparent); }
.fatalrow--soon .fatalrow__days b, .fatalrow--today .fatalrow__days b { color: var(--warn); }
.fatalrow--over { border-color: color-mix(in srgb, var(--danger) 50%, var(--border)); }
.fatalrow--over .fatalrow__days { background: color-mix(in srgb, var(--danger) 18%, transparent); }
.fatalrow--over .fatalrow__days b, .fatalrow--over .fatalrow__sub .ic { color: var(--danger); }
.bucket--soon .bucket__h { color: var(--warn); }
.bucket--soon .pill { background: color-mix(in srgb, var(--warn) 16%, transparent); color: var(--warn); }

/* ---------- monitoramento de partes ---------- */
.monaviso { display: flex; align-items: flex-start; gap: 8px; background: color-mix(in srgb, var(--warn) 10%, var(--surface)); border: 1px solid color-mix(in srgb, var(--warn) 30%, var(--border)); color: var(--text-2); border-radius: 10px; padding: 10px 13px; font-size: 12.5px; line-height: 1.5; margin-bottom: 14px; }
.monaviso .ic { color: var(--warn); margin-top: 2px; }
.monaviso b { color: var(--text); }

/* ---------- clientes (grupo econômico) ---------- */
.clientcard { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow); overflow: hidden; }
.clientcard__head { display: flex; align-items: center; gap: 13px; width: 100%; text-align: left; background: transparent; border: none; padding: 13px 15px; cursor: pointer; font-family: inherit; }
.clientcard__head:hover { background: var(--surface-2); }
.cdocs-list { border-top: 1px solid var(--border); padding: 8px 15px 12px; display: flex; flex-direction: column; gap: 6px; }
.cdoc { display: flex; align-items: center; gap: 10px; font-size: 12.5px; }
.cdoc__tipo { font-size: 10px; font-weight: 700; padding: 2px 6px; border-radius: 5px; background: var(--surface-2); color: var(--text-2); }
.cdoc__num { font-variant-numeric: tabular-nums; color: var(--text); }
.cdoc__fant { color: var(--text-3); }
.cdoc__monit { margin-left: auto; display: inline-flex; align-items: center; gap: 4px; font-size: 11.5px; font-weight: 600; color: var(--accent); }
.cdoc__btn { margin-left: auto; }

/* ---------- feriados forenses no calendário ---------- */
.feriado { display: inline-flex; align-items: center; gap: 3px; font-size: 10px; font-weight: 600; padding: 1px 5px; border-radius: 5px; line-height: 1.3; max-width: 100%; }
.feriado .ic { width: 9px; height: 9px; }
.feriado__txt { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.feriado--fed { background: color-mix(in srgb, var(--warn) 16%, transparent); color: var(--warn); }
.feriado--uf { background: var(--surface-2); color: var(--text-3); }
.day__fer { padding: 4px 10px 0; }
.day__fer .feriado { max-width: 100%; }
.cell__h .feriado--fed, .cell__h .feriado--uf { padding: 0 3px; background: transparent; }
.cell__h .feriado--fed { color: var(--warn); }
.cell__h .feriado--uf { color: var(--text-3); }

.ic { display: inline-block; vertical-align: middle; flex-shrink: 0; }
@media (prefers-reduced-motion: reduce) { * { animation-duration: .001ms !important; transition-duration: .001ms !important; } }
