.hanweb-char-map{--cm-text:#1d1d1f;--cm-text-secondary:#6e6e73;--cm-text-tertiary:#86868b;--cm-line:#e5e5ea;--cm-fill:#ffffff;--cm-fill-strong:#ffffff;--cm-hover:rgba(0,0,0,0.05);--cm-selected:#007aff;--cm-selected-soft:rgba(0,122,255,0.12);--cm-accent:#007aff;--cm-shadow:0 0 0 0.5px rgba(0,0,0,0.08),0 1px 1px rgba(0,0,0,0.04),0 18px 50px rgba(15,23,42,0.18);position:absolute;display:flex;width:min(760px,calc(100vw - 24px));max-height:min(620px,calc(100vh - 24px));flex-direction:column;overflow:hidden;border:1px solid #d2d2d7!important;border-radius:18px;background:#ffffff!important;box-shadow:var(--cm-shadow);color:var(--cm-text)!important}.hanweb-char-map__title{display:flex;flex-shrink:0;align-items:center;gap:10px;height:44px;padding:0 10px 0 14px;cursor:grab;user-select:none;border-bottom:1px solid var(--cm-line)}.hanweb-char-map__title:active{cursor:grabbing}.hanweb-char-map__grip{display:flex;width:14px;flex-direction:column;gap:2.5px;opacity:.38}.hanweb-char-map__grip span{display:block;height:2px;border-radius:99px;background:currentColor}.hanweb-char-map__heading{margin:0;flex:1;min-width:0;font-size:13px;font-weight:620;letter-spacing:-.02em;color:var(--cm-text)}.hanweb-char-map__title-actions{display:flex;align-items:center;gap:6px}.hanweb-char-map__btn{height:28px;padding:0 12px;border:0;border-radius:999px;background:var(--cm-fill-strong);box-shadow:0 0 0 .5px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.04);color:var(--cm-text);font-size:12px;font-weight:560;letter-spacing:-.01em;cursor:pointer}.hanweb-char-map__btn:hover{background:#fff!important}.hanweb-char-map__btn--primary{background:var(--cm-accent)!important;box-shadow:0 1px 3px rgba(0,122,255,.35);color:#fff!important}.hanweb-char-map__btn--primary:hover{background:#0066d6!important}.hanweb-char-map__close{display:flex;width:28px;height:28px;align-items:center;justify-content:center;border:0;border-radius:999px;background:var(--cm-fill-strong);box-shadow:0 0 0 .5px rgba(0,0,0,.08);color:var(--cm-text-secondary);cursor:pointer}.hanweb-char-map__close:hover{background:rgba(255,59,48,.12)!important;color:#ff3b30!important}.hanweb-char-map__tabs{display:flex;flex-shrink:0;gap:3px;margin:10px 12px 0;padding:3px;border-radius:11px;background:rgba(0,0,0,.045)}.hanweb-char-map__tab{flex:1;height:28px;border:0;border-radius:8px;background:transparent;color:var(--cm-text-secondary);font-size:12px;font-weight:520;letter-spacing:-.015em;cursor:pointer}.hanweb-char-map__tab:hover{background:#ffffff!important;color:var(--cm-text)}.hanweb-char-map__tab.is-active{background:#ffffff!important;box-shadow:0 1px 3px rgba(0,0,0,.08),0 0 0 .5px rgba(0,0,0,.04);color:var(--cm-text)!important;font-weight:620}.hanweb-char-map__body{display:flex;min-height:0;flex:1;margin:10px 12px 0;overflow:hidden;border:1px solid var(--cm-line);border-radius:14px;background:var(--cm-fill)}.hanweb-char-map__aside{display:flex;width:168px;flex-shrink:0;flex-direction:column;border-right:1px solid var(--cm-line)}.hanweb-char-map__aside-label,.hanweb-char-map__grid-label{margin:0;padding:9px 12px 6px;color:var(--cm-text-tertiary);font-size:11px;font-weight:600;letter-spacing:-.01em}.hanweb-char-map__blocks{min-height:240px;flex:1;overflow-y:auto;padding:0 6px 8px}.hanweb-char-map__block{display:block;width:100%;overflow:hidden;padding:6px 10px;border:0;border-radius:8px;background:transparent;color:var(--cm-text);font-size:12.5px;letter-spacing:-.015em;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.hanweb-char-map__block:hover{background:var(--cm-hover)!important}.hanweb-char-map__block.is-active{background:var(--cm-selected)!important;color:#fff!important}.hanweb-char-map__main{display:flex;min-width:0;flex:1;flex-direction:column}.hanweb-char-map__toolbar{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;gap:10px;padding:4px 10px 0}.hanweb-char-map__toolbar-right{display:flex;align-items:center;gap:12px}.hanweb-char-map__hex,.hanweb-char-map__toolbar-right .hanweb-char-map__check{font-size:11px;color:var(--cm-text-tertiary)}.hanweb-char-map__hex{display:flex;align-items:center;gap:6px}.hanweb-char-map__hex input,.hanweb-char-map__input{height:28px;border:0;border-radius:8px;background:var(--cm-fill-strong)!important;box-shadow:inset 0 0 0 .5px rgba(0,0,0,.08);color:var(--cm-text)!important;outline:none}.hanweb-char-map__hex input{width:76px;padding:0 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;text-transform:uppercase}.hanweb-char-map__hex input:focus,.hanweb-char-map__input:focus{box-shadow:inset 0 0 0 1.5px var(--cm-accent)}.hanweb-char-map__grid-wrap{min-height:220px;flex:1;overflow-y:auto;padding:8px}.hanweb-char-map__empty{padding:36px 12px;color:var(--cm-text-tertiary);font-size:13px;text-align:center}.hanweb-char-map__grid{display:grid;grid-template-columns:repeat(16,minmax(0,1fr));gap:3px}.hanweb-char-map__cell{display:flex;height:32px;align-items:center;justify-content:center;border:0;border-radius:8px;background:transparent;color:var(--cm-text);font-size:17px;line-height:1;cursor:pointer}.hanweb-char-map__cell:hover{background:var(--cm-selected-soft)!important}.hanweb-char-map__cell.is-selected{background:var(--cm-selected)!important;color:#fff!important}.hanweb-char-map__cell.is-enlarged{font-size:22px}.hanweb-char-map__pager{display:flex;flex-shrink:0;align-items:center;justify-content:center;gap:8px;padding:4px 0 8px;color:var(--cm-text-secondary);font-size:11px}.hanweb-char-map__pager button{height:24px;padding:0 10px;border:0;border-radius:999px;background:var(--cm-fill-strong);box-shadow:0 0 0 .5px rgba(0,0,0,.08);color:var(--cm-text);cursor:pointer}.hanweb-char-map__pager button:hover:not(:disabled){background:#fff!important}.hanweb-char-map__pager button:disabled{cursor:default;opacity:.35}.hanweb-char-map__recent{flex-shrink:0;padding:0 10px 10px}.hanweb-char-map__recent-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:0 0 6px}.hanweb-char-map__recent p{margin:0;color:var(--cm-text-tertiary);font-size:11px;font-weight:600}.hanweb-char-map__hint{color:var(--cm-text-tertiary);font-size:11px;letter-spacing:-.01em}.hanweb-char-map__recent-row{display:flex;min-height:28px;flex-wrap:wrap;gap:4px}.hanweb-char-map__recent-empty{color:var(--cm-text-tertiary);font-size:12px}.hanweb-char-map__chip{display:flex;width:28px;height:28px;align-items:center;justify-content:center;border:0;border-radius:8px;background:var(--cm-fill-strong);box-shadow:0 0 0 .5px rgba(0,0,0,.07);color:var(--cm-text);font-size:14px;cursor:pointer}.hanweb-char-map__chip:hover{background:var(--cm-selected-soft)!important;box-shadow:0 0 0 .5px var(--cm-accent)}.hanweb-char-map__footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;padding:10px 12px 12px;border-top:1px solid var(--cm-line)}.hanweb-char-map__footer-actions{display:flex;flex-shrink:0;align-items:center;gap:6px;margin-left:auto;padding-left:8px}.hanweb-char-map__btn--ghost{background:transparent!important;box-shadow:none;color:var(--cm-text-secondary)}.hanweb-char-map__btn--ghost:hover{background:var(--cm-hover)!important;color:var(--cm-text)}.hanweb-char-map__field{display:flex;min-width:0;flex:1;align-items:center;gap:8px;color:var(--cm-text-secondary);font-size:12px}.hanweb-char-map__input{min-width:0;flex:1;padding:0 10px;font-size:15px}.hanweb-char-map__input::placeholder{color:var(--cm-text-tertiary);font-size:12px}.hanweb-char-map__check{display:flex;align-items:center;gap:6px;color:var(--cm-text-secondary);font-size:12px;cursor:pointer}.hanweb-char-map__check input{accent-color:var(--cm-accent)}.hanweb-dark .hanweb-char-map,.hanweb-dark .hanweb-char-map[role=dialog]{--cm-text:#f5f5f7;--cm-text-secondary:#a1a1a6;--cm-text-tertiary:#8e8e93;--cm-line:#3a3a3c;--cm-fill:#2c2c2e;--cm-fill-strong:#3a3a3c;--cm-hover:rgba(255,255,255,0.08);--cm-selected:#0a84ff;--cm-selected-soft:rgba(10,132,255,0.22);--cm-accent:#0a84ff;--cm-shadow:0 0 0 0.5px rgba(255,255,255,0.08),0 18px 50px rgba(0,0,0,0.45);border-color:#3a3a3c!important;background:#1c1c1e!important;box-shadow:var(--cm-shadow);color:var(--cm-text)!important}.hanweb-dark .hanweb-char-map__tab:hover{background:#3a3a3c!important}.hanweb-dark .hanweb-char-map__tab.is-active{background:#48484a!important;color:var(--cm-text)!important}.hanweb-dark .hanweb-char-map__btn:hover,.hanweb-dark .hanweb-char-map__pager button:hover:not(:disabled){background:#48484a!important}.hanweb-dark .hanweb-char-map input,.hanweb-dark .hanweb-char-map__hex input,.hanweb-dark .hanweb-char-map__input{background:#1c1c1e!important;color:var(--cm-text)!important;border-color:transparent!important}