:root{--bg-primary:#020617;--bg-secondary:#0a0f1e;--bg-tertiary:#0f172a;--bg-card:#0d1526;--bg-hover:#141f35;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#475569;--text-label:#334155;--accent:#3b82f6;--accent-hover:#2563eb;--accent-dim:rgba(59,130,246,.08);--accent-border:rgba(59,130,246,.2);--positive:#10b981;--positive-dim:rgba(16,185,129,.1);--negative:#ef4444;--negative-dim:rgba(239,68,68,.1);--warning:#f59e0b;--warning-dim:rgba(245,158,11,.1);--border:hsla(0,0%,100%,.06);--border-strong:hsla(0,0%,100%,.1);--sidebar-w:260px;--header-h:60px;--radius-sm:3px;--radius-md:6px;--radius-lg:8px;--font:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-mono:"SF Mono","Fira Code","Cascadia Code",monospace}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{font-family:var(--font);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}.app-shell{height:100vh}.app-shell,.sidebar{display:flex;overflow:hidden}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--bg-secondary);border-right:1px solid var(--border);flex-direction:column}.sidebar-brand{height:var(--header-h);display:flex;align-items:center;padding:0 1.5rem;border-bottom:1px solid var(--border);flex-shrink:0}.sidebar-brand-text{font-size:.875rem;font-weight:800;letter-spacing:4px;text-transform:uppercase;color:var(--text-primary)}.sidebar-brand-text span{font-weight:300;opacity:.5}.sidebar-company-selector{padding:1rem 1.25rem;border-bottom:1px solid var(--border);flex-shrink:0}.company-badge{display:flex;align-items:center;gap:.625rem;padding:.625rem .75rem;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease;width:100%;text-align:left}.company-badge:hover{border-color:var(--accent-border);background:var(--bg-hover)}.company-badge-dot{width:6px;height:6px;background:var(--positive);border-radius:50%;flex-shrink:0}.company-badge-name{font-size:.75rem;font-weight:600;color:var(--text-primary);letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.company-badge-rut{font-size:.65rem;color:var(--text-muted);font-family:var(--font-mono)}.sidebar-nav{flex:1 1;overflow-y:auto;padding:.75rem;scrollbar-width:thin;scrollbar-color:var(--bg-tertiary) transparent}.nav-group{margin-bottom:.25rem}.nav-group-label{display:block;font-size:.6rem;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--text-label);padding:.875rem .75rem .375rem}.nav-item{display:flex;align-items:center;gap:.625rem;padding:.5rem .75rem;border-radius:var(--radius-sm);color:var(--text-muted);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .12s ease;margin-bottom:1px;-webkit-user-select:none;-moz-user-select:none;user-select:none;border:none;background:none;width:100%;text-align:left}.nav-item:hover{color:var(--text-secondary);background:hsla(0,0%,100%,.03)}.nav-item.active{color:var(--text-primary);background:var(--accent-dim);border-left:2px solid var(--accent);padding-left:calc(.75rem - 2px)}.nav-item.active .nav-icon{color:var(--accent)}.nav-icon{width:15px;height:15px;flex-shrink:0}.sidebar-footer{padding:1rem 1.25rem;border-top:1px solid var(--border);flex-shrink:0}.sidebar-user{display:flex;align-items:center;gap:.625rem}.sidebar-user-avatar{width:28px;height:28px;border-radius:50%;background:var(--accent-dim);border:1px solid var(--accent-border);display:flex;align-items:center;justify-content:center;font-size:.6875rem;font-weight:700;color:var(--accent);flex-shrink:0}.sidebar-user-info{flex:1 1;min-width:0}.sidebar-user-email{font-size:.6875rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-role{font-size:.6rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted)}.main-wrapper{flex:1 1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.app-header{height:var(--header-h);background:var(--bg-secondary);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 2rem;gap:1rem;flex-shrink:0}.header-title{flex:1 1;font-size:.75rem;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--text-muted)}.header-actions{display:flex;align-items:center;gap:.75rem}.main-content{flex:1 1;overflow-y:auto;overflow-x:hidden;padding:2rem 2.5rem;background:var(--bg-primary);scrollbar-width:thin;scrollbar-color:var(--bg-tertiary) transparent}.page-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.page-title{font-size:1.125rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--text-primary)}.page-subtitle{font-size:.75rem;color:var(--text-muted);margin-top:.25rem;font-weight:400;text-transform:none;letter-spacing:0}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:1px;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;margin-bottom:2rem}.stat-card{background:var(--bg-card);padding:1.25rem 1.5rem}.stat-label{font-size:.6rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--text-muted);margin-bottom:.5rem}.stat-value{font-size:1.375rem;font-weight:700;color:var(--text-primary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-family:var(--font-mono);letter-spacing:-.02em}.stat-value.positive{color:var(--positive)}.stat-value.negative{color:var(--negative)}.stat-sub{font-size:.6875rem;color:var(--text-muted);margin-top:.25rem}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.card-header{padding:1rem 1.5rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.card-title{font-size:.6875rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--text-muted)}.card-body{padding:1.5rem}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table{width:100%;border-collapse:collapse;font-size:.8125rem}.data-table thead th{padding:.625rem 1rem;font-size:.6rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--text-muted);text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}.data-table tbody tr{border-bottom:1px solid var(--border);transition:background .1s ease}.data-table tbody tr:hover{background:hsla(0,0%,100%,.02)}.data-table tbody tr:last-child{border-bottom:none}.data-table tbody td{padding:.75rem 1rem;color:var(--text-secondary);vertical-align:middle}.data-table .col-mono{font-family:var(--font-mono);font-size:.75rem;color:var(--text-primary)}.data-table .col-amount{font-family:var(--font-mono);font-size:.8125rem;font-weight:600;text-align:right;white-space:nowrap}.data-table .col-amount.positive{color:var(--positive)}.data-table .col-amount.negative{color:var(--negative)}.data-table tfoot td{padding:.75rem 1rem;font-size:.6875rem;font-weight:700;border-top:1px solid var(--border-strong);color:var(--text-primary)}.badge{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .5rem;border-radius:var(--radius-sm);font-size:.6rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;white-space:nowrap}.badge-paid{background:var(--positive-dim);color:var(--positive)}.badge-pending{background:var(--warning-dim);color:var(--warning)}.badge-credit{background:var(--accent-dim);color:var(--accent)}.badge-compra{background:rgba(239,68,68,.08);color:#f87171}.badge-venta{background:var(--positive-dim);color:var(--positive)}.badge-dev{background:rgba(139,92,246,.1);color:#a78bfa}.badge-mayor{background:var(--accent-dim);color:var(--accent)}.badge-cont{background:rgba(249,115,22,.1);color:#fb923c}.badge-minor{background:var(--bg-tertiary);color:var(--text-muted)}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;letter-spacing:.5px;cursor:pointer;border:1px solid transparent;transition:all .15s ease;white-space:nowrap;text-decoration:none}.btn-primary{background:var(--text-primary);color:var(--bg-primary);border-color:var(--text-primary)}.btn-primary:hover{background:#e2e8f0;border-color:#e2e8f0}.btn-outline{background:transparent;color:var(--text-secondary)}.btn-outline,.btn-outline:hover{border-color:var(--border-strong)}.btn-outline:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-danger{background:transparent;color:var(--negative);border-color:rgba(239,68,68,.2)}.btn-danger:hover{background:var(--negative-dim)}.btn-sm{padding:.3rem .65rem;font-size:.6875rem}.btn-icon{padding:.4rem;border-radius:var(--radius-sm)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:1rem;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.375rem}.form-group.span-2{grid-column:span 2}label{font-size:.6rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--text-muted)}input,select,textarea{width:100%;padding:.5rem .75rem;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.8125rem;font-family:var(--font);outline:none;transition:border-color .15s ease;-moz-appearance:none;appearance:none;-webkit-appearance:none}input:focus,select:focus,textarea:focus{border-color:var(--accent-border);background:var(--bg-hover)}input::placeholder{color:var(--text-label)}textarea{resize:vertical;min-height:80px}select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23475569' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2rem}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;display:flex;align-items:center;justify-content:center;padding:1.5rem}.modal{background:var(--bg-secondary);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:100%;max-width:640px;max-height:90vh;overflow-y:auto}.modal-header{padding:1.25rem 1.5rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.modal-title{font-size:.75rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--text-primary)}.modal-body{padding:1.5rem}.modal-footer{padding:1rem 1.5rem;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:.75rem}.amount-breakdown{display:flex;gap:1.5rem;padding:.75rem 1rem;background:var(--bg-tertiary);border-radius:var(--radius-sm);border:1px solid var(--border)}.amount-breakdown-item{display:flex;flex-direction:column}.amount-breakdown-label{font-size:.6rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted)}.amount-breakdown-value{font-family:var(--font-mono);font-size:.875rem;font-weight:600;color:var(--text-primary)}.divider{height:1px;background:var(--border);margin:1.5rem 0}.section-label{font-size:.6rem;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--text-muted);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.alert{display:flex;align-items:flex-start;gap:.75rem;padding:.875rem 1rem;border-radius:var(--radius-sm);font-size:.8125rem;border-left:2px solid}.alert-error{background:var(--negative-dim);border-color:var(--negative);color:#fca5a5}.alert-success{background:var(--positive-dim);border-color:var(--positive);color:#6ee7b7}.alert-warning{background:var(--warning-dim);border-color:var(--warning);color:#fcd34d}.alert-info{background:var(--accent-dim);border-color:var(--accent);color:#93c5fd}.spinner{width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.loading-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);flex-direction:column;gap:1rem}.loading-page p{font-size:.6875rem;letter-spacing:2px;text-transform:uppercase;color:var(--text-muted)}.empty-state{text-align:center;padding:4rem 2rem;color:var(--text-muted)}.empty-state-icon{width:40px;height:40px;margin:0 auto 1rem;opacity:.3}.empty-state h3{font-size:.875rem;font-weight:600;letter-spacing:1px;text-transform:uppercase;margin-bottom:.375rem;color:var(--text-secondary)}.empty-state p{font-size:.75rem}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#000;background-image:radial-gradient(circle at 50% -20%,#0f172a 0,#000 80%);position:relative;overflow:hidden}.login-bg-grid{position:absolute;inset:0;background-image:radial-gradient(hsla(0,0%,100%,.04) .5px,transparent 0);background-size:28px 28px;pointer-events:none}.login-card{width:100%;max-width:420px;padding:3rem;position:relative;z-index:1}.login-brand{margin-bottom:3.5rem}.login-brand h1{font-size:1.375rem;font-weight:800;letter-spacing:5px;text-transform:uppercase;color:#fff}.login-brand h1 span{font-weight:300;opacity:.5}.login-brand-bar{width:28px;height:2px;background:linear-gradient(90deg,#3b82f6,transparent);margin-top:.875rem}.login-heading{margin-bottom:2.5rem}.login-heading h2{font-size:1.625rem;font-weight:600;letter-spacing:-.02em;margin-bottom:.5rem}.login-heading p{color:#475569;font-size:.875rem}.login-form{gap:1.5rem}.login-field,.login-form{display:flex;flex-direction:column}.login-field{gap:.5rem}.login-label{font-size:.625rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#64748b}.login-input{height:48px;border-radius:8px;background:transparent;border:1px solid #1e293b;color:#f8fafc;padding:0 1rem;font-size:.9375rem;outline:none;transition:border-color .2s ease;font-family:var(--font)}.login-input:focus{border-color:#3b82f6}.login-input::placeholder{color:#1e293b}.login-btn{height:52px;border-radius:8px;margin-top:.75rem;font-size:.875rem;font-weight:700;letter-spacing:2px;display:flex;align-items:center;justify-content:center;gap:.5rem;background:#fff;color:#000;border:none;cursor:pointer;transition:background .2s ease;text-transform:uppercase}.login-btn:hover:not(:disabled){background:#f1f5f9}.login-btn:disabled{opacity:.6;cursor:not-allowed}.login-error{display:flex;align-items:center;gap:.625rem;padding:.875rem 1rem;border-left:2px solid #ef4444;background:rgba(239,68,68,.05);color:#f87171;font-size:.8125rem;border-radius:0 4px 4px 0}.login-footer{margin-top:4rem;text-align:center;color:#1e293b;font-size:.625rem;font-weight:600;letter-spacing:1px;text-transform:uppercase;line-height:1.8}.select-company-page{min-height:100vh;background:var(--bg-primary);display:flex;align-items:center;justify-content:center;padding:2rem}.select-company-card{width:100%;max-width:520px}.select-company-header{margin-bottom:2.5rem}.company-grid{display:flex;flex-direction:column;gap:.5rem}.company-option{display:flex;align-items:center;justify-content:space-between;padding:1.125rem 1.25rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease;text-align:left;width:100%}.company-option:hover{border-color:var(--accent-border);background:var(--bg-hover)}.company-option-name{font-size:.9375rem;font-weight:600;color:var(--text-primary)}.company-option-rut{font-size:.6875rem;color:var(--text-muted);font-family:var(--font-mono);margin-top:.125rem}.company-option-currency{font-size:.625rem;font-weight:700;letter-spacing:1.5px;color:var(--text-muted);background:var(--bg-tertiary);padding:.25rem .5rem;border-radius:var(--radius-sm)}.statement-section{margin-bottom:2rem}.statement-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--border);font-size:.8125rem}.statement-row:last-child{border-bottom:none}.statement-row-label{color:var(--text-secondary)}.statement-row-label.indent{padding-left:1.25rem;color:var(--text-muted)}.statement-row-value{font-family:var(--font-mono);font-weight:600;color:var(--text-primary);font-size:.8125rem}.statement-total{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-top:1px solid var(--border-strong);margin-top:.5rem}.statement-total-label{font-size:.6875rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-primary)}.statement-total-value{font-family:var(--font-mono);font-size:1rem;font-weight:700;color:var(--text-primary)}.statement-total-value.positive{color:var(--positive)}.statement-total-value.negative{color:var(--negative)}.public-page{min-height:100vh;background:var(--bg-primary);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:4rem 1.5rem}.public-card{width:100%;max-width:680px}.public-header{margin-bottom:3rem;padding-bottom:2rem;border-bottom:1px solid var(--border)}.public-company-name{font-size:1.5rem;font-weight:700;letter-spacing:-.01em;margin-bottom:.25rem}.public-company-rut{font-family:var(--font-mono);font-size:.8125rem;color:var(--text-muted)}.public-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.3rem .75rem;background:var(--accent-dim);border:1px solid var(--accent-border);border-radius:var(--radius-sm);font-size:.625rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--accent);margin-top:1rem}.public-footnote{margin-top:3rem;font-size:.6875rem;color:var(--text-muted);text-align:center;line-height:1.6}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:10px}.flex{display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.text-mono{font-family:var(--font-mono)}.text-right{text-align:right}.text-muted{color:var(--text-muted)}.text-sm{font-size:.75rem}.w-full{width:100%}.grid-2{grid-template-columns:1fr 1fr;grid-gap:1rem}.grid-2,.grid-3{display:grid;gap:1rem}.grid-3{grid-template-columns:repeat(3,1fr);grid-gap:1rem}