*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#f4f7fb;color:#1f2937}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0f5132,#198754)}.login-card{background:#fff;width:390px;padding:32px;border-radius:18px;box-shadow:0 20px 45px rgba(0,0,0,.22)}h1,h2,h3{margin-top:0}.login-card h1{font-size:24px;color:#0f5132;margin-bottom:8px}.subtitle{color:#6b7280;margin-bottom:25px}label{font-weight:bold;display:block;margin:14px 0 7px}input,select,textarea{width:100%;padding:11px;border:1px solid #d1d5db;border-radius:10px;font-size:14px}button,.btn{display:inline-block;background:#198754;color:#fff;padding:11px 16px;border:0;border-radius:10px;text-decoration:none;font-weight:bold;cursor:pointer}.btn-secondary{background:#334155}.btn-danger{background:#dc2626}.btn-warning{background:#b45309}.error{background:#fee2e2;color:#991b1b;padding:10px;border-radius:8px;margin-bottom:12px}.success{background:#dcfce7;color:#166534;padding:10px;border-radius:8px;margin-bottom:12px}.layout{display:flex;min-height:100vh}.sidebar{width:260px;background:#0f172a;color:#fff;padding:22px}.sidebar h2{font-size:19px}.sidebar a{display:block;color:#cbd5e1;text-decoration:none;padding:10px 12px;border-radius:10px;margin:5px 0}.sidebar a:hover,.sidebar a.active{background:#198754;color:#fff}.main{flex:1;padding:28px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;margin-bottom:22px}.card{background:#fff;border-radius:16px;padding:20px;box-shadow:0 5px 20px rgba(15,23,42,.07)}.card .value{font-size:28px;font-weight:bold;color:#198754}.table-wrap{background:#fff;border-radius:16px;padding:18px;box-shadow:0 5px 20px rgba(15,23,42,.07);overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:12px;border-bottom:1px solid #e5e7eb;text-align:left;font-size:14px}th{background:#f8fafc}.badge{padding:5px 9px;border-radius:999px;font-size:12px;font-weight:bold}.badge-pending{background:#fef3c7;color:#92400e}.badge-approved{background:#dcfce7;color:#166534}.badge-rejected{background:#fee2e2;color:#991b1b}.badge-draft{background:#e0f2fe;color:#075985}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}.actions{display:flex;gap:8px;flex-wrap:wrap}.muted{color:#64748b}.footer-note{margin-top:25px;color:#64748b;font-size:13px}
.form-card{background:#fff;border-radius:16px;padding:18px;box-shadow:0 5px 20px rgba(15,23,42,.07);margin-bottom:18px}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:18px;margin-bottom:18px}.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}.small{font-size:12px}.warning{background:#fef3c7;color:#92400e;padding:10px;border-radius:8px;margin-bottom:12px}
.btn-small{display:inline-block;background:#198754;color:#fff;padding:6px 10px;border-radius:8px;text-decoration:none;font-size:12px;font-weight:bold;margin:2px}.btn-small.danger{background:#dc2626}.phase-code{font-weight:bold;color:#0f5132}
