*{margin:0;padding:0;box-sizing:border-box}
html{font-size:16px}
body{
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,sans-serif;
  background:#f0f4f8;color:#1e293b;min-height:100vh
}

/* Topbar */
.topbar{
  display:flex;align-items:center;justify-content:space-between;
  background:#fff;border-bottom:1px solid #e2e8f0;
  padding:10px 20px;position:sticky;top:0;z-index:100
}
.brand{display:flex;align-items:center;gap:8px}
.brand-icon{font-size:1.3rem}
.brand-text{font-weight:700;font-size:1.05rem;color:#0f172a}
.brand-ai{
  font-size:.75rem;background:#2563eb;color:#fff;
  padding:2px 10px;border-radius:999px;font-weight:600
}
.menu-toggle{position:relative;cursor:pointer}
.menu-toggle summary{list-style:none;font-size:1.3rem;padding:4px 8px;border-radius:8px}
.menu-toggle summary:hover{background:#f1f5f9}
.menu-toggle ul{
  position:absolute;right:0;top:100%;
  background:#fff;border:1px solid #e2e8f0;border-radius:10px;
  padding:6px 0;min-width:180px;list-style:none;box-shadow:0 4px 16px rgba(0,0,0,.08);
  z-index:200
}
.menu-toggle a{
  display:block;padding:10px 16px;color:#1e293b;text-decoration:none;font-size:.9rem
}
.menu-toggle a:hover{background:#f1f5f9;color:#2563eb}
.menu-toggle a.current{background:#eff6ff;color:#2563eb;font-weight:600}

/* Container */
.container{max-width:1100px;margin:20px auto;padding:0 16px}

/* Cards */
.card{
  background:#fff;border:1px solid #e2e8f0;border-radius:12px;
  padding:20px;margin:12px 0
}
.card h3{margin-bottom:12px;font-size:.95rem;color:#475569;text-transform:uppercase;letter-spacing:.5px}

/* Flash messages */
.flash{
  padding:12px 16px;border-radius:10px;margin:12px 0;
  font-size:.9rem;font-weight:500
}
.flash-success{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}
.flash-error{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}

/* Forms */
input,select,textarea{
  width:100%;padding:10px 12px;border:1px solid #cbd5e1;border-radius:8px;
  font-size:.9rem;font-family:inherit;transition:border-color .15s
}
input:focus,select:focus,textarea:focus{
  outline:none;border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.15)
}
label{display:block;font-size:.85rem;font-weight:600;color:#475569;margin-top:8px}

/* Buttons */
button,.button{
  background:#2563eb;color:#fff;border:0;border-radius:8px;
  padding:10px 18px;font-size:.9rem;font-weight:600;cursor:pointer;
  display:inline-block;text-decoration:none;transition:background .15s
}
button:hover,.button:hover{background:#1d4ed8}
button.secondary{background:#64748b}
button.secondary:hover{background:#475569}
button.small{padding:6px 12px;font-size:.8rem}
a.button{color:#fff}

/* Tables */
table{width:100%;border-collapse:collapse;margin:8px 0;font-size:.88rem}
th{background:#f8fafc;color:#475569;font-weight:600;text-transform:uppercase;letter-spacing:.4px;font-size:.75rem}
th,td{padding:10px 8px;text-align:left;border-bottom:1px solid #e2e8f0}
tr:hover td{background:#f8fafc}

/* Badge */
.badge{
  display:inline-block;background:#dbeafe;color:#1d4ed8;
  padding:2px 10px;border-radius:999px;font-size:.8rem;font-weight:600;font-family:monospace
}
.badge-success{background:#dcfce7;color:#166534}
.badge-warn{background:#fef3c7;color:#92400e}
.badge-danger{background:#fee2e2;color:#991b1b}

/* Grid helpers */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}

/* Footer */
.foot{text-align:center;padding:24px;color:#94a3b8;font-size:.8rem}

/* Responsive */
@media(max-width:640px){
  .grid-2,.grid-3{grid-template-columns:1fr}
  .container{padding:0 10px}
  .brand-text{font-size:.9rem}
}

/* Summary cards */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:12px 0}
.stat-card{
  background:#fff;border:1px solid #e2e8f0;border-radius:12px;
  padding:16px;text-align:center
}
.stat-card .label{font-size:.75rem;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px}
.stat-card .value{font-size:1.5rem;font-weight:700;color:#1e293b;margin-top:4px}
.stat-card .value.green{color:#16a34a}
.stat-card .value.red{color:#dc2626}
.stat-card .value.blue{color:#2563eb}