:root{
  --bg:#f5f7fb; --panel:#ffffff; --ink:#192132; --muted:#6e7788; --line:#e4e8f0;
  --accent:#315bff; --accent-soft:#edf1ff; --good:#17885b; --good-soft:#e8f7f0;
  --warn:#b76a00; --warn-soft:#fff3df; --bad:#b43b4d; --bad-soft:#fdecef;
  --sidebar:#11182a; --sidebar-ink:#eaf0ff; --shadow:0 10px 28px rgba(24,34,58,.08);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}
button,input,select{font:inherit}.app-shell{display:grid;grid-template-columns:245px 1fr;min-height:100vh}
.sidebar{background:var(--sidebar);color:var(--sidebar-ink);padding:24px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.brand{display:flex;align-items:center;gap:12px;padding:0 8px 24px}.brand-mark{width:40px;height:40px;border-radius:12px;background:#fff;color:#11182a;display:grid;place-items:center;font-weight:800}.brand span{display:block;color:#91a0bf;font-size:12px;margin-top:2px}
nav{display:flex;flex-direction:column;gap:6px}.nav-item{border:0;background:transparent;color:#aeb9cf;text-align:left;padding:11px 13px;border-radius:10px;cursor:pointer}.nav-item:hover,.nav-item.active{background:#1c2741;color:#fff}.sidebar-footer{margin-top:auto;color:#8f9bb4;font-size:12px;padding:12px}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#4ed395;margin-right:7px}
.main{min-width:0}.topbar{height:92px;background:rgba(255,255,255,.86);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 32px;position:sticky;top:0;z-index:10}.topbar h1{font-size:25px;margin:3px 0}.eyebrow{margin:0;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.user-switcher{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:13px}.user-switcher select{border:1px solid var(--line);background:#fff;border-radius:10px;padding:9px 11px;color:var(--ink)}
.content{padding:28px 32px 48px}.grid{display:grid;gap:18px}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:20px}.card h3{margin:0 0 6px;font-size:15px}.card p{color:var(--muted)}.metric{font-size:28px;font-weight:760;letter-spacing:-.03em;margin:8px 0}.metric-sm{font-size:21px;font-weight:720}.subtle{color:var(--muted);font-size:13px}.kicker{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}
.tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:18px}.tab{border:0;background:transparent;color:var(--muted);padding:11px 14px;margin-bottom:-1px;border-bottom:2px solid transparent;cursor:pointer;font-weight:650}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}
.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 16px}.toolbar-left,.toolbar-right{display:flex;align-items:center;gap:10px}.toolbar label{font-size:13px;color:var(--muted)}.select,.input{border:1px solid var(--line);background:#fff;padding:9px 11px;border-radius:10px;color:var(--ink)}
.table-wrap{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:auto;box-shadow:var(--shadow)}table{border-collapse:separate;border-spacing:0;min-width:100%;font-size:12.5px}th,td{padding:8px 10px;border-right:1px solid #edf0f5;border-bottom:1px solid #edf0f5;white-space:nowrap;text-align:right}th:first-child,td:first-child{text-align:left;position:sticky;left:0;background:#fff;z-index:1}tr:first-child td{font-weight:750;background:#f5f7fb}tr.section td{font-weight:750;background:#f5f7fb;color:#202a3d}tr.total td{font-weight:750;background:#f8fafc}td.negative{color:var(--bad);font-weight:650}td.positive{color:var(--good)}
.progress{height:8px;background:#edf0f5;border-radius:999px;overflow:hidden;margin:12px 0 8px}.progress > span{display:block;height:100%;background:var(--accent);border-radius:999px}.saving-card{display:flex;flex-direction:column;min-height:205px}.saving-card .row{display:flex;justify-content:space-between;align-items:center;gap:8px}.saving-card .owner{font-size:12px;color:var(--muted)}.goal-label{font-size:13px;font-weight:650}.transfer-box{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:14px;border-top:1px solid var(--line)}.btn{border:0;border-radius:10px;padding:9px 12px;cursor:pointer;font-weight:650}.btn-primary{background:var(--accent);color:#fff}.btn-secondary{background:var(--accent-soft);color:var(--accent)}.btn-ghost{background:#f2f4f8;color:#465166}.btn-danger{background:var(--bad-soft);color:var(--bad)}
.notice{border-radius:13px;padding:14px 16px;background:var(--accent-soft);color:#314780;border:1px solid #dce3ff;font-size:13px}.notice.warn{background:var(--warn-soft);border-color:#f1ddba;color:#7b4f0e}.section-title{display:flex;justify-content:space-between;align-items:end;margin:24px 0 12px}.section-title h2{margin:0;font-size:18px}.section-title p{margin:4px 0 0;color:var(--muted);font-size:13px}
.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12px;color:var(--muted);font-weight:650}.field input,.field select{border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff}.result-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}.result-box{background:#f7f9fc;border:1px solid var(--line);border-radius:12px;padding:12px}.result-box strong{display:block;font-size:17px}.result-box span{font-size:12px;color:var(--muted)}
.import-box{border:1px dashed #bfc8da;background:#fafbfe;border-radius:15px;padding:20px}.upload-row{display:grid;grid-template-columns:180px 1fr auto;gap:10px;align-items:end}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:700}.badge-pending{background:var(--warn-soft);color:var(--warn)}.badge-ok{background:var(--good-soft);color:var(--good)}.empty{padding:36px;text-align:center;color:var(--muted)}
.modal-line{display:flex;gap:8px;align-items:center}.modal-line input{width:110px}.history{font-size:12px;color:var(--muted);margin-top:8px}.history span{display:inline-block;margin-right:8px}.toast{position:fixed;right:22px;bottom:22px;background:#151c2c;color:#fff;padding:11px 14px;border-radius:10px;opacity:0;transform:translateY(8px);transition:.2s;pointer-events:none;z-index:99}.toast.show{opacity:1;transform:none}
@media(max-width:1000px){.app-shell{grid-template-columns:82px 1fr}.brand div:not(.brand-mark),.nav-item{font-size:0}.nav-item:before{font-size:11px;content:attr(data-view)}.sidebar{padding:20px 10px}.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.app-shell{display:block}.sidebar{position:static;width:100%;height:auto}.brand,.sidebar-footer{display:none}nav{flex-direction:row;overflow:auto}.nav-item{font-size:12px;white-space:nowrap}.nav-item:before{display:none}.topbar{position:static;padding:14px 18px;height:auto}.content{padding:18px}.grid-4,.grid-3,.grid-2,.result-strip,.form-grid{grid-template-columns:1fr}.upload-row{grid-template-columns:1fr}.user-switcher label{display:none}}
/* V1.2 — tableaux immobiliers : esthétique V1, lecture type Excel/Google Sheets */
.cash-table-wrap{border-radius:14px}.cash-table{min-width:1280px}.cash-table th,.cash-table td{padding:7px 9px}.cash-table th:first-child,.cash-table td:first-child{min-width:250px;max-width:340px}.cash-header th{background:#eef1f5!important;color:#293246;font-weight:750;text-align:right;border-bottom:1px solid #dfe4ec}.cash-header th:first-child{text-align:left;position:sticky;left:0;z-index:3}.cash-balance td{background:#eef1f5!important;font-weight:700;color:var(--ink)}.cash-total td{font-weight:800}.cash-spacer td{height:13px;padding:0;background:#fff}.cash-result td{background:#eef1f5!important;font-weight:750}.cash-expense td:not(:first-child),.cash-expense td.negative{color:var(--bad)}.cash-income td:not(:first-child),.cash-income td.positive{color:var(--good)}.cash-parent td{font-weight:760;background:#fafbfc}.tree-toggle{border:0;background:transparent;color:#59657a;width:22px;padding:0;cursor:pointer;font-size:13px}.tree-placeholder{display:inline-block;width:22px}.tree-level-1 td:first-child{padding-left:24px}.tree-level-2 td:first-child{padding-left:44px}.tree-level-2 td:first-child span{color:#697386}.treasury-cards{margin-bottom:18px}.toolbar-right{display:flex;gap:8px}
