.catalog-panel{border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:320px;transition:width .2s;display:flex;overflow:hidden}.catalog-panel--collapsed{width:44px}.catalog-panel-header{border-bottom:1px solid var(--border-strong);background:var(--page-bg);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;min-height:48px;padding:14px 16px;display:flex}.catalog-panel--collapsed .catalog-panel-header{flex-direction:column;justify-content:center;gap:10px;padding:14px 0}.catalog-panel-title{letter-spacing:-.01em;color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px;font-weight:600;overflow:hidden}.catalog-panel-icon-only{color:var(--text-secondary);justify-content:center;align-items:center;display:flex}.catalog-panel-toggle{width:24px;height:24px;color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.catalog-panel-toggle:hover{background:var(--btn-ghost-hover);color:var(--text-primary)}.catalog-panel-body--hidden{display:none}.catalog-panel-body{flex-direction:column;flex:1;gap:20px;padding:16px 12px;display:flex;overflow-y:auto}.catalog-group{flex-direction:column;gap:7px;display:flex}.catalog-group-name{letter-spacing:.07em;text-transform:uppercase;color:var(--text-tertiary);border-bottom:1px solid var(--border);padding-bottom:5px;font-size:10px;font-weight:700}.catalog-chips{flex-wrap:wrap;gap:5px;display:flex}.catalog-chip{font-family:var(--font-mono);background:var(--chip-bg);border:1px solid var(--chip-border);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:5px;padding:2px 8px;font-size:11px;transition:background .15s,color .15s,border-color .15s}.catalog-chip:hover,.catalog-chip--active{background:var(--chip-hover);border-color:var(--border-strong);color:var(--text-primary)}.catalog-prop-panel{background:var(--page-bg);border:1px solid var(--border);border-radius:6px;overflow:hidden}.catalog-prop-panel-header{border-bottom:1px solid var(--border);flex-direction:column;gap:3px;padding:7px 10px 6px;display:flex}.catalog-prop-comp-name{font-family:var(--font-mono);color:var(--text-primary);font-size:11px;font-weight:700}.catalog-prop-desc{font-family:var(--font-sans);color:var(--text-tertiary);font-size:10px;line-height:1.5}.catalog-prop-list{flex-direction:column;display:flex}.catalog-prop-row{border-bottom:1px solid var(--border);align-items:baseline;gap:6px;padding:4px 10px;display:flex}.catalog-prop-row:last-child{border-bottom:none}.catalog-prop-name{font-family:var(--font-mono);color:var(--text-primary);flex-shrink:0;min-width:64px;font-size:10px;font-weight:600}.catalog-prop-type{font-family:var(--font-mono);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:10px;overflow:hidden}.catalog-prop-empty{font-family:var(--font-mono);color:var(--text-tertiary);padding:8px 10px;font-size:10px}.catalog-notes{flex-direction:column;gap:3px;margin-top:1px;display:flex}.catalog-note{font-family:var(--font-mono);color:var(--text-tertiary);font-size:10px;line-height:1.6}@media (min-width:769px){.catalog-panel-toggle{display:none}.catalog-panel--collapsed{width:320px}.catalog-panel--collapsed .catalog-panel-header{flex-direction:row;justify-content:space-between;gap:8px;padding:14px 16px}.catalog-panel-icon-only{display:none}.catalog-panel-body--hidden{display:flex}}@media (max-width:768px){.catalog-panel{border-right:none;border-bottom:1px solid var(--border);flex-shrink:0;width:100%;transition:none}.catalog-panel--collapsed{width:100%}.catalog-panel--collapsed .catalog-panel-header{flex-direction:row;justify-content:space-between;padding:14px 16px}.catalog-panel-body--hidden{display:none}.catalog-panel-toggle{width:28px;height:28px}}
.code-panel .panel-header{background:#0f0f0f;border-bottom:1px solid #ffffff0f}.code-tabs{align-items:center;gap:2px;display:flex}.code-tab{font-family:var(--font-sans);letter-spacing:.03em;text-transform:uppercase;color:#ffffff4d;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 10px;font-size:11px;font-weight:600;transition:background .15s,color .15s}.code-tab:hover{color:#fff9;background:#ffffff0d}.code-tab.active{color:#ffffffd9;background:#ffffff1a}.token-count{color:#ffffff59;letter-spacing:0;text-transform:none;font-size:10px;font-weight:500;line-height:1.5;font-family:var(--font-mono);background:#ffffff12;border-radius:4px;align-items:center;margin-left:5px;padding:1px 5px;display:inline-flex}.code-tab.active .token-count{color:#ffffff8c;background:#ffffff1f}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);color:#ffffffbf;font-size:11px;font-weight:400;font-family:var(--font-sans);letter-spacing:0;text-transform:none;white-space:nowrap;pointer-events:none;opacity:0;z-index:100;background:#1e1e1e;border:1px solid #ffffff1f;border-radius:5px;padding:4px 8px;transition:opacity .15s;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0006}[data-tooltip]:hover:after{opacity:1}.token-saving-badge{color:#4ade80;letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;background:#4ade801f;border:1px solid #4ade8040;border-radius:20px;align-items:center;gap:4px;padding:2px 7px;font-size:10px;font-weight:600;display:inline-flex}.code-panel .panel-title{color:#fff6}.code-panel .panel-icon-btn{color:#ffffff4d}.code-panel .panel-icon-btn:hover{color:#fffc;background:#ffffff12}.code-panel .empty-state{color:#fff3}.code-body{background:var(--code-bg);flex:1;overflow:auto}.code-pre{font-family:var(--font-mono);color:var(--code-text);white-space:pre-wrap;word-break:break-word;min-height:100%;margin:0;padding:20px;font-size:13px;line-height:1.65}.status-dot{background:var(--text-tertiary);border-radius:50%;flex-shrink:0;width:6px;height:6px}.status-dot.streaming{background:#4ade80;animation:1s ease-in-out infinite pulse}.status-dot.error{background:#f87171}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.streaming-cursor:after{content:"▋";opacity:.7;font-size:.85em;animation:.8s step-end infinite blink}@keyframes blink{0%,to{opacity:.7}50%{opacity:0}}
.header{z-index:50;background-color:var(--header-bg);border-bottom:1px solid var(--header-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0}.header-inner{grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;height:56px;margin:0 auto;padding:0 16px 0 24px;display:grid}.header-title{color:#0006;letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;justify-self:center;font-size:13px;font-weight:500}.header-left{align-items:center;gap:10px;display:flex}.header-right{justify-self:end;align-items:center;gap:4px;padding-right:24px;display:flex}.header-btn{color:#0000008c;font-family:var(--font-sans);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;padding:6px 10px;font-size:13px;text-decoration:none;transition:background .15s,color .15s;display:flex}.header-btn:hover{color:#0a0a0a;background:#0000000f}.header-btn svg{flex-shrink:0}.header-icon-btn{border-radius:6px;padding:6px}
.modal-overlay{z-index:200;background:var(--modal-backdrop);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);justify-content:center;align-items:center;padding:24px;animation:.15s modal-overlay-in;display:flex;position:fixed;inset:0}@keyframes modal-overlay-in{0%{opacity:0}to{opacity:1}}.modal-container{background:var(--modal-bg);border:1px solid var(--modal-border);box-shadow:var(--modal-shadow);border-radius:16px;flex-direction:column;width:min(1400px,95vw);height:95vh;animation:.2s modal-container-in;display:flex;overflow:hidden}@keyframes modal-container-in{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-container-header{background:var(--panel-header-bg);border-bottom:1px solid var(--panel-header-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.modal-container-body{flex:1;overflow:auto}@media (max-width:768px){.modal-overlay{align-items:flex-end;padding:0}.modal-container{border-radius:16px 16px 0 0;width:100vw;height:95dvh;animation:.35s cubic-bezier(.22,1,.36,1) modal-container-mobile-in}}@keyframes modal-container-mobile-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}
@keyframes preview-spin{to{transform:rotate(360deg)}}.panel-title-group{align-items:center;gap:8px;display:flex}.preview-spinner{color:#6366f1;flex-shrink:0;animation:1s linear infinite preview-spin}.preview-body{flex:1;justify-content:center;align-items:center;display:flex;overflow:auto}.preview-content{align-self:flex-start;width:100%;padding:16px}
