:root{--paper:#f3f0e9;--paper2:#e9e4d9;--white:#fdfbf6;--ink:#202823;--muted:#777970;--line:#ddd8cc;--green:#26493b;--orange:#edb65c;--coral:#df7659;--blue:#5a789c;--rad:18px;--shadow:0 8px 30px rgba(40,40,30,.035);--sans:'DM Sans',system-ui,-apple-system,sans-serif;--serif:'Fraunces',Georgia,serif}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--paper);color:var(--ink);font-family:var(--sans)}button,input,textarea,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #deab55;outline-offset:3px}h1,h2,h3,p{margin:0}small{color:var(--muted)}.shell{display:flex;min-height:100vh;max-width:2100px;margin:auto}.rail{width:98px;background:#eae6db;border-right:1px solid #d6d0c4;display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:18px 12px;position:sticky;top:0;height:100vh;flex:none;z-index:3}.rail-brand{display:flex;align-items:center;justify-content:center;background:var(--green);color:white;border-radius:15px;min-height:59px;margin-bottom:18px}.rail-brand svg{width:27px;height:27px}.nav-item{display:flex;align-items:center;flex-direction:column;gap:7px;padding:11px 4px;border:0;border-radius:12px;background:transparent;color:#7c7d75;min-height:70px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.nav-item svg{width:23px;height:23px;stroke-width:1.9}.nav-item.active{color:var(--green);background:var(--white);box-shadow:0 2px 8px #2221}.nav-item:hover{color:var(--green);background:#faf9f2a8}.rail-bottom{margin-top:auto;border-top:1px solid var(--line);padding-top:10px}.rail-time{font-size:19px;letter-spacing:-.07em;font-weight:900;text-align:center;padding-top:12px}.workspace{padding:27px 30px 36px;width:calc(100% - 98px);min-width:0}.eyebrow{font-weight:900;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--green)}.page-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 20px}.page-head h1{font-family:var(--serif);font-size:42px;font-weight:500;letter-spacing:-.065em}.page-head .subtitle{font-size:14px;color:var(--muted);margin-top:4px}.head-actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.btn{border:1px solid var(--line);border-radius:11px;padding:11px 15px;background:var(--white);color:var(--ink);font-weight:800;font-size:13px;display:inline-flex;gap:8px;align-items:center;justify-content:center;min-height:42px}.btn:hover{filter:brightness(.96)}.btn.primary{background:var(--green);color:#fff;border-color:var(--green)}.btn.dark{background:var(--ink);color:white;border-color:var(--ink)}.btn.danger{background:#fff3ee;color:#a44127;border-color:#ebc5bb}.btn.ghost{border:0;background:transparent}.btn.sm{padding:7px 10px;min-height:34px;font-size:12px}.btn svg{width:17px;height:17px}.card{background:var(--white);border:1px solid rgba(0,0,0,.055);border-radius:var(--rad);box-shadow:var(--shadow)}.card-pad{padding:20px}.card-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px}.card-title h3{font-weight:900;font-size:14px;text-transform:uppercase;letter-spacing:.065em}.card-title .plain-link,.plain-link{font-size:12px;font-weight:800;color:var(--green);border:0;background:none;padding:4px}.section-label{font-weight:900;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.muted{color:var(--muted)}.pill{border-radius:999px;padding:7px 11px;background:var(--paper2);color:var(--ink);font-size:12px;font-weight:800;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}.dot{width:8px;height:8px;border-radius:100%;background:var(--c,var(--green));display:inline-block;flex:none}.empty{color:var(--muted);font-size:14px;line-height:1.45;padding:20px 8px}.demo-alert{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fbe9c3;border:1px solid #ead59f;padding:9px 14px;border-radius:10px;margin-bottom:17px;font-size:12px}.demo-alert button{border:0;text-decoration:underline;font-weight:900;background:none;color:var(--ink)}
/* Dashboard */
.home-top{display:grid;grid-template-columns:1.2fr 1fr .88fr;gap:14px;margin-bottom:16px}.top-panel{min-height:200px;padding:18px 21px 15px;border-radius:16px;background:transparent;border-bottom:3px solid var(--ink);display:flex;flex-direction:column;justify-content:space-between;min-width:0}.clock-digits{font-weight:900;font-size:clamp(63px,7.4vw,126px);line-height:.83;letter-spacing:-.09em;white-space:nowrap;font-variant-numeric:tabular-nums}.clock-digits span{font-weight:500;color:var(--muted);font-size:.35em;vertical-align:top;margin-left:5px}.clock-date{font-size:19px;font-family:var(--serif);letter-spacing:-.035em;margin-top:12px}.top-weather-main{display:flex;align-items:center;gap:16px}.weather-temp{font-size:clamp(48px,5vw,76px);font-weight:800;line-height:.9;letter-spacing:-.07em}.weather-symbol{font-size:46px;font-weight:400}.weather-summary{font-size:13px;color:var(--muted);line-height:1.6}.weather-message{font-family:var(--serif);font-size:22px;line-height:1.15}.family-list{display:grid;gap:10px;margin-top:7px}.member{display:flex;align-items:center;gap:10px;min-width:0}.avatar{width:32px;height:32px;border-radius:50%;background:var(--c);display:grid;place-items:center;color:white;font-size:12px;font-weight:900;flex:none}.member strong{font-size:13px}.member small{margin-left:auto;font-size:11px}.home-bottom{display:grid;grid-template-columns:1.48fr 1fr;gap:16px}.home-left,.home-right{min-width:0;display:flex;flex-direction:column;gap:15px}.hero{background:var(--green);color:#f9f4e9;border-radius:var(--rad);padding:27px 28px;min-height:217px;display:flex;justify-content:space-between;align-items:center;gap:15px;overflow:hidden;position:relative}.hero:after{content:'';position:absolute;width:290px;height:290px;border:2px solid #ffffff16;border-radius:50%;right:-84px;top:-80px}.hero:before{content:'';position:absolute;width:225px;height:225px;border:2px solid #ffffff19;border-radius:50%;right:15px;top:10px}.hero>*{position:relative;z-index:1}.hero h2{font-family:var(--serif);font-size:clamp(34px,4vw,61px);font-weight:400;line-height:.97;letter-spacing:-.055em;max-width:450px;margin:10px 0}.hero p{color:#e9e9df;line-height:1.45;font-size:14px}.hero .kicker{font-size:12px;letter-spacing:.1em;font-weight:900;text-transform:uppercase;color:#c3dacd}.hero-big{font-size:clamp(82px,10vw,155px);font-weight:900;letter-spacing:-.1em;line-height:1;opacity:.95;min-width:120px;text-align:right}.week-card{padding:17px 19px}.week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.day-chip{background:#f4f1e8;border:1px solid transparent;border-radius:12px;padding:14px 3px;display:flex;flex-direction:column;gap:8px;align-items:center;min-width:0}.day-chip span{font-size:11px;font-weight:900;color:var(--muted);text-transform:uppercase}.day-chip b{font-size:25px;letter-spacing:-.04em}.day-chip.active{background:var(--green);color:white}.day-chip.active span{color:#bfd3c6}.event-list{display:grid;gap:9px;margin-top:16px}.event-row{border:1px solid #e4dfd5;background:#f8f5ef;border-radius:11px;padding:10px 12px;display:flex;align-items:center;gap:12px;text-align:left;width:100%;min-width:0}.event-row .event-time{font-size:13px;font-weight:900;min-width:45px}.event-row strong{font-size:13px}.event-row .event-person{margin-left:auto;flex:none}.photo-card{height:280px;overflow:hidden;position:relative;background:#dbcfc3;display:flex;align-items:center;justify-content:center;border-radius:var(--rad);border:1px solid #ffffff52}.photo-display{width:100%;height:100%;object-fit:cover}.photo-empty{width:100%;height:100%;background:radial-gradient(circle at 75% 38%,#ffcd8599 0 10%,transparent 38%),linear-gradient(130deg,#86a091,#526e65 42%,#2b4c41);color:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px}.photo-empty strong{font-family:var(--serif);font-size:32px;font-weight:400}.photo-overlay{background:linear-gradient(transparent,#0009);position:absolute;bottom:0;left:0;right:0;padding:40px 16px 14px;color:white;display:flex;justify-content:space-between;align-items:flex-end;pointer-events:none}.photo-overlay strong{font-size:12px;text-transform:uppercase;letter-spacing:.08em}.photo-overlay em{font-family:var(--serif);font-size:17px}.summary-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.quick-card{padding:18px;min-width:0}.stat-num{font-weight:900;font-size:51px;line-height:1;letter-spacing:-.07em}.quick-detail{font-size:12px;color:var(--muted);margin-top:5px}.progressbar{height:8px;background:#e5e1d7;border-radius:12px;overflow:hidden;margin-top:15px}.progressbar i{height:100%;display:block;background:var(--green);border-radius:12px}.small-list{display:grid;gap:9px;margin-top:10px}.small-item{display:flex;align-items:center;gap:8px;font-size:13px}.small-item .dot{width:6px;height:6px}.meals-row{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:13px;padding:9px 0;border-top:1px solid var(--line)}
/* Sections */
.content-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.wide{grid-column:span 2}.section-card{padding:22px}.list-stack{display:grid;gap:9px}.todo-item{display:flex;align-items:center;gap:11px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#f8f6f0;min-width:0}.todo-item.done{opacity:.62}.todo-item.done .item-name{text-decoration:line-through}.item-name{font-weight:800;font-size:14px;word-break:break-word}.item-sub{font-size:12px;color:var(--muted);margin-top:4px}.item-content{min-width:0;flex:1}.check{appearance:none;width:22px;height:22px;border:2px solid #a6a99d;border-radius:7px;flex:none;background:white;cursor:pointer}.check:checked{background:var(--green);border-color:var(--green);box-shadow:inset 0 0 0 4px var(--green);position:relative}.check:checked:after{content:'✓';position:absolute;top:-3px;left:3px;color:white;font-weight:900;font-size:18px}.icon-btn{border:0;background:transparent;color:var(--muted);padding:5px;display:grid;place-items:center;flex:none}.icon-btn:hover{color:var(--ink)}.icon-btn svg{width:19px;height:19px}.formbar{display:flex;gap:9px;align-items:stretch;margin-bottom:19px;flex-wrap:wrap}.field,.select{border:1px solid #d8d4ca;background:white;color:var(--ink);padding:12px 13px;border-radius:10px;min-width:0;min-height:43px;font-size:14px}.field:focus,.select:focus{border-color:var(--green)}.field.grow{flex:1;min-width:160px}.full{width:100%}.formbar .select{min-width:112px}.chips{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:15px}.chip{border:1px solid var(--line);border-radius:100px;background:white;color:var(--ink);padding:9px 13px;font-size:12px;font-weight:800}.chip.selected{background:var(--green);color:white;border-color:var(--green)}.calendar-toolbar{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-bottom:18px}.calendar-toolbar h2{font-family:var(--serif);font-size:28px;font-weight:500;text-transform:capitalize}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.month-label{text-align:center;font-size:12px;text-transform:uppercase;letter-spacing:.1em;font-weight:900;padding:8px}.month-day{min-height:115px;border:1px solid var(--line);border-radius:11px;padding:10px;background:#fffefa;text-align:left;min-width:0;display:flex;flex-direction:column;gap:7px}.month-day:hover{background:#f6f1e6}.month-day.today{border:2px solid var(--green);padding:9px}.month-day.faded{opacity:.37}.month-day .day-number{font-size:14px;font-weight:900}.month-day .mini-event{background:#eff1e8;padding:5px 7px;border-radius:6px;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;max-width:100%}.month-day .mini-event span{font-weight:900}.month-day .more{font-size:10px;color:var(--muted);font-weight:700}.shop-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.shop-col{padding:18px;min-width:0}.shop-col h3{font-size:15px;margin-bottom:13px;font-weight:900}.menu-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}.menu-day{padding:16px 12px;min-width:0;min-height:210px}.menu-day .big-num{font-size:31px;font-weight:900;letter-spacing:-.06em;margin:4px 0 13px}.menu-day .meal-line{font-size:13px;word-break:break-word;margin:8px 0 12px;min-height:36px}.menu-day .meal-line small{display:block;text-transform:uppercase;font-weight:900;font-size:10px;margin-bottom:4px}.photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.photo-tile{aspect-ratio:4/3;overflow:hidden;border-radius:12px;background:#e3dfd6;position:relative}.photo-tile img{width:100%;height:100%;object-fit:cover}.photo-tile button{position:absolute;top:9px;right:9px;background:#fffd;border:0;border-radius:9px;padding:9px;box-shadow:0 2px 8px #0003}.photo-tile .caption{position:absolute;bottom:0;left:0;right:0;color:white;background:linear-gradient(transparent,#000b);padding:27px 12px 9px;font-size:13px;font-weight:800}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-group{display:flex;flex-direction:column;gap:7px}.form-group label{font-size:12px;font-weight:900}.form-group input,.form-group select{width:100%}.hint{font-size:12px;line-height:1.5;color:var(--muted)}.note{font-size:13px;padding:12px;border-radius:10px;background:#f1efe7;color:#58665d;line-height:1.45}.notes{line-height:1.7;color:var(--muted);font-size:13px}.divider{border:0;border-top:1px solid var(--line);margin:19px 0}.label-row{display:flex;gap:8px;align-items:center;justify-content:space-between}.spinner{display:inline-block;width:15px;height:15px;border:2px solid #bbb;border-top-color:var(--green);border-radius:100%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
/* Modal */
.modal-backdrop{position:fixed;inset:0;background:#13211bd0;z-index:50;display:flex;align-items:center;justify-content:center;padding:18px}.modal{width:min(530px,100%);background:var(--white);border-radius:18px;padding:24px;max-height:95vh;overflow:auto;box-shadow:0 20px 80px #0005}.modal h2{font-family:var(--serif);font-weight:500;font-size:32px;letter-spacing:-.05em;margin-bottom:17px}.modal .form-grid{gap:12px}.modal .footer{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.toast{position:fixed;right:24px;bottom:24px;z-index:100;background:#213c32;color:white;border-radius:12px;padding:13px 18px;font-weight:700;box-shadow:0 5px 15px #0003;max-width:360px;font-size:13px}
@media(min-width:1600px){.workspace{padding:30px 42px}.home-top{grid-template-columns:1.15fr 1fr .8fr}.photo-card{height:340px}.hero{min-height:265px}.top-panel{min-height:225px}.month-day{min-height:145px}.home-bottom{grid-template-columns:1.43fr 1fr}}
@media(max-width:1150px){.workspace{padding:20px}.rail{width:78px;padding:12px 7px}.workspace{width:calc(100% - 78px)}.home-top{grid-template-columns:1fr 1fr}.home-top .top-panel:last-child{grid-column:span 2;min-height:88px}.family-list{display:flex;gap:19px;flex-wrap:wrap}.member small{display:none}.home-bottom{grid-template-columns:1fr 1fr}.hero{min-height:190px;padding:21px}.hero-big{display:none}.home-right .summary-row{grid-template-columns:1fr}.photo-card{height:240px}.menu-grid{grid-template-columns:repeat(4,1fr)}.shop-cols{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.shell{display:block;padding-bottom:76px}.rail{width:100%;height:70px;position:fixed;top:auto;bottom:0;padding:6px 4px;border-right:0;border-top:1px solid var(--line);flex-direction:row;justify-content:space-around;align-items:center;gap:1px}.rail-brand,.rail-bottom{display:none}.nav-item{min-height:60px;min-width:0;flex:1;padding:7px 0;font-size:9px;gap:3px}.nav-item svg{width:20px;height:20px}.workspace{padding:20px 14px 30px;width:100%}.page-head h1{font-size:35px}.page-head{align-items:flex-start}.home-top{grid-template-columns:1fr 1fr;gap:8px}.top-panel{min-height:155px;padding:10px 4px}.clock-digits{font-size:clamp(52px,11vw,85px)}.clock-date{font-size:15px}.top-weather-main{gap:7px}.weather-temp{font-size:clamp(42px,10vw,65px)}.weather-symbol{font-size:29px}.weather-message{font-size:17px}.home-top .top-panel:last-child{min-height:80px}.home-bottom{grid-template-columns:1fr}.hero{min-height:150px}.hero h2{font-size:44px}.summary-row{grid-template-columns:1fr 1fr!important}.photo-card{height:220px}.week-strip{gap:3px}.day-chip{padding:8px 2px}.day-chip b{font-size:20px}.day-chip span{font-size:9px}.card-pad,.section-card{padding:15px}.content-grid{grid-template-columns:1fr}.wide{grid-column:span 1}.form-grid{grid-template-columns:1fr}.month-grid{gap:3px}.month-day{padding:5px;min-height:77px;border-radius:7px;gap:2px}.month-day.today{padding:4px}.month-day .mini-event{padding:3px;font-size:9px}.month-label{font-size:9px}.shop-cols{grid-template-columns:1fr}.menu-grid{grid-template-columns:repeat(2,1fr)}.photo-grid{grid-template-columns:repeat(2,1fr)}.formbar .btn{flex:1}.page-head{flex-wrap:wrap}.head-actions{width:100%}.demo-alert{font-size:11px}.modal{padding:18px}}
@media(max-width:370px){.nav-item{font-size:8px}.nav-item svg{width:17px;height:17px}.clock-digits{font-size:44px}.month-day .mini-event span{display:none}}

/* v2 secure household connection */
.connection-overlay{position:fixed;inset:0;z-index:200;background:linear-gradient(120deg,#e8e5dc,#f3f0e9);justify-content:center;align-items:center;padding:22px;overflow:auto}
.connect-card{background:#fdfbf6;border:1px solid #ddd8cc;box-shadow:0 25px 65px #17251d16;border-radius:24px;width:min(460px,100%);padding:36px;display:flex;flex-direction:column;gap:14px}
.connect-logo{background:#26493b;color:white;width:54px;height:54px;display:grid;place-items:center;border-radius:18px;font-size:36px}
.connect-card h1{font-family:var(--serif);font-size:37px;font-weight:500;letter-spacing:-.06em}.connect-card p{color:var(--muted);line-height:1.5}
.connect-card form{display:grid;gap:15px}.connect-card form label{display:grid;gap:6px;font-size:13px;font-weight:700}
.connect-card input{width:100%;border:1px solid var(--line);border-radius:10px;padding:13px;font-size:15px;background:white}
.connect-card button{padding:14px;border:0;border-radius:10px;background:var(--green);color:white;font-weight:750}.connect-card small{font-size:12px;line-height:1.5}

/* Casa 2.1: password-session preference */
.remember-device{display:flex!important;flex-direction:row!important;align-items:center;gap:9px;cursor:pointer;line-height:1.5;font-size:14px}.remember-device input{width:17px;height:17px;accent-color:#365f50;flex:0 0 auto}

/* Casa 2.2 · Clickable events inside agenda cells, without nesting buttons */
.month-day{cursor:pointer;}
.month-day:focus-visible{outline:3px solid var(--green);outline-offset:2px;}
.month-day .mini-event{display:block;width:100%;border:0;border-left:3px solid var(--green);font:inherit;color:var(--ink);cursor:pointer;appearance:none;line-height:1.35;}
.month-day .mini-event:hover{background:#dbe6d5;box-shadow:0 0 0 1px #a2bba4;}
.month-day .mini-event:focus-visible{outline:2px solid var(--green);outline-offset:1px;}
.calendar-help{color:var(--muted);font-size:12px;margin:-6px 0 12px;line-height:1.45;}
@media(max-width:760px){.month-day .mini-event{min-height:24px;}}

/* Casa 2.3: visor fotográfico a tamaño de pantalla, compatible con tablet y móvil */
.photo-tile .photo-open{position:absolute;inset:0;width:100%;height:100%;display:block;text-align:left;cursor:zoom-in;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;color:inherit;}
.photo-tile .photo-open img{width:100%;height:100%;object-fit:cover;display:block;}
.photo-tile .photo-open .caption{pointer-events:none;}
.photo-tile .photo-delete{z-index:2;cursor:pointer;}
.photo-tile .photo-open:focus-visible{outline:3px solid var(--green);outline-offset:-3px;}
body.photo-viewer-open{overflow:hidden;}
.photo-viewer{position:fixed;inset:0;z-index:1000;background:#080a0b;color:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;isolation:isolate;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);}
.photo-viewer-toolbar{position:absolute;z-index:2;top:max(12px,env(safe-area-inset-top,0px));left:16px;right:16px;display:flex;justify-content:space-between;align-items:center;pointer-events:none;}
.photo-viewer-counter{font-size:14px;font-weight:700;background:#151919ab;padding:9px 15px;border-radius:99px;}
.photo-viewer-btn{pointer-events:auto;border:1px solid #ffffff45;background:#171c1cd9;color:#fff;border-radius:50%;width:46px;height:46px;display:grid;place-items:center;cursor:pointer;box-shadow:0 2px 18px #0008;touch-action:manipulation;}
.photo-viewer-btn:hover{background:#3a4142;}
.photo-viewer-btn:focus-visible{outline:3px solid #d6efce;outline-offset:2px;}
.photo-viewer-stage{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:0;touch-action:pan-y;}
.photo-viewer-image{display:block;max-width:100vw;max-height:100dvh;max-height:100vh;width:auto;height:auto;object-fit:contain;user-select:none;-webkit-user-drag:none;}
.photo-viewer-prev,.photo-viewer-next{position:absolute;top:50%;transform:translateY(-50%);z-index:2;}
.photo-viewer-prev{left:clamp(6px,2vw,30px);}
.photo-viewer-next{right:clamp(6px,2vw,30px);}
.photo-viewer-footer{position:absolute;bottom:max(16px,env(safe-area-inset-bottom,0px));left:14px;right:14px;text-align:center;text-shadow:0 2px 12px #000c;font-size:14px;font-weight:600;pointer-events:none;}
@media(max-width:600px){.photo-viewer-prev,.photo-viewer-next{width:38px;height:38px;opacity:.85;}.photo-viewer-image{max-width:100vw;max-height:100dvh;}.photo-viewer-footer{bottom:max(18px,env(safe-area-inset-bottom,0px));}}

/* CASA 2.4 — Próximas citas de la agenda en la página Inicio */
.upcoming-card{padding:19px 20px 18px;min-width:0;}
.upcoming-card .card-title{margin-bottom:5px;}
.upcoming-card .card-title h3{font-size:22px;letter-spacing:-.035em;}
.upcoming-description{font-size:12px;color:var(--muted);margin:0 0 14px;line-height:1.5;}
.upcoming-list{display:flex;flex-direction:column;gap:8px;}
.upcoming-item{display:flex;align-items:center;gap:13px;min-width:0;width:100%;border:1px solid #e8e3d9;border-radius:12px;background:#f8f6f1;padding:10px 12px;text-align:left;color:var(--ink);cursor:pointer;transition:background .16s,border-color .16s,transform .16s;}
.upcoming-item:hover,.upcoming-item:focus-visible{background:#f0efe6;border-color:#9eb2a5;}
.upcoming-item:active{transform:scale(.995);}
.upcoming-date{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:53px;min-height:56px;border-radius:9px;background:#e5eae2;color:#294e40;}
.upcoming-date span{font-size:10px;font-weight:850;letter-spacing:.09em;text-transform:uppercase;}
.upcoming-date strong{font-weight:900;font-size:25px;line-height:1;}
.upcoming-info{display:flex;min-width:0;flex:1;flex-direction:column;gap:3px;}
.upcoming-day{font-size:11px;color:#607267;font-weight:700;text-transform:capitalize;}
.upcoming-name{font-size:14px;font-weight:800;line-height:1.35;overflow-wrap:anywhere;}
.upcoming-note{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;}
.upcoming-owner{flex:none;display:flex;align-items:center;max-width:120px;gap:6px;font-size:11px;color:var(--muted);}
.upcoming-owner span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.upcoming-owner-dot{flex:none;display:block;width:9px;height:9px;background:var(--owner);border-radius:50%;}
.upcoming-arrow{flex:none;color:#7a827a;display:flex;}
.upcoming-footer{text-align:right;margin-top:11px;color:var(--muted);font-size:11px;}
.upcoming-footer button{font-size:11px;}
.upcoming-empty{border:1px dashed #d3d6ca;border-radius:12px;min-height:115px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:11px;padding:17px;text-align:center;color:var(--muted);font-size:13px;}
.upcoming-empty .btn{flex:none;}
@media(max-width:1200px){.upcoming-item{gap:9px;}.upcoming-owner{max-width:85px;}}
@media(max-width:960px){.upcoming-owner{max-width:140px;}}
@media(max-width:520px){.upcoming-card{padding:15px 13px;}.upcoming-item{padding:9px 8px;gap:8px;}.upcoming-date{width:46px;min-height:52px;}.upcoming-date strong{font-size:23px;}.upcoming-name{font-size:13px;}.upcoming-owner{max-width:76px;font-size:10px;}.upcoming-arrow{display:none;}}
@media(max-width:380px){.upcoming-owner{display:none;}}

/* Casa 2.5 - Franja de previsión de cinco días, compacta y táctil */
.forecast-card{padding:13px 18px 14px;margin:0 0 16px;min-width:0;background:#fdfbf6;}
.forecast-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 9px;}
.forecast-heading{display:flex;align-items:baseline;gap:13px;min-width:0;}
.forecast-heading .eyebrow{font-size:10px;letter-spacing:.09em;white-space:nowrap;}
.forecast-heading h3{font-size:16px;font-weight:800;letter-spacing:-.02em;white-space:nowrap;}
.forecast-provider{font-size:10px;color:var(--muted);white-space:nowrap;text-align:right;}
.forecast-provider a{color:#315c4c;text-decoration:underline;text-underline-offset:2px;}
.forecast-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;}
.forecast-day{min-width:0;background:#f3f2eb;border:1px solid #e9e6dc;border-radius:10px;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;column-gap:8px;padding:8px 10px;min-height:59px;}
.forecast-weekday{font-size:12px;font-weight:850;text-transform:capitalize;white-space:nowrap;}
.forecast-date{font-size:10px;color:var(--muted);white-space:nowrap;}
.forecast-glyph{font-size:24px;line-height:1;font-weight:500;text-align:center;}
.forecast-temps{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:12px;font-variant-numeric:tabular-nums;line-height:1.1;}
.forecast-temps b{font-weight:850;}
.forecast-temps span{color:#788177;}
@media(max-width:1450px){.forecast-day{grid-template-columns:1fr auto auto;column-gap:6px;}.forecast-date{display:none;}}
@media(max-width:1000px){.forecast-card{padding:13px 12px;}.forecast-grid{gap:6px;}.forecast-day{display:flex;flex-direction:column;gap:3px;padding:9px 3px;min-height:100px;}.forecast-date{display:block;font-size:10px;}.forecast-glyph{font-size:27px;}.forecast-temps{flex-direction:row;gap:6px;font-size:12px;}}
@media(max-width:510px){.forecast-head{align-items:flex-start;}.forecast-heading{flex-direction:column;align-items:flex-start;gap:2px;}.forecast-heading h3{font-size:15px;}.forecast-provider{font-size:9px;max-width:140px;white-space:normal;line-height:1.3;}.forecast-day{min-height:95px;gap:4px;}.forecast-weekday{font-size:11px;}.forecast-date{font-size:9px;}.forecast-glyph{font-size:24px;}.forecast-temps{font-size:11px;gap:4px;}}
@media(max-width:350px){.forecast-provider{max-width:95px;}.forecast-grid{gap:4px;}.forecast-day{padding:7px 1px;}.forecast-temps{font-size:10px;gap:2px;}}

/* Casa 2.7: nombre de la familia en el encabezado de Inicio. */
.page-head.home-page-head{min-width:0;}
.page-head.home-page-head>div:first-child{min-width:0;flex:1 1 340px;}
.page-head.home-page-head .eyebrow{text-transform:none;letter-spacing:.055em;}
.page-head.home-page-head h1{font-size:clamp(29px,3.1vw,43px);line-height:1.12;letter-spacing:-.05em;text-wrap:balance;overflow-wrap:break-word;}
@media(max-width:760px){.page-head.home-page-head h1{font-size:clamp(28px,6.8vw,37px);}}

/* Casa 2.8 — Medicación familiar */
.medication-intro{margin-bottom:16px;line-height:1.5;max-width:900px}
.medication-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(285px,1fr));gap:16px;align-items:stretch}
.medication-card{padding:19px;display:flex;flex-direction:column;gap:12px;min-width:0}
.medication-card-top{display:flex;gap:13px;align-items:flex-start}
.medication-symbol{height:46px;width:46px;flex:0 0 46px;background:#dfeae1;color:#33594b;border-radius:13px;display:flex;align-items:center;justify-content:center}
.medication-card-copy{min-width:0;flex:1}
.medication-card h3{font-size:20px;font-weight:800;line-height:1.28;overflow-wrap:anywhere;margin:0 0 7px}
.medication-quantity{font-size:14px;overflow-wrap:anywhere}.medication-quantity>span{color:var(--muted)}
.medication-detail-label{font-size:11px;font-weight:800;letter-spacing:.075em;color:var(--muted);text-transform:uppercase;margin:2px 0 8px}
.medication-recipients{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.medication-notes{padding:11px;background:#f5f3eb;border-radius:10px;font-size:13px}
.medication-notes p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5}
.medication-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:10px;border-top:1px solid #e8e7df}
.medication-actions .btn{display:flex;align-items:center;gap:6px}
.medication-empty{max-width:650px;margin:28px auto 0;padding:40px 22px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}
.medication-empty>svg{color:#587b69}.medication-empty h2{font-size:24px;margin:0}.medication-empty p{color:var(--muted);line-height:1.6;margin:0 0 4px}
.recipient-fieldset{border:0;padding:0;min-width:0;margin:0}.recipient-fieldset legend{font-size:13px;font-weight:700;margin-bottom:10px;padding:0}
.recipient-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:9px}
.recipient-option{position:relative;display:flex;align-items:center;gap:9px;min-height:46px;border:1px solid #d4d9cf;border-radius:10px;padding:8px 10px;cursor:pointer;background:#fbfaf6;line-height:1.3;overflow-wrap:anywhere;font-size:13px;font-weight:700}
.recipient-option:has(input:checked){border-color:#3e7058;background:#e6f0e5;color:#254936}
.recipient-option input{position:absolute;width:1px;height:1px;opacity:0}
.recipient-option:has(input:focus-visible){outline:3px solid #8cb8a2;outline-offset:2px}
.recipient-check{width:19px;height:19px;flex:0 0 19px;display:flex;align-items:center;justify-content:center;border:1px solid #b5c5b9;border-radius:5px;color:transparent;background:white}
.recipient-option:has(input:checked) .recipient-check{color:white;background:#35654c;border-color:#35654c}
.recipient-avatar{width:24px;height:24px;flex:0 0 24px;background:var(--c);color:white;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:12px}
.recipient-selected{min-height:33px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:10px}
.medication-selected-label{color:var(--muted);font-size:12px;margin-right:3px}
@media(max-width:600px){.medication-grid{grid-template-columns:1fr}.medication-card{padding:15px}.recipient-options{grid-template-columns:repeat(2,minmax(0,1fr));}.recipient-option{padding:7px;font-size:12px;gap:6px}.medication-intro{font-size:12px}}

/* Con ocho apartados, la navegación móvil mantiene todas las opciones visibles. */
@media(max-width:760px){.nav-item{font-size:8px;letter-spacing:-.025em;text-transform:none;gap:3px;padding:7px 0}.nav-item span{min-width:0;max-width:100%;text-align:center;white-space:nowrap}.nav-item svg{width:20px;height:20px}}
@media(max-width:380px){.nav-item{font-size:7.5px;letter-spacing:-.035em}.nav-item svg{width:18px;height:18px}}

/* Casa 2.9: programación de medicación (solo consulta de horarios, sin registrar administraciones) */
.med-tabs{display:flex;gap:5px;align-items:center;background:#eaeae3;padding:5px;border-radius:14px;max-width:max-content;margin:0 0 19px}
.med-tab{appearance:none;border:0;cursor:pointer;border-radius:10px;padding:11px 17px;font-size:13px;font-weight:800;color:#5e6a5f;background:transparent;white-space:nowrap}
.med-tab.selected{background:#fff;color:#264d3b;box-shadow:0 2px 8px #253f3215}
.med-tab:focus-visible,.med-slot-item:focus-visible{outline:3px solid #79af9b;outline-offset:2px}
.med-daily-header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0 0 18px;flex-wrap:wrap}
.med-daily-header h2{margin:0 0 4px;font-size:23px;letter-spacing:-.035em}
.med-daily-header p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}
.med-slot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;align-items:stretch}
.med-slot-column{padding:0;overflow:hidden;min-height:225px}
.med-slot-title{display:flex;gap:11px;align-items:center;background:#e4eae1;border-bottom:1px solid #d8e0d6;padding:15px;color:#2f5847}
.med-slot-title h3{font-size:18px;font-weight:850;letter-spacing:-.02em;flex:1}
.med-slot-counter{font-size:12px;font-weight:800;border-radius:999px;background:white;min-width:27px;height:27px;display:flex;align-items:center;justify-content:center}
.med-slot-list{padding:12px;display:flex;flex-direction:column;gap:9px}
.med-slot-empty{font-size:13px;color:var(--muted);text-align:center;line-height:1.55;padding:22px 6px;margin:0}
.med-slot-item{cursor:pointer;display:flex;flex-direction:column;gap:8px;width:100%;text-align:left;background:#f8f7f2;border:1px solid #e8e7db;border-radius:12px;padding:14px;color:var(--ink);transition:background .15s,border-color .15s}
.med-slot-item:hover{background:#eef2ea;border-color:#b8c7b6}
.med-slot-name{font-weight:850;font-size:15px;overflow-wrap:anywhere}
.med-slot-quantity{font-size:18px;color:#35664e;overflow-wrap:anywhere}
.med-slot-people{display:flex;flex-wrap:wrap;align-items:center;gap:5px}
.med-slot-notes{font-size:11px;line-height:1.4;color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere}
.med-program-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(305px,1fr));gap:15px}
.med-program-card{padding:19px;display:flex;flex-direction:column;gap:15px;min-width:0}
.med-program-title{display:flex;align-items:start;gap:12px}
.med-program-title h3{font-size:19px;font-weight:850;margin:1px 0 4px}
.med-program-title p{font-size:12px;color:var(--muted);line-height:1.4;margin:0}
.med-program-slots{display:flex;flex-wrap:wrap;gap:7px}
.med-program-slots span{background:#edf1ea;border-radius:9px;padding:9px 10px;display:flex;flex-direction:column;gap:3px;flex:1 1 90px;max-width:160px}
.med-program-slots b{font-size:12px;color:#2c6149}
.med-program-slots small{font-size:12px;overflow-wrap:anywhere}
.med-program-notes{font-size:12px;color:var(--muted);white-space:pre-wrap;margin:0}
.med-schedule-rows{display:flex;flex-direction:column;gap:9px}
.med-schedule-row{background:#f5f5ef;border:1px solid #e3e6dd;border-radius:11px;display:flex;align-items:center;gap:12px;padding:10px 12px}
.med-schedule-check{display:flex;align-items:center;gap:9px;min-width:114px;font-size:13px;font-weight:800}
.med-schedule-check input{width:18px;height:18px;accent-color:#3c7656}
.med-schedule-dose{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}
.med-schedule-dose small{font-size:11px;color:var(--muted)}
.med-schedule-dose .field{width:100%;min-width:0}
.med-schedule-dose .field:disabled{opacity:.45}
.med-day-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.med-day-check{min-width:0;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:5px;border:1px solid #d5ded3;background:#f5f7f2;border-radius:9px;padding:9px 3px;font-weight:750;font-size:11px}
.med-day-check:has(input:checked){border-color:#3a7055;background:#e1efe4;color:#276043}
.med-day-check input{accent-color:#3a7055;width:17px;height:17px}
@media(max-width:970px){.med-slot-grid{grid-template-columns:1fr}.med-slot-column{min-height:0}.med-slot-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}}
@media(max-width:580px){.med-tabs{width:100%;max-width:none;gap:1px}.med-tab{flex:1;padding:10px 5px;font-size:11px}.med-slot-list{display:flex}.med-program-grid{grid-template-columns:1fr}.med-schedule-row{gap:8px}.med-schedule-check{min-width:90px;font-size:12px}.med-schedule-dose small{font-size:10px}.med-day-check{padding:7px 1px;font-size:10px}}


/* CASA 2.10 — portada de referencia, compacto en tablet, fluido en móvil */
.home210{display:flex;flex-direction:column;gap:15px;min-width:0}
.home210-kicker{font-size:11px;font-weight:900;letter-spacing:.13em;color:var(--green);text-transform:uppercase;display:block}
.home210-top{display:grid;grid-template-columns:1.02fr .94fr 1.12fr;gap:12px;min-width:0}
.home210-top-card{padding:17px 20px;min-width:0;min-height:110px;display:flex;flex-direction:column;gap:8px;justify-content:flex-start;border-bottom:2px solid var(--green)}
.home210-clock .clock-digits{font-size:clamp(30px,3.3vw,43px);line-height:1.05;letter-spacing:-.075em;margin-top:3px}
.home210-clock .clock-date{font-family:var(--sans);font-size:12px;letter-spacing:normal;margin-top:0;line-height:1.3;color:#62645f}
.home210-family .family-list{display:flex;flex-direction:column;gap:5px;margin-top:0}
.home210-family .member{gap:8px}.home210-family .avatar{width:28px;height:28px;font-size:11px}
.home210-family .member strong{font-size:12px}.home210-family .member small{font-size:11px}
.home210-next-button{display:flex;align-items:center;gap:10px;text-align:left;border:0;background:none;color:var(--ink);padding:0;min-width:0;width:100%;flex:1}
.home210-next-button:hover .home210-next-details strong{text-decoration:underline}
.home210-next-icon{display:flex;align-items:center;justify-content:center;background:#f2eee5;width:42px;height:42px;border-radius:10px;flex:none}
.home210-next-details{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
.home210-next-details strong{font-size:15px;line-height:1.24;overflow-wrap:anywhere}
.home210-next-details small{font-size:11px;line-height:1.25}
.home210-next-person{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:11px;white-space:nowrap;max-width:95px;overflow:hidden;text-overflow:ellipsis}
.home210-next-person .dot{background:var(--c);width:7px;height:7px}
.home210-next-empty{display:flex;align-items:center;gap:4px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.home210-weatherrow{display:grid;grid-template-columns:minmax(0,2.05fr) minmax(245px,1fr);gap:14px;min-width:0}
.home210-weather{background:#204b3b;color:#fff;border-radius:var(--rad);padding:19px 22px;display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,1fr);gap:22px;min-height:175px}
.home210-weather .home210-kicker{color:#f5f5ee;font-size:10px}
.home210-weather-current{display:flex;flex-direction:column;min-width:0;gap:14px}
.home210-weather-main{display:flex;align-items:center;gap:12px;min-width:0}
.home210-now-symbol{font-size:50px;line-height:1;flex:none;color:#ffda67}
.home210-now-temp{font-size:clamp(42px,4.4vw,70px);line-height:1;letter-spacing:-.07em;white-space:nowrap}
.home210-now-info{display:flex;flex-direction:column;gap:4px;min-width:0}.home210-now-info b{font-family:var(--serif);font-size:18px;font-weight:500}.home210-now-info small{color:#d5e3d8;font-size:11px;line-height:1.3}
.home210-weather-unavailable{font-size:15px;line-height:1.5}
.home210-weather-description{font-family:var(--serif);font-size:17px;line-height:1.3;margin-top:auto}
.home210-weather-forecast{border-left:1px solid #ffffff66;padding-left:22px;min-width:0;display:flex;flex-direction:column;gap:10px}
.home210-forecast-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;min-width:0;flex:1}
.home210-wday{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:2px 4px;border-right:1px solid #ffffff27;min-width:0;font-variant-numeric:tabular-nums}
.home210-wday:last-child{border-right:0}.home210-wday-name{font-size:10px;font-weight:800;text-transform:uppercase;color:#e3ece1}.home210-wday-date{font-size:12px;font-weight:800}.home210-wday-symbol{font-size:27px;color:#ffd15d;line-height:1.1}.home210-wday strong{font-size:13px}.home210-wday small{font-size:11px;color:#c8d7cf}
.home210-photo{height:auto;min-height:175px;cursor:pointer}.home210-photo .photo-empty strong{font-size:27px}
.home210-body{display:grid;grid-template-columns:minmax(0,1.98fr) minmax(280px,1fr);gap:14px;min-width:0;align-items:start}
.home210-left,.home210-right{display:flex;flex-direction:column;gap:14px;min-width:0}
.home210-medication{padding:16px 18px 18px;min-width:0}
.home210-medication .card-title{margin-bottom:12px}.home210-medication .card-title h3{display:flex;align-items:center;gap:8px;letter-spacing:0;font-size:16px}
.home210-medication .card-title h3 svg{color:var(--green)}
.home210-med-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;min-width:0}
.home210-med-slot{border:1px solid #e7e7de;background:#faf9f5;border-radius:12px;overflow:hidden;min-width:0}
.home210-med-head{display:flex;align-items:center;gap:7px;background:#e7eee8;padding:10px;color:#2e5845}.home210-med-head strong{font-size:13px;flex:1;min-width:0}.home210-count{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:white;font-size:12px;font-weight:850;flex:none}
.home210-med-items{padding:8px;display:flex;flex-direction:column;gap:6px;min-height:78px}
.home210-med-item{display:flex;flex-direction:column;align-items:flex-start;gap:4px;border:0;border-radius:9px;text-align:left;background:#fdfbf8;padding:6px 7px;color:var(--ink);width:100%;min-width:0;cursor:pointer}
.home210-med-item:not(:last-child){border-bottom:1px solid #e3e7e0}
.home210-med-item:hover{background:#edf4ec}.home210-med-item>strong{font-size:12px;overflow-wrap:anywhere;line-height:1.3}
.home210-med-dose{font-size:13px;color:#276348;font-weight:900;overflow-wrap:anywhere}
.home210-med-recipients{display:flex;gap:4px;flex-wrap:wrap}.home210-med-recipients .pill{font-size:10px;padding:5px 7px}
.home210-med-empty{margin:auto;text-align:center;color:var(--ink);font-size:12px;display:flex;flex-direction:column;gap:5px;padding:12px 2px}.home210-med-empty span{font-size:10px;color:var(--muted);line-height:1.3}
.home210-right .summary-row{display:grid!important;grid-template-columns:1fr 1fr!important;gap:11px}
.home210-right .quick-card{padding:14px;min-width:0}.home210-right .quick-card .card-title{margin-bottom:13px}.home210-right .quick-card .card-title h3{font-size:12px}.home210-right .quick-card .card-title .plain-link{font-size:11px}
.home210-right .quick-card .stat-num{font-size:40px}.home210-right .quick-detail{font-size:11px}.home210-right .quick-card .progressbar{margin-top:10px}
.home210-right .card-pad{padding:16px 18px}.home210-right .card-title{margin-bottom:11px}.home210-right .card-title h3{font-size:13px}
.home210-right .week-card{padding:15px 14px}.home210-right .week-strip{gap:4px}.home210-right .day-chip{padding:10px 1px;gap:6px}.home210-right .day-chip span{font-size:9px}.home210-right .day-chip b{font-size:19px}
.home210-right .event-row{gap:5px;padding:9px 6px}.home210-right .event-row strong{font-size:11px;min-width:0;overflow-wrap:anywhere}.home210-right .event-row .pill{font-size:10px;padding:6px}
.home210-left .upcoming-card{flex:1}.home210-left .upcoming-item{padding:8px 10px}.home210-left .upcoming-date{width:47px;min-height:47px}.home210-left .upcoming-date strong{font-size:22px}
@media(max-width:1360px){.home210-weather{gap:14px;padding:17px}.home210-weather-forecast{padding-left:14px}.home210-next-person{display:none}.home210-now-symbol{font-size:37px}.home210-now-info b{font-size:15px}.home210-wday{padding:2px}}
@media(max-width:1140px){.home210-top{grid-template-columns:1fr 1fr 1.15fr}.home210-top-card{padding:13px;min-height:106px}.home210-weatherrow{grid-template-columns:minmax(0,1.6fr) minmax(215px,.75fr)}.home210-weather{grid-template-columns:1fr;gap:10px}.home210-weather-current{gap:6px}.home210-weather-description{display:none}.home210-weather-forecast{border-left:0;border-top:1px solid #ffffff55;padding:9px 0 0}.home210-body{grid-template-columns:minmax(0,1.6fr) minmax(230px,1fr)}.home210-med-grid{gap:5px}.home210-med-head{padding:8px 5px}.home210-right .week-strip{gap:2px}.home210-right .day-chip span{font-size:8px}}
@media(max-width:880px){.home210-top{grid-template-columns:1fr 1fr}.home210-top .home210-next{grid-column:1/-1}.home210-weatherrow{grid-template-columns:minmax(0,1.5fr) minmax(200px,.8fr)}.home210-body{grid-template-columns:1fr}.home210-right{display:grid;grid-template-columns:1fr 1fr;align-items:start}.home210-right .summary-row{grid-column:1/-1}.home210-right .week-card{grid-column:1/-1;grid-row:2}}
@media(max-width:760px){.home210-top{grid-template-columns:1fr 1fr;gap:8px}.home210-top-card{padding:12px;min-height:96px}.home210-top .home210-next{grid-column:1/-1}.home210-clock .clock-digits{font-size:35px}.home210-family .family-list{gap:4px}.home210-family .avatar{width:24px;height:24px}.home210-family .member strong{font-size:11px}.home210-family .member small{display:none}.home210-weatherrow{grid-template-columns:1fr}.home210-weather{grid-template-columns:1fr 1fr;padding:14px;gap:11px}.home210-weather-forecast{border-top:0;border-left:1px solid #ffffff55;padding:0 0 0 10px}.home210-weather-description{display:block;font-size:13px}.home210-now-symbol{font-size:28px}.home210-now-temp{font-size:35px}.home210-now-info b{font-size:11px}.home210-now-info small{font-size:9px}.home210-wday-symbol{font-size:21px}.home210-wday-date,.home210-wday strong{font-size:11px}.home210-wday small{font-size:9px}.home210-photo{height:155px;min-height:155px}.home210-body{grid-template-columns:1fr}.home210-right{display:flex}.home210-right .summary-row{grid-template-columns:1fr 1fr!important}.home210-med-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.home210-med-head strong{font-size:11px}.home210-med-head svg{width:15px}.home210-count{width:20px;height:20px;font-size:10px}}
@media(max-width:540px){.home210-weather{grid-template-columns:1fr}.home210-weather-forecast{border-top:1px solid #ffffff55;border-left:0;padding:12px 0 0}.home210-weather-description{display:none}.home210-med-grid{grid-template-columns:1fr;gap:8px}.home210-med-slot{display:grid;grid-template-columns:108px minmax(0,1fr)}.home210-med-head{flex-wrap:wrap;align-content:center;justify-content:center;gap:5px;padding:10px}.home210-med-head strong{flex:0 1 auto}.home210-med-items{min-height:63px;justify-content:center}.home210-med-empty{padding:6px}.home210-medication{padding:13px}.home210-medication .card-title h3{font-size:14px}.home210-top-card .home210-kicker{font-size:9px}.home210-next-details strong{font-size:13px}.home210-next-details small{font-size:10px}}
@media(max-width:360px){.home210-family .member strong{font-size:10px}.home210-med-head{grid-template-columns:1fr}.home210-top-card{padding:9px}.home210-medication .card-title .plain-link{font-size:10px}}

/* Afinado: miembros de la familia en cuadrícula compacta incluso con cuatro integrantes. */
.home210-family .family-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 9px}
.home210-family .member{gap:5px}
.home210-family .member small{display:none}
.home210-family .member strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
@media(max-width:760px){.home210-family .family-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 4px}.home210-family .member{gap:4px}.home210-family .avatar{width:19px;height:19px;font-size:9px;flex:0 0 19px}.home210-family .member strong{font-size:10px}}
@media(max-width:380px){.home210-family .member strong{font-size:9px}}

/* Casa 2.11 — sol parcialmente cubierto por una nube (también en previsión). */
.weather-partly-icon{display:inline-block;width:1em;height:1em;vertical-align:-.12em;overflow:visible;flex:none}
.home210-now-symbol:has(.weather-partly-icon),.home210-wday-symbol:has(.weather-partly-icon){display:inline-flex;align-items:center;justify-content:center}

/* Casa Familiar 2.14: PDF action and medication instructions */
.med-pdf-actions{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;margin:24px 0 12px;padding:18px 14px;border:1px solid var(--border, #e3e5de);border-radius:16px;background:var(--surface, #fff)}
.med-pdf-actions .hint{margin:0;text-align:center;max-width:600px}
.med-slot-notes{display:block;white-space:normal;overflow-wrap:anywhere}
.med-slot-notes b{font-weight:700}

/* 2.15 · Pautas por intervalo */
.med-hourly-section{margin-top:18px;padding:20px}.med-hourly-section .med-slot-title{display:flex;gap:9px;align-items:center}.med-hourly-section>.hint{margin:8px 0 15px}.med-hourly-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.med-hourly-blank{font-size:13px;color:#446c59;padding-top:10px;display:block}

/* Casa Familiar 2.16 - editable administration times */
.med-hourly-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:14px}
.med-hourly-card{border:1px solid #d8e6d8;background:#fbfcf9;border-radius:15px;padding:16px;min-width:0;box-shadow:0 2px 8px #123b2310}
.med-hourly-card-head{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;margin-bottom:8px}
.med-hourly-card-head .med-slot-name{font-size:17px}.med-hourly-meta{margin:5px 0;color:#506854;font-size:13px}
.med-hourly-card .med-slot-notes{font-size:13px;margin-top:6px;line-height:1.4}
.med-hours-heading{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:750;color:#255841;margin:14px 0 8px}
.med-hour-tags{display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-height:34px}
.med-hour-tag{display:inline-flex;align-items:center;border:1px solid #b3d2bc;border-radius:10px;background:#eef6ef;overflow:hidden}
.med-hour-tag button{border:0;background:transparent;display:inline-flex;align-items:center;gap:5px;padding:8px 9px;color:#194e35;font-size:13px;font-weight:700;cursor:pointer}
.med-hour-tag .med-hour-remove{font-size:18px;padding:4px 10px;color:#914337;border-left:1px solid #cce3d1}
.med-hour-tag button:hover{background:#dceee0}
.med-hour-empty{font-size:12px;color:#727f77}
.med-hour-form{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;background:#ecf3ed;padding:12px;border-radius:12px;margin-top:12px}
.med-hour-form label{font-size:12px;font-weight:700;color:#385744;flex-basis:100%}
.med-hour-form .field{width:136px;max-width:45%;min-height:39px;padding:7px 9px}
.med-hour-form .btn{min-height:39px;display:inline-flex;gap:6px;align-items:center}
@media(max-width:520px){.med-hourly-section{padding:14px}.med-hour-form .field{width:120px}.med-hour-form .btn{flex:1;justify-content:center}}
