.btn{--btn-bg:var(--surface-2);--btn-fg:var(--text);--btn-bd:var(--line-strong);border-radius:var(--r-sm);border:1px solid var(--btn-bd);background:var(--btn-bg);height:34px;color:var(--btn-fg);font:500 13px/1 var(--font);letter-spacing:-.005em;white-space:nowrap;cursor:pointer;box-shadow:0 1px 0 var(--highlight) inset;transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);justify-content:center;align-items:center;gap:7px;padding:0 13px;display:inline-flex}.btn:hover{--btn-bg:var(--surface-3);text-decoration:none}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:default;transform:none}.btn.sm{border-radius:7px;gap:6px;height:28px;padding:0 10px;font-size:12px}.btn.primary{--btn-bg:var(--accent);--btn-fg:var(--accent-ink);--btn-bd:transparent;box-shadow:0 0 0 0 var(--accent-soft), 0 1px 0 #ffffff59 inset;font-weight:600}.btn.primary:hover{--btn-bg:var(--accent-hover);box-shadow:0 0 0 4px var(--accent-soft), 0 1px 0 #ffffff59 inset}.btn.ghost{--btn-bg:transparent;--btn-bd:transparent;--btn-fg:var(--text-2);box-shadow:none}.btn.ghost:hover{--btn-bg:var(--surface-3);--btn-fg:var(--text)}.btn.danger{--btn-bg:transparent;--btn-fg:var(--danger);--btn-bd:color-mix(in oklab, var(--danger) 40%, transparent);box-shadow:none}.btn.danger:hover{--btn-bg:var(--danger-soft)}.btn.icon-only{width:34px;padding:0}.btn.icon-only.sm{width:28px}a.btn{text-decoration:none}.spinner{border:2px solid var(--line-strong);border-top-color:currentColor;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{border-radius:var(--r-xs);background:linear-gradient(90deg, var(--surface-2) 0%, var(--surface-3) 50%, var(--surface-2) 100%);background-size:200% 100%;animation:1.4s ease-in-out infinite shimmer;display:block}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.badge{--c:var(--text-2);border-radius:var(--r-pill);letter-spacing:.005em;height:22px;color:color-mix(in oklab, var(--c) 72%, var(--text));background:color-mix(in oklab, var(--c) 14%, transparent);border:1px solid color-mix(in oklab, var(--c) 30%, transparent);white-space:nowrap;align-items:center;gap:6px;padding:0 9px 0 7px;font-size:11.5px;font-weight:600;display:inline-flex}.badge-dot{background:var(--c);width:7px;height:7px;box-shadow:0 0 8px color-mix(in oklab, var(--c) 70%, transparent);border-radius:50%}.badge.solid{background:var(--c);color:#fff;border-color:#0000}.tag{border-radius:var(--r-xs);background:var(--surface-3);height:20px;color:var(--text-2);white-space:nowrap;align-items:center;padding:0 7px;font-size:11px;font-weight:500;display:inline-flex}.tag.accent{background:var(--accent-soft);color:var(--accent-text)}.tag.warn{background:var(--warn-soft);color:var(--warn)}.tag.danger{background:var(--danger-soft);color:var(--danger)}.tag.ok{background:var(--ok-soft);color:var(--ok)}.dot{border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.kbd{border:1px solid var(--line-strong);background:var(--surface-2);min-width:20px;height:20px;color:var(--text-2);font:600 10.5px/1 var(--font);border-bottom-width:2px;border-radius:5px;justify-content:center;align-items:center;padding:0 5px;display:inline-flex}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--sp-4);box-shadow:0 1px 0 var(--highlight) inset;position:relative}.card.flush{padding:0;overflow:hidden}.card.interactive{cursor:pointer;transition:border-color var(--dur) var(--ease), transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease)}.card.interactive:before{content:"";border-radius:inherit;pointer-events:none;opacity:0;background:radial-gradient(260px circle at var(--mx,50%) var(--my,0%), var(--accent-soft), transparent 70%);transition:opacity var(--dur) var(--ease);position:absolute;inset:0}.card.interactive:hover{border-color:var(--line-strong);box-shadow:var(--shadow-md);transform:translateY(-1px)}.card.interactive:hover:before{opacity:1}.card.selected{border-color:var(--accent-line);box-shadow:0 0 0 1px var(--accent-line), 0 0 28px -8px var(--accent)}.input,.select,.textarea{border-radius:var(--r-sm);border:1px solid var(--line-strong);background:var(--surface-2);width:100%;height:34px;color:var(--text);font:400 13px/1.4 var(--font);transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);padding:0 11px}.textarea{resize:vertical;height:auto;min-height:84px;padding:9px 11px}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238b93a7' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:30px}.input::placeholder,.textarea::placeholder{color:var(--text-3)}.input:hover,.select:hover,.textarea:hover{border-color:var(--text-3)}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:var(--surface)}.input-wrap{align-items:center;display:flex;position:relative}.input-wrap .input-icon{color:var(--text-3);pointer-events:none;position:absolute;left:11px}.input.has-icon{padding-left:34px}.input-trailing{pointer-events:none;align-items:center;gap:4px;display:flex;position:absolute;right:8px}input[type=checkbox],input[type=radio]{accent-color:var(--accent);width:15px;height:15px;margin:0}.color-input{border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface-2);cursor:pointer;width:40px;height:34px;padding:3px}.field{flex-direction:column;gap:6px;display:flex}.field>label{color:var(--text-2);font-size:12px;font-weight:500}.field .hint{color:var(--text-3);font-size:11.5px}.modal-backdrop{z-index:100;background:var(--overlay);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fade var(--dur) var(--ease);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--r-lg);width:min(560px,100%);max-height:min(88vh,900px);box-shadow:var(--shadow-lg);animation:pop var(--dur) var(--ease);flex-direction:column;display:flex}.modal.wide{width:min(980px,100%)}.modal-header{justify-content:space-between;align-items:center;padding:16px 18px 12px 22px;display:flex}.modal-body{gap:var(--sp-3);flex-direction:column;padding:4px 22px 22px;display:flex;overflow:auto}.modal-footer{justify-content:flex-end;gap:var(--sp-2);border-top:1px solid var(--line);padding:14px 22px;display:flex}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(10px)scale(.98)}}.toasts{z-index:200;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{border-radius:var(--r-pill);background:var(--surface-3);border:1px solid var(--line-strong);box-shadow:var(--shadow-lg);animation:toast-in var(--dur) var(--ease);align-items:center;gap:9px;padding:10px 16px;font-size:13px;font-weight:500;display:flex}.toast.ok svg{color:var(--ok)}.toast.error svg{color:var(--danger)}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}}[data-tip]{position:relative}[data-tip]:hover:after{content:attr(data-tip);background:var(--text);color:var(--bg);font:500 11px/1.3 var(--font);white-space:nowrap;pointer-events:none;z-index:60;border-radius:6px;padding:4px 8px;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%)}.page-header{justify-content:space-between;align-items:flex-end;gap:var(--sp-5);flex-wrap:wrap;display:flex}.page-header-text{flex-direction:column;flex:360px;gap:6px;min-width:0;max-width:720px;display:flex}.page-desc{color:var(--text-2);font-size:14px;line-height:1.55}.page-header-actions{gap:var(--sp-2);flex-wrap:wrap;flex:none;align-items:center;display:flex}.eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--accent-text);font-size:11px;font-weight:600}.section{gap:var(--sp-3);flex-direction:column;display:flex}.section-head{justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}.section-count{color:var(--text-3);background:var(--surface-3);border-radius:var(--r-pill);vertical-align:1px;margin-left:8px;padding:1px 7px;font-size:12px;font-weight:600}.empty{text-align:center;border:1px dashed var(--line-strong);border-radius:var(--r-lg);background:radial-gradient(circle at 50% 0%, var(--accent-soft), transparent 60%);flex-direction:column;align-items:center;gap:8px;padding:48px 24px;display:flex}.empty-icon{background:var(--surface-2);border:1px solid var(--line-strong);width:46px;height:46px;color:var(--accent-text);border-radius:14px;place-items:center;display:grid}.empty-title{font-size:15px;font-weight:600}.empty-desc{color:var(--text-2);max-width:420px;margin-bottom:6px}.stat{border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line);flex-direction:column;gap:2px;padding:12px 14px;display:flex}.stat-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);font-size:11px;font-weight:600}.stat-value{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:24px;font-weight:650}.stat-hint{color:var(--text-2);font-size:12px}.stat.accent .stat-value{color:var(--accent-text)}.stat.warn .stat-value{color:var(--warn)}.stat.danger .stat-value{color:var(--danger)}.meter{gap:3px;display:inline-flex}.meter i{background:var(--surface-3);border-radius:3px;width:14px;height:5px}.meter.accent i.on{background:var(--accent);box-shadow:0 0 8px var(--accent-soft)}.meter.warn i.on{background:var(--warn)}.meter.danger i.on{background:var(--danger)}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:10px 12px}th{color:var(--text-3);letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:600}tbody tr:hover{background:var(--surface-2)}.kv{grid-template-columns:minmax(90px,130px) 1fr;gap:8px 14px;margin:0;font-size:13px;display:grid}.kv dt{color:var(--text-3)}.kv dd{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.chip{border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--line);min-width:0;transition:border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);align-items:center;gap:9px;padding:7px 10px;display:flex}.chip:hover{border-color:var(--line-strong);background:var(--surface-3)}.chip a{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:500;overflow:hidden}.chip a:hover{color:var(--accent-text);text-decoration:none}.chip .rel{color:var(--text-3);font-size:11px;font-family:var(--mono);flex:none}.link-btn{color:var(--accent-text);cursor:pointer;text-align:left;font:inherit;background:0 0;border:0;padding:0;font-size:13px}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}.rise{animation:rise .35s var(--ease) both}.palette-backdrop{z-index:150;background:var(--overlay);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:fade var(--dur) var(--ease);justify-content:center;align-items:flex-start;padding:12vh 24px 24px;display:flex;position:fixed;inset:0}.palette{border-radius:var(--r-lg);background:var(--surface);width:min(620px,100%);max-height:70vh;box-shadow:var(--shadow-lg);animation:pop var(--dur) var(--ease);flex-direction:column;display:flex;overflow:hidden}.palette-input{border-bottom:1px solid var(--line);height:56px;color:var(--text-3);align-items:center;gap:12px;padding:0 18px;display:flex}.palette-input input{color:var(--text);font:400 16px var(--font);background:0 0;border:0;outline:0;flex:1}.palette-input input::placeholder{color:var(--text-3)}.palette-list{min-height:80px;padding:6px;overflow:auto}.palette-group{letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);padding:10px 12px 4px;font-size:11px;font-weight:600}.palette-item{border-radius:var(--r-sm);width:100%;height:40px;color:var(--text-2);font:500 14px var(--font);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;padding:0 12px;display:flex}.palette-item[data-active=true]{background:var(--accent-soft);color:var(--text)}.palette-item[data-active=true] svg{color:var(--accent-text)}.palette-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.palette-hint{color:var(--text-3);font-size:12px;font-weight:400}.palette-empty{text-align:center;color:var(--text-3);padding:28px}.palette-foot{border-top:1px solid var(--line);color:var(--text-3);align-items:center;gap:16px;padding:10px 16px;font-size:12px;display:flex}.search-results{z-index:30;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-md);max-height:320px;box-shadow:var(--shadow-lg);padding:4px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:auto}.search-results .item{border-radius:var(--r-sm);cursor:pointer;align-items:center;gap:10px;padding:8px 10px;display:flex}.search-results .item:hover{background:var(--accent-soft)}.login-wrap{min-height:100vh;padding:var(--sp-5);place-items:center;display:grid}.login-card{gap:var(--sp-5);width:100%;max-width:400px;padding:var(--sp-6);flex-direction:column;display:flex}.login-brand{align-items:center;gap:var(--sp-3);display:flex}.login-brand h1{font-size:20px}.link-btn{color:var(--accent-text);font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;padding:0;font-size:12.5px}.link-btn:hover{text-underline-offset:3px;text-decoration:underline}.space-switcher{align-items:center;gap:4px;display:flex}.select.compact{max-width:220px;height:30px;padding-top:0;padding-bottom:0;font-size:12.5px}.user-menu{align-items:center;gap:4px;display:flex}.user-name{color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;max-width:140px;font-size:12.5px;overflow:hidden}.tabs{border-bottom:1px solid var(--line);gap:2px;display:flex}.tab{font:inherit;color:var(--text-3);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 14px;font-weight:500}.tab:hover{color:var(--text)}.tab.on{color:var(--text);border-bottom-color:var(--accent)}.access-row{align-items:center;gap:var(--sp-3);padding:12px 14px;display:flex}.access-row .grow{min-width:0}.toggle-chips{flex-wrap:wrap;gap:6px;display:flex}.toggle-chip{border-radius:var(--r-pill);height:26px;font:inherit;cursor:pointer;background:var(--surface-2);border:1px solid var(--line);color:var(--text-2);transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);padding:0 10px;font-size:12px}.toggle-chip:hover:not(:disabled){border-color:var(--line-strong);color:var(--text)}.toggle-chip.on{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-text)}.toggle-chip:disabled{cursor:default;opacity:.9}.notice{border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--line);color:var(--text-2);padding:10px 12px;font-size:12.5px;line-height:1.5}.notice.warn{background:var(--warn-soft);color:var(--warn);border-color:#0000}.select-all{-webkit-user-select:all;user-select:all;word-break:break-all;white-space:pre-wrap}.grid-2{gap:var(--sp-3);grid-template-columns:1fr 1fr;display:grid}.doc{flex-direction:column;gap:6px;padding:10px 12px;display:flex}.doc-title{min-width:0;font:inherit;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:0;font-weight:600;display:inline-flex}.doc-title:disabled{cursor:default}.doc-title span{overflow-wrap:anywhere}.doc-title svg{color:var(--text-3);flex:none}.doc-summary{line-height:1.5}.doc-body{border-top:1px solid var(--line);max-height:420px;margin-top:6px;padding-top:10px;overflow:auto}.doc-article{padding:var(--sp-5) var(--sp-6)}.mono-area{font-family:var(--mono);font-size:12.5px;line-height:1.55}.md{overflow-wrap:anywhere;flex-direction:column;gap:10px;font-size:14px;line-height:1.65;display:flex}.md .md-h{color:var(--text);text-transform:none;letter-spacing:-.01em;margin-top:8px;font-size:16px}.md h2.md-h{font-size:19px}.md h3.md-h{font-size:16px}.md h4.md-h,.md h5.md-h,.md h6.md-h{font-size:14px}.md ul,.md ol{flex-direction:column;gap:4px;margin:0;padding-left:22px;display:flex}.md-code{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);margin:0;padding:12px;overflow:auto}.md-code code{color:var(--text);background:0 0;padding:0;font-size:12px;line-height:1.55}.md-quote{border-left:3px solid var(--line-strong);color:var(--text-2);margin:0;padding:2px 0 2px 12px}.md-hr{border:0;border-top:1px solid var(--line);margin:6px 0}:root,:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0a0b0f;--surface:#101218;--surface-2:#151822;--surface-3:#1b1f2b;--overlay:#06070aa8;--line:#ffffff12;--line-strong:#ffffff24;--highlight:#ffffff0b;--text:#eceef4;--text-2:#a3a9bc;--text-3:#6c7388;--accent:#c8f562;--accent-hover:#d6ff72;--accent-ink:#11160a;--accent-soft:#c8f5621f;--accent-line:#c8f56261;--accent-text:#d4fa7c;--danger:#ff6b6b;--danger-soft:#ff6b6b1f;--warn:#ffc15a;--warn-soft:#ffc15a21;--ok:#5fe3a1;--ok-soft:#5fe3a11f;--canvas-dot:#ffffff13;--canvas-link:#a5afcd33;--canvas-link-hot:#e4eaffd9;--canvas-label:#dfe3ee;--shadow-sm:0 1px 2px #0006;--shadow-md:0 8px 24px -8px #0009, 0 1px 0 var(--highlight) inset;--shadow-lg:0 24px 64px -16px #000000bf, 0 0 0 1px var(--line);--glass:#101218b8}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f5f8;--surface:#fff;--surface-2:#f7f8fb;--surface-3:#eef0f5;--overlay:#14182466;--line:#14182817;--line-strong:#1418282e;--highlight:#ffffffe6;--text:#14161d;--text-2:#4d5468;--text-3:#858ba0;--accent:#5c8a00;--accent-hover:#4d7500;--accent-ink:#fff;--accent-soft:#5c8a001a;--accent-line:#5c8a0066;--accent-text:#4f7800;--danger:#d6384a;--danger-soft:#d6384a1a;--warn:#b7791f;--warn-soft:#b7791f1f;--ok:#1f9d68;--ok-soft:#1f9d681a;--canvas-dot:#1418281f;--canvas-link:#46506e40;--canvas-link-hot:#141828cc;--canvas-label:#1c2030;--shadow-sm:0 1px 2px #14182814;--shadow-md:0 8px 24px -10px #1418282e, 0 1px 0 var(--highlight) inset;--shadow-lg:0 24px 64px -20px #1418284d, 0 0 0 1px var(--line);--glass:#ffffffc7}:root{--font:"Inter", -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--r-xs:5px;--r-sm:8px;--r-md:12px;--r-lg:18px;--r-pill:999px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--ease:cubic-bezier(.2, .7, .2, 1);--dur-fast:.12s;--dur:.2s;--topbar-h:52px;--sidebar-w:248px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);font-feature-settings:"cv11", "ss01";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;font-size:14px;line-height:1.5}::selection{background:var(--accent);color:var(--accent-ink)}a{color:var(--accent-text);text-decoration:none}a:hover{text-underline-offset:3px;text-decoration:underline}h1,h2,h3{letter-spacing:-.015em;color:var(--text);margin:0;font-weight:600}h1{letter-spacing:-.025em;font-size:26px;line-height:1.2}h2{font-size:17px;line-height:1.3}h3{color:var(--text-3);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:600}p{margin:0}code,.mono{font-family:var(--mono);font-size:12px}code{background:var(--surface-3);border-radius:var(--r-xs);color:var(--text-2);padding:1px 5px}.muted{color:var(--text-2)}.faint{color:var(--text-3)}.small{font-size:12px}.error{color:var(--danger);font-size:12px}.relative{position:relative}.block{display:block}.row{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.row.between{justify-content:space-between}.row.end{justify-content:flex-end}.row.nowrap{flex-wrap:nowrap}.stack{gap:var(--sp-2);flex-direction:column;display:flex}.stack.lg{gap:var(--sp-4)}.grow{flex:1;min-width:0}.toolbar{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line-strong);background-clip:content-box;border:3px solid #0000;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--text-3);background-clip:content-box;border:3px solid #0000}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-xs)}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.shell{flex-direction:column;min-height:100vh;display:flex}.topbar{z-index:40;align-items:center;gap:var(--sp-5);height:var(--topbar-h);padding:0 var(--sp-5);background:var(--glass);-webkit-backdrop-filter:blur(14px)saturate(1.4);backdrop-filter:blur(14px)saturate(1.4);border-bottom:1px solid var(--line);display:flex;position:sticky;top:0}.brand{letter-spacing:-.02em;color:var(--text);align-items:center;gap:10px;font-size:15px;font-weight:650;display:inline-flex}.brand:hover{text-decoration:none}.logo{flex:none;width:26px;height:26px}.topnav{flex:1;gap:2px;display:flex}.topnav a,.nav a{border-radius:var(--r-sm);height:32px;color:var(--text-2);transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);align-items:center;gap:8px;padding:0 12px;font-size:13px;font-weight:500;display:inline-flex}.topnav a:hover,.nav a:hover{background:var(--surface-3);color:var(--text);text-decoration:none}.topnav a.active,.nav a.active{background:var(--surface-3);color:var(--text);box-shadow:0 0 0 1px var(--line) inset}.topnav a.active svg,.nav a.active svg{color:var(--accent-text)}.topbar-end{align-items:center;gap:4px;display:flex}.shell-content{flex:1;min-width:0}.page{padding:var(--sp-6) var(--sp-5) 64px;gap:var(--sp-5);animation:rise .4s var(--ease) both;flex-direction:column;display:flex}.shell-content .page{max-width:1200px;margin:0 auto}.search-trigger{border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--line-strong);width:100%;height:34px;color:var(--text-3);font:400 13px var(--font);cursor:pointer;text-align:left;transition:border-color var(--dur-fast) var(--ease);align-items:center;gap:10px;padding:0 8px 0 11px;display:flex}.search-trigger:hover{border-color:var(--text-3)}.search-trigger span{flex:1}.search-trigger.compact{width:220px}.layout{grid-template-columns:var(--sidebar-w) 1fr;height:100vh;display:grid}.sidebar{gap:var(--sp-4);padding:var(--sp-4);background:var(--surface);border-right:1px solid var(--line);flex-direction:column;display:flex;overflow:auto}.sidebar-head{flex-direction:column;gap:10px;display:flex}.back-link{color:var(--text-3);align-items:center;gap:6px;font-size:12px;font-weight:500;display:inline-flex}.back-link:hover{color:var(--text);text-decoration:none}.graph-title{letter-spacing:-.02em;overflow-wrap:anywhere;font-size:16px;font-weight:650;line-height:1.25}.nav{flex-direction:column;gap:2px;display:flex}.nav a{height:36px}.nav .tag{margin-left:auto}.type-meter{background:var(--surface-3);border-radius:3px;gap:2px;height:6px;display:flex;overflow:hidden}.type-meter i{border-radius:2px;min-width:3px;display:block}.type-row{border-radius:var(--r-xs);align-items:center;gap:10px;margin:0 -6px;padding:4px 6px;font-size:13px;display:flex}.type-row .count{color:var(--text-3);font-variant-numeric:tabular-nums;margin-left:auto;font-size:12px}.content{background:var(--bg);flex-direction:column;min-width:0;min-height:0;display:flex;overflow:auto}.content>.page{width:100%;max-width:1280px}.split{flex:1;grid-template-columns:1fr 392px;min-height:0;display:grid}.split-main{min-width:0;min-height:0;position:relative;overflow:hidden}.split-side{border-left:1px solid var(--line);background:var(--surface);padding:var(--sp-5);gap:var(--sp-4);flex-direction:column;display:flex;overflow:auto}.canvas-wrap{background-color:var(--bg);background-image:radial-gradient(circle at 1px 1px, var(--canvas-dot) 1px, transparent 0), radial-gradient(ellipse at 50% 40%, transparent 40%, var(--bg) 100%);background-size:24px 24px,100% 100%;position:absolute;inset:0}.canvas-wrap canvas{display:block}.glass{background:var(--glass);-webkit-backdrop-filter:blur(14px)saturate(1.3);backdrop-filter:blur(14px)saturate(1.3);border:1px solid var(--line-strong);border-radius:var(--r-md);box-shadow:var(--shadow-md)}.canvas-top{z-index:5;pointer-events:none;justify-content:space-between;gap:12px;display:flex;position:absolute;top:14px;left:14px;right:14px}.canvas-top>*{pointer-events:auto}.legend{flex-wrap:wrap;gap:6px;padding:6px;display:flex}.legend-chip{border-radius:var(--r-sm);height:28px;color:var(--text);font:500 12.5px var(--font);cursor:pointer;transition:background var(--dur-fast) var(--ease), opacity var(--dur-fast) var(--ease);background:0 0;border:1px solid #0000;align-items:center;gap:8px;padding:0 10px 0 8px;display:inline-flex}.legend-chip:hover{background:var(--surface-3)}.legend-chip.off{opacity:.45}.legend-chip.off .dot{background:var(--text-3)!important;box-shadow:none!important}.legend-chip .count{color:var(--text-3);font-variant-numeric:tabular-nums;font-size:11.5px}.canvas-bottom{z-index:5;pointer-events:none;justify-content:space-between;align-items:flex-end;display:flex;position:absolute;bottom:14px;left:14px;right:14px}.canvas-bottom>*{pointer-events:auto}.canvas-stats{color:var(--text-2);align-items:center;gap:14px;padding:8px 14px;font-size:12px;display:flex}.canvas-stats b{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.canvas-hint{color:var(--text-3);padding:0 4px;font-size:12px}.zoom-controls{flex-direction:column;gap:2px;padding:4px;display:flex}.canvas-center{z-index:4;place-items:center;padding:24px;display:grid;position:absolute;inset:0}.node-head{flex-direction:column;gap:10px;display:flex}.node-title{letter-spacing:-.025em;overflow-wrap:anywhere;font-size:22px;line-height:1.25}.node-title a{color:var(--text)}.node-title a:hover{color:var(--accent-text);text-decoration:none}.node-desc{color:var(--text-2);white-space:pre-wrap;line-height:1.6}.node-actions{flex-wrap:wrap;gap:6px;display:flex}.node-meta{color:var(--text-3);font-size:11.5px}.panel-section{padding-top:var(--sp-4);border-top:1px solid var(--line);flex-direction:column;gap:8px;display:flex}.panel-placeholder{text-align:center;color:var(--text-3);flex-direction:column;align-items:center;gap:10px;margin:auto 0;padding:24px;display:flex}.panel-placeholder .ph-icon{border:1px dashed var(--line-strong);width:44px;height:44px;color:var(--text-3);border-radius:14px;place-items:center;display:grid}.grid-tiles{gap:var(--sp-4);grid-template-columns:repeat(auto-fill,minmax(290px,1fr));display:grid}.tile{flex-direction:column;gap:10px;min-height:150px;padding:18px;display:flex}.tile-title{letter-spacing:-.02em;color:var(--text);font-size:16px;font-weight:650;line-height:1.3}a.tile-title:hover{color:var(--text);text-decoration:none}.tile-desc{color:var(--text-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.tile-meta{color:var(--text-3);flex-wrap:wrap;align-items:center;gap:6px 12px;margin-top:auto;font-size:12px;display:flex}.tile-actions{padding-top:6px}.tile-stripe{border-radius:2px;gap:2px;height:4px;display:flex;overflow:hidden}.tile-stripe i{flex:1}.tile-legend{flex-wrap:wrap;gap:5px;display:flex}.tile-more{opacity:0;transition:opacity var(--dur) var(--ease)}.tile:hover .tile-more,.tile:focus-within .tile-more{opacity:1}@media (hover:none){.tile-more{opacity:1}}.opp-list{gap:var(--sp-4);flex-direction:column;display:flex}.opp{gap:var(--sp-5);grid-template-columns:minmax(0,1.1fr) minmax(0,1.6fr);padding:20px;display:grid}.opp-main{flex-direction:column;gap:10px;min-width:0;display:flex}.opp-title{letter-spacing:-.02em;color:var(--text);font-size:17px;font-weight:650;line-height:1.3}.opp-title:hover{color:var(--accent-text);text-decoration:none}.opp-signals{flex-wrap:wrap;gap:14px;margin-top:auto;display:flex}.signal{color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;flex-direction:column;gap:5px;font-size:11px;font-weight:600;display:flex}.signal b{color:var(--text);text-transform:none;letter-spacing:0;font-size:13px;font-weight:600}.opp-cols{gap:var(--sp-4);grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;display:grid}.opp-col{flex-direction:column;gap:6px;min-width:0;display:flex}.opp.whitespace{border-color:var(--accent-line);background:linear-gradient(135deg, var(--accent-soft), transparent 45%), var(--surface)}.review-item{gap:var(--sp-4);grid-template-columns:96px minmax(0,1fr) auto;align-items:start;padding:16px 18px;display:grid}.overdue{border-radius:var(--r-sm);background:var(--warn-soft);color:var(--warn);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:10px 6px;display:flex}.overdue b{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:22px;font-weight:700;line-height:1}.overdue span{text-transform:uppercase;letter-spacing:.06em;font-size:10.5px;font-weight:600}.overdue.hard{background:var(--danger-soft);color:var(--danger)}.review-title{color:var(--text);font-size:15px;font-weight:600}.review-value{color:var(--text-2);font-size:13px}.review-about{flex-direction:column;gap:6px;min-width:200px;max-width:280px;display:flex}.editor{gap:var(--sp-4);flex-direction:column;display:flex}.editor-fieldset{gap:var(--sp-5);border:0;flex-direction:column;min-width:0;margin:0;padding:0;display:flex}.editor-fieldset:disabled{opacity:.7}.editor-card{flex-direction:column;gap:10px;display:flex}.editor-row{grid-template-columns:40px 1fr 200px 36px;align-items:center;gap:8px;display:grid}.editor-row:nth-of-type(2){grid-template-columns:1fr 1fr}.field-grid{grid-template-columns:150px 1fr 120px 50px 150px 36px;align-items:center;gap:8px;display:grid}.field-grid.head{padding:0 2px}.ref-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ref-chip{background:var(--surface-2);color:var(--text-2);border:1px solid var(--line-strong);border-radius:var(--r-pill);font:500 12px var(--font);cursor:pointer;padding:3px 11px}.ref-chip.on{color:#fff}.editor-savebar{background:linear-gradient(to top, var(--bg) 70%, transparent);flex-direction:column;gap:8px;padding:16px 0 8px;display:flex;position:sticky;bottom:0}.editor-savebar ul{margin:0;padding-left:18px}.card-2{background:var(--surface-2);border-radius:var(--r-sm);padding:10px 12px}.gen-form{gap:var(--sp-4);flex-direction:column;display:flex}.dropzone{border:1.5px dashed var(--line-strong);border-radius:var(--r-lg);text-align:center;cursor:pointer;background:var(--surface);transition:border-color var(--dur) var(--ease), background var(--dur) var(--ease);flex-direction:column;align-items:center;gap:6px;padding:36px;display:flex}.dropzone:hover,.dropzone.over{border-color:var(--accent);background:radial-gradient(circle at 50% 0%, var(--accent-soft), transparent 70%), var(--surface)}.radio{cursor:pointer;align-items:flex-start;gap:10px;display:flex}.radio input{margin-top:3px}.seg{background:var(--surface-2);color:var(--text);border:1px solid var(--line-strong);border-radius:var(--r-sm);cursor:pointer;height:34px;font:500 13px var(--font);align-items:center;gap:8px;padding:0 14px;display:inline-flex}.seg.on{border-color:var(--accent-line);box-shadow:0 0 0 1px var(--accent-line);background:var(--accent-soft)}.gen-console{height:calc(100vh - var(--topbar-h));grid-template-columns:1fr 400px;min-height:0;display:grid}.gen-canvas{min-width:0;min-height:0;position:relative}.gen-hud{z-index:5;background:var(--glass);border:1px solid var(--line-strong);border-radius:var(--r-pill);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow-md);align-items:center;gap:12px;padding:7px 16px;display:flex;position:absolute;top:14px;left:14px}.gen-hud.right{padding:5px 6px;left:auto;right:14px}.gen-status{align-items:center;gap:8px;font-size:13px;font-weight:600;display:inline-flex}.gen-status.done{color:var(--ok)}.gen-status.error{color:var(--danger)}.gen-status.cancelled{color:var(--text-3)}.pulse{background:var(--accent);width:9px;height:9px;box-shadow:0 0 12px var(--accent);border-radius:50%;animation:1.2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:.6;transform:scale(.7)}50%{opacity:1;transform:scale(1.2)}}.gen-legend{z-index:5;background:var(--glass);border:1px solid var(--line-strong);border-radius:var(--r-md);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);flex-wrap:wrap;gap:12px;max-width:70%;padding:9px 13px;display:flex;position:absolute;bottom:58px;left:14px}.gen-progress{z-index:5;background:var(--glass);border:1px solid var(--line-strong);border-radius:var(--r-pill);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);align-items:center;height:30px;padding:0 16px;display:flex;position:absolute;bottom:14px;left:14px;right:14px;overflow:hidden}.gen-progress .bar{background:linear-gradient(90deg, var(--accent-soft), transparent);border-right:2px solid var(--accent);transition:width .4s;position:absolute;inset:0 auto 0 0}.gen-progress span{position:relative}.gen-side{border-left:1px solid var(--line);background:var(--surface);flex-direction:column;min-height:0;display:flex}.gen-side-head{border-bottom:1px solid var(--line);flex-direction:column;gap:2px;padding:16px 18px 12px;display:flex}.gen-feed{flex-direction:column;flex:1;gap:10px;min-height:0;padding:14px 18px;display:flex;overflow:auto}.gen-result{margin:12px}.feed-status{text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);border-top:1px solid var(--line);padding-top:10px;font-size:11px;font-weight:600}.feed-status:first-child{border-top:0;padding-top:0}.feed-agent{flex-direction:column;gap:5px;font-size:13px;animation:.25s slidein;display:flex}.agent-tag{color:#fff;border-radius:var(--r-xs);align-self:flex-start;padding:1px 8px;font-size:11px;font-weight:600;display:inline-block}.feed-thought{color:var(--text-2);border-left:2px solid var(--line-strong);padding-left:10px;font-size:12px;font-style:italic}.feed-warning{color:var(--warn);font-size:12px}.feed-node{align-items:baseline;gap:8px;font-size:13px;animation:.25s slidein;display:flex}.feed-node-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}@keyframes slidein{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.code{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);font:11.5px/1.5 var(--mono);white-space:pre;margin:8px 0;padding:12px;overflow:auto}details>summary{cursor:pointer;color:var(--text-2)}details>summary:hover{color:var(--text)}@media (width<=1000px){.layout{grid-template-columns:1fr;height:auto}.sidebar{border-right:0;border-bottom:1px solid var(--line)}.split,.gen-console,.opp{grid-template-columns:1fr}.split-main{height:60vh}.split-side{border-left:0;border-top:1px solid var(--line)}}
