:root{
  --bg:#f5f5f7;
  --card:#ffffff;
  --text:#1d1d1f;
  --muted:#6e6e73;
  --line:#d2d2d7;
  --blue:#0071e3;
  --red:#d70015;
  --green:#248a3d;
  --shadow:0 12px 30px rgba(0,0,0,.08);
  --radius:16px;
}
*{box-sizing:border-box}
body{
  margin:0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  background:var(--bg);
  color:var(--text);
}
.shell{min-height:100vh; display:flex; flex-direction:column}
.topbar{
  display:flex; justify-content:space-between; align-items:center;
  padding:16px 20px;
  position:sticky; top:0;
  background:rgba(245,245,247,.8);
  backdrop-filter:saturate(180%) blur(16px);
  border-bottom:1px solid var(--line);
}
.brand{font-weight:600; letter-spacing:.2px}
.topbar-right{display:flex; gap:14px; align-items:center}
.content{max-width:1100px; width:100%; margin:0 auto; padding:22px 16px 42px}
.footer{padding:20px; text-align:center; color:var(--muted); font-size:.9rem}

.card{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); padding:18px}
.grid{display:grid; gap:16px}
.grid-2{grid-template-columns:repeat(2, minmax(0,1fr))}
@media (max-width:840px){.grid-2{grid-template-columns:1fr}}

h1{margin:0 0 14px; font-size:1.35rem}
h2{margin:0 0 10px; font-size:1.05rem}
.tiny{font-size:.9rem}
.muted{color:var(--muted)}

.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:10px 14px; border-radius:12px; border:1px solid var(--line); background:#fff; cursor:pointer; text-decoration:none; color:var(--text); font-weight:600}
.btn-primary{background:var(--blue); border-color:var(--blue); color:#fff}
.btn-danger{background:var(--red); border-color:var(--red); color:#fff}
.btn:disabled{opacity:.6; cursor:not-allowed}

.input{width:100%; padding:10px 12px; border-radius:12px; border:1px solid var(--line); background:#fff; font-size:1rem}
.label{display:block; font-size:.9rem; color:var(--muted); margin:10px 0 6px}
.row{display:flex; gap:12px}

.table{width:100%; border-collapse:collapse; overflow:hidden; border-radius:14px; border:1px solid var(--line)}
.table th,.table td{padding:10px 12px; border-bottom:1px solid var(--line); text-align:left; font-size:.95rem}
.table th{background:#fbfbfc; color:var(--muted); font-weight:600}
.table tr:last-child td{border-bottom:none}

.link{color:var(--blue); text-decoration:none; font-weight:600}
.link:hover{text-decoration:underline}
.chip{display:inline-flex; align-items:center; padding:6px 10px; border:1px solid var(--line); border-radius:999px; background:#fff; color:var(--muted); font-size:.9rem}

.alert{padding:12px 14px; border-radius:14px; border:1px solid var(--line); background:#fff; margin:0 0 14px}
.alert-success{border-color:rgba(36,138,61,.35); background:rgba(36,138,61,.08)}
.alert-danger{border-color:rgba(215,0,21,.35); background:rgba(215,0,21,.08)}
