@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600;700&display=swap');
:root{
  --bg:#f7f5f2; --panel:#ffffff; --ink:#1e2320; --sub:#5c645d;
  --line:#dcd8d0; --accent:#2f5d4f; --accent-soft:#e4efe9;
  --bad:#8a2f2a; --bad-soft:#f7e6e4;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#141815; --panel:#1c211d; --ink:#e8e6e0; --sub:#9aa39a;
    --line:#333b33; --accent:#7fb89e; --accent-soft:#20302a; --bad:#e08b85; --bad-soft:#3a2422;
  }
}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:system-ui,sans-serif;margin:0;}
.wrap{max-width:1080px;margin:0 auto;padding:28px 20px 80px;}
h1{font-family:'Montserrat',sans-serif;font-weight:700;font-size:1.4rem;margin:0 0 2px;}
.sub{color:var(--sub);font-size:.85rem;margin-bottom:20px;}
nav{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:22px;flex-wrap:wrap;}
nav button{background:none;border:none;padding:10px 16px;font-size:.85rem;color:var(--sub);cursor:pointer;border-bottom:2px solid transparent;}
nav button.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600;}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:20px 22px;margin-bottom:18px;overflow-x:auto;}
.panel h2{font-size:.85rem;font-weight:600;margin:0 0 14px;}
.tab{display:none;} .tab.active{display:block;}
label{display:block;font-size:.78rem;color:var(--sub);margin:10px 0 3px;}
input,select,textarea{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:4px;color:var(--ink);font-size:.85rem;padding:7px 8px;font-family:inherit;}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 16px;}
@media(max-width:640px){.grid2,.grid3{grid-template-columns:1fr;}}
button.primary{margin-top:16px;background:var(--accent);color:var(--panel);border:none;border-radius:4px;padding:9px 16px;font-size:.85rem;cursor:pointer;}
button.ghost{background:none;border:1px solid var(--line);color:var(--sub);border-radius:4px;padding:5px 10px;font-size:.75rem;cursor:pointer;}
button.danger{color:var(--bad);border-color:var(--bad-soft);}
table{border-collapse:collapse;width:100%;font-size:.82rem;min-width:600px;}
th,td{padding:6px 8px;text-align:right;border-bottom:1px solid var(--line);white-space:nowrap;}
th:first-child,td:first-child{text-align:left;}
th{color:var(--sub);font-weight:500;font-size:.72rem;}
th.sortable-th{cursor:pointer;user-select:none;}
th.sortable-th:hover{color:var(--accent);}
.sort-arrow{font-size:.65rem;}
.badge{display:inline-block;background:var(--accent-soft);color:var(--accent);font-size:.68rem;padding:2px 7px;border-radius:3px;margin-left:6px;}
.badge.vide{background:var(--bad-soft);color:var(--bad);}
.row-total td{border-top:2px solid var(--line);font-weight:600;}
.hint{font-size:.78rem;color:var(--sub);margin-top:12px;line-height:1.5;}
.error{font-size:.8rem;color:var(--bad);margin-top:8px;}
.ok{font-size:.8rem;color:var(--accent);margin-top:8px;}
#recapContent{font-size:.9rem;line-height:1.7;}
#recapContent h3{font-family:Georgia,serif;font-size:1.15rem;margin:0 0 4px;}
.rline{display:flex;justify-content:space-between;border-bottom:1px dotted var(--line);padding:3px 0;}
.rtotal{display:flex;justify-content:space-between;font-weight:700;border-top:2px solid var(--line);padding-top:6px;margin-top:6px;}
.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;}
.topbar .who{font-size:.8rem;color:var(--sub);}
.topbar a, .topbar button.link{color:var(--sub);font-size:.8rem;background:none;border:none;cursor:pointer;text-decoration:underline;padding:0;}
.card{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:18px 20px;margin-bottom:14px;}
@media print{
  body *{visibility:hidden;}
  #recapPanel, #recapPanel *{visibility:visible;}
  #recapPanel{position:absolute;top:0;left:0;width:100%;border:none;}
  .no-print{display:none;}
}
