*{box-sizing:border-box}
[hidden]{display:none !important}
body{margin:0;background:#f5f7fb;color:#172033;font-family:Arial,sans-serif}
a{color:#2457c5;text-decoration:none}
.wrap{max-width:1100px;margin:40px auto;padding:0 20px}
.card{background:#fff;border:1px solid #e3e8f0;border-radius:12px;padding:22px;margin:16px 0;box-shadow:0 3px 12px #15223808}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.field{display:block;width:100%;margin:12px 0}
input,textarea,select{width:100%;padding:11px;border:1px solid #ccd4e0;border-radius:7px;font:inherit}
textarea{min-height:240px;font-family:monospace}
button,a.btn{display:inline-block;background:#2457c5;color:#fff;border:0;border-radius:7px;padding:11px 17px;cursor:pointer;font-weight:600;font:inherit;font-weight:600;line-height:1.2}
button.secondary,a.btn.secondary{background:#e9eef8;color:#172033}
button:disabled{opacity:.5;cursor:not-allowed}
table{width:100%;border-collapse:collapse}
td,th{text-align:left;padding:11px;border-bottom:1px solid #edf0f5}
small,.muted{color:#68758a}
.error{color:#b42318}
.success{color:#067647}
h1{margin-top:0}

/* header / nav */
.topbar{margin:0;border-radius:0}
.topbar .wrap{margin:0 auto;display:flex;justify-content:space-between;align-items:center}
.nav{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.nav a,.nav button.link{font-weight:600}
.nav a.active{color:#172033}
button.link{background:none;color:#2457c5;padding:0;border-radius:0}

/* schema-driven form */
.schema-object{border:1px solid #dce3ed;border-radius:9px;padding:14px;margin:16px 0}
.schema-object legend{font-weight:700;padding:0 7px}
.schema-array{border:1px solid #e3e8f0;border-radius:9px;padding:14px}
.array-item{display:flex;align-items:flex-end;gap:12px;border-bottom:1px solid #edf0f5;padding:8px 0}
.array-item .field{flex:1;margin:4px 0}
.field-help{display:block;margin:4px 0 7px}
input[type=checkbox]{width:auto;min-width:18px;min-height:18px;margin:9px 0}

/* reports */
.report-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.report-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start}
