html,body{margin:0}body{font:14px/1.4 system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%}img{max-width:100%}[hidden]{display:none!important}:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}

/* Una columna de móvil (máx. 440px) con barra inferior fija; cada persona tiene su color en todas las vistas */
:root{
  --font:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --bg:#F4F5F7; --surface:#FFFFFF; --surface-2:#F5F6F8; --line:#E4E7EC; --line-strong:#CDD2DA;
  --fg:#16181D; --fg-2:#4A5160; --ink:#16181D; --on-ink:#FFFFFF; --on-strong:#FFFFFF; --shadow:rgba(20,24,33,.07); --scrim:rgba(14,16,22,.45); --focus:#2563EB; --focus-ring:rgba(37,99,235,.28);
  --p1:#0F766E; --p1-bg:#CCFBF1; --p1-fg:#134E4A;
  --p2:#6D28D9; --p2-bg:#EDE9FE; --p2-fg:#4C1D95;
  --p3:#C2410C; --p3-bg:#FFEDD5; --p3-fg:#7C2D12;
  --p4:#1D4ED8; --p4-bg:#DBEAFE; --p4-fg:#1E3A8A;
  --p5:#BE185D; --p5-bg:#FCE7F3; --p5-fg:#831843;
  --p6:#15803D; --p6-bg:#DCFCE7; --p6-fg:#14532D;
  --p7:#475569; --p7-bg:#E2E8F0; --p7-fg:#1E293B;
  --p8:#A16207; --p8-bg:#FEF3C7; --p8-fg:#713F12;
  --bad:#B91C1C; --bad-2:#991B1B; --bad-bg:#FEE2E2; --bad-fg:#7F1D1D; --fg-on-light:#16181D;
  --help:#C2410C; --help-bg:#FFEDD5; --help-fg:#7C2D12;
  --warn:#A16207; --warn-bg:#FEF3C7; --warn-fg:#713F12;
  --ok:#15803D; --ok-bg:#DCFCE7; --ok-fg:#14532D;
  --info:#1D4ED8; --info-bg:#DBEAFE; --info-fg:#1E3A8A;
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){
  --bg:#0E1014; --surface:#181B21; --surface-2:#1F232A; --line:#2A2F38; --line-strong:#3A404B;
  --fg:#F1F3F6; --fg-2:#B9BFCA; --ink:#F1F3F6; --on-ink:#111318; --on-strong:#0E1014; --shadow:rgba(0,0,0,.4); --scrim:rgba(0,0,0,.6); --focus:#60A5FA; --focus-ring:rgba(96,165,250,.40);
  --p1:#2DD4BF; --p1-bg:#0F3B37; --p1-fg:#99F6E4;
  --p2:#A78BFA; --p2-bg:#2E1F57; --p2-fg:#DDD6FE;
  --p3:#FB923C; --p3-bg:#4A2412; --p3-fg:#FED7AA;
  --p4:#60A5FA; --p4-bg:#1B2E57; --p4-fg:#BFDBFE;
  --p5:#F472B6; --p5-bg:#4A1430; --p5-fg:#FBCFE8;
  --p6:#4ADE80; --p6-bg:#123A22; --p6-fg:#BBF7D0;
  --p7:#94A3B8; --p7-bg:#273244; --p7-fg:#E2E8F0;
  --p8:#FACC15; --p8-bg:#3F3209; --p8-fg:#FEF08A;
  --bad:#F87171; --bad-2:#EF5350; --bad-bg:#4A1616; --bad-fg:#FECACA; --fg-on-light:#16181D;
  --help:#FB923C; --help-bg:#4A2412; --help-fg:#FED7AA;
  --warn:#FACC15; --warn-bg:#3F3209; --warn-fg:#FEF08A;
  --ok:#4ADE80; --ok-bg:#123A22; --ok-fg:#BBF7D0;
  --info:#60A5FA; --info-bg:#1B2E57; --info-fg:#BFDBFE; color-scheme:dark; } }
:root[data-theme="dark"]{
  --bg:#0E1014; --surface:#181B21; --surface-2:#1F232A; --line:#2A2F38; --line-strong:#3A404B;
  --fg:#F1F3F6; --fg-2:#B9BFCA; --ink:#F1F3F6; --on-ink:#111318; --on-strong:#0E1014; --shadow:rgba(0,0,0,.4); --scrim:rgba(0,0,0,.6); --focus:#60A5FA; --focus-ring:rgba(96,165,250,.40);
  --p1:#2DD4BF; --p1-bg:#0F3B37; --p1-fg:#99F6E4;
  --p2:#A78BFA; --p2-bg:#2E1F57; --p2-fg:#DDD6FE;
  --p3:#FB923C; --p3-bg:#4A2412; --p3-fg:#FED7AA;
  --p4:#60A5FA; --p4-bg:#1B2E57; --p4-fg:#BFDBFE;
  --p5:#F472B6; --p5-bg:#4A1430; --p5-fg:#FBCFE8;
  --p6:#4ADE80; --p6-bg:#123A22; --p6-fg:#BBF7D0;
  --p7:#94A3B8; --p7-bg:#273244; --p7-fg:#E2E8F0;
  --p8:#FACC15; --p8-bg:#3F3209; --p8-fg:#FEF08A;
  --bad:#F87171; --bad-2:#EF5350; --bad-bg:#4A1616; --bad-fg:#FECACA; --fg-on-light:#16181D;
  --help:#FB923C; --help-bg:#4A2412; --help-fg:#FED7AA;
  --warn:#FACC15; --warn-bg:#3F3209; --warn-fg:#FEF08A;
  --ok:#4ADE80; --ok-bg:#123A22; --ok-fg:#BBF7D0;
  --info:#60A5FA; --info-bg:#1B2E57; --info-fg:#BFDBFE; color-scheme:dark; }

*{box-sizing:border-box}
.pc-1{--c:var(--p1);--cb:var(--p1-bg);--cf:var(--p1-fg)}
.pc-2{--c:var(--p2);--cb:var(--p2-bg);--cf:var(--p2-fg)}
.pc-3{--c:var(--p3);--cb:var(--p3-bg);--cf:var(--p3-fg)}
.pc-4{--c:var(--p4);--cb:var(--p4-bg);--cf:var(--p4-fg)}
.pc-5{--c:var(--p5);--cb:var(--p5-bg);--cf:var(--p5-fg)}
.pc-6{--c:var(--p6);--cb:var(--p6-bg);--cf:var(--p6-fg)}
.pc-7{--c:var(--p7);--cb:var(--p7-bg);--cf:var(--p7-fg)}
.pc-8{--c:var(--p8);--cb:var(--p8-bg);--cf:var(--p8-fg)}
body{background:var(--bg);color:var(--fg);font-family:var(--font);font-size:15px;line-height:1.4;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));-webkit-text-size-adjust:100%}
button{font-family:inherit;color:inherit}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:8px}
.app{max-width:440px;margin:0 auto;padding-block:8px calc(110px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column}

.top{display:flex;flex-direction:column;gap:10px;padding-block:14px 4px}
.top-row{flex-direction:row;align-items:center;justify-content:space-between}
.top h1{margin:0;font-size:28px;font-weight:800;letter-spacing:-.02em;line-height:1.15;text-wrap:balance}
.h1-s{font-size:18px!important}
.spacer{width:64px}
.eyebrow{font-size:13px;font-weight:700;color:var(--fg-2)}
.sec{display:flex;flex-direction:column;gap:10px;margin-top:22px}
.sec-h{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
h2{margin:0;font-size:17px;font-weight:800;letter-spacing:-.01em}
.h2-day{margin-top:6px;font-size:16px}
.sub{display:block;font-size:13px;color:var(--fg-2);font-weight:500}
.sub-bad{color:var(--bad);font-weight:700}
.count{font-size:13px;font-weight:800;color:var(--ok)} .count-bad{color:var(--bad)}
.card{background:var(--surface);border-radius:16px;padding:14px;box-shadow:0 1px 2px var(--shadow);display:flex;flex-direction:column;gap:10px}
.card-t{font-size:14px;font-weight:800}
.empty{color:var(--fg-2);font-size:14px}
.card-btn{flex-direction:row;align-items:center;gap:12px;border:0;text-align:left;cursor:pointer;width:100%}
.card-btn-t{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0} .card-btn-t span{font-size:13px;color:var(--fg-2)}
.ic{flex:0 0 auto;width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center}
.ic-ink{background:var(--ink);color:var(--on-ink)}
.strip{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;font-size:13px;color:var(--fg-2);background:var(--surface);border-radius:12px;padding:10px 12px}
.strip-confirm{font-weight:700;color:var(--fg)}
.link{background:none;border:0;padding:6px 0;font-weight:800;font-size:13px;color:var(--fg);text-decoration:underline;text-underline-offset:3px;cursor:pointer;min-height:32px}
.link-bad{color:var(--bad)}

.btn{min-height:44px;border-radius:12px;padding:0 14px;font-weight:700;font-size:14px;border:1px solid var(--line-strong);background:var(--surface);color:var(--fg);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;text-align:center}
.btn-ink{background:var(--ink);color:var(--on-ink);border-color:var(--ink)}
.btn-bad{background:var(--bad);color:var(--on-strong);border-color:var(--bad)}
.btn-big{min-height:52px;font-size:16px;font-weight:800;width:100%}
.btn-row{display:flex;gap:8px;flex-wrap:wrap} .btn-row .btn{flex:1 1 auto}
.icon-btn{width:44px;height:44px;border-radius:12px;border:1px solid var(--line-strong);background:var(--surface);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--fg)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;min-height:38px;padding:0 13px;border-radius:999px;border:1px solid var(--line-strong);background:var(--surface);font-size:13px;font-weight:700;color:var(--fg);cursor:pointer}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--on-ink);border-color:var(--ink);box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--ink)}
.chip:not(.m):not(.chip-day)[aria-pressed="true"]::before{content:"✓";margin-right:6px;font-weight:900}
.chip.m{color:var(--fg);background:var(--surface);border-color:var(--line-strong)}
.chip.m::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--c);margin-right:7px;flex:0 0 auto}
.chip.m[aria-pressed="true"]{background:var(--c);color:var(--on-strong);border-color:var(--c);box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--c)}
.chip.m[aria-pressed="true"]::before{content:"✓";width:auto;height:auto;background:none;font-weight:900;color:var(--on-strong)}
.chip-ex{font-weight:600;font-size:12.5px;background:var(--surface-2);text-align:left}
.chip-day{min-width:42px;justify-content:center;padding:0}
.daypick{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:3px;gap:3px}
.seg-wide{display:flex} .seg-wide .seg-b{flex:1}
.seg-b{border:0;background:none;border-radius:9px;min-height:36px;padding:0 12px;font-weight:700;font-size:13px;color:var(--fg-2);cursor:pointer}
.seg-b[aria-pressed="true"]{background:var(--ink);color:var(--on-ink)}
.tag{display:inline-block;font-size:12px;font-weight:700;padding:4px 8px;border-radius:8px;background:var(--cb);color:var(--cf)}
.tags{display:flex;gap:6px;flex-wrap:wrap}
.pill{font-size:13px;padding:8px 12px;border-radius:12px;background:var(--surface);box-shadow:0 1px 2px var(--shadow)}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}

/* avisos */
.alert{background:var(--surface);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:12px;box-shadow:0 1px 2px var(--shadow)}
.alert-top{display:flex;gap:12px;align-items:flex-start}
.alert-txt{display:flex;flex-direction:column;gap:4px;min-width:0}
.kicker{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--fg-2)}
.alert-title{font-size:15px;font-weight:800}
.alert-body{font-size:13.5px;color:var(--fg-2)}
.lv-bad .ic{background:var(--bad-bg);color:var(--bad)} .lv-bad .kicker{color:var(--bad)}
.lv-help .ic{background:var(--help-bg);color:var(--help)} .lv-help .kicker{color:var(--help)}
.lv-warn .ic{background:var(--warn-bg);color:var(--warn)} .lv-warn .kicker{color:var(--warn)}
.lv-info .ic{background:var(--info-bg);color:var(--info)} .lv-info .kicker{color:var(--info)}
.mini-alert{display:flex;gap:10px;align-items:flex-start;border-radius:12px;padding:10px;font-size:14px}
.mini-alert .ic{width:28px;height:28px}
.mini-alert.lv-bad{background:var(--bad-bg);color:var(--bad-fg)} .mini-alert.lv-help{background:var(--help-bg);color:var(--help-fg)} .mini-alert.lv-warn{background:var(--warn-bg);color:var(--warn-fg)}
.mini-alert .sub{color:inherit;opacity:.9}
.mini-alert .ic{background:var(--surface)!important}
.okbox{display:flex;gap:10px;align-items:center;background:var(--ok-bg);color:var(--ok-fg);border-radius:12px;padding:12px;font-size:14px;font-weight:700}
.live{display:flex;flex-direction:column;gap:8px}
.checks{display:flex;flex-direction:column;gap:2px}
.check{display:flex;gap:12px;align-items:flex-start;padding:8px 0;cursor:pointer;font-size:14.5px}
.check input{width:22px;height:22px;margin:1px 0 0;flex:0 0 auto;accent-color:var(--ink)}
.check b{font-weight:700}

/* quién está dónde */
.tl-card{padding:12px 10px}
.tl{display:grid;grid-template-columns:38px repeat(4,minmax(0,1fr));column-gap:5px;position:relative}
.tl-name{font-size:12px;font-weight:800;text-align:center;color:var(--c)}
.tl-hours{position:relative}
.tl-hour{position:absolute;left:0;font-size:11px;font-weight:700;color:var(--fg-2);font-variant-numeric:tabular-nums;transform:translateY(-1px)}
.lane{position:relative;background:var(--surface-2);border-radius:8px}
.blk{position:absolute;border:0;border-radius:7px;padding:3px 5px;font-size:11px;font-weight:700;line-height:1.2;overflow:hidden;text-align:left;cursor:pointer;background:var(--cb);color:var(--cf);display:flex;flex-direction:column;gap:1px;word-break:break-word}
.blk.soft{background:var(--cb);opacity:.85}
.blk.strong,.blk.duty{background:var(--c);color:var(--on-strong)}

.blk.bad{background:var(--bad-bg);color:var(--bad-fg);box-shadow:inset 0 0 0 2px var(--bad)}
.blk.ghost{background:var(--surface);color:var(--fg);box-shadow:inset 0 0 0 2px var(--c);border:2px dashed var(--c);cursor:default}
.blk-t{font-weight:600;opacity:.85}
.tl-now{position:absolute;left:38px;right:0;height:2px;background:var(--bad);pointer-events:none}
.tl-now-l{position:absolute;right:0;background:var(--bad);color:var(--on-strong);font-size:10.5px;font-weight:800;padding:1px 5px;border-radius:5px;pointer-events:none}
.tl-head{margin-bottom:6px}
.tl-legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--fg-2);margin-top:10px}
.tl-legend span{display:inline-flex;align-items:center;gap:6px}
.lg{display:inline-block;width:14px;height:10px;border-radius:3px}
.lg-soft{background:var(--p4-bg)} .lg-duty{background:var(--p2)} .lg-bad{background:var(--bad-bg);box-shadow:inset 0 0 0 2px var(--bad)}

.kid-card{gap:6px}
.kid-name{font-weight:800;color:var(--c)}
.mini{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px;font-size:13.5px}
.mini .sub{font-size:12px}
.li-bad{color:var(--bad);font-weight:700}
.li-bad .sub{color:var(--bad)}

/* calendario */
.pager{display:flex;justify-content:space-between;align-items:center}
.pager b{font-size:15px}
.bars{display:flex;flex-direction:column;gap:6px}
.bar-row{display:flex;align-items:center;gap:8px}
.bar-n{width:96px;font-size:12px;font-weight:800;color:var(--c)}
.bar{flex:1;height:12px;background:var(--surface-2);border-radius:999px;overflow:hidden}
.bar-f{height:12px;background:var(--c);border-radius:999px}
.bar-v{width:22px;text-align:right;font-weight:800;font-size:13px;font-variant-numeric:tabular-nums}
.day{background:var(--surface);border-radius:16px;padding:12px;display:flex;gap:12px;box-shadow:0 1px 2px var(--shadow)}
.day-today{box-shadow:inset 0 0 0 2px var(--ink)}
.day-h{width:48px;flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:2px;border:0;background:none;color:var(--fg);cursor:pointer;padding:0;border-radius:10px}
.day-open{font-size:10px;font-weight:800;color:var(--fg-2);text-decoration:underline;text-underline-offset:2px;margin-top:2px}
.day-n{font-size:12px;font-weight:800;color:var(--fg-2);text-transform:uppercase}
.day-d{font-size:22px;font-weight:800;font-variant-numeric:tabular-nums}
.badge{font-size:10px;font-weight:800;background:var(--ink);color:var(--on-ink);padding:2px 6px;border-radius:6px}
.dot-bad{width:10px;height:10px;border-radius:50%;background:var(--bad)}
.day-items{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0}
.item{display:flex;gap:10px;align-items:flex-start;width:100%;text-align:left;border:0;background:var(--cb);color:var(--cf);border-radius:10px;padding:8px 10px;cursor:pointer}
.item-strong{background:var(--c);color:var(--on-strong)}
.item-bad{background:var(--bad-bg);color:var(--bad-fg);box-shadow:inset 0 0 0 2px var(--bad)}
.item-done{opacity:.55} .item-done .item-title{text-decoration:line-through}
.item-time{font-size:12px;font-weight:800;min-width:38px;font-variant-numeric:tabular-nums;padding-top:1px}
.item-main{display:flex;flex-direction:column;gap:2px;min-width:0}
.item-title{font-size:13.5px;font-weight:700}
.item-who{font-weight:600;opacity:.85}
.item-sub{font-size:12px;font-weight:600;opacity:.9}
.mcard{padding:10px}
.mgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.mhead span{text-align:center;font-size:12px;font-weight:800;color:var(--fg-2);padding:4px 0}
.mcell{min-height:58px;border-radius:10px;background:var(--surface-2);border:2px solid transparent;display:flex;flex-direction:column;align-items:center;gap:3px;padding:5px 2px;font-weight:800;font-size:14px;cursor:pointer;color:var(--fg)}
.mcell.out{opacity:.4}
.mcell.today{border-color:var(--ink)}
.mcell.sel{background:var(--ink);color:var(--on-ink)}
.mnum{font-variant-numeric:tabular-nums}
.dots{display:flex;gap:3px;flex-wrap:wrap;justify-content:center}
.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--c)}
.dot-bad{background:var(--bad)}
.mcell.sel .dot{box-shadow:0 0 0 1.5px var(--on-ink)}
.mex{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.02em;color:var(--bad)}
.mcell.sel .mex{color:var(--on-ink)}

/* hijos */
.kid-head{display:flex;align-items:center;gap:14px}
.avatar{width:58px;height:58px;border-radius:18px;background:var(--c);color:var(--on-strong);font-size:26px;font-weight:800;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.stat{background:var(--surface);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:2px;box-shadow:0 1px 2px var(--shadow)}
.stat b{font-size:24px;color:var(--c);font-variant-numeric:tabular-nums}
.stat span{font-size:12px;font-weight:600;color:var(--fg-2)}
.list{background:var(--surface);border-radius:16px;box-shadow:0 1px 2px var(--shadow);overflow:hidden;display:flex;flex-direction:column}
.row{display:flex;gap:12px;align-items:center;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:12px 14px;cursor:pointer;color:var(--fg)}
.row:last-child{border-bottom:0}
.row-static{cursor:default;align-items:flex-start}
.row-main{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0;font-size:14px}
.row-main b{font-size:15px}
.row-k{width:54px;flex:0 0 auto;font-size:13px;font-weight:800;color:var(--c)}
.row-check{padding:10px 14px;border-bottom:1px solid var(--line)}
.row-check:last-child{border-bottom:0}
.cd{width:52px;flex:0 0 auto;text-align:center;border-radius:12px;padding:6px 0;display:flex;flex-direction:column;background:var(--surface-2);color:var(--fg)}
.cd b{font-size:18px;line-height:1.1} .cd span{font-size:11px;font-weight:700}
.cd-bad{background:var(--bad);color:var(--on-strong)} .cd-warn{background:var(--help-bg);color:var(--help-fg)}
details.done summary,details.rules summary{cursor:pointer;font-weight:800;font-size:14px;padding:8px 0}
details.rules{background:var(--surface);border-radius:16px;padding:6px 14px;box-shadow:0 1px 2px var(--shadow)}
details.rules ul{margin:0 0 10px;padding-left:18px;display:flex;flex-direction:column;gap:8px;font-size:13.5px;color:var(--fg-2)}
details.rules b{color:var(--fg)}

/* formulario */
.form{gap:16px}
.field{display:flex;flex-direction:column;gap:8px}
.fl{font-size:13px;font-weight:800;color:var(--fg-2);display:flex;align-items:center;gap:6px}
.fl-sub{margin-top:4px}
.fl-in{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:800;color:var(--fg-2)}
.inp:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 4px var(--focus-ring)}
.inp-big:focus{border-color:var(--focus)}
.inp{width:100%;min-height:46px;border-radius:12px;border:1px solid var(--line-strong);background:var(--surface);color:var(--fg);font-family:inherit;font-size:16px;padding:0 12px}
.inp-big{border:2px solid var(--ink);font-weight:600;min-height:54px}
.ta{padding:10px 12px;line-height:1.45;resize:vertical}
.auto{font-size:10.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--ok-fg);background:var(--ok-bg);padding:2px 6px;border-radius:6px}
.switch{display:flex;align-items:center;gap:10px;font-size:14.5px;font-weight:600;min-height:36px;cursor:pointer}
.switch:focus-within{outline:3px solid var(--focus);outline-offset:2px;border-radius:8px}
.switch input{width:22px;height:22px;accent-color:var(--ink)}
.errors{background:var(--bad-bg);color:var(--bad-fg);border-radius:12px;padding:12px;font-weight:700;font-size:14px}
.chips-ex{gap:6px}
.note{font-size:13.5px;background:var(--info-bg);color:var(--info-fg);border-radius:12px;padding:10px 12px;font-weight:600}

/* veredictos */
.verdict{border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:8px;background:var(--surface);box-shadow:0 1px 2px var(--shadow)}
.v-title{font-size:18px;font-weight:800}
.v-body{font-size:14px;line-height:1.45}
.v-ok{box-shadow:inset 0 0 0 2px var(--ok)} .v-ok .kicker{color:var(--ok)}
.v-help{background:var(--help-bg);color:var(--help-fg)} .v-help .kicker{color:var(--help-fg)}
.v-bad{background:var(--bad-bg);color:var(--bad-fg)} .v-bad .kicker{color:var(--bad-fg)}
.v-help .btn:not(.btn-ink),.v-bad .btn:not(.btn-ink){background:var(--surface);color:var(--fg)}
.weeks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:2px}
.wk{border-radius:10px;padding:6px 4px;text-align:center;font-size:12px;font-weight:700;display:flex;flex-direction:column;background:var(--surface)}
.wk b{font-size:12px;text-transform:uppercase;letter-spacing:.03em}
.wk-ok b{color:var(--ok)} .wk-help b{color:var(--help)} .wk-bad b{color:var(--bad)}
.v-ok .wk{background:var(--surface-2)}

/* resumen */
.notif-wrap{background:#1F2430;border-radius:20px;padding:18px 14px;display:flex;flex-direction:column;gap:10px;margin-top:14px}
.notif-time,.notif-cap{color:#D1D5DB;font-size:12.5px;font-weight:700;text-align:center}
.notif{background:#FFFFFF;color:#16181D;border-radius:16px;padding:12px;display:flex;gap:12px;align-items:flex-start}
.notif div{display:flex;flex-direction:column;gap:3px;font-size:14px}
.notif .sub{color:#4A5160}
.notif-app{width:34px;height:34px;border-radius:10px;background:#16181D;color:#FFFFFF;display:flex;align-items:center;justify-content:center;font-weight:800;flex:0 0 auto}

/* barra inferior y hojas */
.nav{position:fixed;left:0;right:0;bottom:0;background:var(--surface);border-top:1px solid var(--line);z-index:20;
  padding:6px max(16px,env(safe-area-inset-right,0px)) calc(8px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}
.nav-in{max-width:440px;margin:0 auto;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:center}
.nav-b{border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;font-weight:700;color:var(--fg-2);min-height:52px;justify-content:center;cursor:pointer}
.nav-b.cur{color:var(--fg)}
.nav-b.cur svg{stroke-width:2.6}
.nav-add{justify-self:center;width:56px;height:56px;border-radius:18px;border:0;background:var(--ink);color:var(--on-ink);display:flex;align-items:center;justify-content:center;cursor:pointer}
.sheet-bg{position:fixed;inset:0;background:var(--scrim);z-index:40;display:flex;align-items:flex-end;justify-content:center}
.sheet{background:var(--surface);width:100%;max-width:480px;max-height:88vh;overflow:auto;border-radius:22px 22px 0 0;display:flex;flex-direction:column;gap:12px;
  padding:16px max(16px,env(safe-area-inset-right,0px)) calc(20px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}
@media (prefers-reduced-motion: no-preference){ .sheet{animation:up .18s ease-out} @keyframes up{from{transform:translateY(24px);opacity:.6}to{transform:none;opacity:1}} }
.sheet-h{display:flex;justify-content:space-between;align-items:center}
.sheet-t{font-size:22px}
.kv{display:flex;justify-content:space-between;gap:12px;font-size:14px;border-bottom:1px solid var(--line);padding-bottom:8px}
.kv span{color:var(--fg-2)} .kv b{text-align:right}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(84px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--on-ink);padding:10px 16px;border-radius:12px;font-weight:700;font-size:14px;z-index:60;max-width:calc(100% - 32px);text-align:center}

/* familia, memoria, alta en bloque, resumen */
.summary{background:var(--surface);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:6px;box-shadow:inset 0 0 0 2px var(--ink)}
.summary b{font-size:15px;line-height:1.4}
.assume{margin:4px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--fg-2)}
.memory{background:var(--info-bg);color:var(--info-fg);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:8px}
.memory .kicker{color:var(--info-fg)} .memory .sub{color:inherit}
.memory .btn:not(.btn-ink){background:var(--surface);color:var(--fg)}
.auto-mem{color:var(--info-fg);background:var(--info-bg)}
.sub-note{font-style:italic}
details.ex summary{cursor:pointer;font-weight:800;font-size:13px;color:var(--fg-2);padding:6px 0}
details.ex .chips{margin-top:6px}
.bulk-row{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-bottom:1px solid var(--line);cursor:pointer}
.bulk-row:last-child{border-bottom:0}
.bulk-row input{width:22px;height:22px;flex:0 0 auto;margin-top:1px;accent-color:var(--ink)}
.bulk-row b{font-size:14px;line-height:1.4}
.bulk-err{background:var(--bad-bg);color:var(--bad-fg)} .bulk-err .sub{color:inherit}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.person{gap:12px}
.person-h{display:flex;gap:12px;align-items:flex-end}
.grow{flex:1;min-width:0}
.avatar-s{width:46px;height:46px;border-radius:14px;font-size:20px}
.swatches{display:flex;gap:8px;flex-wrap:wrap}
.swatch{width:40px;height:40px;border-radius:12px;border:3px solid transparent;background:var(--c);cursor:pointer}
.swatch[aria-pressed="true"]{border-color:var(--fg);box-shadow:inset 0 0 0 2px var(--surface)}
.link-back{display:inline-flex;align-items:center;gap:4px;align-self:flex-start;text-decoration:none}

/* mejoras 3 */
.chip-more{border-style:dashed;color:var(--fg-2);font-weight:700}
.pager-mid{flex:1;border:0;background:none;color:var(--fg);display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;min-height:48px;border-radius:12px;padding:4px 8px}
.pager-mid b{font-size:15px} .pager-mid .sub{font-size:11.5px}
.pager-mid[aria-expanded="true"]{background:var(--surface)}
.picker{gap:8px}
.pk{min-height:40px;border-radius:10px;border:2px solid transparent;background:var(--surface-2);color:var(--fg);font:inherit;font-weight:700;font-size:14px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-variant-numeric:tabular-nums}
.pk.out{opacity:.4} .pk.today{border-color:var(--ink)} .pk.sel{background:var(--ink);color:var(--on-ink)}
.pk .dot{width:5px;height:5px}
.steps{display:flex;align-items:center;gap:6px}
.steps i{width:18px;height:2px;background:var(--line-strong)}
.step{width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;background:var(--surface);color:var(--fg-2);box-shadow:inset 0 0 0 1px var(--line-strong)}
.step.on{background:var(--ink);color:var(--on-ink);box-shadow:none} .step.done{background:var(--ok-bg);color:var(--ok-fg);box-shadow:none}
.ic-s{width:26px;height:26px;border-radius:8px;background:var(--ok-bg);color:var(--ok)}
.bulk-err .ic-s{background:var(--surface);color:var(--bad)}
.tips{gap:6px}
.tip{display:flex;gap:10px;align-items:center;font-size:14px;font-weight:600}
.tip .ic-s{background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line-strong)}
.tip-done{color:var(--fg-2);text-decoration:line-through}
.tip-done .ic-s{background:var(--ok-bg);box-shadow:none}
.mini-tips li{line-height:1.45}
.blk.soft{z-index:0} .blk.strong{z-index:1}
.blk.duty{z-index:2;border-radius:8px;display:flex;flex-direction:column;justify-content:center;gap:0;white-space:nowrap;overflow:hidden;font-size:10.5px;line-height:1.15;padding:0 5px;box-shadow:0 0 0 2px var(--surface),0 2px 4px var(--shadow)}
.duty-l{overflow:hidden;text-overflow:ellipsis;font-weight:700}
.blk.duty .blk-t{font-weight:800;opacity:1}
.blk.moved{left:9px!important}
.blk.moved::before{content:"";position:absolute;left:-7px;top:50%;width:5px;height:2px;background:var(--c)}

/* ===== v3: diseño sencillo ===== */
body{font-size:16px}
.card,.list,.day,.stat,.alert,.verdict,details.rules,.pill{box-shadow:none;border:1px solid var(--line)}
.top h1{font-size:26px}
.sec{margin-top:26px;gap:12px}
h2{font-size:18px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.loading{padding:80px 0;text-align:center;color:var(--fg-2);font-weight:700}
.hello-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.head-btns{display:flex;gap:4px}
.icon-btn.ghost{border-color:transparent;background:transparent}
.bell{position:relative}
.badge-n{position:absolute;top:4px;right:4px;min-width:18px;height:18px;border-radius:9px;background:var(--bad);color:var(--on-strong);font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;padding:0 4px}
.pdot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--c);margin-right:6px;vertical-align:1px;flex:0 0 auto}
.who{display:inline-flex;flex-wrap:wrap;align-items:center;gap:2px 0}
.who .sep{margin-right:6px}
/* avisos limpios */
.alert{gap:6px;padding:16px}
.alert-head{display:flex;align-items:center;gap:8px}
.alert-dot{width:10px;height:10px;border-radius:50%;background:var(--warn)}
.t-bad .alert-dot{background:var(--bad)} .t-help .alert-dot{background:var(--help)}
.alert-when{font-size:13px;font-weight:700;color:var(--fg-2)}
.alert-title{margin:0;font-size:17px;font-weight:800;line-height:1.3}
.alert-body{margin:0 0 6px;font-size:14px;color:var(--fg-2);line-height:1.45}
.alert .btn-row .btn{flex:1 1 0}
.calm{display:flex;gap:10px;align-items:center;background:var(--ok-bg);color:var(--ok-fg);border-radius:14px;padding:14px 16px;font-size:15px}
.link-more{align-self:flex-start;font-size:14px}
/* tareas */
.checks{gap:0;padding:4px 16px}
.checks .check{padding:12px 0;border-bottom:1px solid var(--line)}
.checks .check:last-child{border-bottom:0}
.enc{display:inline-flex;align-items:center;font-size:12.5px;font-weight:700;color:var(--fg-2);margin-top:2px}
/* línea de tiempo más calmada */
.blk.soft{background:var(--surface-2);color:var(--fg-2);box-shadow:inset 3px 0 0 var(--c);opacity:1}
.tl-legend{display:none}
.lane{background:transparent}
.tl-card{padding:12px 8px}
/* añadir */
.ta-big{min-height:64px;padding:14px;font-size:18px;line-height:1.35;resize:none}
.ex-list{display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin-top:4px}
.ex{border:0;background:none;padding:8px 0;font:inherit;font-size:15px;color:var(--fg);text-align:left;cursor:pointer;min-height:40px}
.ex:hover{text-decoration:underline}
.fcard{padding:6px 0 0;gap:0}
.fcard>.kicker{padding:8px 16px 6px;font-size:11.5px}
.frow{border-top:1px solid var(--line)}
.frow-b{width:100%;display:flex;align-items:center;gap:12px;background:none;border:0;padding:14px 16px;min-height:52px;text-align:left;cursor:pointer;color:var(--fg);font:inherit}
.frow-k{width:96px;flex:0 0 auto;font-size:13px;font-weight:700;color:var(--fg-2)}
.frow-v{flex:1;min-width:0;font-size:15.5px;font-weight:700;line-height:1.35}
.sub-in{font-weight:500;color:var(--fg-2);font-size:13px;margin-left:4px}
.miss{color:var(--bad)} .muted{color:var(--fg-2);font-weight:500}
.chev{font-size:20px;color:var(--fg-2);width:16px;text-align:center}
.frow.open{background:var(--surface-2)}
.frow-ed{padding:0 16px 16px;display:flex;flex-direction:column;gap:10px}
.assume-d summary{cursor:pointer;font-size:13.5px;font-weight:700;color:var(--fg-2);padding:4px 0}
.sugs{display:flex;flex-direction:column;gap:8px}
.sug{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;border:1px solid var(--ok);background:var(--surface);color:var(--fg);border-radius:12px;padding:12px 14px;cursor:pointer;font:inherit}
.sug b{font-size:15px}
/* calendario */
.chips-s{gap:6px}
.chip-s{min-height:34px;font-size:12.5px;padding:0 11px}
details.load summary{cursor:pointer;list-style:none;display:flex;flex-direction:column;gap:2px}
details.load summary::-webkit-details-marker{display:none}
details.load[open] summary{margin-bottom:8px}
.bar-n{width:118px;display:inline-flex;align-items:center;color:var(--fg)}
/* familia, bienvenida */
.big-n{font-size:24px}
.welcome{padding-top:48px}
.welcome h1{font-size:32px!important}
.lead{margin:0;font-size:17px;color:var(--fg-2);line-height:1.5}
.btn-col{display:flex;flex-direction:column;gap:10px}
.btn-col .btn{justify-content:flex-start;gap:4px}
select.inp{appearance:auto}
/* lo seleccionado, inequívoco */
.seg-b[aria-pressed="true"]{box-shadow:0 1px 2px var(--shadow)}

/* ===== v4: baraja de solapes ===== */
.deck{position:absolute;left:3px;right:3px;border:0;background:none;padding:0;cursor:pointer;z-index:3;perspective:400px}
.deck-c{position:absolute;left:0;right:10px;top:0;height:calc(100% - 14px);border-radius:9px;background:var(--c);opacity:calc(1 - var(--k)*.28);transform:translate(calc(var(--k)*6px),calc(var(--k)*7px));box-shadow:0 0 0 2px var(--surface),0 2px 4px var(--shadow)}
.deck-front{position:absolute;left:0;right:10px;top:0;height:calc(100% - 14px);border-radius:9px;background:var(--c);color:var(--on-strong);display:flex;flex-direction:column;justify-content:center;gap:1px;padding:3px 5px;box-shadow:0 0 0 2px var(--surface),0 3px 8px var(--shadow);text-align:left;overflow:hidden}
.deck-n{position:absolute;top:-8px;right:-8px;min-width:22px;height:22px;border-radius:11px;background:var(--fg);color:var(--bg);font-size:12px;font-weight:900;display:flex;align-items:center;justify-content:center;padding:0 5px;box-shadow:0 0 0 2px var(--surface)}
.deck-front{overflow:visible}
.deck-l2{font-weight:600;opacity:.9}
.deck-l{font-size:10.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.deck-bad .deck-front{box-shadow:0 0 0 2px var(--bad),0 3px 8px var(--shadow)}
.deck:hover .deck-c{transform:translate(calc(var(--k)*5px),calc(var(--k)*8px))}
.fan-bg{align-items:center;padding:16px}
.fan{background:var(--surface);border-radius:22px;width:100%;max-width:440px;max-height:86vh;overflow:auto;padding:18px max(16px,env(safe-area-inset-right,0px)) 18px max(16px,env(safe-area-inset-left,0px));display:flex;flex-direction:column;gap:12px;perspective:900px}
.fan-ov{align-self:flex-start;font-size:13px;font-weight:800;color:var(--bad-fg);background:var(--bad-bg);border-radius:999px;padding:5px 12px}
.fan-list{display:flex;flex-direction:column;gap:10px;transform-style:preserve-3d}
.fan-c{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;border:0;border-radius:16px;padding:14px 16px;background:var(--cb);color:var(--cf);cursor:pointer;font:inherit;box-shadow:inset 4px 0 0 var(--c),0 2px 6px var(--shadow);transform-origin:50% 0}
.fan-c b{font-size:16px} .fan-c .sub{color:inherit;opacity:.85}
.fan-t{font-size:13px;font-weight:800;font-variant-numeric:tabular-nums}
@media (prefers-reduced-motion: no-preference){
  .fan-c{animation:fanOut .55s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i)*70ms)}
  @keyframes fanOut{from{transform:translateY(calc(var(--i)*-100% - var(--i)*10px)) rotateX(58deg) scale(.92);opacity:.3}to{transform:none;opacity:1}}
}
.demo-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;border:2px solid var(--ink);background:var(--surface);color:var(--fg);border-radius:18px;padding:18px;cursor:pointer;font:inherit}
.demo-card b{font-size:18px}
.demo-dots{display:flex;gap:2px}
.demo-s{border-style:dashed;border-width:2px}
.demo-go{display:inline-flex;align-items:center;gap:2px;font-weight:800;margin-top:4px}
.alias-note{margin-top:-4px}

/* ===== v5: llevar / recoger / quedarse ===== */
.blk.duty{padding:2px 4px 2px 5px;gap:1px;justify-content:center;white-space:nowrap}
.blk.duty .di{flex:0 0 auto;width:15px;height:15px}
.dl1{display:flex;align-items:center;gap:2px;font-size:11px;font-weight:800;line-height:1.1;overflow:hidden;font-variant-numeric:tabular-nums}
.dl1 b{font-weight:900;text-transform:uppercase;letter-spacing:.02em;font-size:9.5px}
.dl2{font-size:11px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.15}
.dl3{font-size:10px;font-weight:700;opacity:.9}
/* Llevar: relleno, con punta hacia la derecha */
.blk.d-lleva{background:var(--c);color:var(--on-strong);border-radius:8px;box-shadow:none}
/* Recoger: hueco con borde, con punta hacia la izquierda */
.blk.d-recoge{background:var(--surface);color:var(--cf);box-shadow:inset 0 0 0 2px var(--c);border-radius:8px}
/* Quedarse: rayado durante toda la actividad */
.blk.d-acompana{background:repeating-linear-gradient(135deg,var(--cb) 0 6px,var(--surface) 6px 11px);color:var(--cf);box-shadow:inset 0 0 0 2px var(--c);border-radius:8px;white-space:normal;justify-content:flex-start;padding-top:4px}
.blk.d-acompana .dl1 .di{background:var(--c);color:var(--on-strong);border-radius:4px;padding:1px;width:15px;height:15px}
.blk.d-lleva.bad,.blk.d-recoge.bad,.blk.d-acompana.bad{box-shadow:inset 0 0 0 2px var(--bad);color:var(--bad-fg);background:var(--bad-bg)}
.tl-leg2{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:10px;font-size:12px;font-weight:700;color:var(--fg-2)}
.lg2{display:inline-flex;align-items:center;gap:5px;padding:3px 8px 3px 6px;border-radius:6px}
.lg-lleva{background:var(--fg);color:var(--bg)}
.lg-recoge{box-shadow:inset 0 0 0 2px var(--fg-2)}
.lg-acompana{background:repeating-linear-gradient(135deg,var(--surface-2) 0 5px,var(--surface) 5px 9px);box-shadow:inset 0 0 0 2px var(--fg-2)}
/* Te toca */
.toca{display:flex;flex-direction:column;gap:8px}
.toca-i{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:12px 14px;cursor:pointer;font:inherit;color:var(--fg)}
.toca-ic{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.toca-ic .di{width:20px;height:20px}
.t-lleva .toca-ic{background:var(--fg);color:var(--bg)}
.t-recoge .toca-ic{box-shadow:inset 0 0 0 2px var(--fg);color:var(--fg)}
.t-acompana .toca-ic{background:repeating-linear-gradient(135deg,var(--surface-2) 0 5px,var(--surface) 5px 9px);box-shadow:inset 0 0 0 2px var(--fg);color:var(--fg)}
.toca-m{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:15px}
.toca-h{font-size:18px;font-weight:800;font-variant-numeric:tabular-nums}

/* ===== v6: coches ===== */
.toca-ic{width:44px;height:40px}
.toca-ic .dib{width:28px;height:22px}
.t-acompana .toca-ic .dib{width:22px;height:22px}
.lg2 .dib{width:22px;height:16px}
.lg-acompana .dib{width:15px;height:15px}
.speed{opacity:.7}
@media (prefers-reduced-motion: no-preference){
  .t-lleva .car-body,.t-recoge .car-body{animation:drive 1.4s cubic-bezier(.3,.7,.3,1) .2s both}
  .t-lleva .speed,.t-recoge .speed{animation:speed 1.4s ease-out .2s both}
  @keyframes drive{from{transform:translate(-2px,0)}40%{transform:translate(9px,0)}to{transform:translate(6px,0)}}
  @keyframes speed{from{opacity:0;transform:translateX(4px)}to{opacity:.7;transform:none}}
  .t-acompana .hand{transform-origin:12px 12px;animation:tick 2s steps(4) .2s 1 both}
  @keyframes tick{from{transform:rotate(-90deg)}to{transform:rotate(0)}}
}

/* ===== v7: lo normal en pastel, lo importante que choque ===== */
.blk.strong{background:var(--cb);color:var(--cf);box-shadow:inset 3px 0 0 var(--c)}
.blk.d-lleva{background:var(--cb);color:var(--cf);box-shadow:inset 3px 0 0 var(--c)}
.blk.strong.bad,.blk.duty.bad,.deck-bad .deck-front{background:repeating-linear-gradient(135deg,var(--bad) 0 8px,var(--bad-2) 8px 14px);color:var(--on-strong);box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--bad)}
.blk.bad::after{content:"!";position:absolute;top:-7px;left:-5px;width:16px;height:16px;border-radius:50%;background:var(--fg);color:var(--bg);font-size:11px;font-weight:900;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 2px var(--surface)}
.blk{overflow:visible}
.blk.bad .blk-t,.blk.bad .dl1,.blk.bad .dl2{color:var(--on-strong);opacity:1}
.deck-front{background:var(--cb);color:var(--cf);box-shadow:inset 3px 0 0 var(--c),0 0 0 2px var(--surface),0 3px 8px var(--shadow)}
.deck-c{background:var(--cb);box-shadow:inset 0 0 0 1.5px var(--c),0 0 0 2px var(--surface)}
.item-strong{background:var(--cb);color:var(--cf);box-shadow:inset 3px 0 0 var(--c)}
.item-bad{background:repeating-linear-gradient(135deg,var(--bad) 0 8px,var(--bad-2) 8px 14px);color:var(--on-strong);box-shadow:none}
/* avisos de Hoy: los graves en rojo/naranja macizo */
.alert.t-bad{background:var(--bad);border-color:var(--bad);color:var(--on-strong)}
.alert.t-help{background:var(--help);border-color:var(--help);color:var(--on-strong)}
.alert.t-bad .alert-when,.alert.t-bad .alert-body,.alert.t-help .alert-when,.alert.t-help .alert-body{color:var(--on-strong);opacity:.92}
.alert.t-bad .alert-dot,.alert.t-help .alert-dot{background:var(--on-strong)}
.alert.t-bad .btn-ink,.alert.t-help .btn-ink{background:var(--on-strong);border-color:var(--on-strong)}
.alert.t-bad .btn-ink{color:var(--bad)} .alert.t-help .btn-ink{color:var(--help)}
.alert.t-bad .btn:not(.btn-ink),.alert.t-help .btn:not(.btn-ink){background:transparent;color:var(--on-strong);border-color:var(--on-strong)}
@media (prefers-reduced-motion: no-preference){
  .alert.t-bad .alert-dot{animation:pulse 1.6s ease-in-out infinite}
  @keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(255,255,255,.7)}50%{box-shadow:0 0 0 6px rgba(255,255,255,0)}}
}
/* mes con etiquetas */
.mcell{min-height:74px;align-items:stretch;gap:2px;padding:4px 3px;justify-content:flex-start}
.mnum{display:flex;align-items:center;justify-content:space-between;font-size:13px;padding:0 2px}
.mwarn{font-style:normal;width:14px;height:14px;border-radius:50%;background:var(--bad);color:var(--on-strong);font-size:10px;font-weight:900;display:inline-flex;align-items:center;justify-content:center}
.ml{display:block;font-size:9px;font-weight:800;line-height:1.3;padding:1px 2px;letter-spacing:-.01em;border-radius:4px;background:var(--cb);color:var(--cf);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}
.ml-bad{background:var(--bad);color:var(--on-strong)}
.ml-fest{background:var(--surface);color:var(--fg-2);box-shadow:inset 0 0 0 1px var(--line-strong)}
.ml-more{font-size:9.5px;font-weight:800;color:var(--fg-2);text-align:left;padding-left:3px}
.mcell.mbad{box-shadow:inset 0 0 0 2px var(--bad)}
.mcell.mfest:not(.sel){background:repeating-linear-gradient(135deg,var(--surface-2) 0 6px,var(--surface) 6px 11px)}
.mcell.sel .ml{box-shadow:0 0 0 1px var(--on-ink)}
.mcell.sel .ml-more{color:var(--on-ink)}
.mnote{margin-top:8px;font-size:12px}
.mcard{padding:8px 5px}
.mcard .mgrid{gap:2px}
.mcell{padding:4px 2px}
.ml{text-overflow:clip;padding:1px 1px 1px 2px}
@media (min-width:600px){ .top h1{font-size:30px} }

/* v9: así funciona */
.howto{background:var(--surface);border-radius:18px;padding:16px;box-shadow:0 1px 2px var(--shadow);gap:12px}
.howto-head b{font-size:16px;line-height:1.3;text-wrap:balance}
.howto-box{display:flex;flex-direction:column;gap:10px;background:var(--surface-2);border-radius:14px;padding:12px}
.howto-phrase{font-size:17px;line-height:1.6;font-weight:600;min-height:3.2em;color:var(--fg);word-break:break-word}
.hseg{border-bottom:3px solid transparent;transition:border-color .3s,background .3s;border-radius:3px;padding:0 1px}
.hseg-on,.howto-done .hseg{border-bottom-color:var(--hc)}
.hcaret{display:inline-block;width:2px;height:1.1em;background:var(--fg);vertical-align:-3px;margin-left:1px;animation:hblink 1s steps(1) infinite}
.howto-done .hcaret{display:none}
@keyframes hblink{50%{opacity:0}}
.howto-rows{display:flex;flex-direction:column;gap:6px}
.hrow{display:flex;align-items:baseline;gap:10px;padding:8px 10px;border-radius:10px;background:var(--surface);border-left:4px solid var(--hc);transition:opacity .35s,transform .35s;flex-wrap:wrap}
.hrow-off{opacity:0;transform:translateY(6px)}
.hl{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--fg-2);min-width:76px}
.hv{flex:1;min-width:0;font-weight:700}
.hded{font-size:11px;font-weight:800;color:var(--hfg);background:var(--hbg);border-radius:999px;padding:2px 8px}
.hrow-ded{border-left-style:dashed}
.hc-1{--hc:var(--p1);--hbg:var(--p1-bg);--hfg:var(--p1-fg)} .hc-2{--hc:var(--p2);--hbg:var(--p2-bg);--hfg:var(--p2-fg)}
.hc-3{--hc:var(--p3);--hbg:var(--p3-bg);--hfg:var(--p3-fg)} .hc-4{--hc:var(--p4);--hbg:var(--p4-bg);--hfg:var(--p4-fg)}
.hc-6{--hc:var(--p6);--hbg:var(--p6-bg);--hfg:var(--p6-fg)} .hc-7{--hc:var(--p7);--hbg:var(--p7-bg);--hfg:var(--p7-fg)}
.hc-8{--hc:var(--p8);--hbg:var(--p8-bg);--hfg:var(--p8-fg)}
.howto-foot{display:flex;flex-direction:column;gap:8px;transition:opacity .4s}
.howto-foot-off{opacity:0;pointer-events:none}
.howto-why{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:3px;font-size:14px;color:var(--fg-2)}
.howto-tips summary{cursor:pointer;font-weight:800;font-size:14px;padding:6px 0}
.howto-tips ul{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
.howto-tips li{display:flex;flex-direction:column;gap:2px;align-items:flex-start}
.howto-hide{align-self:flex-start;font-size:13px}
.howto-nudge{display:flex;flex-direction:column;gap:4px;text-align:left;width:100%;border:1px dashed var(--line-strong);background:var(--surface);color:var(--fg);border-radius:16px;padding:14px;font:inherit;cursor:pointer}
.howto-nudge b{font-size:15px}
@media (prefers-reduced-motion: reduce){.hrow,.howto-foot{transition:none}.hcaret{animation:none}}

/* v10: bloques cortos, todo el día en Hoy, familia, lista */
.blk-l{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;min-width:0;max-width:100%;word-break:normal;overflow-wrap:anywhere;hyphens:auto}
.blk.duty .dl1,.blk.duty .dl2{overflow:hidden;text-overflow:ellipsis;max-width:100%;display:block}
.allday{gap:2px;padding:10px 12px}
.allday-h{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--fg-2)}
.ad-item{display:flex;align-items:center;gap:6px;border:0;background:none;padding:8px 0;font:inherit;color:var(--fg);text-align:left;cursor:pointer;border-top:1px solid var(--line);min-height:44px}
.ad-item:first-of-type{border-top:0}
.ad-main{display:flex;flex-direction:column;min-width:0;margin-left:4px}
.ad-done b{text-decoration:line-through;opacity:.6}
.prow{align-items:center}
.row-go{font-size:13px;font-weight:800;color:var(--fg-2);white-space:nowrap}
.kind-list{display:flex;flex-direction:column;gap:8px}
.kind-b{display:flex;flex-direction:column;gap:3px;text-align:left;border:1px solid var(--line-strong);background:var(--surface);color:var(--fg);border-radius:14px;padding:14px;font:inherit;cursor:pointer;min-height:64px}
.kind-b b{font-size:16px}
.dots-pick{display:flex;flex-wrap:wrap;gap:8px}
.dot-b{width:28px;height:28px;border-radius:50%;border:0;background:var(--c);cursor:pointer;padding:0}
.dot-b[aria-pressed="true"]{box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--fg)}
.sheet-person{gap:14px}
.sheet{padding-bottom:calc(20px + env(safe-area-inset-bottom,0px) + var(--kb,0px))}
.more-set summary{cursor:pointer;display:flex;flex-direction:column;gap:2px;list-style:none}
.more-set summary::-webkit-details-marker{display:none}
.more-set summary b::after{content:" ›";color:var(--fg-2)}
.more-set[open] summary b::after{content:" ⌄"}
.more-in{display:flex;flex-direction:column;gap:16px;margin-top:12px}
.lrow{align-items:center}
.ldots{display:flex;gap:2px;flex:0 0 auto}
.pill-new{font-size:11px;font-weight:800;background:var(--info-bg);color:var(--info-fg);border-radius:999px;padding:1px 7px;vertical-align:2px}
#list-q{margin-top:2px}

/* v11: apuntar desde donde se mira y guía */
.nav-add{flex-direction:column;gap:0;height:58px;width:58px}
.nav-add svg{width:24px;height:24px}
.nav-add-l{font-size:11px;font-weight:800;line-height:1;margin-top:1px}
.add-here{display:flex;align-items:center;gap:8px;width:100%;border:1.5px dashed var(--line-strong);background:transparent;color:var(--fg);border-radius:12px;padding:10px 12px;font:inherit;font-weight:700;font-size:14px;cursor:pointer;min-height:44px;margin-top:8px}
.add-here svg{width:18px;height:18px;flex:0 0 auto}
.empty-add{display:flex;flex-direction:column;align-items:stretch;gap:2px}
.preset-note{display:flex;align-items:center;gap:8px;background:var(--info-bg);color:var(--info-fg);border-radius:10px;padding:8px 10px;font-weight:700;font-size:14px}
.preset-note svg{width:18px;height:18px;flex:0 0 auto}
.lane{cursor:copy}
.help-link{align-self:center;font-size:14px}
#tour{position:fixed;inset:0;z-index:100}
.tour-hole{position:fixed;border-radius:16px;box-shadow:0 0 0 9999px var(--scrim);pointer-events:none;outline:3px solid var(--on-ink);transition:all .25s}
.tour-card{position:fixed;left:max(16px,env(safe-area-inset-left,0px));right:max(16px,env(safe-area-inset-right,0px));max-width:420px;margin:0 auto;background:var(--surface);color:var(--fg);border-radius:18px;padding:16px;display:flex;flex-direction:column;gap:8px;box-shadow:0 10px 30px var(--shadow)}
.tour-card b{font-size:18px}
.tour-n{font-size:12px;font-weight:800;color:var(--fg-2);text-transform:uppercase;letter-spacing:.05em}
@media (prefers-reduced-motion: reduce){.tour-hole{transition:none}}

.field-err{color:var(--bad);font-weight:800;font-size:14px}
.inp-bad{border-color:var(--bad)!important;box-shadow:0 0 0 3px var(--bad-bg)}

/* v13: paleta pastel apta para daltonismo (esquema «light» de Paul Tol) */
:root{
--p1:#44BB99; --p1-bg:#C7EBE0; --p1-fg:#18493C;
  --p2:#77AADD; --p2-bg:#D6E6F5; --p2-fg:#1C3F66;
  --p3:#EE8866; --p3-bg:#FADBD1; --p3-fg:#6E2A12;
  --p4:#FFAABB; --p4-bg:#FFE6EB; --p4-fg:#6E2236;
  --p5:#EEDD88; --p5-bg:#FAF5DB; --p5-fg:#504510;
  --p6:#99DDFF; --p6-bg:#E0F5FF; --p6-fg:#164A66;
  --p7:#7A808A; --p7-bg:#D7D9DC; --p7-fg:#2B2F36;
  --p8:#BBCC33; --p8-bg:#EBF0C2; --p8-fg:#3E4710;
  --on-p:#1B1E24; --p-ring:rgba(20,24,33,.28);
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){
--p1:#44BB99; --p1-bg:#23413E; --p1-fg:#73CCB2;
  --p2:#77AADD; --p2-bg:#2F3D4E; --p2-fg:#99BFE6;
  --p3:#EE8866; --p3-bg:#4B3532; --p3-fg:#F2A68C;
  --p4:#FFAABB; --p4-bg:#4F3D46; --p4-fg:#FFBFCC;
  --p5:#EEDD88; --p5-bg:#4B4A3A; --p5-fg:#F2E6A6;
  --p6:#99DDFF; --p6-bg:#374A56; --p6-fg:#B2E6FF;
  --p7:#7A808A; --p7-bg:#353940; --p7-fg:#B6B9BF;
  --p8:#BBCC33; --p8-bg:#3F4525; --p8-fg:#CCD966;
  --on-p:#111318; --p-ring:rgba(255,255,255,.22);
} }
:root[data-theme="dark"]{
--p1:#44BB99; --p1-bg:#23413E; --p1-fg:#73CCB2;
  --p2:#77AADD; --p2-bg:#2F3D4E; --p2-fg:#99BFE6;
  --p3:#EE8866; --p3-bg:#4B3532; --p3-fg:#F2A68C;
  --p4:#FFAABB; --p4-bg:#4F3D46; --p4-fg:#FFBFCC;
  --p5:#EEDD88; --p5-bg:#4B4A3A; --p5-fg:#F2E6A6;
  --p6:#99DDFF; --p6-bg:#374A56; --p6-fg:#B2E6FF;
  --p7:#7A808A; --p7-bg:#353940; --p7-fg:#B6B9BF;
  --p8:#BBCC33; --p8-bg:#3F4525; --p8-fg:#CCD966;
  --on-p:#111318; --p-ring:rgba(255,255,255,.22);
}
.chip.m[aria-pressed="true"],.item-strong,.avatar,.deck-front,.blk.d-acompana .dl1 .di,.blk.d-lleva,.blk.strong.solid{color:var(--on-p)}
.chip.m[aria-pressed="true"]{color:var(--on-p)}
.dot,.pdot,.chip.m::before{box-shadow:inset 0 0 0 1px var(--p-ring)}
.dot-b{width:40px;height:40px;box-shadow:inset 0 0 0 1px var(--p-ring);display:flex;align-items:center;justify-content:center;color:var(--on-p);font:inherit;font-size:13px;font-weight:800;letter-spacing:.02em}
.dot-b .dot-who{line-height:1}
.dot-b .dot-more{font-size:10px;margin-left:1px}
.dots-pick{gap:10px}
.color-legend{font-size:13px}

.tl-name,.kid-name,.bar-n,.stat b,.row-k{color:var(--cf)}
.tl-name::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--c);box-shadow:inset 0 0 0 1px var(--p-ring);margin-right:4px;vertical-align:1px}
.dot-b{width:36px;height:36px;font-size:12px}
.dots-pick{gap:7px}

/* v14: 8 colores más */
:root{ --p9:#B3A6E6; --p9-bg:#E8E4F8; --p9-fg:#443F57; --p10:#F5C08A; --p10-bg:#FCECDC; --p10-fg:#5D4934; --p11:#9CC98A; --p11-bg:#E1EFDC; --p11-fg:#3B4C34; --p12:#D98AA0; --p12-bg:#F4DCE2; --p12-fg:#52343D; --p13:#6CC4C4; --p13-bg:#D3EDED; --p13-fg:#294A4A; --p14:#D9A6E0; --p14-bg:#F4E4F6; --p14-fg:#523F55; --p15:#CDB892; --p15-bg:#F0EADE; --p15-fg:#4E4637; --p16:#8FA8C8; --p16-bg:#DDE5EE; --p16-fg:#36404C; }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){ --p9:#B3A6E6; --p9-bg:#3D3C50; --p9-fg:#C6BCEC; --p10:#F5C08A; --p10-bg:#4D433A; --p10-fg:#F8D0A7; --p11:#9CC98A; --p11-bg:#38453A; --p11-fg:#B5D6A7; --p12:#D98AA0; --p12-bg:#46363F; --p12-fg:#E2A7B8; --p13:#6CC4C4; --p13-bg:#2C4448; --p13-fg:#91D3D3; --p14:#D9A6E0; --p14-bg:#463C4F; --p14-fg:#E2BCE8; --p15:#CDB892; --p15-bg:#43413C; --p15-fg:#DACAAD; --p16:#8FA8C8; --p16-bg:#353D49; --p16-fg:#ABBED6; } }
:root[data-theme="dark"]{ --p9:#B3A6E6; --p9-bg:#3D3C50; --p9-fg:#C6BCEC; --p10:#F5C08A; --p10-bg:#4D433A; --p10-fg:#F8D0A7; --p11:#9CC98A; --p11-bg:#38453A; --p11-fg:#B5D6A7; --p12:#D98AA0; --p12-bg:#46363F; --p12-fg:#E2A7B8; --p13:#6CC4C4; --p13-bg:#2C4448; --p13-fg:#91D3D3; --p14:#D9A6E0; --p14-bg:#463C4F; --p14-fg:#E2BCE8; --p15:#CDB892; --p15-bg:#43413C; --p15-fg:#DACAAD; --p16:#8FA8C8; --p16-bg:#353D49; --p16-fg:#ABBED6; }
.pc-9{--c:var(--p9);--cb:var(--p9-bg);--cf:var(--p9-fg)}
.pc-10{--c:var(--p10);--cb:var(--p10-bg);--cf:var(--p10-fg)}
.pc-11{--c:var(--p11);--cb:var(--p11-bg);--cf:var(--p11-fg)}
.pc-12{--c:var(--p12);--cb:var(--p12-bg);--cf:var(--p12-fg)}
.pc-13{--c:var(--p13);--cb:var(--p13-bg);--cf:var(--p13-fg)}
.pc-14{--c:var(--p14);--cb:var(--p14-bg);--cf:var(--p14-fg)}
.pc-15{--c:var(--p15);--cb:var(--p15-bg);--cf:var(--p15-fg)}
.pc-16{--c:var(--p16);--cb:var(--p16-bg);--cf:var(--p16-fg)}
.more-colors summary{cursor:pointer;font-weight:800;font-size:14px;padding:8px 0;list-style:none}
.more-colors summary::-webkit-details-marker{display:none}
.more-colors summary::before{content:"+ "}
.more-colors[open] summary::before{content:"− "}
/* Los avisos no tapan botones y, con una ficha abierta, salen arriba */
.toast{pointer-events:none}
body:has(.sheet-bg) .toast{bottom:auto;top:calc(16px + env(safe-area-inset-top,0px))}

.list-card{padding:0;overflow:hidden}
.list-card .add-here{margin:8px 12px 12px;width:calc(100% - 24px)}
.list-card .add-here svg{width:18px;height:18px}

.seg-wrap{flex-wrap:wrap}
.seg-wrap .seg-b{flex:1 1 45%}

/* v17: avisos con una línea por persona */
.alert-who{list-style:none;margin:2px 0 4px;padding:0;display:flex;flex-direction:column;gap:6px}
.alert-who li{display:flex;flex-direction:column;gap:1px;padding:7px 10px;border-radius:10px;background:rgba(255,255,255,.14);line-height:1.35}
.alert.t-warn .alert-who li{background:var(--surface-2)}
.alert-who b{font-size:13px;font-weight:800;opacity:1}
.alert-who span{font-size:14px}
.alert-note{margin:6px 0 2px;font-weight:700;font-size:14px;line-height:1.4}

/* v18: tareas y cosas que llevar, distintas de las actividades */
.item-todo{background:var(--surface)!important;color:var(--fg)!important;box-shadow:inset 0 0 0 1.5px var(--line-strong),inset 4px 0 0 var(--c)}
.item-todo .item-who,.item-todo .item-sub{color:var(--fg-2)}
.item-ico{display:flex;flex-direction:column;align-items:center;gap:1px;color:var(--fg)}
.item-ico small{font-size:10.5px;font-weight:800}
.item-done .item-title{text-decoration:line-through;opacity:.65}
.ad-ico{display:inline-flex;align-items:center;color:var(--fg);flex:0 0 auto}
.ad-todo .ad-main b{font-weight:700}
