:root{
  --bg:#0e1013;
  --card:#151a21;
  --card2:#0f1319;
  --text:#e9eef5;
  --muted:#9fb0c3;
  --brand:#3b82f6;
  --brand-2:#60a5fa;
  --ring:rgba(96,165,250,.35);
  --border:rgba(255,255,255,.08);
  --success:#22c55e;
  --danger:#ef4444;
}

*{
  box-sizing:border-box;
}

html,body{
  margin:0;
  min-height:100%;
}

body{
  background:
    radial-gradient(1200px 800px at 80% -10%, rgba(96,165,250,.08), transparent),
    radial-gradient(1000px 700px at -10% 110%, rgba(59,130,246,.08), transparent),
    var(--bg);

  color:var(--text);

  font-family:
    ui-sans-serif,
    system-ui,
    -apple-system,
    Segoe UI,
    Roboto,
    Ubuntu,
    Cantarell,
    Noto Sans,
    Arial;
}

.container{
  max-width:1300px;
  margin:0 auto;
  padding:32px 20px;
}

.header{
  display:flex;
  justify-content:space-between;
  align-items:center;

  margin-bottom:24px;

  background:
    linear-gradient(180deg,rgba(255,255,255,.02),transparent),
    var(--card);

  border:1px solid rgba(255,255,255,.06);

  border-radius:20px;

  padding:24px 28px;

  box-shadow:0 10px 30px rgba(0,0,0,.35);
}

.logo{
  display:flex;
  align-items:center;
  gap:14px;

  font-size:26px;
  font-weight:800;
}

.logo::before{
  content:"PH";

  width:54px;
  height:54px;

  border-radius:14px;

  background:
    linear-gradient(135deg,var(--brand),var(--brand-2));

  display:grid;
  place-items:center;

  color:#fff;

  font-weight:900;
  font-size:20px;

  box-shadow:0 6px 18px var(--ring);
}

.logo span{
  color:#fff;
}

.subtitle{
  margin:10px 0 0 68px;
  color:var(--muted);
  font-size:14px;
}

.grid{
  display:grid;
  grid-template-columns:2fr 1fr;
  gap:24px;
  margin-bottom:24px;
}

.card{
  background:
    linear-gradient(180deg,rgba(255,255,255,.02),transparent),
    var(--card);

  border:1px solid rgba(255,255,255,.06);

  border-radius:20px;

  padding:28px;

  box-shadow:0 10px 30px rgba(0,0,0,.35);
}

h1,h2{
  margin-top:0;
  margin-bottom:20px;
}

label{
  display:block;
  margin-bottom:10px;
  color:var(--text);
  font-size:14px;
}

textarea,
input,
select{
  width:100%;

  background:var(--card2);

  border:1px solid var(--border);

  border-radius:14px;

  padding:14px 16px;

  color:#fff;

  outline:none;

  transition:.2s;
}

textarea{
  min-height:180px;
  resize:vertical;
}

textarea:focus,
input:focus,
select:focus{
  border-color:var(--brand);
  box-shadow:0 0 0 4px var(--ring);
}

button,
.btn,
.logout{
  border:0;
  cursor:pointer;

  background:
    linear-gradient(135deg,var(--brand),var(--brand-2));

  color:#fff;

  border-radius:14px;

  padding:13px 18px;

  font-weight:700;

  text-decoration:none;

  display:inline-flex;
  align-items:center;
  justify-content:center;

  transition:.2s;
}

button:hover,
.btn:hover,
.logout:hover{
  transform:translateY(-1px);
  filter:brightness(1.05);
}

.logout{
  background:#11161d;
  border:1px solid rgba(255,255,255,.06);
}

.danger{
  background:
    linear-gradient(135deg,#ef4444,#dc2626);
}

.check{
  display:flex;
  align-items:center;
  gap:12px;

  margin-bottom:18px;

  color:#fff;
}

.check input{
  width:auto;
  margin:0;
}

.table-wrap{
  overflow-x:auto;

  border-radius:16px;

  border:1px solid rgba(255,255,255,.06);
}

table{
  width:100%;
  border-collapse:collapse;
  background:var(--card2);
}

th{
  text-align:left;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.08em;

  color:var(--muted);

  padding:16px;
}

td{
  padding:16px;
  border-top:1px solid rgba(255,255,255,.05);
}

tr:hover td{
  background:rgba(255,255,255,.02);
}

.badge-ok{
  color:var(--success);
  font-weight:700;
}

.badge-error{
  color:var(--danger);
  font-weight:700;
}

.alert{
  padding:16px 18px;

  border-radius:14px;

  margin-bottom:20px;

  border:1px solid rgba(255,255,255,.08);
}

.success{
  background:rgba(34,197,94,.12);
  color:#bbf7d0;
}

.error{
  background:rgba(239,68,68,.12);
  color:#fecaca;
}

.actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.actions form{
  margin:0;
}

.muted{
  color:var(--muted);
}

.login-wrap{
  min-height:100vh;
  display:flex;
  justify-content:center;
  align-items:center;
  padding:24px;
}

.login-card{
  width:100%;
  max-width:520px;
}

.login-card .logo{
  justify-content:center;
  margin-bottom:18px;
}

@media (max-width:900px){

  .grid{
    grid-template-columns:1fr;
  }

  .header{
    flex-direction:column;
    align-items:flex-start;
    gap:20px;
  }

  .subtitle{
    margin-left:0;
  }

}