:root{font-family:Noto Sans CJK SC,PingFang SC,sans-serif;color:#292723;background:#e9e1d4;font-synthesis:none;--paper:#fbf7ee;--ink:#292723;--muted:#817b70;--red:#ac4434;--gold:#dda839;--line:rgba(78,64,45,.13);--serif:"Songti SC","STSong","Noto Serif CJK SC",serif}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#e9e1d4}button,input,select,textarea{font:inherit}button{color:inherit}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.site-shell{min-height:100vh;position:relative;overflow-x:hidden}.ambient-light{position:fixed;inset:-20vh -20vw auto 20vw;height:70vh;pointer-events:none;background:radial-gradient(circle,rgba(255,229,171,.55),transparent 64%);filter:blur(24px)}.app-frame{position:relative;width:min(100%,430px);min-height:100vh;margin:auto;background:var(--paper);box-shadow:0 20px 80px #362c1f33;overflow:hidden}.screen{min-height:100vh;padding-bottom:104px}.home-screen{background:linear-gradient(180deg,#fcf8f0 0,#fffaf2 48%,#fbf7ee)}button{border:0;background:none;cursor:pointer}.home-header{position:relative;padding:28px 26px 6px;min-height:260px;overflow:hidden}.home-header:after{content:"";position:absolute;width:260px;height:360px;right:-120px;top:-80px;transform:rotate(25deg);background:linear-gradient(90deg,transparent,rgba(255,223,164,.2),transparent);filter:blur(2px)}.brand-row{display:flex;justify-content:space-between;align-items:center}.brand{font-family:var(--serif);font-size:28px;font-weight:700;letter-spacing:.08em}.brand span,.home-header h1 span{color:var(--red)}.icon-button,.round-add{width:42px;height:42px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;background:#ffffff8c}.date-line{font-family:var(--serif);color:#666158;font-size:14px;letter-spacing:.1em;margin:26px 0 12px}.home-header h1{font-family:var(--serif);font-size:39px;line-height:1.28;font-weight:500;letter-spacing:.04em;margin:0;position:relative;z-index:2}.sun-orb{position:absolute;right:35px;top:105px;color:var(--gold);font-size:34px}.birthday-hero{position:relative;min-height:330px;display:grid;grid-template-columns:1fr 1.18fr;overflow:hidden;border-bottom:1px solid var(--line)}.birthday-hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#fbf7ee 0 46%,transparent 68%);z-index:1}.hero-copy{position:relative;z-index:2;padding:22px 0 28px 26px;display:flex;flex-direction:column;align-items:flex-start}.section-kicker,.eyebrow{text-transform:uppercase;color:var(--red);font-family:var(--serif);font-size:14px;letter-spacing:.15em;margin:0 0 18px}.hero-copy h2{font-family:var(--serif);font-size:35px;font-weight:500;margin:0}.relation{color:var(--muted);margin:6px 0 28px}.hero-portrait{position:absolute;top:0;right:0;bottom:0;left:31%;padding:0}.hero-portrait img{width:100%;height:100%;object-fit:cover;object-position:54% center}.hero-actions{display:grid;gap:10px;margin-top:auto}.primary,.secondary{min-height:44px;border-radius:999px;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--serif);font-size:15px}.primary{background:var(--red);color:#fff;box-shadow:0 8px 24px #ac44342e}.secondary{border:1px solid rgba(172,68,52,.45);color:var(--red);background:#ffffff73}.full{width:100%;border-radius:14px;min-height:50px}.upcoming,.preparation{padding:30px 26px}.section-title{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:15px}.section-title .section-kicker{font-size:20px;color:var(--ink);margin:0 0 5px}.section-title p:not(.section-kicker){font-size:12px;color:var(--muted);margin:0}.section-title button{font-size:12px;color:var(--muted);display:flex;align-items:center}.timeline{position:relative}.time-rail{position:absolute;left:90px;top:20px;bottom:24px;width:1px;background:linear-gradient(var(--gold),rgba(221,168,57,.25));z-index:1}.time-rail:before{content:"";position:absolute;left:-4px;top:7px;width:9px;height:9px;border:2px solid var(--paper);border-radius:50%;background:var(--gold);box-shadow:0 0 16px var(--gold)}.person-row{width:100%;display:grid;grid-template-columns:76px 16px 58px 1fr 20px;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid var(--line);text-align:left;position:relative}.day strong,.day span,.day em,.person-meta strong,.person-meta span{display:block}.day strong{font-family:var(--serif);font-size:17px;font-weight:500}.day span{font-size:12px;color:var(--muted);margin-top:4px}.day em{font-style:normal;font-size:11px;color:var(--gold);margin-top:5px}.time-dot{width:8px;height:8px;border:2px solid #c9bfae;border-radius:50%;background:var(--paper);z-index:2;margin-left:2px}.person-row img{width:54px;height:54px;object-fit:cover;border-radius:50%;border:2px solid rgba(255,255,255,.85);box-shadow:0 2px 12px #392f211f}.person-meta strong{font-family:var(--serif);font-size:18px;font-weight:500}.person-meta span{font-size:12px;color:var(--muted);margin-top:4px}.row-arrow{color:#999084}.preparation{padding-top:14px}.task-row{width:100%;display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:10px;padding:14px 0;border-bottom:1px solid var(--line);text-align:left}.check{width:20px;height:20px;border:1px solid #baa98d;border-radius:50%;display:grid;place-items:center;color:#fff}.task-row.done{color:#aaa49a;text-decoration:line-through}.task-row.done .check{background:var(--gold);border-color:var(--gold)}.task-row time{color:var(--gold);font-size:12px}.bottom-nav{position:absolute;z-index:20;bottom:0;left:0;right:0;height:86px;padding:10px 16px 12px;display:grid;grid-template-columns:repeat(4,1fr);background:#fbf7eef0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-top:1px solid var(--line)}.bottom-nav button{display:flex;flex-direction:column;align-items:center;gap:5px;color:#37332e;font-family:var(--serif);font-size:13px}.bottom-nav svg{font-size:25px}.bottom-nav button.active{color:var(--red)}.inner-screen{padding:30px 22px 110px}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.page-header .eyebrow{margin-bottom:5px}.page-header h1{font-family:var(--serif);font-size:34px;font-weight:500;margin:0}.search{height:48px;border:1px solid var(--line);border-radius:16px;display:grid;grid-template-columns:25px 1fr 25px;align-items:center;padding:0 14px;background:#ffffff73;color:var(--muted)}.search input{border:0;outline:0;background:transparent;height:100%}.group-strip{display:flex;gap:9px;overflow:auto;padding:18px 0 16px;scrollbar-width:none}.group-strip button,.tone-tabs button{white-space:nowrap;padding:8px 14px;border-radius:999px;border:1px solid var(--line);font-size:13px}.group-strip button.active,.tone-tabs button.active{background:var(--ink);color:#fff}.group-strip button:last-child{display:flex;align-items:center;gap:4px}.people-list>button{width:100%;display:grid;grid-template-columns:56px 1fr auto 18px;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);text-align:left}.people-list img{width:54px;height:54px;border-radius:20px;object-fit:cover}.people-list strong,.people-list span{display:block}.people-list span{font-size:12px;color:var(--muted);margin-top:4px}.birthday-date{text-align:right}.birthday-date strong{font-family:var(--serif);font-weight:500}.year-switch{display:flex;align-items:center;font-family:var(--serif)}.solar-arc{border-radius:24px;padding:22px;background:#f5ead3;display:flex;gap:15px;align-items:center;color:#765a2e}.solar-arc svg{font-size:42px;color:var(--gold)}.solar-arc strong,.solar-arc span{display:block}.solar-arc span{font-size:13px;margin-top:5px}.month-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin:24px 0}.month-grid button{background:var(--paper);min-height:88px;text-align:left;padding:13px;position:relative}.month-grid strong,.month-grid span{display:block}.month-grid strong{font-family:var(--serif);font-weight:500}.month-grid span{font-size:10px;color:var(--muted);margin-top:7px}.month-grid button.current{color:var(--red);background:#f8eee5}.month-grid i{position:absolute;width:5px;height:5px;border-radius:50%;background:var(--red);right:12px;top:12px}.month-people>button{width:100%;display:grid;grid-template-columns:54px 40px 1fr auto;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);text-align:left}.month-people img{width:38px;height:38px;border-radius:50%;object-fit:cover}.month-people span{font-size:12px;color:var(--muted)}.profile-mark{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:#f4e6c7;color:var(--gold);font-size:30px}.reminder-status{padding:18px;border-radius:20px;background:#f3e9d4;display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:12px}.reminder-status>svg{font-size:30px;color:var(--gold)}.reminder-status strong,.reminder-status span{display:block}.reminder-status div span{font-size:11px;color:var(--muted);margin-top:4px}.status-dot{font-size:10px;color:#55714c}.settings-group{margin-top:28px}.settings-group>p{font-family:var(--serif);color:var(--muted);font-size:12px}.settings-group>button{width:100%;display:grid;grid-template-columns:30px 1fr 20px;align-items:center;text-align:left;padding:15px 0;border-bottom:1px solid var(--line);gap:10px}.settings-group>button>svg:first-child{font-size:23px;color:var(--red)}.settings-group strong,.settings-group span{display:block}.settings-group span{font-size:11px;color:var(--muted);margin-top:4px}.privacy-note{font-size:11px;color:var(--muted);line-height:1.7;margin-top:28px}.modal-layer,.mini-sheet{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-end;justify-content:center}.modal-backdrop,.sheet-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#221d176b;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-sheet,.sheet-card{position:relative;z-index:1;width:min(100%,430px);max-height:82vh;overflow:auto;background:var(--paper);border-radius:28px 28px 0 0;padding:30px 24px 28px;box-shadow:0 -20px 60px #34291c33}.modal-sheet.tall{max-height:92vh}.sheet-handle{position:absolute;top:10px;left:50%;width:38px;height:4px;border-radius:3px;background:#d6cdbc;transform:translate(-50%)}.sheet-close{position:absolute;right:20px;top:20px;width:36px;height:36px;border-radius:50%;background:#eee7db;display:grid;place-items:center}.modal-heading h2,.sheet-head h2,.detail-title h2{font-family:var(--serif);font-weight:500;font-size:30px;margin:0}.modal-heading .eyebrow{margin-bottom:6px}.method-switch{display:grid;grid-template-columns:1fr 1fr;background:#eee7dc;border-radius:12px;padding:4px;margin:22px 0}.method-switch button{padding:10px;border-radius:9px}.method-switch button.active{background:var(--paper);box-shadow:0 2px 8px #2d261c14}.form label{display:block;color:var(--muted);font-size:12px;margin-bottom:16px}.form input,.form select,.form textarea,.sheet-card input{display:block;width:100%;border:1px solid var(--line);background:#ffffff8c;border-radius:12px;min-height:46px;margin-top:7px;padding:10px 12px;color:var(--ink);outline:none}.form textarea{min-height:76px;resize:none}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.steps{display:flex;align-items:center;margin:24px 0}.steps span{font-size:12px;color:#aaa}.steps span.active{color:var(--red)}.steps i{height:1px;background:var(--line);flex:1;margin:0 10px}.upload-zone{width:100%;height:190px;border:1px dashed #cbb998;border-radius:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#faf3e7}.upload-zone svg{font-size:42px;color:var(--gold)}.upload-zone span,.helper{font-size:11px;color:var(--muted)}.helper{text-align:center}.helper button{color:var(--red)}.import-summary{padding:17px;border-radius:15px;background:#f4ead8}.import-summary strong,.import-summary span{display:block}.import-summary span{font-size:11px;color:var(--muted);margin-top:6px}.mapping{margin:18px 0}.mapping p{font-family:var(--serif)}.mapping span{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line);font-size:13px}.success-state{text-align:center;padding-top:20px}.success-state>svg{font-size:72px;color:var(--gold)}.success-state h3{font-family:var(--serif);font-size:25px}.success-state p{font-size:13px;color:var(--muted);line-height:1.7}.tone-tabs{display:flex;gap:8px;margin:20px 0}.blessing-copy{padding:20px;border-radius:18px;background:#f4ead8;display:flex;gap:12px;margin-bottom:22px}.blessing-copy svg{flex:none;color:var(--gold);font-size:24px}.blessing-copy p{font-family:var(--serif);font-size:17px;line-height:1.8;margin:0}.detail-portrait{height:210px;border-radius:22px;overflow:hidden;position:relative;margin-top:6px}.detail-portrait img{width:100%;height:100%;object-fit:cover}.detail-portrait span{position:absolute;bottom:12px;left:12px;background:#ffffffdb;padding:6px 11px;border-radius:999px;font-size:12px}.detail-title{text-align:center;margin:18px 0}.detail-title .eyebrow{margin-bottom:5px}.detail-title>p:last-child{color:var(--muted);font-size:12px}.detail-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.detail-actions button{padding:13px 5px;border:1px solid var(--line);border-radius:14px;display:flex;align-items:center;flex-direction:column;gap:7px;font-size:11px}.detail-actions svg{font-size:22px;color:var(--red)}.memory-note{padding:18px;border-radius:16px;background:#f4ead8;margin:20px 0}.memory-note .section-kicker{margin-bottom:8px}.memory-note>p:last-child{font-family:var(--serif);line-height:1.7;margin:0}.reminder-card{display:grid;grid-template-columns:34px 1fr 20px;gap:10px;align-items:center;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:20px}.reminder-card>svg{font-size:26px;color:var(--gold)}.reminder-card strong,.reminder-card span{display:block}.reminder-card span{font-size:11px;color:var(--muted);margin-top:4px}.sheet-head{display:flex;justify-content:space-between}.tag-cloud{display:flex;gap:8px;margin:20px 0}.tag-cloud span{padding:7px 12px;border-radius:999px;background:#eee6da}.toast{position:fixed;z-index:200;left:50%;bottom:110px;transform:translate(-50%);background:#292723;color:#fff;border-radius:999px;padding:11px 16px;display:flex;align-items:center;gap:8px;box-shadow:0 10px 30px #0003;white-space:nowrap;font-size:13px}.toast svg{color:#e3ba5b}@media(min-width:700px){.app-frame{margin:24px auto;min-height:calc(100vh - 48px);border-radius:32px}.bottom-nav{position:sticky}.screen{min-height:calc(100vh - 48px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}.group-editor-list{display:grid;gap:8px;margin:20px 0}.group-editor-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}.group-editor-row span{font-family:var(--serif)}.group-editor-row input{width:100%;border:1px solid var(--line);background:#fff9;border-radius:10px;min-height:36px;padding:6px 10px}.group-editor-row div{display:flex;gap:6px}.group-editor-row button{font-size:12px;color:var(--red);padding:6px 8px;border-radius:999px;background:#f4ead8}.group-field{display:block;color:var(--muted);font-size:12px;margin-bottom:16px}.field-label{display:block;margin-bottom:7px}.multi-group-picker{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}.multi-group-picker button{padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:#ffffff80;font-size:12px}.multi-group-picker button.active{background:var(--ink);color:#fff}.inline-create{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:8px}.inline-create button{border-radius:12px;background:#f4ead8;color:var(--red);padding:0 12px}.selected-groups{font-size:11px;color:var(--muted);line-height:1.6;margin:7px 0 0}.detail-group-tags{display:flex;flex-wrap:wrap;justify-content:center;gap:7px;margin:10px 0}.detail-group-tags button{padding:6px 10px;border-radius:999px;background:#f4ead8;color:#765a2e;font-size:12px;border:1px solid rgba(221,168,57,.18)}.care-rhythm{margin:18px 0 20px;padding:18px;border-radius:22px;background:radial-gradient(circle at 88% 18%,rgba(221,168,57,.25),transparent 36%),linear-gradient(135deg,#ffffffb3,#f6ead6bf);border:1px solid rgba(221,168,57,.2);box-shadow:0 14px 36px #48361c12}.care-rhythm .section-kicker{margin-bottom:7px}.care-rhythm strong,.care-rhythm span{display:block}.care-rhythm strong{font-family:var(--serif);font-size:21px;font-weight:500;color:var(--red)}.care-rhythm span{font-size:12px;color:#765a2e;margin-top:5px}.care-rhythm p:last-of-type{font-family:var(--serif);line-height:1.7;margin:14px 0;color:#5b4a34}.care-rhythm button{min-height:38px;padding:0 13px;border-radius:999px;background:#fff8ec;color:var(--red);border:1px solid rgba(172,68,52,.18);display:inline-flex;gap:6px;align-items:center;font-size:12px}.care-composer{margin:0 0 20px;padding:16px;border-radius:20px;background:#ffffff75;border:1px solid rgba(78,64,45,.1)}.care-composer .section-title.compact{margin-bottom:10px}.care-composer .section-title.compact .section-kicker{margin-bottom:4px}.care-composer-types{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px}.care-composer-types button{padding:7px 10px;border-radius:999px;border:1px solid rgba(221,168,57,.24);background:#fff8ec;color:#765a2e;font-size:12px}.care-composer-types button.active{background:var(--ink);color:#fff;border-color:var(--ink)}.care-composer textarea{width:100%;min-height:88px;resize:none;border:1px solid var(--line);border-radius:15px;background:#ffffffb3;padding:11px 12px;color:var(--ink);outline:none;margin-bottom:10px}.care-composer .primary:disabled{opacity:.46;cursor:not-allowed}.filter-status{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px;padding:11px 13px;border-radius:16px;background:#f4ead8;color:#765a2e;font-size:12px}.filter-status button{color:var(--red);font-family:var(--serif);white-space:nowrap}.people-empty{text-align:center;margin:24px 0;padding:28px 18px;border-radius:24px;background:#f4ead8;color:#765a2e}.people-empty svg{font-size:42px;color:var(--gold)}.people-empty h3{font-family:var(--serif);font-weight:500;font-size:22px;margin:12px 0 8px}.people-empty p{font-size:12px;line-height:1.7;color:var(--muted);margin:0 0 18px}.people-empty div{display:flex;justify-content:center;flex-wrap:wrap;gap:8px}.people-empty .primary,.people-empty .secondary{min-height:38px;font-size:13px}.birthday-filter-strip{display:flex;gap:8px;overflow:auto;padding:0 0 14px;scrollbar-width:none}.birthday-filter-strip button{white-space:nowrap;padding:7px 12px;border-radius:999px;background:#ffffff6b;border:1px solid rgba(221,168,57,.22);color:#765a2e;font-size:12px}.birthday-filter-strip button.active{background:linear-gradient(135deg,#dda8393d,#ac44341a);color:var(--red);box-shadow:inset 0 0 0 1px #dda83933}.care-filter-strip{display:flex;gap:8px;overflow:auto;padding:0 0 14px;scrollbar-width:none}.care-filter-strip button{white-space:nowrap;padding:7px 12px;border-radius:999px;background:#4e402d0d;border:1px solid rgba(78,64,45,.1);color:#6f665b;font-size:12px}.care-filter-strip button.active{background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:0 8px 18px #29272314}.filter-status div{display:flex;gap:10px;align-items:center;white-space:nowrap}.month-grid button.selected{background:linear-gradient(145deg,#fff7e7,#f6ead6);box-shadow:inset 0 0 0 1px #dda83957;color:var(--red)}.year-overview{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:14px 0 4px;border-radius:20px;overflow:hidden;background:#4e402d1f;box-shadow:0 12px 30px #48361c0f}.year-overview div{min-height:76px;background:linear-gradient(180deg,#ffffff9e,#f6ead6b8);display:flex;flex-direction:column;align-items:center;justify-content:center}.year-overview strong{font-family:var(--serif);font-size:25px;font-weight:500;color:var(--red)}.year-overview span{font-size:11px;color:#765a2e;margin-top:5px}.month-people .section-title.compact{margin-top:2px;margin-bottom:6px}.month-people .section-title.compact button{color:var(--red);font-family:var(--serif)}.search-hit{background:#dda83947;color:var(--red);border-radius:5px;padding:0 2px}.note-snippet{display:block!important;margin-top:5px;font-style:normal;font-size:11px!important;color:#9a6a36!important;line-height:1.5}.care-status{display:inline-flex!important;width:max-content;margin-top:5px;padding:3px 7px;border-radius:999px;background:#dda83921;color:#8a6428!important;font-style:normal;font-size:11px!important;line-height:1.4}.care-status.empty{background:#4e402d0f;color:#aaa198!important}.task-tag{display:inline-flex;align-items:center;margin-right:8px;padding:3px 7px;border-radius:999px;background:#dda83924;color:#8a6428;font-style:normal;font-size:11px;line-height:1.2;vertical-align:middle}.task-tag.reminder{background:#ac44341a;color:var(--red)}.task-tag.birthday{background:#dda83929;color:#8a6428}.task-tag.stale-care{background:#4e402d14;color:#5f574d}.task-row.done>span:not(.check){text-decoration:none;color:#9e968a}.task-done-label{padding:4px 8px;border-radius:999px;background:#55714c21;color:#55714c!important}.task-empty{text-align:center;padding:24px 16px;border-radius:22px;background:linear-gradient(180deg,#ffffff94,#f6ead6a3);border:1px solid rgba(221,168,57,.16);color:#765a2e}.task-empty svg{font-size:38px;color:var(--gold)}.task-empty h3{font-family:var(--serif);font-weight:500;font-size:21px;margin:10px 0 7px}.task-empty p{font-size:12px;line-height:1.7;color:var(--muted);margin:0 0 16px}.task-empty .secondary{min-height:38px;font-size:13px}.birthday-date.search-match{padding:6px 8px;border-radius:13px;background:linear-gradient(135deg,#dda8392e,#ac443412);box-shadow:inset 0 0 0 1px #dda8392e}.birthday-date.search-match strong{color:var(--red)}.birthday-date.search-match span{color:#9a6a36}.home-header:after,.birthday-hero:before,.login-shell:before,.sun-orb{pointer-events:none}.brand-row,.icon-button,.hero-copy,.hero-actions{position:relative;z-index:3}.avatar-upload{position:relative;display:grid;grid-template-columns:54px 1fr;align-items:center;gap:12px;margin-top:7px;padding:12px;border:1px dashed rgba(172,68,52,.28);border-radius:16px;background:#ffffff73;overflow:hidden}.avatar-upload div{width:54px;height:54px;border-radius:18px;display:grid;place-items:center;background:#f4ead8;color:var(--red);overflow:hidden}.avatar-upload img{width:100%;height:100%;object-fit:cover}.avatar-upload span{font-size:12px;color:#765a2e;line-height:1.5}.avatar-upload input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;margin:0;min-height:0}.avatar-choice-panel{display:grid;grid-template-columns:minmax(0,1fr) 118px;gap:12px;margin-top:7px}.avatar-choice-column,.avatar-upload-column{border:1px solid var(--line);border-radius:18px;background:#ffffff7a;padding:12px}.avatar-choice-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}.avatar-choice-head strong,.avatar-upload-column strong{font-size:13px;color:var(--ink)}.avatar-choice-head span,.avatar-upload-column span{font-size:10px;color:var(--muted);line-height:1.4}.preset-avatar-grid{display:grid;grid-template-columns:repeat(4,46px);gap:8px;max-height:154px;overflow:auto;padding-right:2px}.preset-avatar-grid button{width:46px;height:46px;border-radius:16px;overflow:hidden;border:2px solid transparent;background:#f4ead8;padding:0}.preset-avatar-grid button.active{border-color:var(--red);box-shadow:0 0 0 3px #ac44341f}.preset-avatar-grid img{width:100%;height:100%;object-fit:cover}.avatar-upload-column{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;overflow:hidden}.avatar-upload-column div{width:62px;height:62px;border-radius:20px;background:#f4ead8;color:var(--red);display:grid;place-items:center;overflow:hidden;font-size:24px}.avatar-upload-column img{width:100%;height:100%;object-fit:cover}.avatar-upload-column input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;margin:0;min-height:0}.home-header{min-height:104px;padding-bottom:12px}.home-header h1{display:none}@media(max-width:390px){.avatar-choice-panel{grid-template-columns:1fr}.avatar-upload-column{min-height:98px}.preset-avatar-grid{grid-template-columns:repeat(5,46px)}}.auth-switch{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:#eee7dc;border-radius:14px;padding:4px;margin:20px 0}.auth-switch button{min-height:40px;border-radius:11px;color:var(--muted);font-size:13px}.auth-switch button.active{background:var(--paper);color:var(--ink);box-shadow:0 2px 8px #2d261c14}.symbol-icon{display:inline-grid;place-items:center;min-width:1em;font-family:var(--serif);font-style:normal;line-height:1}.sun-orb{animation:sun-float 3.4s ease-in-out infinite alternate}@keyframes sun-float{0%{transform:translateY(-8px);opacity:.45}to{transform:translateY(10px);opacity:1}}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(180deg,#fbf7ee80,#eee6da47),url(/assets/home-birthday-sun-v1-ChyFHyRg.png) center bottom / cover no-repeat,#eee6da;position:relative;overflow:hidden}.login-shell:before{content:"";position:absolute;width:520px;height:520px;right:-220px;top:-220px;border-radius:50%;background:radial-gradient(circle,rgba(232,182,77,.32),transparent 68%)}.login-sun{position:absolute;right:9vw;top:8vh;color:#d9a33b;font:64px var(--serif);opacity:.45}.login-card{position:relative;width:min(100%,390px);padding:38px 30px 30px;border-radius:28px;background:#fbf7eee6;border:1px solid rgba(255,255,255,.62);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 28px 80px #3f30202e}.login-card h1{margin:0;font:500 52px var(--serif);letter-spacing:.08em}.login-card .login-title-small{font-size:38px;letter-spacing:.04em}.login-card h1 span{color:var(--red)}.login-lead{color:var(--muted);line-height:1.8;margin:16px 0 28px}.login-note{margin:18px 0 0;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:11px;line-height:1;text-align:center;white-space:nowrap}.login-email{display:inline-flex;align-items:center;gap:5px;margin-left:18px;line-height:1}.login-email img{width:3em;height:3em;margin:-1em;object-fit:cover;clip-path:inset(33%)}.form-error{color:var(--red);font-size:12px;margin:-6px 0 14px}.form-notice{color:#55714c;font-size:12px;line-height:1.65;margin:-6px 0 14px}.forgot-password,.text-action{color:var(--red);font-size:12px;text-decoration:underline;text-underline-offset:3px}.forgot-password{display:block;margin:-8px 0 16px auto}.text-action{display:block;margin:18px auto 0}.logout-button,.archive-button,.delete-button{width:100%;margin-top:24px;padding:13px;color:var(--red);border-top:1px solid var(--line)}.archive-button,.delete-button{margin-top:10px}.delete-button{border:1px solid rgba(172,68,52,.22);border-radius:14px;background:#ac44340f}.edit-form{margin-top:24px}.reminder-center{margin:22px 20px 8px;padding:20px;border:1px solid rgba(172,68,52,.14);border-radius:26px;background:linear-gradient(135deg,#ffffffb8,#f6e8cb8a),radial-gradient(circle at 86% 12%,rgba(221,168,57,.24),transparent 38%);box-shadow:0 18px 48px #533e2214}.reminder-center .section-title{margin-bottom:12px}.reminder-center .section-title>span{color:var(--gold);font-size:26px}.reminder-list{display:grid;gap:9px}.reminder-item{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;min-height:58px;padding:12px 13px;border:1px solid rgba(78,64,45,.08);border-radius:18px;background:#ffffff94}.reminder-item-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:8px;margin-top:-2px}.reminder-item-actions button{min-height:30px;padding:0 11px;border:1px solid rgba(172,68,52,.18);border-radius:999px;background:#ffffff85;color:var(--muted);font-size:12px}.reminder-item-actions button:last-child{background:#ac443417;color:var(--red)}.reminder-item strong,.reminder-item span{display:block}.reminder-item strong{font-family:var(--serif);font-size:17px;font-weight:500}.reminder-item span{margin-top:4px;color:var(--muted);font-size:11px}.reminder-item em{padding:5px 9px;border-radius:999px;background:#dda83929;color:#8a6421;font-style:normal;font-size:11px;white-space:nowrap}.reminder-item.sent em{background:#55714c21;color:#55714c}.reminder-item.cancelled em{background:#817b7021;color:var(--muted)}.reminder-item.failed em{background:#ac44341f;color:var(--red)}.reminder-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.reminder-actions .primary,.reminder-actions .secondary{min-height:42px;padding:0 12px;font-size:13px}.care-echo{margin:18px 20px 8px;padding:18px;border-radius:24px;background:linear-gradient(180deg,#ffffff9e,#faf3e7ad),repeating-linear-gradient(90deg,transparent 0 24px,rgba(221,168,57,.05) 24px 25px);border:1px solid rgba(78,64,45,.1)}.care-echo .section-title{margin-bottom:10px}.care-echo .section-title>span{color:#55714c;font-size:24px}.care-echo-list{display:grid;gap:8px}.care-echo-item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;padding:10px 0;border-top:1px solid rgba(78,64,45,.08)}.care-echo-item span{padding:5px 9px;border-radius:999px;background:#55714c1c;color:#55714c;font-size:11px}.care-echo-item strong{font-family:var(--serif);font-weight:500}.care-echo-item time{color:var(--muted);font-size:11px;white-space:nowrap}.care-nudge{margin:18px 20px 8px;padding:18px;border-radius:24px;background:radial-gradient(circle at 90% 12%,rgba(172,68,52,.13),transparent 34%),linear-gradient(135deg,#ffffffb3,#f6ead6b3);border:1px solid rgba(172,68,52,.12);box-shadow:0 16px 42px #523a2112}.care-nudge .section-title{margin-bottom:10px}.care-nudge .section-title>span{color:var(--red);font-size:24px}.care-nudge-list{display:grid;gap:8px}.care-nudge-item{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid rgba(78,64,45,.08)}.care-nudge-main{display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:center;min-width:0;text-align:left}.care-nudge-main img{width:42px;height:42px;border-radius:16px;object-fit:cover}.care-nudge-main strong,.care-nudge-main span{display:block}.care-nudge-main strong{font-family:var(--serif);font-weight:500}.care-nudge-main span{margin-top:4px;color:var(--muted);font-size:11px}.care-nudge-action{min-height:32px;padding:0 12px;border-radius:999px;background:#ac44341a;color:var(--red);font-size:12px}.care-nudge-item.done{opacity:.68}.care-nudge-item.done .care-nudge-action,.care-nudge-action:disabled{background:#55714c21;color:#55714c;cursor:default}.care-timeline{margin:20px 0;padding:18px;border-radius:18px;background:#f4ead8}.care-timeline .section-kicker{margin-bottom:12px}.care-timeline-item{display:grid;grid-template-columns:16px 1fr;gap:10px;position:relative;padding:0 0 14px}.care-timeline-item:not(:last-child):before{content:"";position:absolute;left:5px;top:14px;bottom:0;width:1px;background:#ac44342e}.care-timeline-item i{width:11px;height:11px;margin-top:4px;border-radius:50%;background:var(--red);box-shadow:0 0 0 4px #ac443414}.care-timeline-item strong,.care-timeline-item span{display:block}.care-timeline-item strong{font-family:var(--serif);font-weight:500}.care-timeline-item span{margin-top:3px;color:var(--muted);font-size:11px}.care-timeline-item p{margin:7px 0 0;color:#5f584e;font-size:12px;line-height:1.6}
