/* Shared Members/Admin form and state primitives. Screen-local CSS may override. */
:root {
  --form-accent:#0b5cad; --form-accent-strong:#084b8c; --form-focus:#2563eb;
  --form-border:#cbd5e1; --form-border-strong:#94a3b8; --form-surface:#fff;
  --form-muted:#64748b; --form-text:#172033; --form-danger:#b42318;
  --form-success:#166534; --form-warning:#92400e; --form-info:#1e40af;
  --form-radius:12px; --form-shadow:0 10px 30px rgba(15,23,42,.06);
}
.kpw-form-page{width:100%;max-width:780px;margin:0 auto;color:var(--form-text)}
.kpw-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin:4px 0 24px}
.kpw-page-header__eyebrow{color:var(--form-accent);font-size:12px;font-weight:800;letter-spacing:.09em;margin-bottom:6px}
.kpw-page-header h1{color:var(--form-text);font-size:clamp(25px,4vw,34px);line-height:1.25;margin:0}
.kpw-page-header p{color:var(--form-muted);font-size:15px;line-height:1.75;margin:9px 0 0;max-width:620px}
.form-section,.status-card,.notice-card{background:var(--form-surface);border:1px solid #e2e8f0;border-radius:var(--form-radius);box-shadow:var(--form-shadow);margin-bottom:18px;padding:22px}
.form-section__header{border-bottom:1px solid #e2e8f0;margin-bottom:20px;padding-bottom:14px}
.form-section__header h2,.status-card h2,.notice-card h2{color:var(--form-text);font-size:19px;line-height:1.4;margin:0}
.form-section__header p,.status-card p,.notice-card p{color:var(--form-muted);font-size:14px;line-height:1.7;margin:6px 0 0}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.form-grid .form-group--full{grid-column:1/-1}
.form-group{margin:0 0 18px}.form-grid .form-group{margin:0}
.form-label,.content form label:not([class]){color:#334155;display:block;font-size:14px;font-weight:750;line-height:1.5;margin-bottom:7px}
.form-required{color:var(--form-danger);font-size:12px;font-weight:800;margin-left:6px}
.form-help{color:var(--form-muted);display:block;font-size:12px;line-height:1.65;margin-top:7px}
.form-error{color:var(--form-danger);display:block;font-size:12px;font-weight:700;line-height:1.55;margin-top:7px}.form-error:empty{display:none}
.form-control,.select-control,.content form input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([class]),.content form select:not([class]),.content form textarea:not([class]){appearance:none;background:#fff;border:1px solid var(--form-border);border-radius:9px;color:var(--form-text);display:block;font:inherit;font-size:16px;line-height:1.4;min-height:46px;padding:11px 13px;transition:border-color .16s,box-shadow .16s;width:100%}
.select-control,.content form select:not([class]){background-image:linear-gradient(45deg,transparent 50%,#64748b 50%),linear-gradient(135deg,#64748b 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:38px}
textarea.form-control,.content form textarea:not([class]){min-height:112px;resize:vertical}
.form-control:hover,.select-control:hover,.content form input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([class]):hover,.content form select:not([class]):hover,.content form textarea:not([class]):hover{border-color:var(--form-border-strong)}
.form-control:focus,.select-control:focus,.content form input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([class]):focus,.content form select:not([class]):focus,.content form textarea:not([class]):focus{border-color:var(--form-focus);box-shadow:0 0 0 3px rgba(37,99,235,.16);outline:none}
[aria-invalid="true"].form-control,[aria-invalid="true"].select-control{border-color:var(--form-danger);box-shadow:0 0 0 3px rgba(180,35,24,.1)}
.form-actions{align-items:center;border-top:1px solid #e2e8f0;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;margin-top:22px;padding-top:18px}
.primary-button,.secondary-button,.danger-button,.content form button:not([class]){align-items:center;border:1px solid transparent;border-radius:9px;cursor:pointer;display:inline-flex;font:inherit;font-size:14px;font-weight:800;justify-content:center;line-height:1.25;min-height:44px;padding:11px 18px;text-align:center;text-decoration:none;transition:background .16s,border-color .16s,box-shadow .16s}
.primary-button,.content form button:not([class]){background:var(--form-accent);color:#fff}.primary-button:hover,.content form button:not([class]):hover{background:var(--form-accent-strong)}
.secondary-button{background:#fff;border-color:var(--form-border);color:#334155}.secondary-button:hover{background:#f8fafc;border-color:var(--form-border-strong)}
.danger-button{background:#fff;border-color:#fda29b;color:var(--form-danger)}.danger-button:hover{background:#fff4f2}
.primary-button:disabled,.secondary-button:disabled,.danger-button:disabled,.content form button:disabled{cursor:not-allowed;opacity:.58}
.primary-button:focus-visible,.secondary-button:focus-visible,.danger-button:focus-visible,.file-upload__choose:focus-visible,.content form button:focus-visible,.content a:focus-visible{box-shadow:0 0 0 4px rgba(37,99,235,.2);outline:2px solid var(--form-focus);outline-offset:2px}
.status-card{border-left:5px solid var(--form-info);box-shadow:none}.status-card--success{background:#f0fdf4;border-color:#86efac;color:var(--form-success)}.status-card--warning{background:#fffbeb;border-color:#fcd34d;color:var(--form-warning)}.status-card--danger{background:#fff4f2;border-color:#fda29b;color:var(--form-danger)}.status-card--info{background:#eff6ff;border-color:#93c5fd;color:var(--form-info)}
.status-pill{align-items:center;background:#eef2ff;border:1px solid #c7d2fe;border-radius:999px;color:#3730a3;display:inline-flex;flex:0 0 auto;font-size:12px;font-weight:800;min-height:30px;padding:5px 11px}.status-pill--success{background:#ecfdf3;border-color:#a7f3d0;color:#166534}.status-pill--warning{background:#fffbeb;border-color:#fde68a;color:#92400e}.status-pill--danger{background:#fff1f0;border-color:#fecaca;color:#991b1b}
.notice-card{background:#f8fafc;box-shadow:none}.notice-list{color:#475569;display:grid;font-size:14px;gap:9px;line-height:1.65;margin:14px 0 0;padding-left:1.25rem}
.file-upload{background:#f8fafc;border:1px dashed var(--form-border-strong);border-radius:12px;display:grid;gap:12px;padding:18px;transition:border-color .16s,background .16s}.file-upload:focus-within,.file-upload.is-selected{background:#f0f7ff;border-color:var(--form-focus)}
.file-upload__input{height:1px!important;margin:-1px!important;opacity:0;overflow:hidden;padding:0!important;pointer-events:none;position:absolute;width:1px!important}
.file-upload__choose{align-items:center;align-self:start;background:#fff;border:1px solid var(--form-border);border-radius:9px;color:var(--form-accent);cursor:pointer;display:inline-flex;font-size:14px;font-weight:800;justify-content:center;min-height:44px;padding:10px 15px;width:fit-content}
.file-upload__name{color:var(--form-muted);font-size:13px;line-height:1.55;overflow-wrap:anywhere}.file-upload__name.is-selected{color:var(--form-text);font-weight:700}
.file-upload__clear{background:transparent;border:0;color:var(--form-danger);cursor:pointer;font:inherit;font-size:13px;font-weight:800;min-height:44px;padding:6px 0;text-align:left;width:fit-content}.file-upload__clear[hidden]{display:none}
.upload-status{align-items:center;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;color:var(--form-success);display:flex;font-size:14px;font-weight:750;gap:10px;justify-content:space-between;min-height:48px;padding:11px 13px}
.choice-card{align-items:flex-start;background:#fff;border:1px solid var(--form-border);border-radius:10px;cursor:pointer;display:flex;gap:11px;min-height:48px;padding:12px 13px}.choice-card input{flex:0 0 auto;height:20px;margin-top:1px;width:20px}
.responsive-table{background:#fff;border:1px solid #e2e8f0;border-radius:10px;overflow-x:auto;overscroll-behavior-inline:contain;width:100%}.responsive-table table{border-collapse:collapse;margin:0;min-width:620px;width:100%}.responsive-table th,.responsive-table td{border-bottom:1px solid #e2e8f0;padding:12px 14px;text-align:left;vertical-align:top}.responsive-table th{background:#f8fafc;color:#475569;font-size:12px;font-weight:800;white-space:nowrap}.responsive-table tr:last-child td{border-bottom:0}
.filter-tabs a.active,.filter-tabs a[aria-current="page"]{background:#eff6ff;border-color:#93c5fd;color:#1d4ed8;font-weight:800}
.content form input[type="checkbox"]:not([class]),.content form input[type="radio"]:not([class]){accent-color:var(--form-accent);min-height:20px;min-width:20px}
.content form input[type="file"]:not(.file-upload__input):not([class]){background:#fff;border:1px dashed var(--form-border-strong);border-radius:9px;font-size:14px;min-height:48px;padding:8px;width:100%}.content form input[type="file"]:not(.file-upload__input):not([class])::file-selector-button{background:#fff;border:1px solid var(--form-border);border-radius:7px;color:var(--form-accent);cursor:pointer;font-weight:800;margin-right:10px;min-height:36px;padding:7px 11px}
.content form[aria-busy="true"]{cursor:wait}
@media(max-width:767px){.kpw-page-header{flex-direction:column;gap:12px;margin-bottom:18px}.form-section,.status-card,.notice-card{border-radius:10px;padding:17px}.form-grid{grid-template-columns:1fr}.form-grid .form-group--full{grid-column:auto}.form-actions{align-items:stretch;flex-direction:column-reverse}.primary-button,.secondary-button,.danger-button,.content form button:not([class]){min-height:48px;width:100%}.file-upload__choose{min-height:48px;width:100%}.upload-status{align-items:flex-start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){.form-control,.select-control,.primary-button,.secondary-button,.danger-button,.file-upload{transition:none}}
