:root{--bg:#0a0a0a;--surface:#111;--surface-2:#1a1a1a;--surface-3:#222;--border:#242424;--border-light:#1c1c1c;--accent:#d4a853;--accent-dim:#d4a8531a;--accent-dark:#b8923e;--text:#f0f0f0;--text-muted:#767676;--text-faint:#333;--success:#4caf72;--danger:#e05252;--warning:#e08c3c;--sans:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", system-ui, sans-serif;--radius:10px;--radius-sm:6px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;font-family:var(--sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:0}.login-screen{background:var(--bg);justify-content:center;align-items:center;height:100%;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:16px;width:90%;max-width:360px;padding:48px 40px}.login-logo{color:var(--accent);letter-spacing:-1.5px;margin-bottom:6px;font-size:36px;font-weight:800;line-height:1}.login-card h1{color:var(--text);margin-bottom:6px;font-size:20px;font-weight:600}.login-subtitle{color:var(--text-muted);margin-bottom:32px;font-size:14px}.login-buttons{justify-content:center;gap:10px;display:flex}.login-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);cursor:pointer;flex:1;padding:12px 20px;font-size:14px;font-weight:500;transition:border-color .15s}.login-btn:hover{border-color:var(--accent)}.google-btn{justify-content:center;align-items:center;gap:10px;width:100%;display:flex}.login-error{color:var(--danger);border-radius:var(--radius-sm);background:#e0525214;border:1px solid #e0525233;margin-bottom:16px;padding:10px 14px;font-size:13px}.app-shell{flex-direction:column;max-width:600px;height:100%;margin:0 auto;display:flex}.tab-body{flex-direction:column;flex:1;display:flex;overflow:hidden}.tab-nav{background:var(--surface);border-top:1px solid var(--border);scrollbar-width:none;padding-bottom:env(safe-area-inset-bottom);flex-shrink:0;display:flex;overflow-x:auto}.tab-nav::-webkit-scrollbar{display:none}.tab-btn{color:var(--text-muted);cursor:pointer;white-space:nowrap;letter-spacing:.1px;background:0 0;border:none;border-top:2px solid #0000;flex:none;padding:13px 18px 11px;font-size:12px;font-weight:500;transition:color .15s,border-color .15s}.tab-btn.active{color:var(--accent);border-top-color:var(--accent);font-weight:600}.tab-icon{display:none}.tab-label{font-size:12px}.tab-content{background:var(--bg);flex-direction:column;flex:1;display:flex;overflow-y:auto}.tab-header{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;padding:22px 18px 16px}.tab-header h2{color:var(--text);letter-spacing:-.5px;font-size:24px;font-weight:700}.tab-subtitle{color:var(--text-muted);letter-spacing:.1px;margin-top:4px;font-size:12px}.section-label{text-transform:uppercase;letter-spacing:1px;color:var(--text-faint);padding:18px 18px 6px;font-size:10px;font-weight:700}.empty-tab{text-align:center;color:var(--text-muted);padding:56px 18px;font-size:14px;line-height:1.6}.add-form{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;gap:8px;padding:14px 18px;display:flex}.form-row{align-items:center;gap:8px;width:100%;display:flex}.add-input{border:1px solid var(--border);border-radius:var(--radius-sm);font-size:14px;font-family:var(--sans);background:var(--surface-2);color:var(--text);outline:none;flex:1;width:100%;padding:10px 13px;transition:border-color .15s}.add-input:focus{border-color:var(--accent)}.add-input::placeholder{color:var(--text-faint)}.category-select{border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px;font-family:var(--sans);background:var(--surface-2);color:var(--text);cursor:pointer;outline:none;padding:9px 10px}.date-input{border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px;font-family:var(--sans);background:var(--surface-2);color:var(--text);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;outline:none;padding:9px 10px}.add-btn{border-radius:var(--radius-sm);background:var(--accent);color:#0a0a0a;cursor:pointer;border:none;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;font-weight:700;transition:background .15s;display:flex}.add-btn:hover{background:var(--accent-dark)}.chat-layout{flex-direction:column;width:100%;height:100%;display:flex}.chat-header{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 18px;display:flex}.chat-header-left{align-items:center;gap:10px;display:flex}.header-paw{opacity:.7;font-size:18px}.chat-header h1{color:var(--text);letter-spacing:-.3px;font-size:17px;font-weight:700;line-height:1}.header-sub{color:var(--text-muted);margin-top:2px;font-size:11px}.logout-btn{border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;padding:6px 12px;font-size:12px;font-weight:500;transition:border-color .15s,color .15s}.logout-btn:hover{border-color:var(--accent);color:var(--accent)}.messages-container{background:var(--bg);flex-direction:column;flex:1;gap:12px;padding:20px 18px;display:flex;overflow-y:auto}.empty-state{color:var(--text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;font-size:14px;display:flex}.empty-state span{opacity:.2;font-size:32px}.message-row{align-items:flex-end;gap:8px;display:flex}.message-row.me{flex-direction:row-reverse}.message-avatar{background:var(--surface-2);border:1px solid var(--border);width:26px;height:26px;color:var(--text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:flex}.message-row.wookie .message-avatar{background:var(--accent-dim);border-color:var(--accent-dark);font-size:13px}.message-bubble-wrap{flex-direction:column;gap:3px;max-width:72%;display:flex}.message-row.me .message-bubble-wrap{align-items:flex-end}.message-sender{color:var(--text-faint);text-transform:uppercase;letter-spacing:.5px;padding:0 4px;font-size:10px;font-weight:600}.message-bubble{word-break:break-word;border-radius:14px;padding:10px 14px;font-size:14px;line-height:1.55}.message-row.them .message-bubble{background:var(--surface);border:1px solid var(--border);color:var(--text);border-bottom-left-radius:4px}.message-row.me .message-bubble{background:var(--accent);color:#0a0a0a;border-bottom-right-radius:4px;font-weight:500}.message-row.wookie .message-bubble{background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-bottom-left-radius:4px;font-style:italic}.message-time{color:var(--text-faint);padding:0 4px;font-size:10px}.typing-indicator{align-items:center;gap:4px;padding:10px 14px;display:flex}.typing-indicator span{background:var(--accent);opacity:.5;border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite bounce;display:inline-block}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-5px)}}.message-input-form{padding:12px 18px calc(12px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border);flex-shrink:0;align-items:flex-end;gap:8px;display:flex}.message-input{border:1px solid var(--border);font-size:15px;font-family:var(--sans);background:var(--surface-2);color:var(--text);resize:none;border-radius:10px;outline:none;flex:1;max-height:120px;padding:10px 14px;line-height:1.4;transition:border-color .15s;overflow-y:auto}.message-input:focus{border-color:var(--accent)}.message-input::placeholder{color:var(--text-faint)}.send-btn{background:var(--accent);cursor:pointer;border:none;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:18px;transition:background .15s;display:flex}.send-btn:hover:not(:disabled){background:var(--accent-dark)}.send-btn:disabled{opacity:.25;cursor:not-allowed}.shopping-list{flex:1}.category-label{text-transform:uppercase;letter-spacing:1px;color:var(--text-faint);padding:18px 18px 6px;font-size:10px;font-weight:700}.shopping-item{cursor:pointer;border-bottom:1px solid var(--border-light);background:var(--surface);align-items:center;gap:14px;padding:14px 18px;transition:background .1s;display:flex}.shopping-item:active{background:var(--surface-2)}.shopping-item.done .item-name{opacity:.3;text-decoration:line-through}.item-check{border:1.5px solid var(--border);background:var(--surface-2);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:0;transition:all .15s;display:flex}.shopping-item.done .item-check{background:var(--accent);border-color:var(--accent);color:#0a0a0a;font-size:11px;font-weight:700}.shopping-item.done .item-check:after{content:"✓"}.item-name{color:var(--text);font-size:15px}.item-notes{color:var(--text-muted);margin-top:2px;font-size:12px}.done-section{margin-top:2px}.done-toggle{color:var(--text-faint);cursor:pointer;background:0 0;border:none;padding:12px 18px;font-size:12px;font-weight:500}.clear-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;background:0 0;margin:8px 18px;padding:8px 16px;font-size:13px;transition:border-color .15s,color .15s;display:block}.clear-btn:hover{border-color:var(--danger);color:var(--danger)}.regulars-section{padding:0 18px 4px}.regulars-toggle{color:var(--text-muted);cursor:pointer;letter-spacing:.05em;text-transform:uppercase;background:0 0;border:none;padding:4px 0 8px;font-size:12px}.regulars-list{flex-wrap:wrap;gap:6px;padding-bottom:12px;display:flex}.regular-chip{background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;border-radius:20px;padding:5px 12px;font-size:13px;transition:border-color .15s,color .15s}.regular-chip:hover{border-color:var(--accent);color:var(--accent)}.dinner-tonight{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);margin:16px 18px;padding:18px}.tonight-label{text-transform:uppercase;letter-spacing:1px;color:var(--text-faint);margin-bottom:8px;font-size:10px;font-weight:700}.meal-name{color:var(--accent);letter-spacing:-.4px;font-size:22px;font-weight:700}.meal-notes{color:var(--text-muted);margin-top:4px;font-size:13px}.tonight-empty{color:var(--text-faint);font-size:14px}.suggest-btn{background:var(--accent);color:#0a0a0a;border-radius:var(--radius-sm);cursor:pointer;letter-spacing:.1px;border:none;width:calc(100% - 36px);margin:0 18px 16px;padding:13px;font-size:14px;font-weight:700;transition:background .15s;display:block}.suggest-btn:hover{background:var(--accent-dark)}.suggest-btn:disabled{opacity:.4;cursor:default}.dinner-form{flex-direction:column}.dinner-history{flex:1}.dinner-item{background:var(--surface);border-bottom:1px solid var(--border-light);align-items:center;gap:14px;padding:13px 18px;display:flex}.dinner-date{color:var(--text-muted);min-width:76px;font-size:12px}.dinner-meal{color:var(--text);font-size:14px}.wookie-profile{background:var(--surface);border-bottom:1px solid var(--border);gap:8px;padding:14px 18px;display:flex}.wookie-stat{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);text-align:center;flex-direction:column;flex:1;gap:4px;padding:10px;display:flex}.wookie-stat span{text-transform:uppercase;letter-spacing:.8px;color:var(--text-faint);font-size:9px;font-weight:700}.wookie-stat strong{color:var(--text);font-size:15px;font-weight:600}.weight-edit{align-items:center;gap:6px;margin-top:2px;display:flex}.weight-input{background:var(--surface);border:1px solid var(--accent);width:60px;color:var(--text);border-radius:4px;padding:3px 6px;font-size:13px}.wookie-form{flex-direction:column}.log-list{flex:1}.log-item{background:var(--surface);border-bottom:1px solid var(--border-light);padding:14px 18px}.log-header{justify-content:space-between;align-items:center;margin-bottom:5px;display:flex}.log-type{color:var(--accent);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:700}.log-date{color:var(--text-muted);font-size:11px}.log-notes{color:var(--text);font-size:14px;line-height:1.5}.home-list{flex:1}.home-item{cursor:pointer;background:var(--surface);border-bottom:1px solid var(--border-light);align-items:flex-start;padding:14px 18px;transition:background .1s;display:flex}.home-item:active{background:var(--surface-2)}.home-item.done .item-name{opacity:.3;text-decoration:line-through}.home-item-main{flex:1;align-items:flex-start;gap:12px;display:flex}.home-form{flex-direction:column}.section-tabs{border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0;display:flex}.section-tab{color:var(--text-muted);cursor:pointer;letter-spacing:.1px;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;margin-bottom:-1px;padding:12px;font-size:13px;font-weight:500;transition:color .15s,border-color .15s}.section-tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.supplies-list{flex-direction:column;flex:1;gap:10px;padding:16px 18px;display:flex}.supply-card{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);padding:16px}.supply-card.supply-warn{border-color:#e08c3c4d}.supply-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.supply-name{color:var(--text);font-size:15px;font-weight:600}.supply-status{color:var(--text-muted);font-size:12px;font-weight:600}.supply-meta{color:var(--text-muted);flex-direction:column;gap:3px;margin-bottom:12px;font-size:12px;display:flex}.supply-note{color:var(--text-faint);font-style:italic}.supply-actions{flex-wrap:wrap;gap:8px;display:flex}.supply-btn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-2);color:var(--text-muted);cursor:pointer;padding:7px 14px;font-size:12px;font-weight:600;transition:border-color .15s,color .15s}.supply-btn:hover{border-color:var(--accent);color:var(--accent)}.supply-btn.warn{color:var(--warning);border-color:#e08c3c4d}.supply-btn.primary{background:var(--accent);border-color:var(--accent);color:#0a0a0a;font-weight:700}.repurchase-modal{z-index:100;background:#000000b3;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.repurchase-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:12px;width:100%;max-width:360px;padding:24px;display:flex}.repurchase-card h3{color:var(--text);font-size:16px;font-weight:600}.repurchase-card form{flex-direction:column;gap:10px;display:flex}.repurchase-btns{justify-content:flex-end;gap:8px;display:flex}.events-list{flex:1}.event-item{background:var(--surface);border-bottom:1px solid var(--border-light)}.event-item.urgent{border-left:2px solid var(--accent)}.event-item.past{opacity:.35}.event-main{cursor:pointer;align-items:flex-start;gap:14px;padding:14px 18px;display:flex}.event-icon{opacity:.7;flex-shrink:0;font-size:18px}.event-body{flex:1}.event-title{color:var(--text);font-size:15px;font-weight:500}.event-date{color:var(--accent);margin-top:3px;font-size:12px;font-weight:600}.event-notes{color:var(--text-muted);margin-top:2px;font-size:12px}.add-trip-btn{background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;flex-shrink:0;padding:7px 14px;font-size:13px;font-weight:600;transition:border-color .15s,color .15s}.add-trip-btn:hover{border-color:var(--accent);color:var(--accent)}.holiday-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;margin-bottom:8px;transition:border-color .2s;overflow:hidden}.holiday-card:hover{border-color:var(--accent-dark)}.holiday-card.past{opacity:.4}.holiday-card-main{align-items:flex-start;gap:14px;padding:16px 18px;display:flex}.holiday-card-icon{flex-shrink:0;font-size:20px}.holiday-card-body{flex:1}.holiday-card-name{color:var(--text);letter-spacing:-.3px;font-size:17px;font-weight:700}.holiday-card-dest{color:var(--text-muted);margin-top:3px;font-size:13px}.holiday-card-dates{color:var(--accent);margin-top:4px;font-size:12px;font-weight:600}.holiday-countdown{color:var(--text-muted);margin-top:2px;font-size:12px}.holiday-delete{color:var(--text-faint);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:4px;font-size:14px;transition:color .15s}.holiday-delete:hover{color:var(--danger)}.holiday-detail-header{align-items:flex-start;gap:12px;display:flex}.back-btn{color:var(--accent);cursor:pointer;background:0 0;border:none;flex-shrink:0;margin-top:4px;padding:2px 0;font-size:13px;font-weight:600}.not-booked-tag{color:var(--warning);margin-top:3px;font-size:11px}.ex-price{color:var(--text-muted);font-size:12px;font-weight:400}.ex-detail{color:var(--text-muted);margin-top:3px;font-size:12px}.ex-detail a{color:var(--text-muted);text-decoration:none}.ex-links{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.ex-link{background:var(--surface-3);color:var(--text-muted);border:1px solid var(--border);border-radius:20px;padding:3px 8px;font-size:11px;text-decoration:none}.ex-link-book{background:var(--accent-dim);color:var(--accent);border-color:var(--accent)}.book-toggle{background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;flex-shrink:0;align-self:flex-start;padding:5px 10px;font-size:11px;font-weight:600;transition:border-color .15s,color .15s}.book-toggle:hover{border-color:var(--accent);color:var(--accent)}.checklist-item{border-bottom:1px solid var(--border-light);cursor:pointer;flex-wrap:wrap;align-items:flex-start;gap:12px;padding:13px 0;display:flex}.checklist-item:last-child{border-bottom:none}.checklist-item.checked{opacity:.35}.checklist-item.selected{background:var(--surface-2);border-radius:var(--radius-sm);padding:12px 10px}.check-circle{border:1.5px solid var(--border);color:#0a0a0a;cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;font-weight:700;transition:all .15s;display:flex}.checklist-item.checked .check-circle{background:var(--accent);border-color:var(--accent)}.checklist-text{color:var(--text);flex:1;font-size:14px;line-height:1.45}.checklist-item.checked .checklist-text{color:var(--text-faint);text-decoration:line-through}.entry-actions{gap:8px;width:100%;padding-top:10px;display:flex}.action-btn{border-radius:var(--radius-sm);cursor:pointer;border:none;flex:1;padding:9px;font-size:13px;font-weight:600}.action-btn.delete{color:var(--danger);background:#e052521a}.action-btn.edit{background:var(--accent-dim);color:var(--accent)}.action-btn.cancel{background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border)}.action-btn.save{background:var(--accent);color:#0a0a0a}.event-item.selected{background:var(--surface-2)}.event-item.edit-item{cursor:default;padding:14px 18px}.active-toggle{color:var(--text-muted);cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.active-toggle input{accent-color:var(--accent)}.suggest-bar{padding-bottom:10px}.holiday-suggest-btn{background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;text-align:center;width:100%;padding:11px 16px;font-size:13px;font-weight:600;transition:border-color .15s,color .15s}.holiday-suggest-btn:hover{border-color:var(--accent);color:var(--accent)}.holiday-suggest-btn:disabled{opacity:.35;cursor:default}.suggestions-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;overflow:hidden}.suggestions-label{color:var(--text-faint);text-transform:uppercase;letter-spacing:.9px;padding:10px 16px 6px;font-size:10px;font-weight:700}.suggestion-item{border-top:1px solid var(--border-light);cursor:pointer;flex-wrap:wrap;align-items:flex-start;gap:10px;padding:11px 16px;transition:background .1s;display:flex}.suggestion-item:hover{background:var(--surface-2)}.suggestion-name{color:var(--text);flex:1;font-size:14px;font-weight:500;line-height:1.4}.suggestion-notes{width:100%;color:var(--text-muted);margin-top:2px;font-size:12px}.suggestion-add{color:var(--accent);flex-shrink:0;align-self:center;font-size:12px;font-weight:700}.day-divider{text-transform:uppercase;letter-spacing:1px;color:var(--text-faint);padding:16px 18px 6px;font-size:10px;font-weight:700}@media (width<=480px){.login-card{padding:36px 24px}.message-bubble-wrap{max-width:82%}}
