:root{--brand-50: #eef2ff;--brand-100: #e0e7ff;--brand-200: #c7d2fe;--brand-500: #4361ee;--brand-600: #3a56d4;--brand-700: #2f45b8;--gray-50: #f8fafc;--gray-100: #f1f5f9;--gray-200: #e2e8f0;--gray-300: #cbd5e1;--gray-400: #94a3b8;--gray-500: #64748b;--gray-600: #475569;--gray-700: #334155;--gray-800: #1e293b;--gray-900: #0f172a;--danger-50: #fef2f2;--danger-500: #ef4444;--danger-600: #dc2626;--danger-700: #b91c1c;--success-600: #16a34a;--warning-500: #f59e0b;--bg: var(--gray-100);--surface: #ffffff;--surface-hover: var(--gray-50);--border: var(--gray-200);--border-strong: var(--gray-300);--text: var(--gray-900);--text-muted: var(--gray-500);--text-subtle: var(--gray-600);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--radius-sm: 4px;--radius: 6px;--radius-lg: 8px;--radius-pill: 999px;--fs-xs: 11px;--fs-sm: 12px;--fs-md: 13px;--fs-base: 14px;--fs-lg: 16px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-md: 0 4px 12px rgba(15, 23, 42, .1);--focus-ring: 0 0 0 3px rgba(67, 97, 238, .35);--status-draft-bg: #fef3c7;--status-draft-fg: #92400e;--status-published-bg: #d1fae5;--status-published-fg: #065f46;--status-deprecated-bg: #f3f4f6;--status-deprecated-fg: #6b7280;--status-active-bg: #d1fae5;--status-active-fg: #065f46;--status-archived-bg: #fee2e2;--status-archived-fg: #b91c1c}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;font-size:var(--fs-base);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}.app-layout{display:flex;flex-direction:column;height:100%}.app-header{display:flex;align-items:center;gap:16px;padding:0 16px;height:48px;background:#1a1a2e;color:#fff;flex-shrink:0}.app-header h1{font-size:16px;font-weight:600;white-space:nowrap}.app-nav{display:flex;align-items:center;gap:16px}.app-header-actions{margin-left:auto;display:flex;align-items:center;gap:16px}.app-header a{color:#a0a0c0;text-decoration:none;font-size:13px}.app-header a:hover{color:#fff}.app-content{flex:1;overflow:auto}.template-list-page{padding:var(--space-6);max-width:1400px;margin:0 auto}.template-list-layout{display:flex;align-items:flex-start;gap:var(--space-5)}.template-list-main{flex:1;min-width:0}.tpl-origin-tabs{display:inline-flex;gap:2px;margin-bottom:var(--space-4);padding:3px;border-radius:var(--radius-pill);background:var(--gray-100)}.tpl-origin-tab{display:inline-flex;align-items:center;gap:var(--space-2);padding:6px var(--space-4);border:none;border-radius:var(--radius-pill);background:transparent;font-size:var(--fs-sm);font-weight:500;color:var(--text-subtle);white-space:nowrap;cursor:pointer;transition:background .12s,color .12s}.tpl-origin-tab:hover:not(.active){color:var(--text)}.tpl-origin-tab:focus-visible{outline:none;box-shadow:var(--focus-ring)}.tpl-origin-tab.active{background:var(--surface);color:var(--brand-700);font-weight:600;box-shadow:var(--shadow-sm)}.tpl-origin-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;padding:0 6px;border-radius:var(--radius-pill);background:var(--gray-200);font-size:10px;font-weight:600;color:var(--text-subtle)}.tpl-origin-tab.active .tpl-origin-count{background:var(--brand-100);color:var(--brand-700)}.tpl-origin-count.stale{opacity:.45}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}.section-head h2{margin:0 0 4px}.section-head-actions{display:flex;gap:var(--space-2);flex-shrink:0}.section-head p,.template-list-header-text p{margin:0;font-size:var(--fs-sm);color:var(--text-subtle)}.section-empty{padding:var(--space-5);text-align:center;color:var(--text-muted);font-size:var(--fs-sm);background:var(--gray-50);border:1px dashed var(--border-strong);border-radius:var(--radius)}.gallery-tab-count{display:inline-flex;align-items:center;justify-content:center;margin-left:6px;min-width:18px;height:16px;padding:0 5px;border-radius:var(--radius-pill);background:var(--gray-200);font-size:10px;font-weight:600;color:var(--text-subtle)}.gallery-tab.active .gallery-tab-count{background:var(--brand-50);color:var(--brand-600)}.gallery-type-hint{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-1);margin:calc(-1 * var(--space-2)) 0 var(--space-4)}.gallery-type-hint-label{font-size:var(--fs-xs);color:var(--text-muted);margin-right:var(--space-1)}.gallery-type-hint-pill{font-size:var(--fs-xs);font-weight:600;padding:2px var(--space-2);border-radius:var(--radius-pill);background:var(--brand-50);color:var(--brand-600)}.tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-4)}.tpl-card{position:relative;display:flex;flex-direction:column;gap:var(--space-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4);transition:box-shadow .15s,border-color .15s,transform .15s;content-visibility:auto;contain-intrinsic-size:auto 240px}.tpl-card-clickable{cursor:pointer}.tpl-card:hover,.tpl-card:focus-within{border-color:var(--brand-200);box-shadow:var(--shadow-md);transform:translateY(-1px)}.tpl-card-title{margin:0;font-size:var(--fs-md);font-weight:600;color:var(--text);line-height:1.3}.tpl-card-title-btn{display:block;width:100%;padding:0;border:none;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}.tpl-card-title-text{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.tpl-card-title-btn:focus-visible{outline:2px solid var(--brand-500);outline-offset:2px;border-radius:var(--radius-sm)}.card-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-2)}.tpl-card-thumb{position:relative}.tpl-card-lock{position:absolute;top:var(--space-2);right:var(--space-2);display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:var(--radius-pill);background:var(--gray-700);color:#fff;box-shadow:var(--shadow-sm)}.tpl-card-lock svg{width:12px;height:12px}.tpl-card-badges{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.tpl-status{font-size:var(--fs-xs);font-weight:600;padding:2px var(--space-2);border-radius:var(--radius-pill);white-space:nowrap}.tpl-status-draft{background:#fef3c7;color:#92400e}.tpl-status-published{background:#dcfce7;color:#166534}.tpl-status-archived{background:var(--gray-100);color:var(--text-subtle)}.tpl-status-system{background:transparent;color:var(--text-subtle);box-shadow:inset 0 0 0 1px var(--border-strong)}.type-pill{flex-shrink:0;font-size:var(--fs-xs);font-weight:600;padding:2px var(--space-2);border-radius:var(--radius-pill);background:var(--brand-50);color:var(--brand-600);white-space:nowrap}.tpl-card-desc{font-size:var(--fs-sm);line-height:1.4;color:var(--text-subtle);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tpl-card-metaline{display:flex;flex-wrap:wrap;gap:var(--space-2);font-size:var(--fs-xs);color:var(--text-muted)}.tpl-card-metaline span:not(:last-child):after{content:"·";margin-left:var(--space-2);color:var(--gray-300)}.tpl-card-meta{font-size:var(--fs-xs);color:var(--text-muted)}.tpl-card-actions{display:flex;align-items:center;gap:var(--space-2);margin-top:auto;padding-top:var(--space-1)}.tpl-card-actions>.btn{flex:1}.tpl-card-actions>.icon-btn{flex:0 0 auto;width:30px}.tpl-card-actions>.icon-btn-danger{margin-left:auto}.icon-btn{display:inline-flex;align-items:center;justify-content:center;height:30px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-subtle);cursor:pointer;transition:background .12s,border-color .12s,color .12s}.icon-btn svg{width:15px;height:15px}.icon-btn:hover{background:var(--surface-hover);border-color:var(--gray-400);color:var(--text)}.icon-btn-danger:hover{background:var(--danger-50);border-color:var(--danger-500);color:var(--danger-600)}.tpl-toolbar{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-4)}.tpl-search{width:280px;max-width:100%;margin-right:auto;height:32px;padding:0 var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);font-size:var(--fs-sm);color:var(--text)}.tpl-search:focus-visible{outline:none;box-shadow:var(--focus-ring);border-color:var(--brand-500)}.tpl-select-control{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--fs-sm);color:var(--text-subtle)}.tpl-select-control select{height:32px;padding:0 var(--space-2);border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);font-size:var(--fs-sm);color:var(--text);cursor:pointer}.tpl-select-control select:focus-visible{outline:none;box-shadow:var(--focus-ring);border-color:var(--brand-500)}.tpl-pager{display:flex;align-items:center;justify-content:center;gap:var(--space-3);margin-top:var(--space-4);font-size:var(--fs-sm);color:var(--text-subtle)}.tpl-pager-btn{height:32px;padding:0 var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);font-size:var(--fs-sm);color:var(--text);cursor:pointer}.tpl-pager-btn:hover:not(:disabled){border-color:var(--brand-500)}.tpl-pager-btn:focus-visible{outline:none;box-shadow:var(--focus-ring);border-color:var(--brand-500)}.tpl-pager-btn:disabled{opacity:.5;cursor:not-allowed}.tpl-pager-info{min-width:64px;text-align:center}.tpl-thumb-slot{position:relative;display:flex;align-items:center;justify-content:center;height:88px;background:var(--gray-50);border-radius:var(--radius-sm)}.tpl-thumb-paper{position:relative;background:var(--surface);border:1px solid var(--border-strong);border-radius:2px;box-shadow:var(--shadow-sm);overflow:hidden}.tpl-thumb-dim{position:absolute;top:2px;left:3px;font-size:7px;color:var(--text-muted);letter-spacing:.2px}.tpl-thumb-dim-outside{top:4px;left:6px}.tpl-thumb-foldline{position:absolute;top:0;bottom:0;left:50%;width:0;border-left:1px dashed var(--border-strong)}.tpl-thumb-body{position:absolute;top:12px;right:6px;bottom:6px;left:6px;display:flex;flex-direction:column;gap:3px}.tpl-thumb-paper-nodim .tpl-thumb-body{top:5px;right:4px;bottom:5px;left:4px}.tpl-thumb-paper-compact .tpl-thumb-body{top:3px;right:3px;bottom:3px;left:3px;gap:2px}.tpl-thumb-paper-compact .tpl-barcode{height:9px}.tpl-thumb-label,.tpl-thumb-folded{align-items:center;justify-content:center}.tpl-thumb-receipt{align-items:stretch}.tpl-line{height:3px;border-radius:2px;background:var(--gray-300);width:100%}.tpl-line-title{height:4px;width:70%;background:var(--gray-500)}.tpl-line-price{height:6px;width:45%;background:#d68a8a}.tpl-line-total{width:55%;background:var(--gray-500)}.tpl-line-short{width:40%}.tpl-barcode{margin-top:auto;height:12px;width:100%;border-radius:1px;background:repeating-linear-gradient(90deg,var(--gray-800) 0,var(--gray-800) 1px,transparent 1px,transparent 3px)}.tpl-thumb-doc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:4px}.tpl-thumb-doc-mark{width:12px;height:12px;border-radius:2px;background:var(--gray-300);flex-shrink:0}.template-gallery,.template-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm);margin-bottom:var(--space-6)}.template-gallery-header{margin-bottom:var(--space-4)}.gallery-back{display:inline-block;margin-bottom:var(--space-3);padding:0;border:none;background:none;font-size:var(--fs-sm);font-weight:500;color:var(--brand-600);cursor:pointer}.gallery-back:hover{text-decoration:underline}.gallery-back:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius)}.template-gallery-header h2{margin:0 0 4px}.template-gallery-header p{margin:0;font-size:var(--fs-sm);color:var(--text-subtle)}.gallery-tabs{display:flex;flex-wrap:wrap;gap:var(--space-1);padding:3px;background:var(--gray-100);border-radius:var(--radius);margin-bottom:var(--space-4);width:fit-content;max-width:100%}.gallery-tab{border:none;background:transparent;color:var(--text-subtle);padding:5px var(--space-3);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--fs-sm);font-weight:500;transition:background .12s,color .12s,box-shadow .12s}.gallery-tab:hover{color:var(--text)}.gallery-tab:focus-visible{outline:none;box-shadow:var(--focus-ring)}.gallery-tab.active{background:var(--surface);color:var(--brand-600);box-shadow:var(--shadow-sm)}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-4)}.gallery-card{display:flex;flex-direction:column;gap:var(--space-2);background:var(--gray-50);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4);transition:box-shadow .15s,border-color .15s,transform .15s,background .15s;content-visibility:auto;contain-intrinsic-size:auto 240px}.gallery-card:hover{background:var(--surface);border-color:var(--brand-200);box-shadow:var(--shadow-md);transform:translateY(-1px)}.gallery-preview-slot{display:flex;align-items:center;justify-content:center;height:92px}.gallery-preview{flex-shrink:0;border:1px solid var(--border-strong)!important;border-radius:var(--radius-sm)!important;display:flex!important;align-items:center!important;justify-content:center!important;background:var(--surface)!important;font-size:var(--fs-xs)!important;color:var(--text-muted)!important;text-align:center;line-height:1.2;padding:2px var(--space-1)!important}.gallery-card-title{font-size:var(--fs-md);font-weight:600;color:var(--text)}.gallery-card-meta{display:inline-block;align-self:flex-start;font-size:var(--fs-xs);font-weight:600;padding:2px var(--space-2);border-radius:var(--radius-pill);background:var(--brand-50);color:var(--brand-600);text-transform:capitalize}.gallery-card-desc{font-size:var(--fs-sm);line-height:1.4;color:var(--text-subtle);flex:1}.gallery-card-actions{display:flex;gap:var(--space-2);margin-top:var(--space-1)}.gallery-card-actions .btn{flex:1}.gallery-custom-form{display:inline-flex;flex-direction:column;gap:var(--space-2);max-width:100%;background:var(--gray-50);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4)}.custom-form-row{display:flex;align-items:flex-end;gap:var(--space-3);flex-wrap:wrap}.custom-form-row .custom-field-num{width:80px}.custom-form-row .custom-field-unit{width:88px}.custom-form-x{align-self:flex-end;display:flex;align-items:center;height:34px;color:var(--text-muted);font-size:var(--fs-md)}.custom-form-row .btn{align-self:flex-end}.custom-form-error{font-size:var(--fs-xs);color:var(--danger-600)}.btn-outline{background:var(--surface);color:var(--brand-600);border:1px solid var(--brand-200)}.btn-outline:hover{background:var(--brand-50);border-color:var(--brand-500)}.template-list-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}.template-list-header h2{margin:0 0 4px}.template-list-header p{color:var(--text-subtle);margin:0;font-size:var(--fs-sm)}.template-list-header .btn{flex-shrink:0}.template-list-status{margin-bottom:var(--space-3);font-size:var(--fs-xs)}.template-list-status:empty{display:none}.template-list-status .status-muted{color:var(--text-muted)}.template-list-status .status-error{color:var(--danger-600)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);padding:var(--space-2) var(--space-4);border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--text);cursor:pointer;font-size:var(--fs-md);font-weight:500;line-height:1.2;transition:background .12s,border-color .12s,box-shadow .12s,color .12s;white-space:nowrap}.btn:hover{background:var(--surface-hover);border-color:var(--gray-400)}.btn:active{background:var(--gray-100)}.btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--brand-500);color:#fff;border-color:var(--brand-500)}.btn-primary:hover{background:var(--brand-600);border-color:var(--brand-600)}.btn-primary:active{background:var(--brand-700)}.btn-small{padding:var(--space-1) var(--space-3);font-size:var(--fs-sm);border-radius:var(--radius-sm)}.btn-danger{background:var(--danger-600);color:#fff;border-color:var(--danger-600)}.btn-danger:hover{background:var(--danger-700);border-color:var(--danger-700)}.template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));align-items:stretch;gap:16px}.template-card{display:flex;flex-direction:column;gap:var(--space-2);min-height:116px;background:var(--gray-50);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4);cursor:pointer;transition:box-shadow .15s,border-color .15s,transform .15s,background .15s}.template-card:hover{background:var(--surface);border-color:var(--brand-200);box-shadow:var(--shadow-md);transform:translateY(-1px)}.template-card h3{font-size:var(--fs-lg);line-height:1.3;margin:0}.template-card .template-type{display:inline-block;align-self:flex-start;font-size:var(--fs-xs);font-weight:600;padding:2px var(--space-2);border-radius:var(--radius-pill);background:var(--brand-50);color:var(--brand-600);text-transform:capitalize}.template-card .template-size{font-size:var(--fs-sm);color:var(--text-muted)}.template-card .template-desc{font-size:var(--fs-sm);line-height:1.4;color:var(--text-subtle)}.template-card-footer{display:flex;align-items:center;justify-content:space-between;align-self:stretch;margin-top:auto;padding-top:var(--space-2);border-top:1px solid var(--border)}.template-date{display:inline-flex;align-items:center;gap:6px;min-height:16px;font-size:var(--fs-xs);color:var(--text-muted)}.template-date svg{width:13px;height:13px}.template-card-chevron{display:inline-flex;color:var(--text-muted);transition:transform .15s,color .15s}.template-card-chevron svg{width:16px;height:16px}.template-card:hover .template-card-chevron{color:var(--brand-600);transform:translate(2px)}.builder-page{display:flex;height:100%;overflow:hidden}.builder-sidebar{display:flex;flex-direction:column;min-height:0;overflow:hidden;flex-shrink:0;background:var(--surface)}.builder-sidebar-left{width:var(--rail-left, 240px);max-width:34vw;border-right:1px solid var(--border)}.builder-sidebar-right{width:var(--rail-right, 340px);max-width:38vw;border-left:1px solid var(--border)}.rail-scroll{flex:1 1 auto;min-height:0;overflow-y:auto}.rail-dock{flex:0 0 auto;max-height:45%;min-height:96px;overflow-y:auto;border-top:1px solid var(--border);background:var(--gray-50)}.rail-scroll,.rail-dock,.inspector-panel{scrollbar-width:thin;scrollbar-color:var(--gray-300) transparent}.rail-scroll::-webkit-scrollbar,.rail-dock::-webkit-scrollbar,.inspector-panel::-webkit-scrollbar{width:10px}.rail-scroll::-webkit-scrollbar-thumb,.rail-dock::-webkit-scrollbar-thumb,.inspector-panel::-webkit-scrollbar-thumb{background:var(--gray-300);border:3px solid transparent;background-clip:content-box;border-radius:var(--radius-pill)}.rail-scroll:hover::-webkit-scrollbar-thumb,.rail-dock:hover::-webkit-scrollbar-thumb,.inspector-panel:hover::-webkit-scrollbar-thumb{background:var(--gray-400);background-clip:content-box}.rail-resizer{flex:0 0 auto;position:relative;z-index:3;width:6px;margin:0 -3px;cursor:col-resize;touch-action:none}.rail-resizer:before{content:"";position:absolute;top:0;bottom:0;left:2px;right:2px;border-radius:var(--radius-pill);background:transparent;transition:background .12s}.rail-resizer:hover:before,.rail-resizer:focus-visible:before,.rail-resizer.is-dragging:before{background:var(--brand-500)}.rail-resizer:focus-visible{outline:none}.rail-resizer.is-dragging{cursor:col-resize}.rail-resizer.is-dragging:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:2;cursor:col-resize}.builder-center{flex:1;min-width:0;overflow:auto;display:flex;flex-direction:column;container:builder-center / inline-size}.builder-canvas-area{flex:1;display:flex;align-items:stretch;overflow:hidden}.panel-section{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border)}.panel-section h4{font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:var(--space-2)}.panel-section-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-2)}.panel-section-header h4{margin:0}.rail-scroll>.panel-section:last-child{border-bottom:none}.rail-dock .panel-section{padding:0;border-bottom:none}.rail-dock .panel-section>h4{position:sticky;top:0;z-index:1;margin:0;padding:var(--space-2) var(--space-3);background:var(--gray-50);border-bottom:1px solid var(--border)}.rail-dock .panel-section>:not(h4){padding:var(--space-2) var(--space-2) var(--space-3)}.layer-row{position:relative;display:flex;align-items:center;gap:var(--space-2);min-height:34px;padding:var(--space-1) var(--space-1) var(--space-1) 6px;border-bottom:1px solid var(--gray-200);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .1s}.layer-row:hover{background:var(--surface)}.layer-row:focus-visible{outline:none;box-shadow:var(--focus-ring)}.layer-row.is-selected{background:var(--brand-50);box-shadow:inset 2px 0 0 var(--brand-500)}.layer-row.is-hidden .layer-glyph,.layer-row.is-hidden .layer-label{opacity:.45}.layer-row.is-child:before{content:"";position:absolute;top:0;bottom:0;left:12px;border-left:1px solid var(--border-strong)}.layer-glyph{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:var(--radius-sm);background:var(--gray-200);color:var(--text-subtle);font-size:10px;font-weight:600;line-height:1}.layer-row.is-selected .layer-glyph{background:var(--brand-100);color:var(--brand-700)}.layer-label{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:1px}.layer-name{font-size:var(--fs-sm);font-weight:500;color:var(--text);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layer-row.is-selected .layer-name{color:var(--brand-700);font-weight:600}.layer-meta{display:flex;align-items:center;gap:var(--space-1);font-size:10px;line-height:1.2;color:var(--text-muted);white-space:nowrap;overflow:hidden}.layer-type{overflow:hidden;text-overflow:ellipsis}.layer-size{flex:0 0 auto;font-variant-numeric:tabular-nums}.layer-size:before{content:"·";margin-right:var(--space-1);color:var(--gray-300)}.layer-toggles{flex:0 0 auto;display:flex;opacity:0;transition:opacity .12s}.layer-row:hover .layer-toggles,.layer-row:focus-within .layer-toggles,.layer-row.is-selected .layer-toggles,.layer-row.is-hidden .layer-toggles,.layer-row.is-locked .layer-toggles{opacity:1}.layer-row:not(.is-hidden) .layer-toggles>button:first-child,.layer-row:not(.is-locked) .layer-toggles>button:last-child{opacity:.45}.layer-row .layer-toggles>button:hover{opacity:1}.element-panel-buttons{display:flex;flex-direction:column;gap:2px}.element-btn{display:flex;align-items:center;gap:var(--space-2);padding:5px var(--space-2);border:1px solid transparent;background:none;cursor:pointer;font-size:var(--fs-md);color:var(--text);text-align:left;border-radius:var(--radius);width:100%;transition:background .12s,border-color .12s,color .12s}.element-btn>span:last-child{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.element-btn:hover{background:var(--brand-50);border-color:var(--brand-100);color:var(--brand-700)}.element-btn:active{background:var(--brand-100)}.element-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.element-btn-icon{flex:0 0 auto;width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:var(--gray-100);color:var(--text-subtle);border-radius:var(--radius-sm);font-size:10px;font-weight:600;transition:background .12s,color .12s}.element-btn:hover .element-btn-icon{background:var(--brand-100);color:var(--brand-700)}.builder-canvas-wrapper{position:relative}.builder-canvas{position:relative;background:#fff;box-shadow:0 2px 12px #0000001f;transform-origin:top left;overflow:clip}.canvas-safe-margin{position:absolute;border:1px dashed rgba(0,150,0,.3);pointer-events:none;z-index:0}.canvas-fold-line{position:absolute;top:0;bottom:0;width:2px;background:repeating-linear-gradient(to bottom,#e74c3c 0px,#e74c3c 4px,transparent 4px,transparent 8px);z-index:1000;pointer-events:none}.canvas-element{position:absolute;outline:1px solid transparent;outline-offset:-1px;cursor:move;overflow:hidden;-webkit-user-select:none;user-select:none}.canvas-element:hover{outline-color:#4361ee66}.canvas-element.selected{outline:2px solid #4361ee;outline-offset:-2px;box-shadow:0 0 0 1px #4361ee33;overflow:visible}.canvas-element.locked{cursor:default}.canvas-element:focus-visible{box-shadow:inset 0 0 0 2px var(--brand-500),0 0 0 3px #4361ee59}.resize-handle{box-sizing:border-box}.canvas-element.overflow-warning{outline-color:#e74c3c80!important}.canvas-element.overflow-warning.selected{outline:2px solid #e74c3c;outline-offset:-2px;box-shadow:0 0 0 1px #e74c3c4d}.canvas-element-text{display:flex;white-space:pre-wrap;word-break:break-word;line-height:1.2}.canvas-element-barcode{display:flex;align-items:center;justify-content:center;background:#fff;font-family:Courier New,monospace}.canvas-element-qrcode{display:flex;align-items:center;justify-content:center;background:#fff}.canvas-element-line{pointer-events:none}.canvas-element-rectangle{border-radius:0}.canvas-element-image{display:flex;align-items:center;justify-content:center;color:#999;font-size:11px;background:#f8f8f8}.panel-front{background:#fff}.panel-back{background:#fafafa}.property-group{margin-bottom:12px}.property-group label{display:block;font-size:var(--fs-xs);color:var(--text-subtle);margin-bottom:var(--space-1)}.property-group input,.property-group select,.property-group textarea{width:100%;padding:6px var(--space-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--fs-md);font-family:inherit;color:var(--text);background:var(--surface);transition:border-color .12s,box-shadow .12s}.property-group input:hover,.property-group select:hover,.property-group textarea:hover{border-color:var(--gray-400)}.property-group input:focus,.property-group select:focus,.property-group textarea:focus{outline:none;border-color:var(--brand-500);box-shadow:var(--focus-ring)}.property-group textarea{min-height:60px;resize:vertical}.property-row{display:flex;gap:8px}.property-row .property-group{flex:1}.no-selection-msg{padding:var(--space-6) var(--space-4);text-align:center;color:var(--text-muted);font-size:var(--fs-sm);line-height:1.5}.prop-head-row{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}.prop-head-row h4{flex:1 1 auto;min-width:0;margin:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.prop-head-delete{flex:0 0 auto}.prop-head-delete svg{width:15px;height:15px}.prop-head-delete:hover{background:var(--danger-50);color:var(--danger-600)}.prop-head-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2)}.prop-head-actions .btn{width:100%;padding-left:var(--space-1);padding-right:var(--space-1)}.prop-head-group{margin-top:var(--space-2);font-size:var(--fs-xs);color:var(--text-muted)}.prop-head-group code{padding:1px 4px;border-radius:var(--radius-sm);background:var(--gray-100);font-size:10px}.var-search{margin-bottom:var(--space-2)}.variable-picker{max-height:300px;overflow-y:auto;margin:0 calc(-1 * var(--space-1));padding:0 var(--space-1);scrollbar-width:thin;scrollbar-color:var(--gray-300) transparent}.var-group+.var-group{margin-top:var(--space-2)}.var-group-label{position:sticky;top:0;z-index:1;padding:var(--space-1) var(--space-1);background:var(--surface);font-size:var(--fs-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.var-item{display:flex;flex-direction:column;gap:1px;width:100%;padding:5px var(--space-2);border:1px solid transparent;border-radius:var(--radius-sm);background:none;text-align:left;cursor:pointer;transition:background .1s,border-color .1s}.var-item:hover{background:var(--brand-50);border-color:var(--brand-100)}.var-item:focus-visible{outline:none;box-shadow:var(--focus-ring)}.var-item-head{display:flex;align-items:center;gap:var(--space-2);min-width:0}.var-item-label{flex:1 1 auto;min-width:0;font-size:var(--fs-sm);color:var(--text);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.var-item-type{flex:0 0 auto;padding:1px 5px;border-radius:var(--radius-pill);background:var(--gray-100);color:var(--text-muted);font-size:9px;font-weight:600;letter-spacing:.02em}.var-item:hover .var-item-type{background:var(--brand-100);color:var(--brand-700)}.var-item-path{font-family:Consolas,Courier New,monospace;font-size:10px;color:var(--text-muted);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.var-item:hover .var-item-path{color:var(--brand-600)}.var-empty{padding:var(--space-2);font-size:var(--fs-xs);color:var(--text-muted);line-height:1.4}.var-filters-hint{margin-bottom:var(--space-2);font-size:var(--fs-xs);line-height:1.5;color:var(--text-subtle)}.var-filters-hint code{padding:1px 4px;border-radius:var(--radius-sm);background:var(--gray-100);font-size:10px}.var-filters{display:flex;flex-wrap:wrap;gap:var(--space-1)}.var-filter-chip{padding:2px var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--gray-50);color:var(--text-subtle);font-family:Consolas,Courier New,monospace;font-size:10px;white-space:nowrap}.tooltip-anchor{display:inline-flex}.tooltip-anchor>.btn:disabled{pointer-events:none}.tooltip-bubble{position:fixed;z-index:20000;max-width:280px;display:flex;flex-direction:column;gap:3px;padding:var(--space-2) var(--space-3);border-radius:var(--radius);background:var(--gray-900);color:#fff;box-shadow:var(--shadow-md);font-size:var(--fs-sm);line-height:1.45;pointer-events:none;animation:tooltip-in .12s ease-out}@keyframes tooltip-in{0%{opacity:0}}.tooltip-title{display:flex;align-items:center;gap:var(--space-2);font-weight:600;white-space:nowrap}.tooltip-state{margin-left:auto;padding:1px 6px;border-radius:999px;background:#ffffff24;color:var(--gray-300);font-size:10px;font-weight:600;letter-spacing:.02em;white-space:nowrap}.tooltip-state.is-on{background:#34d39938;color:#6ee7b7}.tooltip-state+.tooltip-kbd{margin-left:var(--space-2)}.tooltip-kbd{margin-left:auto;padding:1px 5px;border-radius:var(--radius-sm);background:#ffffff24;color:var(--gray-200);font-family:inherit;font-size:10px;font-weight:500;white-space:nowrap}.tooltip-hint{color:var(--gray-300);font-size:var(--fs-xs);font-weight:400}.builder-toolbar{--tb-h: 28px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-2) var(--space-3);padding:var(--space-2) var(--space-3);background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}.toolbar-zone{display:flex;align-items:center;flex-wrap:nowrap;gap:var(--space-1);min-width:0}.toolbar-group{display:flex;align-items:center;gap:2px}.toolbar-divider{width:1px;height:18px;flex:0 0 auto;background:var(--border);margin:0 var(--space-1)}.toolbar-divider-inner{height:14px;background:var(--border-strong);opacity:.6}.builder-toolbar .btn{height:var(--tb-h)}.btn-icon{width:var(--tb-h);padding:0;border-radius:var(--radius-sm);color:var(--text-subtle)}.btn-icon svg{flex:0 0 auto}.builder-toolbar .btn:not(.btn-primary){border-color:transparent;background:transparent}.builder-toolbar .btn:not(.btn-primary):hover:not(:disabled){background:var(--surface-hover);border-color:var(--border);color:var(--text)}.builder-toolbar .btn-toggle[aria-pressed=true]{background:var(--brand-50);border-color:var(--brand-200);color:var(--brand-700)}.builder-toolbar .btn-toggle[aria-pressed=true]:hover:not(:disabled){background:var(--brand-100);border-color:var(--brand-500);color:var(--brand-700)}.toolbar-segment{display:inline-flex;align-items:center;gap:2px;padding:2px;border-radius:var(--radius);background:var(--gray-100)}.toolbar-segment .btn{height:calc(var(--tb-h) - 4px);width:calc(var(--tb-h) - 4px);border-color:transparent;background:transparent}.toolbar-segment .btn:hover{background:#ffffffb3;border-color:transparent}.toolbar-segment .btn[aria-pressed=true]{background:var(--surface);border-color:var(--border);box-shadow:var(--shadow-sm);color:var(--brand-600)}.toolbar-save{min-width:104px}.toolbar-menu{position:fixed;z-index:19000;width:300px;padding:var(--space-2);border:1px solid var(--gray-200);border-radius:var(--radius-lg);background:#fff;box-shadow:0 10px 30px #0f172a29;animation:tooltip-in .12s ease-out}.toolbar-menu-caption{margin:var(--space-1) 0 var(--space-1) var(--space-2);font-size:var(--fs-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--gray-500)}.toolbar-menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px}.toolbar-menu-grid-single{grid-template-columns:1fr}.toolbar-menu-item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2);border:0;border-radius:var(--radius);background:transparent;color:var(--gray-800);font-size:var(--fs-sm);text-align:left;cursor:pointer}.toolbar-menu-item:hover:not(:disabled){background:var(--gray-100)}.toolbar-menu-item:focus-visible{outline:2px solid var(--brand-500);outline-offset:-2px}.toolbar-menu-item:disabled{color:var(--gray-400);cursor:not-allowed}.toolbar-menu-note,.toolbar-menu-empty{margin:var(--space-1) var(--space-2) var(--space-2);font-size:var(--fs-xs);line-height:1.5;color:var(--gray-500)}.toolbar-menu-empty{margin-top:0;padding:var(--space-2);border-radius:var(--radius);background:var(--gray-50);color:var(--gray-600)}.toolbar-arrange-trigger{gap:var(--space-1)}.toolbar-input,.toolbar-select{height:var(--tb-h);padding:var(--space-1) var(--space-2);font-size:var(--fs-sm);font-family:inherit;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);line-height:1.2;transition:border-color .12s,box-shadow .12s}.toolbar-input:focus,.toolbar-select:focus{outline:none;box-shadow:var(--focus-ring);border-color:var(--brand-500)}.toolbar-input:disabled,.toolbar-select:disabled{opacity:.5;cursor:not-allowed}.toolbar-input-group{display:inline-flex;align-items:center;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);overflow:hidden;height:var(--tb-h);transition:border-color .12s,box-shadow .12s}.toolbar-input-group:focus-within{border-color:var(--brand-500);box-shadow:var(--focus-ring)}.toolbar-input-group .toolbar-input{border:none;border-radius:0;height:100%;box-shadow:none;width:40px;text-align:center;padding:0 var(--space-1);background:transparent;font-variant-numeric:tabular-nums}.toolbar-input-group .toolbar-input:focus{box-shadow:none}.toolbar-input-group .toolbar-addon{padding:0 var(--space-2) 0 0;font-size:var(--fs-xs);color:var(--text-muted);pointer-events:none;-webkit-user-select:none;user-select:none}.toolbar-select{cursor:pointer;padding-right:var(--space-3)}.toolbar-zoom-select{width:72px;text-align:center;font-variant-numeric:tabular-nums}.toolbar-status{display:inline-flex;align-items:center;gap:var(--space-1);padding:0 var(--space-2);height:22px;border-radius:var(--radius-pill);font-size:var(--fs-xs);font-weight:500;white-space:nowrap}.toolbar-status-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex:0 0 auto}.toolbar-status-error{background:var(--danger-50);color:var(--danger-700);cursor:help}.publish-pills{display:flex;flex-wrap:wrap;gap:var(--space-2)}.publish-pill{display:inline-flex;align-items:baseline;gap:var(--space-1);padding:3px var(--space-2);border-radius:var(--radius-pill);font-size:var(--fs-xs);font-weight:500;line-height:1.4}.publish-pill-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex:0 0 auto;transform:translateY(-1px)}.publish-pill-draft,.publish-pill-busy{background:var(--gray-100, #f3f4f6);color:var(--text-subtle, #6b7280)}.publish-pill-published,.publish-pill-saved{background:#f0fdf4;color:var(--success-600)}.publish-pill-dirty{background:#fff7ed;color:#b45309}.publish-pill-archived,.publish-pill-error{background:var(--danger-50);color:var(--danger-700)}.publish-pill-blocked{background:#fff7ed;color:#b45309}.publish-card{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);padding-left:calc(var(--space-3) - 1px);border:1px solid var(--border);border-left:3px solid var(--tone, var(--border-strong));border-radius:var(--radius);background:var(--tone-bg, var(--surface))}.publish-card-draft{--tone: var(--gray-400);--tone-bg: var(--gray-50)}.publish-card-published{--tone: var(--success-600);--tone-bg: #f0fdf4}.publish-card-dirty,.publish-card-blocked{--tone: var(--warning-500, #f59e0b);--tone-bg: #fff7ed}.publish-card-archived{--tone: var(--gray-500);--tone-bg: var(--gray-100)}.publish-meaning{margin:0;font-size:var(--fs-xs);line-height:1.45;color:var(--text-subtle)}.publish-blocked{margin:0;font-size:var(--fs-xs);line-height:1.45;font-weight:500;color:#b45309}.publish-republish{align-self:flex-start}.folded-preview{display:flex;gap:16px;padding:12px;flex-wrap:wrap}.folded-preview-panel{border:1px solid #e0e0e0;border-radius:4px;overflow:hidden}.folded-preview-panel h5{font-size:11px;padding:4px 8px;background:#f5f5f5;color:#666}.preview-section{padding:var(--space-3);border-top:1px solid var(--border)}.preview-section h4{font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:var(--space-2)}.preview-actions{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.preview-actions .btn{width:100%}.preview-actions-primary{grid-column:1 / -1}.preview-actions-note{grid-column:1 / -1;font-size:var(--fs-xs);color:var(--text-muted)}.preview-actions-note+.btn{grid-column:1 / -1}.text-status-badge-anchor{position:absolute;top:-16px;right:0;z-index:9999;pointer-events:none}.text-status-badge{display:inline-block;font-size:9px;font-weight:600;line-height:1;padding:2px 5px;border-radius:8px;color:#fff;white-space:nowrap;letter-spacing:.2px}.text-status-ok{background:#27ae60}.text-status-shrunk{background:#f39c12}.text-status-overflow{background:#e74c3c}.text-status-unreadable{background:#c0392b}.text-status-clipped{background:#e67e22}.loading-spinner{display:flex;align-items:center;justify-content:center;padding:40px;color:#888}.loading-spinner:after{content:"";width:24px;height:24px;border:3px solid #ddd;border-top-color:#4361ee;border-radius:50%;animation:spin .6s linear infinite;margin-left:8px}@keyframes spin{to{transform:rotate(360deg)}}.ui-field{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.ui-field-label{font-size:var(--fs-xs);color:var(--text-subtle);font-weight:500}.ui-field-label-text{display:inline-flex;align-items:center;gap:3px}.ui-field-label .ui-field-hint{display:block;margin-top:2px;color:var(--text-muted);font-weight:400;line-height:1.4;overflow-wrap:anywhere}.info-hint{display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;background:none;color:var(--gray-400);cursor:help;font:inherit;line-height:0;border-radius:50%}.info-hint:hover,.info-hint:focus-visible{color:var(--brand-600)}.info-hint:focus-visible{outline:none;box-shadow:var(--focus-ring)}.inspector-panel .panel-section>h4{display:flex;align-items:center;gap:var(--space-1)}.panel-checkbox .info-hint{margin-left:2px}.ui-input,.ui-select{width:100%;padding:6px var(--space-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--fs-md);font-family:inherit;color:var(--text);background:var(--surface);transition:border-color .12s,box-shadow .12s}.ui-input:hover,.ui-select:hover{border-color:var(--gray-400)}.ui-input:focus,.ui-select:focus{outline:none;border-color:var(--brand-500);box-shadow:var(--focus-ring)}.ui-input::placeholder{color:var(--gray-400)}.ui-icon-btn{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 var(--space-2);border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-subtle);cursor:pointer;font-size:var(--fs-md);transition:background .12s,color .12s,border-color .12s}.ui-icon-btn:hover{background:var(--gray-100);color:var(--text)}.ui-icon-btn:active{background:var(--gray-200)}.ui-icon-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.ui-icon-btn.is-active{background:var(--brand-50);color:var(--brand-600);border-color:var(--brand-100)}.ui-icon-btn:disabled{opacity:.4;cursor:not-allowed}.ui-row{display:flex;align-items:flex-end;gap:var(--space-2)}.ui-row>.ui-field{flex:1;min-width:0}.ui-segment{display:inline-flex;background:var(--gray-100);border-radius:var(--radius);padding:2px;gap:2px}.ui-segment-btn{border:none;background:transparent;color:var(--text-subtle);padding:4px var(--space-3);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--fs-sm);font-weight:500;transition:background .12s,color .12s}.ui-segment-btn:hover{color:var(--text)}.ui-segment-btn.is-active{background:var(--surface);color:var(--brand-600);box-shadow:var(--shadow-sm)}.ui-subcard{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-2);background:var(--gray-50)}.panel-collapsible-heading{margin:0}.panel-collapsible-toggle{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);margin:calc(-1 * var(--space-1)) calc(-1 * var(--space-2));width:calc(100% + 2 * var(--space-2));border:none;border-radius:var(--radius-sm);background:none;cursor:pointer;font-family:inherit;font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);text-align:left;transition:background .12s,color .12s}.panel-collapsible-toggle:hover{background:var(--gray-100);color:var(--text-subtle)}.panel-collapsible-toggle:focus-visible{outline:none;box-shadow:var(--focus-ring)}.panel-collapsible-caret{width:10px;flex:0 0 auto;color:var(--gray-400);font-size:9px}.panel-collapsible-toggle:hover .panel-collapsible-caret{color:var(--brand-500)}.panel-collapsible-title{flex:1 1 auto}.panel-collapsible-badge{flex:0 0 auto;color:var(--text-muted);font-size:var(--fs-xs)}.panel-collapsible-heading+div{margin-top:var(--space-2)}.panel-embed>.panel-section{padding:0;border-bottom:none}.panel-embed>.panel-section:first-child>h4{display:none}.panel-embed>.panel-section+.panel-section{margin-top:var(--space-3)}.panel-note{font-size:var(--fs-xs);color:var(--text-muted);line-height:1.4;margin-top:var(--space-2)}.panel-note-warning{color:var(--danger-600, #e74c3c)}.panel-checkbox{display:flex;align-items:center;gap:6px;font-size:var(--fs-sm);cursor:pointer}.panel-readout{display:inline-block;font-size:var(--fs-sm);color:var(--text);font-variant-numeric:tabular-nums}.inspector{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.inspector-tablist{display:flex;flex:0 0 auto;background:var(--surface);border-bottom:1px solid var(--border)}.inspector-tab{flex:1 1 0;padding:var(--space-2) var(--space-1);border:none;border-bottom:2px solid transparent;background:none;cursor:pointer;font-size:var(--fs-sm);font-weight:500;color:var(--text-muted);transition:color .12s,background .12s,border-color .12s}.inspector-tab:hover{background:var(--surface-hover);color:var(--text)}.inspector-tab:focus-visible{outline:none;box-shadow:var(--focus-ring)}.inspector-tab.is-active{color:var(--brand-600);border-bottom-color:var(--brand-500);font-weight:600}.inspector-panel{flex:1 1 auto;min-height:0;overflow-y:auto}.inspector-panel .panel-section,.inspector-panel .preview-section,.inspector-panel .panel-collapsible-heading+div:not([hidden]){display:flex;flex-direction:column;gap:var(--space-3)}.inspector-panel .panel-section>h4,.inspector-panel .preview-section>h4,.inspector-panel .panel-collapsible-heading+div,.inspector-panel .property-row,.inspector-panel .property-group,.inspector-panel .content-mode-tabs,.inspector-panel .content-mode-hint,.inspector-panel .preview-actions,.inspector-panel .prop-head-row,.inspector-panel .prop-head-group,.inspector-panel .var-search,.inspector-panel .var-filters-hint,.inspector-panel .panel-note{margin:0}.inspector-panel .property-row{gap:var(--space-3)}.inspector-panel .panel-section>.btn,.inspector-panel .panel-collapsible-heading+div>.btn{align-self:flex-start}.content-mode-tabs{display:flex;gap:2px;padding:2px;margin-bottom:var(--space-2);background:var(--gray-100, #f1f3f5);border-radius:var(--radius)}.content-mode-tab{flex:1 1 0;padding:4px 6px;border:none;border-radius:calc(var(--radius) - 2px);background:none;cursor:pointer;font-size:var(--fs-xs);color:var(--text-muted)}.content-mode-tab.is-active{background:var(--surface);color:var(--text);font-weight:600;box-shadow:0 1px 2px #00000014}.content-mode-hint{margin-top:var(--space-2);font-size:var(--fs-xs);line-height:1.4;color:var(--text-muted)}.content-mode-hint--warn{color:#b8860b}.element-search{margin-bottom:var(--space-2)}.element-search-empty{font-size:var(--fs-xs);color:var(--text-muted);line-height:1.4}.element-category+.element-category{margin-top:var(--space-3)}.element-category-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:4px}.canvas-face-tabs{display:flex;justify-content:center;gap:2px;padding:4px;border-bottom:1px solid var(--border);background:var(--surface)}.canvas-face-tab{padding:3px 12px;border:1px solid transparent;border-radius:var(--radius);background:none;cursor:pointer;font-size:var(--fs-xs);color:var(--text-muted)}.canvas-face-tab.is-active{background:var(--gray-100, #f1f3f5);border-color:var(--border);color:var(--text);font-weight:600}.canvas-fold-label{position:absolute;top:1px;transform:translate(-50%);padding:0 2px;background:#fff;font-size:9px;letter-spacing:.08em;color:var(--text-muted);pointer-events:none;white-space:nowrap;z-index:9998}.canvas-inline-editor{box-sizing:border-box;padding:0;border:1px solid var(--brand-500);background:#fff;resize:none;overflow:hidden;outline:none}.canvas-context-menu{position:fixed;z-index:10050;min-width:168px;padding:4px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 6px 20px #00000026;display:flex;flex-direction:column}.canvas-context-menu-item{padding:6px 10px;border:none;border-radius:calc(var(--radius) - 2px);background:none;cursor:pointer;text-align:left;font-size:var(--fs-sm);color:var(--text)}.canvas-context-menu-item:hover:not(:disabled){background:var(--surface-hover)}.canvas-context-menu-item:disabled{color:var(--text-muted);cursor:default}.overlap-chip{position:absolute;z-index:10001;display:flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:none;border-radius:var(--radius-pill);background:var(--danger-500);color:#fff;font-size:10px;line-height:1;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .1s,background .12s}.overlap-chip:hover,.overlap-chip.is-open{background:var(--danger-600);transform:scale(1.15)}.overlap-chip:focus-visible{outline:none;box-shadow:0 0 0 3px #ef444466}.overlap-menu{max-width:260px}.overlap-menu-head{padding:var(--space-2) 10px;margin-bottom:2px;border-bottom:1px solid var(--border)}.overlap-menu-title{font-size:var(--fs-sm);font-weight:600;color:var(--danger-600);line-height:1.35}.overlap-menu-hint{margin-top:2px;font-size:var(--fs-xs);line-height:1.4;color:var(--text-muted)}.builder-statusbar{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0;height:26px;padding:0 var(--space-3);border-top:1px solid var(--border);background:var(--surface);font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap;overflow-x:auto}.builder-statusbar-doc{display:flex;align-items:center;gap:var(--space-1);padding-right:var(--space-3);border-right:1px solid var(--border);font-variant-numeric:tabular-nums}.builder-statusbar-doc b{color:var(--text-subtle);font-weight:600}.builder-statusbar-sep{color:var(--border-strong)}.builder-statusbar-metrics{display:flex;gap:var(--space-3);font-variant-numeric:tabular-nums}.builder-statusbar-metrics b{color:var(--text);font-weight:600}.builder-statusbar-selection{margin-left:auto}.builder-statusbar-hint{color:var(--text-muted);font-style:italic}.toolbar-btn-label{font-size:var(--fs-sm)}@container builder-center (max-width: 1120px){.toolbar-btn-label{display:none}.toolbar-save{min-width:0;width:var(--tb-h);padding:0}}@container builder-center (max-width: 820px){.toolbar-input-group{display:none}.builder-toolbar{padding:var(--space-2);gap:var(--space-1) var(--space-2)}.toolbar-divider{margin:0 2px}}@media(max-width:1100px){.template-list-page{padding:var(--space-4)}}@media(max-width:860px){.builder-page{flex-direction:column}.builder-sidebar-left,.builder-sidebar-right{width:100%;max-width:none;max-height:32vh;border-right:none;border-left:none;border-bottom:1px solid var(--border)}.builder-sidebar-right{border-top:1px solid var(--border);border-bottom:none}.builder-sidebar-left{display:block;overflow-y:auto}.builder-sidebar-left .rail-scroll{overflow:visible}.rail-dock{max-height:none;overflow:visible}.rail-resizer{display:none}.builder-center{min-height:40vh}.builder-statusbar-hint{display:none}.app-header{gap:var(--space-2);padding:0 var(--space-2);height:44px}.app-header h1{font-size:var(--fs-md)}}.lang-switcher{margin-left:auto;height:30px;padding:0 30px 0 12px;border:1px solid rgba(255,255,255,.25);border-radius:8px;background-color:#ffffff14;color:#fff;font-size:13px;font-weight:500;line-height:28px;cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right 10px center;transition:background-color .15s ease,border-color .15s ease}.lang-switcher:hover{background-color:#ffffff2e}.lang-switcher:focus-visible{outline:2px solid #5b8def;outline-offset:1px;border-color:#ffffff73}.lang-switcher option{color:#1a1a2e;background:#fff}.jwt-avatar-wrap{position:relative}.jwt-avatar{width:30px;height:30px;border-radius:var(--radius-pill);border:1px solid rgba(255,255,255,.25);background:#ffffff14;color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:background .15s ease}.jwt-avatar:hover{background:#ffffff2e}.jwt-avatar.set{background:var(--success-600);border-color:var(--success-600)}.jwt-menu{position:absolute;right:0;top:calc(100% + 6px);min-width:210px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px #0f172a2e;padding:var(--space-1);z-index:50}.jwt-menu-header{padding:var(--space-2) var(--space-3);font-size:12px;color:var(--text-muted)}.jwt-menu-account{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border)}.jwt-menu-user{font-size:13px;font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jwt-menu-tenant{font-size:11px;color:var(--text-muted);margin-top:2px}.jwt-menu-tenant code{background:var(--gray-100);padding:1px 4px;border-radius:3px;font-family:ui-monospace,monospace;font-size:11px}.jwt-menu-item{display:block;width:100%;text-align:left;background:transparent;border:0;padding:var(--space-2) var(--space-3);font-size:13px;color:var(--text);border-radius:var(--radius-sm);cursor:pointer}.jwt-menu-item:hover{background:var(--surface-hover)}.jwt-menu-item.danger{color:var(--danger-600)}.jwt-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;display:flex;align-items:center;justify-content:center;z-index:100}.jwt-modal{background:var(--surface);color:var(--text);border-radius:var(--radius-lg);padding:var(--space-5);width:min(560px,92vw);box-shadow:0 12px 32px #0f172a4d}.jwt-modal h2{margin:0 0 var(--space-2);font-size:16px}.jwt-modal-hint{font-size:12px;color:var(--text-muted);margin:0 0 var(--space-3);line-height:1.5}.jwt-modal-hint code{background:var(--gray-100);padding:1px 4px;border-radius:3px;font-family:ui-monospace,monospace}.jwt-gate-hint{font-size:12px;line-height:1.5;margin:0 0 var(--space-3);background:var(--gray-50);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-2) var(--space-3)}.jwt-gate-hint-title{margin:0 0 var(--space-1);color:var(--text);font-weight:500}.jwt-gate-hint ul{margin:0;padding-left:var(--space-4);color:var(--text-muted)}.jwt-gate-hint li{margin:2px 0}.jwt-gate-hint code{background:var(--gray-100);padding:1px 4px;border-radius:3px;font-family:ui-monospace,monospace}.jwt-gate-hint-note{margin:var(--space-2) 0 0;color:var(--text-muted)}.jwt-modal-error{font-size:12px;line-height:1.5;margin:0 0 var(--space-3);color:var(--danger-700);background:var(--danger-50);border:1px solid var(--danger-500);border-radius:var(--radius);padding:var(--space-2) var(--space-3)}.jwt-textarea{width:100%;min-height:130px;resize:vertical;font-family:ui-monospace,monospace;font-size:12px;border:1px solid var(--border-strong);border-radius:var(--radius);padding:var(--space-2) var(--space-3);box-sizing:border-box}.jwt-modal-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-4)}.jwt-btn{border:1px solid var(--border-strong);background:var(--surface);color:var(--text);padding:var(--space-2) var(--space-4);border-radius:var(--radius);font-size:13px;cursor:pointer}.jwt-btn:hover{background:var(--surface-hover)}.jwt-btn.primary{background:var(--brand-500);border-color:var(--brand-500);color:#fff}.jwt-btn.primary:hover{background:var(--brand-600)}.jwt-btn.primary:disabled{opacity:.5;cursor:not-allowed}.help-page{max-width:1080px;margin:0 auto;padding:var(--space-6);display:grid;grid-template-columns:220px minmax(0,1fr);gap:var(--space-6);align-items:start}.help-toc{position:sticky;top:var(--space-4);max-height:calc(100vh - 80px);overflow:auto}.help-toc-title{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-subtle);margin:0 0 var(--space-2);padding:0 var(--space-2)}.help-toc-link{display:block;text-decoration:none;color:var(--text-subtle);font-size:var(--fs-md);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);line-height:1.4}.help-toc-link:hover{background:var(--surface-hover);color:var(--text)}.help-toc-level-3{padding-left:var(--space-5);font-size:var(--fs-sm);color:var(--text-subtle)}.help-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-bottom:var(--space-3)}.help-action{font-family:inherit;font-size:var(--fs-sm);padding:4px 10px;border:1px solid var(--border);background:transparent;color:var(--text-subtle);border-radius:var(--radius-sm);cursor:pointer}.help-action:hover{background:var(--surface-hover);color:var(--text)}.md{color:var(--text);font-size:var(--fs-lg);line-height:1.65}.md h1{font-size:24px;margin:0 0 var(--space-4);line-height:1.25}.md h2{font-size:19px;margin:var(--space-6) 0 var(--space-3);padding-bottom:6px;border-bottom:1px solid var(--border);scroll-margin-top:64px;line-height:1.3}.md h3{font-size:16px;margin:var(--space-5) 0 var(--space-2);scroll-margin-top:64px}.md h4,.md h5,.md h6{font-size:var(--fs-lg);margin:var(--space-4) 0 var(--space-2);scroll-margin-top:64px}.md p{margin:0 0 var(--space-3)}.md a{color:var(--brand-600)}.md a:hover{color:var(--brand-700);text-decoration:underline}.md ul,.md ol{margin:0 0 var(--space-3);padding-left:22px}.md li{margin:3px 0}.md li>ul,.md li>ol{margin:3px 0}.md strong{font-weight:600}.md code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;background:var(--gray-100);padding:1px 5px;border-radius:4px}.md blockquote{margin:0 0 var(--space-3);padding:var(--space-2) var(--space-3);border-left:3px solid var(--brand-200);background:var(--brand-50);color:var(--text-subtle);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.md blockquote code{background:#fff9}.md hr{border:0;border-top:1px solid var(--border);margin:var(--space-5) 0}.md-table-wrap{overflow-x:auto;margin:0 0 var(--space-4);border:1px solid var(--border);border-radius:var(--radius)}.md table{border-collapse:collapse;width:100%;font-size:var(--fs-md)}.md th,.md td{border:1px solid var(--border);padding:6px 10px;text-align:left;vertical-align:top}.md th{background:var(--gray-50);font-weight:600;white-space:nowrap}.md td code,.md th code{white-space:nowrap}.md-codeblock{position:relative;margin:0 0 var(--space-4)}.md-codeblock pre{background:var(--gray-900);color:#e2e8f0;margin:0;padding:var(--space-3) var(--space-4);border-radius:var(--radius);overflow-x:auto;font-size:12.5px;line-height:1.5}.md-codeblock pre code{background:transparent;color:inherit;padding:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.md-copy{position:absolute;top:var(--space-2);right:var(--space-2);font-size:var(--fs-xs);border:1px solid rgba(255,255,255,.2);background:#ffffff14;color:#cbd5e1;padding:2px 8px;border-radius:4px;cursor:pointer}.md-copy:hover{background:#ffffff29}@media(max-width:860px){.help-page{grid-template-columns:1fr;padding:var(--space-4)}.help-toc{display:none}}.schema-list-page{padding:var(--space-6);max-width:1100px;margin:0 auto;overflow-y:auto;height:100%}.schema-list-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-4)}.schema-search-row{display:flex;align-items:stretch;gap:var(--space-2)}.schema-search-row>:first-child{flex:1 1 auto;min-width:0}.schema-refresh-btn{height:auto;border-color:var(--border-strong);background:var(--surface);color:var(--text-subtle)}.schema-refresh-btn:hover:not(:disabled){border-color:var(--text-subtle);background:var(--gray-100);color:var(--text)}.schema-refresh-btn.is-refreshing svg{animation:schema-refresh-spin .6s ease}@keyframes schema-refresh-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.schema-list-subtitle{margin-top:2px;font-size:var(--fs-sm);color:var(--text-muted);max-width:68ch}.schema-list-filters{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-5)}.schema-filter-label{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-sm);color:var(--text-subtle);min-width:160px}.schema-error-page{padding:var(--space-6);color:var(--danger-600)}.schema-empty{color:var(--text-muted);font-size:var(--fs-sm);padding:var(--space-4) 0}.schema-card-fields{font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap}.schema-badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-pill);font-size:var(--fs-xs);font-weight:600;line-height:1.6;border:1px solid transparent}.schema-badge--type{background:var(--brand-100);color:var(--brand-700)}.schema-badge--version{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.status-badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-pill);font-size:var(--fs-xs);font-weight:600;line-height:1.6;white-space:nowrap}.status-badge--draft{background:var(--status-draft-bg);color:var(--status-draft-fg)}.status-badge--published{background:var(--status-published-bg);color:var(--status-published-fg)}.status-badge--deprecated{background:var(--status-deprecated-bg);color:var(--status-deprecated-fg)}.status-badge--active{background:var(--status-active-bg);color:var(--status-active-fg)}.status-badge--archived{background:var(--status-archived-bg);color:var(--status-archived-fg)}.schema-badge--scope-platform{background:transparent;color:var(--text-muted);font-weight:400;padding-left:0}.schema-badge--scope-app{background:var(--brand-100);color:var(--brand-700)}.schema-badge--unpublished{background:var(--status-draft-bg);color:var(--status-draft-fg)}.schema-badge--readonly{background:var(--gray-100);color:var(--gray-600)}.schema-filter-search{flex:1 1 200px;min-width:180px}.schema-empty-block{border:1px dashed var(--border-strong);border-radius:var(--radius-lg);padding:var(--space-6);text-align:center;color:var(--text-muted);font-size:var(--fs-sm)}.schema-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.schema-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.schema-table th{text-align:left;padding:var(--space-3) var(--space-4);font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.3px;color:var(--text-muted);border-bottom:1px solid var(--border);background:var(--gray-50);white-space:nowrap}.schema-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);vertical-align:middle}.schema-table tbody tr:last-child td{border-bottom:none}.schema-table th,.schema-table td{border-right:1px solid var(--border)}.schema-table th:last-child,.schema-table td:last-child{border-right:none}.schema-table-num{text-align:right;white-space:nowrap}.schema-table-center{text-align:center;white-space:nowrap}.schema-table-idx{width:1%;text-align:center;white-space:nowrap;color:var(--text-muted)}.schema-table-actions{width:1%;white-space:nowrap;text-align:center}.schema-row:hover{background:var(--surface-hover)}.schema-pagination{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);margin-top:var(--space-3);flex-wrap:wrap}.schema-pagination-info{font-size:var(--fs-sm);color:var(--text-muted)}.schema-pagination-actions{display:flex;gap:var(--space-2)}.schema-row-name{font-weight:600;color:var(--text)}.schema-row-desc{display:block;font-size:var(--fs-xs);color:var(--text-muted);max-width:42ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schema-row-muted{color:var(--text-muted)}.schema-detail-page{padding:var(--space-6);max-width:900px;margin:0 auto;overflow-y:auto;height:100%}.schema-detail-breadcrumb{font-size:var(--fs-sm);color:var(--text-muted);margin-bottom:var(--space-4)}.schema-detail-breadcrumb a{color:var(--brand-500);text-decoration:none}.schema-detail-breadcrumb a:hover{text-decoration:underline}.schema-version-current{display:inline-flex;align-items:baseline;gap:4px;padding:3px var(--space-2);border:1px solid var(--brand-200);border-radius:var(--radius-pill);background:var(--brand-50);line-height:1}.schema-version-current-label{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;color:var(--brand-600)}.schema-version-current-value{font-size:var(--fs-sm);font-weight:700;color:var(--brand-700)}.schema-detail-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-5)}.schema-meta-row{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap;margin-top:var(--space-2)}.schema-attribution{display:flex;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--space-2);font-size:var(--fs-xs);color:var(--text-muted)}.schema-actions-note{font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap;cursor:help}.schema-versions-section{margin-top:var(--space-4)}.version-list{display:flex;flex-direction:column;gap:var(--space-3)}.version-card{display:flex;justify-content:space-between;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);flex-wrap:wrap;gap:var(--space-2)}.version-card-left,.version-card-right{display:flex;align-items:center;gap:var(--space-3)}.version-actions{display:flex;gap:var(--space-2)}.version-number{font-weight:700;font-size:var(--fs-base)}.version-changelog{font-size:var(--fs-sm);color:var(--text-muted);max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.version-date{font-size:var(--fs-xs);color:var(--text-muted)}.version-card--current{border-color:var(--brand-200);border-left:3px solid var(--brand-600)}.version-current-tag{font-size:var(--fs-xs);font-weight:600;color:var(--brand-700);background:var(--brand-50);border-radius:var(--radius-pill);padding:1px var(--space-2)}.schema-detail-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4)}.schema-detail-header-actions{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-2);flex-shrink:0}.schema-detail-actions-row{display:flex;align-items:center;gap:var(--space-2)}.schema-detail-title{margin-bottom:var(--space-1)}.schema-detail-desc{color:var(--text-muted);font-size:var(--fs-sm);margin-bottom:var(--space-2)}.schema-detail-headline{flex:1;min-width:0}.schema-inline-edit{display:flex;flex-direction:column;gap:var(--space-2);max-width:420px;margin-bottom:var(--space-1)}.schema-inline-error{color:var(--danger-600);font-size:var(--fs-sm)}.schema-versions-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.schema-new-draft{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-1)}.schema-version-editor{padding:var(--space-5) var(--space-5) var(--space-4);max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-3)}.schema-version-editor-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-3)}.schema-readonly-notice{display:flex;align-items:center;gap:var(--space-2);background:#fffbeb;border:1px solid #fde68a;border-left:4px solid var(--warning-500);border-radius:var(--radius);padding:var(--space-2) var(--space-3);font-size:var(--fs-sm);font-weight:500;color:#92400e}.schema-readonly-notice:before{content:"🔒";font-size:1rem;line-height:1}.schema-editor-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4)}.schema-editor-section h3{margin-bottom:var(--space-2);font-size:var(--fs-base)}.schema-editor-pair{display:contents}.schema-editor-pair--compact{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);align-items:stretch}.schema-editor-pair--compact .schema-editor-section{padding:var(--space-3)}.schema-editor-pair--compact .schema-editor-section h3{font-size:var(--fs-sm);margin-bottom:var(--space-1)}@media(max-width:640px){.schema-editor-pair--compact{grid-template-columns:1fr}}.schema-editor-section-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-2)}.schema-editor-section-head h3{margin-bottom:0}.schema-editor-hint{font-size:var(--fs-sm);color:var(--text-muted);margin-bottom:var(--space-2)}.schema-diff-summary{display:flex;align-items:center;gap:var(--space-2);width:100%;background:none;border:none;padding:0;margin:0;cursor:pointer;font:inherit;text-align:left;flex-wrap:wrap}.schema-diff-chevron{color:var(--text-muted);font-size:var(--fs-xs)}.schema-diff-summary-title{font-weight:600;font-size:var(--fs-base)}.schema-diff-tag{display:inline-block;font-size:var(--fs-xs);font-weight:600;padding:1px 8px;border-radius:var(--radius-pill)}.schema-diff-tag--added{background:var(--success-50, #ecfdf5);color:var(--success-700, #047857)}.schema-diff-tag--removed{background:var(--danger-50);color:var(--danger-700)}.schema-diff-tag--changed{background:#fffbeb;color:#92400e}.schema-diff-lists{margin-top:var(--space-2);display:flex;flex-direction:column;gap:var(--space-1)}.schema-diff-ul{margin:0;padding-left:4px;list-style:none}.schema-diff-ul li{margin:2px 0;font-size:var(--fs-sm)}.schema-diff-ul code{font-size:var(--fs-xs)}.schema-diff-type{color:var(--text-muted);font-size:var(--fs-xs)}.schema-diff-sign{font-weight:700;display:inline-block;width:.9em}.schema-diff-sign--added{color:var(--success-700, #047857)}.schema-diff-sign--removed{color:var(--danger-700)}.schema-diff-sign--changed{color:#92400e}.schema-diff-more{color:var(--text-muted);font-size:var(--fs-xs)}.schema-sample-report{margin-top:var(--space-2);font-size:var(--fs-sm);display:flex;flex-direction:column;gap:var(--space-2)}.schema-sample-report-ok{color:var(--success-700, #047857)}.schema-sample-report-missing{color:var(--danger-700)}.schema-sample-report-extra{color:#92400e}.schema-version-status-row{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-1);flex-wrap:wrap}.schema-version-meta{font-size:var(--fs-xs);color:var(--text-muted)}.schema-version-editor-actions{display:flex;gap:var(--space-2);align-items:center}.schema-save-feedback{font-size:var(--fs-sm);margin-bottom:var(--space-3)}.schema-save-feedback--error{color:var(--danger-600)}.schema-save-feedback--ok{color:var(--success-600)}.schema-inline-error--mt{margin-top:var(--space-1)}.catalog-editor{width:100%}.catalog-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm);margin-bottom:var(--space-2)}.catalog-table th{text-align:left;padding:4px 6px;color:var(--text-muted);font-weight:600;border-bottom:1px solid var(--border);font-size:var(--fs-xs)}.catalog-table-row td{padding:3px 4px;vertical-align:middle}.catalog-remove-btn{background:none;border:none;color:var(--danger-500);cursor:pointer;font-size:16px;line-height:1;padding:2px 4px;border-radius:var(--radius-sm)}.catalog-remove-btn:hover{background:var(--danger-50)}.catalog-add-btn{margin-top:var(--space-2)}.catalog-cell-error{color:var(--danger-600);font-size:var(--fs-xs);margin-top:2px}.required-path-chip{display:inline-flex;align-items:center;gap:4px;background:var(--brand-100);color:var(--brand-700);border-radius:var(--radius-pill);padding:2px 10px;font-size:var(--fs-xs);font-weight:500}.required-path-chip--unknown{background:var(--danger-50);color:var(--danger-700);outline:1px solid var(--danger-200)}.required-path-remove{background:none;border:none;color:var(--brand-700);cursor:pointer;font-size:14px;line-height:1;padding:0 2px}.required-path-remove:hover{color:var(--danger-600)}.sample-data-editor{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--fs-sm);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3);resize:vertical;background:var(--gray-50);color:var(--text)}.sample-data-editor:focus{outline:none;border-color:var(--brand-500);box-shadow:var(--focus-ring)}.sample-data-editor[readonly]{background:var(--gray-100);color:var(--text-muted);cursor:not-allowed}.field-error{margin:calc(-1 * var(--space-1)) 0 0;font-size:var(--fs-xs);line-height:1.4;color:var(--danger-600)}.ui-input[aria-invalid=true],.ui-select[aria-invalid=true]{border-color:var(--danger-600)}.format-preview{display:flex;flex-direction:column;gap:var(--space-1)}.format-preview code{display:flex;align-items:baseline;gap:var(--space-2);padding:var(--space-2);background:var(--gray-50);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--fs-sm)}.format-preview-source{font-size:var(--fs-xs);color:var(--text-muted)}.format-preview-filter{flex:0 0 auto;min-width:4.5rem;color:var(--text-muted);font-size:var(--fs-xs)}.schema-binding-panel{border-top:1px solid var(--border);font-size:var(--fs-sm)}.schema-binding-card{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--gray-50);border:1px solid var(--border);border-left:3px solid var(--brand-600);border-radius:var(--radius-sm)}.schema-binding-card.is-empty{border:1px dashed var(--border-strong);background:transparent}.schema-binding-value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-sm);font-weight:500;color:var(--text)}.schema-binding-card.is-empty .schema-binding-value{font-weight:400;color:var(--text-muted)}.schema-binding-version{flex:0 0 auto;padding:1px var(--space-2);border-radius:999px;background:var(--gray-100);color:var(--text-muted);font-size:var(--fs-xs);font-weight:500}.btn-link{padding:0;border:none;background:none;color:var(--text-muted);font-size:var(--fs-xs);font-weight:500;cursor:pointer}.btn-link:hover{color:var(--brand-600);text-decoration:underline}.schema-binding-form{display:flex;flex-direction:column;gap:var(--space-3)}.schema-binding-actions{display:flex;gap:var(--space-2)}.schema-binding-note{font-size:var(--fs-sm);color:var(--text-muted);line-height:1.4}.schema-binding-error{font-size:var(--fs-sm);color:var(--danger-600);line-height:1.4}.schema-binding-warning{font-size:var(--fs-sm);line-height:1.4;background:#fffbeb;border:1px solid #fde68a;border-left:3px solid var(--warning-500);border-radius:var(--radius-sm);padding:var(--space-2)}.schema-binding-unbound{margin:var(--space-1) 0 0;padding-left:var(--space-4);max-height:7rem;overflow-y:auto}.schema-binding-unbound code{font-size:var(--fs-xs)}.json-schema-import-panel{background:var(--gray-50);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4);margin-bottom:var(--space-4)}.json-schema-import-hint{font-size:var(--fs-sm);color:var(--text-muted);margin-bottom:var(--space-3)}.json-schema-import-hint code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--gray-200);padding:1px 4px;border-radius:3px}.import-preview-list{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;max-height:240px;overflow-y:auto;background:var(--surface)}.import-preview-row{display:flex;align-items:center;gap:var(--space-3);padding:4px var(--space-3);border-bottom:1px solid var(--border);font-size:var(--fs-sm)}.import-preview-row:last-child{border-bottom:none}.import-preview-path{font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--brand-700);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.import-preview-type{padding:1px 6px;border-radius:var(--radius-pill);background:var(--gray-100);color:var(--text-subtle);font-size:var(--fs-xs);white-space:nowrap}.import-preview-label{color:var(--text-muted);white-space:nowrap}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-card{background:var(--surface);border-radius:var(--radius-lg);padding:24px;max-width:90vw;max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px #0003}.create-template-modal{width:440px}.confirm-dialog{padding:20px 24px;width:400px}.confirm-dialog-title{margin:0;font-size:var(--fs-lg);font-weight:600;line-height:1.4;color:var(--text)}.confirm-dialog-message{margin:6px 0 0;font-size:var(--fs-base);line-height:1.5;color:var(--text-muted)}.confirm-dialog-body{margin-top:16px}.confirm-dialog-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:20px}.confirm-dialog-actions .btn{min-width:92px;padding:9px 18px;font-size:var(--fs-base)}.ui-check-row{display:flex;flex-direction:row;align-items:center;gap:var(--space-2);font-size:var(--fs-base);color:var(--text);cursor:pointer}.ui-check-row input[type=checkbox]{flex:none;margin:0;cursor:pointer}.toaster{position:fixed;right:var(--space-4);bottom:var(--space-4);z-index:2000;display:flex;flex-direction:column;gap:var(--space-2);width:min(400px,calc(100vw - 2 * var(--space-4)));pointer-events:none}.toast{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-md);pointer-events:auto;animation:toast-in .15s ease-out}.toast-error{border-left:3px solid var(--danger-600)}.toast-warning{border-left:3px solid var(--warning-500)}.toast-success{border-left:3px solid var(--success-600, #16a34a)}.toast-info{border-left:3px solid var(--info-500, #3b82f6)}.toast-icon{flex-shrink:0;width:18px;height:18px;margin-top:1px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-pill);background:var(--danger-600);color:#fff;font-size:12px;font-weight:700}.toast-warning .toast-icon{background:var(--warning-500)}.toast-success .toast-icon{background:var(--success-600, #16a34a)}.toast-info .toast-icon{background:var(--info-500, #3b82f6)}.toast-warning .toast-code{color:var(--warning-500);background:var(--warning-50, #fffbeb)}.toast-body{flex:1;min-width:0}.toast-title{display:flex;align-items:center;gap:var(--space-2);font-size:var(--fs-sm);font-weight:600;color:var(--text)}.toast-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--fs-xs);font-weight:600;color:var(--danger-600);background:var(--danger-50, #fef2f2);padding:1px var(--space-1);border-radius:var(--radius-sm)}.toast-message{font-size:var(--fs-xs);color:var(--text-subtle);margin-top:2px;word-break:break-word}.toast-close{flex-shrink:0;border:none;background:transparent;color:var(--text-muted);cursor:pointer;font-size:18px;line-height:1;padding:0 2px}.toast-close:hover{color:var(--text)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.create-template-modal h3{font-size:var(--fs-lg)}.create-template-modal .ui-field-label{font-size:var(--fs-sm);color:var(--text)}.create-template-modal .ui-input,.create-template-modal .ui-select{padding:7px var(--space-2)}.create-schema-modal{width:420px}
