/* KR Joshi Core — base form styles. Theme-neutral, overridable via CSS variables. */
.krj-form{--krj-accent:var(--krj-color-accent,#00997A);--krj-ink:var(--krj-color-ink,#0F172A);--krj-muted:var(--krj-color-muted,#5B6B7B);--krj-line:var(--krj-color-line,#CBD5E1);--krj-bg:var(--krj-color-surface,#fff);--krj-accent-text:var(--krj-color-accent-text,#00806A);--krj-error:#B91C1C;--krj-ok:#15803D;--krj-radius:10px;display:block;max-width:100%;font:inherit;color:var(--krj-ink)}
.krj-form *,.krj-form *::before,.krj-form *::after{box-sizing:border-box}
.krj-form__heading{margin:0 0 16px}
.krj-form__body{display:grid;gap:16px}
.krj-form--grid .krj-form__body{grid-template-columns:repeat(2,minmax(0,1fr))}
.krj-form--grid .krj-field--wide{grid-column:1/-1}
@media (max-width:640px){.krj-form--grid .krj-form__body{grid-template-columns:1fr}}
.krj-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.krj-field__label{font-weight:600;font-size:14px;line-height:1.3}
.krj-req{color:var(--krj-accent-text,#00806A)}
.krj-form input[type=text],.krj-form input[type=email],.krj-form input[type=tel],.krj-form input[type=url],.krj-form input[type=date],.krj-form select,.krj-form textarea{width:100%;font:inherit;font-size:16px;color:var(--krj-ink);background:var(--krj-bg);border:1px solid var(--krj-line);border-radius:var(--krj-radius);padding:12px 14px;min-height:46px;transition:border-color .15s,box-shadow .15s}
.krj-form textarea{resize:vertical;min-height:130px}
.krj-form input:focus-visible,.krj-form select:focus-visible,.krj-form textarea:focus-visible{outline:none;border-color:var(--krj-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--krj-accent) 22%,transparent)}
.krj-field--error input,.krj-field--error textarea,.krj-field--error select{border-color:var(--krj-error)}
.krj-field__error{margin:0;font-size:13px;color:var(--krj-error);min-height:0}
.krj-field__error:empty{display:none}
.krj-choices{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}
.krj-choice{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--krj-line);border-radius:var(--krj-radius);cursor:pointer;font-size:14px;line-height:1.3;background:var(--krj-bg);transition:border-color .15s,background .15s}
.krj-choice:has(input:checked){border-color:var(--krj-accent);background:color-mix(in srgb,var(--krj-accent) 8%,var(--krj-bg))}
.krj-choice:has(input:focus-visible){box-shadow:0 0 0 3px color-mix(in srgb,var(--krj-accent) 22%,transparent)}
.krj-choice input{margin:0;width:16px;height:16px;accent-color:var(--krj-accent);flex:none}
.krj-form__hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.krj-form__actions{display:flex;flex-direction:column;gap:12px;margin-top:20px}
.krj-form__note{margin:0;font-size:13px;color:var(--krj-muted);max-width:60ch}
.krj-form__note a{color:inherit;text-decoration:underline}
.krj-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-weight:600;font-size:16px;line-height:1;padding:15px 26px;border-radius:999px;border:1px solid transparent;cursor:pointer;text-decoration:none;transition:transform .15s,background .15s,box-shadow .15s}
.krj-btn--primary{background:var(--krj-accent-text);color:#fff}
.krj-btn--primary:hover{filter:brightness(.95);transform:translateY(-1px)}
.krj-btn[disabled]{opacity:.6;cursor:progress}
.krj-btn:focus-visible{outline:3px solid color-mix(in srgb,var(--krj-accent) 40%,transparent);outline-offset:2px}
.krj-form__message{margin:0 0 16px;padding:14px 16px;border-radius:var(--krj-radius);border:1px solid var(--krj-line);font-size:15px;background:var(--krj-bg)}
.krj-form__message[hidden]{display:none}
.krj-form__message:empty{display:none}
.krj-form__message--success{border-color:var(--krj-ok);color:var(--krj-ok);background:color-mix(in srgb,var(--krj-ok) 8%,var(--krj-bg))}
.krj-form__message--error{border-color:var(--krj-error);color:var(--krj-error);background:color-mix(in srgb,var(--krj-error) 6%,var(--krj-bg))}
.krj-form--sent .krj-form__message--success{font-size:17px;padding:20px}
@media (prefers-reduced-motion:reduce){.krj-form *{transition:none!important}}
