:root{--primary:#dc2626;--primary-dark:#b91c1c;--primary-soft:#fdecec;--primary-contrast:#fff}
body.front-body{background:#f5f6fa;min-height:100vh;display:flex;flex-direction:column;font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif}
.btn-theme{background:var(--primary);color:#fff;border:none;border-radius:.5rem;font-weight:600}
.btn-theme:hover{background:var(--primary-dark);color:#fff}
.btn-theme-sm{background:var(--primary);color:#fff;border-radius:.4rem;padding:.25rem .75rem;text-decoration:none}
.btn-theme-sm:hover{background:var(--primary-dark);color:#fff}
.theme-link{color:var(--primary);text-decoration:none}.theme-link:hover{color:var(--primary-dark);text-decoration:underline}
.theme-text{color:var(--primary)}
.front-header{background:var(--primary);padding:.5rem 0}
.front-header .navbar-brand{color:#fff}
.front-header .nav-link{color:rgba(255,255,255,.9)}.front-header .nav-link:hover{color:#fff}
.btn-theme-sm{color:#fff}
.front-footer{margin-top:auto;background:#fff;border-top:1px solid #e5e7eb;padding:1rem 0;color:#6b7280;font-size:.875rem}
.hero-card{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;border-radius:.75rem}
.hero-sub{color:rgba(255,255,255,.85)}
.stat-card{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem}
.stat-num{font-size:1.4rem;color:var(--primary)}
.stat-label{font-size:.85rem;color:#6b7280}
.front-note li{margin-bottom:.4rem;line-height:1.6}
.notice-title{color:#333;text-decoration:none}.notice-title:hover{color:var(--primary)}
.flow-step{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}
.flow-step span{display:inline-flex;width:1.4rem;height:1.4rem;background:var(--primary);color:#fff;border-radius:50%;align-items:center;justify-content:center;font-size:.75rem}
.auth-wrap{max-width:440px;margin:2rem auto}
.auth-card{border-radius:.75rem;border:1px solid #e5e7eb}
.reply-box{background:var(--primary-soft);border-left:3px solid var(--primary)}
.attach-img{width:96px;height:96px;object-fit:cover;border-radius:.4rem;border:1px solid #e5e7eb}
.file-preview img{width:80px;height:80px;object-fit:cover;border-radius:.4rem;border:1px solid #e5e7eb}
.flow-timeline{list-style:none;padding:0;margin:0}
.flow-timeline li{position:relative;padding:0 0 1rem 1.5rem;border-left:2px solid #e5e7eb}
.flow-timeline li:last-child{border-left-color:transparent}
.flow-timeline .dot{position:absolute;left:-.45rem;top:.15rem;width:.8rem;height:.8rem;background:var(--primary);border-radius:50%}
.star-picker .star{font-size:1.8rem;color:#d1d5db;cursor:pointer}.star-picker .star.on{color:#f59e0b}
.star-static .on{color:#f59e0b}
.notice-content{line-height:1.9}
.letter-content{line-height:1.8}
/* 移动端按钮触摸尺寸 */
@media(max-width:767px){.btn{min-height:44px}.btn-lg{min-height:48px}.form-control,.form-select{min-height:44px}.front-note,.notice-content{word-break:break-word;overflow-wrap:break-word}}
