.hanja-picker{box-sizing:border-box;width:min(94vw,640px);max-width:640px;max-height:85dvh;overflow-y:auto;padding:22px;border:1px solid #dcd3ed;border-radius:22px;color:#30283e;background:#fff;box-shadow:0 18px 80px #39206440}.hanja-picker::backdrop{background:#24153c80}.hanja-picker-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.hanja-picker h2{font-family:inherit;font-size:1.2rem;margin:0}.hanja-picker button{cursor:pointer}.hanja-picker-search{display:flex;gap:8px}.hanja-picker-search input{min-width:0;flex:1}.hanja-picker-search button{flex-shrink:0}.hanja-picker-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.hanja-picker-item{display:flex;flex-direction:column;align-items:center;gap:6px;min-height:100px;padding:10px 7px;border:1px solid #ddd4ec;border-radius:12px;background:#faf8ff;color:#30283e;overflow-wrap:anywhere}.hanja-picker-item:hover,.hanja-picker-item[aria-pressed="true"]{border-color:#6d45d8;background:#eee7fc}.hanja-picker button:focus-visible,.hanja-picker input:focus-visible,.hanja-picker select:focus-visible{outline:3px solid #6d45d8;outline-offset:2px}.hanja-picker-char{font-size:2rem;line-height:1.3}.hanja-picker-meaning{font-size:.85rem;line-height:1.5}.hanja-picker-choice{position:sticky;bottom:-22px;background:#fff;padding:16px 0 22px;border-top:1px solid #ddd4ec;margin-top:12px}.hanja-picker-choice[hidden]{display:none}.hanja-picker-choice p{margin:0 0 8px}.hanja-picker-choice select,.hanja-picker-choice button{width:100%;margin-bottom:8px}.hanja-picker-open{margin:8px 0 0;font-size:.9rem;min-height:44px}.hanja-picker label{display:block;margin:12px 0 6px}.hanja-picker .hint{font-size:.9rem;line-height:1.6}.hanja-picker input,.hanja-picker select{font-size:16px;min-height:44px}.hanja-picker .quiet{min-height:44px}@media(max-width:380px){.hanja-picker{padding:16px}.hanja-picker-list{grid-template-columns:repeat(2,minmax(0,1fr))}.hanja-picker-choice{bottom:-16px;padding-bottom:16px}}@media(prefers-reduced-motion:reduce){.hanja-picker *{scroll-behavior:auto}}
.hanja-picker-header{position:sticky;top:-22px;z-index:2;background:#fff;padding:8px 0}@media(max-width:380px){.hanja-picker-header{top:-16px}}

.surname-inline-picker{margin-top:10px;padding:12px;border:1px solid #d9c9ed;border-radius:12px;background:#fff;min-width:0}.surname-inline-picker[hidden]{display:none!important}.surname-inline-picker>p:first-child{margin-top:0;font-weight:700}.surname-inline-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:320px;overflow-y:auto;overscroll-behavior:contain}.surname-inline-item{display:flex;flex-direction:column;align-items:center;gap:5px;min-width:0;min-height:70px;padding:10px 5px;border:1px solid #ddd4ec;border-radius:9px;background:#faf8ff;color:#30283e;cursor:pointer;overflow-wrap:anywhere}.surname-inline-item strong{font-size:28px;line-height:1.3}.surname-inline-item span{font-size:12px;line-height:1.5}.surname-inline-item:focus-visible{outline:3px solid #6d45d8;outline-offset:1px}.surname-inline-selected{overflow-wrap:anywhere}.surname-inline-picker>.quiet{margin-top:10px;min-height:44px}

.surname-inline-selected{margin:12px 0 8px;padding:12px;border:1px dashed #bfb3ce;border-radius:12px;background:#fff;color:#51465d;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}.surname-inline-selected[data-state="complete"]{border:2px solid #7044b3;background:#f0e7ff;color:#422465}.surname-inline-selected[data-state="partial"]{border:2px solid #ae7b18;background:#fff7e3}.surname-selection-badge{font-size:13px;font-weight:700;line-height:1.5}.surname-selection-hanja{display:block;font-family:serif;font-size:46px;line-height:1.25;letter-spacing:2px;color:#342046}.surname-selection-reading{font-size:16px;font-weight:700}.surname-selection-instruction{font-size:12px;line-height:1.6}.surname-inline-item[aria-pressed="true"]{border:2px solid #7044b3;background:#eee4ff}.surname-inline-item[aria-pressed="true"]::after{content:"✓ 현재 선택";font-size:11px;font-weight:700;color:#55327b}

.surname-selection-live{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
