.error-boundary{display:flex;align-items:center;justify-content:center;min-height:200px;padding:var(--space-6) var(--space-4)}.error-boundary-content{display:flex;flex-direction:column;gap:var(--space-3);align-items:stretch;max-width:60ch;padding:var(--space-5);border:var(--border-width-1) solid var(--color-border-subtle);border-inline-start:var(--border-width-3) solid var(--color-danger);border-radius:var(--radius-3);background:var(--color-surface-raised);text-align:start}.error-boundary-content h2{margin:0;color:var(--color-text-primary);font-size:var(--text-lg);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title)}.error-message{margin:0;color:var(--color-text-secondary);font-size:var(--text-sm);line-height:var(--leading-normal)}.error-request-id{margin:0;overflow-wrap:anywhere;color:var(--color-text-tertiary);font-family:var(--font-mono);font-size:var(--text-xs)}.error-details{margin:0;padding:var(--space-3);border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-2);background:var(--color-surface-sunken);text-align:start}.error-details summary{cursor:pointer;color:var(--color-text-secondary);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--weight-medium)}.error-details[open] summary{margin-bottom:var(--space-2)}.error-details pre{max-height:40vh;margin:0;overflow:auto;color:var(--color-text-secondary);font-family:var(--font-mono);font-size:var(--text-xs);white-space:pre-wrap;word-break:break-word}.error-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.error-actions button{min-height:44px;padding:var(--space-2) var(--space-4);border-radius:var(--radius-2);font-family:inherit;font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;transition:background var(--duration-1) var(--ease-standard),color var(--duration-1) var(--ease-standard),border-color var(--duration-1) var(--ease-standard)}.error-actions button:focus-visible{outline:var(--border-width-2) solid var(--color-focus-ring);outline-offset:2px}.btn-retry{border:var(--border-width-1) solid transparent;background:var(--color-action-primary);color:var(--color-text-on-action)}.btn-retry:hover{background:var(--color-action-primary-hover)}.btn-reload{border:var(--border-width-1) solid var(--color-border-default);background:transparent;color:var(--color-text-secondary)}.btn-reload:hover{border-color:var(--color-border-strong);color:var(--color-text-primary)}.code-block{max-width:100%;margin:var(--space-4) 0;overflow:hidden;border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-2);background:var(--color-code-bg)}.code-block-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:var(--border-width-1) solid var(--color-border-subtle);background:var(--color-surface-sunken)}.code-language{overflow:hidden;color:var(--color-text-tertiary);font-family:var(--font-mono);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap}.copy-button{flex:none;padding:var(--space-1) var(--space-2);border:var(--border-width-1) solid var(--color-border-default);border-radius:var(--radius-1);background:transparent;color:var(--color-text-secondary);font-family:var(--font-mono);font-size:var(--text-xs);cursor:pointer;transition:color var(--duration-1) var(--ease-standard),border-color var(--duration-1) var(--ease-standard),background var(--duration-1) var(--ease-standard)}.copy-button:hover{border-color:var(--color-border-strong);background:var(--color-hover-wash);color:var(--color-text-primary)}.copy-button:focus-visible{outline:var(--border-width-2) solid var(--color-focus-ring);outline-offset:2px}.code-block-scroll{max-width:100%;overflow-x:auto;overflow-y:auto;max-height:60vh;overscroll-behavior-x:contain}.code-block-scroll:focus-visible{outline:var(--border-width-2) solid var(--color-focus-ring);outline-offset:-2px}.code-block-scroll pre{margin:0;padding:var(--space-3)}.code-block-scroll code{font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--leading-normal)}.persona-selector{position:relative;display:inline-flex}.persona-trigger{display:inline-flex;align-items:stretch;gap:0;font-size:.8125rem;color:var(--text-secondary);background:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius);overflow:hidden;transition:all var(--transition-fast)}.persona-trigger:hover{border-color:var(--accent)}.persona-trigger.active{color:var(--accent);background:var(--accent-dim);border-color:var(--accent)}.persona-trigger-main{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .6rem;font-size:inherit;color:inherit;background:transparent;border:none;cursor:pointer}.persona-trigger-main:hover,.persona-trigger.active .persona-trigger-main{color:var(--accent)}.persona-label{max-width:14ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.persona-clear{display:inline-flex;align-items:center;justify-content:center;padding:0 .45rem;background:transparent;border:none;border-left:1px solid color-mix(in srgb,var(--accent) 25%,transparent);color:var(--accent);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.persona-clear:hover{background:color-mix(in srgb,var(--rose, var(--error)) 15%,transparent);color:var(--rose, var(--error))}.persona-dropdown{position:absolute;bottom:calc(100% + 6px);left:0;min-width:360px;max-width:460px;max-height:460px;overflow-y:auto;background:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:50;padding:.25rem}.persona-dropdown-header{display:flex;align-items:center;justify-content:space-between;padding:.4rem .6rem;border-bottom:1px solid var(--border-color);margin-bottom:.25rem}.persona-dropdown-title{font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-tertiary)}.persona-refresh-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:var(--radius-sm);background:transparent;color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast)}.persona-refresh-btn:hover:not(:disabled){color:var(--accent);background:var(--accent-dim)}.persona-refresh-btn .spinning{animation:persona-spin .8s linear infinite}@keyframes persona-spin{to{transform:rotate(360deg)}}.persona-state{padding:.75rem .875rem;font-size:.8125rem;color:var(--text-secondary)}.persona-error{color:var(--error)}.persona-circle-block{border-radius:var(--radius-sm);margin:.15rem 0}.persona-circle-header{display:flex;align-items:center;gap:.5rem;width:100%;text-align:left;padding:.6rem .75rem;background:var(--elevated);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast)}.persona-circle-header:hover{background:var(--accent-dim);border-color:var(--accent)}.persona-chevron{color:var(--text-tertiary);transition:transform var(--transition-fast);flex-shrink:0}.persona-chevron.open{transform:rotate(90deg);color:var(--accent)}.persona-circle-meta{flex:1;min-width:0}.persona-circle-name{font-weight:600;font-size:.875rem;color:var(--text-primary)}.persona-circle-tagline{font-size:.75rem;color:var(--text-secondary);margin-top:.1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.persona-circle-count{font-size:.7rem;font-weight:600;padding:.1rem .4rem;border-radius:999px;background:var(--surface);color:var(--text-secondary);border:1px solid var(--border-color)}.persona-circle-personas{display:flex;flex-direction:column;gap:.15rem;padding:.25rem .25rem .25rem 1.5rem}.persona-option{display:flex;flex-direction:column;width:100%;text-align:left;padding:.5rem .75rem;border-radius:var(--radius-sm);background:transparent;cursor:pointer;transition:background var(--transition-fast)}.persona-option:hover{background:var(--accent-dim)}.persona-option.selected{background:var(--accent-dim);color:var(--accent)}.persona-lead-option{border:1px dashed var(--border-color);background:transparent}.persona-option-row{display:flex;align-items:center;gap:.6rem}.persona-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;background:var(--elevated);flex-shrink:0}.persona-option-text{flex:1;min-width:0}.persona-option-name{font-weight:600;font-size:.875rem;color:var(--text-primary);display:inline-flex;align-items:center;gap:.4rem}.persona-option.selected .persona-option-name{color:var(--accent)}.persona-lead-badge{font-size:.625rem;font-weight:600;padding:.05rem .35rem;border-radius:999px;background:var(--accent-dim);color:var(--accent);text-transform:uppercase;letter-spacing:.04em}.persona-option-desc{font-size:.7rem;color:var(--text-secondary);margin-top:.15rem;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.assigned-path-card{background:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius-lg, 12px);padding:1.25rem;display:flex;flex-direction:column;gap:.875rem;transition:border-color .15s,box-shadow .15s}.assigned-path-card:hover{border-color:color-mix(in srgb,var(--accent) 35%,transparent);box-shadow:0 4px 24px #0000002e}.apc-header{display:flex;align-items:flex-start;gap:.875rem}.apc-icon{font-size:1.625rem;flex-shrink:0;line-height:1;padding-top:.1rem}.apc-title-block{flex:1;min-width:0;display:flex;flex-direction:column;gap:.375rem}.apc-name{font-size:1rem;font-weight:700;color:var(--text-primary);line-height:1.3}.apc-meta-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.apc-status-badge{font-size:.5625rem;font-weight:800;text-transform:uppercase;letter-spacing:.09em;padding:.2rem .5rem;border-radius:4px}.status-new{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}.status-progress{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--warning)}.status-ready{background:color-mix(in srgb,var(--success) 12%,transparent);color:var(--success)}.apc-source-badge{font-size:.5625rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;padding:.175rem .4rem;border-radius:4px;border:1px solid var(--border-color);color:var(--text-tertiary)}.apc-module-count{font-size:.75rem;color:var(--text-tertiary)}.apc-progress-section{display:flex;flex-direction:column;gap:.375rem}.apc-progress-item{display:flex;align-items:center;gap:.625rem}.apc-progress-label{font-size:.6875rem;color:var(--text-tertiary);width:5.5rem;flex-shrink:0}.apc-progress-track{flex:1;height:4px;background:var(--border-color);border-radius:2px;overflow:hidden}.apc-progress-fill{height:100%;border-radius:2px;transition:width .6s ease}.coverage-fill{background:var(--accent);opacity:.8}.apc-progress-pct{font-size:.6875rem;font-weight:700;color:var(--text-secondary);width:2.25rem;text-align:right;flex-shrink:0}.apc-nudge{font-size:.8125rem;color:var(--text-tertiary);line-height:1.4}.apc-nudge.urgent{color:var(--warning)}.apc-actions{display:flex;gap:.5rem;padding-top:.375rem;border-top:1px solid var(--border-color)}.apc-btn{flex:1;padding:.45rem 0;font-size:.8125rem;font-weight:600;border-radius:6px;cursor:pointer;transition:all .15s;border:1px solid;font-family:inherit}.apc-btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.apc-btn-primary:hover{opacity:.85}.apc-btn-secondary{background:transparent;color:var(--text-primary);border-color:var(--border-color)}.apc-btn-secondary:hover{border-color:var(--text-secondary);background:#ffffff0a}.apc-btn-ghost{background:transparent;color:var(--text-tertiary);border-color:var(--border-color);cursor:not-allowed;opacity:.45}.deck-manager{display:flex;height:calc(100vh - 52px)}.deck-sidebar{width:220px;background:var(--surface);padding:1rem;overflow-y:auto;border-right:1px solid var(--border-color)}.deck-sidebar h2{margin:0 0 1rem;font-size:.9375rem}.deck-tab{display:block;width:100%;padding:.5rem .75rem;margin-bottom:.25rem;background:none;border:none;border-radius:6px;color:var(--text-secondary);text-align:left;cursor:pointer;font-size:.8125rem;transition:all .2s}.deck-tab:hover{background:color-mix(in srgb,var(--bg) 50%,transparent);color:var(--text-primary)}.deck-tab.active{background:color-mix(in srgb,var(--accent) 8%,transparent);color:var(--accent);box-shadow:inset 2px 0 0 var(--accent)}.deck-content{flex:1;padding:1.5rem;overflow-y:auto}.deck-toolbar{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.deck-toolbar h2{margin:0;flex:1}.deck-filters{display:flex;gap:.5rem}.deck-filters select,.deck-filters input{padding:.4rem .75rem;border:1px solid var(--border-color);border-radius:6px;background:color-mix(in srgb,var(--bg) 60%,transparent);color:var(--text-primary);font-size:.8125rem}.deck-filters select:focus,.deck-filters input:focus{outline:none;border-color:var(--accent)}.card-table{display:flex;flex-direction:column;gap:.375rem}.card-row{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:color-mix(in srgb,var(--bg) 40%,transparent);border:1px solid var(--border-color);border-radius:6px;transition:border-color .2s}.card-row:hover{border-color:#ffffff14}.card-row.leech{border-left:3px solid var(--error)}.card-preview{display:flex;align-items:center;gap:.75rem;flex:1}.card-front-text{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.9375rem}.leech-badge{padding:.1rem .5rem;border-radius:var(--radius-sm);font-size:.625rem;font-weight:600;background:var(--error-bg);color:var(--error);border:1px solid color-mix(in srgb,var(--error) 20%,transparent)}.card-actions{display:flex;gap:.375rem}.card-actions button{padding:.25rem .5rem;font-size:.75rem;background:transparent;border:1px solid var(--border-color);border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:all .2s}.card-actions button:hover{border-color:#ffffff1f;color:var(--text-primary)}.edit-card-form{display:flex;flex-direction:column;gap:.5rem;width:100%}.edit-card-form textarea{width:100%;min-height:60px;padding:.5rem;border:1px solid var(--border-color);border-radius:6px;background:color-mix(in srgb,var(--bg) 60%,transparent);color:var(--text-primary);resize:vertical;font-family:inherit}.edit-card-form textarea:focus{outline:none;border-color:var(--accent)}.edit-actions{display:flex;gap:.5rem}.stats-panel{max-width:900px;margin:0 auto;padding:2rem 1rem}.stats-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.period-selector{display:flex;gap:.375rem}.period-btn{padding:.375rem .875rem;border:1px solid var(--border-color);border-radius:6px;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:.75rem;transition:all .2s}.period-btn:hover{border-color:#ffffff1a;color:var(--text-primary)}.period-btn.active{background:color-mix(in srgb,var(--accent) 8%,transparent);color:var(--accent);border-color:color-mix(in srgb,var(--accent) 25%,transparent)}.stats-grid{display:flex;gap:.75rem;margin-bottom:2rem}.chart-section{background:color-mix(in srgb,var(--bg) 40%,transparent);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1.5rem}.chart-section h3{margin:0 0 1rem}.stats-loading{text-align:center;padding:4rem;color:var(--text-secondary)}.card-renderer{background:color-mix(in srgb,var(--bg) 50%,transparent);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:2rem;min-height:200px;display:flex;flex-direction:column;gap:1.5rem;transition:border-color .2s}.card-renderer:hover{border-color:#ffffff14}.card-question{font-size:1.125rem;line-height:1.6;margin:0;color:var(--text-primary)}.card-answer{padding-top:1.5rem;border-top:1px solid var(--border-color);line-height:1.6;animation:fade-in .3s ease-out}.code-block{background:var(--bg-code);border:1px solid var(--border-color);border-radius:var(--radius);padding:1rem;overflow-x:auto;font-size:.875rem}.mc-options{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}.mc-option{padding:.75rem 1rem;border:1px solid var(--border-color);border-radius:var(--radius);background:color-mix(in srgb,var(--bg) 40%,transparent);color:var(--text-primary);cursor:pointer;text-align:left;transition:all .2s;font-size:.9375rem}.mc-option:hover{border-color:color-mix(in srgb,var(--accent) 20%,transparent);background:color-mix(in srgb,var(--accent) 4%,transparent)}.mc-option.selected{border-color:color-mix(in srgb,var(--accent) 30%,transparent);background:color-mix(in srgb,var(--accent) 6%,transparent);color:var(--accent)}.mc-option.correct,.mc-option.selected.correct{border-color:var(--moss, #3F8B6A);background:color-mix(in srgb,var(--moss, #3F8B6A) 12%,transparent);color:var(--moss, #3F8B6A);font-weight:500}.mc-option.incorrect,.mc-option.selected.incorrect{border-color:var(--rose, #C04848);background:color-mix(in srgb,var(--rose, #C04848) 10%,transparent);color:var(--rose, #C04848);text-decoration:line-through;text-decoration-thickness:1px}.mc-option:disabled{cursor:default}.card-image{max-width:100%;max-height:200px;object-fit:contain;border-radius:8px;margin-bottom:12px;display:block;margin-left:auto;margin-right:auto}.rating-buttons{display:flex;gap:.625rem;justify-content:center}.rating-btn{padding:.75rem 1.5rem;border:none;border-radius:var(--radius);font-weight:600;font-size:.875rem;cursor:pointer;transition:all .2s;color:var(--accent-contrast);letter-spacing:.02em}.rating-btn:hover{transform:translateY(-2px)}.rating-btn:active{transform:translateY(0)}.rating-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.rating-again{background:var(--error)}.rating-hard{background:var(--warning)}.rating-good{background:var(--success)}.rating-easy{background:var(--accent)}.review-session{max-width:700px;margin:0 auto;padding:2rem 1rem;display:flex;flex-direction:column;gap:1.5rem}.review-header{display:flex;flex-direction:column;gap:.5rem}.review-progress{text-align:center;font-size:.8125rem;color:var(--text-secondary)}.progress-bar{height:3px;background:var(--surface);border-radius:2px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--info));transition:width .3s ease;box-shadow:0 0 8px color-mix(in srgb,var(--accent) 30%,transparent)}.review-card-area{flex:1}.review-actions{display:flex;justify-content:center;padding:1rem 0}.btn-reveal{padding:.75rem 2.5rem;background:var(--accent);color:var(--accent-contrast);border:none;border-radius:var(--radius);font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s;letter-spacing:.02em}.btn-reveal:hover{transform:translateY(-1px)}.review-footer{display:flex;gap:.5rem;justify-content:center}.bloom-badge,.card-type-badge{padding:.2rem .625rem;border-radius:10px;font-size:.6875rem;background:color-mix(in srgb,var(--bg) 50%,transparent);color:var(--text-secondary);border:1px solid var(--border-color)}.bloom-remember{border-left:3px solid #00ff88}.bloom-understand{border-left:3px solid #00f5ff}.bloom-apply{border-left:3px solid #ff6b35}.bloom-analyze{border-left:3px solid #f59e0b}.bloom-evaluate{border-left:3px solid #ff3366}.bloom-create{border-left:3px solid #8b5cf6}.review-complete{max-width:500px;margin:4rem auto;text-align:center;display:flex;flex-direction:column;gap:1.5rem;align-items:center;animation:fade-in .5s ease-out}.complete-stats{display:flex;gap:2rem}.review-loading{text-align:center;padding:4rem;color:var(--text-secondary)}.lesson-phase-label{display:flex;align-items:center;justify-content:center;gap:.625rem}.phase-chip{font-size:.6875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:.2rem .625rem;border-radius:10px}.learn-chip{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--info, #00f5ff)}.test-chip{background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent)}.lesson-card{background:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius-lg, 12px);padding:2rem;display:flex;flex-direction:column;gap:1.25rem;animation:fade-in .25s ease-out}.lesson-card-meta{display:flex;align-items:center;gap:.5rem}.lesson-bloom-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.lesson-bloom-label{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.lesson-type-label{font-size:.6875rem;color:var(--text-tertiary);text-transform:capitalize;margin-left:auto}.lesson-question{display:flex;flex-direction:column;gap:.375rem}.lesson-question-label{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary)}.lesson-question p{font-size:1.0625rem;font-weight:500;color:var(--text-primary);line-height:1.5;margin:0}.lesson-divider{display:flex;align-items:center;gap:.75rem;color:var(--text-tertiary);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.lesson-divider:before,.lesson-divider:after{content:"";flex:1;height:1px;background:var(--border-color)}.lesson-answer{color:var(--text-secondary);font-size:.9375rem;line-height:1.7}.lesson-answer p{margin:0 0 .5rem}.lesson-answer p:last-child{margin-bottom:0}.lesson-nav{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.5rem 0}.btn-lesson-prev{padding:.625rem 1.25rem;background:transparent;color:var(--text-secondary);border:1px solid var(--border-color);border-radius:var(--radius);font-size:.875rem;cursor:pointer;transition:all .15s}.btn-lesson-prev:hover:not(:disabled){color:var(--text-primary);border-color:var(--text-secondary)}.btn-lesson-prev:disabled{opacity:.3;cursor:default}.btn-lesson-next{padding:.75rem 2rem;background:var(--surface);color:var(--accent);border:1px solid var(--accent);border-radius:var(--radius);font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .15s;margin-left:auto}.btn-lesson-next:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}.btn-lesson-finish{padding:.75rem 2rem;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s;margin-left:auto}.btn-lesson-finish:hover{transform:translateY(-1px)}.transition-icon{font-size:3rem;line-height:1}.btn-ghost{background:transparent;border:none;color:var(--text-tertiary);font-size:.875rem;cursor:pointer;padding:.375rem .75rem;border-radius:var(--radius);transition:color .15s}.btn-ghost:hover{color:var(--text-secondary)}.btn-ghost.btn-small{font-size:.75rem;padding:.25rem .5rem}:root{--react-pdf-text-layer: 1;--highlight-bg-color: rgba(180, 0, 170, 1);--highlight-selected-bg-color: rgba(0, 100, 0, 1)}@media screen and (forced-colors:active){:root{--highlight-bg-color: Highlight;--highlight-selected-bg-color: ButtonText}}[data-main-rotation="90"]{transform:rotate(90deg) translateY(-100%)}[data-main-rotation="180"]{transform:rotate(180deg) translate(-100%,-100%)}[data-main-rotation="270"]{transform:rotate(270deg) translate(-100%)}.textLayer{position:absolute;text-align:initial;top:0;right:0;bottom:0;left:0;overflow:hidden;line-height:1;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;z-index:2}.textLayer :is(span,br){color:transparent;position:absolute;white-space:pre;cursor:text;margin:0;transform-origin:0 0}.textLayer span.markedContent{top:0;height:0}.textLayer .highlight{margin:-1px;padding:1px;background-color:var(--highlight-bg-color);border-radius:4px}.textLayer .highlight.appended{position:initial}.textLayer .highlight.begin{border-radius:4px 0 0 4px}.textLayer .highlight.end{border-radius:0 4px 4px 0}.textLayer .highlight.middle{border-radius:0}.textLayer .highlight.selected{background-color:var(--highlight-selected-bg-color)}.textLayer br::selection{background:transparent}.textLayer .endOfContent{display:block;position:absolute;top:100%;right:0;bottom:0;left:0;z-index:-1;cursor:default;-webkit-user-select:none;user-select:none}.textLayer.selecting .endOfContent{top:0}.hiddenCanvasElement{position:absolute;top:0;left:0;width:0;height:0;display:none}:root{--react-pdf-annotation-layer: 1;--annotation-unfocused-field-background: url("data:image/svg+xml;charset=UTF-8,<svg width='1px' height='1px' xmlns='http://www.w3.org/2000/svg'><rect width='100%' height='100%' style='fill:rgba(0, 54, 255, 0.13);'/></svg>");--input-focus-border-color: Highlight;--input-focus-outline: 1px solid Canvas;--input-unfocused-border-color: transparent;--input-disabled-border-color: transparent;--input-hover-border-color: black;--link-outline: none}@media screen and (forced-colors:active){:root{--input-focus-border-color: CanvasText;--input-unfocused-border-color: ActiveText;--input-disabled-border-color: GrayText;--input-hover-border-color: Highlight;--link-outline: 1.5px solid LinkText}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid selectedItem}.annotationLayer .linkAnnotation:hover{-webkit-backdrop-filter:invert(100%);backdrop-filter:invert(100%)}}.annotationLayer{position:absolute;top:0;left:0;pointer-events:none;transform-origin:0 0;z-index:3}.annotationLayer[data-main-rotation="90"] .norotate{transform:rotate(270deg) translate(-100%)}.annotationLayer[data-main-rotation="180"] .norotate{transform:rotate(180deg) translate(-100%,-100%)}.annotationLayer[data-main-rotation="270"] .norotate{transform:rotate(90deg) translateY(-100%)}.annotationLayer canvas{position:absolute;width:100%;height:100%}.annotationLayer section{position:absolute;text-align:initial;pointer-events:auto;box-sizing:border-box;margin:0;transform-origin:0 0}.annotationLayer .linkAnnotation{outline:var(--link-outline)}.textLayer.selecting~.annotationLayer section{pointer-events:none}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a{position:absolute;font-size:1em;top:0;left:0;width:100%;height:100%}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a:hover{opacity:.2;background:#ff0;box-shadow:0 2px 10px #ff0}.annotationLayer .textAnnotation img{position:absolute;cursor:pointer;width:100%;height:100%;top:0;left:0}.annotationLayer .textWidgetAnnotation :is(input,textarea),.annotationLayer .choiceWidgetAnnotation select,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{background-image:var(--annotation-unfocused-field-background);border:2px solid var(--input-unfocused-border-color);box-sizing:border-box;font:calc(9px * var(--total-scale-factor)) sans-serif;height:100%;margin:0;vertical-align:top;width:100%}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid red}.annotationLayer .choiceWidgetAnnotation select option{padding:0}.annotationLayer .buttonWidgetAnnotation.radioButton input{border-radius:50%}.annotationLayer .textWidgetAnnotation textarea{resize:none}.annotationLayer .textWidgetAnnotation :is(input,textarea)[disabled],.annotationLayer .choiceWidgetAnnotation select[disabled],.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input[disabled]{background:none;border:2px solid var(--input-disabled-border-color);cursor:not-allowed}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:hover{border:2px solid var(--input-hover-border-color)}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation.checkBox input:hover{border-radius:2px}.annotationLayer .textWidgetAnnotation :is(input,textarea):focus,.annotationLayer .choiceWidgetAnnotation select:focus{background:none;border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) :focus{background-image:none;background-color:transparent}.annotationLayer .buttonWidgetAnnotation.checkBox :focus{border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.radioButton :focus{border:2px solid var(--input-focus-border-color);outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{background-color:CanvasText;content:"";display:block;position:absolute}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{height:80%;left:45%;width:1px}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{transform:rotate(45deg)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{transform:rotate(-45deg)}.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{border-radius:50%;height:50%;left:30%;top:20%;width:50%}.annotationLayer .textWidgetAnnotation input.comb{font-family:monospace;padding-left:2px;padding-right:0}.annotationLayer .textWidgetAnnotation input.comb:focus{width:103%}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{-webkit-appearance:none;-moz-appearance:none;appearance:none}.annotationLayer .popupTriggerArea{height:100%;width:100%}.annotationLayer .fileAttachmentAnnotation .popupTriggerArea{position:absolute}.annotationLayer .popupWrapper{position:absolute;font-size:calc(9px * var(--total-scale-factor));width:100%;min-width:calc(180px * var(--total-scale-factor));pointer-events:none}.annotationLayer .popup{position:absolute;max-width:calc(180px * var(--total-scale-factor));background-color:#ff9;box-shadow:0 calc(2px * var(--total-scale-factor)) calc(5px * var(--total-scale-factor)) #888;border-radius:calc(2px * var(--total-scale-factor));padding:calc(6px * var(--total-scale-factor));margin-left:calc(5px * var(--total-scale-factor));cursor:pointer;font:message-box;white-space:normal;word-wrap:break-word;pointer-events:auto}.annotationLayer .popup>*{font-size:calc(9px * var(--total-scale-factor))}.annotationLayer .popup h1{display:inline-block}.annotationLayer .popupDate{display:inline-block;margin-left:calc(5px * var(--total-scale-factor))}.annotationLayer .popupContent{border-top:1px solid rgba(51,51,51,1);margin-top:calc(2px * var(--total-scale-factor));padding-top:calc(2px * var(--total-scale-factor))}.annotationLayer .richText>*{white-space:pre-wrap;font-size:calc(9px * var(--total-scale-factor))}.annotationLayer .highlightAnnotation,.annotationLayer .underlineAnnotation,.annotationLayer .squigglyAnnotation,.annotationLayer .strikeoutAnnotation,.annotationLayer .freeTextAnnotation,.annotationLayer .lineAnnotation svg line,.annotationLayer .squareAnnotation svg rect,.annotationLayer .circleAnnotation svg ellipse,.annotationLayer .polylineAnnotation svg polyline,.annotationLayer .polygonAnnotation svg polygon,.annotationLayer .caretAnnotation,.annotationLayer .inkAnnotation svg polyline,.annotationLayer .stampAnnotation,.annotationLayer .fileAttachmentAnnotation{cursor:pointer}.annotationLayer section svg{position:absolute;width:100%;height:100%;top:0;left:0}.annotationLayer .annotationTextContent{position:absolute;width:100%;height:100%;opacity:0;color:transparent;-webkit-user-select:none;user-select:none;pointer-events:none}.annotationLayer .annotationTextContent span{width:100%;display:inline-block}.dialogue-session{max-width:700px;margin:0 auto;padding:2rem 1rem 0;display:flex;flex-direction:column;height:calc(100vh - 80px);gap:1rem}.dialogue-history{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:1rem;padding-bottom:1rem;scroll-behavior:smooth}.dialogue-message{display:flex;flex-direction:column}.dialogue-message.user{align-items:flex-end}.dialogue-message.tutor{align-items:flex-start}.dialogue-bubble{max-width:85%;border-radius:var(--radius-lg, 12px);padding:.75rem 1rem}.tutor-bubble{background:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius-lg, 12px) var(--radius-lg, 12px) var(--radius-lg, 12px) 4px}.user-bubble{background:color-mix(in srgb,var(--accent) 10%,transparent);border:1px solid color-mix(in srgb,var(--accent) 25%,transparent);border-radius:var(--radius-lg, 12px) var(--radius-lg, 12px) 4px var(--radius-lg, 12px)}.dialogue-bubble-meta{display:flex;align-items:center;gap:.5rem;margin-bottom:.375rem}.dialogue-role-label{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary)}.dialogue-bubble-text p{margin:0 0 .375rem;font-size:.9375rem;line-height:1.6;color:var(--text-primary)}.dialogue-bubble-text p:last-child{margin-bottom:0}.dialogue-bubble-text br{display:block;margin:.25rem 0;content:""}.dialogue-thinking{font-size:.875rem;color:var(--text-tertiary);font-style:italic;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}.dialogue-bloom-chip{font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:.125rem .4375rem;border-radius:8px;border:1px solid currentColor;opacity:.9}.dialogue-verdict-chip{font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:.125rem .4375rem;border-radius:8px}.verdict-correct{background:color-mix(in srgb,var(--success) 12%,transparent);color:var(--success)}.verdict-partial{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--warning)}.verdict-incorrect{background:color-mix(in srgb,var(--error) 12%,transparent);color:var(--error)}.dialogue-input-area{border-top:1px solid var(--border-color);padding:.875rem 0 1rem;display:flex;flex-direction:column;gap:.375rem}.dialogue-input-row{display:flex;gap:.625rem;align-items:flex-end}.dialogue-textarea{flex:1;background:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius);color:var(--text-primary);font-size:.9375rem;line-height:1.5;padding:.625rem .875rem;resize:none;transition:border-color .15s;font-family:inherit}.dialogue-textarea:focus{outline:none;border-color:var(--accent)}.dialogue-textarea:disabled{opacity:.5;cursor:not-allowed}.dialogue-send-btn{padding:.625rem 1.25rem;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap;flex-shrink:0;align-self:flex-end}.dialogue-send-btn:hover:not(:disabled){transform:translateY(-1px);opacity:.9}.dialogue-send-btn:disabled{opacity:.4;cursor:not-allowed}.dialogue-char-count{font-size:.75rem;text-align:right;padding-right:.25rem}.dialogue-error{font-size:.8125rem;color:var(--error, #ff3366);margin:0}.dialogue-complete{max-width:560px;margin:3rem auto;text-align:center;display:flex;flex-direction:column;gap:1.25rem;align-items:center;animation:fade-in .5s ease-out;padding:0 1rem 2rem}.dialogue-score-big{font-size:3.5rem;font-weight:800;line-height:1;letter-spacing:-.02em}.dialogue-card-table{width:100%;border:1px solid var(--border-color);border-radius:var(--radius-lg, 12px);overflow:hidden;text-align:left}.dialogue-card-table-header,.dialogue-card-table-row{display:grid;grid-template-columns:1fr 60px 100px;gap:.75rem;padding:.5rem .875rem;align-items:center}.dialogue-card-table-header{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);background:#ffffff05;border-bottom:1px solid var(--border-color)}.dialogue-card-table-row{font-size:.875rem;border-bottom:1px solid var(--border-color)}.dialogue-card-table-row:last-child{border-bottom:none}.dialogue-card-front{color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dialogue-workspace{display:flex;flex-direction:column;height:calc(100vh - 60px);overflow:hidden}.workspace-header{display:flex;align-items:center;gap:1rem;padding:.5rem 1rem;border-bottom:1px solid var(--border-color);flex-shrink:0}.workspace-header-center{flex:1;min-width:0;display:flex;flex-direction:column;gap:.3rem}.workspace-path-name{font-size:.75rem;color:var(--text-secondary);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-collapse-btn{background:none;border:1px solid var(--border-color);border-radius:6px;color:var(--text-tertiary);font-size:.75rem;padding:.25rem .5rem;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:color .15s,border-color .15s}.workspace-collapse-btn:hover{color:var(--text-primary);border-color:var(--text-secondary)}.workspace-body{display:flex;flex:1;overflow:hidden}.workspace-sidebar{width:220px;flex-shrink:0;border-right:1px solid var(--border-color);overflow-y:auto;padding:.75rem 0;transition:width .2s ease,opacity .2s ease}.workspace-sidebar.collapsed{width:0;opacity:0;overflow:hidden;padding:0}.sidebar-title{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);padding:0 .875rem .5rem}.sidebar-module{display:flex;align-items:flex-start;gap:.5rem;padding:.35rem .875rem;font-size:.8125rem;color:var(--text-secondary);border-radius:6px;margin:0 .25rem;cursor:default;line-height:1.4}.sidebar-module.active{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}.sidebar-module-idx{font-size:.6875rem;font-weight:700;color:var(--text-tertiary);min-width:1.25rem;padding-top:.1rem;flex-shrink:0}.sidebar-module.active .sidebar-module-idx{color:var(--accent);opacity:.7}.source-pane{width:35%;flex-shrink:0;border-right:1px solid var(--border-color);display:flex;flex-direction:column;overflow:hidden}.source-pane-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem .875rem;border-bottom:1px solid var(--border-color);flex-shrink:0}.source-pane-label{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary)}.source-pane-controls{display:flex;align-items:center;gap:.25rem}.source-view-toggle{font-size:.6875rem;padding:.2rem .5rem;border:1px solid var(--border-color);border-radius:6px;background:transparent;color:var(--text-tertiary);cursor:pointer}.source-view-toggle.active{background:var(--accent);border-color:var(--accent);color:#000;font-weight:600}.source-view-pdf-btn{font-size:.75rem;padding:.2rem .5rem;border:1px solid var(--border-color);border-radius:6px;background:transparent;color:var(--text-tertiary);text-decoration:none;cursor:pointer;opacity:.7;transition:opacity .15s}.source-view-pdf-btn:hover{opacity:1;color:var(--accent);border-color:var(--accent)}.pdf-viewer-container{flex:1;overflow-y:auto;display:flex;flex-direction:column;align-items:center;background:var(--bg);padding:.5rem}.pdf-page-indicator{width:100%;font-size:.6875rem;color:var(--text-tertiary);padding:.25rem .5rem;margin-bottom:.25rem}.pdf-page-note{color:var(--accent);margin-left:.25rem}.pdf-loading,.pdf-error{padding:2rem;color:var(--text-tertiary);font-size:.875rem;text-align:center}.pdf-highlight{background:color-mix(in srgb,var(--success) 35%,transparent);border-radius:2px}.react-pdf__Page{width:100%!important}.react-pdf__Page canvas{width:100%!important;height:auto!important}.source-pane-chunks{flex:1;overflow-y:auto;padding:.75rem;display:flex;flex-direction:column;gap:.75rem}.source-chunk{padding:.625rem .75rem;background:var(--surface);border:1px solid var(--border-color);border-radius:8px}.source-chunk-primary{border-color:var(--accent);border-left-width:3px}.source-chunk-meta{display:flex;align-items:center;gap:.5rem;margin-bottom:.375rem;flex-wrap:wrap}.source-chunk-anchor{font-size:.6875rem;font-weight:700;color:var(--accent);letter-spacing:.03em}.source-chunk-chapter{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary)}.source-chunk-page{font-size:.6875rem;color:var(--text-tertiary);margin-left:auto}.source-chunk-text{font-size:.875rem;line-height:1.6;color:var(--text-secondary);margin:0;white-space:pre-wrap}.source-pane-loading,.source-pane-empty{width:35%;flex-shrink:0;border-right:1px solid var(--border-color);padding:2rem 1rem;text-align:center;font-size:.875rem;color:var(--text-tertiary);display:flex;align-items:center;justify-content:center}.workspace-dialogue{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.workspace-dialogue .dialogue-history{flex:1;overflow-y:auto;padding:1rem}.workspace-dialogue .dialogue-input-area{padding:.75rem 1rem 1rem;flex-shrink:0}.etch-state{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center}.etch-state[data-compact=true]{flex:none;padding:var(--space-4) var(--space-2)}.etch-state[data-compact=true] .etch-empty{padding:var(--space-4) var(--space-2)}.etch-state__title{margin:0;color:var(--color-text-secondary);font-size:var(--text-sm)}.etch-state__hint{max-width:46ch;margin:0 auto;color:var(--color-text-secondary);font-size:var(--text-sm);line-height:var(--leading-normal)}.etch-state__detail{max-width:46ch;margin:var(--space-2) auto 0;overflow-wrap:anywhere;color:var(--color-text-tertiary);font-family:var(--font-mono);font-size:var(--text-xs)}.etch-state__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2)}.etch-state-banner{padding:var(--space-3) var(--space-4) 0}.etch-state-banner__body{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.etch-state-banner__text{flex:1;min-width:12ch}.etch-state__meta{margin:0;color:var(--color-text-tertiary);font-size:var(--text-xs)}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.loading-spinner-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2)}.loading-spinner{position:relative}.spinner-ring{border:3px solid var(--color-border-subtle);border-top-color:var(--color-action-primary);border-radius:50%;animation:spin .8s linear infinite}.spinner-small .spinner-ring{width:16px;height:16px;border-width:2px}.spinner-medium .spinner-ring{width:24px;height:24px}.spinner-large .spinner-ring{width:40px;height:40px;border-width:4px}.spinner-text{color:var(--color-text-secondary);font-size:var(--text-sm)}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner-ring{animation-duration:2.4s}}.graph-panel{display:flex;flex-direction:column;height:100%;overflow:hidden;background:var(--bg-primary, #ffffff)}.graph-controls{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;border-bottom:1px solid var(--border-color, #e5e7eb);background:var(--bg-secondary, #f9fafb);flex-shrink:0;flex-wrap:wrap}.viz-selector{display:flex;gap:.25rem;padding:.25rem;background:var(--bg-tertiary, #e5e7eb);border-radius:8px}.viz-option{display:flex;align-items:center;gap:.375rem;padding:.5rem .875rem;font-size:.8125rem;font-weight:500;color:var(--text-secondary, #6b7280);background:transparent;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease}.viz-option:hover{color:var(--text-primary, #1f2937)}.viz-option.active{color:var(--text-primary, #1f2937);background:var(--bg-primary, #ffffff);box-shadow:0 1px 3px #0000001a}.viz-option svg{flex-shrink:0}.arch-mode-selector{display:flex;gap:.125rem;padding:.125rem;background:var(--bg-primary, #ffffff);border:1px solid var(--border-color, #e5e7eb);border-radius:6px}.arch-mode-option{padding:.375rem .75rem;font-size:.75rem;font-weight:500;color:var(--text-secondary, #6b7280);background:transparent;border:none;border-radius:4px;cursor:pointer;transition:all .15s ease}.arch-mode-option:hover{color:var(--text-primary, #1f2937);background:var(--bg-tertiary, #f3f4f6)}.arch-mode-option.active{color:var(--primary-color, #3b82f6);background:#3b82f61a}.dep-filters{display:flex;align-items:center;gap:.75rem;padding:0 .5rem}.filter-checkbox{display:flex;align-items:center;gap:.375rem;padding:.375rem .5rem;font-size:.75rem;font-weight:500;color:var(--text-secondary, #6b7280);background:transparent;border:1px solid transparent;border-radius:4px;cursor:pointer;transition:all .15s ease;-webkit-user-select:none;user-select:none}.filter-checkbox:hover{background:var(--bg-tertiary, #f3f4f6)}.filter-checkbox.active{color:var(--primary-color, #3b82f6);background:#3b82f614;border-color:#3b82f633}.filter-checkbox input[type=checkbox]{width:14px;height:14px;margin:0;accent-color:var(--primary-color, #3b82f6);cursor:pointer}.filter-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 .25rem;font-size:.625rem;font-weight:600;background:var(--bg-tertiary, #e5e7eb);border-radius:9px;margin-left:.25rem}.filter-checkbox.active .filter-count{background:var(--primary-color, #3b82f6);color:#fff}.reset-view-button{padding:.375rem .75rem;font-size:.75rem;font-weight:500;color:var(--text-secondary, #6b7280);background:var(--bg-primary, #ffffff);border:1px solid var(--border-color, #e5e7eb);border-radius:6px;cursor:pointer;transition:all .15s ease}.reset-view-button:hover{border-color:var(--primary-color, #3b82f6);color:var(--primary-color, #3b82f6)}.target-indicator{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;background:var(--bg-tertiary, #e5e7eb);border-radius:6px;font-size:.75rem}.target-label{color:var(--text-secondary, #6b7280)}.target-symbol{font-family:JetBrains Mono,SF Mono,monospace;font-weight:500;color:var(--primary-color, #3b82f6);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clear-target{display:flex;align-items:center;justify-content:center;padding:.25rem;background:transparent;border:none;border-radius:4px;color:var(--text-secondary, #6b7280);cursor:pointer;transition:all .15s}.clear-target:hover{background:var(--bg-hover, #d1d5db);color:var(--text-primary, #1f2937)}.graph-breadcrumb{display:flex;align-items:center;gap:.125rem;padding:.375rem .5rem;background:var(--bg-tertiary, #e5e7eb);border-radius:6px;font-size:.75rem;overflow-x:auto;max-width:400px}.graph-breadcrumb::-webkit-scrollbar{height:4px}.graph-breadcrumb::-webkit-scrollbar-thumb{background:var(--border-color, #d1d5db);border-radius:2px}.breadcrumb-segment{display:flex;align-items:center}.breadcrumb-separator{flex-shrink:0;color:var(--text-tertiary, #9ca3af);margin:0 .125rem}.breadcrumb-item{display:flex;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.75rem;font-weight:500;color:var(--text-secondary, #6b7280);background:transparent;border:none;border-radius:4px;cursor:pointer;transition:all .15s;white-space:nowrap}.breadcrumb-item:hover:not(:disabled){background:var(--bg-primary, #ffffff);color:var(--primary-color, #3b82f6)}.breadcrumb-item:disabled{cursor:default}.breadcrumb-root{color:var(--text-primary, #1f2937)}.breadcrumb-root svg{flex-shrink:0}.breadcrumb-current{color:var(--primary-color, #3b82f6);font-weight:600}.refresh-button{display:flex;align-items:center;justify-content:center;padding:.5rem;margin-left:auto;background:transparent;border:1px solid var(--border-color, #e5e7eb);border-radius:6px;color:var(--text-secondary, #6b7280);cursor:pointer;transition:all .15s}.refresh-button:hover:not(:disabled){background:var(--bg-tertiary, #e5e7eb);color:var(--text-primary, #1f2937)}.refresh-button:disabled{opacity:.5;cursor:not-allowed}.graph-canvas-wrapper{flex:1;position:relative;min-height:0;display:flex}.graph-canvas-wrapper .graph-canvas-area{flex:1;position:relative;min-width:0}.edge-details-sidebar{width:280px;background:var(--bg-primary, #ffffff);border-left:1px solid var(--border-color, #e5e7eb);display:flex;flex-direction:column;flex-shrink:0;overflow:hidden}.edge-details-sidebar .sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border-color, #e5e7eb);background:var(--bg-secondary, #f9fafb)}.edge-details-sidebar .sidebar-header h3{font-size:.875rem;font-weight:600;margin:0;color:var(--text-primary, #1f2937)}.edge-details-sidebar .close-button{display:flex;align-items:center;justify-content:center;padding:.25rem;background:transparent;border:none;border-radius:4px;color:var(--text-secondary, #6b7280);cursor:pointer;transition:all .15s}.edge-details-sidebar .close-button:hover{background:var(--bg-tertiary, #e5e7eb);color:var(--text-primary, #1f2937)}.edge-details-sidebar .sidebar-content{flex:1;overflow-y:auto;padding:1rem}.edge-details-sidebar .detail-section{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color, #e5e7eb)}.edge-details-sidebar .detail-section:last-child{border-bottom:none;margin-bottom:0}.edge-details-sidebar .relationship-flow{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem;background:var(--bg-secondary, #f9fafb);border-radius:8px}.edge-details-sidebar .module-name{font-family:JetBrains Mono,SF Mono,monospace;font-size:.8125rem;font-weight:500;color:var(--text-primary, #1f2937);padding:.25rem .5rem;background:var(--bg-primary, #ffffff);border:1px solid var(--border-color, #e5e7eb);border-radius:4px;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.edge-details-sidebar .arrow{color:var(--text-tertiary, #9ca3af);flex-shrink:0}.edge-details-sidebar .detail-row{display:flex;justify-content:space-between;align-items:center;padding:.375rem 0}.edge-details-sidebar .detail-label{font-size:.75rem;color:var(--text-secondary, #6b7280)}.edge-details-sidebar .detail-value{font-size:.8125rem;font-weight:500;color:var(--text-primary, #1f2937)}.edge-details-sidebar .cross-boundary-value{display:flex;align-items:center;gap:.375rem}.edge-details-sidebar .layer-badge{padding:2px 6px;font-size:.6875rem;font-weight:600;text-transform:uppercase;color:#fff;border-radius:3px}.edge-details-sidebar .cross-arrow{color:var(--text-secondary, #6b7280);font-size:.75rem}.edge-details-sidebar .cycle-warning{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:.75rem;margin-bottom:1rem}.edge-details-sidebar .warning-badge{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;font-weight:600;color:#dc2626;margin-bottom:.375rem}.edge-details-sidebar .warning-text{font-size:.75rem;color:#991b1b;margin:0}.edge-details-sidebar .section-header{margin-bottom:.5rem}.edge-details-sidebar .section-title{font-size:.6875rem;font-weight:600;text-transform:uppercase;color:var(--text-tertiary, #9ca3af);letter-spacing:.025em}.edge-details-sidebar .evidence-intro{font-size:.75rem;color:var(--text-secondary, #6b7280);margin:0 0 .5rem}.edge-details-sidebar .evidence-list{list-style:none;padding:0;margin:0 0 .75rem}.edge-details-sidebar .evidence-item{display:flex;align-items:center;padding:.25rem 0}.edge-details-sidebar .evidence-item:before{content:"•";color:var(--text-tertiary, #9ca3af);margin-right:.5rem}.edge-details-sidebar .evidence-item code{font-family:JetBrains Mono,SF Mono,monospace;font-size:.75rem;color:var(--primary-color, #3b82f6);background:#3b82f614;padding:.125rem .375rem;border-radius:3px}.edge-details-sidebar .evidence-more{font-size:.75rem;color:var(--text-tertiary, #9ca3af);font-style:italic;padding:.25rem 0}.edge-details-sidebar .evidence-note{display:flex;align-items:flex-start;gap:.375rem;font-size:.6875rem;color:var(--text-tertiary, #9ca3af);margin:0 0 .5rem;line-height:1.4}.edge-details-sidebar .evidence-note svg{flex-shrink:0;margin-top:.125rem}.edge-details-sidebar .confidence-badge{display:inline-block;font-size:.6875rem;font-weight:500;color:#b45309;background:#eab30826;padding:.25rem .5rem;border-radius:4px}.edge-details-sidebar .no-evidence{padding:.75rem;background:var(--bg-secondary, #f9fafb);border-radius:8px}.edge-details-sidebar .no-evidence-text{font-size:.75rem;color:var(--text-secondary, #6b7280);margin:0;text-align:center}.edge-details-sidebar .sidebar-actions{display:flex;flex-direction:column;gap:.5rem;padding-top:.5rem}.edge-details-sidebar .action-button{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1rem;font-size:.8125rem;font-weight:500;border-radius:6px;cursor:pointer;transition:all .15s}.edge-details-sidebar .action-button.primary{background:var(--primary-color, #3b82f6);color:#fff;border:none}.edge-details-sidebar .action-button.primary:hover{background:#2563eb}.edge-details-sidebar .action-button.secondary{background:transparent;color:var(--text-primary, #1f2937);border:1px solid var(--border-color, #e5e7eb)}.edge-details-sidebar .action-button.secondary:hover{border-color:var(--primary-color, #3b82f6);color:var(--primary-color, #3b82f6)}.edge-details-sidebar .node-detail-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.edge-details-sidebar .node-detail-name{font-size:1rem;font-weight:600;color:var(--text-primary, #1f2937)}.edge-details-sidebar .node-detail-path{font-size:.75rem;font-family:JetBrains Mono,SF Mono,monospace;color:var(--text-secondary, #6b7280);word-break:break-all}.edge-details-sidebar .connection-group{margin-bottom:.75rem}.edge-details-sidebar .connection-label{display:block;font-size:.75rem;font-weight:500;color:var(--text-secondary, #6b7280);margin-bottom:.25rem}.edge-details-sidebar .connection-list{list-style:none;padding:0;margin:0}.edge-details-sidebar .connection-list li{font-size:.8125rem;font-family:JetBrains Mono,SF Mono,monospace;color:var(--text-primary, #1f2937);padding:.125rem 0}.edge-details-sidebar .connection-list li.more{color:var(--text-tertiary, #9ca3af);font-family:inherit}.edge-details-sidebar .coupling-low{color:#22c55e}.edge-details-sidebar .coupling-medium{color:#eab308}.edge-details-sidebar .coupling-high{color:#f97316}.edge-details-sidebar .coupling-critical{color:#ef4444}.graph-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#ffffffe6;z-index:10}.graph-error{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:2rem;text-align:center}.graph-error .error-icon{color:#ef4444;margin-bottom:1rem}.graph-error .error-message{color:var(--text-secondary, #6b7280);margin-bottom:1rem}.graph-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:2rem;text-align:center}.graph-empty-state .empty-icon{color:var(--text-tertiary, #9ca3af);margin-bottom:1rem}.graph-empty-state .empty-title{font-size:1rem;font-weight:500;color:var(--text-primary, #1f2937);margin:0 0 .5rem}.graph-empty-state .empty-hint{font-size:.875rem;color:var(--text-secondary, #6b7280);max-width:300px;margin:0 0 1rem}.retry-button{padding:.5rem 1rem;font-size:.875rem;font-weight:500;color:var(--primary-color, #3b82f6);background:transparent;border:1px solid var(--primary-color, #3b82f6);border-radius:6px;cursor:pointer;transition:all .15s}.retry-button:hover{background:var(--primary-color, #3b82f6);color:#fff}.graph-node{position:relative;display:flex;align-items:center;gap:.5rem;padding:.625rem .875rem;background:var(--bg-primary, #ffffff);border:2px solid var(--border-color, #e5e7eb);border-radius:8px;font-size:.875rem;transition:all .15s ease;cursor:pointer;min-width:160px}.graph-node:hover{border-color:var(--primary-color, #3b82f6);box-shadow:0 4px 12px #3b82f626}.graph-node.selected{border-color:var(--primary-color, #3b82f6);background:#eff6ff}.graph-node .node-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--text-secondary, #6b7280)}.graph-node .node-content{display:flex;flex-direction:column;gap:.125rem;overflow:hidden;flex:1}.graph-node .node-header{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;min-width:0}.graph-node .node-label{font-weight:600;font-size:.9375rem;color:var(--text-primary, #1f2937);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.graph-node .role-badge{flex-shrink:0;padding:1px 6px;font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em;color:#fff;border-radius:3px;white-space:nowrap}.graph-node .node-meta,.graph-node .node-signature,.graph-node .node-file,.graph-node .node-path{font-size:.6875rem;color:var(--text-secondary, #6b7280);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.graph-node .node-badge{display:inline-block;padding:.125rem .375rem;margin-left:.375rem;font-size:.625rem;font-weight:500;text-transform:uppercase;background:var(--bg-tertiary, #e5e7eb);border-radius:4px}.module-node{border-left:4px solid #8b5cf6}.module-node .node-icon{color:#8b5cf6}.node-coupling{display:flex;align-items:center;gap:.5rem;margin-top:.25rem}.coupling-metric{display:inline-flex;align-items:center;gap:.25rem;padding:.125rem .375rem;font-size:.625rem;font-weight:500;background:var(--bg-tertiary, #e5e7eb);border-radius:3px;color:var(--text-secondary, #6b7280)}.coupling-metric svg{flex-shrink:0}.cycle-badge{display:inline-flex;align-items:center;padding:.125rem .375rem;font-size:.5625rem;font-weight:600;text-transform:uppercase;background:#fef2f2;color:#dc2626;border-radius:3px;border:1px solid #fecaca}.module-node.coupling-low{border-left-color:#22c55e}.module-node.coupling-low .node-icon{color:#22c55e}.module-node.coupling-medium{border-left-color:#eab308}.module-node.coupling-medium .node-icon{color:#eab308}.module-node.coupling-high{border-left-color:#f97316}.module-node.coupling-high .node-icon{color:#f97316}.module-node.coupling-critical{border-left-color:#ef4444}.module-node.coupling-critical .node-icon{color:#ef4444}.module-node.in-cycle{background:#fef2f2;border-color:#fecaca;border-left-color:#ef4444}.module-node.in-cycle .node-icon{color:#ef4444}.module-node.in-cycle .node-label{color:#dc2626}.graph-node.cycle-highlight{box-shadow:0 0 0 3px #ef44444d,0 4px 12px #ef444433}.graph-node.fan-in-highlight{box-shadow:0 0 0 3px #f973164d,0 4px 12px #f9731633}.graph-node.cycle-highlight.fan-in-highlight{box-shadow:0 0 0 3px #ef44444d,0 4px 12px #ef444433}.function-node{border-left:4px solid #3b82f6}.function-node .node-icon{color:#3b82f6}.function-node.kind-class{border-left-color:var(--warning)}.function-node.kind-class .node-icon{color:var(--warning)}.function-node.kind-method{border-left-color:#22c55e}.function-node.kind-method .node-icon{color:#22c55e}.function-node.is-root{background:#fefce8;border-color:#facc15;border-left-color:#facc15}.function-node.direction-caller{background:#f0fdf4}.function-node.direction-callee{background:#fffbeb}.file-node{border-left:4px solid #64748b}.file-node .node-icon{color:#64748b}.file-node.is-directory{border-left-color:#8b5cf6}.file-node.is-directory .node-icon{color:#8b5cf6}.file-node.coupling-low{border-left-color:#22c55e}.file-node.coupling-low .node-icon{color:#22c55e}.file-node.coupling-medium{border-left-color:#eab308}.file-node.coupling-medium .node-icon{color:#eab308}.file-node.coupling-high{border-left-color:#f97316}.file-node.coupling-high .node-icon{color:#f97316}.file-node.coupling-critical{border-left-color:#ef4444}.file-node.coupling-critical .node-icon{color:#ef4444}.file-node.in-cycle{background:#fef2f2;border-color:#fecaca;border-left-color:#ef4444}.file-node.in-cycle .node-icon{color:#ef4444}.file-node.in-cycle .node-label{color:#dc2626}.node-metrics{display:flex;gap:.375rem;margin-top:.25rem}.node-metrics .metric{display:inline-flex;align-items:center;padding:.125rem .375rem;font-size:.625rem;font-weight:500;background:var(--bg-tertiary, #e5e7eb);border-radius:3px;color:var(--text-secondary, #6b7280)}.node-metrics .metric-complexity{background:#eab30826;color:#b45309}.file-node.complexity-low{border-left-color:#22c55e}.file-node.complexity-medium{border-left-color:#eab308}.file-node.complexity-high{border-left-color:#f97316}.file-node.complexity-critical{border-left-color:#ef4444}.file-node.churn-low{border-left-color:#22c55e}.file-node.churn-medium{border-left-color:#3b82f6}.file-node.churn-high{border-left-color:#f97316}.file-node.churn-critical{border-left-color:#ef4444}.file-node.loc-low{border-left-color:#22c55e}.file-node.loc-medium{border-left-color:#3b82f6}.file-node.loc-high{border-left-color:#f97316}.file-node.loc-critical{border-left-color:#ef4444}.color-mode-selector{display:flex;align-items:center;gap:.5rem;margin-left:auto}.color-mode-label{font-size:.75rem;color:var(--text-secondary, #6b7280)}.color-mode-select{padding:.375rem .625rem;font-size:.75rem;font-weight:500;color:var(--text-primary, #1f2937);background:var(--bg-primary, #ffffff);border:1px solid var(--border-color, #e5e7eb);border-radius:6px;cursor:pointer;transition:border-color .15s}.color-mode-select:hover{border-color:var(--primary-color, #3b82f6)}.color-mode-select:focus{outline:none;border-color:var(--primary-color, #3b82f6);box-shadow:0 0 0 2px #3b82f61a}.graph-search{display:flex;align-items:center;gap:.5rem;padding:.375rem .625rem;background:var(--bg-primary, #ffffff);border:1px solid var(--border-color, #e5e7eb);border-radius:6px;transition:border-color .15s,box-shadow .15s}.graph-search:focus-within{border-color:var(--primary-color, #3b82f6);box-shadow:0 0 0 2px #3b82f61a}.graph-search .search-icon{flex-shrink:0;color:var(--text-tertiary, #9ca3af)}.graph-search .search-input{flex:1;min-width:120px;max-width:180px;padding:0;font-size:.75rem;color:var(--text-primary, #1f2937);background:transparent;border:none;outline:none}.graph-search .search-input::placeholder{color:var(--text-tertiary, #9ca3af)}.graph-search .search-clear{display:flex;align-items:center;justify-content:center;padding:.125rem;background:transparent;border:none;border-radius:3px;color:var(--text-tertiary, #9ca3af);cursor:pointer;transition:all .15s}.graph-search .search-clear:hover{background:var(--bg-tertiary, #e5e7eb);color:var(--text-secondary, #6b7280)}.graph-node.search-dimmed{opacity:.35;filter:grayscale(.5)}.graph-node.search-match{border-color:var(--primary-color, #3b82f6);box-shadow:0 0 0 2px #3b82f640}.graph-node.search-match .node-label{color:var(--primary-color, #3b82f6)}.node-tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:8px;padding:0;background:var(--bg-primary, #ffffff);border:1px solid var(--border-color, #e5e7eb);border-radius:8px;box-shadow:0 4px 12px #00000026;font-size:.75rem;white-space:nowrap;z-index:1000;opacity:0;visibility:hidden;transition:opacity .15s,visibility .15s;pointer-events:none}.graph-node:hover .node-tooltip{opacity:1;visibility:visible}.node-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:var(--border-color, #e5e7eb)}.tooltip-header{padding:.5rem .75rem;font-weight:600;color:var(--text-primary, #1f2937);background:var(--bg-secondary, #f9fafb);border-bottom:1px solid var(--border-color, #e5e7eb);border-radius:8px 8px 0 0;font-family:JetBrains Mono,SF Mono,monospace;font-size:.6875rem;max-width:250px;overflow:hidden;text-overflow:ellipsis}.tooltip-content{padding:.5rem .75rem}.tooltip-row{display:flex;justify-content:space-between;gap:1rem;padding:.25rem 0}.tooltip-row:not(:last-child){border-bottom:1px solid var(--border-color, #e5e7eb)}.tooltip-label{color:var(--text-secondary, #6b7280)}.tooltip-value{font-weight:500;color:var(--text-primary, #1f2937);font-family:JetBrains Mono,SF Mono,monospace}.react-flow__node{font-family:inherit}.react-flow__handle{width:8px;height:8px;background:var(--border-color, #e5e7eb);border:2px solid var(--bg-primary, #ffffff)}.react-flow__handle:hover{background:var(--primary-color, #3b82f6)}.react-flow__edge-path{stroke-width:2}.react-flow__controls{box-shadow:0 2px 8px #0000001a;border-radius:8px;border:1px solid var(--border-color, #e5e7eb)}.react-flow__controls-button{border:none;background:var(--bg-primary, #ffffff)}.react-flow__controls-button:hover{background:var(--bg-secondary, #f9fafb)}.react-flow__edge{cursor:pointer}.react-flow__edge:hover .react-flow__edge-path{stroke-width:3px}.react-flow__edge.selected-edge .react-flow__edge-path{stroke:#3b82f6;stroke-width:4px;filter:drop-shadow(0 0 6px rgba(59,130,246,.6))}.react-flow__edge.cross-boundary .react-flow__edge-path{stroke:#f97316;stroke-dasharray:8,4;stroke-width:2px}.react-flow__edge.cross-boundary.selected-edge .react-flow__edge-path{stroke:#f97316;stroke-dasharray:8,4;stroke-width:4px;filter:drop-shadow(0 0 6px rgba(249,115,22,.6))}[data-theme=ink] .graph-panel{background:var(--bg-primary, #1f2937)}[data-theme=ink] .graph-controls{background:var(--bg-secondary, #111827);border-color:var(--border-color, #374151)}[data-theme=ink] .viz-selector{background:var(--bg-tertiary, #374151)}[data-theme=ink] .viz-option.active{background:var(--bg-primary, #1f2937)}[data-theme=ink] .graph-node{background:var(--bg-secondary, #111827);border-color:var(--border-color, #374151)}[data-theme=ink] .graph-node.selected{background:#1e3a5f}[data-theme=ink] .graph-loading{background:#111827e6}[data-theme=ink] .graph-search{background:var(--bg-secondary, #111827);border-color:var(--border-color, #374151)}[data-theme=ink] .graph-search .search-input{color:var(--text-primary, #f3f4f6)}[data-theme=ink] .node-tooltip{background:var(--bg-secondary, #111827);border-color:var(--border-color, #374151)}[data-theme=ink] .tooltip-header{background:var(--bg-tertiary, #1f2937);border-color:var(--border-color, #374151)}[data-theme=ink] .graph-breadcrumb{background:var(--bg-tertiary, #374151)}[data-theme=ink] .breadcrumb-item:hover:not(:disabled){background:var(--bg-secondary, #111827)}[data-theme=ink] .arch-mode-selector{background:var(--bg-secondary, #111827);border-color:var(--border-color, #374151)}[data-theme=ink] .arch-mode-option:hover{background:var(--bg-tertiary, #374151)}[data-theme=ink] .arch-mode-option.active{background:#3b82f633}[data-theme=ink] .coupling-metric{background:var(--bg-tertiary, #374151);color:var(--text-secondary, #9ca3af)}[data-theme=ink] .cycle-badge{background:#ef444433;border-color:#ef44444d}[data-theme=ink] .module-node.in-cycle{background:#ef444426;border-color:#ef44444d}[data-theme=ink] .dep-filters .filter-checkbox{color:var(--text-secondary, #9ca3af)}[data-theme=ink] .dep-filters .filter-checkbox:hover{background:var(--bg-tertiary, #374151)}[data-theme=ink] .dep-filters .filter-checkbox.active{color:var(--primary-color, #3b82f6);background:#3b82f626}[data-theme=ink] .filter-count{background:var(--bg-tertiary, #374151);color:var(--text-secondary, #9ca3af)}[data-theme=ink] .reset-view-button{background:var(--bg-secondary, #111827);border-color:var(--border-color, #374151);color:var(--text-secondary, #9ca3af)}[data-theme=ink] .edge-details-sidebar{background:var(--bg-primary, #1f2937);border-left-color:var(--border-color, #374151)}[data-theme=ink] .edge-details-sidebar .sidebar-header{background:var(--bg-secondary, #111827);border-bottom-color:var(--border-color, #374151)}[data-theme=ink] .edge-details-sidebar .sidebar-header h3{color:var(--text-primary, #f3f4f6)}[data-theme=ink] .edge-details-sidebar .close-button{color:var(--text-secondary, #9ca3af)}[data-theme=ink] .edge-details-sidebar .close-button:hover{background:var(--bg-tertiary, #374151);color:var(--text-primary, #f3f4f6)}[data-theme=ink] .edge-details-sidebar .detail-section{border-bottom-color:var(--border-color, #374151)}[data-theme=ink] .edge-details-sidebar .relationship-flow{background:var(--bg-secondary, #111827)}[data-theme=ink] .edge-details-sidebar .module-name{color:var(--text-primary, #f3f4f6);background:var(--bg-tertiary, #374151);border-color:var(--border-color, #4b5563)}[data-theme=ink] .edge-details-sidebar .detail-value{color:var(--text-primary, #f3f4f6)}[data-theme=ink] .edge-details-sidebar .cycle-warning{background:#ef444426;border-color:#ef44444d}[data-theme=ink] .edge-details-sidebar .evidence-item code{background:#3b82f626}[data-theme=ink] .edge-details-sidebar .no-evidence{background:var(--bg-secondary, #111827)}[data-theme=ink] .edge-details-sidebar .action-button.secondary{color:var(--text-primary, #f3f4f6);border-color:var(--border-color, #374151)}[data-theme=ink] .edge-details-sidebar .action-button.secondary:hover{border-color:var(--primary-color, #3b82f6)}.details-sidebar{width:300px;background:var(--bg-primary, #ffffff);border-left:1px solid var(--border-color, #e5e7eb);display:flex;flex-direction:column;flex-shrink:0;overflow:hidden}.details-sidebar .sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid var(--border-color, #e5e7eb)}.details-sidebar .sidebar-header h3{font-size:.9375rem;font-weight:600;margin:0;color:var(--text-primary, #1f2937)}.details-sidebar .close-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:6px;color:var(--text-tertiary, #9ca3af);cursor:pointer;transition:all .15s}.details-sidebar .close-btn:hover{background:var(--bg-tertiary, #f3f4f6);color:var(--text-primary, #1f2937)}.details-sidebar .sidebar-body{flex:1;overflow-y:auto;padding:1rem}.details-sidebar .relationship-title{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:1rem;margin-bottom:1rem;background:var(--bg-secondary, #f9fafb);border-radius:8px;font-family:JetBrains Mono,SF Mono,monospace;font-size:.875rem;font-weight:600;color:var(--text-primary, #1f2937)}.details-sidebar .relationship-title .arrow{color:var(--text-tertiary, #9ca3af);font-size:1rem}.details-sidebar .info-section{margin-bottom:1.25rem}.details-sidebar .section-label{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary, #9ca3af);margin:0 0 .625rem}.details-sidebar .info-row{display:flex;align-items:center;gap:.5rem;padding:.5rem 0}.details-sidebar .info-row:not(:last-child){border-bottom:1px solid var(--border-color, #e5e7eb)}.details-sidebar .info-key{font-size:.8125rem;color:var(--text-secondary, #6b7280);white-space:nowrap}.details-sidebar .info-key.warning{color:#dc2626;font-weight:500}.details-sidebar .info-val{font-size:.8125rem;color:var(--text-primary, #1f2937)}.details-sidebar .info-val.highlight{font-weight:600;color:var(--primary-color, #3b82f6)}.details-sidebar .info-row.cycle{background:#fef2f2;margin:.5rem -.5rem;padding:.5rem;border-radius:6px;border:none}.details-sidebar .info-row.cycle .info-val{color:#dc2626}.details-sidebar .layer-tag{display:inline-block;padding:.125rem .5rem;font-size:.6875rem;font-weight:600;text-transform:uppercase;color:#fff;border-radius:4px}.details-sidebar .arrow-small{color:var(--text-tertiary, #9ca3af);font-size:.75rem}.details-sidebar .symbol-list{display:flex;flex-direction:column;gap:.375rem}.details-sidebar .symbol-item{padding:.375rem .5rem;background:var(--bg-secondary, #f9fafb);border-radius:4px}.details-sidebar .symbol-item code{font-family:JetBrains Mono,SF Mono,monospace;font-size:.75rem;color:var(--primary-color, #3b82f6)}.details-sidebar .symbol-more{font-size:.75rem;color:var(--text-tertiary, #9ca3af);padding:.25rem 0}.details-sidebar .sidebar-actions{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color, #e5e7eb)}.details-sidebar .action-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;font-size:.8125rem;font-weight:500;border-radius:6px;cursor:pointer;transition:all .15s}.details-sidebar .action-btn.primary{background:var(--primary-color, #3b82f6);color:#fff;border:none}.details-sidebar .action-btn.primary:hover{background:#2563eb}.details-sidebar .action-btn.secondary{background:transparent;color:var(--text-primary, #1f2937);border:1px solid var(--border-color, #e5e7eb)}.details-sidebar .action-btn.secondary:hover{border-color:var(--primary-color, #3b82f6);color:var(--primary-color, #3b82f6)}[data-theme=ink] .details-sidebar{background:var(--bg-primary, #1f2937);border-left-color:var(--border-color, #374151)}[data-theme=ink] .details-sidebar .sidebar-header{border-bottom-color:var(--border-color, #374151)}[data-theme=ink] .details-sidebar .sidebar-header h3{color:var(--text-primary, #f3f4f6)}[data-theme=ink] .details-sidebar .close-btn:hover{background:var(--bg-tertiary, #374151);color:var(--text-primary, #f3f4f6)}[data-theme=ink] .details-sidebar .relationship-title{background:var(--bg-secondary, #111827);color:var(--text-primary, #f3f4f6)}[data-theme=ink] .details-sidebar .info-row:not(:last-child){border-bottom-color:var(--border-color, #374151)}[data-theme=ink] .details-sidebar .info-val{color:var(--text-primary, #f3f4f6)}[data-theme=ink] .details-sidebar .info-row.cycle{background:#ef444426}[data-theme=ink] .details-sidebar .symbol-item{background:var(--bg-secondary, #111827)}[data-theme=ink] .details-sidebar .sidebar-actions{border-top-color:var(--border-color, #374151)}[data-theme=ink] .details-sidebar .action-btn.secondary{color:var(--text-primary, #f3f4f6);border-color:var(--border-color, #374151)}.details-sidebar .module-title{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.details-sidebar .module-name{font-size:1rem;font-weight:600;color:var(--text-primary, #1f2937)}.details-sidebar .module-path{font-size:.75rem;font-family:JetBrains Mono,SF Mono,monospace;color:var(--text-tertiary, #9ca3af);margin-bottom:1rem;word-break:break-all}.details-sidebar .coupling-level-low{color:#22c55e;font-weight:600}.details-sidebar .coupling-level-medium{color:#eab308;font-weight:600}.details-sidebar .coupling-level-high{color:#f97316;font-weight:600}.details-sidebar .coupling-level-critical{color:#ef4444;font-weight:600}.details-sidebar .connection-group{margin-bottom:.75rem}.details-sidebar .connection-group:last-child{margin-bottom:0}.details-sidebar .connection-title{display:block;font-size:.75rem;font-weight:500;color:var(--text-secondary, #6b7280);margin-bottom:.375rem}.details-sidebar .connection-list{display:flex;flex-direction:column;gap:.25rem}.details-sidebar .connection-item{font-size:.8125rem;font-family:JetBrains Mono,SF Mono,monospace;color:var(--text-primary, #1f2937);padding:.25rem .5rem;background:var(--bg-secondary, #f9fafb);border-radius:4px}.details-sidebar .connection-more{font-size:.75rem;color:var(--text-tertiary, #9ca3af);padding:.25rem 0}[data-theme=ink] .details-sidebar .module-name{color:var(--text-primary, #f3f4f6)}[data-theme=ink] .details-sidebar .connection-item{background:var(--bg-secondary, #111827);color:var(--text-primary, #f3f4f6)}.external-node{min-width:160px;padding:.75rem 1rem;background:var(--bg-secondary, #f9fafb);border:2px dashed var(--border-color, #d1d5db);border-radius:8px;cursor:pointer;transition:all .2s}.external-node:hover{border-color:var(--primary-color, #3b82f6);background:var(--bg-primary, #ffffff)}.external-node.selected{border-color:var(--primary-color, #3b82f6);border-style:solid;box-shadow:0 0 0 3px #3b82f626}.external-node.outgoing{border-color:#f97316}.external-node.outgoing:hover{border-color:#ea580c}.external-node.incoming{border-color:#22c55e}.external-node.incoming:hover{border-color:#16a34a}.external-node .node-icon{color:var(--text-tertiary, #9ca3af)}.external-node .node-label{font-size:.8125rem;font-weight:500;color:var(--text-secondary, #6b7280)}.external-node .external-preview{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.375rem}.external-node .external-item{font-size:.6875rem;font-family:JetBrains Mono,SF Mono,monospace;padding:.125rem .375rem;background:var(--bg-tertiary, #e5e7eb);border-radius:3px;color:var(--text-secondary, #6b7280)}.external-node .external-more{font-size:.6875rem;color:var(--text-tertiary, #9ca3af);padding:.125rem .25rem}[data-theme=ink] .external-node{background:var(--bg-secondary, #1f2937);border-color:var(--border-color, #4b5563)}[data-theme=ink] .external-node:hover{background:var(--bg-primary, #111827)}[data-theme=ink] .external-node .external-item{background:var(--bg-tertiary, #374151);color:var(--text-secondary, #9ca3af)}.drill-breadcrumb{background:var(--bg-secondary, #f3f4f6);padding:.375rem .75rem;border-radius:6px;margin-left:.5rem}.drill-breadcrumb .breadcrumb-root{display:flex;align-items:center;gap:.375rem}.drill-breadcrumb .breadcrumb-root svg{opacity:.7}.graph-node.has-children:after{content:"";position:absolute;bottom:3px;right:3px;width:8px;height:8px;background:var(--primary-color, #3b82f6);border-radius:2px;opacity:.5}.graph-node.has-children:hover:after{opacity:1}.entry-points-button{display:flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background:var(--bg-secondary, #f3f4f6);border:1px solid var(--border-color, #e5e7eb);border-radius:6px;font-size:.8125rem;color:var(--text-secondary, #6b7280);cursor:pointer;transition:all .15s}.entry-points-button:hover{background:var(--bg-tertiary, #e5e7eb);color:var(--text-primary, #1f2937)}.entry-points-button.active{background:#ec4899;border-color:#ec4899;color:#fff}.entry-points-button .entry-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 .375rem;background:#fff3;border-radius:9px;font-size:.6875rem;font-weight:600}.entry-points-button:not(.active) .entry-count{background:var(--bg-tertiary, #e5e7eb);color:var(--text-secondary, #6b7280)}.graph-node.entry-point-highlight{border-color:#ec4899!important;box-shadow:0 0 0 3px #ec48994d,0 0 12px #ec489933}.graph-node.entry-point-highlight:before{content:"▶";position:absolute;top:-8px;left:50%;transform:translate(-50%);font-size:10px;color:#ec4899}[data-theme=ink] .entry-points-button{background:var(--bg-secondary, #1f2937);border-color:var(--border-color, #374151);color:var(--text-secondary, #9ca3af)}[data-theme=ink] .entry-points-button:hover{background:var(--bg-tertiary, #374151);color:var(--text-primary, #f3f4f6)}[data-theme=ink] .entry-points-button:not(.active) .entry-count{background:var(--bg-tertiary, #374151)}.callgraph-search{width:100%;max-width:400px;margin-top:1rem}.callgraph-search-form{display:flex;gap:.5rem}.callgraph-search-input{flex:1;padding:.625rem .875rem;font-size:.875rem;color:var(--text-primary, #1f2937);background:var(--bg-primary, #ffffff);border:1px solid var(--border-color, #e5e7eb);border-radius:6px;outline:none;transition:border-color .15s,box-shadow .15s}.callgraph-search-input:focus{border-color:var(--primary-color, #3b82f6);box-shadow:0 0 0 2px #3b82f61a}.callgraph-search-input::placeholder{color:var(--text-tertiary, #9ca3af)}.callgraph-search-btn{padding:.625rem 1rem;font-size:.875rem;font-weight:500;color:#fff;background:var(--primary-color, #3b82f6);border:none;border-radius:6px;cursor:pointer;transition:background .15s;white-space:nowrap}.callgraph-search-btn:hover:not(:disabled){background:#2563eb}.callgraph-search-btn:disabled{opacity:.5;cursor:not-allowed}.callgraph-results{display:flex;flex-direction:column;gap:.25rem;margin-top:.75rem;max-height:300px;overflow-y:auto;border:1px solid var(--border-color, #e5e7eb);border-radius:6px;background:var(--bg-primary, #ffffff)}.callgraph-result-item{display:flex;align-items:center;gap:.5rem;padding:.625rem .875rem;font-size:.8125rem;text-align:left;background:transparent;border:none;border-bottom:1px solid var(--border-color, #e5e7eb);cursor:pointer;transition:background .1s;width:100%}.callgraph-result-item:last-child{border-bottom:none}.callgraph-result-item:hover{background:var(--bg-secondary, #f9fafb)}.callgraph-result-item .result-name{font-weight:600;color:var(--text-primary, #1f2937);font-family:JetBrains Mono,SF Mono,monospace}.callgraph-result-item .result-kind{font-size:.6875rem;font-weight:500;text-transform:uppercase;padding:.125rem .375rem;background:var(--bg-tertiary, #e5e7eb);color:var(--text-secondary, #6b7280);border-radius:3px}.callgraph-result-item .result-file{margin-left:auto;font-size:.6875rem;color:var(--text-tertiary, #9ca3af);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:150px}.callgraph-searching{display:flex;justify-content:center;padding:1rem}[data-theme=ink] .callgraph-search-input{background:var(--bg-secondary, #111827);border-color:var(--border-color, #374151);color:var(--text-primary, #f3f4f6)}[data-theme=ink] .callgraph-results{background:var(--bg-secondary, #111827);border-color:var(--border-color, #374151)}[data-theme=ink] .callgraph-result-item{border-color:var(--border-color, #374151)}[data-theme=ink] .callgraph-result-item:hover{background:var(--bg-tertiary, #374151)}[data-theme=ink] .callgraph-result-item .result-name{color:var(--text-primary, #f3f4f6)}[data-theme=ink] .callgraph-result-item .result-kind{background:var(--bg-tertiary, #374151)}.color-mode-select:disabled{opacity:.6;cursor:not-allowed;background:var(--bg-tertiary, #e5e7eb)}[data-theme=ink] .color-mode-select:disabled{background:var(--bg-tertiary, #374151)}.color-legend{position:absolute;bottom:12px;left:12px;z-index:5;background:var(--bg-primary, #ffffff);border:1px solid var(--border-color, #e5e7eb);border-radius:8px;box-shadow:0 2px 8px #00000014;font-size:.75rem;min-width:120px;max-width:180px;pointer-events:auto}.color-legend-toggle{display:flex;align-items:center;gap:.375rem;width:100%;padding:.5rem .625rem;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--text-secondary, #6b7280);background:transparent;border:none;border-radius:8px;cursor:pointer;transition:color .15s}.color-legend-toggle:hover{color:var(--text-primary, #1f2937)}.color-legend-chevron{margin-left:auto;flex-shrink:0}.color-legend-items{display:flex;flex-direction:column;gap:.25rem;padding:0 .625rem .5rem}.color-legend-item{display:flex;align-items:center;gap:.375rem}.color-legend-swatch{display:inline-block;width:10px;height:10px;border-radius:2px;flex-shrink:0}.color-legend-label{font-size:.6875rem;color:var(--text-secondary, #6b7280);white-space:nowrap}.color-legend.collapsed{min-width:auto}.color-legend.collapsed .color-legend-toggle{border-radius:8px}[data-theme=ink] .color-legend{background:var(--bg-secondary, #111827);border-color:var(--border-color, #374151);box-shadow:0 2px 8px #0000004d}[data-theme=ink] .color-legend-toggle{color:var(--text-secondary, #9ca3af)}[data-theme=ink] .color-legend-toggle:hover{color:var(--text-primary, #f3f4f6)}[data-theme=ink] .color-legend-label{color:var(--text-secondary, #9ca3af)}.admin-section{max-width:1100px;width:100%;margin:0 auto}.admin-section-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px;gap:16px}.admin-section-title{font-size:20px;font-weight:700;color:var(--text-primary);margin:0 0 4px}.admin-section-desc{font-size:13px;color:var(--text-secondary);margin:0}.admin-error{color:var(--error);font-size:13px;padding:10px 14px;background:color-mix(in srgb,var(--error) 8%,transparent);border:1px solid color-mix(in srgb,var(--error) 20%,transparent);border-radius:var(--radius-sm);margin-bottom:16px}.admin-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table th{text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);padding:8px 12px;border-bottom:1px solid var(--border-color)}.admin-table td{padding:12px;border-bottom:1px solid var(--border-color);color:var(--text-primary);vertical-align:middle}.admin-table tr:hover td{background:var(--elevated)}.admin-table tr:last-child td{border-bottom:none}.doc-filename,.user-username{font-weight:500;color:var(--text-primary)}.split-panel{display:flex;gap:0;border:1px solid var(--border-color);border-radius:var(--radius);overflow:hidden;min-height:400px}.split-panel-left{width:260px;flex-shrink:0;border-right:1px solid var(--border-color);overflow-y:auto;background:var(--surface)}.split-panel-right{flex:1;overflow-y:auto;padding:20px;background:var(--bg)}.admin-list-item{display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;border-bottom:1px solid var(--border-color);transition:background .12s}.admin-list-item:hover{background:var(--elevated)}.admin-list-item.active{background:var(--accent-dim)}.admin-list-item:last-child{border-bottom:none}.admin-list-item-icon{font-size:18px;width:28px;text-align:center;flex-shrink:0}.admin-list-item-info{flex:1;min-width:0}.admin-list-item-name{font-size:13px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-list-item-meta{display:flex;align-items:center;gap:8px;margin-top:3px;font-size:11px;color:var(--text-tertiary)}.admin-detail-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.admin-detail-header h3{font-size:16px;font-weight:600;color:var(--text-primary);margin:0}.admin-detail-section{margin-top:24px;padding-top:20px;border-top:1px solid var(--border-color)}.admin-detail-section-header{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);margin-bottom:12px}.admin-form-row{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.admin-form-row label{font-size:12px;font-weight:500;color:var(--text-secondary)}.admin-form-row input,.admin-form-row select,.admin-form-row textarea{background:var(--elevated);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:8px 10px;color:var(--text-primary);font-size:13px;outline:none;transition:border-color .15s}.admin-form-row input::placeholder{color:var(--text-tertiary)}.admin-form-row input:focus,.admin-form-row select:focus{border-color:var(--accent)}.admin-form-row select{cursor:pointer}.admin-form-row-group{display:flex;gap:12px;flex-wrap:wrap}.admin-form-actions{display:flex;gap:8px;justify-content:flex-end}.admin-inline-form{background:var(--elevated);border:1px solid var(--border-color);border-radius:var(--radius);padding:16px;margin-bottom:16px}.btn-sm{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:var(--radius-sm);font-size:12px;font-weight:500;cursor:pointer;border:none;transition:opacity .15s,background .15s;white-space:nowrap}.btn-sm:disabled{opacity:.5;cursor:not-allowed}.btn-sm.btn-primary{background:var(--accent);color:var(--accent-contrast)}.btn-sm.btn-primary:hover:not(:disabled){opacity:.88}.btn-sm.btn-ghost{background:none;border:1px solid var(--border-color);color:var(--text-secondary)}.btn-sm.btn-ghost:hover:not(:disabled){border-color:var(--border-hover);color:var(--text-primary)}.btn-sm.btn-danger{background:color-mix(in srgb,var(--error) 10%,transparent);border:1px solid color-mix(in srgb,var(--error) 20%,transparent);color:var(--error)}.btn-sm.btn-danger:hover:not(:disabled){background:color-mix(in srgb,var(--error) 18%,transparent)}.action-btn-group{display:flex;align-items:center;gap:4px}.action-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-sm);border:1px solid var(--border-color);background:none;color:var(--text-secondary);cursor:pointer;font-size:13px;transition:background .12s,color .12s}.action-btn:hover{background:var(--elevated);color:var(--text-primary)}.action-btn.action-btn-danger{color:var(--error);border-color:color-mix(in srgb,var(--error) 20%,transparent)}.action-btn.action-btn-danger:hover{background:color-mix(in srgb,var(--error) 10%,transparent)}.toggle-switch{width:40px;height:22px;background:var(--elevated);border:1px solid var(--border-color);border-radius:11px;position:relative;cursor:pointer;transition:background .2s,border-color .2s;flex-shrink:0;outline:none}.toggle-switch:focus-visible{box-shadow:0 0 0 2px var(--accent)}.toggle-switch.on{background:var(--accent);border-color:var(--accent)}.toggle-knob{position:absolute;top:2px;left:2px;width:16px;height:16px;background:var(--text-secondary);border-radius:50%;transition:transform .2s,background .2s;pointer-events:none}.toggle-switch.on .toggle-knob{transform:translate(18px);background:var(--accent-contrast)}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:100px;font-size:11px;font-weight:500;background:var(--elevated);color:var(--text-secondary);border:1px solid var(--border-color)}.badge-success{background:color-mix(in srgb,var(--success) 10%,transparent);color:var(--success);border-color:color-mix(in srgb,var(--success) 25%,transparent)}.badge-error{background:color-mix(in srgb,var(--error) 10%,transparent);color:var(--error);border-color:color-mix(in srgb,var(--error) 25%,transparent)}.badge-warning{background:color-mix(in srgb,var(--warning) 10%,transparent);color:var(--warning);border-color:color-mix(in srgb,var(--warning) 25%,transparent)}.badge-info{background:color-mix(in srgb,var(--info) 10%,transparent);color:var(--info);border-color:color-mix(in srgb,var(--info) 25%,transparent)}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-left:6px;vertical-align:middle}.status-dot.success{background:var(--success);box-shadow:0 0 4px var(--success)}.status-dot.error{background:var(--error)}.sources-list{display:flex;flex-direction:column;gap:12px}.source-config-card{background:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius);overflow:hidden;transition:border-color .15s}.source-config-header{display:flex;align-items:center;justify-content:space-between;padding:16px;gap:12px}.source-config-info{flex:1}.source-config-toggle{display:flex;align-items:center;gap:12px}.source-config-name{font-size:14px;font-weight:500;color:var(--text-primary);display:flex;align-items:center}.source-config-desc{font-size:12px;color:var(--text-tertiary);margin-top:2px}.source-config-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.source-config-fields{padding:14px 16px 16px;border-top:1px solid var(--border-color)}.test-result-inline{font-size:12px;padding:6px 10px;border-radius:var(--radius-sm);margin-top:8px}.test-result-inline.ok{color:var(--success);background:color-mix(in srgb,var(--success) 8%,transparent);border:1px solid color-mix(in srgb,var(--success) 20%,transparent)}.test-result-inline.fail{color:var(--error);background:color-mix(in srgb,var(--error) 8%,transparent);border:1px solid color-mix(in srgb,var(--error) 20%,transparent)}.pip-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:color-mix(in srgb,var(--warning) 10%,transparent);border-top:1px solid color-mix(in srgb,var(--warning) 30%,transparent)}.pip-banner-text{font-size:13px;color:var(--warning)}.dep-ok{padding:6px 16px;font-size:12px;color:var(--success);border-top:1px solid color-mix(in srgb,var(--success) 20%,transparent);background:color-mix(in srgb,var(--success) 6%,transparent)}.pip-output{margin:0;padding:10px 16px;font-size:11px;font-family:monospace;background:var(--bg-secondary, #1a1d27);color:var(--text-secondary);white-space:pre-wrap;word-break:break-all;max-height:160px;overflow-y:auto;border-top:1px solid var(--border-color)}.repos-list{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.repos-empty{font-size:12px;color:var(--text-tertiary);margin:0 0 4px}.repo-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm)}.repo-info{display:flex;flex-direction:column;gap:2px;min-width:0}.repo-name{font-size:13px;font-weight:500;color:var(--text-primary)}.repo-path{font-size:11px;color:var(--text-tertiary);font-family:monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.repo-add-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.repo-add-row input{flex:1;min-width:140px}.btn-danger{color:var(--error, #f87171)}.btn-danger:hover{background:color-mix(in srgb,var(--error) 10%,transparent)}.module-row{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--radius-sm);background:var(--elevated);border:1px solid var(--border-color);margin-bottom:6px}.module-index{font-size:11px;font-weight:600;color:var(--text-tertiary);width:18px;text-align:center;flex-shrink:0}.module-info{flex:1;display:flex;align-items:center;gap:8px;min-width:0}.module-name{font-size:13px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.module-meta{font-size:11px;color:var(--text-tertiary);white-space:nowrap}.group-color-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.group-member-row{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-radius:var(--radius-sm);background:var(--elevated);border:1px solid var(--border-color);margin-bottom:6px}.group-member-info{display:flex;align-items:center;gap:8px}.group-member-name{font-size:13px;color:var(--text-primary)}.admin-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.admin-modal{background:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:24px;width:100%;max-width:420px;box-shadow:var(--shadow-md)}.admin-modal h3{font-size:16px;font-weight:600;color:var(--text-primary);margin:0 0 12px}.admin-modal p{font-size:13px;color:var(--text-secondary);margin:0 0 16px;line-height:1.5}.admin-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.admin-modal-header h3{margin:0}.modal-close{background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:4px;display:flex;align-items:center}.modal-close:hover{color:var(--text-primary)}.admin-modal-actions{display:flex;gap:8px;justify-content:flex-end}.empty-admin{padding:40px 20px;text-align:center;color:var(--text-tertiary);font-size:13px;line-height:1.7}.key-row-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(440px,1fr));gap:14px}.key-row-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:4px}.key-row-head h3{font-size:15px;font-weight:600;margin:0;color:var(--text-primary)}.key-row-desc{font-size:12.5px;line-height:1.55;color:var(--text-secondary);margin:0 0 10px}.key-row-current{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:12px}.key-row-current-label{color:var(--text-secondary)}.key-row-current-value{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);letter-spacing:.04em;padding:2px 8px;border-radius:6px;background:var(--surface-2, rgba(127, 127, 127, .12));color:var(--text-primary);-webkit-user-select:all;user-select:all}.key-row-input{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.key-row-input .input{flex:1 1 240px;min-width:200px}.key-row-input .btn{flex:0 0 auto}.prov-status.is-user{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}.prov-status.is-tenant{background:var(--amber-soft);color:var(--amber)}.prov-status.is-env{background:color-mix(in srgb,var(--text-tertiary) 12%,transparent);color:var(--text-secondary)}.tenant-banner{margin-top:10px;display:inline-flex;align-items:center;gap:8px;padding:5px 10px;border-radius:999px;background:color-mix(in srgb,var(--accent) 8%,transparent);font-size:12px;color:var(--text-secondary)}.tenant-banner strong{color:var(--text-primary)}.tenant-role-pill{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;padding:1px 7px;border-radius:4px;font-weight:700}.tenant-role-pill.role-owner{background:var(--violet-soft);color:var(--violet)}.tenant-role-pill.role-admin{background:var(--accent-soft);color:var(--accent)}.tenant-role-pill.role-member{background:var(--moss-soft);color:var(--moss)}.tenant-role-pill.role-viewer{background:var(--amber-soft);color:var(--amber)}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:0}.info-grid div{display:flex;flex-direction:column;gap:4px}.info-grid dt{font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary)}.info-grid dd{font-size:14px;color:var(--text-primary);margin:0}.checklist{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.checklist li{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-primary)}.checklist svg{color:var(--moss);flex-shrink:0}.theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-3)}.theme-option{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);padding:var(--space-4);border:var(--border-width-1) solid var(--color-border-default);border-radius:var(--radius-3);background:var(--color-surface-raised);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:border-color var(--duration-2) var(--ease-standard),background-color var(--duration-2) var(--ease-standard)}.theme-option:hover{border-color:var(--color-border-strong)}.theme-option.active{border-color:var(--color-action-primary);background:var(--color-selected-wash)}.theme-preview{display:flex;gap:var(--space-1)}.theme-swatch{width:24px;height:24px;border-radius:var(--radius-1);border:var(--border-width-1) solid var(--color-border-subtle)}.theme-name{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-primary)}.theme-hint{font-size:var(--text-xs);color:var(--color-text-secondary)}@layer reset,tokens,base,components,utilities,overrides;@layer reset{*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd{margin:0}ul[class],ol[class]{margin:0;padding:0;list-style:none}img,picture,svg,video,canvas{display:block;max-width:100%}button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}button{padding:0;border:none;background:none;cursor:pointer}table{border-collapse:collapse}[hidden]{display:none!important}}@layer tokens{:root{--etch-ink-950: #0b0b0b;--etch-ink-900: #141414;--etch-ink-800: #1c1c1c;--etch-ink-700: #242424;--etch-ink-600: #2f2f2f;--etch-ink-500: #3d3d3d;--etch-paper-50: #ffffff;--etch-paper-100: #fbf9f4;--etch-paper-200: #f6f3ea;--etch-paper-300: #ede8db;--etch-paper-400: #ded8c8;--etch-paper-500: #d5cec1;--etch-red-400: #ff4d6d;--etch-red-500: #ee0040;--etch-red-600: #d60036;--etch-red-700: #ab002b;--etch-yellow-400: #fff04d;--etch-yellow-500: #ffe600;--etch-yellow-600: #e5ce00;--etch-warm-700: #5e574f;--etch-warm-600: #6f6860;--etch-warm-500: #8a8279;--etch-warm-400: #8b857b;--etch-warm-300: #b9b3a8;--etch-warm-200: #d5cec1;--etch-focus-paper: #005fcc;--etch-focus-ink: #7cc7ff;--etch-success-paper: #0b6b45;--etch-success-ink: #b9f6d5;--etch-warning-paper: #7b5000;--etch-warning-ink: #ffd166;--etch-danger-paper: #b0002c;--etch-danger-ink: #ff7a98;--etch-info-paper: #005fcc;--etch-info-ink: #7cc7ff;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--radius-1: 4px;--radius-2: 8px;--radius-3: 12px;--radius-4: 16px;--radius-pill: 999px;--border-width-1: 1px;--border-width-2: 2px;--border-width-3: 3px;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", system-ui, sans-serif;--font-display: var(--font-sans);--font-mono: "IBM Plex Mono", "SFMono-Regular", ui-monospace, Consolas, "Liberation Mono", monospace;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--weight-black: 900;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-md: 1.0625rem;--text-lg: 1.25rem;--text-xl: 1.5rem;--text-2xl: 2rem;--text-3xl: 2.75rem;--leading-tight: 1.15;--leading-snug: 1.35;--leading-normal: 1.55;--leading-relaxed: 1.7;--tracking-display: -.045em;--tracking-title: -.02em;--tracking-normal: 0;--tracking-label: .12em;--measure: 68ch;--duration-1: .12s;--duration-2: .18s;--duration-3: .28s;--ease-standard: cubic-bezier(.2, 0, .15, 1);--ease-entrance: cubic-bezier(.05, .7, .1, 1);--ease-exit: cubic-bezier(.3, 0, .8, .15);--shadow-1: 0 1px 2px rgb(20 20 20 / 6%);--shadow-2: 0 2px 4px rgb(20 20 20 / 6%), 0 8px 16px rgb(20 20 20 / 6%);--shadow-3: 0 4px 8px rgb(20 20 20 / 8%), 0 16px 40px rgb(20 20 20 / 10%);--sidebar-width: 272px;--rail-width: 72px;--mobile-nav-height: 60px;--topbar-height: 56px;--content-max: 780px;--content-wide: 1120px;--touch-target: 44px;--page-gutter: 24px;--z-base: 0;--z-sticky: 100;--z-drawer: 200;--z-dialog: 300;--z-popover: 400;--z-toast: 500}@media not (min-width:640px){:root{--page-gutter: 16px}}}@layer tokens{:root,:root[data-theme=paper]{color-scheme:light;--color-surface-canvas: var(--etch-paper-200);--color-surface-raised: var(--etch-paper-50);--color-surface-sunken: var(--etch-paper-300);--color-surface-inverse: var(--etch-ink-900);--color-surface-overlay: rgb(20 20 20 / 44%);--color-border-subtle: rgb(20 20 20 / 10%);--color-border-default: rgb(20 20 20 / 18%);--color-border-strong: rgb(20 20 20 / 42%);--color-text-primary: var(--etch-ink-900);--color-text-secondary: var(--etch-warm-700);--color-text-tertiary: var(--etch-warm-600);--color-text-inverse: var(--etch-paper-200);--color-text-on-action: #ffffff;--color-text-on-signal: var(--etch-ink-900);--color-action-primary: var(--etch-red-600);--color-action-primary-hover: var(--etch-red-700);--color-action-primary-active: var(--etch-red-700);--color-brand-text: var(--etch-red-600);--color-brand-wash: rgb(214 0 54 / 8%);--color-brand-mark: var(--etch-red-600);--color-signal: var(--etch-yellow-500);--color-signal-wash: rgb(255 230 0 / 22%);--color-signal-border: var(--etch-yellow-600);--color-focus: var(--etch-focus-paper);--color-focus-ring: rgb(0 95 204 / 35%);--color-success: var(--etch-success-paper);--color-success-wash: rgb(11 107 69 / 10%);--color-warning: var(--etch-warning-paper);--color-warning-wash: rgb(123 80 0 / 10%);--color-danger: var(--etch-danger-paper);--color-danger-wash: rgb(176 0 44 / 8%);--color-info: var(--etch-info-paper);--color-info-wash: rgb(0 95 204 / 8%);--color-hover-wash: rgb(20 20 20 / 5%);--color-active-wash: rgb(20 20 20 / 9%);--color-selected-wash: rgb(214 0 54 / 7%);--color-code-bg: var(--etch-paper-300);--color-code-inline-bg: rgb(20 20 20 / 7%);--color-scrollbar-thumb: rgb(20 20 20 / 18%);--color-scrollbar-thumb-hover: rgb(20 20 20 / 34%);--elevation-1: var(--shadow-1);--elevation-2: var(--shadow-2);--elevation-3: var(--shadow-3);--bg: var(--color-surface-canvas);--surface: var(--color-surface-raised);--elevated: var(--color-surface-sunken);--hairline: var(--color-border-subtle);--hairline-2: var(--color-border-default);--ink: var(--color-text-primary);--ink-2: var(--color-text-secondary);--ink-3: var(--color-text-tertiary);--ink-on-accent: var(--color-text-on-action);--accent: var(--color-action-primary);--accent-soft: var(--color-brand-wash);--accent-hover: var(--color-action-primary-hover);--moss: var(--color-success);--moss-soft: var(--color-success-wash);--amber: var(--color-warning);--amber-soft: var(--color-warning-wash);--rose: var(--color-danger);--rose-soft: var(--color-danger-wash);--violet: var(--color-info);--violet-soft: var(--color-info-wash);--shadow-sm: var(--elevation-1);--shadow-md: var(--elevation-2);--shadow-lg: var(--elevation-3);--code-bg: var(--color-code-bg);--code-inline-bg: var(--color-code-inline-bg);--scrollbar-thumb: var(--color-scrollbar-thumb);--scrollbar-thumb-hover: var(--color-scrollbar-thumb-hover);--border-color: var(--color-border-subtle);--border-hover: var(--color-border-default);--text-primary: var(--color-text-primary);--text-secondary: var(--color-text-secondary);--text-tertiary: var(--color-text-tertiary);--accent-dim: var(--color-brand-wash);--accent-contrast: var(--color-text-on-action);--success: var(--color-success);--error: var(--color-danger);--warning: var(--color-warning);--info: var(--color-info);--bg-primary: var(--color-surface-canvas);--bg-secondary: var(--color-surface-raised);--bg-tertiary: var(--color-surface-sunken);--bg-hover: var(--color-hover-wash);--primary-color: var(--color-action-primary);--accent-primary: var(--color-action-primary);--success-color: var(--color-success);--error-color: var(--color-danger);--background: var(--color-surface-canvas);--surface-2: var(--color-surface-sunken);--surface-secondary: var(--color-surface-sunken);--bg-elevated: var(--color-surface-sunken);--bg-code: var(--color-code-bg);--border: var(--color-border-subtle);--hover-bg: var(--color-hover-wash);--primary: var(--color-action-primary);--color-primary: var(--color-action-primary);--color-error: var(--color-danger);--error-bg: var(--color-danger-wash);--success-bg: var(--color-success-wash);--warning-bg: var(--color-warning-wash);--r-md: var(--radius-3);--r-xs: var(--radius-1);--r-sm: var(--radius-2);--r: var(--radius-3);--r-lg: var(--radius-4);--r-xl: var(--radius-4);--radius-sm: var(--radius-2);--radius: var(--radius-3);--radius-lg: var(--radius-4);--radius-xl: var(--radius-4);--s1: var(--space-1);--s2: var(--space-2);--s3: var(--space-3);--s4: var(--space-4);--s5: 20px;--s6: var(--space-5);--s7: var(--space-6);--s8: 40px;--s9: var(--space-7);--tx-fast: var(--duration-1) var(--ease-standard);--tx: var(--duration-2) var(--ease-standard);--transition-fast: var(--tx-fast);--transition-normal: var(--tx)}:root[data-theme=ink]{color-scheme:dark;--color-surface-canvas: var(--etch-ink-900);--color-surface-raised: var(--etch-ink-800);--color-surface-sunken: var(--etch-ink-950);--color-surface-inverse: var(--etch-paper-200);--color-surface-overlay: rgb(0 0 0 / 66%);--color-border-subtle: rgb(246 243 234 / 10%);--color-border-default: rgb(246 243 234 / 18%);--color-border-strong: rgb(246 243 234 / 42%);--color-text-primary: var(--etch-paper-200);--color-text-secondary: var(--etch-warm-300);--color-text-tertiary: var(--etch-warm-400);--color-text-inverse: var(--etch-ink-900);--color-text-on-action: #ffffff;--color-text-on-signal: var(--etch-ink-900);--color-action-primary: var(--etch-red-600);--color-action-primary-hover: var(--etch-red-500);--color-action-primary-active: var(--etch-red-700);--color-brand-text: var(--etch-red-400);--color-brand-wash: rgb(255 77 109 / 14%);--color-brand-mark: var(--etch-red-500);--color-signal: var(--etch-yellow-500);--color-signal-wash: rgb(255 230 0 / 16%);--color-signal-border: var(--etch-yellow-400);--color-focus: var(--etch-focus-ink);--color-focus-ring: rgb(124 199 255 / 45%);--color-success: var(--etch-success-ink);--color-success-wash: rgb(185 246 213 / 12%);--color-warning: var(--etch-warning-ink);--color-warning-wash: rgb(255 209 102 / 12%);--color-danger: var(--etch-danger-ink);--color-danger-wash: rgb(255 122 152 / 12%);--color-info: var(--etch-info-ink);--color-info-wash: rgb(124 199 255 / 12%);--color-hover-wash: rgb(246 243 234 / 7%);--color-active-wash: rgb(246 243 234 / 12%);--color-selected-wash: rgb(255 77 109 / 12%);--color-code-bg: rgb(0 0 0 / 40%);--color-code-inline-bg: rgb(246 243 234 / 8%);--color-scrollbar-thumb: rgb(246 243 234 / 12%);--color-scrollbar-thumb-hover: rgb(246 243 234 / 26%);--elevation-1: 0 1px 2px rgb(0 0 0 / 50%);--elevation-2: 0 2px 4px rgb(0 0 0 / 45%), 0 8px 16px rgb(0 0 0 / 45%);--elevation-3: 0 4px 8px rgb(0 0 0 / 50%), 0 16px 40px rgb(0 0 0 / 55%)}@media(prefers-contrast:more){:root,:root[data-theme=paper]{--color-border-subtle: rgb(20 20 20 / 24%);--color-border-default: rgb(20 20 20 / 40%);--color-text-secondary: var(--etch-ink-700);--color-text-tertiary: var(--etch-warm-700)}:root[data-theme=ink]{--color-border-subtle: rgb(246 243 234 / 26%);--color-border-default: rgb(246 243 234 / 42%);--color-text-secondary: var(--etch-paper-200);--color-text-tertiary: var(--etch-warm-300)}}:root[data-contrast=high],:root[data-contrast=high][data-theme=paper]{--color-border-subtle: rgb(20 20 20 / 24%);--color-border-default: rgb(20 20 20 / 40%);--color-text-secondary: var(--etch-ink-700);--color-text-tertiary: var(--etch-warm-700)}:root[data-contrast=high][data-theme=ink]{--color-border-subtle: rgb(246 243 234 / 26%);--color-border-default: rgb(246 243 234 / 42%);--color-text-secondary: var(--etch-paper-200);--color-text-tertiary: var(--etch-warm-300)}}@layer base{body{font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--weight-regular);line-height:var(--leading-normal);color:var(--color-text-primary);background:var(--color-surface-canvas);font-feature-settings:"cv11","ss01"}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:var(--tracking-title);color:var(--color-text-primary);text-wrap:balance}h1{font-size:var(--text-2xl);font-weight:var(--weight-black);letter-spacing:var(--tracking-display)}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg)}h4{font-size:var(--text-md)}h5,h6{font-size:var(--text-base)}p{text-wrap:pretty}a{color:var(--color-brand-text);text-decoration-color:color-mix(in srgb,currentcolor 40%,transparent);text-underline-offset:.18em;transition:color var(--duration-1) var(--ease-standard)}a:hover{color:var(--color-action-primary-hover);text-decoration-color:currentcolor}code,kbd,samp,pre{font-family:var(--font-mono);font-size:.9em}code{padding:.1em .35em;border-radius:var(--radius-1);background:var(--color-code-inline-bg)}pre{overflow-x:auto;padding:var(--space-4);border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-2);background:var(--color-code-bg);font-size:var(--text-sm);line-height:var(--leading-snug)}pre code{padding:0;background:none}small{font-size:var(--text-xs)}::selection{color:var(--color-text-on-signal);background:var(--color-signal)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{border:3px solid transparent;border-radius:var(--radius-pill);background:var(--color-scrollbar-thumb);background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--color-scrollbar-thumb-hover);background-clip:content-box}}@layer components{.etch-wordmark{display:inline-flex;align-items:baseline;gap:.14em;font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-black);line-height:1;letter-spacing:var(--tracking-display);color:var(--color-text-primary);text-transform:uppercase;white-space:nowrap}.etch-wordmark__dot{width:.2em;height:.2em;background:var(--color-brand-mark);translate:0 -.02em}.etch-wordmark[data-size=sm]{font-size:var(--text-base)}.etch-wordmark[data-size=lg]{font-size:var(--text-3xl)}.etch-wordmark[data-tone=inverse]{color:var(--color-text-inverse)}.etch-eyebrow{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-label);color:var(--color-text-tertiary);text-transform:uppercase}.etch-eyebrow[data-tone=brand]{color:var(--color-brand-text)}.etch-prose{max-width:var(--measure);font-size:var(--text-md);line-height:var(--leading-relaxed)}.etch-prose>*+*{margin-top:var(--space-4)}}@layer components{.etch-app{display:grid;grid-template-areas:"sidebar main";grid-template-columns:var(--sidebar-width) minmax(0,1fr);height:100dvh;overflow:hidden;background:var(--color-surface-canvas);color:var(--color-text-primary)}.etch-app__sidebar{display:flex;flex-direction:column;grid-area:sidebar;min-height:0;border-right:var(--border-width-1) solid var(--color-border-subtle);background:var(--color-surface-sunken)}.etch-app__main{display:flex;flex-direction:column;grid-area:main;min-width:0;min-height:0}.etch-app__topbar,.etch-app__mobile-nav{display:none}.etch-view{flex:1;min-height:0;overflow:hidden auto;scrollbar-gutter:stable}.etch-view[data-scroll=none]{overflow:hidden}.etch-column{width:100%;max-width:var(--content-max);margin-inline:auto;padding-inline:var(--page-gutter)}.etch-column[data-width=wide]{max-width:var(--content-wide)}.etch-column[data-width=full]{max-width:none}.etch-app__detail{display:flex;flex-direction:column;width:min(420px,34vw);min-height:0;border-left:var(--border-width-1) solid var(--color-border-subtle);background:var(--color-surface-raised)}.etch-split{display:flex;flex:1;min-width:0;min-height:0}.etch-split__primary{display:flex;flex:1;flex-direction:column;min-width:0;min-height:0}.etch-page-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-4);padding-block:var(--space-5) var(--space-4);border-bottom:var(--border-width-1) solid var(--color-border-subtle)}.etch-page-header__title{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.etch-page-header__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.etch-stack{display:flex;flex-direction:column;gap:var(--space-4)}.etch-stack[data-gap=sm]{gap:var(--space-2)}.etch-stack[data-gap=lg]{gap:var(--space-6)}.etch-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.etch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-4)}@media not (min-width:1200px){.etch-app{grid-template-columns:var(--rail-width) minmax(0,1fr)}.etch-app__sidebar{align-items:center}.etch-app__detail{width:min(380px,42vw)}}@media not (min-width:640px){.etch-app{grid-template-areas:"topbar" "main" "nav";grid-template-rows:var(--topbar-height) minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr)}.etch-app__sidebar{display:none}.etch-app__topbar{display:flex;grid-area:topbar;align-items:center;justify-content:space-between;gap:var(--space-2);padding-inline:var(--space-3);border-bottom:var(--border-width-1) solid var(--color-border-subtle);background:var(--color-surface-raised)}.etch-app__mobile-nav{display:block;grid-area:nav}.etch-app__detail{width:100%}.etch-split{flex-direction:column}}.etch-app__main{overflow:hidden auto}.etch-app__sidebar>.etch-sidebar{flex:1;min-height:0}.etch-shell-boot{display:flex;align-items:center;justify-content:center;height:100dvh;background:var(--color-surface-canvas)}.etch-shell-banner{padding:var(--space-3) var(--page-gutter) 0}.etch-shell-search{padding-inline:var(--space-2)}.etch-shell-group-title{padding:var(--space-2) var(--space-3) var(--space-1)}.etch-shell-note{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3);color:var(--color-text-tertiary);font-size:var(--text-sm)}.etch-shell-user{display:flex;flex-direction:column;gap:var(--space-2)}.etch-shell-user__identity{display:flex;align-items:center;gap:var(--space-2);min-width:0}.etch-shell-user__meta{display:flex;flex:1;flex-direction:column;min-width:0}.etch-shell-user__name{overflow:hidden;color:var(--color-text-primary);font-size:var(--text-sm);font-weight:var(--weight-medium);white-space:nowrap;text-overflow:ellipsis}.etch-shell-user__mail{overflow:hidden;color:var(--color-text-tertiary);font-size:var(--text-xs);white-space:nowrap;text-overflow:ellipsis}.etch-shell-user__controls{display:flex;align-items:end;gap:var(--space-2)}.etch-shell-user__theme{flex:1;min-width:0}.etch-shell-scope{min-width:0;max-width:46vw}.etch-shell-scope__label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.etch-shell-scope__source{overflow:hidden;color:var(--color-text-tertiary);font-family:var(--font-mono);font-size:var(--text-xs);white-space:nowrap;text-overflow:ellipsis}.etch-shell-scope__spacer{display:inline-block;width:16px}.etch-shell-topbar__brand{display:inline-flex;align-items:center;color:inherit;text-decoration:none}.etch-shell-drawer-body{display:flex;flex-direction:column;gap:var(--space-3);min-height:0;height:100%}.etch-shell-drawer-scroll{flex:1;min-height:0;overflow-y:auto}.etch-shell-drawer-nav{display:flex;flex-direction:column;gap:var(--space-1)}.etch-shell-drawer-item{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:var(--touch-target);padding:var(--space-2) var(--space-3);border:0;border-radius:var(--radius-2);background:none;color:var(--color-text-primary);font-family:inherit;font-size:var(--text-base);font-weight:var(--weight-medium);text-align:start;text-decoration:none;cursor:pointer}.etch-shell-drawer-item:hover{background:var(--color-hover-wash)}.etch-shell-drawer-item[aria-current=page]{background:var(--color-selected-wash);font-weight:var(--weight-semibold)}.etch-shell-drawer-item[data-tone=danger]{color:var(--color-danger)}}@layer utilities{.etch-shell-rail-only{display:none}@media not (min-width:1200px){.etch-shell-desktop-only{display:none}.etch-shell-rail-only{display:flex}}}@layer base{@keyframes etch-spin{to{rotate:360deg}}@keyframes etch-fade-in{0%{opacity:0}to{opacity:1}}@keyframes etch-rise-in{0%{opacity:0;translate:0 6px}to{opacity:1;translate:0 0}}@keyframes etch-slide-in-left{0%{translate:-100% 0}to{translate:0 0}}@keyframes etch-slide-in-bottom{0%{translate:0 100%}to{translate:0 0}}@keyframes etch-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}}@layer utilities{.etch-animate-rise{animation:etch-rise-in var(--duration-3) var(--ease-entrance) both}.etch-animate-fade{animation:etch-fade-in var(--duration-2) var(--ease-standard) both}}@layer overrides{@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}.etch-spinner{animation:etch-spin 2.4s linear infinite!important}}:root[data-reduce-motion=true] *,:root[data-reduce-motion=true] *:before,:root[data-reduce-motion=true] *:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}:root[data-reduce-motion=true] .etch-spinner{animation:etch-spin 2.4s linear infinite!important}}@layer base{:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:var(--border-width-2) solid var(--color-focus);outline-offset:2px;border-radius:var(--radius-1)}:where(button,input,select,textarea):disabled,[aria-disabled=true]{cursor:not-allowed;opacity:.55}}@layer utilities{.etch-visually-hidden,.visually-hidden{position:absolute!important;overflow:hidden!important;clip-path:inset(50%)!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;border:0!important;white-space:nowrap!important}.etch-skip-link{position:absolute;z-index:var(--z-toast);top:var(--space-2);left:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-2);background:var(--color-action-primary);color:var(--color-text-on-action);font-weight:var(--weight-semibold);text-decoration:none;translate:0 -200%;transition:translate var(--duration-2) var(--ease-entrance)}.etch-skip-link:focus-visible{translate:0 0}.etch-touch-target{min-width:var(--touch-target)!important;min-height:var(--touch-target)!important}}@layer components{.etch-button{display:inline-flex;position:relative;align-items:center;justify-content:center;gap:var(--space-2);min-height:40px;padding:0 var(--space-4);border:var(--border-width-1) solid transparent;border-radius:var(--radius-2);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--weight-semibold);line-height:1;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color var(--duration-1) var(--ease-standard),border-color var(--duration-1) var(--ease-standard),color var(--duration-1) var(--ease-standard),translate var(--duration-1) var(--ease-standard)}.etch-button:active:not(:disabled,[aria-disabled=true]){translate:0 1px}.etch-button>svg{flex:none;width:16px;height:16px}.etch-button[data-variant=primary]{background:var(--color-action-primary);color:var(--color-text-on-action)}.etch-button[data-variant=primary]:hover:not(:disabled,[aria-disabled=true]){background:var(--color-action-primary-hover)}.etch-button[data-variant=secondary]{border-color:var(--color-border-default);background:var(--color-surface-raised);color:var(--color-text-primary)}.etch-button[data-variant=secondary]:hover:not(:disabled,[aria-disabled=true]){border-color:var(--color-border-strong);background:var(--color-hover-wash)}.etch-button[data-variant=ghost]{background:transparent;color:var(--color-text-secondary)}.etch-button[data-variant=ghost]:hover:not(:disabled,[aria-disabled=true]){background:var(--color-hover-wash);color:var(--color-text-primary)}.etch-button[data-variant=danger]{border-color:var(--color-danger);background:transparent;color:var(--color-danger)}.etch-button[data-variant=danger]:hover:not(:disabled,[aria-disabled=true]){background:var(--color-danger-wash)}.etch-button[data-variant=signal]{border-color:var(--color-signal-border);background:var(--color-signal-wash);color:var(--color-text-primary)}.etch-button[data-variant=signal]:hover:not(:disabled,[aria-disabled=true]){background:var(--color-signal);color:var(--color-text-on-signal)}.etch-button[data-size=compact]{min-height:32px;padding:0 var(--space-3);font-size:var(--text-xs)}.etch-button[data-size=large]{min-height:var(--touch-target);padding:0 var(--space-5);font-size:var(--text-base)}.etch-button[data-block=true]{display:flex;width:100%}.etch-button[data-loading=true]{cursor:progress;pointer-events:none}.etch-button[data-loading=true]>:not(.etch-button__spinner){visibility:hidden}.etch-button__spinner{position:absolute;width:16px;height:16px;border:2px solid currentcolor;border-radius:50%;border-top-color:transparent;animation:etch-spin .7s linear infinite}.etch-icon-button{display:inline-grid;place-items:center;width:36px;height:36px;border:var(--border-width-1) solid transparent;border-radius:var(--radius-2);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:background-color var(--duration-1) var(--ease-standard),color var(--duration-1) var(--ease-standard)}.etch-icon-button:hover:not(:disabled,[aria-disabled=true]){background:var(--color-hover-wash);color:var(--color-text-primary)}.etch-icon-button[aria-pressed=true]{background:var(--color-selected-wash);color:var(--color-brand-text)}.etch-icon-button[data-size=large]{width:var(--touch-target);height:var(--touch-target)}.etch-icon-button[data-tone=danger]:hover:not(:disabled){background:var(--color-danger-wash);color:var(--color-danger)}.etch-link{display:inline-flex;align-items:center;gap:var(--space-1);border-radius:var(--radius-1);color:var(--color-brand-text);font-weight:var(--weight-medium);text-decoration:underline;text-decoration-color:color-mix(in srgb,currentcolor 35%,transparent);text-underline-offset:.18em;background:none;cursor:pointer}.etch-link:hover{text-decoration-color:currentcolor}.etch-button-group{display:inline-flex;padding:3px;border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-2);background:var(--color-surface-sunken);gap:2px}.etch-button-group>.etch-button{min-height:30px;border-radius:var(--radius-1);font-size:var(--text-xs)}.etch-button-group>.etch-button[aria-pressed=true]{background:var(--color-surface-raised);color:var(--color-text-primary);box-shadow:var(--elevation-1)}@media not (min-width:640px){.etch-button,.etch-button[data-size=compact]{min-height:var(--touch-target)}.etch-icon-button{width:var(--touch-target);height:var(--touch-target)}}}@layer components{.etch-field{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.etch-field__label{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-primary)}.etch-field__required{margin-inline-start:.25em;color:var(--color-brand-text)}.etch-field__control,.etch-input,.etch-textarea,.etch-select{width:100%;min-height:40px;padding:var(--space-2) var(--space-3);border:var(--border-width-1) solid var(--color-border-default);border-radius:var(--radius-2);background:var(--color-surface-raised);color:var(--color-text-primary);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-snug);transition:border-color var(--duration-1) var(--ease-standard),background-color var(--duration-1) var(--ease-standard)}.etch-textarea{min-height:96px;resize:vertical}.etch-select{padding-inline-end:var(--space-6);background-image:linear-gradient(45deg,transparent 50%,currentcolor 50%),linear-gradient(135deg,currentcolor 50%,transparent 50%);background-position:right var(--space-4) center,right var(--space-3) center;background-size:5px 5px,5px 5px;background-repeat:no-repeat;-webkit-appearance:none;-moz-appearance:none;appearance:none}.etch-input::placeholder,.etch-textarea::placeholder{color:var(--color-text-tertiary)}.etch-input:hover:not(:disabled),.etch-textarea:hover:not(:disabled),.etch-select:hover:not(:disabled){border-color:var(--color-border-strong)}.etch-field[aria-invalid=true] .etch-input,.etch-input[aria-invalid=true],.etch-textarea[aria-invalid=true],.etch-select[aria-invalid=true]{border-color:var(--color-danger);background:var(--color-danger-wash)}.etch-field__hint{font-size:var(--text-xs);color:var(--color-text-tertiary)}.etch-field__error{display:flex;align-items:flex-start;gap:var(--space-1);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-danger)}.etch-field__error:before{content:"!";display:grid;place-items:center;flex:none;width:14px;height:14px;border:var(--border-width-1) solid currentcolor;border-radius:50%;font-size:10px;font-weight:var(--weight-bold);line-height:1}.etch-choice{display:flex;align-items:flex-start;gap:var(--space-3);min-height:var(--touch-target);padding:var(--space-2) 0;cursor:pointer}.etch-choice input[type=checkbox],.etch-choice input[type=radio]{flex:none;width:20px;height:20px;margin:2px 0 0;accent-color:var(--color-action-primary);cursor:pointer}.etch-choice__body{display:flex;flex-direction:column;gap:2px;min-width:0}.etch-choice__label{font-size:var(--text-sm);font-weight:var(--weight-medium)}.etch-choice__hint{font-size:var(--text-xs);color:var(--color-text-tertiary)}.etch-radio-group{display:flex;flex-direction:column;gap:var(--space-1);border:0;margin:0;padding:0}.etch-radio-group>legend{padding:0 0 var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-semibold)}.etch-switch{display:inline-flex;align-items:center;gap:var(--space-3);cursor:pointer}.etch-switch__track{display:flex;align-items:center;flex:none;width:44px;height:26px;padding:3px;border:var(--border-width-1) solid var(--color-border-default);border-radius:var(--radius-pill);background:var(--color-surface-sunken);transition:background-color var(--duration-2) var(--ease-standard)}.etch-switch__thumb{width:18px;height:18px;border-radius:50%;background:var(--color-text-secondary);transition:translate var(--duration-2) var(--ease-standard),background-color var(--duration-2) var(--ease-standard)}.etch-switch[aria-checked=true] .etch-switch__track,.etch-switch input:checked+.etch-switch__track{border-color:var(--color-action-primary);background:var(--color-action-primary)}.etch-switch[aria-checked=true] .etch-switch__thumb,.etch-switch input:checked+.etch-switch__track .etch-switch__thumb{background:var(--color-text-on-action);translate:18px 0}.etch-search{display:flex;align-items:center;gap:var(--space-2);min-height:36px;padding-inline:var(--space-3);border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-2);background:var(--color-surface-raised);color:var(--color-text-tertiary)}.etch-search:focus-within{border-color:var(--color-focus)}.etch-search>input{flex:1;min-width:0;border:0;background:none;color:var(--color-text-primary);font-size:var(--text-sm);outline:none}}@layer components{.etch-sidebar{display:flex;flex-direction:column;gap:var(--space-4);min-height:0;padding:var(--space-4) var(--space-3)}.etch-sidebar__brand{display:flex;align-items:center;gap:var(--space-2);min-height:40px;padding-inline:var(--space-2);border-radius:var(--radius-2);color:inherit;text-decoration:none}.etch-sidebar__section{display:flex;flex-direction:column;gap:2px;min-height:0}.etch-sidebar__section-title{padding:var(--space-2) var(--space-2) var(--space-1);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-label);color:var(--color-text-tertiary);text-transform:uppercase}.etch-sidebar__scroll{flex:1;min-height:0;overflow-y:auto}.etch-sidebar__footer{padding-top:var(--space-3);border-top:var(--border-width-1) solid var(--color-border-subtle)}.etch-nav-item{display:flex;position:relative;align-items:center;gap:var(--space-3);width:100%;min-height:40px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-2);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--weight-medium);text-align:start;text-decoration:none;transition:background-color var(--duration-1) var(--ease-standard),color var(--duration-1) var(--ease-standard)}.etch-nav-item:hover{background:var(--color-hover-wash);color:var(--color-text-primary)}.etch-nav-item[aria-current=page]{background:var(--color-selected-wash);color:var(--color-text-primary);font-weight:var(--weight-semibold)}.etch-nav-item[aria-current=page]:before{content:"";position:absolute;inset-block:8px;inset-inline-start:0;width:3px;border-radius:var(--radius-pill);background:var(--color-brand-mark)}.etch-nav-item>svg{flex:none;width:18px;height:18px}.etch-nav-item__label{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.etch-nav-item__count{flex:none;padding:2px var(--space-2);border-radius:var(--radius-pill);background:var(--color-brand-wash);color:var(--color-brand-text);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--weight-bold)}.etch-history-group+.etch-history-group{margin-top:var(--space-3)}.etch-history-list{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;list-style:none}.etch-history-item{display:flex;align-items:center;gap:var(--space-1);width:100%;border-radius:var(--radius-2)}.etch-history-item:hover,.etch-history-item:focus-within{background:var(--color-hover-wash)}.etch-history-item[data-active]{background:var(--color-selected-wash)}.etch-history-item__link{display:flex;flex:1;align-items:center;gap:var(--space-2);min-width:0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-2);color:var(--color-text-secondary);font-size:var(--text-sm);text-align:start;text-decoration:none}.etch-history-item:hover .etch-history-item__link,.etch-history-item[data-active] .etch-history-item__link{color:var(--color-text-primary)}.etch-history-item__title{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.etch-history-item__actions{display:flex;flex:none;gap:2px;width:0;overflow:hidden;opacity:0;transition:opacity var(--duration-1) var(--ease-standard)}.etch-history-item:hover .etch-history-item__actions,.etch-history-item:focus-within .etch-history-item__actions{width:auto;padding-inline-end:var(--space-1);opacity:1}@media(hover:none){.etch-history-item__actions{width:auto;padding-inline-end:var(--space-1);opacity:1}}.etch-history-item[data-editing]{padding:var(--space-1) var(--space-2)}@media not (min-width:1200px){.etch-sidebar{align-items:center;padding-inline:var(--space-2)}.etch-sidebar .etch-sidebar__section-title,.etch-sidebar .etch-sidebar__scroll{display:none}.etch-sidebar .etch-nav-item__label{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.etch-sidebar .etch-nav-item{justify-content:center;width:var(--touch-target);height:var(--touch-target);min-height:var(--touch-target);padding:0}.etch-sidebar .etch-nav-item__count{position:absolute;top:2px;right:2px;padding:0 5px;background:var(--color-action-primary);color:var(--color-text-on-action);font-size:10px}}.etch-mobile-nav{display:flex;padding-bottom:env(safe-area-inset-bottom);border-top:var(--border-width-1) solid var(--color-border-subtle);background:var(--color-surface-raised)}.etch-mobile-nav__item{display:flex;position:relative;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:var(--mobile-nav-height);padding:var(--space-2) var(--space-1);color:var(--color-text-tertiary);font-size:11px;font-weight:var(--weight-medium);text-decoration:none}.etch-mobile-nav__item>svg{width:22px;height:22px}.etch-mobile-nav__item[aria-current=page]{color:var(--color-brand-text)}.etch-mobile-nav__item[aria-current=page]:before{content:"";position:absolute;top:0;width:28px;height:3px;border-radius:0 0 var(--radius-pill) var(--radius-pill);background:var(--color-brand-mark)}.etch-mobile-nav__count{position:absolute;top:6px;left:50%;margin-inline-start:6px;padding:0 5px;border-radius:var(--radius-pill);background:var(--color-action-primary);color:var(--color-text-on-action);font-family:var(--font-mono);font-size:10px;font-weight:var(--weight-bold)}.etch-tabs{display:flex;gap:var(--space-1);overflow-x:auto;border-bottom:var(--border-width-1) solid var(--color-border-subtle);scrollbar-width:none}.etch-tabs::-webkit-scrollbar{display:none}.etch-tab{position:relative;padding:var(--space-3) var(--space-3);border:0;background:none;color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--weight-medium);white-space:nowrap;cursor:pointer}.etch-tab:hover{color:var(--color-text-primary)}.etch-tab[aria-selected=true]{color:var(--color-text-primary);font-weight:var(--weight-semibold)}.etch-tab[aria-selected=true]:after{content:"";position:absolute;right:var(--space-2);bottom:-1px;left:var(--space-2);height:2px;background:var(--color-brand-mark)}.etch-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--color-text-tertiary)}.etch-breadcrumb__sep{opacity:.6}}@layer components{.etch-scrim{position:fixed;z-index:var(--z-dialog);top:0;right:0;bottom:0;left:0;background:var(--color-surface-overlay);animation:etch-fade-in var(--duration-2) var(--ease-standard) both}.etch-dialog{display:flex;position:fixed;z-index:var(--z-dialog);top:50%;left:50%;flex-direction:column;width:min(560px,calc(100vw - var(--space-6)));max-height:min(80dvh,720px);border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-3);background:var(--color-surface-raised);box-shadow:var(--elevation-3);translate:-50% -50%;animation:etch-rise-in var(--duration-3) var(--ease-entrance) both}.etch-dialog[data-size=wide]{width:min(880px,calc(100vw - var(--space-6)))}.etch-dialog__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-5) var(--space-5) var(--space-3)}.etch-dialog__title{font-size:var(--text-lg);font-weight:var(--weight-bold)}.etch-dialog__body{flex:1;min-height:0;overflow-y:auto;padding:0 var(--space-5) var(--space-4)}.etch-dialog__footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-top:var(--border-width-1) solid var(--color-border-subtle)}.etch-drawer{display:flex;position:fixed;z-index:var(--z-drawer);flex-direction:column;border:var(--border-width-1) solid var(--color-border-subtle);background:var(--color-surface-raised);box-shadow:var(--elevation-3)}.etch-drawer[data-side=start]{inset:0 auto 0 0;width:min(360px,88vw);animation:etch-slide-in-left var(--duration-3) var(--ease-entrance) both}.etch-drawer[data-side=end]{inset:0 0 0 auto;width:min(420px,92vw)}.etch-drawer[data-side=bottom]{inset:auto 0 0 0;max-height:88dvh;border-radius:var(--radius-4) var(--radius-4) 0 0;padding-bottom:env(safe-area-inset-bottom);animation:etch-slide-in-bottom var(--duration-3) var(--ease-entrance) both}.etch-drawer__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4);border-bottom:var(--border-width-1) solid var(--color-border-subtle)}.etch-drawer__body{flex:1;min-height:0;overflow-y:auto;padding:var(--space-4)}.etch-drawer__handle{width:40px;height:4px;margin:var(--space-2) auto 0;border-radius:var(--radius-pill);background:var(--color-border-default)}.etch-menu,.etch-popover{position:absolute;z-index:var(--z-popover);min-width:200px;padding:var(--space-1);border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-2);background:var(--color-surface-raised);box-shadow:var(--elevation-2);animation:etch-rise-in var(--duration-2) var(--ease-entrance) both}.etch-popover{max-width:min(380px,calc(100vw - var(--space-6)));padding:var(--space-4)}.etch-menu__item{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:36px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-1);color:var(--color-text-primary);font-size:var(--text-sm);text-align:start}.etch-menu__item:hover,.etch-menu__item[data-active=true]{background:var(--color-hover-wash)}.etch-menu__item[data-tone=danger]{color:var(--color-danger)}.etch-menu__separator{height:1px;margin:var(--space-1) 0;background:var(--color-border-subtle)}.etch-tooltip{position:absolute;z-index:var(--z-popover);max-width:260px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-2);background:var(--color-surface-inverse);color:var(--color-text-inverse);font-size:var(--text-xs);line-height:var(--leading-snug);pointer-events:none}@media not (min-width:640px){.etch-dialog{inset:auto 0 0;top:auto;left:0;width:100%;max-height:92dvh;border-radius:var(--radius-4) var(--radius-4) 0 0;padding-bottom:env(safe-area-inset-bottom);translate:0;animation:etch-slide-in-bottom var(--duration-3) var(--ease-entrance) both}.etch-drawer[data-side=end]{width:100%}}}@layer components{.etch-card{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-3);background:var(--color-surface-raised)}.etch-card[data-interactive=true]{cursor:pointer;text-align:start;transition:border-color var(--duration-1) var(--ease-standard),translate var(--duration-1) var(--ease-standard)}.etch-card[data-interactive=true]:hover{border-color:var(--color-border-strong);translate:0 -1px}.etch-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.etch-card__title{font-size:var(--text-base);font-weight:var(--weight-semibold);line-height:var(--leading-snug)}.etch-badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:3px var(--space-2);border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-pill);background:var(--color-surface-sunken);color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:var(--weight-semibold);line-height:1.4;white-space:nowrap}.etch-badge[data-tone=brand]{border-color:transparent;background:var(--color-brand-wash);color:var(--color-brand-text)}.etch-badge[data-tone=signal]{border-color:var(--color-signal-border);background:var(--color-signal-wash);color:var(--color-text-primary)}.etch-badge[data-tone=success]{border-color:transparent;background:var(--color-success-wash);color:var(--color-success)}.etch-badge[data-tone=warning]{border-color:transparent;background:var(--color-warning-wash);color:var(--color-warning)}.etch-badge[data-tone=danger]{border-color:transparent;background:var(--color-danger-wash);color:var(--color-danger)}.etch-progress{display:flex;flex-direction:column;gap:var(--space-1)}.etch-progress__track{overflow:hidden;height:6px;border-radius:var(--radius-pill);background:var(--color-surface-sunken)}.etch-progress__bar{height:100%;border-radius:inherit;background:var(--color-action-primary);transition:width var(--duration-3) var(--ease-standard)}.etch-progress__label{display:flex;justify-content:space-between;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-tertiary)}.etch-skeleton{border-radius:var(--radius-2);background:linear-gradient(90deg,var(--color-surface-sunken) 0%,var(--color-hover-wash) 50%,var(--color-surface-sunken) 100%) 0 0 / 200% 100%;animation:etch-shimmer 1.6s linear infinite}.etch-skeleton[data-shape=text]{height:1em;border-radius:var(--radius-1)}.etch-skeleton[data-shape=circle]{border-radius:50%}.etch-spinner{display:inline-block;flex:none;width:18px;height:18px;border:2px solid var(--color-border-default);border-radius:50%;border-top-color:var(--color-action-primary);animation:etch-spin .7s linear infinite}.etch-spinner[data-size=lg]{width:32px;height:32px;border-width:3px}.etch-alert{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border:var(--border-width-1) solid var(--color-border-subtle);border-inline-start:var(--border-width-3) solid var(--color-border-strong);border-radius:var(--radius-2);background:var(--color-surface-raised);font-size:var(--text-sm)}.etch-alert__icon{flex:none;margin-top:1px}.etch-alert__body{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.etch-alert__title{font-weight:var(--weight-semibold)}.etch-alert[data-tone=info]{border-inline-start-color:var(--color-info);background:var(--color-info-wash)}.etch-alert[data-tone=success]{border-inline-start-color:var(--color-success);background:var(--color-success-wash)}.etch-alert[data-tone=warning]{border-inline-start-color:var(--color-warning);background:var(--color-warning-wash)}.etch-alert[data-tone=danger]{border-inline-start-color:var(--color-danger);background:var(--color-danger-wash)}.etch-toast-region{display:flex;position:fixed;z-index:var(--z-toast);right:var(--space-4);bottom:var(--space-4);flex-direction:column;gap:var(--space-2);width:min(380px,calc(100vw - var(--space-6)))}.etch-toast{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-2);background:var(--color-surface-raised);box-shadow:var(--elevation-2);font-size:var(--text-sm);animation:etch-rise-in var(--duration-3) var(--ease-entrance) both}.etch-toast__body{flex:1;min-width:0}.etch-toast__title{font-weight:var(--weight-semibold)}.etch-toast-region__group{display:flex;flex-direction:column;gap:var(--space-2)}.etch-toast[data-tone=success]{border-inline-start:var(--border-width-3) solid var(--color-success)}.etch-toast[data-tone=danger]{border-inline-start:var(--border-width-3) solid var(--color-danger)}.etch-toast[data-tone=signal]{border-inline-start:var(--border-width-3) solid var(--color-signal)}.etch-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-5);text-align:center}.etch-empty__title{font-size:var(--text-lg);font-weight:var(--weight-bold);letter-spacing:var(--tracking-title)}.etch-empty__body{max-width:46ch;color:var(--color-text-secondary);font-size:var(--text-sm)}.etch-separator{height:1px;border:0;margin:0;background:var(--color-border-subtle)}.etch-separator[data-orientation=vertical]{width:1px;height:auto;align-self:stretch}.etch-avatar{display:grid;flex:none;place-items:center;width:32px;height:32px;overflow:hidden;border-radius:var(--radius-2);background:var(--color-surface-inverse);color:var(--color-text-inverse);font-size:var(--text-xs);font-weight:var(--weight-bold);text-transform:uppercase}.etch-avatar[data-tone=brand]{background:var(--color-action-primary);color:var(--color-text-on-action)}.etch-avatar[data-size=lg]{width:40px;height:40px;font-size:var(--text-sm)}@media not (min-width:640px){.etch-toast-region{right:var(--space-3);bottom:calc(var(--mobile-nav-height) + var(--space-3));left:var(--space-3);width:auto}}}@layer components{.etch-chat{display:flex;flex:1;min-width:0;min-height:0}.etch-chat__main{display:flex;flex:1;flex-direction:column;min-width:0;min-height:0}.etch-chat__column{width:100%;max-width:var(--content-max);margin-inline:auto;padding-inline:var(--page-gutter)}.etch-chat__header{flex:none;border-bottom:var(--border-width-1) solid var(--color-border-subtle)}.etch-chat__header>.etch-page-header{border-bottom:0}.etch-chat__notice{padding-block:var(--space-4) 0}.etch-chat__thread{flex:1;min-height:0;overflow-y:auto;padding-block:var(--space-5) var(--space-6);scrollbar-gutter:stable both-edges;scroll-behavior:smooth}.etch-chat__composer{flex:none;padding-block:var(--space-2) var(--space-4)}.etch-chat>.etch-source-panel{flex:none;width:min(380px,32vw);min-height:0;overflow-y:auto;border-inline-start:var(--border-width-1) solid var(--color-border-subtle);background:var(--color-surface-raised)}@media(prefers-reduced-motion:reduce){.etch-chat__thread{scroll-behavior:auto}}.etch-chat__suggestions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-4)}.etch-message{display:flex;gap:var(--space-3);padding-block:var(--space-5)}.etch-message+.etch-message{border-top:var(--border-width-1) solid var(--color-border-subtle)}.etch-message__avatar{flex:none}.etch-message__main{display:flex;flex:1;flex-direction:column;gap:var(--space-2);min-width:0}.etch-message__header{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2)}.etch-message__author{font-size:var(--text-sm);font-weight:var(--weight-semibold)}.etch-message__time{color:var(--color-text-tertiary);font-family:var(--font-mono);font-size:var(--text-xs)}.etch-message__body,.etch-message__text,.etch-message__markdown{min-width:0;font-size:var(--text-md);line-height:var(--leading-relaxed);overflow-wrap:anywhere}.etch-message__markdown>*+*{margin-top:var(--space-3)}.etch-message__markdown pre,.etch-message__markdown table{max-width:100%;overflow-x:auto}.etch-message[data-role=user] .etch-message__main{padding:var(--space-3) var(--space-4);border-radius:var(--radius-3);background:var(--color-surface-sunken)}.etch-message[data-role=user] .etch-message__body{font-size:var(--text-base)}.etch-message[data-error=true] .etch-message__main{padding-inline-start:var(--space-3);border-inline-start:var(--border-width-3) solid var(--color-danger)}.etch-message__trust{display:inline-flex;align-items:center;align-self:flex-start;gap:var(--space-1);padding:2px var(--space-2);border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-pill);color:var(--color-text-tertiary);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase}.etch-message__trust[data-trust=grounded]{border-color:transparent;background:var(--color-success-wash);color:var(--color-success)}.etch-message__trust[data-trust=model]{border-style:dashed}.etch-message__trust[data-trust=inference]{border-color:transparent;background:var(--color-warning-wash);color:var(--color-warning)}.etch-message__note{color:var(--color-text-tertiary);font-size:var(--text-xs)}.etch-message__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-top:var(--space-1)}.etch-message__actions .etch-button:not([aria-pressed=true]),.etch-message__actions .etch-icon-button:not([aria-pressed=true]){color:var(--color-text-tertiary);transition:color var(--duration-1) var(--ease-standard)}.etch-message:hover .etch-message__actions .etch-button:not([aria-pressed=true]),.etch-message:hover .etch-message__actions .etch-icon-button:not([aria-pressed=true]),.etch-message:focus-within .etch-message__actions .etch-button:not([aria-pressed=true]),.etch-message:focus-within .etch-message__actions .etch-icon-button:not([aria-pressed=true]){color:var(--color-text-primary)}.etch-message__queries,.etch-message__legacy-sources{padding:var(--space-3);border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-2);background:var(--color-surface-sunken);font-size:var(--text-xs)}.etch-message__queries-label{display:block;margin-bottom:var(--space-1);color:var(--color-text-tertiary);font-family:var(--font-mono);letter-spacing:var(--tracking-label);text-transform:uppercase}.etch-message__legacy-list{display:flex;flex-direction:column;gap:var(--space-1);margin:0;padding-inline-start:var(--space-4);color:var(--color-text-secondary)}.etch-message__suggestions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.etch-message__streaming .etch-message__text:after{content:"";display:inline-block;width:.5em;height:1em;margin-inline-start:2px;background:var(--color-brand-mark);translate:0 .15em;animation:etch-fade-in .9s steps(2,jump-none) infinite alternate}.etch-message__thinking{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-text-tertiary);font-size:var(--text-sm)}.etch-message__dots{display:inline-flex;gap:3px}.etch-message__dots>span{width:5px;height:5px;border-radius:50%;background:currentcolor;animation:etch-fade-in 1s ease-in-out infinite alternate}.etch-message__dots>span:nth-child(2){animation-delay:.16s}.etch-message__dots>span:nth-child(3){animation-delay:.32s}.etch-composer{display:flex;position:sticky;bottom:0;flex-direction:column;gap:var(--space-2);padding:var(--space-3) var(--space-4) var(--space-4);border:var(--border-width-1) solid var(--color-border-default);border-radius:var(--radius-3);background:var(--color-surface-raised);box-shadow:var(--elevation-2)}.etch-composer:focus-within{border-color:var(--color-focus)}.etch-composer__input{width:100%;min-height:48px;max-height:40vh;padding:0;border:0;background:none;color:var(--color-text-primary);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);resize:none;outline:none}.etch-composer__toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.etch-composer__spacer{flex:1}.etch-composer__hint{color:var(--color-text-tertiary);font-size:var(--text-xs)}.etch-composer__scope{display:inline-flex;align-items:center;gap:var(--space-1)}.etch-composer__attachments{display:flex;flex-wrap:wrap;gap:var(--space-2)}.etch-composer__offline,.etch-composer__restored{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs)}.etch-composer__offline{color:var(--color-warning)}.etch-composer__restored{color:var(--color-text-tertiary)}.etch-etch-action{display:inline-flex;align-items:center;gap:var(--space-2)}.etch-etch-action__hint,.etch-etch-action__status{color:var(--color-text-tertiary);font-size:var(--text-xs)}.etch-etch-action__status[data-state=saved]{color:var(--color-success)}.etch-preview__form{display:flex;flex-direction:column;gap:var(--space-4)}.etch-preview__review{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2);padding:var(--space-3);border:var(--border-width-1) solid var(--color-signal-border);border-radius:var(--radius-2);background:var(--color-signal-wash)}.etch-preview__review-label{font-size:var(--text-sm);font-weight:var(--weight-semibold)}.etch-preview__review-value{font-family:var(--font-mono);font-size:var(--text-sm)}.etch-preview__review-hint{flex-basis:100%;color:var(--color-text-secondary);font-size:var(--text-xs)}.etch-preview__locator{color:var(--color-text-tertiary);font-family:var(--font-mono);font-size:var(--text-xs)}@media not (min-width:640px){.etch-message{gap:var(--space-2);padding-block:var(--space-4)}.etch-composer{border-radius:var(--radius-3) var(--radius-3) 0 0;box-shadow:none}}}@layer components{.etch-citation{display:inline;white-space:nowrap}.etch-citation__marker{display:inline-flex;align-items:center;justify-content:center;min-width:1.5em;height:1.35em;padding-inline:.35em;border:var(--border-width-1) solid var(--color-border-default);border-radius:var(--radius-1);background:var(--color-surface-sunken);color:var(--color-text-secondary);font-family:var(--font-mono);font-size:.72em;font-weight:var(--weight-bold);line-height:1;vertical-align:.25em;cursor:pointer;transition:background-color var(--duration-1) var(--ease-standard),color var(--duration-1) var(--ease-standard)}.etch-citation__marker:hover,.etch-citation__marker[aria-expanded=true],.etch-citation__marker[data-active=true]{border-color:transparent;background:var(--color-brand-wash);color:var(--color-brand-text)}.etch-citation__marker[data-state=unreachable],.etch-citation__marker[data-state=stale]{border-style:dashed;border-color:var(--color-warning);color:var(--color-warning)}.etch-source-panel{display:flex;flex-direction:column;gap:var(--space-3);min-height:0}.etch-source-panel__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-4) var(--space-4) 0}.etch-source-panel__title{font-size:var(--text-sm);font-weight:var(--weight-bold);letter-spacing:var(--tracking-title)}.etch-source-panel__list{display:flex;flex:1;flex-direction:column;gap:var(--space-2);min-height:0;overflow-y:auto;padding:0 var(--space-4) var(--space-4)}.etch-source-panel__loading{display:flex;flex-direction:column;gap:var(--space-2);padding:0 var(--space-4)}.etch-source-card{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-2);background:var(--color-surface-raised);scroll-margin:var(--space-4)}.etch-source-card[data-active=true]{border-color:var(--color-brand-mark);box-shadow:0 0 0 1px var(--color-brand-mark)}.etch-source-card[data-state=unreachable],.etch-source-card[data-state=stale]{border-style:dashed;border-color:var(--color-warning);background:var(--color-warning-wash)}.etch-source-card__head{display:flex;align-items:flex-start;gap:var(--space-2)}.etch-source-card__index{display:inline-flex;flex:none;align-items:center;justify-content:center;min-width:24px;height:20px;border-radius:var(--radius-1);background:var(--color-surface-sunken);color:var(--color-text-secondary);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--weight-bold)}.etch-source-card__title{flex:1;min-width:0;font-size:var(--text-sm);font-weight:var(--weight-semibold);line-height:var(--leading-snug);overflow-wrap:anywhere}.etch-source-card__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);color:var(--color-text-tertiary);font-size:var(--text-xs)}.etch-source-card__locator{font-family:var(--font-mono)}.etch-source-card__snippet{margin:0;padding:var(--space-2) var(--space-3);border-inline-start:var(--border-width-2) solid var(--color-border-default);color:var(--color-text-secondary);font-size:var(--text-xs);line-height:var(--leading-normal);overflow-wrap:anywhere}.etch-source-card__actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.etch-trust-legend{display:flex;flex-wrap:wrap;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-top:var(--border-width-1) solid var(--color-border-subtle);color:var(--color-text-tertiary);font-size:var(--text-xs)}.etch-trust-legend>*{display:inline-flex;align-items:center;gap:var(--space-1)}}@layer components{.etch-mermaid{margin:0;border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-2);background:var(--color-surface-raised);overflow:hidden}.etch-mermaid__canvas{display:flex;justify-content:center;padding:var(--space-4);overflow-x:auto}.etch-mermaid__canvas svg{max-width:100%;height:auto}.etch-mermaid[data-state=loading] .etch-mermaid__placeholder{margin:0;padding:var(--space-4);color:var(--color-text-tertiary);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--leading-normal);white-space:pre-wrap}.etch-mermaid__caption{display:flex;justify-content:flex-end;padding:var(--space-1) var(--space-2);border-top:var(--border-width-1) solid var(--color-border-subtle);background:var(--color-surface-sunken)}.etch-mermaid__toggle{padding:var(--space-1) var(--space-2);border:0;border-radius:var(--radius-1);background:transparent;color:var(--color-text-secondary);font-family:inherit;font-size:var(--text-xs);cursor:pointer}.etch-mermaid__toggle:hover{color:var(--color-text-primary);background:var(--color-hover-wash)}}@layer components{.etch-mission-center__subtitle{max-width:var(--measure);color:var(--color-text-secondary)}.etch-mission-counts{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-3);margin:var(--space-5) 0 0}.etch-mission-counts__item{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3) var(--space-4);border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-3);background:var(--color-surface-raised)}.etch-mission-counts__item dt{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-secondary)}.etch-mission-counts__item dd{margin:0;font-size:var(--text-xl);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;line-height:var(--leading-tight);color:var(--color-text-primary)}.etch-mission-counts__item[data-kind=due]{border-color:var(--color-signal-border)}.etch-mission-counts__item[data-kind=secure] dd{color:var(--color-success)}.etch-mission-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-4);margin:var(--space-5) 0;padding-bottom:var(--space-4);border-bottom:var(--border-width-1) solid var(--color-border-subtle)}.etch-mission-filters>.etch-field{flex:1 1 200px;min-width:0}.etch-mission-filters__reset{flex:0 0 auto}.etch-mission-section__head{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-3)}.etch-mission-section__title{margin:0;font-size:var(--text-lg);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title);color:var(--color-text-primary)}.etch-mission-section__description{max-width:var(--measure);margin:var(--space-1) 0 var(--space-4);font-size:var(--text-sm);color:var(--color-text-secondary)}.etch-mission-section__list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-4);margin:0;padding:0;list-style:none}.etch-mission-card{--mission-card-accent: var(--color-border-default);display:flex;flex-direction:column;gap:var(--space-3);height:100%;padding:var(--space-4);border:var(--border-width-1) solid var(--color-border-subtle);border-inline-start:var(--border-width-3) solid var(--mission-card-accent);border-radius:var(--radius-3);background:var(--color-surface-raised);transition:border-color var(--duration-1) var(--ease-standard),box-shadow var(--duration-1) var(--ease-standard)}.etch-mission-card:hover{border-color:var(--color-border-default);box-shadow:var(--elevation-1)}.etch-mission-card[data-status=due]{--mission-card-accent: var(--color-signal-border)}.etch-mission-card[data-status=progress]{--mission-card-accent: var(--color-action-primary)}.etch-mission-card[data-status=secure]{--mission-card-accent: var(--color-success)}.etch-mission-card__head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2)}.etch-mission-card__title{margin:0;font-size:var(--text-base);font-weight:var(--weight-semibold);line-height:var(--leading-snug);color:var(--color-text-primary)}.etch-mission-card__teaser{display:-webkit-box;margin:0;overflow:hidden;font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--color-text-secondary);-webkit-box-orient:vertical;-webkit-line-clamp:3}.etch-mission-card__meta{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);margin:0}.etch-mission-card__meta-item{display:flex;flex-direction:column;min-width:0}.etch-mission-card__meta-item dt{font-size:var(--text-xs);color:var(--color-text-tertiary)}.etch-mission-card__meta-item dd{margin:0;font-size:var(--text-sm);color:var(--color-text-primary);overflow-wrap:anywhere}.etch-mission-card__footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);margin-top:auto;padding-top:var(--space-3);border-top:var(--border-width-1) solid var(--color-border-subtle)}.etch-mission-runner{display:flex;flex-direction:column;gap:var(--space-5);padding-block:var(--space-5) var(--space-8)}.etch-mission-runner__header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.etch-mission-runner__identity{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.etch-mission-runner__title{margin:0;font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title);line-height:var(--leading-tight);color:var(--color-text-primary)}.etch-mission-runner__scenario{max-width:var(--measure);margin:0;color:var(--color-text-secondary)}.etch-mission-runner__progress{display:flex;flex-direction:column;gap:var(--space-3)}.etch-mission-stepper{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0;padding:0;list-style:none}.etch-mission-stepper__item{display:flex;flex:1 1 auto;align-items:center;gap:var(--space-2);min-width:0;padding:var(--space-2) var(--space-3);border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-pill);font-size:var(--text-xs);color:var(--color-text-tertiary)}.etch-mission-stepper__index{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border:var(--border-width-1) solid currentcolor;border-radius:var(--radius-pill);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums}.etch-mission-stepper__label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.etch-mission-stepper__item[data-state=done]{border-color:var(--color-success);color:var(--color-success)}.etch-mission-stepper__item[data-state=current]{border-color:var(--color-action-primary);background:var(--color-brand-wash);font-weight:var(--weight-semibold);color:var(--color-brand-text)}.etch-mission-step{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5);border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-4);background:var(--color-surface-raised)}.etch-mission-step[data-state=busy]{border-color:var(--color-border-default)}.etch-mission-step__heading{margin:0;font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text-primary)}.etch-mission-step__heading:focus-visible{outline:var(--border-width-2) solid var(--color-focus);outline-offset:var(--space-1)}.etch-mission-step__help{max-width:var(--measure);margin:0;font-size:var(--text-sm);color:var(--color-text-secondary)}.etch-mission-step__case{max-width:var(--measure);margin:0;padding:var(--space-4);border-inline-start:var(--border-width-3) solid var(--color-signal-border);border-radius:var(--radius-2);background:var(--color-signal-wash);font-size:var(--text-md);line-height:var(--leading-relaxed);color:var(--color-text-primary)}.etch-mission-step__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-3)}.etch-confidence{display:flex;flex-direction:column;gap:var(--space-3);margin:0;padding:0;border:0}.etch-confidence__legend{padding:0;font-size:var(--text-md);font-weight:var(--weight-medium);line-height:var(--leading-snug);color:var(--color-text-primary)}.etch-confidence__scale{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--space-2)}.etch-confidence__option{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);min-height:var(--touch-target);padding:var(--space-3) var(--space-2);border:var(--border-width-1) solid var(--color-border-default);border-radius:var(--radius-3);background:var(--color-surface-raised);text-align:center;cursor:pointer;transition:border-color var(--duration-1) var(--ease-standard),background-color var(--duration-1) var(--ease-standard)}.etch-confidence__option input{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.etch-confidence__option:hover{background:var(--color-hover-wash)}.etch-confidence__option:has(input:checked){border-width:var(--border-width-2);border-color:var(--color-action-primary);background:var(--color-selected-wash)}.etch-confidence__option:has(input:focus-visible){outline:var(--border-width-2) solid var(--color-focus);outline-offset:var(--space-1)}.etch-confidence__value{font-size:var(--text-lg);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;line-height:var(--leading-tight);color:var(--color-text-primary)}.etch-confidence__option:has(input:checked) .etch-confidence__value:after{content:" ✓";color:var(--color-brand-text)}.etch-confidence__label{font-size:var(--text-xs);line-height:var(--leading-snug);color:var(--color-text-secondary)}.etch-confidence__hint{margin:0;font-size:var(--text-xs);color:var(--color-text-tertiary)}.etch-mission-feedback{display:flex;flex-direction:column;gap:var(--space-5);padding:var(--space-5);border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-4);background:var(--color-surface-raised)}.etch-mission-feedback[data-outcome=pass]{border-block-start:var(--border-width-3) solid var(--color-success)}.etch-mission-feedback[data-outcome=open]{border-block-start:var(--border-width-3) solid var(--color-info)}.etch-mission-feedback__verdict h2{margin:0 0 var(--space-3);font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title);color:var(--color-text-primary)}.etch-mission-feedback__verdict h2:focus-visible{outline:var(--border-width-2) solid var(--color-focus);outline-offset:var(--space-1)}.etch-mission-feedback__block h3,.etch-mission-feedback__next h3{margin:0 0 var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text-secondary)}.etch-mission-feedback__block p{max-width:var(--measure);margin:0 0 var(--space-2)}.etch-mission-feedback__next{padding-top:var(--space-4);border-top:var(--border-width-1) solid var(--color-border-subtle)}.etch-mission-feedback__actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-4)}@media not (min-width:640px){.etch-mission-section__list{grid-template-columns:minmax(0,1fr)}.etch-mission-step{padding:var(--space-4)}.etch-mission-step__actions .etch-button,.etch-mission-feedback__actions .etch-button{flex:1 1 100%}.etch-mission-stepper__item[data-state=todo] .etch-mission-stepper__label,.etch-mission-stepper__item[data-state=done] .etch-mission-stepper__label{display:none}}@media(prefers-reduced-motion:reduce){.etch-mission-card,.etch-confidence__option{transition:none}}}@layer components{.etch-mastery-mark{--mastery-mark-color: var(--color-text-tertiary);--mastery-mark-size: 1.125rem;display:inline-flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);min-width:0;color:var(--mastery-mark-color)}.etch-mastery-mark[data-level=seen]{--mastery-mark-color: var(--color-info)}.etch-mastery-mark[data-level=practiced]{--mastery-mark-color: var(--color-warning)}.etch-mastery-mark[data-level=secure]{--mastery-mark-color: var(--color-success)}.etch-mastery-mark[data-size=compact]{--mastery-mark-size: .875rem;gap:var(--space-1)}.etch-mastery-mark__glyph{display:inline-flex;flex:0 0 auto;width:var(--mastery-mark-size);height:var(--mastery-mark-size)}.etch-mastery-mark__label{font-size:var(--text-sm);font-weight:var(--weight-semibold);white-space:nowrap;color:var(--mastery-mark-color)}.etch-mastery-mark[data-size=compact] .etch-mastery-mark__label{font-size:var(--text-xs)}.etch-mastery-mark__why{flex:1 1 100%;max-width:var(--measure);font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--color-text-secondary)}.etch-mastery-summary h2{margin:0 0 var(--space-3);font-size:var(--text-lg);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title);color:var(--color-text-primary)}.etch-mastery-summary__levels{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-3);margin:0 0 var(--space-3);padding:0;list-style:none}.etch-mastery-summary__level{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-3) var(--space-4);border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-3);background:var(--color-surface-raised)}.etch-mastery-summary__count{font-size:var(--text-xl);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;color:var(--color-text-primary)}.etch-calibration{--calibration-accent: var(--color-border-default);padding:var(--space-4);border:var(--border-width-1) solid var(--color-border-subtle);border-inline-start:var(--border-width-3) solid var(--calibration-accent);border-radius:var(--radius-3);background:var(--color-surface-raised)}.etch-calibration[data-verdict=good]{--calibration-accent: var(--color-success)}.etch-calibration[data-verdict=overconfident],.etch-calibration[data-verdict=underconfident]{--calibration-accent: var(--color-warning)}.etch-calibration h2,.etch-calibration h3{margin:0 0 var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text-secondary)}.etch-calibration p{max-width:var(--measure);margin:0 0 var(--space-1);color:var(--color-text-primary)}.etch-mastery-timeline{display:flex;flex-direction:column;gap:var(--space-3)}.etch-mastery-timeline__note{max-width:var(--measure);margin:0;font-size:var(--text-sm);color:var(--color-text-secondary)}.etch-mastery-timeline__figure{margin:0}.etch-mastery-timeline__chart{display:block;width:100%;height:auto;max-height:220px;padding:var(--space-3);border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-3);background:var(--color-surface-raised)}.etch-mastery-timeline__axis{stroke:var(--color-border-strong);stroke-width:1}.etch-mastery-timeline__threshold{stroke:var(--color-border-default);stroke-width:1;stroke-dasharray:3 3}.etch-mastery-timeline__bar{fill:var(--color-border-strong)}.etch-mastery-timeline__trend{fill:none;stroke:var(--color-action-primary);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.etch-mastery-timeline__point{fill:var(--color-action-primary);stroke:var(--color-surface-raised);stroke-width:1}.etch-mastery-timeline__legend{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);margin-top:var(--space-2);font-size:var(--text-xs);color:var(--color-text-secondary)}.etch-mastery-timeline__legend-item:before{display:inline-block;width:.75rem;margin-inline-end:var(--space-1);content:"▬"}.etch-mastery-timeline__legend-item[data-series=attempts]:before{color:var(--color-border-strong);content:"▮"}.etch-mastery-timeline__legend-item[data-series=trend]:before{color:var(--color-action-primary);content:"━"}.etch-mastery-timeline__legend-item[data-series=stability]:before{color:var(--color-text-tertiary);content:"◇"}.etch-mastery-timeline__table summary{padding:var(--space-2) 0;font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer}.etch-mastery-timeline__table summary:focus-visible{outline:var(--border-width-2) solid var(--color-focus);outline-offset:var(--space-1)}.etch-mastery-timeline__table table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.etch-mastery-timeline__table th,.etch-mastery-timeline__table td{padding:var(--space-2) var(--space-3);border-bottom:var(--border-width-1) solid var(--color-border-subtle);text-align:start;white-space:nowrap}.etch-mastery-timeline__table thead th{font-weight:var(--weight-semibold);color:var(--color-text-secondary)}.etch-mastery-list{display:flex;flex-direction:column;gap:var(--space-3);margin:0;padding:0;list-style:none}.etch-mastery-list__item{--mastery-item-accent: var(--color-border-default);display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);padding:var(--space-4);border:var(--border-width-1) solid var(--color-border-subtle);border-inline-start:var(--border-width-3) solid var(--mastery-item-accent);border-radius:var(--radius-3);background:var(--color-surface-raised)}.etch-mastery-list__item[data-level=seen]{--mastery-item-accent: var(--color-info)}.etch-mastery-list__item[data-level=practiced]{--mastery-item-accent: var(--color-warning)}.etch-mastery-list__item[data-level=secure]{--mastery-item-accent: var(--color-success)}.etch-mastery-list__head{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2)}.etch-mastery-list__title{margin:0;font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--color-text-primary)}@media not (min-width:640px){.etch-mastery-summary__levels{grid-template-columns:minmax(0,1fr)}}}@layer components{.etch-onboarding__lead{max-width:var(--measure);margin:var(--space-2) 0 0;color:var(--color-text-secondary)}.etch-next-step{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border:var(--border-width-1) solid var(--color-border-default);border-left-width:var(--border-width-3);border-radius:var(--radius-3);background:var(--color-surface-raised)}.etch-next-step[data-state=open]{border-left-color:var(--color-action-primary)}.etch-next-step[data-state=done]{border-left-color:var(--color-success)}.etch-next-step__icon{display:inline-flex;flex:none;align-items:center;justify-content:center;width:var(--space-6);height:var(--space-6);border-radius:var(--radius-pill);background:var(--color-brand-wash);color:var(--color-brand-text)}.etch-next-step[data-state=done] .etch-next-step__icon{background:var(--color-success-wash);color:var(--color-success)}.etch-next-step__body{display:flex;flex:1 1 auto;flex-direction:column;gap:var(--space-1);min-width:0}.etch-next-step__title{margin:0;font-size:var(--text-md);font-weight:var(--weight-semibold);line-height:var(--leading-snug);color:var(--color-text-primary)}.etch-next-step__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin:0;font-size:var(--text-xs);color:var(--color-text-secondary)}.etch-next-step__action{flex:none}.etch-path-progress{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-3);background:var(--color-surface-raised)}.etch-path-progress__required{margin:0;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-primary)}.etch-path-progress__note{max-width:var(--measure);margin:0;font-size:var(--text-xs);color:var(--color-text-tertiary)}.etch-path-group__title{margin:0;font-size:var(--text-lg);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title);color:var(--color-text-primary)}.etch-path-group__description{max-width:var(--measure);margin:var(--space-1) 0 var(--space-4);font-size:var(--text-sm);color:var(--color-text-secondary)}.etch-path-group__empty{margin:0;padding:var(--space-4);border:var(--border-width-1) dashed var(--color-border-default);border-radius:var(--radius-3);font-size:var(--text-sm);color:var(--color-text-secondary)}.etch-path-group__list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--space-4);margin:0;padding:0;list-style:none}.etch-path-card{display:flex;height:100%;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-3);background:var(--color-surface-raised)}.etch-path-card[data-required]{border-top:var(--border-width-3) solid var(--color-action-primary)}.etch-path-card__head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.etch-path-card__title{flex:1 1 auto;margin:0;font-size:var(--text-md);font-weight:var(--weight-semibold);line-height:var(--leading-snug);color:var(--color-text-primary)}.etch-path-card__description{margin:0;font-size:var(--text-sm);color:var(--color-text-secondary)}.etch-path-card__note{margin:0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-2);background:var(--color-surface-sunken);font-size:var(--text-xs);line-height:var(--leading-normal);color:var(--color-text-secondary)}.etch-path-card__facts{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);margin:0}.etch-path-card__facts>div{display:flex;flex-direction:column;gap:2px}.etch-path-card__facts dt{font-size:var(--text-xs);color:var(--color-text-tertiary)}.etch-path-card__facts dd{margin:0;font-size:var(--text-sm);font-weight:var(--weight-medium);font-variant-numeric:tabular-nums;color:var(--color-text-primary)}.etch-path-card__kinds{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0}.etch-path-card__actions{display:flex;margin-top:auto;padding-top:var(--space-2)}.etch-path{display:flex;flex-direction:column;gap:var(--space-4)}.etch-path__back{align-self:flex-start;gap:var(--space-2)}.etch-path__head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.etch-path__title{margin:0;font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title);color:var(--color-text-primary)}.etch-path__badges{display:flex;flex-wrap:wrap;gap:var(--space-2)}.etch-path__description{max-width:var(--measure);margin:0;color:var(--color-text-secondary)}.etch-path__chapters{display:flex;flex-direction:column;gap:var(--space-5);margin:0;padding:0;list-style:none}.etch-path__chapter{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-3);background:var(--color-surface-raised)}.etch-path__chapter-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-3)}.etch-path__chapter-title{margin:0;font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-text-primary)}.etch-path__chapter-description{max-width:var(--measure);margin:var(--space-1) 0 0;font-size:var(--text-sm);color:var(--color-text-secondary)}.etch-path__chapter-progress{flex:0 1 200px}.etch-path__chapter-empty{margin:0;font-size:var(--text-sm);color:var(--color-text-tertiary)}.etch-path__steps{display:flex;flex-direction:column;gap:var(--space-1);margin:0;padding:0;list-style:none}.etch-path__step{display:flex;align-items:flex-start;gap:var(--space-3);min-height:var(--touch-target);padding:var(--space-3);border:var(--border-width-1) solid transparent;border-radius:var(--radius-2);background:var(--color-surface-canvas)}.etch-path__step[data-state=done]{background:var(--color-surface-sunken)}.etch-path__step[data-state=done] .etch-path__step-title{color:var(--color-text-secondary)}.etch-path__step-status{display:flex;flex:none;align-items:center;justify-content:center;min-width:var(--touch-target);min-height:var(--touch-target)}.etch-path__step-status[data-interactive=true]{cursor:pointer}.etch-path__step-check{width:20px;height:20px;margin:0;accent-color:var(--color-action-primary);cursor:pointer}.etch-path__step-mark{display:inline-flex;align-items:center;justify-content:center;width:var(--space-5);height:var(--space-5);border:var(--border-width-1) solid var(--color-border-default);border-radius:var(--radius-pill);color:var(--color-text-tertiary)}.etch-path__step-mark[data-state=done]{border-color:var(--color-success);background:var(--color-success-wash);color:var(--color-success)}.etch-path__step-body{display:flex;flex:1 1 auto;flex-direction:column;gap:var(--space-1);min-width:0}.etch-path__step-title{margin:0;font-size:var(--text-sm);font-weight:var(--weight-medium);line-height:var(--leading-snug);color:var(--color-text-primary)}.etch-path__step-description{max-width:var(--measure);margin:0;font-size:var(--text-sm);color:var(--color-text-secondary)}.etch-path__step-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin:0;font-size:var(--text-xs);color:var(--color-text-tertiary)}.etch-path__step-kind{display:inline-flex;align-items:center;gap:var(--space-1);font-weight:var(--weight-medium);color:var(--color-text-secondary)}.etch-path__step[data-kind=mission] .etch-path__step-kind{color:var(--color-brand-text)}.etch-path__step-counts,.etch-path__step-evidence{font-variant-numeric:tabular-nums}.etch-path__step-action{display:flex;flex:none;align-items:center;min-height:var(--touch-target)}@media(pointer:coarse){.etch-next-step__action .etch-button,.etch-path__step-action .etch-button,.etch-path-card__actions .etch-button,.etch-path__back{min-height:var(--touch-target)}}@media not (min-width:640px){.etch-next-step,.etch-path__step{flex-wrap:wrap}.etch-next-step__action,.etch-path__step-action{width:100%;padding-left:var(--touch-target)}.etch-path-group__list{grid-template-columns:1fr}.etch-path__chapter-progress{flex:1 1 100%}}}@layer components{.etch-knowledge{display:flex;flex:1;flex-direction:column;min-width:0;min-height:0;height:100%}.etch-knowledge__header{padding-inline:var(--page-gutter)}.etch-knowledge__header h1{margin:0;font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title)}.etch-knowledge__body{display:grid;flex:1;grid-template-columns:minmax(0,1fr);min-width:0;min-height:0}.etch-knowledge__rail-column{display:none;min-width:0;min-height:0;border-right:var(--border-width-1) solid var(--color-border-subtle);background:var(--color-surface-sunken)}.etch-knowledge__main{display:flex;flex-direction:column;min-width:0;min-height:0}.etch-knowledge__detail{display:none;min-width:0;min-height:0;overflow:hidden auto;border-left:var(--border-width-1) solid var(--color-border-subtle);background:var(--color-surface-raised)}@media(min-width:1200px){.etch-knowledge__body{grid-template-columns:300px minmax(0,1fr)}.etch-knowledge[data-detail=open] .etch-knowledge__body{grid-template-columns:300px minmax(0,1fr) 340px}.etch-knowledge__rail-column,.etch-knowledge[data-detail=open] .etch-knowledge__detail{display:flex;flex-direction:column}}.etch-knowledge__rail{display:flex;flex:1;flex-direction:column;gap:var(--space-3);min-height:0;padding:var(--space-4) var(--space-3)}.etch-knowledge__rail-search{display:flex;align-items:end;gap:var(--space-2)}.etch-knowledge__rail-search .etch-field{flex:1;min-width:0}.etch-knowledge__rail-tabs{display:flex;flex:1;flex-direction:column;min-height:0}.etch-knowledge__rail-tabs>[role=tabpanel]:not([hidden]){flex:1;min-height:0;overflow:hidden auto;scrollbar-gutter:stable}.etch-knowledge__rail-empty{margin:0;padding:var(--space-4) var(--space-2);color:var(--color-text-tertiary);font-size:var(--text-sm)}.etch-knowledge__tree{margin:0;padding:0;list-style:none}.etch-file-row{--etch-tree-indent: 0;display:flex;align-items:center;gap:var(--space-2);min-height:var(--space-6);padding-block:var(--space-1);padding-inline:calc(var(--space-2) + var(--etch-tree-indent) * var(--space-3)) var(--space-2);border-radius:var(--radius-1);color:var(--color-text-secondary);font-size:var(--text-sm);cursor:pointer;transition:background var(--duration-1) var(--ease-standard)}.etch-file-row:hover{background:var(--color-hover-wash)}.etch-file-row:focus-visible{outline:var(--border-width-2) solid var(--color-focus-ring);outline-offset:-2px}.etch-file-row[aria-selected=true]{position:relative;background:var(--color-selected-wash);color:var(--color-text-primary);font-weight:var(--weight-medium)}.etch-file-row[aria-selected=true]:before{content:"";position:absolute;inset-block:var(--space-1);inset-inline-start:0;width:var(--border-width-3);border-radius:var(--radius-pill);background:var(--color-brand-mark)}.etch-file-row__twisty,.etch-file-row__icon{display:inline-flex;flex:none;align-items:center;justify-content:center;width:var(--space-4);color:var(--color-text-tertiary)}.etch-file-row__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.etch-knowledge__list{display:flex;flex-direction:column;gap:var(--space-1);margin:0;padding:0;list-style:none}.etch-knowledge__list-item{display:flex;align-items:center;gap:var(--space-2);width:100%;min-height:var(--touch-target);padding:var(--space-2);border:var(--border-width-1) solid transparent;border-radius:var(--radius-2);background:none;color:inherit;font:inherit;text-align:start;cursor:pointer}.etch-knowledge__list-item:hover{background:var(--color-hover-wash)}.etch-knowledge__list-item:focus-visible{outline:var(--border-width-2) solid var(--color-focus-ring);outline-offset:-2px}.etch-knowledge__list-item[aria-current=true]{border-color:var(--color-border-strong);background:var(--color-selected-wash)}.etch-knowledge__list-icon{display:inline-flex;flex:none;color:var(--color-text-tertiary)}.etch-knowledge__list-body{display:flex;flex:1;flex-direction:column;gap:var(--space-1);min-width:0}.etch-knowledge__list-title{overflow:hidden;color:var(--color-text-primary);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap}.etch-knowledge__list-meta{color:var(--color-text-tertiary);font-size:var(--text-xs)}.etch-knowledge__selection-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--page-gutter);border-bottom:var(--border-width-1) solid var(--color-border-subtle)}.etch-knowledge__selection-label{display:flex;align-items:center;gap:var(--space-2);margin:0;min-width:0}.etch-knowledge__selection-name{overflow:hidden;color:var(--color-text-primary);font-size:var(--text-sm);font-weight:var(--weight-medium);text-overflow:ellipsis;white-space:nowrap}.etch-knowledge__selection-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.etch-knowledge__surfaces{display:flex;flex:1;flex-direction:column;min-height:0}.etch-knowledge__surfaces>.etch-tabs{padding-inline:var(--page-gutter)}.etch-knowledge__surfaces>[role=tabpanel]:not([hidden]){display:flex;flex:1;flex-direction:column;min-height:0}.etch-knowledge__state{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center}.etch-knowledge__state[data-compact=true]{flex:none;padding:var(--space-4) var(--space-2)}.etch-knowledge__state-title{margin:0;color:var(--color-text-secondary);font-size:var(--text-sm)}.etch-knowledge__state-hint{margin:0;color:var(--color-text-tertiary);font-size:var(--text-sm)}.etch-knowledge__state-detail{margin:var(--space-2) 0 0;overflow-wrap:anywhere;color:var(--color-text-tertiary);font-family:var(--font-mono);font-size:var(--text-xs)}.etch-knowledge__state-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2)}.etch-knowledge__preview{display:flex;flex:1;flex-direction:column;gap:var(--space-3);min-height:0;padding:var(--space-4) var(--page-gutter) var(--space-5);overflow:hidden auto}.etch-knowledge__preview-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2)}.etch-knowledge__preview-path{margin:0;overflow:hidden;color:var(--color-text-secondary);font-family:var(--font-mono);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap}.etch-knowledge__preview-badges{display:flex;align-items:center;gap:var(--space-2)}.etch-knowledge__preview-refreshing{color:var(--color-text-tertiary);font-size:var(--text-xs)}.etch-knowledge__preview-body{min-width:0;overflow:auto;border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-2)}.etch-knowledge__preview-body[data-variant=raw]{max-height:60vh;background:var(--color-code-bg)}.etch-knowledge__preview-body[data-variant=raw] pre{margin:0;padding:var(--space-4);color:var(--color-text-secondary);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--leading-normal)}.etch-knowledge__preview-body[data-busy=true]{opacity:.6}.etch-knowledge__dir-list{display:flex;flex-direction:column;gap:var(--space-1);margin:0;padding:0;list-style:none}.etch-knowledge__dir-item{display:flex;align-items:center;gap:var(--space-2);width:100%;min-height:var(--touch-target);padding:var(--space-2);border:none;border-radius:var(--radius-2);background:none;color:var(--color-text-primary);font:inherit;font-size:var(--text-sm);text-align:start;cursor:pointer}.etch-knowledge__dir-item:hover{background:var(--color-hover-wash)}.etch-knowledge__dir-item:focus-visible{outline:var(--border-width-2) solid var(--color-focus-ring);outline-offset:-2px}.etch-knowledge__dir-icon{display:inline-flex;color:var(--color-text-tertiary)}.etch-knowledge__meta{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:var(--space-1) var(--space-4);margin:0}.etch-knowledge__meta-row{display:contents}.etch-knowledge__meta-key{color:var(--color-text-tertiary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-label)}.etch-knowledge__meta-val{margin:0;overflow-wrap:anywhere;color:var(--color-text-primary);font-size:var(--text-sm)}.etch-knowledge__chunks{display:flex;flex-direction:column;gap:var(--space-3);margin:0;padding:0;list-style:none}.etch-knowledge__chunk{padding:var(--space-3);border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-2);background:var(--color-surface-raised)}.etch-knowledge__chunk-head{display:flex;align-items:center;gap:var(--space-2);margin:0 0 var(--space-2);color:var(--color-text-tertiary);font-size:var(--text-xs)}.etch-knowledge__chunk-body{margin:0;max-width:var(--measure);color:var(--color-text-secondary);font-size:var(--text-sm);line-height:var(--leading-normal)}.etch-knowledge__impact{display:flex;flex:1;flex-direction:column;gap:var(--space-4);min-height:0;padding:var(--space-4) var(--page-gutter) var(--space-5);overflow:hidden auto}.etch-knowledge__impact-form{display:flex;flex-wrap:wrap;align-items:end;gap:var(--space-3)}.etch-knowledge__impact-target{flex:1 1 20rem;min-width:0}.etch-knowledge__impact-type{flex:0 1 12rem}.etch-knowledge__impact-result{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.etch-knowledge__impact-result-title{margin:0;font-size:var(--text-base);font-weight:var(--weight-semibold)}.etch-knowledge__graph{display:flex;flex:1;flex-direction:column;min-width:0;min-height:0}.etch-knowledge__graph-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--page-gutter);border-bottom:var(--border-width-1) solid var(--color-border-subtle)}.etch-knowledge__graph-body{display:flex;flex:1;flex-direction:column;min-width:0;min-height:0;overflow:hidden}.etch-knowledge__graph-body>.graph-panel{flex:1;min-height:0}.etch-knowledge__view-toggle,.etch-graph-table__dataset{display:inline-flex;padding:var(--space-1);border:var(--border-width-1) solid var(--color-border-default);border-radius:var(--radius-pill);background:var(--color-surface-sunken)}.etch-knowledge__view-option,.etch-graph-table__dataset-option{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--space-6);padding:var(--space-1) var(--space-4);border:none;border-radius:var(--radius-pill);background:none;color:var(--color-text-secondary);font:inherit;font-size:var(--text-sm);cursor:pointer;transition:background var(--duration-1) var(--ease-standard)}.etch-knowledge__view-option:focus-visible,.etch-graph-table__dataset-option:focus-visible{outline:var(--border-width-2) solid var(--color-focus-ring);outline-offset:2px}.etch-knowledge__view-option[aria-pressed=true],.etch-graph-table__dataset-option[aria-pressed=true]{background:var(--color-surface-raised);box-shadow:var(--elevation-1);color:var(--color-text-primary);font-weight:var(--weight-semibold)}.etch-knowledge__arch-mode{min-width:14rem}.etch-graph-table{display:flex;flex:1;flex-direction:column;gap:var(--space-3);min-width:0;min-height:0;padding:var(--space-4) var(--page-gutter) var(--space-5)}.etch-graph-table__controls{display:flex;flex-wrap:wrap;align-items:end;gap:var(--space-3)}.etch-graph-table__count{padding-inline:var(--space-2);border-radius:var(--radius-pill);background:var(--color-surface-canvas);color:var(--color-text-tertiary);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.etch-graph-table__filter{flex:1 1 16rem;min-width:0}.etch-graph-table__filters{display:flex;flex-wrap:wrap;gap:var(--space-4)}.etch-graph-table__status{margin:0;color:var(--color-text-tertiary);font-size:var(--text-sm)}.etch-graph-table__scroll{flex:1;min-width:0;min-height:0;overflow:auto;border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-2)}.etch-graph-table table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.etch-graph-table thead th{position:sticky;top:0;z-index:var(--z-sticky);padding:0;border-bottom:var(--border-width-1) solid var(--color-border-default);background:var(--color-surface-raised);text-align:start;white-space:nowrap}.etch-graph-table th[data-numeric=true],.etch-graph-table td[data-numeric=true]{text-align:end;font-variant-numeric:tabular-nums}.etch-graph-table__sort{display:inline-flex;align-items:center;gap:var(--space-2);width:100%;min-height:var(--space-6);padding:var(--space-2) var(--space-3);border:none;background:none;color:var(--color-text-secondary);font:inherit;font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:var(--tracking-label);cursor:pointer}.etch-graph-table th[data-numeric=true] .etch-graph-table__sort{justify-content:end}.etch-graph-table__sort:focus-visible{outline:var(--border-width-2) solid var(--color-focus-ring);outline-offset:-2px}.etch-graph-table th[aria-sort=none] .etch-graph-table__sort svg{opacity:.4}.etch-graph-table tbody tr{border-bottom:var(--border-width-1) solid var(--color-border-subtle);cursor:pointer}.etch-graph-table tbody tr:hover{background:var(--color-hover-wash)}.etch-graph-table tbody tr:focus-visible{outline:var(--border-width-2) solid var(--color-focus-ring);outline-offset:-2px}.etch-graph-table tbody tr[aria-selected=true]{background:var(--color-selected-wash);box-shadow:inset var(--border-width-3) 0 0 0 var(--color-brand-mark)}.etch-graph-table td{padding:var(--space-2) var(--space-3);color:var(--color-text-secondary);overflow-wrap:anywhere}.etch-graph-table td:first-child{color:var(--color-text-primary)}.etch-knowledge__detail-body{display:flex;flex:1;flex-direction:column;gap:var(--space-4);min-height:0;padding:var(--space-4)}.etch-knowledge__detail-title{margin:0;overflow-wrap:anywhere;font-size:var(--text-base);font-weight:var(--weight-semibold)}.etch-knowledge__detail-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}@media not (min-width:1200px){.etch-knowledge__header,.etch-knowledge__selection-bar,.etch-knowledge__graph-toolbar,.etch-knowledge__surfaces>.etch-tabs{padding-inline:var(--space-4)}.etch-knowledge__preview,.etch-knowledge__impact,.etch-graph-table{padding-inline:var(--space-4)}.etch-drawer .etch-knowledge__rail{padding-inline:0}}@media not (min-width:640px){.etch-knowledge__selection-bar{align-items:stretch;flex-direction:column}.etch-knowledge__selection-actions .etch-button{flex:1;min-height:var(--touch-target)}.etch-knowledge__surfaces>.etch-tabs{overflow-x:auto;scrollbar-width:none}.etch-knowledge__preview-body[data-variant=raw]{max-height:50vh}}}@layer components{.etch-admin{display:grid;grid-template-columns:minmax(200px,15rem) minmax(0,1fr);gap:var(--space-5);align-items:start;width:100%;max-width:var(--content-wide);margin-inline:auto;padding:var(--space-5) var(--page-gutter) var(--space-8)}.etch-admin__aside{position:sticky;top:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.etch-admin__title{padding-inline:var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text-tertiary)}.etch-admin__nav{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.etch-admin__nav-heading{margin-top:var(--space-3);padding:var(--space-1) var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text-tertiary)}.etch-admin__nav-heading:first-child{margin-top:0}.etch-admin__panel{min-width:0}.etch-admin__panel:focus-visible{outline:var(--border-width-2) solid var(--color-focus-ring);outline-offset:var(--space-1);border-radius:var(--radius-2)}@media(max-width:900px){.etch-admin{grid-template-columns:minmax(0,1fr);gap:var(--space-4);padding:var(--space-4) var(--page-gutter) var(--space-8)}.etch-admin__aside{position:static}.etch-admin__nav{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;padding-bottom:var(--space-2);scrollbar-width:thin}.etch-admin__nav .etch-nav-item{flex:0 0 auto}.etch-admin__nav-heading{display:none}}.etch-settings-group{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5);background:var(--color-surface-raised);border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-3)}.etch-settings-group[data-tone=danger]{background:var(--color-danger-wash);border-color:var(--color-danger)}.etch-settings-group__header{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);align-items:flex-start;justify-content:space-between}.etch-settings-group__heading{display:flex;flex-direction:column;gap:var(--space-1);min-width:0;max-width:var(--measure)}.etch-settings-group__title{display:flex;gap:var(--space-2);align-items:center;margin:0;font-size:var(--text-md);font-weight:var(--weight-semibold);line-height:var(--leading-snug);color:var(--color-text-primary)}.etch-settings-group__desc{margin:0;font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--color-text-secondary)}.etch-settings-group__actions{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.etch-settings-group__body{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}@media(max-width:640px){.etch-settings-group{padding:var(--space-4) var(--space-3)}}.etch-admin-kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:var(--space-3) var(--space-4);margin:0}.etch-admin-kv>div{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.etch-admin-kv dt{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text-tertiary)}.etch-admin-kv dd{margin:0;font-size:var(--text-sm);color:var(--color-text-primary);overflow-wrap:anywhere}.etch-data-table{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.etch-data-table__scroll{overflow-x:auto;overscroll-behavior-x:contain;border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-2)}.etch-data-table table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.etch-data-table caption{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);text-align:start;color:var(--color-text-tertiary)}.etch-data-table th,.etch-data-table td{padding:var(--space-3);text-align:start;vertical-align:middle;border-bottom:var(--border-width-1) solid var(--color-border-subtle);color:var(--color-text-primary)}.etch-data-table thead th{position:sticky;top:0;z-index:var(--z-sticky);background:var(--color-surface-sunken);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-label);text-transform:uppercase;white-space:nowrap;color:var(--color-text-secondary)}.etch-data-table__sort{display:inline-flex;gap:var(--space-1);align-items:center;margin:calc(var(--space-1) * -1) calc(var(--space-2) * -1);padding:var(--space-1) var(--space-2);background:none;border:0;border-radius:var(--radius-1);font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer}.etch-data-table__sort:hover{background:var(--color-hover-wash);color:var(--color-text-primary)}.etch-data-table__sort:focus-visible{outline:var(--border-width-2) solid var(--color-focus-ring);outline-offset:var(--border-width-1)}.etch-data-table__sort-glyph{display:inline-flex;opacity:.35}.etch-data-table th[aria-sort] .etch-data-table__sort-glyph{opacity:1;color:var(--color-brand-text)}.etch-data-table__row:last-child td{border-bottom:0}.etch-data-table__row:hover td{background:var(--color-hover-wash)}.etch-data-table__row:focus-within td{background:var(--color-selected-wash)}.etch-data-table__label{display:none}.etch-data-table__actions{display:flex;gap:var(--space-1);align-items:center;justify-content:flex-end}.etch-data-table__secondary{color:var(--color-text-secondary)}@media(max-width:640px){.etch-data-table__scroll{overflow-x:visible;border:0;border-radius:0}.etch-data-table table,.etch-data-table thead,.etch-data-table tbody,.etch-data-table tr,.etch-data-table th,.etch-data-table td{display:block;width:auto}.etch-data-table thead{position:absolute;width:1px;height:1px;overflow:hidden;white-space:nowrap;clip-path:inset(50%)}.etch-data-table__row{margin-bottom:var(--space-3);padding:var(--space-2);background:var(--color-surface-raised);border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-2)}.etch-data-table__row td{display:grid;grid-template-columns:minmax(6rem,40%) minmax(0,1fr);gap:var(--space-3);align-items:center;padding:var(--space-2);border-bottom:0}.etch-data-table__row td+td{border-top:var(--border-width-1) solid var(--color-border-subtle)}.etch-data-table__label{display:block;font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text-tertiary)}.etch-data-table__actions{justify-content:flex-start}}.etch-admin-split{display:grid;grid-template-columns:minmax(0,18rem) minmax(0,1fr);gap:var(--space-4);align-items:start}@media(max-width:900px){.etch-admin-split{grid-template-columns:minmax(0,1fr)}}.etch-admin-list{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.etch-admin-list__item{display:flex;gap:var(--space-3);align-items:center;width:100%;min-height:var(--touch-target);padding:var(--space-2) var(--space-3);background:none;border:var(--border-width-1) solid transparent;border-radius:var(--radius-2);font:inherit;text-align:start;color:var(--color-text-primary);cursor:pointer}.etch-admin-list__item:hover{background:var(--color-hover-wash)}.etch-admin-list__item:focus-visible{outline:var(--border-width-2) solid var(--color-focus-ring);outline-offset:var(--border-width-1)}.etch-admin-list__item[aria-current=true]{background:var(--color-selected-wash);border-color:var(--color-border-strong);font-weight:var(--weight-semibold)}.etch-admin-list__body{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.etch-admin-list__meta{display:flex;flex-wrap:wrap;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-secondary)}.etch-admin-list__dot{flex:0 0 auto;width:var(--space-3);height:var(--space-3);border:var(--border-width-1) solid var(--color-border-strong);border-radius:var(--radius-pill)}.etch-admin-row{display:flex;gap:var(--space-3);align-items:center;justify-content:space-between;min-height:var(--touch-target);padding:var(--space-2) var(--space-3);border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-2)}.etch-admin-row__body{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-2);align-items:baseline;min-width:0}.etch-admin-row__name{font-weight:var(--weight-medium);overflow-wrap:anywhere}.etch-admin-row__meta{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-secondary);overflow-wrap:anywhere}.etch-admin-secret{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-2)}.etch-admin-secret__head{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-3);align-items:center;justify-content:space-between}.etch-admin-secret__name{margin:0;font-size:var(--text-base);font-weight:var(--weight-semibold)}.etch-admin-secret__form{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:flex-end}.etch-admin-secret__form .etch-field{flex:1 1 16rem;min-width:0}.etch-admin-secret__value{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-secondary);overflow-wrap:anywhere}.etch-admin-output{max-height:14rem;margin:0;padding:var(--space-3);overflow:auto;background:var(--color-code-bg);border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-2);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--leading-normal);white-space:pre-wrap;overflow-wrap:anywhere;color:var(--color-text-secondary)}.etch-auth-screen{display:flex;flex-direction:column;gap:var(--space-5);align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;padding:var(--space-5) var(--space-3);background:var(--color-surface-canvas)}.etch-auth-screen__card{display:flex;flex-direction:column;gap:var(--space-5);width:100%;max-width:27rem;padding:var(--space-6);background:var(--color-surface-raised);border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-4);box-shadow:var(--elevation-2)}.etch-auth-screen__card[data-width=wide]{max-width:40rem}.etch-auth-screen__brand{display:flex;flex-direction:column;gap:var(--space-2);align-items:center;text-align:center}.etch-auth-screen__tagline{margin:0;font-size:var(--text-sm);color:var(--color-text-secondary)}.etch-auth-screen__title{margin:0;font-size:var(--text-xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);color:var(--color-text-primary)}.etch-auth-screen__desc{margin:0;font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--color-text-secondary)}.etch-auth-screen__form{display:flex;flex-direction:column;gap:var(--space-4)}.etch-auth-screen__divider{display:flex;gap:var(--space-3);align-items:center;font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text-tertiary)}.etch-auth-screen__divider:before,.etch-auth-screen__divider:after{content:"";flex:1 1 auto;height:var(--border-width-1);background:var(--color-border-subtle)}.etch-auth-screen__footer{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);align-items:center;justify-content:space-between;font-size:var(--text-sm);color:var(--color-text-secondary)}@media(max-width:640px){.etch-auth-screen{justify-content:flex-start;padding:var(--space-4) var(--space-3)}.etch-auth-screen__card{padding:var(--space-4);box-shadow:none}}.etch-setup-stepper{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-3);align-items:center;margin:0;padding:0;list-style:none}.etch-setup-step{display:flex;gap:var(--space-2);align-items:center;min-width:0;font-size:var(--text-sm);color:var(--color-text-tertiary)}.etch-setup-step__marker{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:var(--space-6);height:var(--space-6);border:var(--border-width-2) solid var(--color-border-default);border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums}.etch-setup-step[data-state=current]{font-weight:var(--weight-semibold);color:var(--color-text-primary)}.etch-setup-step[data-state=current] .etch-setup-step__marker{background:var(--color-action-primary);border-color:var(--color-action-primary);color:var(--color-text-on-action)}.etch-setup-step[data-state=done]{color:var(--color-text-secondary)}.etch-setup-step[data-state=done] .etch-setup-step__marker{border-color:var(--color-success);color:var(--color-success)}.etch-setup-step__label{min-width:0;overflow-wrap:anywhere}.etch-admin-source{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-2)}.etch-admin-source[data-enabled=true]{background:var(--color-surface-sunken);border-color:var(--color-border-strong)}.etch-admin-source__head{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:flex-start;justify-content:space-between}.etch-admin-source__title{margin:0;font-size:var(--text-base);font-weight:var(--weight-semibold)}.etch-admin-source__desc{margin:0;font-size:var(--text-sm);color:var(--color-text-secondary)}.etch-admin-source__fields{display:flex;flex-direction:column;gap:var(--space-3)}.etch-admin-models{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.etch-admin-models__item{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-3);align-items:center;justify-content:space-between;min-height:var(--touch-target);padding:var(--space-2) var(--space-3);border:var(--border-width-1) solid var(--color-border-subtle);border-radius:var(--radius-2)}.etch-admin-models__item[aria-current=true]{background:var(--color-brand-wash);border-color:var(--color-action-primary)}.etch-admin-models__name{font-family:var(--font-mono);font-size:var(--text-sm);overflow-wrap:anywhere}.etch-admin-models__size{font-size:var(--text-xs);color:var(--color-text-tertiary)}}@layer utilities{.etch-truncate{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.etch-clamp-2{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.etch-clamp-3{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3}.etch-scroll-x{overflow-x:auto;max-width:100%;overscroll-behavior-x:contain}.etch-spacer{flex:1}.etch-full{width:100%}.etch-center{display:grid;place-items:center}.etch-mono{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.02em}.etch-muted{color:var(--color-text-secondary)}.etch-meta{color:var(--color-text-tertiary);font-size:var(--text-xs)}.etch-no-wrap{white-space:nowrap}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 18px;border-radius:999px;border:1px solid transparent;font:inherit;font-weight:600;font-size:14px;cursor:pointer;transition:background var(--tx-fast, .14s ease),color var(--tx-fast, .14s ease),transform var(--tx-fast, .14s ease),box-shadow var(--tx-fast, .14s ease);white-space:nowrap;-webkit-user-select:none;user-select:none}.btn:active,.btn.is-active{transform:translateY(1px);filter:brightness(.96)}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none;filter:none}.btn:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.btn-sm{height:36px;padding:0 14px;font-size:13px}.btn-lg{height:52px;padding:0 24px;font-size:15px}.btn-block{width:100%}.btn-primary{background:var(--accent);color:var(--ink-on-accent, #fff);box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{background:var(--surface);color:var(--ink, var(--text-primary));border-color:var(--hairline-2, var(--border-color))}.btn-secondary:hover:not(:disabled){background:var(--elevated)}.btn-ghost{background:transparent;color:var(--ink-2, var(--text-secondary))}.btn-ghost:hover:not(:disabled){background:var(--elevated);color:var(--ink, var(--text-primary))}.btn-danger{background:var(--rose);color:var(--ink-on-accent, #fff);box-shadow:var(--shadow-sm)}.btn-danger:hover:not(:disabled){filter:brightness(.94)}.btn-link{background:transparent;color:var(--accent);height:auto;padding:8px 4px;border-radius:6px;text-decoration:underline;text-underline-offset:3px;border:none}.btn-link:hover{color:var(--accent-hover)}.btn-icon{width:40px;height:40px;border-radius:10px;border:1px solid var(--hairline);background:var(--surface);color:var(--ink-2, var(--text-secondary));display:grid;place-items:center;cursor:pointer;transition:background var(--tx-fast, .14s ease),color var(--tx-fast, .14s ease)}.btn-icon:hover{background:var(--elevated);color:var(--ink, var(--text-primary))}.btn-icon:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.btn-send{width:44px;height:44px;padding:0;border-radius:12px}.btn-toggle[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);border-color:transparent}.btn.is-loading{position:relative}.btn-spinner{width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:btn-spin .8s linear infinite;display:inline-block}@keyframes btn-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.btn-spinner{animation-duration:1.6s}}.seg{display:inline-flex;background:var(--elevated);border-radius:999px;padding:4px;gap:2px}.seg-btn{height:36px;padding:0 16px;border:0;background:transparent;color:var(--ink-2, var(--text-secondary));font:inherit;font-size:13px;font-weight:500;border-radius:999px;cursor:pointer;min-width:76px;transition:background var(--tx-fast, .14s ease),color var(--tx-fast, .14s ease)}.seg-btn:hover{color:var(--ink, var(--text-primary))}.seg-btn.is-active,.seg-btn[aria-pressed=true]{background:var(--surface);color:var(--ink, var(--text-primary));box-shadow:var(--shadow-sm)}.seg-btn:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.field{display:flex;flex-direction:column;gap:6px;flex:1 1 280px;min-width:0}.field-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.field-label{font-weight:500;font-size:14px;color:var(--ink, var(--text-primary))}.field-req{color:var(--rose);font-weight:600;margin-left:2px}.field-counter{font-family:var(--font-mono, ui-monospace, monospace);font-size:11.5px;color:var(--ink-3, var(--text-tertiary));font-variant-numeric:tabular-nums}.field-hint{margin:0;font-size:12.5px;color:var(--ink-3, var(--text-tertiary));line-height:1.5}.field-msg{display:flex;align-items:flex-start;gap:6px;margin:0;font-size:12.5px;font-weight:500;line-height:1.5}.field-msg svg{flex:0 0 auto;margin-top:2px}.field-msg-error{color:var(--rose)}.field-msg-success{color:var(--moss)}.field-msg-warning{color:var(--amber)}.input{width:100%;height:44px;padding:0 14px;font:inherit;font-size:14.5px;color:var(--ink, var(--text-primary));background:var(--surface);border:1.5px solid var(--hairline-2, var(--border-color));border-radius:var(--r-sm, 8px);transition:border-color var(--tx-fast, .14s ease),box-shadow var(--tx-fast, .14s ease),background var(--tx-fast, .14s ease);-webkit-appearance:none}.input::placeholder{color:var(--ink-3, var(--text-tertiary))}.input:hover{border-color:var(--ink-3, var(--text-tertiary))}.input:focus,.input:focus-visible,.input.is-focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.input:disabled{background:var(--elevated);color:var(--ink-3, var(--text-tertiary));cursor:not-allowed;border-style:dashed}.input[readonly]{background:var(--elevated);border-color:transparent}.input.is-error,.input[aria-invalid=true]{border-color:var(--rose);box-shadow:0 0 0 3px var(--rose-soft)}.input.is-success{border-color:var(--moss);box-shadow:0 0 0 3px var(--moss-soft)}.input.is-warning{border-color:var(--amber);box-shadow:0 0 0 3px var(--amber-soft)}.textarea,textarea.input{height:auto;padding:12px 14px;line-height:1.55;min-height:96px;resize:vertical;font-family:var(--font-sans, inherit)}.input-affix{position:relative;display:flex;align-items:center;width:100%}.input-affix .input{padding-left:40px;padding-right:44px}.input-affix .input.has-suffix{padding-left:14px;padding-right:56px}.affix-pre,.affix-post{position:absolute;display:grid;place-items:center;height:32px;color:var(--ink-3, var(--text-tertiary));pointer-events:none}.affix-pre{left:8px;width:28px}.affix-post{right:8px;min-width:32px;padding:0 8px;font-size:12px;font-weight:500;color:var(--ink-2, var(--text-secondary));font-family:var(--font-mono, ui-monospace, monospace)}.affix-post.is-button{pointer-events:auto;cursor:pointer;border:0;background:transparent;border-radius:8px;color:var(--ink-2, var(--text-secondary))}.affix-post.is-button:hover{background:var(--elevated);color:var(--ink, var(--text-primary))}.affix-post.is-button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.select{position:relative;width:100%}.select select{width:100%;height:44px;padding:0 40px 0 14px;font:inherit;font-size:14.5px;color:var(--ink, var(--text-primary));background:var(--surface);border:1.5px solid var(--hairline-2, var(--border-color));border-radius:var(--r-sm, 8px);-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer}.select select:hover{border-color:var(--ink-3, var(--text-tertiary))}.select select:focus,.select select:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.select-caret{position:absolute;right:12px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--ink-3, var(--text-tertiary));display:grid;place-items:center}.dropzone{display:flex;align-items:center;gap:14px;padding:18px 20px;border:1.5px dashed var(--hairline-2, var(--border-color));border-radius:var(--r, 12px);background:var(--surface);color:var(--ink-2, var(--text-secondary));cursor:pointer;transition:border-color var(--tx-fast, .14s ease),background var(--tx-fast, .14s ease);min-height:72px}.dropzone:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.dropzone svg{flex:0 0 auto;color:var(--accent)}.dropzone strong{display:block;font-weight:600;color:var(--ink, var(--text-primary));font-size:14px}.dropzone span{font-size:12.5px}.dropzone u{color:var(--accent);text-underline-offset:2px}.dropzone input[type=file]{display:none}.dropzone:focus-within{outline:3px solid var(--accent);outline-offset:2px}.check-group,.radio-group{display:flex;flex-direction:column;gap:4px}.check-grouplabel{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3, var(--text-tertiary));margin-bottom:6px}.check-row{border-radius:var(--r-sm, 8px)}.check-control{display:grid;grid-template-columns:22px 1fr;gap:12px;padding:10px 12px;border-radius:var(--r-sm, 8px);cursor:pointer;align-items:flex-start;min-height:44px;transition:background var(--tx-fast, .14s ease)}.check-control:hover{background:var(--elevated)}.check-row.is-disabled .check-control{cursor:not-allowed;opacity:.55}.check-row.is-disabled .check-control:hover{background:transparent}.check-native{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.check-box{width:22px;height:22px;border:2px solid var(--ink-3, var(--text-tertiary));border-radius:6px;background:var(--surface);display:grid;place-items:center;color:var(--ink-on-accent, #fff);margin-top:1px;flex:0 0 auto;transition:background var(--tx-fast, .14s ease),border-color var(--tx-fast, .14s ease)}.check-box svg{width:14px;height:14px;stroke-width:2.4}.check-control:hover .check-box{border-color:var(--ink, var(--text-primary))}.check-native:checked~.check-box,.check-box.is-indeterminate{background:var(--accent);border-color:var(--accent)}.check-native:focus-visible~.check-box{outline:3px solid var(--accent);outline-offset:2px}.check-row.is-error .check-box{border-color:var(--rose)}.check-row.is-error .check-native:focus-visible~.check-box{outline-color:var(--rose)}.radio-box{width:22px;height:22px;border:2px solid var(--ink-3, var(--text-tertiary));border-radius:50%;background:var(--surface);display:grid;place-items:center;margin-top:1px;flex:0 0 auto;transition:border-color var(--tx-fast, .14s ease)}.radio-dot{width:10px;height:10px;border-radius:50%;background:var(--accent);transform:scale(0);transition:transform var(--tx-fast, .14s ease)}.check-control:hover .radio-box{border-color:var(--ink, var(--text-primary))}.check-native:checked~.radio-box{border-color:var(--accent)}.check-native:checked~.radio-box .radio-dot{transform:scale(1)}.check-native:focus-visible~.radio-box{outline:3px solid var(--accent);outline-offset:2px}.check-text{display:flex;flex-direction:column;gap:2px;padding-top:1px}.check-label{font-size:14.5px;line-height:1.45;color:var(--ink, var(--text-primary));font-weight:500}.check-hint{font-size:12.5px;color:var(--ink-3, var(--text-tertiary));line-height:1.5}.radio-cards{display:flex;flex-wrap:wrap;gap:12px}.radio-card{display:flex;flex-direction:column;gap:10px;padding:14px;background:var(--surface);border:1.5px solid var(--hairline-2, var(--border-color));border-radius:var(--r, 12px);cursor:pointer;flex:1 1 160px;min-width:160px;position:relative;transition:border-color var(--tx-fast, .14s ease),box-shadow var(--tx-fast, .14s ease)}.radio-card:hover{border-color:var(--ink-3, var(--text-tertiary))}.radio-card.is-selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.radio-card:focus-within{outline:3px solid var(--accent);outline-offset:2px}.radio-card-text{display:flex;flex-direction:column;gap:2px}.radio-card-title{font-size:14px;font-weight:600}.radio-card-desc{font-size:12px;color:var(--ink-3, var(--text-tertiary));line-height:1.45}.radio-card-mark{position:absolute;top:10px;right:10px;width:22px;height:22px;border-radius:50%;background:var(--accent);color:var(--ink-on-accent, #fff);display:grid;place-items:center;opacity:0;transform:scale(.7);transition:opacity var(--tx-fast, .14s ease),transform var(--tx-fast, .14s ease)}.radio-card-mark svg{width:12px;height:12px;stroke-width:3}.radio-card.is-selected .radio-card-mark{opacity:1;transform:scale(1)}.toggle-list{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r, 12px);overflow:hidden}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;padding:14px 18px;border-bottom:1px solid var(--hairline);min-height:64px}.toggle-row:last-child{border-bottom:0}.toggle-row.is-disabled{opacity:.6}.toggle-text{display:flex;flex-direction:column;gap:2px;cursor:pointer;flex:1}.toggle-label{font-size:14.5px;font-weight:500;color:var(--ink, var(--text-primary))}.toggle-desc{font-size:12.5px;color:var(--ink-3, var(--text-tertiary));line-height:1.45}.toggle{flex:0 0 auto;position:relative;width:48px;height:28px;border-radius:999px;background:var(--hairline-2, var(--border-color));border:0;cursor:pointer;padding:0;transition:background var(--tx, .22s ease)}.toggle:disabled{cursor:not-allowed}.toggle:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.toggle.is-on,.toggle[aria-checked=true]{background:var(--accent)}.toggle-thumb{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform var(--tx, .22s ease)}.toggle.is-on .toggle-thumb,.toggle[aria-checked=true] .toggle-thumb{transform:translate(20px)}.form-section{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r, 12px);padding:1.25rem 1.5rem}.form-section+.form-section{margin-top:1.25rem}.form-legend{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3, var(--text-tertiary));padding:0;margin-bottom:1rem}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.form-help{margin:-.5rem 0 1rem;font-size:13px;color:var(--ink-2, var(--text-secondary))}.form-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.5rem}.form-actions-end{display:flex;gap:.75rem;margin-left:auto}@media(prefers-reduced-motion:reduce){.btn,.seg-btn,.input,.select select,.check-box,.radio-box,.radio-dot,.toggle,.toggle-thumb,.check-control,.radio-card,.dropzone{transition-duration:1ms!important;animation-duration:1ms!important}}@media(prefers-contrast:more){.input,.select select,.check-box,.radio-box{border-width:2px}.btn-primary{box-shadow:0 0 0 1px var(--ink, currentColor)}}.api-key-input{width:100%;height:40px;padding:0 12px;font:inherit;font-size:13.5px;color:var(--ink, var(--text-primary));background:var(--surface);border:1.5px solid var(--hairline-2, var(--border-color));border-radius:var(--r-sm, 8px);font-family:var(--font-mono, ui-monospace, monospace);-webkit-appearance:none;transition:border-color var(--tx-fast, .14s ease),box-shadow var(--tx-fast, .14s ease)}.api-key-input::placeholder{color:var(--ink-3, var(--text-tertiary))}.api-key-input:hover{border-color:var(--ink-3, var(--text-tertiary))}.api-key-input:focus,.api-key-input:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.api-key-save-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:40px;padding:0 16px;border-radius:999px;border:1px solid transparent;background:var(--accent);color:var(--ink-on-accent, #fff);font:inherit;font-weight:600;font-size:13px;cursor:pointer;transition:background var(--tx-fast, .14s ease);box-shadow:var(--shadow-sm)}.api-key-save-btn:hover:not(:disabled){background:var(--accent-hover)}.api-key-save-btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.api-key-save-btn:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.api-key-delete-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:40px;padding:0 14px;border-radius:999px;background:transparent;color:var(--rose);border:1px solid color-mix(in srgb,var(--rose) 35%,var(--hairline-2, var(--border-color)));font:inherit;font-weight:600;font-size:13px;cursor:pointer;transition:background var(--tx-fast, .14s ease)}.api-key-delete-btn:hover:not(:disabled){background:color-mix(in srgb,var(--rose) 8%,transparent)}.api-key-delete-btn:focus-visible{outline:3px solid var(--rose);outline-offset:2px}.api-key-manager-input-row{display:flex;gap:8px;align-items:stretch;flex-wrap:wrap}.api-key-manager-input-row .api-key-input{flex:1 1 240px}.api-key-manager{display:flex;flex-direction:column;gap:10px}.api-key-manager-item{display:flex;flex-direction:column;gap:10px;padding:14px;background:var(--surface);border:1px solid var(--hairline-2, var(--border-color));border-radius:var(--r-md, 10px)}.api-key-manager-header{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.api-key-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:13px;line-height:1;flex-shrink:0}.api-key-icon.configured{background:color-mix(in srgb,var(--success, #22c55e) 16%,transparent);color:var(--success, #22c55e)}.api-key-icon.not-configured{background:transparent;color:var(--ink-3, var(--text-tertiary));border:1.5px solid var(--hairline-2, var(--border-color))}.api-key-manager-name{font-weight:600;font-size:14px;color:var(--ink, var(--text-primary));flex:1;min-width:0}.provider-status{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;white-space:nowrap}.provider-status.configured{background:color-mix(in srgb,var(--success, #22c55e) 14%,transparent);color:var(--success, #22c55e)}.provider-status.not-configured{background:color-mix(in srgb,var(--ink-3, var(--text-tertiary)) 12%,transparent);color:var(--ink-3, var(--text-tertiary))}.api-key-manager-header .api-key-delete-btn{height:28px;padding:0 12px;font-size:12px}.btn-ghost-legacy{background:transparent;border:1px solid var(--hairline-2, var(--border-color));color:var(--ink-2, var(--text-secondary))}.eyebrow{color:var(--ink-3, var(--text-tertiary));font-size:12px;font-weight:600;margin:0 0 4px;letter-spacing:.06em;text-transform:uppercase}.help-banner{display:grid;grid-template-columns:36px 1fr 32px;gap:1rem;align-items:flex-start;padding:1.125rem 1.25rem;background:linear-gradient(180deg,var(--accent-soft),transparent 80%),var(--surface);border:1px solid var(--hairline);border-left:3px solid var(--accent);border-radius:var(--r, 12px)}.help-banner-icon{width:36px;height:36px;border-radius:10px;background:var(--accent);color:var(--ink-on-accent, #fff);display:grid;place-items:center}.help-banner-body strong{display:block;font-size:14.5px;margin-bottom:6px;color:var(--ink, var(--text-primary))}.help-banner-body p{margin:0;color:var(--ink-2, var(--text-secondary));font-size:13.5px;line-height:1.6}.help-banner-body b{color:var(--ink, var(--text-primary));font-weight:600}.help-banner-link{display:inline-flex;align-items:center;gap:6px;margin-top:10px;color:var(--accent);font-size:13px;font-weight:500;text-decoration:none}.help-banner-link:hover{text-decoration:underline}.help-banner-close{width:32px;height:32px;border:0;background:transparent;color:var(--ink-3, var(--text-tertiary));cursor:pointer;border-radius:8px;display:grid;place-items:center}.help-banner-close:hover{color:var(--ink, var(--text-primary));background:var(--elevated)}.help-banner-close:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.settings-section-card{background:var(--surface);border:1px solid var(--hairline);border-radius:14px;padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:1rem}.settings-section-head{display:flex;flex-direction:column;gap:2px}.settings-section-title{margin:0;font-size:17px;font-weight:600;letter-spacing:-.005em;color:var(--ink, var(--text-primary))}.settings-section-desc{margin:0;color:var(--ink-2, var(--text-secondary));font-size:13.5px;max-width:720px;line-height:1.55}.settings-danger{border-color:#b4506a40}.provider-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}@media(max-width:720px){.provider-grid{grid-template-columns:1fr}}.provider-card{position:relative;display:flex;flex-direction:column;gap:14px;padding:1.125rem 1.125rem 1rem;background:var(--surface);border:1.5px solid var(--hairline-2, var(--border-color));border-radius:var(--r, 12px);cursor:pointer;overflow:hidden;text-align:left;font:inherit;color:inherit;transition:border-color var(--tx-fast, .14s ease),transform var(--tx-fast, .14s ease),box-shadow var(--tx-fast, .14s ease)}.provider-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px}.prov-violet:before{background:var(--violet, #8657B4)}.prov-moss:before{background:var(--moss)}.prov-indigo:before{background:var(--accent)}.prov-amber:before{background:var(--amber)}.provider-card:hover:not(:disabled){border-color:var(--ink-3, var(--text-tertiary));transform:translateY(-1px);box-shadow:var(--shadow-md)}.provider-card.is-selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.provider-card.is-disabled{opacity:.85;cursor:not-allowed}.provider-card:focus-visible,.provider-card:focus-within{outline:3px solid var(--accent);outline-offset:2px}.provider-card-head{display:flex;align-items:flex-start;gap:12px}.provider-glyph{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:22px;flex:0 0 auto}.prov-violet .provider-glyph{background:var(--violet-soft, #EFE6F5);color:var(--violet, #8657B4)}.prov-moss .provider-glyph{background:var(--moss-soft);color:var(--moss)}.prov-indigo .provider-glyph{background:var(--accent-soft);color:var(--accent)}.prov-amber .provider-glyph{background:var(--amber-soft);color:var(--amber)}.provider-card-titles{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.provider-name{font-size:16px;font-weight:600;letter-spacing:-.005em;color:var(--ink, var(--text-primary));display:flex;align-items:center;gap:8px;flex-wrap:wrap}.provider-tag{font-size:12px;color:var(--ink-3, var(--text-tertiary));font-family:var(--font-mono, ui-monospace, monospace)}.prov-status{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:999px;font-size:11.5px;font-weight:600;letter-spacing:.02em;flex:0 0 auto}.prov-status.is-ready{background:var(--moss-soft);color:var(--moss)}.prov-status.is-local{background:var(--amber-soft);color:var(--amber)}.prov-status.is-missing{background:var(--rose-soft);color:var(--rose)}.prov-status svg{width:12px;height:12px;stroke-width:2.4}.provider-desc{margin:0;color:var(--ink-2, var(--text-secondary));font-size:13.5px;line-height:1.55}.provider-pros{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}.provider-pros li{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2, var(--text-secondary))}.provider-pros li svg{color:var(--moss);background:var(--moss-soft);border-radius:50%;padding:2px;width:18px;height:18px;flex:0 0 auto;stroke-width:2.6}.provider-foot{display:flex;justify-content:space-between;align-items:center;padding-top:.625rem;border-top:1px solid var(--hairline)}.provider-docs{display:inline-flex;align-items:center;gap:6px;color:var(--ink-3, var(--text-tertiary));font-size:12px;font-family:var(--font-mono, ui-monospace, monospace);text-decoration:none}.provider-docs:hover{color:var(--accent)}.provider-mark{width:24px;height:24px;border-radius:50%;background:var(--accent);color:var(--ink-on-accent, #fff);display:grid;place-items:center;opacity:0;transform:scale(.7);transition:opacity var(--tx-fast, .14s ease),transform var(--tx-fast, .14s ease)}.provider-mark svg{width:14px;height:14px;stroke-width:2.6}.provider-card.is-selected .provider-mark{opacity:1;transform:scale(1)}.keys-list{display:flex;flex-direction:column;gap:12px}.key-row{display:grid;grid-template-columns:44px 1fr auto;gap:1rem;align-items:center;padding:1rem 1.125rem;background:var(--bg);border:1px solid var(--hairline);border-radius:var(--r, 12px)}.key-row.is-set{background:var(--surface);border-color:var(--hairline)}.key-row-icon{width:44px;height:44px;border-radius:12px;background:var(--elevated);color:var(--ink-3, var(--text-tertiary));display:grid;place-items:center}.key-row.is-set .key-row-icon{background:var(--moss-soft);color:var(--moss)}.key-row-body{min-width:0}.key-row-head{display:flex;align-items:center;gap:10px;margin-bottom:4px;flex-wrap:wrap}.key-row-name{font-size:15px;font-weight:600;color:var(--ink, var(--text-primary))}.key-row-meta{color:var(--ink-3, var(--text-tertiary));font-size:12.5px}.key-row-meta code{font-family:var(--font-mono, ui-monospace, monospace);background:var(--elevated);padding:1px 6px;border-radius:4px;font-size:11.5px;color:var(--ink-2, var(--text-secondary))}.key-row-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.key-row-actions .input{width:220px;max-width:100%}.key-mask{font-family:var(--font-mono, ui-monospace, monospace);letter-spacing:.04em;color:var(--ink-3, var(--text-tertiary))}.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;letter-spacing:.02em;height:22px}.badge-ready{background:var(--moss-soft);color:var(--moss)}.badge-warn{background:var(--rose-soft);color:var(--rose)}.badge-in-progress{background:var(--accent-soft);color:var(--accent)}.badge svg{width:12px;height:12px;stroke-width:2.4}.btn-danger-ghost{background:transparent;color:var(--rose);border:1px solid color-mix(in srgb,var(--rose) 30%,var(--hairline-2, var(--border-color)));height:40px;width:40px;border-radius:999px;display:grid;place-items:center;cursor:pointer;transition:background var(--tx-fast, .14s ease)}.btn-danger-ghost:hover{background:var(--rose-soft)}.btn-danger-ghost:focus-visible{outline:3px solid var(--rose);outline-offset:2px}.model-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.model-card{position:relative;display:flex;flex-direction:column;gap:12px;padding:1.125rem;background:var(--surface);border:1.5px solid var(--hairline-2, var(--border-color));border-radius:var(--r, 12px);cursor:pointer;text-align:left;font:inherit;color:inherit;transition:border-color var(--tx-fast, .14s ease),transform var(--tx-fast, .14s ease),box-shadow var(--tx-fast, .14s ease)}.model-card:hover:not(:disabled){border-color:var(--ink-3, var(--text-tertiary));transform:translateY(-1px)}.model-card.is-selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.model-card:focus-visible,.model-card:focus-within{outline:3px solid var(--accent);outline-offset:2px}.model-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.model-tier{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3, var(--text-tertiary));display:flex;align-items:center;gap:8px;margin-bottom:4px}.tier-badge{background:var(--moss);color:var(--ink-on-accent, #fff);padding:2px 8px;border-radius:999px;font-size:10px;letter-spacing:.04em;text-transform:uppercase}.tier-badge.tier-flagship{background:var(--violet, #8657B4)}.tier-badge.tier-fast{background:var(--amber)}.model-name{font-size:16px;font-weight:600;letter-spacing:-.005em;color:var(--ink, var(--text-primary))}.model-mark{width:22px;height:22px;border-radius:50%;background:var(--accent);color:var(--ink-on-accent, #fff);display:grid;place-items:center;opacity:0;transform:scale(.7);transition:opacity var(--tx-fast, .14s ease),transform var(--tx-fast, .14s ease)}.model-mark svg{width:12px;height:12px;stroke-width:3}.model-card.is-selected .model-mark{opacity:1;transform:scale(1)}.model-desc{margin:0;color:var(--ink-2, var(--text-secondary));font-size:13px;line-height:1.5}.model-meters{display:flex;flex-direction:column;gap:6px}.meter{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px}.meter-label{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink-2, var(--text-secondary))}.meter-label svg{width:14px;height:14px;color:var(--ink-3, var(--text-tertiary))}.meter-dots{display:inline-flex;gap:4px}.meter-dot{width:10px;height:6px;border-radius:2px;background:var(--elevated)}.meter-dot.is-on{background:var(--accent)}.model-foot{display:flex;justify-content:space-between;gap:8px;padding-top:.625rem;border-top:1px solid var(--hairline);flex-wrap:wrap}.model-meta{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-3, var(--text-tertiary));font-family:var(--font-mono, ui-monospace, monospace)}.model-meta b{color:var(--ink, var(--text-primary));font-weight:600}.model-meta svg{width:13px;height:13px}.toast-container{position:fixed;bottom:1.5rem;right:1.5rem;z-index:9999;display:flex;flex-direction:column;gap:.5rem;max-width:420px;pointer-events:none}.toast{display:flex;align-items:flex-start;gap:.625rem;padding:.75rem 1rem;background:color-mix(in srgb,var(--surface) 90%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);font-size:.8125rem;line-height:1.5;pointer-events:auto;animation:toast-slide-in .25s ease-out}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.toast-icon{flex-shrink:0;display:flex;align-items:center;margin-top:1px}.toast-message{flex:1;color:var(--text-primary);word-break:break-word}.toast-dismiss{flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:.25rem;background:transparent;border:none;border-radius:4px;color:var(--text-tertiary);cursor:pointer;transition:all .15s}.toast-dismiss:hover{background:#ffffff0f;color:var(--text-secondary)}.toast-error{border-left:3px solid var(--error)}.toast-error .toast-icon{color:var(--error)}.toast-success{border-left:3px solid var(--success)}.toast-success .toast-icon{color:var(--success)}.toast-warning{border-left:3px solid var(--warning)}.toast-warning .toast-icon{color:var(--warning)}.toast-info{border-left:3px solid var(--accent)}.toast-info .toast-icon{color:var(--accent)}
