:root{--bg: #f4f5f7;--surface: #ffffff;--surface-2: #eceef2;--text: #16181d;--text-dim: #6b7280;--border: #e3e6ec;--primary: #6a5cff;--primary-ink: #ffffff;--danger: #ef4444;--green: #22c55e;--shadow: 0 1px 3px rgba(0,0,0,.08), 0 4px 16px rgba(0,0,0,.05);--tabbar-h: 60px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Apple SD Gothic Neo,Noto Sans KR,sans-serif}@media(prefers-color-scheme:dark){:root{--bg: #111317;--surface: #1b1e25;--surface-2: #252932;--text: #f2f4f8;--text-dim: #9aa3b2;--border: #2c313b;--primary: #7c6bff;--shadow: 0 1px 3px rgba(0,0,0,.4), 0 6px 20px rgba(0,0,0,.3)}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%}body{background:var(--bg);color:var(--text);overscroll-behavior-y:none}#root{min-height:100%}button{font-family:inherit;cursor:pointer}input,textarea,button{font-size:16px}.app{max-width:560px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;position:relative}.topbar{position:sticky;top:0;z-index:20;padding:calc(env(safe-area-inset-top) + 12px) 18px 12px;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border)}.topbar h1{font-size:20px;font-weight:800;margin:0;letter-spacing:-.02em}.topbar .sub{font-size:12px;color:var(--text-dim);margin-top:2px}.content{flex:1;padding:14px 16px;padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 24px)}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;max-width:560px;margin:0 auto;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);display:flex;background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);border-top:1px solid var(--border)}.tabbar button{flex:1;border:0;background:transparent;color:var(--text-dim);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:11px;font-weight:600}.tabbar button.active{color:var(--primary)}.tabbar svg{width:24px;height:24px}.fab{position:fixed;z-index:31;right:max(18px,calc(50% - 262px));bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 18px);width:56px;height:56px;border-radius:50%;border:0;background:var(--primary);color:var(--primary-ink);box-shadow:0 6px 20px #6a5cff73;display:grid;place-items:center}.fab svg{width:28px;height:28px}.fab:active{transform:scale(.94)}.fab.open{transform:rotate(45deg)}.fab[disabled]{opacity:.7}.fab-spin{width:22px;height:22px;border:3px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.fab-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:#00000047}.fab-menu{position:fixed;z-index:31;right:max(18px,calc(50% - 262px));bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 18px + 56px + 12px);display:flex;flex-direction:column;align-items:flex-end;gap:10px}.fab-menu-item{display:inline-flex;align-items:center;gap:8px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:999px;padding:11px 16px;font-size:14px;font-weight:700;box-shadow:var(--shadow);cursor:pointer;white-space:nowrap;animation:insFade .18s ease}.fab-menu-item .ico{font-size:16px}.ocr-toast{position:fixed;z-index:32;left:50%;transform:translate(-50%);bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 18px + 56px + 12px);background:var(--text);color:var(--surface);padding:10px 16px;border-radius:999px;font-size:13px;font-weight:700;box-shadow:var(--shadow)}.card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:14px 16px;margin-bottom:12px;box-shadow:var(--shadow);transition:transform .08s ease}.card:active{transform:scale(.99)}.card .title{font-weight:700;font-size:16px;margin:0 0 4px;word-break:break-word}.card .body-preview{color:var(--text-dim);font-size:14px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card .meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}.badge{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:var(--text-dim);background:var(--surface-2);border-radius:999px;padding:3px 9px}.badge.date{color:var(--primary)}.badge.pin{color:#d97706}.badge svg{width:13px;height:13px}.progress{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-dim)}.progress .bar{flex:1;height:6px;background:var(--surface-2);border-radius:4px;overflow:hidden;max-width:120px}.progress .bar>i{display:block;height:100%;background:var(--green);border-radius:4px}.empty{text-align:center;color:var(--text-dim);padding:60px 20px}.empty .big{font-size:44px;margin-bottom:10px}.memo-group{margin-bottom:18px}.group-head{font-size:13px;font-weight:800;color:var(--text-dim);margin:2px 2px 10px;display:flex;align-items:center;gap:10px;white-space:nowrap}.group-head:after{content:"";flex:1;height:1px;background:var(--border)}.load-more{text-align:center;color:var(--text-dim);font-size:14px;padding:16px;cursor:pointer}.search-bar{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:9px 12px;margin-bottom:14px}.search-ico{font-size:14px;opacity:.7}.search-bar input{flex:1;border:0;background:transparent;color:var(--text);outline:none;min-width:0}.search-clear{border:0;background:var(--surface-2);color:var(--text-dim);width:22px;height:22px;border-radius:50%;font-size:11px;display:grid;place-items:center;flex:0 0 auto}.repeat-sel{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;padding:7px 10px;font-size:15px}.weekday-picker{display:flex;gap:6px;margin:4px 0 2px}.weekday-picker .wd{flex:1;height:38px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text-dim);font-weight:700}.weekday-picker .wd.on{background:var(--primary);color:#fff;border-color:var(--primary)}.repeat-hint{font-size:12.5px;color:var(--text-dim);line-height:1.5;margin:8px 2px 0}.rec-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:14px 16px;margin:20px 0 0;text-align:left}.rec-head{font-size:15px;font-weight:700;margin-bottom:6px}.rec-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--border)}.rec-info{flex:1;min-width:0}.rec-title{font-weight:600;font-size:14px}.rec-title.off{color:var(--text-dim);text-decoration:line-through}.rec-sub{font-size:12px;color:var(--text-dim);margin-top:2px}.rec-del{border:0;background:var(--surface-2);color:var(--text-dim);width:26px;height:26px;border-radius:50%;flex:0 0 auto}.seg{display:flex;gap:6px;background:var(--surface-2);border-radius:12px;padding:4px;margin-bottom:12px}.seg button{flex:1;border:0;background:transparent;color:var(--text-dim);font-weight:700;font-size:14px;padding:8px;border-radius:9px}.seg button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.income{color:var(--green)}.expense{color:var(--danger)}.ledger-summary{display:flex;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:14px;margin-bottom:14px;box-shadow:var(--shadow)}.ls-col{flex:1;text-align:center;display:flex;flex-direction:column;gap:4px}.ls-col+.ls-col{border-left:1px solid var(--border)}.ls-col span{font-size:12px;color:var(--text-dim)}.ls-col b{font-size:15px}.insight-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:14px 16px;margin-bottom:14px}.insight-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;font-size:13px;font-weight:800;color:var(--text-dim)}.insight-ai-btn{border:0;background:var(--primary);color:#fff;font-size:12px;font-weight:700;border-radius:999px;padding:6px 12px;flex:0 0 auto}.insight-ai-btn:disabled{opacity:.6}.insight-lines{list-style:none;margin:0;padding:0}.insight-lines li{font-size:14px;line-height:1.65;padding:3px 0;color:var(--text);word-break:break-word}.insight-rotate{font-size:15px;line-height:1.55;color:var(--text);min-height:24px;padding:2px 0;word-break:break-word;cursor:pointer;animation:insFade .4s ease}@keyframes insFade{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}.insight-dots{display:flex;gap:5px;margin-top:10px}.insight-dots span{width:5px;height:5px;border-radius:50%;background:var(--border);transition:background .2s}.insight-dots span.on{background:var(--primary);width:14px;border-radius:3px}.cat-breakdown{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:12px 14px;margin-bottom:16px}.cat-row{display:flex;align-items:center;gap:10px;padding:5px 0;font-size:13px}.cat-name{width:56px;color:var(--text-dim);flex:0 0 auto}.cat-bar{flex:1;height:8px;background:var(--surface-2);border-radius:4px;overflow:hidden}.cat-bar>i{display:block;height:100%;background:var(--danger);border-radius:4px}.cat-amt{width:84px;text-align:right;font-weight:600;flex:0 0 auto}.led-row{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:12px 14px;margin-bottom:8px}.led-dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto}.led-dot.income{background:var(--green)}.led-dot.expense{background:var(--danger)}.led-main{flex:1;min-width:0}.led-title{font-weight:600;font-size:15px;word-break:break-word}.led-sub{font-size:12px;color:var(--text-dim);margin-top:2px}.led-amt{font-weight:800;font-size:15px;flex:0 0 auto}.led-amt.income{color:var(--green)}.led-amt.expense{color:var(--text)}.type-toggle{display:flex;gap:8px;margin-bottom:16px}.type-toggle button{flex:1;border:1px solid var(--border);background:var(--surface);color:var(--text-dim);font-weight:700;font-size:15px;padding:12px;border-radius:12px}.type-toggle button.on.expense{background:var(--danger);color:#fff;border-color:var(--danger)}.type-toggle button.on.income{background:var(--green);color:#fff;border-color:var(--green)}.amount-input{display:flex;align-items:baseline;justify-content:center;gap:6px;margin:8px 0 18px}.amount-input input{width:auto;max-width:60vw;border:0;background:transparent;color:var(--text);font-size:36px;font-weight:800;text-align:right;outline:none}.amount-input span{font-size:18px;color:var(--text-dim)}.amount-input input:disabled{opacity:1;-webkit-text-fill-color:var(--text)}.amount-note{text-align:right;font-size:12px;color:var(--text-dim);margin:-10px 0 14px}.item-row{display:flex;align-items:center;gap:8px;padding:5px 0}.item-name{flex:1;min-width:0;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;padding:9px 11px;outline:none}.item-price{width:90px;flex:0 0 auto;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;padding:9px 11px;outline:none;text-align:right}.item-won{color:var(--text-dim);font-size:13px;flex:0 0 auto}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#00000080;display:grid;place-items:center;padding:24px}.modal{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:18px;box-shadow:var(--shadow)}.modal-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.modal-title{font-size:16px;font-weight:800}.modal-x{border:0;background:var(--surface-2);color:var(--text-dim);width:28px;height:28px;border-radius:50%;font-size:13px}.modal-input{width:100%;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:12px;padding:12px 14px;outline:none}.modal-input:focus{border-color:var(--primary)}.paste-hint{font-size:13px;color:var(--text-dim);line-height:1.5;margin:0 0 10px}.paste-area{font-family:inherit;resize:vertical;min-height:140px;line-height:1.4}.modal-btns{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.modal-btns .btn{background:var(--surface-2);color:var(--text)}.modal-btns .btn.primary{background:var(--primary);color:var(--primary-ink)}.cat-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.chip{border:1px solid var(--border);background:var(--surface);color:var(--text-dim);border-radius:999px;padding:7px 14px;font-size:14px}.chip.on{background:var(--primary);color:#fff;border-color:var(--primary)}.date-filter{display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px;margin-bottom:12px;scrollbar-width:none}.date-filter::-webkit-scrollbar{display:none}.date-filter .chip{flex:0 0 auto;cursor:pointer}.icon-btn-ghost{width:40px;height:40px;flex:0 0 auto}.custom-range{display:flex;gap:12px;margin:4px 0 12px}.custom-range label{flex:1;display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700;color:var(--text-dim)}.custom-range input{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;padding:10px;font-size:15px}.preset-chips{margin-bottom:14px}.chip.preset{display:inline-flex;align-items:center;gap:6px;max-width:100%}.chip.preset .preset-cat{font-size:11px;font-weight:700;opacity:.65;border:1px solid currentColor;border-radius:999px;padding:1px 6px}.led-cat-input,.led-memo{width:100%;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:12px;padding:12px;outline:none}.led-memo{margin-bottom:4px}.shop-add{display:flex;gap:8px;margin-bottom:16px}.shop-add input{flex:1;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:12px;padding:12px 14px;outline:none;min-width:0}.shop-add input:focus{border-color:var(--primary)}.shop-row{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:13px 14px;margin-bottom:8px}.shop-box{width:24px;height:24px;border-radius:7px;border:2px solid var(--border);background:var(--surface);flex:0 0 auto;display:grid;place-items:center;color:#fff}.shop-box svg{width:15px;height:15px}.shop-box.on{background:var(--green);border-color:var(--green)}.shop-text{flex:1;min-width:0;font-size:16px;word-break:break-word}.shop-row.done .shop-text{color:var(--text-dim);text-decoration:line-through}.shop-by{font-size:12px;color:var(--text-dim)}.shop-del{border:0;background:transparent;color:var(--text-dim);font-size:14px;padding:4px 6px;flex:0 0 auto}.shop-link{flex:0 0 auto;font-size:12px;font-weight:700;color:var(--primary);background:var(--surface-2);padding:5px 10px;border-radius:999px;text-decoration:none}.shop-url-btn{border:0;background:transparent;font-size:15px;padding:4px;flex:0 0 auto;opacity:.45}.shop-url-btn.on{opacity:1}.shop-done-head{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--text-dim);font-size:13px;font-weight:700;margin:18px 2px 10px;cursor:pointer}.shop-clear{border:0;background:var(--surface-2);color:var(--text-dim);font-size:12px;border-radius:999px;padding:5px 12px}.card-imgs{display:flex;gap:6px;margin-top:10px}.card-imgs img{width:64px;height:64px;object-fit:cover;border-radius:10px;border:1px solid var(--border)}.img-grid{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 4px}.img-thumb{position:relative;width:76px;height:76px}.img-thumb img{width:100%;height:100%;object-fit:cover;border-radius:12px;border:1px solid var(--border)}.img-del{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border-radius:50%;border:0;background:var(--danger);color:#fff;font-size:12px;line-height:1;display:grid;place-items:center}.img-add{width:76px;height:76px;border-radius:12px;border:1.5px dashed var(--border);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--text-dim);font-size:12px;cursor:pointer}.img-add .plus{font-size:20px;line-height:1}.img-thumb img{cursor:pointer}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#000000ed;display:grid;place-items:center}.lightbox img{max-width:100vw;max-height:100vh;object-fit:contain}.lb-close{position:fixed;top:calc(env(safe-area-inset-top) + 12px);right:16px;width:44px;height:44px;border-radius:50%;border:1.5px solid rgba(255,255,255,.7);background:#0009;color:#fff;font-size:20px;z-index:101;box-shadow:0 2px 10px #00000080;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.lb-nav{position:fixed;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:1.5px solid rgba(255,255,255,.5);background:#00000080;color:#fff;font-size:30px;line-height:1;padding-bottom:4px;z-index:101;box-shadow:0 2px 10px #00000080}.lb-prev{left:12px}.lb-next{right:12px}.lb-count{position:fixed;bottom:calc(env(safe-area-inset-bottom) + 20px);left:50%;transform:translate(-50%);color:#fff;font-size:14px;background:#00000073;padding:4px 12px;border-radius:999px}.result-preview{font-size:13px;color:var(--text-dim);line-height:1.5;margin:8px 0 0;padding:8px 11px;background:var(--surface-2);border-radius:10px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap;word-break:break-word}.check-preview{list-style:none;margin:8px 0 0;padding:0}.check-preview li{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text);padding:3px 0;line-height:1.35}.check-preview li.done{color:var(--text-dim);text-decoration:line-through}.cp-box{width:16px;height:16px;border:1.5px solid var(--border);border-radius:5px;flex:0 0 auto;display:grid;place-items:center;font-size:11px;color:#fff}.check-preview li.done .cp-box{background:var(--green);border-color:var(--green)}.cp-more{color:var(--text-dim);font-size:13px;padding-left:24px}.card.done{opacity:.6}.card.done .title{text-decoration:line-through;text-decoration-color:var(--text-dim)}.badge.done{color:var(--green)}.editor textarea.b.result{background:var(--surface-2);border-radius:12px;padding:12px;min-height:88px;font-size:15px}.editor{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:var(--bg);display:flex;flex-direction:column;max-width:560px;margin:0 auto}.editor .ed-top{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:calc(env(safe-area-inset-top) + 10px) 14px 10px;border-bottom:1px solid var(--border)}.editor .ed-body{flex:1;overflow-y:auto;padding:14px 16px;padding-bottom:calc(env(safe-area-inset-bottom) + 24px)}.editor input.t,.editor textarea.b{width:100%;border:0;background:transparent;color:var(--text);padding:8px 0;resize:none;outline:none}.editor input.t{font-size:20px;font-weight:800}.editor textarea.b{font-size:16px;line-height:1.6;min-height:120px}.divider{height:1px;background:var(--border);margin:12px 0}.section-label{font-size:12px;font-weight:700;color:var(--text-dim);margin:4px 0 8px;text-transform:uppercase;letter-spacing:.04em}.check-row{display:flex;align-items:center;gap:10px;padding:6px 0}.check-box{width:22px;height:22px;border-radius:7px;border:2px solid var(--border);background:var(--surface);display:grid;place-items:center;flex:0 0 auto}.check-box.on{background:var(--green);border-color:var(--green)}.check-box svg{width:14px;height:14px;color:#fff}.check-row input{flex:1;border:0;background:transparent;color:var(--text);outline:none;padding:4px 0}.check-row input.done{text-decoration:line-through;color:var(--text-dim)}.check-row .del{background:transparent;border:0;color:var(--text-dim);padding:4px 8px}.add-check{color:var(--primary);font-weight:600;background:transparent;border:0;padding:8px 0;font-size:14px}.opt-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0}.opt-row label{font-size:15px}.opt-row input[type=date]{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;padding:7px 10px}.switch{width:50px;height:30px;border-radius:999px;background:var(--surface-2);border:0;position:relative}.switch.on{background:var(--primary)}.switch i{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;transition:left .15s ease}.switch.on i{left:23px}.comment{display:flex;gap:10px;padding:10px 0;border-top:1px solid var(--border)}.avatar{width:32px;height:32px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;color:#fff;font-weight:700;font-size:13px}.comment .c-main{flex:1}.comment .c-head{display:flex;align-items:baseline;gap:8px}.comment .c-name{font-weight:700;font-size:13px}.comment .c-time{font-size:11px;color:var(--text-dim)}.comment .c-text{font-size:14px;line-height:1.5;margin-top:2px;white-space:pre-wrap;word-break:break-word}.comment .c-del{background:transparent;border:0;color:var(--text-dim);font-size:12px;padding:2px 6px}.comment-input{display:flex;gap:8px;margin-top:12px}.comment-input input{flex:1;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;padding:10px 14px;outline:none}.btn{border:0;border-radius:12px;padding:11px 16px;font-weight:700;font-size:15px}.btn.primary{background:var(--primary);color:var(--primary-ink)}.btn.ghost{background:transparent;color:var(--text-dim)}.btn.danger-ghost{background:transparent;color:var(--danger)}.btn:disabled{opacity:.5}.icon-btn{background:transparent;border:0;color:var(--text);padding:8px;display:grid;place-items:center}.icon-btn svg{width:24px;height:24px}.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.cal-head .m{font-size:18px;font-weight:800}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-grid .dow{text-align:center;font-size:11px;color:var(--text-dim);padding:4px 0;font-weight:700}.cal-cell{aspect-ratio:1;border-radius:12px;border:1px solid transparent;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:7px;font-size:14px;background:transparent;color:var(--text);position:relative}.cal-cell.muted{color:var(--text-dim);opacity:.45}.cal-cell.today{border-color:var(--primary);font-weight:800}.cal-cell.selected{background:var(--primary);color:#fff}.cal-cell .dot{position:absolute;bottom:8px;width:6px;height:6px;border-radius:50%;background:var(--primary)}.cal-cell.selected .dot{background:#fff}.day-list{margin-top:16px}.day-list h3{font-size:14px;margin:0 0 10px;color:var(--text-dim)}.auth{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;max-width:420px;margin:0 auto;padding:24px;gap:14px}.auth .logo{text-align:center;margin-bottom:8px}.auth .logo img{width:76px;height:76px}.auth h2{text-align:center;margin:4px 0 0;font-size:22px}.auth p.tag{text-align:center;color:var(--text-dim);margin:0 0 14px;font-size:14px}.auth input{width:100%;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:12px;padding:14px;outline:none}.auth input:focus{border-color:var(--primary)}.auth .err{color:var(--danger);font-size:14px;text-align:center;min-height:18px}.auth .toggle{text-align:center;color:var(--text-dim);font-size:14px}.auth .toggle b{color:var(--primary)}.profile{text-align:center;padding:30px 16px}.profile .big-avatar{width:80px;height:80px;border-radius:50%;margin:0 auto 14px;display:grid;place-items:center;color:#fff;font-size:30px;font-weight:800}.profile .uname{font-size:20px;font-weight:800}.profile .uid{font-size:13px;color:var(--text-dim);margin-top:4px}.profile .edit-name{margin-top:12px;border:1px solid var(--border);padding:8px 16px}.name-edit{display:flex;flex-direction:column;gap:10px;max-width:280px;margin:6px auto 0}.name-edit input{border:1px solid var(--primary);background:var(--surface);color:var(--text);border-radius:12px;padding:12px;text-align:center;outline:none}.name-edit-btns{display:flex;gap:8px;justify-content:center}.profile .info-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:16px;margin:12px 0;text-align:left;color:var(--text-dim);font-size:14px;line-height:1.7}.profile .push-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:14px 16px;margin:20px 0 0;text-align:left}.push-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.push-title{font-size:15px;font-weight:700}.push-sub{font-size:12.5px;color:var(--text-dim);margin-top:3px;line-height:1.4}.spinner{width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;margin:40px auto}@keyframes spin{to{transform:rotate(360deg)}}
