:root{--bg: #FAF6EF;--card: #FFFFFF;--ink: #2B2620;--sub: #8A8071;--line: #F0E9DD;--soft: #F6F0E6;--accent: #E8A23D;--radius: 20px;--shadow: 0 2px 10px rgba(90, 70, 40, .06)}[data-theme=dark]{--bg: #1E1A15;--card: #2A251E;--ink: #F2EDE3;--sub: #A79B87;--line: #3A342A;--soft: #353028;--shadow: 0 2px 12px rgba(0, 0, 0, .35)}[data-theme=dark] body{background:var(--bg)}[data-theme=dark] .briefing{background:linear-gradient(90deg,#3a3120,#3a2831);border-color:#4a3e24}[data-theme=dark] .briefing .spark{background:#6b5518}[data-theme=dark] .ping-last{background:linear-gradient(90deg,#3a3120,#3a2831);border-color:#4a3e24}[data-theme=dark] .event{background:#353028}[data-theme=dark] .note{background:#3a3322}[data-theme=dark] .count-card{background:linear-gradient(135deg,#4a3b22,#4a2e3a)}[data-theme=dark] .count-card .l{color:#c9b08a}[data-theme=dark] .demo-tag{background:#4a3e24;color:#e0be72}[data-theme=dark] .rbtn.scene{background:linear-gradient(135deg,#4a3b22,#4a2e3a)}[data-theme=dark] .budget-row .bar,[data-theme=dark] .bar{background:#3a342a}[data-theme=dark] .msg.mine{background:#f2ede3;color:#1e1a15}[data-theme=dark] .appels-overlay{background:#0000008c}[data-theme=dark] .chip.add{border-color:#4a4436}[data-theme=dark] .shop-add input{border-color:#3a342a}[data-theme=dark] .pin-form input,[data-theme=dark] .appels-input input{border-color:#3a342a;color:var(--ink)}[data-theme=dark] .btn{background:#f2ede3;color:#1e1a15}[data-theme=dark] .btn.ghost{background:var(--soft);color:var(--ink)}[data-theme=dark] .tile .rm{background:#f2ede3;color:#1e1a15}*{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:-apple-system,SF Pro Display,Segoe UI,Roboto,Inter,sans-serif;min-height:100dvh}button{font:inherit;border:0;background:none;cursor:pointer;color:inherit}.app{max-width:640px;margin:0 auto;padding:20px 16px calc(28px + env(safe-area-inset-bottom))}@media (min-width: 900px){.app{max-width:1200px}}.profiles-screen{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:24px}.profiles-screen h1{font-size:30px;font-weight:800;letter-spacing:-.5px}.profiles-screen .sub{color:var(--sub);font-weight:600;margin-top:6px;text-align:center}.profile-grid{display:flex;flex-wrap:wrap;gap:20px;justify-content:center}.profile-btn{display:flex;flex-direction:column;align-items:center;gap:10px;min-width:88px;padding:8px;border-radius:16px}.profile-btn:active{transform:scale(.96)}.profile-btn .avatar{width:76px;height:76px;border-radius:50%;background:var(--card);display:flex;align-items:center;justify-content:center;font-size:38px;border:4px solid var(--pcolor);box-shadow:var(--shadow)}.profile-btn .name{font-weight:800;font-size:16px}.pin-form{display:flex;flex-direction:column;align-items:center;gap:14px}.pin-form input{font-size:28px;letter-spacing:12px;text-align:center;width:180px;padding:12px;border:2px solid var(--line);border-radius:14px;background:var(--card)}.pin-form.gate input{font-size:17px;letter-spacing:normal;width:min(320px,80vw);font-weight:600}.pin-form .error{color:#b4523c;font-weight:700;font-size:14px}.btn{background:var(--ink);color:#fff;font-weight:800;padding:12px 26px;border-radius:99px;min-height:48px}.btn.ghost{background:var(--soft);color:var(--ink)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.topbar h1{font-size:24px;font-weight:800;letter-spacing:-.4px}.topbar .date{color:var(--sub);font-size:14px;font-weight:600;margin-top:2px}.topbar .me{width:48px;height:48px;border-radius:50%;background:var(--card);font-size:24px;display:flex;align-items:center;justify-content:center;border:3px solid var(--pcolor);box-shadow:var(--shadow)}.briefing{margin-top:16px;background:linear-gradient(90deg,#fff4de,#fdebef);border:1px solid #F3E2C8;border-radius:var(--radius);padding:14px 16px;display:flex;gap:12px;align-items:center}.briefing .spark{width:34px;height:34px;border-radius:12px;background:#ffd98a;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}.briefing p{font-size:16px;font-weight:700;line-height:1.35}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:16px}@media (min-width: 900px){.grid{grid-template-columns:repeat(6,1fr);gap:16px;align-items:start}}.tile{background:var(--card);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow);min-height:96px;overflow:hidden}.tile.size-S{grid-column:span 1}.tile.size-M,.tile.size-L{grid-column:span 2}@media (min-width: 900px){.tile.size-S{grid-column:span 2}.tile.size-M{grid-column:span 3}.tile.size-L{grid-column:span 4}}.tile .lab{font-size:11px;font-weight:800;color:var(--sub);text-transform:uppercase;letter-spacing:.6px;display:flex;justify-content:space-between;gap:8px}.tile .big{font-size:24px;font-weight:800;margin-top:6px;letter-spacing:-.3px}.tile .sm{font-size:13px;color:var(--sub);font-weight:600;margin-top:3px;line-height:1.35}.demo-tag{font-size:10px;font-weight:800;color:#b08430;background:#fff4de;border-radius:99px;padding:2px 8px;letter-spacing:0;text-transform:none}.avrow{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.avrow .mini{width:36px;height:36px;border-radius:50%;background:var(--bg);font-size:18px;display:flex;align-items:center;justify-content:center;border:3px solid var(--pcolor);position:relative}.avrow .mini .dot{position:absolute;bottom:-2px;right:-2px;width:13px;height:13px;border-radius:50%;border:2.5px solid var(--card)}.dot.thuis{background:#34c077}.dot.onderweg{background:#e8a23d}.dot.school{background:#3b82d6}.dot.onbekend{background:#c4bbaa}.agenda-list{margin-top:10px;display:flex;flex-direction:column;gap:10px}.agenda-day .dayname{font-size:12px;font-weight:800;color:var(--sub);margin-bottom:5px}.agenda-day.today .dayname{color:var(--ink)}.event{display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:12px;background:var(--soft);margin-bottom:5px}.event .bar{width:4px;align-self:stretch;border-radius:4px;background:var(--ecolor)}.event .t{font-size:14px;font-weight:700}.event .w{font-size:12px;color:var(--sub);font-weight:600}.event .time{margin-left:auto;font-size:12.5px;font-weight:800;color:var(--sub);white-space:nowrap}.empty{color:var(--sub);font-weight:600;font-size:14px;margin-top:10px}.count-row{display:flex;gap:12px;margin-top:10px}.count-card{flex:1;background:linear-gradient(135deg,#ffe9c7,#ffd6e4);border-radius:14px;padding:12px;text-align:center}.count-card .n{font-size:30px;font-weight:900;letter-spacing:-1px}.count-card .l{font-size:12px;font-weight:700;color:#8a6b4f;margin-top:2px}.tile.photos{padding:0;position:relative;background:linear-gradient(135deg,#8fb6d9,#c6a9d9);min-height:130px}.tile.photos .inner{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:42px}.tile.photos .lab{position:absolute;left:14px;bottom:12px;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.3)}.editbar{margin-top:18px;display:flex;justify-content:center;gap:10px}@keyframes wiggle{0%{rotate:-.7deg}50%{rotate:.7deg}to{rotate:-.7deg}}.tile.editable{touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab;position:relative;overflow:visible}.tile.wiggle{animation:wiggle .35s ease-in-out infinite}.tile.wiggle:nth-child(2n){animation-delay:.12s}.tile.wiggle:nth-child(3n){animation-delay:.2s}.tile.dragging{animation:none;cursor:grabbing;z-index:40;box-shadow:0 14px 34px #5a462847;opacity:.92}.tile.drop-target{outline:3px dashed var(--accent);outline-offset:2px;animation:none}.tile .rm{position:absolute;top:-8px;right:-8px;z-index:5;width:28px;height:28px;border-radius:50%;background:var(--ink);color:#fff;font-size:13px;font-weight:800;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #00000040}.tray{margin-top:16px;background:var(--soft);border-radius:var(--radius);padding:14px 16px}.tray-title{font-size:12px;font-weight:800;color:var(--sub);text-transform:uppercase;letter-spacing:.6px}.tray-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.chip{background:var(--card);border-radius:99px;padding:10px 16px;font-weight:700;font-size:14px;box-shadow:var(--shadow);min-height:44px}.chip.add{border:1.5px dashed #D8CFBE}.remote{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap;align-items:center}.rbtn{min-width:48px;height:48px;border-radius:16px;background:var(--soft);font-size:19px;font-weight:800;display:flex;align-items:center;justify-content:center}.rbtn:active{transform:scale(.94)}.rbtn.power{background:var(--ink);color:#fff;border-radius:50%}.rbtn.scene{font-size:14px;padding:0 16px;background:linear-gradient(135deg,#ffe9c7,#ffd6e4)}.remote-note{min-height:18px}.shop-list{margin-top:10px;display:flex;flex-direction:column;gap:6px}.shop-item{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:700;min-height:44px;text-align:left;border-radius:10px;padding:0 6px}.shop-item.done{color:var(--sub);text-decoration:line-through}.cb{width:22px;height:22px;border-radius:7px;border:2px solid #D8CFBE;flex-shrink:0;position:relative;background:var(--card)}.cb.checked{background:#34c077;border-color:#34c077}.cb.checked:after{content:"✓";color:#fff;font-size:14px;font-weight:800;position:absolute;top:0;left:4px}.shop-add input{width:100%;margin-top:10px;border:2px dashed var(--line);border-radius:12px;padding:10px 14px;font:inherit;font-weight:600;background:transparent;min-height:44px}.shop-add input:focus{outline:none;border-color:var(--accent);background:var(--card)}.ping-last{margin-top:10px;background:linear-gradient(90deg,#fff4de,#fdebef);border:1px solid #F3E2C8;border-radius:14px;padding:10px 14px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.ping-last .pl-text{font-size:17px;font-weight:800}.ping-last .pl-meta{font-size:12px;font-weight:700;color:var(--sub)}.ping-people{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}.ping-person{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:56px}.ping-person .face{width:48px;height:48px;border-radius:50%;background:var(--bg);display:flex;align-items:center;justify-content:center;font-size:24px;border:3px solid var(--pcolor, #D8CFBE)}.ping-person:active .face{transform:scale(.92)}.ping-person .pnm{font-size:11.5px;font-weight:800;color:var(--sub)}.ping-person.all .face{background:var(--soft);border-style:dashed}.ping-presets{margin-top:12px}.pp-title{font-size:14px;font-weight:600;color:var(--sub);display:flex;align-items:center;gap:8px}.pp-title b{color:var(--ink)}.pp-cancel{margin-left:auto;width:32px;height:32px;border-radius:50%;background:var(--soft);font-weight:800;font-size:13px}.pp-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.ping-sent{color:#2fa36b;font-weight:700;margin-top:8px}.notes{margin-top:10px;display:flex;flex-direction:column;gap:8px}.note{background:#fff9e6;border-left:5px solid var(--ncolor);border-radius:6px 12px 12px 6px;padding:10px 12px;box-shadow:var(--shadow)}.note .nt{font-size:14.5px;font-weight:700;line-height:1.35}.note .nw{font-size:12px;font-weight:700;color:var(--sub);margin-top:4px}.saldo-big{font-size:34px;font-weight:900;letter-spacing:-.5px;margin-top:8px}.saldo-list{margin-top:10px;display:flex;flex-direction:column;gap:8px}.saldo-row{display:flex;justify-content:space-between;font-size:15px;font-weight:700}.saldo-row b{font-weight:900}.budget-row{margin-top:10px}.budget-row .r{display:flex;justify-content:space-between;font-size:14px;font-weight:700}.budget-row .r span:last-child{color:var(--sub)}.budget-row .bar{height:8px;border-radius:99px;background:#efe8da;margin-top:6px;overflow:hidden}.budget-row .bar i{display:block;height:100%;border-radius:99px}.appels-bar{position:fixed;left:50%;transform:translate(-50%);bottom:calc(14px + env(safe-area-inset-bottom));width:min(560px,calc(100% - 32px));background:var(--card);border-radius:99px;box-shadow:0 8px 28px #5a46282e;display:flex;align-items:center;gap:10px;padding:8px 10px 8px 14px;min-height:54px;z-index:30}.appels-bar .ph{color:var(--sub);font-weight:600;font-size:15px;flex:1;text-align:left}.appels-face{font-size:22px}.appels-face.big{font-size:30px}.appels-bar .mic,.appels-input .mic{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#ffb25e,#f2789f);display:flex;align-items:center;justify-content:center;font-size:17px;color:#fff}.appels-input .mic[disabled]{opacity:.45;cursor:not-allowed}.app{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.appels-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2b262059;z-index:50;display:flex;align-items:flex-end;justify-content:center}.appels-sheet{background:var(--bg);width:min(640px,100%);max-height:85dvh;border-radius:24px 24px 0 0;display:flex;flex-direction:column;padding:16px 16px calc(14px + env(safe-area-inset-bottom))}.appels-head{display:flex;align-items:center;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--line)}.appels-head .nm{font-weight:800;font-size:17px}.appels-head .st{font-size:13px;color:var(--sub);font-weight:600}.appels-head .close{margin-left:auto;width:40px;height:40px;border-radius:50%;background:var(--soft);font-weight:800}.appels-msgs{overflow-y:auto;flex:1;min-height:180px;display:flex;flex-direction:column;gap:10px;padding:14px 2px}.msg{background:var(--card);border-radius:16px 16px 16px 4px;padding:10px 14px;font-size:15px;font-weight:600;line-height:1.45;max-width:85%;align-self:flex-start;box-shadow:var(--shadow)}.msg.mine{background:#2b2620;color:#fff;border-radius:16px 16px 4px;align-self:flex-end}.msg.thinking{color:var(--sub)}.appels-chips{display:flex;flex-wrap:wrap;gap:8px;padding:4px 2px 10px}.appels-input{display:flex;gap:8px;align-items:center}.appels-input input{flex:1;border:2px solid var(--line);border-radius:99px;padding:12px 18px;font:inherit;font-weight:600;background:var(--card);min-height:48px}.appels-input .send{width:44px;height:44px;border-radius:50%;background:var(--ink);color:#fff;font-size:19px;font-weight:800}.appels-input .send[disabled]{opacity:.3}.kid .tile .big{font-size:28px}.kid .tile{min-height:110px}.kid .briefing p{font-size:18px}.loading,.err{text-align:center;color:var(--sub);font-weight:700;padding:40px 0}.err{color:#b4523c}.menu-sheet{background:var(--bg);width:min(420px,100%);border-radius:24px 24px 0 0;padding:18px 18px calc(18px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:8px}.menu-head{display:flex;align-items:center;gap:12px;padding:4px 6px 12px;font-size:17px}.menu-head .mini,.acc-row .mini{width:40px;height:40px;border-radius:50%;background:var(--card);font-size:20px;display:inline-flex;align-items:center;justify-content:center;border:3px solid var(--pcolor)}.menu-item{background:var(--card);border-radius:14px;padding:14px 16px;font-weight:800;font-size:15.5px;text-align:left;box-shadow:var(--shadow);min-height:52px}.menu-item.subtle{background:none;box-shadow:none;color:var(--sub);text-align:center;min-height:44px}.settings{padding-bottom:40px}.set-head{display:flex;align-items:center;gap:14px}.set-head h1{font-size:24px;font-weight:800;letter-spacing:-.4px}.set-head .back{width:44px;height:44px;border-radius:50%;background:var(--card);font-size:20px;font-weight:800;box-shadow:var(--shadow)}.set-section{margin-top:26px}.set-section h2{font-size:13px;font-weight:800;color:var(--sub);text-transform:uppercase;letter-spacing:.7px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.set-hint{font-size:13px;color:var(--sub);font-weight:600;margin-top:10px;line-height:1.4}.segment{display:flex;background:var(--soft);border-radius:99px;padding:4px;margin-top:12px}.segment button{flex:1;min-height:44px;border-radius:99px;font-weight:800;font-size:14px;color:var(--sub)}.segment button.on{background:var(--card);color:var(--ink);box-shadow:var(--shadow)}.kid-tabs{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.kid-tabs .chip.on{outline:2.5px solid var(--pcolor)}.perm-list{margin-top:12px;display:flex;flex-direction:column;gap:6px}.perm-row{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--card);border-radius:14px;padding:12px 16px;box-shadow:var(--shadow);font-weight:700;font-size:15px;min-height:52px}.switch{width:52px;height:32px;border-radius:99px;background:var(--soft);position:relative;transition:background .15s;flex-shrink:0}.switch i{position:absolute;top:3px;left:3px;width:26px;height:26px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #00000040;transition:left .15s}.switch.on{background:#34c077}.switch.on i{left:23px}.acc-list{margin-top:12px;display:flex;flex-direction:column;gap:8px}.acc-row{display:flex;align-items:center;gap:12px;background:var(--card);border-radius:14px;padding:12px 14px;box-shadow:var(--shadow);flex-wrap:wrap}.acc-info{flex:1;min-width:120px}.acc-name{font-weight:800;font-size:15px}.acc-iban{font-size:12px;color:var(--sub);font-weight:600;font-variant-numeric:tabular-nums}.badge{font-size:11.5px;font-weight:800;border-radius:99px;padding:5px 10px;white-space:nowrap}.badge.ok{background:#dcf3e4;color:#1e7a47}.badge.warn{background:#fdebcf;color:#9a6a15}.badge.err{background:#fde0da;color:#a5402c}.badge.off{background:var(--soft);color:var(--sub)}[data-theme=dark] .badge.ok{background:#1e4a30;color:#7adfa5}[data-theme=dark] .badge.warn{background:#4a3b18;color:#e8c070}[data-theme=dark] .badge.err{background:#4a241c;color:#f0937d}.btn.small{padding:8px 16px;min-height:40px;font-size:13.5px}.avatar-sheet{max-height:85dvh;overflow-y:auto}.menu-head .mini.preview{width:52px;height:52px;font-size:26px}.avatar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:8px;margin-top:8px}.av-opt{aspect-ratio:1;border-radius:14px;background:var(--card);font-size:26px;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow)}.av-opt.on{outline:3px solid var(--accent)}.color-row{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}.col-opt{width:40px;height:40px;border-radius:50%;box-shadow:var(--shadow)}.col-opt.on{outline:3px solid var(--ink);outline-offset:2px}.prof-row-list{margin-top:12px;display:flex;flex-direction:column;gap:6px}.prof-row{display:flex;align-items:center;gap:12px;background:var(--card);border-radius:14px;padding:10px 14px;box-shadow:var(--shadow);min-height:56px;font-weight:800;font-size:15px;text-align:left}.prof-row .nm{flex:1}.prof-row .hint{color:var(--sub);font-size:13px;font-weight:700}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(20px + env(safe-area-inset-bottom));background:var(--ink);color:var(--bg);font-weight:700;font-size:14px;padding:12px 20px;border-radius:99px;box-shadow:0 8px 28px #0000004d;z-index:60;max-width:calc(100% - 40px);text-align:center}
