:root{
  --bg:#f3f3ef;--surface:#fafaf7;--surface-2:#ecece7;--text:#151515;--muted:#74746f;--line:#d4d4cd;--strong:#1a1a18;--inverse:#f7f7f2;--accent:#5f665d;
  --grid:rgba(20,20,20,.05);--radius:12px;--radius-sm:9px;--safe-bottom:max(18px,env(safe-area-inset-bottom));
  font-family:Inter,-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif;
}
html[data-theme="dark"]{--bg:#111210;--surface:#181917;--surface-2:#232420;--text:#f1f1ea;--muted:#989a92;--line:#30312d;--strong:#efefe9;--inverse:#141512;--accent:#a9ada3;--grid:rgba(255,255,255,.045)}
html[data-theme="light"]{--bg:#f3f3ef;--surface:#fafaf7;--surface-2:#ecece7;--text:#151515;--muted:#74746f;--line:#d4d4cd;--strong:#1a1a18;--inverse:#f7f7f2;--accent:#5f665d;--grid:rgba(20,20,20,.05)}
html[data-theme="custom"][data-custom="plain"]{--bg:#f3f3ef;--surface:#fafaf7;--surface-2:#ecece7;--text:#151515;--muted:#73736d;--line:#d4d4cd;--strong:#191917;--inverse:#f8f8f4;--accent:#67675f;--grid:rgba(20,20,20,.04)}
html[data-theme="custom"][data-custom="mat"]{--bg:#e7ebe4;--surface:#f3f5f0;--surface-2:#dce2d8;--text:#162016;--muted:#697468;--line:#b8c2b5;--strong:#1c2a1d;--inverse:#f6f8f3;--accent:#6c7b6c;--grid:rgba(37,55,38,.085)}
html[data-theme="custom"][data-custom="dirtyblue"]{--bg:#dfe5e7;--surface:#edf1f2;--surface-2:#d2dcdf;--text:#182024;--muted:#657177;--line:#b7c3c7;--strong:#1b262c;--inverse:#f4f7f8;--accent:#687d86;--grid:rgba(33,53,61,.045)}
html[data-theme="custom"][data-custom="butter"]{--bg:#f1ecd2;--surface:#f8f4df;--surface-2:#e6dfbb;--text:#252116;--muted:#7c745b;--line:#d2c99f;--strong:#2a2519;--inverse:#fbf8e9;--accent:#8a7d50;--grid:rgba(76,65,28,.04)}
html[data-theme="custom"][data-custom="chocolate"]{--bg:#3a2f2a;--surface:#443731;--surface-2:#53423a;--text:#f3ece7;--muted:#c0aea4;--line:#645149;--strong:#f0e6df;--inverse:#332922;--accent:#c5aa99;--grid:rgba(255,255,255,.035)}
*{box-sizing:border-box}html,body{min-height:100%}body{margin:0;background:var(--bg);color:var(--text);min-height:100vh}html[data-custom="mat"] body{background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:24px 24px}
button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}input,select,textarea{appearance:none}.app-shell{max-width:760px;margin:0 auto;min-height:100vh;padding-bottom:106px}.topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:flex-end;padding:calc(18px + env(safe-area-inset-top)) 20px 14px;background:color-mix(in srgb,var(--bg) 91%,transparent);backdrop-filter:blur(18px);border-bottom:1px solid color-mix(in srgb,var(--line) 72%,transparent)}
h1,h2,h3,p{margin:0}h1{font-size:31px;letter-spacing:-.045em;font-weight:620}h2{font-size:25px;letter-spacing:-.035em;font-weight:620}h3{font-size:14px;font-weight:600;letter-spacing:-.01em}.eyebrow,.section-kicker{font-size:9px;letter-spacing:.18em;font-weight:730;color:var(--muted);margin-bottom:5px}.main-content{padding:20px}.icon-btn{border:1px solid var(--line);background:var(--surface);width:42px;height:42px;border-radius:50%;font-size:23px;line-height:1;box-shadow:none}.icon-btn.ghost{background:transparent}.bottom-nav{position:fixed;pointer-events:auto;isolation:isolate;left:50%;transform:translateX(-50%);bottom:0;z-index:30;width:min(760px,100%);display:grid;grid-template-columns:repeat(4,1fr);padding:8px 12px var(--safe-bottom);background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(22px);border-top:1px solid var(--line)}.nav-btn{position:relative;z-index:1;border:0;background:transparent;color:var(--muted);display:flex;flex-direction:column;gap:2px;align-items:center;font-size:10px}.nav-btn.active{color:var(--text)}.nav-icon{font-size:18px;height:22px}
.hero{position:relative;padding:20px 18px 18px;border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in srgb,var(--surface) 95%,transparent);overflow:hidden}.hero:before,.profile-hero:before{content:"";position:absolute;left:8px;top:8px;width:12px;height:12px;border-left:1px solid var(--accent);border-top:1px solid var(--accent);opacity:.5}.hero:after,.profile-hero:after{content:"";position:absolute;right:8px;bottom:8px;width:12px;height:12px;border-right:1px solid var(--accent);border-bottom:1px solid var(--accent);opacity:.5}.hero-next{display:flex;justify-content:space-between;gap:18px;align-items:end}.hero-name{font-size:28px;line-height:1.02;font-weight:620;letter-spacing:-.045em;margin-top:3px}.hero-event{font-size:12px;color:var(--muted);margin-top:7px}.hero-count{font-size:13px;font-weight:620;white-space:nowrap;border-left:1px solid var(--line);padding-left:15px}.hero-count strong{display:block;font-size:28px;letter-spacing:-.04em}.section{margin-top:28px}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:11px}.section-title{font-size:17px;font-weight:620;letter-spacing:-.025em}.meta{font-size:11px;color:var(--muted)}.list{display:flex;flex-direction:column;border-top:1px solid var(--line)}.list-row{display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:center;padding:13px 1px;border-bottom:1px solid var(--line)}.date-tile{width:40px;text-align:center;border-right:1px solid var(--line);padding-right:8px}.date-tile .d{font-size:19px;font-weight:620;line-height:1}.date-tile .m{font-size:8px;letter-spacing:.14em;color:var(--muted);margin-top:4px}.row-main .name{font-weight:600}.row-main .detail{color:var(--muted);font-size:11px;margin-top:4px}.tag{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:5px 8px;font-size:9px;line-height:1;background:transparent}.tag.memorial{border-style:dashed}.tag.pet{border-color:var(--accent)}.empty{padding:28px 14px;text-align:center;border:1px dashed var(--line);border-radius:var(--radius);color:var(--muted);font-size:12px;background:color-mix(in srgb,var(--surface) 55%,transparent)}
.btn-row{display:flex;gap:8px;flex-wrap:wrap}.primary-btn,.secondary-btn,.danger-btn{border-radius:999px;padding:12px 17px;font-weight:620}.primary-btn{border:1px solid var(--strong);background:var(--strong);color:var(--inverse)}.secondary-btn{background:transparent;border:1px solid var(--line)}.danger-btn{background:transparent;border:1px dashed var(--line)}.text-btn{border:0;background:transparent;padding:6px;color:var(--muted);font-size:11px}.search{width:100%;border:1px solid var(--line);background:var(--surface);padding:12px 14px;border-radius:999px;outline:none}.filter-row{display:flex;gap:6px;overflow:auto;padding:10px 0 2px;scrollbar-width:none}.filter-row::-webkit-scrollbar{display:none}.filter-chip{white-space:nowrap;border:1px solid var(--line);background:transparent;border-radius:999px;padding:7px 10px;font-size:10px;color:var(--muted)}.filter-chip.active{background:var(--strong);color:var(--inverse);border-color:var(--strong)}
.profile-index{margin-top:16px;border-top:1px solid var(--line)}.profile-card{width:100%;display:grid;grid-template-columns:48px 1fr auto;gap:13px;align-items:center;padding:15px 2px;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;color:inherit}.profile-mark{width:38px;height:38px;border:1px solid var(--line);border-radius:9px;display:grid;place-items:center;font-weight:650;position:relative}.profile-mark.pet:after{content:"PET";position:absolute;right:-6px;bottom:-5px;background:var(--bg);padding:1px 3px;font-size:6px;letter-spacing:.12em;color:var(--muted)}.profile-card .person-name{font-size:16px;font-weight:620;letter-spacing:-.02em}.profile-card .person-sub{font-size:10px;color:var(--muted);margin-top:4px}.profile-card .profile-side{text-align:right;font-size:9px;letter-spacing:.1em;color:var(--muted)}
.toggle{display:inline-grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);background:transparent;padding:3px;border-radius:999px}.toggle button{border:0;background:transparent;border-radius:999px;padding:7px 13px;font-size:10px;color:var(--muted)}.toggle button.active{background:var(--strong);color:var(--inverse)}.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px;gap:12px}.cal-nav{display:flex;align-items:center;gap:7px}.cal-nav button{border:1px solid var(--line);background:transparent;width:31px;height:31px;border-radius:50%;font-size:18px}.month-label{font-weight:620;min-width:116px;text-align:center;font-size:13px}.calendar-stage{touch-action:pan-y}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line);background:color-mix(in srgb,var(--surface) 80%,transparent)}.dow{padding:8px 2px;text-align:center;font-size:8px;letter-spacing:.11em;color:var(--muted);border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.day{min-height:75px;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:5px;background:transparent;text-align:left;color:inherit;position:relative}.day.out{opacity:.28}.day.selected{background:color-mix(in srgb,var(--surface-2) 72%,transparent)}.day.today .day-number{background:var(--strong);color:var(--inverse)}.day-number{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;font-size:10px}.event-dots{position:absolute;left:6px;bottom:7px;display:flex;gap:3px;flex-wrap:wrap;max-width:calc(100% - 12px)}.event-dot{width:4px;height:4px;border-radius:50%;background:var(--text)}.event-dot.memorial{background:transparent;border:1px solid var(--text)}.event-dot.pet{border-radius:1px;background:var(--accent)}.calendar-hint{text-align:center;font-size:9px;color:var(--muted);letter-spacing:.05em;margin:8px 0 0}.day-agenda{margin-top:18px;border-top:1px solid var(--line)}.agenda-date{display:flex;justify-content:space-between;align-items:end;padding:13px 1px 8px}.agenda-date strong{font-size:17px;letter-spacing:-.02em}.year-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.mini-month{border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 78%,transparent);border-radius:var(--radius-sm);padding:10px}.mini-title{font-size:11px;font-weight:620;margin-bottom:7px}.mini-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.mini-day{position:relative;text-align:center;font-size:8px;padding:4px 0;color:var(--muted)}.mini-day.has{color:var(--text);font-weight:650}.mini-day.has:after{content:"";width:3px;height:3px;background:var(--text);border-radius:50%;position:absolute;left:50%;bottom:0;transform:translateX(-50%)}
.settings-card{border-top:1px solid var(--line);margin-bottom:26px}.setting-row{padding:15px 0;border-bottom:1px solid var(--line)}.setting-row .label{font-weight:600}.setting-row .desc{font-size:10px;color:var(--muted);margin-top:4px;line-height:1.45}.segmented{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:10px}.segmented button{border:1px solid var(--line);background:transparent;border-radius:999px;padding:8px 4px;font-size:9px}.segmented button.active{background:var(--strong);color:var(--inverse)}.theme-card-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:10px}.theme-choice{border:1px solid var(--line);background:transparent;padding:10px;border-radius:var(--radius-sm);text-align:left;font-size:10px}.theme-choice.active{outline:1px solid var(--text);outline-offset:-2px}.theme-preview{height:42px;margin-top:7px;border-radius:6px;border:1px solid var(--line)}.preview-plain{background:#f3f3ef}.preview-mat{background-color:#e7ebe4;background-image:linear-gradient(rgba(37,55,38,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(37,55,38,.12) 1px,transparent 1px);background-size:10px 10px}.preview-dirtyblue{background:#dfe5e7}.preview-butter{background:#f1ecd2}.preview-chocolate{background:#3a2f2a}.reminder-grid{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.reminder-grid label{display:flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:999px;padding:7px 9px;font-size:10px}
.sheet-dialog{width:min(720px,100%);max-height:94vh;border:0;padding:0;background:transparent;margin:auto auto 0;color:var(--text)}.sheet-dialog::backdrop{background:rgba(0,0,0,.38);backdrop-filter:blur(3px)}.sheet{max-height:94vh;overflow:auto;background:var(--bg);border:1px solid var(--line);border-radius:22px 22px 0 0;padding:12px 18px calc(24px + env(safe-area-inset-bottom));box-shadow:0 -16px 60px rgba(0,0,0,.14)}html[data-custom="mat"] .sheet{background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:24px 24px}.sheet-handle{width:42px;height:3px;border-radius:999px;background:var(--line);margin:1px auto 14px}.sheet-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.form-section{background:color-mix(in srgb,var(--surface) 88%,transparent);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin:11px 0}.field{display:block;margin-bottom:12px}.field:last-child{margin-bottom:0}.field>span{display:block;font-size:10px;color:var(--muted);margin-bottom:6px}.field input,.field select,.field textarea,textarea,input,select{width:100%;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);padding:10px 11px;outline:none}.field textarea,textarea{resize:vertical}.date-parts{display:grid;grid-template-columns:70px 1.35fr 1fr;gap:7px}.check-row{display:flex;gap:8px;align-items:center;font-size:11px}.check-row input{width:auto;appearance:auto}.chip-grid{display:flex;gap:6px;flex-wrap:wrap}.chip-check input{display:none}.chip-check span{display:inline-flex;padding:7px 9px;border:1px solid var(--line);border-radius:999px;font-size:10px;color:var(--muted)}.chip-check input:checked+span{background:var(--strong);color:var(--inverse);border-color:var(--strong)}.profile-type-switch{display:grid;grid-template-columns:1fr 1fr;gap:6px}.profile-type-switch input{display:none}.profile-type-switch span{display:block;text-align:center;padding:9px;border:1px solid var(--line);border-radius:999px;font-size:10px;color:var(--muted)}.profile-type-switch input:checked+span{background:var(--strong);color:var(--inverse);border-color:var(--strong)}.section-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:11px}.stack{display:flex;flex-direction:column;gap:8px}.subcard{border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px;background:color-mix(in srgb,var(--bg) 90%,transparent)}.subcard-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.subcard .remove{float:right;border:0;background:transparent;color:var(--muted)}.hint{font-size:9px;color:var(--muted);margin-top:8px;line-height:1.5}.sheet-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:12px}.sheet-actions .danger-btn{margin-right:auto}.hidden{display:none!important}
.profile-hero{position:relative;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 90%,transparent);border-radius:var(--radius);padding:20px 18px}.profile-name{font-size:30px;font-weight:620;letter-spacing:-.045em}.profile-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:10px}.profile-block{border-top:1px solid var(--line);padding:14px 2px}.profile-block.wide{grid-column:1/-1}.profile-block p{font-size:12px;line-height:1.55;white-space:pre-wrap}.connection-link{border:0;background:transparent;text-align:left;padding:0;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}.data-line{display:flex;justify-content:space-between;gap:10px;font-size:11px;padding:8px 0;border-bottom:1px solid var(--line)}.data-line:last-child{border-bottom:0}.memory-line{padding:9px 0;border-bottom:1px solid var(--line)}.memory-line:last-child{border-bottom:0}.memory-text{font-size:12px;line-height:1.45}.memory-date{font-size:9px;color:var(--muted);margin-top:3px}
@media(max-width:540px){.main-content{padding:17px 14px}.topbar{padding-left:15px;padding-right:15px}.profile-grid{grid-template-columns:1fr}.profile-block.wide{grid-column:auto}.date-parts{grid-template-columns:58px 1fr 1fr}.subcard-grid{grid-template-columns:1fr}.segmented{grid-template-columns:repeat(2,1fr)}.calendar-toolbar{align-items:flex-start;flex-direction:column}.cal-nav{width:100%;justify-content:space-between}.month-label{flex:1}.day{min-height:68px}.theme-card-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:390px){.day{min-height:61px;padding:4px}.year-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.mini-month{padding:8px}.mini-day{font-size:7px}.profile-card{grid-template-columns:44px 1fr auto}.profile-side{max-width:80px}.hero-next{align-items:flex-start}.hero-name{font-size:25px}.hero-count strong{font-size:24px}}
