:root{--color-bg:#f6f7f9;--color-surface:#fff;--color-border:#e2e5ea;--color-text:#14181f;--color-text-secondary:#565d6b;--color-text-tertiary:#8b92a1;--color-accent:#a60d1f;--color-accent-dark:#7d0917;--color-success:#1a7f4e;--color-warning:#b4780a;--color-danger:#a60d1f;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--shadow-sm:0 1px 2px rgba(20,24,31,.06);--shadow-md:0 4px 16px rgba(20,24,31,.08);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px}*{box-sizing:border-box}body,html{padding:0;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased}h1,h2,h3,h4,p{margin:0}a{color:inherit}button{font-family:inherit}input,select,textarea{font-family:inherit;font-size:14px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);border-radius:var(--radius-md);font-weight:600;font-size:14px;padding:10px 18px;border:1px solid transparent;cursor:pointer;transition:opacity .15s ease,background .15s ease}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--color-accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-accent-dark)}.btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-bg)}.btn-sm{padding:6px 12px;font-size:13px}.input{width:100%;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text)}.input:focus{outline:2px solid var(--color-accent);outline-offset:-1px}.label{display:block;font-size:13px;color:var(--color-text-secondary);margin-bottom:var(--space-1)}.badge,.label{font-weight:600}.badge{display:inline-flex;align-items:center;border-radius:999px;font-size:12px;padding:3px 10px}.badge-planned{background:#eef0f3;color:#565d6b}.badge-active{background:#e5f0ff;color:#1c5ec7}.badge-submitted{background:#fff4de;color:#b4780a}.badge-approved{background:#e2f6ea;color:#1a7f4e}.badge-settled{background:#eef0f3;color:#14181f}.badge-draft{background:#eef0f3;color:#565d6b}.badge-manager_approved{background:#e5f0ff;color:#1c5ec7}.badge-finance_approved{background:#e2f6ea;color:#1a7f4e}.badge-rejected{background:#fdeaec;color:#a60d1f}.badge-warning{background:#fff4de;color:#b4780a}.badge-owed{background:#fdeaec;color:#a60d1f}.badge-square{background:#e2f6ea;color:#1a7f4e}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-tertiary)}.table td,.table th{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border)}.table tr:last-child td{border-bottom:none}.muted{color:var(--color-text-tertiary);font-size:13px}.error-banner{background:#fdeaec;color:var(--color-danger);border:1px solid #f5c4c9;border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:14px}