body.admin-portal-open { overflow: hidden; }
.admin-portal-trigger { appearance: none; position: relative; gap: 7rem; margin-left: 3rem; padding: 9rem 13rem !important; border: 1rem solid rgba(240,76,53,.13) !important; color: #bba9a4 !important; background: linear-gradient(145deg,rgba(43,10,8,.52),rgba(10,3,3,.62)) !important; box-shadow: inset 0 1rem rgba(255,255,255,.025); font: inherit; font-size: 11rem !important; font-weight: 850 !important; }
.admin-portal-trigger::before { width: 6rem; height: 6rem; border-radius: 50%; background: #8d2720; box-shadow: 0 0 9rem rgba(226,59,40,.28); content: ''; transition: background .2s ease,box-shadow .2s ease; }
.admin-portal-trigger:hover,.admin-portal-trigger[aria-expanded="true"] { border-color: rgba(240,76,53,.4) !important; color: #fff1ec !important; background: linear-gradient(145deg,rgba(105,18,12,.34),rgba(24,5,4,.72)) !important; }
.admin-portal-trigger:hover::before,.admin-portal-trigger[aria-expanded="true"]::before { background: #f04c35; box-shadow: 0 0 13rem rgba(240,76,53,.7); }
.admin-portal[hidden] { display: none !important; }
.admin-portal { position: fixed; inset: 0; z-index: 1450; display: grid; justify-items: end; color: #fff4ef; }
.admin-portal-backdrop { position: absolute; inset: 0; background: rgba(3,0,0,.82); opacity: 0; backdrop-filter: blur(12rem); transition: opacity .3s ease; }
.admin-portal-dialog { position: relative; width: min(1440rem,calc(100% - 34rem)); height: 100%; overflow-y: auto; border-left: 1rem solid rgba(240,72,49,.25); background: radial-gradient(circle at 8% 0,rgba(151,24,16,.16),transparent 32%),linear-gradient(rgba(240,72,49,.018) 1rem,transparent 1rem),linear-gradient(90deg,rgba(240,72,49,.018) 1rem,transparent 1rem),linear-gradient(145deg,rgba(22,5,4,.99),rgba(5,1,1,.995)); background-size: auto,64rem 64rem,64rem 64rem,auto; box-shadow: -36rem 0 120rem rgba(0,0,0,.72); opacity: 0; transform: translateX(48rem); transition: opacity .35s ease,transform .42s var(--ease); }
.admin-portal-dialog::before { position: fixed; inset: 0 0 auto; z-index: 40; height: 2rem; background: linear-gradient(90deg,transparent,#8d0e08 28%,#ff4e36 60%,transparent); box-shadow: 0 0 18rem rgba(240,68,46,.5); content: ''; pointer-events: none; }
.admin-portal.is-open .admin-portal-backdrop { opacity: 1; }
.admin-portal.is-open .admin-portal-dialog { opacity: 1; transform: translateX(0); }
.admin-portal-head { position: sticky; top: 0; z-index: 30; min-height: 118rem; display: flex; align-items: center; justify-content: space-between; gap: 28rem; padding: 24rem clamp(22rem,4vw,58rem); border-bottom: 1rem solid rgba(240,72,49,.15); background: rgba(8,2,2,.9) !important; opacity: 1 !important; transform: none !important; backdrop-filter: blur(20rem); }
.admin-portal-head > div > span { color: #e86f5c; font-size: 8rem; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.admin-portal-head h2 { margin: 7rem 0 0; font-family: var(--font-display); font-size: clamp(30rem,4vw,52rem); line-height: .9; }
.admin-portal-head p { max-width: 740rem; margin: 9rem 0 0; color: #a8948f; font-size: 12rem; }
.admin-portal-close { flex: 0 0 auto; width: 46rem; height: 46rem; border: 1rem solid rgba(255,255,255,.13); border-radius: 50%; color: #fff; background: rgba(255,255,255,.035); font-size: 25rem; }
.admin-portal-session { display: flex; min-height: 54rem; align-items: center; justify-content: flex-end; gap: 12rem; padding: 8rem clamp(22rem,4vw,58rem); border-bottom: 1rem solid rgba(255,255,255,.05); color: #a99691; font-size: 11rem; }
.admin-portal-body { width: min(1320rem,calc(100% - 44rem)); margin: 0 auto; padding: 34rem 0 80rem; }
.admin-portal .panel { overflow: hidden; border: 1rem solid rgba(240,72,49,.16); border-radius: 22rem 22rem 22rem 7rem; background: linear-gradient(145deg,rgba(25,7,6,.94),rgba(8,2,2,.96)); box-shadow: 0 28rem 75rem rgba(0,0,0,.34); }
.admin-portal .panel-head { padding: 22rem 24rem; border-bottom: 1rem solid rgba(240,72,49,.13); }
.admin-portal .panel-head h2 { margin: 0; font-family: var(--font-display); font-size: 25rem; }
.admin-portal .panel-head p { margin: 7rem 0 0; color: #a99590; font-size: 12rem; line-height: 1.5; }
.admin-portal .panel-body { padding: 23rem 24rem; }
.admin-portal .login-panel { width: min(540rem,100%); margin: 60rem auto; }
.admin-portal .layout { display: grid; grid-template-columns: minmax(400rem,.9fr) minmax(540rem,1.1fr); gap: 22rem; align-items: start; }
.admin-portal form,.admin-portal .field { display: grid; gap: 10rem; }
.admin-portal form { gap: 16rem; }
.admin-portal label { color: #ddcbc6; font-size: 11rem; font-weight: 900; }
.admin-portal input,.admin-portal textarea,.admin-portal select { width: 100%; padding: 13rem 14rem; outline: 0; border: 1rem solid rgba(240,72,49,.17); border-radius: 12rem 12rem 12rem 4rem; color: #fff; background: rgba(4,1,1,.78); font: inherit; }
.admin-portal textarea { min-height: 130rem; resize: vertical; }
.admin-portal input:focus,.admin-portal textarea:focus,.admin-portal select:focus { border-color: rgba(255,103,78,.65); box-shadow: 0 0 0 3rem rgba(226,59,40,.1); }
.admin-portal .btn { min-height: 43rem; padding: 10rem 14rem; border: 1rem solid rgba(240,72,49,.18); border-radius: 11rem 11rem 11rem 3rem; color: #fff; background: rgba(255,255,255,.05); font-weight: 900; }
.admin-portal .btn-primary { border: 0; background: linear-gradient(135deg,#e23b28,#8e130d); }
.admin-portal .btn-danger { color: #ffafa2; background: rgba(226,59,40,.08); }
.admin-portal .steam-row { display: grid; grid-template-columns: 1fr auto; gap: 9rem; }
.admin-portal .hint { margin: 0; color: #81736f; font-size: 10rem; }
.admin-portal .connection-card { margin-bottom: 20rem; padding: 14rem 16rem; border: 1rem solid rgba(85,224,157,.2); border-radius: 14rem; color: #c9f5dc; background: rgba(85,224,157,.06); font-size: 12rem; }
.admin-portal .machine-fields { display: none !important; }
.admin-portal .steam-step { max-height: 260rem; overflow: hidden; opacity: 1; transition: max-height .5s ease,opacity .3s ease; }
.admin-portal .details-stage { max-height: 0; overflow: hidden; opacity: 0; pointer-events: none; transition: max-height .65s ease,opacity .35s ease; }
.admin-portal #gameForm.import-ready .steam-step { max-height: 0; opacity: 0; pointer-events: none; }
.admin-portal #gameForm.import-ready .details-stage { max-height: 1050rem; opacity: 1; pointer-events: auto; }
.admin-portal .steam-preview { display: none; overflow: hidden; border: 1rem solid rgba(240,72,49,.17); border-radius: 16rem; }
.admin-portal .steam-preview.show { display: grid; grid-template-columns: 145rem 1fr; }
.admin-portal .steam-preview img { width: 100%; height: 100%; object-fit: cover; }
.admin-portal .steam-preview-body { padding: 15rem; }
.admin-portal .preview-chips,.admin-portal .form-actions,.admin-portal .admin-meta,.admin-portal .admin-game-actions { display: flex; flex-wrap: wrap; gap: 8rem; }
.admin-portal .comment-focus,.admin-portal .coop-editor { display: grid; gap: 13rem; margin-top: 15rem; padding: 17rem; border: 1rem solid rgba(240,72,49,.15); border-radius: 16rem; background: rgba(120,18,12,.06); }
.admin-portal .coop-editor-head { display: flex; justify-content: space-between; gap: 14rem; }
.admin-portal .coop-player-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10rem; }
.admin-portal .coop-toggle { display: flex; align-items: center; gap: 7rem; white-space: nowrap; }
.admin-portal .coop-toggle input { width: auto; }
.admin-portal .catalog-head { display: flex; justify-content: space-between; gap: 12rem; }
.admin-portal .count { color: #ff8c78; font-weight: 900; }
.admin-portal .catalog-controls { display: grid; grid-template-columns: 1fr minmax(200rem,.42fr); gap: 12rem; padding: 16rem 20rem; border-bottom: 1rem solid rgba(240,72,49,.13); }
.admin-portal .catalog-search,.admin-portal .catalog-sort { display: grid; gap: 7rem; }
.admin-portal .catalog-search-field { position: relative; }
.admin-portal .catalog-search input { padding-right: 42rem; }
.admin-portal .catalog-search-clear { position: absolute; top: 50%; right: 7rem; width: 30rem; height: 30rem; padding: 0; transform: translateY(-50%); }
.admin-portal .game-list { display: grid; gap: 11rem; }
.admin-portal .admin-game { overflow: hidden; display: grid; grid-template-columns: 128rem 1fr; border: 1rem solid rgba(240,72,49,.13); border-radius: 15rem 15rem 15rem 5rem; background: rgba(255,255,255,.025); }
.admin-portal .admin-cover { min-height: 126rem; background: #100404; }
.admin-portal .admin-cover img { width: 100%; height: 100%; object-fit: cover; }
.admin-portal .admin-game-body { padding: 14rem; }
.admin-portal .admin-game-top { display: flex; justify-content: space-between; gap: 14rem; }
.admin-portal .admin-game h3 { margin: 0 0 7rem; font-size: 18rem; }
.admin-portal .admin-game p { margin: 0; color: #a99590; font-size: 11rem; line-height: 1.5; }
.admin-portal .icon-btn,.admin-portal .meta-pill { padding: 7rem 9rem; border: 1rem solid rgba(240,72,49,.15); border-radius: 9rem; color: #fff; background: rgba(255,255,255,.04); font-size: 9rem; font-weight: 900; }
.admin-portal .meta-pill.coop { color: #c9ffe2; }.admin-portal .meta-pill.draft,.admin-portal .icon-btn.delete { color: #ff9f92; }
.admin-portal .notice { display: none; position: sticky; top: 120rem; z-index: 25; margin-bottom: 15rem; padding: 13rem 15rem; border-radius: 12rem; backdrop-filter: blur(12rem); }
.admin-portal .notice.show { display: block; }.admin-portal .notice.success { background: rgba(85,224,157,.12); }.admin-portal .notice.error { background: rgba(226,59,40,.14); }.admin-portal .notice.info { background: rgba(240,115,80,.12); }
.admin-portal .duplicate-modal { position: fixed; inset: 0; z-index: 1600; display: grid; place-items: center; padding: 18rem; }.admin-portal .duplicate-modal[hidden] { display: none !important; }
.admin-portal .duplicate-backdrop { position: absolute; inset: 0; background: rgba(3,0,0,.85); }.admin-portal .duplicate-dialog { position: relative; width: min(500rem,100%); padding: 28rem; border: 1rem solid rgba(240,72,49,.3); border-radius: 22rem; background: #160504; }
.admin-portal .duplicate-actions { display: flex; justify-content: flex-end; gap: 9rem; margin-top: 22rem; }
@media (min-width: 961px) {
  .admin-portal .layout > .panel {
    position: static;
    max-height: calc(100dvh - 168rem);
    overflow-y: auto;
    overscroll-behavior-y: contain;
    scrollbar-width: none;
  }
  .admin-portal .layout > .panel::-webkit-scrollbar { width: 0; height: 0; }
}
@media (max-width: 960px) { .admin-portal-dialog { width: 100%; } .admin-portal .layout { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .admin-portal-trigger { display: inline-flex !important; margin-left: 0; padding-inline: 10rem !important; font-size: 9rem !important; } }
@media (max-width: 650px) { .admin-portal-head { align-items: flex-start; padding: 20rem 16rem; }.admin-portal-head p { display: none; }.admin-portal-body { width: calc(100% - 20rem); padding-top: 18rem; }.admin-portal-session { padding-inline: 14rem; }.admin-portal .steam-row,.admin-portal .catalog-controls,.admin-portal .coop-player-fields { grid-template-columns: 1fr; }.admin-portal .admin-game { grid-template-columns: 1fr; }.admin-portal .admin-cover { max-height: 210rem; }.admin-portal .admin-game-top,.admin-portal .coop-editor-head { flex-direction: column; } }
@media (prefers-reduced-motion: reduce) { .admin-portal-backdrop,.admin-portal-dialog { transition-duration: .001ms; } }
