:root{--font-heading:"Lora", Georgia, serif;--font-note:"Lora", Georgia, serif;--font-ui:"Inter", -apple-system, sans-serif;--color-bg:#fbf6f2;--color-surface:#fff;--color-border:#e5e1d8;--color-text-primary:#2c2c2a;--color-text-secondary:#6b6862;--color-text-muted:#9c9890;--color-tag-milestone-bg:#fac775;--color-tag-milestone-text:#633806;--color-tag-neutral-bg:#fff;--color-tag-neutral-border:#d8d4c9;--color-tag-neutral-text:#4a4741;--color-success-bg:#eaf3de;--color-success-text:#3b6d11;--color-button-bg:#789b92;--color-button-text:#fff;--color-save-disabled-bg:#c8d7d2;--color-note-bg:#fdf8f0;--color-date-badge-bg:color-mix(in srgb, var(--color-note-bg) 85%, var(--color-surface) 15%);--color-dot-1:#e8a88c;--color-dot-2:#b8a6d9;--color-dot-3:#8fbfae;--color-dot-4:#e3c77d;--color-badge-bg-1:color-mix(in srgb, var(--color-dot-1) 25%, var(--color-surface));--color-badge-bg-2:color-mix(in srgb, var(--color-dot-2) 25%, var(--color-surface));--color-badge-bg-3:color-mix(in srgb, var(--color-dot-3) 25%, var(--color-surface));--color-chip-bg:color-mix(in srgb, var(--color-dot-1) 25%, var(--color-surface));--color-chip-border:color-mix(in srgb, var(--color-dot-1) 45%, var(--color-surface));--color-chip-text:color-mix(in srgb, var(--color-dot-1) 55%, var(--color-text-primary));--radius-card:12px;--radius-pill:20px;--radius-control:8px;--color-danger-bg:#f6e6e1;--color-danger-text:#a23f27}@media (prefers-color-scheme:dark){:root{--color-bg:#1c1b18;--color-surface:#262420;--color-border:#3a362e;--color-text-primary:#f1eee7;--color-text-secondary:#b6b0a4;--color-text-muted:#837d71;--color-tag-milestone-bg:#c99544;--color-tag-milestone-text:#2a1b04;--color-tag-neutral-bg:#262420;--color-tag-neutral-border:#443f35;--color-tag-neutral-text:#e4e0d6;--color-success-bg:#23331c;--color-success-text:#9ac97d;--color-button-bg:#789b92;--color-button-text:#fff;--color-save-disabled-bg:#c8d7d2;--color-note-bg:color-mix(in srgb, var(--color-tag-milestone-bg) 25%, var(--color-surface));--color-date-badge-bg:color-mix(in srgb, var(--color-note-bg) 80%, var(--color-surface) 20%);--color-dot-1:#e8956f;--color-dot-2:#b39ddb;--color-dot-3:#7fb89f;--color-dot-4:#d9b563;--color-badge-bg-1:color-mix(in srgb, var(--color-dot-1) 25%, var(--color-surface));--color-badge-bg-2:color-mix(in srgb, var(--color-dot-2) 25%, var(--color-surface));--color-badge-bg-3:color-mix(in srgb, var(--color-dot-3) 25%, var(--color-surface));--color-chip-bg:color-mix(in srgb, var(--color-dot-1) 22%, var(--color-surface));--color-chip-border:color-mix(in srgb, var(--color-dot-1) 40%, var(--color-surface));--color-chip-text:color-mix(in srgb, var(--color-dot-1) 65%, var(--color-text-primary));--color-danger-bg:#3a2620;--color-danger-text:#e39377}}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0;overflow:hidden}body{font:16px/1.5 var(--font-ui);color:var(--color-text-primary);background:var(--color-bg);-webkit-font-smoothing:antialiased}#root{-webkit-overflow-scrolling:touch;flex-direction:column;height:100%;display:flex;overflow-y:auto}h1,h2,h3{font-family:var(--font-heading);color:var(--color-text-primary);margin:0 0 8px;font-weight:500}p{margin:0 0 12px}button{font:inherit;cursor:pointer}input,textarea{font:inherit;color:inherit}::placeholder{color:var(--color-text-muted)}.app-shell{width:100%;max-width:640px;padding:0 16px calc(88px + env(safe-area-inset-bottom));flex-direction:column;flex:1;margin:0 auto;display:flex}.profile-badge{background:0 0;border:none;flex-shrink:0;padding:0;display:flex}.baby-avatar{background:var(--color-tag-neutral-bg);border:1px solid var(--color-border);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.baby-avatar img{object-fit:cover;width:100%;height:100%;display:block}.baby-avatar-sm{width:40px;height:40px}.baby-avatar-lg{width:84px;height:84px}.avatar-upload{cursor:pointer;flex-direction:column;align-items:center;gap:8px;margin-bottom:20px;display:flex}.avatar-upload-label{color:var(--color-text-secondary);font-size:13px;font-weight:600}.btn{border-radius:var(--radius-control);background:var(--color-button-bg);color:var(--color-button-text);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:14px 18px;font-size:15px;font-weight:600;transition:opacity .15s;display:inline-flex}.btn-block{width:100%;display:flex}.btn:hover{opacity:.9}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{border-color:var(--color-border);color:var(--color-text-primary);background:0 0}.btn-save{background:var(--color-button-bg)}.btn-save-disabled{background:var(--color-save-disabled-bg);color:var(--color-text-secondary)}.btn-save-disabled:disabled{opacity:1}.btn-danger{background:var(--color-danger-text);color:#fff}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);padding:24px}.field{flex-direction:column;gap:6px;margin-bottom:20px;display:flex}.field-label-sm{letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-secondary);font-size:12px;font-weight:600}.field input,.field textarea{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-text-primary);padding:10px 12px}.field textarea{resize:vertical;min-height:96px}.field-hint{color:var(--color-text-secondary);margin:-8px 0 12px;font-size:13px}.field-error{color:var(--color-danger-text);background:var(--color-danger-bg);border-radius:var(--radius-control);margin-top:8px;padding:8px 12px;font-size:13px}.field-success{color:var(--color-success-text);margin-top:10px;font-size:13px}.trust-message{color:var(--color-text-secondary);text-align:center;margin:12px 0 0;font-size:13px}.splash-screen{text-align:center;justify-content:center;align-items:center;min-height:100svh;padding:24px;display:flex}.first-visit-tip{color:var(--color-text-muted);text-align:left;margin-top:14px;font-size:12px;line-height:1.5}.signin-screen{text-align:center;flex-direction:column;align-items:center;max-width:420px;min-height:100svh;margin:0 auto;padding:32px 24px 24px;display:flex}.signin-hero{width:100%;max-width:260px}.signin-hero img{width:100%;height:auto;display:block}.signin-title{text-wrap:balance;margin:8px 0 12px;font-size:30px;line-height:1.2}.signin-tagline{font-family:var(--font-ui);color:var(--color-text-secondary);margin:0 0 28px;font-size:15px;line-height:1.5}.signin-features{text-align:left;flex-direction:column;gap:20px;width:100%;margin-bottom:28px;display:flex}.signin-feature{align-items:center;gap:14px;display:flex}.signin-feature-badge{border-radius:50%;justify-content:center;align-items:center;width:44px;min-width:44px;height:44px;display:flex}.signin-badge-1{background:var(--color-badge-bg-1);color:var(--color-dot-1)}.signin-badge-2{background:var(--color-badge-bg-2);color:var(--color-dot-2)}.signin-badge-3{background:var(--color-badge-bg-3);color:var(--color-dot-3)}.signin-feature-title{color:var(--color-text-primary);margin:0 0 2px;font-size:15px;font-weight:600}.signin-feature-desc{font-family:var(--font-ui);color:var(--color-text-secondary);margin:0;font-size:13px;line-height:1.4}.signin-google-btn{border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);width:100%;color:var(--color-text-primary);justify-content:center;align-items:center;gap:10px;padding:15px 18px;font-size:15px;font-weight:600;display:flex;box-shadow:0 1px 3px #00000014}.signin-google-btn:hover{background:var(--color-bg)}.signin-google-btn:disabled{opacity:.6}.screen{flex-direction:column;gap:28px;padding-top:24px;display:flex}.nav{padding:10px 16px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--color-border);background:var(--color-bg);z-index:10;gap:4px;max-width:640px;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}.nav-item{border-radius:var(--radius-control);color:var(--color-text-secondary);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:4px;padding:6px 8px 8px;font-size:10px;font-weight:500;display:flex}.nav-icon{justify-content:center;align-items:center;width:26px;height:26px;display:flex}.nav-icon img{object-fit:contain;max-width:100%;max-height:100%;display:block}.nav-item-active{color:var(--color-text-primary);font-weight:600}.baby-avatar-nav{border-color:#0000;width:26px;height:26px}.nav-item-active .baby-avatar-nav{border-color:var(--color-text-primary)}.entry-sheet{background:0 0}.entry-header-row{justify-content:flex-start;align-items:center;gap:12px;display:flex}.entry-title{text-wrap:balance;margin:0 0 4px;font-size:24px;line-height:1.25}.entry-subtitle{font-family:var(--font-ui);color:var(--color-text-secondary);margin-bottom:36px;font-size:13px}.occasion-icon{vertical-align:-1px;color:var(--color-tag-milestone-text);margin-left:5px;display:inline-block}.field-block{margin-bottom:30px}.field-label{color:var(--color-text-secondary);margin-bottom:8px;font-size:12px;font-weight:600;display:block}.note-box{border-radius:var(--radius-card);background:var(--color-note-bg);border:none;position:relative;overflow:hidden;box-shadow:0 4px 16px #2c2c2a0f}.note-illustration{opacity:.45;pointer-events:none;z-index:0;width:52px;height:52px;position:absolute;bottom:2px;right:2px}.note-illustration img{object-fit:contain;object-position:bottom right;width:100%;height:100%;display:block}.note-textarea{z-index:1;width:100%;font-family:var(--font-note);resize:none;background:0 0;border:none;min-height:96px;padding:16px 18px;font-size:17px;font-weight:400;line-height:1.5;display:block;position:relative;overflow:hidden}.note-textarea:focus{outline:none}.tag-chips{flex-direction:column;gap:10px;display:flex}.chip-row,.tag-selected-row{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--color-chip-border);background:var(--color-chip-bg);color:var(--color-chip-text);border-radius:var(--radius-pill);padding:6px 14px;font-size:13px}.chip-selected{background:var(--color-tag-milestone-bg);border-color:var(--color-tag-milestone-bg);color:var(--color-tag-milestone-text);font-weight:600}.tag-add-btn{border:1px dashed var(--color-border);color:var(--color-text-muted);border-radius:var(--radius-pill);background:0 0;align-self:flex-start;padding:6px 14px;font-size:14px;font-weight:500}.tag-search{position:relative}.tag-search input{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);width:100%;color:var(--color-text-primary);padding:8px 12px;font-size:14px}.tag-suggestions{z-index:2;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-control);position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:hidden;box-shadow:0 6px 20px #0000001a}.tag-suggestions button{text-align:left;width:100%;color:var(--color-text-primary);background:0 0;border:none;padding:8px 12px;font-size:14px;display:block}.tag-suggestions button:hover{background:var(--color-bg)}.tag-input-row{gap:8px;display:flex}.tag-input-row input{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-text-primary);flex:1;padding:8px 12px}.photo-attach{flex-direction:column;gap:12px;display:flex}.photo-grid{flex-wrap:wrap;gap:10px;display:flex}.photo-thumb{border-radius:var(--radius-control);background:var(--color-border);width:64px;height:64px;position:relative;overflow:hidden}.photo-thumb img{object-fit:cover;width:100%;height:100%;display:block}.photo-thumb-loading{width:100%;height:100%}.photo-remove{color:#fff;background:#0009;border:none;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:12px;line-height:1;display:flex;position:absolute;top:3px;right:3px}.photo-add-tile{border-radius:var(--radius-control);border:1.5px dashed var(--color-border);height:64px;color:var(--color-text-muted);white-space:nowrap;flex-shrink:0;justify-content:center;align-items:center;padding:0 16px;font-size:14px;font-weight:500;display:inline-flex}.settings-section{border-top:1px solid var(--color-border);padding-top:20px}.settings-section:first-child{border-top:none;padding-top:0}.browse-back{color:var(--color-text-secondary);background:0 0;border:none;align-self:flex-start;padding:4px 0;font-size:14px}.browse-back:hover{color:var(--color-text-primary)}.month-calendar{background:0 0;margin-bottom:20px}.flipview-tab-content{margin-top:-14px}.month-calendar-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.month-calendar-label{font-family:var(--font-heading);color:var(--color-text-primary);font-size:16px;font-weight:500}.month-calendar-nav{color:var(--color-text-secondary);border-radius:var(--radius-control);background:0 0;border:none;padding:4px 12px;font-size:18px;line-height:1}.month-calendar-nav:hover{background:var(--color-bg);color:var(--color-text-primary)}.month-calendar-weekdays{grid-template-columns:repeat(7,1fr);margin-bottom:6px;display:grid}.month-calendar-weekdays span{text-align:center;font-family:var(--font-ui);color:var(--color-text-muted);font-size:11px;font-weight:600;display:block}.month-calendar-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.month-calendar-day{height:34px;font-family:var(--font-ui);color:var(--color-text-primary);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:13px;display:flex;position:relative}.month-calendar-day:hover{background:var(--color-bg)}.month-calendar-day-blank{pointer-events:none}.month-calendar-day-selected{background:var(--color-button-bg);color:var(--color-button-text);font-weight:600}.month-calendar-dot{background:var(--color-success-text);border-radius:50%;width:5px;height:5px;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.month-calendar-day-selected .month-calendar-dot{background:var(--color-button-text)}.month-calendar-day-future{color:var(--color-text-muted);cursor:not-allowed}.month-calendar-day-future:hover{background:0 0}.flipview-tabs{border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-bg);gap:4px;margin-bottom:16px;padding:4px;display:flex}.flipview-tab{color:var(--color-text-secondary);border-radius:var(--radius-pill);text-align:center;background:0 0;border:none;flex:1;padding:8px 10px;font-size:13px;font-weight:500}.flipview-tab-active{background:var(--color-button-bg);color:var(--color-button-text);font-weight:600}.tab-select-row{justify-content:center;align-items:center;gap:4px;margin-bottom:18px;display:flex}.tab-select{appearance:none;font-family:var(--font-heading);color:var(--color-text-primary);text-align:center;background:0 0;border:none;padding:4px 0;font-size:15px;font-weight:500}.tab-select-chevron{color:var(--color-text-secondary);pointer-events:none;font-size:13px;transition:transform .15s}.tab-select-chevron-open{transform:rotate(180deg)}.tab-select-toggle{cursor:pointer;background:0 0;border:none;width:100%}.day-number-grid{background:0 0;grid-template-columns:repeat(7,1fr);gap:2px;margin:-10px 0 18px;padding:8px 0;display:grid}.day-number-cell{height:34px;font-family:var(--font-ui);color:var(--color-text-primary);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:13px;display:flex}.day-number-cell:hover{background:var(--color-bg)}.day-number-cell-selected{background:var(--color-button-bg);color:var(--color-button-text);font-weight:600}.weekday-strip{gap:6px;margin-bottom:18px;display:flex}.weekday-pill{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);border-radius:var(--radius-pill);text-align:center;flex:1;padding:8px 4px;font-size:12px;font-weight:500}.weekday-pill-active{background:var(--color-button-bg);border-color:var(--color-button-bg);color:var(--color-button-text);font-weight:600}.browse-add-prompt{border:1px dashed var(--color-border);border-radius:var(--radius-card);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.browse-add-prompt p{color:var(--color-text-secondary);margin:0;font-size:13px}.browse-add-prompt .btn{flex-shrink:0}.timeline{flex-direction:column;display:flex}.timeline-item{gap:16px;padding-bottom:20px;display:flex}.timeline-item:last-child{padding-bottom:0}.timeline-rail{flex-direction:column;flex-shrink:0;align-items:center;width:8px;display:flex}.timeline-dot{background:var(--color-success-text);border-radius:50%;width:8px;height:8px;min-height:8px;margin-top:20px}.timeline-rail:after{content:"";background:var(--color-border);flex:1;width:1px;margin-top:6px}.timeline-item:last-child .timeline-rail:after{display:none}.timeline-card{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-note-bg);flex:1;min-width:0;padding:16px 18px}.timeline-card-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.timeline-year{font-family:var(--font-heading);color:var(--color-text-primary);font-size:20px;font-weight:500}.timeline-age{font-family:var(--font-ui);color:var(--color-text-muted);align-items:center;margin-top:2px;font-size:11px;display:flex}.timeline-edit{color:var(--color-text-secondary);border-radius:var(--radius-control);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:4px;line-height:1;display:flex}.timeline-edit:hover{background:var(--color-bg);color:var(--color-text-primary)}.timeline-note{font-family:var(--font-note);color:var(--color-text-primary);margin:0;font-size:15px;line-height:1.6}.timeline-tags{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.timeline-photos{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.timeline-photos img,.timeline-photo-loading{border-radius:var(--radius-control);object-fit:cover;background:var(--color-border);width:64px;height:64px}.week-row{gap:10px;margin-bottom:16px;display:flex}.week-row:last-child{margin-bottom:0}.week-dot{border-radius:50%;width:10px;min-width:10px;height:10px;margin-top:8px}.week-dot-1{background:var(--color-dot-1)}.week-dot-2{background:var(--color-dot-2)}.week-dot-3{background:var(--color-dot-3)}.week-dot-4{background:var(--color-dot-4)}.week-title{font-family:var(--font-heading);color:var(--color-text-primary);font-size:16px;font-weight:600}.week-subtitle{font-family:var(--font-ui);color:var(--color-text-secondary);margin-top:2px;font-size:12px}.month-row{gap:12px;padding-bottom:20px;display:flex}.month-row:last-child{padding-bottom:0}.month-rail{flex-direction:column;flex-shrink:0;align-items:center;display:flex}.month-rail:after{content:"";background:var(--color-border);flex:1;width:1px;margin-top:6px}.month-row:last-child .month-rail:after{display:none}.month-date-badge{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-date-badge-bg);flex-direction:column;justify-content:center;align-items:center;width:62px;padding:8px 6px;display:flex}.month-date-badge-day{font-family:var(--font-ui);color:var(--color-text-primary);font-size:12px;font-weight:600}.month-date-badge-year{font-family:var(--font-ui);color:var(--color-text-secondary);margin-top:2px;font-size:11px}.flipview-intro{font-family:var(--font-heading);color:var(--color-text-secondary);text-align:center;margin:12px 0 4px;font-size:17px;font-style:italic}.period-selector{flex-direction:column;gap:8px;display:flex}.period-option{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-primary);border-radius:var(--radius-control);text-align:left;padding:12px 16px;font-size:15px}.period-option-active{border-color:var(--color-button-bg);background:var(--color-button-bg);color:var(--color-button-text);font-weight:600}
