@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg: #fdfcf8;--bg-alt: #f7f5ef;--bg-elev: #ffffff;--bg-hover: #f2efe7;--border: #eeebe2;--border-strong: #e2ddcf;--text: #232017;--text-dim: #6f6755;--text-faint: #a69e8a;--fg: #2a2418;--fg-invert: #fbf5e6;--accent: #b06a3f;--accent-soft: rgba(176, 106, 63, .14);--error: #c0392b;--warning: #b9770a;--success: #4d7c3a;--underline-grammar: #c0392b;--shadow-sm: 0 1px 2px rgba(80, 60, 20, .06);--shadow-md: 0 2px 8px rgba(80, 60, 20, .09);--shadow-lg: 0 8px 30px rgba(80, 60, 20, .14);--syn-comment: #a08a5e;--syn-cmd: #9c4221;--syn-string: #4d7c3a;--syn-number: #8a6d1f;--syn-bracket: #8a7a55;--syn-var: #2c6e8f;--syn-type: #7a4ea3;--radius: 0px;--radius-sm: 0px;--radius-lg: 0px;--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;font-family:var(--font)}:root[data-theme=dark]{--bg: #0a0a0a;--bg-alt: #0f0f0f;--bg-elev: #141414;--bg-hover: #1c1c1f;--border: #1f1f22;--border-strong: #2a2a2e;--text: #fafafa;--text-dim: #a1a1aa;--text-faint: #71717a;--fg: #fafafa;--fg-invert: #0a0a0a;--accent: #60a5fa;--accent-soft: rgba(96, 165, 250, .14);--error: #f87171;--warning: #fbbf24;--success: #4ade80;--underline-grammar: #f87171;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 2px 10px rgba(0, 0, 0, .5);--shadow-lg: 0 12px 36px rgba(0, 0, 0, .6);--syn-comment: #6a9955;--syn-cmd: #569cd6;--syn-string: #ce9178;--syn-number: #b5cea8;--syn-bracket: #d4d4d4;--syn-var: #9cdcfe;--syn-type: #4ec9b0}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:var(--accent-soft)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}*::-webkit-scrollbar{width:9px;height:9px}*::-webkit-scrollbar-thumb{background:var(--border-strong);border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:var(--text-faint);background-clip:padding-box}button{font:inherit;font-weight:500;cursor:pointer;border:1px solid var(--border-strong);background:var(--bg-elev);color:var(--text);border-radius:6px;padding:7px 13px;transition:background .13s,border-color .13s,opacity .13s,transform .04s}button:hover{background:var(--bg-hover)}button:active{transform:translateY(.5px)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--fg);color:var(--fg-invert);border-color:var(--fg)}button.primary:hover{background:var(--fg);opacity:.85}button.ghost{background:transparent;border-color:transparent;color:var(--text-dim)}button.ghost:hover{background:var(--bg-hover);color:var(--text)}button.icon{padding:7px 9px;line-height:1}input,select,textarea{font:inherit;background:var(--bg);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:9px 12px;transition:border-color .13s,box-shadow .13s;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input::placeholder{color:var(--text-faint)}a{color:var(--text);text-decoration:none}a:hover{color:var(--text-dim)}.app{display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:center;gap:8px;padding:9px 14px;border-bottom:1px solid var(--border);background:var(--bg);position:relative}.topbar .brand{font-weight:700;letter-spacing:-.025em;font-size:15px;color:var(--text);display:inline-flex;align-items:center;gap:8px;margin-right:4px}.topbar .brand:before{content:"";width:20px;height:20px;background:url(/logo.png) center / contain no-repeat}.topbar .spacer{flex:1}.topbar button{padding:4px 10px;font-size:13px}.topbar button.icon{padding:4px 7px}.status{font-size:12.5px;color:var(--text-dim);display:inline-flex;align-items:center;gap:6px;padding:3px 10px;background:var(--bg-alt)}.status:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--text-faint)}.status.error{color:var(--error)}.status.error:before{background:var(--error)}.status.success{color:var(--success)}.status.success:before{background:var(--success)}.proj-switcher{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.proj-trigger{display:inline-flex;align-items:center;gap:6px;max-width:280px;font-weight:600;color:var(--text)!important;border:1px solid var(--border)!important;background:var(--bg-alt)!important}.proj-trigger:hover{border-color:var(--border-strong)!important}.proj-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proj-trigger .chev{color:var(--text-faint);flex-shrink:0}.switch-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:15}.proj-menu{left:50%;right:auto;transform:translate(-50%);width:300px;padding:6px;z-index:16;display:flex;flex-direction:column;gap:4px}.proj-search{width:100%}.proj-list{max-height:50vh;overflow:auto;display:flex;flex-direction:column;gap:1px}.proj-item{display:flex;align-items:center;gap:8px;text-align:left;width:100%;border:none!important;background:transparent!important;padding:8px 10px;font-size:13.5px}.proj-item .proj-item-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proj-item.active{background:var(--bg-hover)!important}.proj-item.current{color:var(--text)}.proj-empty{padding:10px;color:var(--text-faint);font-size:13px;text-align:center}.proj-all{border:none!important;border-top:1px solid var(--border)!important;background:transparent!important;text-align:left;padding:8px 10px;font-size:12.5px;color:var(--text-dim)!important}.panel{height:100%;overflow:auto;background:var(--bg)}.panel-header{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);padding:10px 14px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg);z-index:1;display:flex;align-items:center;gap:8px}.resize-handle{background:var(--border);transition:background .13s}.resize-handle[data-panel-group-direction=horizontal]{width:1px}.resize-handle[data-panel-group-direction=vertical]{height:1px}.resize-handle:hover,.resize-handle[data-resize-handle-active]{background:var(--accent)}.drop-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 12%,rgba(0,0,0,.35));-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:none}.drop-overlay>div{border:2px dashed var(--accent);color:#fff;background:#0000008c;padding:28px 40px;font-size:18px;font-weight:600;text-align:center;border-radius:10px}.drop-overlay span{font-size:13px;font-weight:400;opacity:.85}.filebar{position:relative}.filebar.drag-over{outline:2px dashed var(--accent);outline-offset:-4px}.drop-hint{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--accent) 10%,var(--bg));color:var(--accent);font-size:13px;font-weight:600;pointer-events:none}.file-row{display:flex;align-items:center;gap:7px;padding:5px 10px;margin:1px 4px;font-size:13px;color:var(--text-dim);border-radius:0}.file-row:hover{background:var(--bg-hover);color:var(--text)}.file-row.active{background:var(--bg-hover);color:var(--text);box-shadow:inset 2px 0 0 var(--accent)}.file-ic{display:inline-flex;align-items:center;justify-content:center;width:16px;opacity:.65;flex-shrink:0}.file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono);font-size:12px}.file-tag{font-size:9px;text-transform:uppercase;letter-spacing:.05em;font-weight:600;color:var(--accent);border:1px solid var(--accent);padding:0 4px;margin-left:6px;flex-shrink:0}.file-new-input{flex:1;padding:2px 6px;font-family:var(--mono);font-size:12px}.file-actions{display:none;gap:1px;flex-shrink:0}.file-row:hover .file-actions{display:flex}.ic-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:1px solid transparent;background:transparent;color:var(--text-dim)}.ic-btn:hover{background:var(--bg-hover);color:var(--text)}.ic-btn.danger:hover{color:var(--error)}.panel-header .ic-btn{width:22px;height:22px}.filetab{display:flex;align-items:center;gap:6px;padding:5px 12px;font-family:var(--mono);font-size:12px;color:var(--text-dim);background:var(--bg-alt);border-bottom:1px solid var(--border)}.format-toolbar{display:flex;align-items:center;gap:2px;flex-wrap:wrap;padding:5px 8px;border-bottom:1px solid var(--border);background:var(--bg)}.fmt-btn{min-width:30px;height:28px;padding:0 7px;font-size:13px;border:1px solid transparent;background:transparent;color:var(--text-dim);display:inline-flex;align-items:center;justify-content:center}.fmt-btn:hover{background:var(--bg-hover);color:var(--text)}.fmt-sep{width:1px;height:18px;background:var(--border);margin:0 5px}.cm-editor{height:100%;font-size:13.5px}.cm-editor .cm-scroller{font-family:var(--mono);line-height:1.65}.cm-editor .cm-gutters{background:var(--bg);border-right:1px solid var(--border);color:var(--text-faint)}.cm-editor .cm-activeLineGutter{background:transparent;color:var(--text)}.cm-editor .cm-activeLine{background:var(--bg-alt)}.cm-editor .cm-content{caret-color:var(--text)}.cm-editor .cm-cursor,.cm-editor .cm-dropCursor{border-left:2px solid var(--text)}.cm-editor .cm-selectionBackground,.cm-editor.cm-focused .cm-selectionBackground,.cm-editor .cm-content ::selection{background:var(--accent-soft)}.cm-grammar-underline{text-decoration:underline wavy var(--underline-grammar);text-underline-offset:3px;text-decoration-thickness:1px}.cm-error-line{background:color-mix(in srgb,var(--error) 9%,transparent)}.cm-tooltip.cm-tooltip-autocomplete{border:1px solid var(--border-strong);background:var(--bg-elev);box-shadow:var(--shadow-lg);border-radius:0;overflow:hidden}.cm-tooltip-autocomplete>ul{font-family:var(--mono);font-size:12.5px;max-height:16em}.cm-tooltip-autocomplete>ul>li{padding:4px 10px;color:var(--text)}.cm-tooltip-autocomplete>ul>li[aria-selected]{background:var(--accent-soft);color:var(--text)}.cm-completionLabel{color:var(--text)}.cm-completionDetail{color:var(--text-faint);font-style:normal;margin-left:8px}.cm-completionIcon{opacity:.55}.outline-item{padding:5px 10px;margin:1px 6px;cursor:pointer;border-radius:var(--radius-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px;color:var(--text-dim);transition:background .1s,color .1s}.outline-item:hover{background:var(--bg-hover);color:var(--text)}.problem{padding:8px 14px;border-bottom:1px solid var(--border);font-size:12.5px;cursor:pointer;display:flex;gap:8px;align-items:baseline;transition:background .1s}.problem:hover{background:var(--bg-hover)}.problem .loc{color:var(--text-faint);font-size:12px}.problem.error .badge{color:var(--error)}.problem.warning .badge{color:var(--warning)}.ai-issue{padding:12px 14px;border-bottom:1px solid var(--border)}.ai-issue .msg{font-size:12.5px;margin-bottom:8px;line-height:1.5}.ai-issue .repl{display:flex;flex-wrap:wrap;gap:6px}.ai-issue .repl button{padding:4px 10px;font-size:12px}.ai-issue .repl button:not(:last-child):hover{border-color:var(--text);color:var(--text)}.pdf-viewer{background:var(--bg-alt);height:100%;overflow:auto;text-align:center;padding:20px 14px}.pdf-viewer canvas{box-shadow:var(--shadow-md);margin-bottom:16px;max-width:100%;border:1px solid var(--border);background:#fff}.center{display:grid;place-items:center;height:100%;background:var(--bg)}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px;width:340px;display:flex;flex-direction:column;gap:11px;box-shadow:var(--shadow-lg)}.card h2{font-size:21px;font-weight:700;letter-spacing:-.025em}.projects{max-width:880px;margin:48px auto;padding:0 24px}.projects h2{font-size:22px;font-weight:700;letter-spacing:-.025em;margin-bottom:4px}.projects .sub{color:var(--text-dim);margin-bottom:24px;font-size:14px}.create-row{display:flex;gap:8px;margin-bottom:28px}.create-row input{flex:1}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.project-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:5px;transition:border-color .13s,background .13s}.project-card:hover{border-color:var(--border-strong);background:var(--bg-alt)}.project-card .name{font-weight:600;font-size:15px;letter-spacing:-.01em}.project-card .meta{font-size:12px;color:var(--text-faint)}.project-card .actions{margin-top:10px;display:flex;gap:8px}.empty-state{text-align:center;color:var(--text-dim);padding:56px 20px;font-size:14px;border:1px dashed var(--border-strong);border-radius:var(--radius-lg)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#00000073;display:grid;place-items:center;padding:24px}.modal{background:var(--bg-elev);border:1px solid var(--border);width:min(760px,100%);max-height:85vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--border)}.modal-head h3{margin:0 0 2px;font-size:17px;font-weight:700;letter-spacing:-.02em}.modal-body{padding:16px 20px 20px;overflow:auto}.tmpl-group{margin-bottom:18px}.tmpl-cat{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);margin-bottom:8px}.tmpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.tmpl-card{text-align:left;padding:12px 14px;border:1px solid var(--border)!important;background:var(--bg)!important;display:flex;flex-direction:column;gap:4px}.tmpl-card:hover{border-color:var(--accent)!important;background:var(--bg-alt)!important}.tmpl-name{font-weight:600;font-size:14px}.tmpl-desc{font-size:12px;color:var(--text-dim);line-height:1.4}.share-modal{width:min(520px,100%)}.share-section{margin-bottom:20px}.share-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);margin-bottom:8px}.invite-row{display:flex;gap:8px}.invite-row input{flex:1;min-width:0}.invite-row select{width:auto}.invite-row button,.invite-row select{flex-shrink:0}.person-row{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--border)}.person-email{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13.5px}.person-role{font-size:12px;color:var(--text-faint);text-transform:capitalize}.person-row select{width:auto;padding:4px 8px;font-size:12px}.share-err{color:var(--error);font-size:12.5px;margin-top:6px}.share-muted{color:var(--text-faint);font-size:13px;padding:4px 0}.vh-modal{width:min(1040px,100%);height:82vh}.vh-body{display:flex;flex:1;min-height:0}.vh-list{width:290px;flex-shrink:0;border-right:1px solid var(--border);overflow:auto}.vh-save{display:flex;gap:6px;padding:10px;border-bottom:1px solid var(--border)}.vh-save input{flex:1;min-width:0}.vh-save button{flex-shrink:0}.vh-item{padding:10px 12px;border-bottom:1px solid var(--border);cursor:pointer;position:relative}.vh-item:hover{background:var(--bg-hover)}.vh-item.active{background:var(--bg-hover);box-shadow:inset 2px 0 0 var(--accent)}.vh-msg{font-size:13px;font-weight:500;padding-right:56px}.vh-meta{font-size:11px;color:var(--text-faint);margin-top:2px}.vh-restore{position:absolute;right:10px;top:9px;font-size:11px;padding:2px 8px;display:none}.vh-item:hover .vh-restore{display:block}.vh-diff{flex:1;overflow:auto}.vh-empty{padding:20px;color:var(--text-dim);font-size:13px}.diff-file{border-bottom:1px solid var(--border)}.diff-file-head{position:sticky;top:0;z-index:1;background:var(--bg-alt);padding:6px 12px;font-family:var(--mono);font-size:12px;border-bottom:1px solid var(--border)}.diff-status{color:var(--text-faint);font-family:var(--font);margin-left:6px;text-transform:uppercase;font-size:10px}.diff-grid{font-family:var(--mono);font-size:12px}.diff-row{display:grid;grid-template-columns:1fr 1fr}.diff-cell{padding:1px 10px;white-space:pre-wrap;word-break:break-word;border-right:1px solid var(--border);min-height:17px}.diff-cell.del{background:color-mix(in srgb,var(--error) 14%,transparent)}.diff-cell.add{background:color-mix(in srgb,var(--success) 16%,transparent)}.menu{position:absolute;top:112%;right:0;z-index:20;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);min-width:180px;overflow:hidden;box-shadow:var(--shadow-lg);padding:5px}.menu a,.menu button{display:block;width:100%;text-align:left;padding:8px 12px;border:none;background:transparent;border-radius:var(--radius-sm);color:var(--text);font-size:13.5px}.menu a:hover,.menu button:hover{background:var(--bg-hover)}
