:root{
  --blue:#0b4fa3;
  --blue-dark:#083a78;
  --white:#ffffff;
  --bg:#f5f8ff;
  --text:#0f172a;
  --muted:#475569;
  --border:#d9e2f2;
  --card:#ffffff;
}

*{box-sizing:border-box}
body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.5;
}

a{color:var(--blue); text-decoration:none}
a:hover{text-decoration:underline}

.container{
  width:min(1100px, 92vw);
  margin:0 auto;
}

header{
  background: linear-gradient(90deg, var(--blue-dark), var(--blue));
  color:var(--white);
  border-bottom:4px solid rgba(255,255,255,0.2);
}

.brand{
  display:flex;
  align-items:center;
  gap:14px;
  padding:16px 0;
}

.brand img{
  width:56px;
  height:56px;
  object-fit:contain;
  background:rgba(255,255,255,0.15);
  border-radius:12px;
  padding:6px;
}

.brand h1{
  font-size:1.25rem;
  margin:0;
}
.brand p{
  margin:2px 0 0;
  color:rgba(255,255,255,0.85);
  font-size:0.95rem;
}

nav{
  background:rgba(255,255,255,0.1);
  border-top:1px solid rgba(255,255,255,0.2);
}

.nav-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  padding:10px 0;
}

.nav-row a{
  color:var(--white);
  padding:8px 12px;
  border-radius:10px;
  font-weight:600;
  font-size:0.95rem;
}
.nav-row a:hover{
  background:rgba(255,255,255,0.15);
  text-decoration:none;
}
.nav-row a.active{
  background:rgba(255,255,255,0.22);
  outline:1px solid rgba(255,255,255,0.25);
}

main{padding:26px 0 42px}

.hero{
  display:grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap:16px;
  align-items:stretch;
}
@media (max-width: 820px){
  .hero{grid-template-columns:1fr}
}

.card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:16px;
  padding:16px;
  box-shadow: 0 8px 20px rgba(2, 8, 23, 0.05);
}

.card h2, .card h3{margin:0 0 10px}
.card p{margin:0 0 10px; color:var(--muted)}

.badges{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:10px;
}
.badge{
  display:inline-block;
  padding:6px 10px;
  border-radius:999px;
  background:var(--bg);
  border:1px solid var(--border);
  font-weight:700;
  font-size:0.85rem;
  color:var(--blue-dark);
}

.table-wrap{
  overflow:auto;
  border-radius:14px;
  border:1px solid var(--border);
}

table{
  width:100%;
  border-collapse:collapse;
  background:var(--white);
  min-width: 640px;
}

th, td{
  padding:12px 12px;
  border-bottom:1px solid var(--border);
  text-align:left;
  vertical-align:top;
}

th{
  background: #eef4ff;
  color:var(--blue-dark);
  position:sticky;
  top:0;
  z-index:1;
}

tr:hover td{background:#f9fbff}

.small{font-size:0.95rem; color:var(--muted)}
.kpi{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:12px;
  margin-top:12px;
}
@media (max-width: 820px){
  .kpi{grid-template-columns:1fr}
}
.kpi .card{padding:14px}
.kpi strong{font-size:1.2rem; color:var(--blue-dark)}

.section{
  margin-top:18px;
}

ul.clean{
  margin:10px 0 0;
  padding-left:18px;
}
ul.clean li{margin:6px 0}

.footer{
  border-top:1px solid var(--border);
  padding:18px 0;
  color:var(--muted);
  font-size:0.95rem;
}

.pill{
  display:inline-block;
  padding:4px 10px;
  border-radius:999px;
  border:1px solid var(--border);
  background:var(--bg);
  font-weight:700;
  font-size:0.85rem;
  color:var(--blue-dark);
}

.status{
  font-weight:800;
}
.status.todo{color:#9a3412}
.status.doing{color:#1d4ed8}
.status.done{color:#166534}

/* --- Fixtures alerts --- */
.banner{
  padding:10px 0;
  font-weight:800;
  letter-spacing:0.2px;
}

.banner.emergency{
  background:#b91c1c;           /* red */
  color:#ffffff;
}

.banner .container{
  display:flex;
  gap:10px;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
}

.banner .tag{
  display:inline-block;
  padding:4px 10px;
  border-radius:999px;
  background:rgba(255,255,255,0.18);
  border:1px solid rgba(255,255,255,0.25);
  font-size:0.85rem;
}

.notice-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:12px;
  margin-top:12px;
}
@media (max-width: 900px){
  .notice-grid{ grid-template-columns:1fr; }
}

.notice{
  border-radius:16px;
  border:1px solid var(--border);
  padding:14px;
  background:var(--white);
}

.notice h3{
  margin:0 0 6px;
  font-size:1.05rem;
}

.notice .meta{
  font-size:0.95rem;
  color:var(--muted);
  margin:0;
}

.notice.closed{
  border-color:#fecaca;
  background:#fff1f2;
}
.notice.closed h3{ color:#7f1d1d; }

.notice.unavailable{
  border-color:#fde68a;
  background:#fffbeb;
}
.notice.unavailable h3{ color:#92400e; }

.notice.info{
  border-color:#bfdbfe;
  background:#eff6ff;
}
.notice.info h3{ color:#1e3a8a; }

.updated{
  margin-top:8px;
  color:var(--muted);
  font-size:0.95rem;
}
