:root{
  --bg:#eef4fb;
  --bg-soft:#f7f9fd;
  --panel:#ffffff;
  --panel-2:#f8faff;
  --navy:#0e2340;
  --text:#17243a;
  --muted:#718198;
  --muted-2:#96a3b4;
  --line:#dfe7f1;
  --line-strong:#cdd9e8;
  --blue:#4779dc;
  --blue-2:#5f8ff0;
  --blue-soft:#eaf1ff;
  --violet:#7b68e8;
  --violet-soft:#f0edff;
  --mint:#46b99b;
  --mint-soft:#e8f8f3;
  --yellow:#e6ad3e;
  --yellow-soft:#fff6dc;
  --red:#e06472;
  --red-soft:#fff0f2;
  --shadow:0 14px 38px rgba(42,64,93,.10);
  --shadow-soft:0 7px 22px rgba(42,64,93,.07);
  --radius:18px;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Inter,Pretendard,"Noto Sans KR","Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--text)}
body{min-height:100vh;color-scheme:light}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.48}
body.game-app-open{
  background:
    radial-gradient(circle at 8% 12%,rgba(102,151,238,.16),transparent 25%),
    radial-gradient(circle at 92% 7%,rgba(137,111,234,.12),transparent 27%),
    linear-gradient(180deg,#f5f8fd 0%,#ecf3fa 100%);
}
body.game-app-open::before,body.game-app-open::after{content:"";position:fixed;pointer-events:none;z-index:0;opacity:.38}
body.game-app-open::before{width:110px;height:110px;left:4vw;bottom:8vh;border:2px dashed #b9cae3;border-radius:28px;transform:rotate(12deg)}
body.game-app-open::after{width:9px;height:9px;right:9vw;top:13vh;background:#9b8cf3;box-shadow:22px 18px 0 #5fcbb0,-18px 31px 0 #efc25c,34px 52px 0 #7ea6ef;transform:rotate(45deg);border-radius:2px}
#app{position:relative;z-index:1}

/* ===== APP SHELL ===== */
.app-shell{min-height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;padding:22px 16px 18px;background:rgba(255,255,255,.92);border-right:1px solid rgba(208,220,235,.95);backdrop-filter:blur(18px);display:flex;flex-direction:column;z-index:30;box-shadow:10px 0 38px rgba(48,71,102,.035)}
.brand{display:flex;align-items:center;gap:12px;padding:4px 8px 23px;margin-bottom:5px;border-bottom:1px solid #edf1f6}
.brand-mark{width:43px;height:43px;border-radius:14px;display:grid;place-items:center;color:#fff;font-size:14px;font-weight:950;letter-spacing:.03em;background:linear-gradient(135deg,#477be0,#7c6bea);box-shadow:0 9px 20px rgba(77,116,216,.22);position:relative}
.brand-mark::after{content:"✦";position:absolute;right:-7px;top:-8px;color:#e1ad38;font-size:13px;text-shadow:0 2px 8px rgba(225,173,56,.24)}
.brand-title{font-size:15px;font-weight:950;letter-spacing:.08em;color:#10243f}
.brand-sub{font-size:9px;color:#8797aa;margin-top:4px;letter-spacing:.03em}
.nav-label{font-size:9px;font-weight:950;color:#a0adbd;letter-spacing:.18em;padding:15px 10px 7px}
.nav-btn{width:100%;border:0;background:transparent;color:#586a80;min-height:43px;padding:9px 10px;border-radius:12px;display:flex;align-items:center;gap:10px;text-align:left;font-size:12px;font-weight:800;margin:2px 0;transition:.15s}
.nav-btn:hover{background:#f2f6fb;color:#234366}
.nav-btn.active{color:#285eb9;background:linear-gradient(90deg,#e9f1ff,#f3f0ff);box-shadow:inset 3px 0 0 #4e7ddd}
.nav-icon{width:24px;display:grid;place-items:center;font-size:16px;filter:saturate(.75)}
.nav-text{white-space:nowrap}
.side-foot{margin-top:auto;padding-top:15px;border-top:1px solid #edf1f6}
.user-chip{display:flex;align-items:center;gap:10px;padding:10px;border-radius:14px;background:#f7f9fc;border:1px solid #e7edf5}
.user-avatar{width:34px;height:34px;border-radius:11px;background:linear-gradient(135deg,#dfeaff,#ede8ff);color:#3a68b8;font-size:11px;font-weight:950;display:grid;place-items:center;flex:0 0 auto}
.user-chip-copy{min-width:0}.user-name{font-size:11px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-email{font-size:9px;color:#8797a9;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.main{min-width:0;min-height:100vh}
.topbar{position:sticky;top:0;z-index:25;height:76px;padding:0 28px;display:flex;align-items:center;justify-content:space-between;background:rgba(247,250,254,.84);backdrop-filter:blur(16px);border-bottom:1px solid rgba(219,229,240,.9)}
.page-kicker{font-size:9px;letter-spacing:.14em;font-weight:900;color:#94a3b7;margin-bottom:4px}.page-title{font-size:18px;font-weight:950;letter-spacing:-.02em;color:#132846}
.top-actions{display:flex;align-items:center;gap:8px}.status-pill{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;border:1px solid #d9ebe5;background:#f5fcf9;color:#39886f;font-size:9px;font-weight:900}.status-dot{width:7px;height:7px;border-radius:50%;background:#42b891;box-shadow:0 0 0 3px rgba(66,184,145,.12)}
.content{padding:28px;max-width:1500px;margin:0 auto}

/* ===== BUTTONS / FORM ===== */
.primary-btn,.soft-btn,.ghost-btn,.table-btn,.danger-btn,.icon-btn{border-radius:10px;font-weight:850;transition:.14s}
.primary-btn{border:1px solid #3d70d2;background:linear-gradient(135deg,#477bdc,#5f83df);color:#fff;padding:10px 15px;box-shadow:0 7px 16px rgba(70,117,214,.18)}
.primary-btn:hover{filter:brightness(.98);transform:translateY(-1px)}
.soft-btn{border:1px solid #d7e2f0;background:#fff;color:#345477;padding:9px 13px}.soft-btn:hover{background:#f6f9fd;border-color:#c8d7e8}
.ghost-btn{border:1px solid #dbe4ef;background:rgba(255,255,255,.82);color:#52677f;padding:8px 11px;font-size:10px}.ghost-btn:hover{background:#fff;border-color:#c8d5e6;color:#274d77}
.table-btn{border:1px solid #d7e2ed;background:#fff;color:#405d7c;padding:6px 8px;font-size:9px;white-space:nowrap}.table-btn:hover{background:#f3f7fb}.table-btn.danger,.danger-btn{border-color:#f0c7cd;color:#c04d5c;background:#fff8f9}.table-btn.danger:hover{background:#fff0f2}
.icon-btn{width:30px;height:30px;border:1px solid #d9e2ed;background:#fff;color:#45617f;font-size:14px}.icon-btn:hover:not(:disabled){background:#edf4ff;border-color:#bcd0e8}.small-btn{font-size:9px;padding:6px 9px}
.hero-action-group{display:flex;align-items:center;gap:10px}.active-counter{font-size:10px;font-weight:900;color:#4c6785;background:#f0f5fb;border:1px solid #dce6f1;padding:8px 10px;border-radius:999px}
.input,.select,.textarea,.mini-select{border:1px solid #d4deea;background:#fff;color:#172740;outline:none;transition:.15s}.input:focus,.select:focus,.textarea:focus,.mini-select:focus{border-color:#6d98dc;box-shadow:0 0 0 3px rgba(86,137,213,.10)}
.input,.select{height:42px;border-radius:9px;padding:0 11px}.textarea{width:100%;min-height:110px;border-radius:9px;padding:10px 11px;resize:vertical}.textarea.tall{min-height:160px}.mini-select{height:31px;border-radius:8px;padding:0 8px;font-size:10px}
.toolbar{display:flex;gap:10px;align-items:center;margin:0 0 18px}.toolbar .select{width:190px}.search-wrap{height:42px;display:flex;align-items:center;gap:8px;flex:1;border:1px solid #d4deea;background:#fff;border-radius:10px;padding-left:12px;color:#8a9aaf;box-shadow:var(--shadow-soft)}.search-wrap .input{border:0;box-shadow:none;padding-left:0;flex:1}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.span-2{grid-column:span 2}.field label{display:block;font-size:10px;color:#455b73;font-weight:900;margin-bottom:7px}.field-help{font-size:9px;color:#8a99aa;margin-top:6px}.inline-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px}.check-line{display:flex;align-items:center;gap:8px;font-size:10px;font-weight:800;color:#465c74}.check-line input{width:16px;height:16px;accent-color:#4f7bd5}.modal-note{margin-top:14px;padding:10px 12px;border-radius:10px;background:#f3f7fc;color:#6b7e94;font-size:10px;line-height:1.55}.modal-description{font-size:11px;color:#687b92;line-height:1.65;margin:0 0 16px}.inline-error{color:#c14253;font-size:10px;min-height:15px;margin-top:8px}

/* ===== PAGE / HOME ===== */
.popup-ticker{width:100%;height:44px;display:flex;align-items:center;gap:10px;margin-bottom:18px;padding:0 12px;border:1px solid #dbe5f0;background:rgba(255,255,255,.88);border-radius:13px;box-shadow:var(--shadow-soft);overflow:hidden;text-align:left;color:#40566f}
.popup-ticker:hover{border-color:#c6d6e8;background:#fff}.popup-ticker-icon{font-size:15px;flex:0 0 auto}.popup-ticker-window{position:relative;overflow:hidden;flex:1;height:100%;display:flex;align-items:center;mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent)}.popup-ticker-track{display:flex;align-items:center;width:max-content;white-space:nowrap;animation:tickerMove 36s linear infinite}.popup-ticker:hover .popup-ticker-track{animation-play-state:paused}.ticker-pass{display:inline-flex;align-items:center;gap:12px}.ticker-item{display:inline-flex;align-items:center;gap:7px;font-size:10px}.ticker-item strong{color:#263f5d}.ticker-item>span:last-child{color:#7b899a}.ticker-label{font-size:8px;background:#edf3ff;color:#4d72b4;border:1px solid #d6e2f6;padding:3px 6px;border-radius:999px}.ticker-sep{display:inline-block;color:#b5a8ee;padding:0 18px}.popup-ticker-open{font-size:9px;font-weight:900;color:#5a79a5;flex:0 0 auto}
@keyframes tickerMove{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.game-hero{position:relative;overflow:hidden;min-height:250px;margin-bottom:20px;border:1px solid #dce6f2;border-radius:24px;padding:34px 38px;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(120deg,#ffffff 0%,#f1f6ff 48%,#f3efff 100%);box-shadow:var(--shadow)}
.game-hero::before{content:"";position:absolute;width:260px;height:260px;border-radius:50%;right:-80px;top:-100px;background:rgba(117,103,229,.08)}.game-hero::after{content:"";position:absolute;width:170px;height:170px;border-radius:50%;right:180px;bottom:-125px;background:rgba(73,184,154,.08)}
.game-hero-copy{position:relative;z-index:2;max-width:650px}.hero-eyebrow,.section-eyebrow{font-size:9px;letter-spacing:.18em;font-weight:950;color:#7486a2;margin-bottom:8px}.game-hero h1{margin:0;font-size:38px;line-height:1.15;letter-spacing:-.045em;color:#10243f}.game-hero h1 span{color:#4c74ce}.game-hero p{font-size:12px;line-height:1.75;color:#6e7f95;margin:14px 0 21px}.hero-actions{display:flex;gap:9px}
.game-hero-art{position:relative;width:300px;height:185px;flex:0 0 300px;z-index:2}.art-orb{position:absolute;display:grid;place-items:center;border-radius:26px;background:#fff;border:1px solid rgba(208,219,235,.9);box-shadow:0 14px 34px rgba(69,92,125,.12)}.orb-a{width:94px;height:94px;font-size:43px;right:54px;top:10px;transform:rotate(6deg)}.orb-b{width:56px;height:56px;font-size:24px;right:6px;bottom:12px;transform:rotate(-7deg);background:#fff8e8}.art-star{position:absolute;color:#8778e8;font-size:24px}.star-a{right:11px;top:2px}.star-b{left:25px;bottom:24px;color:#55bca0}.pixel-card{position:absolute;left:58px;top:72px;width:115px;height:82px;border-radius:15px;background:linear-gradient(135deg,#eef4ff,#f6f2ff);border:1px solid #d8e2f1;box-shadow:0 10px 25px rgba(68,89,121,.09);padding:13px 14px;display:flex;flex-direction:column}.pixel-card span{font-size:8px;letter-spacing:.15em;color:#8b9bb0;font-weight:900}.pixel-card strong{font-size:23px;color:#445e94;margin-top:4px}.pixel-card small{font-size:8px;color:#4ca886;font-weight:900;margin-top:auto}
.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:20px}.metric-card{background:#fff;border:1px solid #e0e8f1;border-radius:17px;padding:17px 18px;display:flex;align-items:center;gap:14px;box-shadow:var(--shadow-soft)}.metric-icon{width:43px;height:43px;border-radius:14px;display:grid;place-items:center;font-size:20px}.metric-icon.blue{background:var(--blue-soft)}.metric-icon.violet{background:var(--violet-soft)}.metric-icon.mint{background:var(--mint-soft)}.metric-label{font-size:10px;color:#687b92;font-weight:850}.metric{font-size:24px;font-weight:950;color:#173252;line-height:1.05;margin:3px 0}.metric-unit{font-size:12px;color:#8c9bad}.card-sub{font-size:8px;color:#9aa7b7;letter-spacing:.05em}
.section-block{margin:0 0 20px;padding:22px;background:rgba(255,255,255,.78);border:1px solid #e0e8f1;border-radius:20px;box-shadow:var(--shadow-soft)}.section-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-end;margin-bottom:15px}.section-head h2{margin:0;color:#172e4c;font-size:17px;letter-spacing:-.02em}.section-head p{font-size:10px;color:#8190a3;margin:5px 0 0}
.page-hero{padding:4px 2px 20px;display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.page-hero h1{font-size:25px;letter-spacing:-.035em;margin:0;color:#132b4a}.page-hero p{font-size:11px;color:#74869b;line-height:1.65;margin:7px 0 0;max-width:780px}.admin-page-hero{padding-top:0}.info-strip{display:flex;gap:11px;align-items:flex-start;background:#f5f8fd;border:1px solid #dce6f1;border-radius:13px;padding:11px 13px;margin-bottom:13px}.info-strip>span{font-size:16px}.info-strip strong{font-size:10px;color:#354f6f}.info-strip p{font-size:9px;color:#8290a1;margin:3px 0 0;line-height:1.5}

/* ===== GRID / MARKET ===== */
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px}.col-12{grid-column:span 12}.col-8{grid-column:span 8}.col-6{grid-column:span 6}.col-4{grid-column:span 4}.card{background:#fff;border:1px solid #e0e8f1;border-radius:17px;box-shadow:var(--shadow-soft)}
.market-card{overflow:hidden;background:#fff;transition:.16s}.market-card:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(51,74,104,.11);border-color:#d2deeb}.market-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:17px 18px 13px}.game-ident{display:flex;gap:11px;align-items:center;min-width:0}.game-icon{width:43px;height:43px;border-radius:14px;background:linear-gradient(135deg,#eaf2ff,#f1edff);border:1px solid #dbe5f4;display:grid;place-items:center;font-size:20px;flex:0 0 auto}.game-name{font-size:13px;font-weight:950;color:#203b5b}.server-name{font-size:9px;color:#8a99aa;margin-top:4px}.price-main{text-align:right}.price{font-size:23px;font-weight:950;color:#173352;letter-spacing:-.03em}.price-label{font-size:8px;color:#97a4b3;margin-top:4px}.change{font-size:9px;font-weight:900;margin-top:3px}.change.up{color:#e05264}.change.down{color:#3979d5}.change.flat{color:#8493a5}.provider-list{border-top:1px solid #edf1f6}.provider-row{display:grid;grid-template-columns:1.25fr .8fr 1.05fr 1.05fr;gap:8px;align-items:center;padding:10px 18px;border-bottom:1px solid #f0f3f7}.provider-row:last-child{border-bottom:0}.provider-name{font-size:10px;font-weight:900;color:#405a79}.provider-muted,.muted-small{font-size:8px;color:#96a3b3;line-height:1.45}.provider-caption{font-size:8px;color:#9aa7b7;margin-bottom:3px}.provider-value{font-size:10px;font-weight:850;color:#314b69}.provider-value.small{font-size:9px}.market-card-foot{padding:10px 18px;border-top:1px solid #edf1f6;display:flex;justify-content:space-between;align-items:center}.chart-wrap{background:#f8faff;border:1px solid #e1e9f2;border-radius:14px;padding:10px;margin-bottom:12px}.spark{width:100%;height:160px;display:block}.spark-line{fill:none;stroke:#5a85dc;stroke-width:2}.spark-fill{fill:rgba(87,132,221,.10)}

/* ===== NOTICE ===== */
.notice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.notice-card{background:#fff;border:1px solid #e0e8f1;border-radius:17px;padding:18px;box-shadow:var(--shadow-soft);min-height:175px}.notice-card.important{border-color:#f1cfd3;background:linear-gradient(180deg,#fff,#fffafb)}.notice-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px}.notice-card-head>div{display:flex;align-items:center;gap:7px}.notice-card h3{margin:0;font-size:13px;color:#243f5e}.notice-symbol{font-size:15px}.notice-body{white-space:pre-wrap;font-size:10px;line-height:1.75;color:#61738a;max-height:220px;overflow:auto;padding-right:4px}.notice-date{font-size:8px;color:#9ba7b5;margin-top:12px}.notice-mini-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.notice-mini{border:1px solid #e1e8f0;background:#fff;border-radius:14px;padding:13px}.notice-mini.important{background:#fffafb;border-color:#f1d5d9}.notice-mini-top{display:flex;align-items:center;gap:6px}.notice-mini-top strong{font-size:10px;color:#344d6a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notice-mini p{font-size:9px;line-height:1.55;color:#7c8b9d;margin:8px 0}.notice-mini small{font-size:8px;color:#a0abb8}

/* ===== TABLE / ADMIN ===== */
.table-wrap{overflow:auto;background:#fff;border:1px solid #dee7f1;border-radius:16px;box-shadow:var(--shadow-soft)}
table{width:100%;border-collapse:collapse;min-width:780px}th{background:#f6f8fb;color:#77889d;font-size:8px;letter-spacing:.08em;text-transform:uppercase;font-weight:950;text-align:left;padding:11px 12px;border-bottom:1px solid #e4ebf2}td{font-size:9.5px;color:#425870;padding:11px 12px;border-bottom:1px solid #eef2f6;vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafcff}.action-cell{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.user-actions{min-width:260px}.user-table-wrap table{min-width:1120px}.order-actions{white-space:nowrap}.order-chip{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:#edf3fb;color:#58749a;font-size:9px;font-weight:950}.compact-table table{min-width:520px}
.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 7px;font-size:7.5px;font-weight:950;border:1px solid transparent;white-space:nowrap}.badge.admin{color:#6953c6;background:#f1edff;border-color:#ded5ff}.badge.important{color:#c34d5a;background:#fff0f2;border-color:#f2c8cd}.badge.active{color:#2f8b6c;background:#edf9f5;border-color:#ccebdd}.badge.off{color:#7e8a99;background:#f2f4f7;border-color:#e1e6ec}.badge.source,.badge.normal{color:#4d6d95;background:#f0f5fb;border-color:#d8e4f0}.badge.warning{color:#a87418;background:#fff7e4;border-color:#efdfb5}.badge.locked{color:#bd4e5a;background:#fff1f2;border-color:#efc8cd}.badge.self{color:#3c6fb8;background:#edf4ff;border-color:#d4e3fb}
.loading-state,.empty-state{border:1px dashed #d5dfeb;background:rgba(255,255,255,.7);border-radius:15px;padding:30px;text-align:center;color:#8b99aa;font-size:10px}.empty-state.error{color:#bc4d5a;border-color:#edcbd0;background:#fff8f9}

/* ===== MODAL / POPUP ===== */
.modal-backdrop{position:fixed;inset:0;background:rgba(30,45,67,.28);display:flex;align-items:center;justify-content:center;z-index:200;padding:20px;backdrop-filter:blur(6px)}.modal{width:min(570px,100%);max-height:90vh;overflow:auto;background:#fff;border:1px solid #e0e7f0;border-radius:21px;box-shadow:0 30px 90px rgba(35,52,77,.24);padding:22px}.modal.wide{width:min(880px,100%)}.modal.popup-modal{width:min(590px,100%);padding:20px}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}.modal-title{font-size:15px;font-weight:950;color:#1b3655}.modal-close{border:0;background:#f3f6fa;color:#75869a;width:31px;height:31px;border-radius:9px;font-size:19px;line-height:1}.modal-close:hover{background:#eaf0f7}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}
.popup-pager{border-radius:16px;background:linear-gradient(160deg,#f8fbff,#f5f2ff);border:1px solid #dce5f2;padding:21px}.popup-pager.important{background:linear-gradient(160deg,#fffafb,#fff2f4);border-color:#f1ccd1}.popup-type-row{display:flex;justify-content:space-between;align-items:center}.popup-kind{font-size:9px;font-weight:950;letter-spacing:.08em;color:#5577a7}.popup-pager.important .popup-kind{color:#c3515e}.popup-page-count{font-size:9px;color:#8e9aaa;font-weight:900}.popup-pager h2{font-size:20px;margin:13px 0 10px;color:#1d3858;letter-spacing:-.02em}.popup-body{white-space:pre-wrap;font-size:11px;line-height:1.85;color:#5f728a;min-height:110px;max-height:320px;overflow:auto}.popup-updated{font-size:8px;color:#9ca8b6;margin-top:12px}.popup-nav{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;margin-top:18px;padding-top:15px;border-top:1px solid rgba(210,220,233,.8)}.popup-dots{display:flex;justify-content:center;gap:5px}.popup-dots i{display:block;width:6px;height:6px;border-radius:50%;background:#ced8e6}.popup-dots i.active{background:#5b80cc;transform:scale(1.2)}
.temp-password-card{text-align:center;padding:8px 0 2px}.temp-password-label{font-size:9px;font-weight:900;color:#8190a2}.temp-password-value{font-size:25px;font-weight:950;letter-spacing:.08em;color:#274d82;background:#f3f7fd;border:1px solid #dce6f2;border-radius:13px;padding:14px;margin:9px 0 12px;word-break:break-all}.temp-password-meta{font-size:9px;color:#8d9aab;margin-top:10px}.mail-result{font-size:9px;line-height:1.5;margin-top:10px;padding:9px;border-radius:9px}.mail-result.ok{background:#edf9f5;color:#317c65}.mail-result.warn{background:#fff7e8;color:#98722b}
.toast{position:fixed;right:22px;bottom:22px;z-index:300;max-width:380px;background:#183756;color:#fff;border-radius:12px;padding:11px 14px;font-size:10px;box-shadow:0 15px 40px rgba(28,49,75,.25);transform:translateY(14px);opacity:0;pointer-events:none;transition:.18s}.toast.show{transform:none;opacity:1}

/* ===== AUTH: Operations HUB V4.2.64 style baseline ===== */
.ops-auth-shell{min-height:100vh;display:grid;place-items:center;padding:32px 18px;background:radial-gradient(circle at 50% 34%,rgba(255,255,255,.96),rgba(240,245,250,.96) 42%,#e8eff6 75%);color:#0d1c33;color-scheme:light}
.ops-auth-card{width:min(468px,100%);background:#fff;border:1px solid #e7ecf2;border-radius:24px;box-shadow:0 24px 70px rgba(35,58,85,.16);padding:28px 30px 30px}.ops-auth-card-signup{width:min(468px,100%)}
.ops-auth-brand{display:flex;align-items:center;gap:16px;margin:0 0 29px}.ops-auth-logo{width:40px;height:40px;border-radius:13px;background:linear-gradient(135deg,#2f66c3,#6d85ef);display:grid;place-items:center;color:#fff;font-size:14px;font-weight:950;box-shadow:0 8px 18px rgba(47,102,195,.22)}.ops-auth-brand-title{font-size:16px;letter-spacing:.08em;font-weight:950;color:#071a33}.ops-auth-brand-sub{font-size:11px;color:#8091a8;margin-top:5px}.ops-auth-eyebrow{font-size:13px;letter-spacing:.16em;color:#6e819e;font-weight:900;margin-bottom:8px}.ops-auth-heading{margin:0 0 7px;font-size:30px;line-height:1.17;letter-spacing:-.035em;color:#091b32}.ops-auth-description{margin:0 0 27px;color:#71839d;font-size:13px;line-height:1.65}.ops-auth-form{display:block}.ops-auth-label{display:block;font-size:12px;font-weight:900;color:#33435a;margin:0 0 8px}.ops-auth-label-note{font-size:10px;color:#8493a6;font-weight:600}
.ops-auth-input{display:block;width:100%;height:50px;border:1px solid #d2dce7;border-radius:11px;background:#fff!important;color:#0d1c33!important;padding:0 14px;font-size:15px;line-height:50px;outline:none;margin:0 0 17px;transition:border-color .15s,box-shadow .15s;-webkit-text-fill-color:#0d1c33}.ops-auth-input::placeholder{color:#7f8a98;opacity:1}.ops-auth-input:focus{background:#fff!important;border-color:#5f8dd0;box-shadow:0 0 0 3px rgba(71,126,198,.12)}
.ops-auth-input:-webkit-autofill,.ops-auth-input:-webkit-autofill:hover,.ops-auth-input:-webkit-autofill:focus,.ops-auth-input:-webkit-autofill:active{-webkit-text-fill-color:#0d1c33!important;-webkit-box-shadow:0 0 0 1000px #fff inset!important;box-shadow:0 0 0 1000px #fff inset!important;caret-color:#0d1c33!important;border:1px solid #d2dce7!important;transition:background-color 99999s ease-out 0s}.ops-auth-input:-webkit-autofill:focus{border-color:#5f8dd0!important;box-shadow:0 0 0 1000px #fff inset,0 0 0 3px rgba(71,126,198,.12)!important}
.ops-auth-remember{display:flex;align-items:center;gap:10px;margin:-2px 0 18px;color:#25384f;font-size:12px;cursor:pointer;user-select:none}.ops-auth-remember input{appearance:none;-webkit-appearance:none;flex:0 0 18px;width:18px;height:18px;margin:0;border:1px solid #8b929b;border-radius:2px;background:#fff!important;box-shadow:none;cursor:pointer;display:block}.ops-auth-remember input:checked{background-color:#102038!important;border-color:#102038;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M3 8.2 6.5 12 13 4.5'/%3E%3C/svg%3E")!important;background-position:center!important;background-repeat:no-repeat!important;background-size:13px 13px!important}.ops-auth-remember input:focus-visible{outline:2px solid #7fa4d7;outline-offset:2px}.ops-auth-remember span{display:flex;align-items:center;gap:8px}.ops-auth-remember b{font-size:12px}.ops-auth-remember small{font-size:10px;color:#8291a5;font-weight:500}
.ops-auth-primary,.ops-auth-secondary{width:100%;height:49px;border-radius:11px;font-weight:900;font-size:14px;cursor:pointer}.ops-auth-primary{border:1px solid #102038;background:#102038;color:#fff;margin-top:1px}.ops-auth-primary:hover{background:#172b49}.ops-auth-primary:disabled{opacity:.52;cursor:not-allowed}.ops-auth-secondary{border:1px solid #d8e0e9;background:#fff;color:#102038;margin-top:17px}.ops-auth-secondary:hover{background:#f7f9fc}.ops-auth-link{display:block;margin:18px auto 0;border:0;background:transparent;color:#205da7;font-size:12px;font-weight:900;cursor:pointer;padding:3px 7px}.ops-auth-link:hover{text-decoration:underline}.ops-auth-domain-hint{font-size:10px;color:#8493a6;margin:-10px 0 19px}.ops-turnstile-wrap{display:flex;justify-content:center;align-items:center;min-height:68px;margin:4px 0 24px;overflow:visible}.ops-turnstile-wrap #cfTurnstileMount{width:300px;min-height:65px}.ops-auth-error,.ops-auth-success{display:none;border-radius:9px;padding:10px 12px;margin:0 0 14px;font-size:11px;line-height:1.45}.ops-auth-error.show{display:block;border:1px solid #e8a6ac;background:#fff2f3;color:#a82c38}.ops-auth-success.show{display:block;border:1px solid #a9d5b7;background:#f0fbf4;color:#176d3b}

@media(max-width:1180px){.app-shell{grid-template-columns:82px minmax(0,1fr)}.sidebar{padding:18px 9px}.brand-title,.brand-sub,.nav-text,.nav-label,.user-chip-copy{display:none}.brand{justify-content:center;padding:3px 0 20px}.nav-btn{justify-content:center}.nav-icon{width:auto}.user-chip{justify-content:center;padding:8px}.game-hero-art{width:245px;flex-basis:245px}.notice-mini-grid{grid-template-columns:1fr}.metric-grid{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:850px){.col-6,.col-4,.col-8{grid-column:span 12}.game-hero{padding:28px}.game-hero-art{display:none}.metric-grid{grid-template-columns:1fr}.notice-grid{grid-template-columns:1fr}.top-actions .status-pill,.top-actions #changePwBtn{display:none}.content{padding:20px}.provider-row{grid-template-columns:1fr 1fr}.provider-row>*:nth-child(3),.provider-row>*:nth-child(4){text-align:right}}
@media(max-width:640px){.app-shell{display:block}.sidebar{position:fixed;left:0;right:0;bottom:0;top:auto;height:64px;width:auto;z-index:90;border-right:0;border-top:1px solid #dce5ef;display:flex;align-items:center;overflow-x:auto;padding:6px 8px}.brand,.nav-label,.side-foot{display:none}.nav-btn{min-width:60px;width:60px;margin:0 2px;justify-content:center}.nav-text{display:none}.main{padding-bottom:70px}.topbar{height:auto;min-height:64px;padding:10px 14px}.content{padding:14px}.game-hero{min-height:220px;padding:24px 21px}.game-hero h1{font-size:31px}.hero-actions{flex-wrap:wrap}.page-hero{align-items:flex-start;flex-direction:column}.toolbar{align-items:stretch;flex-direction:column}.toolbar .select{width:100%}.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.inline-fields{grid-template-columns:1fr}.popup-ticker-open{display:none}.market-card-top{flex-direction:column}.price-main{text-align:left}.provider-row{grid-template-columns:1fr}.provider-row>*{text-align:left!important}.notice-mini-grid{grid-template-columns:1fr}.section-block{padding:15px}.modal{padding:18px}.popup-nav{grid-template-columns:1fr 1fr}.popup-dots{display:none}.top-actions #refreshBtn{display:none}.ops-auth-shell{padding:18px 12px;place-items:start center}.ops-auth-card{margin-top:18px;padding:24px 20px;border-radius:20px}.ops-auth-heading{font-size:27px}.ops-auth-remember span{flex-wrap:wrap;gap:3px 8px}.ops-turnstile-wrap{justify-content:center}}

/* ===== V0.4.0 BABA COMMON UI PARITY ===== */
:root{--accent:var(--blue);--accent-soft:var(--blue-soft);--danger:#b42318;--warning-bg:#fff7ed;--warning-line:#fed7aa;}
.open-button, .primary-button, .secondary-button {
  min-height: 42px; display: inline-flex; align-items: center; justify-content: center;
  border-radius: 11px; font-weight: 700; font-size: 13px; padding: 0 14px;
}
.open-button, .primary-button { background: var(--text); color: #fff; border: 1px solid var(--text); }
.open-button:hover, .primary-button:hover { opacity: .92; }
.secondary-button { background: #fff; color: var(--text); border: 1px solid var(--line); }
.secondary-button:hover { background: var(--panel-2); }
.open-button.disabled { background: #e9edf2; color: #8a95a2; border-color: #e9edf2; cursor: default; pointer-events: none; }

.empty-state {
  min-height: 300px; display: grid; place-items: center; align-content: center; gap: 8px;
  border: 1px dashed #ccd4dd; border-radius: var(--radius); color: var(--muted); background: rgba(255,255,255,.45); text-align: center;
}
.empty-icon { font-size: 34px; }
.empty-state strong { color: var(--text); }

.notice-section { margin-top: 30px; }
.notice-head { align-items: flex-start; }
.notice-help { margin: 7px 0 0; color: var(--muted); font-size: 13px; }
.notice-list { columns: 2 430px; column-gap: 16px; }
.notice-card {
  width: 100%; display: inline-block; break-inside: avoid; margin: 0 0 16px; vertical-align: top;
  background: var(--panel); border: 1px solid var(--line); border-radius: 16px; padding: 20px;
  box-shadow: 0 1px 1px rgba(15,23,36,.02);
}
.notice-card.important { border-color: #f0c36b; box-shadow: inset 4px 0 0 #d89a18; }
.notice-card-top { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.notice-level { display: inline-flex; align-items: center; min-height: 24px; padding: 0 9px; border-radius: 999px; font-size: 10px; font-weight: 800; }
.notice-level.normal { background: #eef2f6; color: #5d6875; }
.notice-level.important { background: #fff3d6; color: #9a6700; }
.notice-meta { color: var(--muted); font-size: 11px; }
.notice-card h3 { margin: 12px 0 8px; font-size: 18px; }
.notice-body { margin: 0; color: #465466; line-height: 1.72; font-size: 13px; white-space: pre-wrap; overflow-wrap: anywhere; }
.notice-actions { display: flex; gap: 10px; margin-top: 16px; }
.text-button { border: 0; background: transparent; padding: 4px 0; color: var(--accent); font-size: 12px; font-weight: 700; }
.text-button.danger { color: var(--danger); }

.modal-backdrop {
  position: fixed; inset: 0; z-index: 1000; padding: 22px;
  display: grid; place-items: center; background: rgba(9, 17, 29, .56); backdrop-filter: blur(4px);
}
.modal-card {
  width: min(620px, 100%); max-height: calc(100vh - 44px); overflow: auto;
  background: #fff; border-radius: 20px; box-shadow: 0 28px 70px rgba(0,0,0,.24); padding: 22px;
}
.modal-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; }
.modal-head h2 { margin: 0; font-size: 22px; }
.icon-button { width: 38px; height: 38px; border: 1px solid var(--line); background: #fff; border-radius: 10px; font-size: 24px; line-height: 1; color: var(--muted); }
.modal-note { margin: 10px 0 16px; color: var(--muted); font-size: 13px; }
.credential-rows { display: grid; gap: 9px; }
.credential-row {
  display: grid; grid-template-columns: 145px minmax(0, 1fr); gap: 12px; align-items: center;
  border: 1px solid var(--line); border-radius: 12px; padding: 11px 12px;
}
.credential-label { color: var(--muted); font-size: 12px; font-weight: 700; }
.credential-value-wrap { min-width: 0; display: flex; align-items: center; gap: 7px; }
.credential-value { min-width: 0; flex: 1; overflow-wrap: anywhere; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 12px; color: var(--text); }
.mini-button { flex: 0 0 auto; border: 1px solid var(--line); background: #fff; color: #4e5e70; border-radius: 8px; padding: 6px 8px; font-size: 10px; font-weight: 700; }
.security-warning { margin-top: 16px; padding: 11px 12px; border-radius: 11px; background: var(--warning-bg); border: 1px solid var(--warning-line); color: #8a4b08; font-size: 11px; line-height: 1.55; }

.notice-form { display: grid; gap: 14px; margin-top: 17px; }
.notice-form label { display: grid; gap: 7px; }
.notice-form label > span { color: #536273; font-size: 12px; font-weight: 700; }
.notice-form input, .notice-form textarea, .notice-form select {
  width: 100%; border: 1px solid var(--line); border-radius: 11px; background: #fff; color: var(--text); padding: 11px 12px; outline: none;
}
.notice-form textarea { resize: vertical; min-height: 250px; line-height: 1.68; padding: 14px 15px; }
.notice-form input:focus, .notice-form textarea:focus, .notice-form select:focus { border-color: #9ab7d8; box-shadow: 0 0 0 3px rgba(31,79,143,.09); }
.modal-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 3px; }

.toast {
  position: fixed; right: 24px; bottom: 24px; z-index: 1200;
  background: #101827; color: #fff; border-radius: 11px; padding: 11px 14px;
  box-shadow: 0 14px 34px rgba(0,0,0,.2); font-size: 12px; font-weight: 700;
.notice-dashboard {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 0 0 16px;
}
.notice-dashboard article {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 14px 16px;
}
.notice-dashboard span { display: block; color: var(--muted); font-size: 11px; font-weight: 700; margin-bottom: 6px; }
.notice-dashboard strong { display: block; color: var(--text); font-size: 18px; letter-spacing: -.02em; }
.user-create-card input, .user-create-card select,
.user-admin-controls select {
  width: 100%; border: 1px solid #d9e1e9; border-radius: 11px; padding: 12px 13px; background: #fff; color: #162235; outline: none;
}
.auth-form input:focus, .user-create-card input:focus, .user-create-card select:focus { border-color: #8eadd0; box-shadow: 0 0 0 3px rgba(36, 87, 147, .09); }
.remember-login-row {
  display: flex !important; align-items: center; gap: 10px !important; cursor: pointer; user-select: none;
  width: fit-content; margin-top: -2px;
}
.auth-form .remember-login-row > input {
  width: 18px; height: 18px; margin: 0; padding: 0; flex: 0 0 auto; accent-color: #245793; cursor: pointer;
  box-shadow: none; border-radius: 4px;
}
.remember-login-copy { display: flex; align-items: baseline; gap: 8px; color: #32445a; }
.remember-login-copy b { font-size: 12px; }
.remember-login-copy small { color: #8996a5; font-size: 10px; font-weight: 600; }
.auth-submit { min-height: 48px; margin-top: 3px; }
.auth-text-button { justify-self: center; border: 0; background: transparent; color: #315f98; font-size: 12px; font-weight: 800; padding: 4px 8px; }
.auth-text-button:hover { color: #163f72; text-decoration: underline; }
.auth-success { border: 1px solid #b9dfc8; background: #f0fbf4; color: #237044; border-radius: 10px; padding: 10px 12px; font-size: 12px; line-height: 1.5; }
.auth-error { border: 1px solid #f1c4c0; background: #fff3f2; color: #a63b34; border-radius: 10px; padding: 10px 12px; font-size: 12px; line-height: 1.5; }
.auth-error.visible { display: block; }
.auth-locked .app-shell { filter: blur(3px); pointer-events: none; user-select: none; }

.sidebar-footer { display: grid; gap: 12px; }
.account-panel { border-top: 1px solid #2c3d51; padding-top: 14px; display: grid; grid-template-columns: 38px minmax(0,1fr) 38px; gap: 10px; align-items: center; }
.account-panel[hidden] { display: none !important; }
.account-avatar { width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; background: #eaf2fb; color: #1f5797; font-weight: 900; }
.account-copy { min-width: 0; display: grid; gap: 2px; }
.account-copy strong { color: #f4f7fb; font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-copy small { color: #9eacbb; font-size: 9px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-copy span { width: fit-content; margin-top: 3px; padding: 2px 6px; border-radius: 999px; background: #24384f; color: #c9d8e8; font-size: 8px; font-weight: 800; }
.account-message-button { position: relative; width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid #3a5069; border-radius: 11px; background: #162539; color: #dbe8f5; cursor: pointer; transition: background .15s ease, border-color .15s ease, transform .15s ease; }
.account-message-button:hover, .account-message-button.active { background: #23466d; border-color: #557aa2; color: #fff; }
.account-message-button:active { transform: translateY(1px); }
.account-message-icon { font-size: 16px; line-height: 1; }
.account-message-unread { position: absolute; top: -6px; right: -6px; min-width: 18px; height: 18px; display: inline-flex; align-items: center; justify-content: center; padding: 0 5px; border: 2px solid var(--sidebar); border-radius: 999px; background: #e04f4f; color: #fff; font-size: 9px; font-weight: 900; box-shadow: 0 2px 7px rgba(0,0,0,.25); }
.account-message-unread[hidden] { display: none !important; }
.account-actions { grid-column: 1 / -1; display: grid; gap: 6px; }
.ghost-button.compact { padding: 7px 9px; font-size: 10px; }
.danger-ghost { color: #f0b6b0; border-color: #563b3b; }

.auth-modal-card { width: min(560px, 100%); }
.user-admin-modal-card { width: min(1080px, 100%); }
.user-admin-layout { margin-top: 18px; display: grid; grid-template-columns: minmax(260px, .75fr) minmax(0, 1.6fr); gap: 18px; align-items: start; }
.user-create-card { border: 1px solid var(--line); background: #f8fafc; border-radius: 15px; padding: 16px; display: grid; gap: 12px; }
.user-create-card > strong { font-size: 15px; }
.user-create-card label { display: grid; gap: 6px; }
.user-create-card label > span { color: #607084; font-size: 11px; font-weight: 800; }
.user-create-result { border: 1px solid #cbdced; background: #eef6ff; border-radius: 12px; padding: 12px; display: grid; gap: 8px; }
.user-create-result[hidden] { display: none !important; }
.user-create-result > div { display: grid; gap: 4px; }
.user-create-result span, .user-create-result small { color: #607084; font-size: 10px; }
.user-create-result code { font-size: 14px; color: #0f355f; word-break: break-all; }
.user-list-wrap { min-width: 0; }
.user-list-head { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin-bottom: 10px; }
.user-list-head span { color: #718095; font-size: 10px; }
.user-list { display: grid; gap: 9px; max-height: 570px; overflow: auto; padding-right: 3px; }
.user-admin-row { border: 1px solid var(--line); border-radius: 13px; padding: 12px; display: grid; grid-template-columns: minmax(180px,1fr) auto; gap: 14px; align-items: center; }
.user-admin-identity { min-width: 0; display: grid; gap: 3px; }
.user-admin-identity strong { font-size: 13px; }
.user-admin-identity span { color: #536273; font-size: 11px; }
.user-admin-identity small { color: #8793a1; font-size: 9px; }
.user-admin-controls { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.user-admin-controls select { width: 92px; padding: 7px 8px; font-size: 10px; }
.user-active-toggle { display: inline-flex; align-items: center; gap: 4px; color: #5d6b7a; font-size: 10px; }
.user-active-toggle input { width: auto; }
.credential-loading { padding: 18px; color: #728093; text-align: center; font-size: 12px; }

@media (max-width: 850px) {
  .user-admin-layout { grid-template-columns: 1fr; }
  .user-admin-row { grid-template-columns: 1fr; }
  .user-admin-controls { justify-content: flex-start; }
}
.notice-dashboard { margin-bottom: 18px; }
.notice-dashboard article { min-height: 78px; display: flex; flex-direction: column; justify-content: center; }
.notice-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; columns: initial; }
.notice-card {
  width: 100%; height: 356px; min-width: 0; display: flex; flex-direction: column; margin: 0;
  background: #fff; border: 1px solid #e0e6ed; border-radius: 18px; padding: 19px 20px 16px;
  box-shadow: 0 3px 14px rgba(15,23,36,.035); transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.notice-card:hover { transform: translateY(-2px); border-color: #d3dde8; box-shadow: 0 10px 28px rgba(15,23,36,.07); }
.notice-card.important { border-color: #ead8a6; box-shadow: inset 3px 0 0 #d5a12d, 0 3px 14px rgba(15,23,36,.035); }
.notice-card.important:hover { box-shadow: inset 3px 0 0 #d5a12d, 0 10px 28px rgba(15,23,36,.07); }
.notice-card-top { min-height: 27px; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; flex-wrap: nowrap; }
.notice-card-meta-group { min-width: 0; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.notice-meta { color: #8793a1; font-size: 10.5px; white-space: nowrap; }
.notice-card h3 { margin: 15px 0 9px; color: #15263b; font-size: 18px; line-height: 1.35; letter-spacing: -.025em; }
.notice-body {
  min-height: 0; flex: 1; margin: 0; padding: 1px 9px 1px 0; color: #47586b; font-size: 12.5px; line-height: 1.72;
  white-space: pre-wrap; overflow-wrap: anywhere; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #cbd6e1 transparent;
}
.notice-body::-webkit-scrollbar { width: 7px; }
.notice-body::-webkit-scrollbar-thumb { background: #cbd6e1; border-radius: 999px; }
.notice-body::-webkit-scrollbar-track { background: transparent; }
.notice-drag-handle {
  width: 24px; height: 24px; display: inline-grid; place-items: center; border: 1px solid #dce4ec; border-radius: 7px;
  background: #f8fafc; color: #7a8998; font-size: 14px; line-height: 1; cursor: grab; user-select: none;
}
.notice-drag-handle:active { cursor: grabbing; }
.notice-drag-handle.disabled { opacity: .35; cursor: not-allowed; }
.notice-card.notice-dragging { opacity: .48; transform: scale(.985); }
.notice-card.notice-drag-over { border-color: #7fa7ce; box-shadow: inset 0 0 0 2px rgba(75,125,175,.14), 0 10px 28px rgba(15,23,36,.07); }
.notice-status {
  flex: 0 0 auto; min-height: 25px; display: inline-flex; align-items: center; gap: 6px; padding: 0 9px;
  border: 1px solid currentColor; border-radius: 999px; background: #fff; font-size: 9.5px; font-weight: 850; white-space: nowrap;
}
.notice-status i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 2px color-mix(in srgb, currentColor 14%, transparent); }
.notice-status.status-ongoing { color: #16815c; background: #f4fbf7; border-color: #b9dfce; }
.notice-status.status-ended { color: #b7473f; background: #fff7f6; border-color: #ecc6c2; }
.notice-status.status-upcoming { color: #a36b0a; background: #fffaf0; border-color: #ecd69c; }
.notice-status.status-always { color: #3f68a0; background: #f5f8fd; border-color: #c8d6ea; }
.notice-actions {
  min-height: 35px; margin-top: 14px; padding-top: 11px; border-top: 1px solid #edf1f5;
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
}
.notice-view-button { border: 0; padding: 4px 0; background: transparent; color: #365f8d; font-size: 10.5px; font-weight: 850; cursor: pointer; }
.notice-view-button:hover { color: #173f6a; }
.notice-admin-actions { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.notice-actions .text-button { font-size: 10.5px; }
.notice-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.notice-view-modal-card { width: min(820px, 94vw); padding: 25px 26px 28px; }
/* V4.2.36 login popup notice */
.popup-notice-state{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:700;margin-left:8px}
.popup-notice-state.active{background:#dcfce7;color:#166534;border:1px solid #86efac}
.popup-notice-state.inactive{background:#f1f5f9;color:#64748b;border:1px solid #cbd5e1}
.login-popup-notice-backdrop{z-index:1200}
.login-popup-notice-card{max-width:620px;width:min(620px,calc(100vw - 32px));border-top:5px solid #2563eb}
.login-popup-notice-card .notice-view-title{margin-top:8px;font-size:28px;line-height:1.25}
.login-popup-notice-body{white-space:pre-wrap;max-height:48vh;overflow:auto;font-size:15px;line-height:1.7}
.popup-notice-admin-section .notice-card{position:relative}
.popup-active-field>.user-active-toggle{margin-top:8px}

/* V4.2.36 direct messages */
.message-section,.popup-notice-admin-section{margin-top:30px}
.message-help,.popup-notice-admin-help{margin:7px 0 0;color:var(--muted);font-size:12px;line-height:1.6}
.message-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:18px 0 14px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:#fff}
.message-tabs{display:flex;align-items:center;gap:8px}
.message-tab{border:1px solid #dbe3eb;background:#f8fafc;color:#526273;border-radius:10px;padding:9px 12px;font-size:12px;font-weight:800}
.message-tab.active{border-color:#9bb7d4;background:#edf5fc;color:#214f80}
.message-tab span{display:inline-flex;min-width:19px;height:19px;align-items:center;justify-content:center;margin-left:5px;padding:0 5px;border-radius:999px;background:#dbeafe;color:#1d4f91;font-size:10px}
.message-sync-status{color:#7a8795;font-size:11px;font-weight:700}
.message-list{display:grid;gap:10px}
.message-row{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;align-items:start;padding:15px 16px;border:1px solid #e2e7ec;border-radius:14px;background:#fff;box-shadow:0 2px 8px rgba(15,23,36,.025);cursor:pointer;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}
.message-row:hover{border-color:#c8d5e2;box-shadow:0 7px 20px rgba(15,23,36,.06);transform:translateY(-1px)}
.message-row.unread{border-left:4px solid #2f6da9;background:#fbfdff}
.message-row.admin-sender{background:linear-gradient(90deg,#fffaf0 0,#fff 32%)}
.message-row-avatar{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#edf2f7;color:#40546a;font-size:14px;font-weight:900}
.message-row-avatar.admin{background:#fff1cc;color:#8a5b00;border:1px solid #efcf75}
.message-row-content{min-width:0}
.message-row-head{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.message-row-head strong{font-size:12px;color:#2d4055}
.message-row-content h3{margin:6px 0 5px;font-size:14px;color:#16283d}
.message-row-content p{margin:0 0 7px;color:#647386;font-size:12px;line-height:1.55;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.message-row-content small{color:#98a2ad;font-size:10px}
.message-admin-badge,.message-unread-dot{display:inline-flex;align-items:center;min-height:20px;padding:0 7px;border-radius:999px;font-size:9px;font-weight:900;letter-spacing:.04em}
.message-admin-badge{background:#fff0c2;color:#855400;border:1px solid #edca67}
.message-unread-dot{background:#e7f1fb;color:#225d93;border:1px solid #bed5ea}
.message-compose-modal-card,.message-view-modal-card{width:min(720px,94vw)}
.message-view-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.message-sender-badge{display:inline-flex;min-height:26px;align-items:center;padding:0 10px;border-radius:999px;font-size:10px;font-weight:900;letter-spacing:.06em}
.message-sender-badge.admin{background:#fff0c2;color:#7a4d00;border:1px solid #e6be52}
.message-sender-badge.user{background:#edf2f7;color:#526273;border:1px solid #d8e0e8}
.message-view-title{margin:18px 0 8px;font-size:24px;color:#14263a;letter-spacing:-.03em}
.message-view-meta{margin:0 0 18px;padding-bottom:14px;border-bottom:1px solid #e7ecf1;color:#778596;font-size:11px}
.message-view-body{min-height:120px;max-height:50vh;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;color:#34475d;font-size:13.5px;line-height:1.8}
.message-view-actions{justify-content:flex-end}

@media (max-width:760px){
  .message-toolbar{align-items:stretch;flex-direction:column}
  .message-tabs{width:100%}.message-tab{flex:1}
  .message-row{grid-template-columns:34px minmax(0,1fr);padding:13px 12px}.message-row-avatar{width:32px;height:32px;border-radius:10px}
}

/* V4.2.40 HOME popup notice ticker + V4.2.39 multi login popup notices */
.login-popup-notice-card{touch-action:pan-y}
.login-popup-notice-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:18px}
.login-popup-notice-footer>.primary-button{min-width:110px}
.login-popup-notice-pager{margin-left:auto;display:flex;align-items:center;gap:8px;padding:5px 6px;border:1px solid #dbe3eb;border-radius:12px;background:#f8fafc}
.login-popup-pager-button{width:34px;height:32px;border:1px solid #d4dee8;border-radius:9px;background:#fff;color:#17395f;font-size:22px;font-weight:800;line-height:1;display:grid;place-items:center;cursor:pointer}
.login-popup-pager-button:hover:not(:disabled){background:#edf5fc;border-color:#9bb7d4}
.login-popup-pager-button:disabled{opacity:.32;cursor:default}
.login-popup-page-indicator{min-width:54px;text-align:center;color:#42566b;font-size:12px;font-weight:900;letter-spacing:.03em}
@media (max-width:560px){.login-popup-notice-footer{align-items:stretch}.login-popup-notice-footer>.primary-button{flex:1}.login-popup-notice-pager{margin-left:0}}

/* V4.2.40 - HOME popup notice ticker */
.home-popup-ticker {
  flex: 1 1 360px; min-width: 220px; max-width: 720px; height: 44px; align-self: flex-start;
  display: flex; align-items: center; gap: 0; margin: 0; padding: 0; overflow: hidden;
  border: 1px solid #d9e3ec; border-radius: 13px; background: rgba(255,255,255,.92); color: #26384b;
  box-shadow: 0 2px 10px rgba(15,23,36,.035); cursor: pointer; text-align: left;
  transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
.home-popup-ticker:hover { border-color: #aac1d8; background: #fff; box-shadow: 0 7px 20px rgba(31,79,143,.08); }
.home-popup-ticker:focus-visible { outline: 3px solid rgba(31,79,143,.14); outline-offset: 2px; }
.home-popup-ticker-mark {
  flex: 0 0 40px; height: 100%; display: grid; place-items: center; position: relative; z-index: 2;
  border-right: 1px solid #e3e9ef; background: #f8fbfd; color: #1f5b92; font-size: 15px; font-weight: 900;
}
.home-popup-ticker-viewport {
  flex: 1; min-width: 0; overflow: hidden; height: 100%; display: flex; align-items: center;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 22px, #000 calc(100% - 22px), transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 22px, #000 calc(100% - 22px), transparent 100%);
}
.home-popup-ticker-track {
  --popup-ticker-duration: 36s; display: inline-flex; align-items: center; width: max-content; min-width: max-content;
  will-change: transform; animation: homePopupTickerMove var(--popup-ticker-duration) linear infinite;
}
.home-popup-ticker:hover .home-popup-ticker-track { animation-play-state: paused; }
.home-popup-ticker-copy {
  flex: 0 0 auto; white-space: nowrap; padding: 0 54px 0 18px; color: #3d4e61; font-size: 12px; font-weight: 750; letter-spacing: -.01em;
}
.home-popup-ticker-copy .ticker-important { color: #b45309; font-weight: 900; }
.home-popup-ticker-copy .ticker-normal { color: #1f5b92; font-weight: 900; }
.home-popup-ticker-copy .ticker-separator { display: inline-block; padding: 0 18px; color: #a3afbb; }
@keyframes homePopupTickerMove { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .home-popup-ticker-track { animation: none; }
  .home-popup-ticker-viewport { -webkit-mask-image: none; mask-image: none; overflow-x: auto; }
}
@media (max-width: 1320px) and (min-width: 901px) {
  .topbar { flex-wrap: wrap; }
  .home-popup-ticker { order: 3; flex: 1 0 100%; max-width: none; width: 100%; }
}
@media (max-width: 900px) {
  .home-popup-ticker { width: 100%; max-width: none; min-width: 0; order: 2; }
  .top-actions { order: 3; }
}

.game-account-actions{display:grid;gap:6px;margin-top:8px}.game-account-button{width:100%;border:1px solid #dbe4ef;background:#fff;color:#405a78;border-radius:10px;padding:8px 10px;font-size:10px;font-weight:800}.game-account-button:hover{background:#f5f8fc;border-color:#c9d7e6}.game-account-button.danger{color:#b34c59;border-color:#efd4d8;background:#fffafb}.home-ticker-slot{flex:1;min-width:0;display:flex;justify-content:center;padding:0 16px}.home-ticker-slot[hidden]{display:none}.home-ticker-slot .home-popup-ticker{width:100%;max-width:720px}.notice-view-button{border:0;background:transparent;padding:4px 0;color:var(--accent);font-size:12px;font-weight:700}.notice-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.notice-status{display:inline-flex;align-items:center;gap:6px;min-height:25px;padding:0 9px;border-radius:999px;font-size:9px;font-weight:850}.notice-status i{width:6px;height:6px;border-radius:50%;background:currentColor}.status-ongoing{background:#e9f8f2;color:#26795e}.status-upcoming{background:#edf4ff;color:#3e6da5}.status-always{background:#f3efff;color:#6b5eb2}.status-ended{background:#f2f3f5;color:#7b8490}.notice-view-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.notice-view-badges{display:flex;align-items:center;gap:8px}.notice-view-title{margin:18px 0 8px;font-size:26px;color:#14263a;letter-spacing:-.03em}.notice-view-meta{margin:0 0 18px;padding-bottom:14px;border-bottom:1px solid #e7ecf1;color:#778596;font-size:11px}.notice-view-body{min-height:120px;max-height:55vh;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;color:#34475d;font-size:13.5px;line-height:1.8}.notice-view-modal-card{width:min(820px,94vw)}.notice-modal-card{width:min(720px,94vw)}body.modal-open{overflow:hidden}.user-admin-layer{z-index:1300}.login-popup-layer{z-index:1250}

/* V0.4.0 - Operations V4.2.64 common-component color tokens.
   GAME shell keeps its own theme; only same-function common UI uses the Operations baseline tokens. */
.notice-section,
.user-admin-modal-card,
.notice-modal-card,
.notice-view-modal-card,
.login-popup-notice-card {
  --panel:#ffffff;
  --panel-2:#f8fafc;
  --text:#142033;
  --muted:#6b7280;
  --line:#e4e8ee;
  --accent:#1f4f8f;
  --accent-soft:#eaf2fb;
  --danger:#b42318;
  --warning-bg:#fff7ed;
  --warning-line:#fed7aa;
}
