:root{--bg-base: #121212;--bg-panel: #181818;--bg-elevated: #1f1f1f;--bg-hover: #2a2a2a;--bg-input: #0d0d0d;--bg-preview: #1a1a1a;--border: #2a2a2a;--border-strong: #3a3a3a;--border-hover: #4a4a4a;--green: #1db954;--green-bright: #1ed760;--green-dim: #14833b;--on-green: #04140a;--text: #ffffff;--text-muted: #b3b3b3;--text-faint: #7a7a7a;--text-gutter: #5f5f5f;--error: #f2545b;--warning: #ffa42b;--info: #5aa9e6;--success: #1db954;--overlay-active-line: rgba(255, 255, 255, .035);--overlay-active-gutter: rgba(255, 255, 255, .05);--overlay-green-strong: rgba(30, 215, 96, .25);--overlay-green-soft: rgba(30, 215, 96, .2);--selection: #264f36;--paper: #ffffff;--shadow-page: 0 2px 14px rgba(0, 0, 0, .55);--syntax-command: #1ed760;--syntax-attribute: #14833b;--syntax-math: #5aa9e6;--syntax-number: #5aa9e6;--syntax-string: #ffd479;--syntax-bracket: #8a8a8a;--syntax-comment: #6a737d;--syntax-invalid: #f2545b;--log-debug: #7a7a7a;--log-info: #5aa9e6;--log-warning: #ffa42b;--log-error: #f2545b;--log-critical: #f2545b;--font-ui: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace;--font-size-micro: 11px;--font-size-small: 12px;--font-size-compact: 13px;--font-size-editor: 13px;--font-size-base: 14px;--font-size-section: 15px;--font-size-brand: 18px;--font-size-heading: 20px;--font-size-display: 28px;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--line-height-base: 1.5;--line-height-editor: 1.55;--letter-spacing-tight: -.02em;--letter-spacing-wide: .05em;--letter-spacing-wider: .07em;--space-1: 1px;--space-2: 2px;--space-3: 3px;--space-4: 4px;--space-5: 5px;--space-6: 6px;--space-7: 7px;--space-8: 8px;--space-9: 9px;--space-10: 10px;--space-11: 12px;--space-12: 14px;--space-13: 16px;--space-14: 18px;--space-15: 20px;--space-16: 24px;--space-17: 28px;--space-18: 32px;--space-19: 40px;--space-20: 64px;--radius: 8px;--radius-small: 4px;--radius-pill: 999px;--radius-page: 2px;--radius-circle: 50%;--border-width-hairline: 1px;--border-width-accent: 2px;--border-width-marker: 3px;--toolbar-height: 56px;--status-bar-height: 30px;--splitter-width: 6px;--splitter-grab: 4px;--status-dot-size: 8px;--title-input-width: 260px;--title-input-width-narrow: 140px;--login-card-width: 380px;--dashboard-width: 900px;--debug-width: 1000px;--debug-label-width: 260px;--log-panel-max-height: 38vh;--log-excerpt-max-height: 220px;--focus-ring-width: 2px;--focus-ring-offset: 2px;--duration-instant: .05s;--duration-fast: .15s;--duration-pulse: 1s;--ease-standard: ease;--ease-in-out: ease-in-out}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg-base);color:var(--text);font-family:var(--font-ui);font-size:var(--font-size-base);line-height:var(--line-height-base)}h1,h2,h3{margin:0;font-weight:var(--font-weight-semibold)}code{font-family:var(--font-mono);font-size:.9em;background:var(--bg-elevated);border:var(--border-width-hairline) solid var(--border);border-radius:var(--radius-small);padding:var(--space-1) var(--space-5)}.muted{color:var(--text-muted)}.error{color:var(--error)}[hidden]{display:none!important}.brand{font-size:var(--font-size-brand);letter-spacing:var(--letter-spacing-tight);color:var(--green);white-space:nowrap}.brand span{color:var(--text)}.brand-large{font-size:var(--font-size-display)}.btn{font:inherit;color:var(--text);background:var(--bg-elevated);border:var(--border-width-hairline) solid var(--border-strong);border-radius:var(--radius-pill);padding:var(--space-7) var(--space-12);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:var(--space-6);white-space:nowrap;transition:background var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard),transform var(--duration-instant) var(--ease-standard)}.btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-hover)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:focus-visible,.toggle-option:focus-visible,.text-input:focus-visible,.title-input:focus-visible,.splitter:focus-visible{outline:var(--focus-ring-width) solid var(--green);outline-offset:var(--focus-ring-offset)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--green);border-color:var(--green);color:var(--on-green);font-weight:var(--font-weight-semibold)}.btn-primary:hover:not(:disabled){background:var(--green-bright);border-color:var(--green-bright)}.btn-small{padding:var(--space-4) var(--space-10);font-size:var(--font-size-small)}.btn-block{width:100%;justify-content:center}.btn-quiet{background:transparent;border-color:transparent;color:var(--text-muted)}.btn-quiet:hover:not(:disabled){color:var(--text);background:var(--bg-elevated);border-color:var(--border)}.toggle{display:inline-flex;background:var(--bg-input);border:var(--border-width-hairline) solid var(--border-strong);border-radius:var(--radius-pill);padding:var(--space-2)}.toggle-option{font:inherit;background:transparent;border:none;color:var(--text-muted);border-radius:var(--radius-pill);padding:var(--space-5) var(--space-12);cursor:pointer}.toggle-option[aria-pressed=true]{background:var(--green);color:var(--on-green);font-weight:var(--font-weight-semibold)}.text-input,.title-input{font:inherit;color:var(--text);background:var(--bg-input);border:var(--border-width-hairline) solid var(--border-strong);border-radius:var(--radius-small);padding:var(--space-8) var(--space-10);width:100%}.title-input{width:var(--title-input-width);padding:var(--space-5) var(--space-9);background:transparent;border-color:transparent}.title-input:hover{border-color:var(--border-strong)}.login-body{display:flex;align-items:center;justify-content:center;min-height:100%;padding:var(--space-16)}.login-card{width:100%;max-width:var(--login-card-width);background:var(--bg-panel);border:var(--border-width-hairline) solid var(--border);border-radius:var(--radius);padding:var(--space-18)}.login-subtitle{margin:var(--space-6) 0 var(--space-16)}.field-label{display:block;margin-bottom:var(--space-6);color:var(--text-muted);font-size:var(--font-size-small);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider)}.login-card .error{margin:var(--space-11) 0 0;font-size:var(--font-size-compact)}.login-card .btn-block{margin-top:var(--space-14)}.login-hint{margin:var(--space-15) 0 0;font-size:var(--font-size-small)}.topbar{height:var(--toolbar-height);flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:var(--space-11);padding:0 var(--space-13);background:var(--bg-panel);border-bottom:var(--border-width-hairline) solid var(--border)}.topbar-group,.topbar-actions{display:flex;align-items:center;gap:var(--space-8);min-width:0}.view{display:flex;flex-direction:column;height:100%}.view-editor{height:100vh;overflow:hidden}.bootstrap-error{background:var(--error);color:var(--text);padding:var(--space-11) var(--space-13);font-weight:var(--font-weight-medium)}.dashboard{flex:1 1 auto;overflow-y:auto;padding:var(--space-18);max-width:var(--dashboard-width);width:100%;margin:0 auto}.dashboard-heading{font-size:var(--font-size-heading);margin-bottom:var(--space-13)}.dashboard-note{margin-top:var(--space-16);font-size:var(--font-size-small);border-top:var(--border-width-hairline) solid var(--border);padding-top:var(--space-13)}.document-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-8)}.document-row{display:flex;align-items:center;gap:var(--space-11);background:var(--bg-panel);border:var(--border-width-hairline) solid var(--border);border-radius:var(--radius);padding:var(--space-12) var(--space-13)}.document-row:hover{border-color:var(--border-strong);background:var(--bg-elevated)}.document-open{flex:1 1 auto;min-width:0;text-align:left;background:none;border:none;color:var(--text);font:inherit;cursor:pointer;padding:0}.document-name{display:block;font-weight:var(--font-weight-semibold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.document-meta{display:block;color:var(--text-faint);font-size:var(--font-size-small)}.badge{font-size:var(--font-size-micro);border-radius:var(--radius-pill);padding:var(--space-2) var(--space-9);border:var(--border-width-hairline) solid var(--border-strong);color:var(--text-muted);white-space:nowrap}.badge-compiled{color:var(--green);border-color:var(--green-dim)}.workspace{flex:1 1 auto;display:flex;min-height:0}.pane{min-height:0;min-width:0;display:flex;flex-direction:column;overflow:hidden}.pane-editor{flex:0 0 50%;background:var(--bg-input);border-right:var(--border-width-hairline) solid var(--border)}.pane-preview{flex:1 1 auto;background:var(--bg-preview)}.splitter{flex:0 0 var(--splitter-width);cursor:col-resize;background:var(--border);position:relative}.splitter:after{content:"";position:absolute;inset:0 calc(-1 * var(--splitter-grab))}.splitter:hover,.splitter:focus-visible{background:var(--green)}.editor-host{height:100%;overflow:hidden}.editor-host .cm-editor{height:100%}.pdf-container{flex:1 1 auto;overflow-y:auto;padding:var(--space-13);display:flex;flex-direction:column;align-items:center;gap:var(--space-13)}.preview-placeholder{margin-top:var(--space-19);text-align:center}.pdf-pages{display:flex;flex-direction:column;align-items:center;gap:var(--space-13);width:100%}.pdf-page{background:var(--paper);box-shadow:var(--shadow-page);border-radius:var(--radius-page);max-width:100%;height:auto}.status-bar{flex:0 0 auto;display:flex;align-items:center;gap:var(--space-10);height:var(--status-bar-height);padding:0 var(--space-13);background:var(--bg-panel);border-top:var(--border-width-hairline) solid var(--border);font-size:var(--font-size-small)}.status-dot{width:var(--status-dot-size);height:var(--status-dot-size);border-radius:var(--radius-circle);background:var(--text-faint);flex:0 0 auto}.status-dot[data-state=success]{background:var(--green)}.status-dot[data-state=error]{background:var(--error)}.status-dot[data-state=busy]{background:var(--warning);animation:pulse var(--duration-pulse) var(--ease-in-out) infinite}.status-dot[data-state=warning]{background:var(--warning)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}#status-meta{margin-left:auto;font-variant-numeric:tabular-nums}.save-indicator{font-size:var(--font-size-small);white-space:nowrap}.log-panel{flex:0 0 auto;max-height:var(--log-panel-max-height);display:flex;flex-direction:column;background:var(--bg-panel);border-top:var(--border-width-hairline) solid var(--border)}.log-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-11);padding:var(--space-8) var(--space-13);border-bottom:var(--border-width-hairline) solid var(--border);font-size:var(--font-size-small)}.log-header-actions{display:flex;gap:var(--space-6)}.log-body{overflow-y:auto;padding:var(--space-11) var(--space-13);font-family:var(--font-mono);font-size:var(--font-size-small);white-space:pre-wrap;word-break:break-word;color:var(--text-muted)}.diagnostic{display:block;margin-bottom:var(--space-3);cursor:pointer;background:none;border:none;font:inherit;text-align:left;color:inherit;padding:var(--space-2) var(--space-4);border-radius:var(--radius-small);width:100%}.diagnostic:hover{background:var(--bg-elevated)}.diagnostic-error{color:var(--error)}.diagnostic-warning{color:var(--warning)}.diagnostic-line{color:var(--info)}.debug-main{max-width:var(--debug-width);margin:0 auto;padding:var(--space-16) var(--space-18) var(--space-20)}.debug-section{margin-top:var(--space-17)}.debug-section h2{font-size:var(--font-size-section);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);color:var(--green);margin-bottom:var(--space-10)}.debug-panel{background:var(--bg-panel);border:var(--border-width-hairline) solid var(--border);border-radius:var(--radius);overflow:hidden}.debug-panel-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-11);padding:var(--space-8) var(--space-11);border-bottom:var(--border-width-hairline) solid var(--border);background:var(--bg-elevated)}.debug-panel-header h2,.debug-panel-header h3{margin:0;font-size:var(--font-size-small);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);color:var(--green)}.debug-panel-body{padding:var(--space-11);max-height:60vh;overflow-y:auto}.kv-table{width:100%;border-collapse:collapse;font-size:var(--font-size-compact)}.kv-table th,.kv-table td{text-align:left;padding:var(--space-7) var(--space-11);border-bottom:var(--border-width-hairline) solid var(--border);vertical-align:top}.kv-table th{color:var(--text-muted);font-weight:var(--font-weight-medium);width:var(--debug-label-width)}.kv-table td{font-family:var(--font-mono);font-size:var(--font-size-small);word-break:break-all}.kv-table tr:last-child th,.kv-table tr:last-child td{border-bottom:none}.health-ok{color:var(--green)}.health-bad{color:var(--error);font-weight:var(--font-weight-semibold)}.warning-list{margin:0;padding-left:var(--space-15);color:var(--warning);font-size:var(--font-size-compact)}.log-list{display:flex;flex-direction:column;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--font-size-small)}.log-entry{display:grid;grid-template-columns:132px 70px 1fr;gap:var(--space-8);align-items:baseline;padding:var(--space-3) var(--space-4);border-radius:var(--radius-small);border-left:var(--border-width-marker) solid var(--border)}.log-entry:hover{background:var(--bg-elevated)}.log-entry[data-level=debug]{border-left-color:var(--log-debug)}.log-entry[data-level=info]{border-left-color:var(--log-info)}.log-entry[data-level=warning]{border-left-color:var(--log-warning)}.log-entry[data-level=error]{border-left-color:var(--log-error)}.log-entry[data-level=critical]{border-left-color:var(--log-critical);font-weight:var(--font-weight-semibold)}.log-time{color:var(--text-faint);white-space:nowrap}.log-level{text-transform:uppercase;font-size:var(--font-size-micro);letter-spacing:var(--letter-spacing-wide);font-weight:var(--font-weight-medium)}.log-entry[data-level=debug] .log-level{color:var(--log-debug)}.log-entry[data-level=info] .log-level{color:var(--log-info)}.log-entry[data-level=warning] .log-level{color:var(--log-warning)}.log-entry[data-level=error] .log-level{color:var(--log-error)}.log-entry[data-level=critical] .log-level{color:var(--log-critical)}.log-event{color:var(--text);word-break:break-word}.log-context{color:var(--text-muted);font-size:var(--font-size-micro);word-break:break-word}.compile-list{display:grid;gap:var(--space-10)}.compile-card{background:var(--bg-panel);border:var(--border-width-hairline) solid var(--border);border-left:var(--border-width-marker) solid var(--text-faint);border-radius:var(--radius);padding:var(--space-11) var(--space-12);font-size:var(--font-size-compact)}.compile-card[data-status=success]{border-left-color:var(--green)}.compile-card[data-status=error],.compile-card[data-status=timeout]{border-left-color:var(--error)}.compile-card[data-status=unavailable]{border-left-color:var(--warning)}.compile-card-header{display:flex;flex-wrap:wrap;gap:var(--space-10);align-items:baseline;margin-bottom:var(--space-6)}.compile-status{font-weight:var(--font-weight-semibold);text-transform:uppercase;font-size:var(--font-size-micro);letter-spacing:var(--letter-spacing-wide)}.compile-card pre{margin:var(--space-8) 0 0;padding:var(--space-10);background:var(--bg-input);border:var(--border-width-hairline) solid var(--border);border-radius:var(--radius-small);max-height:var(--log-excerpt-max-height);overflow:auto;font-family:var(--font-mono);font-size:var(--font-size-micro);color:var(--text-muted);white-space:pre-wrap}@media(max-width:860px){.workspace{flex-direction:column}.pane-editor{flex:1 1 50%;border-right:none;border-bottom:var(--border-width-hairline) solid var(--border)}.splitter{display:none}.topbar{height:auto;flex-wrap:wrap;padding:var(--space-10) var(--space-11);gap:var(--space-8)}.view-editor{height:auto;min-height:100vh}.title-input{width:var(--title-input-width-narrow)}.log-entry{grid-template-columns:1fr;gap:var(--space-2)}}
