/* Kraynak Reunion: helpers portal shell */
html { -webkit-text-size-adjust: 100%; }
body.kfrp { margin: 0; background: #e4e6df; color: #231b16; font-family: "Atkinson Hyperlegible", system-ui, sans-serif; font-size: 17px; }
.kfrp-top {
	display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .5rem 1.5rem;
	padding: .6rem clamp(1rem, 4vw, 2.5rem);
	background: #3f2215; color: #f4ecdf;
}
.kfrp-brand { display: flex; align-items: center; gap: .75rem; color: #f4ecdf; text-decoration: none; font-family: "Young Serif", Georgia, serif; font-size: 1.3rem; }
.kfrp-brand img { width: 40px; height: auto; display: block; }
.kfrp-user { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem 1.1rem; font-size: .95rem; }
.kfrp-user a { color: #f0d9a2; }
.kfrp-user a:focus-visible, .kfrp-brand:focus-visible, .kfrp-tabs a:focus-visible { outline: 3px solid #d6a032; outline-offset: 2px; }

.kfrp-tabs { display: flex; gap: .25rem; padding: 0 clamp(1rem, 4vw, 2.5rem); background: #6b3a22; overflow-x: auto; }
.kfrp-tabs a { color: #f4ecdf; text-decoration: none; padding: .85rem 1.1rem; font-weight: 700; white-space: nowrap; border-bottom: 4px solid transparent; }
.kfrp-tabs a[aria-current="page"] { border-bottom-color: #d6a032; }
.kfrp-tabs a:hover { background: rgba(0,0,0,.12); }

.kfrp-main { max-width: 1180px; margin: 0 auto; padding: 1.75rem clamp(1rem, 4vw, 2.5rem) 4rem; }

.kfrp-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1rem; margin-top: 1rem; }
.kfrp-card { display: flex; flex-direction: column; gap: .4rem; background: #fbfaf5; border: 1px solid #c4c9be; border-top: 6px solid #6b3a22; border-radius: 10px; padding: 1.25rem 1.35rem; text-decoration: none; color: #231b16; }
.kfrp-card:hover { border-top-color: #a3231b; }
.kfrp-card:focus-visible { outline: 3px solid #d6a032; outline-offset: 2px; }
.kfrp-card__title { font-family: "Young Serif", Georgia, serif; font-size: 1.45rem; }
.kfrp-card__blurb { color: #5e5147; }

.kfrp-login { max-width: 420px; margin: 0 auto; padding: 3rem 1.25rem; text-align: center; }
.kfrp-login__logo img { width: 120px; height: auto; filter: drop-shadow(0 6px 14px rgba(63,34,21,.3)); }
.kfrp-login__title { font-family: "Young Serif", Georgia, serif; font-weight: 400; font-size: 2rem; margin: 1rem 0 .25rem; }
.kfrp-login__sub { color: #5e5147; margin: 0 0 1.5rem; }
.kfrp-login__form { text-align: left; background: #fbfaf5; border: 1px solid #c4c9be; border-radius: 12px; padding: 1.5rem; }
.kfrp-login__form .kfrm-field > span { font-weight: 700; }
.kfrp-login__form input[type="text"], .kfrp-login__form input[type="password"] { font: inherit; font-size: 1.1rem; border: 2px solid #c4c9be; border-radius: 8px; padding: .65rem .8rem; min-height: 50px; width: 100%; box-sizing: border-box; }
.kfrp-login__form input:focus { outline: 3px solid #d6a032; outline-offset: 1px; border-color: #6b3a22; }
.kfrp-login__help { color: #5e5147; font-size: .95rem; margin-top: 1.25rem; }
.kfrp-login__help a { color: #6b3a22; font-weight: 700; }
.kfrp-login .kfrm-flash { text-align: left; }
.kfrp-login, .kfrp-login * { box-sizing: border-box; }
.kfrp-login .kfrm-field { display: flex; flex-direction: column; gap: .3rem; margin: 0 0 1rem; }
.kfrp-login .kfrm-check { display: flex; gap: .5rem; align-items: center; margin: 0 0 1.25rem; }
.kfrp-login .kfrm-btn { display: inline-flex; justify-content: center; align-items: center; font: inherit; font-weight: 700; font-size: 1.1rem; min-height: 52px; border-radius: 8px; border: 0; background: #a3231b; color: #fff; cursor: pointer; width: 100%; }
.kfrp-login .kfrm-btn:hover { background: #7e1812; }
.kfrp-login .kfrm-flash { background: #f8e9e6; border-left: 5px solid #a3231b; padding: .8rem 1rem; border-radius: 0 8px 8px 0; font-weight: 700; }
