:root{color-scheme:light;--bg: #eeece5;--surface: #fffdf7;--surface-soft: #f6f2e9;--surface-strong: #e8e0d1;--text: #302c26;--text-strong: #171511;--muted: #746d60;--line: #d4c9b7;--line-soft: #e2d8c8;--primary: #b8571d;--primary-dark: #7b3718;--primary-soft: #fff0df;--secondary: #34685d;--secondary-dark: #234a42;--secondary-soft: #e1eee7;--danger: #a43b2f;--danger-dark: #7e261f;--danger-soft: #fae8e4;--warning: #c27a1a;--success: #47724a;--shadow-sm: 0 1px 0 rgba(48, 44, 38, .1);--shadow-md: 0 12px 26px rgba(48, 44, 38, .12);--shadow-lg: 0 28px 80px rgba(31, 28, 22, .24);--radius: 8px;--radius-sm: 4px;--sidebar: #28251f;--sidebar-2: #1b1915}*{box-sizing:border-box}html{min-height:100%;background:var(--bg)}body{margin:0;min-height:100vh;font-family:IBM Plex Sans,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--text);background:linear-gradient(rgba(52,104,93,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(52,104,93,.045) 1px,transparent 1px),linear-gradient(180deg,#f7f4ec 0,var(--bg) 360px);background-size:28px 28px,28px 28px,auto;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}h1,h2,h3,p{margin-top:0}h1,h2,h3,strong{color:var(--text-strong)}h1{margin-bottom:7px;font-size:29px;line-height:1.15;font-weight:700}h2{margin-bottom:16px;font-size:19px;line-height:1.25;font-weight:700}h3{font-size:15px;line-height:1.35}.muted{color:var(--muted)}.eyebrow{margin:0 0 8px;color:var(--primary);font-size:12px;font-weight:760;letter-spacing:.04em;text-transform:uppercase}.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(rgba(123,55,24,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(123,55,24,.06) 1px,transparent 1px),linear-gradient(145deg,#f9f5eb,#e6dfd2);background-size:32px 32px,32px 32px,auto}.auth-panel{width:min(460px,100%);padding:28px;background:#fffdf7f7;border:1px solid rgba(123,55,24,.22);border-radius:var(--radius);box-shadow:var(--shadow-lg);backdrop-filter:blur(6px)}.auth-panel h1{font-size:32px}.auth-brand{display:flex;align-items:center;gap:13px;margin-bottom:16px}.auth-brand .brand-mark{box-shadow:6px 8px #7b371824}.auth-brand .eyebrow{margin-bottom:3px}.auth-brand h1{margin-bottom:0}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:24px 0;background:var(--surface-strong);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.segmented button{min-height:38px;padding:9px 12px;color:var(--muted);background:transparent;border:0;border-radius:0;font-weight:700}.segmented button.active{color:var(--primary-dark);background:var(--surface);box-shadow:inset 0 -3px 0 var(--primary)}.form{display:grid;gap:14px}label{display:grid;gap:6px;min-width:0;color:#4b4337;font-size:13px;font-weight:700}.checkbox-field{align-self:end;display:flex;min-height:40px;flex-direction:row;align-items:center;gap:9px;padding:9px 11px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm)}.checkbox-field input{width:16px;min-height:16px;margin:0;padding:0;accent-color:var(--primary);box-shadow:none}.checkbox-field span{min-width:0}input,select,textarea{width:100%;min-width:0;min-height:40px;padding:9px 11px;color:var(--text);background:var(--surface);border:1px solid #c9bca8;border-radius:var(--radius-sm);outline:none;box-shadow:inset 0 1px #302c2608;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}textarea{min-height:78px;resize:vertical}input::placeholder,textarea::placeholder{color:#a49b8c}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}input:focus,select:focus,textarea:focus{border-color:#b8571dc7;box-shadow:0 0 0 3px #b8571d24,inset 0 1px #302c2608}.primary,.secondary,.ghost,.danger{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 14px;border:1px solid transparent;border-radius:var(--radius-sm);font-size:14px;font-weight:700;line-height:1.2;text-decoration:none;transition:box-shadow .16s ease,background-color .16s ease,border-color .16s ease,color .16s ease}.primary:hover,.secondary:hover,.ghost:hover,.danger:hover{box-shadow:var(--shadow-sm)}.primary{color:#fff;background:var(--primary);border-color:#8e4119;box-shadow:inset 0 -2px #00000029}.primary:hover{background:var(--primary-dark);box-shadow:inset 0 -2px #00000029,var(--shadow-sm)}.create-button{min-height:48px;padding:8px 14px 8px 10px;color:var(--primary-dark);background:var(--surface);border-color:#d1a06d;box-shadow:inset 0 -2px #b8571d1f}.create-button:hover{color:#fff;background:var(--primary);border-color:transparent;box-shadow:inset 0 -2px #00000029}.create-button .button-icon{width:24px;height:24px;border-radius:999px;color:#fff;background:var(--primary)}.create-button:hover .button-icon{color:var(--primary-dark);background:#fff}.create-button .button-icon svg{width:15px;height:15px}.secondary{color:#fff;background:var(--secondary);border-color:#28554c;box-shadow:inset 0 -2px #00000029}.secondary:hover{background:var(--secondary-dark)}.ghost{color:#4b4337;background:var(--surface);border-color:var(--line);box-shadow:var(--shadow-sm)}.ghost:hover{color:var(--primary-dark);border-color:#d1a06d;background:var(--primary-soft)}.danger{color:#fff;background:var(--danger);border-color:var(--danger-dark);box-shadow:inset 0 -2px #00000029}.danger:hover{background:var(--danger-dark)}.link-button{display:inline-flex}.error,.error-text{color:var(--danger-dark)}.error{margin:0;padding:11px 12px;background:var(--danger-soft);border:1px solid #e8b9b0;border-radius:var(--radius-sm);font-weight:700}.error-text{font-weight:760}.app-shell{min-height:100vh;display:grid;grid-template-columns:286px minmax(0,1fr);transition:grid-template-columns .18s ease}.app-shell.sidebar-collapsed{grid-template-columns:88px minmax(0,1fr)}.sidebar{position:sticky;top:0;z-index:3;height:100vh;display:flex;flex-direction:column;gap:22px;padding:22px;color:#fff;background:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px),linear-gradient(180deg,var(--sidebar),var(--sidebar-2));background-size:22px 22px,22px 22px,auto;border-right:1px solid #423b31}.brand{display:flex;align-items:center;gap:12px;min-height:44px}.brand>div{min-width:0;flex:1 1 auto}.brand-mark{flex:0 0 auto;display:grid;place-items:center;width:42px;height:42px;color:#2b241b;background:#e7c08d;border:1px solid rgba(255,255,255,.34);border-radius:6px;box-shadow:5px 5px #00000038}.brand-mark svg{width:25px;height:25px}.brand strong{display:block;color:#fff6e5;font-size:17px;letter-spacing:.02em}.brand small{display:block;max-width:178px;margin-top:2px;overflow:hidden;color:#c7bba7;text-overflow:ellipsis;white-space:nowrap}.sidebar-toggle{position:absolute;top:50%;right:-15px;z-index:4;width:30px;height:42px;min-height:42px;padding:0;transform:translateY(-50%);color:#efe2cc;background:#3b342b;border-color:#ffffff29;border-radius:999px;box-shadow:0 10px 24px #1f1c1642}.sidebar-toggle:hover{color:#fff6e5;background:var(--primary);border-color:#e7c08db3;transform:translateY(-50%)}.obra-select{padding:14px;color:#e2d5bd;background:#fff6e50e;border:1px solid rgba(231,192,141,.16);border-radius:var(--radius)}.sidebar select{color:#fff6e5;background:#342f28;border-color:#5b4e40}.sidebar select:focus{border-color:#e7c08dd9;box-shadow:0 0 0 3px #e7c08d29}.sidebar nav{display:grid;gap:6px}.sidebar a{min-height:42px;display:flex;align-items:center;gap:10px;padding:10px 12px;color:#e4d8c5;border-radius:var(--radius-sm);text-decoration:none;font-weight:680;transition:color .16s ease,background-color .16s ease,border-color .16s ease}.nav-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar a:hover{color:#fff6e5;background:#fff6e514}.sidebar a.active{color:#fff9ec;background:#b8571d4d;box-shadow:inset 4px 0 #e7c08d}.nav-icon,.button-icon{flex:0 0 auto;display:inline-grid;place-items:center}.nav-icon svg,.button-icon svg,.icon-button svg{width:18px;height:18px;stroke-width:2}.table-action svg{width:17px;height:17px}.loading-spinner{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.sidebar>.ghost:not(.sidebar-toggle){margin-top:auto;color:#e4d8c5;background:#fff6e50e;border-color:#e7c08d29;box-shadow:none}.sidebar>.ghost:not(.sidebar-toggle):hover{color:#fff6e5;background:#a43b2f3d;border-color:#e8b9b061}.sidebar-collapsed .sidebar{align-items:center;gap:16px;padding:22px 14px}.sidebar-collapsed .brand{justify-content:center}.sidebar-collapsed .brand>div,.sidebar-collapsed .obra-select,.sidebar-collapsed .nav-label{display:none}.sidebar-collapsed .sidebar nav{width:100%}.sidebar-collapsed .sidebar a,.sidebar-collapsed .sidebar>.ghost:not(.sidebar-toggle){justify-content:center;width:100%;padding:10px}.sidebar-collapsed .sidebar a:hover{transform:none}.sidebar-collapsed .sidebar>.ghost:not(.sidebar-toggle){margin-top:auto}.content{min-width:0;padding:30px;overflow:auto}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px}.page-header p{margin-bottom:0}.page-title-action{display:flex;align-items:center;gap:9px;min-width:0}.page-title-action h1{margin-bottom:0}.page-header .page-title-action .icon-button{flex:0 0 38px;color:var(--primary-dark);background:var(--primary-soft);border-color:#d1a06d}.title-action:hover{color:var(--primary-dark);background:#ffe4c5}.page-actions{min-height:48px;justify-content:flex-end;align-items:stretch}.drive-account{position:relative;height:48px;display:grid;grid-template-columns:34px minmax(120px,max-content) 32px;column-gap:12px;align-items:center;width:fit-content;max-width:min(380px,44vw);padding:7px 8px 7px 7px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.drive-account.connected{border-color:#a7c8b6;background:#f7fbf4}.drive-account.disconnected{border-color:#e8b9b0;background:#fff8f4}.drive-account-icon{width:34px;height:34px;display:grid;place-items:center;color:var(--primary-dark);background:var(--primary-soft);border:1px solid #d1a06d;border-radius:var(--radius-sm)}.drive-account.connected .drive-account-icon{color:var(--secondary-dark);background:var(--secondary-soft);border-color:#a7c8b6}.drive-account.disconnected .drive-account-icon{color:var(--danger-dark);background:var(--danger-soft);border-color:#e8b9b0}.drive-account-icon svg{width:21px;height:21px;stroke-width:2}.drive-account-copy{min-width:0}.drive-account-copy strong,.drive-account-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drive-account-copy strong{margin-bottom:2px;font-size:13px}.drive-account-copy small{color:var(--muted);font-size:12px;font-weight:700}.drive-account-action{width:32px;height:32px;min-height:32px;padding:0;justify-self:end;margin-left:4px}.drive-account.connected .drive-account-action{color:var(--danger-dark);background:var(--danger-soft);border-color:#e8b9b0;box-shadow:none}.drive-account.connected .drive-account-action:hover{color:#fff;background:var(--danger);border-color:var(--danger)}.drive-account.disconnected .drive-account-action{color:var(--secondary-dark);background:#edf7ee;border-color:#a7c8b6;box-shadow:none}.drive-account.disconnected .drive-account-action:hover{color:#fff;background:var(--secondary);border-color:var(--secondary)}.page-actions>.create-button{width:180px;flex:0 0 180px;align-self:stretch}.drive-disconnect-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:8;width:min(330px,calc(100vw - 48px));padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg)}.drive-disconnect-popover strong,.drive-disconnect-popover span{display:block}.drive-disconnect-popover span{margin:4px 0 10px;font-size:12px}.drive-disconnect-popover .actions{gap:6px;justify-content:flex-end}.drive-disconnect-popover .danger,.drive-disconnect-popover .ghost{min-height:30px;padding:6px 10px;font-size:12px;font-weight:700}.modal-extraction{width:min(720px,calc(100vw - 32px))}.extraction-field{display:grid;grid-template-columns:minmax(160px,1fr) minmax(220px,1.4fr);gap:12px;align-items:center;padding:12px;background:var(--surface-soft);border:1px solid var(--line-soft);border-radius:var(--radius-sm)}.extraction-field strong,.extraction-field span{display:block}.extraction-field select{min-width:0}.app-notification{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-4px 0 18px;padding:10px 12px;color:var(--primary-dark);background:var(--primary-soft);border:1px solid #d1a06d;border-radius:var(--radius);box-shadow:var(--shadow-sm);font-weight:700}.app-notification.success{color:var(--secondary-dark);background:var(--secondary-soft);border-color:#a7c8b6}.app-notification.error{color:var(--danger-dark);background:var(--danger-soft);border-color:#e8b9b0}.app-notification .icon-button{width:30px;height:30px;min-height:30px;flex:0 0 auto}.panel,.metric{background:#fffdf7f7;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.panel{padding:18px;margin-bottom:18px}.panel h2{display:flex;align-items:center;gap:9px}.panel h2:before{content:"";width:4px;height:20px;border-radius:2px;background:var(--primary)}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.panel-heading h2{min-width:0;margin-bottom:0}.chart-action{width:40px;height:40px;min-height:40px;flex:0 0 auto;color:var(--primary-dark);background:var(--primary-soft);border-color:#b8571d38;box-shadow:none}.chart-action:hover{color:var(--primary-dark);background:var(--primary-soft);border-color:#d1a06d;box-shadow:none}.chart-action:disabled{color:#a49b8c;background:var(--surface-strong);border-color:var(--line-soft);box-shadow:none}.chart-action svg{width:22px;height:22px}.chart-bar-primary{fill:var(--primary)}.chart-bar-secondary{fill:var(--secondary)}.chart-bar-warning{fill:var(--warning)}.filters{display:grid;grid-template-columns:minmax(220px,1fr) repeat(2,minmax(160px,220px));gap:12px;align-items:end;padding:14px;margin-bottom:14px;background:var(--surface-soft);border:1px solid var(--line-soft);border-radius:var(--radius)}.filters-5{grid-template-columns:minmax(220px,1fr) repeat(4,minmax(140px,190px))}.filters-6{grid-template-columns:minmax(220px,1fr) repeat(5,minmax(128px,180px))}.filters-7{grid-template-columns:minmax(220px,1fr) repeat(6,minmax(118px,170px))}.filters-3{grid-template-columns:minmax(220px,1fr) repeat(2,minmax(150px,220px))}.expense-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}.expense-summary>div{min-width:0;padding:12px 14px;background:var(--surface-soft);border:1px solid var(--line-soft);border-radius:var(--radius-sm)}.expense-summary span,.expense-summary strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.expense-summary span{margin-bottom:4px;font-size:12px;font-weight:700}.expense-summary strong{color:var(--text);font-size:18px;font-variant-numeric:tabular-nums}.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px}.col-3{grid-column:span 3}.col-1{grid-column:span 1}.col-4{grid-column:span 4}.col-6{grid-column:span 6}.col-8{grid-column:span 8}.col-12{grid-column:span 12}.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}td.actions{display:table-cell;gap:4px;flex-wrap:nowrap;width:128px;min-width:128px;white-space:nowrap}td.actions .table-action{vertical-align:middle}td.actions .table-action+.table-action{margin-left:4px}td.fornecedor-actions{width:166px;min-width:166px}.document-cell{display:flex;min-width:0;align-items:center;gap:7px;flex-wrap:wrap}.document-badge{width:max-content;max-width:100%;padding:3px 7px;border-radius:999px;font-size:11px;font-weight:780;line-height:1.2}.document-badge.warning{color:#734609;background:#fff3d7;border:1px solid #e7bf78}tr.sem-documento-fiscal td:first-child{box-shadow:inset 5px 0 0 var(--warning)}tr.sem-documento-fiscal td{background:#fff6df}tr.pendencia-manual td:first-child{box-shadow:inset 5px 0 0 var(--warning)}tr.pendencia-manual td{background:#fffaf0}.icon-button{width:38px;height:38px;padding:0;font-size:18px}.table-action{width:34px;height:34px;min-height:34px;flex:0 0 34px;padding:0}.table-action.ghost{color:#60584b;background:transparent;border-color:transparent;box-shadow:none}.table-action.ghost:hover{color:var(--primary-dark);background:var(--primary-soft);border-color:#d1a06d}.table-action.active-warning,.table-action.active-warning:hover{color:#734609;background:#fff3d7;border-color:#e7bf78}.table-action.danger{color:var(--danger-dark);background:transparent;border-color:transparent;box-shadow:none}.table-action.danger:hover{color:#fff;background:var(--danger);border-color:var(--danger)}.table-scroll{max-height:520px;overflow:auto;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--surface)}.table-scroll-small{max-height:240px;margin-top:14px}table{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface)}th,td{padding:12px;border-bottom:1px solid var(--line-soft);text-align:left;vertical-align:middle}th{position:sticky;top:0;z-index:1;color:#6f6657;background:#eee7da;font-size:11px;font-weight:760;letter-spacing:.04em;text-transform:uppercase}td{font-size:14px}.overdue-text{color:var(--danger-dark);font-weight:800}tbody tr{transition:background-color .14s ease}tbody tr:hover{background:#fff8eb}.interactive-row{cursor:pointer}.dashboard-grid-panel tbody .interactive-row td{transition:background-color .16s ease,box-shadow .16s ease,color .16s ease}.dashboard-grid-panel tbody .interactive-row:hover td,.dashboard-grid-panel tbody .interactive-row:focus-visible td{background:#fff4e5}.dashboard-grid-panel tbody .interactive-row:hover td:first-child,.dashboard-grid-panel tbody .interactive-row:focus-visible td:first-child{box-shadow:inset 3px 0 0 var(--primary)}.dashboard-grid-panel tbody .interactive-row:hover td.number,.dashboard-grid-panel tbody .interactive-row:focus-visible td.number{color:var(--text-strong)}.interactive-row:focus-visible{outline:3px solid rgba(184,87,29,.18);outline-offset:-3px;background:#fff8eb}.dragging-row{opacity:.58;background:var(--primary-soft)}tbody tr:last-child td{border-bottom:0}.drag-column{width:42px;padding-left:10px;padding-right:6px;text-align:center}.drag-handle{width:28px;height:28px;display:inline-grid;place-items:center;color:#9b907e;border-radius:var(--radius-sm);cursor:grab}.drag-handle:hover{color:var(--primary-dark);background:var(--primary-soft)}.drag-handle:active{cursor:grabbing}.drag-handle svg{width:18px;height:18px}.number{text-align:right;font-variant-numeric:tabular-nums}.negative{color:var(--danger-dark)}.positive{color:var(--success)}.selected-row{background:var(--primary-soft);box-shadow:inset 3px 0 0 var(--primary)}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.metric{position:relative;min-height:112px;min-width:0;padding:16px 62px 16px 16px;overflow:hidden;border-top:3px solid #d1a06d}.metric-icon{position:absolute;top:16px;right:16px;width:36px;height:36px;display:grid;place-items:center;color:var(--primary-dark);border-radius:var(--radius);background:var(--primary-soft);border:1px solid rgba(184,87,29,.2)}.metric-icon svg{width:21px;height:21px;stroke-width:2}.metric-icon.done{color:var(--secondary-dark);background:var(--secondary-soft);border-color:#a7c8b6}.metric-icon.variance{color:var(--warning);background:#fff3d7;border-color:#e7bf78}.metric-icon.cashflow{color:var(--primary-dark);background:var(--primary-soft);border-color:#d1a06d}.metric strong{display:block;margin-top:9px;max-width:100%;overflow:hidden;text-overflow:ellipsis;font-size:24px;line-height:1.1;font-weight:760;font-variant-numeric:tabular-nums;white-space:nowrap}.timeline-panel .panel-heading{align-items:baseline}.expense-timeline{position:relative;display:grid;gap:22px;max-width:1180px;margin:0 auto}.expense-timeline:before{content:"";position:absolute;top:8px;bottom:8px;left:50%;width:2px;transform:translate(-50%);background:repeating-linear-gradient(180deg,var(--primary) 0 12px,#d1a06d 12px 18px);border-radius:999px}.timeline-month{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 54px minmax(0,1fr);min-width:0}.timeline-marker{position:relative;z-index:1;grid-column:2;justify-self:center;width:22px;height:22px;margin-top:7px;background:var(--surface);border:5px solid var(--primary);border-radius:999px;box-shadow:0 0 0 4px var(--primary-soft)}.timeline-month-content{grid-column:1;grid-row:1;min-width:0;padding:14px 14px 8px;background:var(--surface-soft);border:1px solid var(--line-soft);border-radius:var(--radius)}.timeline-month:nth-child(2n) .timeline-month-content{grid-column:3}.timeline-month-header{display:flex;justify-content:space-between;gap:14px;min-width:0;margin-bottom:10px}.timeline-month-header h3{margin-bottom:2px;text-transform:capitalize}.timeline-month-header p{margin-bottom:0}.timeline-month-header>strong{flex:0 0 auto;font-size:18px;font-variant-numeric:tabular-nums}.timeline-expenses{display:grid;gap:7px}.timeline-expense{display:grid;grid-template-columns:86px minmax(0,1fr) minmax(120px,max-content);gap:12px;align-items:center;min-width:0;padding:10px 12px;background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-sm)}.timeline-expense time,.timeline-expense span,.timeline-expense strong{min-width:0}.timeline-expense div{display:grid;gap:2px;min-width:0}.timeline-expense div strong,.timeline-expense span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline-expense>strong{text-align:right;font-variant-numeric:tabular-nums}.pendency-list{display:grid;gap:14px}.pendency-group{min-width:0;overflow:hidden;background:var(--surface);border:1px solid var(--line-soft);border-left:5px solid var(--secondary);border-radius:var(--radius)}.pendency-group.critical{border-left-color:var(--danger)}.pendency-group.warning{border-left-color:var(--warning)}.pendency-group.info{border-left-color:var(--secondary)}.pendency-group-header{width:100%;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;color:var(--text);background:#fff8eb;border:0;border-bottom:1px solid var(--line-soft);border-radius:0;text-align:left;box-shadow:none}.pendency-group.collapsed .pendency-group-header{border-bottom:0}.pendency-group-header:hover{background:#fff4e5;box-shadow:none}.pendency-group-title{min-width:0;display:inline-flex;align-items:center;gap:10px}.pendency-collapse-icon{width:28px;height:28px;flex:0 0 auto;display:grid;place-items:center;color:var(--primary-dark);background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-sm)}.pendency-collapse-icon svg{width:18px;height:18px;transition:transform .16s ease}.pendency-group-header[aria-expanded=true] .pendency-collapse-icon svg{transform:rotate(90deg)}.pendency-group-header h2{margin:2px 0 0;font-size:16px}.pendency-group-summary{min-width:0;display:inline-flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.pendency-total{color:var(--muted);font-size:12px;font-weight:780;white-space:nowrap}.pendency-group-counts{display:inline-flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.pendency-count{display:inline-flex;align-items:center;min-height:28px;padding:4px 8px;border:1px solid var(--line-soft);border-radius:999px;font-size:12px;font-weight:780;white-space:nowrap}.pendency-count.critical{color:var(--danger-dark);background:var(--danger-soft);border-color:#e8b9b0}.pendency-count.warning{color:#734609;background:#fff3d7;border-color:#e7bf78}.pendency-count.info{color:var(--secondary-dark);background:var(--secondary-soft);border-color:#a7c8b6}.pendency-group-items{display:grid;gap:8px;padding:10px}.pendency-item{display:grid;grid-template-columns:90px minmax(0,1fr) max-content;gap:14px;align-items:center;min-width:0;padding:14px;background:var(--surface-soft);border:1px solid var(--line-soft);border-radius:var(--radius)}.pendency-item.critical{border-left-color:var(--danger)}.pendency-item.warning{border-left-color:var(--warning)}.pendency-item.info{border-left-color:var(--secondary)}.pendency-status{display:inline-flex;justify-content:center;min-width:0;padding:5px 8px;color:var(--text);background:var(--surface);border:1px solid var(--line-soft);border-radius:999px;font-size:12px;font-weight:760}.pendency-item.critical .pendency-status{color:var(--danger-dark);background:var(--danger-soft);border-color:#e8b9b0}.pendency-item.warning .pendency-status{color:#734609;background:#fff3d7;border-color:#e7bf78}.pendency-item.info .pendency-status{color:var(--secondary-dark);background:var(--secondary-soft);border-color:#a7c8b6}.pendency-main{display:grid;grid-template-columns:minmax(0,1fr) max-content;gap:12px;align-items:center;min-width:0}.pendency-main h2{margin:2px 0 4px;font-size:16px;white-space:nowrap}.pendency-main p{margin:0;overflow:hidden;white-space:pre-line}.pendency-main h2{overflow:hidden;text-overflow:ellipsis}.pendency-meta{display:grid;gap:4px;text-align:right;font-variant-numeric:tabular-nums}.pendency-meta time{color:var(--muted);font-size:12px;font-weight:700}.pendency-action{min-width:132px}.empty-state{padding:24px;text-align:center;background:var(--surface-soft);border:1px dashed var(--line);border-radius:var(--radius)}.empty-state h2{justify-content:center}.chart-modal{width:min(1180px,calc(100vw - 32px));max-height:min(90vh,920px)}.chart-modal .modal-header p{margin:4px 0 0}.chart-canvas-wrap{position:relative;min-height:420px;padding:14px;background:linear-gradient(rgba(52,104,93,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(52,104,93,.04) 1px,transparent 1px),var(--surface-soft);background-size:24px 24px,24px 24px,auto;border:1px solid var(--line-soft);border-radius:var(--radius)}.chart-canvas-wrap-tall{min-height:560px}.pagination{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;color:var(--muted);font-size:14px}.modal-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:24px;background:#1f1c1680;backdrop-filter:blur(3px)}.modal{width:min(760px,100%);max-height:min(86vh,900px);display:flex;flex-direction:column;overflow:hidden;padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg)}.modal-wide{width:min(1080px,100%)}.modal-expense{width:min(1240px,calc(100vw - 32px));max-height:min(90vh,960px);padding:20px}.modal-small{width:min(560px,calc(100vw - 32px));max-height:min(82vh,720px)}.confirmation-backdrop{z-index:50}.modal-confirmation{width:min(460px,calc(100vw - 32px))}.modal-confirmation .modal-header{align-items:flex-start}.modal-confirmation .modal-header p{margin:8px 0 0;line-height:1.5}.modal-confirmation .modal-footer{justify-content:flex-end}.nested-backdrop{z-index:30;background:#1f1c165c}.modal-header,.modal-footer{display:flex;justify-content:space-between;align-items:center;gap:14px}.modal-header{padding-bottom:12px;border-bottom:1px solid var(--line-soft);flex:0 0 auto}.modal-header h2{margin-bottom:0}.modal-body{min-height:0;overflow:auto;padding:16px 2px}.modal-footer{justify-content:flex-end;padding-top:14px;border-top:1px solid var(--line-soft);flex:0 0 auto}.modal-footer strong{font-size:17px;font-variant-numeric:tabular-nums}.subsection{margin-top:18px;padding-top:16px;border-top:1px solid var(--line-soft)}.subsection h3{margin:0 0 12px;font-size:16px}.expense-section{padding:16px;background:var(--surface-soft);border:1px solid var(--line-soft);border-radius:var(--radius)}.expense-section+.expense-section{margin-top:16px}.expense-section h3{margin:0 0 14px;font-size:16px;font-weight:700}.expense-section-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.expense-section-header h3{margin-bottom:0}.modal-expense textarea{min-height:118px}.modal-expense .table-scroll-small{max-height:310px}.modal-drive{width:min(1420px,calc(100vw - 28px));height:min(92vh,980px);max-height:min(92vh,980px);padding:18px}.modal-drive .modal-header p{margin:4px 0 0}.drive-body{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:minmax(320px,440px) minmax(0,1fr);gap:14px;padding:14px 2px 2px;overflow:hidden}.drive-browser,.drive-preview{min-width:0;min-height:0;overflow:hidden;background:var(--surface-soft);border:1px solid var(--line-soft);border-radius:var(--radius)}.drive-browser{display:grid;grid-template-rows:auto auto auto auto minmax(0,1fr)}.drive-breadcrumb{width:100%;max-width:100%;min-width:0;display:flex;align-items:center;gap:6px;padding:10px;overflow:hidden;white-space:nowrap;border-bottom:1px solid var(--line-soft)}.drive-breadcrumb .ghost{min-width:46px;max-width:150px;min-height:32px;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:6px 10px;font-size:12px}.drive-breadcrumb .ghost:last-child{max-width:210px}.drive-breadcrumb .ghost.drag-over{color:var(--secondary-dark);background:var(--secondary-soft);box-shadow:inset 0 0 0 1px var(--secondary)}.drive-breadcrumb-ellipsis{flex:0 0 auto;padding:0 2px;color:var(--muted);font-size:12px;font-weight:760}.drive-create-folder{display:flex;gap:7px;align-items:center;padding:10px 10px 0}.drive-create-folder input{min-height:36px}.drive-create-folder .ghost:not(.icon-button){width:100%;min-height:36px}.drive-create-folder .icon-button{width:36px;height:36px;min-height:36px;flex:0 0 auto}.drive-upload{min-height:70px;display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;align-items:center;margin:10px 10px 0;padding:10px;color:var(--text);background:var(--surface);border:1px dashed #b9aa95;border-radius:var(--radius);text-align:left;box-shadow:none}.drive-upload:hover,.drive-upload.drag-over{color:var(--primary-dark);background:var(--primary-soft);border-color:var(--primary)}.drive-upload:disabled{cursor:wait}.drive-upload-icon{width:36px;height:36px;display:grid;place-items:center;color:var(--primary-dark);background:var(--primary-soft);border:1px solid #d1a06d;border-radius:var(--radius-sm)}.drive-upload-icon svg{width:20px;height:20px;stroke-width:2}.drive-upload strong,.drive-upload span span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drive-upload strong{margin-bottom:3px;font-size:13px}.drive-upload span span{font-size:12px}.drive-action-error{margin:8px 10px 0;padding:8px 10px;color:var(--danger-dark);background:var(--danger-soft);border:1px solid #e8b9b0;border-radius:var(--radius-sm);font-size:12px;font-weight:700}.drive-action-progress{min-height:36px;display:flex;align-items:center;gap:8px;margin:8px 10px 0;padding:8px 10px;color:var(--secondary-dark);background:var(--secondary-soft);border:1px solid #a7c8b6;border-radius:var(--radius-sm);font-size:12px;font-weight:700}.drive-action-progress svg{width:16px;height:16px;flex:0 0 auto}.drive-list{min-height:0;overflow:auto;padding:8px}.drive-item-row{width:100%;min-height:58px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:9px;border:1px solid transparent;border-radius:var(--radius-sm)}.drive-item{width:100%;min-height:40px;display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;align-items:center;padding:0;color:var(--text);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);text-align:left;box-shadow:none}.drive-item-row:hover,.drive-item-row.active{background:var(--surface);border-color:#d1a06d;box-shadow:var(--shadow-sm)}.drive-item-row[draggable=true]{cursor:grab}.drive-item-row.dragging{opacity:.55}.drive-item-row.drop-target{border-style:dashed}.drive-item-row.drag-over{background:var(--secondary-soft);border-color:var(--secondary);box-shadow:inset 0 0 0 1px var(--secondary),var(--shadow-sm)}.drive-item-row.moving{opacity:.65;pointer-events:none}.drive-item:hover{transform:none}.drive-row-action{width:32px;height:32px;min-height:32px;flex:0 0 auto;padding:0}.drive-row-action svg{width:17px;height:17px}.drive-item-icon{width:36px;height:36px;display:grid;place-items:center;color:#60584b;background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-sm)}.drive-item-icon.folder{color:var(--secondary-dark);background:var(--secondary-soft)}.drive-item-icon.pdf{color:var(--danger-dark);background:var(--danger-soft)}.drive-item-icon.image{color:var(--primary-dark);background:var(--primary-soft)}.drive-item-icon svg{width:20px;height:20px;stroke-width:2}.drive-item-main{min-width:0}.drive-item-main strong,.drive-item-main span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drive-item-main strong{margin-bottom:3px;font-size:14px}.drive-item-main span{font-size:12px}.drive-rename-input{min-height:32px;padding:6px 8px;font-size:13px;font-weight:700}.drive-preview{display:grid;grid-template-rows:auto minmax(0,1fr);background:linear-gradient(45deg,rgba(48,44,38,.04) 25%,transparent 25%),linear-gradient(-45deg,rgba(48,44,38,.04) 25%,transparent 25%),#ebe5da;background-size:18px 18px}.drive-preview-header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:54px;padding:10px 12px;background:var(--surface);border-bottom:1px solid var(--line-soft)}.drive-preview-header strong{min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drive-preview-actions{display:flex;align-items:center;gap:7px;flex:0 0 auto}.drive-preview-actions .ghost{min-height:34px;flex:0 0 auto;padding:7px 11px}.drive-preview-actions .icon-button{width:34px;height:34px;padding:0}.zoom-value{min-width:62px;font-variant-numeric:tabular-nums}.drive-preview-scroll{width:100%;height:100%;min-height:0;display:grid;place-items:center;overflow:auto}.drive-image-preview,.drive-pdf-preview{border:0}.drive-image-preview{max-width:calc(100% - 28px);max-height:calc(100% - 28px);transform-origin:center center;transition:transform .16s ease}.drive-pdf-preview{min-width:100%;min-height:100%;background:var(--surface)}.drive-fullscreen{position:fixed;inset:0;z-index:80;display:grid;padding:16px;background:#0f172ad1}.drive-fullscreen-panel{min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;background:#0f172a;border:1px solid rgba(255,255,255,.18);border-radius:var(--radius);box-shadow:var(--shadow-lg)}.drive-fullscreen-header{min-width:0;min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:var(--surface);border-bottom:1px solid var(--line-soft)}.drive-fullscreen-header strong{min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drive-fullscreen-content{width:100%;height:100%;min-height:0;display:grid;place-items:center;overflow:auto}.drive-image-preview-fullscreen{max-width:calc(100vw - 64px);max-height:calc(100vh - 104px)}.drive-pdf-preview-fullscreen{width:100%;height:100%}.drive-state{align-self:center;justify-self:center;max-width:420px;margin:20px;color:var(--muted);text-align:center;font-weight:700}@media (max-width: 1040px){.app-shell{grid-template-columns:248px minmax(0,1fr)}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.filters-5{grid-template-columns:minmax(220px,1fr) repeat(2,minmax(150px,1fr))}}@media (max-width: 900px){.app-shell,.app-shell.sidebar-collapsed{grid-template-columns:1fr}.sidebar{position:static;height:auto}.sidebar-toggle{display:none}.sidebar-collapsed .sidebar{align-items:stretch;gap:22px;padding:22px}.sidebar-collapsed .brand{justify-content:flex-start}.sidebar-collapsed .brand>div,.sidebar-collapsed .obra-select,.sidebar-collapsed .nav-label{display:block}.sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr))}.sidebar-collapsed .sidebar a,.sidebar-collapsed .sidebar>.ghost:not(.sidebar-toggle){justify-content:flex-start;width:auto;padding:10px 12px}.sidebar>.ghost:not(.sidebar-toggle){margin-top:0}.filters,.filters-5,.filters-6,.filters-7,.filters-3,.expense-summary{grid-template-columns:1fr}.timeline-expense{grid-template-columns:78px minmax(0,1fr)}.timeline-expense>strong{grid-column:2;text-align:left}.expense-timeline:before{left:10px;transform:none}.timeline-month{grid-template-columns:22px minmax(0,1fr);gap:14px}.timeline-marker{grid-column:1}.timeline-month .timeline-month-content,.timeline-month:nth-child(2n) .timeline-month-content{grid-column:2}.pendency-item,.pendency-main{grid-template-columns:1fr}.pendency-meta{text-align:left}.pendency-action{width:100%;min-width:0}.drive-body{grid-template-columns:1fr;grid-template-rows:minmax(240px,42%) minmax(0,1fr)}.drive-fullscreen{padding:8px}.col-1,.col-3,.col-4,.col-6,.col-8{grid-column:span 12}}@media (max-width: 560px){h1{font-size:26px}.content{padding:18px}.auth-panel{padding:22px}.sidebar nav{grid-template-columns:1fr}.cards{grid-template-columns:1fr}.page-actions{align-items:stretch}.drive-account,.page-actions>.create-button{width:100%;max-width:100%;flex-basis:auto}.drive-account{grid-template-columns:34px minmax(0,1fr) 32px}.page-header,.pagination,.modal-header,.modal-footer,.drive-fullscreen-header{align-items:stretch;flex-direction:column}.drive-fullscreen-header .drive-preview-actions{width:100%;flex-wrap:wrap}.drive-fullscreen-header .drive-preview-actions .ghost:not(.icon-button):not(.zoom-value){flex:1 1 auto}.actions,.page-header .primary,.page-header .ghost{width:100%}.page-header .page-title-action .icon-button{width:38px}.page-header .page-actions>.icon-button{width:38px;flex:0 0 38px;align-self:flex-start}.actions button,.actions a{flex:1 1 auto}.extraction-field{grid-template-columns:1fr}.chart-modal{width:calc(100vw - 24px);padding:14px}.chart-canvas-wrap,.chart-canvas-wrap-tall{min-height:360px;padding:10px}}
