:root{font-family:"Microsoft YaHei","PingFang SC",sans-serif;color:#332d2b;background:#faf8f5;font-size:17px}*{box-sizing:border-box}body{margin:0}header{padding:22px max(24px,calc((100vw - 1120px)/2));background:#fff;border-bottom:1px solid #eae1dc;display:flex;align-items:center;justify-content:space-between;gap:18px}header strong{font-size:24px;color:#922e40}header small{display:block;color:#8b7e76;margin-top:5px}main{max-width:960px;margin:36px auto;padding:0 24px}h1{font-size:32px;line-height:1.4}h2{font-size:23px}p{line-height:1.8}button,a,input,textarea,select{font:inherit}button,.link{border:1px solid #dfd2ca;border-radius:12px;background:#fff;padding:11px 19px;cursor:pointer;color:#643c3a;text-decoration:none}button.primary{background:#982e42;border-color:#982e42;color:#fff}button:disabled{opacity:.55;cursor:wait}input,textarea,select{width:100%;border:1px solid #d9cdc6;border-radius:10px;padding:13px;background:#fff;color:#332d2b}textarea{min-height:110px;resize:vertical}label{display:block;margin:18px 0 8px}.panel{padding:28px;background:#fff;border:1px solid #e9dfd8;border-radius:18px;margin:22px 0}.auth{max-width:500px;margin:36px auto}.muted{color:#8a7a70;font-size:15px}.row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}.messages{display:flex;flex-direction:column;gap:20px}.message{white-space:pre-wrap;line-height:1.9;padding:22px;border-radius:16px;background:#fff;border:1px solid #ebe4df}.message.user{background:#f0e9e3;align-self:flex-end;width:90%;border:0}.question{border-left:3px solid #ad5967;margin-top:18px;padding-left:18px;font-weight:600}.error{color:#a02038}.report{white-space:pre-wrap;line-height:1.9}details{margin:16px 0}summary{cursor:pointer;color:#6d4147}.footer{margin:26px 0;color:#887970;font-size:14px}#notice{min-height:24px;color:#912e42}a{color:#912e42}@media(max-width:600px){main{padding:0 14px;margin-top:22px}header{padding:18px;align-items:flex-start}header strong{font-size:21px}.panel{padding:20px}h1{font-size:27px}.row{gap:10px}}
.panel.auth{max-width:540px;padding:40px;margin:48px auto;border-radius:22px}
.auth h1{margin:0 0 12px;font-size:30px;line-height:1.45}
.auth>p.muted{margin:0 0 30px;line-height:1.8}
.auth form label{margin:24px 0 10px;font-size:16px;line-height:1.5}
.auth form label:first-child{margin-top:0}
.auth form input{min-height:52px;padding:14px 16px}
.auth form>p:last-child{margin:30px 0 0}
.auth form>p:last-child button.primary{width:100%;min-height:52px;font-size:17px}
.auth>button[data-action="auth-toggle"],.auth>a{display:block;width:100%;margin:24px 0 0;padding:18px 12px 0;border:0;border-top:1px solid #eee5df;border-radius:0;background:transparent;text-align:center;line-height:1.6;font-size:16px}
.auth form>.muted{margin:22px 0;line-height:1.85}
@media(max-width:600px){.panel.auth{padding:28px 24px;margin:28px auto}.auth h1{font-size:27px}.auth>p.muted{margin-bottom:26px}}

/* Password reveal stays within the input and does not submit the form. */
.password-field{position:relative}
.auth form .password-field input{padding-right:60px}
.password-field .password-toggle{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:44px;height:44px;padding:0;display:flex;align-items:center;justify-content:center;border:0;border-radius:8px;background:transparent;color:#856d6d}
.password-toggle:hover{background:#f7eeef;color:#982e42}
.password-toggle:focus-visible{outline:2px solid #982e42;outline-offset:-2px}
.password-toggle svg [hidden]{display:none}
.password-field input::-ms-reveal{display:none}
