:root{--ink:#24312d;--muted:#87918b;--line:#e8e9e2;--paper:#fff;--canvas:#f7f7f3;--green:#496b59;--green-dark:#365544;--mint:#eaf1eb;--amber:#f4e7c8;--lavender:#eeebf6;--rose:#f7e9e5;--shadow:0 14px 40px rgba(40,55,46,.1)}*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font:14px 'DM Sans',sans-serif}.app-shell{min-height:100vh;display:flex}.sidebar{width:248px;background:#fff;border-right:1px solid var(--line);padding:30px 19px 18px;display:flex;flex-direction:column;flex:0 0 248px}.brand{display:flex;align-items:center;gap:10px;margin:0 0 54px 6px;text-decoration:none;color:var(--ink);font-size:25px;font-weight:700;letter-spacing:-1.3px}.brand-mark{height:34px;width:34px;border-radius:11px;background:var(--green);color:#fff;font:700 25px 'Playfair Display',serif;display:grid;place-items:center}.brand-dot{color:#ba8e54}.side-label,.eyebrow{font-size:10px;letter-spacing:1.35px;font-weight:700;color:#9aa29a}.side-label{padding-left:10px;margin-bottom:13px}.main-nav{display:grid;gap:5px}.nav-link{border:0;background:none;border-radius:9px;color:#768079;text-align:left;padding:12px 11px;font:500 13px 'DM Sans',sans-serif;display:flex;align-items:center;gap:11px;cursor:pointer}.nav-link:hover{background:#f7f8f5}.nav-link.active{background:#edf3ee;color:var(--green-dark);font-weight:700}.nav-icon{font-size:17px;width:19px;text-align:center}.nav-count{margin-left:auto;font-size:11px;color:#98a098}.side-card{margin-top:48px;position:relative;overflow:hidden;background:#f3f5ef;border-radius:12px;padding:18px 15px 16px;color:#405849}.side-card-icon{font-size:18px;color:#b88c54;display:block;margin-bottom:14px}.side-card strong{font:600 16px/1.45 'Playfair Display',serif}.side-card p{font-size:11px;line-height:1.6;color:#858f86;margin:9px 0 0}.side-squiggle{position:absolute;right:13px;bottom:0;color:#d8dfd4;font-size:36px}.sidebar-bottom{margin-top:auto;padding:17px 3px 2px;border-top:1px solid var(--line);display:flex;align-items:center;gap:10px}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#eadbc5;color:#78613f;font-weight:700}.sidebar-bottom strong,.sidebar-bottom small{display:block}.sidebar-bottom strong{font-size:12px}.sidebar-bottom small{color:#9aa29a;font-size:10px;margin-top:3px}.more{margin-left:auto;color:#919891;font-size:20px}.main-content{max-width:1600px;margin:0 auto;flex:1;padding:0 4.7% 50px;min-width:0}.topbar{height:74px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.breadcrumb{font-size:11px;color:#9ba29c}.breadcrumb span{margin:0 8px;color:#c5c9c2}.breadcrumb b{color:#5e6962;font-weight:600}.top-actions{display:flex;align-items:center;gap:15px}.today-pill{font-size:10px;color:#879188}.today-pill i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#87a98c;margin-right:6px}.icon-button{border:1px solid var(--line);border-radius:50%;background:white;width:30px;height:30px;color:#758077;cursor:pointer;font:500 15px 'DM Sans',sans-serif}.view{padding-top:39px}.hidden{display:none!important}.page-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:36px}.page-heading h1{font:700 34px 'Playfair Display',serif;letter-spacing:-.7px;margin:8px 0 5px}.subheading{color:#929a93;font-size:12px;margin:0}.primary-button{border:0;border-radius:8px;background:var(--green);color:white;padding:11px 16px;font:600 12px 'DM Sans',sans-serif;cursor:pointer;box-shadow:0 3px 9px #496b5922;transition:background .18s,transform .18s}.primary-button:hover{background:var(--green-dark);transform:translateY(-1px)}.primary-button span{font-size:16px;vertical-align:-1px;margin-right:5px}.week-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.week-title{display:flex;align-items:baseline;gap:12px}.week-title h2{font:600 18px 'Playfair Display',serif;margin:0}.week-caption{font-size:10px;color:#a0a69f}.week-controls{display:flex;align-items:center;gap:6px}.small-button,.arrow-button{height:30px;border:1px solid var(--line);background:white;border-radius:6px;color:#69756c;cursor:pointer;font:500 11px 'DM Sans',sans-serif}.small-button{padding:0 11px;margin-right:5px}.arrow-button{width:30px;font-size:19px;line-height:1}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));gap:10px;overflow-x:auto;padding-bottom:4px}.day-card{min-width:130px;background:white;border:1px solid #e9ebe5;border-radius:10px;overflow:hidden;min-height:370px;box-shadow:0 2px 8px rgba(48,60,48,.025)}.day-card.today{border-color:#91ae94;box-shadow:0 0 0 1px #91ae94}.day-head{padding:13px 11px 11px;border-bottom:1px solid #f0f1ec;display:flex;align-items:center;justify-content:space-between}.day-name{text-transform:uppercase;letter-spacing:.7px;font-size:9px;color:#89938c;font-weight:700}.day-number{font:600 17px 'Playfair Display',serif}.today .day-number{background:var(--green);color:white;width:27px;height:27px;border-radius:50%;display:grid;place-items:center;font-size:14px}.meal-list{padding:8px 7px}.meal-row{padding:10px 3px 8px;border-bottom:1px solid #f1f2ed}.meal-row:last-child{border:0}.meal-label{font-size:9px;color:#9ba49c;display:flex;align-items:center;gap:5px;margin-bottom:6px}.meal-emoji{font-size:11px}.meal-item{position:relative;border-radius:6px;background:#f4f6f2;padding:7px 7px 7px 8px;font-size:10px;line-height:1.35;color:#526356;min-height:29px;display:flex;justify-content:space-between;align-items:center;gap:3px}.meal-item.breakfast{background:#fbf4e7;color:#856a37}.meal-item.lunch{background:#edf3ed;color:#496650}.meal-item.snack{background:#f1eff7;color:#73678a}.meal-item.dinner{background:#f7eeeb;color:#8b6256}.meal-item span{font-weight:600;overflow-wrap:anywhere}.remove-meal{border:0;background:transparent;color:#9eaaa0;font-size:14px;cursor:pointer;padding:0 1px;opacity:0}.meal-item:hover .remove-meal,.remove-meal:focus{opacity:1}.add-meal{width:100%;height:25px;margin-top:3px;border:1px dashed #e3e7df;background:transparent;color:#adb6ad;border-radius:5px;cursor:pointer;font-size:15px;line-height:1}.add-meal:hover{background:#f6f8f4;color:var(--green);border-color:#a8bba8}.planner-note{display:flex;align-items:center;gap:11px;background:#f0f3ed;border-radius:8px;padding:12px 15px;margin-top:17px;color:#77847a}.planner-note span{color:#b68a4d;font-size:16px}.planner-note p{margin:0;font-size:10px}.planner-note strong{color:#56695a}.recipe-toolbar{display:flex;align-items:center;justify-content:space-between;margin:0 0 20px}.search-box{height:38px;width:min(360px,65%);background:white;border:1px solid var(--line);border-radius:7px;display:flex;align-items:center;padding:0 11px;gap:8px;color:#98a098}.search-box span{font-size:22px}.search-box input{border:0;outline:none;font:12px 'DM Sans',sans-serif;width:100%;color:var(--ink)}.recipe-total{font-size:11px;color:#929b93}.recipe-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.recipe-card{background:white;border:1px solid #e9ebe5;border-radius:10px;overflow:hidden;cursor:pointer;transition:transform .18s,box-shadow .18s}.recipe-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(40,55,46,.08)}.recipe-art{height:102px;display:grid;place-items:center;font-size:40px;position:relative}.art-0{background:#f4eddd}.art-1{background:#e7efe6}.art-2{background:#f1e9e5}.art-3{background:#eeebf4}.art-4{background:#e8eff0}.art-5{background:#f5e9e9}.recipe-art .category-tag{position:absolute;left:11px;top:10px;background:#ffffffc9;border-radius:20px;padding:5px 8px;color:#657467;font-size:9px}.recipe-body{padding:12px 13px 13px}.recipe-body h3{font:600 16px 'Playfair Display',serif;margin:0 0 8px}.recipe-meta{display:flex;gap:12px;color:#969e97;font-size:10px}.recipe-actions{display:flex;justify-content:space-between;align-items:center;margin-top:13px;padding-top:10px;border-top:1px solid #f0f1ec}.recipe-actions button{border:0;background:none;color:#728275;cursor:pointer;font:500 10px 'DM Sans',sans-serif;padding:2px}.recipe-actions .delete-recipe{color:#b39b93}.empty-state{grid-column:1/-1;background:white;border:1px dashed #dfe4db;border-radius:11px;text-align:center;padding:48px 20px;color:#8a958c}.empty-state .empty-icon{font-size:32px;margin-bottom:10px}.empty-state h3{font:600 20px 'Playfair Display',serif;color:#44554a;margin:0 0 7px}.empty-state p{font-size:11px;margin:0 0 17px}.dialog{border:0;padding:26px;width:min(560px,calc(100vw - 30px));border-radius:14px;box-shadow:var(--shadow);color:var(--ink)}.dialog::backdrop{background:rgba(28,39,32,.35);backdrop-filter:blur(2px)}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px}.dialog-head h2{font:700 24px 'Playfair Display',serif;margin:5px 0 0}.close-button{font-size:21px;line-height:1}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 13px}.field{display:block;position:relative;font-size:10px;color:#68746b;font-weight:600}.field.full{grid-column:1/-1}.field input,.field select,.field textarea{display:block;margin-top:6px;width:100%;border:1px solid #e4e8e1;border-radius:6px;background:#fff;padding:10px 11px;font:12px 'DM Sans',sans-serif;color:#344239;outline:none}.field textarea{resize:vertical;line-height:1.5}.field input:focus,.field textarea:focus,.field select:focus{border-color:#8eaa91;box-shadow:0 0 0 3px #edf3ed}.field-suffix{position:absolute;right:12px;bottom:11px;font-weight:400;color:#98a198}.dialog-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:23px;padding-top:17px;border-top:1px solid #eff0eb}.text-button{border:0;background:none;color:#7a867c;font:500 11px 'DM Sans',sans-serif;cursor:pointer;padding:9px}.compact-dialog{width:min(420px,calc(100vw - 30px))}.compact-dialog .field{margin-top:8px}.detail-dialog{width:min(650px,calc(100vw - 30px))}.detail-meta{display:flex;gap:15px;color:#89958b;font-size:11px;padding-bottom:17px;border-bottom:1px solid var(--line)}.detail-columns{display:grid;grid-template-columns:.8fr 1.2fr;gap:24px;padding-top:8px}.detail-columns h3{font:600 16px 'Playfair Display',serif}.detail-columns ul,.detail-columns p{font-size:12px;line-height:1.8;color:#68766c}.detail-columns ul{padding-left:18px}.detail-columns p{white-space:pre-line}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,15px);background:#30473a;color:white;padding:11px 17px;border-radius:8px;font-size:11px;opacity:0;pointer-events:none;transition:.2s;box-shadow:var(--shadow)}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:1000px){.sidebar{width:210px;flex-basis:210px}.main-content{padding-left:3%;padding-right:3%}.week-grid{grid-template-columns:repeat(7,minmax(120px,1fr))}.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.app-shell{display:block}.sidebar{width:auto;height:58px;padding:0 16px;display:flex;flex-direction:row;align-items:center;border-right:0;border-bottom:1px solid var(--line)}.brand{margin:0;font-size:22px}.brand-mark{width:30px;height:30px}.side-label,.side-card,.sidebar-bottom{display:none}.main-nav{margin-left:auto;display:flex;gap:4px}.nav-link{padding:9px;font-size:0;gap:0}.nav-link .nav-icon{font-size:18px}.nav-count{font-size:9px;margin-left:3px}.main-content{padding:0 16px 35px}.topbar{height:53px}.today-pill{font-size:0}.today-pill i{width:7px;height:7px}.view{padding-top:28px}.page-heading{align-items:flex-end;margin-bottom:25px}.page-heading h1{font-size:29px}.subheading{max-width:240px;font-size:11px;line-height:1.5}.page-heading .primary-button{font-size:0;padding:10px 12px}.page-heading .primary-button span{font-size:19px;margin:0}.week-grid{grid-template-columns:repeat(7,minmax(125px,1fr));margin-right:-16px;padding-right:16px}.day-card{min-height:348px}.week-title{display:block}.week-caption{display:block;margin-top:3px}.recipe-grid{grid-template-columns:1fr 1fr;gap:9px}.recipe-art{height:82px;font-size:32px}.recipe-body{padding:10px}.recipe-body h3{font-size:14px}.recipe-meta{gap:7px;font-size:9px}.recipe-actions{margin-top:10px}.recipe-actions button{font-size:9px}.recipe-toolbar{margin-bottom:14px}.search-box{width:68%}.recipe-total{font-size:9px}.dialog{padding:21px}.detail-columns{grid-template-columns:1fr;gap:0}.detail-dialog{max-height:90vh;overflow:auto}}

/* Cuentas y contenido compartido */
.auth-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at 8% 12%,#e9f0e7 0,transparent 35%),radial-gradient(ellipse at 92% 88%,#f1e9df 0,transparent 32%),var(--canvas)}.auth-card{width:min(430px,100%);background:#fff;border:1px solid #e9ebe5;border-radius:16px;padding:34px 36px 28px;box-shadow:0 16px 48px rgba(40,55,46,.09)}.auth-brand{margin:0 0 31px}.auth-card h1{font:700 30px 'Playfair Display',serif;margin:7px 0}.auth-intro{font-size:12px;color:#929b93;margin:0 0 22px}.auth-card form{display:grid;gap:14px}.auth-submit{width:100%;margin-top:3px}.auth-error,.share-error{min-height:16px;font-size:11px;color:#a64b40}.auth-switch{text-align:center;font-size:11px;color:#8e9890;margin:20px 0}.auth-switch button{border:0;background:none;color:var(--green);font:700 11px 'DM Sans',sans-serif;cursor:pointer;padding:0 3px}.auth-footnote{border-top:1px solid #eff0eb;padding-top:17px;margin:0;color:#a0a79f;font-size:10px;line-height:1.6;text-align:center}.logout-button{margin-left:auto;border:1px solid var(--line);background:#fff;color:#718075;border-radius:7px;width:30px;height:30px;font-size:16px;cursor:pointer}.user-block{min-width:0}.user-block strong{max-width:135px;overflow:hidden;text-overflow:ellipsis}.recipe-actions{gap:2px}.recipe-actions button[data-share-recipe]{color:#9b8158}.shared-grid{display:grid;gap:12px}.shared-card{display:flex;align-items:center;gap:15px;padding:17px 18px;background:#fff;border:1px solid #e9ebe5;border-radius:10px}.shared-icon{flex:0 0 43px;width:43px;height:43px;border-radius:12px;background:#edf3ed;display:grid;place-items:center;font-size:21px;color:var(--green)}.shared-info{min-width:0;flex:1}.shared-kind{font-size:9px;letter-spacing:1px;color:#9ba49c;font-weight:700}.shared-info h3{font:600 16px 'Playfair Display',serif;margin:4px 0}.shared-info p{margin:0;font-size:10px;color:#9aa29a}.shared-info p strong{color:#657267}.shared-actions{display:flex;align-items:center;gap:10px}.shared-actions .primary-button{white-space:nowrap;padding:9px 12px;font-size:10px}.shared-actions .text-button{font-size:10px}.copied-label{font-size:10px;color:#68856c;white-space:nowrap}.share-preview{padding:10px 12px;margin:-6px 0 16px;border-radius:7px;background:#f3f5f0;color:#536558;font:600 13px 'Playfair Display',serif}.share-dialog .field{margin-bottom:5px}
@media(max-width:700px){.auth-card{padding:28px 23px 23px}.shared-card{align-items:flex-start;gap:10px;padding:13px}.shared-icon{width:36px;height:36px;flex-basis:36px;font-size:18px}.shared-info h3{font-size:14px}.shared-actions{flex-direction:column;align-items:flex-end;gap:4px}.shared-actions .primary-button{padding:8px;font-size:9px}.copied-label{font-size:9px;white-space:normal;text-align:right}.sidebar-bottom{display:none}}
.email-button{border:0;background:transparent;color:#849187;width:25px;height:28px;cursor:pointer;font-size:14px}.email-button:hover{color:var(--green)}.email-help{color:#8c978e;font-size:11px;line-height:1.6;margin:-8px 0 17px}
.auth-card #auth-email-wrap{margin-bottom:0}
.brand-mark{color:#fff}.brand-mark svg{width:26px;height:26px;display:block}
@media(max-width:700px){.brand-mark svg{width:23px;height:23px}}
.brand-long{font-size:19px;letter-spacing:-.8px;white-space:nowrap;gap:8px}.brand-long .brand-mark{flex:0 0 34px}
@media(max-width:700px){.brand-long{font-size:16px;letter-spacing:-.65px;gap:7px}.brand-long .brand-mark{flex-basis:30px}}
@media(max-width:700px){.sidebar-bottom{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:8;margin:0;padding:8px 16px;background:#fff;box-shadow:0 -4px 18px rgba(40,55,46,.07)}.main-content{padding-bottom:88px}.sidebar-bottom small{max-width:calc(100vw - 210px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toast{bottom:76px}}
.password-control{display:flex;align-items:center;gap:7px;margin-top:6px}.field .password-control input{flex:1;min-width:0;width:100%;margin-top:0;padding-right:11px}.password-toggle{position:static;transform:none;flex:0 0 40px;width:40px;height:40px;display:grid;place-items:center;border:1px solid #e4e8e1;border-radius:6px;background:#fff;color:#89958b;cursor:pointer}.password-toggle:hover{background:#f0f3ee;color:var(--green);border-color:#b7c6b7}.password-toggle:focus-visible{outline:2px solid #8eaa91;outline-offset:2px}.password-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.password-toggle[aria-pressed="false"] .eye-slash{display:none}
.sidebar-bottom{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.profile-person{display:flex;align-items:center;gap:10px;min-width:0}.profile-person .user-block{flex:1;min-width:0}.profile-person .user-block small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.profile-actions .logout-button{margin-left:0}
@media(max-width:700px){.sidebar-bottom{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:8px}.profile-person{flex:1}.profile-actions{gap:4px}.profile-person .user-block small{max-width:calc(100vw - 220px)}}
.session-loading{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:var(--canvas);color:#718075;font:500 12px 'DM Sans',sans-serif}.session-loading img{width:44px;height:44px;border-radius:13px}.session-loading i{width:25px;height:25px;border:2px solid #dfe7df;border-top-color:var(--green);border-radius:50%;animation:ricetta-spin .8s linear infinite}@keyframes ricetta-spin{to{transform:rotate(360deg)}}
.auth-switch button:hover{text-decoration:underline}.auth-panel form{gap:14px}.auth-panel h1{line-height:1.18}
