:root{--coral-50:#fff6f2;--coral-100:#ffe8df;--coral-200:#ffd3c2;--coral-300:#ffb59c;--coral-400:#ff9a80;--coral-600:#e2483d;--coral-700:#c0392f;--ink-900:#33232b;--ink-700:#5b4a52;--ink-500:#7a6672;--ink-300:#a8959f;--line:#ede4e8;--line-strong:#dccfd5;--bg:#fffbf8;--surface:#fff;--surface-alt:#fff6f2;--ok:#3f7f58;--ok-bg:#eaf4ee;--warn:#9a5f14;--warn-bg:#fbf1e2;--danger:#c0392f;--danger-bg:#fcebe9;--info:#3f5f96;--info-bg:#ebf0f8;--mood-1:#f5b942;--mood-2:#7fbfa0;--mood-3:#ff8e6e;--mood-4:#b5a79b;--mood-5:#c98fb8;--mood-6:#7fa8c9;--accent-50:var(--coral-50);--accent-100:var(--coral-100);--accent-200:var(--coral-200);--accent-300:var(--coral-300);--accent-400:var(--coral-400);--accent-600:var(--coral-600);--accent-700:var(--coral-700);--on-accent:#fff;--bg1:#fff6f2;--bg2:#fdeef3;--bg3:#f3f1fb;--r-sm:12px;--r-md:16px;--r-lg:24px;--r-xl:32px;--r-full:999px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--shadow-sm:0 1px 2px #3d2b330a, 0 2px 8px #3d2b330d;--shadow-md:0 8px 22px -10px #3d2b3329;--shadow-lg:0 20px 44px -20px #3d2b3342;--fs-display:30px;--fs-h1:24px;--fs-h2:20px;--fs-h3:16px;--fs-body:16px;--fs-sm:14px;--fs-caption:12px;--ease:cubic-bezier(.22, 1, .36, 1);--dur-fast:.16s;--dur:.24s;--dur-slow:.32s;--ink:var(--ink-900);--muted:var(--ink-500);--card:var(--surface);--shadow:var(--shadow-md);--accentA:var(--accent-400);--accentB:var(--accent-300);--accentStrong:var(--accent-600);--iconA:var(--accent-400);--iconB:var(--accent-300);--tagOnA:var(--accent-100);--tagOnB:var(--accent-200);--normA:var(--accent-200);--normB:var(--accent-300);--maxA:var(--accent-400);--maxB:var(--accent-600);--minA:#bfe0f7;--minB:#aed4f5;--okA:#9fd8b0;--okB:#bfe9d0;--w1:var(--mood-1);--w2:var(--mood-2);--w3:var(--mood-3);--w4:var(--mood-4);--w5:var(--mood-5);--w6:var(--mood-6);--phone1:var(--bg1);--phone2:var(--bg2);--phone3:var(--bg3);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;font-family:Quicksand,Nunito,Noto Sans SC,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}a,button,[role=button],input,textarea,select,label,summary{touch-action:manipulation}*,:before,:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);background:var(--bg);background-image:linear-gradient(160deg, var(--bg1) 0%, var(--bg2) 52%, var(--bg3) 100%);min-height:100vh;color:var(--ink-900);font-family:Quicksand,Nunito,Noto Sans SC,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:var(--fs-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior-y:none;background-attachment:fixed;margin:0;padding:0;line-height:1.6}@supports (height:100dvh){html,body{min-height:100dvh}}input,textarea,select{font-family:inherit;font-size:max(16px,1em)}@supports (-webkit-touch-callout:none){input:not([type=checkbox]):not([type=radio]),textarea,select{font-size:max(16px,1em)!important}}#app{background:0 0;min-height:100vh}h1,h2,h3,p{margin:0}:focus-visible{outline:2px solid var(--accent-600);outline-offset:2px;border-radius:var(--r-sm)}.reduce-motion *,.reduce-motion :before,.reduce-motion :after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-sm);padding:var(--sp-4)}.card--alt{background:var(--surface-alt)}.card--flat{box-shadow:none}.card__title{font-family:Quicksand;font-weight:700;font-size:var(--fs-h3);color:var(--ink-900);line-height:1.5}.card__hint{font-size:var(--fs-caption);color:var(--ink-500);font-weight:500;line-height:1.5}.btn{justify-content:center;align-items:center;gap:var(--sp-2);min-width:44px;min-height:44px;padding:0 var(--sp-4);border-radius:var(--r-md);font-family:Quicksand;font-weight:700;font-size:var(--fs-sm);cursor:pointer;transition:transform var(--dur-fast) var(--ease), background var(--dur) var(--ease), box-shadow var(--dur) var(--ease), color var(--dur) var(--ease);border:1px solid #0000;line-height:1;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.55;cursor:default;transform:none}.btn--primary{background:var(--accent-600);color:var(--on-accent);box-shadow:var(--shadow-md)}.btn--primary:hover:not(:disabled){background:var(--accent-700)}.btn--secondary{background:var(--surface);color:var(--ink-900);border-color:var(--line-strong)}.btn--secondary:hover:not(:disabled){background:var(--accent-50);border-color:var(--accent-300)}.btn--quiet{color:var(--ink-700);border:1.5px dashed var(--line-strong);background:0 0}.btn--quiet:hover:not(:disabled){background:var(--surface-alt);border-color:var(--accent-300);color:var(--ink-900)}.btn--danger{color:var(--danger);border-color:var(--line-strong);background:0 0}.btn--danger:hover:not(:disabled){background:var(--danger-bg);border-color:var(--danger)}.btn--block{width:100%}.btn--sm{min-height:36px;padding:0 var(--sp-3);font-size:var(--fs-caption)}.chip{align-items:center;gap:var(--sp-1);min-height:36px;padding:0 var(--sp-3);border:1px solid var(--line);border-radius:var(--r-full);background:var(--surface);color:var(--ink-700);font-family:Quicksand;font-weight:600;font-size:var(--fs-caption);cursor:pointer;transition:transform var(--dur-fast) var(--ease), background var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease);display:inline-flex}.chip:active{transform:scale(.97)}.chip[aria-pressed=true]{background:var(--accent-100);border-color:var(--accent-300);color:var(--accent-700);font-weight:700}.stack{gap:var(--sp-3);flex-direction:column;display:flex}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.bar{transition:height .9s var(--ease)}.theme-wrap[data-v-f85ef6cc]{position:relative}.theme-btn[data-v-f85ef6cc]{cursor:pointer;background:#ffffffb3;border:1.5px solid #fffc;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:16px;transition:transform .2s;display:flex;box-shadow:0 6px 14px -8px #00000040}.theme-btn[data-v-f85ef6cc]:active{transform:scale(.92)}.theme-pop[data-v-f85ef6cc]{z-index:40;opacity:0;pointer-events:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffeb;border:1px solid #fffc;border-radius:18px;width:186px;padding:12px 12px 14px;transition:opacity .22s,transform .22s;position:absolute;top:42px;right:0;transform:translateY(-6px)scale(.97);box-shadow:0 20px 40px -16px #503c5a80}.theme-pop.open[data-v-f85ef6cc]{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.theme-pop-title[data-v-f85ef6cc]{color:var(--ink);letter-spacing:.5px;margin:0 0 10px;font-family:Quicksand;font-size:13px;font-weight:700}.swatches[data-v-f85ef6cc]{grid-template-columns:repeat(5,1fr);gap:9px;display:grid}.swatch[data-v-f85ef6cc]{aspect-ratio:1;cursor:pointer;border:2px solid #0000;border-radius:50%;width:100%;padding:0;transition:transform .15s;box-shadow:0 4px 10px -5px #0000004d}.swatch[data-v-f85ef6cc]:hover{transform:scale(1.12)}.swatch.on[data-v-f85ef6cc]{box-shadow:0 0 0 2px var(--accent-600);border-color:#fff}.fade-enter-active[data-v-f85ef6cc],.fade-leave-active[data-v-f85ef6cc]{transition:opacity .22s,transform .22s}.fade-enter-from[data-v-f85ef6cc],.fade-leave-to[data-v-f85ef6cc]{opacity:0;pointer-events:none;transform:translateY(-6px)scale(.97)}.install-banner[data-v-a1ab976e]{width:100%;max-width:520px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#ffe9b4bf,#ffdacdb3);border:1px solid #fffc;border-radius:18px;align-items:flex-start;gap:12px;margin:0 auto 14px;padding:13px 14px;display:flex}.ib-icon[data-v-a1ab976e]{background:#ffffffbf;border-radius:12px;flex:none;justify-content:center;align-items:center;width:36px;height:36px;font-size:19px;display:flex;box-shadow:0 6px 14px -6px #00000026}.ib-main[data-v-a1ab976e]{flex:1;min-width:0}.ib-main b[data-v-a1ab976e]{color:var(--ink);font-family:Quicksand;font-size:13.5px;font-weight:700;display:block}.ib-main p[data-v-a1ab976e]{color:var(--muted);margin:3px 0 0;font-size:11.5px;line-height:1.6}.ib-main .ib-hint[data-v-a1ab976e]{background:#ffffff8c;border-radius:10px;margin-top:6px;padding:7px 10px;font-size:11px}.ib-main[data-v-a1ab976e] b{font-weight:700}.ib-actions[data-v-a1ab976e]{flex:none;align-items:center;gap:8px;display:flex}.ib-btn[data-v-a1ab976e]{cursor:pointer;border:none;border-radius:12px;height:34px;padding:0 16px;font-family:Quicksand;font-size:12.5px;font-weight:700;transition:transform .15s,filter .2s}.ib-btn[data-v-a1ab976e]:active{transform:scale(.96)}.ib-btn.solid[data-v-a1ab976e]{background:linear-gradient(135deg, var(--accentA), var(--accentB));color:#fff;box-shadow:0 8px 16px -8px #0000004d}.ib-x[data-v-a1ab976e]{width:30px;height:30px;color:var(--muted);cursor:pointer;background:#fff9;border:none;border-radius:50%;flex:none;font-size:13px;transition:background .2s}.ib-x[data-v-a1ab976e]:hover{background:#fffffff2}.install-enter-active[data-v-a1ab976e],.install-leave-active[data-v-a1ab976e]{transition:opacity .25s,transform .25s}.install-enter-from[data-v-a1ab976e],.install-leave-to[data-v-a1ab976e]{opacity:0;transform:translateY(-8px)}@media (max-width:380px){.install-banner[data-v-a1ab976e]{flex-direction:column}.ib-actions[data-v-a1ab976e]{justify-content:flex-end;width:100%}}.updatebar[data-v-3470f71b]{top:calc(env(safe-area-inset-top,0px) + 10px);z-index:220;align-items:center;gap:var(--sp-2);width:min(100% - 24px,560px);padding:10px var(--sp-2) 10px var(--sp-3);border-radius:var(--r-md);background:var(--accent-600);color:var(--on-accent);box-shadow:var(--shadow-lg);display:flex;position:fixed;left:50%;transform:translate(-50%)}.updatebar--ok[data-v-3470f71b]{background:var(--ok)}.ub-ico[data-v-3470f71b]{flex:none;font-size:16px}.ub-text[data-v-3470f71b]{flex-direction:column;flex:1;min-width:0;line-height:1.35;display:flex}.ub-text b[data-v-3470f71b]{font-family:Quicksand;font-weight:700;font-size:var(--fs-sm)}.ub-text small[data-v-3470f71b]{font-size:var(--fs-caption);opacity:.85}.ub-actions[data-v-3470f71b]{flex:none;align-items:center;gap:6px;display:flex}.ub-btn[data-v-3470f71b]{border-radius:var(--r-sm);min-height:36px;color:inherit;font-family:Quicksand;font-weight:700;font-size:var(--fs-caption);cursor:pointer;background:0 0;border:1px solid #ffffff73;padding:0 10px}.ub-btn--go[data-v-3470f71b]{color:var(--accent-600);background:#fff;border-color:#fff}.ub-btn[data-v-3470f71b]:disabled{opacity:.6;cursor:default}@media (max-width:400px){.updatebar[data-v-3470f71b]{flex-wrap:wrap}.ub-text[data-v-3470f71b]{flex:60%}.ub-actions[data-v-3470f71b]{flex:100%;justify-content:flex-end}.ub-btn[data-v-3470f71b]{min-height:40px}}.ub-enter-active[data-v-3470f71b],.ub-leave-active[data-v-3470f71b]{transition:opacity var(--dur) var(--ease), transform var(--dur) var(--ease)}.ub-enter-from[data-v-3470f71b],.ub-leave-to[data-v-3470f71b]{opacity:0;transform:translate(-50%)translateY(-10px)}.inapp[data-v-540b018b]{width:100%;max-width:560px;margin:0 auto var(--sp-2);align-items:flex-start;gap:var(--sp-2);padding:10px var(--sp-2) 10px var(--sp-3);border-radius:var(--r-sm);background:var(--warn-bg);box-shadow:var(--shadow-sm);border:1px solid #9a5f1452;display:flex;position:relative}.inapp-text[data-v-540b018b]{font-size:var(--fs-caption);color:var(--warn);flex:1;font-weight:600;line-height:1.5}.inapp-x[data-v-540b018b]{border-radius:var(--r-sm);width:32px;height:32px;color:var(--warn);cursor:pointer;background:0 0;border:none;flex:none;font-size:13px;line-height:1}.iah-enter-active[data-v-540b018b],.iah-leave-active[data-v-540b018b]{transition:opacity var(--dur) var(--ease), transform var(--dur) var(--ease)}.iah-enter-from[data-v-540b018b],.iah-leave-to[data-v-540b018b]{opacity:0;transform:translateY(-6px)}.app[data-v-73bdb155]{min-height:100dvh;padding:calc(env(safe-area-inset-top,0px) + 14px) 18px 0;flex-direction:column;display:flex}.local-mode-banner[data-v-73bdb155]{top:calc(env(safe-area-inset-top,0px) + 8px);z-index:300;width:min(100% - 24px,520px);font-size:var(--fs-caption);text-align:center;color:#8a3b1e;border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3);box-shadow:var(--shadow-md);background:#ffd6b4f2;border:1px solid #c8643259;font-family:Quicksand;font-weight:700;line-height:1.5;position:fixed;left:50%;transform:translate(-50%)}.app-header[data-v-73bdb155]{justify-content:space-between;align-items:center;gap:var(--sp-3);width:100%;max-width:560px;padding-bottom:var(--sp-3);margin:0 auto;display:flex}.brand[data-v-73bdb155]{align-items:center;gap:var(--sp-2);color:var(--ink-900);text-decoration:none;display:flex}.brand .dot[data-v-73bdb155]{background:radial-gradient(circle at 30% 30%, var(--accent-300), var(--accent-400));border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;padding:4px;display:flex;box-shadow:0 6px 14px -6px #0000002e}.brand .dot .brand-mark[data-v-73bdb155]{width:100%;height:100%;display:block}.brand b[data-v-73bdb155]{letter-spacing:1px;font-family:Quicksand;font-size:20px;font-weight:700}.header-right[data-v-73bdb155]{align-items:center;gap:var(--sp-3);display:flex}.desktop-nav[data-v-73bdb155]{gap:var(--sp-1);display:none}.user-chip[data-v-73bdb155]{font-size:var(--fs-caption);color:var(--ink-500);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:6px var(--sp-2);text-overflow:ellipsis;white-space:nowrap;max-width:160px;font-family:Quicksand;font-weight:700;text-decoration:none;overflow:hidden}.desktop-nav a[data-v-73bdb155]{border-radius:var(--r-sm);padding:8px var(--sp-3);font-size:var(--fs-caption);color:var(--ink-700);transition:background var(--dur) var(--ease), color var(--dur) var(--ease);font-family:Quicksand;font-weight:700;text-decoration:none}.desktop-nav a[data-v-73bdb155]:hover{background:var(--surface-alt)}.desktop-nav a.on[data-v-73bdb155]{background:var(--accent-600);color:var(--on-accent)}.boot-skeleton[data-v-73bdb155]{gap:var(--sp-3);flex-direction:column;display:flex}.boot-skeleton span[data-v-73bdb155]{border-radius:var(--r-md);background:linear-gradient(90deg, var(--surface) 0%, var(--surface-alt) 50%, var(--surface) 100%);animation:ht-pulse-73bdb155 1.4s var(--ease) infinite;background-size:200% 100%;display:block}.boot-skeleton span[data-v-73bdb155]:first-child{height:72px}.boot-skeleton span[data-v-73bdb155]:nth-child(2){height:300px}.boot-skeleton span[data-v-73bdb155]:nth-child(3){height:120px}@keyframes ht-pulse-73bdb155{0%{background-position:0 0}to{background-position:-200% 0}}.app-content[data-v-73bdb155]{width:100%;max-width:560px;padding-bottom:calc(env(safe-area-inset-bottom,0px) + 128px);flex:1;margin:0 auto}.tabbar[data-v-73bdb155]{bottom:calc(env(safe-area-inset-bottom,0px) + 12px);width:min(100% - 32px,440px);padding:var(--sp-2);border-radius:var(--r-lg);box-shadow:var(--shadow-md);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:50;background:#ffffffdb;gap:4px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.tabbar a[data-v-73bdb155]{border-radius:var(--r-md);color:var(--ink-500);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;min-height:48px;padding:6px 0 4px;font-family:Quicksand;font-size:11px;font-weight:700;text-decoration:none;display:flex}.tabbar a svg[data-v-73bdb155]{width:22px;height:22px;display:block}.tabbar a.on[data-v-73bdb155]{background:var(--accent-600);color:var(--on-accent)}.toast[data-v-73bdb155]{bottom:calc(env(safe-area-inset-bottom,0px) + 92px);align-items:center;gap:var(--sp-3);color:#fff;font-family:Quicksand;font-weight:600;font-size:var(--fs-caption);padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-4);border-radius:var(--r-full);box-shadow:var(--shadow-lg);z-index:200;background:#33232bf0;max-width:calc(100% - 32px);display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast--success[data-v-73bdb155]{background:#3f7f58f5}.toast--error[data-v-73bdb155]{background:#c0392ff5}.toast-text[data-v-73bdb155]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.toast-action[data-v-73bdb155]{min-height:32px;padding:0 var(--sp-3);border-radius:var(--r-full);color:#fff;font-family:Quicksand;font-weight:700;font-size:var(--fs-caption);cursor:pointer;touch-action:manipulation;background:#ffffff2e;border:none;flex:none;align-items:center;gap:4px;display:inline-flex}.toast-action--ghost[data-v-73bdb155]{opacity:.85;background:0 0;border:1px solid #ffffff47;font-weight:600}.toast-count[data-v-73bdb155]{background:#ffffff47;border-radius:50%;justify-content:center;align-items:center;min-width:16px;height:16px;font-size:10px;display:inline-flex}.toast-enter-active[data-v-73bdb155],.toast-leave-active[data-v-73bdb155]{transition:opacity var(--dur) var(--ease), transform var(--dur) var(--ease)}.toast-enter-from[data-v-73bdb155],.toast-leave-to[data-v-73bdb155]{opacity:0;transform:translate(-50%)translateY(8px)}.page-enter-active[data-v-73bdb155],.page-leave-active[data-v-73bdb155]{transition:opacity .18s,transform .18s}.page-enter-from[data-v-73bdb155]{opacity:0;transform:translateY(8px)}.page-leave-to[data-v-73bdb155]{opacity:0;transform:translateY(-4px)}@media (min-width:768px){.tabbar[data-v-73bdb155]{display:none}.desktop-nav[data-v-73bdb155]{display:flex}.app-content[data-v-73bdb155]{padding-bottom:var(--sp-8)}}@media (min-width:992px){.app-header[data-v-73bdb155],.app-content[data-v-73bdb155]{max-width:1000px}}
