.kt-app {
	--kt-green: #315c48;
	--kt-green-dark: #204132;
	--kt-cream: #f7f3e8;
	--kt-gold: #c99b45;
	--kt-text: #202720;
	--kt-border: #c9d1cb;
	max-width: 920px;
	margin: 2rem auto;
	color: var(--kt-text);
	font-size: 18px;
	line-height: 1.55;
}

.kt-app *, .kt-public-grid * { box-sizing: border-box; }
.kt-app__header { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding-bottom:1rem; border-bottom:3px solid var(--kt-gold); }
.kt-app__header h2, .kt-form-wrap h2 { margin:.15rem 0; font-size:clamp(1.7rem, 4vw, 2.25rem); }
.kt-eyebrow { margin:0; color:var(--kt-green); font-weight:700; text-transform:uppercase; letter-spacing:.04em; font-size:.85rem; }
.kt-logout, .kt-back, .kt-text-link { color:var(--kt-green-dark); font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.kt-lead { font-size:1.12em; }
.kt-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin:1.5rem 0; }
.kt-card { display:flex; flex-direction:column; min-height:185px; padding:24px; border:2px solid var(--kt-border); border-radius:14px; background:#fff; color:var(--kt-text); text-decoration:none!important; box-shadow:0 3px 10px rgba(0,0,0,.05); transition:.15s ease; }
.kt-card:hover, .kt-card:focus-visible { border-color:var(--kt-green); transform:translateY(-2px); box-shadow:0 7px 18px rgba(0,0,0,.1); }
.kt-card .dashicons { width:42px; height:42px; font-size:42px; color:var(--kt-green); margin-bottom:17px; }
.kt-card__title { display:block; font-size:1.25em; line-height:1.25; font-weight:800; margin-bottom:8px; }
.kt-card__text { display:block; color:#475149; }
.kt-help, .kt-empty { margin:1.5rem 0; padding:18px 20px; border-left:5px solid var(--kt-gold); background:var(--kt-cream); }
.kt-public-actions { max-width:560px; }
.kt-application-info { margin:1.25rem 0; padding:18px 20px; border-left:5px solid var(--kt-gold); background:var(--kt-cream); }
.kt-application-info p:first-child { margin-top:0; }
.kt-application-info p:last-child { margin-bottom:0; }
.kt-application-info a { color:var(--kt-green-dark); font-weight:800; text-decoration:underline; text-underline-offset:3px; }
.kt-honeypot { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.kt-form-wrap { margin-top:1.25rem; }
.kt-form { margin-top:1.5rem; }
.kt-field { margin:0 0 22px; }
.kt-field label { display:block; margin-bottom:7px; font-weight:800; }
.kt-field input[type="text"], .kt-field input[type="email"], .kt-field input[type="tel"], .kt-field input[type="url"], .kt-field input[type="date"], .kt-field input[type="datetime-local"], .kt-field input[type="file"], .kt-field textarea, .kt-field select { width:100%; min-height:52px; padding:11px 13px; border:2px solid #7a867d; border-radius:8px; background:#fff; color:var(--kt-text); font:inherit; }
.kt-field textarea { min-height:150px; resize:vertical; }
.kt-field input:focus, .kt-field textarea:focus, .kt-field select:focus { outline:3px solid rgba(201,155,69,.5); outline-offset:2px; border-color:var(--kt-green-dark); }
.kt-field__help { margin:6px 0 0; color:#556158; font-size:.92em; }
.kt-two-columns { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.kt-check { margin:14px 0; padding:14px 16px; border:1px solid var(--kt-border); border-radius:8px; background:#fafafa; }
.kt-check label { display:flex; align-items:flex-start; gap:12px; font-weight:700; cursor:pointer; }
.kt-check input { width:24px; height:24px; margin-top:2px; flex:0 0 auto; accent-color:var(--kt-green); }
.kt-form__actions { display:flex; flex-wrap:wrap; align-items:center; gap:18px; margin-top:30px; }
.kt-submit { min-height:54px; padding:12px 25px; border:0; border-radius:8px; background:var(--kt-green); color:#fff; font:inherit; font-weight:800; cursor:pointer; }
.kt-submit:hover, .kt-submit:focus-visible { background:var(--kt-green-dark); }
.kt-cancel { color:var(--kt-text); font-weight:700; }
.kt-notice { margin:1rem 0; padding:14px 18px; border-radius:8px; font-weight:700; }
.kt-notice p { margin:0; }
.kt-notice--success { background:#e3f3e8; border-left:5px solid #237a3b; }
.kt-notice--error, .kt-notice--warning { background:#fff0ed; border-left:5px solid #b53b26; }
.kt-submission-list { display:grid; gap:10px; }
.kt-submission { display:flex; justify-content:space-between; align-items:center; gap:15px; padding:18px; border:1px solid var(--kt-border); border-radius:8px; }
.kt-status { display:inline-block; padding:6px 10px; border-radius:999px; font-size:.85em; font-weight:800; white-space:nowrap; }
.kt-status--pending { background:#fff1c9; color:#654700; }
.kt-status--approved { background:#dff2e4; color:#1e6731; }
.kt-status--rejected { background:#f7dddd; color:#842828; }
.kt-login { max-width:560px; padding:26px; border:1px solid var(--kt-border); border-radius:14px; background:#fff; }
.kt-login label { display:block; font-weight:800; margin-bottom:6px; }
.kt-login input[type="text"], .kt-login input[type="password"] { width:100%; min-height:50px; padding:10px 12px; font:inherit; border:2px solid #7a867d; border-radius:8px; }
.kt-login input[type="submit"] { min-height:52px; padding:10px 24px; border:0; border-radius:8px; background:var(--kt-green); color:#fff; font:inherit; font-weight:800; cursor:pointer; }
.kt-public-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.kt-public-card { overflow:hidden; border:1px solid #d5d9d6; border-radius:10px; background:#fff; box-shadow:0 3px 12px rgba(0,0,0,.06); }
.kt-public-card img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
.kt-public-card__body { padding:18px; }
.kt-public-card__body h3 { margin:.3rem 0 .7rem; font-size:1.25rem; }
.kt-event-date { margin:0; color:#315c48; font-weight:800; }
.kt-event-place { margin-bottom:.55rem; }
.kt-map-link { color:#315c48; font-weight:800; text-decoration:underline; text-underline-offset:3px; }

@media (max-width: 700px) {
	.kt-app { font-size:17px; }
	.kt-card-grid, .kt-two-columns, .kt-public-grid { grid-template-columns:1fr; }
	.kt-card { min-height:0; }
	.kt-app__header, .kt-submission { align-items:flex-start; flex-direction:column; }
}

@media (prefers-reduced-motion: reduce) {
	.kt-card { transition:none; }
}
