@import"https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:wght@600;700;800&family=Noto+Sans+SC:wght@400;700;800&display=swap";:root{--color-paper: oklch(97.5% .012 92);--color-paper-2: oklch(94% .022 92);--color-paper-3: oklch(90% .035 92);--color-ink: oklch(22% .025 282);--color-ink-soft: oklch(38% .035 282);--color-muted: oklch(48% .025 282);--color-rule: oklch(77% .035 282);--color-accent: oklch(49% .145 288);--color-accent-dark: oklch(39% .13 288);--color-accent-soft: oklch(91% .055 288);--color-accent-ink: oklch(98% .008 92);--color-warm: oklch(76% .145 65);--color-warm-soft: oklch(93% .055 65);--color-success: oklch(48% .11 155);--color-error: oklch(49% .17 28);--color-focus: oklch(45% .18 288);--color-overlay: oklch(22% .025 282 / .58);--font-display: "Bricolage Grotesque", "PingFang SC", sans-serif;--font-body: "Noto Sans SC", "PingFang SC", sans-serif;--space-3xs: .125rem;--space-2xs: .25rem;--space-xs: .5rem;--space-sm: .75rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2.5rem;--space-2xl: 4rem;--space-3xl: 6rem;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-md: 1.25rem;--text-lg: 1.5625rem;--text-xl: 1.953rem;--text-display: clamp(2rem, 5vw + .5rem, 4.25rem);--radius-sm: .5rem;--radius-md: .75rem;--radius-round: 999px;--rule-thin: 1px;--rule-strong: 2px;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.7, 0, .84, 0);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--dur-micro: .12s;--dur-short: .22s;--dur-long: .42s}html,body{overflow-x:clip}.kd-page{min-height:100dvh;background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);display:flex;flex-direction:column}.kd-page button,.kd-page textarea{font-family:var(--font-body)}.kd-page button{min-height:44px;white-space:nowrap}.kd-page button:focus-visible,.kd-page textarea:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.kd-nav{display:grid;grid-template-columns:44px minmax(0,1fr) 52px;align-items:center;gap:var(--space-sm);min-height:68px;padding:var(--space-sm) clamp(var(--space-md),4vw,var(--space-xl));border-bottom:var(--rule-strong) solid var(--color-ink);background:var(--color-paper)}.kd-wordmark{justify-self:center;display:inline-flex;align-items:center;gap:var(--space-xs);font-family:var(--font-display);font-size:var(--text-md);font-weight:800;background:none;border:none;padding:0;color:inherit;cursor:pointer}.kd-icon-button,.kd-language{border:var(--rule-thin) solid var(--color-ink);background:var(--color-paper);color:var(--color-ink);border-radius:var(--radius-sm);display:grid;place-items:center}.kd-language{font-weight:800;padding-inline:var(--space-sm)}.kd-nav-brand{display:none;align-items:center;gap:var(--space-2xs)}.kd-nav-brand img{display:block;height:22px;width:auto;object-fit:contain}.kd-nav-brand span{color:var(--color-ink-soft);font-size:var(--text-sm)}.kd-brand-footer{display:flex;flex-direction:column;align-items:center;gap:var(--space-2xs);padding:var(--space-md);text-align:center;border-top:var(--rule-strong) solid var(--color-ink)}.kd-brand-footer__logos{display:flex;align-items:center;gap:var(--space-xs)}.kd-brand-footer__logos img{display:block;height:26px;width:auto;object-fit:contain;opacity:.85}.kd-brand-footer__logos span{color:var(--color-ink-soft)}.kd-brand-footer p{color:var(--color-ink-soft);font-size:var(--text-xs)}.kd-brand-footer__links{display:flex;align-items:center;gap:var(--space-xs);margin-block-start:var(--space-2xs)}.kd-brand-footer__links button{background:none;border:none;padding:0;min-height:auto;color:var(--color-ink-soft);font-size:var(--text-xs);text-decoration:underline;cursor:pointer}.kd-brand-footer__links span{color:var(--color-ink-soft);font-size:var(--text-xs)}.kd-legal-card{position:relative;width:min(100%,520px);max-height:min(80dvh,620px);overflow-y:auto;padding:var(--space-xl);border:var(--rule-strong) solid var(--color-ink);border-radius:var(--radius-md);background:var(--color-paper);box-shadow:8px 8px 0 var(--color-ink);text-align:left;display:grid;gap:var(--space-sm)}.kd-legal-card h2{font-family:var(--font-display);font-size:var(--text-lg);padding-inline-end:var(--space-2xl)}.kd-legal-card p{font-size:var(--text-sm);line-height:1.55;color:var(--color-ink-soft)}.kd-legal-card p strong{color:var(--color-ink)}.kd-legal-close{position:absolute;top:var(--space-sm);right:var(--space-sm)}.kd-workbench{width:min(100%,880px);margin-inline:auto;padding:var(--space-xl) clamp(var(--space-md),5vw,var(--space-2xl)) var(--space-2xl);flex:1}.kd-companion{display:grid;grid-template-columns:72px minmax(0,1fr);gap:var(--space-lg);align-items:center;margin-block-end:var(--space-xl)}.kd-companion p{font-family:var(--font-display);font-size:clamp(var(--text-md),3vw,var(--text-lg));font-weight:700;line-height:1.25;overflow-wrap:anywhere}.kd-buddy{width:70px;height:70px;position:relative;transform:rotate(-7deg)}.kd-buddy__dragon-small{position:absolute;inset-inline-start:3px;inset-block-end:-3px;width:64px;height:72px;object-fit:contain;filter:saturate(1.65) contrast(1.16) drop-shadow(2px 3px 0 var(--color-ink))}.kd-companion.is-welcome{grid-template-columns:140px minmax(0,1fr);gap:var(--space-xl);min-height:150px;margin-block-end:var(--space-lg)}.kd-companion.is-welcome .kd-buddy{width:140px;height:142px;transform:none}.kd-buddy__dragon{position:absolute;z-index:2;inset-inline-start:8px;inset-block-end:-2px;width:124px;height:140px;object-fit:contain;filter:saturate(1.65) contrast(1.16) drop-shadow(2px 3px 0 var(--color-ink));transform-origin:58% 82%;animation:kd-dragon-hello .52s var(--ease-out) both}.kd-buddy__dragon--ink{filter:saturate(1.65) contrast(1.16)}.kd-bubble{position:absolute;z-index:3;padding:var(--space-2xs) var(--space-xs);border:var(--rule-thin) solid var(--color-ink);border-radius:var(--radius-round);background:var(--color-paper);color:var(--color-ink);font-family:var(--font-display);font-size:var(--text-xs);font-weight:800;line-height:1;white-space:nowrap}.kd-bubble:after{content:"";position:absolute;width:6px;height:6px;background:var(--color-paper);border-inline-end:var(--rule-thin) solid var(--color-ink);border-block-end:var(--rule-thin) solid var(--color-ink);transform:rotate(45deg)}.kd-bubble--zh{inset-inline-start:-2px;inset-block-start:3px;transform:rotate(-4deg)}.kd-bubble--zh:after{inset-inline-end:9px;inset-block-end:-4px}.kd-bubble--en{inset-inline-end:-3px;inset-block-start:12px;transform:rotate(3deg)}.kd-bubble--en:after{inset-inline-start:9px;inset-block-end:-4px}.kd-spark{position:absolute;width:11px;height:11px}.kd-spark:before,.kd-spark:after{content:"";position:absolute;inset:5px 0 auto;height:var(--rule-strong);background:var(--color-warm);border-radius:var(--radius-round)}.kd-spark:after{transform:rotate(90deg)}.kd-spark--one{inset-inline-start:3px;inset-block-end:34px;transform:rotate(18deg)}.kd-spark--two{inset-inline-end:5px;inset-block-end:22px;transform:scale(.72) rotate(28deg)}.kd-dot{position:absolute;width:5px;height:5px;border-radius:var(--radius-round);background:var(--color-accent);inset-inline-end:9px;inset-block-start:54px}.kd-buddy.is-listening{animation:kd-listen 1.1s var(--ease-in-out) infinite alternate}.kd-panel{background:var(--color-paper-2);border:var(--rule-strong) solid var(--color-ink);border-radius:var(--radius-md);padding:clamp(var(--space-lg),5vw,var(--space-xl));box-shadow:7px 7px 0 var(--color-ink)}.kd-panel h1{font-family:var(--font-display);font-size:clamp(var(--text-xl),7vw,var(--text-display));line-height:1.08;letter-spacing:-.035em;overflow-wrap:anywhere;min-width:0}.kd-language-panel p,.kd-lede{margin-block-start:var(--space-sm);color:var(--color-ink-soft);font-size:var(--text-md)}.kd-choice-row{display:grid;gap:var(--space-md);margin-block-start:var(--space-xl)}.kd-big-choice{border:var(--rule-strong) solid var(--color-ink);background:var(--color-paper);color:var(--color-ink);border-radius:var(--radius-md);padding:var(--space-md);text-align:start;display:grid;grid-template-columns:58px minmax(0,1fr) 24px;align-items:center;gap:var(--space-md);transition:transform var(--dur-micro) var(--ease-out)}.kd-big-choice>span{display:grid;gap:var(--space-2xs)}.kd-big-choice strong{font-family:var(--font-display);font-size:var(--text-lg);font-weight:800}.kd-big-choice small{font-size:var(--text-base);color:var(--color-ink-soft)}.kd-big-choice>svg{justify-self:end}.kd-language-mark{width:58px;height:58px;display:grid;place-items:center;border:var(--rule-strong) solid var(--color-ink);border-radius:var(--radius-round);font-family:var(--font-display);font-size:var(--text-xl);line-height:1}.kd-big-choice--zh .kd-language-mark{background:var(--color-warm-soft)}.kd-big-choice--en .kd-language-mark{background:var(--color-accent-soft)}.kd-mixed{font-size:var(--text-sm)!important;display:flex;align-items:center;gap:var(--space-xs)}.kd-mixed svg{flex:0 0 auto;color:var(--color-error);fill:var(--color-paper)}.kd-talk-panel{text-align:start}.kd-mic{width:156px;height:156px;margin:var(--space-xl) auto var(--space-lg);border-radius:var(--radius-round);border:var(--rule-strong) solid var(--color-ink);background:var(--color-warm);color:var(--color-ink);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--space-xs);box-shadow:7px 7px 0 var(--color-ink);font-weight:800;transition:transform var(--dur-micro) var(--ease-out)}.kd-mic.is-recording,.kd-small-mic.is-recording{background:var(--color-accent);color:var(--color-accent-ink)}.kd-live-text{text-align:center;font-size:var(--text-md);line-height:1.6}.kd-label{display:flex;gap:var(--space-xs);align-items:center;font-weight:800;margin-block-end:var(--space-sm)}.kd-panel textarea{display:block;width:100%;min-height:112px;resize:vertical;padding:var(--space-md);border:var(--rule-thin) solid var(--color-ink);outline:var(--rule-strong) solid transparent;border-radius:var(--radius-sm);background:var(--color-paper);color:var(--color-ink);font-size:var(--text-md);line-height:1.55}.kd-follow-panel label{display:block;font-weight:800;margin-block:var(--space-lg) var(--space-xs)}.kd-small-mic{margin-block-start:var(--space-sm);padding-inline:var(--space-md);border:var(--rule-thin) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-paper);color:var(--color-ink);display:inline-flex;align-items:center;gap:var(--space-xs);font-weight:700}.kd-action-row,.kd-result-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-sm);margin-block-start:var(--space-lg)}.kd-primary,.kd-secondary{border-radius:var(--radius-sm);padding-inline:var(--space-lg);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);font-weight:800;transition:transform var(--dur-micro) var(--ease-out)}.kd-primary{background:var(--color-accent);color:var(--color-accent-ink);border:var(--rule-strong) solid var(--color-ink);box-shadow:3px 3px 0 var(--color-ink)}.kd-secondary{background:var(--color-paper);color:var(--color-ink);border:var(--rule-thin) solid var(--color-ink)}.kd-page button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.kd-error{margin-block-end:var(--space-lg);padding:var(--space-sm) var(--space-md);border:var(--rule-strong) solid var(--color-error);color:var(--color-error);background:var(--color-paper);font-weight:700;border-radius:var(--radius-sm)}.kd-painting{text-align:center}.kd-painting h1{font-size:var(--text-xl);margin-block-start:var(--space-lg)}.kd-painting p{margin-block-start:var(--space-xs);color:var(--color-ink-soft)}.kd-paper-stack{width:156px;height:120px;margin-inline:auto;position:relative;display:grid;place-items:center;color:var(--color-accent)}.kd-paper-stack span{position:absolute;top:8px;right:8px;bottom:8px;left:8px;border:var(--rule-strong) solid var(--color-ink);background:var(--color-paper);transform:rotate(-4deg)}.kd-paper-stack span:nth-child(2){transform:rotate(3deg);background:var(--color-warm-soft)}.kd-paper-stack svg{position:relative;animation:kd-paint 1.5s var(--ease-in-out) infinite alternate}.kd-progress{width:min(100%,360px);height:10px;margin:var(--space-lg) auto 0;border:var(--rule-thin) solid var(--color-ink);background:var(--color-paper);overflow:clip}.kd-progress i{display:block;width:100%;height:100%;transform-origin:left;background:var(--color-accent);transition:transform var(--dur-long) var(--ease-out)}.kd-result figure{border:var(--rule-strong) solid var(--color-ink);background:var(--color-paper);box-shadow:7px 7px 0 var(--color-ink)}.kd-result img{width:100%;aspect-ratio:4/3;object-fit:cover}.kd-result figcaption{display:grid;gap:var(--space-xs);padding:var(--space-lg);border-top:var(--rule-strong) solid var(--color-ink)}.kd-result figcaption strong{font-family:var(--font-display);font-size:var(--text-lg)}.kd-result figcaption span{color:var(--color-ink-soft);font-size:var(--text-md)}.kd-share-block{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm);margin-block-start:var(--space-md)}.kd-share-toggle{display:inline-flex;align-items:center;gap:var(--space-xs);font-weight:700;font-size:var(--text-sm);color:var(--color-ink-soft)}.kd-share-toggle svg{color:var(--color-error);fill:var(--color-paper);flex:0 0 auto}.kd-share-toggle input{width:20px;height:20px;accent-color:var(--color-accent)}.kd-share-confirm{padding-block:var(--space-2xs);font-size:var(--text-sm)}.kd-share-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:var(--space-lg);background:var(--color-overlay)}.kd-share-card{width:min(100%,420px);padding:var(--space-xl);border:var(--rule-strong) solid var(--color-ink);border-radius:var(--radius-md);background:var(--color-paper);box-shadow:8px 8px 0 var(--color-ink);text-align:center;display:grid;justify-items:center;gap:var(--space-xs)}.kd-share-card svg{color:var(--color-accent)}.kd-share-card__zh{font-family:var(--font-display);font-size:var(--text-lg);font-weight:800;line-height:1.3}.kd-share-card__en{color:var(--color-ink-soft);font-size:var(--text-md)}.kd-share-card__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-sm);margin-block-start:var(--space-md)}.kd-qr-box{padding:var(--space-sm);background:#fff;border-radius:var(--radius-sm);line-height:0}.kd-print-dialog{width:min(calc(100% - var(--space-lg)),720px);max-height:calc(100dvh - var(--space-lg));padding:0;border:var(--rule-strong) solid var(--color-ink);border-radius:var(--radius-md);background:var(--color-paper);color:var(--color-ink);box-shadow:8px 8px 0 var(--color-ink);overflow:auto}.kd-print-dialog::backdrop{background:var(--color-overlay)}.kd-print-dialog__head{position:sticky;inset-block-start:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-md);border-bottom:var(--rule-strong) solid var(--color-ink);background:var(--color-paper)}.kd-print-dialog__head>div{display:grid;gap:var(--space-2xs)}.kd-print-dialog__head strong{font-family:var(--font-display);font-size:var(--text-md)}.kd-print-dialog__head span{color:var(--color-ink-soft);font-size:var(--text-sm)}.kd-print-sheet{width:min(100%,500px);aspect-ratio:210/297;margin:var(--space-lg) auto;padding:var(--space-lg);border:var(--rule-strong) solid var(--color-ink);background:var(--color-paper-2);display:flex;flex-direction:column;gap:var(--space-md);box-shadow:5px 5px 0 var(--color-rule)}.kd-print-sheet>header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-sm);padding-block-end:var(--space-xs);border-bottom:var(--rule-strong) solid var(--color-ink)}.kd-print-sheet>header small{font-size:var(--text-xs);font-weight:800;letter-spacing:.06em}.kd-print-brand-row{display:flex;align-items:center;gap:var(--space-2xs);min-width:0}.kd-print-brand-logo{display:block;width:auto;max-width:96px;height:40px;object-fit:contain;object-position:left center}.kd-print-brand-x{color:var(--color-ink-soft);font-size:var(--text-sm);flex-shrink:0}.kd-idea-fallback{width:min(100%,560px);min-height:88px;margin-inline:auto}.kd-type-confirm{align-self:center}.kd-print-art{border:var(--rule-strong) solid var(--color-ink);background:var(--color-paper);padding:var(--space-xs)}.kd-print-art img{display:block;width:100%;aspect-ratio:4/3;object-fit:contain}.kd-print-sheet section{display:grid;gap:var(--space-xs)}.kd-print-sheet h2{font-family:var(--font-display);font-size:var(--text-lg);line-height:1.15}.kd-print-sheet section p{font-size:var(--text-base);line-height:1.45}.kd-print-sheet section small{color:var(--color-ink-soft);font-size:var(--text-sm);line-height:1.45}.kd-print-sheet footer{margin-block-start:auto;display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-md);font-size:var(--text-xs);font-weight:800}.kd-print-sheet footer img{width:58px;height:66px;object-fit:contain;filter:saturate(1.6) contrast(1.15)}.kd-print-dialog__actions{position:sticky;inset-block-end:0;display:flex;align-items:center;justify-content:flex-end;gap:var(--space-sm);padding:var(--space-md);border-top:var(--rule-strong) solid var(--color-ink);background:var(--color-paper)}.kd-gallery{margin-block-start:var(--space-2xl)}.kd-gallery__label{margin-block-end:var(--space-sm);font-family:var(--font-display);font-weight:800;letter-spacing:.02em;color:var(--color-ink-soft);font-size:var(--text-sm)}.kd-gallery-marquee{overflow:clip;border:var(--rule-strong) solid var(--color-ink);border-radius:var(--radius-md);background:var(--color-paper-2)}.kd-gallery-marquee div{width:max-content;display:flex;gap:var(--space-sm);padding:var(--space-sm);animation:kd-marquee 40s linear infinite}.kd-gallery-marquee img{width:96px;height:96px;object-fit:cover;border:var(--rule-thin) solid var(--color-ink);border-radius:var(--radius-sm)}.kd-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(hover:hover)and (pointer:fine){.kd-page button:not(:disabled):hover{transform:translateY(-2px)}.kd-big-choice:hover{background:var(--color-warm-soft)}}.kd-page button:not(:disabled):active{transform:translateY(1px);box-shadow:none}@media(min-width:40rem){.kd-nav{grid-template-columns:44px minmax(0,1fr) auto 52px}.kd-nav-brand{display:flex}.kd-choice-row{grid-template-columns:repeat(2,minmax(0,1fr))}.kd-workbench{padding-block-start:var(--space-2xl)}.kd-companion:not(.is-welcome){grid-template-columns:92px minmax(0,1fr)}.kd-companion:not(.is-welcome) .kd-buddy{transform:scale(1.18) rotate(-7deg)}.kd-companion.is-welcome{grid-template-columns:150px minmax(0,1fr);gap:var(--space-2xl);padding-inline:var(--space-lg)}.kd-companion.is-welcome .kd-buddy{transform:scale(1.06)}.kd-result-actions{flex-wrap:nowrap}}@media(max-width:24rem){.kd-action-row,.kd-result-actions{flex-direction:column}.kd-action-row button,.kd-result-actions button{width:100%}.kd-panel{box-shadow:4px 4px 0 var(--color-ink)}.kd-wordmark{font-size:var(--text-base)}.kd-companion.is-welcome{grid-template-columns:126px minmax(0,1fr);gap:var(--space-md);min-height:136px}.kd-companion.is-welcome .kd-buddy{transform:scale(.9);transform-origin:left center}.kd-big-choice{grid-template-columns:50px minmax(0,1fr) 20px;gap:var(--space-sm);padding:var(--space-sm)}.kd-language-mark{width:50px;height:50px;font-size:var(--text-lg)}.kd-print-dialog__actions{flex-direction:column-reverse}.kd-print-dialog__actions button{width:100%}.kd-print-sheet{padding:var(--space-sm)}.kd-print-sheet>header small{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.15s!important;animation-iteration-count:1!important;transition-duration:.15s!important}.kd-gallery-marquee div{animation:none}}@keyframes kd-listen{to{transform:rotate(2deg) scale(1.04)}}@keyframes kd-dragon-hello{0%{opacity:0;transform:translateY(8px) rotate(-3deg)}to{opacity:1;transform:none}}@keyframes kd-wave{0%,to{transform:rotate(-68deg)}50%{transform:rotate(-92deg)}}@keyframes kd-paint{to{transform:translate(18px) rotate(8deg)}}@keyframes kd-marquee{to{transform:translate(-50%)}}:root{--primary: #7c3aed;--primary-light: #a78bfa;--primary-dark: #5b21b6;--primary-bg: #f5f3ff;--accent: #f59e0b;--accent-light: #fde68a;--accent-dark: #d97706;--text: #0f172a;--text-secondary: #475569;--text-light: #94a3b8;--border: #e2e8f0;--border-light: #f1f5f9;--bg: #ffffff;--bg-gray: #f8fafc;--success: #10b981;--warning: #f59e0b;--error: #ef4444;--radius: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow: 0 1px 3px rgba(0,0,0,.1), 0 1px 2px rgba(0,0,0,.06);--shadow-md: 0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -1px rgba(0,0,0,.06);--shadow-lg: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -2px rgba(0,0,0,.05);--shadow-xl: 0 20px 25px -5px rgba(0,0,0,.1), 0 10px 10px -5px rgba(0,0,0,.04)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans SC,sans-serif;color:var(--text);background:var(--bg);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;font-family:inherit}input,textarea,select{font-family:inherit}img{max-width:100%;display:block}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--border-light)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-light)}.container{max-width:1200px;margin:0 auto;padding:0 24px}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border-radius:var(--radius);font-size:14px;font-weight:500;transition:all .2s;cursor:pointer;border:none;text-decoration:none}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-outline{background:transparent;color:var(--primary);border:1.5px solid var(--primary)}.btn-outline:hover{background:var(--primary-bg)}.btn-accent{background:var(--accent);color:#fff}.btn-accent:hover{background:var(--accent-dark);transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--text-secondary);border:1.5px solid var(--border)}.btn-ghost:hover{background:var(--bg-gray);color:var(--text)}.btn-sm{padding:6px 14px;font-size:13px}.btn-lg{padding:14px 28px;font-size:16px;border-radius:var(--radius-lg)}.card{background:#fff;border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow)}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%) translateY(0);background:#1e293b;color:#fff;padding:12px 24px;border-radius:24px;font-size:14px;z-index:9999;box-shadow:var(--shadow-lg);animation:toastIn .3s ease}@keyframes toastIn{0%{transform:translate(-50%) translateY(20px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;display:inline-block}.spinner-primary{border:2px solid var(--primary-bg);border-top-color:var(--primary)}@keyframes spin{to{transform:rotate(360deg)}}.tag{display:inline-flex;align-items:center;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:500}.tag-purple{background:var(--primary-bg);color:var(--primary)}.tag-amber{background:#fffbeb;color:var(--accent-dark)}.tag-green{background:#ecfdf5;color:#059669}.tag-blue{background:#eff6ff;color:#2563eb}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:14px;font-weight:500;color:var(--text)}.form-input{padding:10px 14px;border:1.5px solid var(--border);border-radius:var(--radius);font-size:14px;color:var(--text);background:#fff;transition:border-color .2s,box-shadow .2s;outline:none}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #7c3aed1a}.form-input::placeholder{color:var(--text-light)}@media(max-width:768px){.container{padding:0 14px}.btn-lg{padding:12px 18px;font-size:14px}.dashboard-grid{grid-template-columns:1fr!important}.nav-label{display:none}.hero-actions{flex-direction:column;align-items:stretch}.hero-actions a,.hero-actions button{text-align:center;justify-content:center}.stats-strip{grid-template-columns:repeat(2,1fr)!important;gap:16px!important}.feature-grid{grid-template-columns:1fr!important}.auth-box{padding:32px 20px!important;margin:16px!important}.admin-table-wrap{overflow-x:auto}.mode-grid{grid-template-columns:1fr!important}.style-grid,.book-grid{grid-template-columns:repeat(2,1fr)!important}nav .nav-links{display:none}}@media(max-width:480px){.stats-strip{grid-template-columns:1fr 1fr!important}.book-grid{grid-template-columns:1fr!important}}
