/* Forms, inputs, messages and validation. */
.search { display:flex; gap:10px; margin-bottom:16px; flex-wrap:wrap; align-items:end; }
.search .btn { min-width:112px; min-height:44px; flex:0 0 auto; }
.search input, .search select { max-width:360px; }
input, select, textarea { background:rgba(255,255,255,.92); color:var(--text); border:1px solid var(--line); border-radius:12px; padding:0 12px; min-width:260px; min-height:42px; width:100%; outline:none; font-family:inherit; line-height:1.4; }
textarea { padding-top:10px; padding-bottom:10px; }
input:focus, select:focus, textarea:focus { border-color:var(--accent2); box-shadow:0 0 0 3px rgba(109,93,252,.15); }
textarea { resize:vertical; }
input[type="checkbox"] { min-width:auto; min-height:auto; width:16px; height:16px; padding:0; margin:2px 0 0 0; transform:none; flex:0 0 auto; accent-color:var(--accent); }
label:has(> input[type="checkbox"]), .checkbox-label { display:flex !important; align-items:flex-start !important; gap:10px !important; line-height:1.55; margin-bottom:12px; }
.form-card { max-width:980px; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; }
.field { margin-bottom:15px; }
.field label { display:block; font-weight:850; margin-bottom:7px; }
.field .panel-field { background:rgba(255,255,255,.92); }
.help { color:var(--muted); font-size:13px; margin-top:6px; }
.errors { color:#991b1b; background:rgba(239,68,68,.10); border:1px solid rgba(239,68,68,.28); padding:9px 10px; border-radius:12px; margin-top:8px; }
.messages { margin-bottom:16px; display:grid; gap:8px; }
.message { border:1px solid var(--line); background:var(--glass); padding:11px 12px; border-radius:12px; }
.message.success { border-color:rgba(34,197,94,.30); background:rgba(34,197,94,.10); }
.message.error { border-color:rgba(239,68,68,.30); background:rgba(239,68,68,.10); }
.message.warning { border-color:rgba(245,158,11,.30); background:rgba(245,158,11,.10); }

.login-page { min-height:100vh; display:grid; place-items:center; padding:1.5rem; }
.login-card { width:min(100%,26rem); }
.login-card form { display:grid; gap:1rem; }
.login-card label { display:block; margin-bottom:.35rem; }
.login-card input { width:100%; }
