:root{font-family:Arial,sans-serif;color:#111827;background:#f5f7fa}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input{font:inherit}a{color:inherit;text-decoration:none}#app,.app-layout{min-height:100vh}.app-body{display:flex;min-height:calc(100vh - 58px)}.auth-shell,.content-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card,.hello-card,.profile-card{width:min(100%,520px);background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:24px;box-shadow:0 8px 24px #0f172a0a}.profile-card{width:min(100%,640px)}.topbar{display:flex;justify-content:space-between;gap:16px;padding:16px 24px;border-bottom:1px solid #e5e7eb;background:#fff}.sidebar{width:220px;padding:16px 14px;border-right:1px solid #e5e7eb;background:#fff}.sidebar-nav{display:grid;gap:8px}.sidebar-link{display:block;padding:12px 14px;border-radius:12px;background:#f9fafb;border:1px solid #e5e7eb;font-weight:600;color:#334155;transition:background .15s ease,border-color .15s ease}.sidebar-link.router-link-active{background:#111827;color:#fff;border-color:#111827}.sidebar-link:hover{border-color:#cbd5e1;background:#f3f4f6}.brand,.profile-trigger,.logout-button,.primary-button{border:0;border-radius:12px;transition:background .15s ease,opacity .15s ease}.brand{background:transparent;padding:0;font-weight:700;cursor:pointer;color:#0f172a}.topbar-actions{display:flex;gap:12px;align-items:center}.profile-trigger{display:inline-flex;align-items:center;gap:10px;padding:8px 12px;background:#f9fafb;border:1px solid #e5e7eb;cursor:pointer;color:#0f172a}.profile-avatar{width:28px;height:28px;display:grid;place-items:center;border-radius:999px;background:#e5e7eb}.profile-avatar svg{width:16px;height:16px}.logout-button,.primary-button{padding:10px 14px;background:#111827;color:#fff;cursor:pointer}.icon-button{width:40px;height:40px;border:0;border-radius:12px;background:#111827;color:#fff;font-size:1.4rem;line-height:1;cursor:pointer}.logout-button:hover,.primary-button:hover,.profile-trigger:hover{opacity:.94}.eyebrow,.section-label{margin:0 0 8px;font-size:.8rem;font-weight:700;text-transform:uppercase;color:#2563eb}h1{margin:0;font-size:2rem}.lead{margin:12px 0 0;color:#4b5563}.auth-form,.profile-grid{margin-top:20px;display:grid;gap:14px}.detail-metrics{margin-top:18px}.content-shell{flex:1;min-height:auto;align-content:start;place-items:start center}.content-shell>*{width:min(100%,640px)}.content-shell>.dashboard-page{width:min(100%,1100px)}.page-stack{width:100%;display:grid;gap:16px}.page-header,.form-header,.table-header{display:flex;justify-content:space-between;gap:12px;align-items:center}.detail-actions{display:inline-flex;gap:8px}.dashboard-heading{display:flex;justify-content:space-between;align-items:end;gap:24px}.month-filter{width:190px;flex:0 0 auto}.dashboard-section{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:20px}.dashboard-section h2{margin:0;font-size:1.15rem}.period-caption{color:#64748b;font-size:.85rem}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:18px}.metric-grid-three{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-card{min-width:0;padding:16px;border:1px solid #e2e8f0;border-radius:14px;background:#f8fafc}.metric-card span{display:block;color:#64748b;font-size:.85rem;font-weight:600}.metric-card strong{display:block;margin-top:8px;font-size:1.3rem;overflow-wrap:anywhere}.metric-card.positive{border-color:#bbf7d0;background:#f0fdf4}.metric-card.negative{border-color:#fecaca;background:#fef2f2}.cash-bars{display:grid;gap:12px;margin-top:20px}.cash-bar-row{display:grid;grid-template-columns:70px minmax(120px,1fr) 120px;align-items:center;gap:12px;font-size:.9rem}.cash-bar-row strong{text-align:right}.cash-bar-track{height:10px;overflow:hidden;border-radius:999px;background:#e2e8f0}.cash-bar{height:100%;border-radius:inherit;transition:width .2s ease}.cash-bar.inflow,.movement-badge.inflow{background:#16a34a}.cash-bar.outflow,.movement-badge.outflow{background:#dc2626}.movement-badge{display:inline-block;padding:4px 8px;border-radius:999px;color:#fff;font-size:.75rem;font-weight:700}.amount-positive{color:#15803d;font-weight:700}.amount-negative{color:#b91c1c;font-weight:700}.field{display:grid;gap:6px}.field span,.info-block span{font-size:.9rem;font-weight:600}.field input{width:100%;padding:12px 14px;border:1px solid #d1d5db;border-radius:10px}.error-message{margin:0;color:#b91c1c}.info-block{padding:14px;border:1px solid #e5e7eb;border-radius:12px;background:#f9fafb}.info-block strong{display:block;margin-top:4px;word-break:break-word}.form-card,.table-card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:20px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:24px;background:#0f172a59;z-index:20}.modal-card{width:min(100%,560px);background:#fff;border-radius:16px;padding:20px;box-shadow:0 16px 40px #0f172a1f}.simple-form{margin-top:16px;display:grid;gap:14px}.field select{width:100%;padding:12px 14px;border:1px solid #d1d5db;border-radius:10px;background:#fff}.secondary-button,.text-button{border:0;background:#f3f4f6;color:#111827;padding:10px 14px;border-radius:10px;cursor:pointer}.text-button{padding:8px 10px}.text-button.danger{background:#fee2e2;color:#991b1b}.modal-close{border:0;background:transparent;color:#6b7280;cursor:pointer;padding:0}.empty-state{margin-top:16px;padding:16px;border:1px dashed #d1d5db;border-radius:12px;color:#6b7280}.table-wrap{overflow-x:auto;margin-top:16px}.simple-table{width:100%;border-collapse:collapse}.simple-table th,.simple-table td{padding:12px 10px;text-align:left;border-bottom:1px solid #e5e7eb}.simple-table th{font-size:.85rem;text-transform:uppercase;color:#6b7280}.row-actions{white-space:nowrap;display:inline-flex;gap:8px;align-items:center}.due-cell{display:inline-flex;align-items:center;gap:6px}.late-dot{width:8px;height:8px;border-radius:999px;background:#dc2626;display:inline-block}.icon-action-button{width:34px;height:34px;display:inline-grid;place-items:center;border:0;border-radius:10px;background:#f3f4f6;color:#111827;cursor:pointer}.icon-action-button svg{width:16px;height:16px;fill:currentColor}.icon-action-button.danger{background:#fee2e2;color:#991b1b}.health-actions{display:flex;flex-wrap:wrap;gap:10px}.health-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:end}.health-form h2{grid-column:1 / -1;margin:0}.health-form .primary-button{min-height:43px}.health-form-wide{grid-template-columns:repeat(4,minmax(0,1fr))}.health-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.health-row,.audit-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid #e5e7eb}.health-row:last-child,.audit-row:last-child{border-bottom:0}.health-row small,.audit-row small,.health-values small{display:block;margin-top:3px;color:#6b7280}.health-values,.audit-row time{text-align:right}.audit-row time{color:#6b7280;font-size:.8rem}.aging-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}.aging-grid div{display:grid;gap:5px;padding:14px;border-radius:12px;background:#fff7ed;color:#9a3412}.goal-row{display:grid;grid-template-columns:70px minmax(80px,1fr) minmax(160px,auto);align-items:center;gap:12px;margin-top:14px}.goal-row progress{width:100%;accent-color:#2563eb}.goal-row strong{text-align:right;font-size:.85rem}.metric-negative strong,.negative-value{color:#b91c1c}.status-pill{display:inline-block;padding:5px 9px;border-radius:999px;background:#f3f4f6;font-size:.8rem}@media(max-width:640px){.topbar{flex-direction:column;align-items:flex-start}.topbar-actions{width:100%;justify-content:space-between}.app-body{flex-direction:column}.sidebar{width:100%;border-right:0;border-bottom:1px solid #e5e7eb}.page-header,.dashboard-heading,.form-header,.table-header{align-items:flex-start;flex-direction:column}.month-filter{width:100%}.metric-grid,.metric-grid-three{grid-template-columns:1fr}.cash-bar-row{grid-template-columns:60px 1fr}.cash-bar-row strong{grid-column:2;text-align:left}.health-grid,.health-form,.health-form-wide,.aging-grid,.goal-row{grid-template-columns:1fr}.goal-row strong{text-align:left}}@media(min-width:641px)and (max-width:960px){.metric-grid,.metric-grid-three{grid-template-columns:repeat(2,minmax(0,1fr))}}
