/* Mes Finances · design premium intégral. Styles uniquement, aucun calcul modifié. */
:root{--bg:#050c18;--surface:#0d1a2d;--surface2:#10223a;--surface3:#162e4a;--border:#243d5b;--text:#f5f9ff;--muted:#9eb1cb;--green:#42e9bb;--green2:#10483e;--pink:#ff719d;--blue:#76a4ff;--yellow:#ffc16f;--purple:#b79aff;--radius:23px;--accent:#5fe9d1}
html{background:#050b17}body{font-family:Inter,'Segoe UI',system-ui,-apple-system,sans-serif;line-height:1.48;background:radial-gradient(ellipse 520px 500px at 0 -90px,#12345a99,transparent 85%),radial-gradient(ellipse 600px 460px at 95% 1%,#211b5680,transparent 78%),#050b17;background-attachment:fixed;color:#f4f8ff;letter-spacing:-.16px}
.wrap{max-width:1280px;padding:24px 22px 115px}.head{padding:7px 0 10px;margin-bottom:10px}.brand{background:linear-gradient(135deg,#0dc6bb,#167ac2);box-shadow:0 12px 38px #07bdd44b;width:53px;height:53px;border-radius:17px;color:#f1fffe;font-size:28px}.caption{font-size:10px;color:#72e7c9;letter-spacing:2.25px}.identity h1{font-size:clamp(25px,5vw,32px);line-height:1.1;margin:5px 0 2px}.identity small{font-size:12px}.btn{font-size:13px;background:linear-gradient(135deg,#1c3452,#13223a);border:1px solid #344c68;border-radius:14px;box-shadow:inset 0 1px #ffffff0b;color:#eaf3ff;font-weight:750;transition:transform .17s ease,border-color .17s ease,filter .17s ease}.btn:active,.dockFab:active,.quickTile:active{transform:scale(.97)}.btn.primary{background:linear-gradient(110deg,#45edd0,#39a9ee);color:#061a29;box-shadow:0 9px 27px #14baaa28}.btn.ghost{background:#ffffff08;border-color:#344761}.btn.warn{background:#492337;border-color:#8a4362;color:#ffb8d0}
#cloudBanner{border:1px solid #274967;background:linear-gradient(105deg,#0c263a,#132946);border-radius:14px;color:#a8dccc;padding:11px 15px;margin:13px 0 19px;font-size:12px;box-shadow:0 5px 24px #0002}
#cloudBanner.unsaved{border-color:#ad6f41;color:#ffd39b;background:#412e24}
.nav{gap:9px;scrollbar-width:none;margin-bottom:10px;padding-bottom:5px}.nav::-webkit-scrollbar{display:none}.tab{font-size:12px;padding:11px 15px;background:linear-gradient(140deg,#14283e,#101c32);border:1px solid #29415e;border-radius:14px;color:#bbcee7;box-shadow:0 3px 12px #0001;transition:background .18s}.tab[aria-selected=true]{background:linear-gradient(120deg,#8458ec,#6145c1);color:white;border-color:#9e81f9;box-shadow:0 5px 23px #7653e538}
.filters{border:1px solid #203a56;border-radius:21px;padding:10px 12px;background:linear-gradient(115deg,#102139,#0b192a);margin-bottom:12px;gap:10px}.period{border:0;background:#050f21;padding:4px;border-radius:13px;gap:2px}.period button{border-radius:11px;color:#a1b7d1;font-size:12px;font-weight:740}.period button.on{color:#fff;background:linear-gradient(130deg,#375e8b,#4a4da3)}.monthPanel{padding:1px 0 18px;gap:8px}.monthBtn{background:#0d1c31;border:1px solid #2a405e;border-radius:12px;color:#a5b9d2;font-weight:700;padding:10px}.monthBtn.on{background:linear-gradient(130deg,#175c58,#17518d);border-color:#2dcaba;color:#e4fff8}.quickDate{border-radius:13px;background:#111f35;border-color:#304c6e}.yearCtr .btn{background:#162c48}.nowBtn{background:#0f3f3b;border-color:#246d61;color:#b8ffe9}
.grid{gap:14px}.card{background:linear-gradient(153deg,#13243c 0%,#0c192c 67%,#101c34 100%);border:1px solid #293f5d;border-radius:24px;box-shadow:inset 0 1px 0 #ffffff09,0 16px 35px #0000001b;padding:21px;min-width:0}.card h2{font-size:17px;font-weight:790;letter-spacing:-.5px}.sectionTop{margin-bottom:17px}.hero{background:linear-gradient(135deg,#0c4451 0%,#123351 55%,#272866 100%);border-color:#367487}.klabel{color:#b0c0d8;font-size:12px}.eyebrow{color:#b4dfde;font-size:12px;letter-spacing:.15px}.mega{font-size:clamp(31px,5vw,46px);font-weight:840;letter-spacing:-1.5px;line-height:1.2}.metric{font-size:clamp(21px,2.7vw,30px);font-weight:810;line-height:1.25;overflow-wrap:anywhere}.pill{border:1px solid #305070;border-radius:999px;background:#1a3650a8;padding:6px 10px;color:#d1e5ff;font-size:11px}.pill.pending{background:#564024a3;color:#ffd29e;border-color:#9d7134}.pill.ok{color:#a6ffe7;border-color:#267c6d;background:#1a534a}.advice{border-left:3px solid #66a1ff;background:#142d49;border-radius:0 12px 12px 0;color:#c8def4;line-height:1.65}.info{border-radius:13px;background:#16314a;color:#cce5fa}.empty{border-color:#3d5675;background:#0e2035a3;border-radius:17px}.emptyIcon{color:#8db2ea}
/* Navigation inférieure et bouton flottant */
.mobileDock{filter:drop-shadow(0 12px 24px #0007)}
.dockMain{background:linear-gradient(130deg,#1c3655ed,#15263fe8);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid #45617f}
.dockTab{color:#adc1dd;transition:background .18s,color .18s,transform .18s}.dockTab.active{color:#b9ffed;background:linear-gradient(140deg,#1168659b,#23687a7d);box-shadow:inset 0 1px 0 #ffffff16}.dockFab{background:linear-gradient(135deg,#46f6bf,#39bff2)!important;color:#06182d!important;box-shadow:0 8px 30px #0abcc25e;border:1px solid #a5ffee88!important}.dockFab svg{stroke-width:2.6}.moreSheet{border-radius:26px 26px 0 0;background:linear-gradient(150deg,#1a2c4a,#0b182d);border:1px solid #3e5474}.sheetItem{background:linear-gradient(135deg,#213b5b,#142841);border:1px solid #304866;border-radius:16px;color:#f4faff}.sheetItem svg{color:#91d3ff}.moreBottom{border-color:#354b68}
/* Accueil : tête de bilan avec léger motif lumineux, stats et raccourcis */
.dashboard{align-items:stretch}.dashboard .moneyHero{position:relative;overflow:hidden;isolation:isolate;min-height:229px;padding:26px;border-color:#1c90a5;background:radial-gradient(ellipse 400px 220px at 100% 100%,#4c3accaa,transparent),linear-gradient(120deg,#082b3d,#0e3e60 53%,#23255d)}
.dashboard .moneyHero:before{content:'';position:absolute;z-index:-1;inset:auto -20% -100px 25%;height:240px;background:radial-gradient(ellipse,#04d3db35,transparent 75%);transform:rotate(-12deg)}
.dashboard .moneyHero:after{content:'';position:absolute;z-index:-1;right:-46px;bottom:-76px;width:340px;height:140px;border:28px solid #35adff20;border-radius:50%;transform:rotate(-19deg)}
.dashboard .moneyHero .mega{font-size:clamp(34px,5.7vw,54px);margin:16px 0 16px;letter-spacing:-1.9px;text-shadow:0 2px 25px #0003}
.dashboard .hero .sub{color:#b9d5e2}.dashboard .moneyHero .pill{background:#06263bba;color:#c4fdf2;border-color:#4383a0}
.dashboard .resultHero{background:linear-gradient(132deg,#1c2450,#0c233d 65%,#0c3143);border-color:#3c4a83}.resultHero .metric{font-size:clamp(32px,4vw,41px);letter-spacing:-1px}.resultHero .resultBadge{display:inline-flex;align-items:center;gap:7px;border-radius:10px;background:#102e37;padding:8px 11px;color:#8bf3d2;margin-top:12px;font-size:11px}
.dashboard .statCard{padding:19px;position:relative;overflow:hidden}.dashboard .statCard:before{content:'';position:absolute;width:7px;height:7px;right:18px;top:19px;background:var(--stat,#71acff);border-radius:50%;box-shadow:0 0 0 7px color-mix(in srgb,var(--stat,#71acff),transparent 88%)}
.dashboard .statCard .metric{margin:15px 0 7px}.dashboard .statCard small{font-size:11px}.dashboard .statCard.statIncome{--stat:#41e9b7}.dashboard .statCard.statExpense{--stat:#ff729a}.dashboard .statCard.statPending{--stat:#ffc47b}.dashboard .statCard.statDebt{--stat:#ba99ff}
.dashboard .reportCard,.dashboard .categoryCard{min-height:320px}.dashboard .sectionTitle{display:flex;gap:10px;align-items:center}.dashboard .sectionTitle .tinyIcon{display:grid;place-items:center;width:31px;height:31px;border-radius:10px;background:#24416a;color:#a6bfff;font-size:17px}
.dashboard .quickPanel{background:linear-gradient(145deg,#152841,#101d34 50%,#111a35);border:1px solid #395477}
.quickGrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.quickTile{border:1px solid var(--tile-border,#395977);background:linear-gradient(140deg,var(--tile-bg,#192b4a),#111b30);border-radius:17px;color:#f0f7ff;min-width:0;min-height:97px;padding:11px 5px;display:flex;flex-direction:column;gap:8px;align-items:center;justify-content:center;text-align:center;font-weight:760;font-size:11px;line-height:1.2;box-shadow:inset 0 1px #ffffff12;transition:transform .16s,border-color .16s}.quickTile .tileGlyph{font-size:25px;display:grid;place-items:center;width:44px;height:44px;border-radius:15px;background:var(--tile-icon,#183850);box-shadow:inset 0 1px #ffffff25,0 5px 15px #0002}.quickTile:hover,.quickTile:focus-visible{border-color:#7bb7ed;transform:translateY(-2px)}
.dashboard .recentPanel .entry{margin:0}.dashboard .recentPanel .list{gap:0}.dashboard .recentPanel .entry{border:0;border-radius:0;background:transparent;border-bottom:1px solid #233a54;padding:13px 0}.dashboard .recentPanel .entry:last-child{border-bottom:0}
/* Graphiques — pleine largeur sur mobile, aucun chevauchement */
.revolutChart,.euroMonthly,.donutInteractive{min-width:0}.chartSpotlight{background:linear-gradient(130deg,#172b49,#10253d);border:1px solid #284561;border-radius:16px;padding:17px}.bigNumber{font-size:clamp(22px,3vw,33px);font-weight:850;letter-spacing:-.8px}.spotBreakdown span{white-space:normal;overflow-wrap:anywhere}.chartScroll{max-width:100%;border-radius:15px;scrollbar-width:thin;scrollbar-color:#456c83 transparent}.chartSvgTouch{height:auto}.bigDonutWrap{position:relative;margin-inline:auto}.bigDonut{width:100%;display:block;filter:drop-shadow(0 10px 17px #0002)}.ringSegment{transition:stroke-width .18s,filter .18s;cursor:pointer}.ringSegment:hover,.ringSegment:focus{filter:brightness(1.24)}.donutCenterMoney{font-size:clamp(15px,2.4vw,24px);font-weight:850;color:white}.donutCenter small{color:#b3c6df}.categoryList{min-width:0;width:100%}.categoryBreakdown{background:linear-gradient(130deg,#172b46,#102038);border:1px solid #28415e;border-radius:15px;transition:transform .12s,border-color .12s;color:var(--text);min-width:0}.categoryBreakdown.active{border-color:#80beff;background:#233c61}.catEmojiBadge{box-shadow:inset 0 1px #ffffff2b}.breakdownText{min-width:0;overflow-wrap:anywhere}
/* Comptes bancaires */
.items4{gap:11px}.bankCard{min-height:168px;background:linear-gradient(135deg,#182e49,#0d1d33);border:1px solid #294764}.bankMark{border-radius:15px;box-shadow:0 5px 18px #0004}.bankAmount{font-weight:830;letter-spacing:-.5px}.bankName{font-size:14px}.bankCard small{font-size:11px}
/* opérations / historique */
.entry{background:linear-gradient(115deg,#12243b,#0c1a2c);border:1px solid #29425f;border-radius:17px;padding:13px;gap:8px}.entry .title{font-size:13px;color:#eef6ff}.entry .meta{font-size:11px;line-height:1.55;color:#9eb3cd}.entry .val{font-size:13px;white-space:normal;overflow-wrap:anywhere}.entry .actions{gap:5px}.entry .actions .btn{font-size:11px;padding:7px 8px}
/* éditeurs, formulaires, sélecteurs */
input,textarea,select{background:#091a2d;border:1px solid #365170;border-radius:13px;color:#f7fbff;min-height:43px;font-size:14px}input:focus,textarea:focus,select:focus{border-color:#6bc9ed;box-shadow:0 0 0 3px #1d9eb62b}.field span{font-weight:700;color:#bed0e4}.modalLayer{background:#020816e8;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.modal{background:radial-gradient(circle at 100% 0,#11496291,transparent 45%),linear-gradient(150deg,#162a49,#0d192f);border:1px solid #456b97;box-shadow:0 25px 100px #0009;border-radius:27px;max-height:90dvh}.modalHeader{margin-bottom:15px}.modalHeader h2{font-size:21px}.formFoot{border-top:1px solid #2a4464;padding-top:14px;margin-top:16px}.close,.moreClose{border-radius:50%;background:#24435b;border:1px solid #446780;color:#e3f1ff}
#formFields button[data-formkind]{display:flex!important;justify-content:flex-start;min-height:62px;padding:13px 16px;border:1px solid #315273;border-radius:15px;background:linear-gradient(110deg,#193752,#142946);color:#f5faff;text-align:left;font-size:14px;font-weight:750;transition:background .15s,border-color .15s}.choiceGlyph{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:12px;margin-right:12px;flex:none;font-size:21px;background:var(--choice-bg,#1c526c);color:var(--choice-color,#6ff0df)}.choiceArrow{margin-left:auto;color:#a5bedf;font-size:20px;font-weight:400}
.categoryEditorPanel{background:radial-gradient(ellipse at 90% 0,#20366e66,transparent),#111f35;border:1px solid #46638a;box-shadow:0 25px 90px #000c}.catEditorPreview{border-color:#355676;background:#0a1c30}.emojiButton{background:#1b304c;border:1px solid #304d6c;border-radius:12px}.emojiButton.active{border-color:#5de8c3;background:#164943}.catColorButton.active{outline:2px solid #d4fcff}.emojiFree{display:flex;gap:10px;align-items:center;padding:11px;background:#10263d;border-radius:13px;border:1px solid #365372;margin:2px 0 13px}.emojiFree input{max-width:88px;text-align:center;font-size:22px;padding:6px;min-height:44px}.emojiFree label{font-size:12px;color:#bcd5e9;line-height:1.45}
#authGate{background:radial-gradient(circle at 50% 18%,#153c678a,transparent 60%),#050b17}#authPanel{background:linear-gradient(155deg,#172c4a,#0c1b30);border:1px solid #3a5e82;border-radius:27px;box-shadow:0 30px 100px #0008}#authSubmit{font-weight:850}
.foot{font-size:11px;color:#869bb5;line-height:1.6}
button:focus-visible,[tabindex]:focus-visible{outline:3px solid #79ddec;outline-offset:3px}
@media(max-width:1024px){.quickGrid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:700px){.wrap{padding:15px 13px calc(140px + env(safe-area-inset-bottom))}.head{margin-bottom:5px}.headActions #quickBackup{display:none}.headActions #addTop{font-size:12px;padding:11px 10px}.identity{gap:9px}.identity h1{font-size:26px}.caption{letter-spacing:1.5px}.card{padding:18px;border-radius:22px}.dashboard>.span6,.dashboard>.span3,.dashboard>.span4,.dashboard>.span7,.dashboard>.span8,.dashboard>.span5{grid-column:span 12}.dashboard .statsGrid{grid-column:span 12}.dashboard .moneyHero{min-height:225px;padding:22px}.dashboard .moneyHero .mega{font-size:clamp(32px,7.5vw,48px)}.dashboard .resultHero .metric{font-size:30px}.dashboard .statCard{grid-column:span 6;min-height:132px;padding:16px}.dashboard .statCard .metric{font-size:clamp(19px,4.9vw,26px)}.dashboard .statCard .klabel{font-size:11px}.dashboard .statCard small{font-size:10px}.dashboard .reportCard,.dashboard .categoryCard{grid-column:span 12;min-height:0}.dashboard .recentPanel,.dashboard .quickPanel,.dashboard .bankPanel{grid-column:span 12}.quickGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.quickTile{min-height:94px;font-size:11px}.quickTile .tileGlyph{font-size:22px;width:42px;height:42px}.items4{grid-template-columns:repeat(2,minmax(0,1fr))}.financeBreakdown{grid-column:span 12!important}.donutInteractive{width:100%;max-width:100%}.modal{padding:18px}.formGrid{grid-template-columns:1fr}.formGrid .full{grid-column:1}.categoryEditorPanel{max-height:91dvh}.mobileDock{left:10px;right:10px;bottom:calc(11px + env(safe-area-inset-bottom))}}
@media(max-width:390px){.wrap{padding-left:10px;padding-right:10px}.headActions #addTop{display:none}.quickGrid{grid-template-columns:repeat(3,minmax(0,1fr))}.quickTile{font-size:10px;padding:8px 3px}.card{padding:15px}.dashboard .statCard{padding:13px}.dashboard .statCard .metric{font-size:18px}.filters{padding:9px;gap:6px}.period button{padding:7px 9px;font-size:11px}}
@media(min-width:701px){.dashboard .moneyHero{grid-column:span 7}.dashboard .resultHero{grid-column:span 5}.dashboard .statCard{grid-column:span 3}.dashboard .reportCard{grid-column:span 7}.dashboard .categoryCard{grid-column:span 5}.dashboard .quickPanel{grid-column:span 12}.dashboard .bankPanel{grid-column:span 12}.dashboard .recentPanel{grid-column:span 12}}
@media(prefers-reduced-motion:reduce){.btn,.quickTile,.dockTab,.ringSegment{transition:none!important}}
/* La grille à 12 colonnes exige une largeur explicite pour les deux cartes principales. */
@media(max-width:700px){.dashboard>.moneyHero,.dashboard>.resultHero,.dashboard>.reportCard,.dashboard>.categoryCard,.dashboard>.quickPanel,.dashboard>.bankPanel,.dashboard>.recentPanel{grid-column:1/-1}}
/* Liste des mois scrollable sans élargir la page */
.monthPanel{width:100%;max-width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;box-sizing:border-box}
html,body{max-width:100%;overflow-x:clip}
