:root{--primary:#d9531e;--secondary:#3e6b5a;--accent:#f2c230;--neg:#b3341f;--bg:#f6f0e6;--card:#fffcf7;--border:#e3d8c6;--fg:#2a2420;--muted:#7a6e62;--display:"Fraunces", Georgia, serif;--sans:"IBM Plex Sans", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace;--radius:10px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:72px}body{background:var(--bg);color:var(--fg);font-family:var(--sans);margin:0;font-size:15px;line-height:1.5}button{cursor:pointer;font-family:inherit}.topbar{z-index:10;background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;height:56px;padding:0 28px;display:flex;position:sticky;top:0}.brand{font-family:var(--display);align-items:center;gap:10px;font-size:19px;font-weight:600;display:flex}.brand i{background:var(--primary);border-radius:2px;width:10px;height:10px;display:inline-block}.nav{gap:4px;display:flex}.nav a{color:var(--muted);border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:14px;font-weight:500;text-decoration:none;display:flex}.nav a:hover{color:var(--primary);background:var(--card)}.wrap{max-width:1320px;margin:0 auto;padding:28px 28px 80px}.hero h1{font-family:var(--display);letter-spacing:-.02em;margin:8px 0 2px;font-size:40px;font-weight:600}.hero p{color:var(--muted);margin:0 0 20px}.rule{border-top:1px solid var(--border);margin:36px 0 18px;position:relative}.rule:before{content:"";background:var(--primary);width:28px;height:3px;position:absolute;top:-1px;left:0}h2{font-family:var(--display);margin:0 0 14px;font-size:22px;font-weight:600}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.ledger{background-color:var(--card);background-image:radial-gradient(var(--border) 1px, transparent 1px);background-size:16px 16px;grid-template-columns:1.2fr repeat(3,1fr) 1.2fr auto;align-items:end;gap:14px;display:grid}.field label,.lbl{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:6px;font-size:12px;font-weight:600;display:block}.field input{width:100%;font-family:var(--mono);border:1px solid var(--border);background:var(--card);color:var(--fg);-moz-appearance:textfield;border-radius:8px;outline:none;padding:10px 12px;font-size:24px}.field input[type=date]{padding:14px 12px;font-size:18px}.field input::-webkit-outer-spin-button{-webkit-appearance:none}.field input::-webkit-inner-spin-button{-webkit-appearance:none}.field input:focus{border-color:var(--fg);box-shadow:inset 0 -3px 0 var(--accent)}.rate{border:1px solid var(--border);height:54px;font-family:var(--mono);background:var(--card);border-radius:8px;align-items:center;padding:0 12px;font-size:24px;display:flex;position:relative;overflow:hidden}.rate .fill{opacity:.55;transition:width .3s ease-out,background-color .3s;position:absolute;inset:0 auto 0 0}.rate span{position:relative}.btn{border:1px solid var(--border);background:var(--card);color:var(--fg);border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-size:14px;font-weight:500;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.btn:hover{border-color:var(--fg)}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff;height:54px;padding:0 20px;font-size:15px}.btn-primary:hover{background:#c14716;border-color:#c14716}.btn-sm{padding:5px 10px;font-size:13px}.btn-text{color:var(--muted);background:0 0;border:0;padding:4px 6px;font-size:13px}.btn-text:hover{color:var(--primary)}.btn-text.danger:hover{color:var(--neg)}.msg{margin-top:12px;font-size:14px}.msg.err{color:var(--neg)}.msg.ok{color:var(--secondary)}.kpis{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.kpi .val{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:48px;font-weight:600;line-height:1.1}.kpi .sub{color:var(--muted);font-size:13px}.up{color:var(--secondary)}.down{color:var(--neg)}.grid2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.main-grid{grid-template-columns:1fr 340px;align-items:start;gap:16px;display:grid}.chart-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.chart-head h3{font-family:var(--display);margin:0;font-size:17px;font-weight:600}.frame{aspect-ratio:16/9;background:#fffcf7;width:100%;position:relative}.frame .foot{font-family:var(--mono);color:var(--muted);font-size:10px;position:absolute;bottom:4px;right:8px}.seg{border:1px solid var(--border);border-radius:8px;display:inline-flex;overflow:hidden}.seg button{color:var(--muted);background:0 0;border:0;padding:5px 10px;font-size:13px}.seg button.on{background:var(--fg);color:var(--card)}.empty{color:var(--muted);text-align:center;justify-content:center;align-items:center;height:100%;padding:20px;display:flex}.report pre{font-family:var(--mono);white-space:pre-wrap;background:var(--bg);border:1px dashed var(--border);border-radius:8px;margin:0 0 12px;padding:14px;font-size:13px}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-bottom:1px solid var(--fg);padding:8px;font-size:12px;font-weight:600}td{border-bottom:1px solid var(--border);height:40px;padding:0 8px}td.n,th.n{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}tr:hover td{background:var(--bg)}tr.editing td{background:#fdf3d6}.row-actions{opacity:0;white-space:nowrap;text-align:right;transition:opacity .15s}tr:hover .row-actions{opacity:1}@media (hover:none){.row-actions{opacity:1}}.table-scroll{overflow-x:auto}.toolbar{flex-wrap:wrap;gap:8px;display:flex}@media (width<=1000px){.ledger{grid-template-columns:1fr 1fr}.ledger .date,.ledger .rate-cell,.ledger .save{grid-column:span 2}.main-grid,.grid2{grid-template-columns:1fr}}@media (width<=640px){.wrap{padding:16px 14px 96px}.hero h1{font-size:30px}.kpis{grid-template-columns:1fr}.kpi .val{font-size:38px}.topbar{padding:0 14px}.nav{background:var(--card);border-top:1px solid var(--border);padding:6px 4px calc(6px + env(safe-area-inset-bottom));justify-content:space-around;position:fixed;bottom:0;left:0;right:0}.nav a{flex-direction:column;gap:2px;padding:4px 6px;font-size:11px}}@media print{@page{size:A4;margin:12mm}body{background:#fff}.topbar,.nav,.no-print,#saisie,#historique,.btn,.seg{display:none!important}.wrap{max-width:none;padding:0}.card{break-inside:avoid;border-color:#ccc}.main-grid{grid-template-columns:1fr}.kpi .val{font-size:32px}}.ged-in{text-align:right;width:110px;font-family:var(--mono);border:1px solid var(--border);background:var(--card);color:var(--fg);-moz-appearance:textfield;border-radius:6px;outline:none;padding:8px 10px;font-size:16px}.ged-in::-webkit-outer-spin-button{-webkit-appearance:none}.ged-in::-webkit-inner-spin-button{-webkit-appearance:none}.ged-in:focus,.ged-name:focus{border-color:var(--fg);box-shadow:inset 0 -2px 0 var(--accent)}.ged-name{border:1px solid var(--border);background:var(--card);color:var(--fg);border-radius:8px;outline:none;flex:1;padding:12px;font-family:inherit;font-size:15px}.mailbox{border-top:1px dashed var(--border);gap:8px;margin-top:16px;padding-top:14px;display:grid}.mailbox h4{font-family:var(--display);align-items:center;gap:6px;margin:0;font-size:15px;display:flex}.mailbox .hint{color:var(--muted);margin:0;font-size:12px;line-height:1.5}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover{background:#c14716}.mail-overlay{z-index:50;background:#2a242073;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.mail-modal{background:var(--card);border-radius:12px;flex-direction:column;width:min(760px,100%);max-height:92%;display:flex;box-shadow:0 20px 60px #00000040}.mail-head{border-bottom:1px solid var(--border);justify-content:space-between;gap:12px;padding:18px 20px;display:flex}.mail-head h3{font-family:var(--display);margin:0;font-size:22px}.mail-head p{color:var(--muted);margin:4px 0 0;font-size:14px}.mail-subject{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:12px 20px;font-size:14px;display:flex}.mail-subject span{color:var(--muted)}.mail-subject .btn{margin-left:auto}.mail-preview{background:#fff;flex:1;min-height:0;padding:20px;overflow-y:auto}.mail-foot{border-top:1px solid var(--border);justify-content:flex-end;padding:14px 20px;display:flex}.btn.big{padding:12px 20px;font-size:15px}
