*,*::before,*::after{box-sizing:border-box}
html,body{height:100%}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#1f2937;background:#fff}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;padding:0;cursor:pointer}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
ul,ol{list-style:none;margin:0;padding:0}
p,h1,h2,h3,h4{margin:0}
[hidden]{display:none!important}

.rpi-toast-stack{position:fixed;top:24px;left:50%;transform:translateX(-50%);z-index:4000;display:flex;flex-direction:column;gap:10px;align-items:center;pointer-events:none}
.rpi-toast{max-width:min(92vw,460px);padding:12px 18px;border-radius:12px;background:#1f2937;color:#fff;font-size:14px;line-height:1.5;box-shadow:0 12px 30px rgba(0,0,0,.18);opacity:0;transform:translateY(-6px);animation:rpi-toast-in .22s ease forwards}
.rpi-toast.success{background:#059669}
.rpi-toast.warning{background:#d97706}
.rpi-toast.error{background:#dc2626}
@keyframes rpi-toast-in{to{opacity:1;transform:translateY(0)}}

.rpi-modal{position:fixed;inset:0;z-index:3000;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(15,23,42,.55)}
.rpi-modal-panel{width:100%;max-width:460px;max-height:88vh;overflow:auto;border-radius:20px;background:#fff;box-shadow:0 30px 80px rgba(15,23,42,.3);animation:rpi-modal-in .22s ease}
@keyframes rpi-modal-in{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.rpi-modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid #f1f5f9}
.rpi-modal-header h3{font-size:17px;font-weight:700}
.rpi-modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;color:#64748b;font-size:20px;line-height:1}
.rpi-modal-close:hover{background:#f1f5f9;color:#0f172a}
.rpi-modal-body{padding:20px}
.rpi-modal-footer{display:flex;gap:12px;padding:16px 20px 20px}
.rpi-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;border-radius:12px;font-size:15px;font-weight:600;transition:transform .18s ease,box-shadow .18s ease}
.rpi-btn.primary{background:linear-gradient(135deg,#e92063,#db2777);color:#fff;box-shadow:0 10px 24px rgba(233,32,99,.3)}
.rpi-btn.primary:hover{transform:translateY(-1px)}
.rpi-btn.ghost{background:#f8fafc;color:#475569}
.rpi-btn:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}

.auth-code-field{position:relative;display:flex;align-items:center;border:1.5px solid #e2e8f0;border-radius:12px;transition:border-color .2s,box-shadow .2s}
.auth-code-field:focus-within{border-color:#e92063;box-shadow:0 0 0 3px rgba(233,32,99,.12)}
.auth-code-field input{flex:1;height:50px;padding:0 14px;border:0;background:transparent;font-size:17px;letter-spacing:.22em;text-transform:uppercase;outline:none}
.auth-code-field input::placeholder{letter-spacing:0;font-size:14px;color:#94a3b8}
.auth-code-count{padding-right:14px;font-size:12px;color:#94a3b8}
.auth-hint{margin-top:10px;font-size:13px;color:#64748b;min-height:20px}
.auth-hint.error{color:#dc2626}
.auth-hint.success{color:#059669}
.auth-hint.warning{color:#d97706}

.report-list{display:flex;flex-direction:column;gap:10px}
.report-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border:1px solid #eef2f7;border-radius:14px;background:#fff}
.report-item:hover{border-color:#fbcfe8;background:#fff7fb}
.report-item-meta{min-width:0}
.report-item-title{font-size:14px;font-weight:600;color:#0f172a}
.report-item-sub{margin-top:4px;font-size:12px;color:#94a3b8}
.report-item-link{font-size:13px;font-weight:600;color:#e92063}
.report-empty{padding:26px 0;text-align:center;color:#94a3b8;font-size:14px}
