.layout{margin:0 auto;max-width:1320px;padding:10px}.app-layout{background:linear-gradient(140deg,#071a23,#22202f 45%,#581622);min-height:100vh}.glass-wrap{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#07101a59;border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:10px}.workspace{align-items:flex-start;display:grid;gap:8px;grid-template-columns:190px 1fr}.module-content{min-width:0}.side-nav{position:sticky;top:12px}.side-nav h2{color:#1b2431;font-size:.95rem;margin:0 0 8px}.side-nav-list{display:flex;flex-direction:column;gap:6px}.nav-btn{align-items:center;background:#f3f5f9;border:1px solid #d7deeb;color:#243247;display:flex;justify-content:space-between;text-align:left}.nav-btn.active{background:linear-gradient(150deg,#b11939,#731223);border-color:#731223;color:#fff}.nav-btn-left{align-items:center;display:inline-flex;gap:8px}.nav-icon{align-items:center;background:#1119281a;border-radius:8px;display:inline-flex;font-size:.7rem;font-weight:800;height:22px;justify-content:center;width:22px}.nav-btn.active .nav-icon{background:#fff3}.nav-badge{background:#1119281a;border-radius:999px;font-size:.68rem;font-weight:700;min-width:28px;padding:2px 8px;text-align:center}.nav-btn.active .nav-badge{background:#fff3}.module-head{margin-bottom:10px}.module-head h2{color:#eaf1ff;font-size:1.05rem;margin:0}.breadcrumbs{color:#b9c7dd;font-size:.78rem;margin-bottom:4px}.topbar{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-bottom:10px}.topbar-brand{align-items:center;display:flex;gap:10px}.brand-badge{align-items:center;background:linear-gradient(150deg,#b31a39,#751124);border-radius:14px;color:#fff;display:flex;font-size:1.05rem;font-weight:800;height:42px;justify-content:center;letter-spacing:.08em;width:56px}.topbar-actions{display:flex;gap:6px}.topbar h1{color:#f8fbff;margin:0}.topbar p{color:#d2dae7;margin:4px 0 0}.topbar-logo{background:#ffffffeb;border-radius:10px;height:28px;object-fit:contain;padding:2px}button{background:linear-gradient(150deg,#b11939,#731223);border:0;border-radius:9px;color:#fff;cursor:pointer;font-weight:700;padding:7px 9px}button:disabled{cursor:not-allowed;opacity:.6}.alert-error{background:#ffe2e2f2;border:1px solid #fecaca;border-radius:10px;color:#b91c1c;margin-bottom:16px;padding:9px 10px}.alert-success{background:#dcfce7f2;border:1px solid #86efac;border-radius:10px;color:#166534;margin-bottom:16px;padding:9px 10px}.alert-info{align-items:center;background:#dbeafef2;border:1px solid #93c5fd;border-radius:10px;color:#1e3a8a;display:flex;gap:8px;margin-bottom:16px;padding:9px 10px}.spinner{animation:spin .9s linear infinite;border:2px solid rgba(30,58,138,.25);border-radius:999px;border-top-color:#1e3a8ae6;height:16px;width:16px}@keyframes spin{to{transform:rotate(360deg)}}.stats-grid{display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:12px}.grid{display:grid;gap:12px;margin-bottom:12px}.two-cols{grid-template-columns:repeat(2,minmax(0,1fr))}.one-col{grid-template-columns:1fr}.card{background:#fffffff0;border:1px solid rgba(255,255,255,.65);border-radius:14px;box-shadow:0 12px 28px #0000002e;padding:10px}.card-header{margin-bottom:10px}.card-header h2{color:#1b2431;font-size:1rem;margin:0}.card-title{color:#6d7888;font-size:.76rem;font-weight:700;margin:0 0 6px;text-transform:uppercase}.stat-card h3{color:#1f2a3a;font-size:1.2rem;margin:0 0 4px}.stat-card small{color:#6d7888}.inline-form{display:flex;gap:6px;margin-bottom:10px}.inline-form input,.inline-form select{flex:1}.password-change-card{margin-bottom:12px}.helper-text{background:#eff6ff;border:1px solid #bfdbfe;border-radius:10px;color:#1d4ed8;font-size:.88rem;padding:9px 10px}.guide-line{align-items:center}.guide-line button{white-space:nowrap}.toolbar-grid{display:grid;gap:6px;grid-template-columns:1.4fr repeat(4,minmax(96px,1fr)) auto;margin-bottom:8px}.toolbar-actions{display:flex;gap:6px}.report-actions{align-items:flex-start;display:flex;gap:10px;justify-content:space-between;margin:8px 0 10px}.report-actions .topbar-actions{flex-wrap:wrap}.report-stats-grid{margin-top:8px}.report-inline-summary{color:#475569;margin:8px 0 0}.provider-picker{border:1px solid #dbe4f2;border-radius:10px;padding:9px}.provider-picker h3{color:#1b2431;font-size:.9rem;margin:0 0 8px}.quick-provider-form{border-top:1px dashed #d8dfec;margin-top:8px;padding-top:8px}.view-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.tab-btn{background:#e7ebf3;border:1px solid #c9d3e2;color:#1f2a3a}.tab-btn.active{background:linear-gradient(150deg,#b11939,#731223);border-color:#731223;color:#fff}input,select,textarea{border:1px solid #c9d3e2;border-radius:8px;padding:6px 7px}.table-wrap{margin-top:6px;overflow-x:auto}.badge{border-radius:999px;display:inline-block;font-size:.68rem;font-weight:800;padding:2px 8px}.badge-success{background:#22c55e1f;border:1px solid rgba(34,197,94,.35);color:#166534}.badge-muted{background:#64748b1f;border:1px solid rgba(100,116,139,.35);color:#475569}.modal-backdrop{align-items:center;background:#0f172a8c;bottom:0;display:flex;justify-content:center;left:0;padding:8px;position:fixed;right:0;top:0;z-index:9999}.modal-card{background:#fffffff5;border:1px solid rgba(255,255,255,.7);border-radius:12px;box-shadow:0 16px 38px #00000047;max-width:600px;padding:10px;width:100%}.pdf-modal-card{display:flex;flex-direction:column;height:85vh;max-width:1100px}.pdf-frame{background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex:1;width:100%}.modal-title{color:#1b2431;font-size:1rem;font-weight:900;margin:0 0 8px}.progress-bar{background:#94a3b859;border-radius:999px;height:9px;overflow:hidden;width:100%}.progress-bar>div{background:linear-gradient(150deg,#b11939,#731223);height:100%;width:0%}.row-indicator{display:inline-flex;gap:8px;align-items:center}.table-footer{align-items:center;display:flex;justify-content:space-between;margin-top:8px;gap:8px}.pager-controls{align-items:center;display:flex;gap:6px}.pager-controls label{align-items:center;display:inline-flex;gap:6px}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid #e2e8f0;padding:6px 5px;text-align:left}.order-detail-table th.col-proyecto,.order-detail-table td.col-proyecto{width:48px;max-width:48px}.order-detail-table td.col-proyecto select{font-size:.78rem;padding:5px 4px;text-align:center}.order-detail-table th.col-cantidad,.order-detail-table td.col-cantidad{width:88px;max-width:88px}.order-detail-table th.col-precio-unit,.order-detail-table td.col-precio-unit{width:110px;max-width:110px}.order-detail-table td.col-cantidad input,.order-detail-table td.col-precio-unit input{min-width:0;text-align:right;width:100%}.order-finance-table th.col-etapa,.order-finance-table td.col-etapa{width:108px;max-width:108px}.order-finance-table th.col-factura,.order-finance-table td.col-factura{width:150px;max-width:150px}.order-finance-table th.col-fecha,.order-finance-table td.col-fecha{width:128px;max-width:128px}.order-finance-table th.col-importe,.order-finance-table td.col-importe{width:120px;max-width:120px}.order-finance-table th.col-accion,.order-finance-table td.col-accion{width:44px;max-width:44px}.order-finance-table td.col-importe input{min-width:0;text-align:right;width:100%}.order-finance-table td.col-accion{text-align:right}.descripcion-cell{display:flex;align-items:center;gap:6px;min-width:180px}.descripcion-cell input{flex:1;min-width:0}.picker-modal-card{max-width:860px}.picker-table-wrap{max-height:60vh;overflow:auto;border:1px solid #e2e8f0;border-radius:10px}.picker-table th,.picker-table td{padding:5px 6px;vertical-align:top}.picker-table th:first-child,.picker-table td:first-child{width:32px}.selected-row{background:#b91c3c0f}.picker-cell{display:flex;align-items:center;gap:5px;min-width:150px}.picker-label{color:#0f172a;font-size:.82rem;line-height:1.15;flex:1;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon-action-btn{align-items:center;background:#94a3b829;border:1px solid rgba(148,163,184,.5);border-radius:10px;color:#0f172a;display:inline-flex;justify-content:center;min-height:28px;min-width:28px;padding:4px}.icon-action-btn:hover{background:#94a3b840}.icon-action-btn svg,.icon-link-btn svg{height:15px;width:15px}.primary-icon-btn,.primary-btn{background:linear-gradient(150deg,#b11939,#731223);border:1px solid rgba(255,255,255,.6);color:#fff}.descripcion-cell .link-btn{align-self:flex-start;font-size:11.5px}th{color:#5b6678;font-size:.74rem;text-transform:uppercase}.empty-row{color:#64748b;text-align:center}.form-grid{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three-cols{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid label{color:#334155;display:flex;flex-direction:column;font-size:.82rem;gap:5px}.full{grid-column:1 / -1}.catalog-list{margin:0;padding-left:18px}.catalog-list li{margin-bottom:6px}.auth-hero{align-items:stretch;background-position:center;background-repeat:no-repeat;background-size:cover;display:flex;justify-content:center;min-height:100vh}.auth-shell{display:flex;flex-direction:column;min-height:100vh;width:100%}.auth-topbar{align-items:center;background:#fffffff2;display:flex;gap:12px;justify-content:center;min-height:66px;padding:8px 16px}.auth-topbar-text{color:#374151;font-size:.86rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.auth-overlay{-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:linear-gradient(90deg,#03161f57,#58071c57);flex:1;min-height:0;padding:22px;width:100%}.auth-brand-head{align-items:center;display:flex;gap:12px;justify-content:center;margin-bottom:18px}.auth-logo{background:#ffffffe6;border-radius:10px;height:40px;object-fit:contain;padding:5px}.auth-content{align-items:center;display:grid;gap:18px;grid-template-columns:1.5fr .9fr;margin:0 auto;max-width:1200px;min-height:calc(100vh - 180px)}.auth-copy{align-items:center;color:#fff;display:flex;gap:14px}.auth-copy h1{font-size:2.2rem;line-height:1.1;margin:0 0 8px;max-width:640px}.auth-copy p{color:#e3ecf9;font-size:.98rem;margin:0;max-width:620px}.abbr-box{align-items:center;background:#ffffff29;border:1px solid rgba(255,255,255,.32);border-radius:24px;display:flex;font-size:6rem;font-weight:800;height:200px;justify-content:center;min-width:240px}.auth-card{margin-left:auto;max-width:420px;width:100%}.auth-card h2{margin:0 0 8px}.auth-card p{color:#5f6d83;margin:0 0 12px}.password-field{align-items:center;display:flex;gap:8px}.password-field input{flex:1}.eye-btn{align-items:center;background:#1f2937;border-radius:8px;display:inline-flex;justify-content:center;min-height:38px;min-width:38px;padding:7px}.eye-btn svg{height:16px;width:16px}.link-btn{background:transparent;color:#7e1228;font-weight:700;text-decoration:underline}.recovery-panel{border-top:1px dashed #d4dbe6;margin-top:14px;padding-top:12px}.recovery-panel p{color:#627088;font-size:.88rem;margin:0 0 10px}.recovery-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:6px}.recovery-head h3{color:#1f2937;font-size:1rem;margin:0}.icon-link-btn{align-items:center;background:transparent;color:#7e1228;display:inline-flex;font-size:1.1rem;font-weight:700;justify-content:center;min-height:28px;min-width:28px;padding:0}.auth-footer{align-items:center;background:#fffffff2;color:#6b7280;display:flex;font-size:.86rem;justify-content:center;min-height:46px;padding:8px 14px}.auth-footer-logo{height:20px;margin-left:8px;object-fit:contain}@media (max-width: 1080px){.workspace{grid-template-columns:1fr}.side-nav{position:static}.side-nav-list{flex-direction:row;flex-wrap:wrap}.stats-grid,.two-cols,.form-grid,.toolbar-grid{grid-template-columns:1fr}.table-footer,.pager-controls,.toolbar-actions,.report-actions{align-items:flex-start;flex-direction:column}.view-tabs{flex-direction:column}.topbar{align-items:flex-start;flex-direction:column}.auth-content{grid-template-columns:1fr;min-height:auto}.auth-copy{flex-direction:column;text-align:center}.abbr-box{font-size:4.2rem;height:160px;min-width:200px}.auth-copy h1{font-size:2rem}.auth-card{margin:0 auto}}:root{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:13px;line-height:1.35;font-weight:400;color:#0f172a;background:#f8fafc;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}#root{min-height:100vh}
