/* Dedicated account workflows in the shared B theme. */
.servicePage { max-width:1040px; }
.servicePage button,.servicePage input,.servicePage textarea,.servicePage select { font:inherit; }
.servicePage button { cursor:pointer; }
.servicePage button:disabled { cursor:wait; opacity:.6; }
.servicePage .btnGhost,.servicePage .btnPrimary { min-height:44px; }
.servicePageHead { display:flex; align-items:center; gap:12px; margin:0 0 27px; }
.servicePageHead .pageTitle { margin:0; font-size:30px; }
.serviceBack { width:44px; height:44px; flex:0 0 44px; display:grid; place-items:center; padding:0; color:var(--text); border:1px solid var(--line); background:var(--panel); border-radius:50%; }
.serviceBack:hover { border-color:var(--accent-line); color:var(--accent); }
.serviceNew { margin-left:auto; display:flex; align-items:center; gap:7px; flex-shrink:0; }
.serviceHeadActions { margin-left:auto; display:flex; align-items:center; gap:10px; }
.serviceHeadActions .serviceNew { margin-left:0; }
.serviceNew .uiIcon { width:18px; height:18px; }
.servicePage h2 { margin:0 0 20px; overflow-wrap:anywhere; }
.servicePage .panel { box-shadow:none; }
.serviceSectionHead { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:44px; margin:16px 0; }
.serviceSectionHead h2 { margin:0; }
.serviceTextButton { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:44px; padding:8px 10px; border:0; border-radius:10px; color:var(--accent); background:transparent; white-space:nowrap; }
.serviceTextButton:hover { background:var(--accent-soft); }
.serviceTextButton .uiIcon { width:17px; height:17px; }
.serviceFaq { padding:0 24px; margin-bottom:28px; border:1px solid var(--line); border-radius:19px; background:var(--panel); }
.serviceFaq details+details { border-top:1px solid var(--line); }
.serviceFaq summary { padding:17px 0; min-height:54px; cursor:pointer; font-size:14px; line-height:1.6; }
.serviceFaq summary::marker { color:var(--accent); }
.serviceFaq p { font-size:14px; color:var(--dim); line-height:1.8; margin:0 0 18px; padding-left:14px; }
.serviceRecords { display:flex; flex-direction:column; gap:12px; }
.serviceRecord { display:flex; align-items:center; gap:16px; width:100%; min-width:0; padding:22px; border:1px solid var(--line); border-radius:17px; color:var(--text); background:var(--panel); text-align:left; transition:border-color .15s,background .15s; }
.serviceRecord:hover { border-color:var(--accent-line); background:var(--accent-soft); }
.serviceRecord>.uiIcon { width:18px; height:18px; flex-shrink:0; color:var(--dim); }
.serviceRecordIcon { display:grid; place-items:center; flex:0 0 42px; width:42px; height:42px; background:var(--accent-soft); color:var(--accent); border-radius:13px; }
.serviceRecordIcon .uiIcon { width:21px; height:21px; }
.serviceRecordMain { display:flex; flex:1; flex-direction:column; gap:8px; min-width:0; }
.serviceRecordMain strong { font-weight:600; font-size:17px; line-height:1.6; overflow-wrap:anywhere; }
.serviceRecordMain>span:not(.serviceBountyTop):not(.serviceProgressLine) { font-size:13px; line-height:1.6; color:var(--dim); }
.serviceDot { margin:0 8px; color:var(--dim); }
.serviceStatus { display:inline-flex; flex-shrink:0; align-items:center; min-height:27px; padding:4px 10px; border-radius:8px; color:var(--accent); background:var(--accent-soft); font-size:12px; line-height:1.5; white-space:nowrap; }
.serviceStatus.finished { background:var(--panel2); color:var(--dim); }
.serviceTabs { display:flex; gap:24px; margin:0 0 24px; border-bottom:1px solid var(--line); }
.serviceTabs button { position:relative; padding:11px 5px 16px; min-height:48px; border:0; background:none; font-size:15px; color:var(--dim); }
.serviceTabs button.active { color:var(--accent); font-weight:600; }
.serviceTabs button.active::after { content:''; position:absolute; bottom:-1px; left:0; right:0; height:2px; border-radius:2px; background:var(--accent); }
.serviceBountyTop { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }
.serviceBountyMeta { display:flex; flex-wrap:wrap; align-items:center; gap:8px 18px; }
.serviceReward { display:inline-flex; align-items:center; gap:5px; color:var(--gold); font-variant-numeric:tabular-nums; }
.serviceReward .uiIcon { width:16px; height:16px; }
.serviceProgressLine { display:flex; gap:12px; align-items:center; color:var(--dim); font-size:12px; }
.serviceProgressLine progress { flex:1; min-width:0; width:100%; height:5px; appearance:none; overflow:hidden; border:0; background:var(--line); color:var(--accent); border-radius:9px; }
.serviceProgressLine progress::-webkit-progress-bar { background:var(--line); border-radius:9px; }
.serviceProgressLine progress::-webkit-progress-value { background:var(--accent); border-radius:9px; }
.serviceProgressLine progress::-moz-progress-bar { background:var(--accent); border-radius:9px; }
.serviceProgressLine>span { min-width:32px; text-align:right; }
.serviceProgressLine.serviceDetailProgress { margin-top:28px; }
.serviceProgressLine.serviceDetailProgress progress { height:7px; }
.serviceDetailProgress strong { font-size:15px; color:var(--text); }
.serviceBountyDetail .serviceSectionHead,.serviceTicketHeading .serviceSectionHead { margin-top:-8px; }
.serviceBountyDetail h2,.serviceTicketHeading h2 { margin-bottom:14px; line-height:1.6; }
.serviceLargeReward { font-size:26px; margin:18px 0; gap:8px; }
.serviceLargeReward .uiIcon { width:23px; height:23px; }
.serviceLargeReward>span { color:var(--dim); font-size:13px; }
.serviceDescription { line-height:1.9; white-space:pre-wrap; overflow-wrap:anywhere; margin:18px 0; }
.serviceBountyFacts { display:flex; flex-wrap:wrap; gap:10px 22px; color:var(--dim); font-size:13px; }
.serviceMeta { color:var(--dim); font-size:13px; line-height:1.7; margin:12px 0 0; }
.serviceRelatedCard { display:flex; align-items:center; gap:10px; width:100%; padding:14px 0; margin-top:20px; min-height:48px; background:none; border:0; border-top:1px solid var(--line); color:var(--accent); text-align:left; }
.serviceRelatedCard>span { flex:1; min-width:0; overflow-wrap:anywhere; }
.serviceClaimSection { margin-top:28px; }
.serviceClaimSection>h2 { margin-bottom:16px; }
.serviceClaims { overflow:hidden; border:1px solid var(--line); border-radius:17px; background:var(--panel); }
.serviceClaim { display:flex; align-items:center; gap:12px; padding:18px 22px; }
.serviceClaim+.serviceClaim { border-top:1px solid var(--line); }
.serviceClaim>.serviceRecordMain strong { font-family:inherit; font-size:14px; }
.serviceClaim>span:last-child { font-size:12px; color:var(--dim); min-width:32px; text-align:right; }
.serviceQuietEmpty { text-align:center; padding:28px; color:var(--dim); border:1px dashed var(--line); border-radius:17px; }
.serviceEmpty { min-height:340px; }
.serviceEmpty p { margin:0 0 6px; color:var(--dim); }
.serviceEmpty .ipArt { width:210px; }
.serviceForm { max-width:740px; margin:0 auto; }
.serviceBountyCharacter { display:flex; gap:14px; align-items:center; margin-bottom:24px; padding:14px; border:1px solid var(--line); border-radius:14px; background:var(--panel2); }
.serviceBountyCharacter img { width:52px; height:64px; flex-shrink:0; border-radius:9px; object-fit:cover; }
.serviceBountyCharacter strong { font-family:var(--reading-font); font-size:19px; font-weight:600; overflow-wrap:anywhere; }
.serviceBountyFields { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:16px; }
.serviceBountyFields.single { grid-template-columns:minmax(0,1fr); }
.serviceBountyCost { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:18px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.serviceBountyCost>span { font-size:14px; color:var(--dim); }
.serviceBountyCost>strong { font-size:20px; color:var(--gold); font-weight:600; font-variant-numeric:tabular-nums; }
.serviceForm .formRow { display:flex; flex-direction:column; }
.servicePage input,.servicePage textarea,.servicePage select { width:100%; }
.servicePage textarea { resize:vertical; }
.serviceCounter { display:block; color:var(--dim); font-size:12px; margin-top:8px; text-align:right; font-variant-numeric:tabular-nums; }
.serviceFormActions { display:flex; align-items:center; justify-content:flex-end; gap:12px; margin-top:24px; }
.serviceMessages { list-style:none; margin:20px 0; padding:0; display:flex; flex-direction:column; gap:16px; }
.serviceMessages>li { padding:23px 26px; background:var(--panel); border:1px solid var(--line); border-radius:18px; }
.serviceMessages>li.staff { background:var(--accent-soft); border-color:var(--accent-line); }
.serviceMessageHead { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.serviceMessageHead strong { font-size:14px; }
.serviceMessageHead time { color:var(--dim); font-size:12px; }
.serviceMessages p { white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.9; font-size:15px; margin:12px 0 0; }
.serviceReply>label { display:block; margin-bottom:12px; font-size:14px; }
.serviceReply>textarea { display:block; min-height:112px; border:1px solid var(--line); background:var(--input-bg); color:var(--text); padding:14px; border-radius:12px; line-height:1.7; }
.serviceReplyFoot { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:14px; }
.serviceReplyFoot>.serviceCounter { margin:0; }
.serviceConfirm { margin:18px 0; padding:20px 24px; border:1px solid var(--accent-line); border-radius:17px; background:var(--accent-soft); }
.serviceConfirm>strong { font-size:16px; }
.serviceConfirm>p { color:var(--dim); line-height:1.7; font-size:14px; margin:8px 0 0; }
.serviceConfirm .serviceFormActions { margin-top:15px; }
.serviceClosed { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:8px; color:var(--dim); font-size:14px; }
.serviceClosed>.uiIcon { width:17px; height:17px; }
.serviceNotice { margin:0 0 20px; padding:13px 17px; border:1px solid var(--accent-line); border-radius:12px; color:var(--accent); background:var(--accent-soft); font-size:14px; line-height:1.7; }
.serviceError { color:var(--danger,#c04b62); font-size:14px; line-height:1.7; overflow-wrap:anywhere; }
.serviceErrorBox { text-align:center; padding:23px; border:1px solid var(--line); background:var(--panel); border-radius:16px; margin:18px 0; }
.serviceErrorBox p { overflow-wrap:anywhere; color:var(--dim); line-height:1.7; margin:0 0 14px; }
.serviceLoading { display:flex; align-items:center; justify-content:center; gap:9px; padding:28px; color:var(--dim); font-size:14px; }
.serviceLoading .uiIcon { width:17px; height:17px; animation:serviceSpin 1.2s linear infinite; }
.serviceLoadMore { display:block; min-width:150px; margin:24px auto 0; }
@keyframes serviceSpin { to { transform:rotate(360deg); } }
@media (max-width:920px) {
  .servicePageHead { gap:10px; margin-bottom:22px; }
  .servicePageHead .pageTitle { font-size:25px; }
  .serviceNew { font-size:13px!important; padding:8px 12px!important; }
  .serviceBack { flex-basis:44px; }
  .serviceRecord { padding:18px; gap:12px; }
}
@media (max-width:520px) {
  .servicePage { padding-top:23px!important; }
  .servicePageHead { flex-wrap:wrap; gap:10px; }
  .servicePageHead .pageTitle { font-size:24px; }
  .serviceHeadActions { flex-basis:100%; justify-content:flex-end; }
  .serviceNew { gap:5px; }
  .serviceNew .uiIcon { width:16px; height:16px; }
  .servicePage .panel { padding:20px; }
  .serviceFaq { padding:0 18px; }
  .serviceFaq summary { font-size:14px; padding:16px 0; }
  .serviceRecord { padding:17px; }
  .serviceTicketRow { display:grid; grid-template-columns:minmax(0,1fr) auto 14px; column-gap:9px; }
  .serviceTicketRow>.serviceRecordIcon { display:none; }
  .serviceRecordMain strong { font-size:16px; }
  .serviceTicketRow>.serviceRecordMain>span { font-size:12px; }
  .serviceTicketRow .serviceStatus { padding:4px 7px; }
  .serviceTicketRow>.uiIcon { width:14px; }
  .serviceBountyRow { gap:8px; }
  .serviceBountyTop { gap:10px; }
  .serviceBountyMeta { gap:5px 12px; }
  .serviceBountyMeta>span:last-child { font-size:12px; }
  .serviceClaim { flex-wrap:wrap; gap:9px; padding:16px; }
  .serviceClaim>.serviceRecordIcon { width:34px; flex-basis:34px; height:34px; border-radius:11px; }
  .serviceClaim>.serviceRecordMain { flex-basis:80px; }
  .serviceClaim .serviceStatus { padding:4px 7px; }
  .serviceMessages>li { padding:19px 20px; }
  .serviceMessageHead { gap:8px; }
  .serviceConfirm { padding:18px; }
  .serviceFormActions>.btnPrimary { flex:1; }
  .serviceEmpty { min-height:320px; }
  .serviceEmpty .ipArt { width:190px; }
}
@media (max-width:359px) {
  .servicePageHead .pageTitle { font-size:21px; }
  .servicePageHead .serviceNew { font-size:12px!important; padding:8px!important; }
  .serviceNew .uiIcon { display:none; }
  .serviceBountyTop { flex-wrap:wrap; gap:6px; }
}
@media (prefers-reduced-motion:reduce) { .serviceLoading .uiIcon { animation:none; } .serviceRecord { transition:none; } }
