
  :root{
    --paper:#FBF8F0;
    --paper-2:#F3EEE1;
    --rule:#C9DCE4;
    --margin:#C4453D;
    --ink:#1F3A5F;
    --ink-soft:#5B6B7A;
    --accent:#2F6F4E;
    --accent-soft:#E4EFE8;
    --highlight:#F0C55B;
    --danger:#C4453D;
    --danger-soft:#F8E7E5;
    --white:#FFFFFF;
    --shadow: 0 1px 2px rgba(31,58,95,0.06), 0 4px 14px rgba(31,58,95,0.06);
  }
  *{box-sizing:border-box;}
  body{
    margin:0;
    font-family:'Inter',system-ui,sans-serif;
    background:var(--paper);
    color:var(--ink);
    -webkit-font-smoothing:antialiased;
  }
  #app{max-width:1180px;margin:0 auto;padding:28px 24px 60px;}

  /* Header */
  .header{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    border-bottom:3px solid var(--ink);
    padding-bottom:16px;
    margin-bottom:6px;
    gap:16px;
    flex-wrap:wrap;
  }
  .brand{display:flex;align-items:center;gap:12px;}
  .brand-mark{
    width:42px;height:42px;border-radius:50%;
    border:2px solid var(--accent);
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    font-family:'Lora',serif;font-weight:700;color:var(--accent);
    transform:rotate(-8deg);
    flex-shrink:0;
    line-height:1.05;
  }
  .brand-mark span{display:block;}
  .brand-mark span:first-child{font-size:11px;}
  .brand-mark span:last-child{font-size:8px;letter-spacing:0.02em;}
  .brand h1{
    font-family:'Lora',serif;font-size:24px;font-weight:700;margin:0;
    letter-spacing:-0.01em;
  }
  .brand p{margin:2px 0 0;font-size:12.5px;color:var(--ink-soft);}
  .filters{display:flex;gap:10px;flex-wrap:wrap;}
  .filters select{
    font-family:'Inter',sans-serif;font-size:13px;font-weight:600;
    padding:8px 10px;border-radius:8px;border:1.5px solid var(--rule);
    background:var(--white);color:var(--ink);
  }

  /* Layout do corpo (barra lateral + conteúdo) */
  .app-body{
    display:flex;
    align-items:flex-start;
    gap:26px;
  }
  .main-col{flex:1;min-width:0;}

  /* Tabs (barra lateral) */
  .tabs{
    display:flex;flex-direction:column;gap:2px;
    margin:18px 0 22px;
    width:190px;flex-shrink:0;
    border-bottom:none;
    border-right:1.5px solid var(--rule);
    position:sticky;
    top:18px;
  }
  .tab{
    font-family:'Inter',sans-serif;font-weight:600;font-size:13.5px;
    padding:10px 14px;cursor:pointer;color:var(--ink-soft);
    border:none;background:transparent;
    border-right:3px solid transparent;
    border-radius:6px 0 0 6px;
    text-align:left;
    margin-right:-1.5px;
    display:flex;align-items:center;width:100%;
  }
  .tab.active{color:var(--ink);border-right-color:var(--margin);background:var(--paper-2);}
  .tab:hover:not(.active){color:var(--ink);}

  .subtabs{display:flex;gap:8px;margin:12px 0 18px;flex-wrap:wrap;}
  .subtab{
    font-family:'Inter',sans-serif;font-weight:600;font-size:12.5px;
    padding:7px 15px;border-radius:20px;cursor:pointer;
    border:1.5px solid var(--rule);background:var(--white);color:var(--ink-soft);
  }
  .subtab.active{background:var(--ink);color:var(--white);border-color:var(--ink);}
  .subtab:hover:not(.active){border-color:var(--ink);color:var(--ink);}

  @media (max-width: 760px){
    .app-body{flex-direction:column;}
    .tabs{
      flex-direction:row;width:100%;overflow-x:auto;
      border-right:none;border-bottom:1.5px solid var(--rule);
      position:static;gap:2px;margin:14px 0 18px;
    }
    .tab{
      border-right:none;border-bottom:3px solid transparent;
      border-radius:6px 6px 0 0;white-space:nowrap;
      margin-right:0;margin-bottom:-1.5px;
    }
    .tab.active{border-right-color:transparent;border-bottom-color:var(--margin);}
  }

  /* Cards / notebook rule */
  .card{
    background:var(--white);
    border:1px solid var(--rule);
    border-left:3px solid var(--margin);
    border-radius:10px;
    padding:20px 22px;
    margin-bottom:20px;
    box-shadow:0 1px 2px rgba(31,58,95,0.04), 0 2px 8px rgba(31,58,95,0.045);
  }
  .card h2{
    font-family:'Lora',serif;font-size:17px;margin:0 0 4px;font-weight:700;
  }

  @keyframes panelIn{
    from{ opacity:0; transform:translateY(-4px); }
    to{ opacity:1; transform:translateY(0); }
  }
  .panel-body{ animation:panelIn 0.16s ease; }
  .card .hint{font-size:12.5px;color:var(--ink-soft);margin:0 0 14px;line-height:1.5;}

  textarea{
    width:100%;min-height:110px;font-family:'Inter',monospace;font-size:13px;
    border:1.5px solid var(--rule);border-radius:8px;padding:12px;
    background:repeating-linear-gradient(var(--white),var(--white) 27px, var(--paper-2) 28px);
    line-height:28px;resize:vertical;color:var(--ink);
  }
  input[type=text], input[type=number], input[type=date], select.plain{
    font-family:'Inter',sans-serif;font-size:13px;padding:8px 10px;
    border:1.5px solid var(--rule);border-radius:7px;color:var(--ink);
    background:var(--white);
  }
  input[type=number]{width:64px;text-align:center;font-variant-numeric:tabular-nums;}
  label.field{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:var(--ink-soft);}

  .row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;}

  button.btn{
    font-family:'Inter',sans-serif;font-weight:700;font-size:13px;
    padding:9px 16px;border-radius:8px;border:1.5px solid var(--ink);
    background:var(--ink);color:var(--white);cursor:pointer;
    display:inline-flex;align-items:center;
  }
  button.btn:hover{opacity:0.88;}
  button.btn.ghost{background:transparent;color:var(--ink);}
  button.btn.accent{background:var(--accent);border-color:var(--accent);}
  button.btn.danger{background:var(--danger);border-color:var(--danger);}
  button.btn.small{padding:5px 10px;font-size:12px;border-radius:6px;}

  table{width:100%;border-collapse:collapse;font-size:13px;}
  th{
    text-align:left;font-family:'Inter',sans-serif;font-size:11px;font-weight:700;
    text-transform:uppercase;letter-spacing:0.04em;color:var(--ink-soft);
    padding:8px 10px;border-bottom:2px solid var(--ink);position:sticky;top:0;background:var(--white);
  }
  td{padding:8px 10px;border-bottom:1px solid var(--rule);vertical-align:middle;}
  tr:hover td{background:var(--paper-2);}
  .num-cell{text-align:center;font-variant-numeric:tabular-nums;}

  .badge{
    display:inline-block;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:700;
  }
  .badge.ok{background:var(--accent-soft);color:var(--accent);}
  .badge.low{background:var(--danger-soft);color:var(--danger);}

  .stamp{
    display:inline-flex;align-items:center;justify-content:center;
    width:30px;height:30px;border-radius:50%;border:2px solid;
    font-size:11px;font-weight:800;transform:rotate(-6deg);flex-shrink:0;
  }
  .stamp.ok{border-color:var(--accent);color:var(--accent);}
  .stamp.low{border-color:var(--danger);color:var(--danger);}

  .empty{
    text-align:center;padding:36px 20px;color:var(--ink-soft);font-size:13.5px;
  }
  .empty b{color:var(--ink);}

  .toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:12px;flex-wrap:wrap;}
  .search{
    padding:8px 12px;border-radius:8px;border:1.5px solid var(--rule);font-size:13px;min-width:200px;
  }
  .pill{
    font-size:11.5px;font-weight:700;color:var(--ink-soft);background:var(--paper-2);
    padding:4px 10px;border-radius:20px;
  }
  .grid-stats{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:18px;}
  .stat{
    background:var(--white);border:1px solid var(--rule);border-radius:10px;
    padding:14px 18px;min-width:150px;box-shadow:var(--shadow);
  }
  .stat .n{font-family:'Lora',serif;font-size:24px;font-weight:700;color:var(--ink);}
  .stat .l{font-size:11.5px;color:var(--ink-soft);font-weight:600;margin-top:2px;}

  .att-toggle{
    display:inline-flex;border-radius:7px;overflow:hidden;border:1.5px solid var(--rule);
  }
  .att-toggle button{
    border:none;padding:6px 12px;font-size:12px;font-weight:700;cursor:pointer;background:var(--white);color:var(--ink-soft);
  }
  .att-toggle button.on-p{background:var(--accent-soft);color:var(--accent);}
  .att-toggle button.on-f{background:var(--danger-soft);color:var(--danger);}
  .att-toggle button.on-atraso{background:#FDF1DA;color:#946200;}

  .col-chip{
    display:inline-flex;align-items:center;gap:6px;background:var(--paper-2);
    padding:4px 4px 4px 10px;border-radius:20px;font-size:12px;font-weight:600;margin:2px 4px 2px 0;
  }
  .col-chip button{border:none;background:var(--danger);color:white;width:18px;height:18px;border-radius:50%;cursor:pointer;font-size:11px;line-height:1;}

  textarea.obs{
    width:100%;min-height:44px;font-family:'Inter',sans-serif;font-size:12.5px;
    border:1px solid var(--rule);border-radius:6px;padding:6px 8px;background:var(--paper-2);
  }
  .footer-note{font-size:11.5px;color:var(--ink-soft);text-align:center;margin-top:30px;line-height:1.6;}
  .save-flag{font-size:11px;color:var(--accent);font-weight:700;}
