:root{--accent: #1f7a54;--accent-soft: #1f7a5422;--accent-tint: #1f7a5411;--bg: #f5f6f5;--card: #ffffff;--border: #e3e6e4;--text: #1c2321;--muted: #6b7772;--danger: #c0392b;--radius: 10px;--shadow: 0 1px 3px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}a{color:var(--accent);text-decoration:none}h1,h2,h3{margin:0 0 .5rem}h1{font-size:1.5rem}h2{font-size:1.15rem}.app-shell{display:flex;min-height:100vh}.sidebar{width:220px;background:var(--card);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:1rem .75rem;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:1.1rem;padding:.4rem .6rem 1rem}.brand .dot{width:22px;height:22px;border-radius:6px;background:var(--accent)}.nav-link{display:flex;align-items:center;gap:.6rem;padding:.55rem .7rem;border-radius:8px;color:var(--text);font-weight:500;margin-bottom:2px}.nav-link:hover{background:var(--bg)}.nav-link.active{background:var(--accent-soft);color:var(--accent)}.nav-spacer{flex:1}.main{flex:1;padding:1.75rem 2rem;max-width:1150px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.1rem 1.25rem}.grid{display:grid;gap:1rem}.grid.cols-2{grid-template-columns:repeat(2,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-4{grid-template-columns:repeat(4,1fr)}.mobile-topbar,.nav-backdrop{display:none}.hamburger{font-size:1.3rem;line-height:1;padding:.35rem .6rem}.segmented{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}.segmented button{border:none;border-radius:0;padding:.45rem .8rem;background:var(--card)}.segmented button.active{background:var(--accent);color:#fff}.week-grid th,.week-grid td{text-align:center}.week-grid th:first-child,.week-grid td:first-child{text-align:left}.week-grid .today-col{color:var(--accent)}.week-cell{width:60px;text-align:center;padding:.35rem}.week-cell:disabled{background:var(--bg);color:var(--muted)}.aging-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:8px;overflow:hidden}.aging-cell{background:var(--card);padding:.8rem 1rem}.aging-cell.overdue{background:#fdf3f2}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.nav-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (max-width: 860px){.app-shell{flex-direction:column}.mobile-topbar{display:flex;align-items:center;gap:.75rem;padding:.6rem 1rem;background:var(--card);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:40}.sidebar{position:fixed;top:0;left:0;height:100vh;width:250px;z-index:60;transform:translate(-100%);transition:transform .2s ease}.sidebar.open{transform:translate(0);box-shadow:0 0 40px #0000004d}.nav-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:50}.main{padding:1rem;max-width:100%}.topbar{flex-wrap:wrap;gap:.6rem}.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr}.aging-row{grid-template-columns:repeat(2,1fr)}.row{flex-direction:column;gap:0}.modal{max-width:100%}}@media (min-width: 861px) and (max-width: 1100px){.grid.cols-4{grid-template-columns:repeat(2,1fr)}}.stat{padding:1rem 1.25rem}.stat .label{color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}.stat .value{font-size:1.7rem;font-weight:700;margin-top:.25rem}button,.btn{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--card);padding:.5rem .9rem;border-radius:8px;font-weight:600;color:var(--text)}button:hover{background:var(--bg)}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{filter:brightness(.95);background:var(--accent)}.btn-danger{color:var(--danger);border-color:#eccdc9}.btn-sm{padding:.3rem .6rem;font-size:.82rem}.btn-ghost{border-color:transparent;background:transparent}label{display:block;font-weight:600;font-size:.82rem;margin-bottom:.25rem;color:var(--muted)}input,select,textarea{width:100%;padding:.5rem .65rem;border:1px solid var(--border);border-radius:8px;font:inherit;background:#fff;color:var(--text)}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.field{margin-bottom:.85rem}.row{display:flex;gap:.75rem}.row>*{flex:1}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.6rem .5rem;border-bottom:1px solid var(--border)}th{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.03em}tr:last-child td{border-bottom:none}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.badge{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.badge.DRAFT{background:#eceff1;color:#607d8b}.badge.PENDING_REVIEW{background:#fff3cd;color:#a97a00}.badge.APPROVED{background:var(--accent-soft);color:var(--accent)}.badge.SENT{background:#e3f0fb;color:#2b6cb0}.badge.PAID{background:#d7f5e3;color:#1e7d47}.muted{color:var(--muted)}.right{text-align:right}.flex{display:flex;align-items:center;gap:.6rem}.between{justify-content:space-between}.mt{margin-top:1rem}.mb{margin-bottom:1rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:50;padding:1rem}.modal{background:var(--card);border-radius:var(--radius);padding:1.5rem;width:100%;max-width:520px;box-shadow:0 10px 40px #0003;max-height:90vh;overflow:auto}.login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1rem}.login-card{width:100%;max-width:380px;text-align:center}.login-card .brand{justify-content:center;font-size:1.5rem}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.cal-head{background:var(--card);padding:.4rem;text-align:center;font-size:.72rem;color:var(--muted);text-transform:uppercase;font-weight:700}.cal-cell{background:var(--card);min-height:92px;padding:.35rem;cursor:pointer;position:relative}.cal-cell:hover{background:var(--bg)}.cal-cell.other{background:#fafbfa;color:var(--muted)}.cal-cell.today .cal-date{background:var(--accent);color:#fff;border-radius:50%;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center}.cal-date{font-size:.78rem;font-weight:600}.cal-entry{font-size:.7rem;background:var(--accent-soft);color:var(--accent);border-radius:5px;padding:1px 4px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-total{position:absolute;top:.35rem;right:.4rem;font-size:.7rem;font-weight:700;color:var(--muted)}.spinner{text-align:center;color:var(--muted);padding:3rem}.error-text{color:var(--danger);font-size:.85rem;margin-top:.5rem}
