:root{font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,sans-serif;font-size:14px;--accent: #2563eb;--accent-soft: #93c5fd;--accent-ring: rgba(37, 99, 235, .18);--ok: #16a34a;--dot: #2563eb;--dot-rich: #7c3aed;--on-accent: #fff;--grad-primary: #2563eb;--grad-danger: #dc2626;--grad-bar: linear-gradient(90deg, #2563eb, #7c3aed);--radius: 8px;--radius-sm: 6px;color:var(--text);background:var(--bg)}:root,:root[data-theme=dark]{color-scheme:dark;--bg: #0d1117;--sidebar-bg: #161b22;--topbar-bg: #161b22;--surface-panel: #161b22;--surface-input: #0d1117;--surface-2: #21262d;--surface-2-hover: #30363d;--text: #c9d1d9;--text-strong: #f0f6fc;--text-soft: #b1bac4;--text-muted: #8b949e;--border: #30363d;--border-soft: #21262d;--hover-border: #388bfd;--shadow: rgba(1, 4, 9, .6);--track: #21262d;--placeholder: #6e7681;--hover-bg: rgba(177, 186, 196, .08);--active-bg: rgba(56, 139, 253, .14);--active-text: #58a6ff;--ok-text: #56d364;--ok-bg: rgba(22, 163, 74, .12);--ok-border: rgba(86, 211, 100, .2);--err-text: #ff7b72;--err-bg: rgba(220, 38, 38, .1);--err-border: rgba(255, 123, 114, .25)}:root[data-theme=light]{color-scheme:light;--bg: #ffffff;--sidebar-bg: #f6f8fa;--topbar-bg: #ffffff;--surface-panel: #ffffff;--surface-input: #ffffff;--surface-2: #f6f8fa;--surface-2-hover: #eaeef2;--text: #24292f;--text-strong: #1f2328;--text-soft: #424a53;--text-muted: #57606a;--border: #d0d7de;--border-soft: #eaeef2;--hover-border: #0969da;--shadow: rgba(31, 35, 40, .1);--track: #eaeef2;--placeholder: #9198a1;--hover-bg: rgba(208, 215, 222, .32);--active-bg: rgba(9, 105, 218, .08);--active-text: #0969da;--ok-text: #1a7f37;--ok-bg: rgba(26, 127, 55, .08);--ok-border: rgba(26, 127, 55, .25);--err-text: #cf222e;--err-bg: rgba(207, 34, 46, .06);--err-border: rgba(207, 34, 46, .2)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);height:100vh;height:100dvh;overflow:hidden;-webkit-font-smoothing:antialiased}#root{height:100vh;height:100dvh;display:flex;flex-direction:column}h1,h2,h3{margin:0;color:var(--text-strong);font-weight:600}input,textarea,select{width:100%;padding:7px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-strong);background:var(--surface-input);font:inherit;font-size:.875rem;transition:border-color .12s ease,box-shadow .12s ease}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}input::placeholder,textarea::placeholder{color:var(--placeholder)}label{color:var(--text-muted);font-size:.78rem}.hidden-file-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);font:inherit;font-size:.82rem;font-weight:500;line-height:1.2;cursor:pointer;white-space:nowrap;transition:background .12s ease,border-color .12s ease,opacity .12s ease,color .12s ease}.btn:disabled{opacity:.45;cursor:default}.btn svg{flex-shrink:0}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:not(:disabled):hover{opacity:.9}.btn-ghost{background:transparent;color:var(--text-soft)}.btn-ghost:not(:disabled):hover{background:var(--hover-bg);border-color:var(--hover-border);color:var(--text-strong)}.btn-danger-ghost{background:transparent;color:var(--text-soft)}.btn-danger-ghost:not(:disabled):hover{background:var(--err-bg);border-color:var(--err-border);color:var(--err-text)}.primary-btn,.secondary-btn,.danger-btn{border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 14px;font:inherit;font-weight:500;cursor:pointer;transition:background .12s ease,opacity .12s ease,border-color .12s ease}.primary-btn{background:var(--accent);border-color:var(--accent);color:#fff}.primary-btn:not(:disabled):hover{opacity:.9}.secondary-btn{background:var(--surface-2);color:var(--text)}.secondary-btn:not(:disabled):hover{background:var(--surface-2-hover)}.danger-btn{background:var(--grad-danger);border-color:var(--grad-danger);color:#fff}.danger-btn:not(:disabled):hover{opacity:.9}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;flex-shrink:0;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer;transition:background .12s ease,color .12s ease}.icon-btn:not(:disabled):hover{background:var(--hover-bg);color:var(--text-strong)}.icon-btn:disabled{opacity:.4;cursor:default}.app-shell{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden}.app-glow{display:none}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;height:52px;flex-shrink:0;padding:0 16px;background:var(--topbar-bg);border-bottom:1px solid var(--border)}.topbar-brand{display:flex;align-items:center;gap:9px;min-width:0}.topbar-logo{width:26px;height:26px;border-radius:7px;flex-shrink:0}.topbar-title{font-size:1rem;font-weight:650;color:var(--text-strong);letter-spacing:-.01em}.topbar-actions{display:flex;align-items:center;gap:8px}.topbar-user{font-size:.8rem;color:var(--text-muted);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.theme-toggle{width:32px;height:32px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;line-height:1;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-strong);cursor:pointer;transition:background .12s ease}.theme-toggle:hover:not(:disabled){background:var(--surface-2-hover)}.loading-wrap{position:fixed;top:52px;left:0;right:0;z-index:100}.progress-bar{position:relative;height:2px;overflow:hidden;background:transparent}.progress-bar:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;width:40%;background:var(--grad-bar);animation:indeterminate 1.1s ease-in-out infinite}@keyframes indeterminate{0%{transform:translate(-110%)}to{transform:translate(280%)}}.workspace{display:flex;flex:1;min-height:0;overflow:hidden}.sidebar{width:264px;flex-shrink:0;display:flex;flex-direction:column;min-height:0;background:var(--sidebar-bg);border-right:1px solid var(--border)}.sidebar-head{padding:12px;display:flex;flex-direction:column;gap:8px;border-bottom:1px solid var(--border-soft)}.search-bar{position:relative;display:flex;align-items:center}.search-glyph{position:absolute;left:9px;color:var(--text-muted);pointer-events:none}.search-input{padding-left:30px;padding-right:30px}.search-go,.search-x{position:absolute;right:5px;width:22px;height:22px;padding:0;display:flex;align-items:center;justify-content:center;border:none;border-radius:5px;background:transparent;color:var(--text-muted);font-size:.85rem;cursor:pointer;transition:background .12s ease,color .12s ease}.search-go:not(:disabled):hover,.search-x:hover{background:var(--hover-bg);color:var(--text-strong)}.search-go:disabled{opacity:.35;cursor:default}.storage-select{font-size:.82rem;padding:6px 8px}.path-bar{display:flex;align-items:center;justify-content:space-between;gap:6px}.breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:1px;min-width:0;overflow:hidden}.crumb{padding:2px 5px;border:none;border-radius:4px;background:none;color:var(--text-muted);font-size:.78rem;cursor:pointer;white-space:nowrap;transition:background .12s ease,color .12s ease}.crumb:hover{background:var(--hover-bg);color:var(--text-strong)}.crumb-sep{color:var(--placeholder);margin-right:3px}.file-list{flex:1;min-height:0;overflow-y:auto;padding:6px;display:flex;flex-direction:column;gap:1px}.file-item{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:7px 8px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text);font:inherit;font-size:.84rem;cursor:pointer;transition:background .11s ease,color .11s ease}.file-item:hover{background:var(--hover-bg)}.file-item.active{background:var(--active-bg);color:var(--active-text);font-weight:500}.file-dot{width:6px;height:6px;border-radius:999px;background:var(--dot);flex-shrink:0;opacity:.7}.file-dot.rich{background:var(--dot-rich)}.file-folder-icon{color:var(--text-muted);flex-shrink:0}.file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.list-empty{padding:16px 10px;margin:0;color:var(--text-muted);font-size:.82rem;text-align:center}.sidebar-foot{flex-shrink:0;padding:8px 14px;border-top:1px solid var(--border-soft)}.foot-count{font-size:.74rem;color:var(--text-muted)}.editor{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--bg)}.editor-bar{display:flex;align-items:center;gap:8px;flex-shrink:0;padding:10px 16px;border-bottom:1px solid var(--border)}.back-btn{display:none;align-items:center;justify-content:center;width:34px;height:34px;padding:0;flex-shrink:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);cursor:pointer}.editor-tools{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.editor-tools-right{display:flex;align-items:center;gap:6px;margin-left:auto}.seg{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.seg-btn{padding:6px 11px;border:none;background:var(--surface-2);color:var(--text-muted);font:inherit;font-size:.78rem;font-weight:600;cursor:pointer;transition:background .12s ease,color .12s ease}.seg-btn+.seg-btn{border-left:1px solid var(--border)}.seg-btn:hover{color:var(--text)}.seg-btn.active{background:var(--accent);color:#fff}.editor-body{flex:1;display:flex;flex-direction:column;min-height:0;padding:14px 16px;gap:10px}.filename-row{display:flex;align-items:stretch;flex-shrink:0}.filename-input{border-radius:var(--radius-sm) 0 0 var(--radius-sm);border-right:none;font-family:SF Mono,ui-monospace,monospace;font-size:.82rem}.filename-input:focus{z-index:1}.ext-badge{display:inline-flex;align-items:center;padding:0 12px;flex-shrink:0;border:1px solid var(--border);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--surface-2);color:var(--text-muted);font-size:.78rem;font-family:SF Mono,ui-monospace,monospace;white-space:nowrap;-webkit-user-select:none;user-select:none}.content-area{flex:1;min-height:0;resize:none;font-family:SF Mono,Fira Code,ui-monospace,monospace;font-size:.85rem;line-height:1.65}.status{flex-shrink:0;margin:10px 16px 0;padding:8px 12px;font-size:.8rem;border:1px solid var(--ok-border);border-radius:var(--radius-sm);color:var(--ok-text);background:var(--ok-bg)}.status.error{color:var(--err-text);background:var(--err-bg);border-color:var(--err-border)}.loading-text{margin:7px 0 0;font-size:.84rem;color:var(--accent-soft)}.muted{color:var(--text-muted)}.small{font-size:.82rem}.eyebrow{margin:0 0 4px;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent-soft)}code{padding:1px 5px;border-radius:4px;border:1px solid var(--border-soft);background:var(--surface-2);color:var(--accent-soft);font-size:.85em}.btn-label{display:inline}.rich-editor{flex:1;min-height:0;width:100%;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-input);display:flex;flex-direction:column;gap:4px;overflow-y:auto;cursor:text}.rich-editor:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.rich-block-text{min-height:1.5em;padding:3px 0;color:var(--text-strong);outline:none;white-space:pre-wrap;word-break:break-word;line-height:1.6;caret-color:var(--accent)}.rich-block-text:empty:before{content:attr(data-placeholder);color:var(--placeholder);pointer-events:none}.rich-block-image{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:4px 0}.rich-image-wrap{position:relative;display:inline-block}.rich-image{display:block;max-width:100%;border-radius:8px;border:1px solid var(--border-soft)}.image-del-btn{position:absolute;top:6px;right:6px;width:24px;height:24px;padding:0;border-radius:6px;background:#ef4444e6;border:1px solid rgba(252,165,165,.4);color:#fff;font-size:.7rem;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .16s ease}.rich-image-wrap:hover .image-del-btn{opacity:1}.drop-line{height:2px;border-radius:999px;background:var(--accent);margin:2px 0;pointer-events:none}.drag-handle{position:absolute;top:6px;left:6px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:5px;background:#00000073;color:#fff;font-size:.85rem;cursor:grab;opacity:0;transition:opacity .16s ease;-webkit-user-select:none;user-select:none;z-index:1}.drag-handle:active{cursor:grabbing}.rich-image-wrap:hover .drag-handle{opacity:1}.image-resize-row{display:flex;align-items:center;gap:8px}.image-resize-row input[type=range]{width:160px;padding:0;border:none;background:transparent;box-shadow:none;cursor:pointer;accent-color:var(--accent)}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:20px}.auth-card{width:min(420px,100%);border:1px solid var(--border);border-radius:14px;padding:28px;background:var(--surface-panel);box-shadow:0 16px 40px var(--shadow);display:grid;gap:14px}.auth-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.login-brand{display:flex;align-items:center;gap:10px}.login-brand .app-logo{width:40px;height:40px;border-radius:10px}.login-brand .eyebrow{margin:0}.auth-btn{width:100%}.provider-picker{display:grid;gap:12px;margin-bottom:4px}.provider-card{width:100%;text-align:left;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:16px 18px;cursor:pointer;display:flex;flex-direction:column;gap:6px;transition:.16s ease}.provider-card:hover{border-color:var(--accent);background:var(--surface-2-hover)}.provider-card-title{font-size:.95rem;font-weight:600;color:var(--text-strong)}.provider-card-desc{font-size:.82rem;color:var(--text-muted);line-height:1.4}.wizard-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}.wizard-card{width:min(540px,100%);border:1px solid var(--border);border-radius:16px;padding:28px;background:var(--surface-panel);box-shadow:0 16px 40px var(--shadow);display:grid;gap:20px}.wizard-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.wizard-progress{display:flex;gap:8px;align-items:center}.wizard-step-dot{width:9px;height:9px;border-radius:999px;background:var(--track);transition:background .22s ease,transform .22s ease}.wizard-step-dot.active{background:var(--accent);transform:scale(1.2)}.wizard-body{display:grid;gap:12px}.wizard-desc{margin:0;color:var(--text-soft);font-size:.92rem;line-height:1.6}.wizard-actions{display:flex;gap:10px;justify-content:flex-end;padding-top:6px}.wizard-result{border:1px solid var(--border);border-radius:12px;background:var(--bg);padding:14px 16px;display:grid;gap:10px}.result-row{display:flex;align-items:center;gap:12px}.result-label{font-size:.82rem;color:var(--text-muted);width:56px;flex-shrink:0}@media (max-width: 820px){.sidebar{width:220px}.editor-tools{gap:5px}}@media (max-width: 640px){.topbar{padding:0 12px;height:50px}.topbar-user,.btn-label{display:none}.topbar-actions .btn{padding:7px 9px}.sidebar{width:100%;border-right:none}.workspace[hidden],.app-shell[data-view=browse] .editor{display:none}.app-shell[data-view=browse] .sidebar{display:flex}.app-shell[data-view=edit] .sidebar{display:none}.app-shell[data-view=edit] .editor{display:flex}.back-btn{display:inline-flex}.file-item{padding:11px 10px;font-size:.9rem}.file-dot{width:7px;height:7px}.btn{padding:9px 12px}.seg-btn{padding:9px 13px}.theme-toggle{width:36px;height:36px}.editor-tools-right{margin-left:auto}.sidebar-head,.editor-body{padding:12px}.content-area,.filename-input,input,textarea,select{font-size:16px}}
