*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{background:#f8f9fa;color:#374151;font-family:-apple-system,'Segoe UI',Roboto,'PingFang SC','Microsoft YaHei',sans-serif;font-size:14px;line-height:1.65;padding:24px 16px 40px}
.wrap{max-width:700px;margin:0 auto}
h1{text-align:center;font-size:18px;font-weight:500;color:#374151;margin-bottom:6px}
.subline{text-align:center;font-size:12px;color:#5F5E5A;margin-bottom:24px}
h2{font-size:16px;font-weight:500;margin:24px 0 12px}
summary{list-style:none;cursor:pointer;outline:none}
summary::-webkit-details-marker{display:none}
.banner{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-radius:12px 12px 0 0}
.banner-title{font-weight:500;font-size:16px}
.banner-meta{font-size:11px;margin-top:3px}
.banner-badge{font-weight:500;font-size:11px;padding:4px 10px;border-radius:999px}
.nw-banner{background:#B5D4F4}
.nw-banner .banner-title{color:#0C447C}
.nw-banner .banner-meta{color:#5F5E5A}
.nw-banner .banner-badge{background:#E6F1FB;color:#0C447C}
.nw-card{background:#E6F1FB;border:0.5px solid #85B7EB;border-left:4px solid #185FA5;border-radius:12px;padding:14px 16px;margin-top:10px}
.nw-head{display:flex;align-items:center;gap:8px}
.nw-badge{background:#185FA5;color:#fff;width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:500;flex-shrink:0}
.nw-word{color:#0C447C;font-weight:500;font-size:16px}
.nw-phonetic{color:#5F5E5A;font-style:italic;font-size:13px}
.nw-pos{color:#185FA5;font-weight:500}
.nw-def{margin-top:6px}
.nw-ex{margin-top:6px;padding-left:10px;border-left:3px solid #85B7EB;font-style:italic}
.nw-tip{margin-top:8px;background:#B5D4F4;border-radius:8px;padding:8px 10px;font-size:12px}
.nw-tip span{color:#0C447C;font-weight:500}
.nw-cn{margin-top:8px}
.nw-cn summary{color:#185FA5;font-size:12px}
.nw-cn div{margin-top:6px;padding-left:10px;border-left:3px solid #85B7EB}
.rv-banner{background:#C0DD97}
.rv-banner .banner-title{color:#27500A}
.rv-banner .banner-meta{color:#5F5E5A}
.rv-banner .banner-badge{background:#EAF3DE;color:#27500A}
.rv-group{margin-top:14px}
.rv-group-head{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.rv-group-head span:first-child{color:#27500A;font-weight:500;font-size:13px}
.rv-group-badge{background:#EAF3DE;color:#27500A;font-weight:500;font-size:11px;padding:3px 8px;border-radius:999px;border:0.5px solid #97C459}
.rv-card{background:#EAF3DE;border:0.5px solid #97C459;border-left:4px solid #3B6D11;border-radius:12px;padding:12px 14px;margin-top:8px}
.rv-card summary{display:flex;justify-content:space-between;align-items:center}
.rv-card summary .rv-word{color:#27500A;font-weight:500;font-size:15px}
.rv-card summary .rv-hint{color:#5F5E5A;font-size:11px}
.rv-body{margin-top:10px}
.rv-body .rv-pos{color:#3B6D11;font-weight:500}
.rv-body .rv-ex{margin-top:6px;padding-left:10px;border-left:3px solid #B4B2A9;font-style:italic}
.rv-cn{margin-top:8px}
.rv-cn summary{color:#185FA5;font-size:12px}
.rv-cn div{margin-top:6px;padding-left:10px;border-left:3px solid #85B7EB}
.rv-empty{background:#EAF3DE;border:0.5px solid #97C459;border-left:4px solid #3B6D11;border-radius:12px;padding:14px 16px;text-align:center;color:#27500A;font-weight:500;margin-top:10px}
.reset-btn{margin-left:auto;background:#fff;color:#3B6D11;border:0.5px solid #97C459;border-radius:6px;font-size:11px;padding:2px 8px;cursor:pointer;font-family:inherit}
.reset-btn:hover{background:#F1F7E8}
.toolbar{display:flex;gap:8px;justify-content:center;margin-top:28px}
.toolbar button{background:#fff;color:#374151;border:0.5px solid #C9CDD4;border-radius:8px;font-size:12px;padding:7px 14px;cursor:pointer;font-family:inherit}
.toolbar button:hover{background:#eef0f3}
.hidden-file{display:none}
.auth-section{max-width:700px;margin:0 auto 16px}
.auth-forms{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.auth-input{border:0.5px solid #C9CDD4;border-radius:8px;padding:7px 12px;font-size:13px;font-family:inherit;flex:1;min-width:120px}
.auth-input:focus{outline:none;border-color:#185FA5}
.auth-btn{background:#185FA5;color:#fff;border:none;border-radius:8px;font-size:12px;padding:7px 14px;cursor:pointer;font-family:inherit}
.auth-btn:hover{background:#0C447C}
.auth-btn:disabled{opacity:0.6;cursor:not-allowed}
.auth-btn-secondary{background:#fff;color:#185FA5;border:0.5px solid #185FA5}
.auth-btn-secondary:hover{background:#E6F1FB}
.auth-error{color:#c0392b;font-size:11px;flex-basis:100%}
.forgot-link{display:inline-block;font-size:11px;color:#185FA5;cursor:pointer;text-decoration:none;margin-top:2px}
.forgot-link:hover{text-decoration:underline}
.forgot-title{font-size:13px;color:#374151;font-weight:500;flex-basis:100%}
.user-info{display:flex;align-items:center;gap:10px;justify-content:center;font-size:12px;color:#5F5E5A}
.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000099;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}
.modal-box{background:#ffffff;border:0.5px solid #C9CDD4;border-radius:12px;padding:20px;width:100%;max-width:340px}
.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.modal-title{font-size:15px;font-weight:500;color:#374151}
.modal-close{background:none;border:none;font-size:14px;color:#5F5E5A;cursor:pointer;padding:2px 6px}
.modal-close:hover{color:#c0392b}
.modal-input{margin-bottom:8px}
.modal-hint{font-size:11px;color:#5F5E5A;margin:2px 0 10px;line-height:1.5}
.modal-btn{width:100%;padding:9px 0;font-size:13px}
#sync-status{font-size:11px;color:#97C459;margin-left:6px}
