.koe-wrap{max-width:960px;margin:0 auto;padding:24px 0}.koe-card{background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:24px}.koe-header{margin-bottom:18px}.koe-title{margin:0 0 6px;font-size:30px;line-height:1.15}.koe-subtitle{margin:0;color:#475569}.koe-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.koe-grid-top{margin-bottom:8px}.koe-field{display:flex;flex-direction:column;gap:6px}.koe-field label{font-weight:600}.koe-field input,.koe-field select{padding:12px;border:1px solid #cbd5e1;border-radius:10px;font-size:16px;background:#fff}.koe-button{background:#111827;color:#fff;border:0;border-radius:10px;padding:12px 18px;font-size:16px;font-weight:600;cursor:pointer}.koe-preview-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:16px;margin:18px 0}.koe-preview-card{padding:14px;border:1px solid #e5e7eb;border-radius:14px;background:#f8fafc}.koe-map{margin-top:10px;border-radius:12px;overflow:hidden}.koe-meta{margin-top:10px;color:#475569}.koe-selection-panel{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.koe-selection-item{padding:12px;border:1px solid #e5e7eb;border-radius:12px;background:#f8fafc}.koe-selection-item span{display:block;font-size:13px;color:#64748b}.koe-selection-item strong{display:block;margin-top:4px}.koe-register-form{margin-top:22px;padding-top:18px;border-top:1px solid #e5e7eb}.koe-consent{display:flex;gap:10px;align-items:flex-start;margin:14px 0}.koe-consent input{margin-top:4px}.koe-help{font-size:14px;color:#64748b}.koe-errors{margin-bottom:16px;padding:12px 14px;border-radius:12px;background:#fef2f2;color:#991b1b}.koe-errors ul{margin:0;padding-left:18px}.koe-rep-inner{display:flex;gap:14px;align-items:center;margin-top:10px}.koe-rep-inner img{width:84px;height:84px;border-radius:999px;object-fit:cover;background:#fff;border:1px solid #cbd5e1}.koe-rep-name{font-weight:700;font-size:18px}.koe-rep-title{color:#475569;margin-top:4px}@media (max-width:768px){.koe-grid,.koe-preview-grid,.koe-selection-panel{grid-template-columns:1fr}}

.koe-success{margin:0 0 16px;padding:12px 14px;border-radius:12px;background:#ecfdf5;color:#166534;border:1px solid #bbf7d0;}
.koe-steps{margin:0 0 18px 18px;padding:0;}
.koe-steps li{margin:0 0 8px;}
.koe-errors strong{display:block;margin:0 0 8px;font-size:16px}
.koe-error-links{margin:10px 0 0;font-size:14px}
.koe-error-links a{text-decoration:none;font-weight:600}
.koe-error-links span{margin:0 8px;opacity:.6}
.koe-2fa-card{max-width:760px;margin:0 auto}
.koe-2fa-embed{margin-top:18px;padding:18px;border:1px solid #e5e7eb;border-radius:14px;background:#f8fafc}

.koe-role-switch{margin:18px 0 10px;padding:14px 16px;border:1px solid #dbe3ef;border-radius:14px;background:#f8fafc}
.koe-role-options{display:flex;gap:18px;flex-wrap:wrap;margin-top:10px}
.koe-role-options label{display:flex;align-items:center;gap:8px;font-weight:600;cursor:pointer}
.koe-representative-notice{margin:14px 0;padding:14px 16px;border-radius:14px;background:#fff7ed;border:1px solid #fdba74;color:#9a3412}
.koe-representative-notice a{font-weight:700}

[hidden]{display:none !important;}
.koe-wrap-wide{max-width:1280px;width:min(1280px,calc(100vw - 32px));}
.koe-register .koe-preview-grid{grid-template-columns:2fr 1fr;}
.koe-register .koe-preview-grid:not(:has(.koe-rep-card:not([hidden]))){grid-template-columns:1fr;}
.koe-register .koe-preview-card{width:100%;}
.koe-register .koe-map{width:100%;}

.koe-password-feedback{margin-top:6px;font-size:14px;font-weight:600;}
.koe-password-feedback.is-error{color:#b91c1c;}
.koe-password-feedback.is-ok{color:#166534;}


.koe-field-full{grid-column:1 / -1;}
.koe-birth-row{display:grid;grid-template-columns:120px 100px 100px;gap:12px;max-width:360px;}
.koe-birth-row input,.koe-birth-row select{width:100%;}
.koe-password-row{display:grid;grid-template-columns:minmax(320px,560px) minmax(280px,1fr);gap:12px 18px;align-items:center;max-width:980px;}
.koe-password-main{min-width:0;max-width:560px;}
.koe-password-input-wrap{display:flex;gap:8px;align-items:center;max-width:560px;}
.koe-password-input-wrap input{flex:1 1 auto;min-width:0;max-width:500px;}
.koe-password-toggle{flex:0 0 auto;background:transparent;color:#64748b;border:1px solid transparent;border-radius:999px;padding:6px 8px;font-size:14px;line-height:1;cursor:pointer;white-space:nowrap;min-width:auto;}
.koe-password-toggle:hover,.koe-password-toggle:focus{color:#111827;border-color:#e5e7eb;background:#fff;outline:none;}
.koe-password-toggle span{display:block;font-size:16px;line-height:1;}
.koe-password-feedback{margin-top:0;min-height:0;display:block;padding:0;background:transparent;border:0;font-size:14px;font-weight:600;white-space:nowrap;min-width:280px;}
@media (max-width:768px){
  .koe-register .koe-preview-grid{grid-template-columns:1fr;}
  .koe-birth-row{grid-template-columns:1fr 1fr 1fr;max-width:100%;}
  .koe-password-row{grid-template-columns:1fr;max-width:100%;align-items:start;}
  .koe-password-input-wrap{max-width:100%;}
  .koe-password-input-wrap input{max-width:none;}
}

.koe-register-map-help{margin:0 0 16px;padding:14px 16px;border:1px solid #dbe3ef;border-radius:14px;background:#f8fafc;color:#334155;}
.koe-register-map-help strong{display:block;margin-bottom:6px;}
.koe-register-map-help p{margin:0;}

.koe-2fa-inline-actions{margin-top:18px;padding:16px;border:1px solid #e5e7eb;border-radius:14px;background:#fff}
.koe-2fa-inline-actions .koe-help{margin-bottom:10px}
