:root{
    --ink:#0b1220;
    --slate:#0f172a;
    --blue:#2563eb;
    --muted:#64748b;
    --line:#e5e7eb;
    --bg:#f5f7fb;
  }
  
  *{ box-sizing:border-box; }
  html,body{ height:100%; }
  body{
    font-family: 'Noto Sans KR', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
    background: var(--bg);
    color: var(--ink);
  }
  
  .container-1280{ max-width:1280px; margin:0 auto; padding:0 24px; }
  
  .card{
    background:#fff;
    border:1px solid rgba(15,23,42,.08);
    border-radius:18px;
    box-shadow: 0 14px 40px rgba(2,6,23,.08);
  }
  
  .badge{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:8px 12px;
    border-radius:999px;
    font-weight:700;
    font-size:12px;
  }
  
  .badge-blue{ background:rgba(37,99,235,.10); color:#1d4ed8; }
  .badge-slate{ background:rgba(15,23,42,.08); color:#0f172a; }
  
  .btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    padding:12px 16px;
    border-radius:14px;
    font-weight:800;
    transition: .18s ease;
    border:1px solid transparent;
  }
  
  .btn-primary{
    background:var(--blue);
    color:#fff;
    box-shadow: 0 14px 30px rgba(37,99,235,.25);
  }
  .btn-primary:hover{ transform: translateY(-1px); filter:brightness(1.02); }
  
  .btn-ghost{
    background:#fff;
    border-color: rgba(15,23,42,.12);
    color: var(--slate);
  }
  .btn-ghost:hover{ transform: translateY(-1px); border-color: rgba(37,99,235,.35); }
  
  .nav-link{
    color: rgba(15,23,42,.72);
    font-weight:700;
    font-size:14px;
    padding:10px 12px;
    border-radius:12px;
    transition:.15s ease;
  }
  .nav-link:hover{ background: rgba(37,99,235,.08); color:#1d4ed8; }
  
  .hero{
    position:relative;
    overflow:hidden;
    border-radius:26px;
    border:1px solid rgba(15,23,42,.08);
    background:
      radial-gradient(900px 500px at 10% 20%, rgba(37,99,235,.20), transparent 55%),
      radial-gradient(900px 500px at 60% 70%, rgba(15,23,42,.16), transparent 60%),
      #ffffff;
  }
  
  .hero-right{
    position:absolute;
    right:0; top:0; bottom:0;
    width: 34%;
    background: linear-gradient(180deg, #0b1220, #0f172a);
  }
  
  .hero-right::before{
    content:"";
    position:absolute; inset:0;
    opacity:.12;
    background-image: radial-gradient(#fff 1px, transparent 1px);
    background-size: 18px 18px;
  }
  
  .hero-accent{
    position:absolute;
    right:34%;
    top:0; bottom:0;
    width: 14px;
    background: linear-gradient(180deg, #2563eb, #60a5fa);
  }
  
  .kpi{
    display:flex;
    gap:12px;
    padding:14px 16px;
    border-radius:16px;
    background: rgba(255,255,255,.06);
    border:1px solid rgba(255,255,255,.10);
    color:#fff;
  }
  
  .kpi small{ color: rgba(191,219,254,.92); font-weight:700; letter-spacing:.08em; }
  .kpi strong{ font-size:16px; font-weight:900; }
  
  .table{
    width:100%;
    border-collapse: separate;
    border-spacing:0;
    overflow:hidden;
    border-radius:16px;
    border:1px solid rgba(15,23,42,.10);
  }
  .table th, .table td{
    padding:14px 14px;
    border-bottom:1px solid rgba(15,23,42,.08);
    font-size:14px;
  }
  .table th{ background: rgba(15,23,42,.04); text-align:left; font-weight:900; }
  .table tr:last-child td{ border-bottom:0; }
  
  .footer{
    color: rgba(15,23,42,.72);
    font-size:13px;
    border-top:1px solid rgba(15,23,42,.08);
  }
  
  .toast{
    position:fixed;
    left:50%;
    bottom:24px;
    transform:translateX(-50%);
    background:#0b1220;
    color:#fff;
    padding:12px 14px;
    border-radius:14px;
    box-shadow:0 18px 36px rgba(2,6,23,.26);
    display:none;
    z-index:9999;
  }
  