@import "https://fonts.googleapis.com/css2?family=Nunito:wght@400;500;600;700;800&family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&display=swap";:root{--lilac:#c9b6f2;--lilac-soft:#f4effc;--lilac-deep:#9a82d9;--blush:#f2a0b0;--blush-soft:#fdeef2;--mint:#8fcbb3;--mint-soft:#eaf7f1;--sky:#7eb6e8;--sky-soft:#eaf4fc;--peach:#f0b27a;--ink:#4a3f5c;--ink-soft:#8a8098;--paper:#fbf6f8;--surface:#fff;--line:#4a3f5c12;--shadow:0 14px 36px #aa8cbe1c;--radius:26px;--radius-sm:16px;--sidebar-w:260px;--sidebar-collapsed:88px;--font-display:"Fraunces", Georgia, serif;--font-body:"Nunito", system-ui, sans-serif}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{font-family:var(--font-body);color:var(--ink);-webkit-font-smoothing:antialiased;background-color:#0000;background-image:radial-gradient(1000px 560px at 8% -5%,#f8eef8 0%,#0000 55%),radial-gradient(900px 520px at 95% 5%,#fde8ef 0%,#0000 50%),radial-gradient(800px 480px at 70% 100%,#eef4fc 0%,#0000 48%),linear-gradient(165deg,#fbf5f8 0%,#f9f6fb 45%,#f7f8fc 100%);background-position:0 0,0 0,0 0,0 0;background-repeat:repeat,repeat,repeat,repeat;background-size:auto,auto,auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;margin:0}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}.app-layout{--current-sidebar:var(--sidebar-w);--shell-pad:18px;grid-template-columns:var(--current-sidebar) 1fr;min-height:100dvh;padding:var(--shell-pad);box-sizing:border-box;gap:16px;transition:grid-template-columns .28s;display:grid}.app-layout.nav-collapsed{--current-sidebar:var(--sidebar-collapsed)}.app-main{flex-direction:column;gap:14px;min-width:0;padding:4px 4px 8px 0;display:flex}.top-brand{display:none}.content-grid{flex:1;grid-template-columns:1fr;gap:18px;min-height:0;display:grid}.content-grid.with-today{grid-template-columns:minmax(0,1fr) 310px}.content-primary{flex-direction:column;min-width:0;min-height:0;display:flex}.content-primary>.panel{flex:1;min-height:0}.tag-filter-bar{flex:1;align-items:center;min-width:0;margin:0 0 2px;padding:2px 2px 4px;display:flex}.mobile-filters{flex-shrink:0;grid-template-columns:1fr 1fr;gap:8px;display:grid}.mobile-filters .tag-filter-bar{margin:0;padding:0}.status-dot{background:#c4b5fd;border-radius:50%;flex-shrink:0;width:8px;height:8px}.status-dot-all{background:linear-gradient(135deg,#34d399,#fb923c,#9ca3af)}.status-dot-live{background:#fb923c}.status-dot-upcoming{background:#34d399}.status-dot-past{background:#9ca3af}.tag-filter-select{width:100%}.tag-filter-toolbar{flex:0 auto;width:auto;min-width:0;max-width:none}.tag-filter-toolbar .tag-select-trigger{border:1px solid var(--line);width:100%;min-height:38px;box-shadow:none;white-space:nowrap;background:#fff;border-radius:999px;padding:8px 12px;font-size:.84rem}.tag-filter-toolbar .tag-select-trigger.is-filtered,.tag-filter-select .tag-select-trigger.is-filtered{background:#c9b6f247;border-color:#9a82d959}.tag-filter-toolbar .tag-select-menu{width:max(100%,220px);min-width:200px;left:auto;right:0}.app-layout.is-mobile .tag-filter-select{width:100%}.sidebar{top:var(--shell-pad);height:calc(100dvh - (var(--shell-pad) * 2));-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:20;background:#ffffffdb;border:1px solid #fffffff2;border-radius:28px;flex-direction:column;gap:16px;padding:22px 16px 16px;animation:.45s both rise-in;display:flex;position:sticky;overflow:hidden;box-shadow:0 16px 40px #aa8cbe1f}.sidebar.collapsed{align-items:center;padding-inline:12px}.sidebar-top{justify-content:space-between;align-items:flex-start;gap:8px;width:100%;margin-bottom:4px;display:flex}.sidebar.collapsed .sidebar-top{flex-direction:column;align-items:center}.sidebar-profile{align-items:center;gap:12px;min-width:0;display:flex}.sidebar-avatar-wrap{flex-shrink:0;position:relative}.sidebar-avatar{border:3px solid #fff;border-radius:50%;place-items:center;width:52px;height:52px;font-size:1.4rem;display:grid;box-shadow:0 10px 24px #c4b0ef59}.sidebar-profile-text strong{font-size:1.02rem;font-weight:800;font-family:var(--font-body);white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.sidebar-profile-text span{color:var(--ink-soft);font-size:.78rem;font-weight:600}.sidebar-toggle{width:32px;height:32px;color:var(--ink-soft);background:var(--lilac-soft);border-radius:11px;flex-shrink:0;place-items:center;display:grid}.sidebar-toggle:hover{background:#ebe2fb}.sidebar-nav{flex-direction:column;flex:1;gap:6px;width:100%;padding:4px 2px;display:flex;overflow:auto}.sidebar-link{width:100%;color:var(--ink-soft);text-align:left;border-radius:16px;align-items:center;gap:12px;padding:8px 10px 8px 8px;font-size:.93rem;font-weight:650;transition:background .18s,color .18s,box-shadow .18s;display:flex;position:relative}.sidebar.collapsed .sidebar-link{justify-content:center;padding:8px}.nav-icon-box{width:36px;height:36px;color:var(--ink-soft);background:#f6f2f8;border-radius:12px;flex-shrink:0;place-items:center;transition:background .18s,color .18s,box-shadow .18s;display:grid}.sidebar-link:hover:not(:disabled){color:var(--lilac-deep);background:#f4effcb3}.sidebar-link:hover:not(:disabled) .nav-icon-box{color:var(--lilac-deep);background:#ebe3fa}.sidebar-link.active{color:var(--lilac-deep);background:linear-gradient(135deg,#f3eefc 0%,#fff 100%);font-weight:800;box-shadow:0 8px 20px #9a82d91a}.sidebar-link.active .nav-icon-box{background:linear-gradient(145deg, var(--lilac), var(--lilac-deep));color:#fff;box-shadow:0 8px 16px #9a82d947}.sidebar-link .active-bar{background:var(--lilac-deep);border-radius:999px;width:3.5px;position:absolute;top:18%;bottom:18%;left:0}.sidebar.collapsed .sidebar-link .active-bar{display:none}.sidebar-link.muted,.sidebar-link:disabled{opacity:.45;cursor:not-allowed}.sidebar-phrase-block{flex-direction:column;align-items:center;gap:0;width:100%;margin-top:auto;margin-bottom:4px;display:flex}.sidebar-motivate{background:linear-gradient(155deg,#fff5f8 0%,#f6effc 100%);border:1px solid #f2a0b02e;border-radius:20px;width:100%;padding:14px;position:relative;overflow:visible;box-shadow:0 10px 24px #f2a0b01a}.bandage-sticker{filter:drop-shadow(0 4px 8px #0000001f);font-size:1.2rem;animation:4s ease-in-out infinite soft-float;position:absolute;top:-10px;right:-6px;transform:rotate(18deg)}.phrase-category{letter-spacing:.04em;text-transform:uppercase;color:var(--lilac-deep);background:#c9b6f247;border-radius:999px;margin-bottom:6px;padding:3px 8px;font-size:.68rem;font-weight:800;display:inline-block}.sidebar-motivate p{color:var(--ink);margin:0;font-size:.8rem;font-weight:650;line-height:1.45}.sidebar-cat{z-index:2;place-items:end center;width:72px;height:52px;margin-bottom:-10px;animation:3.2s ease-in-out infinite cat-bob;display:grid;position:relative}.cat-body{width:54px;height:40px;position:relative}.cat-face{background:linear-gradient(#f7d9be 0%,#f0c4a8 100%);border-radius:46% 46% 40% 40%;width:44px;height:36px;position:absolute;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 6px 14px #4a3f5c1f}.cat-ear{border-bottom:16px solid #f0c4a8;border-left:9px solid #0000;border-right:9px solid #0000;width:0;height:0;position:absolute;bottom:26px}.cat-ear.left{left:4px;transform:rotate(-18deg)}.cat-ear.right{right:4px;transform:rotate(18deg)}.cat-ear:after{content:"";border-bottom:9px solid #f8b4c4;border-left:5px solid #0000;border-right:5px solid #0000;position:absolute;top:5px;left:-5px}.cat-eye{background:#3f3550;border-radius:50%;width:5px;height:6px;animation:5s infinite cat-blink;position:absolute;top:14px}.cat-eye.left{left:11px}.cat-eye.right{right:11px}.cat-nose{background:#e89aaa;border-radius:50% 50% 60% 60%;width:6px;height:4px;position:absolute;top:21px;left:50%;transform:translate(-50%)}.cat-blush{background:#f2a0b08c;border-radius:50%;width:7px;height:4px;position:absolute;top:20px}.cat-blush.left{left:5px}.cat-blush.right{right:5px}.cat-tail{transform-origin:0;background:#f0c4a8;border-radius:8px 10px 10px 4px;width:16px;height:6px;animation:2.4s ease-in-out infinite cat-tail;position:absolute;bottom:4px;right:-2px}@keyframes cat-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes cat-blink{0%,92%,to{transform:scaleY(1)}96%{transform:scaleY(.1)}}@keyframes cat-tail{0%,to{transform:rotate(-8deg)}50%{transform:rotate(18deg)}}.sidebar-footer{border-top:1px solid var(--line);flex-direction:column;gap:4px;width:100%;margin-top:2px;padding-top:10px;display:flex}.sync-pill{text-align:center;background:var(--lilac-soft);color:var(--lilac-deep);border-radius:999px;margin:0 4px 6px;padding:6px 10px;font-size:.72rem;font-weight:800}.sync-pill.sync-error{background:var(--blush-soft);color:#b84f60}.sync-pill.sync-loading{opacity:.8}.today-panel{flex-direction:column;gap:14px;animation:.5s 50ms both rise-in;display:flex}.today-card,.quote-card{box-shadow:var(--shadow);background:#ffffffeb;border:1px solid #fffffff2;border-radius:24px;padding:18px}.today-progress-card{background:linear-gradient(160deg,#f4effc8c,#0000 55%),#fff}.today-head h3{font-family:var(--font-display);margin:0;font-size:1.25rem;font-weight:600}.today-date{color:var(--ink-soft);text-transform:capitalize;margin:4px 0 0;font-size:.85rem;font-weight:600}.progress-ring-wrap{align-items:center;gap:14px;margin-top:16px;display:flex}.progress-ring{--p:65%;background:radial-gradient(closest-side, #fff 71%, transparent 72% 100%), conic-gradient(var(--lilac-deep) var(--p), #efe8f8 0);border-radius:50%;flex-shrink:0;place-items:center;width:76px;height:76px;display:grid;box-shadow:0 8px 20px #9a82d926}.progress-ring strong{color:var(--lilac-deep);font-size:.95rem;font-weight:800}.progress-ring-wrap p{margin:0;font-size:.9rem;font-weight:750;line-height:1.35}.progress-ring-wrap span{color:var(--ink-soft);font-size:.82rem;font-weight:600}.today-section-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.today-section-head h4{align-items:center;gap:8px;margin:0;font-size:.96rem;font-weight:800;display:flex}.count-pill{color:#fff;background:#ff6b81;border-radius:999px;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:.7rem;font-style:normal;font-weight:800;display:inline-grid}.mini-add{background:var(--lilac-soft);color:var(--lilac-deep);border-radius:999px;align-items:center;gap:4px;padding:7px 12px;font-size:.78rem;font-weight:800;display:inline-flex}.today-empty{color:var(--ink-soft);margin:0;font-size:.86rem;font-weight:600}.today-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.today-list li{align-items:flex-start;gap:10px;display:flex}.today-task-btn{text-align:left;cursor:pointer;width:100%;color:inherit;font:inherit;background:0 0;border:none;align-items:flex-start;gap:10px;padding:0;display:flex}.today-task-btn:hover strong{color:var(--lilac-deep)}.check-dot{background:#fff;border:1.5px solid #d8d0e4;border-radius:7px;flex-shrink:0;place-items:center;width:20px;height:20px;margin-top:2px;display:grid}.check-dot.soft{background:var(--lilac);border-color:var(--lilac);color:#fff}.today-list strong{font-size:.88rem;font-weight:800;display:block}.today-list .task-meta{color:var(--ink-soft);align-items:center;gap:4px;margin-top:2px;font-size:.76rem;font-weight:650;display:inline-flex}.reminder-cards{gap:8px;margin:0;padding:0;list-style:none;display:grid}.reminder-item{text-align:left;border:1px solid var(--line);background:linear-gradient(160deg,#fff,#fff5f8);border-radius:16px;align-items:center;gap:10px;width:100%;padding:10px;display:flex}.reminder-icon{width:38px;height:38px;color:inherit;border-radius:13px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:1.15rem;font-weight:400;line-height:1;display:inline-flex}.reminder-item strong{font-size:.86rem;font-weight:800;display:block}.reminder-item>div>span{color:var(--ink-soft);align-items:center;gap:4px;font-size:.74rem;font-weight:650;display:inline-flex}.quote-card{background:linear-gradient(135deg,#fff7fa,#f3eefc)}.quote-card p{margin:0 0 8px;font-size:.88rem;font-weight:700;line-height:1.45}.quote-flowers{letter-spacing:2px;font-size:1.15rem}.panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:var(--radius);box-shadow:var(--shadow);background:#ffffffe0;border:1px solid #ffffffe6;animation:.4s both rise-in;overflow:hidden}.week-panel{min-height:calc(100dvh - (var(--shell-pad) * 2) - 8px);max-height:calc(100dvh - (var(--shell-pad) * 2) - 8px);border-radius:28px;flex-direction:column;display:flex}.week-hero{justify-content:space-between;align-items:flex-start;gap:16px;padding:22px 22px 14px;display:flex}.greeting-title{letter-spacing:-.02em;color:#3f3550;font-size:clamp(1.45rem,2.5vw,1.9rem);font-weight:700;font-family:var(--font-body);margin:0}.greeting-lead{font-family:var(--font-display);font-weight:600}.greeting-name{font-family:var(--font-body);font-weight:800}.heart-inline{font-family:var(--font-body);font-size:.85em}.greeting-sub{color:var(--ink-soft);margin:8px 0 0;font-size:.95rem;font-weight:600;line-height:1.4}.greeting-cheer{white-space:nowrap}.week-toolbar{flex-direction:column;align-items:stretch;gap:8px;width:min(100%,420px);display:flex}.week-toolbar-nav{align-items:center;gap:8px;width:100%;display:flex}.week-toolbar-nav .today-pill{flex-shrink:0}.week-toolbar-nav .week-nav-group{flex:1;justify-content:space-between;min-width:0}.week-toolbar-actions{align-items:center;gap:8px;width:100%;margin-left:0;display:flex}.week-toolbar-actions .tag-filter-toolbar{flex:1 1 0;width:auto;min-width:0;max-width:none}.week-toolbar-actions .primary-btn{flex:none}.week-nav-group{border:1px solid var(--line);background:#faf7fb;border-radius:999px;align-items:center;gap:6px;padding:4px;display:inline-flex}.week-range-label{color:var(--ink-soft);text-transform:capitalize;white-space:nowrap;padding:0 4px;font-size:.82rem;font-weight:750}.panel-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;display:flex}.panel-head h2{font-family:var(--font-display);margin:0;font-size:1.25rem;font-weight:600}.panel-head .meta{color:var(--ink-soft);text-transform:capitalize;font-size:.88rem;font-weight:600}.icon-btn,.primary-btn,.ghost-btn,.danger-btn{border-radius:999px;justify-content:center;align-items:center;gap:8px;transition:transform .15s,box-shadow .15s,background .15s;display:inline-flex}.icon-btn{border:1px solid var(--line);width:36px;height:36px;color:var(--ink);background:#fff}.icon-btn:hover,.ghost-btn:hover{background:var(--lilac-soft);transform:translateY(-1px)}.primary-btn{background:linear-gradient(145deg, var(--lilac), var(--lilac-deep));color:#fff;padding:10px 16px;font-weight:800;box-shadow:0 10px 22px #9a82d947}.ghost-btn{border:1px solid var(--line);background:#fff;padding:9px 14px;font-weight:700}.danger-btn{background:var(--blush-soft);color:#b84f60;padding:10px 14px;font-weight:800}.week-grid-wrap{isolation:isolate;flex:1;min-height:0;padding:0 8px 12px;overflow:auto}.week-grid{grid-template-columns:58px repeat(7,minmax(108px,1fr));min-width:900px;display:grid;position:relative}.week-grid.is-day-view{grid-template-columns:52px minmax(0,1fr);width:100%;min-width:0}.week-corner,.day-head,.hour-label{border-right:1px solid #4a3f5c0a}.day-col{border-bottom:1px solid #4a3f5c0a;border-right:1px solid #4a3f5c07}.week-corner{z-index:40;background:#fffcfe;position:sticky;top:0;left:0}.day-head{z-index:30;text-align:center;background:#fffcfe;padding:14px 8px 12px;position:sticky;top:0;box-shadow:0 1px #4a3f5c0f}.day-head .dow{text-transform:capitalize;color:var(--ink-soft);font-size:.74rem;font-weight:800;display:block}.day-head .dom{border-radius:14px;place-items:center;width:36px;height:36px;margin-top:6px;font-weight:800;display:inline-grid}.day-head.today{background:linear-gradient(#c9b6f238,#fffcfef5)}.day-head.today .dom{background:linear-gradient(145deg, var(--lilac), var(--lilac-deep));color:#fff;box-shadow:0 10px 20px #9a82d952}.day-head.today .dow{color:var(--lilac-deep)}.hour-label{z-index:20;text-align:center;color:var(--ink-soft);background:#fffcfe;height:68px;padding:10px 4px 0;font-size:.68rem;font-weight:750;position:sticky;left:0}.day-col{z-index:0;cursor:pointer;height:68px;font:inherit;color:inherit;background:0 0;border-top:none;border-left:none;width:100%;margin:0;padding:0;transition:background .15s;position:relative;overflow:visible}.day-col:hover{background:#c9b6f20b}.day-col.today-col{background:#c9b6f212}.day-col.today-col:hover{background:#c9b6f21c}.now-line{z-index:8;background:linear-gradient(90deg, var(--lilac-deep), #f4a3bfe6 55%, #c9b6f2bf);pointer-events:none;height:2px;position:absolute;left:58px;right:0;box-shadow:0 0 8px #9a82d959}.now-dot{background:var(--lilac-deep);border-radius:50%;width:10px;height:10px;position:absolute;top:50%;left:-5px;transform:translateY(-50%);box-shadow:0 0 0 3px #c9b6f266}.now-time{color:var(--lilac-deep);white-space:nowrap;letter-spacing:.01em;background:#fffcfef2;border-radius:8px;padding:2px 7px;font-size:.62rem;font-weight:800;position:absolute;top:-17px;left:10px;box-shadow:0 4px 12px #4a3f5c14}.activity-block{text-align:left;color:#3f3550;z-index:1;border:1px solid #ffffff8c;border-radius:14px;flex-direction:column;justify-content:flex-start;gap:2px;min-height:0;padding:6px 8px 6px 11px;transition:opacity .2s,filter .2s,box-shadow .2s;animation:.28s both pop-in;display:flex;position:absolute;left:5px;right:5px;overflow:visible;box-shadow:0 10px 22px #4a3f5c1a}.activity-block:hover,.activity-block:focus-visible{z-index:20}.activity-block:before{content:"";background:0 0;border-radius:999px;width:3px;position:absolute;top:6px;bottom:6px;left:0}.activity-block.status-past{opacity:.55;filter:grayscale(.45)saturate(.55)brightness(.96);z-index:1;box-shadow:0 4px 10px #4a3f5c0a}.activity-block.status-past:before{background:#9ca3af}.activity-block.status-live{opacity:1;filter:none;z-index:3;box-shadow:0 0 0 1.5px #fb923c73,0 12px 24px #4a3f5c1f}.activity-block.status-live:before{background:#fb923c;width:4px}.activity-block.status-upcoming{opacity:1;filter:none;z-index:2}.activity-block.status-upcoming:before{background:#34d399}.activity-block .act-head{align-items:center;gap:5px;width:100%;min-width:0;display:flex}.activity-block .act-emoji{flex-shrink:0;font-size:.9rem;line-height:1}.activity-block .act-title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:.76rem;font-weight:800;line-height:1.15;overflow:hidden}.activity-block .act-time{opacity:.78;white-space:nowrap;text-overflow:ellipsis;font-size:.64rem;font-weight:700;display:block;overflow:hidden}.activity-block.is-compact .act-time,.act-preview{display:none}@media (hover:hover) and (pointer:fine){.act-preview{z-index:30;pointer-events:none;text-align:left;color:#3f3550;border-radius:16px;width:max(220px,100%);min-width:200px;max-width:280px;padding:12px 14px;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 16px 40px #4a3f5c2e,0 0 0 1px #ffffff8c}.act-preview:after{content:"";border:7px solid #0000;border-top-color:var(--preview-bg,#e9d5ff);position:absolute;top:100%;left:50%;transform:translate(-50%)}.activity-block:hover .act-preview,.activity-block:focus-visible .act-preview{gap:4px;animation:.15s both fade-in;display:grid}:is(.day-col:has(.activity-block:hover),.day-col:has(.activity-block:focus-visible)){z-index:6}.act-preview-title{word-break:break-word;align-items:flex-start;gap:6px;font-size:.92rem;font-weight:800;line-height:1.25;display:flex}.act-preview-meta{opacity:.78;text-transform:capitalize;font-size:.78rem;font-weight:700;display:block}.act-preview-tag{background:#ffffff8c;border-radius:999px;align-items:center;gap:4px;width:fit-content;margin-top:4px;padding:4px 8px;font-size:.72rem;font-weight:750;display:inline-flex}}.app-layout.is-mobile .act-preview{display:none!important}.modal-backdrop{-webkit-backdrop-filter:blur(4px);z-index:1000;background:#30243e38;align-content:center;place-items:center;width:100vw;height:100dvh;padding:16px;animation:.2s both fade-in;display:grid;position:fixed;inset:0;overflow:auto}.modal{background:#fff;border-radius:28px;width:min(480px,100%);max-height:min(90dvh,720px);margin:0 auto;padding:22px;animation:.28s both rise-in;overflow:visible;box-shadow:0 24px 60px #3a304833}.modal h3{font-family:var(--font-display);margin:0 0 4px;font-size:1.35rem}.modal .sub{color:var(--ink-soft);margin:0 0 18px;font-size:.9rem}.form-grid{gap:12px;display:grid}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}label.field,.field{color:var(--ink-soft);gap:6px;font-size:.85rem;font-weight:700;display:grid}label.field input,label.field textarea,label.field select,.field>input,.field>textarea,.field>select{border:1px solid var(--line);background:#fffcfe;border-radius:14px;outline:none;width:100%;padding:11px 12px}label.field input:focus,label.field textarea:focus,label.field select:focus,.field>input:focus,.field>textarea:focus,.field>select:focus{border-color:#c4b0ef8c;box-shadow:0 0 0 4px #c4b0ef29}label.field textarea,.field>textarea{resize:vertical;min-height:90px}.check-row{align-items:center;gap:10px;font-weight:700;display:flex}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.tag-select{width:100%;position:relative}.tag-select-trigger{border:1px solid var(--line);width:100%;min-height:44px;color:var(--ink);font-size:.92rem;font-weight:700;font-family:var(--font-body);text-align:left;background:#fff;border-radius:14px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.tag-select-trigger:hover{border-color:#9a82d959}.tag-select-value{align-items:center;gap:8px;min-width:0;display:inline-flex}.tag-select-value span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tag-select-menu{z-index:70;gap:4px;width:100%;max-width:none;max-height:min(280px,50vh);padding:8px;display:grid;left:0;right:0;overflow:auto}.tag-select-option{width:100%;color:var(--ink);font-size:.9rem;font-weight:700;font-family:var(--font-body);text-align:left;background:0 0;border:none;border-radius:12px;align-items:center;gap:8px;padding:10px 12px;display:flex}.tag-select-option:hover{background:#c9b6f22e}.tag-select-option.selected{box-shadow:inset 0 0 0 1.5px #9a82d947}.notes-layout{gap:14px;padding:16px;display:grid}.notes-list{gap:12px;display:grid}.note-card{text-align:left;border:1px solid var(--line);background:linear-gradient(160deg,#fff,#fbf7fc);border-radius:18px;padding:16px}.note-card.pinned{background:linear-gradient(160deg,#fff5f8,#fff);border-color:#f2a0b047}.note-top{justify-content:space-between;gap:10px;margin-bottom:8px;display:flex}.note-card h3{margin:0;font-size:1.05rem;font-weight:800}.note-card p{color:var(--ink-soft);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:.92rem;line-height:1.45;display:-webkit-box;overflow:hidden}.note-meta{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.note-meta .time{color:var(--ink-soft);font-size:.8rem;font-weight:600}.reminder-badge{background:var(--sky-soft);color:#4a6ea0;border-radius:999px;align-items:center;gap:4px;padding:4px 8px;font-size:.75rem;font-weight:700;display:inline-flex}.empty-state{text-align:center;color:var(--ink-soft);padding:42px 20px}.empty-state .emoji{margin-bottom:8px;font-size:2.4rem;animation:3.8s ease-in-out infinite soft-float}.empty-state h3{color:var(--ink);font-family:var(--font-display);margin:0 0 6px}.profile-layout{gap:16px;padding:16px;display:grid}.profile-hero{border:1px solid var(--line);background:linear-gradient(135deg,#c4b0ef29,#0000 50%),linear-gradient(225deg,#f2a0b01f,#0000 45%),#fff;border-radius:22px;gap:14px;padding:20px;display:grid}.avatar-row{align-items:center;gap:14px;display:flex}.avatar{color:#fff;background:linear-gradient(145deg, var(--lilac-soft), #fff);border:none;border-radius:50%;place-items:center;width:72px;height:72px;font-size:1.6rem;font-weight:800;display:grid;overflow:hidden;box-shadow:0 12px 28px #c4b0ef2e}.avatar.avatar-photo{object-fit:cover;padding:0}.readonly-input{opacity:.85;cursor:default;background:#f7f3fa!important}.profile-name-hint{margin-top:-6px}.profile-hero h2{font-family:var(--font-display);margin:0;font-size:1.45rem}.profile-hero p{color:var(--ink-soft);margin:4px 0 0}.section-card{border:1px solid var(--line);background:#fff;border-radius:20px;padding:16px}.section-card h3{font-size:1.05rem;font-family:var(--font-display);margin:0 0 12px}.tags-editor{gap:10px;display:grid}.tag-edit-row{border:1px solid var(--line);background:#fbf8fc;border-radius:16px;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;padding:10px;display:grid}.tag-edit-row input[type=text]{border:1px solid var(--line);background:#fff;border-radius:12px;padding:9px 11px}.add-tag-form{grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;margin-top:8px;display:grid}.add-tag-form input[type=text]{border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px}.hint{color:var(--ink-soft);margin:8px 0 0;font-size:.82rem}.sync-row{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.sync-copy{flex:1;min-width:0}.sync-copy strong{color:var(--ink);font-size:.95rem;font-weight:600;display:block}.sync-copy p{color:var(--ink-soft);margin:6px 0 0;font-size:.85rem;line-height:1.45}.sync-switch{border:1px solid var(--line);cursor:pointer;background:#e8e4ef;border-radius:999px;flex-shrink:0;width:48px;height:28px;padding:3px;transition:background .2s,border-color .2s}.sync-switch.is-on{background:#c4b5fd;border-color:#a78bfa}.sync-switch:disabled{opacity:.6;cursor:wait}.sync-switch-knob{background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .2s;display:block;box-shadow:0 1px 3px #28143c2e}.sync-switch.is-on .sync-switch-knob{transform:translate(20px)}.sync-warn{color:#b45309}button.linkish{color:var(--accent,#7c6aad);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.picker-field{position:relative}.picker-trigger{border:1px solid var(--line);width:100%;color:var(--ink);text-align:left;background:#fff;border-radius:14px;align-items:center;gap:10px;padding:11px 13px;font-weight:700;display:inline-flex}.picker-trigger:hover{border-color:#c4b0ef8c}.picker-required{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.picker-popover{z-index:40;background:#fffcfe;border:1px solid #c4b0ef47;border-radius:18px;padding:12px;animation:.15s both fade-in;position:absolute;top:calc(100% + 8px);bottom:auto;left:0;box-shadow:0 18px 40px #4a3f5c24}.picker-popover.open-up{top:auto;bottom:calc(100% + 8px)}.date-popover{width:280px}.date-popover-head{text-transform:capitalize;justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.date-dow{text-align:center;color:var(--ink-soft);grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:6px;font-size:.72rem;font-weight:800;display:grid}.date-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.date-cell{aspect-ratio:1;color:var(--ink);background:0 0;border:none;border-radius:12px;font-weight:750}.date-cell.muted{opacity:.35}.date-cell.today{box-shadow:inset 0 0 0 1.5px #9a82d973}.date-cell.selected,.date-cell:hover{background:linear-gradient(145deg, var(--lilac), var(--lilac-deep));color:#fff}.date-popover-foot{justify-content:flex-end;margin-top:8px;display:flex}.ghost-btn.tiny{padding:6px 10px;font-size:.78rem}.time-popover{width:min(220px,70vw);padding:10px}.time-popover.dial{width:min(240px,80vw)}.time-dial{grid-template-columns:1fr 1fr;gap:8px;display:grid}.time-col{background:#c9b6f21a;border-radius:14px;gap:2px;max-height:200px;padding:4px;display:grid;overflow:auto}.time-col-label{z-index:1;text-align:center;color:var(--ink-soft);background:#f7f2fb;padding:4px 0 6px;font-size:.68rem;font-weight:800;position:sticky;top:0}.time-dial-option{text-align:center;color:var(--ink);font-variant-numeric:tabular-nums;background:0 0;border:none;border-radius:10px;padding:8px 6px;font-weight:750}.time-dial-option:hover,.time-dial-option.selected{color:var(--lilac-deep);background:#c9b6f259}.time-dial-foot{justify-content:space-between;align-items:center;gap:8px;margin-top:10px;display:flex}.time-dial-foot strong{color:var(--lilac-deep);font-size:.92rem}.primary-btn.tiny,.primary-btn:disabled{opacity:1}.primary-btn.tiny{padding:7px 12px;font-size:.78rem}.primary-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.emoji-picker-wrap,.pastel-picker-wrap{position:relative}.emoji-circle-btn{width:42px;height:42px;box-shadow:none;background:#c9b6f22e;border:none;border-radius:50%;place-items:center;padding:0;font-size:1.25rem;display:grid}.emoji-circle-btn:hover{background:#c9b6f252}.emoji-grid{grid-template-columns:repeat(8,1fr);gap:4px;display:grid}.emoji-option{aspect-ratio:1;background:0 0;border:none;border-radius:12px;font-size:1.2rem}.emoji-option:hover,.emoji-option.selected{background:#c9b6f247}.pastel-swatch-btn{border:none;border-radius:50%;width:34px;height:34px;padding:0;box-shadow:inset 0 0 0 1px #4a3f5c14}.pastel-popover{width:200px;min-width:200px;max-width:200px;left:auto;right:0}.pastel-grid{grid-template-columns:repeat(5,28px);justify-content:space-between;gap:8px;display:grid}.pastel-option{border:none;border-radius:50%;flex:none;width:28px;height:28px;padding:0;box-shadow:inset 0 0 0 1px #4a3f5c14}.pastel-option.selected{box-shadow:0 0 0 2px #fff,0 0 0 4px #9a82d98c}.emoji-popover{width:280px;min-width:280px;max-width:min(280px,85vw);max-height:260px;overflow:auto}.confirm-backdrop{z-index:60}.confirm-modal{max-width:380px}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes soft-float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.sidebar-scrim,.mobile-pane-tabs{display:none}.app-layout.is-mobile,.app-layout.is-mobile.nav-collapsed{grid-template-columns:unset;padding:max(10px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));flex-direction:column;gap:10px;height:100dvh;min-height:100dvh;display:flex;overflow:hidden}.app-layout.is-mobile .app-main{flex:1;gap:10px;width:100%;min-width:0;height:auto;min-height:0;padding:0;overflow:hidden}.app-layout.is-mobile .sidebar{left:max(12px, env(safe-area-inset-left));top:max(12px, env(safe-area-inset-top));width:min(300px,100vw - 28px);height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));opacity:0;pointer-events:none;z-index:920;align-items:stretch;padding:22px 16px 16px;transition:transform .34s cubic-bezier(.22,1,.36,1),opacity .28s;animation:none;transform:translate(calc(-100% - 28px));position:fixed!important}.app-layout.is-mobile:not(.nav-collapsed) .sidebar{opacity:1;pointer-events:auto;transform:translate(0,0);box-shadow:20px 0 60px #3a304838}.app-layout.is-mobile .top-brand{flex-shrink:0;align-items:center;gap:10px;padding:2px 2px 0;display:flex}.app-layout.is-mobile .mobile-menu-btn{flex-shrink:0;width:44px;height:44px}.app-layout.is-mobile .brand-mark-btn{cursor:pointer;background:0 0;border:none;border-radius:12px;flex-shrink:0;place-items:center;padding:0;display:grid}.app-layout.is-mobile .brand-mark-btn:active{transform:scale(.96)}.app-layout.is-mobile .brand-mark-mini{object-fit:cover;background:#f4effc;border-radius:12px;width:40px;height:40px;display:block;box-shadow:0 0 0 1px #c9b6f259}.app-layout.is-mobile .top-brand-text{flex:1;min-width:0}.app-layout.is-mobile .top-brand strong{font-family:var(--font-display);white-space:nowrap;text-overflow:ellipsis;font-size:1.05rem;display:block;overflow:hidden}.app-layout.is-mobile .top-brand span{color:var(--ink-soft);font-size:.78rem;font-weight:600}.app-layout.is-mobile .mobile-pane-tabs{border:1px solid var(--line);background:#ffffffb8;border-radius:16px;flex-shrink:0;grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid;box-shadow:0 8px 20px #aa8cbe1a}.app-layout.is-mobile .mobile-pane-tabs button{min-height:44px;color:var(--ink-soft);font-size:.92rem;font-weight:800;font-family:var(--font-body);background:0 0;border:none;border-radius:12px;padding:11px 12px}.app-layout.is-mobile .mobile-pane-tabs button.active{color:var(--ink);background:#fff;box-shadow:0 6px 16px #9a82d929}.app-layout.is-mobile .content-grid.mobile-pane{flex-direction:column;flex:1;gap:0;min-height:0;display:flex;overflow:hidden}.app-layout.is-mobile .content-grid.mobile-pane .content-primary,.app-layout.is-mobile .content-grid.mobile-pane .today-panel{-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow:auto}.app-layout.is-mobile .today-panel{grid-template-columns:1fr;align-content:start;gap:12px;padding-bottom:8px}.app-layout.is-mobile .week-panel{border-radius:22px;height:100%;min-height:0;max-height:none}.app-layout.is-mobile .week-panel.day-mode{flex-direction:column;display:flex}.app-layout.is-mobile .week-hero{flex-direction:column;flex-shrink:0;gap:10px;padding:12px 12px 8px}.app-layout.is-mobile .greeting-title{font-size:1.2rem}.app-layout.is-mobile .greeting-sub{display:none}.app-layout.is-mobile .week-toolbar{flex-direction:column;align-items:stretch;gap:8px;width:100%}.app-layout.is-mobile .week-toolbar-nav{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;width:100%;display:grid}.app-layout.is-mobile .week-toolbar.is-day-mode .week-toolbar-nav{grid-template-columns:auto minmax(0,1fr)}.app-layout.is-mobile .week-toolbar-nav .week-nav-group{justify-content:space-between;width:auto;min-width:0}.app-layout.is-mobile .week-toolbar .today-pill,.app-layout.is-mobile .week-toolbar .primary-btn{justify-content:center;min-height:44px}.app-layout.is-mobile .week-add-wide{justify-content:center;width:100%;min-height:46px;font-size:.95rem}.app-layout.is-mobile .week-toolbar-actions{width:100%;margin-left:0}.app-layout.is-mobile .week-nav-group .icon-btn{flex-shrink:0;width:40px;height:40px}.app-layout.is-mobile .week-range-label{text-align:center;white-space:normal;text-transform:capitalize;flex:1;font-size:.9rem}.app-layout.is-mobile .week-grid-wrap{padding:0 6px 10px}.app-layout.is-mobile .week-grid.is-day-view{grid-template-columns:48px minmax(0,1fr);width:100%;min-width:0}.app-layout.is-mobile .week-grid.is-day-view .now-line{left:48px}.app-layout.is-mobile .hour-label{padding-right:4px;font-size:.68rem}.app-layout.is-mobile .activity-block{border-radius:12px;padding:8px 10px;left:4px;right:4px}.app-layout.is-mobile .activity-block .act-title{font-size:.88rem}.app-layout.is-mobile .activity-block .act-time{font-size:.72rem}.app-layout.is-mobile .form-row{grid-template-columns:1fr}.app-layout.is-mobile .tag-edit-row{grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:8px 10px}.app-layout.is-mobile .tag-edit-row input[type=text]{width:100%;min-width:0;padding:8px 10px}.app-layout.is-mobile .tag-edit-row .actions{grid-column:auto;justify-content:center;display:flex}.app-layout.is-mobile .add-tag-form{grid-template-columns:auto minmax(0,1fr) auto;gap:8px}.app-layout.is-mobile .add-tag-form .primary-btn{grid-column:1/-1;justify-content:center;min-height:44px}.app-layout.is-mobile .profile-layout,.app-layout.is-mobile .section-card{padding-inline:0}.app-layout.is-mobile .panel-head{padding:14px 14px 10px}.app-layout.is-mobile .section-card{padding:14px}.app-layout.is-mobile .tags-editor{gap:8px}.app-layout.is-mobile .check-dot{border-radius:9px;width:28px;height:28px}.app-layout.is-mobile .mini-add{min-height:40px;padding:10px 14px}.app-layout.is-mobile .today-task-btn{min-height:48px;padding:10px 4px}.app-layout.is-mobile .emoji-popover,.app-layout.is-mobile .pastel-popover,.app-layout.is-mobile .date-popover,.app-layout.is-mobile .time-popover{z-index:60;max-width:min(280px,100vw - 32px)}.app-layout.is-mobile .sidebar-scrim{-webkit-backdrop-filter:blur(2px);z-index:910;opacity:1;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#30243e47;border:none;margin:0;padding:0;transition:opacity .3s;display:block;position:fixed;inset:0}.app-layout.is-mobile .sidebar-scrim.is-closed{opacity:0;pointer-events:none}@media (width<=1100px){.content-grid.with-today{grid-template-columns:1fr}.today-panel{grid-template-columns:repeat(2,1fr);display:grid}.quote-card{grid-column:1/-1}.week-grid:not(.is-day-view){grid-template-columns:48px repeat(7,minmax(92px,1fr));min-width:720px}}@media (width<=1024px){body{background-attachment:scroll}.modal-backdrop{padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));align-content:center;place-items:center}.modal{border-radius:24px;width:min(480px,100%);max-height:min(88dvh,720px);margin:0;overflow:auto}}.sidebar-avatar-img{object-fit:cover;padding:0;font-size:0}.auth-boot{place-items:center;min-height:100dvh;padding:24px;display:grid}.auth-boot-card{text-align:center;animation:.45s both rise-in}.auth-boot-logo{width:min(180px,60vw);height:auto;margin:0 auto 14px;animation:3.5s ease-in-out infinite soft-float;display:block}.auth-boot-mark{background:linear-gradient(145deg, var(--lilac), var(--lilac-deep));border-radius:22px;place-items:center;width:64px;height:64px;margin:0 auto 12px;font-size:1.6rem;animation:3.5s ease-in-out infinite soft-float;display:grid;box-shadow:0 14px 30px #9a82d947}.auth-boot-card p{color:var(--ink-soft);margin:0;font-weight:700}.auth-page{--mx:.5;--my:.5;isolation:isolate;background:radial-gradient(980px 560px at 6% -8%,#d8b4fe 0%,#0000 58%),radial-gradient(860px 520px at 100% 0,#f9a8d4 0%,#0000 54%),radial-gradient(760px 460px at 72% 108%,#6ee7b7 0%,#0000 52%),radial-gradient(640px 400px at 40% 40%,#a5b4fc 0%,#0000 45%),linear-gradient(165deg,#ede9fe 0%,#fce7f3 42%,#d1fae5 100%);place-items:center;min-height:100dvh;padding:32px 18px;display:grid;position:relative;overflow:hidden}.auth-bg{pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden}.auth-glow{width:52vmax;height:52vmax;left:calc(var(--mx) * 100% - 26vmax);top:calc(var(--my) * 100% - 26vmax);filter:blur(8px);opacity:.9;will-change:left, top;background:radial-gradient(circle,#ffffff8c 0%,#ddd6fe47 38%,#0000 70%);border-radius:50%;position:absolute}.auth-orb{filter:blur(34px);opacity:.88;will-change:transform;border-radius:50%;position:absolute}.auth-orb-a{width:400px;height:400px;transform:translate3d(calc((var(--mx) - .5) * 110px), calc((var(--my) - .5) * 80px), 0);background:#a78bfac7;top:-110px;left:-90px}.auth-orb-b{width:360px;height:360px;transform:translate3d(calc((var(--mx) - .5) * -90px), calc((var(--my) - .5) * -70px), 0);background:#f472b694;bottom:-70px;right:-100px}.auth-orb-c{width:280px;height:280px;transform:translate3d(calc((var(--mx) - .5) * 70px), calc((var(--my) - .5) * -55px), 0);background:#34d39980;top:18%;right:18%}.auth-orb-d{width:220px;height:220px;transform:translate3d(calc((var(--mx) - .5) * -60px), calc((var(--my) - .5) * 90px), 0);background:#7dd3fc7a;bottom:12%;left:22%}@media (prefers-reduced-motion:reduce){.auth-glow,.auth-orb{transform:none!important}.auth-glow{top:18%;left:24%}}.auth-panel{z-index:1;text-align:center;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffe0;border:1px solid #fffffff2;border-radius:28px;width:min(440px,100%);padding:22px 24px 26px;animation:.5s both rise-in;position:relative;overflow:hidden;box-shadow:0 28px 70px #7c3aed2e}.med-rain{pointer-events:none;z-index:5;position:absolute;inset:0;overflow:hidden}.med-rain-drop{opacity:0;will-change:transform, opacity;filter:drop-shadow(0 6px 12px #4a3f5c2e);line-height:1;animation-name:med-rain-fall;animation-timing-function:cubic-bezier(.22,.61,.36,1);animation-fill-mode:both;position:absolute;top:-48px}@keyframes med-rain-fall{0%{opacity:0;transform:translate(0,0)rotate(-20deg)scale(.7)}8%{opacity:1;transform:translate3d(calc(var(--drift,0px) * .2), 36px, 0) rotate(8deg) scale(1.15)}70%{opacity:1}to{opacity:0;transform:translate3d(var(--drift,0px), 520px, 0) rotate(42deg) scale(.85)}}.auth-logo-wrap{z-index:1;place-items:center;width:min(220px,70%);height:168px;margin:2px auto 6px;display:grid;position:relative;overflow:visible}.auth-logo{object-fit:contain;transform-origin:50%;filter:drop-shadow(0 14px 28px #7c3aed38);width:220px;height:auto;animation:5s ease-in-out infinite logo-float;display:block;transform:scale(1.55)}.auth-title{z-index:1;font-family:var(--font-body);color:#1f2937;letter-spacing:-.03em;margin:0;font-size:1.85rem;font-weight:800;position:relative}.auth-subtitle,.auth-stack{z-index:1;position:relative}.auth-subtitle{color:#6b7280;margin:8px 0 0;font-size:.98rem;font-weight:500;line-height:1.45}.auth-stack{gap:16px;margin-top:26px;display:grid}.auth-google{color:#374151;background:#fff;border:1px solid #e5e7eb;border-radius:14px;justify-content:center;align-items:center;gap:12px;width:100%;padding:14px 16px;font-size:1rem;font-weight:600;transition:border-color .15s,background .15s,transform .15s;display:flex;box-shadow:0 1px 2px #0000000a}.auth-google:hover:not(:disabled){background:#faf5ff;border-color:#ddd6fe;transform:translateY(-1px)}.auth-google:disabled{opacity:.55;cursor:wait}.auth-google .google-svg{width:22px;height:22px}.auth-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:12px;margin:0;padding:12px 14px;font-size:.88rem;font-weight:600}.auth-divider{justify-content:center;align-items:center;margin:2px 0;display:flex;position:relative}.auth-divider:before{content:"";border-top:1px solid #e5e7eb;position:absolute;inset:50% 0 auto}.auth-divider span{z-index:1;color:#6b7280;background:#ffffffeb;padding:0 12px;font-size:.88rem;font-weight:500;position:relative}.auth-secondary{border:2px solid var(--lilac-deep);width:100%;color:var(--lilac-deep);background:#fff;border-radius:14px;justify-content:center;align-items:center;padding:14px 16px;font-size:1rem;font-weight:700;transition:background .15s,transform .15s;display:flex}.auth-secondary:hover{background:#faf5ff;transform:translateY(-1px)}.auth-legal{color:#9ca3af;margin:4px 0 0;font-size:.78rem;font-weight:500;line-height:1.45}.auth-legal a{color:var(--lilac-deep);font-weight:650}.auth-legal a:hover{text-decoration:underline}@keyframes auth-drift{0%,to{transform:translate(0)scale(1)}50%{transform:translate(18px,-14px)scale(1.05)}}@keyframes logo-float{0%,to{transform:translateY(0)scale(1.55)}50%{transform:translateY(-5px)scale(1.58)}}.legal-page{color:#4b5563;background:#fff;min-height:100dvh}.legal-inner{max-width:720px;margin:0 auto;padding:48px 22px 72px}.legal-back{color:var(--lilac-deep);font-size:.9rem;font-weight:650;display:inline-flex}.legal-back:hover{text-decoration:underline}.legal-brand{align-items:center;gap:10px;margin:28px 0 18px;display:flex}.legal-brand img{object-fit:cover;border-radius:10px;width:36px;height:36px}.legal-brand span{color:#1f2937;font-weight:800}.legal-inner h1{color:#111827;letter-spacing:-.02em;margin:0;font-size:1.85rem;font-weight:800}.legal-updated{color:#9ca3af;margin:8px 0 0;font-size:.85rem}.legal-body{gap:28px;margin-top:36px;font-size:.95rem;line-height:1.65;display:grid}.legal-body h2{color:#111827;margin:0 0 8px;font-size:1.05rem;font-weight:750}.legal-body p{margin:0}.legal-body p+p{margin-top:10px}.legal-body ul{margin:8px 0 0;padding-left:1.2rem}.legal-body li+li{margin-top:4px}.legal-body a{color:var(--lilac-deep);font-weight:650}.legal-body a:hover{text-decoration:underline}.login-screen{place-items:center;min-height:100dvh;padding:28px 18px;display:grid;position:relative;overflow:hidden}.login-glow{filter:blur(40px);pointer-events:none;border-radius:50%;position:absolute}.login-glow-a{background:#c9b6f273;width:420px;height:420px;animation:7s ease-in-out infinite soft-float;top:-120px;left:-80px}.login-glow-b{background:#f2a0b059;width:380px;height:380px;animation:6s ease-in-out infinite reverse soft-float;bottom:-80px;right:-100px}.login-glow-c{background:#b8e4d059;width:260px;height:260px;animation:8s ease-in-out infinite soft-float;top:18%;right:18%}.login-card{z-index:2;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);text-align:center;background:#ffffffe6;border:1px solid #fffffff2;border-radius:32px;width:min(420px,100%);padding:32px 28px 28px;animation:.5s both rise-in;position:relative;box-shadow:0 24px 60px #9a82d929}.login-welcome{font-family:var(--font-display);color:#3f3550;letter-spacing:-.02em;margin:0 0 8px;font-size:1.55rem;font-weight:600}.login-logo{object-fit:contain;width:min(280px,86%);height:auto;margin:0 auto 22px;animation:5s ease-in-out infinite soft-float;display:block}.login-actions{gap:10px;display:grid}.login-card-clean .google-btn{margin-top:0}.google-btn-secondary{background:linear-gradient(145deg, var(--lilac-soft), #fff);color:var(--lilac-deep);border-color:#9a82d938}.google-btn-secondary:hover:not(:disabled){background:#f3eefc}.login-hint{color:var(--ink-soft);margin:14px 0 0;font-size:.78rem;font-weight:650}.login-badge{color:#fff;background:linear-gradient(145deg, var(--lilac), var(--lilac-deep));border-radius:20px;place-items:center;width:58px;height:58px;margin:0 auto 16px;animation:4.5s ease-in-out infinite soft-float;display:grid;box-shadow:0 14px 28px #9a82d94d}.login-brand h1{font-family:var(--font-display);letter-spacing:-.03em;color:#3f3550;margin:0;font-size:2rem;font-weight:700}.login-brand p{color:var(--ink-soft);margin:6px 0 0;font-weight:650}.login-hero-copy{margin:22px 0 18px}.login-hero-copy h2{font-family:var(--font-display);color:#3f3550;margin:0;font-size:1.45rem;font-weight:600}.login-hero-copy h2 span{font-family:var(--font-body)}.login-hero-copy p{color:var(--ink-soft);margin:8px 0 0;font-size:.95rem;font-weight:600;line-height:1.45}.login-perks{text-align:left;gap:8px;margin:0 0 22px;padding:0;list-style:none;display:grid}.login-perks li{border:1px solid var(--line);color:var(--ink);background:linear-gradient(135deg,#faf7fc,#fff5f8);border-radius:16px;align-items:center;gap:10px;padding:10px 12px;font-size:.9rem;font-weight:700;display:flex}.perk-icon{width:28px;height:28px;color:var(--lilac-deep);background:#fff;border-radius:10px;flex-shrink:0;place-items:center;display:grid;box-shadow:0 4px 10px #9a82d91f}.google-btn{color:#3f3550;background:#fff;border:1px solid #4a3f5c1f;border-radius:999px;justify-content:center;align-items:center;gap:10px;width:100%;padding:14px 18px;font-weight:800;transition:transform .15s,box-shadow .15s,background .15s;display:inline-flex;box-shadow:0 12px 28px #4a3f5c14}.google-btn:hover:not(:disabled){background:#fffcfe;transform:translateY(-2px);box-shadow:0 16px 32px #9a82d929}.google-btn:disabled{opacity:.7;cursor:wait}.login-error{color:#b84f60;margin:12px 0 0;font-size:.85rem;font-weight:700}.login-footnote{color:var(--ink-soft);margin:16px 0 0;font-size:.78rem;font-weight:600;line-height:1.4}.login-floaters{pointer-events:none;z-index:1;position:absolute;inset:0}.floater{filter:drop-shadow(0 8px 16px #4a3f5c1f);font-size:1.5rem;animation:5s ease-in-out infinite soft-float;position:absolute}.floater.f1{animation-delay:.2s;top:14%;left:10%}.floater.f2{font-size:1.2rem;animation-delay:.8s;top:22%;right:12%}.floater.f3{animation-delay:1.2s;bottom:18%;left:14%}.floater.f4{animation-delay:.5s;bottom:14%;right:16%}@media (width<=560px){.login-card{padding:28px 20px 22px}.login-brand h1{font-size:1.7rem}.floater{opacity:.55}}.landing{min-height:100dvh;color:var(--ink);background:#faf7f5;grid-template-columns:1fr 1fr;display:grid}.landing-stage{--mx:.5;--my:.5;background:radial-gradient(980px 560px at 6% -8%,#d8b4fe 0%,#0000 58%),radial-gradient(860px 520px at 100% 0,#f9a8d4 0%,#0000 54%),radial-gradient(760px 460px at 72% 108%,#6ee7b7 0%,#0000 52%),radial-gradient(640px 400px at 40% 40%,#a5b4fc 0%,#0000 45%),linear-gradient(165deg,#ede9fe 0%,#fce7f3 42%,#d1fae5 100%);place-items:center;display:grid;position:relative;overflow:hidden}.landing-stage-bg{pointer-events:none;position:absolute;inset:0;overflow:hidden}.landing-glow{width:52vmax;height:52vmax;left:calc(var(--mx) * 100% - 26vmax);top:calc(var(--my) * 100% - 26vmax);filter:blur(8px);opacity:.9;will-change:left, top;background:radial-gradient(circle,#ffffff8c 0%,#ddd6fe47 38%,#0000 70%);border-radius:50%;position:absolute}.landing-orb{filter:blur(34px);opacity:.88;will-change:transform;border-radius:50%;position:absolute}.landing-orb-a{width:400px;height:400px;transform:translate3d(calc((var(--mx) - .5) * 110px), calc((var(--my) - .5) * 80px), 0);background:#a78bfac7;top:-110px;left:-90px}.landing-orb-b{width:360px;height:360px;transform:translate3d(calc((var(--mx) - .5) * -90px), calc((var(--my) - .5) * -70px), 0);background:#f472b694;bottom:-70px;right:-100px}.landing-orb-c{width:280px;height:280px;transform:translate3d(calc((var(--mx) - .5) * 70px), calc((var(--my) - .5) * -55px), 0);background:#34d39980;top:18%;right:18%}.landing-orb-d{width:220px;height:220px;transform:translate3d(calc((var(--mx) - .5) * -60px), calc((var(--my) - .5) * 90px), 0);background:#7dd3fc7a;bottom:12%;left:22%}.landing-stage-cat{z-index:1;object-fit:contain;filter:drop-shadow(0 28px 48px #4a3f5c2e);width:min(88%,560px);height:auto;animation:6s ease-in-out infinite landing-float;position:relative}.landing-panel{background:#faf7f5;border-left:1px solid #4a3f5c0f;flex-direction:column;min-height:100dvh;display:flex}.landing-top{justify-content:space-between;align-items:center;gap:16px;padding:22px clamp(24px,4vw,48px);display:flex}.landing-brand-text{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);margin:0;font-size:1rem;font-weight:600}.landing-nav{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.landing-nav a{color:var(--ink-soft);font-size:.88rem;font-weight:600;text-decoration:none}.landing-nav a:hover{color:var(--ink)}.landing-nav-login{background:#fff;border:1px solid #4a3f5c1a;border-radius:999px;padding:8px 14px;color:var(--ink)!important}.landing-copy{flex-direction:column;flex:1;justify-content:center;max-width:34rem;padding:12px clamp(24px,5vw,56px) 28px;display:flex}.landing-name{font-family:var(--font-display);letter-spacing:-.03em;color:var(--ink);margin:0;font-size:clamp(2.8rem,5.5vw,4rem);font-weight:650;line-height:1.02;animation:.65s both landing-rise}.landing-lead{color:var(--ink-soft);margin:20px 0 0;font-size:1.08rem;line-height:1.55;animation:.65s 80ms both landing-rise}.landing-cta{flex-wrap:wrap;gap:12px;margin-top:28px;animation:.65s .14s both landing-rise;display:flex}.landing-btn{border-radius:999px;justify-content:center;align-items:center;padding:13px 22px;font-size:.95rem;font-weight:700;text-decoration:none;transition:transform .18s,box-shadow .18s,background .18s;display:inline-flex}.landing-btn:hover{transform:translateY(-1px)}.landing-btn.primary{color:#fff;background:#4a3f5c;box-shadow:0 12px 28px #4a3f5c2e}.landing-btn.primary:hover{background:#3a3149}.landing-btn.ghost{color:var(--ink);background:0 0;border:1px solid #4a3f5c29}.landing-purpose{border-top:1px solid #4a3f5c14;margin-top:40px;padding-top:28px;animation:.65s .2s both landing-rise}.landing-purpose h2{font-family:var(--font-display);color:var(--ink);margin:0 0 10px;font-size:1.05rem;font-weight:600}.landing-purpose p{color:var(--ink-soft);margin:0;font-size:.92rem;line-height:1.55}.landing-legal-inline{flex-wrap:wrap;align-items:center;gap:8px;display:flex;margin-top:14px!important;font-size:.85rem!important}.landing-legal-inline a{color:var(--ink);border-bottom:1px solid #4a3f5c33;font-weight:650;text-decoration:none}.landing-legal-inline a:hover{border-bottom-color:var(--ink)}.landing-foot{color:var(--ink-soft);flex-wrap:wrap;justify-content:space-between;gap:12px;padding:18px clamp(24px,4vw,48px) 24px;font-size:.8rem;display:flex}.landing-foot a{color:var(--ink-soft);text-decoration:none}.landing-foot a:hover{color:var(--ink)}@keyframes landing-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes landing-float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@media (width<=900px){.landing{grid-template-columns:1fr}.landing-stage{min-height:42vh;max-height:46vh}.landing-stage-cat{width:min(72%,280px)}.landing-panel{border-left:none;min-height:auto}.landing-copy{justify-content:flex-start;max-width:none;padding-top:8px}.landing-name{font-size:clamp(2.2rem,10vw,3rem)}}@media (prefers-reduced-motion:reduce){.landing-glow,.landing-orb{margin-top:-26vmax;margin-left:-26vmax;top:40%!important;left:50%!important;transform:none!important}.landing-stage-cat,.landing-name,.landing-lead,.landing-cta,.landing-purpose{animation:none}}
