.kfe { box-sizing:border-box; --kfe-accent:#155e55; --kfe-border:#cddad5; color:inherit; font:inherit; width:100%; clear:both; text-align:left; margin:1.5rem 0; }
.kfe *, .kfe *::before, .kfe *::after { box-sizing:border-box; }
.kfe [hidden], .kfe-native-hidden { display:none!important; }
.kfe fieldset { min-width:0; padding:0; border:0; margin:0; }
.kfe .kfe-field { margin:0 0 1.5rem; }
.kfe legend, .kfe label { color:inherit; font:inherit; }
.kfe .kfe-field>legend { font-weight:650; font-size:1rem; margin:0 0 .65rem; padding:0; float:none; width:auto; }
.kfe .kfe-help, .kfe small { font-size:.85em; line-height:1.6; opacity:.82; margin:.25rem 0 .65rem; display:block; }
.kfe input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]), .kfe textarea, .kfe select { font:inherit; padding:.8rem; border:1px solid var(--kfe-border); background:#fff; color:#162332; border-radius:8px; width:100%; min-height:44px; margin:0 0 .4rem; }
.kfe input[type=file] { cursor:pointer; }
.kfe input[type=checkbox], .kfe input[type=radio] { flex:0 0 auto; width:18px; height:18px; accent-color:var(--kfe-accent); margin:0 .5rem 0 0; }
.kfe input[type=range] { display:block; width:100%; accent-color:var(--kfe-accent); min-height:36px; }
.kfe input[type=color] { width:80px; height:48px; border:1px solid var(--kfe-border); }
.kfe button { font:inherit; font-size:.85rem; background:#edf4f0; color:#174c44; border:1px solid var(--kfe-border); border-radius:7px; min-height:40px; padding:.55rem .85rem; cursor:pointer; margin:.35rem .35rem .35rem 0; white-space:normal; }
.kfe button:disabled { opacity:.55; cursor:wait; }
.kfe :focus-visible { outline:3px solid #238b82; outline-offset:3px; }
.kfe .kfe-choices { display:flex; flex-wrap:wrap; gap:.6rem; }
.kfe .kfe-choice { display:flex; gap:.4rem; align-items:center; border:1px solid var(--kfe-border); padding:.8rem; border-radius:9px; cursor:pointer; min-height:46px; max-width:100%; flex-wrap:wrap; }
.kfe .kfe-choice:has(input:checked) { background:#eaf6ef; border-color:var(--kfe-accent); color:#173b32; }
.kfe .kfe-choice img { width:90px; height:64px; object-fit:cover; border-radius:5px; }
.kfe .kfe-files { list-style:none; padding:0; margin:.5rem 0; }
.kfe .kfe-file { display:flex; align-items:flex-start; gap:.8rem; padding:.8rem 0; border-bottom:1px solid var(--kfe-border); overflow-wrap:anywhere; }
.kfe .kfe-file img { width:64px; height:64px; object-fit:cover; border-radius:6px; }
.kfe .kfe-file>div { min-width:0; flex:1; }
.kfe .kfe-file strong, .kfe .kfe-file span { display:block; font-size:.85rem; }
.kfe progress { width:100%; height:8px; accent-color:var(--kfe-accent); }
.kfe .kfe-signature { display:block; width:100%; height:auto; aspect-ratio:10/3; border:1px dashed var(--kfe-border); background:#fff; touch-action:none; border-radius:8px; margin:.5rem 0; }
.kfe .kfe-entry, .kfe .kfe-matrix-row { border:1px solid var(--kfe-border); border-radius:10px; padding:1rem; margin:1rem 0; }
.kfe .kfe-entry>legend, .kfe .kfe-matrix-row>legend { font-size:.9rem; width:auto; padding:0 .4rem; font-weight:600; }
.kfe .kfe-entry>label { display:block; margin:.6rem 0 .3rem; }
.kfe .kfe-inline { display:inline-flex; align-items:center; min-height:44px; padding-right:1rem; }
.kfe .kfe-error, .kfe.kfe-setup-error { color:#8c241c; background:#fff1ec; border:1px solid #e8b9ab; padding:1rem; border-radius:8px; white-space:pre-wrap; overflow-wrap:anywhere; }
.kfe .kfe-status { font-size:.9rem; margin:.7rem 0; }
.kfe h3 { font:inherit; font-size:1.3em; font-weight:650; }
.kfe .kfe-sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media(max-width:480px) { .kfe .kfe-choice { padding:.65rem; } .kfe .kfe-entry,.kfe .kfe-matrix-row { padding:.7rem; } }

.kfe-native-section{background:var(--kfe-background,#f7f8fa);color:var(--kfe-text,#172b36);padding:48px 20px;font:inherit}
.kfe-native-section *{box-sizing:border-box}
.kfe-native-card{max-width:var(--kfe-width,720px);margin:auto;padding:32px;background:var(--kfe-card,#fff);border:1px solid #e0e5e8;border-radius:16px}
.kfe-native-card h2{color:inherit;margin:0 0 12px;font-size:clamp(26px,4vw,36px)}
.kfe-native-card .kfe-intro{margin:0 0 24px}
.kfe-native-card .form-group{margin:0 0 20px}
.kfe-native-card .form-group label{display:block;font-weight:600;margin-bottom:8px}
.kfe-native-card .form-control{width:100%;font:inherit;padding:12px;border:1px solid #cddad5;border-radius:8px;background:#fff;color:#172b36}
.kfe-native-card .kfe{--kfe-accent:inherit;margin:24px 0}
.kfe-native-card [data-kfe-preview-report]{padding:16px;background:#f5f8f6;border-radius:8px}
.kfe-native-card [data-kfe-preview-report] pre{white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.6 monospace;margin:12px 0}
.kfe-native-submit{display:block;width:100%;padding:14px 20px;border:0;border-radius:8px;background:var(--kfe-accent,#155e55);color:var(--kfe-button-text,#fff);font:inherit;font-weight:600;cursor:pointer}
.kfe-native-submit:disabled{opacity:.55;cursor:wait}
.kfe-native-section [hidden]{display:none!important}
.kfe-step-nav{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:24px 0 16px}
.kfe-step-progress{width:100%;font-size:14px;margin:0 0 6px}
.kfe-step-nav button{font:inherit;border:1px solid #cddad5;border-radius:8px;padding:12px 24px;background:#fff;color:var(--kfe-text);cursor:pointer}
.kfe-step-nav button:last-child{margin-left:auto;background:var(--kfe-accent);color:var(--kfe-button-text);border-color:var(--kfe-accent)}
.kfe-editor-panel{margin:16px 0;padding:16px;border:1px dashed #719785;border-radius:8px;background:#f3f8f5;font-size:14px;line-height:1.5}
.kfe-editor-panel p{font-size:inherit;margin:8px 0}
.kfe-editor-panel button{font:inherit;padding:8px 12px}
.kfe-upload-dialog{width:min(760px,96vw);max-height:94vh;padding:20px;border:1px solid #cddad5;border-radius:14px;background:#fff;color:#172b36}
.kfe-upload-dialog::backdrop{background:#0008}
.kfe-upload-dialog iframe{display:block;width:100%;height:min(610px,70vh);border:0}
.kfe-native-section [data-kfe-public-status][role=alert],.kfe-editor-panel [role=alert]{color:#8c241c;padding:12px 0;white-space:pre-wrap}
@media(max-width:480px){.kfe-native-section{padding:24px 12px}.kfe-native-card{padding:20px 16px;border-radius:12px}}
