*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--nav-width: 220px;--header-height: 50px;--statusbar-height: 28px;--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Consolas", monospace;--color-bg: #f8f9fa;--color-surface: #ffffff;--color-border: #e2e8f0;--color-text: #1a202c;--color-text-secondary: #64748b;--color-text-muted: #94a3b8;--color-accent: #3b82f6;--color-accent-light: #eff6ff;--color-accent-dark: #1d4ed8;--color-success: #22c55e;--color-success-light: #f0fdf4;--color-warning: #f59e0b;--color-warning-light: #fffbeb;--color-error: #ef4444;--color-error-light: #fef2f2;--color-info: #3b82f6;--color-info-light: #eff6ff}body{font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);line-height:1.5;-webkit-font-smoothing:antialiased}.shell{display:grid;grid-template-columns:var(--nav-width) 1fr;grid-template-rows:var(--header-height) 1fr var(--statusbar-height);height:100vh;overflow:hidden}.shell-header{grid-column:1 / -1;display:flex;align-items:center;gap:12px;padding:0 20px;background:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:10}.shell-header__logo{font-size:15px;font-weight:700;letter-spacing:-.02em}.shell-header__badge{font-size:11px;font-weight:500;color:var(--color-accent);background:var(--color-accent-light);padding:2px 8px;border-radius:10px}.shell-header__spacer{flex:1}.shell-header__meta{display:flex;gap:16px;font-size:11px;font-family:var(--font-mono);color:var(--color-text-secondary)}.shell-header__meta-item{display:flex;align-items:center;gap:4px}.shell-sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);padding:12px 0;overflow-y:auto}.nav-section{padding:0 12px;margin-bottom:4px}.nav-section__title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);padding:8px 8px 4px}.nav-item{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border:none;border-radius:6px;background:transparent;color:var(--color-text-secondary);font-size:13px;font-family:var(--font-sans);cursor:pointer;text-align:left;transition:all .15s}.nav-item:hover{background:var(--color-bg);color:var(--color-text)}.nav-item--active{background:var(--color-accent-light);color:var(--color-accent-dark);font-weight:600}.nav-item__icon{width:18px;text-align:center;font-size:14px;flex-shrink:0}.shell-main{overflow:hidden;padding:0}.shell-main--padded{overflow-y:auto;padding:24px 32px;height:100%}.shell-statusbar{grid-column:1 / -1;display:flex;align-items:center;gap:16px;padding:0 16px;background:#1e293b;color:#94a3b8;font-size:11px;font-family:var(--font-mono);border-top:1px solid #334155}.shell-statusbar__item{display:flex;align-items:center;gap:4px}.shell-statusbar__dot{width:6px;height:6px;border-radius:50%;background:var(--color-success)}.shell-statusbar__dot--warning{background:var(--color-warning)}.shell-statusbar__dot--error{background:var(--color-error)}.shell-statusbar__spacer{flex:1}.shell-statusbar__notif-btn{all:unset;display:flex;align-items:center;gap:4px;cursor:pointer;padding:2px 8px;border-radius:3px;font-size:11px;font-family:var(--font-mono);color:#94a3b8;transition:background .15s}.shell-statusbar__notif-btn:hover{background:#334155;color:#e2e8f0}.notification-toasts{position:fixed;top:16px;right:16px;z-index:9999;display:flex;flex-direction:column;gap:8px;max-width:400px;pointer-events:none}.notification-toast{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:8px;background:#1e293b;color:#e2e8f0;font-size:13px;box-shadow:0 4px 16px #0000004d;pointer-events:auto;animation:toast-slide-in .25s ease-out;border-left:3px solid #94a3b8}.notification-toast--success{border-left-color:var(--color-success)}.notification-toast--error{border-left-color:var(--color-error)}.notification-toast--warning{border-left-color:var(--color-warning)}.notification-toast--info{border-left-color:var(--color-accent)}.notification-toast__icon{flex-shrink:0;font-size:14px}.notification-toast--success .notification-toast__icon{color:var(--color-success)}.notification-toast--error .notification-toast__icon{color:var(--color-error)}.notification-toast--warning .notification-toast__icon{color:var(--color-warning)}.notification-toast--info .notification-toast__icon{color:var(--color-accent)}.notification-toast__message{flex:1;line-height:1.4}.notification-toast__close{all:unset;cursor:pointer;font-size:16px;color:#64748b;padding:2px 4px;line-height:1;border-radius:4px}.notification-toast__close:hover{color:#e2e8f0;background:#334155}@keyframes toast-slide-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}.notification-panel{position:fixed;bottom:var(--statusbar-height);right:16px;width:380px;max-height:400px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px 8px 0 0;box-shadow:0 -4px 24px #0000001f;z-index:9000;display:flex;flex-direction:column;overflow:hidden}.notification-panel__header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--color-border);background:var(--color-bg)}.notification-panel__title{font-size:13px;font-weight:600}.notification-panel__actions{display:flex;gap:8px;align-items:center}.notification-panel__close{all:unset;cursor:pointer;font-size:18px;color:var(--color-text-secondary);line-height:1;padding:2px 4px;border-radius:4px}.notification-panel__close:hover{color:var(--color-text);background:var(--color-border)}.notification-panel__body{overflow-y:auto;flex:1;padding:4px 0}.notification-panel__empty{padding:24px 16px;text-align:center;color:var(--color-text-muted);font-size:13px}.notification-panel__item{display:flex;align-items:flex-start;gap:10px;padding:8px 14px;border-bottom:1px solid var(--color-border)}.notification-panel__item:last-child{border-bottom:none}.notification-panel__item-icon{flex-shrink:0;font-size:13px;margin-top:2px}.notification-panel__item--success .notification-panel__item-icon{color:var(--color-success)}.notification-panel__item--error .notification-panel__item-icon{color:var(--color-error)}.notification-panel__item--warning .notification-panel__item-icon{color:var(--color-warning)}.notification-panel__item--info .notification-panel__item-icon{color:var(--color-accent)}.notification-panel__item-body{flex:1;min-width:0}.notification-panel__item-msg{display:block;font-size:13px;line-height:1.4;color:var(--color-text)}.notification-panel__item-time{display:block;font-size:11px;color:var(--color-text-muted);margin-top:2px}.notification-panel__item-dismiss{all:unset;cursor:pointer;font-size:14px;color:var(--color-text-muted);padding:2px 4px;border-radius:4px;line-height:1}.notification-panel__item-dismiss:hover{color:var(--color-text);background:var(--color-border)}.page-header{margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--color-border)}.page-header__title{font-size:20px;font-weight:700;letter-spacing:-.02em;margin-bottom:4px}.page-header__desc{font-size:13px;color:var(--color-text-secondary)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;margin-bottom:16px}.card__header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--color-border)}.card__title{font-size:13px;font-weight:600}.card__badge{font-size:11px;font-family:var(--font-mono);color:var(--color-text-muted)}.card__body{padding:16px}.card__body--compact{padding:8px 16px}.card__body--scroll{max-height:300px;overflow-y:auto}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.metric{padding:12px 14px;background:var(--color-bg);border-radius:8px;text-align:center}.metric__value{font-size:20px;font-weight:700;font-family:var(--font-mono);color:var(--color-text)}.metric__label{font-size:11px;color:var(--color-text-muted);margin-top:2px}.btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);color:var(--color-text);font-size:13px;font-family:var(--font-sans);cursor:pointer;transition:all .15s;white-space:nowrap}.btn:hover{background:var(--color-bg);border-color:#cbd5e1}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.btn--primary:hover{background:var(--color-accent-dark)}.btn--danger{color:var(--color-error);border-color:#fca5a5}.btn--danger:hover{background:var(--color-error-light)}.btn--success{color:#16a34a;border-color:#86efac}.btn--success:hover{background:var(--color-success-light)}.btn--warning{color:#d97706;border-color:#fcd34d}.btn--warning:hover{background:var(--color-warning-light)}.btn--small{padding:3px 10px;font-size:12px}.btn-group{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.code-block{background:#1e293b;color:#e2e8f0;padding:12px 16px;border-radius:8px;font-size:12px;font-family:var(--font-mono);line-height:1.6;overflow-x:auto;margin-bottom:12px;white-space:pre}.code-inline{background:var(--color-bg);color:var(--color-accent-dark);padding:1px 6px;border-radius:4px;font-size:12px;font-family:var(--font-mono)}.info-card{padding:12px 16px;border-radius:8px;font-size:13px;line-height:1.6;margin-bottom:12px}.info-card--blue{background:var(--color-info-light);border:1px solid #bfdbfe;color:#1e40af}.info-card--green{background:var(--color-success-light);border:1px solid #bbf7d0;color:#166534}.info-card--yellow{background:var(--color-warning-light);border:1px solid #fde68a;color:#92400e}.info-card--red{background:var(--color-error-light);border:1px solid #fecaca;color:#991b1b}.tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:500}.tag--active{background:var(--color-success-light);color:#16a34a}.tag--idle{background:var(--color-bg);color:var(--color-text-muted)}.tag--loading{background:var(--color-warning-light);color:#d97706}.tag--error{background:var(--color-error-light);color:var(--color-error)}.tag--info{background:var(--color-info-light);color:#1e40af}.data-row{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;margin-bottom:2px;border-radius:4px;font-size:12px;background:var(--color-bg)}.data-row__label{font-weight:500}.tree-node__row{display:flex;align-items:center;gap:6px;padding:2px 10px;border-bottom:1px solid #f8fafc;-webkit-user-select:none;user-select:none;font-size:12px;font-family:var(--font-mono)}.tree-node__row--expandable{cursor:pointer}.tree-node__row--expandable:hover{background:var(--color-bg)}.tree-node__arrow{width:10px;font-size:9px;color:var(--color-text-muted);flex-shrink:0}.tree-node__key{color:#7c3aed;font-weight:500}.tree-node__value{color:var(--color-text-secondary);margin-left:auto;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-display{padding:8px 12px;border-radius:6px;background:var(--color-bg);font-size:12px;font-family:var(--font-mono);color:var(--color-text-secondary);margin-bottom:8px}.section{margin-bottom:24px}.section__title{font-size:14px;font-weight:600;margin-bottom:8px;color:var(--color-text)}.section__desc{font-size:13px;color:var(--color-text-secondary);margin-bottom:12px;line-height:1.6}.diff-row{padding:3px 10px;font-size:11px;font-family:var(--font-mono);margin-bottom:1px;border-radius:3px}.diff-row--added{background:var(--color-success-light);color:#166534}.diff-row--removed{background:var(--color-error-light);color:#991b1b}.diff-row--changed{background:var(--color-warning-light);color:#92400e}.input{padding:6px 10px;border:1px solid var(--color-border);border-radius:6px;font-size:13px;font-family:var(--font-sans);background:var(--color-surface);color:var(--color-text);width:100%;transition:border-color .15s}.input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-light)}.input--error{border-color:var(--color-error)}.textarea{padding:10px 12px;border:1px solid var(--color-border);border-radius:8px;font-size:12px;font-family:var(--font-mono);background:var(--color-surface);color:var(--color-text);width:100%;min-height:200px;resize:vertical;line-height:1.6;transition:border-color .15s}.textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-light)}.textarea--error{border-color:var(--color-error)}.issue-item{padding:6px 10px;margin-bottom:2px;border-radius:4px;font-size:12px;border-left:3px solid}.issue-item--error{background:var(--color-error-light);border-left-color:var(--color-error);color:#991b1b}.issue-item--warning{background:var(--color-warning-light);border-left-color:var(--color-warning);color:#92400e}.issue-item--information{background:var(--color-info-light);border-left-color:var(--color-info);color:#1e40af}.placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.placeholder__icon{font-size:48px;margin-bottom:16px;opacity:.3}.placeholder__title{font-size:16px;font-weight:600;color:var(--color-text-secondary);margin-bottom:4px}.placeholder__desc{font-size:13px;color:var(--color-text-muted)}.validator-workspace{display:flex;flex-direction:column;height:calc(100vh - var(--header-height) - var(--statusbar-height));overflow:hidden}.validator-workspace__header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px 12px;border-bottom:1px solid var(--color-border);flex-shrink:0}.validator-workspace__title-row{display:flex;flex-direction:column}.validator-workspace__title{font-size:18px;font-weight:700;letter-spacing:-.02em;margin-bottom:2px}.validator-workspace__desc{font-size:12px;color:var(--color-text-secondary)}.validator-workspace__body{display:flex;flex-direction:column;flex:1;min-height:0}.validator-workspace__layer{display:flex;min-height:0}.validator-workspace__layer--schema{flex:1;border-bottom:2px solid var(--color-border)}.validator-workspace__layer--validation{flex:1}.validator-workspace__resource-list{width:200px;flex-shrink:0;border-right:1px solid var(--color-border);overflow:hidden}.validator-workspace__schema{flex:1;min-width:0;border-right:1px solid var(--color-border);overflow:hidden}.validator-workspace__detail{width:280px;flex-shrink:0;overflow-y:auto;border-left:none}.validator-workspace__editor{flex:1;min-width:0;border-right:1px solid var(--color-border);overflow:hidden}.validator-workspace__result{width:360px;flex-shrink:0;overflow:hidden}.package-selector{display:flex;align-items:center;gap:8px}.package-selector__label{font-size:12px;font-weight:500;color:var(--color-text-secondary);white-space:nowrap}.package-selector__select{padding:4px 10px;border:1px solid var(--color-border);border-radius:6px;font-size:12px;font-family:var(--font-sans);background:var(--color-surface);color:var(--color-text);cursor:pointer}.package-selector__select:focus{outline:none;border-color:var(--color-accent)}.resource-list{display:flex;flex-direction:column;height:100%}.resource-list__header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 6px}.resource-list__title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.resource-list__count{font-size:10px;color:var(--color-text-muted);background:var(--color-bg);padding:1px 6px;border-radius:8px}.resource-list__search{padding:0 8px 6px}.resource-list__search .input{padding:4px 8px;font-size:12px}.resource-list__items{flex:1;overflow-y:auto;padding:0 6px 8px}.resource-list__item{display:flex;align-items:center;gap:6px;width:100%;padding:4px 8px;border:none;border-radius:4px;background:transparent;color:var(--color-text-secondary);font-size:12px;font-family:var(--font-mono);cursor:pointer;text-align:left;transition:all .1s}.resource-list__item:hover{background:var(--color-bg);color:var(--color-text)}.resource-list__item--active{background:var(--color-accent-light);color:var(--color-accent-dark);font-weight:600}.resource-list__item-icon{width:16px;height:16px;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:var(--color-accent);background:var(--color-accent-light);border-radius:3px;flex-shrink:0}.resource-list__loading,.resource-list__empty{padding:20px 12px;text-align:center;font-size:12px;color:var(--color-text-muted)}.schema-viewer{display:flex;flex-direction:column;height:100%}.schema-viewer--empty{justify-content:center}.schema-viewer__tree-panel{display:flex;flex-direction:column;flex:1;min-height:0}.schema-viewer__tree-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px 6px}.schema-viewer__tree-title{font-size:13px;font-weight:700;color:var(--color-text)}.schema-viewer__tree-count{font-size:10px;color:var(--color-text-muted);background:var(--color-bg);padding:1px 6px;border-radius:8px}.schema-viewer__tree-body{flex:1;overflow-y:auto;padding:0 4px 8px}.schema-viewer__detail-panel{border-top:1px solid var(--color-border);max-height:200px;overflow-y:auto}.schema-tree-node__row{display:flex;align-items:center;gap:4px;padding:3px 8px;border-radius:4px;font-size:12px;font-family:var(--font-mono);cursor:pointer;transition:background .1s;-webkit-user-select:none;user-select:none}.schema-tree-node__row:hover{background:var(--color-bg)}.schema-tree-node__row--selected{background:var(--color-accent-light)}.schema-tree-node__arrow{width:18px;font-size:14px;color:var(--color-text-muted);flex-shrink:0;text-align:center;line-height:1}.schema-tree-node__required-star{color:#f59e0b;font-size:10px;flex-shrink:0;margin-left:2px}.schema-tree-node__name{color:#7c3aed;font-weight:500;flex-shrink:0}.schema-tree-node__name--required{color:#dc2626}.schema-tree-node__name--required:after{content:"*";color:#dc2626;font-weight:700;margin-left:1px}.schema-tree-node__meta{display:flex;align-items:center;gap:8px;margin-left:auto;flex-shrink:0}.schema-tree-node__cardinality{font-size:10px;color:var(--color-text-muted);white-space:nowrap}.schema-tree-node__type{font-size:10px;color:var(--color-accent);white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}.schema-tree-node__row--absent{opacity:.45}.schema-tree-node__badge{font-size:9px;font-weight:700;padding:0 5px;border-radius:3px;margin-left:3px;flex-shrink:0}.schema-tree-node__badge--choice,.schema-tree-node__badge--backbone{background:#fef3c7;color:#92400e}.schema-tree-node__preview{font-size:10px;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:140px;margin-left:4px}.schema-tree-node__actions{display:flex;gap:2px;margin-left:auto;flex-shrink:0}.schema-tree-node__btn{width:18px;height:18px;border:none;border-radius:3px;cursor:pointer;font-size:12px;line-height:1;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .1s}.schema-tree-node__row:hover .schema-tree-node__btn{opacity:1}.schema-tree-node__btn--add{background:#dcfce7;color:#16a34a}.schema-tree-node__btn--add:hover{background:#bbf7d0}.schema-tree-node__btn--remove{background:#fee2e2;color:#dc2626}.schema-tree-node__btn--remove:hover{background:#fecaca}.element-detail{padding:10px 14px}.element-detail--empty{display:flex;align-items:center;justify-content:center;height:100%}.element-detail__header{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:8px}.element-detail__rows{display:flex;flex-direction:column;gap:6px}.element-detail__row{display:flex;align-items:flex-start;gap:12px;font-size:12px}.element-detail__row--block{flex-direction:column;gap:4px}.element-detail__label{font-weight:500;color:var(--color-text-secondary);width:80px;flex-shrink:0}.element-detail__value{color:var(--color-text);display:flex;align-items:center;flex-wrap:wrap;gap:4px}.element-detail__value--mono{font-family:var(--font-mono);font-size:11px}.element-detail__type-badge{display:inline-block;padding:1px 6px;border-radius:4px;font-size:11px;font-family:var(--font-mono);background:var(--color-accent-light);color:var(--color-accent-dark)}.element-detail__type-badge--backbone{background:var(--color-bg);color:var(--color-text-secondary)}.element-detail__cardinality{font-family:var(--font-mono);font-size:11px}.element-detail__cardinality--required{color:#dc2626;font-weight:600}.element-detail__required-badge{font-size:10px;font-weight:500;color:#dc2626;background:var(--color-error-light);padding:1px 6px;border-radius:4px}.element-detail__binding-badge{display:inline-block;padding:1px 6px;border-radius:4px;font-size:10px;font-weight:500}.element-detail__binding-badge--required{background:var(--color-error-light);color:#dc2626}.element-detail__binding-badge--extensible{background:var(--color-warning-light);color:#d97706}.element-detail__binding-badge--preferred{background:var(--color-info-light);color:#2563eb}.element-detail__binding-badge--example{background:var(--color-bg);color:var(--color-text-muted)}.element-detail__binding-vs{font-size:10px;font-family:var(--font-mono);color:var(--color-text-muted);word-break:break-all}.element-detail__constraints{display:flex;flex-direction:column;gap:4px}.element-detail__constraint{display:flex;align-items:flex-start;gap:6px;font-size:11px;padding:4px 8px;background:var(--color-bg);border-radius:4px}.element-detail__constraint-key{font-family:var(--font-mono);font-weight:600;flex-shrink:0}.element-detail__constraint-key--error{color:#dc2626}.element-detail__constraint-key--warning{color:#d97706}.element-detail__constraint-text{color:var(--color-text-secondary);line-height:1.4}.json-editor{display:flex;flex-direction:column;height:100%}.json-editor__header{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0}.json-editor__mismatch{padding:4px 14px;background:#fef3c7;color:#92400e;font-size:11px;font-weight:500;border-bottom:1px solid #fde68a;flex-shrink:0}.json-editor__title{font-size:12px;font-weight:600;color:var(--color-text)}.json-editor__actions{display:flex;align-items:center;gap:6px}.json-editor__examples{display:flex;gap:4px}.json-editor__body{flex:1;min-height:0}.example-loader__select{padding:3px 8px;border:1px solid var(--color-border);border-radius:5px;font-size:11px;font-family:var(--font-sans);background:var(--color-surface);color:var(--color-text);cursor:pointer;max-width:220px}.example-loader__select:focus{outline:none;border-color:var(--color-accent)}.validation-result{display:flex;flex-direction:column;height:100%}.validation-result__header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px 6px}.validation-result__title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.validation-result__body{flex:1;overflow-y:auto;padding:0 14px 14px}.validation-result__metrics{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:10px}.validation-result__metrics .metric{padding:8px 10px}.validation-result__metrics .metric__value{font-size:16px}.validation-result__issues{display:flex;flex-direction:column;gap:4px;margin-top:8px}.validation-result__loading{padding:40px 20px;text-align:center;color:var(--color-text-muted);font-size:13px}.issue-item__header{display:flex;align-items:center;gap:8px;margin-bottom:2px}.issue-item__path{font-family:var(--font-mono);font-size:11px;color:var(--color-text-secondary)}.issue-item__message{font-size:12px;line-height:1.5}.issue-item__rule{font-size:10px;font-family:var(--font-mono);color:var(--color-text-muted);margin-top:3px;padding:3px 6px;background:#00000008;border-radius:3px;line-height:1.4}.validation-result__stats{padding:8px 0;margin-bottom:8px;border-bottom:1px solid var(--color-border)}.validation-result__stats-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:6px}.validation-result__stats-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}.validation-result__stat{display:flex;flex-direction:column;align-items:center;padding:6px 4px;background:var(--color-bg);border-radius:6px}.validation-result__stat-value{font-size:16px;font-weight:700;color:var(--color-text)}.validation-result__stat-value--error{color:#dc2626}.validation-result__stat-label{font-size:9px;color:var(--color-text-muted);text-align:center}.btn--ghost{background:transparent;border:1px dashed var(--color-border);color:var(--color-text-secondary)}.btn--ghost:hover{background:var(--color-bg);border-color:var(--color-accent);color:var(--color-accent)}.composer-workspace{display:flex;flex-direction:column;height:calc(100vh - var(--header-height) - var(--statusbar-height));overflow:hidden}.composer-workspace__header{display:flex;align-items:center;justify-content:space-between;padding:12px 24px 10px;border-bottom:1px solid var(--color-border);flex-shrink:0;gap:16px}.composer-workspace__title-row{display:flex;flex-direction:column}.composer-workspace__title{font-size:18px;font-weight:700;letter-spacing:-.02em;margin-bottom:2px}.composer-workspace__desc{font-size:12px;color:var(--color-text-secondary)}.composer-workspace__controls{display:flex;gap:12px;align-items:flex-end}.composer-control{display:flex;flex-direction:column;gap:2px}.composer-control__label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.composer-control__select{padding:5px 10px;border:1px solid var(--color-border);border-radius:6px;font-size:12px;font-family:var(--font-sans);background:var(--color-surface);color:var(--color-text);cursor:pointer;min-width:160px}.composer-control__select:focus{outline:none;border-color:var(--color-accent)}.composer-workspace__breadcrumb{padding:4px 24px;border-bottom:1px solid var(--color-border);background:var(--color-bg);flex-shrink:0}.composer-breadcrumb{display:flex;align-items:center;font-size:12px;color:var(--color-text-secondary);gap:2px}.composer-breadcrumb__sep{margin:0 4px;color:var(--color-text-muted)}.composer-breadcrumb__current{font-weight:600;color:var(--color-accent)}.composer-workspace__body{display:flex;flex:1;min-height:0}.composer-workspace__tree{width:260px;flex-shrink:0;border-right:1px solid var(--color-border);overflow:hidden;display:flex;flex-direction:column}.composer-workspace__form{width:300px;flex-shrink:0;border-right:1px solid var(--color-border);overflow-y:auto}.composer-workspace__editor-col,.composer-workspace__editor{flex:1;min-width:0;overflow:hidden;display:flex;flex-direction:column}.composer-issues{flex-shrink:0;max-height:180px;border-top:1px solid var(--color-border);display:flex;flex-direction:column}.composer-issues__header{display:flex;align-items:center;padding:4px 10px;background:#fef2f2;border-bottom:1px solid #fecaca;flex-shrink:0}.composer-issues__title{font-size:11px;font-weight:600;color:#991b1b}.composer-issues__body{overflow-y:auto;flex:1}.composer-issues__item{display:flex;align-items:flex-start;gap:6px;padding:4px 10px;font-size:11px;font-family:var(--font-mono);border-bottom:1px solid var(--color-border)}.composer-issues__item:last-child{border-bottom:none}.composer-issues__severity{flex-shrink:0;font-weight:700;width:14px;text-align:center}.composer-issues__severity--error{color:#dc2626}.composer-issues__severity--warning{color:#d97706}.composer-issues__severity--information{color:#2563eb}.composer-issues__message{flex:1;color:var(--color-text);word-break:break-word}.composer-issues__path{flex-shrink:0;font-size:10px;color:var(--color-text-muted);margin-left:auto}.composer-workspace__footer{display:flex;align-items:center;gap:12px;padding:8px 24px;border-top:1px solid var(--color-border);flex-shrink:0}.composer-workspace__footer-actions{display:flex;gap:8px}.composer-workspace__validation-bar{font-size:12px;font-weight:600;padding:4px 12px;border-radius:6px}.composer-workspace__validation-bar--valid{background:#dcfce7;color:#166534}.composer-workspace__validation-bar--invalid{background:#fee2e2;color:#991b1b}.composer-tree{display:flex;flex-direction:column;height:100%}.composer-tree--empty{display:flex;align-items:center;justify-content:center}.composer-tree__header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--color-border);flex-shrink:0}.composer-tree__title{font-size:13px;font-weight:700;color:var(--color-accent)}.composer-tree__count{font-size:10px;color:var(--color-text-muted)}.composer-tree__body{overflow-y:auto;flex:1;padding:4px 0}.composer-tree-node__row{display:flex;align-items:center;gap:4px;padding:3px 8px;cursor:pointer;font-size:12px;line-height:1.5;transition:background .1s;min-height:26px}.composer-tree-node__row:hover{background:var(--color-bg)}.composer-tree-node__row--selected{background:var(--color-accent-light)}.composer-tree-node__row--present{font-weight:500}.composer-tree-node__row--absent{opacity:.55}.composer-tree-node__arrow{width:18px;font-size:14px;color:var(--color-text-muted);flex-shrink:0;text-align:center;line-height:1}.composer-tree-node__name{color:#7c3aed;font-weight:500;flex-shrink:0}.composer-tree-node__name--required{color:#dc2626}.composer-tree-node__star{color:#f59e0b;font-size:10px;flex-shrink:0;margin-left:1px}.composer-tree-node__preview{font-size:11px;color:var(--color-text-secondary);font-family:var(--font-mono);margin-left:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100px;flex-shrink:1}.composer-tree-node__meta{margin-left:auto;display:flex;gap:6px;flex-shrink:0}.composer-tree-node__cardinality{font-family:var(--font-mono);font-size:10px;color:var(--color-text-muted)}.composer-tree-node__actions{display:flex;gap:2px;flex-shrink:0;margin-left:4px}.composer-tree-node__btn{width:18px;height:18px;border:none;border-radius:4px;font-size:12px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s}.composer-tree-node__row:hover .composer-tree-node__btn{opacity:1}.composer-tree-node__btn--add{background:#dcfce7;color:#166534}.composer-tree-node__btn--add:hover{background:#bbf7d0}.composer-tree-node__btn--remove{background:#fee2e2;color:#991b1b}.composer-tree-node__btn--remove:hover{background:#fecaca}.composer-form{padding:12px 14px;display:flex;flex-direction:column;gap:10px}.composer-form--empty{display:flex;align-items:center;justify-content:center;height:100%}.composer-form__header{display:flex;align-items:center;gap:8px;padding-bottom:8px;border-bottom:1px solid var(--color-border)}.composer-form__element-name{font-size:14px;font-weight:700;color:#7c3aed}.composer-form__element-type{font-size:11px;font-family:var(--font-mono);color:var(--color-text-muted);background:var(--color-bg);padding:1px 6px;border-radius:4px}.composer-form__required-badge{font-size:9px;font-weight:700;text-transform:uppercase;background:#fee2e2;color:#dc2626;padding:1px 5px;border-radius:4px}.composer-form__array-badge{font-size:9px;font-weight:700;text-transform:uppercase;background:#e0e7ff;color:#4338ca;padding:1px 5px;border-radius:4px}.composer-form__info{display:flex;flex-direction:column;gap:3px}.composer-form__info-row{display:flex;gap:8px;font-size:11px}.composer-form__info-label{color:var(--color-text-muted);min-width:70px}.composer-form__info-value{font-family:var(--font-mono);color:var(--color-text)}.composer-form__body{flex:1}.composer-form__input{width:100%;padding:6px 10px;border:1px solid var(--color-border);border-radius:6px;font-size:12px;font-family:var(--font-mono);background:var(--color-surface);color:var(--color-text);box-sizing:border-box}.composer-form__input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px #7c3aed1a}.composer-form__select{width:100%;padding:6px 10px;border:1px solid var(--color-border);border-radius:6px;font-size:12px;font-family:var(--font-sans);background:var(--color-surface);color:var(--color-text)}.composer-form__checkbox-label{display:flex;align-items:center;gap:6px;font-size:12px;cursor:pointer}.composer-form__code-field{display:flex;flex-direction:column;gap:3px}.composer-form__binding-hint{font-size:10px;color:var(--color-text-muted);font-style:italic}.composer-form__valuex{display:flex;align-items:center;gap:8px;margin-bottom:8px}.composer-form__valuex-label{font-size:11px;font-weight:600;color:var(--color-text-muted)}.composer-form__not-set{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px;color:var(--color-text-muted);font-size:12px}.composer-form__unsupported{font-size:12px;color:var(--color-text-muted);font-style:italic;padding:8px}.composer-form__object{display:flex;flex-direction:column;gap:6px;padding-left:8px;border-left:2px solid var(--color-border)}.composer-form__sub-field{display:flex;flex-direction:column;gap:2px}.composer-form__sub-label{font-size:10px;font-weight:600;color:var(--color-text-secondary)}.composer-form__array{display:flex;flex-direction:column;gap:6px}.composer-form__array-header{display:flex;align-items:center;justify-content:space-between}.composer-form__array-count{font-size:11px;color:var(--color-text-muted)}.composer-form__array-item{border:1px solid var(--color-border);border-radius:6px;padding:6px 8px}.composer-form__array-item-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.composer-form__array-item-index{font-size:10px;font-weight:700;font-family:var(--font-mono);color:var(--color-text-muted)}.composer-form__constraints{margin-top:8px;padding-top:8px;border-top:1px solid var(--color-border)}.composer-form__constraints-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:4px;display:block}.composer-form__constraint{display:flex;gap:6px;font-size:11px;margin-bottom:3px}.composer-form__constraint-key{font-weight:600;color:var(--color-accent);flex-shrink:0}.composer-form__constraint-text{color:var(--color-text-secondary)}.composer-json-editor{display:flex;flex-direction:column;height:100%}.composer-json-editor__header{display:flex;align-items:center;padding:8px 12px;border-bottom:1px solid var(--color-border);flex-shrink:0}.composer-json-editor__title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.composer-json-editor__body{flex:1;min-height:0}.composer-tree-node__choice-badge{font-size:9px;font-weight:700;background:#ede9fe;color:#6d28d9;padding:0 4px;border-radius:3px;margin-left:3px;flex-shrink:0}.composer-tree-node__row--choice-variant{cursor:pointer}.composer-tree-node__row--choice-active{background:#f0fdf4}.composer-tree-node__row--choice-active:hover{background:#dcfce7}.composer-tree-node__row--choice-inactive{opacity:.5}.composer-tree-node__row--choice-inactive:hover{opacity:.8;background:var(--color-bg)}.composer-tree-node__choice-icon{font-size:10px;margin-right:3px;flex-shrink:0}.composer-tree-node__row--choice-active .composer-tree-node__choice-icon{color:#16a34a}.composer-tree-node__row--choice-inactive .composer-tree-node__choice-icon{color:var(--color-text-muted)}.composer-tree-node__name--dimmed{color:var(--color-text-muted);font-weight:400}.composer-tree-node__type-badge{font-size:10px;font-family:var(--font-mono);color:var(--color-text-secondary);background:var(--color-bg);padding:0 4px;border-radius:3px}.composer-form__choice{display:flex;flex-direction:column;gap:10px}.composer-form__choice-selector{display:flex;align-items:center;gap:8px}.composer-form__choice-label{font-size:11px;font-weight:600;color:var(--color-text-muted);flex-shrink:0}.composer-form__choice-value{display:flex;flex-direction:column;gap:4px;padding:8px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg)}.composer-form__choice-badge{font-size:10px;font-weight:700;background:#ede9fe;color:#6d28d9;padding:1px 6px;border-radius:4px}.composer-tree-node__backbone-badge{font-size:9px;font-weight:700;background:#fef3c7;color:#92400e;padding:0 4px;border-radius:3px;margin-left:3px;flex-shrink:0}.composer-tree-node__row--instance{cursor:pointer}.composer-tree-node__row--instance:hover{background:#f0f9ff}.composer-tree-node__instance-icon{font-size:10px;color:#92400e;margin-right:3px;flex-shrink:0}.composer-tree-node__row--add-instance{cursor:pointer;opacity:.6}.composer-tree-node__row--add-instance:hover{opacity:1;background:#f0fdf4}.composer-tree-node__add-text{font-size:11px;color:#16a34a;font-weight:600}.composer-form__backbone{display:flex;flex-direction:column;gap:10px}.composer-form__backbone-field{display:flex;flex-direction:column;gap:4px;padding:6px 8px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg)}.composer-form__backbone-field-header{display:flex;align-items:center;gap:6px}.composer-form__backbone-field-type{font-size:10px;font-family:var(--font-mono);color:var(--color-text-muted)}.composer-form__required-dot{font-size:8px;color:#dc2626}.composer-form__backbone-badge{font-size:10px;font-weight:700;background:#fef3c7;color:#92400e;padding:1px 6px;border-radius:4px}.composer-tree-node__slice-badge{font-size:9px;font-weight:700;background:#e0f2fe;color:#0369a1;padding:0 5px;border-radius:3px;margin-left:3px;flex-shrink:0}.composer-tree-node__row--slice{cursor:default}.composer-tree-node__slice-icon{font-size:10px;margin-right:3px;flex-shrink:0}.composer-tree-node__slice-count{font-size:10px;font-family:var(--font-mono);color:var(--color-text-muted);margin-left:4px}.composer-form__slice-badge{font-size:10px;font-weight:700;background:#e0f2fe;color:#0369a1;padding:1px 6px;border-radius:4px}.composer-form__slice-info{display:flex;flex-direction:column;gap:4px;padding:6px 8px;border:1px solid #bae6fd;border-radius:6px;background:#f0f9ff;font-size:11px}.composer-form__slice-info-label{font-weight:600;color:#0369a1}.composer-form__slice-info-value{font-family:var(--font-mono);font-size:10px;color:var(--color-text-muted)}.composer-tree-node__ext-badge{font-size:9px;font-weight:700;background:#ede9fe;color:#6d28d9;padding:0 5px;border-radius:3px;margin-left:3px;flex-shrink:0}.composer-tree-node__ext-url{font-size:9px;font-family:var(--font-mono);color:#7c3aed;margin-left:4px;opacity:.7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}.composer-form__ext-badge{font-size:10px;font-weight:700;background:#ede9fe;color:#6d28d9;padding:1px 6px;border-radius:4px}.composer-form__reference{display:flex;flex-direction:column;gap:8px}.composer-form__ref-targets{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.composer-form__ref-targets-label{font-size:10px;font-weight:600;color:var(--color-text-muted)}.composer-form__ref-target-chip{font-size:10px;font-weight:600;background:#dbeafe;color:#1e40af;padding:1px 6px;border-radius:4px}.composer-form__ref-field{display:flex;flex-direction:column;gap:2px}.explorer-workspace{display:flex;flex-direction:column;height:100%;overflow:hidden}.explorer-workspace__header{padding:16px 24px 12px;border-bottom:1px solid var(--color-border);flex-shrink:0}.explorer-workspace__title-row{margin-bottom:10px}.explorer-workspace__title{font-size:18px;font-weight:700;margin:0 0 2px}.explorer-workspace__desc{font-size:12px;color:var(--color-text-muted);margin:0}.explorer-workspace__controls{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.explorer-workspace__body{flex:1;display:flex;overflow:hidden;min-height:0}.explorer-workspace__tree{width:320px;flex-shrink:0;border-right:1px solid var(--color-border);overflow-y:auto;display:flex;flex-direction:column}.explorer-workspace__inspector{width:320px;flex-shrink:0;overflow-y:auto}.explorer-workspace__json-col{flex:1;min-width:0;overflow:hidden;display:flex;flex-direction:column;border-right:1px solid var(--color-border)}.explorer-workspace__json{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.explorer-workspace__footer{display:flex;align-items:center;gap:12px;padding:8px 24px;border-top:1px solid var(--color-border);flex-shrink:0}.explorer-workspace__footer-actions{display:flex;gap:8px}.explorer-tree{display:flex;flex-direction:column;height:100%}.explorer-tree--empty{display:flex;align-items:center;justify-content:center;height:100%}.explorer-tree__header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--color-border);flex-shrink:0}.explorer-tree__title{font-weight:700;font-size:13px;color:var(--color-text)}.explorer-tree__count{font-size:10px;color:var(--color-text-muted)}.explorer-tree__body{flex:1;overflow-y:auto;padding:4px 0}.explorer-tree-node__row{display:flex;align-items:center;gap:4px;padding:3px 8px;border-radius:4px;font-size:12px;font-family:var(--font-mono);cursor:pointer;transition:background .1s;-webkit-user-select:none;user-select:none}.explorer-tree-node__row:hover{background:var(--color-bg)}.explorer-tree-node__row--selected{background:var(--color-accent-light)}.explorer-tree-node__arrow{width:18px;font-size:14px;color:var(--color-text-muted);flex-shrink:0;text-align:center;line-height:1}.explorer-tree-node__name{color:#7c3aed;font-weight:500;flex-shrink:0}.explorer-tree-node__name--required{color:#dc2626}.explorer-tree-node__required-star{color:#f59e0b;font-size:10px;flex-shrink:0;margin-left:2px}.explorer-tree-node__badge{font-size:9px;font-weight:700;padding:0 5px;border-radius:3px;margin-left:3px;flex-shrink:0;white-space:nowrap}.explorer-tree-node__badge--choice{background:#fef3c7;color:#92400e}.explorer-tree-node__badge--slice{background:#e0e7ff;color:#3730a3}.explorer-tree-node__badge--ext{background:#fce7f3;color:#9d174d}.explorer-tree-node__badge--backbone{background:#fef3c7;color:#92400e}.explorer-tree-node__badge--ref{background:#dbeafe;color:#1e40af;max-width:120px;overflow:hidden;text-overflow:ellipsis}.explorer-tree-node__preview{font-size:10px;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:140px;margin-left:4px}.explorer-tree-node__meta{display:flex;align-items:center;gap:8px;margin-left:auto;flex-shrink:0}.explorer-tree-node__cardinality{font-size:10px;color:var(--color-text-muted);white-space:nowrap}.explorer-inspector{padding:10px 14px}.explorer-inspector--empty{display:flex;align-items:center;justify-content:center;height:100%}.explorer-inspector__header{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:8px}.explorer-inspector__rows{display:flex;flex-direction:column;gap:2px}.explorer-inspector__row{display:flex;align-items:baseline;gap:8px;padding:4px 0;font-size:12px}.explorer-inspector__row--block{flex-direction:column;gap:4px}.explorer-inspector__label{font-weight:600;color:var(--color-text-muted);flex-shrink:0;min-width:90px;font-size:11px}.explorer-inspector__value{color:var(--color-text);display:flex;flex-wrap:wrap;gap:4px;align-items:center}.explorer-inspector__value--mono{font-family:var(--font-mono);font-size:11px;word-break:break-all}.explorer-inspector__kind-badge{font-size:10px;font-weight:600;background:#f3f4f6;color:#374151;padding:1px 6px;border-radius:4px}.explorer-inspector__type-badge{font-size:10px;font-weight:600;background:#ede9fe;color:#5b21b6;padding:1px 6px;border-radius:4px}.explorer-inspector__type-badge--backbone{background:#fef3c7;color:#92400e}.explorer-inspector__cardinality{font-family:var(--font-mono);font-size:11px}.explorer-inspector__cardinality--required{color:#dc2626;font-weight:700}.explorer-inspector__required-badge{font-size:9px;font-weight:700;color:#fff;background:#dc2626;padding:1px 6px;border-radius:3px;margin-left:4px}.explorer-inspector__ms-badge{font-size:10px;font-weight:700;color:#b45309;background:#fef3c7;padding:1px 6px;border-radius:4px}.explorer-inspector__choice-alt{font-size:10px;color:var(--color-text-muted)}.explorer-inspector__slice-badge{font-size:10px;font-weight:600;background:#e0e7ff;color:#3730a3;padding:1px 6px;border-radius:4px}.explorer-inspector__ref-chip{font-size:10px;font-weight:600;background:#dbeafe;color:#1e40af;padding:1px 6px;border-radius:4px}.explorer-inspector__binding-badge{font-size:10px;font-weight:600;padding:1px 6px;border-radius:4px}.explorer-inspector__binding-badge--required{background:#fee2e2;color:#991b1b}.explorer-inspector__binding-badge--extensible{background:#fef3c7;color:#92400e}.explorer-inspector__binding-badge--preferred{background:#dbeafe;color:#1e40af}.explorer-inspector__binding-badge--example{background:#f3f4f6;color:#374151}.explorer-inspector__binding-vs{font-size:10px;color:var(--color-text-muted);font-family:var(--font-mono);word-break:break-all;margin-left:4px}.explorer-inspector__constraints{display:flex;flex-direction:column;gap:4px}.explorer-inspector__constraint{display:flex;gap:6px;font-size:11px}.explorer-inspector__constraint-key{font-weight:700;flex-shrink:0;font-family:var(--font-mono)}.explorer-inspector__constraint-key--error{color:#dc2626}.explorer-inspector__constraint-key--warning{color:#d97706}.explorer-inspector__constraint-text{color:var(--color-text);word-break:break-word}.explorer-inspector__value-code{font-family:var(--font-mono);font-size:11px;background:#f9fafb;border:1px solid var(--color-border);border-radius:4px;padding:8px;overflow-x:auto;max-height:200px;overflow-y:auto;white-space:pre-wrap;word-break:break-word;margin:0}
