body{background:#0f0f1a;margin:0}#root{min-height:100vh}:root{--bg:#0c0c18;--bg2:#14142a;--bg3:#1c1c38;--border:#28284a;--text:#cfc5a8;--text-dim:#857aa0;--accent:#c4a165;--accent2:#7ab8d4;--red:#e07070;--radius:10px;--shadow:0 6px 30px #0009;--cert-bg:#faf6ef;--cert-text:#1a1814;--cert-text-mid:#5a5248;--cert-text-dim:#9a917e;--cert-accent:#8b4513;--cert-rule:#d8cfc0;--cert-font:"Noto Serif SC", "STSong", "SimSun", serif}*,:before,:after{box-sizing:border-box}body{background:var(--bg);color:var(--text);min-height:100vh;margin:0;font-family:Noto Serif SC,STSong,SimSun,serif}.app{flex-direction:column;min-height:100vh;display:flex}.app-header{text-align:center;background:linear-gradient(180deg, #08081a 0%, var(--bg) 100%);border-bottom:1px solid var(--border);padding:1.8rem 1rem 1.4rem}@media (width>=600px){.app-header{padding:3rem 1rem 2rem}}.app-title{color:var(--accent);letter-spacing:.3em;text-shadow:0 0 40px #c4a16559;margin:0 0 .4rem;font-size:2rem;font-weight:600}@media (width>=600px){.app-title{letter-spacing:.35em;font-size:2.8rem}}.app-subtitle{color:var(--text-dim);letter-spacing:.25em;margin:0;font-size:.9rem;font-weight:300}.app-main{flex:1;width:100%;max-width:900px;margin:0 auto;padding:1rem}@media (width>=600px){.app-main{padding:2rem 1.5rem}}.form-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1.2rem;padding:1.1rem}@media (width>=600px){.form-card{margin-bottom:1.5rem;padding:1.8rem}}.form-grid{grid-template-columns:1fr 1fr;gap:.9rem;margin-bottom:1.2rem;display:grid}@media (width>=600px){.form-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1.2rem;margin-bottom:1.5rem}}.form-item{flex-direction:column;gap:.5rem;display:flex}.form-item label{color:var(--text-dim);letter-spacing:.05em;font-size:.82rem;font-weight:300}.hint{color:#504868;font-size:.72rem}.form-item input[type=date],.form-item input[type=text],.form-item select{background:var(--bg3);border:1px solid var(--border);color:var(--text);border-radius:7px;outline:none;padding:.5rem .8rem;font-family:inherit;font-size:.95rem;transition:border-color .2s}.form-item input:focus,.form-item select:focus{border-color:var(--accent)}.radio-group{gap:.8rem;display:flex}.radio-btn{cursor:pointer;border:1px solid var(--border);border-radius:7px;align-items:center;gap:.4rem;padding:.4rem 1rem;font-size:.95rem;transition:all .2s;display:flex}.radio-btn.active{border-color:var(--accent);color:var(--accent);background:#c4a16514}.radio-btn input[type=radio]{display:none}.form-actions{flex-wrap:wrap;align-items:center;gap:.8rem;display:flex}.btn-primary{text-align:center;width:100%}@media (width>=600px){.btn-primary{width:auto}}.btn-primary{color:#0c0c18;letter-spacing:.12em;cursor:pointer;background:linear-gradient(135deg,#c4a165,#9a7540);border:none;border-radius:7px;padding:.65rem 1.8rem;font-family:inherit;font-size:.95rem;font-weight:600;transition:opacity .2s,transform .1s}.btn-primary:hover{opacity:.9}.btn-primary:active{transform:scale(.98)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--bg3);color:var(--accent2);border:1px solid var(--border);cursor:pointer;border-radius:7px;padding:.65rem 1.4rem;font-family:inherit;font-size:.9rem}.btn-ghost{color:var(--text-dim);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;padding:.38rem .9rem;font-family:inherit;font-size:.85rem;transition:all .2s}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.bazi-info{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:.6rem;margin-bottom:1.4rem;padding:1.1rem 1.4rem;display:flex}.bazi-row{flex-wrap:wrap;align-items:center;gap:.7rem;display:flex}.bazi-label{color:var(--text-dim);letter-spacing:.08em;font-size:.78rem}.bazi-val{color:var(--text);letter-spacing:.18em;font-size:1rem}.ml{margin-left:1rem}.gods-list{gap:.4rem;display:flex}.god-tag{color:#fff;border-radius:20px;padding:.15rem .6rem;font-size:.8rem;font-weight:500}.names-section,.ai-results-section{margin-bottom:1.5rem}.names-header,.ai-results-header{justify-content:space-between;align-items:center;margin-bottom:.9rem;display:flex}.batch-info,.ai-results-label{color:var(--text-dim);letter-spacing:.05em;font-size:.85rem}.ai-results-label{color:var(--accent)}.locked-hint{color:var(--accent);margin-left:.5rem}.batch-actions{gap:.6rem;display:flex}.names-grid{grid-template-columns:repeat(2,1fr);gap:.7rem;display:grid}@media (width>=600px){.names-grid{grid-template-columns:repeat(3,1fr);gap:.9rem}}@media (width>=800px){.names-grid{grid-template-columns:repeat(4,1fr)}}.name-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;-webkit-user-select:none;user-select:none;padding:1.1rem .9rem .9rem;transition:all .2s;position:relative}.name-card:hover{border-color:var(--accent);background:var(--bg3);box-shadow:var(--shadow);transform:translateY(-2px)}.ai-name-card{border-color:#c4a1654d}.nc-fullname{letter-spacing:.22em;margin-bottom:.35rem;font-size:1.6rem}.nc-surname{color:var(--text-dim)}.nc-name{color:var(--accent);font-weight:500}.nc-wx{color:var(--text-dim);letter-spacing:.06em;margin-bottom:.25rem;font-size:.72rem}.nc-meaning{color:#8870b8;margin-bottom:.2rem;font-size:.76rem;line-height:1.4}.nc-source{color:#5a6a82;text-overflow:ellipsis;white-space:nowrap;font-size:.68rem;overflow:hidden}.nc-detail-hint{color:#5a4a70;letter-spacing:.05em;margin-top:.4rem;font-size:.65rem}.nc-fav{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:0;font-size:1rem;line-height:1;transition:color .2s;position:absolute;top:.55rem;right:.65rem}.nc-fav:hover{color:var(--red)}.nc-fav--active{color:var(--red)!important}.ai-panel-wrapper{margin-bottom:2rem}.ai-panel-trigger{border:1px dashed var(--border);border-radius:var(--radius);width:100%;color:var(--accent);letter-spacing:.15em;cursor:pointer;background:0 0;padding:.8rem;font-family:inherit;font-size:.9rem;transition:all .2s}.ai-panel-trigger:hover{border-color:var(--accent);background:#c4a1650d}.ai-panel{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:1.4rem}.ai-panel-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.ai-panel-title{color:var(--accent);letter-spacing:.15em;font-size:.9rem}.ai-panel-close{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:0;font-size:1.2rem;line-height:1}.ai-panel-examples{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.ai-example-chip{background:var(--bg3);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:20px;padding:.25rem .7rem;font-family:inherit;font-size:.78rem;transition:all .2s}.ai-example-chip:hover{border-color:var(--accent);color:var(--accent)}.ai-panel-input{background:var(--bg3);border:1px solid var(--border);width:100%;color:var(--text);resize:none;border-radius:7px;outline:none;margin-bottom:.8rem;padding:.7rem .9rem;font-family:inherit;font-size:.9rem;line-height:1.6;transition:border-color .2s}.ai-panel-input:focus{border-color:var(--accent)}.ai-panel-input:disabled{opacity:.6}.ai-panel-error{color:var(--red);margin-bottom:.5rem;font-size:.82rem}.ai-panel-submit{letter-spacing:.15em;width:100%}.modal-overlay{z-index:100;background:#000000b3;justify-content:center;align-items:flex-end;padding:0;display:flex;position:fixed;inset:0}.modal-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;width:100%;max-width:100%;max-height:85vh;padding:1.5rem 1.2rem;position:relative;overflow-y:auto;box-shadow:0 -4px 32px #00000080}@media (width>=600px){.modal-overlay{align-items:center;padding:1rem}.modal-card{border-radius:var(--radius);max-width:420px;max-height:80vh;padding:2rem;box-shadow:0 8px 48px #000000b3}}.modal-close{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:0;font-size:1.3rem;line-height:1;position:absolute;top:.9rem;right:.9rem}.fav-card{max-width:560px}.fav-title{color:var(--accent);letter-spacing:.2em;margin-bottom:1.1rem;font-size:1.1rem}.fav-list{flex-direction:column;gap:.6rem;display:flex}.fav-item{background:var(--bg3);cursor:pointer;border-radius:7px;align-items:center;gap:.7rem;padding:.6rem .9rem;transition:background .15s;display:flex}.fav-item:hover{background:var(--border)}.fav-open{color:var(--accent);letter-spacing:.05em;white-space:nowrap;margin-left:auto;font-size:.72rem}.fav-fullname{color:var(--accent);letter-spacing:.2em;min-width:3.8rem;font-size:1.1rem}.fav-wx{color:var(--text-dim);min-width:3.5rem;font-size:.75rem}.fav-meaning{color:#8870b8;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.75rem;overflow:hidden}.fav-remove{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:0 .2rem;font-size:.9rem}.fav-remove:hover{color:var(--red)}.empty-tip{color:var(--text-dim);text-align:center;padding:2rem 0}.app-footer{text-align:center;border-top:1px solid var(--border);flex-direction:column;gap:.9rem;padding:2rem 1.5rem 1.8rem;display:flex}.app-footer-dedication{color:var(--accent);letter-spacing:.18em;opacity:.85;margin:0;font-size:.88rem;font-weight:300;line-height:2}.app-footer-note{color:var(--text-dim);letter-spacing:.1em;margin:0;font-size:.72rem;font-weight:300}.cert-overlay{z-index:200;background:#000000e6;justify-content:center;align-items:flex-start;padding:0;display:flex;position:fixed;inset:0;overflow-y:auto}@media (width>=600px){.cert-overlay{background:#000000d9;padding:1rem}}.cert-wrapper{flex-direction:column;gap:0;width:100%;max-width:680px;min-height:100%;display:flex}@media (width>=600px){.cert-wrapper{min-height:unset}}.cert-toolbar{z-index:1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a0a18f2;border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;padding:.65rem 1rem;display:flex;position:sticky;top:0}@media (width>=600px){.cert-toolbar{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border-bottom:none;margin-bottom:.5rem;padding:.7rem 0;position:static}}.cert-toolbar-btn{color:#ffffffb3;cursor:pointer;letter-spacing:.05em;background:0 0;border:1px solid #ffffff26;border-radius:6px;padding:.4rem .9rem;font-family:inherit;font-size:.85rem;transition:all .2s}.cert-toolbar-btn:hover{color:#fff;border-color:#fff6}.cert-gen-btn{color:#c4a165;letter-spacing:.1em;background:#c4a16526;border-color:#c4a16566}.cert-gen-btn:hover{background:#c4a16540}.cert-toolbar-right{gap:.6rem;display:flex}.cert-card{background:var(--cert-bg);color:var(--cert-text);font-family:var(--cert-font);box-shadow:none;background-image:radial-gradient(at 20% 20%,#b4a07814 0%,#0000 60%),radial-gradient(at 80% 80%,#8c78500f 0%,#0000 60%);border-radius:0;flex:1;padding:2rem 1.4rem 2.5rem;position:relative}@media (width>=600px){.cert-card{flex:unset;border-radius:4px;padding:3.5rem 3.5rem 2.5rem;box-shadow:0 20px 80px #000000b3,inset 0 0 100px #b4a0780f}}.cert-header{justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;display:flex}@media (width>=600px){.cert-header{margin-bottom:2.5rem}}.cert-birth-info{flex-direction:column;gap:.3rem;display:flex}.cert-birth-line{color:var(--cert-text-mid);letter-spacing:.1em;font-size:.82rem;font-weight:300}.cert-bazi{color:var(--cert-text-dim);letter-spacing:.18em;margin-top:.15rem;font-size:.74rem;font-weight:300}.cert-gender-tag{color:var(--cert-text-dim);border:1px solid var(--cert-rule);letter-spacing:.1em;border-radius:3px;padding:.15rem .5rem;font-size:.72rem}.cert-name-block{justify-content:flex-start;align-items:baseline;gap:.12em;margin-bottom:.8rem;display:flex}.cert-surname{color:var(--cert-text-mid);letter-spacing:.05em;font-size:2.4rem;font-weight:300}.cert-given{color:var(--cert-text);letter-spacing:.08em;font-size:3.2rem;font-weight:600;line-height:1}@media (width>=600px){.cert-name-block{margin-bottom:1rem}.cert-surname{font-size:3.2rem}.cert-given{font-size:4.2rem}}.cert-wx-row{color:var(--cert-text-dim);letter-spacing:.1em;align-items:center;gap:.6rem;margin-bottom:2rem;font-size:.82rem;display:flex}.cert-wx-dot{font-weight:500}.cert-wx-div{color:var(--cert-rule)}.cert-use-gods{color:var(--cert-text-dim)}.cert-rule{background:var(--cert-rule);height:1px;margin-bottom:2rem}.cert-static{margin-bottom:1.5rem}.cert-section{margin-bottom:1.8rem}.cert-section-label{color:var(--cert-text-dim);letter-spacing:.25em;text-transform:uppercase;margin-bottom:.6rem;font-size:.7rem}.cert-section-body{color:var(--cert-text);margin:0 0 .4rem;font-size:.98rem;font-weight:300;line-height:1.85}.cert-source-text{color:var(--cert-text-mid);font-style:italic}.cert-loading{text-align:center;color:var(--cert-text-mid);padding:3rem 0}.cert-loading p{letter-spacing:.1em;margin-top:1rem;font-size:.88rem}.cert-loading-dots{justify-content:center;gap:.5rem;display:flex}.cert-loading-dots span{background:var(--cert-accent);border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite dot-pulse}.cert-loading-dots span:nth-child(2){animation-delay:.2s}.cert-loading-dots span:nth-child(3){animation-delay:.4s}@keyframes dot-pulse{0%,80%,to{opacity:.2;transform:scale(.7)}40%{opacity:1;transform:scale(1)}}.cert-error{background:#fef2f2;border:1px solid #fecaca;border-radius:4px;margin-bottom:1.5rem;padding:1rem}.cert-error p{color:#b91c1c;margin:0 0 .6rem;font-size:.88rem}.cert-cta{text-align:center;border:1px dashed var(--cert-rule);border-radius:4px;margin-bottom:1.5rem;padding:2.5rem 0}.cert-cta-btn{color:var(--cert-accent);font-size:1rem;font-family:var(--cert-font);letter-spacing:.2em;cursor:pointer;background:0 0;border:none;transition:opacity .2s}.cert-cta-btn:hover{opacity:.7}.cert-cta-hint{color:var(--cert-text-dim);letter-spacing:.05em;margin:.7rem 0 0;font-size:.75rem}.cert-reading{animation:.5s fade-in}@keyframes fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.cert-blessing-block{border-left:2px solid var(--cert-accent);background:#8b45130d;margin-top:2rem;padding:1.2rem 1.4rem}.cert-blessing-label{color:var(--cert-accent);letter-spacing:.3em;margin-bottom:.7rem;font-size:.7rem}.cert-blessing-text{color:var(--cert-text);margin:0;font-size:1rem;font-weight:300;line-height:1.9}.cert-footer{border-top:1px solid var(--cert-rule);color:var(--cert-text-dim);letter-spacing:.15em;align-items:center;gap:.6rem;margin-top:2.5rem;padding-top:1.2rem;font-size:.72rem;display:flex}.cert-footer-dot{color:var(--cert-rule)}@media print{body{background:#fff}.cert-overlay{background:0 0;padding:0;position:static}.cert-wrapper{max-width:100%}.cert-toolbar{display:none}.cert-card{box-shadow:none;padding:2rem}.app-header,.app-main,.app-footer{display:none!important}}
