.solution-search{width:min(360px,100%)}
.solution-problem-list{display:grid;gap:10px}
.solution-problem-item{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;border:1px solid var(--line);background:#f7fbff;border-radius:7px}
.solution-problem-item small{display:block;color:var(--muted);margin-top:5px}
.solution-pager{display:flex;justify-content:center;gap:7px;margin-top:20px;flex-wrap:wrap}
.solution-pager button,.solution-tabs button{border:1px solid var(--line);background:#fff;border-radius:6px;padding:8px 12px;font-weight:800;cursor:pointer}
.solution-pager button.active,.solution-tabs button.active{color:#fff;border-color:transparent;background:linear-gradient(135deg,#5790e9,#29c8d1)}
.solution-pager button:disabled{opacity:.45;cursor:not-allowed}
.solution-pagination{width:100%;justify-content:center;gap:10px}
.solution-pagination button{min-width:48px;padding:10px 15px}
.solution-pagination button:first-child,.solution-pagination button:last-child{min-width:86px}
.solution-modal{display:none;position:fixed;inset:0;z-index:1000;align-items:center;justify-content:center;padding:24px}
.solution-modal.open{display:flex}
.solution-modal-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.58)}
.solution-modal-panel{position:relative;width:min(980px,96vw);max-height:88vh;overflow:auto;background:#fff;border-radius:8px;padding:24px;box-shadow:0 24px 70px rgba(15,23,42,.3)}
.solution-modal-close{position:absolute;right:16px;top:12px;border:0;background:transparent;font-size:2rem;cursor:pointer;color:var(--muted)}
.solution-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 12px}
.solution-code,.solution-viewer-code{min-height:420px;max-height:60vh;overflow:auto;margin:0;padding:12px 0;background:#101827;color:#e5efff;border-radius:7px;font:15px/1.7 Consolas,"Courier New",monospace;white-space:normal;text-align:left;tab-size:2}
.solution-code-line{display:grid;grid-template-columns:54px minmax(max-content,1fr);min-height:26px;align-items:start}
.solution-code-line:hover{background:rgba(91,134,229,.1)}
.solution-code-number{position:sticky;left:0;display:block;padding:0 14px 0 8px;color:#7f8ba3;background:#172033;text-align:right;user-select:none}
.solution-code-line code{display:block;padding:0 18px;white-space:pre;color:inherit;font:inherit;text-align:left}
.solution-viewer-panel{width:min(980px,94vw);max-height:88vh;overflow:auto}
.solution-language-tabs{margin:18px 0 12px}

/* Online Judge: polished solution reveal and review panel. */
.solution-trigger{
  min-width:164px;
  color:#146da2;
  border-color:rgba(54,156,213,.3);
  background:linear-gradient(135deg,#f4fbff 0%,#e9f8ff 54%,#edfffc 100%);
  box-shadow:0 8px 20px rgba(46,136,196,.11);
}
.solution-trigger::before{
  content:"";
  position:absolute;
  inset:-80% auto -80% -45%;
  z-index:0;
  width:34%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.92),transparent);
  transform:skewX(-20deg) translateX(-240%);
  transition:transform .65s ease;
}
.solution-trigger:hover{
  color:#075985;
  border-color:rgba(31,154,215,.52);
  box-shadow:0 13px 28px rgba(35,134,194,.19);
}
.solution-trigger:hover::before{transform:skewX(-20deg) translateX(620%)}
.solution-trigger>*{position:relative;z-index:1}
.solution-trigger__icon{
  display:grid;
  width:27px;
  height:27px;
  place-items:center;
  border-radius:8px;
  color:#fff;
  background:linear-gradient(135deg,#4f8fea,#28c6ce);
  box-shadow:0 5px 12px rgba(41,163,207,.24);
}
.solution-trigger__icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.solution-trigger.is-loading .solution-trigger__icon{animation:solution-trigger-pulse .8s ease-in-out infinite alternate}

.solution-viewer .judge-modal__backdrop{
  background:rgba(11,31,54,.7);
  -webkit-backdrop-filter:blur(8px) saturate(.9);
  backdrop-filter:blur(8px) saturate(.9);
}
.solution-viewer-panel{
  width:min(1040px,94vw);
  max-height:92vh;
  overflow:hidden;
  padding:0;
  border:1px solid rgba(184,219,239,.72);
  border-radius:24px;
  background:#f8fbff;
  box-shadow:0 34px 90px rgba(4,28,52,.34),0 0 0 1px rgba(255,255,255,.7) inset;
  text-align:left;
}
#solutionViewer.is-open .solution-viewer-panel{animation:solution-panel-in .42s cubic-bezier(.18,.88,.24,1.12) both}
.solution-viewer__close{
  top:18px;
  right:20px;
  z-index:4;
  display:grid;
  width:42px;
  height:42px;
  padding:0;
  place-items:center;
  border:1px solid rgba(116,154,184,.24);
  border-radius:13px;
  color:#53708b;
  background:rgba(255,255,255,.92);
  box-shadow:0 8px 18px rgba(42,91,125,.1);
  font-size:1.55rem;
}
.solution-viewer__close svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.solution-viewer__close:hover{color:#0c76ad;background:#fff;transform:rotate(4deg) translateY(-1px)}
.solution-viewer__close:focus-visible{outline:3px solid rgba(46,188,217,.3);outline-offset:3px}
.solution-viewer__header{
  position:relative;
  display:flex;
  gap:18px;
  align-items:flex-start;
  padding:28px 78px 24px 28px;
  overflow:hidden;
  border-bottom:1px solid rgba(171,213,235,.58);
  background:linear-gradient(120deg,#eef8ff 0%,#f5fbff 56%,#e9fbf8 100%);
}
.solution-viewer__header::after{
  content:"";
  position:absolute;
  right:-55px;
  bottom:-88px;
  width:230px;
  height:230px;
  border:30px solid rgba(63,194,210,.08);
  border-radius:50%;
}
.solution-viewer__mark{
  position:relative;
  z-index:1;
  flex:0 0 auto;
  display:grid;
  width:56px;
  height:56px;
  place-items:center;
  border-radius:17px;
  color:#fff;
  background:linear-gradient(145deg,#5487ed,#28cbd0);
  box-shadow:0 12px 26px rgba(41,143,206,.25),0 0 0 7px rgba(255,255,255,.64);
}
.solution-viewer__mark svg{width:29px;height:29px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.solution-viewer__header>div{position:relative;z-index:1;min-width:0}
.solution-viewer .judge-modal__eyebrow{
  margin:0 0 5px;
  color:#2587be;
  font-size:.75rem;
  letter-spacing:.12em;
  line-height:1.4;
}
.solution-viewer .judge-modal__panel h2{
  margin:0;
  overflow:hidden;
  color:#13243a;
  font-size:clamp(1.45rem,2.4vw,2rem);
  line-height:1.25;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.solution-viewer__description{margin:7px 0 0;color:#68819a;font-size:.94rem;line-height:1.6}
.solution-viewer__toolbar{
  display:flex;
  gap:16px;
  align-items:center;
  justify-content:space-between;
  padding:16px 24px 13px;
  background:#fff;
}
.solution-language-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0}
.solution-language-tabs .algorithm-chip{
  position:relative;
  overflow:hidden;
  min-height:38px;
  padding:8px 15px;
  border:1px solid #dce9f3;
  border-radius:11px;
  color:#5d7186;
  background:#f5f8fb;
  cursor:pointer;
  font-weight:800;
  transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease,color .18s ease;
}
.solution-language-tabs .algorithm-chip:hover{transform:translateY(-1px);border-color:#9edbef;color:#1680b5;background:#f1fbff}
.solution-language-tabs .algorithm-chip.featured{
  color:#fff;
  border-color:transparent;
  background:linear-gradient(135deg,#528aeb,#26c5ce);
  box-shadow:0 8px 18px rgba(52,151,210,.23);
}
.solution-copy-button{
  position:relative;
  overflow:hidden;
  display:inline-flex;
  min-height:40px;
  padding:8px 14px;
  gap:7px;
  align-items:center;
  justify-content:center;
  border:1px solid #cae2ee;
  border-radius:11px;
  color:#237ba7;
  background:#f3fbff;
  box-shadow:0 6px 15px rgba(39,125,165,.08);
  cursor:pointer;
  font-weight:800;
  transition:transform .18s ease,color .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease;
}
.solution-copy-button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.solution-copy-button:hover{transform:translateY(-1px);border-color:#78cfde;background:#eefdff;box-shadow:0 9px 19px rgba(39,125,165,.14)}
.solution-copy-button:focus-visible{outline:3px solid rgba(46,188,217,.3);outline-offset:3px}
.solution-copy-button.is-copied{color:#087c59;border-color:#91dfc6;background:#eafbf5;box-shadow:0 8px 18px rgba(29,167,118,.13)}
.solution-viewer__code-shell{margin:0 24px;border:1px solid #1f324d;border-radius:16px;overflow:hidden;background:#0e1828;box-shadow:0 14px 30px rgba(9,29,51,.17)}
.solution-viewer__code-heading{
  display:flex;
  min-height:46px;
  padding:0 17px;
  align-items:center;
  justify-content:space-between;
  color:#a8bdd4;
  border-bottom:1px solid rgba(148,180,214,.12);
  background:#142136;
}
.solution-viewer__code-heading span{display:flex;gap:9px;align-items:center}
.solution-viewer__code-heading i{width:8px;height:8px;border-radius:50%;background:#36d3a2;box-shadow:0 0 0 4px rgba(54,211,162,.12)}
.solution-viewer__code-heading strong{color:#dbeaff;font-size:.83rem;letter-spacing:.04em}
.solution-viewer__code-heading small{font-size:.76rem}
.solution-viewer-code{
  min-height:clamp(270px,42vh,470px);
  max-height:48vh;
  padding:12px 0;
  border-radius:0;
  background:#0e1828;
  scrollbar-color:#435776 #0e1828;
}
.solution-viewer-code .solution-code-number{background:#142136;color:#6f86a2}
.solution-viewer-code .solution-code-line:hover{background:rgba(83,147,224,.09)}
.solution-viewer__footer{display:flex;gap:11px;align-items:center;margin:14px 24px 20px;padding:11px 14px;border:1px solid #dceaf3;border-radius:13px;color:#54708a;background:#f1f8fc}
.solution-viewer__footer>span{display:grid;flex:0 0 auto;width:30px;height:30px;place-items:center;border-radius:9px;color:#168e6c;background:#dff8ef;font-weight:900}
.solution-viewer__footer p{display:flex;gap:4px;flex-direction:column;margin:0;line-height:1.35}
.solution-viewer__footer strong{color:#2e526c;font-size:.86rem}
.solution-viewer__footer small{color:#7890a4;font-size:.76rem}

@keyframes solution-panel-in{from{opacity:0;transform:translateY(28px) scale(.965)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes solution-trigger-pulse{to{transform:rotate(6deg) scale(.9);filter:brightness(1.12)}}

@media(max-width:700px){
  .solution-problem-item{align-items:flex-start;flex-direction:column}
  .solution-code{min-height:300px}
  .solution-viewer-panel{width:min(100%,96vw);max-height:94vh;border-radius:18px}
  .solution-viewer__header{gap:13px;padding:22px 58px 19px 18px}
  .solution-viewer__mark{width:45px;height:45px;border-radius:14px}
  .solution-viewer__description{display:none}
  .solution-viewer__toolbar{align-items:stretch;flex-direction:column;padding:13px 16px 11px}
  .solution-copy-button{align-self:flex-end}
  .solution-viewer__code-shell{margin:0 16px}
  .solution-viewer-code{min-height:280px;max-height:48vh}
  .solution-viewer__code-heading small{display:none}
  .solution-viewer__footer{margin:12px 16px 16px}
}

@media(prefers-reduced-motion:reduce){
  #solutionViewer.is-open .solution-viewer-panel,.solution-trigger.is-loading .solution-trigger__icon{animation:none}
  .solution-trigger::before{display:none}
}
