:root{--color1: #f7f4e8;--color2: #daf3ea;--color3: #85e6c0;--color4: #6bb39b;--color5: #0b0b0d;--bg: var(--color1);--card-bg: var(--color1);--text: var(--color5);--text-muted: var(--color4);--border: var(--color4);--primary: var(--color3);--primary-hover: var(--color4);--shadow-light: rgba(255, 255, 255, .8);--shadow-dark: rgba(107, 179, 155, .25)}[data-theme=dark]{--color1: #1a1a1a;--color2: #2d2d2d;--color3: #85e6c0;--color4: #4a7a6a;--color5: #f0f0f0;--bg: #121212;--card-bg: #1e1e1e;--text: #f0f0f0;--text-muted: #888888;--border: #333333;--shadow-light: rgba(255, 255, 255, .05);--shadow-dark: rgba(0, 0, 0, .5)}[data-theme=dark] input,[data-theme=dark] select{background:#1a1a1a;border-color:#333}*{margin:0;padding:0;box-sizing:border-box}html,body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;min-height:100vh;transition:background .3s,color .3s}body{min-width:320px}.logo{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.logo-icon{width:44px;height:44px;background:linear-gradient(135deg,var(--color3) 0%,var(--color4) 100%);border-radius:12px;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 18px var(--shadow-dark),inset 0 1px #ffffff40;flex-shrink:0}.logo-mark{width:28px;height:28px}.logo-stroke{stroke:var(--color5)}.logo-fill{fill:var(--color5)}.logo-text{font-size:1.1rem;font-weight:600;color:var(--text);letter-spacing:.02em}.logo-text span{color:var(--color3);font-weight:700}[data-theme=dark] .logo-icon{background:linear-gradient(135deg,var(--color3) 0%,var(--color4) 100%)}.theme-toggle{font-size:.95rem;font-weight:500;display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;color:var(--text-muted);border-radius:12px;transition:all .3s;background:var(--bg);border:none;width:100%;cursor:pointer;box-shadow:4px 4px 12px var(--shadow-dark),-4px -4px 12px var(--shadow-light)}.sidebar:not(.open) .theme-toggle{padding:.5rem;margin:0 auto;justify-content:center;border-radius:10px}.theme-toggle:hover{background:var(--color2);color:var(--text)}.theme-toggle:hover .nav-icon path,.theme-toggle:hover .nav-icon circle{stroke:var(--text)}.data-btn{font-size:.95rem;font-weight:500;display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;color:var(--text-muted);border-radius:12px;transition:all .3s;background:var(--bg);border:none;width:100%;cursor:pointer;box-shadow:4px 4px 12px var(--shadow-dark),-4px -4px 12px var(--shadow-light);text-decoration:none;box-sizing:border-box}.data-btn-label{font:inherit}.sidebar:not(.open) .data-btn{padding:.5rem;margin:0 auto;justify-content:center;border-radius:10px;width:auto}.data-btn:hover{background:var(--color2);color:var(--text)}.data-btn:hover .nav-icon path,.data-btn:hover .nav-icon circle{stroke:var(--text)}.app,.app-shell{display:flex;min-height:100vh}.brand-lockup{margin-bottom:2rem}.subtitle{color:var(--text-muted)}.hint{margin-top:1.5rem;color:var(--text-muted);font-size:.92rem}.hint code{background:var(--bg);padding:.15rem .35rem;border-radius:6px}.header{display:none;position:fixed;top:0;left:0;right:0;height:60px;background:var(--card-bg);box-shadow:0 2px 10px var(--shadow-dark);z-index:100;padding:0 1rem;align-items:center;justify-content:space-between}.menu-btn{width:44px;height:44px;border:none;background:var(--bg);cursor:pointer;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;border-radius:12px;box-shadow:4px 4px 12px var(--shadow-dark),-4px -4px 12px var(--shadow-light);margin:0 auto 1.25rem;transition:transform .2s ease,background .2s ease}.menu-btn:hover{transform:translateY(-1px);background:var(--color2)}.menu-glyph{width:20px;height:20px}.menu-glyph path{stroke:var(--text);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.nav-icon{width:1.4rem;height:1.4rem;flex-shrink:0}.nav-icon path,.nav-icon circle,.nav-icon rect{stroke:var(--text-muted);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none}.nav-icon circle,.nav-icon rect{stroke-width:1.5}.sidebar .nav-icon path,.sidebar .nav-icon circle,.sidebar .nav-icon rect{stroke:var(--text-muted)}.sidebar a:hover .nav-icon path,.sidebar button:hover .nav-icon path,.sidebar a:hover .nav-icon circle,.sidebar button:hover .nav-icon circle{stroke:var(--text)}.sidebar{width:72px;background:var(--card-bg);padding:1rem .5rem;position:fixed;height:100vh;box-shadow:4px 0 20px var(--shadow-dark);transform:translate(0);transition:width .3s;z-index:99;overflow:hidden;display:flex;flex-direction:column}.sidebar.open{width:260px;padding:1.25rem 1rem}.sidebar:not(.open){width:72px;padding:1rem .5rem}.sidebar:not(.open) .logo-icon{width:44px;height:44px;margin:0 auto 1rem}.sidebar:not(.open) .logo{justify-content:center}.sidebar ul{list-style:none;display:flex;flex-direction:column;gap:.5rem;flex:1}.sidebar li{margin-bottom:0}.sidebar a,.sidebar button{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;color:var(--text-muted);text-decoration:none;border-radius:12px;transition:all .3s;background:var(--bg);border:none;width:100%;text-align:left;cursor:pointer;font-size:.95rem;font-weight:500;box-shadow:4px 4px 12px var(--shadow-dark),-4px -4px 12px var(--shadow-light)}.sidebar-footer{margin-top:auto;display:flex;flex-direction:column;gap:.5rem}.nav-label{white-space:nowrap}.sidebar:not(.open){padding:.5rem}.sidebar:not(.open) a,.sidebar:not(.open) button{justify-content:center;padding:0;width:44px;height:44px;margin:0 auto;border-radius:8px;margin-bottom:.5rem}.sidebar:not(.open) .nav-icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center}.sidebar a:hover,.sidebar button:hover{background:var(--color2);color:var(--text)}.app-shell main,main{flex:1;padding:2rem;width:100%;margin-left:72px;transition:margin-left .3s}.sidebar.open~main,main.sidebar-open{margin-left:260px}.page-hero{margin-bottom:1.5rem}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;color:var(--text-muted);margin-bottom:.35rem}.page-error{margin-bottom:1rem}.stack{display:grid;gap:1rem}.stack-lg{display:grid;gap:1.5rem}.auth-actions{display:flex;gap:.75rem;flex-wrap:wrap}.row-actions{white-space:nowrap;text-align:right}.row-actions>*{display:inline-flex;vertical-align:middle;margin-left:.5rem;flex:0 0 auto}.row-actions>*:first-child{margin-left:0}.row-actions form{display:inline-flex;margin:0}.section-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.form-grid{grid-template-columns:1fr}.filter-bar{display:grid;gap:.75rem}.filter-bar input,.filter-bar select{margin:0}.sort-header{border:none;background:transparent;color:var(--text-muted);font:inherit;font-weight:600;text-transform:uppercase;cursor:pointer;padding:0}.sort-header.active{color:var(--text)}.pagination{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.pagination-label{color:var(--text-muted);font-size:.92rem}.toast{position:sticky;top:1rem;z-index:120;padding:.9rem 1rem;border-radius:14px;box-shadow:6px 6px 18px var(--shadow-dark),-6px -6px 18px var(--shadow-light);font-weight:600;margin-bottom:1rem}.toast.success{background:#85e6c038;color:#1f6d54}.toast.error{background:#ef66662e;color:#b63b3b}.sync-banner{margin-bottom:1rem;padding:.9rem 1rem;border-radius:14px;font-weight:600;box-shadow:6px 6px 18px var(--shadow-dark),-6px -6px 18px var(--shadow-light)}.sync-banner.offline{background:#ffc4552e;color:#8a5a00}.sync-banner.pending{background:#85e6c02e;color:#1f6d54}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0b0b0d6b;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:130;overflow-y:auto}.modal-card{width:min(560px,100%);background:var(--card-bg);border-radius:22px;padding:1.5rem;box-shadow:12px 12px 28px var(--shadow-dark),-12px -12px 28px var(--shadow-light);overflow:visible}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.modal-header h3{font-size:1.15rem}.table-wrap{width:100%;overflow-x:auto}.page{width:100%}.card{background:var(--card-bg);border-radius:20px;padding:2rem;box-shadow:8px 8px 24px var(--shadow-dark),-8px -8px 24px var(--shadow-light)}.card h2{font-size:1.25rem;margin-bottom:1.5rem;color:var(--text);font-weight:600}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;width:100%}.login-card{width:100%;max-width:400px;padding:2.5rem}.login-card h1{text-align:center;font-size:1.75rem;margin-bottom:2rem}.form-group{margin-bottom:1.25rem}label{display:block;margin-bottom:.5rem;color:var(--text-muted);font-weight:500;font-size:.9rem}input,select{width:100%;padding:.875rem 1rem;border-radius:12px;background:var(--bg);border:2px solid transparent;color:var(--text);font-size:1rem;box-shadow:inset 4px 4px 12px var(--shadow-dark),inset -4px -4px 12px var(--shadow-light);transition:all .3s}input:focus,select:focus{border-color:var(--color3)}input[type=date]::-webkit-calendar-picker-indicator,input[type=datetime-local]::-webkit-calendar-picker-indicator{filter:var(--calendar-icon-filter);cursor:pointer;opacity:.7;transition:opacity .2s}input[type=date]::-webkit-calendar-picker-indicator:hover,input[type=datetime-local]::-webkit-calendar-picker-indicator:hover{opacity:1}:root{--calendar-icon-filter: invert(.5)}[data-theme=dark]{--calendar-icon-filter: invert(.7)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg);border-radius:4px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color4)}::-webkit-scrollbar-corner{background:var(--bg)}.custom-select{position:relative;width:100%}.select-display{width:100%;padding:.875rem 1rem;border-radius:12px;background:var(--bg);border:2px solid transparent;color:var(--text);font-size:1rem;box-shadow:inset 4px 4px 12px var(--shadow-dark),inset -4px -4px 12px var(--shadow-light);display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:all .3s;text-align:left}.select-display:hover,.select-display:focus{border-color:var(--color3)}.select-display svg{width:1rem;height:1rem;flex-shrink:0}.select-display svg path{stroke:var(--text-muted);stroke-width:2;fill:none}.select-dropdown{position:absolute;top:calc(100% + .5rem);left:0;right:0;background:var(--card-bg);border-radius:12px;box-shadow:0 8px 24px var(--shadow-dark),0 -4px 12px var(--shadow-light);padding:.5rem;z-index:1000;max-height:240px;overflow-y:auto;animation:fadeIn .15s ease}.select-option{width:100%;padding:.75rem 1rem;border:none;background:none;color:var(--text);font-size:1rem;text-align:left;cursor:pointer;border-radius:8px;transition:all .15s}.select-option:hover{background:var(--color2)}.select-option.selected{background:var(--color3);color:var(--color5);font-weight:600}.small-select{position:relative;width:auto}.small-select-display{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:8px;background:var(--bg);border:2px solid var(--border);color:var(--text);font-size:.85rem;cursor:pointer;transition:all .2s}.small-select-display:hover{border-color:var(--color3)}.small-select-display svg{width:.75rem;height:.75rem}.small-select-display svg path{stroke:var(--text-muted);stroke-width:2;fill:none}.small-select-dropdown{position:absolute;top:calc(100% + .25rem);left:0;min-width:120px;background:var(--card-bg);border-radius:8px;box-shadow:0 4px 12px var(--shadow-dark);padding:.25rem;z-index:100}.small-select-option{width:100%;padding:.5rem .75rem;border:none;background:none;color:var(--text);font-size:.85rem;text-align:left;cursor:pointer;border-radius:6px;transition:all .15s}.small-select-option:hover{background:var(--color2)}.small-select-option.selected{background:var(--color3);color:var(--color5);font-weight:600}.custom-date-picker{position:relative;width:100%}.date-picker-display{width:100%;padding:.875rem 1rem;border-radius:12px;background:var(--bg);border:2px solid transparent;color:var(--text);font-size:1rem;box-shadow:inset 4px 4px 12px var(--shadow-dark),inset -4px -4px 12px var(--shadow-light);display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:all .3s}.date-picker-display:hover{border-color:var(--color3)}.date-picker-display svg{width:1.25rem;height:1.25rem;flex-shrink:0}.date-picker-display svg path,.date-picker-display svg rect{stroke:var(--text-muted);stroke-width:2;fill:none}.date-picker-dropdown{position:absolute;top:calc(100% + .5rem);left:0;right:0;background:var(--card-bg);border-radius:12px;box-shadow:0 8px 24px var(--shadow-dark),0 -4px 12px var(--shadow-light);padding:1rem;z-index:1000;animation:fadeIn .15s ease;max-height:70vh;overflow-y:auto}.date-picker-dropdown.datetime{width:280px}.date-picker-dropdown.dropup{top:auto;bottom:calc(100% + .5rem)}.time-picker-section{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}.time-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;background:var(--bg);border:none;border-radius:8px;color:var(--text);font-size:.9rem;cursor:pointer}.time-toggle:hover{background:var(--color2)}.time-toggle svg{width:1rem;height:1rem}.time-toggle svg path{stroke:var(--text-muted);stroke-width:2;fill:none}.time-picker-grid{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:.5rem}.time-select{width:auto;padding:.5rem;font-size:1rem}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.date-picker-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.date-picker-header button{background:none;border:none;padding:.5rem;cursor:pointer;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background .2s}.date-picker-header button:hover{background:var(--color2)}.date-picker-header button svg{width:1rem;height:1rem}.date-picker-header button svg path{stroke:var(--text);stroke-width:2;fill:none}.date-picker-header span{font-weight:600;color:var(--text);font-size:.95rem}.date-picker-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem;margin-bottom:.5rem}.date-picker-weekdays span{text-align:center;font-size:.75rem;font-weight:600;color:var(--text-muted);padding:.25rem}.date-picker-days{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem}.date-picker-days button{aspect-ratio:1;border:none;background:none;color:var(--text);font-size:.875rem;cursor:pointer;border-radius:8px;transition:all .15s;display:flex;align-items:center;justify-content:center}.date-picker-days button:hover{background:var(--color2)}.date-picker-days button.selected{background:var(--color3);color:var(--color5);font-weight:600}.date-picker-days button.blank{cursor:default}.date-picker-days button.blank:hover{background:none}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.875rem 1.75rem;border-radius:12px;font-weight:600;cursor:pointer;transition:all .3s;border:none;font-size:.95rem;box-shadow:6px 6px 16px var(--shadow-dark),-6px -6px 16px var(--shadow-light)}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--color3);color:var(--color5)}.btn-primary:hover{background:var(--color4)}.btn-secondary{background:var(--bg);color:var(--text)}.btn-secondary:hover{background:var(--color2)}.btn-danger{background:#ef6666;color:#fff}.btn-sm{padding:.5rem 1rem;font-size:.85rem}a.btn.btn-sm.btn-secondary,button.btn.btn-sm.btn-secondary,button.btn.btn-sm.btn-danger,a.btn.btn-sm.btn-danger{box-shadow:none}.status-badge{display:inline-flex;align-items:center;justify-content:center;min-width:92px;padding:.35rem .7rem;border-radius:999px;font-size:.82rem;font-weight:700}.status-badge.paid{background:#85e6c033;color:#26785d}.status-badge.due{background:#5cb49629;color:#3d7f6b}.status-badge.overdue,.status-badge.pending{background:#ef66662e;color:#b63b3b}.pending-badge{display:inline-flex;align-items:center;margin-left:.5rem;padding:.2rem .5rem;border-radius:999px;background:#ffc4552e;color:#8a5a00;font-size:.72rem;font-weight:700;vertical-align:middle}.error{background:#ef666626;border:2px solid #ef6666;color:#dc5555;padding:.875rem 1rem;border-radius:12px;margin-bottom:1rem;font-weight:500}table{width:100%;border-collapse:separate;border-spacing:0}table th,table td{padding:1rem;border-bottom:1px solid var(--border)}table th{color:var(--text-muted);font-weight:600;font-size:.85rem;text-transform:uppercase}tr:hover{background:var(--color2)}.receipts-table{width:100%}.receipts-table th,.receipts-table td{padding:.75rem .5rem;font-size:.9rem;white-space:nowrap;text-align:left}.receipts-table th{font-size:.8rem}.receipts-table td.contract-cell{white-space:normal;line-height:1.4}.receipts-table td.contract-cell span{display:block}.receipts-table td.contract-cell span+span{color:var(--text-muted);font-size:.85rem}.receipts-table td:nth-child(5){font-weight:600}.receipts-table td:nth-child(6),.receipts-table td:nth-child(7){text-align:right}.receipts-table td:nth-child(6) .btn{margin-right:.25rem}.receipts-section .table-wrap{overflow-x:auto}.grid{display:grid;gap:1rem}@media(max-width:1100px){.receipts-section .table-wrap{overflow-x:visible}.receipts-section .receipts-table{display:block}.receipts-section .receipts-table thead{display:none}.receipts-section .receipts-table tbody{display:grid;gap:.75rem}.receipts-section .receipts-table tr{background:var(--bg);border-radius:12px;padding:.75rem 1rem}.receipts-section .receipts-table td{display:block;width:100%;border-bottom:none;padding:.35rem 0}.receipts-section .receipts-table td:before{content:attr(data-label);display:block;color:var(--text-muted);font-size:.75rem;text-transform:uppercase;margin-bottom:.15rem;font-weight:700}.receipts-section td.row-actions:before{content:"Ações"}.receipts-section .row-actions{display:flex;justify-content:flex-start;align-items:center;gap:.5rem;flex-wrap:wrap;padding-top:.5rem;text-align:left}.receipts-section .row-actions>*{margin-left:0}}@media(max-width:768px){.header{display:flex}.sidebar{width:72px;height:100dvh}.sidebar.open{width:220px}.app-shell main,main{padding:1rem;margin-left:72px}main.sidebar-open{margin-left:220px}.card{padding:1.5rem}.page{max-width:100%}.table-wrap{overflow-x:visible}table,thead,tbody,tr,th,td{display:block;width:100%}thead{display:none}tbody{display:grid;gap:.9rem}tr{background:var(--bg);border-radius:14px;padding:.35rem .85rem;box-shadow:4px 4px 12px var(--shadow-dark),-4px -4px 12px var(--shadow-light)}table td{border-bottom:none;padding:.45rem 0}table td:before{content:attr(data-label);display:block;color:var(--text-muted);font-size:.78rem;text-transform:uppercase;margin-bottom:.2rem;font-weight:700}td.row-actions:before{content:"Ações"}.row-actions{display:flex;justify-content:flex-start;align-items:center;gap:.5rem;flex-wrap:nowrap;padding-top:.6rem;overflow-x:auto;text-align:left}.row-actions>*{margin-left:0;margin-right:0}.receipts-section .btn-sm{width:auto}.pagination{flex-direction:column;align-items:stretch}}
