.main-container{max-width: 1100px; margin: 40px auto; padding: 0 20px}
.page-header{margin-bottom:24px}
.page-header__title{margin:0 0 6px;font-size:28px;letter-spacing:.2px}
.page-header__desc{margin:0;color:var(--color-text-muted);font-size:14px}


.form{border:1px solid var(--color-border);border-radius:15px;padding:10px}
.section{padding:20px 0;border-bottom:1px solid var(--color-border)}
.section__title{margin:0 0 12px;font-size:18px}


/* block (fieldset-like) */
.block{position:relative;background:#fff;border:1px solid var(--color-border);border-radius:15px;padding:10px}
.block__legend{position:absolute;top:-11px;left:14px;background:#fff;color:var(--color-primary);padding:0 8px;font-size:13px;letter-spacing:.2px}
.block__body{display:block}

.grid{display:grid;gap:10px}
.grid--2{grid-template-columns: repeat(2, minmax(0, 1fr))}
.field{display:flex;flex-direction:column;gap:5px}
.field--full{grid-column:1 / -1}
.field__label{font-size:14px;}

.form-label--required::before {
    content: "*";
    color: var(--color-danger);
    margin-right: 0.25rem;
}

.choice{display:flex;flex-wrap:wrap;gap:10px;}
.choice--stack{flex-direction:column}
.check{display:flex;align-items:center;gap:10px;cursor:pointer;font-size: 14px;color: #555;}
.check input{accent-color:var(--color-primary)}

.actions{display:flex;justify-content:flex-end;padding-top:15px}
.btn{appearance:none;border:1px solid transparent;background:var(--color-primary);color:#fff;padding:10px 18px;border-radius:12px;font-weight:700;cursor:pointer}
.btn:hover{filter:brightness(1.05)}
.btn:active{transform:translateY(1px)}


/* Responsive */
@media (max-width: 820px){
.grid--2{grid-template-columns:1fr}
}

/* Validity helper (JS adds classes) */
.input--invalid,.select--invalid,.textarea--invalid{border-color:var(--color-danger)}