/* xx-theme v2 20261028g */html:where(:not(:has(base))):not(.dark){--ui-bg-page:#f7f6f1;--ui-bg-elevated:#fdfcf8;--ui-bg-soft:#f1efe6;--ui-bg-muted:#e8e5d9;--ui-bg-overlay:#fdfcf8cc;--ui-bg-overlay-strong:#fdfcf8eb;--ui-text-primary:#1c1917;--ui-text-secondary:#44403c;--ui-text-muted:#66625a;--ui-border:#1c191718;--ui-border-strong:#1c191730;--ui-accent:#0f766e;--ui-accent-hover:#0d5f59;--ui-accent-soft:#14b8a61f;--ui-focus-ring:#14b8a640;--ui-success:#15803d;--ui-success-soft:#15803d1f;--ui-warning:#a16207;--ui-warning-soft:#a1620724;--ui-danger:#b91c1c;--ui-danger-soft:#b91c1c1f;--ui-info:#0e7490;--ui-info-soft:#0e74901f;--ui-price-primary:#1c1917;--ui-price-original:#78746b;--ui-shadow-1:0 6px 16px -10px #1c191730;--ui-shadow-2:0 14px 30px -18px #1c19173d;--ui-shadow-3:0 26px 56px -30px #1c191752;--ui-shadow-soft:0 10px 26px -18px #1c191738;--ui-shadow-card:0 20px 44px -26px #0f766e66;--xx-glow1:#14b8a62e;--xx-glow2:#fbbf241f;--xx-card-top:#ffffff}html:where(:not(:has(base))).dark{--ui-bg-page:#0b0f0e;--ui-bg-elevated:#141918;--ui-bg-soft:#1b2221;--ui-bg-muted:#171d1c;--ui-bg-overlay:#141918c7;--ui-bg-overlay-strong:#141918e6;--ui-text-primary:#ecf3f1;--ui-text-secondary:#c9d4d1;--ui-text-muted:#93a49f;--ui-border:#ffffff1f;--ui-border-strong:#ffffff38;--ui-accent:#2dd4bf;--ui-accent-hover:#5eead4;--ui-accent-soft:#2dd4bf26;--ui-focus-ring:#2dd4bf47;--ui-text-on-accent:#042f2b;--ui-success:#4ade80;--ui-warning:#fbbf24;--ui-danger:#f87171;--ui-info:#67e8f9;--ui-price-primary:#ecf3f1;--ui-shadow-1:0 8px 20px -12px #000000b0;--ui-shadow-2:0 18px 38px -20px #000000c0;--ui-shadow-3:0 30px 64px -30px #000000d0;--ui-shadow-soft:0 14px 34px -20px #000000c0;--ui-shadow-card:0 24px 56px -28px #000000e0;--xx-glow1:#2dd4bf1f;--xx-glow2:#fbbf2412;--xx-card-top:#1a2120}html:where(:not(:has(base))):not(.xx0){--ui-radius-sm:.6rem;--ui-radius-md:.85rem;--ui-radius-lg:1.1rem;--ui-radius-xl:1.6rem;--xx-grad:linear-gradient(135deg,#14b8a6,#0f766e);--font-sans:system-ui,-apple-system,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC","Noto Sans SC","Source Han Sans SC",Roboto,"Helvetica Neue",Arial,sans-serif;font-family:var(--font-sans);--xx-ease:cubic-bezier(.16,1,.3,1)}html:where(:not(:has(base))).dark{--xx-grad:linear-gradient(135deg,#2dd4bf,#14b8a6)}html:where(:not(:has(base))):not(.dark){color-scheme:light}html:where(:not(:has(base))).dark{color-scheme:dark}html:where(:not(:has(base))){scroll-behavior:smooth;-webkit-tap-highlight-color:transparent}html:where(:not(:has(base))) body{background:var(--ui-bg-page);font-family:var(--font-sans);line-height:1.6;-webkit-text-size-adjust:100%}html:where(:not(:has(base))) body>#app>.bg-background{background:transparent}html:where(:not(:has(base))) body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(56rem 26rem at 8% -4%,var(--xx-glow1),transparent 70%),radial-gradient(44rem 22rem at 100% 2%,var(--xx-glow2),transparent 70%)}html:where(:not(:has(base))) ::selection{background:var(--ui-accent-soft);color:var(--ui-text-primary)}html:where(:not(:has(base))) :focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}html:where(:not(:has(base))) .font-mono,html:where(:not(:has(base))) code,html:where(:not(:has(base))) kbd,html:where(:not(:has(base))) pre{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace}html:where(:not(:has(base))) nav.fixed.top-0{background:color-mix(in oklab,var(--ui-bg-elevated) 78%,transparent);-webkit-backdrop-filter:saturate(1.5) blur(14px);backdrop-filter:saturate(1.5) blur(14px);border-bottom:1px solid var(--ui-border);box-shadow:0 1px 0 #ffffff55 inset,0 8px 24px -22px #1c191766}html:where(:not(:has(base))) nav.fixed.top-0 .container a.h-8{border-radius:999px;transition:background-color .2s,color .2s}html:where(:not(:has(base))) nav.fixed.top-0 .container a.h-8:hover{background:var(--ui-accent-soft);color:var(--ui-accent)}html:where(:not(:has(base))) nav.fixed.bottom-0{background:color-mix(in oklab,var(--ui-bg-elevated) 88%,transparent);-webkit-backdrop-filter:saturate(1.5) blur(14px);backdrop-filter:saturate(1.5) blur(14px);box-shadow:0 -10px 28px -22px #1c191766}html:where(:not(:has(base))) nav.fixed.bottom-0 a{transition:color .2s}html:where(:not(:has(base))) .theme-wordmark{box-shadow:var(--ui-shadow-1)}html:where(:not(:has(base))) button.bg-primary:not(.rounded-full),html:where(:not(:has(base))) a.bg-primary:not(.rounded-full){border-radius:var(--ui-radius-md);background:var(--xx-grad);color:var(--ui-text-on-accent);box-shadow:0 10px 22px -12px #0f766eb3,inset 0 1px 0 #ffffff40;transition:transform .2s var(--xx-ease),box-shadow .2s,filter .2s}html:where(:not(:has(base))) button.bg-primary:not(.rounded-full):hover:not(:disabled),html:where(:not(:has(base))) a.bg-primary:not(.rounded-full):hover{transform:translateY(-1px);filter:brightness(1.05);box-shadow:0 14px 26px -12px #0f766ecc,inset 0 1px 0 #ffffff50}html:where(:not(:has(base))) button.bg-primary:not(.rounded-full):active:not(:disabled){transform:translateY(0) scale(.985)}html:where(:not(:has(base))) button.bg-primary:disabled{filter:grayscale(.25);opacity:.55;box-shadow:none}html:where(:not(:has(base))) button.bg-secondary{border-radius:var(--ui-radius-md);background:var(--ui-accent-soft);color:var(--ui-accent);border:1px solid color-mix(in oklab,var(--ui-accent) 25%,transparent);box-shadow:none;font-weight:600;transition:background-color .2s,transform .2s}html:where(:not(:has(base))) button.bg-secondary:hover:not(:disabled){background:color-mix(in oklab,var(--ui-accent) 20%,transparent)}html:where(:not(:has(base))) button.bg-secondary:disabled{opacity:.55}html:where(:not(:has(base))) button[class*="border-input"],html:where(:not(:has(base))) a[class*="border-input"]{border-radius:var(--ui-radius-md)}html:where(:not(:has(base))) main input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),html:where(:not(:has(base))) main textarea,html:where(:not(:has(base))) main select{background:var(--ui-bg-elevated);border:1px solid var(--ui-border-strong);border-radius:var(--ui-radius-md);color:var(--ui-text-primary);box-shadow:inset 0 1px 2px #1c19170d;transition:border-color .2s,box-shadow .2s,background-color .2s}html:where(:not(:has(base))) main input::placeholder,html:where(:not(:has(base))) main textarea::placeholder{color:var(--ui-text-muted);opacity:.8}html:where(:not(:has(base))) main input:not([type=checkbox]):not([type=radio]):hover,html:where(:not(:has(base))) main textarea:hover,html:where(:not(:has(base))) main select:hover{border-color:color-mix(in oklab,var(--ui-accent) 45%,var(--ui-border-strong))}html:where(:not(:has(base))) main input:not([type=checkbox]):not([type=radio]):focus,html:where(:not(:has(base))) main input:not([type=checkbox]):not([type=radio]):focus-visible,html:where(:not(:has(base))) main textarea:focus,html:where(:not(:has(base))) main select:focus{outline:none;border-color:var(--ui-accent);box-shadow:0 0 0 4px var(--ui-focus-ring)}html:where(:not(:has(base))) main input[aria-invalid=true],html:where(:not(:has(base))) main input:user-invalid{border-color:var(--ui-danger);box-shadow:0 0 0 4px var(--ui-danger-soft)}html:where(:not(:has(base))) main input[type=checkbox]{width:1.05rem;height:1.05rem;border-radius:.3rem;accent-color:var(--ui-accent);cursor:pointer}html:where(:not(:has(base))) main input:disabled{opacity:.6;cursor:not-allowed}html:where(:not(:has(base))) .text-destructive,html:where(:not(:has(base))) [role=alert]{font-size:.8rem;line-height:1.4}html:where(:not(:has(base))) main .rounded-2xl.border,html:where(:not(:has(base))) main .rounded-3xl.border,html:where(:not(:has(base))) main .rounded-xl.border.bg-card{border-color:var(--ui-border)}html:where(:not(:has(base))) main .border.bg-card{box-shadow:var(--ui-shadow-soft);transition:box-shadow .25s,transform .25s var(--xx-ease),border-color .25s}html:where(:not(:has(base))) main .grid>.border.bg-card:hover{transform:translateY(-3px);border-color:color-mix(in oklab,var(--ui-accent) 40%,var(--ui-border));box-shadow:var(--ui-shadow-card)}html:where(:not(:has(base))) main .border-dashed{background:color-mix(in oklab,var(--ui-bg-elevated) 60%,transparent);border-color:var(--ui-border-strong);border-radius:var(--ui-radius-xl)}html:where(:not(:has(base))) main a.text-primary:hover,html:where(:not(:has(base))) main .text-primary.hover\:underline:hover{text-decoration:underline;text-underline-offset:.2em}html:where(:not(:has(base))) .theme-price-sm,html:where(:not(:has(base))) .theme-price-lg{font-family:var(--font-sans);font-variant-numeric:tabular-nums}html:where(:not(:has(base))) .theme-price-sm{color:var(--ui-accent)}html:where(:not(:has(base))) .theme-section-heading{letter-spacing:-.025em}html:where(:not(:has(base))) main h1,html:where(:not(:has(base))) main h2{text-wrap:balance}html:where(:not(:has(base))) .home-page .grid p.line-clamp-2,html:where(:not(:has(base))) div.grid p.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-height:2.75em;word-break:break-word}@media(min-width:1280px){html:where(:not(:has(base))) .home-page .grid.xl\:grid-cols-5{grid-template-columns:repeat(4,minmax(0,1fr))}}html:where(:not(:has(base))) .xx-chip{border-color:var(--ui-border-strong);background:var(--ui-bg-elevated);color:var(--ui-text-secondary);box-shadow:var(--ui-shadow-1);transition:all .2s var(--xx-ease)}html:where(:not(:has(base))) .xx-chip:hover{border-color:var(--ui-accent);color:var(--ui-accent);transform:translateY(-1px)}html:where(:not(:has(base))) .xx-chip.xx-on,html:where(:not(:has(base))) .xx-chip.xx-on:hover{background:var(--xx-grad);border-color:transparent;color:var(--ui-text-on-accent)}html:where(:not(:has(base))) footer{content-visibility:auto;contain-intrinsic-size:auto 420px;background:color-mix(in oklab,var(--ui-bg-elevated) 70%,transparent)}html:where(:not(:has(base))) footer .container{padding-top:3rem;padding-bottom:2.5rem}html:where(:not(:has(base))) footer a{transition:color .2s}html:where(:not(:has(base))) footer a:hover{color:var(--ui-accent)}html:where(:not(:has(base))) footer h4{font-size:.95rem}html:where(:not(:has(base))) main:has(form){min-height:auto}html:where(:not(:has(base))) .theme-auth-page{background:radial-gradient(34rem 20rem at 50% 8%,var(--ui-accent-soft),transparent 70%),radial-gradient(26rem 18rem at 90% 80%,var(--xx-glow2),transparent 70%);padding-top:6.5rem;padding-bottom:5.5rem;align-items:center}html:where(:not(:has(base))) .theme-auth-page>div{max-width:30rem}html:where(:not(:has(base))) .theme-auth-page>div>div:first-child{margin-bottom:1rem}html:where(:not(:has(base))) .theme-auth-page>div>div:first-child a{border:1px solid var(--ui-border);background:color-mix(in oklab,var(--ui-bg-elevated) 70%,transparent)}html:where(:not(:has(base))) .theme-auth-page .rounded-3xl.border{position:relative;border-radius:1.75rem;background:linear-gradient(180deg,var(--xx-card-top),var(--ui-bg-elevated) 38%);border:1px solid var(--ui-border);box-shadow:0 1px 0 #ffffffb0 inset,0 28px 70px -34px #0f766e73,0 6px 18px -10px #1c191722;-webkit-backdrop-filter:none;backdrop-filter:none;overflow:hidden;animation:xx-rise .4s var(--xx-ease) both}html:where(:not(:has(base))) .theme-auth-page .rounded-3xl.border::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--xx-grad)}html:where(:not(:has(base))) .theme-auth-page .mb-8.text-center{margin-bottom:1.6rem}html:where(:not(:has(base))) .theme-auth-page .mb-8.text-center::before{content:"";display:block;width:3.4rem;height:3.4rem;margin:0 auto .9rem;border-radius:1.05rem;background:var(--ui-bg-soft) url(/uploads/common/2026/10/logo.svg?v=20261028) center/2.2rem no-repeat;box-shadow:0 12px 24px -12px #0f766e80,0 0 0 1px var(--ui-border)}html:where(:not(:has(base))) .theme-auth-page .mb-8.text-center>p.text-primary{letter-spacing:.14em;font-size:.72rem;text-transform:none;opacity:.9}html:where(:not(:has(base))) .theme-auth-page h1{margin-top:.35rem;font-size:1.75rem;font-weight:800;letter-spacing:-.025em;line-height:1.2}html:where(:not(:has(base))) .theme-auth-page h1+p{margin-top:.45rem}html:where(:not(:has(base))) .theme-auth-page form{display:flex;flex-direction:column;gap:1.15rem}html:where(:not(:has(base))) .theme-auth-page form>*{margin:0}html:where(:not(:has(base))) .theme-auth-page label.mb-2{text-transform:none;letter-spacing:.01em;font-size:.8125rem;font-weight:600;color:var(--ui-text-secondary);margin-bottom:.45rem}html:where(:not(:has(base))) .theme-auth-page label.mb-2>span.opacity-60,html:where(:not(:has(base))) .theme-auth-page label.mb-2>svg{color:var(--ui-accent);opacity:.9}html:where(:not(:has(base))) .theme-auth-page input:not([type=checkbox]){height:2.9rem;padding-left:.95rem;padding-right:.95rem;font-size:.95rem}html:where(:not(:has(base))) .theme-auth-page input.pr-10{padding-right:2.75rem}html:where(:not(:has(base))) .theme-auth-page img[src^="data:image"]{height:2.9rem;width:auto;border-radius:.8rem;border:1px solid var(--ui-border-strong);background:#fff;cursor:pointer}html:where(:not(:has(base))) .theme-auth-page .flex.items-center.gap-3>button.underline{color:var(--ui-accent);text-decoration:none;font-weight:600;padding:.4rem .75rem;border-radius:999px;background:var(--ui-accent-soft);font-size:.78rem}html:where(:not(:has(base))) .theme-auth-page .flex.items-center.gap-3>button.underline:hover{background:color-mix(in oklab,var(--ui-accent) 22%,transparent)}html:where(:not(:has(base))) .theme-auth-page .space-y-2>.flex.items-center.gap-3{margin-bottom:.1rem}html:where(:not(:has(base))) .theme-auth-page form .text-xs a{color:var(--ui-accent);font-weight:600}html:where(:not(:has(base))) .theme-auth-page form .text-xs a:hover{text-decoration:underline;text-underline-offset:.2em}html:where(:not(:has(base))) .theme-auth-page label.rounded-xl.border{border-color:var(--ui-border);background:var(--ui-bg-soft);border-radius:var(--ui-radius-md);cursor:pointer}html:where(:not(:has(base))) .theme-auth-page label.rounded-xl.border:hover{border-color:var(--ui-accent)}html:where(:not(:has(base))) .theme-auth-page label.rounded-xl.border:has(input:checked){border-color:var(--ui-accent);background:var(--ui-accent-soft)}html:where(:not(:has(base))) .theme-auth-page button[type=submit]{height:3rem;font-size:.95rem;letter-spacing:.02em;border-radius:var(--ui-radius-md)}html:where(:not(:has(base))) .theme-auth-page .pt-1 .uppercase{text-transform:none;letter-spacing:.04em;font-size:.75rem}html:where(:not(:has(base))) .theme-auth-page .pt-1 .h-px{border-top-color:var(--ui-border-strong)}html:where(:not(:has(base))) .theme-auth-page .pt-1 .overflow-hidden{border-radius:var(--ui-radius-md)}html:where(:not(:has(base))) .theme-auth-page .pt-1 p{font-size:.75rem}html:where(:not(:has(base))) .theme-auth-page>div>p,html:where(:not(:has(base))) .theme-auth-page>div>div:last-child:not(:first-child):not(.rounded-3xl){font-size:.875rem}html:where(:not(:has(base))) .theme-auth-page>div a.font-semibold,html:where(:not(:has(base))) .theme-auth-page>div p a{color:var(--ui-accent);font-weight:600}html:where(:not(:has(base))) .xx-auth-note{margin-top:1.1rem;text-align:center;font-size:.78rem;letter-spacing:.04em;color:var(--ui-text-muted)}html:where(:not(:has(base))) .xx-auth-note::before{content:"";display:inline-block;width:.8rem;height:.8rem;margin-right:.45rem;vertical-align:-.1rem;background:var(--ui-accent);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 4 5v6c0 5 3.4 9.4 8 11 4.6-1.6 8-6 8-11V5z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 4 5v6c0 5 3.4 9.4 8 11 4.6-1.6 8-6 8-11V5z'/%3E%3C/svg%3E") center/contain no-repeat}@keyframes xx-rise{from{transform:translateY(10px)}to{transform:none}}@media(max-width:639px){html:where(:not(:has(base))) .theme-auth-page .flex-col>input{flex:0 0 auto;width:100%}}@media(max-width:640px){html:where(:not(:has(base))) .theme-auth-page{padding:5.25rem 1rem 6rem}html:where(:not(:has(base))) .theme-auth-page .rounded-3xl.border{border-radius:1.4rem;padding:1.4rem 1.15rem 1.5rem}html:where(:not(:has(base))) .theme-auth-page h1{font-size:1.5rem}html:where(:not(:has(base))) .theme-auth-page .mb-8.text-center::before{width:3rem;height:3rem;background-size:2rem}}@media(prefers-reduced-motion:reduce){html:where(:not(:has(base))){scroll-behavior:auto}html:where(:not(:has(base))) .theme-auth-page .rounded-3xl.border{animation:none}html:where(:not(:has(base))) button.bg-primary,html:where(:not(:has(base))) a.bg-primary,html:where(:not(:has(base))) button.bg-secondary,html:where(:not(:has(base))) main .border.bg-card,html:where(:not(:has(base))) .xx-chip{transition:none!important;transform:none!important}}/* admin-legacy */html:has(base):not(.xx0){--ui-accent:#0071e3;--xiaodoy-radius:1.25rem}html:has(base):not(.xx0) .home-page .grid p.line-clamp-2,html:has(base):not(.xx0) .home-page .grid p.hidden.md\:block.line-clamp-2,html:has(base):not(.xx0) div.grid p.line-clamp-2{display:-webkit-box !important;-webkit-line-clamp:2 !important;-webkit-box-orient:vertical !important;overflow:hidden !important;max-height:2.75em;word-break:break-word}@media (min-width: 1280px){html:has(base):not(.xx0) .home-page .grid.xl\:grid-cols-5{grid-template-columns:repeat(4, minmax(0, 1fr)) !important}}html:has(base):not(.xx0) .home-page > div:first-child,html:has(base):not(.xx0) .home-page section:first-child,html:has(base):not(.xx0) .home-page .container:first-child{position:relative}html:has(base):not(.xx0) .home-page h2{letter-spacing:-0.02em}html:has(base):not(.xx0) .theme-price-sm{color:var(--ui-accent, #0071e3) !important;font-variant-numeric:tabular-nums}html:has(base):not(.xx0) .home-page section:has(p),html:has(base):not(.xx0) .home-page div:has(> h2){}html:has(base):not(.xx0) footer .container{padding-top:3.5rem;padding-bottom:3.5rem}html:has(base):not(.xx0) main:has(form){min-height:auto}html:has(base):not(.xx0) .home-page .grid > .border.bg-card:hover{box-shadow:0 12px 40px rgba(0, 113, 227, 0.12)}html:has(base):not(.xx0) .theme-safe-bottom{padding-bottom:env(safe-area-inset-bottom, 0)}
