.contract-jsonforms [hidden],:is(.contract-jsonforms .vertical-layout-item:has(>[hidden]),.contract-jsonforms .horizontal-layout-item:has(>[hidden]),.contract-jsonforms .group-layout-item:has(>[hidden])){display:none!important}.contract-jsonforms .vertical-layout,.contract-jsonforms .horizontal-layout{flex-direction:column;gap:24px;display:flex}@media (min-width:640px){.contract-jsonforms .horizontal-layout{flex-direction:row;align-items:flex-start}.contract-jsonforms .horizontal-layout>div{flex:1}}.contract-jsonforms .group-layout{background:#fafafa;border:1px solid #e5e7eb;border-radius:12px;flex-direction:column;gap:24px;padding:20px;display:flex}.contract-jsonforms .group-layout>legend,.contract-jsonforms .group-layout>fieldset>legend{color:#374151;padding:0 4px;font-size:16px;font-weight:700}.contract-jsonforms .control{flex-direction:column;gap:6px;display:flex}.contract-jsonforms .control>label,.contract-jsonforms .input>label{color:#374151;font-size:15px;font-weight:600;display:block}.contract-jsonforms .control input[type=text],.contract-jsonforms .control input[type=number],.contract-jsonforms .control input[type=email],.contract-jsonforms .control input[type=password],.contract-jsonforms .control input[type=date],.contract-jsonforms .control input[type=time],.contract-jsonforms .control input[type=datetime-local],.contract-jsonforms .control textarea{box-sizing:border-box;color:#111827;appearance:none;background:#fff;border:2px solid #d1d5db;border-radius:10px;outline:none;width:100%;padding:14px 16px;font-family:inherit;font-size:16px;transition:border-color .15s,box-shadow .15s}.contract-jsonforms .control input[type=text]:focus,.contract-jsonforms .control input[type=number]:focus,.contract-jsonforms .control input[type=email]:focus,.contract-jsonforms .control input[type=password]:focus,.contract-jsonforms .control input[type=date]:focus,.contract-jsonforms .control input[type=time]:focus,.contract-jsonforms .control input[type=datetime-local]:focus,.contract-jsonforms .control textarea:focus{border-color:#00a020;box-shadow:0 0 0 4px #00a02024}.contract-jsonforms .control input:disabled,.contract-jsonforms .control textarea:disabled{color:#6b7280;cursor:not-allowed;background:#f3f4f6}.contract-jsonforms .control textarea{resize:vertical;min-height:100px;line-height:1.5}.contract-jsonforms .control select,.contract-jsonforms .select select{box-sizing:border-box;color:#111827;appearance:none;cursor:pointer;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2.5'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") right 14px center no-repeat;border:2px solid #d1d5db;border-radius:10px;outline:none;width:100%;padding:14px 44px 14px 16px;font-family:inherit;font-size:16px;transition:border-color .15s,box-shadow .15s}.contract-jsonforms .control select:focus,.contract-jsonforms .select select:focus{border-color:#00a020;box-shadow:0 0 0 4px #00a02024}.contract-jsonforms .control select:disabled,.contract-jsonforms .select select:disabled{color:#6b7280;cursor:not-allowed;background-color:#f3f4f6}.contract-jsonforms .control:has(>.checkbox){flex-flow:wrap;align-items:center;column-gap:12px}.contract-jsonforms .control:has(>.checkbox)>input.checkbox{order:0}.contract-jsonforms .control:has(>.checkbox)>label{cursor:pointer;-webkit-user-select:none;user-select:none;order:1;margin:0}:is(.contract-jsonforms .control:has(>.checkbox)>.validation,.contract-jsonforms .control:has(>.checkbox)>.validation_error,.contract-jsonforms .control:has(>.checkbox)>.input-description){flex-basis:100%;order:2}.contract-jsonforms input.checkbox{accent-color:#00a020;cursor:pointer;border-radius:4px;flex-shrink:0;width:24px;height:24px;margin:0}.contract-jsonforms .radio{flex-direction:column;gap:10px;display:flex}.contract-jsonforms .radio-option{align-items:center;gap:12px;min-height:44px;display:flex}.contract-jsonforms .radio-input{accent-color:#00a020;cursor:pointer;flex-shrink:0;width:22px;height:22px}.contract-jsonforms .radio-label{color:#374151;cursor:pointer;font-size:16px}.contract-jsonforms .validation,.contract-jsonforms .validation_error{color:#dc2626;margin-top:2px;font-size:13px}.contract-jsonforms .control input.invalid,.contract-jsonforms .control textarea.invalid,.contract-jsonforms .control select.invalid{border-color:#dc2626}.contract-jsonforms .control input.invalid:focus,.contract-jsonforms .control textarea.invalid:focus,.contract-jsonforms .control select.invalid:focus{border-color:#dc2626;box-shadow:0 0 0 4px #dc262624}.contract-jsonforms .input-description{color:#9ca3af;margin-top:2px;font-size:13px}.contract-jsonforms .validation:empty,.contract-jsonforms .validation_error:empty,.contract-jsonforms .input-description:empty{display:none}.contract-jsonforms .array-layout,.contract-jsonforms .children{flex-direction:column;gap:12px;display:flex}.contract-jsonforms .child-controls{align-items:center;gap:8px;margin-top:8px;display:flex}.contract-jsonforms .button-add,.contract-jsonforms .button-up,.contract-jsonforms .button-down,.contract-jsonforms .button-delete{cursor:pointer;color:#374151;background:#fff;border:2px solid #d1d5db;border-radius:8px;min-height:44px;padding:0 18px;font-family:inherit;font-size:15px;transition:background .15s,border-color .15s}.contract-jsonforms .button-add:hover,.contract-jsonforms .button-up:hover,.contract-jsonforms .button-down:hover{background:#f3f4f6;border-color:#9ca3af}.contract-jsonforms .button-delete{color:#dc2626;border-color:#fca5a5}.contract-jsonforms .button-delete:hover{background:#fef2f2;border-color:#dc2626}.contract-jsonforms .array-table-layout{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.contract-jsonforms .array-table-layout table{border-collapse:collapse;width:100%;font-size:15px}.contract-jsonforms .array-table-layout th{text-align:left;color:#6b7280;white-space:nowrap;background:#f9fafb;border-bottom:2px solid #e5e7eb;padding:12px;font-size:13px;font-weight:700}.contract-jsonforms .array-table-layout td{vertical-align:middle;border-bottom:1px solid #f3f4f6;padding:10px 12px}