@font-face{font-family:Sora;src:url(/fonts/Sora-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Sora;src:url(/fonts/Sora-Medium.ttf) format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Sora;src:url(/fonts/Sora-SemiBold.ttf) format("truetype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Sora;src:url(/fonts/Sora-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-Regular.ttf) format("truetype");font-weight:400 700;font-style:normal;font-display:swap}:root{--bg:#FAFAF7;--bg-warm:#F5F2EA;--surface:#FFFFFF;--surface-soft:#F2EFE8;--ink:#1A1A1A;--ink-soft:#3D3D3A;--ink-muted:#8B867E;--ink-faint:#B5AFA5;--border:#E8E4D9;--border-strong:#D5D0C2;--accent:#FF6B5A;--accent-deep:#E04E3D;--accent-soft:#FFE6E0;--ink-on-accent-muted:rgba(255,255,255,0.65);--success:#2D8C5E;--warning:#C8861C;--danger:#C73E2E;--success-soft:rgba(45,140,94,0.10);--success-soft-border:rgba(45,140,94,0.30);--warning-soft:rgba(200,134,28,0.10);--warning-soft-border:rgba(200,134,28,0.25);--danger-soft:rgba(199,62,46,0.08);--danger-soft-border:rgba(199,62,46,0.25);--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--font-display:"Sora",-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;--font-body:"Sora",-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,Menlo,monospace;--d-pad-x:20px;--d-pad-y:14px;--d-gap:10px;--d-topbar-h:52px;--d-card-pad:10px;--d-side-w:212px;--d-cols:4;--d-font-base:12.5px;--fit-canvas-padding:8px;--control-height-md:36px;--control-height-lg:44px;--mobile-tab-h:56px;--pixel-deco:1;--pixel-bg:0.1;--pixel-strength:1.4;--elevation-floating:0 4px 14px rgba(0,0,0,0.08);--z-canvas:0;--z-overlay:4;--z-bar:10;--z-popover:50;--z-dialog:100;--card-aspect-portrait:3/4;--card-aspect-square:1/1;--card-aspect-thumb:4/3;--card-thumb-radius:var(--radius-md);--title-clamp-lines:2;--title-trailing-gap:8px;--color-chip-swatch:14px;--color-chip-gap:8px;--color-chip-code-min:30px;--stepper-control:28px;--stepper-gap:4px;--empty-state-icon:40px;--empty-state-gap:10px;--empty-state-max-w:280px;--stat-card-pad:14px 18px;--stat-card-radius:var(--radius-lg);color-scheme:light;--pindo-top-banner-height:0px;--pindo-app-viewport-height:100dvh}[data-theme=dark]{--bg:#1F1C16;--bg-warm:#2A2620;--surface:#28241D;--surface-soft:#322D25;--ink:#F4EFE3;--ink-soft:#D4CFC3;--ink-muted:#8E887B;--ink-faint:#5C5750;--border:#3A352B;--border-strong:#4A4337;--accent-soft:#3D2A22;color-scheme:dark}*,:after,:before{box-sizing:border-box}html{scrollbar-gutter:stable;-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.55;font-feature-settings:"ss01","cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;overflow:hidden}.pindo-root-shell{min-height:100dvh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}.pindo-app-viewport{flex:1 1;min-height:0;height:var(--pindo-app-viewport-height);overflow:hidden}.safe-area-top{padding-top:env(safe-area-inset-top,0)}.safe-area-bottom{padding-bottom:env(safe-area-inset-bottom,0)}.safe-area-x{padding-left:env(safe-area-inset-left,0);padding-right:env(safe-area-inset-right,0)}.pb-mobile-tab{padding-bottom:calc(var(--mobile-tab-h) + env(safe-area-inset-bottom, 0px) + 12px)}.touch-44{min-height:44px;min-width:44px}@media (max-width:759.98px){.pindo-button,.pindo-filter-chip{min-height:44px;min-width:44px}}@keyframes pulse-ghost{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.6}}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes float-bead{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-6px) rotate(2deg)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:.25}}@keyframes pulse-dot{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.4);opacity:.5}}@keyframes pop-in{0%{transform:scale(.85);opacity:0}60%{transform:scale(1.05);opacity:1}to{transform:scale(1)}}@keyframes glow-pulse{0%,to{filter:brightness(1)}50%{filter:brightness(1.15)}}@keyframes same-color-flash-light{0%,to{box-shadow:0 0 0 0 #1A1A1A}25%,75%{box-shadow:0 0 0 2px #1A1A1A}50%{box-shadow:0 0 0 0 #1A1A1A}}@keyframes same-color-flash-dark{0%,to{box-shadow:0 0 0 0 #ffffff}25%,75%{box-shadow:0 0 0 2px #ffffff}50%{box-shadow:0 0 0 0 #ffffff}}.pindo-flash{animation:same-color-flash-light 1.4s ease-in-out 1}[data-theme=dark] .pindo-flash{animation-name:same-color-flash-dark}@media (prefers-reduced-motion:reduce){.pindo-flash{animation:fade-in .6s ease-out 1;box-shadow:0 0 0 2px var(--ink)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}[data-theme=dark] img[alt="豆老板"]{content:url(/doulaoban-mascot-rim.png)}.pindo-card-hover{transition:transform .18s cubic-bezier(.2,.7,.3,1),box-shadow .18s}.pindo-card-hover:hover{transform:translateY(-2px);box-shadow:0 8px 24px -8px rgba(0,0,0,.12)}.pindo-mascot-float{animation:float-bead 4s ease-in-out infinite;transform-origin:center}.pindo-live-dot{animation:pulse-dot 2s ease-in-out infinite}.pindo-shimmer-bg{background:linear-gradient(90deg,var(--surface-soft) 0,var(--border) 50%,var(--surface-soft) 100%);background-size:200% 100%;animation:shimmer 1.6s linear infinite}.pindo-pop-in{animation:pop-in .42s cubic-bezier(.2,.7,.2,1)}.pindo-bead-hover{transition:transform .15s cubic-bezier(.2,.7,.3,1)}.pindo-bead-hover:hover{transform:scale(1.18)}.pindo-glow{animation:glow-pulse 2s ease-in-out infinite}@media (prefers-reduced-motion:reduce){.pindo-glow,.pindo-live-dot,.pindo-mascot-float{animation:none!important}*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}:where(button,[role=button],a,[tabindex="0"],summary):focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}