* { margin:0; padding:0; box-sizing:border-box; font-family:'Segoe UI',Arial,sans-serif; }
body { background:#f0f5f0; color:#2d3a2e; }
.navbar { background:linear-gradient(135deg,#1b5e20,#388e3c); color:#fff; padding:15px 40px;
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; }
.navbar .brand { font-size:22px; font-weight:bold; }
.navbar .brand span { color:#aed581; }
.navbar a { color:#fff; text-decoration:none; margin-left:20px; padding:8px 16px;
  border-radius:6px; background:rgba(255,255,255,.15); }
.navbar a:hover { background:rgba(255,255,255,.3); }
.container { max-width:1000px; margin:30px auto; padding:0 20px; }
.card { background:#fff; border-radius:12px; padding:25px; margin-bottom:20px;
  box-shadow:0 2px 10px rgba(0,0,0,.08); }
.card h2 { color:#1b5e20; margin-bottom:15px; border-left:5px solid #66bb6a; padding-left:12px; }
.card h3 { color:#2e7d32; margin:15px 0 10px; }
label { display:block; font-weight:600; margin:12px 0 5px; color:#33691e; }
input[type=text], input[type=email], input[type=password], input[type=number],
input[type=date], select, textarea {
  width:100%; padding:10px; border:1px solid #c8e6c9; border-radius:8px; font-size:14px; }
input:focus, select:focus, textarea:focus { outline:2px solid #81c784; }
.btn { background:#2e7d32; color:#fff; border:none; padding:12px 28px; border-radius:8px;
  font-size:15px; cursor:pointer; margin-top:18px; text-decoration:none; display:inline-block; }
.btn:hover { background:#1b5e20; }
.btn-kuning { background:#f9a825; } .btn-kuning:hover { background:#f57f17; }
.btn-merah { background:#c62828; } .btn-merah:hover { background:#b71c1c; }
.grid2 { display:grid; grid-template-columns:1fr 1fr; gap:0 20px; }
@media(max-width:700px){ .grid2{grid-template-columns:1fr;} }

.pdca { display:grid; grid-template-columns:repeat(4,1fr); gap:15px; margin-top:10px; }
.pdca .fase { text-align:center; background:#f1f8e9; border-radius:10px; padding:15px;
  border-top:5px solid #81c784; }
.pdca .fase h4 { color:#1b5e20; margin-bottom:8px; }
.bar-bg { background:#c8e6c9; border-radius:20px; height:14px; overflow:hidden; }
.bar-fill { background:linear-gradient(90deg,#66bb6a,#2e7d32); height:100%; border-radius:20px;
  transition:width .6s; }
.persen { font-size:13px; font-weight:bold; color:#33691e; margin-top:5px; }

table { width:100%; border-collapse:collapse; margin-top:10px; font-size:14px; }
th { background:#2e7d32; color:#fff; padding:10px; text-align:left; }
td { padding:10px; border-bottom:1px solid #e0e0e0; vertical-align:top; }
tr:hover td { background:#f9fdf9; }
.tag { padding:4px 12px; border-radius:20px; font-size:12px; font-weight:bold; color:#fff; }
.tag-valid { background:#2e7d32; } .tag-error { background:#c62828; }
.tag-warn { background:#f9a825; } .tag-belum { background:#9e9e9e; }

.alert { padding:14px 18px; border-radius:8px; margin:10px 0; font-weight:600; }
.alert-sukses { background:#e8f5e9; color:#1b5e20; border-left:5px solid #43a047; }
.alert-error { background:#ffebee; color:#b71c1c; border-left:5px solid #c62828; }
.alert-warn { background:#fff8e1; color:#8d6e00; border-left:5px solid #f9a825; }
.login-box { max-width:420px; margin:60px auto; }
.tabs { display:flex; margin-bottom:0; }
.tabs button { flex:1; padding:14px; border:none; cursor:pointer; font-size:15px;
  background:#c8e6c9; color:#1b5e20; font-weight:bold; }
.tabs button.active { background:#2e7d32; color:#fff; }
.hero { text-align:center; padding:50px 20px; background:linear-gradient(135deg,#1b5e20,#43a047);
  color:#fff; }
.hero h1 { font-size:34px; } .hero p { margin-top:10px; opacity:.9; }
.badge { display:inline-block; background:#e8f5e9; color:#2e7d32; padding:3px 10px;
  border-radius:12px; font-size:12px; font-weight:bold; margin-right:5px; }