:root{--gold:#c99a2e;--gold-light:#e7c15c;--gold-dark:#a87718;--green:#3e6b33;--green-dark:#2c4d24;--ink:#1c2419;--bg:#f6f5f1;--card:#fff;--text:#23301f;--muted:#6f7a6a;--border:#e6e3da;--ok:#2e8b57;--warn:#d9a514;--bad:#c0392b}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:15px;line-height:1.5}a{color:var(--green);text-decoration:none}a:hover{color:var(--green-dark)}.nav{background:linear-gradient(135deg,var(--ink) 0,#26331f 100%);color:#fff;display:flex;align-items:center;gap:22px;padding:0 26px;height:60px;box-shadow:0 2px 12px rgba(28,36,25,.25);position:-webkit-sticky;position:sticky;top:0;z-index:50}.nav .logo{font-weight:800;font-size:18px;letter-spacing:.2px;background:linear-gradient(120deg,var(--gold-light),var(--gold-dark));-webkit-background-clip:text;background-clip:text;color:transparent;margin-right:10px;white-space:nowrap}.nav a{color:#cfd8c7;font-size:14px;padding:6px 2px;border-bottom:2px solid transparent}.nav a:hover{color:#fff;border-bottom-color:var(--gold)}.nav .spacer{flex:1 1}.nav .who{font-size:13px;color:#9fae95}.nav button{background:rgba(231,193,92,.14);color:var(--gold-light);border:1px solid rgba(231,193,92,.35);padding:7px 14px;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;transition:background .15s}.nav button:hover{background:rgba(231,193,92,.28)}.container{max-width:1140px;margin:30px auto;padding:0 22px}h1{font-size:24px;font-weight:800;margin:0 0 20px}h1,h2{color:var(--ink)}h2{font-size:16px;font-weight:700;margin:28px 0 12px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));grid-gap:20px;gap:20px}.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:20px 22px;box-shadow:0 1px 3px rgba(28,36,25,.05),0 8px 24px -18px rgba(28,36,25,.25);transition:box-shadow .15s,transform .15s}.card:hover{box-shadow:0 2px 6px rgba(28,36,25,.07),0 14px 32px -18px rgba(28,36,25,.3)}.card h3{margin:0 0 14px;font-size:16px;font-weight:700}a.card-link{display:block;color:inherit;cursor:pointer}a.card-link:hover{border-color:var(--gold)}.card-foot{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding-top:10px;border-top:1px solid var(--border)}.view-link{color:var(--green);font-size:13px;font-weight:700}a.card-link:hover .view-link{color:var(--gold-dark)}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 20px}.tabs a{padding:7px 16px;border-radius:999px;font-size:13px;font-weight:600;background:#edeae2;color:#55604d;border:1px solid transparent}.tabs a.active{background:var(--green);color:#fff}.tabs a:hover:not(.active){border-color:var(--gold);color:var(--ink)}.check-list{display:flex;flex-direction:column;gap:8px}.check-list label{display:flex;align-items:center;gap:10px;font-size:14px;background:#faf9f5;border:1px solid var(--border);border-radius:9px;padding:10px 12px;cursor:pointer}.check-list input{width:17px;height:17px;accent-color:var(--green)}pre.tpl{white-space:pre-wrap;font-family:inherit;font-size:13.5px;margin:8px 0 0;background:#faf9f5;border:1px solid var(--border);border-radius:9px;padding:12px}.card h3 a{color:var(--ink)}.card h3 a:hover{color:var(--green)}.kpis{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:24px}.kpi{background:var(--card);border:1px solid var(--border);border-left:4px solid var(--gold);border-radius:12px;padding:14px 20px;min-width:150px;box-shadow:0 1px 3px rgba(28,36,25,.05)}.kpi .num{font-size:26px;font-weight:800;color:var(--ink)}.kpi .lbl{font-size:12px;color:var(--muted);margin-top:2px}.bar-row{margin:12px 0;font-size:13px}.bar-row .lbl{display:flex;justify-content:space-between;margin-bottom:5px;color:#46523f;font-weight:500}.bar{background:#edeae2;height:10px;overflow:hidden}.bar,.bar .fill{border-radius:8px}.bar .fill{height:100%;transition:width .4s ease}.fill.green{background:linear-gradient(90deg,#2e8b57,#3cb371)}.fill.yellow{background:linear-gradient(90deg,#d9a514,var(--gold-light))}.fill.red{background:linear-gradient(90deg,#c0392b,#e06050)}table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:0 1px 3px rgba(28,36,25,.05)}td,th{text-align:left;padding:11px 14px;font-size:13px;border-bottom:1px solid var(--border)}th{background:#f2f0e9;color:#55604d;font-weight:700;text-transform:uppercase;font-size:11px;letter-spacing:.4px}tr:last-child td{border-bottom:none}tbody tr:hover td{background:#faf9f5}.badge{display:inline-block;padding:3px 11px;border-radius:999px;font-size:11px;font-weight:700}.badge.PENDING{background:#fdf3d5;color:#8a6d10}.badge.APPROVED{background:#ddf0e2;color:#1d6b3d}.badge.REJECTED{background:#fbe2de;color:#96271b}.badge.role{background:#e8eee2;color:var(--green-dark)}form.panel{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:22px;max-width:680px;box-shadow:0 1px 3px rgba(28,36,25,.05)}.frow{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:14px}.field{display:flex;flex-direction:column;gap:6px;flex:1 1;min-width:150px}.field label{font-size:12px;font-weight:700;color:#55604d}input,select,textarea{padding:10px 12px;border:1px solid #d5d1c5;border-radius:9px;font-size:14px;font-family:inherit;background:#fdfdfb;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,154,46,.18)}.btn{display:inline-block;background:linear-gradient(135deg,var(--green),var(--green-dark));color:#fff;border:none;padding:10px 20px;border-radius:9px;font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 2px 8px -2px rgba(44,77,36,.4);transition:filter .15s,transform .1s}.btn:hover{filter:brightness(1.08)}.btn:active{transform:translateY(1px)}.btn.small{padding:6px 13px;font-size:12px}.btn.ghost{background:#eef0e8;color:var(--green-dark);box-shadow:none}.btn.gold{background:linear-gradient(135deg,var(--gold),var(--gold-dark))}.btn.danger{background:linear-gradient(135deg,#c0392b,#96271b);box-shadow:0 2px 8px -2px rgba(150,39,27,.4)}.btn:disabled{opacity:.6;cursor:default}.error{color:var(--bad);margin-top:8px}.error,.muted{font-size:13px}.muted{color:var(--muted)}.login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh;background:radial-gradient(1000px 500px at 80% -10%,rgba(201,154,46,.13),transparent),radial-gradient(800px 500px at -10% 110%,rgba(62,107,51,.12),transparent),var(--bg)}.login-box{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:40px 36px;width:380px;box-shadow:0 8px 40px -12px rgba(28,36,25,.28)}.login-box h1{text-align:center;background:linear-gradient(120deg,var(--gold-dark),var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:4px}.login-box .sub{text-align:center;color:var(--muted);font-size:12.5px;margin:0 0 24px}.login-box .field{margin-bottom:14px}.login-box .btn{width:100%;margin-top:8px}@media (max-width:640px){.nav{gap:14px;padding:0 14px;overflow-x:auto}.nav .who{display:none}.container{margin:18px auto}}