:root{--color-bg: #faf6f1;--color-surface: #fff8f0;--color-surface-raised: #ffffff;--color-primary: #c4704b;--color-primary-light: #e8a882;--color-primary-dark: #a05535;--color-accent: #7b9e6b;--color-accent-light: #a8c99a;--color-text: #3d2e1f;--color-text-secondary: #7a6b5d;--color-muted: #b8a99a;--color-border: #e6ddd3;--color-danger: #c44b4b;--color-success: #6b9e6b;--color-gold: #d4a843;--color-event-call: #5b8cbf;--color-event-safe-space: #9b6bbf;--color-event-visit: #c4704b;--color-event-date: #d4647a;--color-event-personal: #7b9e6b;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-serif: "Georgia", "Times New Roman", serif;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--max-width: 480px;--nav-height: 60px;--border-radius: 12px;--border-radius-sm: 8px;--shadow-sm: 0 1px 3px rgba(61, 46, 31, .08);--shadow-md: 0 4px 12px rgba(61, 46, 31, .1);--shadow-lg: 0 8px 24px rgba(61, 46, 31, .12)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);line-height:1.6;min-height:100dvh;-webkit-font-smoothing:antialiased}img,video{max-width:100%;height:auto;display:block}button{cursor:pointer;font-family:inherit;font-size:inherit;border:none;background:none}a{color:var(--color-primary);text-decoration:none}input,textarea,select{font-family:inherit;font-size:inherit;border:1px solid var(--color-border);border-radius:var(--border-radius-sm);padding:var(--space-sm) var(--space-md);background:var(--color-surface);color:var(--color-text);width:100%}textarea{resize:vertical;min-height:80px}.page-container{max-width:var(--max-width);margin:0 auto;padding:var(--space-md);padding-bottom:calc(var(--nav-height) + var(--space-xl))}.card{background:var(--color-surface-raised);border-radius:var(--border-radius);padding:var(--space-lg);box-shadow:var(--shadow-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);border-radius:var(--border-radius-sm);font-weight:500;transition:all .2s ease;min-height:44px}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-dark)}.btn-secondary{background:var(--color-border);color:var(--color-text)}.btn-secondary:hover{background:var(--color-muted)}.badge{display:inline-block;padding:var(--space-xs) var(--space-sm);border-radius:999px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.section-title{font-family:var(--font-serif);font-size:1.25rem;color:var(--color-text);margin-bottom:var(--space-md)}.auth-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:80dvh;text-align:center;gap:var(--space-md)}.auth-logo{font-size:4rem}.auth-title{font-family:var(--font-serif);font-size:2rem;color:var(--color-primary)}.auth-subtitle{color:var(--color-muted);margin-bottom:var(--space-xl)}.auth-btn{gap:var(--space-sm);font-size:1rem;padding:var(--space-md) var(--space-xl)}.auth-loading{color:var(--color-muted)}.authed-container{display:flex;flex-direction:column;gap:var(--space-lg)}.auth-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) 0}.auth-user-info{display:flex;align-items:center;gap:var(--space-sm)}.auth-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover}.auth-name{font-weight:500;font-size:.875rem}.btn-sm{font-size:.75rem;padding:var(--space-xs) var(--space-sm);min-height:32px}.dashboard{display:flex;flex-direction:column;gap:var(--space-lg)}.dashboard-welcome{text-align:center;padding:var(--space-md) 0}.dashboard-date{color:var(--color-muted);font-size:.875rem;margin-top:var(--space-xs)}.countdown-card{text-align:center}.countdown-label{color:var(--color-text-secondary);font-size:.875rem;margin-bottom:var(--space-md)}.countdown-grid{display:flex;justify-content:center;gap:var(--space-lg)}.countdown-unit{display:flex;flex-direction:column;align-items:center}.countdown-number{font-size:2rem;font-weight:700;color:var(--color-primary);line-height:1}.countdown-text{font-size:.75rem;color:var(--color-muted);text-transform:uppercase;letter-spacing:.05em}.countdown-arrived{font-size:1.5rem;font-weight:600}.status-title{font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);margin-bottom:var(--space-sm)}.status-list{display:flex;flex-direction:column;gap:var(--space-sm)}.status-row{display:flex;align-items:center;gap:var(--space-sm)}.status-icon{font-size:1.25rem}.status-label{flex:1;font-size:.9rem}.status-check{font-size:1.1rem}.battery-card{text-align:center}.battery-header{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.battery-emoji{font-size:1.5rem}.battery-label{font-weight:600;font-size:.9rem}.battery-saved{color:var(--color-success);font-weight:700;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.battery-slider-row{display:flex;align-items:center;gap:var(--space-sm)}.battery-min,.battery-max{font-size:.75rem;color:var(--color-muted);font-weight:600}.battery-slider{flex:1;accent-color:var(--color-primary);height:6px;cursor:pointer}.battery-value{margin-top:var(--space-sm);font-weight:600;color:var(--color-primary)}.calendar-container{display:flex;flex-direction:column;gap:var(--space-md)}.calendar-nav{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) 0}.calendar-month{display:flex;flex-direction:column;align-items:center;gap:2px}.calendar-month-name{font-family:var(--font-serif);font-size:1.1rem;font-weight:600}.btn-xs{font-size:.65rem;padding:2px 6px;min-height:22px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.calendar-day-name{text-align:center;font-size:.7rem;font-weight:600;color:var(--color-muted);padding:var(--space-xs) 0;text-transform:uppercase}.calendar-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:48px;border-radius:var(--border-radius-sm);background:var(--color-surface);border:none;cursor:pointer;transition:all .15s ease;padding:2px}.calendar-cell.empty{background:transparent;cursor:default}.calendar-cell:hover:not(.empty){background:var(--color-border)}.calendar-cell.today{border:2px solid var(--color-primary)}.calendar-cell.selected{background:var(--color-primary-light)}.calendar-day-number{font-size:.85rem;font-weight:500}.calendar-dots{display:flex;gap:2px;margin-top:2px}.calendar-dot{width:5px;height:5px;border-radius:50%}.calendar-events{display:flex;flex-direction:column;gap:var(--space-sm)}.calendar-events-header{display:flex;align-items:center;justify-content:space-between}.calendar-events-header .section-title{margin-bottom:0}.calendar-empty{text-align:center;color:var(--color-muted);font-size:.85rem;padding:var(--space-md)}.calendar-event-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);background:var(--color-surface);border-radius:var(--border-radius-sm);cursor:pointer;transition:background .15s}.calendar-event-row:hover{background:var(--color-border)}.calendar-event-info{display:flex;flex-direction:column;gap:2px}.calendar-event-title{font-weight:500;font-size:.9rem}.calendar-event-time{font-size:.75rem;color:var(--color-muted)}.modal-overlay{position:fixed;inset:0;background:#3d2e1f80;display:flex;align-items:flex-end;justify-content:center;z-index:200;animation:fadeIn .2s ease}.modal-content{width:100%;max-width:var(--max-width);max-height:85dvh;overflow-y:auto;border-radius:var(--border-radius) var(--border-radius) 0 0;display:flex;flex-direction:column;gap:var(--space-md)}.form-label{font-size:.8rem;font-weight:600;color:var(--color-text-secondary);margin-top:var(--space-xs)}.form-row{display:flex;gap:var(--space-md)}.form-col{flex:1;display:flex;flex-direction:column;gap:var(--space-xs)}.form-check{display:flex;align-items:center;gap:var(--space-sm);font-size:.85rem}.form-check input[type=checkbox]{width:auto;accent-color:var(--color-primary)}.form-actions{display:flex;gap:var(--space-sm);padding-top:var(--space-md)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover{filter:brightness(.9)}.journal-container{display:flex;flex-direction:column;gap:var(--space-md)}.journal-tabs{display:flex;gap:var(--space-xs);background:var(--color-surface);border-radius:var(--border-radius-sm);padding:3px}.tab{flex:1;padding:var(--space-sm);border-radius:6px;font-weight:500;font-size:.85rem;text-align:center;transition:all .2s;color:var(--color-muted);min-height:40px}.tab.active{background:var(--color-primary);color:#fff}.journal-columns{display:flex;flex-direction:column;gap:var(--space-md)}@media(min-width:600px){.journal-columns{flex-direction:row}.journal-column{flex:1}}.journal-column{display:flex;flex-direction:column;gap:var(--space-sm)}.journal-column-label{font-size:.8rem;font-weight:600;color:var(--color-text-secondary)}.journal-form,.journal-partner{display:flex;flex-direction:column;gap:var(--space-sm)}.journal-text{font-size:.9rem;line-height:1.5;color:var(--color-text);white-space:pre-wrap}.journal-partner-empty{text-align:center;color:var(--color-muted);font-size:.85rem;min-height:120px;display:flex;align-items:center;justify-content:center}.journal-history{display:flex;flex-direction:column;gap:var(--space-sm)}.journal-history-day{padding:var(--space-md)}.journal-history-date{font-weight:600;font-size:.85rem;color:var(--color-primary);margin-bottom:var(--space-sm)}.journal-preview{font-size:.8rem;color:var(--color-text-secondary);line-height:1.4}.journal-empty-entry{font-size:.8rem;color:var(--color-muted);font-style:italic}.photos-container{display:flex;flex-direction:column;gap:var(--space-lg)}.photo-upload{padding:var(--space-md)}.photo-drop{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-xl);border:2px dashed var(--color-border);border-radius:var(--border-radius);cursor:pointer;transition:border-color .2s}.photo-drop:hover{border-color:var(--color-primary)}.photo-drop-icon{font-size:2rem}.photo-drop-text{color:var(--color-muted);font-size:.85rem}.photo-preview{display:flex;flex-direction:column;gap:var(--space-sm)}.photo-preview-img{border-radius:var(--border-radius);max-height:300px;object-fit:cover}.photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm)}.photo-item{cursor:pointer}.photo-item img{width:100%;border-radius:var(--border-radius-sm);aspect-ratio:1;object-fit:cover}.photo-caption{font-size:.75rem;color:var(--color-text-secondary);margin-top:var(--space-xs)}.photo-date-label{font-size:.8rem;font-weight:600;color:var(--color-primary);margin-bottom:var(--space-sm)}.photo-day-group{display:flex;flex-direction:column;gap:var(--space-xs)}.photo-today-pair{padding:var(--space-md)}.lightbox{position:fixed;inset:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:300;cursor:pointer}.lightbox-img{max-width:95%;max-height:95%;object-fit:contain;border-radius:var(--border-radius)}.messages-container{display:flex;flex-direction:column;gap:var(--space-md)}.compose-card{padding:var(--space-md);position:sticky;top:0;z-index:10}.compose-row{display:flex;flex-direction:column;gap:var(--space-sm)}.compose-actions{display:flex;gap:var(--space-sm)}.image-btn{cursor:pointer}.note-card{position:relative;padding:var(--space-md)}.note-card.own{background:var(--color-primary-light)}.note-header{display:flex;justify-content:space-between;margin-bottom:var(--space-xs)}.note-author{font-weight:600;font-size:.8rem}.note-time{font-size:.7rem;color:var(--color-muted)}.note-content{font-size:.9rem;line-height:1.5;white-space:pre-wrap}.note-image{width:100%;border-radius:var(--border-radius-sm);margin-top:var(--space-sm)}.note-delete{position:absolute;top:var(--space-sm);right:var(--space-sm);font-size:1.2rem;color:var(--color-muted);padding:4px;min-height:auto}.note-delete:hover{color:var(--color-danger)}.activities-container{display:flex;flex-direction:column;gap:var(--space-md)}.category-filters{display:flex;gap:4px;overflow-x:auto;padding-bottom:var(--space-xs);-webkit-overflow-scrolling:touch}.category-filters .tab{flex-shrink:0;font-size:.75rem;padding:var(--space-xs) var(--space-sm);white-space:nowrap}.suggest-btn{width:100%}.suggestion-card{border:2px solid var(--color-gold);background:linear-gradient(135deg,var(--color-surface) 0%,#fff9e6 100%)}.suggestion-label{font-size:.7rem;font-weight:700;text-transform:uppercase;color:var(--color-gold);letter-spacing:.1em;margin-bottom:var(--space-xs)}.suggestion-reason{font-size:.8rem;color:var(--color-text-secondary);font-style:italic;margin-top:var(--space-xs)}.activity-list{display:flex;flex-direction:column;gap:var(--space-sm)}.activity-card{display:flex;flex-direction:column;gap:var(--space-sm);transition:opacity .2s}.activity-card.done{opacity:.6}.activity-name{font-weight:600;font-size:.95rem}.activity-desc{font-size:.8rem;color:var(--color-text-secondary);line-height:1.4}.activity-card .badge{align-self:flex-start;background:var(--color-border);color:var(--color-text-secondary);font-size:.65rem}.done-btn{align-self:flex-start;background:var(--color-accent-light);color:var(--color-text)}.mark-done-form{display:flex;flex-direction:column;gap:var(--space-sm)}.star-rating{display:flex;gap:2px}.star{font-size:1.5rem;color:var(--color-border);background:none;padding:0;min-height:auto}.star.filled{color:var(--color-gold)}.blueprint-container{display:flex;flex-direction:column;gap:var(--space-md)}.blueprint-toc{display:flex;flex-wrap:wrap;gap:var(--space-xs);padding:var(--space-md);background:var(--color-surface);border-radius:var(--border-radius)}.toc-item{font-size:.75rem;color:var(--color-primary);padding:2px 8px;border-radius:999px;background:var(--color-surface-raised)}.toc-h2{font-weight:600}.blueprint-content{line-height:1.7}.bp-h1,.bp-h2{font-family:var(--font-serif);color:var(--color-primary);margin-top:var(--space-xl);margin-bottom:var(--space-sm)}.bp-h1{font-size:1.5rem}.bp-h2{font-size:1.25rem}.bp-h3{font-size:1.1rem;font-weight:600;margin-top:var(--space-lg)}.bp-h4{font-size:1rem;font-weight:600;margin-top:var(--space-md)}.bp-p{margin-bottom:var(--space-sm);font-size:.9rem}.bp-list{padding-left:var(--space-lg);margin-bottom:var(--space-md)}.bp-list li{margin-bottom:var(--space-xs);font-size:.9rem}.bp-table{width:100%;border-collapse:collapse;margin:var(--space-md) 0;font-size:.8rem}.bp-table th,.bp-table td{padding:var(--space-sm);border:1px solid var(--color-border);text-align:left}.bp-table th{background:var(--color-surface);font-weight:600}.bp-blockquote{border-left:3px solid var(--color-primary);padding-left:var(--space-md);margin:var(--space-md) 0;color:var(--color-text-secondary);font-style:italic}.blueprint-hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-lg) 0}.blueprint-content code{background:var(--color-surface);padding:2px 6px;border-radius:4px;font-size:.85em}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.bottom-nav[data-astro-cid-sckkx6r4]{position:fixed;bottom:0;left:0;right:0;height:var(--nav-height);background:var(--color-surface-raised);border-top:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-around;padding:0 var(--space-xs);z-index:100;box-shadow:0 -2px 10px #3d2e1f0f}.nav-item[data-astro-cid-sckkx6r4]{display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--space-xs);border-radius:var(--border-radius-sm);color:var(--color-muted);font-size:.65rem;font-weight:500;transition:all .2s ease;min-width:44px;min-height:44px;justify-content:center;text-decoration:none}.nav-item[data-astro-cid-sckkx6r4]:active{transform:scale(.95)}.nav-item[data-astro-cid-sckkx6r4].active{color:var(--color-primary)}.nav-item[data-astro-cid-sckkx6r4].active .nav-icon[data-astro-cid-sckkx6r4]{transform:scale(1.15)}.nav-icon[data-astro-cid-sckkx6r4]{font-size:1.25rem;transition:transform .2s ease}.nav-label[data-astro-cid-sckkx6r4]{line-height:1}@media(max-width:359px){.bottom-nav[data-astro-cid-sckkx6r4]{overflow-x:auto;justify-content:flex-start;gap:var(--space-xs)}.nav-item[data-astro-cid-sckkx6r4]{flex-shrink:0}}
