*,:before,:after{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;padding:0;overflow-x:hidden}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f5f0}#root{width:100%;min-height:100svh}.navbar-safe{padding-bottom:max(12px, env(safe-area-inset-bottom))!important}:root{--color-bg:#eff0f6;--color-bg-alt:#f0efe8;--color-card:#fff;--color-border:#e0dfd8;--color-border-input:#d0cfc8;--color-text:#0d0d28;--color-muted:#666;--color-muted-light:#999;--color-accent:#d4a017;--color-danger:#c0392b;--color-warning:#d97706;--color-success:#27ae60;--color-info:#2563eb;--radius-card:16px;--radius-btn:8px;--radius-input:8px;--shadow-card:0 1px 3px #0000000f;--font:"system-ui", sans-serif;--nav-height:70px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased}.page-container{font-family:var(--font);background:var(--color-bg);max-width:480px;min-height:100vh;padding-bottom:var(--nav-height);margin:0 auto;position:relative}.page-header{padding:24px 20px 8px}.page-header h1,.page-title{color:var(--color-text);margin-bottom:4px;font-size:22px;font-weight:700}.page-subtitle{color:var(--color-muted);font-size:13px}.page-section{margin-bottom:16px;padding:0 16px}.card{background:var(--color-card);border:.5px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);margin-bottom:12px;padding:16px}.card-flat{background:var(--color-card);border-radius:var(--radius-card);margin-bottom:12px;padding:16px}.card-row{justify-content:space-between;align-items:center;display:flex}.card-title{color:var(--color-text);font-size:15px;font-weight:600}.card-subtitle{color:var(--color-muted);margin-top:2px;font-size:13px}.card-value{color:var(--color-text);font-size:18px;font-weight:700}.alert-card{border-radius:12px;margin-bottom:10px;padding:12px 14px;font-size:13px}.alert-card-danger{color:var(--color-danger);background:#fef2f2;border:1px solid #fecaca}.alert-card-warning{color:var(--color-warning);background:#fffbeb;border:1px solid #fde68a}.alert-card-success{color:var(--color-success);background:#f0fdf4;border:1px solid #bbf7d0}.alert-card-info{color:var(--color-info);background:#eff6ff;border:1px solid #bfdbfe}.stat-grid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px;padding:0 16px;display:grid}.stat-card{background:var(--color-card);border:.5px solid var(--color-border);border-radius:var(--radius-card);text-align:center;padding:14px 12px}.stat-card-label{color:var(--color-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:11px}.stat-card-value{color:var(--color-text);font-size:20px;font-weight:700}.form-group{margin-bottom:16px}.label{color:var(--color-muted);margin-bottom:5px;font-size:14px;display:block}.label-dark{font-size:14.5px;font-family:var(--font);color:#2d2d2f;margin-bottom:13px;display:block}.input{border:.5px solid var(--color-border-input);border-radius:var(--radius-input);box-sizing:border-box;width:100%;font-size:14px;font-family:var(--font);color:var(--color-text);-webkit-appearance:none;background:#fff;outline:none;padding:10px 12px}.input:focus{border-color:var(--color-text);box-shadow:0 0 0 2px #0d0d2814}.input-dark{border-color:var(--color-text)}.search-input{border:.5px solid var(--color-border-input);width:100%;font-size:15px;font-family:var(--font);background:#fff;border-radius:12px;outline:none;padding:10px 14px}.btn{font-family:var(--font);border-radius:var(--radius-btn);cursor:pointer;border:none;justify-content:center;align-items:center;gap:6px;min-height:44px;padding:10px 16px;font-size:14px;font-weight:600;transition:opacity .15s;display:inline-flex}.btn:active{opacity:.8}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-text);color:#fff;width:100%}.btn-secondary{color:var(--color-text);border:1px solid var(--color-border-input);background:#fff;width:100%}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger-outline{color:var(--color-danger);border:1px solid var(--color-danger);background:0 0}.btn-ghost{color:var(--color-muted);min-height:unset;background:0 0;padding:8px}.btn-icon{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;display:flex}.btn-full{width:100%}.badge{text-transform:uppercase;letter-spacing:.3px;border-radius:20px;padding:3px 8px;font-size:11px;font-weight:700;display:inline-block}.badge-vencido,.badge-urgente{color:var(--color-danger);background:#fee2e2}.badge-atencao,.badge-vencendo{color:var(--color-warning);background:#fef3c7}.badge-prazo,.badge-pago{color:var(--color-success);background:#d1fae5}.badge-risco-alto{color:var(--color-danger);background:#fee2e2}.badge-risco-medio{color:var(--color-warning);background:#fef3c7}.badge-risco-baixo{color:var(--color-success);background:#d1fae5}.list-section{padding:0 16px}.list-item{background:var(--color-card);border:.5px solid var(--color-border);border-radius:var(--radius-card);justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;padding:14px 16px;display:flex}.divider{background:var(--color-border);height:1px;margin:8px 0}.progress-track{background:#e5e7eb;border-radius:3px;width:100%;height:6px;margin-top:6px;overflow:hidden}.progress-fill{border-radius:3px;height:100%;transition:width .3s}.progress-fill-success{background:var(--color-success)}.progress-fill-warning{background:var(--color-warning)}.progress-fill-danger{background:var(--color-danger)}.empty-state{text-align:center;color:var(--color-muted);padding:48px 24px}.empty-state-icon{opacity:.5;margin-bottom:12px;font-size:40px}.empty-state p{font-size:14px}.loading-screen{min-height:100vh;color:var(--color-muted);justify-content:center;align-items:center;font-size:15px;display:flex}.modal-overlay{z-index:100;background:#00000073;justify-content:center;align-items:flex-end;padding:16px;display:flex;position:fixed;inset:0}.modal-sheet{background:#fff;border-radius:20px 20px 16px 16px;width:100%;max-width:480px;padding:24px}.modal-title{margin-bottom:16px;font-size:17px;font-weight:700}.nav-bar{border-top:.5px solid var(--color-border);width:100%;max-width:480px;height:var(--nav-height);z-index:50;background:#fff;justify-content:space-around;align-items:center;padding:0 8px;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.nav-item{cursor:pointer;background:0 0;border:none;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-width:44px;min-height:44px;padding:8px 10px;text-decoration:none;display:flex}.nav-item-label{color:var(--color-muted);font-size:10px;font-family:var(--font)}.nav-item.active .nav-item-label{color:var(--color-text);font-weight:700}.text-danger{color:var(--color-danger)!important}.text-warning{color:var(--color-warning)!important}.text-success{color:var(--color-success)!important}.text-muted{color:var(--color-muted)!important}.text-accent{color:var(--color-accent)!important}.text-right{text-align:right}.text-center{text-align:center}.font-bold{font-weight:700}.font-medium{font-weight:500}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}.mb-16{margin-bottom:16px}.flex{display:flex}.flex-center{justify-content:center;align-items:center;display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.flex-col{flex-direction:column;display:flex}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.w-full{width:100%}.hidden{display:none}@media (width>=768px){.page-container{grid-template-rows:auto;grid-template-columns:240px 1fr;max-width:100%;padding-bottom:0;display:grid}.nav-bar{border-top:none;border-right:.5px solid var(--color-border);flex-direction:column;justify-content:flex-start;gap:4px;width:240px;max-width:240px;height:100vh;padding:24px 12px;position:fixed;top:0;bottom:0;left:0;transform:none}.nav-item{flex-direction:row;justify-content:flex-start;gap:12px;width:100%;padding:10px 16px}.nav-item-label{font-size:14px}.page-content{grid-column:2;max-width:720px;padding:0 24px}.stat-grid{grid-template-columns:repeat(4,1fr)}.modal-overlay{align-items:center}.modal-sheet{border-radius:16px;max-width:520px}}
