:root{--ink:#172c2b;--muted:#74827f;--line:#e2e9e5;--paper:#f5f7f5;--surface:#fff;--accent:#087e72;--accent-soft:#e7f4f1;--red:#a74d48;--red-soft:#faeeec}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 'Segoe UI',sans-serif;display:flex;min-height:100vh;align-items:center;justify-content:center;padding:20px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:32px;width:100%;max-width:380px;box-shadow:0 12px 32px rgba(28,53,47,.08)}
.card h1{font-size:19px;margin:0 0 4px}
.card p.sub{color:var(--muted);font-size:13px;margin:0 0 22px}
label{display:block;font-size:12px;font-weight:600;margin:14px 0 6px}
input{width:100%;border:1px solid var(--line);border-radius:9px;padding:10px 12px;font-size:14px;outline:none}
input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
button{width:100%;margin-top:20px;border:0;background:var(--accent);color:#fff;border-radius:9px;padding:11px;font-size:14px;font-weight:600;cursor:pointer}
button:hover{background:#066b62}
.msg{border-radius:9px;padding:10px 12px;font-size:13px;margin-bottom:6px}
.msg.err{background:var(--red-soft);color:var(--red)}
.msg.ok{background:var(--accent-soft);color:#18796c}
.foot{margin-top:18px;font-size:13px;color:var(--muted);text-align:center}
.foot a{color:var(--accent);font-weight:600}
table{width:100%;border-collapse:collapse;font-size:13px}
th,td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--line)}
.pill{display:inline-block;border-radius:99px;padding:3px 9px;font-size:11px;font-weight:600}
.pill.pending{background:#fbf2e3;color:#b27628}
.pill.approved{background:var(--accent-soft);color:#18796c}
.pill.rejected{background:var(--red-soft);color:var(--red)}
.actions a{margin-right:10px;font-size:12px;font-weight:700;color:var(--accent);text-decoration:none}
.wide{max-width:720px}
