:root{--z-base:0;--z-decor:10;--z-sticky:100;--z-float:500;--z-modal:1000;--z-toast:2000}.ds-root,.ds-root *,.ds-root :before,.ds-root :after{box-sizing:border-box}.ds-root{--ds-space:4px;--ds-gap-tight:calc(var(--ds-space) * 2);--ds-gap:calc(var(--ds-space) * 3);--ds-gap-loose:calc(var(--ds-space) * 4);--ds-pad-card:calc(var(--ds-space) * 3);--ds-pad-page:calc(var(--ds-space) * 4);--ds-hit:44px;font-family:var(--ds-font-body);font-size:var(--ds-fs-body);line-height:var(--ds-lh-body);letter-spacing:var(--ds-tracking);color:var(--ds-text-body);background:var(--ds-bg-page);-webkit-font-smoothing:antialiased}.ds-stack{gap:var(--ds-gap);flex-direction:column;min-width:0;display:flex}.ds-row{align-items:center;gap:var(--ds-gap-tight);min-width:0;display:flex}.ds-stack>*,.ds-row>*{max-width:100%}.ds-flex{flex:auto;min-width:0}.ds-fixed{flex:none}.ds-t1{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;overflow:hidden}.ds-t2,.ds-t3{-webkit-box-orient:vertical;min-width:0;max-width:100%;display:-webkit-box;overflow:hidden}.ds-t2{-webkit-line-clamp:2;line-clamp:2}.ds-t3{-webkit-line-clamp:3;line-clamp:3}.ds-h1{font-family:var(--ds-font-title);font-size:var(--ds-fs-h1);font-weight:var(--ds-fw-bold);line-height:var(--ds-lh-title);color:var(--ds-text-h1);margin:0}.ds-h2{font-family:var(--ds-font-title);font-size:var(--ds-fs-h2);font-weight:var(--ds-fw-bold);line-height:var(--ds-lh-title);color:var(--ds-text-h2);margin:0}.ds-h3{font-family:var(--ds-font-title);font-size:var(--ds-fs-h3);font-weight:var(--ds-fw-medium);line-height:var(--ds-lh-title);color:var(--ds-text-h2);margin:0}.ds-body{font-size:var(--ds-fs-body);line-height:var(--ds-lh-body);color:var(--ds-text-body);margin:0}.ds-caption{font-size:var(--ds-fs-secondary);line-height:var(--ds-lh-secondary);color:var(--ds-text-secondary);margin:0}.ds-small{font-size:var(--ds-fs-small);line-height:var(--ds-lh-secondary);color:var(--ds-text-secondary);margin:0}.ds-price{font-family:var(--ds-font-number);font-weight:var(--ds-fw-bold);color:var(--ds-primary);font-variant-numeric:tabular-nums;white-space:nowrap}.ds-card{background:var(--ds-bg-card);border-radius:var(--ds-radius-lg);border:var(--ds-border-width) var(--ds-border-style) var(--ds-border-color);box-shadow:var(--ds-shadow-sm);padding:var(--ds-pad-card);min-width:0;overflow:hidden}.ds-btn{justify-content:center;align-items:center;gap:var(--ds-icon-gap);min-height:var(--ds-hit);padding:0 var(--ds-gap-loose);border-radius:var(--ds-radius-md);border:var(--ds-border-width) var(--ds-border-style) transparent;font-family:var(--ds-font-body);font-size:var(--ds-fs-body);font-weight:var(--ds-fw-medium);cursor:pointer;transition:all var(--ds-dur-normal) var(--ds-easing);text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--ds-text-body);background:0 0;line-height:1.2;display:inline-flex;overflow:hidden}.ds-btn--primary{background:var(--ds-primary);color:var(--ds-on-primary);box-shadow:var(--ds-shadow-sm)}.ds-btn--ghost{color:var(--ds-primary);border-color:var(--ds-primary);background:0 0}.ds-btn--block{width:100%;display:flex}.ds-btn--sm{min-height:30px;padding:0 var(--ds-gap);font-size:var(--ds-fs-secondary);position:relative}.ds-btn--sm:after{content:"";height:var(--ds-hit);position:absolute;top:50%;bottom:auto;left:0;right:0;transform:translateY(-50%)}.ds-icon{width:var(--ds-icon-md);height:var(--ds-icon-md);flex:none;justify-content:center;align-items:center;display:inline-flex}.ds-icon--lg{width:var(--ds-icon-lg);height:var(--ds-icon-lg)}.ds-icon--sm{width:var(--ds-icon-sm);height:var(--ds-icon-sm)}.ds-tag{min-width:0;padding:2px var(--ds-gap-tight);border-radius:var(--ds-radius-sm);font-size:var(--ds-fs-small);line-height:1.4;font-weight:var(--ds-fw-medium);background:var(--ds-bg-subtle);color:var(--ds-text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:0 auto;align-items:center;max-width:100%;display:inline-flex;overflow:hidden}.ds-tag--accent{background:var(--ds-primary);color:var(--ds-on-primary)}.ds-thumb{border-radius:var(--ds-radius-md);background:var(--ds-bg-subtle);flex:none;position:relative;overflow:hidden}.ds-thumb>img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;display:block}.ds-thumb--generated{justify-content:center;align-items:center;display:flex}.ds-thumb__mark{opacity:.32;color:var(--ds-text-secondary);justify-content:center;align-items:center;display:flex}.ds-divider{height:var(--ds-border-width);background:var(--ds-divider);border:0;flex:none;margin:0}.ds-page{background:var(--ds-bg-page);flex-direction:column;height:100%;display:flex;overflow:hidden}.ds-page__body{-webkit-overflow-scrolling:touch;padding:var(--ds-gap) var(--ds-pad-page);gap:var(--ds-gap-loose);flex-direction:column;flex:auto;display:flex;overflow:hidden auto}.ds-page__body>*{flex-shrink:0}.ds-page__header,.ds-page__footer{background:var(--ds-bg-popup);flex:none}.ds-page__header{padding:var(--ds-gap) var(--ds-pad-page);border-bottom:var(--ds-border-width) var(--ds-border-style) var(--ds-divider)}.ds-page__footer{border-top:var(--ds-border-width) var(--ds-border-style) var(--ds-divider)}.ds-tabbar{align-items:stretch;display:flex}.ds-tabbar__item{min-width:0;min-height:var(--ds-hit);padding:var(--ds-space) 2px;cursor:pointer;color:var(--ds-text-secondary);font-size:var(--ds-fs-small);line-height:1.3;font-family:var(--ds-font-body);transition:color var(--ds-dur-fast) var(--ds-easing);background:0 0;border:0;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:2px;display:flex}.ds-tabbar__item>span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.ds-tabbar__item[data-active=true]{color:var(--ds-primary);font-weight:var(--ds-fw-medium)}.ds-grid{gap:var(--ds-gap);min-width:0;display:grid}.ds-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.ds-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.ds-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}.ds-grid--5{grid-template-columns:repeat(5,minmax(0,1fr))}.ds-scroll-x{gap:var(--ds-gap-tight);scrollbar-width:none;padding-bottom:2px;display:flex;overflow:auto hidden}.ds-scroll-x::-webkit-scrollbar{display:none}.ds-scroll-x>*{flex:none}.ds-a11y-boost{--ds-fs-body:calc(var(--ds-fs-h3));--ds-fs-secondary:calc(var(--ds-fs-body) - 1px);--ds-fs-small:12px;--ds-hit:48px}.ds-sched{background:var(--ds-border-color);border:1px solid var(--ds-border-color);border-radius:var(--ds-radius-md);flex-direction:column;gap:1px;display:flex;overflow:hidden}.ds-sched__row{grid-template-columns:44px repeat(5,minmax(0,1fr));gap:1px;display:grid}.ds-sched__cell{background:var(--ds-bg-card);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1px;min-width:0;min-height:40px;padding:4px 2px;display:flex;overflow:hidden}.ds-sched__row--head .ds-sched__cell{background:var(--ds-bg-subtle);font-weight:var(--ds-fw-medium)}.ds-sched__cell--label{background:var(--ds-bg-subtle);color:var(--ds-text-secondary)}.ds-sched__wd,.ds-sched__dt{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.ds-sched__dt{color:var(--ds-text-secondary);font-size:var(--ds-fs-small)}.ds-sched__slot{cursor:pointer;font-family:var(--ds-font-body);transition:background var(--ds-dur-fast) var(--ds-easing);border:0}.ds-sched__slot[data-state=available]{color:var(--ds-success);font-weight:var(--ds-fw-bold)}.ds-sched__slot[data-state=full]{color:var(--ds-text-placeholder);cursor:not-allowed}.ds-sched__slot[data-state=none]{color:var(--ds-text-placeholder);background:var(--ds-bg-subtle);cursor:not-allowed}.ds-sched__slot[data-active=true]{background:var(--ds-primary);color:var(--ds-on-primary)}.ds-root[data-style=guochao_ink]{background-image:radial-gradient(circle at 18% 12%,#c3352b0d 0%,#0000 42%),radial-gradient(circle at 82% 78%,#3a5a6c0d 0%,#0000 46%)}.ds-root[data-style=guochao_ink] .ds-card{position:relative}.ds-root[data-style=guochao_ink] .ds-card:before{content:"";pointer-events:none;background:radial-gradient(at 100% 0,#4a423a0e,#0000 58%);position:absolute;top:0;bottom:0;left:0;right:0}.ds-root[data-style=guochao_ink] .ds-btn--primary{border-radius:var(--ds-radius-sm);letter-spacing:.12em;box-shadow:inset 0 0 0 1px #fdf9f247}.ds-root[data-style=guochao_ink] .ds-h1,.ds-root[data-style=guochao_ink] .ds-h2{letter-spacing:.06em}.ds-root[data-style=guochao_ink] .ds-divider{background:linear-gradient(90deg, transparent, var(--ds-border-color) 18%, var(--ds-border-color) 82%, transparent)}.ds-root[data-style=cyberpunk]{background-image:linear-gradient(#00f0ff0b 1px,#0000 1px),linear-gradient(90deg,#00f0ff0b 1px,#0000 1px);background-size:26px 26px}.ds-root[data-style=cyberpunk] .ds-card{border-color:color-mix(in srgb, var(--ds-primary) 34%, transparent);clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px));background-image:linear-gradient(135deg, color-mix(in srgb, var(--ds-primary) 5%, transparent), transparent 46%)}.ds-root[data-style=cyberpunk] .ds-btn--primary{box-shadow:var(--ds-shadow-glow);clip-path:polygon(8px 0,100% 0,calc(100% - 8px) 100%,0 100%);text-transform:uppercase}.ds-root[data-style=cyberpunk] .ds-h1,.ds-root[data-style=cyberpunk] .ds-h2{text-shadow:0 0 12px color-mix(in srgb, var(--ds-primary) 55%, transparent)}.ds-root[data-style=cyberpunk] .ds-tag--accent{box-shadow:0 0 10px color-mix(in srgb, var(--ds-primary) 60%, transparent)}.ds-root[data-style=neo_brutalism] .ds-card{border-width:var(--ds-border-emphasis);box-shadow:var(--ds-shadow-md)}.ds-root[data-style=neo_brutalism] .ds-btn{border-width:var(--ds-border-emphasis);border-color:var(--ds-border-color);box-shadow:var(--ds-shadow-sm);font-weight:var(--ds-fw-bold)}.ds-root[data-style=neo_brutalism] .ds-btn:active{box-shadow:none;transform:translate(2px,2px)}.ds-root[data-style=neo_brutalism] .ds-tag{border:2px solid var(--ds-border-color);font-weight:var(--ds-fw-bold)}.ds-root[data-style=neo_brutalism] .ds-thumb{border:var(--ds-border-emphasis) solid var(--ds-border-color)}.ds-root[data-style=neo_brutalism] .ds-h1{text-transform:uppercase}.ds-root[data-style=macaron_healing]{background-image:linear-gradient(180deg, color-mix(in srgb, var(--ds-primary) 8%, transparent), transparent 34%)}.ds-root[data-style=macaron_healing] .ds-btn--primary{background-image:linear-gradient(135deg, var(--ds-primary), color-mix(in srgb, var(--ds-accent) 62%, var(--ds-primary)));border:0}.ds-root[data-style=macaron_healing] .ds-card{box-shadow:var(--ds-shadow-md);border-color:#0000}.ds-root[data-style=gov_solemn] .ds-card,.ds-root[data-style=medical_pro] .ds-card{box-shadow:none;border-color:var(--ds-border-color)}.ds-root[data-style=gov_solemn] .ds-h1{letter-spacing:.08em}.ds-root[data-style=gov_solemn] .ds-tag--accent{background:color-mix(in srgb, var(--ds-primary) 12%, transparent);color:var(--ds-primary)}.ds-root[data-style=nordic_calm] .ds-divider{border-top:1px dashed var(--ds-border-color);background:0 0;height:0}.ds-root[data-style=nordic_calm] .ds-card{box-shadow:var(--ds-shadow-sm);border-color:#0000}.ds-root[data-style=song_kongjian]{background-image:radial-gradient(at 85% 8%,#4f736c0b,#0000 55%)}.ds-root[data-style=song_kongjian] .ds-card{box-shadow:none;border-color:var(--ds-border-color)}.ds-root[data-style=song_kongjian] .ds-divider{background:linear-gradient(90deg, var(--ds-border-color) 0%, transparent 78%)}.ds-root[data-style=song_kongjian] .ds-h1,.ds-root[data-style=song_kongjian] .ds-h2{letter-spacing:.12em}.ds-root[data-style=song_kongjian] .ds-btn--primary{color:var(--ds-primary);border-color:var(--ds-primary);letter-spacing:.18em;background:0 0}.ds-root[data-style=tang_gongting]{background-image:radial-gradient(circle at 12% 6%,#b8860b12,#0000 42%),radial-gradient(circle at 88% 92%,#2b4e9b0d,#0000 46%)}.ds-root[data-style=tang_gongting] .ds-card{border-color:color-mix(in srgb, var(--ds-accent) 55%, var(--ds-border-color));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--ds-accent) 26%, transparent)}.ds-root[data-style=tang_gongting] .ds-divider{background:repeating-linear-gradient(90deg, var(--ds-accent) 0 6px, transparent 6px 10px);opacity:.55}.ds-root[data-style=tang_gongting] .ds-btn--primary{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--ds-accent) 70%, transparent);letter-spacing:.12em}.ds-root[data-style=tang_gongting] .ds-tag--accent{background:color-mix(in srgb, var(--ds-accent) 18%, transparent);color:var(--ds-accent);border:1px solid color-mix(in srgb, var(--ds-accent) 45%, transparent)}.ds-root[data-style=ghibli_healing]{background-image:linear-gradient(180deg, color-mix(in srgb, var(--ds-accent) 9%, transparent), transparent 30%, color-mix(in srgb, var(--ds-primary) 5%, transparent) 100%)}.ds-root[data-style=ghibli_healing] .ds-card{box-shadow:var(--ds-shadow-md);border-color:#0000}.ds-root[data-style=ghibli_healing] .ds-divider{border-top:1.5px dashed var(--ds-border-color);background:0 0;height:0}.ds-root[data-style=deco_noir] .ds-card{clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px));border-color:color-mix(in srgb, var(--ds-accent) 45%, var(--ds-border-color))}.ds-root[data-style=deco_noir] .ds-divider{background:repeating-linear-gradient(90deg, var(--ds-accent) 0 12px, transparent 12px 16px, var(--ds-accent) 16px 18px, transparent 18px 30px);opacity:.5}.ds-root[data-style=deco_noir] .ds-h1{text-transform:uppercase;letter-spacing:.18em}.ds-root[data-style=deco_noir] .ds-btn--primary{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--ds-accent) 60%, transparent);letter-spacing:.14em}@media (hover:hover){.ds-root[data-hover=lift] .ds-btn:hover,.ds-root[data-hover=lift] .ds-card--tappable:hover{transform:translateY(-2px)}.ds-root[data-hover=scale] .ds-btn:hover,.ds-root[data-hover=scale] .ds-card--tappable:hover{transform:scale(1.02)}.ds-root[data-hover=glow] .ds-btn:hover,.ds-root[data-hover=glow] .ds-card--tappable:hover{box-shadow:var(--ds-shadow-glow)}}.ds-root[data-active=shrink] .ds-btn:active{transform:scale(.97)}.ds-root[data-active=opacity] .ds-btn:active{opacity:.7}@media (prefers-reduced-motion:reduce){.ds-root *,.ds-root :before,.ds-root :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
