/* ========== Reset & Base ========== */
*{margin:0;padding:0;box-sizing:border-box}
html{font-size:16px}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  background:#f0f2f5;
  color:#1a1a2e;
  -webkit-font-smoothing:antialiased;
}
input,textarea,select,button{font-family:inherit;font-size:inherit;outline:none;border:none;background:none}
textarea{resize:none}
button{cursor:pointer}

/* ========== App Container ========== */
#app{
  max-width:430px;
  margin:0 auto;
  min-height:100vh;
  background:#f0f2f5;
  position:relative;
  padding-bottom:60px;
}

/* ========== Gratitude Banner ========== */
.gratitude-banner{
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px 16px;
  background:linear-gradient(135deg,#0d7377 0%,#14a085 100%);
  color:#fff;
}
.gratitude-icon{font-size:28px}
.gratitude-title{font-size:15px;font-weight:600;line-height:1.4}
.gratitude-sub{font-size:12px;opacity:.85;margin-top:2px}

/* ========== Page Container ========== */
.page-container{padding:12px 12px 8px}
.page{animation:fadeIn .25s ease}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* ========== Search Bar ========== */
.search-bar{
  display:flex;
  gap:8px;
  margin-bottom:10px;
}
.search-bar input{
  flex:1;
  padding:9px 14px;
  background:#fff;
  border-radius:10px;
  font-size:14px;
}
.search-bar select{
  padding:9px 8px;
  background:#fff;
  border-radius:10px;
  font-size:13px;
  max-width:90px;
}

/* ========== Filter Tabs ========== */
.filter-tabs{
  display:flex;
  gap:8px;
  margin-bottom:12px;
}
.filter-tab{
  flex:1;
  padding:8px 4px;
  background:#fff;
  border-radius:10px;
  font-size:13px;
  color:#666;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  transition:all .2s;
}
.filter-tab.active{
  background:#0d7377;
  color:#fff;
}
.badge{
  background:#e74c3c;
  color:#fff;
  font-size:11px;
  padding:1px 7px;
  border-radius:10px;
}
.filter-tab.active .badge{background:rgba(255,255,255,.3)}

/* ========== Issue Card ========== */
.issue-list{display:flex;flex-direction:column;gap:10px}
.issue-card{
  background:#fff;
  border-radius:12px;
  padding:14px;
  cursor:pointer;
  transition:box-shadow .2s;
}
.issue-card:active{box-shadow:0 2px 12px rgba(0,0,0,.1)}
.issue-card-top{display:flex;justify-content:space:space-between;align-items:center;margin-bottom:8px}
.issue-card-left{display:flex;align-items:center;gap:8px;flex:1}
.issue-card-right{font-size:12px;color:#999}
.tag{
  font-size:11px;
  padding:2px 8px;
  border-radius:4px;
  font-weight:500;
}
.tag-hardware{background:#e3f2fd;color:#1976d2}
.tag-software{background:#e8f5e9;color:#2e7d32}
.tag-debug{background:#fff3e0;color:#f57c00}
.sev-tag{font-size:11px;padding:2px 8px;border-radius:4px;font-weight:600}
.sev-severe{background:#fdecea;color:#e53935}
.sev-normal{background:#fff8e1;color:#f9a825}
.sev-minor{background:#e8f5e9;color:#66bb6a}
.issue-status{
  font-size:11px;
  padding:2px 8px;
  border-radius:4px;
  font-weight:500;
}
.status-claimable{background:#e8f5e9;color:#2e7d32}
.status-processing{background:#e3f2fd;color:#1565c0}
.status-urgent{background:#fdecea;color:#c62828}
.status-reviewing{background:#fff3e0;color:#ef6c00}
.status-done{background:#f5f5f5;color:#757575}
.issue-title{font-size:15px;font-weight:600;margin-bottom:6px;line-height:1.3}
.issue-info{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;color:#888;margin-bottom:6px}
.issue-info span{display:flex;align-items:center;gap:3px}
.issue-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:8px;border-top:1px solid #f0f0f0}
.issue-reward{font-size:14px;font-weight:700;color:#e53935}
.issue-help{font-size:12px;color:#0d7377}

/* ========== Workbench ========== */
.workbench-tabs{display:flex;gap:8px;margin-bottom:12px}
.wb-tab{
  flex:1;
  padding:9px;
  background:#fff;
  border-radius:10px;
  font-size:14px;
  color:#666;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
}
.wb-tab.active{background:#0d7377;color:#fff}
.wb-list{display:flex;flex-direction:column;gap:10px}
.wb-card{
  background:#fff;
  border-radius:12px;
  padding:14px;
}
.wb-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.wb-ai-check{
  background:#f0f7f5;
  border-radius:8px;
  padding:8px 10px;
  margin:8px 0;
  font-size:12px;
  color:#0d7377;
}
.wb-ai-check-item{display:flex;align-items:center;gap:6px;margin-bottom:3px}
.ai-pass{color:#2e7d32}
.ai-fail{color:#e53935}
.wb-card-actions{display:flex;gap:8px;margin-top:10px}
.btn-accept{
  flex:1;
  padding:10px;
  background:#0d7377;
  color:#fff;
  border-radius:8px;
  font-size:14px;
  font-weight:500;
}
.btn-reject{
  flex:1;
  padding:10px;
  background:#fff;
  color:#e53935;
  border:1px solid #e53935;
  border-radius:8px;
  font-size:14px;
  font-weight:500;
}
.btn-pass{
  flex:1;
  padding:10px;
  background:#0d7377;
  color:#fff;
  border-radius:8px;
  font-size:14px;
  font-weight:500;
}
.btn-return{
  flex:1;
  padding:10px;
  background:#fff;
  color:#ef6c00;
  border:1px solid #ef6c00;
  border-radius:8px;
  font-size:14px;
  font-weight:500;
}

/* ========== Submit Form ========== */
.step-indicator{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:16px 20px 20px;
}
.step{display:flex;flex-direction:column;align-items:center;gap:4px}
.step-num{
  width:28px;
  height:28px;
  border-radius:50%;
  background:#ddd;
  color:#fff;
  font-size:14px;
  font-weight:700;
  display:flex;
  align-items:center;
  justify-content:center;
}
.step.active .step-num{background:#0d7377}
.step-label{font-size:12px;color:#999}
.step.active .step-label{color:#0d7377;font-weight:500}
.step-line{flex:1;height:2px;background:#ddd;margin:0 8px;max-width:50px}
.form-section{
  background:#fff;
  border-radius:12px;
  padding:16px;
  margin-bottom:12px;
}
.section-title{font-size:15px;font-weight:600;margin-bottom:12px}
.required{color:#e53935}
.form-row{margin-bottom:16px}
.form-row label{display:block;font-size:14px;color:#333;margin-bottom:6px}
.form-row input,.form-row textarea,.form-row select{
  width:100%;
  padding:10px 12px;
  background:#f8f9fa;
  border-radius:8px;
  font-size:14px;
  border:1px solid #e8e8e8;
}
.scan-row{display:flex;gap:8px}
.scan-row input{flex:1}
.btn-scan{
  padding:10px 14px;
  background:#0d7377;
  color:#fff;
  border-radius:8px;
  font-size:13px;
  white-space:nowrap;
}
.photo-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
}
.photo-placeholder{
  aspect-ratio:1;
  background:#f8f9fa;
  border:1px dashed #ccc;
  border-radius:8px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.photo-add{font-size:28px;color:#ccc}
.photo-tip{font-size:12px;color:#999;margin-top:4px}
.photo-item{
  aspect-ratio:1;
  border-radius:8px;
  background:linear-gradient(135deg,#0d7377,#14a085);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:28px;
  color:#fff;
  position:relative;
}
.form-hint{font-size:12px;color:#999;margin-top:6px}
.radio-group{display:flex;gap:12px}
.radio-label{cursor:pointer}
.radio-label input{display:none}
.radio-label input:checked + .tag{opacity:1;box-shadow:0 0 0 2px #0d7377}
.radio-label .tag{opacity:.5;font-size:13px;padding:4px 14px}
.char-count{text-align:right;font-size:12px;color:#999;margin-top:4px}
.form-btn-row{display:flex;gap:12px;padding:0 4px}
.btn-back{
  flex:1;
  padding:12px;
  background:#fff;
  color:#666;
  border-radius:10px;
  font-size:15px;
}
.btn-next,.btn-submit{
  flex:1;
  padding:12px;
  background:#0d7377;
  color:#fff;
  border-radius:10px;
  font-size:15px;
  font-weight:500;
}
.btn-submit{background:#e53935}

/* ========== Ranking ========== */
.rank-tabs{display:flex;gap:8px;margin-bottom:12px}
.rank-tab{
  flex:1;
  padding:9px;
  background:#fff;
  border-radius:10px;
  font-size:14px;
  color:#666;
}
.rank-tab.active{background:#0d7377;color:#fff}
.rank-list{display:flex;flex-direction:column;gap:8px}
.rank-item{
  display:flex;
  align-items:center;
  gap:12px;
  background:#fff;
  border-radius:12px;
  padding:12px 14px;
}
.rank-num{
  width:32px;
  height:32px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:15px;
  font-weight:700;
  flex-shrink:0;
}
.rank-1{background:linear-gradient(135deg,#ffd700,#ffa000);color:#fff}
.rank-2{background:linear-gradient(135deg,#cfd8dc,#90a4ae);color:#fff}
.rank-3{background:linear-gradient(135deg,#d7a96e,#a07235);color:#fff}
.rank-other{background:#f0f0f0;color:#999}
.rank-avatar{font-size:24px}
.rank-info{flex:1}
.rank-name{font-size:15px;font-weight:600}
.rank-sub{font-size:12px;color:#999;margin-top:2px}
.rank-value{font-size:16px;font-weight:700;color:#0d7377}

/* ========== My Page ========== */
.mine-tabs{display:flex;gap:8px;margin-bottom:12px}
.mine-tab{
  flex:1;
  padding:9px;
  background:#fff;
  border-radius:10px;
  font-size:14px;
  color:#666;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
}
.mine-tab.active{background:#0d7377;color:#fff}
.mine-tab .badge{background:#e74c3c}
.mine-tab.active .badge{background:rgba(255,255,255,.3)}

/* Claim card */
.claim-card{
  background:#fff;
  border-radius:12px;
  padding:14px;
  margin-bottom:10px;
}
.claim-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.claim-card-title{font-size:15px;font-weight:600}
.claim-card-info{font-size:12px;color:#888;margin-bottom:8px;display:flex;flex-wrap:wrap;gap:4px 12px}
.sla-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:#f0f7f5;
  border-radius:8px;
  padding:8px 12px;
  margin:8px 0;
}
.sla-label{font-size:12px;color:#0d7377;font-weight:500}
.sla-countdown{font-size:16px;font-weight:700;color:#0d7377}
.sla-countdown.warning{color:#ef6c00}
.sla-countdown.overdue{color:#e53935}
.sla-extensions{font-size:11px;color:#999}
.btn-solution{
  width:100%;
  padding:10px;
  background:#0d7377;
  color:#fff;
  border-radius:8px;
  font-size:14px;
  font-weight:500;
  margin-top:8px;
}
.btn-reclaim{
  flex:1;
  padding:10px;
  background:#fff;
  color:#e53935;
  border:1px solid #e53935;
  border-radius:8px;
  font-size:14px;
  font-weight:500;
}

.profile-card{
  display:flex;
  align-items:center;
  gap:12px;
  background:linear-gradient(135deg,#0d7377,#14a085);
  color:#fff;
  border-radius:14px;
  padding:16px;
  margin-bottom:12px;
}
.profile-avatar{font-size:40px}
.profile-info{flex:1}
.profile-name{font-size:18px;font-weight:700}
.profile-role{font-size:13px;opacity:.8;margin-top:2px}
.profile-redpacket{text-align:center}
.rp-amount{font-size:22px;font-weight:700}
.rp-label{font-size:12px;opacity:.8}
.stats-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  margin-bottom:12px;
}
.stat-card{
  background:#fff;
  border-radius:12px;
  padding:14px 8px;
  text-align:center;
}
.stat-num{font-size:22px;font-weight:700;color:#0d7377}
.stat-label{font-size:12px;color:#999;margin-top:4px}
.contribution-section{margin-bottom:12px}
.section-header{padding:0 4px 8px}
.section-title-sm{font-size:14px;font-weight:600;color:#333}
.contrib-item{
  background:#fff;
  border-radius:10px;
  padding:12px 14px;
  margin-bottom:6px;
  display:flex;
  align-items:center;
  gap:8px;
  font-size:13px;
}
.contrib-icon{font-size:18px}
.contrib-text{flex:1;color:#555}
.contrib-time{font-size:11px;color:#bbb}
.red-item{
  background:#fff;
  border-radius:10px;
  padding:10px 14px;
  margin-bottom:6px;
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.red-item-left{display:flex;align-items:center;gap:8px}
.red-type{font-size:13px;color:#333}
.red-time{font-size:11px;color:#bbb}
.red-amount{font-size:15px;font-weight:700;color:#e53935}

/* ========== Detail Page Overlay ========== */
.detail-overlay{
  position:fixed;
  top:0;left:0;right:0;bottom:0;
  background:#f0f2f5;
  z-index:100;
  overflow-y:auto;
  display:none;
  max-width:430px;
  margin:0 auto;
}
.detail-page{padding-bottom:80px}
.detail-header{
  position:sticky;
  top:0;
  background:#0d7377;
  color:#fff;
  padding:14px 16px;
  display:flex;
  align-items:center;
  gap:10px;
  z-index:10;
}
.detail-back{font-size:20px;cursor:pointer}
.detail-title{font-size:17px;font-weight:600;flex:1}
.detail-status-bar{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:13px;
}
.detail-section{
  background:#fff;
  border-radius:12px;
  margin:10px 12px;
  padding:14px;
}
.detail-section-title{font-size:14px;font-weight:600;color:#0d7377;margin-bottom:10px}
.detail-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.detail-info-item{font-size:13px}
.detail-info-label{color:#999;margin-bottom:2px}
.detail-info-value{color:#333;font-weight:500}
.detail-desc{font-size:14px;line-height:1.6;color:#333}
.detail-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:10px}
.detail-photo{
  aspect-ratio:1;
  border-radius:8px;
  background:linear-gradient(135deg,#0d7377,#14a085);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:24px;
  color:#fff;
}

/* Timeline */
.timeline{position:relative;padding-left:20px}
.timeline::before{
  content:'';
  position:absolute;
  left:6px;
  top:8px;
  bottom:8px;
  width:2px;
  background:#e0e0e0;
}
.timeline-item{position:relative;padding-bottom:16px}
.timeline-dot{
  position:absolute;
  left:-20px;
  top:4px;
  width:14px;
  height:14px;
  border-radius:50%;
  background:#0d7377;
  border:2px solid #fff;
}
.timeline-dot.pending{background:#bbb}
.timeline-content{font-size:13px}
.timeline-action{font-weight:600;color:#333;margin-bottom:2px}
.timeline-time{color:#999;font-size:12px}
.timeline-detail{color:#666;margin-top:2px}

/* Solution */
.solution-box{background:#f0f7f5;border-radius:8px;padding:12px;margin-top:8px}
.solution-text{font-size:14px;line-height:1.6;color:#333}
.solution-version{font-size:12px;color:#0d7377;margin-top:6px}

/* Comments */
.comment-item{
  padding:10px 0;
  border-bottom:1px solid #f0f0f0;
}
.comment-item:last-child{border-bottom:none}
.comment-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.comment-avatar{font-size:18px}
.comment-name{font-size:13px;font-weight:600}
.comment-time{font-size:11px;color:#bbb;margin-left:auto}
.comment-text{font-size:13px;color:#555;line-height:1.5;padding-left:26px}

/* Detail Actions */
.detail-actions{
  position:fixed;
  bottom:0;
  left:0;
  right:0;
  max-width:430px;
  margin:0 auto;
  background:#fff;
  padding:10px 12px;
  display:flex;
  gap:8px;
  box-shadow:0 -2px 10px rgba(0,0,0,.06);
  z-index:20;
}
.btn-helpful{
  flex:1;
  padding:10px;
  background:#fff;
  border:1px solid #0d7377;
  color:#0d7377;
  border-radius:10px;
  font-size:13px;
  font-weight:500;
}
.btn-helpful:active{background:#f0f7f5}
.btn-helpful.clicked{background:#0d7377;color:#fff}
.btn-correction{
  flex:1;
  padding:10px;
  background:#fff;
  border:1px solid #ef6c00;
  color:#ef6c00;
  border-radius:10px;
  font-size:13px;
  font-weight:500;
}
.btn-comment{
  flex:1;
  padding:10px;
  background:#fff;
  border:1px solid #999;
  color:#666;
  border-radius:10px;
  font-size:13px;
  font-weight:500;
}

/* ========== Modal ========== */
.modal-overlay{
  position:fixed;
  top:0;left:0;right:0;bottom:0;
  background:rgba(0,0,0,.4);
  z-index:200;
  display:flex;
  align-items:flex-end;
  justify-content:center;
}
.modal-box{
  background:#fff;
  width:100%;
  max-width:430px;
  border-radius:16px 16px 0 0;
  padding:20px 16px 24px;
  animation:slideUp .3s ease;
}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:none}}
.modal-title{font-size:17px;font-weight:600;text-align:center;margin-bottom:16px}
.modal-label{font-size:14px;color:#666;margin-bottom:8px}
.modal-box textarea{
  width:100%;
  padding:10px;
  background:#f8f9fa;
  border-radius:8px;
  border:1px solid #e8e8e8;
  font-size:14px;
  line-height:1.5;
}
.modal-btns{display:flex;gap:10px;margin-top:16px}
.btn-cancel{
  flex:1;
  padding:12px;
  background:#f5f5f5;
  color:#666;
  border-radius:10px;
  font-size:15px;
}
.btn-confirm{
  flex:1;
  padding:12px;
  background:#0d7377;
  color:#fff;
  border-radius:10px;
  font-size:15px;
  font-weight:500;
}
.severity-options{display:flex;gap:8px;margin-bottom:8px}
.sev-option{
  flex:1;
  padding:12px 8px;
  background:#f8f9fa;
  border-radius:10px;
  border:2px solid transparent;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
}
.sev-option.selected{border-color:#0d7377;background:#f0f7f5}
.sev-amount{font-size:13px;color:#999}
.sev-option.selected .sev-amount{color:#0d7377;font-weight:700}

/* ========== Toast ========== */
.toast{
  position:fixed;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  background:rgba(0,0,0,.8);
  color:#fff;
  padding:12px 24px;
  border-radius:10px;
  font-size:14px;
  z-index:999;
  opacity:0;
  pointer-events:none;
  transition:opacity .3s;
}
.toast.show{opacity:1}

/* ========== Tabbar ========== */
.tabbar{
  position:fixed;
  bottom:0;
  left:0;
  right:0;
  max-width:430px;
  margin:0 auto;
  background:#fff;
  height:56px;
  display:flex;
  align-items:center;
  justify-content:space-around;
  box-shadow:0 -1px 8px rgba(0,0,0,.06);
  z-index:50;
}
.tab-item{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  flex:1;
  height:100%;
  color:#999;
  cursor:pointer;
}
.tab-item.active{color:#0d7377}
.tab-icon{font-size:20px}
.tab-text{font-size:11px}
.tab-center{position:relative}
.tab-icon-circle{
  width:40px;
  height:40px;
  background:#0d7377;
  color:#fff;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:24px;
  margin-top:-16px;
  box-shadow:0 2px 8px rgba(13,115,119,.3);
}

/* ========== 设备台账关联 ========== */
.device-match{
  border-radius:10px;
  padding:10px 12px;
  margin:8px 0 4px;
  font-size:13px;
  line-height:1.6;
}
.device-match.matched{
  background:#e8f6f3;
  border:1px solid #b7e2d8;
  color:#0d7377;
}
.device-match.unmatched{
  background:#fef6ec;
  border:1px solid #f3ddba;
  color:#9a6b1f;
}
.dm-row{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.dm-badge{
  display:inline-block;
  padding:2px 8px;
  border-radius:10px;
  font-size:12px;
  font-weight:600;
  background:#0d7377;
  color:#fff;
}
.dm-badge-warn{background:#d98e2b}
.dm-ship{font-size:12px;opacity:.85}
.dm-warranty{font-size:12px;opacity:.85}
.device-link{
  color:#0d7377;
  font-weight:600;
  border-bottom:1px dashed #0d7377;
  cursor:pointer;
}
.issue-info span[onclick]:hover{color:#0d7377;font-weight:600}

/* ===== 角色权限 v20260825e ===== */
.role-switch{
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px 14px;
  background:#f0f4f5;
  border-bottom:1px dashed #cdd8da;
  font-size:12px;
}
.role-switch-label{color:#7a8b8d;font-size:12px;flex-shrink:0}
.role-btn{
  padding:4px 12px;
  border-radius:14px;
  border:1px solid #cdd8da;
  background:#fff;
  color:#5f7375;
  font-size:12px;
  cursor:pointer;
}
.role-btn.active{
  background:#0d7377;
  border-color:#0d7377;
  color:#fff;
  font-weight:600;
}
.dev-meta{
  display:flex;
  flex-wrap:wrap;
  gap:6px 14px;
  font-size:12px;
  color:#666;
  padding:8px 10px;
  background:#f7fafa;
  border-radius:8px;
}
.warranty-overdue{color:#c0392b;font-weight:600}
.perm-tip{
  margin:10px 14px 0;
  padding:8px 12px;
  background:#fef6ec;
  border:1px solid #f3ddba;
  border-radius:8px;
  font-size:12px;
  color:#9a6b1f;
  line-height:1.5;
}

/* ===== AI优化按钮 v20260825h ===== */
.btn-ai{
  display:inline-block;
  margin-left:8px;
  padding:2px 10px;
  border-radius:12px;
  border:1px solid #0d7377;
  background:#e8f6f3;
  color:#0d7377;
  font-size:12px;
  font-weight:600;
  cursor:pointer;
  vertical-align:middle;
}
.btn-ai:active{ background:#0d7377; color:#fff; }

/* ===== v20260825i: 身份切换卡片 + 主提交按钮 ===== */
.role-switch-card{
  margin:12px 0;
  padding:12px 14px;
  background:#fff;
  border-radius:12px;
  box-shadow:0 1px 4px rgba(0,0,0,.06);
}
.role-switch-title{
  font-size:13px;
  font-weight:600;
  color:#333;
  margin-bottom:10px;
}
.role-switch-note{
  font-size:11px;
  font-weight:400;
  color:#999;
  margin-left:6px;
}
.role-switch-btns{
  display:flex;
  gap:10px;
}
.role-switch-btns .role-btn{
  flex:1;
  padding:10px 0;
  border-radius:10px;
  border:1px solid #cdd8da;
  background:#f7fafa;
  color:#5f7375;
  font-size:13px;
  cursor:pointer;
}
.role-switch-btns .role-btn.active{
  background:#0d7377;
  border-color:#0d7377;
  color:#fff;
  font-weight:600;
}
.btn-submit-main{
  display:block;
  width:100%;
  padding:14px;
  background:linear-gradient(135deg,#0d7377,#14919b);
  color:#fff;
  font-size:16px;
  font-weight:600;
  border:none;
  border-radius:12px;
  cursor:pointer;
  box-shadow:0 4px 10px rgba(13,115,119,.3);
}
.btn-submit-main:active{ opacity:.9; }

/* ===== v20260825j: 感谢+金币动画 ===== */
.reward-overlay{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.55);
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:center;
  animation:rwFadeIn .2s;
}
.reward-card{
  position:relative;
  width:78%;
  max-width:320px;
  padding:28px 20px 78px;
  background:linear-gradient(165deg,#ffffff,#eef9f8);
  border-radius:18px;
  text-align:center;
  overflow:hidden;
  animation:rwPopIn .35s cubic-bezier(.2,1.4,.4,1);
  box-shadow:0 12px 40px rgba(0,0,0,.3);
}
.reward-emoji{font-size:46px;animation:rwBounce .7s;}
.reward-title{font-size:19px;font-weight:700;color:#0d7377;margin-top:8px;}
.reward-sub{font-size:13px;color:#7a8b8d;margin-top:8px;line-height:1.7;}
.pocket{
  position:absolute;
  bottom:14px;
  left:50%;
  transform:translateX(-50%);
  display:flex;
  align-items:center;
  gap:6px;
  padding:6px 16px;
  background:#0d7377;
  border-radius:20px;
  color:#fff;
  font-size:12px;
  font-weight:600;
}
.pocket-icon{font-size:16px;}
.coin{
  position:absolute;
  top:-34px;
  left:50%;
  width:26px;
  height:26px;
  margin-left:-13px;
  border-radius:50%;
  background:radial-gradient(circle at 32% 28%,#ffe9a8,#f5a623 70%,#d98c0a);
  color:#8a5a00;
  font-size:13px;
  font-weight:800;
  line-height:26px;
  text-align:center;
  box-shadow:0 2px 6px rgba(0,0,0,.25),inset 0 -2px 3px rgba(0,0,0,.15);
  opacity:0;
  animation:rwCoinDrop 1.1s cubic-bezier(.5,0,.8,.6) var(--d) forwards;
}
@keyframes rwFadeIn{from{opacity:0}to{opacity:1}}
@keyframes rwPopIn{from{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes rwBounce{0%{transform:scale(0)}60%{transform:scale(1.25)}100%{transform:scale(1)}}
@keyframes rwCoinDrop{
  0%{transform:translate(0,-40px) scale(.4) rotate(0deg);opacity:0}
  25%{opacity:1}
  85%{opacity:1}
  100%{transform:translate(var(--dx),158px) scale(1) rotate(340deg);opacity:0}
}

/* ===== v20260825k: 动画关闭提示 ===== */
.reward-close-tip{
  position:absolute;
  bottom:24px;
  left:0;
  right:0;
  text-align:center;
  color:rgba(255,255,255,.75);
  font-size:12px;
}

/* ===== v20260825k: 数据看板 ===== */
.dash-stats{
  display:flex;
  gap:8px;
  padding:14px 14px 4px;
}
.dash-stat{
  flex:1;
  background:#fff;
  border-radius:12px;
  padding:12px 4px;
  text-align:center;
  box-shadow:0 1px 4px rgba(0,0,0,.06);
}
.dash-num{
  font-size:20px;
  font-weight:700;
  color:#0d7377;
}
.dash-num.dash-warn{color:#c0392b;}
.dash-label{
  font-size:11px;
  color:#8a9a9c;
  margin-top:4px;
}
.dash-card{
  margin:12px 14px 0;
  background:#fff;
  border-radius:12px;
  padding:14px;
  box-shadow:0 1px 4px rgba(0,0,0,.06);
}
.dash-card-title{
  font-size:14px;
  font-weight:600;
  color:#333;
  margin-bottom:12px;
}
.dash-chart{
  display:flex;
  align-items:flex-end;
  gap:8px;
  height:110px;
  padding-top:16px;
}
.dash-bar-wrap{
  flex:1;
  height:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-end;
  position:relative;
}
.dash-bar{
  width:60%;
  max-width:22px;
  min-height:4px;
  background:linear-gradient(180deg,#14919b,#0d7377);
  border-radius:4px 4px 0 0;
}
.dash-bar-val{
  position:absolute;
  top:-16px;
  font-size:10px;
  color:#5f7375;
}
.dash-bar-day{
  font-size:10px;
  color:#a0b0b2;
  margin-top:4px;
}
.dash-row{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:10px;
}
.dash-row:last-child{margin-bottom:0;}
.dash-row-label{
  width:52px;
  font-size:12px;
  color:#555;
  display:flex;
  align-items:center;
  gap:5px;
  flex-shrink:0;
}
.dash-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  display:inline-block;
}
.dash-progress{
  flex:1;
  height:8px;
  background:#eef4f4;
  border-radius:4px;
  overflow:hidden;
}
.dash-progress-in{
  height:100%;
  border-radius:4px;
}
.dash-row-num{
  width:24px;
  text-align:right;
  font-size:12px;
  font-weight:600;
  color:#333;
}
.dash-empty{
  font-size:12px;
  color:#aaa;
  text-align:center;
  padding:10px 0;
}
.dash-note{
  text-align:center;
  font-size:11px;

  color:#b0bec0;
  padding:14px 0 20px;
}

/* ===== v20260825l: 我提交的问题·审核状态 ===== */
.audit-tip{
  display:block;
  margin-top:8px;
  padding:6px 10px;
  background:#fef6ec;
  border:1px solid #f3ddba;
  border-radius:8px;
  font-size:12px;
  color:#9a6b1f;
  line-height:1.5;
}
.audit-tip.ok{
  background:#eef9f1;
  border-color:#c9e8d2;
  color:#2e7d4f;
}
.audit-note{
  font-size:11px;
  color:#a0b0b2;
  font-weight:400;
}
