:root{--ink:#1a2233;--muted:#5b6578;--line:#e3e7ee;--accent:#1d6f5c;--accent-soft:#e8f3f0;--danger:#b3423a;--bg:#f7f8fa}*{box-sizing:border-box}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:var(--bg);line-height:1.5}main{max-width:860px;margin:0 auto;padding:2rem 1.25rem 4rem}.site-header{background:#fff;border-bottom:1px solid var(--line)}.site-header .inner{max-width:860px;margin:0 auto;padding:.75rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{font-weight:700;text-decoration:none;color:var(--ink);font-size:1.05rem}.brand span{color:var(--accent)}.test-banner{background:#fff7e0;border-bottom:1px solid #eadfb0;color:#7a5d00;text-align:center;font-size:.8rem;padding:.3rem 1rem}.card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:1.25rem 1.5rem;margin:1rem 0}.card h2{margin-top:0;font-size:1.05rem}.muted{color:var(--muted)}.role-badge{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:.1rem .65rem;font-size:.78rem;font-weight:600}.button,.role-badge{display:inline-block}.button{background:var(--accent);color:#fff;text-decoration:none;border:none;border-radius:8px;padding:.55rem 1.1rem;font-size:.95rem;cursor:pointer}.button.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}.stat-row{display:flex;gap:1rem;flex-wrap:wrap}.stat{flex:1 1 140px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:1rem 1.25rem}.stat .value{font-size:1.6rem;font-weight:700}.stat .label{color:var(--muted);font-size:.85rem}.form-field{margin-bottom:1rem}.form-field label{display:block;font-weight:600;font-size:.9rem;margin-bottom:.25rem}.form-field input,.form-field select,.form-field textarea{width:100%;padding:.5rem .65rem;border:1px solid var(--line);border-radius:8px;font:inherit;background:#fff}.form-field textarea{min-height:7rem;resize:vertical}.form-field .hint{color:var(--muted);font-size:.8rem;margin-top:.2rem}.inline-form{display:inline}.banner{border-radius:8px;padding:.65rem 1rem;margin:1rem 0;font-size:.92rem}.banner.error{background:#fbeceb;border:1px solid #eac6c3;color:var(--danger)}.banner.success{background:var(--accent-soft);border:1px solid #c4e0d8;color:var(--accent)}.table{width:100%;border-collapse:collapse;font-size:.92rem}.table td,.table th{text-align:left;padding:.55rem .65rem;border-bottom:1px solid var(--line);vertical-align:top}.table th{font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}.status,.table th{color:var(--muted);font-weight:600}.status{display:inline-block;border-radius:999px;padding:.1rem .6rem;font-size:.76rem;background:#eef1f6}.status.draft{background:#eef1f6;color:#5b6578}.status.pending,.status.submitted{background:#fff3d6;color:#8a6400}.status.active,.status.approved,.status.funded,.status.verified{background:var(--accent-soft);color:var(--accent)}.status.cancelled,.status.rejected,.status.suspended{background:#fbeceb;color:var(--danger)}.status.completed,.status.paid{background:#e7eefb;color:#2b5bb8}.button.danger{background:var(--danger)}.actions-cell form{display:inline-block;margin-right:.4rem}.progress-track{background:var(--line);border-radius:999px;height:14px;overflow:hidden;margin-bottom:.6rem}.progress-fill{background:var(--accent);height:100%;border-radius:999px;transition:width .4s ease}