:root{
    --bg:#F3EBD8; --bg-deep:#E9DEC0; --surface:#FBF7EC; --surface-hi:#F0E6C9;
    --line:#C7B67D; --gold:#8F5A12; --gold-soft:#C98A28; --lilac:#1F6E69;
    --text:#2A2617; --text-muted:#5C5339; --text-dim:#71664A;
    --green:#57642F; --amber:#AD7418; --red:#96392A;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html,body{
    background:
      radial-gradient(ellipse 900px 500px at 15% -10%, rgba(31,110,105,0.09), transparent 60%),
      radial-gradient(ellipse 700px 600px at 100% 0%, rgba(143,90,18,0.11), transparent 55%),
      var(--bg);
    color:var(--text); font-family:'Work Sans', sans-serif; min-height:100vh;
    -webkit-font-smoothing:antialiased;
  }
  .wrap{ max-width:1180px; margin:0 auto; padding:56px 32px 100px; }

  .eyebrow{ display:flex; align-items:center; gap:10px; font-family:'IBM Plex Mono', monospace;
    font-size:11.5px; letter-spacing:0.16em; text-transform:uppercase; color:var(--gold); margin-bottom:18px; }
  .eyebrow::before{ content:''; width:6px; height:6px; border-radius:50%; background:var(--gold-soft);
    box-shadow:0 0 8px 2px rgba(201,138,40,0.55); }
  h1{ font-family:'Fraunces', serif; font-weight:450; font-size:42px; line-height:1.12; letter-spacing:-0.01em; max-width:680px; }
  h1 em{ font-style:italic; font-weight:450; color:var(--gold); }
  .subtitle{ margin-top:14px; max-width:540px; color:var(--text-muted); font-size:15px; line-height:1.6; font-weight:300; }
  .demo-note{ margin-top:24px; display:inline-flex; align-items:center; gap:9px; padding:9px 16px; border:1px solid var(--line);
    border-radius:100px; font-size:12.5px; color:var(--text-dim); background:rgba(255,252,244,0.7); }
  .demo-note .dot{ width:6px;height:6px;border-radius:50%; background:var(--text-dim); }

  /* ---------- Controls ---------- */
  .controls{
    margin-top:38px; display:flex; flex-wrap:wrap; gap:14px; align-items:center;
    padding:16px 18px; background:var(--surface); border:1px solid var(--line); border-radius:16px;
  }
  .seg{ display:inline-flex; background:var(--bg-deep); border:1px solid var(--line); border-radius:10px; padding:3px; }
  .seg button{
    appearance:none; border:none; background:transparent; color:var(--text-muted);
    font-family:'Work Sans', sans-serif; font-size:12.5px; font-weight:500; padding:8px 14px;
    border-radius:7px; cursor:pointer; transition:all .15s ease; white-space:nowrap;
  }
  .seg button.active{ background:var(--surface-hi); color:var(--gold); box-shadow:inset 0 0 0 1px var(--line); }
  .seg button:hover:not(.active){ color:var(--text); }

  .date-range{ display:none; align-items:center; gap:8px; }
  .date-range.show{ display:flex; }
  .date-range input[type=date]{
    background:var(--bg-deep); border:1px solid var(--line); color:var(--text);
    font-family:'IBM Plex Mono', monospace; font-size:12px; padding:7px 9px; border-radius:8px;
    color-scheme:light;
  }
  .date-range span{ color:var(--text-dim); font-size:12px; }

  .spacer{ flex:1; }

  .toggle-wrap{ display:flex; align-items:center; gap:9px; font-size:12.5px; color:var(--text-muted); }
  .toggle{ position:relative; width:38px; height:21px; }
  .toggle input{ opacity:0; width:0; height:0; }
  .toggle-track{
    position:absolute; inset:0; background:var(--bg-deep); border:1px solid var(--line);
    border-radius:20px; cursor:pointer; transition:.15s;
  }
  .toggle-track::before{
    content:''; position:absolute; width:15px; height:15px; left:2px; top:2px;
    background:var(--text-dim); border-radius:50%; transition:.15s;
  }
  .toggle input:checked + .toggle-track{ background:rgba(143,90,18,0.16); border-color:var(--gold); }
  .toggle input:checked + .toggle-track::before{ transform:translateX(17px); background:var(--gold-soft); }

  /* ---------- Hero ---------- */
  .hero{ margin-top:22px; display:grid; grid-template-columns:1.1fr 1fr 1fr; gap:1px;
    background:var(--line); border:1px solid var(--line); border-radius:20px; overflow:hidden; }
  .hero-cell{ background:var(--surface); padding:28px 30px; position:relative; }
  .hero-label{ font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.1em; text-transform:uppercase;
    color:var(--text-dim); margin-bottom:16px; }

  .farol-cell{ display:flex; align-items:center; gap:22px; }
  .farol{ position:relative; width:60px; height:60px; flex-shrink:0; }
  .farol-ring{ position:absolute; inset:0; border-radius:50%; border:1.5px solid var(--lilac); opacity:0.4;
    animation:ring-pulse 2.8s ease-out infinite; }
  .farol-ring.r2{ animation-delay:1.4s; }
  @keyframes ring-pulse{ 0%{ transform:scale(0.55); opacity:0.55; } 100%{ transform:scale(1.35); opacity:0; } }
  .farol-core{ position:absolute; inset:13px; border-radius:50%;
    background:radial-gradient(circle at 35% 30%, var(--gold-soft), var(--amber) 55%, #7A5215 100%);
    box-shadow:0 0 20px 4px rgba(173,116,24,0.35); transition:background .3s ease; }
  .farol-text .farol-state{ font-family:'Fraunces', serif; font-style:italic; font-size:20px; color:var(--gold); }
  .farol-text .farol-desc{ margin-top:6px; font-size:12.5px; color:var(--text-muted); line-height:1.5; max-width:220px; }

  .metric-value{ font-family:'Fraunces', serif; font-size:36px; font-weight:450; letter-spacing:-0.01em; }
  .metric-value .unit{ font-size:17px; color:var(--text-muted); font-family:'Work Sans',sans-serif; font-weight:300; }
  .metric-delta{ margin-top:10px; display:inline-flex; align-items:center; gap:6px; font-family:'IBM Plex Mono', monospace; font-size:12.5px; }
  .metric-delta.up{ color:var(--green); } .metric-delta.down{ color:var(--red); }
  .metric-sub{ margin-top:8px; font-size:12px; color:var(--text-dim); }

  /* ---------- Section head ---------- */
  .section-head{ margin-top:56px; display:flex; align-items:baseline; justify-content:space-between; gap:20px; flex-wrap:wrap; }
  .section-head h2{ font-family:'Fraunces', serif; font-weight:450; font-size:23px; }
  .section-head .section-sub{ font-size:12.5px; color:var(--text-dim); font-family:'IBM Plex Mono', monospace; }

  /* ---------- Product grid ---------- */
  .grid{ margin-top:24px; display:grid; grid-template-columns:repeat(auto-fill, minmax(250px,1fr)); gap:16px; }
  .card{ background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:24px 22px 20px;
    transition:border-color 0.2s ease, transform 0.2s ease; cursor:pointer; }
  .card:hover{ border-color:var(--gold); transform:translateY(-2px); }
  .card-top{ display:flex; align-items:flex-start; justify-content:space-between; }
  .card-name{ font-family:'Fraunces', serif; font-size:18px; font-weight:450; max-width:170px; line-height:1.25; }
  .signal{ width:10px; height:10px; border-radius:50%; margin-top:6px; flex-shrink:0; box-shadow:0 0 10px 2px currentColor; }
  .signal.green{ background:var(--green); color:var(--green); }
  .signal.amber{ background:var(--amber); color:var(--amber); }
  .signal.red{ background:var(--red); color:var(--red); }
  .card-revenue{ margin-top:18px; font-family:'IBM Plex Mono', monospace; font-size:24px; color:var(--text); }
  .card-revenue .cents{ color:var(--text-dim); font-size:15px; }
  .card-delta{ margin-top:6px; font-family:'IBM Plex Mono', monospace; font-size:11.5px; }
  .card-delta.up{ color:var(--green); }
  .card-delta.down{ color:var(--red); }
  .card-pending{ margin-top:8px; font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--gold);
    background:rgba(143,90,18,0.09); border:1px solid rgba(143,90,18,0.28); padding:6px 9px; border-radius:8px; }

  .receivable-total{ margin-top:24px; padding:20px; background:var(--bg-deep); border:1px solid var(--line); border-radius:14px; }
  .receivable-list{ margin-top:16px; display:flex; flex-direction:column; gap:10px; }
  .receivable-row{ display:flex; align-items:center; justify-content:space-between; gap:14px; padding:13px 16px;
    background:var(--bg-deep); border:1px solid var(--line); border-radius:10px; }
  .receivable-row-name{ font-family:'Fraunces', serif; font-size:14.5px; }
  .receivable-row-meta{ font-family:'IBM Plex Mono', monospace; font-size:11.5px; color:var(--text-dim); }
  .receivable-row-value{ font-family:'IBM Plex Mono', monospace; font-size:14px; color:var(--gold); }
  .receivable-empty{ margin-top:16px; font-size:12.5px; color:var(--text-dim); font-style:italic; }
  .card-units{ margin-top:4px; font-size:12px; color:var(--text-muted); }
  .spark{ margin-top:16px; height:32px; } .spark svg{ width:100%; height:100%; display:block; }
  .card-foot{ margin-top:14px; padding-top:13px; border-top:1px solid var(--line); display:flex; justify-content:space-between;
    font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--text-dim); }
  .card-foot b{ color:var(--text-muted); font-weight:500; }
  .card-hint{ margin-top:10px; font-size:11px; color:var(--text-dim); }

  /* ---------- Drawer ---------- */
  .overlay{ position:fixed; inset:0; background:rgba(46,42,28,0.32); backdrop-filter:blur(2px); opacity:0; pointer-events:none;
    transition:opacity .2s ease; z-index:40; }
  .overlay.show{ opacity:1; pointer-events:auto; }
  .drawer{ position:fixed; top:0; right:0; height:100%; width:420px; max-width:92vw; background:var(--bg-deep);
    border-left:1px solid var(--line); transform:translateX(100%); transition:transform .25s ease; z-index:41;
    padding:34px 30px; overflow-y:auto; }
  .drawer.show{ transform:translateX(0); }
  .drawer-close{ appearance:none; background:none; border:1px solid var(--line); color:var(--text-muted); width:32px; height:32px;
    border-radius:50%; cursor:pointer; font-size:15px; display:flex; align-items:center; justify-content:center; }
  .drawer-close:hover{ color:var(--text); border-color:var(--gold); }
  .drawer-head{ display:flex; justify-content:space-between; align-items:flex-start; }
  .drawer-eyebrow{ font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--text-dim); }
  .drawer h3{ font-family:'Fraunces', serif; font-weight:450; font-size:26px; margin-top:8px; }
  .drawer-range{ margin-top:6px; font-size:12.5px; color:var(--text-muted); }

  .drawer-total{ margin-top:28px; padding:20px; background:var(--surface); border:1px solid var(--line); border-radius:14px; }
  .drawer-total .metric-value{ font-size:30px; }

  .country-row{ margin-top:24px; }
  .country-block{ margin-top:14px; padding:16px 18px; background:var(--surface); border:1px solid var(--line); border-radius:12px; }
  .country-block-top{ display:flex; justify-content:space-between; align-items:center; }
  .country-block-name{ font-family:'Fraunces', serif; font-style:italic; font-size:15px; color:var(--gold); }
  .country-block-source{ font-size:10.5px; color:var(--text-dim); font-family:'IBM Plex Mono', monospace; }
  .country-bar{ margin-top:12px; height:6px; border-radius:4px; background:var(--bg-deep); overflow:hidden; }
  .country-bar-fill{ height:100%; background:linear-gradient(90deg, var(--lilac), var(--gold-soft)); border-radius:4px; }
  .country-numbers{ margin-top:10px; display:flex; justify-content:space-between; font-family:'IBM Plex Mono', monospace; font-size:13px; }
  .country-numbers .units{ color:var(--text-muted); }

  /* ---------- Goal panel ---------- */
  .goal-panel{ margin-top:24px; background:var(--surface); border:1px solid var(--line); border-radius:18px; padding:30px 30px 32px; }
  .goal-grid{ margin-top:20px; display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr auto; gap:14px; align-items:end; }
  .field label{ display:block; font-size:11px; letter-spacing:0.06em; text-transform:uppercase; color:var(--text-dim);
    font-family:'IBM Plex Mono', monospace; margin-bottom:8px; }
  .field select, .field input{
    width:100%; background:var(--bg-deep); border:1px solid var(--line); color:var(--text);
    font-family:'Work Sans', sans-serif; font-size:13.5px; padding:10px 12px; border-radius:9px; color-scheme:light;
  }
  .field select:focus, .field input:focus{ outline:2px solid var(--gold); outline-offset:1px; border-color:var(--gold); }
  .goal-btn{
    appearance:none; border:none; background:var(--gold); color:#FBF3E2; font-weight:600; font-size:13.5px;
    padding:11px 20px; border-radius:9px; cursor:pointer; white-space:nowrap; transition:background .15s ease;
  }
  .goal-btn:hover{ background:var(--gold-soft); }

  .goal-result{ margin-top:24px; padding:22px 24px; border-radius:14px; border:1px solid var(--line);
    background:var(--bg-deep); display:none; }
  .goal-result.show{ display:block; }
  .goal-result.tier-1{ border-left:4px solid var(--green); }
  .goal-result.tier-2{ border-left:4px solid var(--amber); }
  .goal-result.tier-3{ border-left:4px solid var(--red); }
  .goal-result-top{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; }
  .goal-badge{ font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.08em; text-transform:uppercase;
    padding:5px 10px; border-radius:100px; }
  .tier-1 .goal-badge{ background:rgba(87,100,47,0.16); color:var(--green); }
  .tier-2 .goal-badge{ background:rgba(173,116,24,0.16); color:var(--amber); }
  .tier-3 .goal-badge{ background:rgba(150,57,42,0.16); color:var(--red); }
  .goal-pace{ font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--text-dim); }
  .goal-action{ margin-top:16px; font-family:'Fraunces', serif; font-size:19px; line-height:1.4; max-width:640px; }
  .goal-action b{ color:var(--gold); font-weight:450; font-style:italic; }
  .goal-steps{ margin-top:16px; display:flex; flex-direction:column; gap:8px; }
  .goal-step{ display:flex; gap:10px; align-items:flex-start; font-size:13px; color:var(--text-muted); }
  .goal-step::before{ content:'→'; color:var(--gold); flex-shrink:0; }

  .goal-ideas{ margin-top:22px; padding-top:20px; border-top:1px dashed var(--line); display:none; }
  .goal-ideas.show{ display:block; }
  .goal-ideas-head{ display:flex; align-items:center; gap:8px; }
  .goal-ideas-eyebrow{ font-family:'IBM Plex Mono', monospace; font-size:10.5px; letter-spacing:0.1em; text-transform:uppercase; color:var(--lilac); }
  .goal-idea{ display:flex; gap:10px; align-items:flex-start; font-size:13.5px; color:var(--text); margin-top:12px; line-height:1.45; }
  .goal-idea::before{ content:'✦'; color:var(--lilac); flex-shrink:0; font-size:12px; margin-top:2px; }
  .goal-ideas-loading{ margin-top:12px; font-size:12.5px; color:var(--text-dim); font-style:italic; }
  .goal-ideas-error{ margin-top:12px; font-size:12.5px; color:var(--red); }
  .goal-note{ margin-top:16px; font-size:11.5px; color:var(--text-dim); line-height:1.5; }

  /* ---------- O que fazer hoje ---------- */
  .today-panel{ margin-top:24px; background:var(--surface); border:1px solid var(--line); border-radius:18px; padding:26px 28px; }
  .today-actions{ display:flex; flex-direction:column; gap:13px; }
  .today-action{ display:flex; gap:13px; align-items:flex-start; font-size:15px; line-height:1.5; color:var(--text); }
  .today-action .tdot{ width:11px; height:11px; border-radius:50%; margin-top:5px; flex-shrink:0; box-shadow:0 0 9px 1px currentColor; }
  .today-action .tdot.green{ background:var(--green); color:var(--green); }
  .today-action .tdot.amber{ background:var(--amber); color:var(--amber); }
  .today-action .tdot.red{ background:var(--red); color:var(--red); }
  .today-action b{ font-weight:600; color:var(--text); }
  .today-empty{ font-size:14px; color:var(--text-muted); font-style:italic; }

  .today-alerts{ margin-top:22px; padding-top:20px; border-top:1px dashed var(--line); display:flex; flex-direction:column; gap:10px; }
  .today-alerts-eyebrow{ font-family:'IBM Plex Mono', monospace; font-size:10.5px; letter-spacing:0.1em; text-transform:uppercase; color:var(--text-dim); margin-bottom:2px; }
  .alert-row{ display:flex; gap:10px; align-items:flex-start; font-size:13px; line-height:1.45; padding:10px 14px; border-radius:10px; border:1px solid var(--line); background:var(--bg-deep); }
  .alert-row .aicon{ flex-shrink:0; font-family:'IBM Plex Mono', monospace; }
  .alert-row.ok{ color:var(--text-muted); }
  .alert-row.ok .aicon{ color:var(--green); }
  .alert-row.warn{ border-color:rgba(173,116,24,0.4); background:rgba(173,116,24,0.08); color:var(--amber); }
  .alert-row.danger{ border-color:rgba(150,57,42,0.4); background:rgba(150,57,42,0.08); color:var(--red); }
  .today-note{ margin-top:20px; font-size:11.5px; color:var(--text-dim); line-height:1.5; }

  /* ---------- Funil de conversão ---------- */
  .funnel-panel{ margin-top:24px; background:var(--surface); border:1px solid var(--line); border-radius:18px; padding:28px 30px; }
  .funnel-intro{ color:var(--text-muted); font-size:13.5px; max-width:560px; line-height:1.6; }
  .funnel-steps{ margin-top:24px; display:flex; flex-direction:column; gap:15px; }
  .funnel-step-top{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; }
  .funnel-step-name{ font-family:'Fraunces', serif; font-size:15.5px; }
  .funnel-step-conv{ font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--gold); margin-left:10px; }
  .funnel-step-num{ font-family:'IBM Plex Mono', monospace; font-size:15px; color:var(--text); }
  .funnel-bar{ margin-top:8px; height:14px; border-radius:6px; background:var(--bg-deep); overflow:hidden; }
  .funnel-bar-fill{ height:100%; background:linear-gradient(90deg, var(--lilac), var(--gold-soft)); border-radius:6px; transition:width .3s ease; }
  .funnel-legend{ margin-top:22px; padding-top:18px; border-top:1px dashed var(--line); font-size:12px; color:var(--text-dim); line-height:1.55; max-width:600px; }

  footer{ margin-top:70px; padding-top:24px; border-top:1px solid var(--line); display:flex; justify-content:space-between;
    align-items:center; flex-wrap:wrap; gap:12px; }
  footer .brand{ font-family:'Fraunces', serif; font-style:italic; font-size:14px; color:var(--text-dim); }
  footer .updated{ font-family:'IBM Plex Mono', monospace; font-size:11.5px; color:var(--text-dim); }

  .admin-list{ margin-top:18px; display:flex; flex-direction:column; gap:10px; }
  .admin-row{ display:flex; flex-wrap:wrap; gap:10px; align-items:center; padding:12px 14px;
    background:var(--bg-deep); border:1px solid var(--line); border-radius:10px; }
  .admin-row .name{ font-family:'Fraunces', serif; font-size:15px; min-width:140px; flex:1; }
  .admin-row .meta{ font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--text-dim); }
  .admin-row input[type=number], .admin-row input[type=text], .admin-row select{
    background:var(--surface); border:1px solid var(--line); color:var(--text);
    font-family:'Work Sans', sans-serif; font-size:13px; padding:8px 10px; border-radius:8px;
  }
  .admin-row input[type=number]{ width:72px; }
  .ghost-btn{
    appearance:none; border:1px solid var(--line); background:transparent; color:var(--text-muted);
    font-size:12px; padding:8px 12px; border-radius:8px; cursor:pointer;
  }
  .ghost-btn:hover{ border-color:var(--gold); color:var(--text); }
  .admin-filter{ display:inline-flex; gap:8px; align-items:center; margin:16px 0 12px; font-size:13px; color:var(--text-muted); }
  .admin-table-wrap{ overflow-x:auto; margin-top:8px; }
  .admin-table{ width:100%; border-collapse:collapse; font-size:13px; }
  .admin-table th{ text-align:left; font-family:'IBM Plex Mono', monospace; font-size:10.5px;
    letter-spacing:0.08em; text-transform:uppercase; color:var(--text-dim); padding:8px 10px; border-bottom:1px solid var(--line); }
  .admin-table td{ padding:10px; border-bottom:1px solid var(--line); vertical-align:middle; }
  .admin-table code{ font-family:'IBM Plex Mono', monospace; font-size:11.5px; color:var(--gold); }
  .share-grid{ display:flex; flex-wrap:wrap; gap:10px; align-items:center; flex:2; }
  .share-cell{ display:flex; align-items:center; gap:6px; font-size:12px; color:var(--text-muted); }
  .pill-residual{ font-family:'IBM Plex Mono', monospace; font-size:10px; letter-spacing:0.08em; text-transform:uppercase;
    padding:4px 8px; border-radius:100px; background:rgba(31,110,105,0.12); color:var(--lilac); }

  @media (max-width: 880px){
    .hero{ grid-template-columns:1fr; }
    h1{ font-size:32px; }
    .goal-grid{ grid-template-columns:1fr 1fr; }
  }
  @media (max-width: 560px){
    .wrap{ padding:40px 20px 70px; }
    .goal-grid{ grid-template-columns:1fr; }
    .drawer{ width:100%; }
  }
  @media (prefers-reduced-motion: reduce){ .farol-ring{ animation:none; opacity:0.25; } }
