:root{--ink:#3d3137;--muted:#7f6f76;--rose:#c95f86;--rose2:#9f3f68;--blush:#fff1f6;--cream:#fffaf7;--line:#ecdde3;--card:#fff;--shadow:0 18px 50px rgba(91,55,71,.10);--radius:24px}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#fffafc}button,input,textarea,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}.eyebrow{letter-spacing:.18em;font-size:.68rem;font-weight:800;color:var(--rose)}h1,h2,h3{font-family:Georgia,"Times New Roman",serif;margin:.2rem 0;color:#382931}h1{font-size:clamp(3rem,7vw,6.7rem);line-height:.9;font-weight:500}h1 em{color:var(--rose);font-weight:400}h2{font-size:2rem}h3{font-size:2rem;font-weight:500}p{color:var(--muted);line-height:1.6}.auth-shell{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr;background:linear-gradient(135deg,#fff6f9,#fffdf9)}.brand-panel{padding:8vw;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.brand-panel:after{content:"";position:absolute;width:420px;height:420px;border:1px solid #f2ccd9;border-radius:50%;right:-130px;top:-120px;box-shadow:0 0 0 55px #fff6fa,0 0 0 56px #f7dce5}.brand-panel p{max-width:600px;font-size:1.15rem}.petals{font-size:2rem;color:#dda0b5;display:flex;gap:1.4rem}.auth-card{align-self:center;margin:6vw;max-width:520px;background:#fff;padding:42px;border:1px solid var(--line);border-radius:30px;box-shadow:var(--shadow)}.mobile-brand{font:italic 1.6rem Georgia;color:var(--rose2);margin-bottom:24px}.tabs{display:flex;background:var(--blush);border-radius:14px;padding:4px;margin-bottom:24px}.tab{flex:1;border:0;background:none;padding:12px;border-radius:11px;color:var(--muted)}.tab.active{background:#fff;color:var(--ink);box-shadow:0 4px 14px rgba(80,40,60,.08)}label{display:grid;gap:7px;font-size:.82rem;font-weight:700;color:#66545d;margin-bottom:16px}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:13px;padding:12px 14px;background:#fff;color:var(--ink);outline:none}input:focus,textarea:focus,select:focus{border-color:#d793ac;box-shadow:0 0 0 3px #fbe7ef}.primary,.secondary,.danger{border:0;border-radius:13px;padding:13px 18px;font-weight:800}.primary{background:linear-gradient(135deg,var(--rose),var(--rose2));color:white;box-shadow:0 8px 20px rgba(175,66,108,.22)}.secondary{background:var(--blush);color:var(--rose2);border:1px solid #f0cfdb}.danger{background:#fff0f0;color:#a13d45}.compact{padding:10px 15px}.auth-form .primary{width:100%;margin-top:6px}.fine{font-size:.76rem}.sidebar{position:fixed;inset:0 auto 0 0;width:245px;background:#fff;border-right:1px solid var(--line);padding:28px 18px;display:flex;flex-direction:column;z-index:10}.logo{font:italic 1.55rem Georgia;color:#392b31;padding:6px 12px 30px}.logo span{color:var(--rose)}nav{display:grid;gap:7px}.nav{border:0;background:none;border-radius:13px;padding:12px 14px;text-align:left;color:#75646b;font-weight:700}.nav span{margin-left:10px}.nav.active,.nav:hover{background:var(--blush);color:var(--rose2)}.account{margin-top:auto;border-top:1px solid var(--line);padding-top:18px;display:grid;grid-template-columns:38px 1fr 30px;gap:10px;align-items:center}.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--blush);color:var(--rose2);font-weight:900}.account small{display:block;color:var(--muted);overflow:hidden;text-overflow:ellipsis}.account button{border:0;background:none;color:var(--muted);font-size:1.2rem}main{margin-left:245px;min-height:100vh}.topbar{height:94px;padding:18px clamp(22px,5vw,64px);display:flex;align-items:center;justify-content:space-between;background:rgba(255,250,252,.92);backdrop-filter:blur(14px);position:sticky;top:0;z-index:5;border-bottom:1px solid rgba(236,221,227,.75)}#mobileMenu{display:none;border:0;background:none;font-size:1.5rem}.view{padding:34px clamp(22px,5vw,64px) 70px;max-width:1450px;margin:auto}.hero{background:linear-gradient(115deg,#fff0f5,#fffaf1);border:1px solid #f3dce5;border-radius:30px;padding:42px;display:flex;justify-content:space-between;overflow:hidden;box-shadow:var(--shadow)}.hero h3{font-size:clamp(2.2rem,4vw,4.2rem);max-width:740px}.hero p{max-width:650px}.hero-flower{font-size:9rem;color:#e8b0c3;opacity:.55;align-self:center}.pill{display:inline-block;padding:7px 11px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:.68rem;text-transform:uppercase;letter-spacing:.09em;color:var(--rose2);font-weight:900}.toolbar{display:grid;grid-template-columns:1fr 180px;gap:12px;margin:28px 0}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}.recipe-card{background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 8px 28px rgba(80,45,60,.06);transition:.2s;cursor:pointer}.recipe-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.recipe-image{height:170px;background:linear-gradient(135deg,#fde4ec,#fff5e9);background-size:cover;background-position:center;display:flex;align-items:flex-end;padding:12px}.role{font-size:.64rem;background:rgba(255,255,255,.9);padding:6px 9px;border-radius:999px;font-weight:800}.recipe-body{padding:18px}.recipe-body h4{font:1.35rem Georgia;margin:0 0 6px}.meta{display:flex;gap:12px;color:var(--muted);font-size:.78rem}.empty{padding:50px;border:1px dashed #e5cbd5;border-radius:22px;text-align:center;color:var(--muted);grid-column:1/-1}.panel{background:#fff;border:1px solid var(--line);border-radius:24px;padding:30px;box-shadow:var(--shadow)}.narrow{max-width:760px;margin:30px auto}.stack{display:grid;gap:10px}.status{margin-top:18px;font-size:.88rem}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:22px}.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:12px}.day{background:#fff;border:1px solid var(--line);border-radius:18px;min-height:210px;padding:14px}.day h4{font-family:Georgia;margin:0 0 12px}.meal{background:var(--blush);border-radius:12px;padding:9px;margin:7px 0;font-size:.8rem}.inline-form{display:grid;grid-template-columns:100px 1fr auto;gap:10px;margin-bottom:20px}.shopping-list{display:grid;gap:9px}.shop-row{display:grid;grid-template-columns:auto 90px 1fr auto;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);padding:12px 15px;border-radius:14px}.shop-row.done{text-decoration:line-through;opacity:.5}.shop-row button{border:0;background:none;color:#a15c72}.tools-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.converter{display:grid;grid-template-columns:1fr 1.4fr auto 1.4fr;gap:8px;align-items:center;margin-top:22px}.big-result{font:2.8rem Georgia;color:var(--rose2);margin-top:20px}dialog{border:0;padding:0;background:transparent;max-width:none}dialog::backdrop{background:rgba(50,30,38,.42);backdrop-filter:blur(5px)}.dialog-card{width:min(760px,calc(100vw - 28px));max-height:92vh;overflow:auto;background:#fff;border-radius:26px;padding:26px;box-shadow:0 30px 90px rgba(40,20,30,.25)}.dialog-card.small{width:min(500px,calc(100vw - 28px))}.dialog-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:20px}.icon-btn{border:0;background:var(--blush);border-radius:50%;width:36px;height:36px;font-size:1.4rem;color:var(--rose2)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.span2{grid-column:span 2}.dialog-actions{display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center;border-top:1px solid var(--line);padding-top:18px}.toast{position:fixed;right:24px;bottom:24px;background:#392c32;color:#fff;padding:13px 17px;border-radius:13px;z-index:50;box-shadow:var(--shadow)}
@media(max-width:820px){.auth-shell{grid-template-columns:1fr}.brand-panel{display:none}.auth-card{margin:28px auto;width:calc(100% - 28px)}.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:none;box-shadow:20px 0 60px rgba(50,30,40,.2)}main{margin-left:0}.topbar{height:80px;padding:14px 18px}.topbar>div{display:none}#mobileMenu{display:block}.view{padding:22px 14px 60px}.hero{padding:28px 22px}.hero-flower{display:none}.toolbar{grid-template-columns:1fr}.recipe-grid{grid-template-columns:1fr 1fr}.week-grid{grid-template-columns:1fr}.day{min-height:auto}.tools-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.span2{grid-column:span 1}.dialog-card{padding:20px}.inline-form{grid-template-columns:75px 1fr}.inline-form button{grid-column:1/-1}.converter{grid-template-columns:1fr 1fr}.converter span{display:none}}
@media(max-width:520px){.recipe-grid{grid-template-columns:1fr}.topbar .primary{font-size:.78rem}.hero h3{font-size:2.2rem}.auth-card{padding:26px 20px}}
/* Health + training */
.health-hero{background:linear-gradient(115deg,#fff0f5,#f8f5ff);border:1px solid var(--line);border-radius:30px;padding:34px;display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.health-hero h3{font-size:clamp(2.2rem,4vw,3.7rem)}.today-score{min-width:180px;text-align:center;background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px}.today-score span,.today-score small{display:block;color:var(--muted);font-size:.75rem}.today-score strong{display:block;font:2.8rem Georgia;color:var(--rose2)}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}.metric-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px}.metric-card span,.metric-card small{color:var(--muted);font-size:.75rem}.metric-card strong{display:block;font:1.8rem Georgia;margin:6px 0}.progress{height:7px;background:#f3e9ed;border-radius:99px;overflow:hidden;margin-top:10px}.progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--rose),var(--rose2));border-radius:99px}.dashboard-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:22px}.dashboard-grid>div:last-child{grid-column:1/-1}.goal-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.log-list{display:grid;gap:9px}.log-row{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.log-row:last-child{border-bottom:0}.log-row small{display:block;color:var(--muted)}.log-row strong{font-size:.9rem}.mini-delete{border:0;background:none;color:#a15c72;font-size:1.1rem}.training-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:22px}.training-stats>div{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px}.training-stats span{display:block;color:var(--muted);font-size:.75rem}.training-stats strong{display:block;font:2rem Georgia;margin-top:5px}.workout-list{display:grid;gap:14px}.workout-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px}.workout-head{display:flex;justify-content:space-between;gap:16px}.workout-head h4{font:1.4rem Georgia;margin:0}.workout-head small{color:var(--muted)}.set-table{width:100%;border-collapse:collapse;margin-top:14px;font-size:.82rem}.set-table th,.set-table td{text-align:left;padding:8px;border-top:1px solid var(--line)}.set-table th{color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.05em}@media(max-width:1000px){.metric-grid{grid-template-columns:1fr 1fr}.dashboard-grid{grid-template-columns:1fr}.dashboard-grid>div:last-child{grid-column:auto}}@media(max-width:620px){.health-hero{display:block}.today-score{margin-top:18px}.metric-grid,.training-stats{grid-template-columns:1fr 1fr}.workout-head{display:block}.set-table{font-size:.74rem}}

/* v3.2 mobile, dialogs, settings */
.logo span{color:var(--rose)}
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.settings-save{grid-column:1/-1;justify-self:end}.privacy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.switch-row{display:flex;grid-template-columns:none;align-items:center;justify-content:space-between;gap:18px;border:1px solid var(--line);padding:14px;border-radius:14px;margin:0}.switch-row span{display:block}.switch-row small{display:block;color:var(--muted);font-weight:400;margin-top:4px}.switch-row input[type=checkbox]{width:22px;height:22px;flex:0 0 22px}.privacy-badges{display:flex;flex-wrap:wrap;gap:8px}.privacy-badges span{background:var(--blush);padding:8px 11px;border-radius:999px;font-size:.78rem}.privacy-lock{background:#fffdfd}
dialog[open]{display:grid;place-items:center;inset:0;margin:auto}.dialog-card{overscroll-behavior:contain}.dialog-head{position:sticky;top:-26px;background:#fff;z-index:3;padding-top:4px}.dialog-actions{position:sticky;bottom:-26px;background:#fff;z-index:3;padding-bottom:4px}.icon-btn{flex:0 0 40px;width:40px;height:40px;display:grid;place-items:center}.dialog-card textarea{resize:vertical}
@media(max-width:820px){body{overflow-x:hidden}.topbar{gap:10px}.topbar #newRecipe{white-space:nowrap}.sidebar{width:min(86vw,310px)}.view{width:100%;overflow-x:hidden}.panel{padding:20px}.section-head{align-items:flex-start;gap:12px}.recipe-grid{grid-template-columns:1fr}.health-hero{padding:24px}.dashboard-grid,.settings-grid{grid-template-columns:1fr}.settings-grid .span2,.settings-save{grid-column:1}.privacy-grid{grid-template-columns:1fr}.tools-grid{grid-template-columns:1fr}.converter{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.converter span{display:none}.big-result{font-size:2rem;overflow-wrap:anywhere}.metric-grid,.training-stats{grid-template-columns:1fr 1fr}.set-table{display:block;overflow-x:auto;white-space:nowrap}.shop-row{grid-template-columns:auto 65px minmax(0,1fr) auto}.dialog-card{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0;padding:18px 16px calc(18px + env(safe-area-inset-bottom));margin:0}.dialog-card.small{width:100vw}.dialog-head{top:-18px;padding:12px 0 10px}.dialog-actions{bottom:calc(-18px - env(safe-area-inset-bottom));padding:12px 0 calc(12px + env(safe-area-inset-bottom));grid-template-columns:1fr 1fr}.dialog-actions span{display:none}.dialog-actions button{width:100%}.form-grid{grid-template-columns:1fr}.span2{grid-column:1}.auth-card{max-width:none}.toast{left:14px;right:14px;bottom:calc(14px + env(safe-area-inset-bottom));text-align:center}}
@media(max-width:430px){.topbar{height:72px;padding:10px 12px}.topbar #newRecipe{padding:9px 10px;font-size:.72rem}.view{padding:16px 10px 48px}.hero{padding:22px 16px;border-radius:22px}.hero h3{font-size:1.9rem}.metric-grid,.training-stats{grid-template-columns:1fr}.inline-form{grid-template-columns:1fr}.inline-form button{grid-column:1}.section-head{display:block}.section-head>button{margin-top:12px;width:100%}}

/* v3.3 ingredient-aware conversion */
.ingredient-converter-panel .ingredient-select-label{display:grid;gap:.45rem;margin:1rem 0 .8rem;font-weight:700}
.ingredient-converter-panel .ingredient-select-label select{width:100%}
.custom-density{margin:.25rem 0 .8rem;padding:.8rem;border:1px dashed var(--line);border-radius:14px;background:var(--surface-soft)}
.custom-density label{display:grid;gap:.35rem}
.ingredient-reference{margin-top:.75rem}
@media (max-width:640px){.ingredient-converter-panel .converter{grid-template-columns:1fr 1fr;gap:.55rem}.ingredient-converter-panel .converter>span{display:none}.ingredient-converter-panel .converter>input{grid-column:1/-1}.ingredient-converter-panel .big-result{font-size:1.65rem;overflow-wrap:anywhere}}

.grocery-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,.8fr);gap:22px;align-items:start}.grocery-list-head{display:flex;gap:14px;align-items:end;justify-content:space-between;margin-bottom:18px}.grocery-list-head label{margin:0;min-width:240px;flex:1}.grocery-list-actions{display:flex;gap:8px;flex-wrap:wrap}.recipe-to-list{position:sticky;top:116px}.recipe-to-list .primary{width:100%}.shop-row.favorite-item{border-color:#e4b3c5;background:#fff9fb}.shop-star{border:0!important;background:none!important;color:#b64f78!important;font-size:1.2rem!important;padding:0 3px!important}.shopping-list .shop-row{grid-template-columns:auto auto 90px minmax(0,1fr) auto}.shopping-list-select-favorite{font-weight:800}
@media(max-width:900px){.grocery-layout{grid-template-columns:1fr}.recipe-to-list{position:static}.grocery-list-head{align-items:stretch;flex-direction:column}.grocery-list-actions{display:grid;grid-template-columns:1fr 1fr}.shopping-list .shop-row{grid-template-columns:auto auto 58px minmax(0,1fr) auto}}
@media(max-width:430px){.grocery-list-actions{grid-template-columns:1fr}.shopping-list .shop-row{grid-template-columns:auto auto minmax(0,1fr) auto}.shopping-list .shop-row .shop-qty{grid-column:3;grid-row:2;font-size:.75rem;color:var(--muted)}.shopping-list .shop-row .shop-item{grid-column:3;grid-row:1}}

/* PetiteMiette.ca v3.6 — meal planner */
.planner-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.favorite-meals{margin:0 0 20px}.favorite-meals:empty{display:none}.favorite-meals-head{display:flex;gap:10px;align-items:center;margin-bottom:10px}.favorite-meals-head small{color:var(--muted)}.favorite-meal-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:5px;scrollbar-width:thin}.favorite-meal-chip{display:flex;flex:0 0 auto;background:#fff;border:1px solid var(--line);border-radius:999px;overflow:hidden;box-shadow:0 5px 16px rgba(80,45,60,.05)}.favorite-meal-chip button{border:0;background:transparent;padding:9px 12px;color:var(--rose2);font-weight:800}.favorite-meal-chip .favorite-meal-add{border-left:1px solid var(--line);padding-inline:10px;font-size:1rem}.meal{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:7px;padding:0;overflow:hidden;border:1px solid transparent}.meal.meal-favorite{border-color:#efc2d1;background:#fff1f6}.meal-main{padding:10px;min-width:0;cursor:default}.meal-main[role="button"]{cursor:pointer}.meal-main[role="button"]:hover b{text-decoration:underline}.meal-main b{display:block;overflow:hidden;text-overflow:ellipsis}.meal-slot{display:block;font-size:.64rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:900;margin-bottom:3px}.meal-actions{display:flex;align-items:center;padding-right:5px}.meal-actions button{width:28px;height:28px;border:0;border-radius:8px;background:transparent;color:#9b6176;font-size:1rem}.meal-actions button:hover{background:#fff}.meal-fav-toggle{margin-top:4px}.planner-week-build-note{margin-top:8px}
@media(max-width:820px){.planner-head{display:block}.planner-actions{display:grid;grid-template-columns:1fr 1fr;margin-top:12px}.planner-actions button{width:100%;padding-inline:10px}.favorite-meal-row{margin-inline:-2px}.meal{grid-template-columns:minmax(0,1fr) auto}.meal-actions button{width:32px;height:32px}}
@media(max-width:430px){.planner-actions{grid-template-columns:1fr}.favorite-meals-head{align-items:flex-start;flex-direction:column}.meal-main{padding:11px 9px}.meal-actions{padding-right:3px}.meal-actions button{width:30px}}


/* PetiteMiette.ca v3.7 — friends & chat */
.friends-layout{display:grid;grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr);gap:22px;align-items:start}.friend-add{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-bottom:16px}.friends-list,.friend-request-block{display:grid;gap:8px}.friend-row{width:100%;display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;text-align:left;background:#fff;border:1px solid var(--line);border-radius:14px;padding:11px 12px;color:var(--ink)}.friend-row.active{border-color:#d996ae;background:var(--blush)}.friend-row span:last-child{display:grid}.friend-row small,.friend-request small{color:var(--muted)}.presence-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#bbb;box-shadow:0 0 0 3px rgba(0,0,0,.04)}.presence-dot.online{background:#35b66a;box-shadow:0 0 0 3px rgba(53,182,106,.14)}.friend-request{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border-bottom:1px solid var(--line)}.friend-request span{display:grid}.chat-panel{min-height:520px}.chat-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:12px}.chat-head>div{display:flex;align-items:center;gap:9px}.chat-messages{height:390px;overflow-y:auto;padding:16px 4px;display:flex;flex-direction:column;gap:8px}.chat-bubble{max-width:78%;padding:9px 11px;border-radius:15px;background:#f5eef1;align-self:flex-start}.chat-bubble.mine{background:#f8dce7;align-self:flex-end}.chat-bubble span,.chat-bubble small{display:block}.chat-bubble small{font-size:.65rem;color:var(--muted);margin-top:4px;text-align:right}.chat-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;border-top:1px solid var(--line);padding-top:12px}
@media(max-width:820px){.friends-layout{grid-template-columns:1fr}.chat-panel{min-height:420px}.chat-messages{height:310px}.friend-add,.chat-form{grid-template-columns:1fr auto}}
@media(max-width:430px){.friend-add,.chat-form{grid-template-columns:1fr}.friend-add button,.chat-form button{width:100%}.chat-bubble{max-width:88%}}


/* PetiteMiette.ca v3.8 — account email flows + bottom social nav */
.sidebar nav{display:flex;flex-direction:column;gap:7px;flex:1;min-height:0}.nav-bottom-spacer{margin-top:auto}.auth-links{display:flex;justify-content:space-between;gap:10px;margin-top:12px;flex-wrap:wrap}.text-btn{border:0;background:transparent;color:var(--rose2);padding:6px 0;font-weight:700;text-decoration:underline;text-underline-offset:3px}.auth-form h3{font-size:1.6rem;margin-bottom:6px}.auth-form .fine{margin-top:0}.auth-status{padding:10px 12px;border-radius:12px;background:var(--blush);color:var(--rose2);font-size:.82rem;margin:10px 0}.auth-card .text-btn{box-shadow:none}
@media(max-width:430px){.auth-links{display:grid;grid-template-columns:1fr}.auth-links .text-btn{text-align:left}}

/* PetiteMiette.ca v3.9 — profile + notifications */
.account-profile{display:flex;align-items:center;gap:10px;min-width:0;flex:1;background:transparent;border:0;padding:0;text-align:left;color:inherit;cursor:pointer}.account-profile>div:last-child{display:grid;min-width:0}.avatar.has-image,.friend-avatar.has-image,.profile-photo.has-image{padding:0;overflow:hidden}.avatar img,.friend-avatar img,.profile-photo img{width:100%;height:100%;object-fit:cover;display:block}.notification-nav{position:relative}.nav-badge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--rose);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700}.friend-avatar{width:38px;height:38px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--blush);color:var(--rose);font-weight:700;flex:0 0 auto}.friend-avatar.small{width:28px;height:28px}.friend-row{grid-template-columns:auto minmax(0,1fr) auto}.friend-row-copy small{display:flex;align-items:center;gap:6px}.friend-row-copy .presence-dot{width:8px;height:8px}.unread-count{min-width:22px;height:22px;border-radius:999px;background:var(--rose);color:#fff;display:flex!important;align-items:center;justify-content:center;font-size:.72rem;font-weight:700}.chat-profile-button{display:flex;align-items:center;gap:8px;background:transparent;border:0;padding:0;color:inherit;cursor:pointer}.message-unread-dot{font-style:normal;font-size:.62rem;color:var(--rose);margin-left:7px;vertical-align:middle}.profile-editor{display:grid;grid-template-columns:auto minmax(0,1fr);gap:22px;align-items:start}.profile-photo-wrap{display:grid;gap:8px;justify-items:center}.profile-photo{width:72px;height:72px;border-radius:50%;background:var(--blush);color:var(--rose);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.3rem}.profile-photo.large{width:110px;height:110px;font-size:2rem}.profile-photo.xlarge{width:124px;height:124px;font-size:2.4rem}.profile-upload{cursor:pointer}.profile-fields{display:grid;gap:14px}.password-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:end}.password-grid button{align-self:end}.public-profile{display:grid;grid-template-columns:auto minmax(0,1fr);gap:20px;align-items:center;margin-bottom:22px}.profile-bio{white-space:pre-wrap;margin:.25rem 0 .5rem}.favorite-profile-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.profile-favorite-recipe{display:grid;grid-template-columns:54px minmax(0,1fr);gap:10px;align-items:center;text-align:left;border:1px solid var(--line);background:#fff;border-radius:14px;padding:8px;color:inherit}.profile-favorite-recipe img{width:54px;height:54px;object-fit:cover;border-radius:10px}.profile-favorite-recipe span{display:grid}.notifications-list{display:grid;gap:8px}.notification-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;text-align:left;width:100%;border:1px solid var(--line);background:#fff;border-radius:14px;padding:12px;color:inherit}.notification-item span:last-child{display:grid}.notification-item small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.notification-icon{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--blush);color:var(--rose);font-weight:700}.notification-icon.unread{font-size:.7rem}
@media(max-width:820px){.profile-editor,.public-profile{grid-template-columns:1fr}.profile-photo-wrap{justify-items:start}.password-grid{grid-template-columns:1fr}.favorite-profile-list{grid-template-columns:1fr}.profile-photo.xlarge{width:96px;height:96px}}

.account{grid-template-columns:minmax(0,1fr) 30px}.account-profile .avatar{flex:0 0 38px}

/* v4.0 explicit profile editing */
.profile-own-actions{margin-top:18px}.profile-own-actions .primary{min-width:180px}.profile-editor-dialog{margin-top:4px}.ghost{border:0;background:transparent;color:var(--muted);padding:8px 10px}.ghost:hover{color:var(--rose2)}
@media(max-width:820px){.profile-own-actions{grid-template-columns:1fr}.profile-own-actions .primary{width:100%}.profile-editor-dialog{grid-template-columns:1fr}.profile-editor-dialog .profile-photo-wrap{justify-items:center}}

/* v4.1 mobile navigation accessibility fix */
@media(max-width:820px){
  .sidebar{
    overflow-y:auto;
    overflow-x:hidden;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    padding-bottom:calc(18px + env(safe-area-inset-bottom));
  }
  .sidebar nav{
    flex:0 0 auto;
    min-height:max-content;
  }
  .nav-bottom-spacer{
    margin-top:12px;
    height:1px;
    flex:0 0 auto;
  }
  .account{
    margin-top:18px;
    flex:0 0 auto;
    padding-bottom:env(safe-area-inset-bottom);
  }
  .sidebar .nav{
    flex:0 0 auto;
    min-height:44px;
  }
}

/* v4.2 mobile navigation + real profile page */
.profile-page{display:grid;grid-template-columns:180px minmax(0,620px);gap:28px;align-items:start;max-width:900px}.profile-page-photo{display:grid;gap:10px;justify-items:center}.profile-page-fields{display:grid;gap:16px}.profile-page-fields label{display:grid;gap:7px}.profile-page-email{display:grid;gap:4px;padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:#fff}.profile-page-email span{font-weight:700}.profile-page-email small{color:var(--muted)}.profile-page-save{justify-self:start;min-width:190px}
@media(max-width:820px){.profile-page{grid-template-columns:1fr;gap:20px}.profile-page-photo{justify-items:center}.profile-page-fields{width:100%;min-width:0}.profile-page-fields input,.profile-page-fields textarea{width:100%;max-width:100%;box-sizing:border-box}.profile-page-save{width:100%}.sidebar.open{transform:translateX(0)}.sidebar:not(.open){pointer-events:none}.sidebar.open{pointer-events:auto}}

/* v4.3 help + profile image viewer */
.help-nav{display:flex;align-items:center;gap:10px;width:100%;border:0;background:transparent;color:var(--muted);padding:9px 12px;border-radius:12px;text-align:left;cursor:pointer;font-size:.86rem}.help-nav:hover{background:var(--blush);color:var(--rose)}.help-nav>span{font-size:.8rem}.help-dialog .developer-note{padding:10px 12px;border:1px dashed var(--line);border-radius:12px;background:rgba(255,255,255,.6)}#imageLightbox{padding:0;background:transparent;border:0;max-width:min(94vw,1000px);max-height:94vh}#imageLightbox::backdrop{background:rgba(20,14,18,.78)}.image-lightbox-card{position:relative;display:flex;align-items:center;justify-content:center;max-width:94vw;max-height:94vh}.image-lightbox-card img{display:block;max-width:94vw;max-height:90vh;object-fit:contain;border-radius:16px;background:#111}.image-lightbox-close{position:absolute;right:10px;top:10px;z-index:2;background:rgba(255,255,255,.92)!important}.profile-photo.has-image img,.friend-avatar.has-image img,.avatar.has-image img{cursor:zoom-in}@media(max-width:820px){.help-nav{min-height:42px;padding:10px 14px}.help-dialog{width:min(94vw,560px)}#imageLightbox,.image-lightbox-card{max-width:100vw;max-height:100vh}.image-lightbox-card img{max-width:100vw;max-height:96vh;border-radius:0}}

/* v4.4 settings/password fixes */
.password-grid .span-all{grid-column:1/-1}
.password-grid label>span{display:block;margin-bottom:6px}
@media(max-width:700px){.password-grid .span-all{grid-column:auto}}

/* PetiteMiette.ca v4.5 — integrated guide */
.guide-head{max-width:780px}.guide-toolbar{max-width:760px;margin:0 0 18px}.guide-sections{display:grid;gap:12px;max-width:920px}.guide-card{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}.guide-card summary{display:flex;align-items:center;gap:12px;padding:16px 18px;cursor:pointer;list-style:none;font-size:1rem}.guide-card summary::-webkit-details-marker{display:none}.guide-card summary span{width:34px;height:34px;flex:0 0 34px;border-radius:50%;display:grid;place-items:center;background:var(--blush);color:var(--rose2);font-size:.72rem;font-weight:900}.guide-card summary b{font-family:Georgia,"Times New Roman",serif;font-size:1.08rem}.guide-card[open] summary{border-bottom:1px solid var(--line);background:#fffafd}.guide-copy{padding:4px 18px 16px 64px}.guide-copy p{margin:.8rem 0 0}.guide-card.hidden{display:none}.sidebar .nav[data-view="guide"]{position:relative}@media(max-width:820px){.guide-sections{max-width:none}.guide-card summary{padding:14px}.guide-copy{padding:2px 14px 14px 60px}.guide-toolbar{max-width:none}}


/* v4.7 resilient recipe import */
.manual-import{margin-top:22px;padding-top:22px;border-top:1px solid var(--border, #eadce2)}
.manual-import-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}
.manual-import-head h4{margin:8px 0 0}
.manual-import textarea{width:100%;resize:vertical;min-height:130px}
@media(max-width:640px){.manual-import-head{align-items:stretch;flex-direction:column}.manual-import-head .compact{align-self:flex-start}}

/* v5.7 active-development notice */
#helpButton.developer-highlight{outline:3px solid rgba(190,58,112,.35);box-shadow:0 0 0 6px rgba(190,58,112,.12);background:#fff0f6;font-weight:700}
.development-dialog::backdrop{background:rgba(49,31,39,.42);backdrop-filter:blur(3px)}
.development-dialog .dialog-card{max-width:620px}
.development-dialog .secondary{width:100%;margin-top:8px}
.development-actions{margin-top:18px;grid-template-columns:1fr 1fr;gap:10px}
.development-actions button{width:100%}
@media(max-width:640px){.development-actions{grid-template-columns:1fr}.development-dialog .dialog-card{width:min(94vw,620px)}}

/* v5.8 development notice spotlight */
#helpButton.developer-highlight{
  position:relative;
  z-index:9999;
  color:#8f174b;
  background:#fff !important;
  outline:3px solid rgba(190,58,112,.95);
  box-shadow:0 0 0 7px rgba(255,255,255,.96),0 0 0 12px rgba(190,58,112,.38),0 0 30px 14px rgba(190,58,112,.42);
  font-weight:800;
  animation:developerHelpPulse 1.35s ease-in-out infinite;
}
#helpButton.developer-highlight>span{font-weight:800}
.development-dialog::backdrop{
  background:rgba(49,31,39,.16);
  backdrop-filter:none;
}
.development-dialog .developer-spotlight{
  margin:14px 0 4px;
  padding:12px 14px;
  border:2px solid rgba(190,58,112,.5);
  border-radius:14px;
  background:#fff5f9;
  color:#8f174b;
  font-weight:700;
  text-align:center;
  animation:developerPanelPulse 1.35s ease-in-out infinite;
}
@keyframes developerHelpPulse{
  0%,100%{transform:scale(1);box-shadow:0 0 0 7px rgba(255,255,255,.96),0 0 0 12px rgba(190,58,112,.28),0 0 24px 10px rgba(190,58,112,.30)}
  50%{transform:scale(1.045);box-shadow:0 0 0 7px rgba(255,255,255,1),0 0 0 16px rgba(190,58,112,.48),0 0 40px 18px rgba(190,58,112,.52)}
}
@keyframes developerPanelPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(190,58,112,.12)}
  50%{box-shadow:0 0 0 7px rgba(190,58,112,.14)}
}
@media (prefers-reduced-motion:reduce){
  #helpButton.developer-highlight,.development-dialog .developer-spotlight{animation:none}
}

/* PetiteMiette.ca v5.9 — monochrome guide compass icon */
.sidebar .nav .nav-icon{width:16px;height:16px;flex:0 0 16px;display:inline-block;vertical-align:-2px;color:currentColor}


/* PetiteMiette.ca v5.10 — premium compass + development notice behavior polish */
.nav-icon-compass{width:18px;height:18px;overflow:visible;stroke-linecap:round;stroke-linejoin:round}

.development-dialog .developer-spotlight{
  display:grid;
  justify-items:start;
  gap:7px;
  padding:13px 15px;
  border:1px solid rgba(190,58,112,.42);
  background:linear-gradient(135deg,rgba(255,244,249,.98),rgba(255,255,255,.98));
}
.developer-spotlight-label{
  font-size:.72rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:900;
  color:var(--rose2);
}
.developer-path{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--text)}
.developer-path b{display:inline-flex;align-items:center;min-height:30px;padding:5px 10px;border-radius:999px;border:1px solid var(--line);background:#fff}
.developer-help-cue{color:var(--rose2);box-shadow:0 0 0 4px rgba(190,58,112,.10)}
.development-dialog .developer-spotlight small{color:var(--muted);font-size:.78rem}

@media(max-width:640px){
  .development-dialog{padding:12px}
  .development-dialog .dialog-card{width:min(100%,560px);max-height:calc(100dvh - 24px);overflow:auto;margin:auto;padding:20px 18px}
  .development-dialog .developer-spotlight{position:relative;justify-items:stretch;text-align:left}
  .developer-path{display:grid;grid-template-columns:auto 24px 1fr;align-items:center;gap:6px}
  .developer-path>span{text-align:center;font-weight:800;color:var(--rose2)}
  .developer-path b{justify-content:center;text-align:center}
  .developer-help-cue{animation:developerMobileCuePulse 1.2s ease-in-out infinite}
  .development-dialog .secondary{margin-top:10px}
}
@keyframes developerMobileCuePulse{
  0%,100%{box-shadow:0 0 0 3px rgba(190,58,112,.12);transform:scale(1)}
  50%{box-shadow:0 0 0 9px rgba(190,58,112,.20);transform:scale(1.025)}
}
@media(prefers-reduced-motion:reduce){.developer-help-cue{animation:none!important}}
