:root{--bg-deep:#0a0806;--bg:#12100a;--panel:#1b1710;--panel-2:#241f16;--panel-3:#2e2719;--rule:#3a3124;--rule-2:#574726;--accent:#e0b23c;--accent-bright:#f2cd63;--accent-dim:#8a6f26;--accent-wash:#e0b23c1f;--text:#e2dbcb;--text-muted:#9b9483;--on-accent:#17120a;--danger:#d9796a;--success:#7fae6a;--shadow:0 14px 38px #0000008c;--scrim:#0000009e;--ring:#00000073;--tint:18%;--tint-soft:13%;--tint-edge:40%;--radius:12px;--radius-sm:8px;--font-display:"Cinzel", "Trajan Pro", "Palatino Linotype", Palatino, Georgia, serif;--font-body:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg-deep:#cec0a1;--bg:#ece2ca;--panel:#e5dabe;--panel-2:#dccfaf;--panel-3:#d2c39f;--rule:#b9a67c;--rule-2:#94794c;--accent:#6e5314;--accent-bright:#987726;--accent-dim:#a98a44;--accent-wash:#6e531424;--text:#221c12;--text-muted:#5c5241;--on-accent:#fbf5e6;--danger:#9c3323;--success:#416632;--shadow:0 14px 38px #5a462333;--scrim:#281e0f73;--ring:#3c2d1459;--tint:34%;--tint-soft:26%;--tint-edge:62%;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{background:var(--bg-deep);color:var(--text);font:16px/1.5 var(--font-body);-webkit-text-size-adjust:100%;margin:0}h1,h2,h3{font-family:var(--font-display);font-variant:small-caps;letter-spacing:.045em;color:var(--accent);margin:0;font-weight:600}h1{font-size:1.35rem}h2{font-size:1.1rem}h3{letter-spacing:.09em;color:var(--text-muted);font-size:.82rem}p{margin:.25rem 0}.muted{color:var(--text-muted)}.small{font-size:.8rem}button{cursor:pointer}.primary,.ghost{border:1px solid var(--rule-2);border-radius:var(--radius-sm);background:var(--panel-2);color:var(--text);font-family:var(--font-display);font-variant:small-caps;letter-spacing:.06em;min-height:2.4rem;padding:.55rem 1rem;font-size:.9rem}.primary{border-color:var(--accent-dim);background:linear-gradient(180deg, var(--accent-bright), var(--accent));color:var(--on-accent);font-weight:700}.primary:hover{background:var(--accent-bright)}.ghost:hover{border-color:var(--accent-dim);color:var(--accent)}a.primary,a.ghost{align-items:center;text-decoration:none;display:inline-flex}.primary:disabled,.ghost:disabled{opacity:.45;cursor:not-allowed}.ghost.danger{color:var(--danger);background:0 0;border-color:#0000}.ghost.danger:hover{border-color:var(--danger);color:var(--danger)}.danger{color:var(--danger)}.wide{width:100%;margin-top:.5rem}.icon-button{border-radius:var(--radius-sm);width:2.25rem;height:2.25rem;color:var(--text-muted);background:0 0;border:none;font-size:1.25rem;line-height:1}.icon-button:hover{background:var(--panel-2);color:var(--accent)}.card{border:1px solid var(--rule);border-radius:var(--radius);background:var(--panel);flex-direction:column;gap:.75rem;padding:1rem;display:flex}label{font-family:var(--font-display);font-variant:small-caps;letter-spacing:.07em;color:var(--text-muted);flex-direction:column;gap:.3rem;font-size:.8rem;display:flex}input,select,textarea{border:1px solid var(--rule);border-radius:var(--radius-sm);background:var(--panel-2);color:var(--text);font:inherit;font-family:var(--font-body);font-variant:normal;letter-spacing:normal;padding:.6rem .7rem;font-size:1rem}input:focus,select:focus,textarea:focus{border-color:var(--accent-dim);box-shadow:0 0 0 2px var(--accent-wash);outline:none}textarea{resize:vertical}::placeholder{color:var(--text-muted);opacity:.7}.checkbox{color:var(--text);font-family:var(--font-body);font-variant:normal;letter-spacing:normal;flex-direction:row;align-items:center;gap:.5rem;font-size:.88rem}.checkbox input{width:1.15rem;height:1.15rem;accent-color:var(--accent);flex:none;padding:0}.field-row{align-items:flex-end;gap:.5rem;display:flex}.grow{flex:1}.form{flex-direction:column;gap:.8rem;margin-top:.75rem;display:flex}.form-actions{justify-content:flex-end;gap:.5rem;margin-top:.25rem;display:flex}.form-actions.spread{justify-content:space-between}.segmented{border:none;gap:.3rem;margin:0;padding:0;display:flex}.segmented legend{font-family:var(--font-display);font-variant:small-caps;letter-spacing:.07em;color:var(--text-muted);padding:0;font-size:.8rem}.segment,.day{border:1px solid var(--rule);border-radius:var(--radius-sm);background:var(--panel-2);min-height:2.3rem;color:var(--text-muted);font-family:var(--font-display);font-variant:small-caps;letter-spacing:.05em;flex:1;padding:.45rem .4rem;font-size:.85rem}.segment.active,.day.active{border-color:var(--accent-dim);background:var(--accent-wash);color:var(--accent);font-weight:700}.error{color:var(--danger);font-size:.85rem}.error.banner{border:1px solid color-mix(in srgb, var(--danger) 40%, transparent);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--danger) 12%, transparent);margin:.5rem 0;padding:.55rem .75rem}.modal-backdrop{z-index:30;background:var(--scrim);justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal{width:min(32rem,100%);max-height:92vh;padding:1.1rem 1.1rem calc(1.1rem + env(safe-area-inset-bottom));border:1px solid var(--rule-2);border-radius:var(--radius) var(--radius) 0 0;background:var(--panel);box-shadow:var(--shadow);border-bottom:none;overflow-y:auto}@media (width>=640px){.modal-backdrop{align-items:center}.modal{border-bottom:1px solid var(--rule-2);border-radius:var(--radius)}}.modal-head{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.5rem;padding-bottom:.6rem;display:flex}.window{border:1px solid var(--rule-2);border-radius:var(--radius);background:var(--bg);width:calc(100vw - 2.5rem);max-width:calc(100vw - 2.5rem);height:calc(100vh - 2.5rem);box-shadow:var(--shadow);resize:none;margin:1.25rem auto;overflow:auto}@media (width<=639px){.window{width:100%;max-width:100%;height:auto;min-height:100vh;box-shadow:none;border:none;border-radius:0;margin:0}}.app{padding:0 .9rem env(safe-area-inset-bottom)}.app-head{align-items:center;gap:.55rem;padding:.9rem .15rem .7rem;display:flex}.crest{width:1.4rem;height:1.4rem;color:var(--accent);flex:none}.head-action{margin-left:auto}.theme-toggle{border:1px solid var(--rule-2);padding:0}.theme-toggle svg{width:1.1rem;height:1.1rem;margin:0 auto}.signin{max-width:22rem;margin:0 auto}.signin-footer{text-align:center;margin-top:1.1rem}.signin-footer a{color:var(--accent)}.changelog{max-width:42rem;margin:0 auto}.release{margin:0 0 1.6rem}.release h2{margin:0}.release p{margin:.1rem 0 .5rem}.release ul{flex-direction:column;gap:.35rem;margin:0;padding-left:1.1rem;display:flex}@media (width<=639px){.app{padding:0 .6rem env(safe-area-inset-bottom)}.app-head{padding:.6rem .1rem .5rem}.app-head h1{font-size:1.15rem}.calendar-head{margin:.6rem 0 .45rem}}.tabs{border-bottom:1px solid var(--rule-2);scrollbar-width:none;align-items:center;gap:.3rem;padding-bottom:.4rem;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab-wrap{align-items:center;display:flex;position:relative}.tab{border-radius:var(--radius-sm);min-height:2.3rem;color:var(--text-muted);font-family:var(--font-display);font-variant:small-caps;letter-spacing:.05em;white-space:nowrap;background:0 0;border:1px solid #0000;align-items:center;gap:.4rem;padding:.4rem .7rem;font-size:.92rem;display:flex}.tab:hover{color:var(--accent)}.tab.active{border-color:var(--accent-dim);background:var(--accent-wash);color:var(--accent);font-weight:700}.tab.calculator{margin-left:auto}.tab.add{padding:.3rem .65rem;font-size:1.15rem}.dot{width:9px;height:9px;box-shadow:0 0 0 1px var(--ring);border-radius:50%;flex:none}.dot-stack{flex:none;display:flex}.dot-stack .dot:not(:first-child){margin-left:-4px}.tab-menu-button{color:var(--text-muted);background:0 0;border:none;padding:.3rem .35rem;font-size:1rem}.tab-menu-button:hover{color:var(--accent)}.tab-rename{width:9rem;margin:.2rem}.person-panel{border:1px solid var(--rule-2);border-radius:var(--radius);background:var(--panel);flex-direction:column;gap:.7rem;margin-top:.6rem;padding:.7rem .8rem;display:flex}.person-panel-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.person-panel-head strong{font-family:var(--font-display);font-variant:small-caps;letter-spacing:.05em;color:var(--accent)}.person-panel-head .tab-rename{margin:0}.swatches{flex-wrap:wrap;gap:.45rem;display:flex}.swatch{border:1px solid var(--ring);border-radius:50%;width:1.7rem;height:1.7rem;padding:0}.swatch.current{outline:2px solid var(--accent);outline-offset:2px}.swatch.taken{opacity:.35}.row-actions{flex:none;gap:.25rem;display:flex}.calendar-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin:.9rem 0 .6rem;display:flex}.calendar-nav{align-items:center;gap:.25rem;display:flex}.calendar-nav h2{text-align:center;min-width:10rem}.head-right{align-items:center;gap:.5rem;display:flex}.view-switch{gap:.25rem;display:flex}.view-switch .segment{flex:none;min-height:2.1rem;padding:.3rem .6rem;font-size:.82rem}@media (width<=639px){.calendar-nav h2{min-width:7rem;font-size:1rem}.head-right{justify-content:space-between;width:100%}}.weekday-row,.grid{grid-template-columns:repeat(7,1fr);gap:3px;display:grid}.weekday{color:var(--text-muted);font-family:var(--font-display);font-variant:small-caps;letter-spacing:.1em;text-align:center;padding:.2rem 0;font-size:.72rem}.cell{border:1px solid var(--rule);border-radius:var(--radius-sm);background:var(--panel);min-height:6.5rem;color:inherit;font:inherit;text-align:left;cursor:pointer;flex-direction:column;gap:2px;padding:4px;display:flex}.cell:hover{border-color:var(--rule-2)}.cell.outside{opacity:.4}.cell.today{border-color:var(--accent-dim);box-shadow:inset 0 0 0 1px var(--accent-dim)}.date-number{font-family:var(--font-display);color:var(--text-muted);font-size:.8rem}.cell.today .date-number{color:var(--accent);font-weight:700}.slot{border-top:1px dotted var(--rule);flex-direction:column;gap:2px;min-height:1.1rem;padding-top:1px;display:flex}.slot-label{color:var(--text-muted);font-family:var(--font-display);font-variant:small-caps;letter-spacing:.08em;font-size:.6rem}@media (width<=639px){.weekday-row,.grid{gap:2px}.cell{border-radius:6px;gap:1px;min-height:4rem;padding:2px}.date-number{font-size:.7rem}.slot{border-top:none;min-height:0}.slot-label{font-size:.55rem}}.chip{white-space:normal;overflow-wrap:anywhere;border:1px solid #0000;border-radius:5px;padding:2px 5px;font-size:.68rem;line-height:1.35;display:block}button.chip{width:100%;color:inherit;text-align:left;font-family:inherit;font-size:.68rem;line-height:1.35}.event-chip{border-color:var(--rule);background:var(--panel-2)}.chip.tinted{background:color-mix(in srgb, var(--chip) var(--tint-soft), transparent);border-color:color-mix(in srgb, var(--chip) var(--tint-edge), transparent)}.chip.event-chip.tinted,.tg-event.tinted{background:color-mix(in srgb, var(--chip) var(--tint), transparent);border-color:var(--chip)}.wd-entry.tinted{background:color-mix(in srgb, var(--chip) var(--tint), transparent);border-left-color:var(--chip)}.event-chip:hover{border-color:var(--rule-2)}.event-chip.all-day{font-weight:700}.chip-time{color:var(--accent);font-variant-numeric:tabular-nums}.chip-owner{color:var(--text-muted);font-size:.6rem;display:block}@media (width<=639px){.chip,button.chip{padding:1px 3px;font-size:.6rem}}.time-grid{border:1px solid var(--rule);border-radius:var(--radius);background:var(--panel);margin-top:.5rem;overflow-x:auto}.tg-scroll{flex-direction:column;min-width:100%;display:flex}.tg-row{display:flex}.tg-gutter{z-index:2;background:var(--panel);flex:0 0 3.6rem;position:sticky;left:0}.tg-day-head{border:none;border-left:1px solid var(--rule);min-width:0;color:var(--text-muted);font-family:var(--font-display);font-variant:small-caps;letter-spacing:.05em;background:0 0;flex:1;padding:.45rem .2rem;font-size:.8rem}.tg-day-head.today{color:var(--accent);font-weight:700}.tg-allday{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);min-height:2rem}.tg-gutter-label{color:var(--text-muted);font-family:var(--font-display);font-variant:small-caps;letter-spacing:.08em;text-align:right;padding:.4rem .35rem;font-size:.66rem}.tg-allday-cell{border-left:1px solid var(--rule);flex-direction:column;flex:1;gap:2px;min-width:0;padding:2px;display:flex}.tg-dose-row{flex-wrap:wrap;align-items:baseline;gap:3px;display:flex}.tg-body{max-height:calc(100vh - 16rem);padding-top:.45rem;display:flex;overflow-y:auto}.tg-hours{flex-direction:column;display:flex}.tg-hour-label{height:var(--hour-height);color:var(--text-muted);font-family:var(--font-display);text-align:right;flex:none;padding-right:.4rem;font-size:.68rem;transform:translateY(-.45em)}.tg-columns{flex:1;display:flex}.tg-col{border-left:1px solid var(--rule);background:repeating-linear-gradient(to bottom, var(--rule) 0 1px, transparent 1px var(--hour-height));cursor:pointer;flex:1;min-width:0;position:relative}.tg-col.today{background-color:var(--accent-wash)}.tg-event{color:var(--text);font:inherit;font-family:var(--font-body);text-align:left;border:1px solid;border-left-width:3px;border-radius:6px;flex-direction:column;gap:1px;padding:2px 4px;font-size:.68rem;line-height:1.25;display:flex;position:absolute;overflow:hidden}.tg-event.one-line{padding-top:1px;padding-bottom:1px}.tg-event.one-line .tg-event-meta,.tg-event.one-line .tg-event-notes{display:none}.tg-event-title{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.tg-event-meta,.tg-event-notes{color:var(--text-muted);text-overflow:ellipsis;font-size:.62rem;overflow:hidden}.tg-event-meta{white-space:nowrap}.week-list{flex-direction:column;gap:.4rem;margin-top:.5rem;display:flex}.week-day{border:1px solid var(--rule);border-radius:var(--radius-sm);background:var(--panel);gap:.5rem;padding:.45rem .5rem;display:flex}.week-day.today{border-color:var(--accent-dim);background:var(--accent-wash)}.week-day-head{color:var(--text-muted);font-family:var(--font-display);font-variant:small-caps;letter-spacing:.05em;text-align:left;background:0 0;border:none;flex-direction:column;flex:0 0 3.6rem;align-items:flex-start;padding:0;display:flex}.week-day.today .week-day-head{color:var(--accent)}.wd-name{font-size:.78rem}.wd-date{font-size:1.15rem;font-weight:700}.week-day-body{flex-direction:column;flex:1;gap:.25rem;min-width:0;display:flex}.wd-entry{border:1px solid var(--rule);border-left:3px solid var(--rule-2);background:var(--panel-2);width:100%;color:var(--text);font-family:var(--font-body);text-align:left;border-radius:6px;align-items:baseline;gap:.45rem;padding:.3rem .45rem;font-size:.85rem;display:flex}.wd-entry.all-day .wd-what{font-weight:700}.wd-when{color:var(--text-muted);font-variant-numeric:tabular-nums;flex:0 0 3.6rem;font-size:.72rem}.wd-what{overflow-wrap:anywhere;flex:1;min-width:0}.wd-empty{color:var(--text-muted);font-size:.85rem}.page-actions{justify-content:center;padding:1rem 0 2rem;display:flex}.legend{flex-wrap:wrap;gap:.9rem}.legend-item{color:var(--text-muted);align-items:center;gap:.35rem;font-size:.85rem;display:flex}.empty{text-align:center;padding:3.5rem 1rem}.day-slot{margin-bottom:1rem}.dose-list,.schedule-list,.account-list{flex-direction:column;gap:.4rem;margin:.45rem 0;padding:0;list-style:none;display:flex}.dose-list li,.account-list li,.schedule-list li{border:1px solid var(--rule);border-radius:var(--radius-sm);background:var(--panel-2);justify-content:space-between;align-items:center;gap:.5rem;padding:.55rem .65rem;display:flex}.dose-list li div,.account-list li div:first-child,.schedule-list li div:first-child{flex-direction:column;min-width:0;display:flex}.account-list input{width:9rem}.owner{color:var(--accent);font-weight:600}.weekdays{gap:.25rem;display:flex}.weekdays .day{padding:.4rem .1rem;font-size:.72rem}.calculator-page{flex-direction:column;gap:.8rem;padding:1rem 0 2rem;display:flex}.note{border:1px solid var(--rule);border-radius:var(--radius-sm);background:var(--panel-2);padding:.65rem .75rem;font-size:.9rem}.results dl{flex-direction:column;gap:.45rem;margin:0;display:flex}.results dl div{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.results dt{color:var(--text-muted);font-family:var(--font-display);font-variant:small-caps;letter-spacing:.06em;font-size:.82rem}.results dd{font-variant-numeric:tabular-nums;margin:0}.results .headline dd{color:var(--accent);font-family:var(--font-display);font-size:1.6rem;font-weight:700}.use-row{align-items:center;gap:.5rem;display:flex}.use-row select{flex:1}
