/* ==========================================================================
   FCore — Design System (by Maud Capital)
   Tailwind + daisyUI custom themes, brand tokens, component styling.
   ========================================================================== */

/* ---- daisyUI custom themes (oklch triplets) ---------------------------- */
[data-theme="fcore-light"] {
  color-scheme: light;
  --p: 23.08% 0.0305 239.95;   --pf: 19% 0.03 240;     --pc: 95.50% 0.0083 91.48;
  --s: 32.59% 0.0350 195.57;   --sf: 27% 0.034 196;    --sc: 95.50% 0.0083 91.48;
  --a: 64.76% 0.1163 55.50;    --af: 58% 0.118 55;     --ac: 22.92% 0.0393 60.62;
  --n: 32.73% 0.0254 234.91;   --nf: 27% 0.025 235;    --nc: 95.50% 0.0083 91.48;
  --b1: 98.48% 0.0054 95.10;   --b2: 95.50% 0.0083 91.48; --b3: 90.10% 0.0183 89.37;
  --bc: 27.57% 0.0262 235.34;
  --in: 50.96% 0.0725 241.88;  --inc: 100% 0 0;
  --su: 53.46% 0.0855 157.07;  --suc: 100% 0 0;
  --wa: 64.76% 0.1163 55.50;   --wac: 22.92% 0.0393 60.62;
  --er: 55.64% 0.1365 33.77;   --erc: 100% 0 0;
  --rounded-box: 0.9rem; --rounded-btn: 0.55rem; --rounded-badge: 0.45rem;
  --animation-btn: 0.2s; --animation-input: 0.2s; --btn-text-case: none;
  --border-btn: 1px; --tab-radius: 0.5rem;
  /* brand raw hexes for non-daisy use */
  --fc-navy:#0F1F2A; --fc-green:#1D3A3A; --fc-sage:#6B7D6D; --fc-terra:#C47A43;
  --fc-taupe:#BDB6A6; --fc-cream:#F2F0EA;
  --fc-square-light:#BDB6A6; --fc-square-dark:#0F1F2A; --fc-square-core:#C47A43;
  --fc-ring: rgba(196,122,67,.35);
  --fc-shadow: 0 1px 2px rgba(15,31,42,.06), 0 8px 24px -12px rgba(15,31,42,.18);
}

[data-theme="fcore-dark"] {
  color-scheme: dark;
  --p: 92.53% 0.0141 88.69;    --pf: 85% 0.014 89;     --pc: 23.08% 0.0305 239.95;
  --s: 57.02% 0.0322 148.28;   --sf: 50% 0.032 148;    --sc: 23.08% 0.0305 239.95;
  --a: 70.36% 0.1222 55.88;    --af: 63% 0.124 56;     --ac: 22.92% 0.0393 60.62;
  --n: 30.47% 0.0314 230.83;   --nf: 25% 0.031 231;    --nc: 91.62% 0.0141 88.69;
  --b1: 25.51% 0.0287 236.89;  --b2: 23.08% 0.0305 239.95; --b3: 32.36% 0.0321 229.47;
  --bc: 91.62% 0.0141 88.69;
  --in: 62.65% 0.0747 237.49;  --inc: 23.08% 0.0305 239.95;
  --su: 60.01% 0.0844 161.29;  --suc: 23.08% 0.0305 239.95;
  --wa: 70.36% 0.1222 55.88;   --wac: 22.92% 0.0393 60.62;
  --er: 62.36% 0.1217 35.74;   --erc: 23.08% 0.0305 239.95;
  --rounded-box: 0.9rem; --rounded-btn: 0.55rem; --rounded-badge: 0.45rem;
  --animation-btn: 0.2s; --animation-input: 0.2s; --btn-text-case: none;
  --border-btn: 1px; --tab-radius: 0.5rem;
  --fc-navy:#0F1F2A; --fc-green:#1D3A3A; --fc-sage:#6B7D6D; --fc-terra:#D98A4F;
  --fc-taupe:#BDB6A6; --fc-cream:#F2F0EA;
  --fc-square-light:#BDB6A6; --fc-square-dark:#5C707C; --fc-square-core:#D98A4F;
  --fc-ring: rgba(217,138,79,.4);
  --fc-shadow: 0 1px 2px rgba(0,0,0,.3), 0 10px 30px -14px rgba(0,0,0,.6);
}

/* ---- Base ------------------------------------------------------------- */
html {
  margin: 0;
  padding: 0;
  height: 100%;
  background: oklch(var(--b2));
  overflow: hidden;
  -webkit-font-smoothing: antialiased;
}
body {
  margin: 0;
  padding: 0;
  height: 100%;
  background: oklch(var(--b2));
  overflow: hidden;
  font-family: "IBM Plex Sans", system-ui, sans-serif;
  font-feature-settings: "cv05","ss01";
  letter-spacing: -0.005em;
}
.font-display { font-family: "Sora", system-ui, sans-serif; letter-spacing: -0.02em; }
.num { font-variant-numeric: tabular-nums; font-feature-settings: "tnum"; }
.measure { max-width: 68ch; }

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: oklch(var(--bc)/.18); border-radius: 99px; border: 3px solid transparent; background-clip: content-box; }
::-webkit-scrollbar-thumb:hover { background: oklch(var(--bc)/.32); background-clip: content-box; }

/* ---- Logo ------------------------------------------------------------- */
.fc-logo { display:flex; align-items:center; gap:.65rem; }
.fc-mark { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; }
.fc-mark span { width:100%; aspect-ratio:1; border-radius:30%; }
.fc-mark .sq-l { background: var(--fc-square-light); }
.fc-mark .sq-d { background: var(--fc-square-dark); }
.fc-mark .sq-c { background: var(--fc-square-core); }
.fc-word { line-height:1; }
.fc-word b { font-weight:700; }
.fc-word span { font-weight:400; }
.fc-sub { color: var(--fc-terra); font-weight:500; letter-spacing:.01em; }

/* ---- App shell -------------------------------------------------------- */
.fc-app-shell {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100dvh;
  min-height: 100vh;
  margin: 0;
}
.fc-topbar {
  margin: 0;
}
.fc-sidebar {
  width: 250px; flex-shrink:0;
  background: oklch(var(--b1));
  border-right: 1px solid oklch(var(--bc)/.08);
  overflow: hidden;
  font-size: 0;
  line-height: 0;
  transition: transform .22s ease, width .22s ease;
}
.fc-sidebar-inner {
  display: flex;
  height: 100%;
  min-height: 0;
  flex-direction: column;
  overflow: hidden;
  font-size: 1rem;
  line-height: 1.5;
}
.fc-sidebar-logo {
  height: 64px;
  flex-shrink: 0;
  padding: 0 1.25rem;
  border-bottom: 1px solid oklch(var(--bc)/.07);
}
.fc-sidebar-nav {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 1rem .75rem;
}
.fc-sidebar-footer {
  flex-shrink: 0;
  padding: .5rem .75rem;
  border-top: 1px solid oklch(var(--bc)/.07);
}
.fc-sidebar--collapsed { width: 60px; }
.fc-sidebar--collapsed .fc-word,
.fc-sidebar--collapsed .fc-nav-label,
.fc-sidebar--collapsed .fc-nav-section { display: none; }
.fc-sidebar--collapsed .fc-logo { justify-content: center; padding-left: 0; padding-right: 0; }
.fc-sidebar--collapsed .fc-nav-link { justify-content: center; padding: .6rem; gap: 0; }
.fc-sidebar--collapsed .fc-nav-link.active::before { display: none; }
/* Logo: imagem completa no estado expandido, símbolo (fc-mark) no colapsado */
.fc-logo-full { height: 40px; width: auto; display: block; }
.fc-logo .fc-logo-symbol { display: none; }
.fc-sidebar--collapsed .fc-logo-symbol { display: grid; }
.fc-sidebar--collapsed .fc-logo-full { display: none; }
/* Alternância de logo por tema */
[data-theme="fcore-light"] .fc-logo-dark { display: none; }
[data-theme="fcore-dark"] .fc-logo-light { display: none; }
.fc-user-menu-panel {
  position: fixed;
  top: 3.75rem;
  right: 1rem;
  z-index: 9999;
  width: 13rem;
  padding: .5rem;
  pointer-events: auto;
  background: oklch(var(--b1));
  border: 1px solid oklch(var(--bc)/.1);
  border-radius: var(--rounded-box);
  box-shadow: 0 18px 45px -22px rgba(15,31,42,.45), 0 10px 24px -16px rgba(15,31,42,.28);
}
.fc-user-menu-action {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding: .75rem 1rem;
  border-radius: .6rem;
  text-align: left;
  font-size: .875rem;
  line-height: 1.25rem;
  transition: background .15s, color .15s;
}
.fc-user-menu-action:hover { background: oklch(var(--bc)/.05); }
.fc-user-menu-action.danger { color: oklch(var(--er)); }
.fc-user-menu-action.danger:hover { background: oklch(var(--er)/.1); }
.fc-user-menu-separator {
  margin-top: .25rem;
  padding-top: .25rem;
  border-top: 1px solid oklch(var(--bc)/.1);
}
.fc-nav-link {
  display:flex; align-items:center; gap:.7rem;
  padding:.55rem .7rem; border-radius:.6rem;
  color: oklch(var(--bc)/.7); font-size:.9rem; font-weight:500;
  transition: background .15s, color .15s;
  position:relative;
}
.fc-nav-link:hover { background: oklch(var(--bc)/.05); color: oklch(var(--bc)); }
.fc-nav-link svg { width:1.15rem; height:1.15rem; flex-shrink:0; opacity:.8; }
.fc-nav-link.active {
  background: oklch(var(--a)/.12); color: oklch(var(--a)); font-weight:600;
}
.fc-nav-link.active svg { opacity:1; }
.fc-nav-link.active::before {
  content:""; position:absolute; left:-12px; top:18%; bottom:18%;
  width:3px; border-radius:99px; background: oklch(var(--a));
}
.fc-nav-section { font-size:.68rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color: oklch(var(--bc)/.4); padding:0 .7rem; }

/* ---- Cards & surfaces -------------------------------------------------- */
.fc-card {
  background: oklch(var(--b1));
  border: 1px solid oklch(var(--bc)/.08);
  border-radius: var(--rounded-box);
  box-shadow: var(--fc-shadow);
}
.fc-card-pad { padding: 1.25rem 1.35rem; }
.fc-card-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.1rem 1.35rem; border-bottom:1px solid oklch(var(--bc)/.07); }
.fc-card-title { font-weight:600; font-size:.98rem; }
.fc-card-sub { font-size:.78rem; color: oklch(var(--bc)/.55); }

.fc-kpi-label { font-size:.78rem; color: oklch(var(--bc)/.6); font-weight:500; }
.fc-kpi-value { font-family:"Sora",sans-serif; font-weight:600; letter-spacing:-.02em; line-height:1.1; }
.fc-delta { display:inline-flex; align-items:center; gap:.15rem; font-size:.78rem; font-weight:600; }
.fc-delta.up { color: oklch(var(--su)); }
.fc-delta.down { color: oklch(var(--er)); }

/* spark/track */
.fc-track { height:6px; border-radius:99px; background: oklch(var(--bc)/.08); overflow:hidden; }
.fc-track > i { display:block; height:100%; border-radius:99px; }

/* ---- Tables ----------------------------------------------------------- */
.fc-table { width:100%; border-collapse:separate; border-spacing:0; font-size:.875rem; }
.fc-table thead th {
  text-align:left; font-weight:600; font-size:.72rem; letter-spacing:.04em; text-transform:uppercase;
  color: oklch(var(--bc)/.5); padding:.6rem .85rem; white-space:nowrap;
  border-bottom:1px solid oklch(var(--bc)/.1); position:sticky; top:0; background: oklch(var(--b1)); z-index:1;
}
.fc-table tbody td { padding:.7rem .85rem; border-bottom:1px solid oklch(var(--bc)/.06); }
.fc-table tbody tr:hover td { background: oklch(var(--bc)/.025); }
.fc-table .t-right { text-align:right; }
.fc-table tfoot td, .fc-table tr.fc-total td {
  font-weight:700; background: oklch(var(--bc)/.04); border-top:2px solid oklch(var(--bc)/.14);
  border-bottom:none; padding:.75rem .85rem;
}
.fc-table tr.fc-subtotal td { font-weight:600; background: oklch(var(--bc)/.03); }
.fc-table th.sortable { cursor:pointer; user-select:none; }
.fc-table th.sortable:hover { color: oklch(var(--bc)/.8); }
.fc-table th .sort-i { opacity:.4; }
.fc-zebra tbody tr:nth-child(even) td { background: oklch(var(--bc)/.02); }

/* ---- Status badges (FIDC) --------------------------------------------- */
.fc-badge { display:inline-flex; align-items:center; gap:.35rem; padding:.18rem .55rem; border-radius:.45rem; font-size:.74rem; font-weight:600; line-height:1.2; white-space:nowrap; }
.fc-badge::before { content:""; width:.45rem; height:.45rem; border-radius:99px; background:currentColor; flex-shrink:0; }
.fc-badge.dot-none::before { display:none; }
.fc-st-emdia    { background: oklch(var(--su)/.14); color: oklch(var(--su)); }
.fc-st-avencer  { background: oklch(var(--in)/.14); color: oklch(var(--in)); }
.fc-st-atrasado { background: oklch(var(--er)/.14); color: oklch(var(--er)); }
.fc-st-liquidado{ background: oklch(var(--bc)/.08); color: oklch(var(--bc)/.6); }
.fc-st-analise  { background: oklch(var(--wa)/.16); color: oklch(var(--a)); }
.fc-st-recompra { background: oklch(var(--s)/.16); color: oklch(var(--s)); }

/* legend dot */
.fc-dot { width:.7rem; height:.7rem; border-radius:3px; display:inline-block; flex-shrink:0; }

/* ---- Misc ------------------------------------------------------------- */
.fc-section-title { font-family:"Sora",sans-serif; font-weight:600; letter-spacing:-.01em; }
.fc-divider-label { display:flex; align-items:center; gap:.75rem; color: oklch(var(--bc)/.45); font-size:.72rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; }
.fc-divider-label::after { content:""; flex:1; height:1px; background: oklch(var(--bc)/.1); }

.fc-chip { display:inline-flex; align-items:center; gap:.4rem; padding:.3rem .65rem; border-radius:99px; font-size:.8rem; font-weight:500; border:1px solid oklch(var(--bc)/.14); background: oklch(var(--b1)); }
.fc-chip.active { background: oklch(var(--a)/.12); border-color: oklch(var(--a)/.4); color: oklch(var(--a)); }

.fc-scroll-x { overflow-x:auto; }
.fc-fade-in { animation: fcFade .4s ease both; }
@keyframes fcFade { from { opacity:0; transform: translateY(6px);} to {opacity:1; transform:none;} }

.htmx-indicator { opacity:0; transition: opacity .2s; }
.htmx-request .htmx-indicator, .htmx-request.htmx-indicator { opacity:1; }

/* theme toggle icon swap */
[data-theme="fcore-light"] .icon-moon { display:none; }
[data-theme="fcore-dark"]  .icon-sun  { display:none; }
[x-cloak] { display:none !important; }

/* daisyUI tweaks */
.btn { font-weight:600; }
.input, .select, .textarea { font-family:"IBM Plex Sans",sans-serif; }
.tab { font-weight:500; }

/* ---- Print (relatórios) ----------------------------------------------- */
@media print {
  .fc-no-print, .fc-sidebar, .fc-topbar { display:none !important; }
  .fc-print-area { box-shadow:none !important; border:none !important; }
  body { background:#fff !important; }
  @page { margin: 1.4cm; }
}
