:root{--grey-50:#fafafa;--grey-100:#f3f4f6;--grey-200:#e5e7eb;--grey-300:#d1d5db;--grey-500:#6b7280;--grey-700:#374151;--grey-900:#111214;--blue-500:#4f8df7;--red-500:#e0563f;--green-500:#2fa36b;--amber-500:#d9a33b;--surface-base:var(--grey-50);--surface-raised:#fff;--surface-sunken:var(--grey-100);--surface-hover:#0000000a;--border-subtle:#00000014;--border-strong:#00000029;--text-primary:var(--grey-900);--text-secondary:#1112149e;--text-muted:#1112146b;--accent:var(--user-accent,var(--blue-500));--accent-soft:color-mix(in srgb, var(--accent) 12%, transparent);--danger:var(--red-500);--success:var(--green-500);--warning:var(--amber-500);--focus-ring:0 0 0 2px color-mix(in srgb, var(--accent) 40%, transparent);--shadow-raised:0 1px 2px #0000000f, 0 8px 24px #00000014;--cell-height:32px;--sidebar-width:240px;--radius:6px;--font:-apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, monospace}:root[data-theme=dark]{--surface-base:#0e0f11;--surface-raised:#17181b;--surface-sunken:#121316;--surface-hover:#ffffff0d;--border-subtle:#ffffff17;--border-strong:#ffffff2e;--text-primary:#f2f3f5;--text-secondary:#f2f3f59e;--text-muted:#f2f3f56b;--shadow-raised:0 1px 2px #0006, 0 8px 24px #00000080}:root[data-density=compact]{--cell-height:26px}:root[data-density=comfortable]{--cell-height:40px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);color:var(--text-primary);background:var(--surface-base);-webkit-font-smoothing:antialiased;font-size:13px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{box-shadow:var(--focus-ring);outline:none}::selection{background:var(--accent-soft)}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.app{grid-template-columns:var(--sidebar-width) 1fr;height:100%;display:grid}.app.sidebar-collapsed{grid-template-columns:0 1fr}.sidebar{border-right:1px solid var(--border-subtle);background:var(--surface-raised);flex-direction:column;min-width:0;display:flex;overflow:hidden}.main{flex-direction:column;min-width:0;min-height:0;display:flex}.topbar{border-bottom:1px solid var(--border-subtle);background:var(--surface-raised);flex-shrink:0;align-items:center;gap:8px;height:44px;padding:0 12px;display:flex}.topbar .crumbs{color:var(--text-secondary);white-space:nowrap;align-items:center;gap:6px;min-width:0;font-weight:500;display:flex;overflow:hidden}.topbar .crumbs strong{color:var(--text-primary);font-weight:600}.topbar .spacer{flex:1}.content{flex:1;min-height:0;position:relative;overflow:auto}.sb-section{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);padding:6px 8px 2px;font-size:11px;font-weight:600}.sb-item{border-radius:var(--radius);height:28px;color:var(--text-secondary);cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:0;align-items:center;gap:8px;width:calc(100% - 12px);margin:1px 6px;padding:0 10px;display:flex;position:relative;overflow:hidden}.sb-item:hover{background:var(--surface-hover);color:var(--text-primary)}.sb-item.active{color:var(--text-primary);font-weight:500}.sb-item.active:before{content:"";background:var(--accent);border-radius:2px;width:3px;position:absolute;top:6px;bottom:6px;left:-6px}.sb-item .icon{text-align:center;opacity:.8;flex-shrink:0;width:16px}.sb-item .plus{opacity:0;margin-left:auto}.sb-item:hover .plus{opacity:.7}.sb-sub{padding-left:22px}.sb-workspace{border-bottom:1px solid var(--border-subtle);cursor:pointer;align-items:center;gap:8px;padding:10px 12px;font-weight:600;display:flex}.sb-workspace .avatar{background:var(--accent);color:#fff;border-radius:5px;place-items:center;width:22px;height:22px;font-size:11px;display:grid}.sb-scroll{flex:1;padding-bottom:12px;overflow-y:auto}.sb-search{border:1px solid var(--border-subtle);border-radius:var(--radius);height:30px;color:var(--text-muted);background:var(--surface-sunken);cursor:pointer;align-items:center;gap:8px;margin:8px;padding:0 10px;display:flex}.sb-search kbd{margin-left:auto}kbd{font-family:var(--mono);border:1px solid var(--border-subtle);color:var(--text-muted);background:var(--surface-raised);border-radius:4px;padding:1px 5px;font-size:10px}.btn{border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface-raised);white-space:nowrap;align-items:center;gap:6px;height:28px;padding:0 10px;font-weight:500;display:inline-flex}.btn:hover{background:var(--surface-hover)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{filter:brightness(1.05)}.btn.danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 40%, transparent)}.btn.ghost{color:var(--text-secondary);background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--surface-hover);color:var(--text-primary)}.btn.sm{height:24px;padding:0 8px;font-size:12px}.input{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface-raised);min-width:0;height:28px;padding:0 8px}.input:focus{border-color:var(--accent)}textarea.input{resize:vertical;height:auto;padding:6px 8px}select.input{padding-right:20px}.field{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.field label{color:var(--text-secondary);font-size:12px;font-weight:500}.row{align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.muted{color:var(--text-secondary)}.faint{color:var(--text-muted)}.small{font-size:12px}.mono{font-family:var(--mono)}.error{color:var(--danger)}.card{background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:8px;padding:14px}.page{max-width:1100px;padding:20px 24px}.page h1{margin:0 0 4px;font-size:20px}.page h2{margin:24px 0 8px;font-size:15px}.page h3{margin:16px 0 6px;font-size:13px}.toolbar{border-bottom:1px solid var(--border-subtle);background:var(--surface-raised);flex-wrap:wrap;align-items:center;gap:6px;padding:8px 12px;display:flex}.toolbar .sep{background:var(--border-subtle);width:1px;height:18px;margin:0 4px}.chip{background:var(--surface-sunken);border:1px solid var(--border-subtle);white-space:nowrap;border-radius:11px;align-items:center;gap:4px;height:22px;padding:0 8px;font-size:12px;display:inline-flex}.chip.accent{background:var(--accent-soft);color:var(--accent);border-color:#0000}.chip button{color:inherit;opacity:.7;background:0 0;border:0;padding:0 0 0 2px}.pill{white-space:nowrap;text-overflow:ellipsis;background:color-mix(in srgb, var(--pill,#8b8b8b) 18%, transparent);max-width:100%;height:20px;color:color-mix(in srgb, var(--pill,#8b8b8b) 70%, var(--text-primary));border-radius:10px;align-items:center;padding:0 8px;font-size:12px;font-weight:500;line-height:1;display:inline-flex;overflow:hidden}:root[data-theme=dark] .pill{background:color-mix(in srgb, var(--pill,#8b8b8b) 24%, transparent);color:color-mix(in srgb, var(--pill,#8b8b8b) 55%, white)}.avatar-sm{background:var(--surface-sunken);border:1px solid var(--border-subtle);width:20px;height:20px;color:var(--text-secondary);border-radius:50%;place-items:center;font-size:10px;font-weight:600;display:inline-grid}.grid{outline:none;height:100%;position:relative;overflow:auto}.grid-header{z-index:3;background:var(--surface-raised);border-bottom:1px solid var(--border-subtle);height:var(--cell-height);width:max-content;min-width:100%;display:flex;position:sticky;top:0}.grid-body{width:max-content;min-width:100%;position:relative}.grid-row{height:var(--cell-height);border-bottom:1px solid var(--border-subtle);width:max-content;min-width:100%;display:flex;position:absolute;left:0}.grid-row:hover{background:var(--surface-hover)}.grid-row.selected{background:var(--accent-soft)}.cell,.hcell{border-right:1px solid var(--border-subtle);white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;align-items:center;height:100%;padding:0 8px;display:flex;position:relative;overflow:hidden}.hcell{color:var(--text-secondary);-webkit-user-select:none;user-select:none;gap:6px;font-size:12px;font-weight:500}.hcell .resize{cursor:col-resize;width:6px;position:absolute;top:0;bottom:0;right:-3px}.hcell .resize:hover{background:var(--accent);opacity:.6}.hcell .sortmark{color:var(--accent)}.cell.frozen,.hcell.frozen{z-index:2;background:var(--surface-raised);position:sticky;left:0}.grid-row:hover .cell.frozen{background:color-mix(in srgb, var(--surface-raised) 96%, black)}.cell.check,.hcell.check{justify-content:center;width:36px;padding:0}.cell.focused{box-shadow:inset 0 0 0 2px var(--accent);z-index:1;overflow:visible}.cell.pending:after{content:"";background:var(--accent);border-radius:50%;width:5px;height:5px;position:absolute;top:4px;right:4px}.cell.errored{box-shadow:inset 0 0 0 2px var(--danger)}.cell .presence{pointer-events:none;box-shadow:inset 0 0 0 2px var(--presence);position:absolute;inset:0}.cell .presence:after{content:attr(data-name);background:var(--presence);color:#fff;border-radius:3px;padding:0 4px;font-size:10px;position:absolute;top:-14px;left:0}.cell-editor{z-index:5;background:var(--surface-raised);border:2px solid var(--accent);align-items:center;min-width:100%;padding:0 6px;display:flex;position:absolute;inset:-1px}.cell-editor input,.cell-editor select{background:0 0;border:0;outline:0;width:100%;height:100%}.cell .empty{color:var(--text-muted)}.grid-footer{border-top:1px solid var(--border-subtle);background:var(--surface-raised);height:28px;color:var(--text-secondary);z-index:3;align-items:center;gap:12px;padding:0 12px;font-size:12px;display:flex;position:sticky;bottom:0}.skeleton{background:linear-gradient(90deg, var(--surface-sunken) 25%, var(--surface-hover) 50%, var(--surface-sunken) 75%);background-size:200% 100%;border-radius:4px;width:60%;height:12px;animation:1.2s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.popover{z-index:50;background:var(--surface-raised);border:1px solid var(--border-subtle);box-shadow:var(--shadow-raised);border-radius:8px;min-width:200px;padding:4px;position:absolute}.menu-item{border-radius:var(--radius);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:8px;width:100%;padding:6px 10px;display:flex}.menu-item:hover,.menu-item.active{background:var(--surface-hover)}.menu-item.danger{color:var(--danger)}.menu-sep{background:var(--border-subtle);height:1px;margin:4px 0}.overlay{z-index:40;background:#00000040;justify-content:center;align-items:flex-start;padding-top:12vh;display:flex;position:fixed;inset:0}.dialog{background:var(--surface-raised);box-shadow:var(--shadow-raised);border-radius:10px;width:560px;max-width:calc(100vw - 32px);max-height:80vh;padding:18px 20px;overflow:auto}.dialog h2{margin:0 0 12px;font-size:16px}.dialog .actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.toast-host{z-index:60;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:16px;right:16px}.toast{background:var(--grey-900);color:#fff;box-shadow:var(--shadow-raised);border-radius:8px;align-items:center;gap:12px;max-width:420px;padding:10px 14px;display:flex}.toast.error{background:var(--danger)}.toast button{color:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.palette{width:620px}.palette input{border:0;border-bottom:1px solid var(--border-subtle);background:0 0;outline:none;width:100%;height:40px;padding:0 12px;font-size:15px}.palette .results{max-height:50vh;padding:6px;overflow:auto}.palette .group{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);padding:8px 10px 2px;font-size:11px}.record{grid-template-columns:300px 1fr;height:100%;min-height:0;display:grid}.record-side{border-right:1px solid var(--border-subtle);background:var(--surface-raised);overflow:auto}.record-main{overflow:auto}.record-head{align-items:center;gap:10px;padding:16px 20px 8px;display:flex}.record-head h1{flex:1;margin:0;font-size:20px}.tabs{border-bottom:1px solid var(--border-subtle);gap:2px;padding:0 20px;display:flex}.tab{color:var(--text-secondary);background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 10px;font-weight:500}.tab.active{color:var(--text-primary);border-color:var(--accent)}.tab-body{padding:16px 20px}.attr-row{grid-template-columns:120px 1fr;align-items:center;gap:8px;min-height:30px;padding:2px 12px;display:grid}.attr-row .k{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.attr-row .v{border-radius:var(--radius);cursor:text;align-items:center;min-height:26px;padding:0 6px;display:flex;position:relative;overflow:hidden}.attr-row .v:hover{background:var(--surface-hover)}.highlights{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-bottom:20px;display:grid}.highlight{border:1px solid var(--border-subtle);border-radius:8px;padding:10px 12px}.highlight .k{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.highlight .v{margin-top:4px;font-size:16px;font-weight:600}.timeline{flex-direction:column;gap:10px;display:flex}.tl-item{grid-template-columns:24px 1fr;gap:10px;display:grid}.tl-item .dot{background:var(--border-strong);border-radius:50%;width:8px;height:8px;margin:6px auto}.tl-item .when{color:var(--text-muted);font-size:12px}.peek{background:var(--surface-raised);border-left:1px solid var(--border-subtle);width:min(640px,70%);box-shadow:var(--shadow-raised);z-index:20;flex-direction:column;display:flex;position:absolute;top:0;bottom:0;right:0}.peek .record{grid-template-columns:240px 1fr}.board{align-items:flex-start;gap:12px;height:100%;padding:12px;display:flex;overflow-x:auto}.board-col{background:var(--surface-sunken);border-radius:8px;flex-direction:column;flex-shrink:0;width:260px;max-height:100%;display:flex}.board-col.collapsed{width:40px}.board-col-head{align-items:center;gap:6px;padding:8px 10px;font-weight:500;display:flex}.board-col-body{flex-direction:column;gap:6px;min-height:40px;padding:0 8px 8px;display:flex;overflow-y:auto}.board-col.over{outline:2px dashed var(--accent)}.bcard{background:var(--surface-raised);border:1px solid var(--border-subtle);cursor:grab;border-radius:6px;padding:8px 10px}.bcard:hover{border-color:var(--border-strong)}.bcard .title{margin-bottom:4px;font-weight:500}.bcard .meta{color:var(--text-secondary);flex-wrap:wrap;gap:4px;font-size:12px;display:flex}table.t{border-collapse:collapse;width:100%;font-size:13px}table.t th,table.t td{text-align:left;border-bottom:1px solid var(--border-subtle);vertical-align:middle;padding:6px 8px}table.t th{color:var(--text-secondary);font-size:12px;font-weight:500}table.t tr:hover td{background:var(--surface-hover)}.empty{text-align:center;color:var(--text-secondary);padding:48px 24px}.empty h3{color:var(--text-primary);margin:0 0 6px}.dropzone{z-index:30;background:color-mix(in srgb, var(--accent) 8%, var(--surface-base));border:2px dashed var(--accent);color:var(--accent);pointer-events:none;place-items:center;font-size:16px;font-weight:500;display:grid;position:absolute;inset:0}.auth{place-items:center;min-height:100%;display:grid}.auth .card{width:380px}.auth h1{margin:0 0 16px;font-size:20px}.progress{background:var(--surface-sunken);border-radius:3px;height:6px;overflow:hidden}.progress>div{background:var(--accent);height:100%;transition:width .3s}.confetti{pointer-events:none;z-index:100;position:fixed;inset:0;overflow:hidden}.confetti span{width:8px;height:12px;animation:1.4s ease-in forwards fall;position:absolute;top:-10px}@keyframes fall{to{opacity:.3;transform:translateY(110vh)rotate(540deg)}}
