@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;700&family=Inter:wght@400;500;600;700&display=swap";*{box-sizing:border-box;margin:0}html{-webkit-text-size-adjust:100%}body{color:#18181b;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;background:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.card{width:100%;min-height:100dvh;padding-top:calc(1.25rem + env(safe-area-inset-top));padding-right:calc(1.25rem + env(safe-area-inset-right));padding-bottom:calc(1.75rem + env(safe-area-inset-bottom));padding-left:calc(1.25rem + env(safe-area-inset-left));background:#fff}@media (width>=640px){body{background:#f4f4f5;place-items:center;min-height:100vh;padding:2rem 1rem;display:grid}.card{border:1px solid #e4e4e7;border-radius:16px;max-width:430px;min-height:0;padding:2rem;box-shadow:0 1px 3px #0000000f}}h1{margin-bottom:.25rem;font-size:1.5rem}.subtitle{color:#71717a;margin-bottom:1.5rem}label{margin-bottom:.35rem;font-size:.9rem;font-weight:500;display:block}input{border:1px solid #d4d4d8;border-radius:10px;width:100%;min-height:48px;margin-bottom:1rem;padding:.6rem .85rem;font-size:1rem}input:focus{border-color:#0000;outline:2px solid #3b82f6}button{font:inherit;color:#fff;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background:#18181b;border:none;border-radius:10px;width:100%;min-height:50px;padding:.65rem 1rem;font-size:1rem;font-weight:500;transition:background .15s,transform 80ms,border-color .15s}button:active{transform:scale(.97)}button:disabled{cursor:wait;background:#a1a1aa;transform:none}button.secondary{color:#18181b;background:#fff;border:1px solid #d4d4d8;margin-bottom:.75rem}button.secondary:active{background:#f4f4f5}button.secondary:disabled{color:#a1a1aa;background:#f4f4f5}@media (hover:hover){button:hover{background:#3f3f46}button.secondary:hover{background:#f4f4f5}button:disabled:hover{background:#a1a1aa}}.divider{color:#a1a1aa;align-items:center;gap:.75rem;margin:1.25rem 0;font-size:.8rem;display:flex}.divider:before,.divider:after{content:"";border-top:1px solid #e4e4e7;flex:1}#message,#app-message,#person-message{color:#dc2626;min-height:1.2em;margin-top:1rem;font-size:.9rem}.fine-print{color:#a1a1aa;text-align:center;margin-top:.75rem;font-size:.8rem}.card-grid{grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:1rem;display:grid}.person-card{color:#18181b;background:#fafafa;border:1px solid #e4e4e7;border-radius:14px;min-height:96px;padding:1.5rem .5rem;font-size:1.05rem;font-weight:600}.person-card:active{background:#eeeeef}@media (hover:hover){.person-card:hover{background:#f4f4f5;border-color:#a1a1aa}}.category-row{gap:.6rem;margin-bottom:.65rem;display:flex}.category-open{text-align:left;color:#18181b;background:#fafafa;border:1px solid #e4e4e7;border-radius:12px;flex:1;min-height:56px;padding:.85rem 1rem;font-weight:500}.category-open:active{background:#eeeeef}.icon-button{background:#fff;border:1px solid #e4e4e7;border-radius:12px;flex:none;width:52px;min-height:56px;padding:0;font-size:1.05rem}.icon-button:active{background:#f4f4f5}@media (hover:hover){.category-open:hover{background:#f4f4f5;border-color:#a1a1aa}.icon-button:hover{background:#f4f4f5}}.view-header{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.edit-toggle{color:#3b82f6;background:0 0;border:none;width:auto;min-height:40px;padding:.35rem 1rem;font-size:.95rem}.edit-toggle:active{opacity:.6;transform:none}@media (hover:hover){.edit-toggle:hover{background:#eff6ff}}.category-icon{margin-right:.6rem;display:inline-block}.category-open.link-row{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}@media (hover:hover){.category-open.link-row:hover{background:#dbeafe;border-color:#93c5fd}}.entry-top{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.amount-chip{color:#166534;white-space:nowrap;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:999px;flex:none;padding:.15rem .6rem;font-size:.9rem;font-weight:600}.entry-meta{flex-wrap:wrap;gap:.5rem;margin-top:.45rem;display:flex}.meta-chip{color:#3f3f46;background:#fff;border:1px solid #d4d4d8;border-radius:999px;width:auto;min-height:34px;padding:.2rem .7rem;font-size:.8rem;font-weight:500}.meta-chip:active{background:#f4f4f5}.meta-chip.login-chip{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.meta-chip.login-chip:active{background:#dbeafe}.link-username{color:#3b5db8;margin-top:.15rem;font-size:.8rem;font-weight:400}.entry-body.entry-summary{background:#eff6ff;border-color:#bfdbfe}.add-row{gap:.6rem;margin-top:.5rem;display:flex}.add-row .secondary{margin-bottom:0;font-size:.95rem}.entry-body{background:#fafafa;border:1px solid #e4e4e7;border-radius:12px;flex-direction:column;flex:1;justify-content:center;min-height:56px;padding:.6rem 1rem;display:flex}.entry-title{font-weight:500}.entry-detail{color:#71717a;margin-top:.15rem;font-size:.85rem}.entry-done .entry-title{color:#a1a1aa;text-decoration:line-through}.back{color:#3b82f6;background:0 0;width:auto;min-height:44px;margin-bottom:.5rem;padding:.5rem .75rem .5rem 0;font-size:1rem}.back:active{opacity:.6;transform:none}@media (hover:hover){.back:hover{background:0 0;text-decoration:underline}}.chip-badge{color:#fff;vertical-align:1px;background:#dc2626;border-radius:999px;place-items:center;min-width:20px;height:20px;margin-left:.45rem;padding:0 5px;font-size:.72rem;font-weight:800;display:inline-grid}.summary-toggle{color:#71717a;text-align:left;letter-spacing:.03em;background:0 0;border:none;width:100%;min-height:42px;padding:.3rem .2rem;font-size:.85rem;font-weight:700}.summary-toggle:active{opacity:.6;transform:none}.person-select{gap:.5rem;margin:.9rem 0 .6rem;display:flex}.person-chip{color:#18181b;background:#fafafa;border:1px solid #e4e4e7;border-radius:12px;flex:1;min-height:48px;font-weight:700}.person-chip.active{color:#fff;background:#18181b;border-color:#18181b}.day-summary{border:1px solid #e4e4e7;border-radius:12px;margin-bottom:.4rem;overflow:hidden}.summary-row{color:#18181b;text-align:left;background:#fff;border:none;border-bottom:1px solid #f0f0f2;border-radius:0;justify-content:space-between;align-items:center;gap:.6rem;width:100%;min-height:48px;padding:.55rem .9rem;display:flex}.summary-row:last-child{border-bottom:none}.summary-name{font-weight:700}.summary-stats{color:#71717a;font-size:.8rem}.cal-nav{gap:.4rem;display:flex}.cal-nav .icon-button{width:44px;min-height:40px}#cal-grid{grid-template-columns:repeat(7,1fr);gap:4px;margin-top:.8rem;display:grid}.cal-dow{text-align:center;color:#a1a1aa;padding-bottom:2px;font-size:.7rem;font-weight:700}.cal-cell{aspect-ratio:1/1.05;color:#18181b;background:#fafafa;border:1px solid #eeeef0;border-radius:8px;flex-direction:column;justify-content:flex-start;align-items:center;gap:2px;width:100%;min-height:0;padding:4px 2px 2px;font-size:.85rem;display:flex}.cal-cell.cal-today{border-color:#16a34a;font-weight:700}.cal-cell.cal-selected{color:#fff;background:#18181b}.cal-num{line-height:1.2}.cal-dots{gap:2px;display:flex}.cal-dots i{border-radius:50%;width:5px;height:5px;display:block}#cal-agenda{margin-top:1rem}.today-box{display:block}.small-add{min-height:44px;margin:.4rem 0 .2rem;font-size:.9rem}.dinner-row{width:100%;margin-bottom:.6rem;font-size:1.05rem;font-weight:600}.meal-week{border:1px solid #e4e4e7;border-radius:12px;overflow:hidden}.meal-row{color:#18181b;text-align:left;background:#fff;border:none;border-bottom:1px solid #f0f0f2;border-radius:0;align-items:center;gap:.8rem;width:100%;min-height:44px;padding:.5rem .9rem;font-size:.9rem;display:flex}.meal-row:last-child{border-bottom:none}.meal-row.meal-today{background:#f0fdf4;font-weight:600}.meal-day{color:#71717a;flex:none;width:2.6rem;font-size:.8rem;font-weight:600}.meal-what{flex:1}.event-x{color:#a1a1aa;background:0 0;border:none;width:auto;min-height:30px;padding:0 .5rem;font-size:.85rem}.zone-button{text-align:left;color:#18181b;background:#fafafa;border:1px solid #e4e4e7;border-radius:14px;flex-direction:column;align-items:flex-start;gap:.2rem;min-height:78px;margin-bottom:.65rem;padding:1.1rem 1.2rem;display:flex}.zone-button:active{background:#eeeeef}@media (hover:hover){.zone-button:hover{background:#f4f4f5;border-color:#a1a1aa}}.zb-title{font-size:1.15rem;font-weight:700}.zb-sub{color:#71717a;font-size:.8rem;font-weight:400}.freq-label{letter-spacing:.04em;text-transform:uppercase;color:#71717a;margin:1.1rem 0 .5rem;font-size:.8rem;font-weight:700}.chip-row{flex-wrap:wrap;gap:.5rem;display:flex}.chip{color:#18181b;background:#fafafa;border:1px solid #e4e4e7;border-radius:999px;width:auto;min-height:44px;padding:.5rem .9rem;font-size:.88rem;font-weight:500}.chip:active{background:#eeeeef}@media (hover:hover){.chip:hover{background:#f4f4f5;border-color:#a1a1aa}}.coming-up-heading{color:#71717a;margin:1.25rem 0 .6rem;font-size:.9rem;font-weight:600}.coming-up-row{margin-bottom:.6rem}#form-overlay[hidden]{display:none}#form-overlay{z-index:50;background:#18181b73;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.form-modal{background:#fff;border-radius:16px;width:100%;max-width:400px;padding:1.5rem;box-shadow:0 10px 40px #0003}.form-modal h2{margin-bottom:1rem;font-size:1.2rem}.form-modal label{margin-top:.5rem}.label-hint{color:#a1a1aa;font-weight:400}.form-modal select{background:#fff;border:1px solid #d4d4d8;border-radius:10px;width:100%;min-height:48px;margin-bottom:1rem;padding:.6rem .65rem;font-size:1rem}.form-grid{grid-template-columns:1fr 1fr 1fr;gap:.6rem;display:grid}.form-grid input,.form-grid select{margin-bottom:.5rem}#form-error{color:#dc2626;min-height:1.2em;margin:.25rem 0 .5rem;font-size:.875rem}.form-buttons{gap:.6rem;display:flex}.form-buttons .secondary{margin-bottom:0}.placeholder{color:#a1a1aa;text-align:center;border:1.5px dashed #d4d4d8;border-radius:12px;margin-top:1rem;padding:3rem 1rem;font-size:.95rem}.calendar-big{margin-bottom:.9rem}.icon-palette{flex-wrap:wrap;gap:.4rem;margin-bottom:1rem;display:flex}.icon-choice{background:#fafafa;border:1px solid #e4e4e7;border-radius:10px;width:auto;min-width:42px;min-height:42px;padding:0;font-size:1.15rem}.icon-choice.chosen{background:#18181b;border-color:#18181b}#form-icon{text-align:center;font-size:1.3rem}:root{--ink:#07182e;--deep:#073c6b;--cobalt:#086eb8;--cyan:#15cfe3;--teal:#20d5c2;--pink:#f02e91;--coral:#ff5b70;--lavender:#b79ddf;--peach:#f5a6b5;--cream:#ffe9a6;--paper:#fff7e4;--paper-bright:#fffdf6;--ink-12:#07182e1f;--ink-25:#07182e40;--font-display:"Space Grotesk", -apple-system, sans-serif;--font-ui:"Inter", -apple-system, sans-serif}body{font-family:var(--font-ui);color:var(--ink);background-color:#0000;background-image:url(/city-scene.svg?v=15),radial-gradient(2px 2px at 12% 12%,#fff 50%,#0000 51%),radial-gradient(1.5px 1.5px at 78% 6%,#fff 50%,#0000 51%),radial-gradient(1.5px 1.5px at 55% 18%,#ffffffe6 50%,#0000 51%),radial-gradient(2px 2px at 90% 24%,#fffc 50%,#0000 51%),repeating-linear-gradient(0deg,#0000 0 52px,#15cfe30b 52px 53px),repeating-linear-gradient(90deg,#0000 0 52px,#15cfe30b 52px 53px),linear-gradient(#07182e 0%,#0a2f63 38%,#2c4b8f 62%,#7c63a8 78%,#c86f95 90%,#f5a6b5 100%);background-position:bottom,0 0,0 0,0 0,0 0,0 0,0 0,0 0;background-repeat:no-repeat,repeat,repeat,repeat,repeat,repeat,repeat,repeat;background-size:100%,auto,auto,auto,auto,auto,auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box,padding-box,padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box,border-box,border-box,border-box,border-box}.card{background:var(--paper);position:relative;overflow:hidden}.card:before{content:"";border-bottom:2.5px solid var(--ink);background:url(/city-strip.svg?v=15) bottom/cover no-repeat,linear-gradient(#0a2f63 0%,#40549c 55%,#9b74ae 82%,#f5a6b5 100%);height:128px;margin:-1.25rem -1.25rem .9rem;display:block}@media (width>=640px){.card{border:2px solid var(--ink);border-radius:18px;box-shadow:8px 8px #07182e8c}.card:before{margin:-2rem -2rem 1.1rem}}h1,h2,.zb-title,.cal-num,#timer-display{font-family:var(--font-display);color:var(--ink);letter-spacing:-.01em}.subtitle{color:var(--deep);opacity:.75}.fine-print{color:var(--deep);opacity:.6}.freq-label,.coming-up-heading{color:var(--cobalt);align-items:center;gap:.45rem;display:flex}.freq-label:before,.coming-up-heading:before{content:"";background:var(--cyan);border:1px solid var(--ink);border-radius:2px;width:4px;height:14px}.person-card,.category-open,.entry-body,.zone-button,.chip,.person-chip,.icon-button,.meal-week,.day-summary,.summary-row,.meal-row,.cal-cell{background:var(--paper-bright);color:var(--ink);border:2px solid var(--ink);transition:transform .15s,box-shadow .15s,background .15s}.entry-body,.meal-row,.summary-row{border-width:1.5px}.meal-row,.summary-row{border:none;border-bottom:1.5px solid var(--ink-12)}.zone-button,.person-card{box-shadow:4px 4px 0 var(--ink-25)}.zone-button:active,.person-card:active{box-shadow:1px 1px 0 var(--ink-25);background:var(--paper);transform:translate(3px,3px)}@media (hover:hover){.zone-button:hover,.person-card:hover{background:var(--paper-bright);border-color:var(--ink);box-shadow:6px 6px 0 var(--ink-25);transform:translate(-1px,-2px)}}.zb-sub{color:var(--deep);opacity:.7}button{font-family:var(--font-ui)}button:not(.secondary):not(.chip):not(.person-chip):not(.icon-button):not(.category-open):not(.zone-button):not(.person-card):not(.back):not(.edit-toggle):not(.summary-toggle):not(.meal-row):not(.summary-row):not(.event-x):not(.meta-chip):not(.small-add):not(.cal-cell){background:var(--pink);color:#fff;border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink-25)}button:not(.secondary):not(.chip):not(.person-chip):not(.icon-button):not(.category-open):not(.zone-button):not(.person-card):not(.back):not(.edit-toggle):not(.summary-toggle):not(.meal-row):not(.summary-row):not(.event-x):not(.meta-chip):not(.small-add):not(.cal-cell):active{box-shadow:0 0 0 var(--ink-25);transform:translate(2px,2px)}@media (hover:hover){button:not(.secondary):not(.chip):not(.person-chip):not(.icon-button):not(.category-open):not(.zone-button):not(.person-card):not(.back):not(.edit-toggle):not(.summary-toggle):not(.meal-row):not(.summary-row):not(.event-x):not(.meta-chip):not(.small-add):not(.cal-cell):hover{background:#d81f7e}}button:disabled{background:var(--lavender);color:var(--ink);opacity:.7}.secondary,.small-add{background:var(--paper-bright);color:var(--ink);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink-12)}.secondary:active,.small-add:active{box-shadow:0 0 0 var(--ink-12);background:var(--paper);transform:translate(2px,2px)}@media (hover:hover){.secondary:hover,.small-add:hover{background:var(--paper)}button:disabled:hover{background:var(--lavender)}}.back,.edit-toggle,.summary-toggle{color:var(--cobalt);box-shadow:none;background:0 0;border:none}@media (hover:hover){.back:hover{color:var(--cyan);background:0 0}.edit-toggle:hover{background:#15cfe31f}}.chip{box-shadow:2px 2px 0 var(--ink-12);border-width:1.5px;border-radius:999px}.chip:active{background:var(--cream);box-shadow:none;transform:translate(1px,1px)}@media (hover:hover){.chip:hover{background:var(--paper);border-color:var(--ink)}}.person-chip{box-shadow:3px 3px 0 var(--ink-12);border-radius:12px}.person-chip.active{background:var(--ink);color:var(--cream);border-color:var(--ink)}.chip-badge{background:var(--coral);border:1.5px solid var(--ink)}.person-chip.active .chip-badge{background:var(--coral)}.amount-chip{background:var(--cream);color:var(--ink);border:1.5px solid var(--ink);font-family:var(--font-display);font-weight:700}.category-open.link-row{border-color:var(--cobalt);color:var(--deep);background:#e7fbfd}.category-open.link-row:active{background:#d2f6fa}@media (hover:hover){.category-open.link-row:hover{border-color:var(--cyan);background:#d2f6fa}}.link-username{color:var(--cobalt)}.meta-chip{background:var(--paper-bright);border:1.5px solid var(--ink);color:var(--ink)}.meta-chip.login-chip{border-color:var(--cobalt);color:var(--deep);background:#e7fbfd}.entry-body.entry-summary{background:var(--ink);border-color:var(--ink);box-shadow:inset 3px 0 0 var(--cyan)}.entry-body.entry-summary .entry-title{color:var(--cream)}.entry-body.entry-summary .entry-detail{color:#fff7e4cc}.entry-detail{color:var(--deep);opacity:.75}.entry-done .entry-title{color:var(--deep);opacity:.5}#message,#app-message,#person-message,#category-message,#form-error{color:var(--coral)}#message.success,#app-message.success{color:var(--teal)}input,select,.form-modal select{background:var(--paper-bright);color:var(--ink);border:2px solid var(--ink)}input:focus,select:focus{outline:3px solid var(--cyan);outline-offset:1px;border-color:var(--ink)}label{color:var(--deep)}.label-hint{color:var(--cobalt);opacity:.8}#form-overlay{background:#07182eb8}.form-modal{background:var(--paper);border:2px solid var(--ink);box-shadow:8px 8px #07182e80}.form-modal h2{font-family:var(--font-display)}.divider{color:var(--cobalt)}.divider:before,.divider:after{border-top:1.5px solid var(--ink-25)}.meal-week{border:2px solid var(--ink);border-radius:12px}.meal-row{background:var(--paper-bright)}.meal-row.meal-today{background:var(--cream)}.meal-day{color:var(--cobalt)}.dinner-row{background:var(--cream);border:2px solid var(--ink)}.dinner-row:active{background:#f7dd8c}.day-summary{border:2px solid var(--ink);border-radius:12px}.summary-row{background:var(--paper-bright)}.summary-row.active{background:var(--cream)}.summary-name{font-family:var(--font-display)}.summary-stats{color:var(--deep);opacity:.75}.cal-cell{border-width:1.5px;border-color:var(--ink-25);border-radius:8px}.cal-cell.cal-today{border-color:var(--cyan);border-width:2px}.cal-cell.cal-selected{background:var(--ink);color:var(--cream);border-color:var(--ink)}.cal-dow{color:var(--cobalt)}.dot-ev{background:var(--cobalt)}.dot-bill{background:var(--teal)}.dot-med{background:var(--lavender)}.cal-nav .icon-button{border-radius:8px}.coming-up-row{border-radius:10px}.event-x{color:var(--coral);box-shadow:none;background:0 0;border:none}.icon-button{box-shadow:2px 2px 0 var(--ink-12);border-width:1.5px;border-radius:10px}.icon-button:active{box-shadow:none;background:var(--paper);transform:translate(1px,1px)}@media (hover:hover){.icon-button:hover{background:var(--paper)}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.icon-choice{background:var(--paper-bright);border:1.5px solid var(--ink);box-shadow:2px 2px 0 var(--ink-12)}.icon-choice.chosen{background:var(--cream);border-color:var(--ink);box-shadow:0 0 0 2px var(--cyan)}
