:root{
  --bg:#050806;
  --panel:#0b120d;
  --panel2:#111a13;
  --gold:#d9b85f;
  --gold2:#f0d985;
  --goldDark:#7c6429;
  --text:#eee8d9;
  --muted:#a89f8a;
  --line:rgba(217,184,95,.46);
  --green:#0f2a1b;
  --green2:#18402a;
  --sqLight:#d8c99b;
  --sqDark:#194c35;
  --pieceWhite:#f2dfaa;
  --pieceBlack:#171a17;
  --pieceStroke:#b58c37;
  --pieceGlow:rgba(240,217,133,.25);
  --pieceFont:"Georgia","Times New Roman",serif;
  --boardSize:min(72vh,720px,68vw);
  --page-gutter:clamp(12px,2.2vw,34px);
  --shell-width:1640px;
}

*{box-sizing:border-box}
html{min-height:100%;background:var(--bg)}
body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:"Segoe UI",Arial,sans-serif;overflow-x:hidden}
body{
  background:
    radial-gradient(circle at 50% -8%,rgba(46,94,62,.26),transparent 39%),
    radial-gradient(circle at 8% 35%,rgba(217,184,95,.09),transparent 24%),
    linear-gradient(180deg,#050806 0%,#070b08 52%,#040604 100%);
  background-attachment:fixed;
}
button,select,input{font:inherit}
button{cursor:pointer}
.majlis-shell{
  width:min(var(--shell-width),calc(100% - (var(--page-gutter) * 2)));
  min-height:100vh;margin:0 auto;padding:clamp(14px,2vw,26px) 0 clamp(28px,4vw,54px);
}
.majlis-topbar{
  min-height:78px;display:flex;align-items:center;gap:16px;
  padding:12px clamp(14px,2vw,22px);border:1px solid var(--line);border-radius:18px;
  background:linear-gradient(145deg,rgba(19,31,21,.96),rgba(6,10,7,.98));
  box-shadow:0 15px 45px rgba(0,0,0,.38),inset 0 0 40px rgba(217,184,95,.02);
  position:relative;isolation:isolate
}
.majlis-topbar:before{content:"";position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,rgba(240,217,133,.65),transparent);pointer-events:none}
.back-link{
  width:42px;height:42px;border:1px solid var(--line);border-radius:12px;
  display:grid;place-items:center;color:var(--gold2);text-decoration:none;font-size:1.3rem;background:#080d09;
  transition:transform .18s ease,border-color .18s ease,background .18s ease
}
.back-link:hover{transform:translateX(-2px);border-color:var(--gold2);background:#10180f}
.brand{display:flex;align-items:center;gap:12px;min-width:0}
.brand-mark{
  width:154px;height:26px;display:flex;align-items:center;flex:0 0 auto
}
.brand-mark img{display:block;width:100%;height:100%;object-fit:contain}
.brand h1{margin:0;color:var(--gold2);font-family:Georgia,serif;font-size:clamp(1.35rem,2.4vw,2.1rem);letter-spacing:.02em}
.brand-sub{color:var(--muted);font-size:.82rem;margin-top:3px}
.top-actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}

.ghost-btn,.dark-btn,.gold-btn{
  border-radius:11px;padding:10px 13px;font-weight:800;border:1px solid var(--line);
  transition:.18s;background:#0a0f0b;color:var(--text)
}
.ghost-btn:focus-visible,.dark-btn:focus-visible,.gold-btn:focus-visible,.mode-card:focus-visible,.back-link:focus-visible{outline:2px solid var(--gold2);outline-offset:3px}
.ghost-btn:hover,.dark-btn:hover{border-color:var(--gold2);color:var(--gold2)}
.gold-btn{
  color:#151209;background:linear-gradient(180deg,var(--gold2),#b89543);
  border-color:#f3df98;box-shadow:0 5px 18px rgba(217,184,95,.14)
}
.gold-btn:hover{filter:brightness(1.08)}
.gold-btn.full{width:100%}
.gold-btn[disabled]{cursor:not-allowed;filter:none;opacity:.62;box-shadow:none}.gold-btn[disabled]:hover{transform:none;filter:none}

.mode-strip{
  display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:clamp(12px,1.6vw,18px) 0
}
.mode-card{
  text-align:left;display:flex;align-items:center;gap:12px;min-height:76px;
  padding:13px 15px;border:1px solid rgba(217,184,95,.35);border-radius:15px;
  color:var(--text);background:linear-gradient(145deg,#0c150e,#080d09);
  box-shadow:0 7px 20px rgba(0,0,0,.2)
}
.mode-card:hover,.mode-card.active{border-color:var(--gold2);box-shadow:0 0 0 1px rgba(217,184,95,.12),0 10px 28px rgba(0,0,0,.28)}
.mode-card.active{background:linear-gradient(145deg,#15261a,#0b110d)}
.mode-card.mode-unavailable{cursor:default;opacity:.7}.mode-card.mode-unavailable:hover{border-color:rgba(217,184,95,.35);box-shadow:0 7px 20px rgba(0,0,0,.2)}
.mode-icon{font-size:1.65rem;color:var(--gold2);min-width:34px;text-align:center}
.mode-card b{display:block;color:var(--gold2);font-size:1rem}
.mode-card small{display:block;color:var(--muted);margin-top:4px;line-height:1.25}
.sponsor-mode{position:relative;overflow:hidden}
.sponsor-mode:after{
  content:"";position:absolute;inset:auto -20% -95% 20%;height:120px;
  background:radial-gradient(circle,rgba(217,184,95,.12),transparent 65%)
}

.game-layout{
  display:grid;
  grid-template-columns:minmax(235px,290px) minmax(560px,1fr) minmax(240px,310px);
  gap:clamp(12px,1.2vw,18px);align-items:start
}
.panel{
  border:1px solid var(--line);border-radius:17px;background:linear-gradient(180deg,rgba(14,23,16,.97),rgba(6,10,7,.98));
  padding:clamp(14px,1.4vw,18px);box-shadow:0 14px 36px rgba(0,0,0,.3)
}
.panel section+section{margin-top:18px;padding-top:16px;border-top:1px solid rgba(217,184,95,.16)}
.panel-title{
  color:var(--gold2);font-family:Georgia,serif;font-size:1.05rem;font-weight:800;
  margin-bottom:12px;letter-spacing:.025em
}
.field-label{display:block;color:#d9d0b9;font-size:.79rem;font-weight:700;margin:10px 0 6px}
.select-control,.number-control{
  width:100%;border:1px solid rgba(217,184,95,.35);border-radius:9px;
  background:#070c08;color:var(--text);padding:9px 10px;outline:none
}
.select-control:focus,.number-control:focus{border-color:var(--gold2);box-shadow:0 0 0 2px rgba(217,184,95,.08)}
.custom-time{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.hidden{display:none!important}
.action-row{display:flex;gap:7px;margin-top:13px}
.action-row>*{flex:1}
.theme-preview{margin-top:7px;border:1px solid rgba(217,184,95,.24);border-radius:10px;overflow:hidden}
.board-preview{height:46px;display:grid;grid-template-columns:repeat(8,1fr);background:var(--sqLight)}
.board-preview span:nth-child(odd){background:var(--sqLight)}
.board-preview span:nth-child(even){background:var(--sqDark)}
.piece-preview{height:56px;padding:8px 10px;display:flex;align-items:center;justify-content:space-between;background:#070b08}
.piece-preview span{font-family:var(--pieceFont);font-size:1.75rem;letter-spacing:4px}
.preview-white{color:var(--pieceWhite);text-shadow:0 1px 0 var(--pieceStroke),0 0 8px var(--pieceGlow)}
.preview-black{color:var(--pieceBlack);-webkit-text-stroke:.65px var(--pieceStroke);text-shadow:0 0 7px rgba(217,184,95,.15)}
.theme-note{margin-top:8px;color:#8f8878;font-size:.69rem;line-height:1.35}

.board-zone{min-width:0}
.player-bar{
  width:var(--boardSize);max-width:100%;margin:0 auto 8px;
  min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:8px 12px;border:1px solid rgba(217,184,95,.32);border-radius:12px;
  background:linear-gradient(90deg,#09100b,#101a12,#09100b)
}
.white-player{margin:8px auto 0}
.player-bar b{display:block;color:var(--gold2);font-size:.94rem}
.player-bar span{display:block;color:var(--muted);font-size:.72rem;margin-top:2px}
.clock-wrap{display:flex;align-items:center;gap:9px}
.main-clock{
  min-width:98px;text-align:center;padding:7px 10px;border-radius:9px;
  border:1px solid rgba(217,184,95,.42);background:#040704;color:#f7e7ac;
  font-family:Consolas,monospace;font-size:1.28rem;font-weight:800;letter-spacing:.04em
}
.main-clock.active{box-shadow:0 0 0 1px rgba(240,217,133,.18),0 0 20px rgba(217,184,95,.1);border-color:var(--gold2)}
.main-clock.danger{color:#ffb0a3;border-color:#a64b3d}
.move-clock{color:#9e947e;font-size:.7rem;min-width:58px;text-align:right}
.move-clock.danger{color:#ff9f8f;font-weight:800}

.board-frame{
  position:relative;
  width:var(--boardSize);
  aspect-ratio:1/1;
  max-width:100%;
  margin:0 auto;
  padding:12px;
  border-radius:16px;
  border:2px solid var(--goldDark);
  background:
    linear-gradient(45deg,transparent 44%,rgba(217,184,95,.12) 45%,transparent 47%) 0 0/36px 36px,
    linear-gradient(135deg,#0c1b11,#061008);
  box-shadow:0 22px 48px rgba(0,0,0,.45),inset 0 0 28px rgba(217,184,95,.07)
}
.board-frame:before{
  content:"";position:absolute;inset:5px;border:1px solid rgba(240,217,133,.26);border-radius:11px;pointer-events:none
}
.corner{position:absolute;width:18px;height:18px;border-color:var(--gold2);z-index:5;pointer-events:none}
.c1{left:3px;top:3px;border-left:2px solid;border-top:2px solid}
.c2{right:3px;top:3px;border-right:2px solid;border-top:2px solid}
.c3{left:3px;bottom:3px;border-left:2px solid;border-bottom:2px solid}
.c4{right:3px;bottom:3px;border-right:2px solid;border-bottom:2px solid}

.chess-board{
  width:100%;height:100%;aspect-ratio:1/1;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);
  overflow:hidden;border:1px solid rgba(0,0,0,.65);border-radius:5px;user-select:none;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.03)
}
.square{
  position:relative;display:flex;align-items:center;justify-content:center;
  min-width:0;min-height:0;cursor:pointer;
}
.square.light{background:var(--sqLight)}
.square.dark{background:var(--sqDark)}
.square.selected:after{
  content:"";position:absolute;inset:7%;border:3px solid #f2d36e;border-radius:14%;
  box-shadow:0 0 14px rgba(242,211,110,.48);pointer-events:none
}
.square.legal:before{
  content:"";position:absolute;width:20%;height:20%;border-radius:50%;
  background:rgba(9,20,12,.38);box-shadow:0 0 0 1px rgba(240,217,133,.42);z-index:2;pointer-events:none
}
.square.capture:before{
  width:78%;height:78%;background:transparent;border:4px solid rgba(150,38,28,.68);box-sizing:border-box
}
.square.last-move{box-shadow:inset 0 0 0 999px rgba(241,203,81,.16)}
.square.check{box-shadow:inset 0 0 0 999px rgba(157,42,32,.34)}

.piece{
  position:relative;z-index:3;line-height:1;font-family:var(--pieceFont);
  font-size:clamp(32px,calc(var(--boardSize)/9.7),75px);
  transform:translateY(-1%);
  transition:transform .12s ease,filter .12s ease;
}
.square:hover .piece{transform:translateY(-1%) scale(1.045)}
.piece.white{
  color:var(--pieceWhite);
  -webkit-text-stroke:.45px var(--pieceStroke);
  text-shadow:0 1px 0 #fff2,0 2px 1px #0007,0 0 9px var(--pieceGlow)
}
.piece.black{
  color:var(--pieceBlack);
  -webkit-text-stroke:.8px var(--pieceStroke);
  text-shadow:0 2px 1px #000c,0 0 8px rgba(217,184,95,.18)
}

.file-label{
  position:absolute;right:3px;bottom:1px;font-size:clamp(7px,1vw,10px);font-weight:800;
  color:rgba(0,0,0,.45);z-index:4
}
.rank-label{
  position:absolute;left:3px;top:1px;font-size:clamp(7px,1vw,10px);font-weight:800;
  color:rgba(0,0,0,.45);z-index:4
}
.dark .file-label,.dark .rank-label{color:rgba(255,255,255,.38)}

.game-status{
  width:var(--boardSize);max-width:100%;margin:9px auto 0;padding:10px 12px;
  text-align:center;border:1px solid rgba(217,184,95,.25);border-radius:10px;
  background:#080d09;color:#d8cfba;font-size:.84rem
}
.game-status strong{color:var(--gold2)}

.sponsor-badge{
  display:inline-block;padding:4px 8px;border:1px solid var(--gold);border-radius:999px;
  color:var(--gold2);font-size:.68rem;font-weight:900;letter-spacing:.12em;background:rgba(217,184,95,.08)
}
.real-game-card h2{margin:9px 0 6px;color:var(--gold2);font-family:Georgia,serif}
.real-game-card p{margin:0 0 10px;color:#c7c0ae;font-size:.79rem;line-height:1.45}
.safe-note{margin:9px 0 12px;color:#918a79;font-size:.66rem;line-height:1.35}
.player-list{display:grid;gap:7px}
.player-row{
  display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px;
  padding:8px;border:1px solid rgba(217,184,95,.18);border-radius:8px;background:#071008
}
.player-row span{font-size:.76rem}
.player-row em{font-size:.7rem;color:var(--gold2);font-style:normal}
.player-row button{font-size:.65rem;padding:5px 7px;border-radius:6px;border:1px solid #555;background:#151815;color:#777}
.locked-caption{margin-top:8px;color:#777266;font-size:.65rem;line-height:1.35}

.game-mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.game-mini-grid div{padding:7px;border:1px solid rgba(217,184,95,.16);border-radius:7px;background:#071008;text-align:center}
.game-mini-grid span{display:block;color:#8f8878;font-size:.61rem}
.game-mini-grid b{display:block;color:#ddd4bf;font-size:.72rem;margin-top:3px}
.move-list{
  margin-top:9px;max-height:255px;overflow:auto;border:1px solid rgba(217,184,95,.18);
  border-radius:8px;background:#050806;padding:8px;font-family:Consolas,monospace;font-size:.72rem
}
.move-row{display:grid;grid-template-columns:28px 1fr 1fr;gap:7px;padding:3px 0;border-bottom:1px solid rgba(255,255,255,.035)}
.move-row:last-child{border-bottom:0}
.move-num{color:#7f7869}.move-cell{color:#d8cfb7}
.empty-moves{color:#706b60;font-family:"Segoe UI",Arial,sans-serif}

.future-strip{
  margin-top:clamp(12px,1.6vw,18px);display:grid;grid-template-columns:repeat(4,1fr);gap:9px
}
.future-strip div{
  border:1px solid rgba(217,184,95,.22);border-radius:11px;padding:10px 12px;
  background:linear-gradient(145deg,#09100b,#060906)
}
.future-strip b{display:block;color:var(--gold2);font-size:.78rem}
.future-strip span{display:block;color:#8f897a;font-size:.65rem;margin-top:3px;line-height:1.25}

.toast{
  position:fixed;right:20px;bottom:20px;z-index:1000;max-width:min(420px,calc(100vw - 40px));
  padding:11px 13px;border-radius:10px;border:1px solid var(--gold);
  background:#0d160f;color:#f1e7cf;box-shadow:0 16px 35px rgba(0,0,0,.48);
  opacity:0;transform:translateY(10px);pointer-events:none;transition:.18s
}
.toast.show{opacity:1;transform:none}

@media (max-width:1180px){
  :root{--boardSize:min(68vh,680px,76vw)}
  .game-layout{grid-template-columns:230px minmax(520px,1fr)}
  .right-panel{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:14px}
  .right-panel section+section{margin:0;padding:0 0 0 14px;border-top:0;border-left:1px solid rgba(217,184,95,.16)}
}
@media (max-width:860px){
  :root{--boardSize:min(94vw,720px)}
  .majlis-shell{width:min(100% - 24px,720px);padding-top:12px}
  .mode-strip{grid-template-columns:1fr}
  .game-layout{grid-template-columns:1fr}
  .board-zone{order:1}.left-panel{order:2}.right-panel{order:3;grid-column:auto;display:block}
  .right-panel section+section{margin-top:18px;padding:16px 0 0;border-left:0;border-top:1px solid rgba(217,184,95,.16)}
  .left-panel{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  .left-panel section+section{margin:0;padding:0 0 0 16px;border-top:0;border-left:1px solid rgba(217,184,95,.16)}
  .future-strip{grid-template-columns:1fr 1fr}
  .majlis-topbar{align-items:flex-start}
  .top-actions{margin-left:auto;max-width:220px;gap:6px}
  .ghost-btn{padding:8px 10px;font-size:.78rem}
}
@media (max-width:590px){
  :root{--boardSize:min(94vw,560px)}
  .majlis-shell{width:100%;padding-top:0}
  .majlis-topbar{display:grid;grid-template-columns:auto minmax(0,1fr);border-radius:0;padding:10px;gap:9px}
  .brand-mark{width:106px;height:18px}
  .brand h1{font-size:1.22rem;line-height:1.02}
  .brand-sub{display:none}
  .mode-strip,.game-layout,.future-strip{margin-left:3vw;margin-right:3vw}
  .top-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;max-width:none;width:100%;gap:6px;margin:2px 0 0}
  .ghost-btn{min-height:44px;padding:7px 8px;font-size:.69rem;white-space:normal;line-height:1.15}
  .action-row .gold-btn,.action-row .dark-btn{min-height:44px}
  .left-panel{display:block}
  .left-panel section+section{margin-top:18px;padding:16px 0 0;border-left:0;border-top:1px solid rgba(217,184,95,.16)}
  .future-strip{grid-template-columns:1fr}
  .board-frame{padding:7px;border-radius:10px}
  .player-bar{border-radius:8px}
  .move-clock{display:none}
  .main-clock{min-width:83px;font-size:1.05rem}
}
/* Premium salon layer: visual treatment only; board geometry and game states remain unchanged. */
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 55% 34% at 50% 0%,rgba(190,146,49,.1),transparent 72%),radial-gradient(ellipse 28% 22% at 86% 46%,rgba(190,146,49,.055),transparent 75%)}
.mode-card,.left-panel>section,.right-panel>section{box-shadow:0 14px 30px rgba(0,0,0,.17)}
.left-panel>section,.right-panel>section{border-color:rgba(215,174,75,.32);background:linear-gradient(145deg,rgba(22,21,16,.93),rgba(9,10,8,.98))}
.board-frame{box-shadow:0 22px 46px rgba(0,0,0,.38),inset 0 1px rgba(255,231,166,.08)}
.square.selected:after{box-shadow:inset 0 0 0 2px rgba(255,226,128,.95),0 0 18px rgba(226,183,80,.14)}
.square.legal:before,.square.capture:before{box-shadow:0 0 0 1px rgba(255,226,128,.28),0 0 12px rgba(226,183,80,.12)}
.ghost-btn,.dark-btn,.gold-btn{transition:border-color .2s ease,color .2s ease,box-shadow .2s ease,transform .2s ease}.gold-btn:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(0,0,0,.28)}
@media(max-width:590px){body::before{background:radial-gradient(ellipse 88% 24% at 50% 0%,rgba(190,146,49,.08),transparent 76%)}.left-panel>section,.right-panel>section{box-shadow:0 10px 22px rgba(0,0,0,.16)}}
@media (max-width:390px){
  :root{--boardSize:94vw}
  .back-link{width:36px;height:36px;border-radius:10px}
  .brand-mark{display:flex;width:86px;height:15px}
  .brand h1{font-size:1.1rem}
  .top-actions{max-width:none}
  .ghost-btn{font-size:.64rem;padding:6px}
  .mode-card{min-height:68px;padding:11px}
  .mode-icon{font-size:1.35rem;min-width:28px}
}

/*
  Shared IRFAN canvas: this intentionally uses the Home stage geometry instead
  of a second Majlis surface.  Chess-specific visual language begins only in
  the working panels below, never in an outer page card.
*/
html{background:#050505}
body{
  min-height:100vh;
  background:#050505 !important;
  background-image:none !important;
  background-attachment:initial;
}
.majlis-shell{
  width:min(100%,1600px);
  min-height:100vh;
  margin:0 auto;
  padding:0 0 clamp(32px,5vw,72px);
  background:transparent;
}
.majlis-topbar{
  display:block;
  min-height:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.majlis-topbar:before{display:none}
.majlis-topbar-inner{
  width:min(100% - (var(--page-gutter) * 2),var(--shell-width));
  min-height:82px;
  margin:0 auto;
  padding:13px 0;
  display:flex;
  align-items:center;
  gap:16px;
}
.mode-strip,.game-layout,.future-strip{
  width:min(100% - (var(--page-gutter) * 2),var(--shell-width));
  margin-left:auto;
  margin-right:auto;
}
.mode-strip{margin-top:clamp(8px,1.4vw,18px);margin-bottom:clamp(14px,1.8vw,22px)}
.future-strip{margin-top:clamp(18px,2.4vw,30px)}

@media (max-width:860px){
  .majlis-topbar-inner,.mode-strip,.game-layout,.future-strip{
    width:min(100% - 24px,720px);
  }
  .majlis-topbar-inner{padding:12px 0;align-items:flex-start}
}
@media (max-width:590px){
  .majlis-topbar-inner{
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    width:100%;
    padding:10px;
    gap:9px;
  }
  .mode-strip,.game-layout,.future-strip{width:94vw}
}
@import url("/static/css/irfan-design-tokens.css");
