:root{font-family:"Heebo","Segoe UI",Arial,sans-serif;color:#22302b;background:#f4efe5;--ink:#20302a;--muted:#716f67;--paper:#fffdf8;--line:#ddd5c8;--forest:#173b32;--leaf:#406b5b;--sage:#dce9df;--rose:#c9685c;--gold:#d2a14f;--blue:#5c7895;--shadow:0 24px 80px rgba(47,42,30,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:#f5f0e6;color:var(--ink);background-image:radial-gradient(circle at 8% 0,#ecd9c6 0,transparent 25%),radial-gradient(circle at 92% 8%,#dfe9df 0,transparent 27%)}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2{font-family:"Frank Ruhl Libre","Heebo",serif;letter-spacing:-.025em}.boot{min-height:100vh;display:grid;place-content:center;text-align:center;gap:8px}.boot:before{content:"";width:72px;height:72px;margin:auto;background:url('/assets/logo-mark.svg') center/contain no-repeat}.boot span{color:var(--leaf);font-size:13px;font-weight:900}.boot b{font:700 28px "Frank Ruhl Libre",serif}
.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(470px,1.25fr) minmax(400px,.75fr);padding:18px;gap:18px}.auth-story{min-height:calc(100vh - 36px);padding:clamp(36px,6vw,84px);border-radius:36px;color:#fff;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden;background:linear-gradient(90deg,rgba(13,46,38,.06),rgba(13,46,38,.05)),url('/assets/family-hero.png') center/cover no-repeat;box-shadow:var(--shadow)}.auth-story:after{content:"";position:absolute;inset:0;background:linear-gradient(270deg,rgba(20,54,45,.96) 0,rgba(20,54,45,.82) 38%,transparent 70%);pointer-events:none}.family-mark{z-index:1;width:72px;height:72px;color:transparent;background:url('/assets/logo-mark.svg') center/contain no-repeat;filter:drop-shadow(0 8px 20px #20352c30)}.family-mark.small{width:64px;height:64px;margin-bottom:24px;filter:none}.auth-story>div{z-index:1}.auth-story>div:nth-child(2){max-width:520px;align-self:flex-start}.kicker{display:block;color:#b47762;font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.auth-story .kicker{color:#f2cf91}.auth-story h1{font-size:clamp(70px,9vw,128px);line-height:.73;margin:20px 0 28px;letter-spacing:-.065em}.auth-story h1 em,.today-hero h1 em{font-style:normal;color:#f1d5a2}.auth-story p{max-width:470px;color:#e4ece8;font-size:18px;line-height:1.75}.story-date{position:relative;color:#e7efe9}.story-date b,.story-date span{display:block}.story-date span{font-size:12px;opacity:.75;margin-top:4px}.auth-card{max-width:510px;width:calc(100% - 42px);margin:auto;padding:44px}.auth-card h2,.setup-card h1{font-size:42px;margin:8px 0 28px}.auth-card form,.setup-card form,#item-form{display:grid;gap:16px}label{display:grid;gap:7px;font-weight:800;font-size:13px}label small{color:var(--muted);font-weight:400}input,select,textarea{width:100%;border:1px solid var(--line);background:#fffdf9;color:var(--ink);border-radius:14px;padding:14px;outline:none;transition:.2s}input:focus,select:focus,textarea:focus{border-color:var(--leaf);box-shadow:0 0 0 4px #456b5a18}.primary,.soft{border:0;border-radius:14px;padding:15px;font-weight:900;transition:.2s}.primary{background:var(--forest);color:#fff;box-shadow:0 10px 28px #173b3230}.primary:hover,.fab:hover{transform:translateY(-2px);box-shadow:0 14px 32px #173b3240}.primary:disabled{opacity:.5}.soft{background:var(--sage);color:var(--forest)}.soft.disabled{opacity:.55}.link{border:0;background:none;color:var(--leaf);font-weight:900;margin:18px auto 0;display:block}.auth-foot{border-top:1px solid var(--line);margin-top:28px;padding-top:18px;font-size:12px;color:var(--muted);line-height:1.5}.notice{padding:12px;margin:0 0 15px;border-radius:12px;background:#f4e6c9;color:#6f5424;font-size:13px}
.center-shell{min-height:100vh;display:grid;place-items:center;padding:20px}.setup-card{max-width:590px;width:100%;padding:48px;border:1px solid #e2d7c8;border-radius:32px;background:rgba(255,253,248,.94);box-shadow:var(--shadow)}.setup-card>p{color:var(--muted);line-height:1.7}.pending{text-align:center}.wait-ring{width:84px;height:84px;display:grid;place-items:center;margin:0 auto 20px;border-radius:50%;background:var(--sage);font-size:35px}.identity{margin:25px 0;padding:12px;border-radius:12px;background:#f4efe5;color:var(--muted);direction:ltr}
.app-shell{min-height:100vh;padding:18px 32px 80px;max-width:1540px;margin:auto}.app-shell>header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:4px 2px 14px}.brand{justify-self:start;display:flex;align-items:center;gap:11px;border:0;background:none;color:var(--ink);text-align:right}.brand>span,.avatar{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:var(--forest);color:transparent;border:0;font-weight:900}.brand>span{background:url('/assets/logo-mark.svg') center/contain no-repeat}.brand b,.brand small{display:block}.brand b{font-family:"Frank Ruhl Libre",serif;font-size:19px}.brand small{font:600 10px "Heebo";color:var(--muted);margin-top:1px}.header-date{text-align:center}.header-date b,.header-date span{display:block}.header-date span{color:var(--muted);font-size:11px;margin-top:2px}.avatar{justify-self:end;border-radius:50%;color:#fff;background:linear-gradient(145deg,var(--leaf),var(--forest));box-shadow:0 8px 22px #173b3225}.app-shell>nav{display:flex;justify-content:center;gap:6px;margin:3px auto 24px;padding:5px;width:max-content;background:#ece5d9;border-radius:999px}.app-shell>nav button{border:0;background:transparent;color:var(--muted);border-radius:999px;padding:10px 22px;font-weight:800;position:relative}.app-shell>nav button.active{background:#fffdf8;color:var(--forest);box-shadow:0 6px 18px #4b382414}.app-shell>nav i{position:absolute;inset:-4px auto auto -2px;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:var(--rose);color:#fff;font-size:10px;font-style:normal}
.today-hero{min-height:360px;border-radius:36px;padding:48px 55px;background:linear-gradient(270deg,rgba(19,55,46,.96),rgba(19,55,46,.72) 43%,transparent 75%),url('/assets/family-hero.png') center/cover no-repeat;color:#fff;position:relative;overflow:hidden;box-shadow:0 28px 65px #193c3233}.today-hero:after{content:"";position:absolute;inset:16px;border:1px solid #fff3;border-radius:27px;pointer-events:none}.today-hero h1{font-size:clamp(58px,6vw,92px);line-height:.77;margin:17px 0;letter-spacing:-.055em;position:relative;z-index:1}.today-hero>.kicker{color:#f1d5a2;position:relative;z-index:1}.hero-orb{position:absolute;right:55px;bottom:42px;width:124px;height:124px;border:1px solid #ffffff44;border-radius:50%;display:grid;place-content:center;text-align:center;background:#173b327a;backdrop-filter:blur(8px);z-index:1}.hero-orb b{font:700 49px/1 "Frank Ruhl Libre",serif}.hero-orb span{color:#e8d6b5;font-size:13px}.dashboard-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:18px;margin-top:18px}.panel{padding:27px;border:1px solid #ded6ca;border-radius:26px;background:rgba(255,253,248,.93);box-shadow:0 8px 32px #40382d0a}.panel-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.panel-title h2{margin:0;font-size:28px}.panel-title span{font-size:11px;color:var(--muted);background:#f2ede4;padding:5px 9px;border-radius:999px}.item{display:grid;grid-template-columns:47px 1fr auto;align-items:center;gap:13px;padding:14px 0;border-bottom:1px solid #e9e2d8}.item:last-child{border:0}.item-icon{width:44px;height:44px;border-radius:15px;display:grid;place-items:center;background:#e4ede7;color:var(--forest);font-weight:900}.item-icon.task{background:#e5ebf2;color:var(--blue)}.item-icon.birthday{background:#f6e6d6}.item-icon.anniversary{background:#f3e1e4;color:var(--rose)}.item b,.item span,.item small{display:block}.item span{color:var(--muted);font-size:12px;margin-top:4px}.item small{font-size:10px;color:#9a948a;margin-top:3px}.task-check{width:30px;height:30px;border-radius:50%;border:1px solid var(--line);background:#fff;color:#fff}.task-check.done{background:var(--leaf);border-color:var(--leaf)}.memories{min-height:210px;background:linear-gradient(135deg,#fff7e9,#f1dfc2);position:relative;overflow:hidden}.memories:after{content:"";position:absolute;left:-18px;bottom:-35px;width:180px;height:180px;background:url('/assets/logo-mark.svg') center/contain no-repeat;opacity:.055;transform:rotate(-10deg)}.memories h2{font-size:32px;max-width:390px;margin:8px 0}.memories p{color:#6f685d;max-width:440px}.memory-year{font:800 57px "Frank Ruhl Libre",serif;color:#c99a4930;letter-spacing:-3px}.sync{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}.sync h2{margin:6px 0}.sync p{color:var(--muted);font-size:13px;line-height:1.5}.empty{padding:28px;text-align:center;color:var(--muted);display:grid;gap:7px}.empty>div{font-size:30px;color:var(--gold)}.empty b{color:var(--ink)}.empty span{font-size:12px}
.calendar-head,.page-head{display:flex;align-items:end;justify-content:space-between;margin:34px 0 22px}.calendar-head h1,.page-head h1{font-size:50px;margin:5px 0}.calendar-head button{border:1px solid var(--line);background:#fffdf9;padding:10px 14px}.calendar-head button:first-child{border-radius:0 12px 12px 0}.calendar-head button:last-child{border-radius:12px 0 0 12px}.month{border:1px solid var(--line);border-radius:28px;overflow:hidden;background:#fffdf9;box-shadow:0 18px 50px #463e320c}.weekdays,.days{display:grid;grid-template-columns:repeat(7,1fr)}.weekdays{background:#f0ebe2}.weekdays b{padding:13px;text-align:center;color:var(--muted);font-size:11px}.day{min-height:126px;border:0;border-top:1px solid var(--line);border-left:1px solid var(--line);background:transparent;text-align:right;padding:11px;overflow:hidden;transition:.15s}.day:hover{background:#f4f0e8}.day:nth-child(7n){border-left:0}.day>span{width:31px;height:31px;display:grid;place-items:center;border-radius:11px;font-weight:800}.day.today{background:#f1f6f2}.day.today>span{background:var(--forest);color:#fff;box-shadow:0 5px 13px #173b3235}.day small{display:block;margin-top:8px;font-size:10px;line-height:1.75;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.day.muted{background:#f8f4ed}.dot{width:6px;height:6px;display:inline-block;border-radius:50%;background:var(--leaf);margin-left:5px}.dot.task{background:var(--blue)}.task-list{max-width:900px;background:var(--paper);border:1px solid var(--line);border-radius:25px;padding:4px 24px}.page-head{display:block}.page-head p{color:var(--muted)}.admin-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}.person{display:grid;grid-template-columns:45px 1fr auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.person-avatar{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;background:var(--sage);color:var(--forest);font-weight:900}.person b,.person span{display:block}.person span{color:var(--muted);font-size:12px;margin-top:4px}.review{display:flex;gap:5px}.review button{border:0;border-radius:9px;padding:8px;background:var(--sage);color:var(--forest);font-weight:800;font-size:11px}.review button.reject{background:#f3e2e2;color:#944}
.fab{position:fixed;left:28px;bottom:28px;width:66px;height:66px;border:0;border-radius:22px;background:var(--rose);color:#fff;font-size:31px;box-shadow:0 16px 36px #8e403550;transition:.2s;z-index:5}dialog{width:min(680px,calc(100% - 24px));max-height:92vh;border:0;border-radius:28px;padding:0;background:#fffdf9;color:var(--ink);box-shadow:0 35px 100px #21170c50}dialog::backdrop{background:#102b24b8;backdrop-filter:blur(7px)}#item-form{padding:30px;overflow:auto}.dialog-head{display:flex;justify-content:space-between;align-items:start}.dialog-head h2{margin:5px 0 10px;font-size:34px}.dialog-head button{border:0;background:none;font-size:32px}.kind-switch{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.kind-switch input{display:none}.kind-switch span{padding:11px 5px;border:1px solid var(--line);border-radius:13px;text-align:center}.kind-switch input:checked+span{background:var(--forest);color:#fff;border-color:var(--forest)}.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.check{display:flex;align-items:center}.check input,.viewer-list input{width:auto}.viewer-list{display:flex;gap:8px;flex-wrap:wrap}.viewer-list label{display:flex;align-items:center;padding:8px;border:1px solid var(--line);border-radius:10px}.hidden{display:none!important}
@media(max-width:850px){.auth-shell{grid-template-columns:1fr;padding:0}.auth-story{min-height:48vh;border-radius:0;padding:32px;background-position:35% center}.auth-story:after{background:linear-gradient(270deg,rgba(20,54,45,.95),rgba(20,54,45,.58) 62%,transparent)}.auth-story h1{font-size:72px}.auth-story p{font-size:14px;max-width:350px}.story-date{display:none}.auth-card{padding:36px 10px}.app-shell{padding:12px 12px 100px}.app-shell>header{grid-template-columns:1fr auto}.header-date{display:none}.app-shell>nav{position:fixed;z-index:4;bottom:10px;right:10px;left:10px;width:auto;margin:0;padding:6px;background:#fffdf8eF;box-shadow:0 15px 50px #1e302b40;backdrop-filter:blur(15px)}.app-shell>nav button{flex:1;padding:10px 8px}.today-hero{min-height:440px;padding:32px 27px;background:linear-gradient(180deg,rgba(19,55,46,.96),rgba(19,55,46,.65) 48%,transparent 76%),url('/assets/family-hero.png') 28% center/cover no-repeat}.today-hero h1{font-size:60px}.hero-orb{right:27px;top:215px;bottom:auto;width:92px;height:92px}.hero-orb b{font-size:38px}.dashboard-grid,.admin-grid{grid-template-columns:1fr}.sync{grid-template-columns:1fr}.calendar-head h1,.page-head h1{font-size:39px}.day{min-height:76px;padding:5px}.day small{font-size:0}.day small .dot{display:inline-block}.weekdays b{padding:8px}.kind-switch{grid-template-columns:1fr 1fr}.two{grid-template-columns:1fr}.fab{left:18px;bottom:88px;width:58px;height:58px;border-radius:19px}.person{grid-template-columns:38px 1fr}.review{grid-column:1/-1}.setup-card{padding:30px 22px}.auth-card h2,.setup-card h1{font-size:37px}}
@media(max-width:460px){.auth-story{min-height:52vh;background-position:29% center}.auth-story h1{font-size:59px}.auth-story p{max-width:270px;line-height:1.5}.today-hero{background-position:22% center}.today-hero h1{font-size:51px}.brand small{display:none}.memories h2{font-size:27px}.memory-year{font-size:42px}.panel{padding:22px}.calendar-head{align-items:center}.calendar-head h1{font-size:33px}.calendar-head button{padding:8px 10px}.app-shell>nav button{font-size:12px}}

.memory-preview{border:1px solid #ded6ca;text-align:right;color:var(--ink);cursor:pointer;display:block;width:100%;padding-bottom:18px}.memory-preview p{margin-bottom:18px}.story-cta{display:inline-block;color:var(--forest);font-weight:900;font-size:13px;margin-bottom:18px}.memory-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;height:92px;position:relative;z-index:1}.memory-strip img{width:100%;height:100%;object-fit:cover;border-radius:12px;filter:saturate(.86)}
.story-hero{min-height:480px;border-radius:36px;overflow:hidden;display:grid;grid-template-columns:.88fr 1.12fr;background:var(--forest);color:#fff;box-shadow:0 28px 65px #193c3233}.story-hero>div{padding:62px 55px;align-self:center}.story-hero h1{font-size:clamp(57px,6vw,88px);line-height:.82;margin:18px 0}.story-hero h1 em{color:#efd29b;font-style:normal}.story-hero p{max-width:520px;line-height:1.8;color:#e7e1d7}.story-hero>img{width:100%;height:100%;min-height:480px;object-fit:contain;background:#eee8dc;object-position:center}.story-intro{text-align:center;max-width:760px;margin:70px auto 40px}.story-intro>span{color:var(--gold);font-weight:900;font-size:12px;letter-spacing:.05em}.story-intro h2{font-size:45px;margin:10px 0}.story-intro p{color:var(--muted);line-height:1.8}.story-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}.story-card{grid-column:span 4;overflow:hidden;border-radius:26px;background:var(--paper);border:1px solid var(--line);box-shadow:0 12px 35px #40382d0c}.story-card img{display:block;width:100%;height:330px;object-fit:contain;background:#eee8dc}.story-card>div{padding:22px}.story-card small{color:var(--gold);font-weight:900}.story-card h3{font-size:27px;margin:5px 0}.story-card p{color:var(--muted);margin:0}.story-card-1,.story-card-5{grid-column:span 7}.story-card-2,.story-card-6{grid-column:span 5}.story-card-1 img,.story-card-2 img,.story-card-5 img,.story-card-6 img{height:400px}.story-footer{margin:70px 0 15px;padding:38px;border-radius:28px;background:#ede4d6;display:flex;align-items:center;justify-content:center;gap:18px}.story-footer>span{width:64px;height:64px;border-radius:20px;background:var(--forest);color:#fff;display:grid;place-items:center;font:800 28px "Frank Ruhl Libre"}.story-footer small{color:var(--muted)}.story-footer h2{margin:2px 0;font-size:34px}
@media(max-width:850px){.story-hero{grid-template-columns:1fr}.story-hero>div{padding:42px 28px}.story-hero h1{font-size:58px}.story-hero>img{min-height:330px;max-height:390px}.story-intro{margin:50px 22px 30px}.story-intro h2{font-size:37px}.story-card,.story-card-1,.story-card-2,.story-card-5,.story-card-6{grid-column:span 6}.story-card img,.story-card-1 img,.story-card-2 img,.story-card-5 img,.story-card-6 img{height:280px}.memory-strip{height:75px}}
@media(max-width:540px){.story-grid{display:block}.story-card{margin-bottom:15px}.story-card img,.story-card-1 img,.story-card-2 img,.story-card-5 img,.story-card-6 img{height:310px}.story-footer{justify-content:flex-start;padding:25px}.story-footer h2{font-size:26px}.app-shell>nav button{padding-left:5px;padding-right:5px;font-size:11px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media(min-width:851px){.today-hero{background-color:var(--forest);background-size:100% 100%,auto 100%;background-position:center,left center;background-repeat:no-repeat}}
.day>.day-head{width:auto;height:auto;display:flex;align-items:center;justify-content:space-between;border-radius:0;background:transparent;box-shadow:none}.day>.day-head b{width:31px;height:31px;display:grid;place-items:center;border-radius:11px;font-weight:800}.day>.day-head em{font-style:normal;font-size:10px;font-weight:700;color:#8b7965}.day.today>.day-head{background:transparent;color:inherit;box-shadow:none}.day.today>.day-head b{background:var(--forest);color:#fff;box-shadow:0 5px 13px #173b3235}.day.today>.day-head em{color:var(--forest)}
@media(max-width:850px){.day>.day-head{display:grid;justify-items:center;justify-content:center;gap:2px}.day>.day-head em{font-size:8px;white-space:nowrap}.day>.day-head b{width:27px;height:27px}.day small{margin-top:4px}}
.task-page-head{position:relative}.task-filters{display:flex;gap:5px;margin-top:18px;padding:4px;background:#eae3d8;border-radius:999px;width:max-content}.task-filters button{border:0;background:transparent;color:var(--muted);padding:9px 16px;border-radius:999px;font-weight:800}.task-filters button.active{background:var(--paper);color:var(--forest);box-shadow:0 5px 14px #3c332916}.task-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:1100px}.task-card{padding:22px;border:1px solid var(--line);border-radius:24px;background:var(--paper);box-shadow:0 10px 35px #40382d0b}.task-card.completed{opacity:.68}.task-card>header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px}.task-card>header b,.task-card>header span{display:block}.task-card>header b{font-size:18px}.task-card>header span{font-size:11px;color:var(--muted);margin-top:3px}.assignee-stack{display:flex;direction:ltr}.assignee-stack i{width:32px;height:32px;margin-left:-7px;border:2px solid var(--paper);border-radius:50%;display:grid;place-items:center;background:var(--forest);color:#fff;font-style:normal;font-size:11px;font-weight:900}.assignee-stack i:nth-child(2n){background:var(--rose)}.assignee-stack small{color:var(--muted);font-size:10px}.task-progress{height:5px;background:#ece6dc;border-radius:99px;overflow:hidden;margin:18px 0 5px}.task-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--leaf),#7fa58f);border-radius:inherit}.subtask-count{font-size:10px;color:var(--muted);margin-bottom:12px}.subtasks{display:grid;gap:3px}.subtasks label{display:flex;grid-template:none;align-items:center;gap:9px;padding:7px 0;font-weight:600}.subtasks input{width:auto}.subtasks input:checked+span{text-decoration:line-through;color:var(--muted)}.add-subtask{display:grid;grid-template-columns:1fr auto;gap:6px;margin-top:13px}.add-subtask input{padding:10px 12px;background:#f7f3eb}.add-subtask button{width:42px;border:0;border-radius:12px;background:var(--sage);color:var(--forest);font-size:20px}.task-options{padding:16px;border-radius:18px;background:#f4f0e8;display:grid;gap:12px}.task-options>label:first-child{font-family:"Frank Ruhl Libre",serif;font-size:19px}.task-check:disabled{opacity:.45;cursor:not-allowed}@media(max-width:850px){.task-board{grid-template-columns:1fr}.task-card{padding:18px}.task-filters{width:100%}.task-filters button{flex:1}}
.calendar-tools{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px}.view-switch{display:flex;padding:4px;background:#eae3d8;border-radius:999px}.view-switch button{border:0;background:transparent;color:var(--muted);padding:9px 16px;border-radius:999px;font-weight:800}.view-switch button.active{background:var(--paper);color:var(--forest);box-shadow:0 5px 14px #3c332916}#calendar-search{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:6px}#calendar-search input,#calendar-search select{padding:10px 12px}#calendar-search button{border:0;border-radius:12px;background:var(--forest);color:#fff;padding:0 16px;font-weight:800}.calendar-nav{display:flex}.week-view{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--line);border-radius:26px;overflow:hidden;background:var(--paper);min-height:480px}.week-column{padding:0 10px 18px;border-left:1px solid var(--line)}.week-column:last-child{border:0}.week-column.today{background:#f1f6f2}.week-date{width:100%;border:0;background:transparent;display:grid;justify-items:center;gap:2px;padding:14px 4px;border-bottom:1px solid var(--line);margin-bottom:10px}.week-date span,.week-date em{font-size:10px;color:var(--muted);font-style:normal}.week-date b{font:700 27px "Frank Ruhl Libre",serif}.calendar-pill{display:grid;grid-template-columns:24px 1fr;gap:7px;padding:9px;margin:6px 0;border-radius:13px;background:#e8f0ea;border-right:3px solid var(--leaf);text-align:right}.calendar-pill.task{background:#e9eef4;border-color:var(--blue)}.calendar-pill.birthday{background:#f8eadc;border-color:var(--gold)}.calendar-pill.anniversary{background:#f5e4e7;border-color:var(--rose)}.calendar-pill.done{opacity:.55}.calendar-pill i{font-style:normal}.calendar-pill b,.calendar-pill span{display:block}.calendar-pill b{font-size:11px}.calendar-pill span{font-size:9px;color:var(--muted);margin-top:2px}.quiet-day{display:block;text-align:center;color:#aaa49a;padding:20px 0}.day-view{display:grid;grid-template-columns:180px 1fr;gap:18px}.day-view>aside{min-height:330px;padding:30px;border-radius:28px;background:var(--forest);color:#fff;display:flex;flex-direction:column;align-items:center}.day-view>aside b{font:700 82px/1 "Frank Ruhl Libre",serif}.day-view>aside span{font-size:18px}.day-view>aside em{font-style:normal;color:#efd29b;margin-top:10px}.day-agenda{padding:18px 24px;border:1px solid var(--line);border-radius:28px;background:var(--paper)}.day-agenda .calendar-pill{padding:14px}.agenda-view{display:grid;gap:12px}.agenda-view>section{display:grid;grid-template-columns:220px 1fr;border:1px solid var(--line);border-radius:22px;background:var(--paper);overflow:hidden}.agenda-view>section>header{padding:20px;background:#f0ebe2}.agenda-view>section>header b,.agenda-view>section>header span{display:block}.agenda-view>section>header span{font-size:11px;color:var(--muted);margin-top:4px}.agenda-view>section>.calendar-pill{margin:8px 14px;grid-column:2}.day small strong{color:var(--rose);font-size:9px}@media(max-width:900px){.calendar-tools{align-items:stretch;flex-direction:column}.view-switch{width:100%;overflow:auto}.view-switch button{flex:1;white-space:nowrap}#calendar-search{grid-template-columns:1fr auto}#calendar-search select{grid-row:2}#calendar-search button{grid-row:2}.week-view{overflow-x:auto;grid-template-columns:repeat(7,minmax(145px,1fr))}.day-view{grid-template-columns:1fr}.day-view>aside{min-height:auto;flex-direction:row;justify-content:center;gap:10px;padding:18px}.day-view>aside b{font-size:45px}.agenda-view>section{grid-template-columns:1fr}.agenda-view>section>.calendar-pill{grid-column:1}.calendar-head{align-items:flex-end}}
.password-field{display:grid;grid-template-columns:1fr auto;gap:7px}.password-field input{grid-column:1/-1;grid-row:1;padding-left:72px}.password-field .show-password{grid-column:2;grid-row:1;z-index:1;border:0;border-radius:12px;background:transparent;color:var(--leaf);padding:0 14px;font-weight:800}
.day{padding:8px}.day-add{width:100%;display:flex;align-items:center;justify-content:space-between;border:0;background:transparent;padding:2px;color:inherit}.day-add .day-head{display:flex;align-items:center;gap:6px}.day-add .day-head b{width:31px;height:31px;display:grid;place-items:center;border-radius:11px}.day-add .day-head em{font-style:normal;font-size:10px;color:#8b7965}.day.today .day-head b{background:var(--forest);color:#fff;box-shadow:0 5px 13px #173b3235}.day-plus{opacity:0;color:var(--leaf);font-size:18px}.day:hover .day-plus,.day-add:focus .day-plus{opacity:1}.month-items{display:grid;gap:3px;margin-top:5px}.month-item{display:flex;align-items:center;width:100%;gap:3px;border:0;border-radius:7px;background:transparent;padding:3px 4px;text-align:right;font-size:10px;color:var(--ink)}.month-item:hover,.month-item:focus{background:#fff;box-shadow:0 3px 9px #31281c12}.month-item span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.more-items{font-size:9px;color:var(--rose);padding:2px 5px}
.calendar-pill{width:100%;border-top:0;border-bottom:0;border-left:0;color:var(--ink);cursor:pointer}.calendar-pill:hover,.calendar-pill:focus{filter:brightness(.98);box-shadow:0 5px 13px #30281d13}.calendar-pill>span,.calendar-pill small{display:block}.calendar-pill small{font-size:9px;color:var(--muted);margin-top:2px}
.item-details{padding:32px}.item-details dl{display:grid;gap:0;margin:22px 0}.item-details dl>div{display:grid;grid-template-columns:105px 1fr;gap:15px;padding:14px 0;border-bottom:1px solid var(--line)}.item-details dt{color:var(--muted);font-size:12px;font-weight:800}.item-details dd{margin:0;white-space:pre-wrap;line-height:1.6}.read-only-note{padding:13px;border-radius:13px;background:#f2ede4;color:var(--muted);font-size:12px}.item,.task-card,[data-open-item]{cursor:pointer}.item:focus,.task-card:focus{outline:3px solid #456b5a25;outline-offset:3px}
.item-details .event-link{color:var(--leaf);font-weight:800;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px;overflow-wrap:anywhere}.item-details .event-link:hover,.item-details .event-link:focus{color:var(--forest);text-decoration-thickness:2px}
.item-icon.has-photo{overflow:hidden;padding:0;background:#eee}.item-icon.has-photo img{width:100%;height:100%;object-fit:contain}.birthday-portrait{display:block;width:calc(100% + 64px);height:360px;object-fit:contain;background:#eee8dc;margin:-32px -32px 28px;border-radius:22px 22px 0 0}
.daily-quote{background:linear-gradient(135deg,#173b32,#275547);color:#fff;position:relative;overflow:hidden}.daily-quote:after{content:"״";position:absolute;left:22px;top:-40px;font:800 180px "Frank Ruhl Libre";color:#ffffff0e}.daily-quote .kicker{color:#efd29b}.daily-quote blockquote{font:700 28px/1.45 "Frank Ruhl Libre",serif;margin:19px 0 26px;position:relative;z-index:1}.daily-quote footer{display:flex;justify-content:space-between;align-items:end;gap:15px}.daily-quote footer b,.daily-quote footer span{display:block}.daily-quote footer span{font-size:10px;color:#d4dfda}.archive-moment{background:#f1e6d4}.archive-moment time{display:block;color:var(--rose);font-weight:900;font-size:12px;margin:15px 0 4px}.archive-moment h2{font-size:31px;margin:0 0 8px}.archive-moment p{color:var(--muted);line-height:1.7;margin:0}
@media(max-width:600px){.item-details{padding:23px}.item-details dl>div{grid-template-columns:1fr;gap:4px}.day{padding:4px}.month-item{font-size:0;justify-content:center}.month-item .dot{margin:0}.more-items{font-size:8px;text-align:center}.day-plus{display:none}}
.profile-dialog{padding:32px;display:grid;gap:17px}.profile-identity{display:flex;align-items:center;gap:13px;padding:15px;border-radius:18px;background:#f2ede4}.profile-identity>span{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--forest);color:#fff;font-weight:900;font-size:20px}.profile-identity b,.profile-identity small{display:block}.profile-identity b{direction:ltr;text-align:right}.profile-identity small{color:var(--muted);margin-top:4px}.profile-actions{display:grid;grid-template-columns:1fr auto;gap:9px}.logout-button{border:1px solid #e2caca;border-radius:14px;background:#fff7f7;color:#944;padding:14px;font-weight:800}@media(max-width:520px){.profile-dialog{padding:23px}.profile-actions{grid-template-columns:1fr}.profile-identity b{font-size:12px}}
