:root{color-scheme:dark;--bg:#09151d;--panel:#142530;--panel-2:#1a2c37;--stroke:#2a4049;--muted:#879ea5;--text:#f1f5f3;--mint:#b8efca;--mint-deep:#24694d;--red:#f1a0a4;--shade:#0b1d26}
*{box-sizing:border-box}html{min-height:100%;background:var(--bg)}body{margin:0;background:radial-gradient(ellipse at 94% -15%,#24443c 0%,transparent 42%),var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;-webkit-font-smoothing:antialiased;font-size:14px;min-height:100vh}
[hidden]{display:none!important}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #a4f0cc;outline-offset:3px}
.shell{width:min(100%,560px);margin:0 auto;padding:calc(22px + env(safe-area-inset-top)) 20px calc(36px + env(safe-area-inset-bottom));min-height:100vh}
.header{display:flex;align-items:center;justify-content:space-between;margin-bottom:44px;gap:20px}.brand{display:flex;align-items:center;gap:12px}.brand-icon{position:relative;display:grid;place-items:center;background:var(--mint);color:#0d3324;width:44px;height:44px;border-radius:16px;font-size:28px;font-weight:850;line-height:1}.brand-star{position:absolute;font-size:11px;right:8px;top:6px;color:#3c8d62}.brand-title{font-size:16px;font-weight:800;letter-spacing:-.5px}.brand-caption{font-size:9px;letter-spacing:1.8px;color:#8aa9ae;margin-top:5px;font-weight:700}.header-actions{display:flex;gap:8px}.icon-button{width:42px;height:42px;border-radius:15px;background:#162a33;color:#d4e5e4;border:1px solid var(--stroke);display:grid;place-items:center}.icon-button svg{width:18px;height:18px}.icon-button:hover,.refresh-button:hover{border-color:#68b994}
.eyebrow{font-size:10px;letter-spacing:2.2px;font-weight:750;color:#8fa8af}.intro{display:flex;align-items:end;justify-content:space-between;gap:10px;margin-bottom:23px}.intro h1{font-size:36px;margin:7px 0 0;font-weight:800;letter-spacing:-1.8px}.hello-star{font-size:24px;color:#a5e6bc}.refresh-button{height:40px;border:1px solid var(--stroke);background:#172932;color:#dcece7;padding:0 12px;border-radius:13px;display:flex;align-items:center;gap:8px;font-size:12px;font-weight:720;white-space:nowrap}.refresh-button svg{height:17px;width:17px}.refresh-button.is-loading svg{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.hero{background:linear-gradient(127deg,#cff2d3,#94debd);border-radius:29px;color:#103527;position:relative;overflow:hidden;box-shadow:0 17px 45px #0003}.hero-inner{padding:27px 24px 23px;position:relative;z-index:1}.hero-art{pointer-events:none;position:absolute;inset:0}.hero-art div{position:absolute;border-radius:50%;border:1px solid #467e6e30;width:240px;height:240px;right:-140px;top:-100px}.hero-art div:nth-child(2){width:365px;height:365px;right:-205px;top:-165px;border-width:30px;border-color:#ffffff10}.hero-label{color:#3c6e53;font-size:14px;display:flex;gap:9px;align-items:center}.hero-label span{font-size:17px}.hero-total{font-weight:830;font-size:clamp(32px,9vw,49px);letter-spacing:-2.8px;margin:13px 0 25px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}.hero-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px}.sync-status{font-size:11px;color:#2f684b;display:flex;gap:7px;align-items:center;min-width:0}.sync-status span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-dot{width:7px;height:7px;background:#2f8a61;border-radius:50%;flex:none}.hero-chip{border-radius:30px;background:#35674920;padding:9px 12px;font-size:11px;font-weight:750;white-space:nowrap}.total-note{color:#68838a;font-size:10.5px;line-height:1.5;margin:10px 5px 0}
.block-section{margin-top:36px}.section-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:15px;gap:12px}.section-head h2{font-size:22px;margin:6px 0 0;letter-spacing:-.7px}.head-caption{color:var(--muted);font-size:11px;white-space:nowrap;margin-bottom:3px}
.banks{display:grid;gap:12px}.bank-card{padding:17px 16px;background:linear-gradient(145deg,#182b36,#14262f);border:1px solid #29404b;border-radius:22px}.bank-row{display:flex;align-items:center;gap:12px}.bank-icon{display:grid;place-items:center;flex:none;width:47px;height:47px;border-radius:15px;font-size:16px;font-weight:850;letter-spacing:-1px}.bank-icon.bred{background:#f8e1e3;color:#a73a46}.bank-icon.bourso{background:#efe6fc;color:#764cb2}.bank-icon.sg{background:#f5e2e2;color:#af4044;font-size:14px}.bank-main{min-width:0;flex:1}.bank-title{font-size:15px;font-weight:780;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.bank-meta{font-size:11px;color:var(--muted);margin-top:5px}.bank-right{text-align:right;flex:none}.bank-amount{font-size:19px;font-weight:800;letter-spacing:-.6px;white-space:nowrap;font-variant-numeric:tabular-nums}.bank-status{font-size:10px;color:#a3bba9;margin-top:6px}.bank-status.offline{color:#acbec0}.bank-status.warning{color:#f3c68d}.bank-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin:15px 0 0}.connect-button,.disconnect-button,.tiny-button{border-radius:11px;padding:9px 12px;background:transparent;border:1px solid #416358;color:#c6efda;font-size:11px;font-weight:780}.connect-button{background:#baf0cb;color:#143329;border-color:#baf0cb}.disconnect-button{border-color:#3a4f59;color:#9eafb1}.connect-button:hover{filter:brightness(1.05)}.bank-details{margin-top:15px;border-top:1px solid #30434b;padding-top:8px}.bank-details summary{cursor:pointer;font-size:12px;color:#bad4d1;padding:7px 2px;list-style:none;display:flex;justify-content:space-between;align-items:center}.bank-details summary::-webkit-details-marker{display:none}.bank-details summary:after{content:'⌄';font-size:20px}.bank-details[open] summary:after{content:'⌃'}.account-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 1px;border-top:1px solid #2a3e45}.account-row:first-of-type{border-top:0}.account-name{font-size:12px;font-weight:730}.account-purpose{font-size:11px;color:var(--muted);margin-top:4px}.account-amount{font-size:13px;font-weight:750;text-align:right;white-space:nowrap}.account-amount small{font-size:10px;font-weight:500;color:var(--muted);display:block;margin-top:4px}.rename-button{background:none;color:#a8dfc1;border:0;text-decoration:underline;text-underline-offset:3px;padding:6px 0 0 8px;font-size:11px}
.filters{display:flex;gap:6px;margin:1px 0 14px;overflow-x:auto;padding-bottom:2px}.filter{background:#172b35;border:1px solid #2a3e49;border-radius:11px;padding:10px 13px;min-width:0;color:#99b0b6;font-size:11px;font-weight:700}.filter.is-active{color:#103d2e;background:var(--mint);border-color:var(--mint)}.tx-list{background:linear-gradient(140deg,#172a33,#13252f);border:1px solid var(--stroke);border-radius:22px;overflow:hidden}.tx{display:flex;align-items:center;gap:12px;padding:15px 15px}.tx+.tx{border-top:1px solid #2a4048}.tx-icon{width:39px;height:39px;border-radius:14px;background:#243b43;color:#bfe8d3;display:grid;place-items:center;flex:none;font-weight:780;font-size:14px}.tx-icon.plus{background:#234335;color:#a3ecc4}.tx-info{min-width:0;flex:1}.tx-label{font-weight:730;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tx-meta{color:var(--muted);font-size:10.5px;margin-top:5px}.tx-amount{font-size:13px;font-weight:750;white-space:nowrap;text-align:right;max-width:39%;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}.tx-amount.positive{color:#a5eac6}.empty{padding:29px 24px;text-align:center;color:#acc1c0;font-size:12px;line-height:1.65}.empty-mark{width:40px;height:40px;border-radius:15px;background:#284039;color:#ace5c6;display:grid;place-items:center;margin:0 auto 12px;font-size:19px}.footnote{font-size:10px;line-height:1.6;color:#65818a;margin:9px 6px}.footer{font-size:10px;color:#6b868b;text-align:center;margin-top:35px;display:grid;gap:5px}
.notice{display:flex;gap:12px;padding:13px 14px;border-radius:15px;margin:0 0 14px;line-height:1.5;font-size:11px}.notice strong{font-size:10px;letter-spacing:1px}.notice-dot{flex:none}.notice-demo{color:#f3dcad;border:1px solid #6c4e24;background:#393020}.notice-config{color:#e8c2b3;border:1px solid #794433;background:#422923}.toast{position:fixed;z-index:30;bottom:calc(24px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(calc(100% - 30px),500px);background:#e3f7e9;border:1px solid #b4e4c4;border-radius:15px;color:#163d2a;padding:14px 17px;font-size:13px;font-weight:650;box-shadow:0 15px 50px #0009;line-height:1.45}.toast.is-error{background:#fbe5df;color:#682d27;border-color:#eeb4a9}
.login{max-width:370px;margin:48px auto 0}.login-icon{font-size:30px;color:#bceeca;background:#173b31;border-radius:23px;width:76px;height:76px;display:grid;place-items:center;margin-bottom:32px}.login h1{font-size:37px;letter-spacing:-1.7px;line-height:1.13;margin:9px 0 14px}.login p{color:#9bb4b7;font-size:14px;line-height:1.6;margin:0 0 28px}.login label,dialog label{display:block;font-size:12px;color:#b5c8c8;font-weight:700;margin-bottom:10px}.login input,dialog input{width:100%;height:51px;background:#10222b;border:1px solid #35515b;border-radius:13px;color:white;padding:0 16px;outline:none}.login input:focus,dialog input:focus{border-color:#a3edc0}.primary-button{height:47px;display:flex;align-items:center;justify-content:center;gap:12px;background:#bcefcf;color:#123e2f;border:0;border-radius:13px;padding:0 18px;font-size:13px;font-weight:800}.login .primary-button{width:100%;margin-top:15px}.login-foot{color:#7e969c;font-size:11px;line-height:1.6;margin-top:25px}
dialog{max-width:min(calc(100% - 35px),400px);width:100%;padding:24px;background:#162a34;color:white;border:1px solid #3b535b;border-radius:24px;box-shadow:0 30px 90px #000b}dialog::backdrop{background:#030c14c9;backdrop-filter:blur(5px)}dialog h3{font-size:20px;margin:0 0 7px}dialog p{color:#8ca5aa;margin:0 0 23px;font-size:12px;line-height:1.6}.dialog-actions{display:flex;gap:10px;margin-top:20px}.dialog-actions button{flex:1}.secondary-button{background:#223942;border:1px solid #385159;color:#d6e4e1;border-radius:13px;font-size:13px;font-weight:750}
.loading-block{background:#182b36;border:1px solid #2b444c;padding:24px;text-align:center;border-radius:19px;font-size:12px;color:#96b3b6}
@media (min-width:700px){.shell{padding-top:45px}.intro h1{font-size:40px}.hero-inner{padding:32px}.hero-total{font-size:49px}}
@media (max-width:390px){.shell{padding-left:14px;padding-right:14px}.bank-card{padding:14px 12px}.bank-amount{font-size:16px}.tx{padding:13px 12px;gap:9px}.tx-amount{font-size:11.5px}.hero-inner{padding:25px 18px}.hero-total{font-size:36px}}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

.footer a{color:#8facae;text-decoration:underline;text-underline-offset:2px}

.legal-shell{max-width:650px;line-height:1.7}.legal-shell h1{font-size:30px;letter-spacing:-1px}.legal-shell h2{margin-top:25px;font-size:18px}.legal-shell p{color:#a7baba}.legal-shell .legal-link{color:#b8efca}

/* V3: comptes courants, épargne et crédit BRED */
.hero-breakdown{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 22px}
.breakdown-cell{border:1px solid #4e977543;background:#ffffff29;border-radius:17px;padding:12px 13px;min-width:0}
.breakdown-cell span{display:block;color:#376c51;font-size:11px;font-weight:600;margin-bottom:7px}
.breakdown-cell strong{font-size:clamp(14px,4.4vw,19px);letter-spacing:-.6px;font-weight:840;white-space:nowrap;font-variant-numeric:tabular-nums}
.loan-inline{margin-top:13px;border-top:1px solid #314a52;padding:15px 1px 1px;display:flex;align-items:center;gap:10px}
.loan-symbol{flex:none;display:grid;place-items:center;width:35px;height:35px;background:#42352c;color:#f4cba1;border-radius:11px;font-size:19px}
.loan-info{min-width:0;flex:1;display:grid;gap:5px}
.loan-info strong{font-size:12px;color:#f2eee9}
.loan-info span{font-size:10px;color:#bda58b;line-height:1.35}
.loan-right{display:grid;justify-items:end;gap:5px}
.loan-right strong{font-size:15px;font-weight:800;white-space:nowrap;color:#f1d1b0}
.account-controls{display:flex;gap:8px}.account-controls .rename-button{padding-left:0}
dialog select{display:block;width:100%;height:48px;padding:0 10px;border:1px solid #35515b;border-radius:13px;background:#10222b;color:#fff;font-size:14px}
@media (max-width:390px){.breakdown-cell{padding:10px}.breakdown-cell strong{font-size:14px}.loan-right strong{font-size:13px}}

.hero-other{font-size:11px;color:#35684d;margin:-7px 0 17px}
