:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:#18352f;background:#f5f7f3;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}button,input,select{font:inherit}button{background:#176b55;color:#fff;border:1px solid #176b55;border-radius:10px;padding:10px 15px;font-weight:650;cursor:pointer;white-space:nowrap}button:hover{background:#10523f}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #e2ae58;outline-offset:2px}button.outline{background:#fff;color:#235143;border-color:#c5d9cd}button.outline:hover{background:#ebf4ed}button.text-button{background:transparent;border:0;color:#176b55;padding:8px}button.close{border:0;background:#edf4ee;color:#284c40;font-size:25px;padding:1px 10px}.top{background:#133d35;color:#fff;display:flex;justify-content:space-between;align-items:center;padding:17px max(24px,calc((100vw - 1210px)/2));gap:20px}.brand{display:flex;align-items:center;gap:13px}.mark{display:grid;place-items:center;border:1px solid #a9d1bb;border-radius:11px;width:38px;height:38px;font:bold 23px Georgia,serif;color:#f5ce79}.brand strong{display:block;font:700 18px Georgia,serif}.brand small{display:block;color:#bdcec4;font-size:11px;margin-top:3px}.top-right{display:flex;align-items:center;gap:16px}.private{font-size:12px;color:#c9e2d2}.avatar{background:#e5c274;color:#294332;border-radius:50%;width:32px;height:32px;display:grid;place-items:center;font-size:11px;font-weight:800}main{max-width:1210px;margin:auto;padding:36px 24px 55px}.intro{display:flex;justify-content:space-between;align-items:flex-end;gap:20px}.eyebrow{font-weight:800;letter-spacing:.14em;color:#4f886f;font-size:11px}.intro h1{font:500 clamp(30px,3.4vw,45px) Georgia,serif;letter-spacing:-.035em;margin:11px 0;color:#173a31}.intro p{margin:0;color:#60776a}.mode{display:flex;align-items:center;gap:12px;white-space:nowrap}.mode span{font-size:12px;font-weight:700;color:#8b6225}.notice{margin:26px 0 17px;padding:13px 17px;border-radius:10px;font-size:13px}.notice.demo{background:#fff4db;color:#705011;border:1px solid #f1db9f}.notice.real{background:#e8f3eb;color:#285744;border:1px solid #c8e2cf}.toast{position:sticky;top:10px;z-index:5;display:none;padding:13px 17px;border-radius:9px;box-shadow:0 6px 25px #0b2c2033;background:#123e32;color:#fff;margin:10px 0}.toast.show{display:block}.toast.error{background:#923f37}.tabs{border-bottom:1px solid #d9e3d9;display:flex;gap:32px;margin:22px 0 34px;overflow:auto}.tabs a{color:#61786d;text-decoration:none;padding:12px 2px;font-weight:650;font-size:13px;white-space:nowrap}.tabs a:hover{color:#126448;border-bottom:2px solid #126448}section{scroll-margin-top:20px;margin-bottom:43px}.section-title{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:0 0 18px}.section-title h2{font:500 28px Georgia,serif;margin:5px 0 0}.yearpicker{display:flex;gap:10px;align-items:center}.yearpicker label{font-size:13px;color:#5b7064;font-weight:700}select,input{border:1px solid #c8d7cc;background:#fff;border-radius:9px;color:#204137;padding:10px;min-width:0}select{cursor:pointer}.yearpicker select{min-width:105px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.metric{border:1px solid #dce7dc;border-radius:13px;background:#fff;padding:19px;min-height:140px;box-shadow:0 2px 4px #35513a08}.metric span{font-size:12px;font-weight:700;color:#62756b}.metric strong{font:500 clamp(19px,2vw,26px) Georgia,serif;display:block;margin:23px 0 7px;white-space:nowrap}.metric small{color:#798c7e;font-size:11px;line-height:1.35;display:block}.metric.dark{background:#184a3d;color:#fff;border-color:#184a3d}.metric.dark span,.metric.dark small{color:#c0d9ca}.alert-row{display:flex;align-items:center;gap:25px;background:#eaf2ec;border:1px solid #d6e5d9;padding:16px 20px;border-radius:12px;margin:16px 0}.alert-row div{display:flex;align-items:center;gap:10px}.alert-row strong{font:500 25px Georgia,serif;color:#a26027}.alert-row span{font-size:12px;max-width:155px;line-height:1.3}.alert-row p{margin:0 0 0 auto;max-width:390px;font-size:12px;color:#61766a}.inline-actions{display:flex;gap:8px;flex-wrap:wrap}.panel{background:#fff;border:1px solid #dce7dc;border-radius:14px;padding:20px 22px;box-shadow:0 2px 4px #35513a08}.panel h3{font:500 21px Georgia,serif;margin:0}.panel p{color:#6c8072;font-size:12px;margin:6px 0 0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:15px}.search{font-size:11px;color:#688075;display:flex;align-items:center;gap:9px}.search input{width:220px;padding:8px 10px}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;min-width:750px}th,td{text-align:left;padding:12px 9px;border-bottom:1px solid #edf0ea;vertical-align:middle}th{font-size:11px;color:#73877a;font-weight:750;white-space:nowrap}td{font-size:13px}td strong{display:block}td small{color:#87968b;font-size:11px}.amount{font-variant-numeric:tabular-nums;white-space:nowrap}.pill{display:inline-block;border-radius:99px;padding:5px 8px;background:#e4f2e9;color:#24714b;font-size:11px;font-weight:750;white-space:nowrap}.pill.warn{background:#fff0d9;color:#995c1b}.pill.critical{background:#fae7df;color:#a13e31}.pill.neutral{background:#eef1ef;color:#65776b}.empty{padding:28px;text-align:center!important;color:#899b8e!important}.hidden{display:none!important}.history,.detail{margin-top:14px}.detail h3{display:flex;justify-content:space-between}.detail-meta{display:flex;gap:24px;flex-wrap:wrap;margin:13px 0 17px;color:#607467;font-size:12px}.detail-meta b{color:#244d3d}.month-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:6px}.month{border:1px solid #e5ebe3;border-radius:8px;padding:8px 5px;text-align:center;background:#f8faf7;min-height:69px}.month b{display:block;color:#657c6e;font-size:11px}.month span{font-size:11px;display:block;margin-top:8px;white-space:nowrap}.month.paid{background:#eaf6ed;border-color:#c5e4cd}.month.late{background:#fff2e0;border-color:#f3d6a7}.month.future{opacity:.6}.report-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:14px;margin-bottom:14px}.bilan-state{margin:11px 0 16px!important;font-weight:700!important}.line{display:flex;justify-content:space-between;gap:15px;padding:10px 0;border-bottom:1px solid #eaf0e9;font-size:13px}.line strong{white-space:nowrap}.form-inline{border-top:1px solid #e5ece5;margin-top:17px;padding:16px 0 10px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.form-inline label{font-size:12px;font-weight:700}.form-inline input{width:160px}.panel>small{font-size:11px;color:#829186;line-height:1.5;display:block}.rules ul{padding-left:20px;margin:15px 0;line-height:1.6;color:#3e5849;font-size:13px}.rules li{margin:7px 0}.rule-note{background:#f7f4e9;padding:12px;border-radius:9px;line-height:1.5!important;color:#6b6247!important}.individual{margin-top:13px}.individual .month-grid{margin-top:12px}footer{display:flex;justify-content:space-between;gap:20px;color:#819186;font-size:11px;padding-top:22px;border-top:1px solid #dce6dc}dialog{border:0;padding:0;border-radius:16px;width:min(620px,calc(100vw - 30px));box-shadow:0 20px 80px #1b2d2855;color:#25443a}dialog::backdrop{background:#17332988}.dialog-body{padding:24px}.dialog-head,.dialog-foot{display:flex;justify-content:space-between;align-items:start;gap:15px}.dialog-head h2{font:500 28px Georgia,serif;margin:6px 0 23px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-grid label{font-size:12px;font-weight:700;color:#506a5d;display:grid;gap:6px}.form-grid .wide{grid-column:span 2}.form-grid input,.form-grid select{width:100%}.optional{font-weight:400;color:#829389}.dialog-foot{align-items:center;margin-top:25px;border-top:1px solid #e9efe8;padding-top:18px}.dialog-foot span{font-size:11px;color:#778d7d;line-height:1.4}.error-text{color:#ab4935}.muted{color:#809086}.voided{opacity:.55;text-decoration:line-through}@media(max-width:950px){.metrics{grid-template-columns:repeat(2,1fr)}.month-grid{grid-template-columns:repeat(6,1fr)}.alert-row{flex-wrap:wrap}.alert-row p{margin:0}}@media(max-width:680px){main{padding:25px 14px}.top{padding:15px}.brand small{max-width:210px;line-height:1.3}.private{display:none}.intro{display:block}.intro h1{font-size:32px}.mode{justify-content:space-between;margin-top:20px}.section-title{align-items:start;flex-wrap:wrap}.section-title h2{font-size:25px}.metrics{gap:8px}.metric{padding:14px;min-height:128px}.metric strong{font-size:18px;white-space:normal}.metric small{font-size:10px}.panel{padding:16px 13px}.search{width:100%;justify-content:space-between}.search input{width:60%}.panel-head{flex-wrap:wrap}.report-grid{grid-template-columns:1fr}.month-grid{grid-template-columns:repeat(4,1fr)}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:1}.dialog-foot{flex-direction:column;align-items:stretch}footer{flex-direction:column}}@media print{.top,.mode,.notice,.tabs,.inline-actions,.search,.history,.form-inline,#accountDialog,#entryDialog,.text-button,footer{display:none!important}body{background:#fff}main{padding:0}.panel{box-shadow:none;break-inside:avoid}section{margin-bottom:16px}.report-grid{grid-template-columns:1fr 1fr}}
.member-only{display:none}.member-view .manager-only{display:none!important}.member-view .member-only{display:block}.member-panel{max-width:720px;margin:2rem auto;padding:2rem;background:white;border:1px solid #d6e5df;border-radius:18px}.member-panel h2{margin-top:0}.member-panel form{display:grid;gap:1rem}.member-panel label{display:grid;gap:.4rem}.member-panel input,.member-panel select{padding:.8rem;border:1px solid #a8bdb5;border-radius:8px;font:inherit}.member-panel button{justify-self:start}.access-grid{display:grid;gap:.8rem;max-width:720px}.access-grid input,.access-grid select{padding:.7rem;font:inherit}

.loading-view .manager-only,.loading-view .member-only,.loading-view #accessPanel{display:none!important}.notice.error{background:#fff0ed;color:#7d2e29;border:1px solid #e8aaa4}.notice.error button{margin-left:1rem}
.backup-box,.audit-box,.device-list{border-top:1px solid #e5eee7;margin-top:22px;padding-top:18px}.device-list p,.audit-box p{border-bottom:1px solid #edf1eb;padding:9px 0;margin:0;color:#496356;font-size:12px}.device-list small{display:block;color:#819186;font-size:11px;margin-top:3px}.backup-box table{min-width:620px}.backup-box a{text-decoration:none}.error-text{color:#a53d32}
.revenue-panel{margin:16px 0 0;border-color:#cfe3d5}.revenue-total{font:500 25px Georgia,serif;color:#176b55}.revenue-lines{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.revenue-lines div{display:flex;justify-content:space-between;border-top:1px solid #e5eee7;padding-top:12px;color:#607467;font-size:13px}.revenue-lines strong{color:#244d3d}@media(max-width:650px){.revenue-lines{grid-template-columns:1fr}}
.auth-gate{max-width:560px;margin:clamp(28px,8vh,90px) auto;padding:0 24px}.auth-card{background:#fff;border:1px solid #dce7dc;border-radius:18px;padding:30px;box-shadow:0 16px 45px #234a3712}.auth-card h1{font:500 clamp(28px,4vw,40px) Georgia,serif;letter-spacing:-.03em;margin:10px 0 12px;color:#173a31}.auth-card h2{font:500 23px Georgia,serif;margin:0}.auth-card>p,.auth-help{color:#667b6f;font-size:13px;line-height:1.55;margin:0 0 20px}.auth-form{display:grid;gap:14px;margin-top:18px}.auth-form label{display:grid;gap:6px;color:#506a5d;font-size:12px;font-weight:750}.auth-form input{width:100%;padding:12px}.auth-secondary{width:100%;margin-top:14px}.auth-message{display:none;border-radius:9px;padding:11px 13px;margin-top:15px;font-size:13px;background:#e8f3eb;color:#285744}.auth-message.show{display:block}.auth-message.error{background:#fff0ed;color:#7d2e29;border:1px solid #e8aaa4}.auth-card .hidden{display:none!important}body:not(.authenticated) main{display:none!important}body.authenticated .auth-gate{display:none}body.authenticated main{display:block}.top-right .outline{padding:7px 11px;background:transparent;color:#fff;border-color:#91b9a5;font-size:12px}.top-right .outline:hover{background:#255a4c}.auth-card button{width:100%}
/* Keep the first-connection action inside its field on narrow screens. */
.auth-secondary{white-space:normal;line-height:1.35;min-height:48px;padding:11px 12px;text-align:center;overflow-wrap:anywhere}
.auth-biometric{margin-top:0}.top-right #setupBiometricBtn{white-space:normal;line-height:1.2;text-align:center}@media(max-width:680px){.top-right #setupBiometricBtn{max-width:150px;padding:7px 8px}}
