@charset "UTF-8";:root{--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", sans-serif;--bg: #eef1f6;--bg-grad-a: #eef2ff;--bg-grad-b: #f6f7fb;--surface: #ffffff;--surface-2: #f6f8fc;--surface-3: #eef1f7;--text: #0f172a;--text-muted: #64748b;--border: #e3e8ef;--border-strong: #cdd5e0;--accent: #6366f1;--accent-strong: #4f46e5;--accent-soft: #eef0ff;--on-accent: #ffffff;--success: #16a34a;--success-soft: #dcfce7;--danger: #e11d48;--danger-soft: #ffe4e6;--warning: #d97706;--warning-soft: #fef3c7;--info: #0ea5e9;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06), 0 1px 3px rgba(15, 23, 42, .08);--shadow-md: 0 4px 12px rgba(15, 23, 42, .08);--shadow-lg: 0 12px 32px rgba(15, 23, 42, .14);--r-sm: 8px;--r: 12px;--r-lg: 16px;--r-xl: 22px;--pill: 999px;--tap: 44px;--ease: .18s ease}@media (prefers-color-scheme: dark){:root{--bg: #0b1120;--bg-grad-a: #0b1224;--bg-grad-b: #0e1426;--surface: #151b2c;--surface-2: #1b2335;--surface-3: #222b40;--text: #e9edf5;--text-muted: #97a3b6;--border: #283044;--border-strong: #38415a;--accent: #818cf8;--accent-strong: #6366f1;--accent-soft: #1e2440;--on-accent: #0b1120;--success: #34d399;--success-soft: #0f2e22;--danger: #fb7185;--danger-soft: #3a1620;--warning: #fbbf24;--warning-soft: #382a10;--info: #38bdf8;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 6px 16px rgba(0, 0, 0, .45);--shadow-lg: 0 16px 40px rgba(0, 0, 0, .55)}}*{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font);color:var(--text);background:var(--bg);background-image:linear-gradient(180deg,var(--bg-grad-a),var(--bg-grad-b));background-attachment:fixed;min-height:100vh;line-height:1.45;-webkit-font-smoothing:antialiased;padding:16px}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}.container{max-width:760px;margin:0 auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);padding:24px;box-shadow:var(--shadow-md)}.header{text-align:center;margin-bottom:18px}.title{font-size:1.7rem;font-weight:800;letter-spacing:-.02em;margin-bottom:2px}.subtitle{font-size:.95rem;color:var(--text-muted);font-weight:600;margin-bottom:14px}.route-info{display:inline-block;background:var(--accent-soft);color:var(--accent-strong);border:1px solid color-mix(in srgb,var(--accent) 22%,transparent);padding:8px 16px;border-radius:var(--pill);font-size:.95rem;font-weight:700;margin-bottom:12px}.status{display:inline-block;text-align:center;padding:6px 14px;border-radius:var(--pill);font-size:.82rem;font-weight:700;background:var(--surface-3);color:var(--text-muted)}.status.loading{background:var(--warning-soft);color:var(--warning)}.status.connected{background:var(--success-soft);color:var(--success)}.status.error{background:var(--danger-soft);color:var(--danger)}.sync-badge{display:inline-block;margin:10px auto 0;padding:4px 12px;border-radius:var(--pill);font-size:.78rem;font-weight:700}.sync-badge.hidden{display:none}.sync-badge.online{background:var(--success-soft);color:var(--success)}.sync-badge.syncing{background:var(--warning-soft);color:var(--warning)}.sync-badge.offline{background:var(--danger-soft);color:var(--danger)}.mode-bar{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:12px}.mode-label{font-weight:700;color:var(--text-muted);font-size:.9rem}.tabs{display:flex;gap:8px;margin-bottom:18px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--pill);padding:6px}.tab{flex:1;min-height:var(--tap);padding:10px 12px;border:none;border-radius:var(--pill);background:transparent;color:var(--text-muted);font-weight:700;font-size:.92rem;cursor:pointer;transition:background var(--ease),color var(--ease)}.tab.active{background:var(--surface);color:var(--accent-strong);box-shadow:var(--shadow-sm)}.add-kid-section,.activities-section,.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:18px;margin-bottom:16px;box-shadow:var(--shadow-sm)}.section-title{font-size:1.05rem;font-weight:800;letter-spacing:-.01em;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.panel-title{font-weight:800;font-size:1rem;margin-bottom:10px}.empty-hint{color:var(--text-muted);font-style:italic;text-align:center;padding:6px 0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:var(--tap);padding:10px 16px;border:1px solid var(--border-strong);border-radius:var(--pill);background:var(--surface-2);color:var(--text);font-size:.95rem;font-weight:700;cursor:pointer;transition:transform var(--ease),box-shadow var(--ease),filter var(--ease),background var(--ease);-webkit-tap-highlight-color:transparent}.btn:hover:not(:disabled){filter:brightness(.97);box-shadow:var(--shadow-sm)}.btn:active:not(:disabled){transform:translateY(1px) scale(.99)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-add{background:linear-gradient(180deg,var(--accent),var(--accent-strong));border-color:transparent;color:var(--on-accent)}.btn-subtract{background:var(--danger);border-color:transparent;color:#fff}.btn.tiny{min-height:34px;padding:6px 12px;font-size:.82rem}.btn.cancel{background:var(--surface-3);color:var(--text);border-color:var(--border-strong)}.btn.undo{background:var(--danger-soft);color:var(--danger);border-color:transparent}.mode-btn{background:var(--surface-2);color:var(--text);font-size:.82rem;min-height:36px;padding:6px 12px}.link-btn{background:none;border:none;color:var(--accent-strong);font-size:.82rem;font-weight:700;min-height:auto;padding:4px 6px;cursor:pointer}.reset-btn{display:block;width:100%;min-height:var(--tap);margin:14px 0 0;padding:12px 18px;border:1px solid var(--border-strong);border-radius:var(--pill);background:var(--surface-2);color:var(--text);font-size:.95rem;font-weight:700;cursor:pointer;transition:transform var(--ease),box-shadow var(--ease)}.reset-btn:active:not(:disabled){transform:translateY(1px)}.reset-btn:disabled{opacity:.5;cursor:not-allowed}.reset-btn.is-primary{background:linear-gradient(180deg,var(--accent),var(--accent-strong));border-color:transparent;color:var(--on-accent)}input,select,textarea{font-size:16px}.kid-input{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.kid-input input,.kid-input select{flex:1;min-width:0;min-height:var(--tap);padding:11px 13px;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font-weight:600}.kid-input input:focus,.kid-input select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.kid-input input::placeholder{color:var(--text-muted)}.inline-select{min-height:var(--tap);padding:10px 12px;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font-weight:600;max-width:100%}.inline-select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.checkbox-label{display:inline-flex;align-items:center;gap:7px;font-weight:600;color:var(--text)}.checkbox-label input{width:18px;height:18px;accent-color:var(--accent)}.repair-custom,.cp-note{width:100%;min-height:var(--tap);padding:11px 13px;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--text);margin-bottom:8px}.repair-custom:focus,.cp-note:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.kids-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-bottom:16px}.kid-card{position:relative;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-lg);padding:18px 16px 16px;text-align:center;box-shadow:var(--shadow-sm);transition:transform var(--ease),box-shadow var(--ease),border-color var(--ease);cursor:pointer}.kid-card:hover{box-shadow:var(--shadow-md)}.kid-card.selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft),var(--shadow-md)}.kid-card.flash-good{border-color:var(--success)}.kid-card.flash-bad{border-color:var(--danger)}.kid-select-hint{position:absolute;top:10px;right:12px;font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);opacity:.7}.kid-select-hint:before{content:"tap to select"}.kid-card.selected .kid-select-hint{color:var(--accent-strong);opacity:1}.kid-card.selected .kid-select-hint:before{content:"✓ selected"}.kid-name{font-size:1.15rem;font-weight:800;margin-bottom:2px}.score{font-size:2.6rem;font-weight:800;letter-spacing:-.03em;color:var(--accent-strong);margin:6px 0 8px;line-height:1}.points-breakdown{display:flex;justify-content:center;gap:12px;font-size:.78rem;font-weight:600;color:var(--text-muted);margin-bottom:10px}.card-goal{font-size:.82rem;font-weight:600;background:var(--surface-2);border-radius:var(--r-sm);padding:5px 8px;margin-bottom:8px}.card-goal.done{color:var(--success)}.reward-progress{margin:8px 0}.reward-next{font-size:.78rem;font-weight:600;color:var(--text-muted);margin-bottom:5px}.progress-track{height:8px;background:var(--surface-3);border-radius:var(--pill);overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-strong));border-radius:var(--pill)}.controls{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}.controls .btn{min-width:0;padding:10px 4px}.card-repairs{margin:8px 0;display:flex;flex-direction:column;gap:6px}.repair-chip{font-size:.78rem;background:var(--warning-soft);color:var(--warning);border-radius:var(--r-sm);padding:6px 8px;display:flex;justify-content:space-between;align-items:center;gap:8px}.card-actions{display:flex;gap:6px;justify-content:center;margin-top:10px;flex-wrap:wrap}.selected-kid{font-weight:800;margin-left:8px}.quick-info{text-align:center;font-style:italic;color:var(--text-muted);margin-top:10px;font-size:.88rem}.scope-toggle{display:flex;gap:8px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--pill);padding:5px}.scope-btn{flex:1;background:transparent;border:none;color:var(--text-muted)}.scope-btn.active{background:var(--surface);color:var(--accent-strong);box-shadow:var(--shadow-sm)}.family-panel{text-align:center}.family-score{font-size:2.2rem;font-weight:800;color:var(--accent-strong);letter-spacing:-.02em}.goal-chips{display:flex;flex-wrap:wrap;gap:8px}.goal-chip{border:1px solid var(--border-strong);border-radius:var(--pill);padding:8px 14px;min-height:38px;font-weight:700;font-size:.85rem;background:var(--surface-2);color:var(--text);cursor:pointer}.goal-chip.done{background:var(--success-soft);color:var(--success);border-color:transparent}.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.chip{border:1px dashed var(--border-strong);border-radius:var(--pill);padding:7px 12px;min-height:34px;font-size:.82rem;font-weight:700;background:transparent;color:var(--text-muted);cursor:pointer}.activity-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.activity-item{background:var(--surface-2);border:1px solid var(--border);padding:12px 14px;border-radius:var(--r);display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;min-height:var(--tap);cursor:pointer;transition:transform var(--ease),border-color var(--ease),box-shadow var(--ease)}.activity-item:hover:not(.disabled){border-color:var(--accent);box-shadow:var(--shadow-sm)}.activity-item:active:not(.disabled){transform:scale(.99)}.activity-item.disabled{opacity:.5;cursor:not-allowed}.activity-item.shake{animation:shake .3s}.activity-name{font-weight:700;font-size:.92rem}.activity-points{background:var(--accent-soft);color:var(--accent-strong);padding:4px 11px;border-radius:var(--pill);font-weight:800;font-size:.85rem}.positive-points{background:var(--success-soft);color:var(--success)}.negative-points{background:var(--danger-soft);color:var(--danger)}.limit-reason{font-size:.7rem;color:var(--danger);width:100%;text-align:right}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.activity-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid var(--border)}.activity-row:last-child{border-bottom:none}.activity-text{font-size:.9rem}.manager-list{margin-top:10px;display:flex;flex-direction:column;gap:8px}.manager-row{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:10px 12px}.manager-note{font-size:.84rem;color:var(--text-muted);margin:4px 0}.row-buttons{display:flex;gap:6px;white-space:nowrap}.repair-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0}.checkpoint-bar{margin-bottom:14px}.cp-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:10px 12px}.cp-context{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:.88rem;color:var(--text-muted)}.cp-active{font-weight:800;color:var(--accent-strong)}.route-summary,.plates-collected{text-align:center;font-weight:600;color:var(--text-muted);background:var(--surface-2);border-radius:var(--r-sm);padding:10px;font-size:.9rem}.plate-message{text-align:center;font-weight:700;min-height:1.2em;margin-bottom:8px}.plate-message.success{color:var(--success)}.plate-message.error{color:var(--danger)}.plate-guide{margin-top:10px;background:var(--surface-2);border-radius:var(--r-sm);padding:12px}.guide-here{font-weight:800;margin-bottom:4px}.guide-dont{color:var(--danger);font-size:.9rem}.guide-note{font-size:.82rem;color:var(--text-muted);margin-top:4px}.plate-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;font-size:.8rem;font-weight:600;color:var(--text-muted);margin-bottom:12px}.plate-legend span{display:inline-flex;align-items:center;gap:5px}.plate-legend .swatch{width:14px;height:14px;border-radius:4px;display:inline-block}.plate-legend .swatch.countable{background:var(--success)}.plate-legend .swatch.too-close{background:var(--border-strong)}.plate-legend .swatch.here{background:var(--info)}.plate-legend .swatch.collected{background:var(--warning)}.plate-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(46px,1fr));gap:6px;margin-bottom:12px}.plate-board-hint{grid-column:1/-1;text-align:center;font-style:italic;color:var(--text-muted)}.plate-chip{min-height:40px;padding:8px 0;border:none;border-radius:var(--r-sm);font-weight:800;font-size:.82rem;color:#fff;cursor:pointer;transition:transform var(--ease),filter var(--ease)}.plate-chip.countable{background:var(--success)}.plate-chip.countable:hover{filter:brightness(1.05);transform:translateY(-1px)}.plate-chip.too-close{background:var(--surface-3);color:var(--text-muted);text-decoration:line-through;cursor:not-allowed}.plate-chip.here{background:var(--info);box-shadow:0 0 0 2px color-mix(in srgb,var(--info) 35%,transparent);cursor:not-allowed}.plate-chip.collected{background:var(--warning);cursor:default}.plate-chip.collected:after{content:" ✓"}.plate-chip:disabled{opacity:.9}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px}.modal-overlay.hidden{display:none}.modal-box{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--r-xl);padding:22px;max-width:480px;width:100%;max-height:86vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.modal-box h3{margin-bottom:10px;font-size:1.15rem;font-weight:800}.modal-sub{font-size:.88rem;color:var(--text-muted);margin-bottom:14px}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}.modal-actions.vertical{flex-direction:column}.modal-actions.vertical .btn{width:100%}.choose-kid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}.redeem-list{display:flex;flex-direction:column;gap:8px}.redeem-item{text-align:left;justify-content:flex-start}.summary-list{list-style:none;line-height:1.9}.history-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:12px;margin-bottom:8px}.ctx-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}.ctx-box{font-size:.85rem}.celebrate-kid{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r);padding:14px;margin-bottom:10px}.celebrate-line{font-size:.85rem;margin-top:4px;color:var(--text-muted)}.celebrate-family{background:var(--accent-soft);border-radius:var(--r);padding:12px;margin:10px 0;font-size:.9rem}.celebrate-cp{background:var(--warning-soft);border-radius:var(--r);padding:12px;margin:10px 0;font-size:.9rem}.superlatives{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.competitive{font-weight:800;text-align:center;margin-top:8px}.sync-code{font-size:1.7rem;font-weight:800;letter-spacing:6px;text-align:center;color:var(--accent-strong);background:var(--accent-soft);border-radius:var(--r);padding:14px;margin:12px 0}.hidden,body.child-mode .parent-only{display:none!important}@media (max-width: 640px){body{padding:0;padding-bottom:calc(72px + env(safe-area-inset-bottom))}.container{max-width:none;min-height:100vh;border:none;border-radius:0;box-shadow:none;padding:16px 14px calc(16px + env(safe-area-inset-bottom));padding-top:calc(14px + env(safe-area-inset-top))}.title{font-size:1.45rem}.kids-section{grid-template-columns:1fr 1fr}.activity-grid{grid-template-columns:1fr}.tabs{position:fixed;left:0;right:0;bottom:0;z-index:900;margin:0;gap:0;border:none;border-top:1px solid var(--border);border-radius:0;padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 -4px 16px #0f172a14}.tab{flex-direction:column;gap:2px;min-height:56px;font-size:.78rem;border-radius:var(--r)}.tab.active{background:var(--accent-soft)}.modal-overlay{align-items:flex-end;padding:0}.modal-box{max-width:none;max-height:90vh;border-radius:var(--r-xl) var(--r-xl) 0 0;padding-bottom:calc(22px + env(safe-area-inset-bottom));animation:sheet-up .22s ease}.modal-actions:not(.vertical){flex-direction:column-reverse}.modal-actions:not(.vertical) .btn{width:100%}.controls .btn{padding:12px 4px}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (max-width: 380px){.kids-section{grid-template-columns:1fr}}
