html[data-theme=dark],html:not([data-theme]){--bg0: #0a0e1a;--bg1: #0f1428;--bg2: #151d2d;--card: rgba(255, 255, 255, .05);--card2: rgba(255, 255, 255, .08);--border: rgba(255, 255, 255, .08);--border2: rgba(255, 255, 255, .12);--text: rgba(255, 255, 255, .95);--muted: rgba(255, 255, 255, .75);--muted2: rgba(255, 255, 255, .55);--shadow: 0 20px 70px rgba(0, 0, 0, .45);--primary: #7c5cff;--primary2: #9f8cff;--secondary: #00d4ff;--danger: #ff4d6d;--success: #4caf50;--radius: 16px;--radius2: 12px}html[data-theme=light]{--bg0: #ffffff;--bg1: #f8f9fa;--bg2: #eff0f2;--card: rgba(0, 0, 0, .04);--card2: rgba(0, 0, 0, .06);--border: rgba(0, 0, 0, .1);--border2: rgba(0, 0, 0, .14);--text: rgba(0, 0, 0, .95);--muted: rgba(0, 0, 0, .75);--muted2: rgba(0, 0, 0, .55);--shadow: 0 20px 70px rgba(0, 0, 0, .15);--primary: #6c5ce7;--primary2: #8b76e8;--secondary: #0099ff;--danger: #ff5252;--success: #4caf50;--radius: 16px;--radius2: 12px}html[data-theme=grey]{--bg0: #1a1a1a;--bg1: #232323;--bg2: #2d2d2d;--card: rgba(255, 255, 255, .04);--card2: rgba(255, 255, 255, .07);--border: rgba(255, 255, 255, .08);--border2: rgba(255, 255, 255, .12);--text: rgba(255, 255, 255, .92);--muted: rgba(255, 255, 255, .72);--muted2: rgba(255, 255, 255, .52);--shadow: 0 20px 70px rgba(0, 0, 0, .4);--primary: #808080;--primary2: #999999;--secondary: #666666;--danger: #cc0000;--success: #339933;--radius: 16px;--radius2: 12px}html[data-theme=pink]{--bg0: #2d1b24;--bg1: #3d2630;--bg2: #4d313c;--card: rgba(255, 182, 193, .08);--card2: rgba(255, 182, 193, .12);--border: rgba(255, 182, 193, .12);--border2: rgba(255, 192, 203, .16);--text: rgba(255, 255, 255, .95);--muted: rgba(255, 255, 255, .75);--muted2: rgba(255, 255, 255, .55);--shadow: 0 20px 70px rgba(0, 0, 0, .45);--primary: #ff69b4;--primary2: #ff85c1;--secondary: #ff1493;--danger: #ff0055;--success: #ff6b9d;--radius: 16px;--radius2: 12px}html[data-theme=blue]{--bg0: #0a1428;--bg1: #0f1c3f;--bg2: #162a52;--card: rgba(0, 150, 255, .08);--card2: rgba(0, 150, 255, .12);--border: rgba(0, 180, 255, .12);--border2: rgba(0, 180, 255, .16);--text: rgba(255, 255, 255, .95);--muted: rgba(255, 255, 255, .75);--muted2: rgba(255, 255, 255, .55);--shadow: 0 20px 70px rgba(0, 0, 0, .45);--primary: #0096ff;--primary2: #3db9ff;--secondary: #00d4ff;--danger: #ff6b6b;--success: #51cf66;--radius: 16px;--radius2: 12px}html[data-theme=green]{--bg0: #0d1f0a;--bg1: #132810;--bg2: #1a341a;--card: rgba(76, 175, 80, .08);--card2: rgba(76, 175, 80, .12);--border: rgba(76, 175, 80, .12);--border2: rgba(76, 175, 80, .16);--text: rgba(255, 255, 255, .95);--muted: rgba(255, 255, 255, .75);--muted2: rgba(255, 255, 255, .55);--shadow: 0 20px 70px rgba(0, 0, 0, .45);--primary: #4caf50;--primary2: #66bb6a;--secondary: #2bbb2b;--danger: #ff5252;--success: #66bb6a;--radius: 16px;--radius2: 12px}html[data-theme=orange]{--bg0: #1f1107;--bg1: #2b1a0e;--bg2: #3a2815;--card: rgba(255, 152, 0, .08);--card2: rgba(255, 152, 0, .12);--border: rgba(255, 152, 0, .12);--border2: rgba(255, 152, 0, .16);--text: rgba(255, 255, 255, .95);--muted: rgba(255, 255, 255, .75);--muted2: rgba(255, 255, 255, .55);--shadow: 0 20px 70px rgba(0, 0, 0, .45);--primary: #ff9800;--primary2: #ffb333;--secondary: #ffb74d;--danger: #f44336;--success: #66bb6a;--radius: 16px;--radius2: 12px}*{box-sizing:border-box}button,[role=button],.btn,.pill,.settingsItem,.item{touch-action:manipulation;-webkit-tap-highlight-color:transparent}html,body{height:100%;background-color:var(--bg0)}#root{min-height:100%;background-color:var(--bg0)}body{margin:0;padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--text);background:linear-gradient(135deg,var(--bg0) 0%,var(--bg1) 50%,var(--bg0) 100%);background-attachment:fixed;min-height:100vh;-webkit-user-select:none;user-select:none}input,textarea,[contenteditable]{-webkit-user-select:text;user-select:text}a{color:inherit;text-decoration:none}code{font-family:Monaco,Courier New,monospace;font-size:.95em;background:var(--card);border:1px solid var(--border);padding:2px 6px;border-radius:6px}::selection{background:var(--primary);color:#fff}.topbar{position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:rgba(var(--bg1),.7);border-bottom:1px solid var(--border);box-shadow:0 8px 32px #0000001a;border-radius:0}.topbarRow{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:12px;padding:calc(env(safe-area-inset-top) + 10px) 16px 10px;max-width:1400px;margin:0 auto}.topbarGreeting{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;width:100%}.topbarGreeting span{font-size:14px;font-weight:600;white-space:normal;overflow-wrap:anywhere;text-align:right}.topbarActions{display:flex;align-items:center;gap:6px;flex-shrink:0}.topbarRow h1{margin:0;font-size:18px;font-weight:700;background:linear-gradient(135deg,var(--primary),var(--secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;white-space:nowrap}@media (max-width: 480px){.topbarRow{padding:calc(env(safe-area-inset-top) + 12px) 12px 8px}.topbarGreeting{align-items:flex-start;flex-direction:column;gap:8px}.topbarGreeting span{text-align:left;font-size:12px}}.brand{display:flex;align-items:center;gap:12px}.logo{width:40px;height:40px;background:linear-gradient(135deg,var(--primary),var(--secondary));border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:20px;color:#fff}.brandTitle{display:flex;flex-direction:column;gap:2px}.brandTitle strong{font-size:16px;color:var(--text)}.brandTitle span{font-size:12px;color:var(--muted)}.pills{display:flex;gap:8px;align-items:center;overflow-x:auto;overflow-y:visible;width:100%;max-width:100%;padding:8px 0;margin:0;scrollbar-width:none;-webkit-overflow-scrolling:touch}.topbarNavArea{width:100%;min-width:0}.pills::-webkit-scrollbar{display:none}.settingsMenuWrap{position:relative;flex-shrink:0}.settingsDropdown{position:static;min-width:0;width:100%;margin-top:8px;display:flex;flex-direction:column;gap:4px;padding:8px;border-radius:var(--radius2);background:var(--bg1);border:1px solid var(--border2);box-shadow:var(--shadow)}.settingsItem{border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:10px;padding:8px 10px;text-align:left;cursor:pointer}@media (hover: hover) and (pointer: fine){.settingsItem:hover{border-color:var(--primary);background:rgba(var(--primary),.1)}}.pill{padding:8px 14px;border:1px solid var(--border);background:var(--card);color:var(--muted);border-radius:50px;cursor:pointer;font-size:13px;font-weight:500;transition:all .3s ease;white-space:nowrap;display:inline-block;flex-shrink:0}.pillContainer{display:flex;gap:12px;flex-wrap:wrap;align-items:center}@media (hover: hover) and (pointer: fine){.pill:hover{border-color:var(--primary);color:var(--text);background:rgba(var(--primary),.1)}}.pillActive{border-color:var(--primary)!important;background:linear-gradient(135deg,rgba(var(--primary),.2),rgba(var(--secondary),.1))!important;color:var(--primary)!important}.btn{padding:12px 20px;border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:var(--radius2);cursor:pointer;font-size:14px;font-weight:500;transition:all .3s ease;font-family:inherit}@media (hover: hover) and (pointer: fine){.btn:hover{border-color:var(--primary);background:rgba(var(--primary),.1);transform:translateY(-2px)}}.btn:active{transform:translateY(0);opacity:.85}.btnPrimary{border-color:var(--primary)!important;background:linear-gradient(135deg,var(--primary),var(--primary2))!important;color:#fff!important;box-shadow:0 8px 20px rgba(var(--primary),.3)!important}@media (hover: hover) and (pointer: fine){.btnPrimary:hover{box-shadow:0 12px 30px rgba(var(--primary),.4)!important}}.btnDanger{border-color:var(--danger)!important;background:rgba(var(--danger),.1)!important;color:var(--danger)!important}@media (hover: hover) and (pointer: fine){.btnDanger:hover{background:rgba(var(--danger),.2)!important;box-shadow:0 8px 20px rgba(var(--danger),.2)!important}}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:24px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 8px 32px #0000001a;transition:all .3s ease}.card:hover{border-color:var(--border2);box-shadow:0 12px 48px #00000026}.cardHeader{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.cardHeader h2{margin:0;font-size:22px;font-weight:700;color:var(--text)}.cardHeader p{margin:0;font-size:13px;color:var(--muted)}.cardBody{display:flex;flex-direction:column;gap:16px}.input,textarea,select{width:100%;padding:12px 16px;background:var(--card2);border:1px solid var(--border);border-radius:var(--radius2);color:var(--text);font-family:inherit;font-size:14px;transition:all .3s ease}select option{background:var(--bg0);color:var(--text)}.input:focus,textarea:focus,select:focus{outline:none;border-color:var(--primary);background:rgba(var(--primary),.05);box-shadow:0 0 0 3px rgba(var(--primary),.1)}textarea{resize:vertical;min-height:100px}.grid1{display:grid;grid-template-columns:1fr;gap:20px;max-width:1200px;margin:0 auto;padding:16px}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr));gap:20px;max-width:1400px;margin:0 auto;padding:16px}.shopping-page{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;max-width:1200px;margin:0 auto;padding:16px;width:100%;overflow-x:hidden}.standard-page{width:100%;max-width:1200px;margin:0 auto;padding:16px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.shopIconRow{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}@media (max-width: 640px){.grid2,.shopping-page{grid-template-columns:1fr;padding:10px;gap:12px}.standard-page{padding:10px}.grid1{padding:10px;gap:12px}.card{padding:14px}.cardBody{gap:10px}.btn{padding:9px 14px;font-size:13px}.pills{padding:6px 10px;margin:0 -10px;width:calc(100% + 20px)}}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:20px}.day-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius2);padding:12px;min-height:120px;display:flex;flex-direction:column;gap:8px;transition:all .3s ease;cursor:default}.day-card.today{border:2px solid var(--primary);background:#7c5cff14}@media (max-width: 640px){.calendar-page,.calendar-page .card,.calendar-page .cardBody{width:100%;max-width:100%;overflow-x:hidden}.calendar-toolbar{display:grid;grid-template-columns:1fr;align-items:stretch!important;width:100%;max-width:100%;min-width:0;gap:8px!important;overflow:hidden}.calendar-view-switch,.calendar-nav-actions{display:grid;width:100%;margin-left:0!important;gap:6px!important;min-width:0}.calendar-view-switch{grid-template-columns:minmax(0,1fr)}.calendar-nav-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.calendar-view-switch .pill,.calendar-nav-actions .btn{width:100%;min-width:0;text-align:center}.calendar-grid{display:flex!important;flex-direction:row!important;gap:8px!important;overflow-x:auto!important;overflow-y:hidden;-webkit-overflow-scrolling:touch;width:100%;max-width:100%;margin-bottom:20px}.day-card{flex:0 0 auto;min-width:144px;max-width:62vw}.month-weekdays,.month-grid{width:100%;max-width:100%}.month-day-cell{min-width:0}}@media (max-width: 480px){.day-card{min-width:124px;max-width:60vw}.calendar-nav-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-nav-actions .btn:last-child{grid-column:1 / -1}}#tracker-map{width:100%;height:60vh;border-radius:12px;overflow:hidden}.tracker-legend{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}.legend-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;background:#ffffff05;cursor:pointer;border:1px solid rgba(255,255,255,.03)}.swatch{width:14px;height:14px;border-radius:4px;display:inline-block;border:1px solid rgba(0,0,0,.1)}.legend-name{font-size:13px;color:var(--muted)}.day-card:hover{border-color:var(--primary);background:rgba(var(--primary),.05)}.day-label{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.month-weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.month-weekdays{margin-bottom:10px}.month-weekday{text-align:center;font-weight:700;padding:8px;font-size:12px}.month-day-cell{min-height:80px}.month-day-number{font-weight:700;margin-bottom:4px;font-size:12px}.month-day-events{display:flex;flex-direction:column;gap:2px;overflow:hidden}.month-more-events{font-size:9px;color:#aaa}.year-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;width:100%;max-width:100%}.year-month-card{min-width:0}@media (max-width: 640px){.month-weekdays,.month-grid{gap:3px}.month-weekday{padding:5px 2px;font-size:10px}.month-day-cell{min-height:68px;padding:6px!important}.month-day-number{margin-bottom:3px;font-size:11px}.month-day-cell .event-chip{font-size:9px!important;padding:2px 3px!important}.month-more-events{font-size:8px}.year-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}@media (max-width: 480px){.month-weekdays,.month-grid{gap:2px}.month-weekday{font-size:9px;padding:4px 1px}.month-day-cell{min-height:60px;padding:5px!important}.month-day-number{font-size:10px}.month-day-cell .event-chip{font-size:8px!important;padding:1px 3px!important}.year-grid{grid-template-columns:1fr}}.event-chip{background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff;padding:6px 10px;border-radius:6px;font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #0003}.event-chip:hover{filter:brightness(1.15);transform:translateY(-2px);box-shadow:0 6px 16px #0000004d}.event-chip:active{transform:scale(.95)}.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.item{background:var(--card2);border:1px solid var(--border);border-radius:var(--radius2);padding:16px;display:flex;align-items:center;flex-wrap:wrap;gap:16px;transition:all .3s ease;cursor:pointer}.shopping-page .card,.shopping-page .cardBody{width:100%;max-width:100%;overflow-x:hidden}.shopping-page .item>*{min-width:0}.shopping-page .shopping-item-name{flex:1 1 220px;min-width:160px}.shopping-page .shopping-category-select{width:12ch;min-width:11ch;max-width:12ch;flex:0 0 12ch;font-size:13px}.shopping-page .shopping-item-actions{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto}.shopping-page .shopping-delete-btn{white-space:nowrap;flex:0 0 auto;padding:8px 12px}@media (max-width: 640px){.shopping-page .shopping-item-actions{width:100%;justify-content:flex-start}.shopping-page .shopping-category-select{width:100%;min-width:0;max-width:100%;flex:1 1 auto}}@media (hover: hover) and (pointer: fine){.item:hover{border-color:var(--primary);background:rgba(var(--primary),.05)}}.badge{display:inline-block;padding:4px 12px;background:var(--card);border:1px solid var(--border);border-radius:20px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.badgeAdmin{background:rgba(var(--danger),.2)!important;border-color:var(--danger)!important;color:var(--danger)!important}.mini{font-size:12px;color:var(--muted2);line-height:1.5}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg1)}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--primary)}.msgRow{display:flex;align-items:flex-end;gap:12px;margin-bottom:16px;animation:slideUp .3s ease-out}.msgRowMine{justify-content:flex-end}.msgBubble{padding:12px 16px;border-radius:18px;word-wrap:break-word;max-width:70%;box-shadow:0 2px 8px #00000026;transition:all .2s ease}.msgTheirs{background:var(--card);color:var(--text);border:1px solid var(--border);border-bottom-left-radius:4px}.msgTheirs:hover{background:var(--card2);box-shadow:0 4px 12px #0003}.msgMine{background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff;border-bottom-right-radius:4px}.msgMine:hover{filter:brightness(1.1);box-shadow:0 4px 12px #00000040}.msgMeta{font-size:.75rem;opacity:.7;margin-bottom:4px}.msgText{line-height:1.4}.avatar{width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0}.loading{display:inline-block;width:20px;height:20px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.banner{background:#ff4d6d26;border-left:4px solid var(--danger);padding:16px 20px;margin:20px;border-radius:var(--radius2);color:var(--text);font-size:14px;box-shadow:0 4px 12px #ff4d6d1a}.banner.bannerSuccess{background:#4caf5026;border-left-color:var(--success);box-shadow:0 4px 12px #4caf501a}.form-box{background:var(--card2);border:1px solid var(--border);padding:16px;border-radius:var(--radius2);margin-bottom:20px}.rowWrap{display:flex;flex-wrap:wrap;gap:12px}.composer{display:flex;gap:16px;align-items:flex-end;padding-top:16px;border-top:1px solid var(--border);margin-top:20px}.composer .input{flex:1;margin:0}.composer .btn{flex-shrink:0;height:44px;white-space:nowrap}
