/* Naming studio — paper, ink, vermilion. All styles scoped to this tool. */
.gm-nm{--nm-paper:#f7f5ef;--nm-card:#fffefa;--nm-ink:#292c29;--nm-muted:#6a7068;--nm-line:#dcded4;--nm-red:#a8422e;--nm-wash:#edece4;max-width:1320px;margin:0 auto;padding:40px 32px 90px;color:var(--nm-ink);font:15px/1.7 -apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif}
.gm-nm *{box-sizing:border-box}.gm-nm [hidden]{display:none!important}.gm-nm button,.gm-nm input,.gm-nm select{font:inherit}.gm-nm button{cursor:pointer}.gm-nm button:disabled{opacity:.5;cursor:wait}.gm-nm :focus-visible{outline:3px solid var(--nm-red);outline-offset:3px}.gm-nm h1,.gm-nm h2,.gm-nm h3,.gm-nm p{margin:0}.gm-nm button,.gm-nm input,.gm-nm select{border-radius:6px}.gm-nm a{color:var(--nm-red)}
.nm-hero{display:grid;grid-template-columns:1fr auto;gap:36px;align-items:center;padding:24px 0 44px;border-bottom:1px solid var(--nm-line)}.nm-eyebrow,.nm-step{display:block;font-size:10px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--nm-muted)}.nm-hero h1{font:500 clamp(38px,5vw,62px)/1.3 'Songti SC','STSong','Noto Serif CJK SC',serif;letter-spacing:.12em;margin:12px 0 18px}.nm-hero p{max-width:700px;font-size:15px;line-height:1.9;color:var(--nm-muted)}.nm-hero-art{display:flex;gap:14px;align-items:center;padding:10px 24px}.nm-hero-art>span{font:34px/1.7 'Songti SC',serif;writing-mode:vertical-rl;letter-spacing:.24em}.nm-hero-art>small{writing-mode:vertical-rl;letter-spacing:.22em;font-size:11px;color:var(--nm-muted)}.nm-hero-art>b{writing-mode:vertical-rl;color:var(--nm-red);border:1px solid currentColor;padding:8px 3px;font:16px/1.2 'Songti SC',serif;align-self:flex-end}
.nm-tabs{display:flex;gap:24px;border-bottom:1px solid var(--nm-line);margin-bottom:30px;overflow-x:auto}.nm-tabs button{background:none;border:0;color:var(--nm-muted);padding:18px 4px 15px;white-space:nowrap;border-radius:0;font-size:14px;border-bottom:2px solid transparent}.nm-tabs button[aria-current]{border-bottom-color:var(--nm-red);color:var(--nm-red);font-weight:600}.nm-tabs button:last-child{margin-left:auto}.nm-tabs span{font-size:11px;margin-left:4px}
.nm-workbench{display:grid;grid-template-columns:330px minmax(0,1fr);gap:36px;align-items:start}.nm-controls{border:1px solid var(--nm-line);background:var(--nm-card);border-radius:10px;overflow:hidden}.nm-section{padding:22px;border-bottom:1px solid var(--nm-line)}.nm-section h2{font-size:18px;line-height:1.5;font-weight:500;margin:6px 0 20px}.gm-nm label{display:block;font-size:12px;font-weight:500;margin-bottom:12px;color:var(--nm-ink)}.gm-nm label small,.gm-nm legend small{color:var(--nm-muted);font-size:10px;font-weight:400}.gm-nm input:not([type=checkbox]),.gm-nm select{width:100%;min-width:0;min-height:42px;padding:9px 10px;border:1px solid var(--nm-line);background:var(--nm-card);color:var(--nm-ink);font-size:13px;display:block;margin-top:5px}.gm-nm input::placeholder{color:var(--nm-muted);opacity:.75}.nm-inline{display:flex;align-items:center;gap:8px;margin-bottom:14px}.nm-inline input{margin:0!important}.nm-icon{white-space:nowrap;flex-shrink:0;background:var(--nm-wash);border:0;padding:10px 8px;font-size:11px!important;color:var(--nm-ink)}.nm-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.gm-nm details{margin-top:12px}.gm-nm summary{font-size:12px;cursor:pointer;color:var(--nm-muted);padding:6px 0}.gm-nm details[open]>summary{margin-bottom:10px}.nm-checkbox{display:flex!important;align-items:center;gap:8px;font-size:12px!important}.gm-nm input[type=checkbox]{accent-color:var(--nm-red)}.nm-help{font-size:11px;line-height:1.8;color:var(--nm-muted);font-weight:400}.nm-section .nm-help{margin:8px 0}.nm-elements{border:0;margin:0;padding:0;display:flex;gap:8px}.nm-elements legend{font-size:12px;margin-bottom:10px}.nm-elements label{flex:1;margin:0;position:relative}.nm-elements input{position:absolute;opacity:0}.nm-elements span{display:block;border:1px solid var(--nm-line);border-radius:5px;text-align:center;padding:8px}.nm-elements input:checked+span{background:var(--nm-red);border-color:var(--nm-red);color:#fff}.nm-elements input:focus-visible+span{outline:3px solid var(--nm-red);outline-offset:3px}.nm-submit{padding:20px 22px}.nm-primary{border:1px solid var(--nm-red);background:var(--nm-red);color:#fff;padding:12px 16px;font-size:13px!important;min-height:44px}.nm-submit .nm-primary{width:100%;display:flex;justify-content:space-between}.nm-error{font-size:12px;color:var(--nm-red);margin-top:10px!important}.nm-btn,.nm-text-btn{background:var(--nm-card);color:var(--nm-ink);border:1px solid var(--nm-line);padding:7px 12px;font-size:12px!important;min-height:36px}.nm-btn:hover{border-color:var(--nm-red);color:var(--nm-red)}.nm-text-btn{border:0;background:transparent}.nm-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.nm-output-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:3px 0 10px}.nm-output-head h2{font-size:25px;font-family:'Songti SC',serif;font-weight:500;margin-top:7px}.nm-output>.nm-help{margin-bottom:24px}.nm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.nm-card{background:var(--nm-card);border:1px solid var(--nm-line);padding:22px 20px 14px;border-radius:7px;display:flex;flex-direction:column;min-width:0;transition:border-color .16s}.nm-card:hover{border-color:var(--nm-muted)}.nm-card-top{display:flex;justify-content:space-between;gap:8px;color:var(--nm-muted);font-size:10px}.nm-source-tag{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.nm-card-top small{flex-shrink:0}.nm-name{padding:0;margin:16px 0 3px;background:none;border:0;text-align:left;font:500 32px/1.4 'Songti SC','STSong',serif!important;letter-spacing:.09em;color:var(--nm-ink);overflow-wrap:anywhere}.nm-name:hover{color:var(--nm-red)}.nm-pinyin{font-size:12px;letter-spacing:.06em;color:var(--nm-muted);line-height:1.6}.nm-character-line{display:flex;gap:6px;margin:15px 0 10px;flex-wrap:wrap}.nm-char-chip{padding:3px 7px;background:var(--nm-wash);color:var(--nm-muted);border:0;border-radius:3px!important;font-size:10px!important}.nm-meaning{font-size:12px;line-height:1.9;color:var(--nm-muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:18px!important;overflow-wrap:anywhere}.nm-card-foot{border-top:1px solid var(--nm-line);padding-top:10px;display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto}.nm-card-foot small{font-size:10px;color:var(--nm-muted)}.nm-save{border:0;background:none;color:var(--nm-red);font-size:11px!important;padding:4px}.nm-more{display:block;margin:24px auto}.nm-empty{grid-column:1/-1;min-height:480px;background:var(--nm-paper);border:1px solid var(--nm-line);border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px}.nm-seal{font:54px 'Songti SC',serif;border:1px solid var(--nm-red);color:var(--nm-red);padding:0 12px;transform:rotate(-4deg);margin-bottom:30px}.nm-empty h3{font:23px/1.7 'Songti SC',serif;margin-bottom:14px}.nm-empty p{font-size:13px;color:var(--nm-muted);line-height:2}.nm-empty-meta{display:flex;gap:22px;margin-top:35px;font-size:11px;color:var(--nm-muted)}
.nm-secondary{max-width:1000px;margin:36px auto;min-height:500px}.nm-secondary>h2{font:32px/1.5 'Songti SC',serif;margin:12px 0 26px}.nm-secondary>.nm-help{margin-bottom:20px}.nm-check{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}.nm-check .nm-primary{margin-bottom:12px}.nm-secondary .nm-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.nm-secondary #nm-check-result{max-width:420px;margin-top:24px}.nm-secondary .nm-card h3{font:26px/1.6 'Songti SC',serif}.nm-method{border-top:1px solid var(--nm-line);padding-top:28px;margin-top:50px;color:var(--nm-muted);font-size:12px}.nm-method summary{font-size:14px}.nm-method p{margin:12px 0}.nm-method a{margin-right:12px}.nm-pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-top:15px}.nm-pillars>div{background:var(--nm-wash);text-align:center;padding:8px 2px}.nm-pillars small,.nm-pillars span{display:block;font-size:10px;color:var(--nm-muted)}.nm-pillars strong{display:block;font:20px 'Songti SC',serif;margin:5px 0}.nm-bars>div{display:grid;grid-template-columns:20px 1fr 16px;align-items:center;gap:8px;font-size:11px}.nm-bar{display:block;background:var(--nm-wash);height:7px;border-radius:3px}.nm-bar:before{content:'';display:block;height:100%;width:var(--fill);background:var(--nm-red);border-radius:3px}.gm-nm h4{font-size:13px;font-weight:500;margin:18px 0 8px}
.nm-dialog{position:fixed;inset:0;margin:auto;padding:36px;max-width:min(720px,calc(100vw - 28px));width:720px;max-height:85dvh;overflow:auto;background:var(--nm-card);color:var(--nm-ink);border:1px solid var(--nm-line);border-radius:12px;box-shadow:0 24px 100px #0003;z-index:100000}.nm-dialog::backdrop{background:#1119;backdrop-filter:blur(3px)}.nm-dialog-close{position:sticky;top:0;float:right;background:var(--nm-wash);border:0;color:var(--nm-ink);width:34px;height:34px;font-size:24px!important}.nm-dialog h2{font:40px/1.4 'Songti SC',serif;margin-bottom:12px;letter-spacing:.08em}.nm-dialog h3{font-size:17px;font-weight:500;margin:26px 0 12px}.nm-dialog p{margin:10px 0;font-size:14px;line-height:1.9}.nm-dialog .nm-help{font-size:12px}.nm-detail-py{color:var(--nm-muted);font-size:15px!important}.nm-dialog blockquote{margin:15px 0;padding:12px 16px;border-left:2px solid var(--nm-red);background:var(--nm-paper);font:17px/1.9 'Songti SC',serif;white-space:pre-wrap}.nm-dialog .nm-btn{margin:10px 8px 0 0}.nm-dialog .nm-link{display:inline-block;margin:8px 16px 8px 0;font-size:12px}.nm-score-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--nm-line);padding:15px 8px;margin:24px 0}.nm-score-grid>div{text-align:center}.nm-score-grid strong{display:block;font-size:26px;font-weight:400}.nm-score-grid small{color:var(--nm-muted);font-size:11px}.nm-surname-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:15px 0}.nm-surname-grid button{padding:8px 3px;margin:0!important}.nm-detail-chars{display:flex;gap:4px;flex-wrap:wrap}.gm-nm #nm-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:90vw;background:var(--nm-ink);color:var(--nm-card);border-radius:6px;padding:10px 20px;font-size:13px;z-index:100001;pointer-events:none}.gm-nm #nm-toast:empty{display:none}
:root[data-theme=dark] .gm-nm{--nm-paper:#20241f;--nm-card:#282d27;--nm-ink:#e9eadd;--nm-muted:#acb3a5;--nm-line:#454d40;--nm-red:#e49172;--nm-wash:#343b30}:root[data-theme=dark] .gm-nm .nm-primary{color:#1b201a}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .gm-nm{--nm-paper:#20241f;--nm-card:#282d27;--nm-ink:#e9eadd;--nm-muted:#acb3a5;--nm-line:#454d40;--nm-red:#e49172;--nm-wash:#343b30}}
@media(max-width:1050px){.gm-nm{padding:25px 24px 60px}.nm-workbench{grid-template-columns:300px minmax(0,1fr);gap:24px}.nm-grid{grid-template-columns:1fr}.nm-hero-art{padding:0}.nm-hero-art>span{font-size:28px}.nm-card{padding:20px}.nm-empty-meta{gap:12px}}
@media(max-width:760px){.gm-nm{padding:20px 16px 60px}.nm-hero{padding:6px 0 24px;gap:14px}.nm-hero h1{font-size:38px}.nm-hero p{font-size:13px}.nm-hero-art>span{font-size:20px}.nm-hero-art>small{display:none}.nm-hero-art{gap:8px}.nm-tabs{gap:17px;margin-bottom:20px}.nm-tabs button{font-size:12px;padding:15px 0}.nm-workbench{display:flex;flex-direction:column;gap:28px}.nm-controls,.nm-output{width:100%}.nm-section{padding:18px}.nm-section h2{font-size:17px;margin-bottom:14px}.nm-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.nm-card{padding:15px 12px 10px}.nm-name{font-size:27px!important}.nm-card-top{font-size:9px}.nm-card-foot{align-items:start}.nm-card-foot small{font-size:9px}.nm-empty{min-height:350px;padding:25px 16px}.nm-empty h3{font-size:20px}.nm-output-head h2{font-size:23px}.nm-secondary .nm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nm-secondary>h2{font-size:25px}.nm-dialog{padding:22px;max-height:90dvh}.nm-dialog h2{font-size:32px}.nm-surname-grid{grid-template-columns:repeat(5,1fr)}.nm-check{grid-template-columns:1fr 1fr}.nm-check button{grid-column:1/-1}.nm-character-line{gap:4px}.nm-char-chip{padding:3px 5px}.nm-submit{position:relative}.nm-meaning{-webkit-line-clamp:3;font-size:11px}.nm-dialog-close{top:0}}
@media(max-width:360px){.nm-grid,.nm-secondary .nm-grid{grid-template-columns:1fr}.nm-hero-art{display:none}}
@media(prefers-reduced-motion:reduce){.gm-nm *{transition:none!important;scroll-behavior:auto!important}}

.gm-nm .nm-quick{width:100%;margin-top:15px}
.gm-nm .nm-check{grid-template-columns:1fr 1fr 1fr auto}
@media(max-width:760px){.gm-nm .nm-check{grid-template-columns:1fr 1fr}}
