@layer json-pdf-designer{:where(.jpd-designer,.jpd-modal__panel,.jpd-card,.jpd-page,.jpd-field),:where(.jpd-designer,.jpd-modal__panel,.jpd-card,.jpd-page,.jpd-field) *,:where(.jpd-designer,.jpd-modal__panel,.jpd-card,.jpd-page,.jpd-field) :before,:where(.jpd-designer,.jpd-modal__panel,.jpd-card,.jpd-page,.jpd-field) :after{box-sizing:border-box}.jpd-btn,.jpd-iconbtn,.jpd-linkbtn,.jpd-input,.jpd-select,.jpd-textarea,.jpd-tab,.jpd-tabs__btn,.jpd-menuitem,.jpd-addlink,.jpd-rowname,.jpd-tab__pin{font:inherit;font-family:var(--jpd-font-sans,inherit);letter-spacing:inherit;color:inherit;background-color:#0000;margin:0}.jpd-btn,.jpd-iconbtn,.jpd-linkbtn,.jpd-tab,.jpd-tabs__btn,.jpd-menuitem,.jpd-addlink,.jpd-rowname,.jpd-tab__pin{appearance:button;cursor:pointer;border:0 solid}:where(.jpd-designer,.jpd-modal__panel,.jpd-card,.jpd-page) :is(button,input,select,textarea,optgroup):not([class]){font:inherit;font-family:var(--jpd-font-sans,inherit);letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border:0 solid;border-radius:0;margin:0}:where(.jpd-designer,.jpd-modal__panel,.jpd-card,.jpd-page) :is(button):not([class]){appearance:button}.jpd-hint,.jpd-hint--md,.jpd-meta,.jpd-error,.jpd-card__title,.jpd-modal__title,.jpd-sectionhead,.jpd-grouplabel{margin:0}.jpd-card__title,.jpd-modal__title,.jpd-sectionhead{font-size:inherit;font-weight:inherit}.jpd-list{margin:0;padding:0;list-style:none}.jpd-code{font-family:var(--jpd-font-mono,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-size:1em}.jpd-icon,.jpd-micon,.jpd-ruler,.jpd-imagefield__img{vertical-align:middle;display:block}.jpd-fieldtable{text-indent:0;border-color:inherit;border-collapse:collapse}.jpd-input::placeholder,.jpd-textarea::placeholder{opacity:1}.jpd-disclosure__summary{display:list-item}}@layer utilities;:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bp-void:#050f19;--bp-ink:#0a1a2b;--bp-panel:#0e2236;--bp-inset:#0b1c2c;--bp-cyan:#4dd0e1;--bp-line:#4dd0e18c;--bp-line-soft:#4dd0e147;--bp-wash:#4dd0e114;--bp-text:#d7e8f2;--bp-text-dim:#9fc0d4;--bp-amber:#ffb74d;--bp-red:#ff8a80;--bp-green:#69f0ae;--bp-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace;font-family:var(--bp-mono);color:var(--bp-text);scrollbar-width:thin;scrollbar-color:var(--bp-line) transparent;font-size:12px;line-height:1.45}*{box-sizing:border-box}body{background:var(--bp-ink);color:var(--bp-text);margin:0}#root{flex-direction:column;height:100vh;display:flex}.app{flex-direction:column;height:100%;display:flex}:focus-visible{outline:1px solid var(--bp-cyan);outline-offset:1px;border-radius:0}.app-header{background:var(--bp-void);color:var(--bp-text);border-bottom:1px solid var(--bp-line);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:16px;padding:10px 16px;display:flex}.app-header-titles{flex:auto;min-width:260px}.app-header h1{text-transform:uppercase;letter-spacing:.14em;color:var(--bp-cyan);flex-wrap:wrap;align-items:baseline;gap:10px;margin:0 0 5px;font-size:12px;font-weight:700;display:flex}.app-header-meta{letter-spacing:.08em;color:var(--bp-text-dim);border:1px solid var(--bp-line-soft);padding:1px 5px;font-size:10px;font-weight:400}.app-header p{color:var(--bp-text-dim);margin:0;font-size:11px}.app-header code{background:var(--bp-wash);border:1px solid var(--bp-line-soft);padding:0 3px}.app-header-actions{flex-wrap:wrap;flex:0 auto;justify-content:flex-end;align-items:center;gap:6px;min-width:0;display:flex}.file-button{border:1px solid var(--bp-line);background:var(--bp-inset);color:var(--bp-text);text-transform:uppercase;letter-spacing:.08em;cursor:pointer;align-items:center;padding:4px 8px;font-size:10px;display:inline-flex}.file-button:hover{background:var(--bp-wash);border-color:var(--bp-cyan)}.app-body{flex:1;min-height:0;display:flex}.app-sidebar,.app-props{background:var(--bp-panel);flex-direction:column;flex-shrink:0;gap:10px;padding:10px;display:flex;overflow-y:auto}.app-sidebar{border-right:1px solid var(--bp-line);width:320px}.app-props{border-left:1px solid var(--bp-line);width:296px}.app-main{background:var(--bp-ink);flex-direction:column;flex:1;min-width:0;display:flex}.page-tabs{border-bottom:1px solid var(--bp-line);background:var(--bp-void);flex-shrink:0;align-items:center;gap:0;padding:6px 12px 0;display:flex;overflow-x:auto}.page-tab{border-left:1px solid var(--bp-line-soft);flex-shrink:0;align-items:center;display:flex}.page-tab:first-child{border-left:none}.page-tab button{color:var(--bp-text-dim);text-transform:uppercase;letter-spacing:.08em;background:0 0;border:none;padding:5px 12px;font-size:10px}.page-tab.active button{background:var(--bp-ink);color:var(--bp-cyan);box-shadow:inset 0 1px 0 0 var(--bp-cyan);font-weight:700}.page-tab-remove,.page-tab-add{color:var(--bp-text-dim);background:0 0;border:none;padding:3px 6px;font-size:12px;line-height:1}.page-tab-remove:hover,.page-tab-add:hover{background:var(--bp-wash);color:var(--bp-cyan)}.view-tabs{flex-shrink:0;align-items:center;gap:0;padding:8px 12px 0;display:flex}.view-tabs>button{border:1px solid var(--bp-line);color:var(--bp-text-dim);background:0 0;border-bottom:none;padding:5px 14px}.view-tabs>button+button{border-left:none}.view-tabs>button.active{border-color:var(--bp-cyan);color:var(--bp-cyan);background:var(--bp-wash);font-weight:700}.view-tabs>button:disabled{opacity:.35;cursor:not-allowed}.add-row{gap:4px;margin-left:auto;display:flex}.add-row button{padding:4px 8px;font-size:10px}.canvas-scroll,.preview-scroll{flex-direction:column;flex:1;align-items:flex-start;gap:12px;padding:20px;display:flex;overflow:auto}.canvas-page{background-color:var(--bp-void);background-image: repeating-linear-gradient(to right, #4dd0e138 0 1px, transparent 1px var(--bp-grid-major,15px)), repeating-linear-gradient(to bottom, #4dd0e138 0 1px, transparent 1px var(--bp-grid-major,15px)),  repeating-linear-gradient(to right, #4dd0e10d 0 1px, transparent 1px var(--bp-grid-minor,3px)), repeating-linear-gradient(to bottom, #4dd0e10d 0 1px, transparent 1px var(--bp-grid-minor,3px));border:1px solid var(--bp-cyan);flex-shrink:0;position:relative}.canvas-band{pointer-events:none;background:#ffb74d0f;border-top:1px dashed #ffb74d80;border-bottom:1px dashed #ffb74d80;position:absolute;left:0}.canvas-band--side{border:none;border-left:1px dashed #ffb74d80;border-right:1px dashed #ffb74d80}.canvas-field{border:1px solid var(--bp-line);cursor:move;-webkit-user-select:none;user-select:none;background:#4dd0e10f;position:absolute;overflow:visible}.canvas-field-body{flex-direction:column;gap:1px;padding:2px 4px;display:flex;position:absolute;inset:0;overflow:hidden}.canvas-field.selected{border-color:var(--bp-cyan);z-index:1;background:#4dd0e11f}.canvas-field.selected:after{content:"";pointer-events:none;background-image:linear-gradient(var(--bp-cyan), var(--bp-cyan)), linear-gradient(var(--bp-cyan), var(--bp-cyan)), linear-gradient(var(--bp-cyan), var(--bp-cyan));background-position:0 0,100% 0,0 100%;background-repeat:no-repeat;background-size:9px 9px;position:absolute;inset:-4px}.canvas-field.locked{cursor:default;border-style:dashed}.canvas-field.selected.locked:after{background-image:linear-gradient(var(--bp-cyan), var(--bp-cyan)), linear-gradient(var(--bp-cyan), var(--bp-cyan)), linear-gradient(var(--bp-cyan), var(--bp-cyan)), linear-gradient(var(--bp-cyan), var(--bp-cyan));background-position:0 0,100% 0,0 100%,100% 100%}.canvas-field-label{text-transform:uppercase;letter-spacing:.08em;color:var(--bp-cyan);text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;font-size:9px;font-weight:700;overflow:hidden}.canvas-field-preview{color:var(--bp-text);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.canvas-field-flag{z-index:2;color:var(--bp-void);background:var(--bp-amber);padding:0 3px;font-size:9px;font-weight:700;line-height:1.3;position:absolute;top:0;right:0}.resize-handle{background:var(--bp-cyan);cursor:nwse-resize;opacity:0;width:9px;height:9px;position:absolute;bottom:-4px;right:-4px}.canvas-field:hover .resize-handle{opacity:.4}.canvas-field.selected .resize-handle{opacity:1}.canvas-field.locked .resize-handle{display:none}.panel{border:1px solid var(--bp-line);background:var(--bp-inset);flex-direction:column;flex-shrink:0;gap:8px;padding:0;display:flex}.panel-title{border-bottom:1px solid var(--bp-line-soft);background:var(--bp-wash);text-transform:uppercase;letter-spacing:.08em;color:var(--bp-cyan);align-items:center;gap:6px;padding:6px 9px;font-size:10px;font-weight:700;display:flex}.panel>:not(.panel-title){margin-left:9px;margin-right:9px}.panel>:last-child:not(.panel-title){margin-bottom:9px}.panel-title .remove-btn{margin-left:auto}.panel-hint{color:var(--bp-text-dim);margin:0;font-size:11px;line-height:1.5}.badge{background:var(--bp-red);color:var(--bp-void);letter-spacing:.04em;padding:0 5px;font-size:10px;font-weight:700}.field-card{border:1px solid var(--bp-line-soft);flex-direction:column;gap:6px;padding:8px;display:flex}.field-card-header{align-items:center;gap:6px;display:flex}.field-name{flex:1;min-width:0;font-weight:700}.lock-toggle{text-transform:uppercase;letter-spacing:.08em;color:var(--bp-text-dim);cursor:pointer;align-items:center;gap:3px;font-size:10px;display:inline-flex}.remove-btn{width:22px;height:22px;color:var(--bp-text-dim);flex-shrink:0;padding:0;line-height:1}.remove-btn:hover{color:var(--bp-red);border-color:var(--bp-red);background:0 0}.field-full{text-transform:uppercase;letter-spacing:.08em;color:var(--bp-text-dim);flex-direction:column;gap:3px;font-size:10px;display:flex}.geometry-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.geometry-grid label{text-transform:uppercase;letter-spacing:.08em;color:var(--bp-text-dim);flex-direction:column;gap:3px;min-width:0;font-size:10px;display:flex}.geometry-grid input,.geometry-grid select{min-width:0}.column-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.column-list li{align-items:center;gap:4px;display:flex}.column-list input{flex:1;min-width:0}.column-list code{text-overflow:ellipsis;white-space:nowrap;max-width:84px;color:var(--bp-cyan);flex-shrink:0;font-size:10px;overflow:hidden}.field-list{flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex}.field-list li{border-top:1px solid var(--bp-line-soft);cursor:pointer;align-items:center;gap:6px;padding:5px 2px;font-size:11px;display:flex}.field-list li:last-child{border-bottom:1px solid var(--bp-line-soft)}.field-list li:hover{background:var(--bp-wash)}.field-list-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:700;overflow:hidden}.field-list-type{color:var(--bp-text-dim);text-transform:uppercase;letter-spacing:.08em;flex-shrink:0;font-size:10px}.dropzone{text-align:center;border:1px dashed var(--bp-line);text-transform:uppercase;letter-spacing:.08em;color:var(--bp-text-dim);cursor:pointer;justify-content:center;align-items:center;padding:14px 10px;font-size:10px;display:flex}.dropzone:hover,.dropzone.over{border-color:var(--bp-cyan);background:var(--bp-wash);color:var(--bp-cyan);border-style:solid}.source-card{border:1px solid var(--bp-line-soft);flex-direction:column;gap:5px;padding:7px;display:flex}.source-card-header{align-items:center;gap:5px;display:flex}.data-textarea{width:100%}.resync-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tree-scroll{flex-direction:column;gap:3px;max-height:320px;display:flex;overflow-y:auto}.tree-section{text-transform:uppercase;letter-spacing:.14em;color:var(--bp-cyan);border-bottom:1px solid var(--bp-line-soft);margin:6px 0 2px;padding-bottom:3px;font-size:10px;font-weight:700}.tree-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.tree-group{align-items:center;gap:3px;display:flex}.tree-group-label{color:var(--bp-text-dim);font-size:11px;font-weight:700}.tree-toggle{color:var(--bp-text-dim);background:0 0;border:none;flex-shrink:0;padding:2px 3px;line-height:1}.tree-toggle:hover{background:var(--bp-wash);color:var(--bp-cyan)}.tree-row{border:1px solid var(--bp-line);cursor:grab;background:0 0;flex:1;align-items:center;gap:5px;min-width:0;padding:3px 6px;font-size:11px;display:flex}.tree-row:hover{border-color:var(--bp-cyan);background:var(--bp-wash)}.tree-row--arraySource{border-left:1px solid var(--bp-cyan);box-shadow:inset 2px 0 0 -1px var(--bp-cyan)}.tree-row--native{border-left-color:var(--bp-amber);box-shadow:inset 2px 0 0 -1px var(--bp-amber)}.tree-row-icon{color:var(--bp-cyan);flex-shrink:0}.tree-row--native .tree-row-icon{color:var(--bp-amber)}.tree-row-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--bp-text);flex:1;overflow:hidden}.tree-row-add{flex-shrink:0;width:18px;height:18px;padding:0;font-size:12px;line-height:1}.problem-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.problem-item{text-align:left;text-transform:none;letter-spacing:normal;background:0 0;flex-direction:column;gap:2px;width:100%;padding:5px 7px;font-size:11px;display:flex}.problem-item--error{border-color:var(--bp-red);color:var(--bp-text);box-shadow:inset 2px 0 0 0 var(--bp-red)}.problem-item--error:hover{background:#ff8a801a}.problem-item--config{border-color:var(--bp-amber);box-shadow:inset 2px 0 0 0 var(--bp-amber)}.problem-item--config:hover{background:#ffb74d1a}.problem-item-name{color:var(--bp-text);font-weight:700}.problem-item-name code{color:var(--bp-cyan);font-weight:400}.problem-item-message{color:var(--bp-text-dim);line-height:1.45}.problem-item-page{text-transform:uppercase;letter-spacing:.08em;color:var(--bp-text-dim);font-size:10px}.gen-banner{background:var(--bp-void);color:var(--bp-text);border-bottom:1px solid var(--bp-red);box-shadow:inset 3px 0 0 0 var(--bp-red);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:12px;padding:8px 16px;font-size:11px;display:flex}.gen-banner--bug{border-bottom-color:var(--bp-line);box-shadow:inset 3px 0 0 0 var(--bp-line)}.gen-banner-body{flex-direction:column;gap:3px;min-width:0;display:flex}.gen-banner-title{text-transform:uppercase;letter-spacing:.08em;color:var(--bp-red);font-weight:700}.gen-banner--bug .gen-banner-title{color:var(--bp-cyan)}.gen-banner-blame{letter-spacing:.04em;color:var(--bp-text-dim);margin-left:8px;font-weight:400}.gen-banner-detail{white-space:pre-wrap;overflow-wrap:break-word;background:var(--bp-ink);border:1px solid var(--bp-line-soft);color:var(--bp-text-dim);text-transform:none;letter-spacing:0;padding:5px;font-size:10px;display:block}.gen-banner-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.gen-banner-actions button{padding:3px 7px;font-size:10px}input,textarea,button,select{font:inherit;border:1px solid var(--bp-line);color:var(--bp-text);background:var(--bp-inset);border-radius:0;padding:4px 7px}input,textarea,select,option{text-transform:none;letter-spacing:normal}input:hover,textarea:hover,select:hover{border-color:var(--bp-cyan)}button{text-transform:uppercase;letter-spacing:.08em;font-size:10px;line-height:1.6}input[type=color]{background:var(--bp-inset);height:26px;padding:1px}input[type=checkbox]{width:auto;accent-color:var(--bp-cyan);padding:0}textarea{resize:vertical;font-family:var(--bp-mono);text-transform:none;letter-spacing:0;font-size:11px;line-height:1.5}button,select{cursor:pointer}button:hover,select:hover{background:var(--bp-wash);border-color:var(--bp-cyan);color:var(--bp-cyan)}.generate-btn{background:var(--bp-cyan);color:var(--bp-void);border-color:var(--bp-cyan);padding:5px 14px;font-weight:700}.generate-btn:hover:not(:disabled){color:var(--bp-void);background:#7ee0ed;border-color:#7ee0ed}.generate-btn:disabled{opacity:.45;cursor:not-allowed}.accent-btn{color:var(--bp-cyan);border-color:var(--bp-cyan);white-space:nowrap;background:0 0}.accent-btn:hover{background:var(--bp-wash);color:var(--bp-cyan)}.error-text{color:var(--bp-red);text-transform:none;letter-spacing:normal;margin:0;font-size:11px;line-height:1.45}.ok-text{color:var(--bp-green);text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:700}.muted-text{color:var(--bp-text-dim);text-transform:none;letter-spacing:normal;font-size:10px;line-height:1.5}.empty-hint{color:var(--bp-text-dim);border:1px dashed var(--bp-line-soft);padding:20px;font-size:11px}:root{--jpd-shadow-page-preview:0 0 0 1px #4dd0e1}.jpd-preview__count{font-family:var(--bp-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--bp-cyan);margin:0 0 10px;font-size:10px;font-weight:700}.jpd-error{color:var(--bp-red);font-size:11px}.jpd-error--md{font-size:13px}
