:root{--bg-primary:#f0f2f5;--bg-secondary:#fff;--bg-tertiary:#e2e8f0;--text-primary:#1e293b;--text-secondary:#475569;--text-muted:#94a3b8;--border-color:#cbd5e1;--border-strong:#94a3b8;--accent-color:#334155;--accent-hover:#1e293b;--theme-ocean:#3b82f6;--theme-sunset:#f97316;--theme-forest:#10b981;--theme-purple:#8b5cf6;--theme-minimal:#64748b;--shadow-sm:0 1px 0 #0000000d;--shadow-md:0 4px 0 #0000000d;--shadow-lg:0 10px 0 #0000000d;--shadow-xl:0 20px 25px -5px #0000000d,0 8px 10px -6px #00000003;--font-sans:"Inter",system-ui,sans-serif;--font-mono:"JetBrains Mono",monospace;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--transition-fast:.15s ease;--transition-base:.2s ease}[data-theme=dark]{--bg-primary:#0f172a;--bg-secondary:#1e293b;--bg-tertiary:#334155;--text-primary:#f1f5f9;--text-secondary:#cbd5e1;--text-muted:#64748b;--border-color:#334155;--border-strong:#475569;--accent-color:#e2e8f0;--accent-hover:#fff;--shadow-sm:0 1px 0 #0003;--shadow-md:0 4px 0 #0003;--shadow-lg:0 10px 0 #0003}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);min-height:100vh;transition:background-color var(--transition-base),color var(--transition-base);line-height:1.6}#app{flex-direction:column;min-height:100vh;display:flex}.header{padding:var(--space-4)var(--space-6);background:var(--bg-secondary);border-bottom:2px solid var(--border-color);z-index:100;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.header-left{align-items:center;gap:var(--space-4);display:flex}.logo{align-items:center;gap:var(--space-2);color:var(--text-primary);display:flex}.logo-icon{stroke-width:2.5px;width:24px;height:24px}.logo-text{font-family:var(--font-mono);letter-spacing:-.02em;text-transform:uppercase;color:var(--text-primary);font-size:1.125rem;font-weight:700}.header-right{align-items:center;gap:var(--space-3);display:flex}.icon-btn{border:2px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;width:36px;height:36px;color:var(--text-secondary);transition:all var(--transition-fast);background:0 0;justify-content:center;align-items:center;display:flex}.icon-btn:hover{border-color:var(--accent-color);color:var(--accent-color);background:var(--bg-primary)}.icon-btn .icon{stroke-width:2.5px;width:18px;height:18px}.icon-btn .sun-icon{display:block}.icon-btn .moon-icon,[data-theme=dark] .icon-btn .sun-icon{display:none}[data-theme=dark] .icon-btn .moon-icon{display:block}.lang-btn{height:36px;padding:0 var(--space-3);border:2px solid var(--border-color);border-radius:var(--radius-md);font-family:var(--font-mono);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;justify-content:center;align-items:center;font-size:.875rem;font-weight:700;display:flex}.lang-btn:hover{border-color:var(--accent-color);color:var(--accent-color);background:var(--bg-primary)}.main{flex:1;grid-template-columns:1fr 1fr;gap:0;display:grid;overflow:hidden}.editor-panel{background:var(--bg-secondary);border-right:2px solid var(--border-color);flex-direction:column;display:flex}.panel-header{padding:var(--space-3)var(--space-6);border-bottom:2px solid var(--border-color);background:var(--bg-primary);justify-content:space-between;align-items:center;display:flex}.panel-header h2{font-family:var(--font-mono);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.1em;font-size:.75rem;font-weight:700}.editor-content{flex:1;display:flex;overflow:hidden}.markdown-input{padding:var(--space-6);font-family:var(--font-mono);color:var(--text-primary);resize:none;background:0 0;border:none;outline:none;flex:1;font-size:.9375rem;line-height:1.7}.markdown-input::placeholder{color:var(--text-muted)}.editor-footer{padding:var(--space-4)var(--space-6);border-top:2px solid var(--border-color);background:var(--bg-primary)}.save-btn{justify-content:center;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-3);background:var(--text-primary);border:2px solid var(--text-primary);border-radius:var(--radius-md);font-family:var(--font-mono);text-transform:uppercase;color:var(--bg-primary);cursor:pointer;transition:all var(--transition-fast);font-size:.875rem;font-weight:700;display:flex;box-shadow:4px 4px #0000001a}.save-btn:hover{color:var(--text-primary);background:0 0;transform:translate(-1px,-1px);box-shadow:5px 5px #0000001a}.save-btn:active{transform:translate(2px,2px);box-shadow:2px 2px #0000001a}.save-btn .btn-icon{width:18px;height:18px}.preview-panel{background:var(--bg-tertiary);flex-direction:column;display:flex;position:relative;overflow:hidden}.preview-panel:before{content:"";background-image:linear-gradient(var(--border-color)1px,transparent 1px),linear-gradient(90deg,var(--border-color)1px,transparent 1px);opacity:.3;pointer-events:none;z-index:0;background-position:50%;background-size:20px 20px;position:absolute;inset:0}.theme-selector{gap:var(--space-2);display:flex}.theme-btn{border:2px solid var(--border-strong);cursor:pointer;width:24px;height:24px;transition:all var(--transition-fast);background:0 0;border-radius:4px;justify-content:center;align-items:center;padding:0;display:flex}.theme-btn:hover{border-color:var(--text-primary);transform:translateY(-2px)}.theme-btn.active{border-color:var(--text-primary);box-shadow:0 0 0 2px var(--bg-primary),0 0 0 4px var(--text-primary)}.theme-dot{border-radius:2px;width:100%;height:100%}.theme-dot.ocean{background:var(--theme-ocean)}.theme-dot.sunset{background:var(--theme-sunset)}.theme-dot.forest{background:var(--theme-forest)}.theme-dot.purple{background:var(--theme-purple)}.theme-dot.minimal{background:var(--theme-minimal)}.preview-content{padding:var(--space-8);z-index:1;flex:1;justify-content:center;align-items:center;display:flex;overflow:auto}.preview-container{border-radius:var(--radius-xl);outline-offset:-20px;outline:2px dashed #0000001a;justify-content:center;align-items:center;min-width:600px;min-height:400px;padding:60px;display:flex;position:relative}.preview-container.theme-ocean{background:#eff6ff;border:1px solid #dbeafe}.preview-container.theme-sunset{background:#fff7ed;border:1px solid #ffedd5}.preview-container.theme-forest{background:#ecfdf5;border:1px solid #d1fae5}.preview-container.theme-purple{background:#f5f3ff;border:1px solid #ede9fe}.preview-container.theme-minimal{background:#f8fafc;border:1px solid #e2e8f0}.preview-card{border-radius:var(--radius-lg);width:100%;max-width:560px;box-shadow:var(--shadow-xl);background:#fff;border:1px solid #0000001a;overflow:hidden}.card-header{padding:var(--space-4)var(--space-5);background:#f8fafc;border-bottom:2px solid #f1f5f9;align-items:center;display:flex}.window-dots{gap:8px;display:flex}.window-dots .dot{border:1px solid #0000001a;border-radius:50%;width:12px;height:12px}.window-dots .dot.red{background:#ef4444}.window-dots .dot.yellow{background:#f59e0b}.window-dots .dot.green{background:#10b981}.card-body{padding:var(--space-8)var(--space-6);color:#334155;min-height:200px}.preview-placeholder{color:#94a3b8;font-family:var(--font-mono);text-align:center;padding:var(--space-8);border-radius:var(--radius-md);border:2px dashed #e2e8f0}.card-footer{padding:var(--space-3)var(--space-5);text-align:right;background:#f8fafc;border-top:2px solid #f1f5f9}.watermark{font-family:var(--font-mono);letter-spacing:.1em;color:#cbd5e1;text-transform:uppercase;font-size:.75rem;font-weight:700}.card-body h1{color:#0f172a;margin-bottom:var(--space-5);letter-spacing:-.02em;font-size:2rem;font-weight:800;line-height:1.2}.card-body h2{color:#1e293b;margin-top:var(--space-6);margin-bottom:var(--space-4);padding-bottom:var(--space-2);border-bottom:2px solid #f1f5f9;font-size:1.5rem;font-weight:700;line-height:1.3}.card-body h3{color:#334155;margin-top:var(--space-5);margin-bottom:var(--space-3);font-size:1.25rem;font-weight:600}.card-body p{margin-bottom:var(--space-4);color:#475569;line-height:1.7}.card-body strong{color:#0f172a;font-weight:700}.card-body em{color:#64748b;font-style:italic}.card-body ul,.card-body ol{margin-bottom:var(--space-4);padding-left:var(--space-6)}.card-body li{margin-bottom:var(--space-2);color:#475569}.card-body code{font-family:var(--font-mono);color:#0f172a;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:4px;padding:.2rem .4rem;font-size:.875em}.card-body pre{padding:var(--space-5);border-radius:var(--radius-md);margin-bottom:var(--space-6);background:#1e293b;border:1px solid #0f172a;overflow-x:auto;box-shadow:0 4px 6px -1px #0000001a}.card-body pre code{color:#e2e8f0;background:0 0;border:none;padding:0;font-size:.875rem;line-height:1.7}.card-body blockquote{border-left:4px solid var(--border-strong);padding:var(--space-4);margin:var(--space-5)0;color:#64748b;border-radius:0 var(--radius-md)var(--radius-md)0;background:#f8fafc;font-style:italic}.card-body a{color:#3b82f6;border-bottom:1px solid #0000;font-weight:500;text-decoration:none}.card-body a:hover{border-bottom-color:#3b82f6}.card-body hr{margin:var(--space-8)0;border:none;border-top:2px dashed #e2e8f0}.card-body table{border-collapse:collapse;width:100%;margin-bottom:var(--space-5);font-size:.9375rem}.card-body th,.card-body td{padding:var(--space-3);text-align:left;border:1px solid #e2e8f0}.card-body th{color:#1e293b;font-weight:600;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;background:#f1f5f9;font-size:.75rem}.hljs{background:0 0!important}@media (max-width:1024px){.main{grid-template-rows:1fr 1fr;grid-template-columns:1fr}.editor-panel{border-right:none;border-bottom:2px solid var(--border-color)}.preview-container{min-width:auto;padding:var(--space-6)}}@media (max-width:640px){.header,.panel-header{padding:var(--space-3)var(--space-4)}.markdown-input{padding:var(--space-4)}.editor-footer{padding:var(--space-3)var(--space-4)}.preview-content,.preview-container{padding:var(--space-4)}.preview-card{max-width:100%}}.save-btn.loading{pointer-events:none;opacity:.7}.save-btn.loading .btn-icon{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
