:root{
  --bg:#0b0e14; --bg2:#11161f; --card:#151b27; --line:#222c3d;
  --gold:#e8b96b; --gold2:#caa14e; --txt:#e7ecf3; --mut:#8a97ac;
  --good:#5fd28a; --bad:#e06b6b; --warn:#e6c15f; --blue:#5aa9e6;
}
*{box-sizing:border-box}
body{
  margin:0;font-family:'Segoe UI',system-ui,Tahoma,sans-serif;background:
    radial-gradient(1200px 600px at 80% -10%, #1b2333 0%, transparent 60%),
    var(--bg);
  color:var(--txt);line-height:1.55;
}
a{color:var(--gold);text-decoration:none}
a:hover{color:var(--gold2)}
.container{max-width:1080px;margin:0 auto;padding:24px 18px}
header.nav{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:14px 18px;border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,#10151f,#0b0e14);position:sticky;top:0;z-index:20
}
.brand{font-size:22px;font-weight:800;letter-spacing:2px;color:var(--gold);
  text-shadow:0 0 18px rgba(232,185,107,.25)}
.brand span{color:var(--txt)}
.nav-links{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.nav-links a{padding:6px 12px;border-radius:8px;color:var(--mut);font-weight:600}
.nav-links a:hover,.nav-links a.active{color:var(--txt);background:#1a2230}
.btn{display:inline-block;padding:10px 16px;border-radius:10px;border:1px solid var(--gold2);
  background:linear-gradient(180deg,#e8b96b,#caa14e);color:#1a1304;font-weight:700;
  cursor:pointer;transition:.15s}
.btn:hover{filter:brightness(1.08);color:#1a1304}
.btn.ghost{background:transparent;color:var(--gold);border-color:var(--line)}
.btn.sm{padding:6px 12px;font-size:13px}
.btn.danger{background:linear-gradient(180deg,#e06b6b,#b94f4f);border-color:#b94f4f;color:#fff}
.btn.good{background:linear-gradient(180deg,#5fd28a,#3fae6c);border-color:#3fae6c;color:#06210f}
.grid{display:grid;gap:16px}
.grid.cols-2{grid-template-columns:repeat(2,1fr)}
.grid.cols-3{grid-template-columns:repeat(3,1fr)}
.grid.cols-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:780px){.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr}}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px}
.card h3{margin:0 0 6px;color:var(--gold)}
.hero{padding:60px 0 30px;text-align:center}
.hero h1{font-size:44px;margin:0 0 10px;letter-spacing:4px;color:var(--gold);
  text-shadow:0 0 30px rgba(232,185,107,.3)}
.hero p{color:var(--mut);max-width:620px;margin:0 auto 22px}
.stat{font-size:30px;font-weight:800;color:var(--txt)}
.stat small{display:block;color:var(--mut);font-size:12px;font-weight:600;letter-spacing:1px;text-transform:uppercase}
.muted{color:var(--mut)}
.tag{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;
  text-transform:uppercase;letter-spacing:1px;border:1px solid var(--line);background:#10151f;color:var(--mut)}
.tag.open{color:var(--good);border-color:#26513a}
.tag.in_progress{color:var(--blue);border-color:#23445f}
.tag.done{color:var(--mut)}
.tag.cancelled{color:var(--bad);border-color:#5a2b2b}
.tag.pending{color:var(--warn)}
.tag.accepted{color:var(--good)}
.tag.rejected{color:var(--bad)}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line)}
th{color:var(--mut);font-size:12px;text-transform:uppercase;letter-spacing:1px}
tr:hover td{background:#121826}
input,select,textarea{width:100%;padding:10px 12px;border-radius:10px;background:#0e131c;
  border:1px solid var(--line);color:var(--txt);font-family:inherit;font-size:14px}
label{display:block;margin:10px 0 6px;font-size:13px;color:var(--mut);font-weight:600}
.flash{padding:12px 16px;border-radius:10px;margin:10px 0;border:1px solid var(--line)}
.flash.ok{border-color:#26513a;background:#10261a;color:var(--good)}
.flash.err{border-color:#5a2b2b;background:#261212;color:var(--bad)}
.flash.info{border-color:#23445f;background:#0f1c28;color:var(--blue)}
footer{border-top:1px solid var(--line);color:var(--mut);text-align:center;padding:24px;font-size:13px;margin-top:40px}
.lock{font-size:12px;color:var(--mut)}
.lock::before{content:"🔒 "}

/* ===== Graphic login landing ===== */
.lp{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;
  background:radial-gradient(1100px 700px at 50% -10%, #1a2336 0%, #0b0e14 55%)}
.lp::before,.lp::after{content:"";position:absolute;border-radius:50%;filter:blur(60px);opacity:.55;z-index:0}
.lp::before{width:520px;height:520px;background:radial-gradient(circle,#caa14e,transparent 60%);top:-120px;left:-80px;animation:drift 14s ease-in-out infinite}
.lp::after{width:460px;height:460px;background:radial-gradient(circle,#3a6ea5,transparent 60%);bottom:-140px;right:-60px;animation:drift 18s ease-in-out infinite reverse}
@keyframes drift{0%,100%{transform:translate(0,0)}50%{transform:translate(40px,30px)}}
.lp-orb{position:absolute;width:340px;height:340px;border-radius:50%;z-index:0;top:50%;left:50%;
  transform:translate(-50%,-50%);
  background:conic-gradient(from 0deg,#e8b96b,#caa14e,#3a6ea5,#e8b96b);
  filter:blur(2px);opacity:.20;animation:spin 22s linear infinite;
  mask:radial-gradient(circle,transparent 54%,#000 56%,#000 60%,transparent 62%);
  -webkit-mask:radial-gradient(circle,transparent 54%,#000 56%,#000 60%,transparent 62%)}
@keyframes spin{to{transform:translate(-50%,-50%) rotate(360deg)}}
.lp-card{position:relative;z-index:2;text-align:center;padding:46px 38px;max-width:460px;width:92%;
  background:rgba(17,22,31,.72);border:1px solid var(--line);border-radius:22px;backdrop-filter:blur(10px);
  box-shadow:0 30px 80px rgba(0,0,0,.5)}
.lp-logo{font-size:46px;font-weight:900;letter-spacing:8px;color:var(--gold);margin:0 0 4px;
  text-shadow:0 0 40px rgba(232,185,107,.5)}
.lp-logo span{color:var(--txt)}
.lp-sub{color:var(--mut);letter-spacing:3px;text-transform:uppercase;font-size:12px;margin-bottom:26px}
.lp-tag{color:var(--txt);font-size:15px;margin:0 0 28px;line-height:1.7}
.lp-btn{display:inline-flex;align-items:center;gap:10px;padding:15px 30px;border-radius:14px;font-size:16px;
  font-weight:800;border:1px solid var(--gold2);background:linear-gradient(180deg,#e8b96b,#caa14e);color:#1a1304;
  box-shadow:0 10px 30px rgba(202,161,78,.35);transition:.18s}
.lp-btn:hover{transform:translateY(-2px);filter:brightness(1.07);color:#1a1304}
.lp-foot{margin-top:22px;color:var(--mut);font-size:12px}
.lp-particles span{position:absolute;width:4px;height:4px;border-radius:50%;background:var(--gold);opacity:.5;
  z-index:1;animation:rise linear infinite}
@keyframes rise{0%{transform:translateY(20px);opacity:0}10%{opacity:.6}100%{transform:translateY(-110vh);opacity:0}}

/* Battle.net login button (rang rasmi abi) */
.lp-btn-bnet{display:inline-flex;align-items:center;justify-content:center;gap:14px;
  padding:14px 30px;border-radius:14px;border:1px solid #0f6fd0;cursor:pointer;
  background:linear-gradient(180deg,#1e9bff,#0d7fe0);
  box-shadow:0 10px 28px rgba(20,140,255,.40);transition:.18s;text-decoration:none}
.lp-btn-bnet:hover{transform:translateY(-2px);filter:brightness(1.06)}
.lp-btn-bnet span{font-weight:800;font-size:15px;color:#fff;letter-spacing:.5px;white-space:nowrap}
.lp-btn-bnet .bnet-logo{height:30px;width:auto;display:block}
