:root{--bg:#f7f2ea;--bg-alt:#efe4d5;--ink:#1c1b1a;--ink-soft:#4a453f;--accent:#d97706;--accent-dark:#9a5804;--card:#fffaf4;--stroke:rgba(28, 27, 26, 0.15);--error:#b91c1c;--ok:#15803d;--warn:#b45309;--shadow:0 18px 40px rgba(28, 27, 26, 0.12);--radius:18px}*{box-sizing:border-box}body{margin:0;font-family:"Space Grotesk","Trebuchet MS",sans-serif;color:var(--ink);background:radial-gradient(circle at top left,#f9e7d2 0,#f7f2ea 45%,#f1ede5 100%);min-height:100vh}.beta-ribbon{position:fixed;top:18px;right:-52px;z-index:999;padding:8px 70px;background:linear-gradient(135deg,#d97706,#f97316);color:#fffaf4;font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:.75rem;box-shadow:0 10px 24px rgba(124,45,18,.35);transform:rotate(35deg);border:1px solid rgba(255,255,255,.35);border-radius:6px;pointer-events:none}.app-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:24px 32px;background:linear-gradient(120deg,#fff6ea,#f3dcc2);border-bottom:1px solid var(--stroke)}.brand{display:flex;gap:16px;align-items:center}.logo{width:60px;height:60px;border-radius:20px;background:#1f1b18;color:#fff6e8;font-weight:700;display:grid;place-items:center;letter-spacing:2px;box-shadow:inset 0 0 0 2px rgba(255,255,255,.15);text-align:center;line-height:1.1}h1{margin:0 0 6px 0;font-size:1.6rem}.subtitle{margin:0;color:var(--ink-soft)}.actions{display:flex;gap:12px;align-items:center}.actions input[type=file]{padding:10px 12px;border-radius:12px;border:1px dashed var(--stroke);background:#fffaf4}button{border:none;border-radius:999px;padding:10px 18px;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}button.primary{background:var(--accent);color:#fff;box-shadow:0 12px 24px rgba(217,119,6,.25)}button.primary:disabled{background:#e5c29c;cursor:not-allowed;box-shadow:none}button.ghost{background:0 0;border:1px solid var(--stroke)}button:hover:not(:disabled){transform:translateY(-1px)}main{padding:24px 32px 32px}.status-bar{display:flex;flex-wrap:wrap;gap:16px;align-items:center;background:var(--card);border-radius:var(--radius);padding:16px 20px;box-shadow:var(--shadow)}.status-bar .label{text-transform:uppercase;font-size:.7rem;letter-spacing:.1em;color:var(--ink-soft);margin-right:6px}.status-bar .status{font-weight:600}.status-bar .status.ok{color:var(--ok)}.status-bar .status.error{color:var(--error)}.status-bar .status.status-clickable{cursor:pointer}.status-bar .status.status-clickable:focus-visible,.status-bar .status.status-clickable:hover{text-decoration:underline;outline:0}.status-bar .spacer{flex:1}.status-bar .hint{color:var(--ink-soft)}.tabs{margin-top:24px;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.tab-list{display:flex;flex-wrap:wrap;gap:8px;padding:16px;border-bottom:1px solid var(--stroke);background:linear-gradient(90deg,#fffaf4,#f7e8d6)}.tab-list button{background:0 0;border-radius:12px;border:1px solid transparent;padding:8px 14px;font-weight:600}.tab-list button.active{background:#1f1b18;color:#fffaf4}.tab-panels{padding:18px 20px 24px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.section-actions{display:inline-flex;align-items:center;gap:10px}.section-count{margin-top:0}.section-help{margin:0 0 16px 0;color:var(--ink-soft);font-size:.9rem;line-height:1.4}.section-header h2{margin:0;font-size:1.2rem}.section-header .muted{color:var(--ink-soft);font-size:.9rem}.card{border:1px solid var(--stroke);border-radius:16px;padding:16px;margin-bottom:16px;background:#fffefc;position:relative}.card-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.card-header.card-header-clickable{cursor:pointer}.card-title{display:inline-flex;align-items:center;gap:8px}.collapse-icon{display:inline-flex;width:14px;justify-content:center;color:var(--ink-soft)}.icon-button{width:30px;height:30px;padding:0;border-radius:50%;display:grid;place-items:center}.icon-button i{font-size:.9rem;transform:translateY(-1px)}.card-header.card-header-clickable .card-actions button{cursor:pointer}.card-header.no-title{justify-content:flex-end}.card-actions{display:inline-flex;align-items:center;gap:8px;min-height:30px}.card-actions button{display:grid;place-items:center;width:30px;height:30px;line-height:1;padding:0;border-radius:50%}.card-actions i{display:block;line-height:1}.card-content{display:block}.card.collapsed .card-content{display:none}.collapse-toggle{padding-inline:14px}.card-title{font-weight:600}.grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.grid .field-array{grid-column:1/-1}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:.85rem;color:var(--ink-soft)}.field input,.field select,.field textarea{padding:8px 10px;border-radius:10px;border:1px solid var(--stroke);background:#fffaf4;font-family:inherit}.field input[type=checkbox]{align-self:flex-start;width:auto;transform:scale(2);transform-origin:left center;margin:10px 0}.checkbox-list{display:grid;gap:8px}.checkbox-item{display:inline-flex;align-items:center;gap:10px}.checkbox-item span{padding-left:15px}.layout-preview{margin-top:16px;padding:12px;border:1px dashed var(--stroke);border-radius:12px;background:#fffaf4}.modal-overlay{position:fixed;inset:0;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(28,27,26,.4);z-index:50}.modal-overlay.open{display:flex}.modal{width:min(720px,92vw);background:#fffefc;border-radius:16px;box-shadow:var(--shadow);border:1px solid var(--stroke);display:flex;flex-direction:column;gap:12px;padding:16px}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.modal-title{margin:0;font-size:1.1rem}.modal-body{max-height:70vh;overflow:auto}.layout-preview{padding:12px;border:1px dashed var(--stroke);border-radius:12px;background:#fffaf4}.layout-grid{display:grid;gap:6px}.layout-row{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:6px}.layout-cell{min-height:36px;border:1px solid var(--stroke);border-radius:10px;background:#fffefc;display:flex;align-items:center;justify-content:center;font-size:.8rem;color:var(--ink-soft);text-align:center;padding:4px}.field textarea{min-height:160px;resize:vertical}#raw-json{min-height:350px}.field .help{font-size:.75rem;color:var(--ink-soft)}.raw-apply{margin-top:16px}.comments-list{display:flex;flex-direction:column;gap:16px;margin-top:12px}.comments-field{grid-column:1/-1}.comments-callout{margin-top:16px;padding:14px 16px;border-radius:14px;border:1px solid rgba(241,159,94,.25);background:linear-gradient(135deg,#fffaf2,#f6eee0);box-shadow:0 10px 20px rgba(30,20,10,.08)}.comments-callout label{font-weight:600;color:var(--ink)}.comments-callout textarea{background:#fff}.list-inline{display:flex;gap:8px;align-items:center}.sub-section.collapsed .array-content{display:none}.array-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:12px 12px 0 0;background:linear-gradient(90deg,#fff2e1,#fff8ef);border:1px solid var(--stroke);border-bottom:none;margin-bottom:0}.array-title-block{display:flex;flex-direction:column;gap:4px}.array-title{font-weight:600;letter-spacing:.01em}.array-help{font-size:.8rem;color:var(--ink-soft);margin-top:4px}.array-actions{display:inline-flex;align-items:center;gap:8px}.array-content{border:1px solid var(--stroke);border-top:none;border-radius:0 0 12px 12px;padding:12px;background:#fffefc}.array-content .card{background:0 0;box-shadow:none;margin-bottom:12px}.array-content .card:last-child{margin-bottom:0}.error{color:var(--error)}.ok{color:var(--ok)}.validation-list{list-style:none;padding:0;margin:0}.validation-item{border-bottom:1px dashed var(--stroke);padding:10px 0;cursor:pointer;transition:color .2s ease,background .2s ease;border-radius:8px}.validation-item.validation-item-ok{color:var(--ok);cursor:default}.validation-item:last-child{border-bottom:none}.validation-item strong{display:block}.validation-item:focus-visible,.validation-item:hover{color:var(--accent);background:rgba(241,159,94,.12);outline:0}.validation-item.validation-item-ok:focus-visible,.validation-item.validation-item-ok:hover{color:var(--ok);background:0 0;outline:0}.input-error{border-color:var(--error);box-shadow:0 0 0 3px rgba(185,28,28,.25);background:#fff5f5}.badge{font-size:.7rem;padding:4px 8px;border-radius:999px;background:#fef3c7;color:#92400e;white-space:nowrap}.tab-badge{margin-left:8px;background:#fee2e2;color:#b91c1c}.app-footer{padding:24px 32px 36px;color:var(--ink-soft);border-top:1px solid var(--stroke)}.footer-content a{color:var(--accent-dark);font-weight:600;text-decoration:none}.footer-content a:hover{text-decoration:underline}@media (max-width:720px){.app-header{padding:20px}main{padding:20px}.actions{width:100%;justify-content:flex-start}}