:root{--bg-main: #202447;--bg-card: #cad2f6;--accent: #193b89;--accent-soft: #6379c2;--special: #5a3e40;--text-on-card: #1a1d36;--text-muted: rgba(26, 29, 54, .65);--radius: 7px;--gap: 12px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--nav-h: 64px;--nav-accent: #7c4dff;--nav-accent-soft: #efe8ff;--nav-muted: #8b8798}*{box-sizing:border-box}html,body{margin:0;min-height:100%;max-width:100%;overflow-x:hidden;background:var(--bg-main);color:#e8ecff;font-family:system-ui,-apple-system,Segoe UI,sans-serif}body{background:radial-gradient(1200px 600px at 10% -10%,rgba(99,121,194,.35),transparent 55%),radial-gradient(900px 500px at 100% 0%,rgba(25,59,137,.45),transparent 50%),var(--bg-main)}#app{min-height:100dvh;max-width:100%;overflow-x:clip;padding:calc(16px + var(--safe-top)) 12px calc(var(--nav-h) + 16px + var(--safe-bottom))}.bento{display:grid;gap:var(--gap);width:100%;max-width:100%;min-width:0}.bento-card{background:var(--bg-card);color:var(--text-on-card);border-radius:var(--radius);padding:14px;box-shadow:0 8px 24px #0000001f;transition:transform .2s ease,box-shadow .2s ease;min-width:0;max-width:100%;overflow-wrap:anywhere}.header-card{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:4px 12px;align-items:center}.header-card h1{margin:0;font-size:1.55rem;line-height:1.15;grid-column:1}.eyebrow{margin:0;font-size:.85rem;color:var(--text-muted);grid-column:1}.btn-icon{grid-row:1 / span 2;grid-column:2;width:44px;height:44px;border:0;border-radius:var(--radius);background:var(--accent);color:#fff;font-size:1.6rem;cursor:pointer;transition:background .2s ease,transform .2s ease}.btn-icon:hover,.btn-primary:hover,.bottom-nav__item:hover{transform:translateY(-1px)}.btn-primary,.btn-danger,.btn-ghost{border:0;border-radius:var(--radius);padding:12px 16px;font-size:1rem;cursor:pointer;transition:background .2s ease,transform .2s ease,opacity .2s ease}.btn-primary{background:var(--accent);color:#fff;width:100%;margin-top:8px}.btn-danger{background:var(--special);color:#fff;width:100%;margin-top:8px}.btn-ghost{background:transparent;color:var(--accent)}.scroller-card{overflow:visible;padding-left:10px;padding-right:10px}.date-scroller{display:flex;gap:8px;width:100%;max-width:100%;overflow-x:auto;overflow-y:visible;padding:2px 2px 6px;margin:0 -2px;-webkit-overflow-scrolling:touch;touch-action:pan-x;scrollbar-width:none;overscroll-behavior-x:contain}.date-scroller::-webkit-scrollbar{display:none}.date-chip{flex:0 0 auto;width:48px;border:0;border-radius:var(--radius);padding:8px 4px 6px;background:#20244714;color:var(--text-on-card);display:grid;grid-template-rows:auto auto 10px;gap:2px;justify-items:center;align-content:start;cursor:pointer;transition:background .2s ease,color .2s ease,outline-color .2s ease}.date-chip--today{background:var(--accent);color:#fff}.date-chip--active{outline:2px solid var(--accent-soft);outline-offset:0}.date-chip__dow{font-size:.65rem;text-transform:uppercase;opacity:.8;line-height:1}.date-chip__num{font-size:1.1rem;font-weight:700;line-height:1.1}.date-chip__dots{display:flex;gap:3px;align-items:center;justify-content:center;min-height:6px}.date-chip__dots--empty{visibility:hidden}.date-chip__dot{width:5px;height:5px;border-radius:50%;background:var(--accent-soft)}.date-chip--today .date-chip__dot{background:#fff}.date-chip__dot--birthday{background:var(--special)}.date-chip--today .date-chip__dot--birthday{background:#f0d6d6}.event-list{display:grid;gap:10px;margin-top:10px}.event-card{background:#2024470f;border-radius:var(--radius);padding:14px;cursor:pointer;transition:background .2s ease,transform .2s ease;min-width:0;max-width:100%}.event-card:hover{transform:translateY(-1px);background:#2024471a}.event-card--birthday{border-left:4px solid var(--special)}.event-card__top{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.event-card__time{color:var(--accent);font-weight:700;font-size:.9rem}.event-card__title{margin:0;font-size:1.05rem;flex:1}.event-card__badge{font-size:1.1rem}.event-card__desc{margin:8px 0 0;color:var(--text-muted);font-size:.92rem}.event-card__photo,.photo-preview{display:block;width:100%;max-width:100%;max-height:220px;object-fit:cover;border-radius:var(--radius);margin-top:10px}.photo-preview.hidden,.hidden{display:none!important}.empty{text-align:center;padding:28px 12px;color:var(--text-muted)}.empty__icon{font-size:2rem;margin-bottom:8px}.bottom-nav{position:fixed;left:10px;right:10px;bottom:calc(10px + var(--safe-bottom));width:auto;max-width:calc(100% - 20px);height:var(--nav-h);display:grid;grid-template-columns:repeat(4,1fr);gap:2px;padding:6px 4px 4px;border-radius:18px;background:#ffffffe0;backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);border:1px solid rgba(255,255,255,.7);box-shadow:0 12px 32px #2024472e;z-index:20;box-sizing:border-box;isolation:isolate}.bottom-nav__glass{position:absolute;top:0;left:0;width:0;height:0;border-radius:14px;pointer-events:none;z-index:0;opacity:0;background:var(--nav-accent-soft);box-shadow:inset 0 0 0 1px #7c4dff14;transition:transform .34s cubic-bezier(.22,1,.36,1),width .34s cubic-bezier(.22,1,.36,1),height .34s cubic-bezier(.22,1,.36,1),opacity .18s ease;will-change:transform,width,height}.bottom-nav__glass.is-ready{opacity:1}.bottom-nav__item{position:relative;z-index:1;border:0;border-radius:14px;background:transparent;color:var(--nav-muted);cursor:pointer;min-width:0;height:100%;display:grid;justify-items:center;align-content:center;gap:2px;padding:2px 2px 0;transition:color .22s ease}.bottom-nav__icon{width:26px;height:26px;display:grid;place-items:center}.bottom-nav__icon svg{width:22px;height:22px;display:block}.bottom-nav__label{font-size:.62rem;font-weight:650;line-height:1.1;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.bottom-nav__item.is-active{color:var(--nav-accent)}.bottom-nav__item--primary .bottom-nav__icon svg{width:24px;height:24px}.cal-nav{display:flex;justify-content:space-between;margin-bottom:10px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;width:100%;max-width:100%;min-width:0}.cal-grid__head{text-align:center;font-size:.75rem;color:var(--text-muted);padding-bottom:4px}.cal-cell{aspect-ratio:1;border:0;border-radius:var(--radius);background:#2024470f;color:var(--text-on-card);display:grid;place-content:center;gap:2px;cursor:pointer;transition:background .2s ease;min-width:0}.cal-cell.is-muted{opacity:.4}.cal-cell.is-today{background:var(--accent);color:#fff}.cal-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-soft);justify-self:center}.cal-dot--birthday{background:var(--special)}.list-date{margin:12px 0 6px;font-size:.95rem;color:var(--accent)}.field{display:grid;gap:6px;margin-top:12px;font-size:.9rem}.field span{color:var(--text-muted)}.field input,.field textarea,.field select,.edit-form input,.edit-form textarea,.form-card input,.form-card textarea,.form-card select{width:100%;max-width:100%;border:0;border-radius:var(--radius);padding:12px 14px;font:inherit;background:#20244714;color:var(--text-on-card)}.toggle-row,.check-row,.radio-pill{display:flex;align-items:center;gap:10px;margin-top:10px}.radio-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.radio-pill{background:#20244714;border-radius:var(--radius);padding:8px 12px;font-size:.85rem}.pill{display:inline-block;padding:6px 10px;border-radius:var(--radius);background:#20244714;margin:8px 0}.pill--special{background:#5a3e4026;color:var(--special)}.member-list{display:grid;gap:8px;margin-top:12px}.member-row{background:#2024470f;border-radius:var(--radius);padding:12px}.member-row strong{display:block}.member-row span{color:var(--text-muted);font-size:.85rem}.family-name{font-size:1.2rem;font-weight:700;margin:4px 0 0}.invite-box{margin-top:12px}.invite-box code{display:block;word-break:break-all;overflow-wrap:anywhere;background:#20244714;padding:12px;border-radius:var(--radius);margin:8px 0}.hint{color:var(--text-muted);font-size:.9rem}.toast-host{position:fixed;top:calc(12px + var(--safe-top));left:16px;right:16px;z-index:50;display:grid;gap:8px;pointer-events:none}.toast{background:#fff;color:#1a1d36;border-radius:var(--radius);padding:12px 14px;box-shadow:0 10px 30px #0003;opacity:0;transform:translateY(-8px);transition:opacity .2s ease,transform .2s ease;max-width:100%}.toast--show{opacity:1;transform:translateY(0)}.toast--error{border-left:4px solid var(--special)}.toast--ok{border-left:4px solid var(--accent)}.boot-error{padding:24px;color:var(--text-on-card)}.boot-error h1{margin:0 0 8px;color:var(--text-on-card)}.boot-error p{margin:0;color:var(--text-muted)}.avatar{display:inline-grid;place-items:center;border-radius:50%;overflow:hidden;flex:0 0 auto;background:linear-gradient(135deg,var(--accent-soft),var(--accent));color:#fff;font-size:.75rem;font-weight:700;box-shadow:0 0 0 2px #ffffffb3}.avatar img{width:100%;height:100%;object-fit:cover;display:block}.event-card__top .avatar{margin-left:auto}.member-row--with-avatar{display:flex;align-items:center;gap:12px}.field-control--btn{text-align:left;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.picker-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#14162d8c;display:grid;align-items:end;justify-items:center;padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));opacity:0;transition:opacity .2s ease}.picker-overlay.is-open{opacity:1}.picker-sheet{width:min(420px,100%);background:#fff;color:var(--text-on-card);border-radius:22px;padding:18px 16px 14px;box-shadow:0 20px 50px #00000047;transform:translateY(18px);transition:transform .22s cubic-bezier(.22,1,.36,1)}.picker-overlay.is-open .picker-sheet{transform:translateY(0)}.picker-sheet__foot{display:flex;justify-content:flex-end;margin-top:12px}.picker-sheet__close-btn{border:0;background:transparent;color:var(--accent);font-size:1rem;font-weight:700;cursor:pointer;padding:8px 4px}.date-picker__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.date-picker__title{font-size:1.15rem;font-weight:800;letter-spacing:-.02em}.date-picker__nav{display:flex;gap:6px}.date-picker__arrow{width:36px;height:36px;border:0;border-radius:10px;background:#2024470f;color:var(--text-on-card);font-size:1.3rem;cursor:pointer}.date-picker__week{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:6px;text-align:center;font-size:.75rem;color:var(--text-muted);font-weight:650;text-transform:capitalize}.date-picker__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.date-picker__day{aspect-ratio:1;border:0;border-radius:50%;background:transparent;color:var(--text-on-card);font-size:.95rem;font-weight:650;cursor:pointer}.date-picker__day.is-muted{color:#1a1d3647}.date-picker__day.is-selected{background:var(--nav-accent);color:#fff}.date-picker__day.is-today:not(.is-selected){box-shadow:inset 0 0 0 1.5px #7c4dff73}.time-picker h2{margin:0 0 10px;font-size:1.2rem}.time-picker__allday{width:100%;border:1.5px solid rgba(32,36,71,.12);border-radius:var(--radius);padding:12px;background:#fff;font-weight:700;cursor:pointer;margin-bottom:12px}.time-picker__allday.is-active{background:var(--nav-accent-soft);border-color:#7c4dff59;color:var(--nav-accent)}.time-picker__wheels{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center;min-height:180px}.time-picker__wheels.is-disabled{opacity:.35;pointer-events:none}.time-picker__sep{font-size:1.6rem;font-weight:800}.time-picker__scroll{max-height:180px;overflow-y:auto;border-radius:12px;background:#2024470a;scroll-snap-type:y mandatory}.time-picker__cell{display:block;width:100%;border:0;background:transparent;padding:10px;font-size:1.1rem;font-weight:700;color:var(--text-muted);cursor:pointer;scroll-snap-align:center}.time-picker__cell.is-selected{color:var(--nav-accent);background:#7c4dff1a}.time-picker__foot{display:grid;grid-template-columns:1fr 1.2fr;gap:10px;margin-top:14px}.time-picker__foot .btn-primary{margin-top:0}.page-create{max-width:100%;min-width:0}.create-sheet{background:var(--bg-card);color:var(--text-on-card);border-radius:calc(var(--radius) + 5px);padding:18px 16px 16px;display:grid;gap:16px;box-shadow:0 12px 32px #00000029;max-width:100%;min-width:0}.create-sheet__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.create-sheet__head h1{margin:0;font-size:1.45rem;line-height:1.15;letter-spacing:-.02em}.create-sheet__sub{margin:6px 0 0;color:var(--text-muted);font-size:.9rem;line-height:1.35}.create-sheet__close{width:36px;height:36px;border:0;border-radius:var(--radius);background:#20244714;color:var(--text-on-card);font-size:1.5rem;line-height:1;cursor:pointer;flex:0 0 auto;transition:background .2s ease}.create-sheet__close:hover{background:#20244724}.create-sheet__row{display:grid;grid-template-columns:1.2fr 1fr;gap:10px;min-width:0}.field-block{display:grid;gap:7px;min-width:0}.field-block__label{font-size:.82rem;font-weight:700;color:var(--text-on-card);letter-spacing:.01em}.field-control{width:100%;max-width:100%;border:1.5px solid rgba(32,36,71,.12);border-radius:var(--radius);padding:12px 14px;font:inherit;font-size:.98rem;background:#fff;color:var(--text-on-card);outline:none;transition:border-color .2s ease,box-shadow .2s ease;min-width:0}.field-control::placeholder{color:#1a1d3666}.field-control:focus{border-color:var(--accent-soft);box-shadow:0 0 0 3px #6379c238}textarea.field-control{resize:vertical;min-height:88px}.switch-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--radius);background:#2024470f;cursor:pointer;position:relative}.switch-row__copy{display:grid;gap:2px;min-width:0}.switch-row__copy strong{font-size:.95rem}.switch-row__copy span{font-size:.78rem;color:var(--text-muted)}.switch-row__input{position:absolute;opacity:0;pointer-events:none}.switch-ui{width:46px;height:28px;border-radius:999px;background:#2024472e;position:relative;transition:background .2s ease;flex:0 0 auto}.switch-ui:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #0003;transition:transform .2s ease}.switch-row__input:checked+.switch-ui{background:var(--accent)}.switch-row__input:checked+.switch-ui:after{transform:translate(18px)}.upload-zone{display:block;border:1.5px dashed rgba(32,36,71,.2);border-radius:var(--radius);background:#ffffff8c;min-height:112px;cursor:pointer;overflow:hidden;transition:border-color .2s ease,background .2s ease}.upload-zone:hover{border-color:var(--accent-soft);background:#fff}.upload-zone__inner{display:grid;place-items:center;gap:4px;padding:22px 12px;text-align:center}.upload-zone__icon{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#193b891a;color:var(--accent);font-size:1.3rem;font-weight:700;margin-bottom:4px}.upload-zone__text{font-weight:700;font-size:.95rem}.upload-zone__hint{font-size:.75rem;color:var(--text-muted)}.upload-zone__preview{display:block;width:100%;max-height:180px;object-fit:cover}.seg-control{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:4px;border-radius:var(--radius);background:#20244714}.seg-control__item{position:relative;cursor:pointer;min-width:0}.seg-control__item input{position:absolute;opacity:0;pointer-events:none}.seg-control__item span{display:grid;place-items:center;text-align:center;min-height:38px;padding:8px 4px;border-radius:calc(var(--radius) - 1px);font-size:.72rem;font-weight:650;color:var(--text-muted);transition:background .2s ease,color .2s ease,box-shadow .2s ease}.seg-control__item input:checked+span{background:#fff;color:var(--accent);box-shadow:0 1px 4px #0000001a}.member-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.member-chip{position:relative;cursor:pointer}.member-chip input{position:absolute;opacity:0;pointer-events:none}.member-chip span{display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;border:1.5px solid rgba(32,36,71,.14);background:#fff;font-size:.85rem;font-weight:600;color:var(--text-on-card);transition:background .2s ease,border-color .2s ease,color .2s ease}.member-chip input:checked+span{background:var(--accent);border-color:var(--accent);color:#fff}.create-sheet__actions{display:grid;grid-template-columns:1fr 1.2fr;gap:10px;margin-top:4px;padding-top:4px}.btn-secondary{border:1.5px solid rgba(32,36,71,.16);border-radius:var(--radius);padding:13px 16px;font-size:1rem;font-weight:650;background:#fff;color:var(--text-on-card);cursor:pointer;transition:background .2s ease,border-color .2s ease}.btn-secondary:hover{background:#2024470a}.btn-primary--solid{margin-top:0;font-weight:700;box-shadow:0 6px 16px #193b8947}.btn-primary--solid:disabled,.btn-secondary:disabled{opacity:.55;cursor:not-allowed}@media (max-width: 360px){.create-sheet__row,.seg-control{grid-template-columns:1fr}}
