:root{--bg:#0f1115;--surface:#1a1d23;--surface-2:#22262e;--border:#2a2e38;--text:#e8eaed;--text-muted:#9aa0a6;--primary:#4f8cff;--primary-hover:#3a78f0;--error:#ff6b6b;--error-bg:#ff6b6b1f;--success:#34d399;--success-bg:#34d3991f;--radius:10px;--font:system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji"}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);margin:0;line-height:1.45}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.auth-page{justify-content:center;align-items:center;min-height:100%;padding:24px;display:flex}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:420px;padding:28px}.auth-card h1{color:var(--primary);margin:0 0 8px;font-size:1.5rem}.auth-card h2{color:var(--text-muted);margin:0 0 18px;font-size:1.1rem;font-weight:500}.auth-footer{text-align:center;color:var(--text-muted);margin:18px 0 0}.form-group{margin-bottom:14px}.form-group label{color:var(--text-muted);margin-bottom:6px;font-size:.92rem;display:block}input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],select,textarea{background:var(--surface-2);border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);width:100%;color:var(--text);outline:none;padding:10px 12px;font-family:inherit;font-size:.95rem;transition:border-color .15s,box-shadow .15s}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4f8cff2e}.btn{border-radius:calc(var(--radius) - 2px);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:10px 14px;font-family:inherit;font-size:.95rem;font-weight:600;transition:transform 60ms,opacity .15s,background .15s;display:inline-flex}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-ghost{color:var(--text-muted);border-color:var(--border);background:0 0}.btn-ghost:hover{color:var(--text);border-color:var(--text-muted)}.btn-sm{padding:6px 10px;font-size:.85rem}.alert{border-radius:calc(var(--radius) - 2px);margin-bottom:12px;padding:10px 12px;font-size:.92rem}.alert-error{background:var(--error-bg);color:var(--error);border:1px solid #ff6b6b40}.alert-success{background:var(--success-bg);color:var(--success);border:1px solid #34d39940}.app-layout{min-height:100vh;display:flex;position:fixed;inset:0}.sidebar{background:var(--surface);border-right:1px solid var(--border);z-index:20;flex-direction:column;width:240px;min-width:240px;display:flex}.sidebar-header{border-bottom:1px solid var(--border);padding:1.25rem 1rem}.sidebar-header-top{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.sidebar-logo{color:var(--primary);white-space:nowrap;text-overflow:ellipsis;font-size:1.1rem;font-weight:700;display:block;overflow:hidden}.sidebar-toggle{width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.25rem;transition:color .2s,background .2s;display:flex}.sidebar-toggle:hover{color:var(--primary);background:#4f8cff1f}.sidebar-user{color:var(--text-muted);white-space:nowrap;align-items:center;gap:.5rem;margin-top:.75rem;font-size:.85rem;display:flex;overflow:hidden}.sidebar-avatar-iniciales{background:var(--primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:2rem;height:2rem;font-size:.9rem;font-weight:600;display:flex}.sidebar-user-text{text-overflow:ellipsis;min-width:0;overflow:hidden}.sidebar-nav{flex:1;padding:.75rem 0;overflow-y:auto}.sidebar-item{width:100%;color:var(--text-muted);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.75rem;padding:.7rem 1rem;font-family:inherit;font-size:.95rem;text-decoration:none;transition:color .2s,background .2s;display:flex}.sidebar-item:hover{color:var(--text);background:#ffffff0a}.sidebar-item.active{color:var(--primary);border-right:3px solid var(--primary);background:#4f8cff1a}.sidebar-icon{opacity:.9;justify-content:center;align-items:center;font-size:1.1rem;display:inline-flex}.sidebar-footer{border-top:1px solid var(--border);padding:.75rem 0}.sidebar-logout:hover{color:var(--error)}.sidebar-mobile-overlay{z-index:15;background:#0009;display:none;position:fixed;inset:0}.workspace{background:var(--bg);flex:1;overflow:auto}.workspace-mobile-header{border-bottom:1px solid var(--border);background:var(--surface);align-items:center;gap:.75rem;padding:.75rem 1rem;display:none}.mobile-menu-btn{width:36px;height:36px;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;font-size:1.25rem;display:flex}.workspace-mobile-title{color:var(--text);font-size:1rem;font-weight:600}.workspace-content{max-width:1200px;margin:0 auto;padding:2rem}.workspace-title{margin:0 0 1rem;font-size:1.5rem;font-weight:600}.dashboard-cards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.dashboard-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:.35rem;padding:1.25rem;display:flex}.dashboard-card-icon{margin-bottom:.25rem;font-size:1.5rem}.dashboard-card-label{color:var(--text-muted);font-size:.85rem}.dashboard-card-amount{color:var(--text);font-size:1.5rem;font-weight:700}.dashboard-card--positive .dashboard-card-amount{color:var(--success)}.dashboard-card--negative .dashboard-card-amount{color:var(--error)}.dashboard-card--neutral .dashboard-card-amount{color:var(--primary)}.page-section{margin-bottom:2rem}.section-title{color:var(--text);margin:1.5rem 0 .75rem;font-size:1.15rem;font-weight:600}.section-title:first-child{margin-top:0}.section-subtitle{color:var(--text-muted);margin:1.25rem 0 .5rem;font-size:1rem;font-weight:600}.table-wrap{border:1px solid var(--border);border-radius:var(--radius);margin-top:.75rem;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:.95rem}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--border);padding:.75rem 1rem}.data-table th{color:var(--text-muted);background:var(--surface-2);font-weight:600}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:#ffffff05}.badge{text-transform:uppercase;letter-spacing:.02em;border-radius:999px;padding:.2rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.badge--pendiente{color:#fbbf24;background:#fbbf2426}.badge--pagada{color:var(--success);background:#34d39926}.badge--vencida{color:var(--error);background:#ff6b6b26}.badge--cancelada{color:var(--text-muted);background:#9aa0a626}.toolbar{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.toolbar-filters{flex-wrap:wrap;align-items:center;gap:.5rem;margin-left:auto;display:flex}.toolbar-filters input,.toolbar-filters select{width:auto;min-width:180px}.pagination{justify-content:center;align-items:center;gap:.75rem;margin-top:1rem;display:flex}.pagination-info{color:var(--text-muted);font-size:.9rem}.cards-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;margin-top:1rem;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.card-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.card-row{color:var(--text-muted);justify-content:space-between;padding:.25rem 0;font-size:.9rem;display:flex}.card-row span:last-child{color:var(--text);font-weight:500}.form-inline{flex-wrap:wrap;align-items:flex-end;gap:.75rem;display:flex}.form-inline .form-group{flex:180px;margin-bottom:0}.form-row{gap:.75rem;display:flex}.form-row .form-group{flex:1}.modal-overlay{z-index:100;background:#000000a6;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:520px;max-height:90vh;padding:1.5rem;overflow-y:auto}.modal-title{margin:0;font-size:1.2rem;font-weight:600}.modal-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.25rem .5rem;font-size:1.5rem;line-height:1;transition:color .15s,background .15s}.modal-close:hover{color:var(--text);background:#ffffff14}.modal-actions{justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.modal-actions .btn{width:auto}.actions-cell{flex-wrap:wrap;gap:.35rem;display:flex}.actions-cell .btn{margin-top:0}.text-muted{color:var(--text-muted)}.text-right{text-align:right}.text-center{text-align:center}.text-positive{color:var(--success)}.text-negative{color:var(--error)}.text-small{font-size:.85rem}.modal--wide{max-width:720px}.modal-section-title{color:var(--text-muted);border-bottom:1px solid var(--border);margin:1rem 0 .5rem;padding-bottom:.35rem;font-size:.95rem;font-weight:600}.dashboard-header{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.calendar-container{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.calendar-month-title{margin:0 0 .75rem;font-size:1.1rem}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:.5rem;display:grid}.calendar-day-header{text-align:center;color:var(--text-muted);padding:.5rem 0;font-size:.85rem;font-weight:600}.calendar-day{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:.25rem;min-height:80px;padding:.5rem;display:flex}.calendar-day.empty{background:0 0;border-color:#0000}.calendar-day--today{border-color:var(--primary);background:#4f8cff14}.calendar-day-number{color:var(--text-muted);font-size:.9rem;font-weight:600}.calendar-day-total{color:var(--error);margin-top:auto;font-size:.8rem;font-weight:600}.calendar-day-totals{text-align:right;margin-top:auto;font-size:.75rem;font-weight:700}.calendar-total-cobro{color:var(--success)}.calendar-total-oblig{color:var(--error)}.calendar-total-sep{color:var(--text-muted);margin:0 .15rem}.calendar-badge{white-space:nowrap;text-overflow:ellipsis;border-radius:4px;padding:.15rem .4rem;font-size:.7rem;font-weight:600;display:inline-block;overflow:hidden}.calendar-badge--pendiente{color:#fbbf24;background:#fbbf2426}.calendar-badge--pagada{color:var(--success);background:#34d39926}.calendar-badge--vencida{color:var(--error);background:#ff6b6b26}.calendar-badge--cancelada{color:var(--text-muted);background:#9aa0a626}.calendar-badge--cobro{color:var(--success);background:#34d39926}.tercero-search{position:relative}.tercero-search-dropdown{background:var(--surface-2);border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);z-index:50;max-height:220px;margin-top:4px;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #00000059}.tercero-search-item{cursor:pointer;border-bottom:1px solid var(--border);padding:.6rem .75rem}.tercero-search-item:last-child{border-bottom:none}.tercero-search-item:hover,.tercero-search-item.active{background:#4f8cff1f}.tercero-search-name{color:var(--text);font-size:.95rem;font-weight:500}.tercero-search-meta{color:var(--text-muted);gap:.75rem;margin-top:2px;font-size:.8rem;display:flex}.tercero-search-empty{color:var(--text-muted);text-align:center;padding:.75rem;font-size:.9rem}@media (width<=900px){.workspace-content{padding:1.25rem}.modal{max-width:90vw;padding:1.25rem}.modal--wide{max-width:90vw}.dashboard-cards{grid-template-columns:repeat(2,1fr)}.calendar-grid{gap:.35rem}.calendar-day{min-height:65px;padding:.35rem}.calendar-day-header{padding:.35rem 0;font-size:.8rem}.calendar-badge{padding:.12rem .25rem;font-size:.65rem}.calendar-day-totals{font-size:.7rem}}@media (width<=640px){.auth-card{padding:20px}.sidebar{transition:transform .2s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar--mobile-open{transform:translate(0)}.sidebar-mobile-overlay{display:block}.workspace-mobile-header{display:flex}.workspace-content{padding:.75rem}.workspace-title{font-size:1.25rem}.dashboard-header{gap:.5rem}.dashboard-cards{grid-template-columns:1fr;gap:.75rem}.dashboard-card{padding:1rem}.dashboard-card-amount{font-size:1.25rem}.toolbar{gap:.5rem}.toolbar-filters{width:100%;margin-left:0}.toolbar-filters input,.toolbar-filters select{width:100%;min-width:0}.form-inline .form-group{flex:100%}.form-row{flex-direction:column;gap:0}.modal-overlay{align-items:flex-end;padding:.5rem}.modal{border-radius:calc(var(--radius) - 2px) calc(var(--radius) - 2px) 0 0;max-width:100%;max-height:95vh;padding:1rem}.modal--wide{max-width:100%}.modal-header{margin-bottom:.75rem}.modal-title{font-size:1.05rem}.modal-actions{flex-direction:column-reverse;gap:.5rem}.modal-actions .btn{width:100%}.data-table th,.data-table td{padding:.5rem .6rem;font-size:.88rem}.actions-cell{gap:.25rem}.actions-cell .btn{padding:4px 8px;font-size:.78rem}.cards-grid{grid-template-columns:1fr}.calendar-container{padding:.5rem}.calendar-month-title{margin-bottom:.5rem;font-size:1rem}.calendar-grid{gap:.15rem}.calendar-day{border-radius:4px;min-height:42px;padding:.15rem}.calendar-day-header{padding:.2rem 0;font-size:.7rem}.calendar-day-number{font-size:.7rem}.calendar-badge{border-radius:2px;padding:.05rem .15rem;font-size:.55rem}.calendar-day-totals{font-size:.6rem}.pagination{gap:.5rem}.pagination-info{font-size:.85rem}}
