@import "https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&family=Space+Grotesk:wght@500;700&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{--app-bg:#f0f4f9;--surface:#fff;--surface-subtle:#f8fafc;--line:#4755691f;--line-soft:#64748b12;--ink:#0f172a;--muted:#64748b;--muted-strong:#475569;--accent:#2563eb;--nav-bg:#0c1628;--nav-line:#ffffff0d;--nav-ink:#f1f5f9;--nav-muted:#94a3b899;--display-family:"Space Grotesk", "Segoe UI", sans-serif;--body-family:"Manrope", "Segoe UI", sans-serif;--mono-family:"IBM Plex Mono", monospace;--cm-comment:#6b7280;--cm-string:#059669;--cm-number:#dc2626;--cm-keyword:#7c3aed;--cm-type:#0284c7;--cm-atom:#d97706;--cm-operator:#7c3aed;--cm-muted:#9ca3af;--cm-variable:#0f172a;--border:var(--line);--radius:12px;--btn-radius:8px;--shadow-card:0 1px 3px #0f172a0f, 0 1px 2px #0f172a0a;--shadow-raised:0 4px 20px #0f172a1a, 0 1px 3px #0f172a0f;--shadow-soft:var(--shadow-card);--text:var(--ink);--ink-muted:var(--muted);--ink-faint:#64748b8c;--surface-hover:var(--surface-subtle);--input-bg:var(--surface);--text-sm:.78rem;--text-xs:.72rem;--input-padding:9px 12px;--color-conn-dir:#6366f1;--z-sticky:10;--z-dropdown:100;--z-panel:200;--z-overlay:300;--z-drawer:310;--z-modal:400;--z-tour:1000;--z-tour-tip:1001;font:15px/1.6 var(--body-family);color:var(--ink);background:var(--app-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[data-theme=dark]{--app-bg:#0f1923;--surface:#19253a;--surface-subtle:#1e2c40;--line:#ffffff17;--line-soft:#ffffff0d;--ink:#e2e8f0;--muted:#94a3b8;--muted-strong:#cbd5e1;--accent:#3b82f6;--nav-bg:#080e1a;--shadow-card:0 1px 3px #0006, 0 1px 2px #0000004d;--shadow-raised:0 4px 20px #00000080, 0 1px 3px #0006;--cm-comment:#6b7280;--cm-string:#34d399;--cm-number:#f87171;--cm-keyword:#a78bfa;--cm-type:#38bdf8;--cm-atom:#fbbf24;--cm-operator:#a78bfa;--cm-muted:#4b5563;--cm-variable:#e2e8f0;--border:var(--line);--ink-muted:var(--muted);--ink-faint:#94a3b880;--surface-hover:var(--surface-subtle);--input-bg:var(--surface);color:var(--ink);background:var(--app-bg)}*{box-sizing:border-box}html,body,#root{min-height:100%}body,h1,h2,h3,p,ul,dl,dd,dt{margin:0}h1,h2,h3{font-family:var(--display-family);color:var(--ink);line-height:1.08}h2{letter-spacing:-.02em;font-size:clamp(1.1rem,1.4vw,1.4rem)}h3{letter-spacing:-.01em;font-size:clamp(.95rem,1.1vw,1.1rem)}button,textarea,input{font:inherit}button{border:0}textarea,input,button{outline-color:#3b82f6}img{max-width:100%}mark{color:inherit;background:#facc1557;border-radius:4px;padding:0 2px}a{color:#1d4ed8;text-decoration:none}a:hover{text-decoration:underline}.app-shell{background:var(--app-bg);grid-template-columns:420px minmax(0,1fr);height:100vh;display:grid;overflow:hidden}.admin-page{color:#e2e8f0;background:radial-gradient(circle at 0 0,#2563eb2e,#0000 28%),linear-gradient(#0f172afa,#0f172af0);min-height:100vh;padding:40px clamp(20px,4vw,48px)}.admin-page__hero{max-width:840px;margin-bottom:28px}.admin-page__eyebrow{font-family:var(--mono-family);letter-spacing:.12em;text-transform:uppercase;color:#94a3b8c7;margin:0 0 8px;font-size:.72rem}.admin-page__title{color:#f8fafc;margin:0;font-size:clamp(2rem,4vw,3.4rem);line-height:1}.admin-page__copy{color:#e2e8f0d1;max-width:720px;margin:14px 0 0;line-height:1.65}.admin-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.admin-panel{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0f172aad;border:1px solid #94a3b82e;border-radius:22px;box-shadow:0 24px 60px #02061752}.admin-panel--controls{margin-bottom:18px;padding:22px}.admin-panel--status{margin-bottom:18px}.admin-panel__header{justify-content:space-between;align-items:baseline;gap:12px;padding:20px 22px 0;display:flex}.admin-panel__header h2{color:#f8fafc;margin:0;font-size:1rem}.admin-panel__header span{font-family:var(--mono-family);color:#94a3b8b8;font-size:.74rem}.admin-panel__error{color:#fecaca;margin:14px 0 0}.admin-panel__hint{color:#94a3b8d1;margin:14px 0 0;font-size:.8rem}.admin-status{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:0 22px 22px;display:grid}.admin-status__value{color:#f8fafc;margin-top:8px;font-size:.95rem;display:block}.admin-status__value--mono{font-family:var(--mono-family);word-break:break-all;font-size:.76rem}.admin-controls__row{gap:14px;margin-top:14px;display:flex}.admin-controls__actions{gap:10px;margin-top:18px;display:flex}.admin-field{flex-direction:column;gap:8px;display:flex}.admin-field--compact{width:180px}.admin-field__label{color:#e2e8f0e0;font-size:.82rem}.admin-field__input{color:#f8fafc;width:100%;font:inherit;background:#0f172acc;border:1px solid #94a3b82e;border-radius:14px;padding:12px 14px}.admin-field__input--token{resize:vertical;min-height:96px;font-family:var(--mono-family);font-size:.78rem}.admin-button{color:#e2e8f0;cursor:pointer;background:0 0;border:1px solid #94a3b82e;border-radius:999px;padding:10px 16px;font-weight:600}.admin-button:disabled{opacity:.6;cursor:wait}.admin-button--primary{color:#fff;background:linear-gradient(135deg,#2563ebeb,#0ea5e9e0);border-color:#3b82f680}.admin-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px;display:grid}.admin-stat{background:#0f172ab8;border:1px solid #94a3b824;border-radius:18px;padding:18px 20px}.admin-stat__label{text-transform:uppercase;letter-spacing:.08em;color:#94a3b8b8;font-size:.76rem;display:block}.admin-stat__value{color:#f8fafc;margin-top:8px;font-size:clamp(1.5rem,2vw,2rem);display:block}.admin-table-wrap{padding:16px 22px 22px;overflow:auto}.admin-table{border-collapse:collapse;width:100%;font-size:.84rem}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid #94a3b81f;padding:12px 10px}.admin-table th{text-transform:uppercase;letter-spacing:.08em;color:#94a3b8c2;font-size:.72rem}.admin-table__empty{color:#94a3b8d1;text-align:center}@media (width<=980px){.admin-stats,.admin-grid,.admin-status{grid-template-columns:1fr}.admin-controls__row,.admin-controls__actions{flex-direction:column}.admin-field--compact{width:100%}}.chat-panel{background:var(--nav-bg);border-right:1px solid var(--nav-line);flex-direction:column;height:100vh;display:flex;overflow:hidden}.chat-header{border-bottom:1px solid var(--nav-line);flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 20px 14px;display:flex}.chat-header__brand{flex-direction:column;gap:2px;display:flex}.chat-header__eyebrow{font-family:var(--mono-family);letter-spacing:.04em;color:#94a3b8bf;margin:0;font-size:.6rem}.chat-header__version{font-family:var(--mono-family);letter-spacing:.04em;color:#94a3b880;-webkit-user-select:none;user-select:none;font-size:.55rem}.chat-header__title{letter-spacing:.04em;color:var(--nav-ink);margin:0;font-size:1.05rem;font-weight:800}.chat-header__actions{align-items:center;gap:6px;display:flex}.chat-header__theme-toggle{color:#94a3b8b3;cursor:pointer;background:0 0;border:1px solid #ffffff1a;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;transition:background .12s,color .12s,border-color .12s;display:flex}.chat-header__theme-toggle:hover{color:var(--nav-ink);background:#ffffff0f;border-color:#ffffff2e}.chat-header__reset{color:#94a3b8b3;font-size:var(--text-sm);cursor:pointer;background:0 0;border:1px solid #ffffff1a;border-radius:8px;align-items:center;gap:6px;padding:6px 12px;font-weight:500;transition:background .12s,color .12s,border-color .12s;display:flex}.chat-header__reset:hover{color:var(--nav-ink);background:#ffffff0f;border-color:#ffffff2e}.chat-messages{scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:#ffffff1a transparent;flex-direction:column;flex:1;gap:12px;padding:16px 16px 8px;display:flex;overflow-y:auto}.chat-messages::-webkit-scrollbar{width:4px}.chat-messages::-webkit-scrollbar-track{background:0 0}.chat-messages::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}.chat-empty{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:32px 16px 20px;display:flex}.chat-empty__icon{margin-bottom:4px}.chat-empty__heading{color:var(--nav-ink);margin:0;font-size:1rem;font-weight:700}.chat-empty__sub{color:#94a3b8a6;max-width:280px;margin:0;font-size:.82rem;line-height:1.55}.chat-empty__template-button{color:#dbeafe;font-size:var(--text-sm);letter-spacing:.01em;cursor:pointer;background:linear-gradient(135deg,#0ea5e92e,#2563eb2e);border:1px solid #38bdf852;border-radius:999px;padding:10px 14px;font-weight:600;transition:transform .12s,border-color .12s,background .12s}.chat-empty__template-button:hover{background:linear-gradient(135deg,#2563eb3d,#0ea5e933);border-color:#60a5fa80;transform:translateY(-1px)}.chat-suggestions{flex-direction:column;gap:8px;width:100%;margin-top:8px;display:flex}.chat-suggestion{color:#94a3b8d9;text-align:left;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff14;border-radius:10px;padding:10px 14px;font-size:.8rem;line-height:1.45;transition:background .12s,border-color .12s,color .12s}.chat-suggestion:hover{color:#dbeafe;background:#2563eb1f;border-color:#2563eb4d}.chat-message{flex-direction:column;display:flex}.chat-message--user{align-items:flex-end}.chat-message--assistant{align-items:flex-start}.chat-bubble{word-break:break-word;border-radius:14px;max-width:88%;padding:10px 14px;font-size:.85rem;line-height:1.6}.chat-bubble p{margin:0}.chat-bubble p+p{margin-top:6px}.chat-bubble__note{color:#fcd34d;font-size:var(--text-sm);background:#f59e0b26;border-radius:6px;padding:6px 10px;margin-top:8px!important}.chat-bubble--user{color:#fff;background:#2563eb;border-bottom-right-radius:4px}.chat-bubble--assistant{color:#f1f5f9e6;background:#ffffff12;border:1px solid #ffffff0f;border-bottom-left-radius:4px}.chat-bubble--thinking{align-items:center;gap:5px;padding:12px 16px;display:flex}.chat-thinking-dot{background:#94a3b880;border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite thinking-bounce}.chat-thinking-dot:nth-child(2){animation-delay:.2s}.chat-thinking-dot:nth-child(3){animation-delay:.4s}@keyframes thinking-bounce{0%,80%,to{opacity:.4;transform:scale(.7)}40%{opacity:1;transform:scale(1)}}.chat-checkpoint{flex-direction:column;gap:4px;margin:2px 0;display:flex}.chat-checkpoint__trigger{color:#94a3b873;width:100%;font-size:.7rem;font-family:var(--mono-family);cursor:pointer;text-align:left;background:0 0;border:1px solid #ffffff0f;border-radius:8px;align-items:center;gap:6px;padding:5px 10px;transition:background .12s,color .12s,border-color .12s;display:flex}.chat-checkpoint__trigger:hover{color:#94a3b8bf;background:#ffffff0a;border-color:#ffffff1a}.chat-checkpoint__label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.chat-checkpoint__confirm{background:#ffffff08;border:1px solid #ffffff12;border-radius:8px;align-items:center;gap:8px;padding:7px 10px;display:flex}.chat-checkpoint__confirm-text{color:#94a3b8a6;font-size:.7rem;font-family:var(--mono-family);flex:1}.chat-checkpoint__confirm-btn{border-radius:var(--btn-radius);font-size:.7rem;font-family:var(--mono-family);cursor:pointer;white-space:nowrap;border:1px solid;padding:3px 10px;transition:background .1s}.chat-checkpoint__confirm-btn--restore{color:#93c5fd;background:#2563eb26;border-color:#2563eb4d}.chat-checkpoint__confirm-btn--restore:hover{background:#2563eb40}.chat-checkpoint__confirm-btn--cancel{color:#94a3b88c;background:0 0;border-color:#ffffff1a}.chat-checkpoint__confirm-btn--cancel:hover{color:#94a3b8cc;background:#ffffff0a}.chat-rollback-undo{background:#2563eb14;border-top:1px solid #ffffff0f;align-items:center;gap:10px;padding:10px 14px;display:flex}.chat-rollback-undo__text{font-size:var(--text-sm);color:#bfdbfee6;font-family:var(--mono-family);flex:1}.chat-rollback-undo__button{color:#dbeafe;font-size:.74rem;font-family:var(--mono-family);cursor:pointer;background:#2563eb38;border:1px solid #93c5fd47;border-radius:7px;padding:5px 10px;transition:background .1s,border-color .1s}.chat-rollback-undo__button:hover{background:#2563eb52;border-color:#93c5fd66}.chat-error{color:#fca5a5;background:#ef44441a;border:1px solid #ef444433;border-radius:10px;align-items:center;gap:8px;padding:10px 14px;font-size:.8rem;display:flex}.chat-input-area{border-top:1px solid var(--nav-line);flex-shrink:0;align-items:flex-end;gap:8px;padding:12px 14px 16px;display:flex}.chat-input{min-height:40px;max-height:120px;padding:var(--input-padding);color:var(--nav-ink);font-family:var(--body-family);resize:none;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:12px;outline:none;flex:1;font-size:.85rem;line-height:1.5;transition:border-color .15s,background .15s;overflow-y:auto}.chat-input::placeholder{color:#94a3b866}.chat-input:focus{background:#ffffff14;border-color:#2563eb80}.chat-input:disabled{opacity:.5}.chat-send{border-radius:var(--btn-radius);color:#fff;cursor:pointer;background:#2563eb;border:0;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;transition:background .12s,opacity .12s;display:flex}.chat-send:hover:not(:disabled){background:#1d4ed8}.chat-send:disabled{cursor:not-allowed;background:#2563eb4d}.diagram-panel{background:var(--app-bg);flex-direction:column;height:100vh;display:flex;overflow:hidden}.diagram-toolbar{background:var(--surface);border-bottom:1px solid var(--line-soft);box-sizing:border-box;flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 20px 14px;display:flex}.diagram-toolbar__label{font-family:var(--mono-family);letter-spacing:.15em;text-transform:uppercase;color:var(--muted);font-size:.67rem}.diagram-toolbar__actions{gap:8px;display:flex}.diagram-export-error{border-bottom:1px solid color-mix(in srgb, var(--error,#dc2626) 18%, var(--line-soft));background:color-mix(in srgb, var(--surface) 84%, var(--error,#dc2626) 16%);color:var(--error,#dc2626);font-family:var(--mono-family);font-size:var(--text-xs);justify-content:space-between;align-items:center;gap:12px;padding:10px 20px;display:flex}.diagram-export-error span{flex:1}.diagram-export-error__dismiss{color:var(--muted-strong);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 4px;font-size:.75rem;line-height:1}.diagram-export-error__dismiss:hover{color:var(--ink)}.diagram-action{box-sizing:border-box;border:1px solid var(--line);background:var(--surface);height:32px;color:var(--muted-strong);font-size:var(--text-sm);cursor:pointer;border-radius:8px;align-items:center;gap:5px;padding:0 12px;font-weight:500;transition:background .12s,border-color .12s,color .12s;display:flex}.diagram-action:hover{background:var(--surface-subtle);border-color:var(--accent);color:var(--accent)}.diagram-canvas{background:var(--app-bg);cursor:grab;-webkit-user-select:none;user-select:none;flex:1;justify-content:center;align-items:flex-start;padding:24px;display:flex;overflow:auto}.diagram-canvas:active{cursor:grabbing}.diagram-canvas::-webkit-scrollbar{width:6px;height:6px}.diagram-canvas::-webkit-scrollbar-track{background:0 0}.diagram-canvas::-webkit-scrollbar-thumb{background:#64748b33;border-radius:4px}.diagram-zoom-scroller{justify-content:center;width:100%;display:flex}.diagram-svg-wrapper{transform-origin:top;width:100%;transition:transform .12s;display:block}.diagram-svg-wrapper svg{display:block;width:100%!important;height:auto!important}.diagram-zoom-group{border:1px solid var(--line);background:var(--surface);border-radius:8px;align-items:center;gap:2px;padding:2px;display:flex}.diagram-zoom-btn{border-radius:var(--btn-radius);width:28px;height:28px;color:var(--muted-strong);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:background .1s,color .1s;display:flex}.diagram-zoom-btn:hover:not(:disabled){background:var(--surface-subtle);color:var(--accent)}.diagram-zoom-btn:disabled{opacity:.35;cursor:not-allowed}.diagram-zoom-label{border-radius:var(--btn-radius);min-width:40px;height:28px;color:var(--muted);font-size:var(--text-xs);font-family:var(--mono-family);cursor:pointer;text-align:center;background:0 0;border:none;padding:0 4px;font-weight:600;transition:background .1s,color .1s}.diagram-zoom-label:hover{background:var(--surface-subtle);color:var(--accent)}.diagram-toolbar__export{gap:8px;display:flex}.diagram-export-dropdown{position:relative}.diagram-action--export{gap:6px}.diagram-export-chevron{opacity:.6;margin-left:1px;transition:transform .15s}.diagram-export-chevron--open{transform:rotate(180deg)}.diagram-export-menu{background:var(--surface);border:1px solid var(--line);min-width:200px;box-shadow:var(--shadow-raised);z-index:var(--z-dropdown);border-radius:10px;padding:4px;position:absolute;top:calc(100% + 6px);right:0}.diagram-export-item{width:100%;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:7px;align-items:center;gap:10px;padding:8px 10px;transition:background .1s;display:flex}.diagram-export-item:hover{background:var(--surface-subtle)}.diagram-export-item svg{color:var(--muted);flex-shrink:0}.diagram-export-item span{flex-direction:column;gap:1px;display:flex}.diagram-export-item strong{color:var(--ink);font-size:.8rem;font-weight:600}.diagram-export-item em{font-size:var(--text-xs);color:var(--muted);font-style:normal}.diagram-export-divider{background:var(--line);height:1px;margin:4px 6px}.diagram-export-item--pdf strong{color:var(--accent)}.diagram-toolbar__left{align-items:center;gap:16px;display:flex}.diagram-tab-group{gap:2px;display:flex}.diagram-tab{font-size:var(--text-xs);font-family:var(--mono-family);letter-spacing:.05em;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;padding:3px 10px;transition:color .1s,background .1s,border-color .1s}.diagram-tab:hover:not(:disabled){color:var(--ink);background:var(--surface-subtle)}.diagram-tab--active{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent)}.diagram-tab:disabled{opacity:.35;cursor:default}.diagram-tab__icon{margin-right:5px}.diagram-tab__badge{letter-spacing:.03em;text-transform:uppercase;vertical-align:middle;border-radius:3px;align-items:center;margin-left:5px;padding:1px 5px;font-size:.6rem;font-weight:600;display:inline-flex}.diagram-tab__badge--edited{color:#ca8a04;background:#ca8a0426}.diagram-validation-badge{font-size:var(--text-sm);font-weight:500;font-family:var(--body-family);color:#92400e;cursor:pointer;background:#fef3c7;border:1px solid #fcd34d;border-radius:8px;align-items:center;gap:5px;padding:5px 12px;transition:background .12s;display:inline-flex}.diagram-validation-badge--error{color:#991b1b;background:#fee2e2;border-color:#fca5a5}.diagram-validation-badge--error:hover{background:#fecaca}.diagram-validation-badge--warning{color:#92400e;background:#fef3c7;border-color:#fcd34d}.diagram-validation-badge--warning:hover{background:#fde68a}.diagram-validation-badge--recommendation{color:#1e40af;background:#eff6ff;border-color:#bfdbfe}.diagram-validation-badge--recommendation:hover{background:#dbeafe}[data-theme=dark] .diagram-validation-badge--error{color:#fca5a5;background:#ef444426;border-color:#ef44444d}[data-theme=dark] .diagram-validation-badge--warning{color:#fcd34d;background:#fbbf2426;border-color:#fbbf244d}[data-theme=dark] .diagram-validation-badge--recommendation{color:#93c5fd;background:#60a5fa1f;border-color:#60a5fa4d}.diagram-issues-wrapper{position:relative}.issues-panel{background:var(--surface);border:1px solid var(--line);width:min(560px,100vw - 32px);min-width:360px;max-width:calc(100vw - 32px);box-shadow:var(--shadow-raised);z-index:var(--z-panel);border-radius:10px;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.issues-panel__header{background:var(--surface-subtle);border-bottom:1px solid var(--line);color:var(--muted-strong);font-size:.75rem;font-weight:600;font-family:var(--mono-family);justify-content:space-between;align-items:center;padding:9px 14px;display:flex}.issues-panel__close{cursor:pointer;color:var(--muted);opacity:.7;background:0 0;border:none;padding:0;font-size:.9rem;line-height:1;transition:opacity .1s}.issues-panel__close:hover{opacity:1}.issues-panel__body{max-height:380px;padding:6px 0 8px;overflow-y:auto}.issues-section{padding:0}.issues-section__title{letter-spacing:.07em;text-transform:uppercase;padding:8px 14px 4px;font-size:.68rem;font-weight:700}.issues-section--error .issues-section__title{color:#991b1b}.issues-section--warning .issues-section__title{color:#92400e}.issues-section--recommendation .issues-section__title{color:#1e40af}[data-theme=dark] .issues-section--error .issues-section__title{color:#fca5a5}[data-theme=dark] .issues-section--warning .issues-section__title{color:#fcd34d}[data-theme=dark] .issues-section--recommendation .issues-section__title{color:#93c5fd}.issues-list{margin:0;padding:0 0 6px;list-style:none}.issues-item{font-size:var(--text-sm);color:var(--ink);align-items:flex-start;gap:10px;padding:6px 14px;line-height:1.5;display:flex}.issues-item+.issues-item{border-top:1px solid var(--line-soft)}.issues-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px;margin-top:6px}.issues-dot--error{background:#ef4444}.issues-dot--warning{background:#f59e0b}.issues-dot--recommendation{background:#3b82f6}.issues-item__content{flex-direction:column;flex:auto;gap:3px;min-width:0;display:flex}.issues-item__message{color:var(--ink);white-space:normal;overflow-wrap:anywhere}.issues-item__links{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.issues-item__doc{color:var(--accent);opacity:.8;white-space:normal;overflow-wrap:anywhere;font-size:.7rem;text-decoration:none;transition:opacity .1s}.issues-item__doc:hover{opacity:1;text-decoration:underline}.issues-item__fix{cursor:pointer;color:var(--accent);opacity:.8;background:0 0;border:none;padding:0;font-family:inherit;font-size:.7rem;transition:opacity .1s}.issues-item__fix:hover{opacity:1}@media (width<=720px){.issues-panel{min-width:0;right:-8px}}.diagram-hints-banner{background:var(--line);border-top:1px solid var(--line);flex-direction:column;flex-shrink:0;gap:1px;display:flex}.diagram-hint{font-size:var(--text-sm);background:var(--surface-subtle);align-items:flex-start;gap:8px;padding:8px 14px;line-height:1.4;display:flex}.diagram-hint--warning{background:#fffbeb;border-left:3px solid #f59e0b}.diagram-hint--suggestion{background:#f0f9ff;border-left:3px solid #38bdf8}[data-theme=dark] .diagram-hint--warning{background:#f59e0b14;border-left-color:#f59e0b}[data-theme=dark] .diagram-hint--suggestion{background:#38bdf814;border-left-color:#38bdf8}.diagram-hint__icon{flex-shrink:0;margin-top:1px;font-size:.85rem}.diagram-hint__message{color:var(--ink);flex:1}.diagram-hint__link{font-size:var(--text-xs);color:var(--accent,#2563eb);opacity:.8;white-space:nowrap;flex-shrink:0;margin-top:1px;text-decoration:none}.diagram-hint__link:hover{opacity:1;text-decoration:underline}.diagram-hint__dismiss{cursor:pointer;color:var(--muted);opacity:.5;background:0 0;border:none;flex-shrink:0;margin-top:1px;padding:0;font-size:.75rem;line-height:1;transition:opacity .1s}.diagram-hint__dismiss:hover{opacity:1}.inventory-panel{background:var(--surface-subtle);flex-direction:column;flex:1;display:flex;overflow-y:auto}.inventory-header{border-bottom:1px solid var(--line);background:var(--surface);z-index:var(--z-sticky);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 20px;display:flex;position:sticky;top:0}.inventory-summary{font-size:var(--text-sm);color:var(--muted-strong);align-items:center;gap:6px;font-weight:600;display:flex}.inventory-summary__sep{color:var(--muted);font-weight:400}.inventory-copy{font-size:var(--text-xs);font-family:var(--mono-family);border:1px solid var(--line);background:var(--surface);color:var(--muted-strong);cursor:pointer;border-radius:4px;padding:3px 10px;transition:background .1s,border-color .1s,color .1s}.inventory-copy:hover{border-color:var(--accent);color:var(--accent)}.inventory-groups{flex-direction:column;gap:0;padding:16px 20px 24px;display:flex}.inventory-group__title{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:14px 0 8px;font-size:.7rem;font-weight:700}.inventory-table{border-collapse:collapse;width:100%;font-size:.8rem}.inventory-table th{text-align:left;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);padding:6px 10px 6px 0;font-size:.68rem;font-weight:600}.inventory-table td{vertical-align:middle;border-bottom:1px solid var(--line-soft);color:var(--ink);padding:7px 10px 7px 0}.inventory-row--even td{background:0 0}.inventory-cell--type{width:38%}.inventory-cell--name{width:36%;font-weight:500}.inventory-cell--detail{width:26%}.inventory-type-badge{font-size:var(--text-xs);color:var(--muted-strong);display:inline-block}.inventory-detail{background:var(--surface);border:1px solid var(--line);color:var(--muted-strong);border-radius:3px;margin-right:4px;padding:1px 6px;font-size:.7rem;display:inline-block}.inventory-detail--immutable{color:#059669;background:#05966914;border-color:#05966940}[data-theme=dark] .inventory-detail--immutable{color:#34d399;background:#34d3991a;border-color:#34d39940}.inventory-divider{background:var(--line);height:1px;margin:8px 0}.inventory-empty{color:var(--muted);flex:1;justify-content:center;align-items:center;font-size:.85rem;display:flex}.diagram-empty{text-align:center;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;gap:12px;display:flex}.diagram-empty__icon{opacity:.5}.diagram-empty__text{color:var(--muted);max-width:240px;margin:0;font-size:.85rem;line-height:1.55}.lazy-surface-error{border:1px solid color-mix(in srgb, var(--error,#dc2626) 28%, var(--line));background:color-mix(in srgb, var(--surface) 84%, var(--error,#dc2626) 16%);max-width:360px;box-shadow:var(--shadow-soft);border-radius:14px;flex-direction:column;align-items:center;gap:10px;padding:18px;display:flex}.lazy-surface-error__title{color:var(--ink);margin:0;font-size:.88rem;font-weight:700}.lazy-surface-error__message{color:var(--muted);margin:0;font-size:.8rem;line-height:1.5}.lazy-surface-error__actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.lazy-surface-error__button{border:1px solid var(--accent);background:var(--accent);color:#fff;font-size:.78rem;font-family:var(--mono-family);cursor:pointer;border-radius:8px;padding:7px 12px}.lazy-surface-error__button:hover{filter:brightness(.96)}.lazy-surface-error__button--secondary{border-color:var(--line);background:var(--surface);color:var(--ink)}.diagram-library-btn{border:1px solid var(--line);border-radius:var(--btn-radius);color:var(--muted);font-size:var(--text-xs);font-family:var(--mono-family);letter-spacing:.03em;cursor:pointer;white-space:nowrap;background:0 0;align-items:center;gap:5px;padding:3px 10px;font-weight:500;transition:background .12s,color .12s,border-color .12s;display:flex}.diagram-library-btn:hover{background:var(--surface-subtle);color:var(--accent);border-color:var(--accent)}.diagram-library-btn--has-items{color:var(--muted-strong)}.diagram-save-input-group{align-items:center;gap:4px;display:flex}.diagram-save-input{border:1px solid var(--accent);background:var(--surface);width:140px;height:28px;color:var(--ink);font-size:var(--text-sm);font-family:var(--body-family);border-radius:6px;outline:none;padding:0 8px}.diagram-save-confirm{border:1px solid var(--accent);border-radius:var(--btn-radius);background:var(--accent);color:#fff;cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;transition:opacity .12s;display:flex}.diagram-save-confirm:disabled{opacity:.4;cursor:not-allowed}.library-backdrop{z-index:var(--z-overlay);background:#00000040;position:fixed;inset:0}.library-panel{width:320px;height:100%;z-index:var(--z-drawer);background:var(--surface);border-left:1px solid var(--line);box-shadow:var(--shadow-raised);flex-direction:column;animation:.15s library-slide-in;display:flex;position:fixed;top:0;right:0}@keyframes library-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.library-panel__header{border-bottom:1px solid var(--line-soft);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.library-panel__title{font-size:.82rem;font-weight:700;font-family:var(--display-family);color:var(--ink);letter-spacing:-.01em}.library-panel__header-actions{align-items:center;gap:8px;display:flex}.library-panel__import-btn{font-size:.7rem;font-family:var(--mono-family);border:1px solid var(--line);border-radius:var(--btn-radius);color:var(--muted);cursor:pointer;background:0 0;padding:3px 8px;transition:background .1s,color .1s,border-color .1s}.library-panel__import-btn:hover:not(:disabled){background:var(--surface-subtle);color:var(--accent);border-color:var(--accent)}.library-panel__close{border-radius:var(--btn-radius);width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:background .1s,color .1s;display:flex}.library-panel__close:hover{background:var(--surface-subtle);color:var(--ink)}.library-panel__limit-warning{font-size:var(--text-xs);font-family:var(--mono-family);color:#ef4444;background:#ef444414;border-bottom:1px solid #ef444426;padding:8px 16px}.library-panel__limit-warning--soft{color:#d97706;background:#f59e0b14;border-bottom-color:#f59e0b26}.library-panel__error{font-size:var(--text-xs);font-family:var(--mono-family);color:#ef4444;background:#ef444414;border-bottom:1px solid #ef444426;padding:8px 16px}.library-panel__list{flex:1;padding:8px 0;overflow-y:auto}.library-panel__list::-webkit-scrollbar{width:4px}.library-panel__list::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}.library-panel__empty{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:10px;padding:48px 24px;display:flex}.library-panel__empty p{margin:0;font-size:.8rem;line-height:1.55}.library-panel__footer{border-top:1px solid var(--line-soft);font-size:.67rem;font-family:var(--mono-family);color:var(--muted);text-align:right;flex-shrink:0;padding:10px 16px}.library-panel__tabs{border-bottom:1px solid var(--line-soft);flex-shrink:0;display:flex}.library-panel__tab{color:var(--muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;justify-content:center;align-items:center;gap:6px;padding:9px 0;font-size:.75rem;font-weight:500;transition:color .15s,border-color .15s;display:flex}.library-panel__tab:hover{color:var(--ink)}.library-panel__tab--active{color:var(--accent);border-bottom-color:var(--accent)}.library-panel__tab-count{background:var(--line-soft);min-width:16px;height:16px;font-size:.6rem;font-family:var(--mono-family);color:var(--muted);border-radius:8px;justify-content:center;align-items:center;padding:0 4px;display:inline-flex}.library-panel__tab--active .library-panel__tab-count{background:color-mix(in srgb, var(--accent) 15%, transparent);color:var(--accent)}.library-item{align-items:center;gap:10px;padding:10px 16px;transition:background .1s;display:flex}.library-item:hover{background:var(--surface-subtle)}.library-item+.library-item{border-top:1px solid var(--line-soft)}.library-item__main{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.library-item__name{color:var(--ink);cursor:pointer;text-align:left;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;max-width:100%;padding:0;font-size:.82rem;font-weight:600;transition:color .1s;overflow:hidden}.library-item__name:hover{color:var(--accent)}.library-item__rename-input{width:100%;font-size:.82rem;font-weight:600;font-family:var(--body-family);border:1px solid var(--accent);background:var(--surface);color:var(--ink);border-radius:4px;outline:none;padding:1px 4px}.library-item__meta{color:var(--muted);font-size:.67rem;font-family:var(--mono-family)}.library-item__actions,.library-item__confirm{flex-shrink:0;align-items:center;gap:4px;display:flex}.library-item__confirm-text{color:var(--muted);font-size:.7rem;font-family:var(--mono-family);white-space:nowrap}.library-item__btn{border:1px solid var(--line);border-radius:var(--btn-radius);color:var(--muted-strong);font-size:.7rem;font-family:var(--mono-family);cursor:pointer;white-space:nowrap;background:0 0;justify-content:center;align-items:center;gap:3px;padding:3px 8px;transition:background .1s,color .1s,border-color .1s;display:flex}.library-item__btn:hover{background:var(--surface-subtle);color:var(--ink);border-color:var(--muted)}.library-item__btn--primary{background:color-mix(in srgb, var(--accent) 10%, transparent);border-color:color-mix(in srgb, var(--accent) 30%, transparent);color:var(--accent)}.library-item__btn--primary:hover{background:color-mix(in srgb, var(--accent) 18%, transparent);border-color:var(--accent);color:var(--accent)}.library-item__btn--muted:hover{color:#ef4444;background:#ef44440f;border-color:#ef444466}.library-item__btn--danger{color:#ef4444;border-color:#ef444466}.library-item--template{align-items:flex-start;gap:12px}.library-item--template .library-item__main{gap:4px}.library-item__name--static{font-size:var(--text-sm);color:var(--ink);cursor:default;text-align:left;background:0 0;border:none;padding:0;font-weight:600}.library-item--template .library-item__meta{white-space:normal;line-height:1.5}.library-item__summary{font-size:.68rem;font-family:var(--mono-family);color:var(--muted);letter-spacing:.02em}.library-item__tags{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.library-item__tag{font-size:.6rem;font-family:var(--mono-family);background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent);letter-spacing:.02em;border-radius:4px;padding:2px 6px;font-weight:500}.library-item--template .library-item__actions{flex-shrink:0;margin-left:auto;padding-top:2px}.library-panel__file-input{display:none}.library-item__btn--danger:hover{color:#ef4444;background:#ef44441a;border-color:#ef4444}.chat-header__feedback{color:#94a3b8b3;font-size:var(--text-sm);cursor:pointer;background:0 0;border:1px solid #ffffff1a;border-radius:8px;align-items:center;gap:6px;padding:6px 12px;font-weight:500;transition:background .12s,color .12s,border-color .12s;display:flex}.chat-header__feedback:hover{color:var(--nav-ink);background:#ffffff0f;border-color:#ffffff2e}.feedback-overlay{z-index:var(--z-modal);background:#00000080;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.feedback-modal{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-raised);border-radius:12px;flex-direction:column;width:100%;max-width:480px;max-height:90vh;display:flex;overflow-y:auto}.feedback-modal__header{border-bottom:1px solid var(--line-soft);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.feedback-modal__title{color:var(--ink);margin:0;font-size:.95rem;font-weight:600}.feedback-modal__close{border-radius:var(--btn-radius);width:28px;height:28px;color:var(--ink-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:background .12s,color .12s;display:flex}.feedback-modal__close:hover{background:var(--surface-hover);color:var(--ink)}.feedback-modal__form{flex-direction:column;gap:16px;padding:20px;display:flex}.feedback-modal__field{flex-direction:column;gap:6px;display:flex}.feedback-modal__label{font-size:var(--text-sm);color:var(--ink-muted);font-weight:500}.feedback-modal__input,.feedback-modal__textarea{background:var(--input-bg,var(--surface));border:1px solid var(--line);padding:var(--input-padding);color:var(--ink);resize:vertical;border-radius:8px;font-family:inherit;font-size:.85rem;transition:border-color .12s}.feedback-modal__input:focus,.feedback-modal__textarea:focus{border-color:var(--accent);outline:none}.feedback-modal__input:disabled,.feedback-modal__textarea:disabled{opacity:.5;cursor:not-allowed}.feedback-modal__capture-note{color:var(--ink-faint,var(--ink-muted));background:var(--surface-raised,var(--surface));border:1px solid var(--line-soft);border-radius:8px;margin:0;padding:10px 12px;font-size:.75rem;line-height:1.4}.feedback-modal__error{color:#ef4444;background:#ef444414;border:1px solid #ef444433;border-radius:8px;padding:8px 12px;font-size:.8rem}.feedback-modal__actions{justify-content:flex-end;gap:8px;padding-top:4px;display:flex}.feedback-modal__cancel{border:1px solid var(--line);color:var(--ink-muted);cursor:pointer;background:0 0;border-radius:8px;padding:8px 16px;font-size:.85rem;font-weight:500;transition:background .12s,color .12s}.feedback-modal__cancel:hover:not(:disabled){background:var(--surface-hover);color:var(--ink)}.feedback-modal__cancel:disabled{opacity:.4;cursor:not-allowed}.feedback-modal__submit{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:8px 18px;font-size:.85rem;font-weight:600;transition:opacity .12s}.feedback-modal__submit:hover:not(:disabled){opacity:.88}.feedback-modal__submit:disabled{opacity:.4;cursor:not-allowed}.feedback-modal__success{text-align:center;flex-direction:column;align-items:center;gap:16px;padding:40px 20px;display:flex}.feedback-modal__success p{color:var(--ink);margin:0;font-size:.9rem}.feedback-modal__done-btn{border:1px solid var(--line);color:var(--ink-muted);cursor:pointer;background:0 0;border-radius:8px;padding:8px 24px;font-size:.85rem;font-weight:500;transition:background .12s,color .12s}.feedback-modal__done-btn:hover{background:var(--surface-hover);color:var(--ink)}.tour-backdrop{z-index:var(--z-tour);pointer-events:none;position:fixed;inset:0}.tour-spotlight{pointer-events:none;border-radius:8px;transition:top .22s,left .22s,width .22s,height .22s;position:absolute;box-shadow:0 0 0 9999px #0000008c}.tour-tooltip{background:var(--surface);border:1px solid var(--line);pointer-events:all;width:280px;z-index:var(--z-tour-tip);border-radius:10px;padding:16px;transition:top .22s,left .22s;position:fixed;box-shadow:0 8px 24px #0000002e}.tour-tooltip__arrow{background:var(--surface);border:1px solid var(--line);width:10px;height:10px;position:absolute;transform:rotate(45deg)}.tour-tooltip__arrow--bottom{border-top:none;border-left:none;margin-left:-5px;bottom:-6px;left:50%}.tour-tooltip__arrow--top{border-bottom:none;border-right:none;margin-left:-5px;top:-6px;left:50%}.tour-tooltip__arrow--right{border-bottom:none;border-left:none;margin-top:-5px;top:50%;right:-6px}.tour-tooltip__arrow--left{border-top:none;border-right:none;margin-top:-5px;top:50%;left:-6px}.tour-tooltip__header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.tour-tooltip__step{color:var(--muted);font-size:.7rem;font-family:var(--mono-family);letter-spacing:.05em}.tour-tooltip__skip{font-size:var(--text-xs);color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0}.tour-tooltip__skip:hover{color:var(--ink)}.tour-tooltip__title{color:var(--ink);margin:0 0 6px;font-size:.875rem;font-weight:600}.tour-tooltip__body{color:var(--muted);margin:0 0 14px;font-size:.8rem;line-height:1.5}.tour-tooltip__next{background:var(--accent);color:#fff;border-radius:var(--btn-radius);cursor:pointer;border:none;width:100%;padding:7px 0;font-size:.8rem;font-weight:600;transition:opacity .12s;display:block}.tour-tooltip__next:hover{opacity:.88}
