  :root{
    --bg:#F3EEE3;
    --surface:#FFFFFF;
    --navy:#16323F;
    --navy-dark:#0E232D;
    --navy-soft:#22434F;
    --brass:#AE8438;
    --brass-light:#D9B872;
    --brass-pale:#F1E4C6;
    --success:#3F7D58;
    --success-bg:#E7F1EA;
    --danger:#B23A2E;
    --danger-bg:#FBE9E6;
    --text:#1E2A2E;
    --muted:#6B7A78;
    --border:#E4DCC9;
    --radius:14px;
  }
  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;}
  body{
    background:var(--bg);
    color:var(--text);
    font-family:'Inter',sans-serif;
    min-height:100vh;
  }
  h1,h2,h3,.display{font-family:'Fraunces',serif;}
  .mono{font-family:'IBM Plex Mono',monospace;}
  ::selection{background:var(--brass-light);}
  button{font-family:inherit;cursor:pointer;}
  input,select{font-family:inherit;}

  /* ---- App shell ---- */
  .app{display:flex;min-height:100vh;}
  .sidebar{
    width:260px;
    background:linear-gradient(180deg,var(--navy) 0%, var(--navy-dark) 100%);
    color:#EFE7D6;
    display:flex;
    flex-direction:column;
    flex-shrink:0;
    position:sticky;
    top:0;
    height:100vh;
  }
  .brand{
    padding:28px 24px 20px;
    border-bottom:1px solid rgba(255,255,255,0.08);
  }
  .brand .name{font-size:23px;font-weight:600;letter-spacing:0.5px;line-height:1.15;}
  .brand .sub{font-size:12px;color:var(--brass-light);letter-spacing:2px;text-transform:uppercase;margin-top:6px;}
  nav{padding:18px 12px;flex:1;}
  .navitem{
    display:flex;align-items:center;gap:14px;
    padding:14px 16px;margin-bottom:6px;
    border-radius:10px;
    color:#CBD6D3;
    font-size:16px;font-weight:500;
    border-left:3px solid transparent;
    transition:background .15s, color .15s;
    background:transparent;border:none;width:100%;text-align:left;
  }
  .navitem .ic{font-size:19px;width:22px;text-align:center;}
  .navitem:hover{background:rgba(255,255,255,0.06);color:#fff;}
  .navitem.active{
    background:rgba(174,132,56,0.18);
    color:#fff;
    border-left:3px solid var(--brass);
  }
  .sidebar-foot{padding:18px 24px;font-size:12px;color:#7E9198;border-top:1px solid rgba(255,255,255,0.08);}
  .logout-btn{
    display:flex;align-items:center;justify-content:center;gap:8px;width:100%;
    background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.12);
    color:#EFE7D6;padding:10px 14px;border-radius:9px;font-size:13.5px;font-weight:600;
    transition:background .15s, border-color .15s, transform .1s;
  }
  .logout-btn:hover{background:var(--danger);border-color:var(--danger);color:#fff;}
  .logout-btn:active{transform:scale(0.97);}

  /* ---- Sino de notificações ---- */
  .topbar{display:flex;justify-content:flex-end;margin-bottom:18px;}
  .notif-wrap{position:relative;}
  .notif-btn{
    position:relative;width:42px;height:42px;border-radius:50%;
    background:var(--surface);border:1.5px solid var(--border);color:var(--navy);
    display:flex;align-items:center;justify-content:center;transition:border-color .15s,color .15s;
  }
  .notif-btn:hover{border-color:var(--brass);color:var(--brass);}
  .notif-badge{
    position:absolute;top:-4px;right:-4px;background:var(--danger);color:#fff;
    font-size:10px;font-weight:700;min-width:17px;height:17px;border-radius:9px;
    display:flex;align-items:center;justify-content:center;padding:0 4px;
  }
  .notif-panel{
    display:none;position:absolute;top:52px;right:0;width:320px;max-height:360px;overflow-y:auto;
    background:var(--surface);border:1px solid var(--border);border-radius:12px;
    box-shadow:0 14px 34px rgba(20,20,10,0.15);padding:10px 14px;z-index:60;
  }
  .notif-panel.show{display:block;}
  .notif-item{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--border);font-size:13.5px;color:var(--text);}
  .notif-item:last-child{border-bottom:none;}
  .notif-item svg{color:var(--danger);flex-shrink:0;margin-top:1px;}
  .notif-empty{color:var(--muted);font-size:13.5px;text-align:center;padding:16px 0;}

  .main{flex:1;padding:36px 44px;max-width:1180px;}
  .pagehead{margin-bottom:28px;}
  .pagehead h1{font-size:30px;margin:0 0 6px;color:var(--navy);}
  .pagehead p{margin:0;color:var(--muted);font-size:15px;}

  /* ---- Cards ---- */
  .grid{display:grid;gap:20px;}
  .grid-4{grid-template-columns:repeat(4,1fr);}
  .grid-2{grid-template-columns:repeat(2,1fr);}
  @media(max-width:1000px){.grid-4{grid-template-columns:repeat(2,1fr);}}

  .card{
    background:var(--surface);
    border-radius:var(--radius);
    padding:22px 24px;
    border:1px solid var(--border);
    box-shadow:0 1px 2px rgba(30,30,20,0.03);
  }
  .stat-label{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:1px;font-weight:600;margin-bottom:10px;}
  .stat-value{font-size:28px;font-weight:600;font-family:'IBM Plex Mono',monospace;}
  .stat-value.pos{color:var(--success);}
  .stat-value.neg{color:var(--danger);}
  .stat-note{font-size:13px;color:var(--muted);margin-top:6px;}

  /* ---- Ficha ticket signature element ---- */
  .ficha{
    position:relative;
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:10px;
    padding:16px 18px 16px 26px;
    margin-bottom:10px;
    display:flex;justify-content:space-between;align-items:center;gap:16px;
  }
  .ficha::before{
    content:'';
    position:absolute;left:-1px;top:0;bottom:0;width:14px;
    background-image:radial-gradient(circle at 0 9px, transparent 6px, var(--bg) 6.5px);
    background-size:14px 18px;background-repeat:repeat-y;background-position:-1px 0;
  }
  .ficha .fnum{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--brass);font-weight:600;min-width:64px;}
  .ficha .fmeta{flex:1;font-size:14px;color:var(--muted);}
  .ficha .fval{font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:16px;}
  .pill{
    display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:600;
  }
  .pill.dinheiro{background:#E7F1EA;color:var(--success);}
  .pill.pix{background:#E3EEF5;color:#2C6C93;}
  .pill.boleto{background:#F1E9F5;color:#7A4C93;}
  .pill.credito{background:var(--brass-pale);color:#8A6620;}
  .pill.debito{background:#F5E9E6;color:#95502F;}

  /* ---- Forms ---- */
  .formrow{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end;margin-bottom:22px;}
  .field{display:flex;flex-direction:column;gap:6px;}
  .field label{font-size:12.5px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.5px;}
  .field input, .field select{
    padding:11px 13px;border:1.5px solid var(--border);border-radius:9px;font-size:15px;
    min-width:150px;background:#fff;color:var(--text);outline:none;
    transition:border-color .15s;
  }
  .field input:focus, .field select:focus{border-color:var(--brass);}
  .btn{
    padding:11px 20px;border-radius:9px;border:none;font-size:15px;font-weight:600;
    background:var(--navy);color:#fff;transition:transform .1s, background .15s;
  }
  .btn:hover{background:var(--navy-soft);}
  .btn:active{transform:scale(0.97);}
  .btn.brass{background:var(--brass);}
  .btn.brass:hover{background:#977022;}
  .btn.ghost{background:transparent;border:1.5px solid var(--border);color:var(--navy);}
  .btn.ghost:hover{border-color:var(--brass);}
  .btn.small{padding:7px 13px;font-size:13px;}
  .btn.danger-ghost{background:transparent;border:1.5px solid var(--danger-bg);color:var(--danger);}

  table{width:100%;border-collapse:collapse;margin-top:6px;}
  thead th{
    text-align:left;font-size:12.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;
    padding:10px 12px;border-bottom:2px solid var(--border);
  }
  tbody td{padding:12px 12px;border-bottom:1px solid var(--border);font-size:14.5px;}
  tbody tr:hover{background:#FBF8F1;}
  .right{text-align:right;}
  .empty{
    text-align:center;padding:50px 20px;color:var(--muted);
    border:1.5px dashed var(--border);border-radius:var(--radius);
  }
  .empty .ic{font-size:34px;margin-bottom:10px;}

  /* ---- Skeleton loading ---- */
  .skel{background:linear-gradient(90deg,#EDE7D8 25%,#F6F1E5 37%,#EDE7D8 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite;border-radius:8px;}
  @keyframes shimmer{0%{background-position:100% 0;}100%{background-position:0 0;}}
  .skel-card{height:96px;border-radius:var(--radius);}
  .skel-line{height:16px;margin-bottom:10px;}

  /* ---- Toast ---- */
  #toast{
    position:fixed;bottom:26px;right:26px;background:var(--navy);color:#fff;
    padding:14px 20px;border-radius:10px;font-size:14px;box-shadow:0 6px 20px rgba(0,0,0,0.2);
    opacity:0;transform:translateY(12px);transition:all .25s;pointer-events:none;z-index:999;
    display:flex;align-items:center;gap:10px;
  }
  #toast.show{opacity:1;transform:translateY(0);}
  #toast .dot{width:8px;height:8px;border-radius:50%;background:var(--brass);}

  section.tab{display:none;}
  section.tab.active{display:block;animation:fadein .25s ease;}
  @keyframes fadein{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}

  .ai-box{
    margin-top:22px;border-radius:var(--radius);
    background:linear-gradient(135deg,var(--navy) 0%, var(--navy-soft) 100%);
    color:#EFE7D6;padding:22px 24px;position:relative;overflow:hidden;
  }
  .ai-box .tag{font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--brass-light);font-weight:700;margin-bottom:10px;}
  .ai-box p{font-size:15px;line-height:1.6;margin:0 0 10px;white-space:pre-wrap;}
  .ai-box p:last-child{margin-bottom:0;}
  .ai-box strong{color:var(--brass-light);font-weight:700;}
  .ai-box ul{margin:0 0 10px;padding-left:20px;}
  .ai-box ul:last-child{margin-bottom:0;}
  .ai-box li{font-size:15px;line-height:1.6;margin-bottom:6px;}
  .ai-loading{display:flex;gap:6px;align-items:center;color:var(--brass-light);font-size:14px;}
  .dotpulse{display:inline-flex;gap:4px;}
  .dotpulse span{width:6px;height:6px;background:var(--brass-light);border-radius:50%;animation:pulse 1s infinite ease-in-out;}
  .dotpulse span:nth-child(2){animation-delay:.15s;}
  .dotpulse span:nth-child(3){animation-delay:.3s;}
  @keyframes pulse{0%,80%,100%{opacity:.25;}40%{opacity:1;}}

  .quickbtns{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px;}
  .quickbtns button{
    padding:8px 14px;border-radius:20px;border:1.5px solid var(--border);background:#fff;
    font-size:13.5px;font-weight:600;color:var(--navy);
  }
  .quickbtns button.active{background:var(--navy);color:#fff;border-color:var(--navy);}

  .checklabel{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text);}
  .checklabel input{width:18px;height:18px;}

  .rowline{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--border);font-size:14.5px;}
  .rowline:last-child{border-bottom:none;}

  /* ---- Ícones na navegação ---- */
  .navitem .ic svg{display:block;}
  .navitem{gap:12px;}

  /* ---- Cabeçalho de impressão ---- */
  .print-header{display:none;}
  .print-meta{display:none;}
  .print-footer{display:none;}
  .print-section-title{margin:28px 0 14px;color:var(--navy);font-size:19px;border-top:2px solid var(--border);padding-top:20px;}

  .dia-bloco{margin-bottom:18px;border:1px solid var(--border);border-radius:10px;padding:14px 16px;break-inside:avoid;}
  .dia-cabecalho{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--border);}
  .dia-data{font-weight:600;color:var(--navy);text-transform:capitalize;font-size:14.5px;}
  .dia-totais{font-family:'IBM Plex Mono',monospace;font-size:13px;}
  .dia-totais .pos{color:var(--success);font-weight:600;}
  .dia-totais .neg{color:var(--danger);font-weight:600;}
  .tabela-dia{width:100%;border-collapse:collapse;margin-bottom:8px;font-size:13px;}
  .tabela-dia:last-child{margin-bottom:0;}
  .tabela-dia th{text-align:left;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.4px;padding:5px 6px;border-bottom:1px solid var(--border);}
  .tabela-dia td{padding:6px 6px;border-bottom:1px solid #F0EBDD;}
  .tabela-dia tr:last-child td{border-bottom:none;}

  /* ---- Impressão do relatório ---- */
  @media print{
    .sidebar, .formrow, .quickbtns, #toast, .pagehead, .topbar{display:none !important;}
    .main{padding:0;max-width:100%;}
    body{background:#fff;}

    .print-header{
      display:flex;align-items:center;gap:16px;margin-bottom:6px;
      border-bottom:3px solid var(--navy);padding-bottom:16px;
    }
    .print-crest{
      width:52px;height:52px;border-radius:50%;flex-shrink:0;
      background:var(--brass);color:#fff;display:flex;align-items:center;justify-content:center;
      font-family:'Fraunces',serif;font-weight:700;font-size:20px;
      -webkit-print-color-adjust:exact;print-color-adjust:exact;
    }
    .print-header h2{margin:0;font-size:24px;color:var(--navy);}
    .print-header .print-sub{margin:2px 0 0;color:var(--muted);font-size:12.5px;letter-spacing:.5px;text-transform:uppercase;}
    .print-meta{
      display:flex;gap:22px;flex-wrap:wrap;font-size:12px;color:var(--text);
      margin:14px 0 22px;padding:10px 14px;background:var(--brass-pale);border-radius:8px;
      -webkit-print-color-adjust:exact;print-color-adjust:exact;
    }
    .print-footer{
      display:block;margin-top:26px;padding-top:14px;border-top:1px solid var(--border);
      font-size:11px;color:var(--muted);text-align:center;
    }
    .card{box-shadow:none;break-inside:avoid;border-width:1px;}
    .ai-box{break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
    #tab-relatorios .btn{display:none !important;}
    .print-section-title{break-after:avoid;}
    a{color:inherit;text-decoration:none;}
  }

  /* ---- Login ---- */
  #login-screen{
    position:fixed;inset:0;z-index:1000;
    background:radial-gradient(circle at 30% 20%, var(--navy-soft) 0%, var(--navy) 45%, var(--navy-dark) 100%);
    display:flex;align-items:center;justify-content:center;
    padding:24px;
  }
  .login-card{
    background:var(--surface);
    border-radius:20px;
    width:100%;max-width:400px;
    padding:44px 38px 36px;
    box-shadow:0 30px 70px rgba(0,0,0,0.35);
    text-align:center;
    position:relative;
    animation:loginIn .5s cubic-bezier(.2,.8,.2,1);
  }
  @keyframes loginIn{from{opacity:0;transform:translateY(18px) scale(.98);}to{opacity:1;transform:translateY(0) scale(1);}}
  .login-crest{
    width:56px;height:56px;margin:0 auto 18px;border-radius:50%;
    background:linear-gradient(135deg,var(--brass) 0%, var(--brass-light) 100%);
    display:flex;align-items:center;justify-content:center;
    font-family:'Fraunces',serif;color:var(--navy-dark);font-size:24px;font-weight:700;
    box-shadow:0 6px 16px rgba(174,132,56,0.35);
  }
  .login-card h1{margin:0 0 4px;color:var(--navy);font-size:24px;}
  .login-card .login-sub{color:var(--muted);font-size:13.5px;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:28px;}
  .login-field{text-align:left;margin-bottom:16px;}
  .login-field label{display:block;font-size:12.5px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;}
  .login-field input{
    width:100%;padding:13px 14px;border:1.5px solid var(--border);border-radius:9px;font-size:15.5px;
    outline:none;transition:border-color .15s;background:#FBF9F4;
  }
  .login-field input:focus{border-color:var(--brass);background:#fff;}
  .login-btn{
    width:100%;padding:14px;border-radius:9px;border:none;background:var(--navy);color:#fff;
    font-size:16px;font-weight:600;margin-top:6px;transition:background .15s;
  }
  .login-btn:hover{background:var(--navy-soft);}
  .login-remember{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--muted);margin:14px 0 4px;justify-content:flex-start;}
  .login-foot{margin-top:26px;font-size:12px;color:var(--muted);}
  .login-error{
    display:none;background:var(--danger-bg);color:var(--danger);font-size:13px;padding:9px 12px;
    border-radius:8px;margin-bottom:14px;text-align:left;
  }
