:root{
  --gov-blue:#1351B4;
  --gov-blue-dark:#0B3D91;
  --gov-bg:#F8F9FA;
  --text:#1B1B1B;
  --muted:#666;
  --card:#fff;
  --border:#E5E7EB;
  --radius:14px;
}

*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial;color:var(--text);background:var(--gov-bg)}
a{color:var(--gov-blue);text-decoration:none}
.container{max-width:1100px;margin:0 auto;padding:24px}
.topbar{background:var(--gov-blue);color:#fff;padding:14px 0}
.topbar .container{display:flex;justify-content:space-between;align-items:center}
.brand{font-weight:700;letter-spacing:.2px}
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:0 1px 3px rgba(0,0,0,.05)}
.grid{display:grid;gap:16px}
.grid-2{grid-template-columns:1fr 1fr}
label{display:block;font-weight:600;margin:10px 0 6px}
input,select,textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:#fff}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:12px;border:1px solid transparent;cursor:pointer;font-weight:600}
.btn-primary{background:var(--gov-blue);color:#fff}
.btn-primary:hover{background:var(--gov-blue-dark)}
.btn-secondary{background:#fff;border-color:var(--border);color:var(--text)}
.badge{display:inline-block;padding:4px 10px;border-radius:999px;font-size:12px;background:#EEF2FF;color:#1E3A8A}
.small{color:var(--muted);font-size:13px}
.small-top{color:#fff;font-size:13px}
/* Modal */
.hidden{display:none}
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;padding:18px;z-index:9999}
.modal{width:min(640px,100%);background:#fff;border-radius:16px;overflow:hidden;border:1px solid var(--border)}
.modal-header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--border)}
.modal-body{padding:16px}
.modal-footer{display:flex;gap:10px;justify-content:flex-end;padding:14px 16px;border-top:1px solid var(--border)}
.btn-icon{background:transparent;border:none;font-size:22px;cursor:pointer}

/* Alerts */
.alert{padding:12px 14px;border-radius:12px;border:1px solid var(--border);background:#c2c2c2}
.alert.success{background:#ECFDF5;border-color:#A7F3D0}
.alert.error{background:#FEF2F2;border-color:#FECACA}
.alert.warn{background:#FFFBEB;border-color:#FDE68A}
.alert.info{background:#EFF6FF;border-color:#BFDBFE}

.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:10px;border-bottom:1px solid var(--border);text-align:left}
.table th{font-size:13px;color:var(--muted);font-weight:700}
.top-actions{display:flex;gap:10px;align-items:center}

.alert{padding:12px 14px;border:1px solid var(--border);border-radius:12px;margin:12px 0;background:#ffffff}
.alert-warn{border-left:6px solid #ffcd07;background:#FDE68A}
.alert-error{border-left:6px solid #d4382a;background:#FECACA}
.alert-success{border-left:6px solid #168821;background:#A7F3D0}
.alert-info{border-left:6px solid #1351b4;background:#BFDBFE}

.kanban{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:12px;
  margin-top:12px;
}
.kanban-col{
  background:#f8f9fa;
  border:1px solid var(--border);
  border-radius:16px;
  padding:10px;
  min-height:120px;
}
.kanban-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:6px 6px 10px 6px;
  border-bottom:1px solid var(--border);
  margin-bottom:10px;
}
.kanban-card{
  display:block;
  text-decoration:none;
  background:#fff;
  border:1px solid var(--border);
  border-radius:14px;
  padding:10px;
  margin-bottom:10px;
  box-shadow:0 1px 0 rgba(0,0,0,.03);
}
.kanban-card:hover{
  border-color:#1351b4;
}
@media (max-width: 980px){
  .kanban{ grid-template-columns:1fr; }
}