:root{--font-ui: Verdana, Geneva, "DejaVu Sans", Tahoma, sans-serif;--font-mono: ui-monospace, "SF Mono", "DejaVu Sans Mono", Menlo, monospace;--fs-xs: 11px;--fs-sm: 12px;--fs-md: 13px;--fs-lg: 15px;--fs-xl: 19px;--lh: 1.5;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--radius: 4px;--radius-sm: 3px;--bg: #f4f3f1;--panel: #fbfbfa;--panel-2: #efeeec;--ink: #232220;--ink-soft: #5c5a56;--ink-faint: #908d88;--line: #d9d7d3;--line-strong: #c4c1bc;--accent: #3a6ea5;--accent-soft: #e4ecf4;--danger: #a23b3b;--shadow: 0 1px 0 rgba(0, 0, 0, .03);--editor-font: var(--font-ui);--heading-color: var(--ink);--subheading-color: var(--ink)}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{font-family:var(--font-ui);font-size:var(--fs-md);line-height:var(--lh);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input,textarea{font-family:inherit;font-size:inherit;color:inherit}.btn{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--radius-sm);color:var(--ink);cursor:pointer;line-height:1;transition:background 80ms ease,border-color 80ms ease}.btn:hover{background:var(--panel-2);border-color:var(--ink-faint)}.btn:active{background:var(--panel-2)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent);filter:brightness(1.06)}.btn:disabled{opacity:.5;cursor:not-allowed}.input{width:100%;padding:var(--sp-2) var(--sp-3);background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--radius-sm);outline:none}.input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.hr{border:none;border-top:1px solid var(--line);margin:var(--sp-4) 0}.muted{color:var(--ink-soft)}.faint{color:var(--ink-faint)}@media print{.no-print{display:none!important}:root,[data-theme]{--bg: #ffffff;--ink: #000000;--editor-font: var(--font-ui)}html,body{background:#fff!important;height:auto!important}.shell,.content{display:block!important;height:auto!important;overflow:visible!important}.print-content{white-space:pre-wrap;word-wrap:break-word;font-family:var(--font-ui);font-size:12pt;line-height:1.5;color:#000;padding:0}@page{margin:2cm}}[data-theme=light]{--bg: #f4f3f1;--panel: #fbfbfa;--panel-2: #efeeec;--ink: #232220;--ink-soft: #5c5a56;--ink-faint: #908d88;--line: #d9d7d3;--line-strong: #c4c1bc;--accent: #3a6ea5;--accent-soft: #e4ecf4;--danger: #a23b3b;--shadow: 0 1px 0 rgba(0, 0, 0, .03);--editor-font: var(--font-ui);--heading-color: var(--ink);--subheading-color: var(--ink)}[data-theme=dark]{--bg: #1e1d1c;--panel: #272624;--panel-2: #2f2e2b;--ink: #e8e6e2;--ink-soft: #b0ada7;--ink-faint: #807d77;--line: #3a3937;--line-strong: #4a4845;--accent: #6fa3d6;--accent-soft: #2b3946;--danger: #d08a8a;--shadow: none;--editor-font: var(--font-ui);--heading-color: var(--ink);--subheading-color: var(--ink)}[data-theme=ayu]{--bg: #0f1419;--panel: #1c2128;--panel-2: #232a33;--ink: #e6e1cf;--ink-soft: #b3b1ad;--ink-faint: #6c7680;--line: #2a323b;--line-strong: #3a444f;--accent: #ffb454;--accent-soft: #2e2a20;--danger: #f07178;--shadow: none;--editor-font: var(--font-ui);--heading-color: #ffb454;--subheading-color: #e6e1cf}[data-theme=gruvbox]{--bg: #282828;--panel: #32302f;--panel-2: #3c3836;--ink: #ebdbb2;--ink-soft: #bdae93;--ink-faint: #928374;--line: #3c3836;--line-strong: #504945;--accent: #fabd2f;--accent-soft: #3a3527;--danger: #fb4934;--shadow: none;--editor-font: var(--font-ui);--heading-color: #fabd2f;--subheading-color: #b8bb26}[data-theme=code]{--bg: #1b1d23;--panel: #22252d;--panel-2: #2a2e37;--ink: #c0caf5;--ink-soft: #9aa5ce;--ink-faint: #565f89;--line: #2a2e37;--line-strong: #3b4261;--accent: #7aa2f7;--accent-soft: #2a2e44;--danger: #f7768e;--shadow: none;--editor-font: var(--font-mono);--heading-color: #7aa2f7;--subheading-color: #9ece6a}[data-theme=code] body{font-family:var(--font-mono)}
