:root{--desk: #1e2428;--desk-soft: #2b3137;--desk-mid: #3a4148;--paper: #ffffff;--paper-dim: #f7f8f9;--ink: #21262b;--ink-soft: #5d6670;--accent: #de5c8e;--accent-deep:#b93f70;--ok: #2e8b57;--warn: #c0392b;--mono: ui-monospace, "Fira Code", monospace}*{box-sizing:border-box;margin:0}html,body{height:100%;overflow:hidden}body{font-family:Sarabun,system-ui,sans-serif;background:var(--desk);color:var(--ink)}.shell{display:grid;grid-template-rows:48px 1fr;height:100vh;overflow:hidden}.topbar{display:flex;align-items:center;gap:10px;padding:0 14px;background:var(--desk);border-bottom:1px solid #111;flex:none}.tb-brand{display:flex;align-items:center;gap:8px;flex:none}.tb-brand-mark{width:18px;height:24px;background:var(--paper);border-radius:2px;box-shadow:2px 2px 0 var(--accent);flex:none}.tb-brand-name{font-size:14px;font-weight:700;color:var(--paper);white-space:nowrap}.api-pill{font-size:12px;font-family:var(--mono);color:#8a9099;white-space:nowrap}.tb-spacer{flex:1}.compile-btn{font:inherit;font-size:14px;font-weight:700;color:#fff;background:var(--accent);border:none;border-radius:6px;padding:7px 22px;cursor:pointer;transition:background .15s;white-space:nowrap;flex:none}.compile-btn:hover:not(:disabled){background:var(--accent-deep)}.compile-btn:disabled{background:var(--desk-mid);color:#8a9099;cursor:not-allowed}.compile-btn:focus-visible{outline:2px solid var(--paper);outline-offset:2px}.workspace{display:grid;grid-template-columns:280px 6px 1fr 6px 1fr;overflow:hidden}.col-resizer{cursor:col-resize;background:var(--accent);opacity:0;transition:opacity .15s ease;z-index:2}.col-resizer:hover,.col-resizer:active{opacity:1}.editor-pane,.output-pane{min-width:0}.nav-panel{background:var(--paper);border-right:2px solid #111;overflow-y:auto;padding:18px 16px;display:flex;flex-direction:column;gap:11px}.nav-section{display:flex;flex-direction:column;gap:8px;padding-bottom:11px;border-bottom:1px solid #edf0f2;transition:border-bottom-color .22s ease;position:relative}.nav-section.at-end,.field-group.at-end{border-bottom-color:var(--accent)}.nav-section:after,.field-group:after{content:"";position:absolute;left:0;right:0;bottom:-9px;height:8px;background:linear-gradient(to bottom,#de5c8e80,#de5c8e00);opacity:0;transition:opacity .22s ease;pointer-events:none}.nav-section.at-end:after,.field-group.at-end:after{opacity:1}.nav-section.nav-actions{padding-bottom:0;border-bottom:none}.nav-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}.nav-label em{font-style:normal;font-weight:600;font-size:12px;text-transform:none;letter-spacing:0;margin-left:4px}.nav-label em.ok{color:var(--ok)}.nav-label em.warn{color:var(--warn)}.nav-section-body{display:flex;flex-direction:column;gap:8px}.nav-head{display:flex;align-items:center;gap:6px;padding:0;margin:0;border:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}.nav-head:hover .nav-label{color:var(--ink)}.nav-head:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}.nav-disclose{flex:none;width:10px;font-size:10px;line-height:1;color:var(--ink-soft)}.field-group{display:flex;flex-direction:column;gap:6px;padding-bottom:8px;border-bottom:1px solid #edf0f2;transition:border-bottom-color .22s ease;position:relative}.field-group:last-child{border-bottom-color:transparent}.field-group.at-end:last-child{border-bottom-color:var(--accent)}.field-group-head{display:flex;align-items:center;gap:6px;padding:2px 0;margin:0;border:0;background:none;font:inherit;text-align:left;cursor:pointer}.field-group-head:hover .field-group-label{color:var(--ink)}.field-group-head:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}.field-group-label{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft)}.field-group-count{font-size:11px;font-weight:600;color:var(--ink-soft);background:var(--paper-dim);border-radius:999px;padding:0 6px}.nav-hint{font-size:12.5px;color:var(--ink-soft);line-height:1.5}.select-trigger{display:flex;align-items:center;gap:8px;font:inherit;font-size:13px;text-align:left;color:var(--ink);background:var(--paper-dim);border:1px solid #dde0e3;border-radius:5px;padding:6px 10px;width:100%;cursor:pointer}.select-trigger:hover:not(:disabled){border-color:#c8cdd2}.select-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.select-trigger:disabled{opacity:.5;cursor:default}.select-trigger.open{border-color:var(--accent)}.select-value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-caret{flex:none;font-size:9px;color:var(--ink-soft);transition:transform .12s}.select-trigger.open .select-caret{transform:rotate(180deg)}.select-trigger.on-dark{color:var(--paper);background:var(--desk-soft);border-color:var(--desk-mid);padding:5px 9px;width:auto;max-width:220px}.select-trigger.on-dark:hover:not(:disabled){border-color:#4d555d}.select-trigger.on-dark .select-caret{color:#8a9099}.select-popup{position:fixed;z-index:100;list-style:none;margin:0;padding:4px;overflow-y:auto;overscroll-behavior:contain;background:var(--paper);border:1px solid #dde0e3;border-radius:6px;box-shadow:0 8px 24px #14181c29}.select-popup:focus{outline:none}.select-popup.on-dark{background:var(--desk-soft);border-color:var(--desk-mid);box-shadow:0 8px 24px #0006}.select-option{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink);padding:6px 8px;border-radius:4px;cursor:pointer}.select-option-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-option.selected{font-weight:600}.select-check{flex:none;font-size:11px;color:var(--accent-deep)}.select-option.active{background:var(--accent);color:#fff}.select-option.active .select-check{color:#fff}.select-popup.on-dark .select-option{color:#c6cdd4}.select-popup.on-dark .select-option.active{background:var(--accent);color:#fff}.dropzone{border:2px dashed #d1d5da;border-radius:8px;padding:14px 12px;display:flex;flex-direction:column;gap:3px;align-items:center;text-align:center;cursor:pointer;transition:border-color .15s,background .15s;background:var(--paper-dim);min-height:70px;justify-content:center}.dropzone strong{font-size:13px;color:var(--ink)}.dropzone span{font-size:12px;color:var(--ink-soft)}.dropzone:hover,.dropzone.over{border-color:var(--accent);background:#de5c8e0d}.dropzone.filled{border-style:solid;border-color:#4caf7d;background:#2e8b570d}.dropzone.filled strong{color:var(--ok)}.json-error{font-size:12px;color:var(--warn);line-height:1.5;padding:6px 8px;background:#c0392b12;border-radius:5px;border:1px solid rgba(192,57,43,.2)}.checklist{list-style:none;padding:0;display:flex;flex-direction:column;gap:0;max-height:280px;overflow-y:auto;border:1px solid #e4e6e8;border-radius:6px;background:var(--paper-dim)}.checklist li{display:flex;align-items:center;gap:7px;padding:6px 10px;font-size:12.5px;font-family:var(--mono);color:var(--ink-soft);border-bottom:1px solid #edf0f2}.checklist li:last-child{border-bottom:none}.checklist li i{font-style:normal;font-size:13px;flex:none;color:#c8cdd2}.checklist li.present{color:var(--ink)}.checklist li.present i{color:var(--ok)}.checklist li.missing{color:var(--warn);font-weight:600}.checklist li.missing i{color:var(--warn)}.checklist li .tag-missing{margin-left:auto;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--warn);background:#c0392b1a;padding:1px 6px;border-radius:999px}.field-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:10px;max-height:360px;overflow-y:auto}.field-row{display:flex;flex-direction:column;gap:3px}.field-row>input[type=checkbox]{align-self:flex-start;width:16px;height:16px}.field-label{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;font-size:12.5px;font-weight:600;color:var(--ink)}.field-req{color:var(--warn);font-weight:700}.field-key{font-family:var(--mono);font-size:10.5px;font-weight:400;color:var(--ink-soft)}.field-row .text-input{font-size:12.5px}.rich-text-input{border:1px solid #dde0e3;border-radius:5px;overflow:hidden;background:var(--paper-dim)}.rich-text-input:focus-within{outline:2px solid var(--accent);outline-offset:1px}.rich-text-toolbar{display:flex;flex-wrap:wrap;gap:3px;padding:4px 5px;border-bottom:1px solid #dde0e3;background:var(--paper)}.rich-text-toolbar button{border:1px solid #dde0e3;border-radius:4px;padding:2px 6px;background:var(--paper-dim);color:var(--ink);font:inherit;font-size:11px;cursor:pointer}.rich-text-toolbar button:hover{background:#eceef0}.rich-text-surface{min-height:74px;padding:7px 9px;font-size:12.5px;line-height:1.45;outline:none;overflow-wrap:anywhere}.rich-text-surface p,.rich-text-surface div{margin:0 0 .45em}.rich-text-surface ul,.rich-text-surface ol{margin:.35em 0;padding-left:1.5em}.bool-toggle{display:inline-flex;border:1px solid #dde0e3;border-radius:6px;overflow:hidden;align-self:flex-start}.bool-toggle button{font:inherit;font-size:12.5px;font-weight:600;color:var(--ink-soft);background:var(--paper);border:none;padding:5px 16px;cursor:pointer}.bool-toggle button+button{border-left:1px solid #dde0e3}.bool-toggle button:hover:not(.on){background:var(--paper-dim)}.bool-toggle button.on{background:var(--accent);color:#fff}.table-var{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.table-var-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.table-var-name{font-size:12.5px;font-weight:700;color:var(--ink)}.table-row-card{border:1px solid #e4e6e8;border-radius:6px;background:var(--paper-dim);padding:10px;display:flex;flex-direction:column;gap:8px}.table-row-head{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft)}.row-del{border:none;background:none;cursor:pointer;color:var(--ink-soft);font-size:13px;line-height:1;padding:2px 4px;border-radius:4px}.row-del:hover{color:var(--warn);background:#c0392b14}.table-row-card .cell{display:flex;flex-direction:column;gap:3px}.cell-label{font-size:11.5px;font-weight:600;color:var(--ink-soft)}.table-row-card .text-input{font-size:12.5px}.arr-editor,.obj-editor{display:flex;flex-direction:column;gap:8px}.add-row-btn{font:inherit;font-size:12px;font-weight:700;color:var(--accent-deep);background:var(--paper);border:1px dashed #cfd3d7;border-radius:6px;padding:7px 0;width:100%;cursor:pointer}.add-row-btn:hover{background:var(--paper-dim);border-color:var(--accent);color:var(--accent)}.cell .arr-editor,.cell .obj-editor{border-left:2px solid #e4e6e8;padding-left:8px;margin-top:2px}.checklist.detected-keys{max-height:220px}.checklist li .tag-kind{margin-left:auto;font-family:inherit;font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft)}.checklist li .tag-kind.required{color:var(--warn)}.var-list{list-style:none;padding:0;margin:0;border:1px solid #e4e6e8;border-radius:6px;background:var(--paper-dim);max-height:440px;overflow-y:auto}.var-row-group{border-bottom:1px solid #edf0f2}.var-row-group:last-child{border-bottom:none}.var-row-group.open{background:var(--paper)}.var-row{display:flex;align-items:center;gap:8px;padding:6px 10px}.var-disclose{flex:none;width:16px;padding:0;cursor:pointer;font:inherit;font-size:10px;line-height:1;color:var(--ink-soft);background:none;border:0}.var-disclose:hover{color:var(--ink)}.var-disclose:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.var-flag{flex:none;font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--accent-deep);background:#de5c8e1f;padding:1px 6px;border-radius:999px}.var-config{display:flex;flex-direction:column;gap:8px;padding:4px 10px 12px 26px}.var-config .text-input{flex:1;min-width:0;font-size:12px;padding:4px 6px}.var-config .select-trigger{flex:1;min-width:0;font-size:12px;padding:4px 6px;border:1px solid #e4e6e8;border-radius:6px;background:var(--paper);color:var(--ink)}.var-config .chrome-row{padding-left:0}.var-hint{margin-top:-4px}.var-name{font-family:var(--mono);font-size:12.5px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.var-type{font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);background:#eceef0;padding:1px 6px;border-radius:999px;flex:none}.req-toggle{margin-left:auto;flex:none;cursor:pointer;font:inherit;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);background:var(--paper);border:1px solid #dde0e3;border-radius:999px;padding:2px 9px;transition:background .12s,color .12s,border-color .12s}.req-toggle:hover{border-color:#c8cdd2}.req-toggle.on{color:#fff;background:var(--warn);border-color:var(--warn)}.req-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.chrome-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.chrome-row{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--ink);cursor:pointer}.chrome-row input{flex:none}.chrome-opts{display:flex;flex-direction:column;gap:6px;margin:6px 0 2px 22px}.chrome-field{display:flex;align-items:center;gap:8px}.chrome-field-label{font-size:11px;color:var(--ink-soft);width:52px;flex:none}.chrome-opts .select-trigger,.chrome-pages input{font-size:12px;font-family:var(--mono);padding:4px 6px;border:1px solid #e4e6e8;border-radius:6px;background:var(--paper);color:var(--ink)}.chrome-field{align-items:flex-start}.chrome-field-label{padding-top:6px}.chrome-field>.select-trigger{flex:1;min-width:0}.chrome-pages{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}.chrome-pages .select-trigger{flex:none}.chrome-pages-row{display:flex;align-items:center;gap:6px}.chrome-pages-row input{width:60px}.chrome-pages-prefix{font-size:11px;color:var(--ink-soft)}.chrome-dash{color:var(--ink-soft)}.image-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.image-row{display:flex;align-items:center;gap:10px;padding:8px;border:1px solid #e4e6e8;border-radius:6px;background:var(--paper-dim)}.image-thumb{flex:none;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #e4e6e8;border-radius:4px;overflow:hidden}.image-thumb img{max-width:100%;max-height:100%;object-fit:contain}.image-thumb .image-empty{font-style:normal;color:#c8cdd2;font-size:18px}.image-meta{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.image-meta code{font-size:12px;color:var(--ink)}.ghost-btn.tiny{align-self:flex-start;font-size:11px;padding:3px 9px}.ghost-btn.tiny input{display:none}.error-box{padding:10px 12px;background:#c0392b14;border:1px solid rgba(192,57,43,.25);border-radius:6px;font-size:12.5px;color:var(--warn)}.error-box strong{display:block;margin-bottom:6px;font-size:13px}.error-box pre{font-size:11px;font-family:var(--mono);white-space:pre-wrap;color:#8a9099;max-height:120px;overflow:auto;background:#fff;padding:8px;border-radius:4px;margin-top:6px}.pane-header{height:36px;flex:none;background:#16191c;border-bottom:1px solid #111;display:flex;align-items:center;justify-content:space-between;padding:0 14px;color:#c6cdd4;font-size:13px}.pane-badge{font-size:11px;font-family:var(--mono);color:#8a9099;background:var(--desk-soft);border-radius:4px;padding:2px 7px}.editor-pane{display:flex;flex-direction:column;border-right:2px solid #111;overflow:hidden;background:var(--paper)}.cm-wrap{flex:1;overflow:hidden}.cm-wrap .cm-editor{height:100%}.cm-wrap .cm-editor.cm-focused{outline:none}.editor-msg{flex:1;display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--ink-soft);background:var(--paper-dim)}.editor-msg.error{color:var(--warn)}.output-pane{display:flex;flex-direction:column;background:var(--desk-soft);overflow:hidden}.output-pane iframe{flex:1;border:0;background:#888}.output-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;color:#8a9099;font-size:14px}.sheet{width:130px;aspect-ratio:210/297;background:var(--paper);border-radius:3px;box-shadow:0 14px 32px #00000080;padding:22px 16px;display:flex;flex-direction:column;gap:10px}.sheet-line{height:6px;border-radius:3px;background:#e3e4e0}.sheet-line.w90{width:90%}.sheet-line.w80{width:80%}.sheet-line.w70{width:70%}.sheet-line.w60{width:60%}.sheet .sheet-line:first-child{background:var(--accent);opacity:.5}.compile-error{flex:1;padding:18px;overflow:auto;font-size:13px;color:#e57373}.compile-error pre{margin-top:10px;font-size:11.5px;font-family:var(--mono);white-space:pre-wrap;color:#aab1b8;background:#16191c;padding:12px;border-radius:6px;max-height:60vh;overflow:auto}.download-btn{font-size:12px;font-weight:600;text-decoration:none;color:#c6cdd4;background:var(--desk-soft);border:1px solid var(--desk-mid);padding:4px 10px;border-radius:4px}.download-btn:hover{background:var(--desk-mid);color:var(--paper)}@media (max-width: 1100px){.workspace{grid-template-columns:240px 1fr 1fr}}@media (max-width: 860px){.workspace{grid-template-columns:1fr;grid-template-rows:auto 1fr 1fr}.nav-panel{border-right:none;border-bottom:2px solid #111;flex-direction:row;flex-wrap:wrap;max-height:260px;overflow-y:auto;padding:12px 14px;gap:14px}.nav-section{min-width:180px;flex:1}.editor-pane{border-right:none;border-bottom:2px solid #111}.tb-brand-name{display:none}}@media (prefers-reduced-motion: reduce){*{transition:none!important}}.splash{height:100vh;display:flex;align-items:center;justify-content:center;color:#8a9099;font-size:15px;background:var(--desk)}.auth-screen{height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 20%,#2b3137,var(--desk));padding:20px}.auth-card{width:100%;max-width:380px;background:var(--paper);border-radius:12px;padding:32px 28px;display:flex;flex-direction:column;gap:14px;box-shadow:0 24px 60px #00000073}.auth-brand{display:flex;align-items:center;gap:10px}.auth-brand h1{font-size:18px;font-weight:800;color:var(--ink)}.auth-sub{font-size:13px;color:var(--ink-soft);line-height:1.5;margin-bottom:4px}.auth-field{display:flex;flex-direction:column;gap:5px}.auth-field span{font-size:12px;font-weight:700;color:var(--ink-soft)}.auth-field input{font:inherit;font-size:14px;padding:9px 11px;border:1px solid #dde0e3;border-radius:6px;background:var(--paper-dim)}.auth-field input:focus{outline:2px solid var(--accent);outline-offset:1px}.auth-submit{font:inherit;font-size:14px;font-weight:700;color:#fff;background:var(--accent);border:none;border-radius:6px;padding:10px;cursor:pointer;margin-top:4px}.auth-submit:hover:not(:disabled){background:var(--accent-deep)}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-error{font-size:12.5px;color:var(--warn)}.auth-toggle{font-size:12.5px;color:var(--ink-soft);text-align:center}.auth-toggle button{background:none;border:none;color:var(--accent-deep);font:inherit;font-weight:700;cursor:pointer;padding:0}.app-shell{display:grid;grid-template-rows:48px 1fr;height:100vh;overflow:hidden}.app-body{display:grid;grid-template-columns:220px 1fr;overflow:hidden;transition:grid-template-columns .28s ease}.app-body.rail-closed{grid-template-columns:0 1fr}.app-body.rail-closed .rail{transform:translate(-100%)}.rail{transition:transform .28s ease}.rail-toggle{font:inherit;font-size:14px;line-height:1;color:#c6cdd4;background:var(--desk-soft);border:1px solid var(--desk-mid);border-radius:5px;padding:6px 10px;margin-right:12px;cursor:pointer}.rail-toggle:hover{background:var(--desk-mid);color:var(--paper)}.org-select{min-width:140px}.tb-link{font-size:13px;color:#c6cdd4;text-decoration:none;padding:5px 10px;border-radius:5px;border:1px solid var(--desk-mid)}.tb-link:hover{background:var(--desk-soft);color:var(--paper)}.tb-user{font-size:12.5px;color:#8a9099;font-family:var(--mono)}.rail{background:var(--paper);border-right:2px solid #111;display:flex;flex-direction:column;overflow:hidden}.rail-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid #e4e6e8;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}.rail-add{font:inherit;font-size:12px;font-weight:700;color:var(--accent-deep);background:none;border:none;cursor:pointer}.rail-search{padding:8px 12px;border-bottom:1px solid #e4e6e8}.rail-search .text-input{font-size:13px;padding:6px 9px}.new-template{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-bottom:1px solid #e4e6e8;background:var(--paper-dim)}.rail-list{list-style:none;padding:6px;overflow-y:auto;flex:1}.rail-list li{padding:8px 10px;border-radius:6px;cursor:pointer;display:flex;flex-direction:column;gap:2px}.rail-list li:hover{background:var(--paper-dim)}.rail-list li.active{background:#de5c8e1a}.rail-list li strong{font-size:13px;color:var(--ink);font-weight:600}.rail-list li code{font-size:11px;font-family:var(--mono);color:var(--ink-soft)}.rail-list li.empty{color:#b0b6bc;cursor:default;font-size:12.5px}.rail-list li.empty:hover{background:none}.rail-list li .stamp{display:flex;align-items:center;gap:5px;font-size:10.5px;color:#8b939c;letter-spacing:.01em}.rail-list li .stamp-dot{width:6px;height:6px;border-radius:50%;flex:none;background:var(--ok, #2e8b57)}.rail-list li .stamp.edited .stamp-dot{background:#f2b06a}.rail-list li .draft-tag{font-size:10px;font-style:normal;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--accent, #de5c8e);background:#de5c8e1f;border-radius:4px;padding:1px 5px}.rail-nav{font:inherit;font-size:13px;text-align:left;padding:12px 16px;border:none;border-top:1px solid #e4e6e8;background:var(--paper);cursor:pointer;color:var(--ink)}.rail-nav:hover{background:var(--paper-dim)}.rail-nav.active{background:#de5c8e1a;font-weight:700}.main-region{overflow:hidden;display:flex;flex-direction:column}.main-region .workspace{flex:1}.main-empty{background:var(--desk-soft)}.text-input{font:inherit;font-size:13px;color:var(--ink);background:var(--paper-dim);border:1px solid #dde0e3;border-radius:5px;padding:7px 9px;width:100%;resize:vertical}.text-input:focus{outline:2px solid var(--accent);outline-offset:1px}.text-input.mono{font-family:var(--mono);font-size:12px}.json-area{min-height:90px}.slug-hint code{font-family:var(--mono);color:var(--ink)}.ghost-btn{font:inherit;font-size:12.5px;font-weight:600;color:var(--ink);background:var(--paper-dim);border:1px solid #dde0e3;border-radius:5px;padding:6px 12px;cursor:pointer}.ghost-btn:hover:not(:disabled){background:#eceef0}.ghost-btn:disabled{opacity:.55;cursor:default}.ghost-btn.danger{color:var(--warn);border-color:#c0392b4d}.ghost-btn.danger:hover{background:#c0392b14}.compile-btn.small{padding:5px 14px;font-size:12.5px}.row-between{display:flex;gap:8px;justify-content:space-between}.sample-actions{display:flex;gap:8px;align-items:center;flex-wrap:nowrap}.fill-btn{font:inherit;font-size:12.5px;font-weight:700;color:#fff;background:var(--accent);border:none;border-radius:5px;padding:6px 14px;cursor:pointer}.fill-btn:hover{background:var(--accent-deep)}.sample-upload{flex:none;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;font-size:14px;color:var(--ink);background:var(--paper-dim);border:1px solid #dde0e3;border-radius:5px;cursor:pointer}.sample-upload:hover{background:#eceef0;border-color:var(--accent)}.sample-upload.busy{opacity:.5;cursor:default}.nav-actions{margin-top:auto}.panel-scroll{flex:1;overflow-y:auto;background:var(--paper)}.panel-inner{max-width:760px;padding:28px 32px;display:flex;flex-direction:column;gap:12px}.panel-title{font-size:18px;font-weight:800;color:var(--ink)}.panel-title.mt{margin-top:18px}.panel-text{font-size:13.5px;color:var(--ink-soft);line-height:1.6}.panel-text code,.slug-hint code{font-family:var(--mono);font-size:12px;background:var(--paper-dim);padding:1px 5px;border-radius:4px}.panel-text a{color:var(--accent-deep)}.create-key-row{display:flex;gap:8px;align-items:center;margin-top:6px}.create-key-row .text-input{flex:1}.key-reveal{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;border-radius:8px;background:#2e8b5714;border:1px solid rgba(46,139,87,.3)}.key-reveal strong{width:100%;font-size:13px;color:var(--ok)}.key-value{font-family:var(--mono);font-size:12.5px;color:var(--ink);background:#fff;padding:6px 10px;border-radius:5px;border:1px solid #d1d5da;flex:1;word-break:break-all}.key-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:6px}.key-table th,.key-table td{text-align:left;padding:8px 10px;border-bottom:1px solid #e9ebed}.key-table th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft)}.key-table code{font-family:var(--mono);font-size:12px}.key-table tr.revoked{opacity:.5}.revoked-toggle{align-self:flex-start;padding:2px 0;background:none;border:0;cursor:pointer;font:inherit;font-size:12px;text-align:left;color:var(--ink-soft)}.revoked-toggle:hover{color:var(--ink)}.dict-add{display:flex;gap:8px;align-items:flex-start;margin-top:6px}.dict-add-fields{flex:1;display:flex;flex-direction:column;gap:6px}.dict-add .compile-btn{flex:none}.dict-toolbar{display:flex;align-items:center;gap:10px;margin-top:10px}.dict-toolbar .text-input{flex:1}.dict-count{font-size:12px;color:var(--ink-soft);flex:none}.dict-term{font-size:15px;color:var(--ink);line-height:1.7}.dict-empty{color:var(--ink-soft)}.code-block{font-family:var(--mono);font-size:12.5px;line-height:1.6;background:#16191c;color:#c6cdd4;padding:16px;border-radius:8px;overflow-x:auto;white-space:pre}@media (max-width: 860px){.app-body{grid-template-columns:1fr;grid-template-rows:auto 1fr}.rail{border-right:none;border-bottom:2px solid #111;max-height:200px}}
