@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Fraunces:opsz,wght@9..144,600;9..144,700&display=swap');
:root{--cream:#fffaf0;--paper:#fffdf8;--ink:#28231f;--muted:#766d64;--tomato:#d95d39;--tomato2:#b9472a;--olive:#5b6f4a;--line:#eadfce;--shadow:0 16px 42px rgba(81,55,29,.10)}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif;background-image:radial-gradient(#eadfce 1px,transparent 1px);background-size:22px 22px}a{text-decoration:none;color:inherit}.topbar{position:sticky;top:0;z-index:10;background:rgba(255,250,240,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding:14px max(18px,calc((100vw - 1180px)/2));display:flex;align-items:center;justify-content:space-between;gap:20px}.logo{display:flex;align-items:center;gap:10px;font-family:'Fraunces',serif;font-weight:700;font-size:20px}.logo>span:first-child{width:44px;height:44px;border-radius:14px;background:#f5c45e;display:grid;place-items:center;font-size:24px;transform:rotate(-3deg)}.logo small{font-family:'DM Sans';font-weight:500;font-size:10px;display:block;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin-top:1px}.topbar nav{display:flex;align-items:center;gap:10px}.hello{font-size:14px;color:var(--muted)}.container{max-width:1180px;margin:auto;padding:34px 18px 70px}.narrow{max-width:900px}.hero{background:linear-gradient(125deg,#fff2d6,#f7d8c9);border:1px solid #edd2b5;border-radius:30px;padding:42px;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow);overflow:hidden;position:relative}.hero:after{content:'BON APPÉTIT';position:absolute;right:120px;bottom:-16px;font:700 58px 'Fraunces';color:rgba(255,255,255,.35);transform:rotate(-4deg)}.hero h1,.form-card h1{font:700 clamp(34px,5vw,56px)/1.03 'Fraunces';margin:7px 0 12px}.hero p{max-width:570px;color:#695c52;font-size:17px;margin:0}.plate{width:120px;height:120px;border-radius:50%;background:white;display:grid;place-items:center;font-size:58px;box-shadow:inset 0 0 0 12px #fff,inset 0 0 0 14px #efe5d4,0 12px 25px rgba(73,42,16,.12);transform:rotate(6deg)}.eyebrow{font-size:11px;letter-spacing:.16em;font-weight:800;color:var(--tomato)}.month-picker{margin:24px 0;display:flex;align-items:end;justify-content:space-between;gap:20px}.month-picker label{color:var(--muted);font-size:12px;font-weight:700}.month-picker input{display:block;margin-top:6px}.month-picker strong{font:600 24px 'Fraunces'}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:36px}.stats article{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:19px;box-shadow:0 6px 18px rgba(81,55,29,.05)}.stats article.due{background:#fff1e9;border-color:#f0c5b4}.stats span,.stats small{display:block;color:var(--muted);font-size:12px}.stats strong{display:block;font:700 30px 'Fraunces';margin:5px 0}.section-title,.editor-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:24px 0 14px}.section-title h2,.editor-head h2{font:700 28px 'Fraunces';margin:4px 0 0}.meal-list{display:grid;gap:14px}.meal-card{background:var(--paper);border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 8px 22px rgba(81,55,29,.05)}.meal-card.paid{opacity:.82}.meal-main{display:grid;grid-template-columns:72px 1fr 150px;gap:18px;align-items:center;padding:20px}.date-badge{width:62px;height:68px;background:#f7e7cf;border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center}.date-badge b{font:700 27px 'Fraunces'}.date-badge span{font-size:10px;font-weight:800;color:var(--tomato);letter-spacing:.1em}.meal-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.meal-head h3{font:700 23px 'Fraunces';margin:0}.status{font-size:11px;font-weight:800;border-radius:99px;padding:5px 9px}.status.due{background:#fff0e8;color:#a84628}.status.paid{background:#e9f1e4;color:#49633b}.notes{margin:6px 0;color:var(--muted);font-size:13px}.ingredients{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.ingredients span{background:#f7f1e8;border:1px solid #eee3d2;border-radius:99px;padding:6px 9px;font-size:12px}.ingredients em{font-style:normal;color:var(--muted)}.price-box{text-align:right;border-left:1px dashed var(--line);padding-left:20px}.price-box small,.price-box em{display:block;color:var(--muted);font-size:11px;font-style:normal}.price-box span{display:block;font-size:14px;margin:2px 0}.price-box strong{display:block;font:700 27px 'Fraunces';color:var(--tomato)}.admin-actions{border-top:1px solid var(--line);padding:10px 14px;display:flex;justify-content:flex-end;gap:8px;background:#fcf7ee}.admin-actions form{margin:0}.btn{border:1px solid transparent;border-radius:12px;padding:10px 15px;font:700 13px 'DM Sans';cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px}.btn.primary{background:var(--tomato);color:#fff}.btn.primary:hover{background:var(--tomato2)}.btn.ghost{background:#fff;border-color:var(--line);color:#51473f}.btn.success{background:var(--olive);color:white}.btn.danger{background:#fff0ee;color:#b33b2c;border-color:#f0c9c3}.btn.compact{padding:8px 11px;font-size:12px}.btn.full{width:100%}.empty{text-align:center;background:var(--paper);border:1px dashed #dac9b4;border-radius:24px;padding:55px 20px}.empty>div{font-size:48px}.empty h3{font:700 24px 'Fraunces';margin:8px}.empty p{color:var(--muted)}.receipt{margin-top:22px;background:#2f342b;color:#fff;border-radius:22px;padding:20px 24px;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow)}.receipt span,.receipt small{display:block}.receipt small{opacity:.65;margin-top:3px}.receipt-total{text-align:right}.receipt-total strong{font:700 32px 'Fraunces';color:#ffd77a}.login-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(145deg,#f7ead0,#f7d1bf)}.login-card{width:min(440px,100%);background:var(--paper);border:1px solid #ead8c0;border-radius:28px;padding:34px;box-shadow:0 24px 70px rgba(93,53,29,.18);text-align:center}.brand-mark{width:74px;height:74px;border-radius:24px;background:#f4c761;display:grid;place-items:center;font-size:38px;margin:-65px auto 18px;box-shadow:0 10px 26px rgba(129,84,15,.18);transform:rotate(-5deg)}.login-card h1{font:700 34px 'Fraunces';margin:0}.muted{color:var(--muted)}.stack{display:grid;gap:14px;margin-top:24px;text-align:left}label{font-weight:700;font-size:13px;color:#50463f}input,select,textarea{width:100%;margin-top:6px;border:1px solid #ddcfbc;border-radius:12px;background:#fff;padding:12px 13px;font:500 14px 'DM Sans';color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:#d98a6f;box-shadow:0 0 0 3px #f8e2d9}.alert{padding:11px 13px;border-radius:12px;margin:15px 0;font-size:13px}.alert.error{background:#fff0ee;color:#9d382a}.alert.success{background:#edf5e7;color:#456036}.tiny{font-size:11px;color:var(--muted);margin-top:18px}.form-card{background:var(--paper);border:1px solid var(--line);border-radius:28px;padding:32px;box-shadow:var(--shadow)}.form-card h1{font-size:42px}.grid2{display:grid;grid-template-columns:1fr 2fr;gap:14px;margin-top:24px}.form-card>form>label{display:block;margin-top:14px}.ingredients-editor{margin-top:28px;border-top:1px dashed var(--line);padding-top:12px}.ingredient-row{display:grid;grid-template-columns:2fr 1fr 130px 40px;gap:8px;align-items:end;margin-bottom:8px}.ingredient-row input{margin:0}.euro-input{position:relative}.euro-input input{padding-right:30px}.euro-input span{position:absolute;right:12px;top:12px;color:var(--muted)}.remove-row{border:0;background:#f7eee5;border-radius:10px;height:42px;font-size:23px;color:#9a5a49;cursor:pointer}.live-total{margin:24px 0;background:#f6ead8;border:1px solid #e8d6bd;border-radius:18px;padding:16px 20px;display:flex;align-items:center;justify-content:center;gap:24px}.live-total strong{font:700 21px 'Fraunces';color:var(--tomato)}.arrow{color:#b29f8c}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}footer{text-align:center;color:#9a8c7c;font-size:12px;padding:20px}.receipt{break-inside:avoid}
@media(max-width:820px){.topbar{align-items:flex-start}.hello{display:none}.topbar nav{flex-wrap:wrap;justify-content:flex-end}.hero{padding:28px}.plate{display:none}.stats{grid-template-columns:1fr 1fr}.meal-main{grid-template-columns:55px 1fr}.price-box{grid-column:2;border-left:0;border-top:1px dashed var(--line);padding:12px 0 0;text-align:left}.ingredient-row{grid-template-columns:1fr 1fr 44px}.ingredient-row>input:first-child{grid-column:1/4}.grid2{grid-template-columns:1fr}.form-card{padding:22px}.admin-actions{justify-content:flex-start;flex-wrap:wrap}}@media(max-width:520px){.logo small{display:none}.logo{font-size:16px}.topbar{padding:10px 12px}.topbar nav .btn{font-size:0}.topbar nav .btn:before{content:'+';font-size:18px}.topbar nav .ghost:before{content:'↪'}.container{padding:20px 12px 50px}.hero{border-radius:22px;padding:24px}.hero h1{font-size:38px}.stats{gap:8px}.stats article{padding:14px}.stats strong{font-size:24px}.meal-main{padding:14px;gap:10px}.meal-head h3{font-size:20px}.ingredients{display:grid}.date-badge{width:50px;height:58px}.date-badge b{font-size:23px}.section-title{align-items:center}.receipt{align-items:flex-end}.ingredient-row{grid-template-columns:1fr 44px}.ingredient-row>input:first-child,.ingredient-row>input:nth-child(2),.ingredient-row>.euro-input{grid-column:1}.ingredient-row>.remove-row{grid-column:2;grid-row:1/4;height:100%}.live-total{flex-direction:column;gap:5px}.arrow{transform:rotate(90deg)}}
@media print{body{background:#fff}.topbar,.no-print,footer,.month-picker{display:none!important}.container{padding:0}.hero{box-shadow:none}.stats article,.meal-card,.receipt{box-shadow:none}.meal-card{break-inside:avoid}}

/* V1.1 — calculs par ingrédient */
.mode-guide{display:flex;gap:8px;flex-wrap:wrap;margin:-4px 0 14px}.mode-guide span{background:#f8f1e6;border:1px solid var(--line);border-radius:10px;padding:7px 9px;font-size:11px;color:var(--muted)}.mode-guide b{color:var(--ink)}
.ingredient-row{display:block;border:1px solid var(--line);border-radius:16px;padding:10px;margin-bottom:10px;background:#fffdf9}.ingredient-main{display:grid;grid-template-columns:2fr 1fr 140px 130px 40px;gap:8px;align-items:center}.ingredient-main input,.ingredient-main select{margin:0}.ingredient-row .unit-fields{display:none;grid-template-columns:1fr 1fr;gap:10px;margin:10px 48px 0 0;padding:10px;border-radius:12px;background:#fff6e8;border:1px dashed #e4cfae}.ingredient-row[data-mode="unit"] .unit-fields{display:grid}.unit-fields label{font-size:11px}.unit-fields input{margin-top:4px}.ingredient-preview{margin:8px 48px 0 2px;font-size:11px;color:var(--muted)}.ingredient-preview strong{color:var(--tomato)}.calculation-note{margin:-12px 0 20px;text-align:center;font-size:11px;color:var(--muted)}
.ingredients{align-items:stretch}.ingredient-chip{display:flex!important;flex-direction:column;align-items:flex-start!important;border-radius:13px!important}.ingredient-chip .calc{display:block;margin-top:3px;font-size:10px;color:var(--muted);font-weight:600}.ingredient-chip .calc.unit{color:#79601f}.ingredient-chip .calc.direct{color:#526645}
.meal-card .meal-main{position:relative}.meal-check{align-self:center;display:flex;align-items:center;justify-content:center}.meal-check input{position:absolute;opacity:0;pointer-events:none}.meal-check span{width:32px;height:32px;border:2px solid #d9c9b4;border-radius:10px;background:#fff;display:grid;place-items:center;color:transparent;font-weight:900;cursor:pointer;transition:.15s}.meal-check input:checked+span{background:var(--olive);border-color:var(--olive);color:#fff}.meal-card:has(.meal-check) .meal-main{grid-template-columns:36px 72px 1fr 150px}
.bulk-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;background:#fff9ec;border:1px dashed #dfc79f;border-radius:14px;padding:10px 13px;margin-bottom:12px}.bulk-select-all{display:flex;align-items:center;gap:8px;cursor:pointer}.bulk-select-all input{width:18px;height:18px;margin:0}.bulk-toolbar small{color:var(--muted)}.bulk-payment-bar{position:sticky;bottom:16px;z-index:8;margin:18px auto 0;max-width:620px;background:#30352c;color:#fff;border:1px solid #46503f;border-radius:18px;padding:12px 14px;display:none;align-items:center;justify-content:space-between;gap:16px;box-shadow:0 18px 40px rgba(43,44,36,.28)}.bulk-payment-bar.visible{display:flex}.bulk-payment-bar>div{display:flex;flex-direction:column}.bulk-payment-bar span{font-size:11px;opacity:.75}.bulk-payment-bar strong{font:700 24px 'Fraunces';color:#ffd77a}
@media(max-width:820px){.ingredient-main{grid-template-columns:1fr 1fr 1fr 44px}.ingredient-main>input:first-child{grid-column:1/5}.ingredient-main>.euro-input{grid-column:3}.ingredient-row .unit-fields{margin-right:0}.meal-card:has(.meal-check) .meal-main{grid-template-columns:36px 55px 1fr}.meal-card:has(.meal-check) .price-box{grid-column:3}.bulk-toolbar{align-items:flex-start;flex-direction:column}.bulk-payment-bar{bottom:8px;margin-left:8px;margin-right:8px}}
@media(max-width:520px){.ingredient-main{grid-template-columns:1fr 44px}.ingredient-main>input:first-child,.ingredient-main>input:nth-child(2),.ingredient-main>select,.ingredient-main>.euro-input{grid-column:1}.ingredient-main>.remove-row{grid-column:2;grid-row:1/5;height:100%}.ingredient-row .unit-fields{grid-template-columns:1fr}.ingredient-preview{margin-right:0}.meal-card:has(.meal-check) .meal-main{grid-template-columns:32px 50px 1fr}.meal-card:has(.meal-check) .price-box{grid-column:3}.meal-check span{width:28px;height:28px}.bulk-payment-bar{flex-direction:column;align-items:stretch}.bulk-payment-bar>div{flex-direction:row;justify-content:space-between;align-items:end}.bulk-payment-bar .btn{width:100%}}

/* Paiement Revolut - espace Anthony */
.revolut-payment{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:22px 0 28px;padding:22px 24px;background:#fff;border:1px solid rgba(46,39,31,.10);border-radius:20px;box-shadow:0 10px 30px rgba(46,39,31,.06)}
.revolut-payment .revolut-copy{display:flex;align-items:center;gap:15px}.revolut-payment .revolut-icon{width:50px;height:50px;border-radius:16px;display:grid;place-items:center;background:#f1f5ff;font-size:26px}.revolut-payment h3{margin:0 0 4px;font-size:1.05rem}.revolut-payment p{margin:0;color:var(--muted);font-size:.93rem}.btn.revolut{background:#191c1f;color:#fff;border-color:#191c1f;text-decoration:none;white-space:nowrap}.btn.revolut:hover{transform:translateY(-1px);filter:brightness(1.08)}
@media(max-width:700px){.revolut-payment{align-items:stretch;flex-direction:column}.revolut-payment .btn.revolut{width:100%;text-align:center;justify-content:center}}
@media print{.revolut-payment{display:none!important}}
