:root{color-scheme:light;--bg:#f5f8fa;--surface:#fff;--surface-ice:#edf5f8;--surface-elevated:#fff;--text-primary:var(--text);--primary:var(--cyan);--primary-hover:#05667e;--primary-soft:var(--cyan-soft);--accent-text:#076f88;--focus-ring:var(--cyan);--info:var(--cyan);--on-primary:#fff;--glass:#ffffffe0;--text:#172d3d;--text-secondary:#435e70;--text-muted:#596f80;--border:#d5e2e9;--border-strong:#a8c3d2;--cyan:#087b96;--cyan-bright:#0aa7c5;--cyan-soft:#e4f5f8;--violet:#7355a3;--violet-soft:#f0ecf8;--success:#24714f;--warning:#876219;--error:#ac3f42;--glow:0 0 28px #0aa7c517;--shadow:0 5px 20px #1d3f530a;--shadow-lg:0 24px 90px #18314429;--radius:14px;--radius-sm:8px;--radius-modal:20px;--radius-pill:999px;--font-body:"PingFang TC", "Microsoft JhengHei", "Noto Sans TC", sans-serif;--font-display:"Segoe UI", "Helvetica Neue", Arial, sans-serif;--font-mono:"Cascadia Code", "SFMono-Regular", Consolas, monospace;--text-xs:.8125rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-title:clamp(2rem, 4.3vw, 3.6rem);--weight-normal:400;--weight-medium:500;--weight-bold:650;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--space-9:6rem;--container:1280px;--reading:740px;--medium:1000px;--duration:.18s;--ease:cubic-bezier(.2,.7,.2,1);--shadow-menu:0 12px 40px #1831441a;--duration-slow:.7s;--z-header:20;--z-skip:50}body{font-family:var(--font-body);font-size:var(--text-base);font-weight:var(--weight-normal);color:var(--text);line-height:1.8}h1,h2,h3,h4{line-height:1.4;font-weight:var(--weight-bold);text-wrap:balance}h1,h2,h3,h4,p{margin-top:0}h1{font-size:var(--text-title);letter-spacing:-.03em}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}p{color:var(--text-secondary)}.mono{font:var(--text-xs)/1.65 var(--font-mono);letter-spacing:.07em}.eyebrow{font:var(--text-xs)/1.6 var(--font-mono);letter-spacing:.14em;color:var(--accent-text)}.display{font-family:var(--font-display)}.prose{max-width:var(--reading);font-size:var(--text-lg);overflow-wrap:anywhere}.prose h2{margin:var(--space-8) 0 var(--space-5);font-size:1.6rem}.prose h3{margin-top:var(--space-7)}.prose p,.prose li{line-height:1.95}.prose a{color:var(--accent-text);text-underline-offset:.2em;text-decoration:underline}.prose blockquote{margin:var(--space-7) 0;padding:var(--space-5) var(--space-6);border-left:3px solid var(--cyan);background:var(--surface-ice)}.prose blockquote p:last-child{margin:0}.prose pre{padding:var(--space-5);border-radius:var(--radius-sm);overflow-x:auto}.prose table{border-collapse:collapse;max-width:100%;font-size:var(--text-base);display:block;overflow-x:auto}.prose th,.prose td{padding:var(--space-3) var(--space-5);border:1px solid var(--border);text-align:left}.prose img{border-radius:var(--radius)}*,:before,:after{box-sizing:border-box}html{scrollbar-gutter:stable;scroll-padding-top:120px}body{background:var(--bg);margin:0}body:has(dialog[open]){overflow:hidden}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default}button,input{color:var(--text)}img,svg{max-width:100%}img{height:auto;display:block}button,input,a{touch-action:manipulation}:focus-visible{outline:3px solid var(--cyan);outline-offset:5px}::selection{background:var(--cyan-soft);color:var(--text)}[hidden]{display:none!important}main{min-height:65vh;padding-top:7rem}section{scroll-margin-top:110px}.container{width:min(var(--container), calc(100% - 96px));margin-inline:auto}.container--medium{max-width:var(--medium)}.container--reading{max-width:var(--reading)}.section{margin-block:var(--space-8)}.section-head{justify-content:space-between;align-items:baseline;gap:var(--space-5);margin-bottom:var(--space-5);display:flex}.section-head h2{margin:0}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-6);box-shadow:var(--shadow)}.grid{gap:var(--space-5);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}.button{justify-content:center;align-items:center;gap:var(--space-3);min-height:46px;padding:var(--space-2) var(--space-5);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);font-weight:var(--weight-medium);transition:border-color var(--duration), background var(--duration);display:inline-flex}.button:hover{background:var(--cyan-soft);border-color:var(--cyan)}.button--primary{color:var(--on-primary);background:var(--cyan);border-color:var(--cyan)}.button--primary:hover{background:var(--primary-hover);color:var(--on-primary)}.text-link{color:var(--accent-text);text-underline-offset:.25em;text-decoration:underline}.tags{gap:var(--space-2);flex-wrap:wrap;display:flex}.tag{font-size:var(--text-xs);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-secondary);padding:.15rem .65rem}.status{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--success);display:inline-flex}.status:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.muted{color:var(--text-muted)}.demo-note{font-size:var(--text-sm);border-left:2px solid var(--border-strong);padding-left:var(--space-4)}.skip-link{z-index:var(--z-skip);padding:var(--space-3);background:var(--surface);position:fixed;top:8px;left:16px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.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}.grid-surface{background-image:linear-gradient(var(--border) 1px, transparent 1px), linear-gradient(90deg, var(--border) 1px, transparent 1px);background-size:40px 40px}dialog{border:1px solid var(--border);background:var(--surface-elevated);color:var(--text);border-radius:var(--radius-modal);padding:var(--space-6);box-shadow:var(--shadow-lg);max-height:calc(100dvh - 48px);overflow:auto}dialog::backdrop{background:#1b2f414d}.dialog-head{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-5);display:flex}.dialog-head h2{margin:0}.dialog-close{border:1px solid var(--border);background:var(--bg);border-radius:var(--radius-sm);min-width:44px;min-height:44px;font-size:1.4rem}@media (width<=900px){.container{width:calc(100% - 48px)}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=600px){.container{width:calc(100% - 36px)}main{padding-top:6.125rem}.section{margin-block:var(--space-7)}.grid,.grid--two{grid-template-columns:1fr}.panel{padding:var(--space-5)}.section-head{flex-wrap:wrap}dialog{padding:var(--space-5);max-height:calc(100dvh - 24px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.cms-table{max-width:100%;overflow-x:auto}.cms-table table{border-collapse:collapse;width:100%}.cms-table th,.cms-table td{border:1px solid var(--border);padding:var(--space-3);vertical-align:top}.cms-tasks{padding-left:0;list-style:none}.cms-tasks li{gap:var(--space-3);display:flex}.prose figure img{max-width:100%;height:auto}.withdrawn-toast{z-index:1000;border:1px solid var(--border-strong);background:var(--surface-elevated);width:max-content;max-width:calc(100vw - 32px);color:var(--text);box-shadow:var(--shadow-menu);border-radius:12px;align-items:center;gap:16px;padding:16px 20px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.withdrawn-toast button{white-space:nowrap;padding:6px 12px}button:disabled{opacity:.55}input,select,textarea{background:var(--surface);color:var(--text)}.panel+.panel{margin-top:var(--space-4)}.empty-state{padding:var(--space-7);background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius)}.empty-state h2{margin-bottom:var(--space-3)}.empty-state p{max-width:40rem}.empty-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.content-count{font-size:var(--text-sm);color:var(--text-muted)}.prose>:first-child{margin-top:0}.prose h2,.prose h3,.prose h4{scroll-margin-top:0}.prose pre{min-width:0;max-width:100%}.prose pre code{white-space:pre}@media (width<=600px){.empty-state{padding:var(--space-5)}.container{width:calc(100% - 32px)}}.link-dialog{width:min(32rem,100% - 36px)}.link-dialog [data-link-status]{margin:0 0 var(--space-3);color:var(--accent-text);font-weight:var(--weight-medium);min-height:1.6em}.link-dialog-url{width:100%;min-height:46px;padding:var(--space-2) var(--space-4);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font:inherit;overflow-x:auto}.link-dialog-note{margin:var(--space-3) 0 var(--space-5);color:var(--text-muted);font-size:.9rem}.link-dialog-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.link-dialog-actions [hidden]{display:none}[data-theme=light]{color-scheme:light}[data-theme=dark]{color-scheme:dark;--bg:#101b27;--surface:#182635;--surface-elevated:#213244;--surface-ice:#162f3d;--glass:#182635f0;--text:#e6eef5;--text-secondary:#b6c6d5;--text-muted:#a1b4c5;--border:#35495c;--border-strong:#57758c;--cyan:#75d9ed;--accent-text:#75d9ed;--cyan-bright:#95e5f3;--cyan-soft:#173e4e;--primary-hover:#a3e9f5;--on-primary:#10202d;--violet:#c1a4ef;--violet-soft:#302940;--success:#8ed7ad;--warning:#f0ca7e;--error:#ffadb2;--glow:0 8px 28px #00000038;--shadow:0 4px 20px #0000001f;--shadow-lg:0 24px 90px #0006;--shadow-menu:0 12px 40px #00000040}[data-theme=dark] .prose .cms-callout{background:var(--cyan-soft);border-color:var(--cyan)}[data-theme=dark] .prose .cms-callout-reminder{border-color:var(--warning);background:#3a321f}[data-theme=dark] .prose .cms-callout-warning{border-color:var(--error);background:#3f2630}[data-theme=dark] .prose pre{color:var(--text);background:#0b1520}[data-theme=dark] .prose th,[data-theme=dark] .prose td{border-color:var(--border)}button,a,input,select,textarea{transition:background-color var(--duration) var(--ease), color var(--duration) var(--ease), border-color var(--duration) var(--ease)}@supports not (backdrop-filter:blur(12px)){.floating-header{background:var(--surface)}}@media (forced-colors:active){.status:before{border:1px solid canvastext}}
