:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#f7f7f5;--color-surface:#fff;--color-text:#1c1c1e;--color-muted:#6b6b70;--color-primary:#2563eb;--color-border:#e5e5e0;--color-danger:#b91c1c;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5}button,input{font:inherit}.auth-page{justify-content:center;align-items:center;min-height:100dvh;padding:24px;display:flex}.auth-card{background:var(--color-surface);border-radius:16px;width:100%;max-width:360px;padding:32px 24px;box-shadow:0 1px 3px #00000014}.auth-card h1{margin:0 0 4px;font-size:1.5rem}.auth-subtitle{color:var(--color-muted);margin:0 0 24px}.auth-card form{flex-direction:column;gap:8px;display:flex}.auth-card label{margin-top:8px;font-size:.875rem;font-weight:600}.auth-card input{border:1px solid var(--color-border);border-radius:10px;width:100%;min-height:44px;padding:12px}.auth-card input[type=checkbox]{border-radius:0;width:auto;min-height:auto;padding:0}.auth-password-field{position:relative}.auth-password-field input{padding-right:44px}.auth-password-toggle{width:44px;color:var(--color-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;margin:0;padding:0;display:flex;position:absolute;top:0;bottom:0;right:0}.auth-password-toggle:hover{color:var(--color-text)}.auth-remember-me{align-items:center;gap:8px;font-weight:400;display:flex}.auth-card button{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:10px;min-height:48px;margin-top:16px;font-weight:600}.auth-card button:disabled{opacity:.6;cursor:default}.auth-error{color:var(--color-danger);margin:4px 0 0;font-size:.875rem}.app-layout{flex-direction:column;min-height:100dvh;display:flex}.app-header{padding:16px;padding-top:calc(16px + env(safe-area-inset-top,0px));background:var(--color-surface);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.app-header-title{color:var(--color-text);align-items:center;gap:8px;font-weight:700;text-decoration:none;display:flex}.app-header-icon{border-radius:8px;display:block}.app-header-actions{align-items:center;gap:4px;display:flex}.app-header-refresh{color:var(--color-muted);cursor:pointer;min-width:44px;min-height:44px;font:inherit;background:0 0;border:none;justify-content:center;align-items:center;gap:6px;display:flex}.app-header-refresh:disabled{cursor:default;opacity:.6}.app-header-refresh-icon{display:inline-block}.app-header-refresh-icon.spinning{animation:.8s linear infinite app-header-refresh-spin}@keyframes app-header-refresh-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.app-header-logout{color:var(--color-muted);cursor:pointer;background:0 0;border:none;min-height:44px}.app-header-logout-confirm{color:var(--color-muted);align-items:center;gap:8px;font-size:.85rem;display:flex}.app-header-logout-confirm button{cursor:pointer;background:0 0;border:none;min-height:44px;padding:0;font-weight:600}.app-header-logout-confirm button:first-of-type{color:var(--color-danger)}.app-header-logout-confirm button:last-of-type{color:var(--color-muted)}.app-content{flex:1;padding:16px 16px 96px}.splash-screen{min-height:100dvh;color:var(--color-muted);justify-content:center;align-items:center;display:flex}.bottom-nav{background:var(--color-surface);border-top:1px solid var(--color-border);padding-bottom:env(safe-area-inset-bottom,0px);display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav-item{min-height:56px;color:var(--color-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:8px 4px;font-size:.7rem;text-decoration:none;display:flex}.bottom-nav-item.active{color:var(--color-primary);font-weight:600}.bottom-nav-icon{font-size:1.25rem}.family-section{margin-bottom:24px}.family-section h2{align-items:center;gap:8px;margin-bottom:8px;font-size:1.1rem;display:flex}.family-section-badge{color:var(--color-primary);background:#e0e7ff;border-radius:999px;padding:2px 8px;font-size:.7rem;font-weight:500}.entity-list{margin-bottom:16px}.entity-list h2,.entity-list h3{text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted);margin:0 0 8px;font-size:.8rem}.empty-state{color:var(--color-muted);margin:0 0 8px;font-size:.9rem}.entity-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;align-items:center;gap:10px;min-height:48px;margin-bottom:8px;padding:12px 14px;display:flex}.entity-card-dot{border-radius:50%;flex-shrink:0;width:12px;height:12px}.entity-card-name{font-weight:600}.week-child-planning-link{border-radius:999px;justify-content:center;align-items:center;width:28px;height:28px;font-size:.9rem;line-height:1;text-decoration:none;display:inline-flex}.week-child-planning-link:hover,.week-child-planning-link:focus-visible{background:var(--color-bg)}.entity-card-subtitle{color:var(--color-muted);font-size:.85rem}.entity-card-contact{font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;min-height:44px;margin:0;padding:0;display:inline-flex}.entity-card-tag{color:var(--color-muted);border:1px solid var(--color-border);border-radius:999px;padding:2px 8px;font-size:.7rem}.entity-card-tag-lunch{color:var(--color-primary);border-color:var(--color-primary)}.entity-card-action{color:var(--color-primary);cursor:pointer;background:0 0;border:none;align-items:center;min-height:44px;margin-left:auto;padding:0 4px;font-size:.85rem;text-decoration:none;display:inline-flex}.entity-add-button{border:1px dashed var(--color-border);width:100%;min-height:48px;color:var(--color-primary);cursor:pointer;background:0 0;border-radius:12px;font-weight:600}.entity-add-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;flex-direction:column;gap:8px;padding:14px;display:flex}.entity-add-form input,.entity-add-form select{border:1px solid var(--color-border);border-radius:8px;min-height:44px;padding:10px}.entity-add-form label{flex-direction:column;gap:4px;font-size:.85rem;font-weight:600;display:flex}.entity-add-form-actions{gap:8px;display:flex}.entity-add-form-actions button,.entity-add-form>button{cursor:pointer;border:none;border-radius:8px;min-height:44px;font-weight:600}.entity-add-form-actions button[type=submit],.entity-add-form>button[type=submit]{background:var(--color-primary);color:#fff;flex:1}.entity-add-form-actions button[type=button]{color:var(--color-muted);background:0 0}.color-picker{gap:8px;display:flex}.color-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:32px;height:32px;padding:0}.color-swatch.selected{border-color:var(--color-text)}.settings-block{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;margin-bottom:16px;padding:16px}.settings-block h2{margin:0 0 12px;font-size:1rem}.settings-block form{flex-direction:column;gap:8px;display:flex}.settings-block label{font-size:.85rem;font-weight:600}.settings-block input{border:1px solid var(--color-border);border-radius:8px;min-height:44px;padding:10px}.settings-block button{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;min-height:44px;margin-top:8px;font-weight:600}.settings-muted{color:var(--color-muted);margin:0}.settings-success{color:#15803d;font-size:.875rem}.settings-link{color:var(--color-primary);font-weight:600;text-decoration:none}.danger-zone{border:1px solid var(--color-danger);background:color-mix(in srgb, var(--color-danger) 6%, transparent);border-radius:12px;margin-top:16px;padding:16px}.danger-zone h3{color:var(--color-danger);margin:0 0 8px;font-size:1rem}.danger-zone p{margin:0 0 12px;font-size:.875rem}.danger-zone form{flex-direction:column;gap:8px;display:flex}.danger-zone label{font-size:.85rem;font-weight:600}.danger-zone input{border:1px solid var(--color-border);border-radius:8px;min-height:44px;padding:10px}.danger-zone-toggle{border:1px solid var(--color-danger);min-height:44px;color:var(--color-danger);cursor:pointer;background:0 0;border-radius:8px;padding:0 16px;font-weight:600}.danger-zone-submit{background:var(--color-danger)!important}.danger-zone-submit:disabled{opacity:.6}.driver-contact-trigger{font:inherit;color:var(--color-primary);cursor:pointer;background:0 0;border:none;align-items:center;min-height:44px;margin:0;padding:0;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;display:inline-flex}.driver-contact-trigger:hover,.driver-contact-trigger:focus-visible{text-decoration-color:currentColor}.modal-overlay{z-index:100;background:#0006;justify-content:center;align-items:flex-end;padding:16px;display:flex;position:fixed;inset:0}.modal-dialog{background:var(--color-surface);border-radius:16px;width:100%;max-width:360px;padding:20px;box-shadow:0 8px 24px #00000040}.modal-dialog h2{margin:0 0 4px;font-size:1.1rem}.modal-dialog-subtitle{color:var(--color-muted);margin:0 0 16px}.modal-dialog-actions{flex-direction:column;gap:10px;margin-bottom:12px;display:flex}.modal-dialog-action{border:1px solid var(--color-border);background:var(--color-bg);min-height:48px;color:var(--color-text);border-radius:12px;justify-content:center;align-items:center;gap:8px;font-weight:600;text-decoration:none;display:flex}.modal-dialog-close{width:100%;min-height:44px;color:var(--color-muted);cursor:pointer;background:0 0;border:none}.modal-dialog-form{flex-direction:column;gap:12px;margin-bottom:12px;display:flex}.modal-dialog-form label{flex-direction:column;gap:4px;font-weight:600;display:flex}.modal-dialog-form input[type=time]{border:1px solid var(--color-border);min-height:44px;font:inherit;border-radius:8px;padding:0 10px}.modal-dialog-form-actions{gap:8px;display:flex}@media (width>=768px){.modal-overlay{align-items:center}}.thanks-toast{left:16px;right:16px;bottom:calc(80px + env(safe-area-inset-bottom,0px));z-index:50;color:#fff;background:#166534;border-radius:14px;flex-direction:column;gap:2px;padding:16px 20px;animation:.2s ease-out thanks-toast-in;display:flex;position:fixed;box-shadow:0 8px 24px #0003}@keyframes thanks-toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.thanks-toast-headline{letter-spacing:.02em;font-size:1.4rem;font-weight:800}.thanks-toast-message{opacity:.9;font-size:.9rem}@media (width>=768px){.thanks-toast{max-width:340px;bottom:32px;left:auto;right:32px}}.planning-page-title{align-items:center;gap:10px;display:flex}.planning-tabs{border-bottom:1px solid var(--color-border);gap:4px;margin-bottom:16px;display:flex;overflow-x:auto}.planning-tab{color:var(--color-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;min-height:44px;padding:10px 14px;font-weight:600}.planning-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.day-row{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;padding:12px 14px;display:flex}.day-row-label{min-width:80px;font-weight:700}.day-row select,.day-row input{border:1px solid var(--color-border);border-radius:8px;min-height:40px;padding:8px}.day-row-pickup{color:var(--color-muted);width:100%;margin-left:auto;font-size:.85rem}.day-row-copy{border-top:1px dashed var(--color-border);flex-wrap:wrap;align-items:center;gap:8px;width:100%;margin-top:4px;padding-top:8px;font-size:.85rem;display:flex}.day-row-copy-label{color:var(--color-muted);font-weight:600}.day-row-copy-child{align-items:center;gap:4px;font-weight:400;display:flex}.radio-group{flex-wrap:wrap;gap:12px;display:flex}.radio-group label{align-items:center;gap:6px;min-height:44px;font-weight:500;display:flex}.week-page h1{margin:0 0 12px;font-size:1.3rem}.week-nav{align-items:center;gap:8px;margin-bottom:16px;display:flex}.week-nav-button{border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;white-space:nowrap;border-radius:8px;min-height:44px;padding:0 12px;font-weight:600}.week-nav-range{text-align:center;flex:1;font-size:.95rem;font-weight:700}.week-grid{flex-direction:column;gap:12px;display:flex}.own-trips-overview{margin-bottom:8px}.own-trips-overview .calendar-agenda-heading{padding:0}.own-trips-toggle{width:100%;font:inherit;font-weight:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:6px;min-height:44px;margin:0;padding:0;display:flex}.own-trips-toggle-chevron{color:var(--color-muted);font-size:.8rem}.own-trips-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.own-trips-row{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;flex-wrap:wrap;align-items:baseline;gap:6px 10px;padding:8px 12px;font-size:.85rem;display:flex}.own-trips-date{font-weight:700}.own-trips-direction{color:var(--color-muted)}.own-trips-time{font-weight:600}.own-trips-children{flex-basis:100%}.own-trips-driver{color:var(--color-muted)}.trips-filter{flex-wrap:wrap;gap:6px;margin:8px 0 12px;display:flex}.trips-filter-chip{border:1px solid var(--color-border);color:var(--color-text-muted,#64748b);cursor:pointer;background:0 0;border-radius:999px;min-height:32px;padding:4px 12px;font-size:.8rem;font-weight:600}.trips-filter-chip.is-active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.week-day-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:12px 14px}.week-day-card.is-today{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.week-day-card.is-free{background:#f8fafc}.week-day-card-header{justify-content:space-between;align-items:center;gap:8px;margin:0 0 8px;display:flex}.week-day-toggle{min-width:0;font:inherit;font-weight:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;flex:auto;align-items:center;gap:6px;min-height:44px;margin:0;padding:4px 0;display:flex}.week-day-toggle-chevron{color:var(--color-muted);flex-shrink:0;font-size:.8rem}.week-day-name-short{display:none}.week-day-header-badges{flex-shrink:0;align-items:center;gap:6px;display:flex}.week-day-today-badge{color:#fff;background:var(--color-primary);border-radius:999px;flex-shrink:0;padding:2px 8px;font-size:.7rem;font-weight:700}.week-day-status-badge{white-space:nowrap;flex-shrink:0}.week-day-free-note{color:var(--color-muted);margin:0;font-size:.9rem}.week-day-hints{background:var(--color-bg);border:1px solid var(--color-border);border-radius:10px;flex-direction:column;gap:4px;margin:0 0 10px;padding:8px 10px;display:flex}.week-own-summary{color:#b45309;align-items:center;gap:4px;margin:0;font-size:.85rem;font-weight:600;display:flex}.week-own-summary.is-covered{color:#15803d}.week-other-summary{color:var(--color-muted);align-items:center;gap:4px;margin:0;font-size:.8rem;font-weight:500;display:flex}.week-child-row{border-top:1px solid var(--color-border);flex-direction:column;gap:6px;padding:10px 0;display:flex}.week-child-row:first-of-type{border-top:none}.week-child-header{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.week-child-quick-toggle{border:1px solid var(--color-border);background:var(--color-surface);width:28px;height:28px;min-height:28px;color:var(--color-muted);cursor:pointer;border-radius:999px;flex-shrink:0;margin-left:auto;font-size:.9rem}.week-child-quick-toggle.is-active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.week-child-quick-settings{flex-wrap:wrap;flex-basis:100%;gap:6px;margin-top:2px;display:flex}.week-child-quick-action{border:1px solid var(--color-border);background:var(--color-surface);min-height:28px;color:var(--color-primary);cursor:pointer;white-space:nowrap;border-radius:999px;padding:2px 10px;font-size:.75rem;font-weight:600}.week-child-quick-action.is-active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.week-no-school{color:var(--color-muted);margin:0;font-size:.9rem}.ride-block-group{flex-direction:column;gap:6px;display:flex}.ride-block{flex-direction:column;align-items:flex-start;gap:6px;width:100%;font-size:.9rem;display:flex}.ride-block-info{flex-wrap:wrap;align-items:center;gap:8px;width:100%;display:flex}.ride-block-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;width:100%;display:flex}.ride-block-not-needed{color:var(--color-muted)}.ride-block-label{min-width:74px;font-weight:600}.ride-block-time{color:var(--color-muted)}.ride-block-time-edit{cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;width:24px;height:24px;font-size:.8rem;line-height:1;display:inline-flex}.ride-block-time-edit:hover,.ride-block-time-edit:focus-visible{background:var(--color-bg)}.ride-block-status{color:var(--color-muted);font-size:.85rem}.ride-block-driver{color:var(--color-muted);margin:0;font-size:.85rem}.ride-block-occupancy.is-full{color:#b91c1c;font-weight:600}.ride-block-join{text-align:left;width:100%;margin-top:4px;margin-left:auto;display:block}.ride-block-cancel-confirm{border:1px solid var(--color-danger);border-radius:8px;margin-top:4px;padding:8px}.ride-block-cancel-confirm p{margin:0 0 8px;font-size:.85rem}.ride-block-cancel-confirm-actions{gap:8px;display:flex}.ride-block-cancel-confirm-actions button{cursor:pointer;border:none;border-radius:8px;min-height:36px;font-weight:600}.ride-block-cancel-confirm-actions button:last-child{background:var(--color-danger);color:#fff;flex:1}.ride-block-cancel-confirm-actions button:first-child{color:var(--color-muted);background:0 0}.ride-block-conflict-reason{color:#b91c1c;align-items:center;gap:4px;margin:0;font-size:.85rem;display:flex}.ride-block-action{border:1px solid var(--color-border);background:var(--color-surface);min-height:36px;color:var(--color-primary);cursor:pointer;border-radius:8px;padding:0 10px;font-size:.8rem;font-weight:600}.ride-block-action.is-active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.modal-dialog-quick-actions{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.takeover-form{background:var(--color-bg);border:1px solid var(--color-border);border-radius:10px;flex-direction:column;gap:8px;width:100%;padding:10px;display:flex}.takeover-form label{flex-direction:column;gap:4px;font-size:.85rem;font-weight:600;display:flex}.takeover-form select{border:1px solid var(--color-border);border-radius:8px;min-height:40px;padding:8px}.takeover-form-override{align-items:center;flex-direction:row!important;gap:6px!important}.takeover-form-children{border:1px solid var(--color-border);border-radius:8px;flex-direction:column;gap:4px;padding:8px;display:flex}.takeover-form-children legend{padding:0 4px;font-size:.8rem;font-weight:600}.takeover-form-child{align-items:center;flex-direction:row!important;gap:6px!important;font-weight:400!important}.takeover-form-capacity{color:var(--color-muted);margin:0;font-size:.8rem}.takeover-form-actions{gap:8px;display:flex}.takeover-form-actions button{cursor:pointer;border:none;border-radius:8px;min-height:40px;font-weight:600}.takeover-form-actions button[type=submit]{background:var(--color-primary);color:#fff;flex:1}.takeover-form-actions button[type=submit]:disabled{opacity:.6;cursor:default}.takeover-form-actions button[type=button]{color:var(--color-muted);background:0 0}.driver-strip{border-top:1px dashed var(--color-border);color:var(--color-muted);flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:10px;padding-top:10px;font-size:.82rem;display:flex}.driver-strip-link{color:var(--color-primary);align-items:center;min-height:44px;margin-left:auto;font-weight:600;text-decoration:none;display:inline-flex}.status-chip{border-radius:999px;padding:2px 8px;font-size:.75rem;font-weight:600}.status-chip.open{color:#92400e;background:#fef3c7}.status-chip.special_rule{color:#5b21b6;background:#ede9fe}.status-chip.not_needed{color:#64748b;background:#f1f5f9}.status-chip.covered{color:#166534;background:#dcfce7}.status-chip.conflict{color:#991b1b;background:#fee2e2}.status-filter{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:16px;display:flex}.status-filter-chip{cursor:pointer;border:1px solid #0000;min-height:32px}.status-filter-chip.is-inactive{border-color:var(--color-border);color:var(--color-text-muted,#64748b);opacity:.6;background:0 0}.own-only-chip{border-color:var(--color-border);color:var(--color-text-muted,#64748b);background:0 0}.own-only-chip.is-active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.status-filter-reset{color:var(--color-text-muted,#64748b);cursor:pointer;background:0 0;border:none;min-height:32px;padding:4px;font-size:.8rem;text-decoration:underline}@media (width>=768px){.app-content{width:100%;max-width:960px;margin:0 auto;padding:24px 32px 96px}.bottom-nav{border-radius:12px 12px 0 0;width:100%;max-width:960px;left:50%;right:auto;transform:translate(-50%);box-shadow:0 -2px 8px #0000000f}.week-page{max-width:none}.week-grid{grid-template-columns:repeat(5,1fr);align-items:start;display:grid}.week-day-name-full{display:none}.week-day-name-short{display:inline}.week-day-card-header{flex-direction:column;align-items:flex-start;gap:4px}}@media (width>=1200px){.app-content:has(.week-page){max-width:1440px}.week-grid{gap:16px}.week-day-card{border-radius:14px;padding:16px 18px}.ride-block{font-size:.95rem}.ride-block-action{min-height:38px;padding:0 12px}}@media (width>=1680px){.app-content:has(.week-page){max-width:1680px}.week-grid{gap:20px}}.calendar-agenda-heading{margin:24px 0 12px;font-size:1.1rem}.calendar-link-row{flex-wrap:wrap}.calendar-link-input{border:1px solid var(--color-border);min-width:0;min-height:40px;color:var(--color-muted);background:var(--color-bg);border-radius:8px;flex:220px;padding:8px 10px;font-size:.85rem}.photo-import-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;flex-direction:column;gap:12px;margin-bottom:8px;padding:12px 14px;display:flex}.photo-import-card-header{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.photo-import-detail{border-top:1px dashed var(--color-border);flex-direction:column;gap:10px;padding-top:10px;display:flex}.photo-import-image{object-fit:contain;border:1px solid var(--color-border);background:var(--color-bg);border-radius:8px;width:100%;max-height:420px}
