@charset "utf-8";
/* ==========================================================================
   罗布乐思 Roblox · 投诉举报页样式
   延续深海蓝 + 电光蓝 + 珊瑚橙配色，卡片、圆角与首页保持一致
   1 页面容器 / 2 受理说明 / 3 表单卡片 / 4 投诉类型选择 / 5 结果弹窗 / 6 响应式
   ========================================================================== */

/* ===== 1. 页面容器 ===== */
.cm-main{max-width:1180px;margin:0 auto;padding:56px 24px 40px;}
.cm-main .page-head{margin-bottom:32px;}

/* ===== 2. 受理说明（左侧栏，滚动时吸附） ===== */
.cm-layout{display:grid;grid-template-columns:minmax(0,330px) minmax(0,1fr);gap:32px;align-items:start;}
.cm-aside{
  position:sticky;top:112px;
  padding:28px 24px 24px;
  background:var(--surface);
  border:1px solid var(--line-2);border-radius:var(--r);
  box-shadow:var(--shadow);
}
.cm-aside h2{display:flex;align-items:baseline;gap:10px;font-family:var(--font-display);font-size:19px;font-weight:800;}
.cm-aside h2::before{content:"";width:12px;height:2px;flex:none;background:var(--rail);transform:translateY(-5px);}
.cm-list{margin-top:18px;display:grid;gap:12px;}
.cm-list li{position:relative;padding-left:20px;font-size:14.5px;line-height:1.75;color:var(--text-muted);}
.cm-list li::before{content:"";position:absolute;left:0;top:.68em;width:7px;height:7px;border-radius:50%;background:var(--brand);opacity:.9;}
.cm-steps{margin-top:22px;padding-top:20px;border-top:1px dashed var(--line-2);display:grid;gap:14px;}
.cm-step{display:flex;gap:12px;align-items:flex-start;font-size:14.5px;line-height:1.7;color:var(--text-muted);}
.cm-step b{
  flex:none;width:26px;height:26px;display:grid;place-items:center;
  font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:.02em;color:#fff;
  background-image:var(--grad);border-radius:50%;
  box-shadow:0 10px 20px -14px rgba(27,68,204,.95);
}
.cm-aside-note{margin-top:20px;padding-top:18px;border-top:1px dashed var(--line-2);font-size:13.5px;line-height:1.8;color:var(--text-faint);}
.cm-aside-note a{color:var(--brand-soft);font-weight:700;}

/* ===== 3. 表单卡片 ===== */
.cm-card{
  position:relative;overflow:hidden;
  padding:32px 30px 28px;
  background:var(--surface);
  border:1px solid var(--line-2);border-radius:var(--r);
  box-shadow:var(--shadow);
}
.cm-card::after{
  content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:var(--rail);
}
.cm-card-head{margin-bottom:22px;padding-bottom:20px;border-bottom:1px solid var(--line);}
.cm-card-head h2{font-family:var(--font-display);font-size:21px;font-weight:800;}
.cm-card-head p{margin-top:8px;font-size:14px;line-height:1.7;color:var(--text-faint);}
.cm-card .form{margin-top:0;}
.cm-card .form-actions{margin-top:6px;padding-top:20px;border-top:1px solid var(--line);}

/* ===== 4. 投诉类型选择 ===== */
.type-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;}
.type-item{
  position:relative;display:flex;align-items:center;gap:9px;
  padding:12px 13px;font-size:14px;font-weight:600;color:var(--text-muted);
  background:var(--bg-elev);
  border:1px solid var(--line-2);border-radius:var(--r-sm);
  cursor:pointer;
  transition:border-color .18s ease,background-color .18s ease,color .18s ease,box-shadow .18s ease;
}
.type-item:hover{border-color:var(--brand);color:var(--brand-soft);}
.type-item input{position:absolute;width:1px;height:1px;margin:0;opacity:0;pointer-events:none;}
.type-item .tick{
  position:relative;flex:none;width:15px;height:15px;
  border:1.6px solid var(--line-3);border-radius:50%;
  transition:border-color .18s ease,background-color .18s ease;
}
.type-item input:focus-visible + .tick{outline:2px solid var(--brand);outline-offset:3px;}
.type-item.is-on{
  color:var(--brand-soft);background:var(--brand-tint);border-color:var(--brand);
  box-shadow:0 12px 26px -20px rgba(27,68,204,.95);
}
.type-item.is-on .tick{border-color:var(--brand);background:var(--brand);}
.type-item.is-on .tick::after{content:"";position:absolute;left:3.4px;top:3.4px;width:5px;height:5px;border-radius:50%;background:#fff;}
.type-item:has(input:checked){
  color:var(--brand-soft);background:var(--brand-tint);border-color:var(--brand);
  box-shadow:0 12px 26px -20px rgba(27,68,204,.95);
}
.type-item:has(input:checked) .tick{border-color:var(--brand);background:var(--brand);}
.type-item:has(input:checked) .tick::after{content:"";position:absolute;left:3.4px;top:3.4px;width:5px;height:5px;border-radius:50%;background:#fff;}

/* ===== 5. 结果弹窗 ===== */
.cm-modal{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;padding:24px;}
.cm-modal.is-open{display:flex;}
.cm-modal-mask{position:absolute;inset:0;background:rgba(3,8,22,.66);backdrop-filter:blur(4px);}
.cm-modal-box{
  position:relative;width:100%;max-width:396px;
  padding:36px 26px 26px;text-align:center;
  background:var(--surface);
  border:1px solid var(--line-2);border-radius:var(--r);
  box-shadow:var(--shadow-lg);
}
.cm-modal-icon{
  width:58px;height:58px;margin:0 auto 18px;
  display:grid;place-items:center;font-size:26px;color:#fff;
  background-image:var(--grad);border-radius:50%;
  box-shadow:0 18px 34px -18px rgba(27,68,204,.95);
}
.cm-modal-box p{font-size:15px;line-height:1.85;color:var(--text-muted);}
.cm-modal-box .btn{margin-top:24px;width:100%;}

/* ===== 6. 响应式 ===== */
@media (max-width:1080px){
  .cm-layout{grid-template-columns:1fr;gap:26px;}
  .cm-aside{position:static;order:2;}
  .cm-card{order:1;}
}
@media (max-width:880px){
  .cm-main{padding:40px 20px 32px;}
  .type-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:640px){
  .cm-main{padding:30px 18px 26px;}
  .cm-aside{padding:24px 20px 20px;}
  .cm-card{padding:24px 20px 22px;}
  .cm-card-head h2{font-size:19px;}
  .type-item{font-size:13.5px;padding:11px 12px;}
  .cm-card .form-actions{flex-direction:column;align-items:stretch;gap:12px;}
  .cm-card .form-actions .btn{width:100%;}
  .form-tip{text-align:center;}
}