:root{--bg-app: #fafafa;--bg-surface: #ffffff;--bg-surface-2: #f4f4f5;--bg-overlay: rgba(20, 20, 23, .55);--text-primary: #1a1a1a;--text-secondary: #4a4a4f;--text-muted: #76767d;--text-inverse: #ffffff;--text-on-accent: #ffffff;--border: #e5e5e5;--border-strong: #d4d4d6;--border-focus: #2c3e50;--accent-100: #e8eef4;--accent-300: #8fa3b8;--accent-500: #2c3e50;--accent-600: #1f2d3d;--success: #1f8a4c;--success-bg: #e6f4ec;--warning: #b26a00;--warning-bg: #fbf1de;--danger: #b23a3a;--danger-bg: #f7e6e6;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fs-xs: .75rem;--fs-sm: .8125rem;--fs-base: .9375rem;--fs-md: 1rem;--fs-lg: 1.125rem;--fs-xl: 1.375rem;--fs-2xl: 1.75rem;--fs-3xl: 2.25rem;--lh-tight: 1.25;--lh-base: 1.5;--lh-loose: 1.7;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--sp-16: 64px;--radius-sm: 4px;--radius: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-pill: 999px;--shadow-1: 0 1px 2px rgba(15, 15, 20, .04), 0 1px 1px rgba(15, 15, 20, .03);--shadow-2: 0 2px 4px rgba(15, 15, 20, .06), 0 1px 2px rgba(15, 15, 20, .04);--shadow-3: 0 4px 12px rgba(15, 15, 20, .08);--shadow-focus: 0 0 0 3px rgba(44, 62, 80, .18);--sidebar-w: 240px;--topbar-h: 56px;--content-max: 960px;--transition-fast: .12s ease;--transition: .18s ease}[data-theme=dark]{--bg-app: #121212;--bg-surface: #1a1a1d;--bg-surface-2: #202024;--bg-overlay: rgba(0, 0, 0, .7);--text-primary: #ededed;--text-secondary: #b8b8bd;--text-muted: #7e7e85;--text-inverse: #121212;--text-on-accent: #ffffff;--border: #262626;--border-strong: #333336;--border-focus: #8fa3b8;--accent-100: #1e2a3a;--accent-300: #6e84a0;--accent-500: #6e84a0;--accent-600: #8fa3b8;--success: #4fb07b;--success-bg: #1a2e25;--warning: #d6a04b;--warning-bg: #2e261a;--danger: #e07474;--danger-bg: #2e1a1a;--shadow-1: 0 1px 2px rgba(0, 0, 0, .4);--shadow-2: 0 2px 6px rgba(0, 0, 0, .5);--shadow-3: 0 6px 16px rgba(0, 0, 0, .6);--shadow-focus: 0 0 0 3px rgba(143, 163, 184, .28)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;overscroll-behavior:none}body{font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-base);color:var(--text-primary);background-color:var(--bg-app);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"cv11","ss01";overflow-x:hidden;overscroll-behavior:none}a{color:var(--accent-500);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--accent-600)}a:focus-visible{outline:none;box-shadow:var(--shadow-focus);border-radius:2px}img,svg{display:block;max-width:100%}button,.btn,a.btn{font-family:var(--font-sans);font-size:var(--fs-base);font-weight:var(--fw-medium);line-height:1;min-height:44px;padding:0 var(--sp-4);border:1px solid transparent;border-radius:var(--radius);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);background:none;color:inherit;text-decoration:none;transition:background var(--transition),border-color var(--transition),color var(--transition),box-shadow var(--transition)}button:disabled,.btn:disabled,a.btn:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,.btn:focus-visible,a.btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.btn-primary{background:var(--accent-500);color:var(--text-on-accent);border-color:transparent}.btn-primary:hover:not(:disabled){background:var(--accent-600);color:var(--text-on-accent)}.btn-primary:active:not(:disabled){background:var(--accent-600)}.btn-secondary{background:var(--bg-surface);color:var(--text-primary);border-color:var(--border)}.btn-secondary:hover:not(:disabled){background:var(--bg-surface-2);border-color:var(--border-strong)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--bg-surface-2);color:var(--text-primary)}.btn-danger{background:var(--bg-surface);color:var(--danger);border-color:var(--border)}.btn-danger:hover:not(:disabled){background:var(--danger-bg);border-color:var(--danger)}.btn-sm{min-height:36px;padding:0 var(--sp-3);font-size:var(--fs-sm)}input,textarea,select{font-family:var(--font-sans);font-size:var(--fs-base);min-height:44px;background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius);padding:0 var(--sp-3);outline:none;transition:border-color var(--transition),box-shadow var(--transition)}input::placeholder,textarea::placeholder,select::placeholder{color:var(--text-muted);opacity:.6}input:focus,textarea:focus,select:focus{border-color:var(--border-focus);box-shadow:var(--shadow-focus)}input:disabled,textarea:disabled,select:disabled{opacity:.5;cursor:not-allowed}textarea{padding:var(--sp-3);line-height:var(--lh-base);resize:vertical}select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2376767D'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;background-size:20px;padding-right:var(--sp-8)}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-5);box-shadow:var(--shadow-1);transition:border-color var(--transition),box-shadow var(--transition)}.card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-2)}.spinner{width:28px;height:28px;border:2px solid var(--border);border-top-color:var(--accent-500);border-radius:50%;animation:spin .8s linear infinite}.layout-container{display:flex;min-height:100dvh}.main-content{flex:1;min-width:0;padding:var(--sp-5)}@media(min-width:768px){.main-content{padding:var(--sp-8);margin-left:var(--sidebar-w)}}.modal-backdrop{position:fixed;inset:0;background:var(--bg-overlay);display:flex;align-items:center;justify-content:center;z-index:9999;padding:var(--sp-5)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px;border:2px solid var(--bg-app)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.md{white-space:normal;min-width:0;font-size:var(--fs-sm);line-height:var(--lh-loose)}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p{margin:0 0 .75em}.md h1,.md h2,.md h3,.md h4,.md h5,.md h6{margin:1.25em 0 .5em;line-height:var(--lh-tight);color:var(--text-primary);font-weight:var(--fw-semibold)}.md h1{font-size:var(--fs-xl)}.md h2{font-size:var(--fs-lg)}.md h3{font-size:var(--fs-md)}.md h4,.md h5,.md h6{font-size:var(--fs-base)}.md h1,.md h2{padding-bottom:.25em;border-bottom:1px solid var(--border)}.md ul,.md ol{margin:.5em 0;padding-left:var(--sp-5)}.md li{margin:.3em 0;line-height:var(--lh-base)}.md li::marker{color:var(--text-muted)}.md li p{margin:0}.md li ul,.md li ol{margin:.25em 0}.md ul+ul,.md ul+ol,.md ol+ul,.md ol+ol{margin-top:0}.md blockquote{margin:.75em 0;padding:var(--sp-1) var(--sp-3);border-left:3px solid var(--border-strong);color:var(--text-secondary)}.md a{color:var(--accent-500);text-decoration:underline}.md a:hover{color:var(--accent-600)}.md img{max-width:100%;border-radius:var(--radius)}.md code{font-family:var(--font-mono);font-size:.85em;background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.15em .35em}.md pre{margin:.75em 0;padding:var(--sp-3);background:var(--bg-app);border:1px solid var(--border-strong);border-radius:var(--radius);overflow-x:auto;line-height:var(--lh-base)}.md pre code{background:none;border:none;padding:0;font-size:var(--fs-sm);white-space:pre}.md hr{margin:1em 0;border:none;border-top:1px solid var(--border)}.md table{border-collapse:collapse;margin-bottom:var(--sp-2)}.md table th,.md table td{border:1px solid var(--border);padding:var(--sp-1) var(--sp-2)}.md table th{background:var(--bg-surface-2)}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes scaleIn{0%{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}.fade-in{animation:fadeIn .3s cubic-bezier(.4,0,.2,1) forwards}.scale-in{animation:scaleIn .25s cubic-bezier(.4,0,.2,1) forwards}
