@import url(https://fonts.googleapis.com/css2?family=PT+Sans:ital,wght@0,400;0,700;1,400;1,700&display=swap);:root{--primary-900:#1e3a5f;--primary-800:#234b7a;--primary-700:#2d5f99;--primary-600:#3572b0;--primary-500:#4287c7;--primary-400:#5a9bd4;--primary-300:#7eb3e0;--primary-200:#a8cdec;--primary-100:#d4e6f6;--primary-50:#eef5fb;--gray-900:#111827;--gray-800:#1f2937;--gray-700:#374151;--gray-600:#4b5563;--gray-500:#6b7280;--gray-400:#9ca3af;--gray-300:#d1d5db;--gray-200:#e5e7eb;--gray-100:#f3f4f6;--gray-50:#f9fafb;--success-600:#059669;--success-500:#10b981;--success-100:#d1fae5;--warning-600:#d97706;--warning-500:#f59e0b;--warning-100:#fef3c7;--error-600:#dc2626;--error-500:#ef4444;--error-100:#fee2e2;--info-600:#0284c7;--info-500:#0ea5e9;--info-100:#e0f2fe;--surface-primary:#fff;--surface-secondary:#f8fafc;--surface-tertiary:#f1f5f9;--surface-dark:var(--gray-800);--border-light:#e2e8f0;--border-medium:#cbd5e1;--border-dark:#94a3b8;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--font-family:"PT Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--spacing-1:0.25rem;--spacing-2:0.5rem;--spacing-3:0.75rem;--spacing-4:1rem;--spacing-5:1.25rem;--spacing-6:1.5rem;--spacing-8:2rem;--spacing-10:2.5rem;--spacing-12:3rem;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--transition-fast:150ms ease;--transition-base:200ms ease;--transition-slow:300ms ease}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f8fafc;background:var(--surface-secondary);color:#1f2937;color:var(--gray-800);font-family:PT Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-family);font-size:1rem;font-size:var(--font-size-base);line-height:1.5}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:#f3f4f6;background:var(--gray-100)}::-webkit-scrollbar-thumb{background:#9ca3af;background:var(--gray-400);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#6b7280;background:var(--gray-500)}::selection{background:#a8cdec;background:var(--primary-200);color:#1e3a5f;color:var(--primary-900)}.toast{align-items:center;animation:toastSlideIn .3s ease-out;background:#fff;border-radius:10px;box-shadow:0 4px 20px #00000026;display:flex;gap:12px;max-width:450px;min-width:300px;padding:14px 16px}.toast-exit{animation:toastSlideOut .3s ease-out forwards}@keyframes toastSlideIn{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@keyframes toastSlideOut{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(100%)}}.toast-icon{align-items:center;display:flex;flex-shrink:0;justify-content:center}.toast-message{color:#1f2937;flex:1 1;font-size:14px;font-weight:500;line-height:1.4}.toast-close{align-items:center;background:#0000;border:none;border-radius:4px;color:#9ca3af;cursor:pointer;display:flex;flex-shrink:0;justify-content:center;padding:4px;transition:all .2s}.toast-close:hover{background:#f3f4f6;color:#6b7280}.toast-success{border-left:4px solid #10b981}.toast-success .toast-icon{color:#10b981}.toast-error{border-left:4px solid #ef4444}.toast-error .toast-icon{color:#ef4444}.toast-warning{border-left:4px solid #f59e0b}.toast-warning .toast-icon{color:#f59e0b}.toast-info{border-left:4px solid #3b82f6}.toast-info .toast-icon{color:#3b82f6}.modal-confirm-overlay{align-items:center;animation:fadeIn .2s ease-out;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.modal-confirm{animation:modalSlideIn .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-width:400px;padding:32px;text-align:center;width:90%}.modal-confirm-icon{align-items:center;border-radius:50%;display:flex;height:80px;justify-content:center;margin:0 auto 20px;width:80px}.modal-confirm-icon-warning{background:#fef3c7;color:#f59e0b}.modal-confirm-icon-danger{background:#fee2e2;color:#ef4444}.modal-confirm-icon-info{background:#dbeafe;color:#3b82f6}.modal-confirm-title{color:#1f2937;font-size:1.25rem;font-weight:700;margin:0 0 12px}.modal-confirm-message{color:#6b7280;font-size:.95rem;line-height:1.5;margin:0 0 24px}.modal-confirm-actions{display:flex;gap:12px;justify-content:center}.modal-confirm-actions button{border-radius:8px;cursor:pointer;font-size:.95rem;font-weight:600;min-width:120px;padding:12px 24px;transition:all .2s}.btn-cancel{background:#f3f4f6}.btn-cancel:hover{background:#e5e7eb;color:#4b5563}.btn-confirm{border:none;color:#fff}.btn-confirm-warning{background:linear-gradient(135deg,#f59e0b,#d97706)}.btn-confirm-warning:hover{box-shadow:0 4px 12px #f59e0b66;transform:translateY(-1px)}.btn-confirm-danger{background:linear-gradient(135deg,#ef4444,#dc2626)}.btn-confirm-danger:hover{box-shadow:0 4px 12px #ef444466;transform:translateY(-1px)}.btn-confirm-info{background:linear-gradient(135deg,#3b82f6,#2563eb)}.btn-confirm-info:hover{box-shadow:0 4px 12px #3b82f666;transform:translateY(-1px)}.toast-container{display:flex;flex-direction:column;gap:12px;pointer-events:none;position:fixed;right:20px;top:20px;z-index:9999}.toast-container>*{pointer-events:auto}@media (max-width:768px){.toast-container{bottom:20px;left:10px;right:10px;top:auto}.toast-container .toast{max-width:none;min-width:auto}}.login-container{align-items:center;background:linear-gradient(135deg,#0a1628,#1a2d4a 50%,#0f1c2e);display:flex;justify-content:center;min-height:100vh;overflow:hidden;position:relative}.login-background{overflow:hidden}.grid-overlay,.login-background{bottom:0;left:0;position:absolute;right:0;top:0}.grid-overlay{animation:gridMove 20s linear infinite;background-image:linear-gradient(#3572b008 1px,#0000 0),linear-gradient(90deg,#3572b008 1px,#0000 0);background-size:50px 50px}@keyframes gridMove{0%{transform:translate(0)}to{transform:translate(50px,50px)}}.blueprint-lines{background:linear-gradient(90deg,#0000 49.5%,#3572b014 0,#3572b014 50.5%,#0000 0),linear-gradient(0deg,#0000 49.5%,#3572b014 0,#3572b014 50.5%,#0000 0);background-size:200px 200px}.blueprint-lines,.login-particles{bottom:0;left:0;position:absolute;right:0;top:0}.login-particles{pointer-events:none}.particle{animation:floatUp 20s linear infinite;bottom:-50px;opacity:.15;position:absolute}.particle.brick{background:linear-gradient(135deg,#c45c3a,#8b4513);border-radius:2px;box-shadow:inset -2px -2px 4px #0000004d;height:15px;width:30px}.particle.gear{border:3px solid #5a9bd4;border-radius:50%;height:25px;position:relative;width:25px}.particle.gear:before{background:#5a9bd4;border-radius:50%;content:"";height:8px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:8px}.particle.hammer{background:linear-gradient(180deg,#666 0,#666 40%,#8b4513 0);border-radius:2px;height:30px;width:8px}.particle.ruler{background:linear-gradient(90deg,#f0c040,#d4a520);border-radius:1px;height:8px;width:40px}.particle.bolt{background:#888;-webkit-clip-path:polygon(30% 0,70% 0,100% 30%,100% 70%,70% 100%,30% 100%,0 70%,0 30%);clip-path:polygon(30% 0,70% 0,100% 30%,100% 70%,70% 100%,30% 100%,0 70%,0 30%);height:10px;width:10px}@keyframes floatUp{0%{opacity:0;transform:translateY(0) rotate(0deg)}10%{opacity:.15}90%{opacity:.15}to{opacity:0;transform:translateY(-100vh) rotate(1turn)}}.construction-elements{height:40%;left:0;pointer-events:none;right:0}.construction-elements,.crane{bottom:0;position:absolute}.crane-1{right:10%}.crane-tower{background:linear-gradient(90deg,#4a5568,#718096 50%,#4a5568);bottom:0;height:250px;left:50%;position:absolute;transform:translateX(-50%);width:12px}.crane-tower:before{background:repeating-linear-gradient(0deg,#0000,#0000 15px,#0000004d 0,#0000004d 17px);bottom:0;content:"";left:2px;position:absolute;right:2px;top:0}.crane-arm{animation:craneSwing 8s ease-in-out infinite;background:linear-gradient(180deg,#718096,#4a5568);bottom:240px;height:8px;left:-80px;position:absolute;transform-origin:right center;width:180px}@keyframes craneSwing{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}.crane-cable{animation:cableSwing 8s ease-in-out infinite;background:#2d3748;bottom:180px;height:60px;left:-60px;position:absolute;transform-origin:top center;width:2px}@keyframes cableSwing{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}.crane-hook{animation:hookSwing 8s ease-in-out infinite;border:3px solid #f59e0b;border-radius:0 0 8px 8px;border-top:none;bottom:120px;height:20px;left:-68px;position:absolute;width:16px}@keyframes hookSwing{0%,to{transform:translateX(-5px)}50%{transform:translateX(5px)}}.building{background:linear-gradient(180deg,#1e3a5f,#0f1c2e);border:1px solid #3572b033;bottom:0;position:absolute}.building:before{background:repeating-linear-gradient(0deg,#0000,#0000 20px,#3572b01a 0,#3572b01a 22px),repeating-linear-gradient(90deg,#0000,#0000 15px,#3572b01a 0,#3572b01a 17px);bottom:0;content:"";left:0;position:absolute;right:0;top:0}.building:after{animation:windowFlicker 4s ease-in-out infinite;background:repeating-linear-gradient(0deg,#0000,#0000 18px,#f59e0b4d 0,#f59e0b4d 22px,#0000 0,#0000 28px),repeating-linear-gradient(90deg,#0000,#0000 10px,#f59e0b4d 0,#f59e0b4d 16px,#0000 0,#0000 22px);bottom:10%;content:"";left:10%;position:absolute;right:10%;top:10%}@keyframes windowFlicker{0%,to{opacity:.6}50%{opacity:1}}.building-1{animation:buildingRise 2s ease-out forwards;animation-delay:.5s;height:180px;left:5%;width:80px}.building-1,.building-2{transform:scaleY(0);transform-origin:bottom}.building-2{animation:buildingRise 2s ease-out forwards;animation-delay:.8s;height:140px;left:15%;width:60px}.building-3{animation:buildingRise 2s ease-out forwards;animation-delay:.3s;height:200px;right:25%;transform:scaleY(0);transform-origin:bottom;width:100px}@keyframes buildingRise{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.scaffold{bottom:0;position:absolute}.scaffold-1{background:repeating-linear-gradient(0deg,#0000,#0000 28px,#8b45134d 0,#8b45134d 30px);border:2px solid #8b451366;height:120px;left:25%;width:50px}.login-content{max-width:440px;padding:20px;position:relative;width:100%;z-index:10}.login-card{animation:cardAppear .8s ease-out;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff2;border-radius:20px;box-shadow:0 25px 50px -12px #00000080,0 0 0 1px #ffffff1a,inset 0 1px 0 #fff3;padding:40px}@keyframes cardAppear{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.login-header{margin-bottom:32px;text-align:center}.logo-container{align-items:center;background:#fff;border-radius:12px;box-shadow:0 4px 15px #0000001a;display:inline-flex;justify-content:center;margin-bottom:20px;padding:16px 24px}.login-logo{height:50px;width:auto}.login-header h1{color:var(--gray-900);font-size:1.75rem;font-weight:700;margin:0 0 8px}.login-header p{color:var(--gray-500);font-size:.95rem;margin:0}.login-form{display:flex;flex-direction:column;gap:20px}.input-wrapper{align-items:center;display:flex;position:relative}.input-wrapper input{background:var(--gray-50);border:2px solid var(--gray-200);border-radius:12px;color:var(--gray-900);font-size:1rem;padding:14px 46px 14px 16px;transition:all .2s;width:100%}.input-wrapper input:focus{background:#fff;border-color:var(--primary-500);box-shadow:0 0 0 4px #4287c71a;outline:none}.input-wrapper input::placeholder,.toggle-password{color:var(--gray-400)}.toggle-password{align-items:center;background:none;border:none;cursor:pointer;display:flex;justify-content:center;padding:6px;position:absolute;right:12px;transition:color .2s}.toggle-password:hover{color:var(--gray-600)}.toggle-password svg{height:20px;width:20px}.login-error{align-items:center;animation:shakeError .5s ease-in-out;background:var(--error-100);border:1px solid var(--error-500);border-radius:10px;color:var(--error-600);display:flex;font-size:.875rem;gap:10px;padding:12px 16px}.login-error svg{flex-shrink:0;height:20px;width:20px}@keyframes shakeError{0%,to{transform:translateX(0)}20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}.login-button{align-items:center;background:linear-gradient(135deg,var(--primary-600) 0,var(--primary-700) 100%);border:none;border-radius:12px;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:10px;justify-content:center;margin-top:8px;overflow:hidden;padding:16px 24px;position:relative;transition:all .3s}.login-button:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.login-button:hover:before{left:100%}.login-button:hover{box-shadow:0 10px 25px -5px #3572b066;transform:translateY(-2px)}.login-button:active{transform:translateY(0)}.login-button:disabled{cursor:not-allowed;opacity:.7;transform:none}.login-button svg{height:20px;transition:transform .3s;width:20px}.login-button:hover svg{transform:translateX(4px)}.button-spinner{animation:spin 1s linear infinite;border:3px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:20px;width:20px}.login-footer{border-top:1px solid var(--gray-200);margin-top:24px;padding-top:20px;text-align:center}.login-footer p{color:var(--gray-400);font-size:.8rem;margin:0}@media (max-width:480px){.login-card{border-radius:16px;padding:30px 24px}.login-header h1{font-size:1.5rem}.building-1,.building-2,.building-3{display:none}.crane{right:5%;transform:scale(.7)}}.login-card{position:relative}.sidebar{background:linear-gradient(180deg,var(--gray-900) 0,#0f1419 100%);color:var(--gray-100);display:flex;flex-direction:column;height:100vh;left:0;overflow:hidden;position:fixed;top:0;width:260px;z-index:1000}.sidebar-header{border-bottom:1px solid #ffffff0f;min-height:80px;padding:var(--spacing-5)}.logo-section,.sidebar-header{align-items:center;display:flex;justify-content:center}.logo-full{background:#fff;border-radius:var(--radius-md);box-shadow:0 2px 8px #0003;height:auto;max-width:150px;object-fit:contain;padding:var(--spacing-2) var(--spacing-3);width:100%}.sidebar-nav{flex:1 1;overflow-x:hidden;overflow-y:auto;padding:var(--spacing-4) 0}.sidebar-nav::-webkit-scrollbar{width:4px}.sidebar-nav::-webkit-scrollbar-track{background:#0000}.sidebar-nav::-webkit-scrollbar-thumb{background:var(--gray-700);border-radius:2px}.menu-section{margin-bottom:var(--spacing-2)}.menu-item{align-items:center;background:#0000;border:none;border-radius:var(--radius-md);color:var(--gray-300);cursor:pointer;display:flex;font-size:.95rem;font-weight:600;gap:var(--spacing-3);letter-spacing:.02em;margin:0 var(--spacing-3);padding:var(--spacing-3) var(--spacing-4);position:relative;text-align:left;transition:all var(--transition-fast);width:calc(100% - var(--spacing-6))}.menu-item:hover{background:#ffffff0f;color:#fff}.menu-item.active{background:#ffffff14;color:#fff}.menu-item.active:before{background:var(--primary-400);border-radius:0 2px 2px 0;content:"";height:60%;left:0;position:absolute;top:50%;transform:translateY(-50%);width:3px}.menu-item.disabled{cursor:not-allowed;opacity:.4}.menu-item.disabled:hover{background:#0000;color:var(--gray-400)}.menu-icon{align-items:center;display:flex;font-size:1.1rem;justify-content:center;min-width:24px}.menu-name{flex:1 1;white-space:nowrap}.menu-arrow{color:var(--gray-500);font-size:.75rem;font-weight:400;transition:transform var(--transition-fast)}.menu-item.active .menu-arrow{color:var(--primary-400)}.badge{background:var(--primary-600);border-radius:10px;color:#fff;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.badge,.badge-mini{font-size:.65rem;padding:3px 8px}.badge-mini{background:#ffffff1a;border-radius:8px;color:var(--gray-400);font-weight:500;margin-left:auto}.submenu{border-left:2px solid #ffffff14;margin-left:var(--spacing-5);margin-top:var(--spacing-1);padding-left:var(--spacing-4)}.submenu-item{align-items:center;background:#0000;border:none;border-radius:var(--radius-md);color:var(--gray-400);cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:var(--spacing-2);letter-spacing:.01em;padding:var(--spacing-2) var(--spacing-3);position:relative;text-align:left;transition:all var(--transition-fast);width:100%}.submenu-item:hover{background:#ffffff0a;color:#fff}.submenu-item.active{background:#4287c71f;color:var(--primary-300);font-weight:600}.submenu-item.active:before{background:var(--primary-400);border-radius:50%;content:"";height:6px;left:-18px;position:absolute;top:50%;transform:translateY(-50%);width:6px}.submenu-item.disabled{cursor:not-allowed;opacity:.4}.submenu-item.disabled:hover{background:#0000;color:var(--gray-500)}.submenu-icon{align-items:center;display:flex;font-size:.9rem;justify-content:center;min-width:20px}.submenu-name{white-space:nowrap}.sidebar-footer{background:#0003;border-top:1px solid #ffffff0f;padding:var(--spacing-4)}.version-info{color:var(--gray-500);font-size:var(--font-size-xs);letter-spacing:.05em;text-align:center}.version-info p{margin:2px 0}.sprint-status{color:var(--success-500);font-weight:500}.sidebar-close-btn{background:#ffffff1a;border:1px solid #fff3;border-radius:50%;color:#fff;cursor:pointer;display:none;font-size:18px;height:36px;position:absolute;right:15px;top:15px;transition:all .2s ease;width:36px;z-index:10}.sidebar-close-btn:hover{background:#fff3;transform:scale(1.1)}@media (max-width:1024px){.sidebar{box-shadow:none;transform:translateX(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1);width:280px}.sidebar.open{box-shadow:4px 0 25px #00000080;transform:translateX(0)}.sidebar-close-btn{align-items:center;display:flex;justify-content:center}.sidebar-header{padding-right:50px}}@media (max-width:768px){.menu-item{font-size:1rem;padding:var(--spacing-4) var(--spacing-4)}.submenu-item{font-size:.95rem;padding:var(--spacing-3) var(--spacing-4)}}.app-header{background:linear-gradient(135deg,var(--gray-900) 0,var(--gray-800) 100%);box-shadow:0 4px 20px #00000026;overflow:hidden;position:-webkit-sticky;position:sticky;top:0;z-index:999}.app-header:before{background:linear-gradient(90deg,#0000,#3572b014);height:100%;pointer-events:none;width:40%}.app-header:after,.app-header:before{content:"";position:absolute;right:0;top:0}.app-header:after{background:linear-gradient(90deg,var(--primary-500) 0,var(--primary-400) 50%,var(--primary-600) 100%);height:3px;left:0}.header-content{align-items:center;display:flex;justify-content:space-between;padding:var(--spacing-5) var(--spacing-6);position:relative}.header-title-section{display:flex;flex:1 1;flex-direction:column;gap:var(--spacing-1)}.header-title{align-items:center;color:#fff;display:flex;font-size:1.5rem;font-weight:700;gap:var(--spacing-3);letter-spacing:-.02em;margin:0}.header-title:before{background:var(--primary-400);border-radius:2px;content:"";flex-shrink:0;height:28px;width:4px}.header-subtitle{color:var(--gray-400);font-size:var(--font-size-sm);margin:0}.header-breadcrumb,.header-subtitle{padding-left:calc(4px + var(--spacing-3))}.header-breadcrumb{align-items:center;display:flex;gap:var(--spacing-2);margin-top:var(--spacing-1)}.breadcrumb-item{color:var(--gray-500);font-size:var(--font-size-xs)}.breadcrumb-separator{color:var(--gray-600);font-size:.65rem}.breadcrumb-current{color:var(--primary-400);font-weight:500}.header-actions,.user-info{gap:var(--spacing-3)}.user-info{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff14;border:1px solid #ffffff1a;border-radius:var(--radius-lg);cursor:pointer;display:flex;padding:var(--spacing-2) var(--spacing-4);transition:all var(--transition-fast)}.user-info:hover{background:#ffffff1f;border-color:#ffffff26;transform:translateY(-1px)}.user-avatar{align-items:center;background:linear-gradient(135deg,var(--primary-500) 0,var(--primary-600) 100%);border-radius:50%;box-shadow:0 2px 8px #3572b04d;color:#fff;display:flex;height:36px;justify-content:center;width:36px}.user-avatar svg{height:18px;width:18px}.user-details{display:flex;flex-direction:column}.user-name{color:#fff;font-size:var(--font-size-sm);font-weight:600}.user-role{color:var(--gray-400);font-size:var(--font-size-xs)}.user-status{background:var(--success-500);border:2px solid var(--gray-800);border-radius:50%;bottom:0;height:10px;position:absolute;right:0;width:10px}.header-quick-actions{display:flex;gap:var(--spacing-2)}.quick-action-btn{align-items:center;background:#ffffff0f;border:1px solid #ffffff14;border-radius:var(--radius-md);color:var(--gray-400);cursor:pointer;display:flex;height:36px;justify-content:center;transition:all var(--transition-fast);width:36px}.quick-action-btn:hover{background:#ffffff1a;border-color:#ffffff26;color:#fff}.logout-btn{align-items:center;background:#ef444426;border:1px solid #ef44444d;border-radius:var(--radius-lg);color:#fca5a5;cursor:pointer;display:flex;font-size:var(--font-size-sm);font-weight:500;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-4);transition:all var(--transition-fast)}.logout-btn:hover{background:#ef444440;border-color:#ef444480;color:#fff;transform:translateY(-1px)}.logout-btn svg{flex-shrink:0}.hamburger-btn{align-items:center;background:#ffffff14;border:1px solid #ffffff1f;border-radius:var(--radius-md);cursor:pointer;display:none;flex-direction:column;flex-shrink:0;gap:5px;height:44px;justify-content:center;margin-right:var(--spacing-3);padding:10px;transition:all .3s ease;width:44px}.hamburger-btn:hover{background:#ffffff26}.hamburger-btn:active{transform:scale(.95)}.hamburger-line{background:#fff;border-radius:2px;display:block;height:2px;transition:all .3s ease;width:22px}.hamburger-btn.active .hamburger-line:first-child{transform:rotate(45deg) translate(5px,5px)}.hamburger-btn.active .hamburger-line:nth-child(2){opacity:0;transform:translateX(-10px)}.hamburger-btn.active .hamburger-line:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}@media (max-width:1024px){.hamburger-btn{display:flex}}@media (max-width:768px){.header-content{padding:var(--spacing-3) var(--spacing-4)}.header-title{font-size:1.1rem}.header-title:before{height:20px;width:3px}.header-subtitle,.user-details{display:none}.user-info{padding:var(--spacing-2)}.logout-btn span{display:none}.logout-btn{padding:var(--spacing-2)}}.subir-excel-container{margin:0 auto;max-width:900px}.page-header{margin-bottom:var(--spacing-6)}.page-header h1{color:var(--gray-900);font-size:var(--font-size-2xl);font-weight:700;margin-bottom:var(--spacing-1)}.page-header p{color:var(--gray-500)}.alert,.page-header p{font-size:var(--font-size-sm)}.alert{align-items:flex-start;border-radius:var(--radius-lg);display:flex;gap:var(--spacing-3);margin-bottom:var(--spacing-5);padding:var(--spacing-4)}.alert-icon{flex-shrink:0;height:20px;width:20px}.alert-content strong{display:block;font-weight:600;margin-bottom:2px}.alert-content p{margin:0;opacity:.9}.alert-error{background:var(--error-100);border:1px solid var(--error-500);color:var(--error-600)}.alert-success{background:var(--success-100);border:1px solid var(--success-500);color:var(--success-600)}.upload-card{background:var(--surface-primary);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.drop-zone{background:var(--surface-secondary);border:2px dashed var(--border-medium);border-radius:var(--radius-lg);cursor:pointer;margin:var(--spacing-5);padding:var(--spacing-10) var(--spacing-6);text-align:center;transition:all var(--transition-base)}.drop-zone:hover{background:var(--primary-50);border-color:var(--primary-500)}.drop-zone.dragging{background:var(--primary-100);border-color:var(--primary-500)}.drop-zone.loading{opacity:.7;pointer-events:none}.drop-zone-icon{color:var(--gray-400);height:48px;margin:0 auto var(--spacing-4);width:48px}.drop-zone:hover .drop-zone-icon{color:var(--primary-500)}.drop-zone h3{color:var(--gray-700);font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--spacing-1)}.drop-zone-text{color:var(--gray-500);font-size:var(--font-size-sm);margin-bottom:var(--spacing-4)}.btn-upload-display{align-items:center;background:var(--primary-600);border-radius:var(--radius-md);color:#fff;display:inline-flex;font-size:var(--font-size-sm);font-weight:500;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-4);pointer-events:none}.file-types{color:var(--gray-400);font-size:var(--font-size-xs);margin-top:var(--spacing-3)}.upload-loading{padding:var(--spacing-8)}.spinner{margin:0 auto var(--spacing-4)}.loading-text{color:var(--gray-700);font-size:var(--font-size-sm);font-weight:500;margin-bottom:var(--spacing-1)}.loading-subtext{color:var(--gray-500);font-size:var(--font-size-xs)}.info-card{background:var(--surface-tertiary);border-top:1px solid var(--border-light);padding:var(--spacing-4) var(--spacing-5)}.info-card h4{color:var(--gray-700);font-size:var(--font-size-sm);font-weight:600;margin-bottom:var(--spacing-3)}.info-card ul{grid-gap:var(--spacing-2);display:grid;gap:var(--spacing-2);grid-template-columns:repeat(2,1fr);list-style:none}.info-card li{align-items:center;color:var(--gray-600);display:flex;font-size:var(--font-size-xs);gap:var(--spacing-2)}.info-card li:before{background:var(--primary-500);border-radius:50%;content:"";flex-shrink:0;height:4px;width:4px}.preview-container{background:var(--surface-primary);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.preview-header{border-bottom:1px solid var(--border-light);padding:var(--spacing-4) var(--spacing-5)}.preview-header-content h2{color:var(--gray-900);font-size:var(--font-size-lg);font-weight:600}.preview-header-content p{color:var(--gray-500);font-size:var(--font-size-xs);margin-top:2px}.preview-badge{align-items:center;background:var(--success-100);border-radius:var(--radius-md);color:var(--success-600);display:inline-flex;font-size:var(--font-size-xs);font-weight:500;gap:var(--spacing-1);padding:var(--spacing-1) var(--spacing-3)}.section{border-bottom:1px solid var(--border-light);padding:var(--spacing-4) var(--spacing-5)}.section:last-of-type{border-bottom:none}.section h3{color:var(--gray-700);font-size:var(--font-size-sm);font-weight:600;letter-spacing:.5px;margin-bottom:var(--spacing-3);text-transform:uppercase}.section-icon{display:none}.data-grid{grid-gap:var(--spacing-4);gap:var(--spacing-4);grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.data-item{gap:2px}.data-item .label{color:var(--gray-500);font-size:var(--font-size-xs);font-weight:500;letter-spacing:.3px;text-transform:uppercase}.data-item .value{color:var(--gray-900);font-size:var(--font-size-sm);font-weight:500}.financial-section{background:var(--surface-primary)}.financial-section h3{color:var(--gray-700)}.financial-grid{grid-template-columns:repeat(4,1fr)}.financial-item{text-align:center}.financial-item.total-item{background:var(--primary-600);color:#fff;grid-column:span 4}.financial-label{color:var(--gray-500);display:block;font-size:var(--font-size-xs);letter-spacing:.3px;margin-bottom:var(--spacing-1);text-transform:uppercase}.financial-item.total-item .financial-label{color:#fffc}.financial-value{font-size:var(--font-size-base);font-weight:700}.financial-value.total{color:#fff;font-size:var(--font-size-xl)}.capitulos-list{display:flex;flex-direction:column;gap:var(--spacing-2)}.capitulo-card{background:var(--surface-secondary);border:1px solid var(--border-light);border-radius:var(--radius-md);overflow:hidden;transition:all var(--transition-base)}.capitulo-card:hover{border-color:var(--primary-300)}.capitulo-card.empty{opacity:.5}.capitulo-header{align-items:center;cursor:pointer;display:flex;gap:var(--spacing-4);justify-content:space-between;padding:var(--spacing-3) var(--spacing-4)}.capitulo-header:hover{background:var(--surface-primary)}.capitulo-info{align-items:center;display:flex;flex:1 1;gap:var(--spacing-3);min-width:0}.capitulo-numero{align-items:center;background:var(--primary-600);border-radius:var(--radius-md);color:#fff;display:flex;flex-shrink:0;font-size:var(--font-size-sm);font-weight:600;height:28px;justify-content:center;width:28px}.capitulo-card.empty .capitulo-numero{background:var(--gray-400)}.capitulo-details{min-width:0}.capitulo-nombre{color:var(--gray-800)}.capitulo-meta{color:var(--gray-500);font-size:var(--font-size-xs)}.capitulo-values{align-items:center;display:flex;flex-shrink:0;gap:var(--spacing-4)}.capitulo-porcentaje-num{align-items:center;background:var(--primary-50);border-radius:6px;color:var(--primary-700);display:inline-flex;font-size:var(--font-size-sm);font-weight:600;justify-content:center;min-width:55px;padding:4px 10px}.capitulo-card.empty .capitulo-porcentaje-num{background:var(--gray-100);color:var(--gray-400)}.capitulo-subtotal{color:var(--gray-900);font-size:var(--font-size-sm);font-weight:600;min-width:100px;text-align:right}.capitulo-toggle{color:var(--gray-400);font-size:var(--font-size-xs);transition:transform var(--transition-base)}.capitulo-toggle.expanded{transform:rotate(180deg)}.capitulo-actividades{background:var(--surface-primary);border-top:1px solid var(--border-light);max-height:300px;overflow-y:auto}.actividades-table{border-collapse:collapse;font-size:var(--font-size-sm);width:100%}.actividades-table thead{background:var(--surface-tertiary);position:-webkit-sticky;position:sticky;top:0}.actividades-table th{color:var(--gray-600);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.3px;padding:var(--spacing-2) var(--spacing-3);text-align:left;text-transform:uppercase}.actividades-table td{border-bottom:1px solid var(--border-light);color:var(--gray-700);padding:var(--spacing-2) var(--spacing-3)}.actividades-table tbody tr:hover{background:var(--surface-secondary)}.actividades-table tbody tr:last-child td{border-bottom:none}.act-orden{color:var(--gray-400);text-align:center;width:40px}.act-descripcion{color:var(--gray-800)}.act-valor{color:var(--gray-900);font-weight:600;text-align:right;white-space:nowrap}.actions{background:var(--surface-tertiary);border-top:1px solid var(--border-light);display:flex;gap:var(--spacing-3);justify-content:flex-end;padding:var(--spacing-4) var(--spacing-5)}.btn{align-items:center;border:none;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-size:var(--font-size-sm);font-weight:500;gap:var(--spacing-2);justify-content:center;padding:var(--spacing-2) var(--spacing-5);transition:all var(--transition-fast)}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-cancel{background:var(--surface-primary);border:1px solid var(--border-medium);color:var(--gray-700)}.btn-cancel:hover:not(:disabled){background:var(--gray-100)}.btn-create{background:var(--primary-600);color:#fff}.btn-create:hover:not(:disabled){background:var(--primary-700)}.modal-existente{animation:modalSlideIn .2s ease-out;background:var(--surface-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);max-width:480px;overflow:hidden;width:100%}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-header{background:var(--warning-50);gap:var(--spacing-3);padding:var(--spacing-5)}.modal-icon.warning{color:var(--warning-500);flex-shrink:0;height:32px;width:32px}.modal-body>p{color:var(--gray-600);font-size:var(--font-size-sm);margin-bottom:var(--spacing-4)}.proyecto-existente-info{background:var(--surface-secondary);border-radius:var(--radius-md);margin-bottom:var(--spacing-4);padding:var(--spacing-4)}.proyecto-existente-info .info-row{border-bottom:1px solid var(--border-light);display:flex;justify-content:space-between;padding:var(--spacing-2) 0}.proyecto-existente-info .info-row:last-child{border-bottom:none}.proyecto-existente-info .info-label{color:var(--gray-500);font-size:var(--font-size-sm);font-weight:500}.proyecto-existente-info .info-value{color:var(--gray-900);font-size:var(--font-size-sm);font-weight:600;text-align:right}.proyecto-existente-info .info-value.estado-contratado_no_iniciado{color:var(--gray-500)}.proyecto-existente-info .info-value.estado-en_ejecucion{color:var(--primary-600)}.proyecto-existente-info .info-value.estado-finalizado{color:var(--success-600)}.modal-question{color:var(--gray-800);font-size:var(--font-size-base);font-weight:600;margin-top:var(--spacing-4);text-align:center}.modal-actions{background:var(--surface-tertiary);border-top:1px solid var(--border-light);display:flex;flex-direction:column;gap:var(--spacing-3);padding:var(--spacing-5)}.modal-actions .btn{font-size:var(--font-size-sm);justify-content:center;padding:var(--spacing-3) var(--spacing-4);width:100%}.btn-update{background:var(--primary-600);color:#fff}.btn-update:hover:not(:disabled){background:var(--primary-700)}.btn-update svg{margin-right:var(--spacing-2)}.btn-create-new{background:var(--success-600);color:#fff}.btn-create-new:hover:not(:disabled){background:var(--success-700)}.btn-create-new svg{margin-right:var(--spacing-2)}.btn-restart{background:#dc2626;color:#fff}.btn-restart:hover:not(:disabled){background:#b91c1c}.btn-restart svg{margin-right:var(--spacing-2)}.btn-cancel-modal{background:#0000;border:1px solid var(--border-medium);color:var(--gray-600)}.btn-cancel-modal:hover:not(:disabled){background:var(--gray-100)}@media (max-width:768px){.data-grid,.financial-grid{grid-template-columns:repeat(2,1fr)}.financial-item.total-item{grid-column:span 2}.capitulo-header{flex-wrap:wrap}.capitulo-values{justify-content:space-between;margin-top:var(--spacing-2);width:100%}.info-card ul{grid-template-columns:1fr}.actions{flex-direction:column}.btn{width:100%}.modal-existente{margin:var(--spacing-4);max-height:90vh;overflow-y:auto}}.lista-proyectos-container{margin:0 auto;max-width:1400px}.proyectos-header{margin-bottom:var(--spacing-5)}.filtros-estados{gap:var(--spacing-2)}.tabla-wrapper{margin-bottom:var(--spacing-4)}.proyectos-table{border-collapse:collapse;width:100%}.proyectos-table thead{background:var(--surface-tertiary)}.proyectos-table th{border-bottom:1px solid var(--border-light);color:var(--gray-600);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.5px;padding:var(--spacing-3) var(--spacing-4);text-align:left;text-transform:uppercase}.proyectos-table tbody tr{border-bottom:1px solid var(--border-light);cursor:pointer;transition:background var(--transition-fast)}.proyectos-table tbody tr:hover{background:var(--surface-secondary)}.proyectos-table tbody tr:last-child{border-bottom:none}.proyectos-table td{color:var(--gray-800);font-size:var(--font-size-sm);padding:var(--spacing-3) var(--spacing-4)}.proyecto-info .proyecto-nombre{color:var(--gray-900);font-weight:500}.cliente-info{display:flex;flex-direction:column;gap:2px}.cliente-nombre{color:var(--gray-800);font-weight:500}.cliente-cedula{color:var(--gray-500);font-size:var(--font-size-xs)}.apartamento-badge{background:var(--surface-tertiary);border-radius:var(--radius-sm);display:inline-block;font-size:var(--font-size-xs);padding:var(--spacing-1) var(--spacing-2)}.apartamento-badge,.area-value{color:var(--gray-700);font-weight:500}.valor-final{color:var(--gray-900);font-weight:600}.fecha{font-size:var(--font-size-sm)}.estado-badge.blue{background:var(--info-100);color:var(--info-600)}.estado-badge.green{background:var(--success-100);color:var(--success-600)}.estado-badge.orange{background:var(--warning-100);color:var(--warning-600)}.estado-badge.purple{background:#f3e8ff;color:#7c3aed}.estado-badge.red{background:var(--error-100);color:var(--error-600)}.cartera-badge{border-radius:var(--radius-md);display:inline-block;font-size:var(--font-size-xs);font-weight:600;padding:var(--spacing-1) var(--spacing-2)}.cartera-badge.al-dia{background:#d1fae5;color:#065f46}.cartera-badge.atrasado{background:#fee2e2;color:#991b1b}.acciones{align-items:center}.btn-accion{font-size:var(--font-size-sm)}.select-estado{background:var(--surface-primary);border:1px solid var(--border-medium);border-radius:var(--radius-sm);color:var(--gray-700);cursor:pointer;font-size:var(--font-size-xs);font-weight:500;padding:var(--spacing-1) var(--spacing-2);transition:all var(--transition-fast)}.select-estado:hover{border-color:var(--primary-400)}.select-estado:focus{border-color:var(--primary-500);box-shadow:0 0 0 2px var(--primary-100);outline:none}.loading-spinner p{color:var(--gray-600);font-size:var(--font-size-sm)}.error-message{background:var(--surface-primary);border:1px solid var(--error-500);border-radius:var(--radius-lg);padding:var(--spacing-8);text-align:center}.error-icon{display:block;font-size:2rem;margin-bottom:var(--spacing-3)}.error-message h3{margin:0 0 var(--spacing-2) 0}.error-message p{color:var(--gray-600);margin:0 0 var(--spacing-4) 0}.btn-retry{border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);font-weight:500;padding:var(--spacing-2) var(--spacing-4);transition:all var(--transition-fast)}.estadisticas-cards{grid-gap:var(--spacing-4);display:grid;gap:var(--spacing-4);grid-template-columns:repeat(4,1fr);margin-bottom:var(--spacing-4)}.estadisticas-cards .stat-card{background:var(--surface-primary);border:2px solid var(--border-light);border-radius:var(--radius-lg);cursor:pointer;display:flex;flex-direction:column;gap:var(--spacing-2);padding:var(--spacing-4);transition:all var(--transition-fast)}.estadisticas-cards .stat-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.estadisticas-cards .stat-card.active{border-width:2px}.estadisticas-cards .stat-card.todos{border-left:4px solid #6366f1}.estadisticas-cards .stat-card.todos.active{background:#eef2ff;border-color:#6366f1}.estadisticas-cards .stat-card.todos .stat-icon{color:#6366f1}.estadisticas-cards .stat-card.contratado{border-left:4px solid #3b82f6}.estadisticas-cards .stat-card.contratado.active{background:#eff6ff;border-color:#3b82f6}.estadisticas-cards .stat-card.contratado .stat-icon{color:#3b82f6}.estadisticas-cards .stat-card.ejecucion{border-left:4px solid #22c55e}.estadisticas-cards .stat-card.ejecucion.active{background:#f0fdf4;border-color:#22c55e}.estadisticas-cards .stat-card.ejecucion .stat-icon{color:#22c55e}.estadisticas-cards .stat-card.finalizado{border-left:4px solid #8b5cf6}.estadisticas-cards .stat-card.finalizado.active{background:#faf5ff;border-color:#8b5cf6}.estadisticas-cards .stat-card.finalizado .stat-icon{color:#8b5cf6}.estadisticas-cards .stat-header{align-items:center;display:flex;gap:var(--spacing-2)}.estadisticas-cards .stat-icon{font-size:1.25rem}.estadisticas-cards .stat-title{color:var(--gray-700);font-size:var(--font-size-sm);font-weight:600}.estadisticas-cards .stat-body{align-items:baseline;display:flex;gap:var(--spacing-1)}.estadisticas-cards .stat-cantidad{color:var(--gray-900);font-size:1.75rem;font-weight:700;line-height:1}.estadisticas-cards .stat-label{color:var(--gray-500);font-size:var(--font-size-xs);font-weight:500}.estadisticas-cards .stat-footer{border-top:1px solid var(--border-light);margin-top:var(--spacing-1);padding-top:var(--spacing-2)}.estadisticas-cards .stat-valor{color:var(--gray-700);font-size:var(--font-size-sm);font-weight:600}@media (max-width:1200px){.tabla-wrapper{overflow-x:auto}.proyectos-table{min-width:900px}.estadisticas-cards{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.proyectos-header{align-items:stretch;gap:var(--spacing-3)}.filtros-section,.proyectos-header{flex-direction:column}.filtros-estados{flex-wrap:wrap;width:100%}.filtro-btn{flex:1 1;text-align:center}.estadisticas-cards{grid-template-columns:1fr}.estadisticas-cards .stat-cantidad{font-size:1.5rem}}.btn-eliminar-proyecto{align-items:center;background:#fef2f2;background:var(--error-50,#fef2f2);border:1px solid #fecaca;border:1px solid var(--error-200,#fecaca);border-radius:var(--radius-md);color:#dc2626;color:var(--error-600,#dc2626);cursor:pointer;display:flex;justify-content:center;padding:6px 10px;transition:all var(--transition-fast)}.btn-eliminar-proyecto:hover{background:#fee2e2;background:var(--error-100,#fee2e2);border-color:#f87171;border-color:var(--error-400,#f87171);color:#b91c1c;color:var(--error-700,#b91c1c)}.modal-overlay{background:#0009}.modal-eliminar{background:#fff;border-radius:var(--radius-lg);box-shadow:0 20px 60px #0000004d;max-width:480px;overflow:hidden;width:100%}.modal-eliminar .modal-header{align-items:center;color:#fff;display:flex;justify-content:space-between;padding:var(--spacing-4)}.modal-eliminar .modal-header,.modal-eliminar .modal-header.eliminar{background:#dc2626;background:var(--error-600,#dc2626)}.modal-eliminar .modal-header h3{font-size:var(--font-size-lg);font-weight:600;margin:0}.modal-eliminar .btn-cerrar{align-items:center;background:none;border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;display:flex;font-size:1.5rem;height:32px;justify-content:center;padding:0;transition:background var(--transition-fast);width:32px}.modal-eliminar .btn-cerrar:hover{background:#fff3}.modal-eliminar .modal-body{padding:var(--spacing-5);text-align:center}.modal-eliminar .warning-icon{font-size:3rem;margin-bottom:var(--spacing-3)}.modal-eliminar .warning-text{color:var(--gray-800);font-size:var(--font-size-lg);margin-bottom:var(--spacing-4)}.modal-eliminar .proyecto-a-eliminar{background:var(--surface-secondary);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--spacing-1);margin-bottom:var(--spacing-4);padding:var(--spacing-3)}.modal-eliminar .proyecto-a-eliminar strong{color:var(--gray-900);font-size:var(--font-size-md)}.modal-eliminar .proyecto-a-eliminar span{color:var(--gray-600);font-size:var(--font-size-sm)}.modal-eliminar .danger-text{color:#dc2626;color:var(--error-600,#dc2626);font-size:var(--font-size-sm);margin-bottom:var(--spacing-2)}.modal-eliminar .danger-text.bold{font-weight:600;margin-top:var(--spacing-3)}.modal-eliminar .lista-eliminacion{background:#fef2f2;background:var(--error-50,#fef2f2);border-radius:var(--radius-md);color:#b91c1c;color:var(--error-700,#b91c1c);font-size:var(--font-size-sm);margin:0 0 var(--spacing-3) 0;padding:var(--spacing-3) var(--spacing-3) var(--spacing-3) var(--spacing-6);text-align:left}.modal-eliminar .lista-eliminacion li{margin-bottom:var(--spacing-1)}.modal-eliminar .modal-footer{background:var(--surface-secondary);border-top:1px solid var(--border-light);display:flex;gap:var(--spacing-3);padding:var(--spacing-4)}.modal-eliminar .btn-cancelar{background:#fff;border:1px solid var(--border-medium);border-radius:var(--radius-md);color:var(--gray-700);cursor:pointer;flex:1 1;font-size:var(--font-size-sm);font-weight:500;padding:var(--spacing-3);transition:all var(--transition-fast)}.modal-eliminar .btn-cancelar:hover{background:var(--surface-tertiary)}.modal-eliminar .btn-eliminar-confirmar{background:#dc2626;background:var(--error-600,#dc2626);border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;flex:1 1;font-size:var(--font-size-sm);font-weight:500;padding:var(--spacing-3);transition:all var(--transition-fast)}.modal-eliminar .btn-eliminar-confirmar:hover:not(:disabled){background:#b91c1c;background:var(--error-700,#b91c1c)}.modal-eliminar .btn-cancelar:disabled,.modal-eliminar .btn-eliminar-confirmar:disabled{cursor:not-allowed;opacity:.6}.resumen-proyecto{display:flex;flex-direction:column;gap:var(--spacing-5)}.presupuesto-control{background:var(--surface-primary);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--spacing-6)}.presupuesto-control.normal{border-left:4px solid var(--success-500)}.presupuesto-control.advertencia{border-left:4px solid var(--warning-500)}.presupuesto-control.alerta{border-left:4px solid var(--error-500)}.control-header{align-items:center;border-bottom:1px solid var(--border-light);display:flex;justify-content:space-between;margin-bottom:var(--spacing-5);padding-bottom:var(--spacing-4)}.control-header h2{color:var(--gray-900);font-size:var(--font-size-lg);font-weight:600;margin:0}.badge-alerta{background:var(--error-500)}.badge-advertencia,.badge-alerta{border-radius:var(--radius-md);color:#fff;font-size:var(--font-size-xs);font-weight:600;padding:var(--spacing-1) var(--spacing-3);text-transform:uppercase}.badge-advertencia{background:var(--warning-500)}.control-grid{grid-gap:var(--spacing-4);display:grid;gap:var(--spacing-4);grid-template-columns:repeat(6,1fr);margin-bottom:var(--spacing-5)}.control-item{background:var(--surface-secondary);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--spacing-1);padding:var(--spacing-4)}.control-label{color:var(--gray-500);font-size:var(--font-size-xs);font-weight:500;letter-spacing:.3px;text-transform:uppercase}.control-value{color:var(--gray-900);font-size:var(--font-size-xl);font-weight:700}.control-value.total{color:var(--primary-600)}.control-value.limite{color:var(--warning-600)}.control-value.gastado{color:var(--gray-700)}.control-value.disponible.positivo{color:var(--success-600)}.control-value.disponible.negativo{color:var(--error-600)}.control-item.caja-menor{background:linear-gradient(135deg,#f3f4f6,#e5e7eb);border:1px solid #9ca3af}.control-value.caja-menor{color:#4b5563}.control-item.salidas-bodega{background:linear-gradient(135deg,#fff7ed,#ffedd5);border:1px solid #fb923c}.control-value.salidas-bodega{color:#ea580c}.control-progress{margin-bottom:var(--spacing-4)}.progress-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--spacing-2)}.progress-header span:first-child{color:var(--gray-700);font-size:var(--font-size-sm);font-weight:500}.progress-percentage{font-size:var(--font-size-lg);font-weight:700}.progress-percentage.normal{color:var(--success-600)}.progress-percentage.advertencia{color:var(--warning-600)}.progress-percentage.peligro{color:var(--error-600)}.progress-bar-large{background:var(--gray-200);border-radius:var(--radius-md);height:24px;overflow:hidden;position:relative;width:100%}.progress-bar-large .progress-fill{border-radius:var(--radius-md);height:100%;transition:width .5s ease}.progress-fill.normal{background:var(--success-500)}.progress-fill.advertencia{background:var(--warning-500)}.progress-fill.peligro{background:var(--error-500)}.progress-marker{background:var(--gray-700);bottom:0;position:absolute;top:0;width:2px}.marker-label{background:var(--gray-800);border-radius:var(--radius-sm);color:#fff;font-size:var(--font-size-xs);font-weight:600;left:50%;padding:2px 6px;position:absolute;top:-24px;transform:translateX(-50%);white-space:nowrap}.control-mensaje{border-left:3px solid;border-radius:var(--radius-md);font-size:var(--font-size-sm);line-height:1.5;padding:var(--spacing-3) var(--spacing-4)}.control-mensaje.alerta{background:var(--error-100);border-color:var(--error-500);color:var(--error-600)}.control-mensaje.advertencia{background:var(--warning-100);border-color:var(--warning-500);color:var(--warning-600)}.stats-grid{grid-gap:var(--spacing-4);gap:var(--spacing-4);grid-template-columns:repeat(4,1fr)}.stat-card{background:var(--surface-primary);border:1px solid var(--border-light);border-radius:var(--radius-lg);gap:var(--spacing-3);padding:var(--spacing-4)}.stat-card.primary{border-left:3px solid var(--primary-500)}.stat-card.success{border-left:3px solid var(--success-500)}.stat-card.info{border-left:3px solid var(--info-500)}.stat-card.warning{border-left:3px solid var(--warning-500)}.stat-icon{font-size:1.5rem;opacity:.7}.stat-content{gap:2px}.stat-label{color:var(--gray-500);font-size:var(--font-size-xs)}.stat-value{color:var(--gray-900);font-size:var(--font-size-lg);font-weight:600}.stat-subtext{color:var(--gray-400);font-size:var(--font-size-xs)}.progress-bar{background:var(--gray-200);border-radius:3px;height:6px;margin-top:var(--spacing-2)}.progress-bar.large{height:8px}.progress-fill{background:var(--primary-500);border-radius:3px}.info-sections{grid-gap:var(--spacing-4);display:grid;gap:var(--spacing-4);grid-template-columns:repeat(2,1fr)}.info-card{background:var(--surface-primary);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--spacing-5)}.info-card h3{border-bottom:1px solid var(--border-light);color:var(--gray-700);font-size:var(--font-size-sm);font-weight:600;letter-spacing:.5px;margin:0 0 var(--spacing-4) 0;padding-bottom:var(--spacing-3);text-transform:uppercase}.info-grid{grid-gap:var(--spacing-3);display:grid;gap:var(--spacing-3);grid-template-columns:repeat(2,1fr)}.info-item{display:flex;flex-direction:column;gap:2px}.info-label{color:var(--gray-500);font-size:var(--font-size-xs);font-weight:500}.info-value{color:var(--gray-900);font-size:var(--font-size-sm);font-weight:500}.capitulos-stats{grid-gap:var(--spacing-3);display:grid;gap:var(--spacing-3);grid-template-columns:repeat(4,1fr);margin-bottom:var(--spacing-4)}.capitulo-stat{border-radius:var(--radius-md);gap:var(--spacing-1);padding:var(--spacing-3);text-align:center}.capitulo-stat.completado{background:var(--success-100);border:1px solid var(--success-500)}.capitulo-stat.en-progreso{background:var(--info-100);border:1px solid var(--info-500)}.capitulo-stat.retrasado{background:var(--warning-100);border:1px solid var(--warning-500)}.capitulo-stat.pendiente{background:var(--surface-tertiary);border:1px solid var(--border-medium)}.capitulo-stat .stat-number{color:var(--gray-900);font-size:var(--font-size-2xl);font-weight:700}.capitulo-stat .stat-text{color:var(--gray-600);font-size:var(--font-size-xs);font-weight:500}.capitulos-progress{margin-top:var(--spacing-4)}.progress-label{color:var(--gray-700);display:flex;font-size:var(--font-size-sm);font-weight:500;justify-content:space-between;margin-bottom:var(--spacing-2)}.financial-grid{grid-gap:var(--spacing-3);border-bottom:1px solid var(--border-light);display:grid;gap:var(--spacing-3);grid-template-columns:repeat(2,1fr);margin-bottom:var(--spacing-4);padding-bottom:var(--spacing-4)}.financial-item{align-items:center;background:var(--surface-secondary);border-radius:var(--radius-md);display:flex;justify-content:space-between;padding:var(--spacing-3)}.financial-item.total{background:var(--primary-50);border:1px solid var(--primary-200)}.financial-label{color:var(--gray-600);font-size:var(--font-size-sm);font-weight:500}.financial-item.total .financial-label{color:var(--primary-700);font-weight:600}.financial-value{color:var(--gray-900);font-size:var(--font-size-sm);font-weight:600}.payment-summary{grid-gap:var(--spacing-3);display:grid;gap:var(--spacing-3);grid-template-columns:repeat(2,1fr)}.payment-item{border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--spacing-1);padding:var(--spacing-3)}.payment-item.paid{background:var(--success-100);border:1px solid var(--success-500)}.payment-item.pending{background:var(--warning-100);border:1px solid var(--warning-500)}.payment-label{color:var(--gray-600);font-size:var(--font-size-xs);font-weight:500}.payment-value{color:var(--gray-900);font-size:var(--font-size-lg);font-weight:600}.nota-section{background:var(--surface-secondary);border-radius:var(--radius-md);margin-bottom:var(--spacing-3);padding:var(--spacing-3)}.nota-section:last-child{margin-bottom:0}.nota-section.alert{background:var(--warning-100);border-left:3px solid var(--warning-500)}.nota-section h4{color:var(--gray-800);font-size:var(--font-size-sm);font-weight:600;margin:0 0 var(--spacing-2) 0}.nota-section p{color:var(--gray-600);font-size:var(--font-size-sm);line-height:1.5;margin:0}@media (max-width:1400px){.control-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:1200px){.control-grid,.stats-grid{grid-template-columns:repeat(2,1fr)}.info-sections{grid-template-columns:1fr}}@media (max-width:768px){.capitulos-stats,.control-grid,.financial-grid,.info-grid,.payment-summary,.stats-grid{grid-template-columns:1fr}}.informacion-basica{display:flex;flex-direction:column;gap:24px}.capitulo-header{margin-bottom:8px}.capitulo-header h2{color:#1a1a1a;font-size:28px;font-weight:700;margin:0 0 8px}.capitulo-header p{color:#666;font-size:15px;margin:0}.section-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:24px}.section-card h3{border-bottom:2px solid #f0f0f0;color:#1a1a1a;font-size:18px;font-weight:700;margin:0 0 20px;padding-bottom:12px}.data-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.data-item{display:flex;flex-direction:column;gap:6px}.data-item label{color:#666;font-size:13px;font-weight:600}.data-value{background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;color:#1a1a1a;font-size:15px;font-weight:600;padding:10px 12px}.data-value.highlight{background:#e8f5e7;border-color:#64dc5c;color:#2d7a28}.team-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.team-member{align-items:center;background:#f9f9f9;border:2px solid #e0e0e0;border-radius:10px;display:flex;gap:16px;padding:16px;transition:all .2s ease}.team-member:hover{background:#f5fff5;border-color:#64dc5c}.member-icon{flex-shrink:0;font-size:40px}.member-info{display:flex;flex-direction:column;gap:4px}.member-role{color:#666;font-size:12px;font-weight:600;text-transform:uppercase}.member-name{color:#1a1a1a;font-size:16px;font-weight:700}.financial-breakdown{display:flex;flex-direction:column;gap:12px}.financial-row{align-items:center;background:#f9f9f9;border-radius:8px;display:flex;justify-content:space-between;padding:14px 16px}.financial-row.total{background:#e8f5e7;border:2px solid #64dc5c;font-size:18px;font-weight:700;margin-top:8px}.financial-label{color:#666;font-size:15px;font-weight:600}.financial-row.total .financial-label{color:#1a1a1a}.financial-amount{color:#1a1a1a;font-size:16px;font-weight:700}.consideraciones-list{display:flex;flex-direction:column;gap:12px}.consideracion-item{align-items:flex-start;background:#f9f9f9;border-left:4px solid #64dc5c;border-radius:8px;display:flex;gap:16px;padding:16px}.consideracion-number{align-items:center;background:#64dc5c;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:14px;font-weight:700;height:32px;justify-content:center;width:32px}.consideracion-text{color:#333;flex:1 1;font-size:14px;line-height:1.6;padding-top:4px}.plan-pagos-table{overflow-x:auto}.plan-pagos-table table{border-collapse:collapse;font-size:14px;width:100%}.plan-pagos-table thead{background:#f5f5f5}.plan-pagos-table th{border-bottom:2px solid #e0e0e0;color:#1a1a1a;font-weight:700;padding:12px}.plan-pagos-table td{border-bottom:1px solid #f0f0f0;color:#333;padding:12px}.plan-pagos-table tbody tr:hover{background:#fafafa}.plan-pagos-table tfoot{background:#e8f5e7;font-weight:700}.plan-pagos-table tfoot td{border-bottom:none;border-top:2px solid #64dc5c}.porcentaje-badge{background:#e3f2fd;border-radius:20px;color:#1976d2;font-size:13px;font-weight:700;padding:4px 12px}.valor-cell{color:#2d7a28;font-weight:700;text-align:right}.fechas-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.fecha-item{border:2px solid #e0e0e0;border-radius:10px;gap:16px;padding:16px}.fecha-icon{flex-shrink:0;font-size:32px}.fecha-content{display:flex;flex-direction:column;gap:4px}.fecha-value{font-size:15px;font-weight:700}.estado-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.estado-item{display:flex;flex-direction:column;gap:10px}.estado-item.alert{background:#fff3e0;border:2px solid #ff9800;border-radius:8px;padding:16px}.estado-badge{padding:10px 16px;text-align:center}.estado-badge.contratado_no_iniciado{background:#e3f2fd;color:#1976d2}.estado-badge.en_ejecucion{background:#e8f5e9;color:#388e3c}.estado-badge.en_pausa{background:#fff3e0;color:#f57c00}.estado-badge.finalizado{background:#f3e5f5;color:#7b1fa2}.estado-badge.cancelado{background:#ffebee;color:#c62828}.estado-grid .progress-container{align-items:center;display:flex;gap:12px}.estado-grid .progress-bar{background:#e0e0e0;border-radius:6px;flex:1 1;height:12px;overflow:hidden;position:relative}.estado-grid .progress-fill{background:linear-gradient(90deg,#64dc5c,#4caf50);border-radius:6px;height:100%;transition:width .5s ease}.estado-grid .progress-text{color:#1a1a1a;font-size:16px;font-weight:700;min-width:50px;position:static;text-align:right;transform:none}.capitulo-header .header-content{align-items:flex-start;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between}.capitulo-header .header-text{flex:1 1}.capitulo-header .header-actions{flex-shrink:0}.btn-editar{align-items:center;background:linear-gradient(135deg,#3b82f6,#2563eb);border-radius:10px;box-shadow:0 2px 8px #3b82f64d;display:flex;gap:8px;padding:12px 20px;transition:all .2s ease}.btn-editar:hover{box-shadow:0 4px 12px #3b82f666}.edit-actions{display:flex;gap:12px}.btn-cancelar{border-radius:10px;padding:12px 20px}.btn-cancelar:hover:not(:disabled){background:#f9fafb;border-color:#d1d5db}.btn-cancelar:disabled{cursor:not-allowed;opacity:.6}.btn-guardar{background:linear-gradient(135deg,#10b981,#059669);border-radius:10px;box-shadow:0 2px 8px #10b9814d;padding:12px 20px}.btn-guardar:hover:not(:disabled){box-shadow:0 4px 12px #10b98166}.btn-guardar:disabled{opacity:.7;transform:none}.spinner{border:3px solid #ffffff4d;border-top-color:#fff;display:inline-block;height:16px;width:16px}.mensaje-feedback{align-items:center;border-radius:8px;display:flex;font-size:14px;font-weight:600;gap:8px;margin-top:16px;padding:12px 16px}.mensaje-feedback.exito{background:#dcfce7;border:1px solid #86efac;color:#166534}.mensaje-feedback.error{background:#fef2f2;border:1px solid #fca5a5;color:#dc2626}.data-input{background:#fff;border:2px solid #e5e7eb;border-radius:8px;color:#1a1a1a;font-size:15px;font-weight:500;padding:10px 14px;transition:all .2s ease;width:100%}.data-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.data-input::placeholder{color:#9ca3af;font-weight:400}.input-with-suffix{align-items:center;display:flex;gap:0}.input-with-suffix .data-input{border-radius:8px 0 0 8px;border-right:none}.input-with-suffix .suffix{background:#f3f4f6;border:2px solid #e5e7eb;border-left:none;border-radius:0 8px 8px 0;color:#6b7280;font-size:14px;font-weight:600;padding:10px 14px}.team-member.editable{background:#fff;border-color:#3b82f6;border-style:dashed}.member-input{background:#fff;border:2px solid #e5e7eb;border-radius:6px;color:#1a1a1a;font-size:15px;font-weight:600;padding:8px 12px;transition:all .2s ease;width:100%}.member-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.member-input::placeholder{color:#9ca3af;font-weight:400}.fecha-item.editable{background:#fff;border-color:#3b82f6;border-style:dashed}.fecha-input{background:#fff;border:2px solid #e5e7eb;border-radius:6px;color:#1a1a1a;cursor:pointer;font-size:14px;font-weight:600;padding:8px 12px;transition:all .2s ease;width:100%}.fecha-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}@media (max-width:768px){.data-grid,.estado-grid,.fechas-grid,.team-grid{grid-template-columns:1fr}.plan-pagos-table{font-size:12px}.plan-pagos-table td,.plan-pagos-table th{padding:8px}.capitulo-header .header-content{align-items:stretch;flex-direction:column}.capitulo-header .header-actions{width:100%}.btn-editar{justify-content:center;width:100%}.edit-actions{flex-direction:column}.btn-cancelar,.btn-guardar{justify-content:center;width:100%}}.capitulo-tecnico{display:flex;flex-direction:column;gap:24px}.capitulo-tecnico-header{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;padding:24px}.header-icon{flex-shrink:0}.header-text p{line-height:1.5}.header-right{align-items:center;display:flex;gap:16px}.estado-badge{border-radius:8px;font-size:14px;font-weight:700;padding:10px 20px}.estado-badge.completado{background:#e8f5e9;color:#2e7d32}.estado-badge.en_progreso{background:#e3f2fd;color:#1565c0}.estado-badge.retrasado{background:#fff3e0;color:#e65100}.estado-badge.pendiente{background:#f5f5f5;color:#616161}.btn-actividades{background:#3b82f6;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:all .3s ease;white-space:nowrap}.btn-actividades:hover{background:#2563eb;box-shadow:0 4px 8px #3b82f666;transform:translateY(-2px)}.btn-editar{background:#64dc5c;border-radius:8px;color:#fff;font-size:14px;font-weight:600;padding:10px 20px;transition:all .3s ease;white-space:nowrap}.btn-editar:hover{background:#52c348;box-shadow:0 4px 8px #64dc5c4d;transform:translateY(-2px)}.progreso-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:24px}.progreso-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.progreso-label{color:#1a1a1a;font-size:15px;font-weight:600}.progreso-value{color:#64dc5c;font-size:24px;font-weight:700}.progreso-value.excede{color:#dc2626}.progreso-bar{background:#e0e0e0;border-radius:10px;height:20px;overflow:hidden;width:100%}.progreso-fill{background:linear-gradient(90deg,#64dc5c,#4caf50);border-radius:10px;transition:width .5s ease}.progreso-fill.excede{background:linear-gradient(90deg,#dc2626,#ef4444)}.presupuesto-section{background:#fff;border-left:4px solid #3b82f6;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:24px}.presupuesto-section.excede{background:linear-gradient(90deg,#fef2f2,#fff);border-left-color:#dc2626}.presupuesto-header{align-items:center;display:flex;gap:12px;margin-bottom:20px}.presupuesto-icono{align-items:center;background:linear-gradient(135deg,#3b82f6,#2563eb);border-radius:10px;color:#fff;display:flex;font-size:18px;font-weight:700;height:36px;justify-content:center;width:36px}.presupuesto-section.excede .presupuesto-icono{background:linear-gradient(135deg,#dc2626,#b91c1c)}.presupuesto-header h3{color:#1a1a1a;flex:1 1;font-size:16px;font-weight:600;margin:0}.alerta-exceso-badge{animation:pulse-red 2s infinite;background:#dc2626;border-radius:6px;color:#fff;font-size:12px;font-weight:600;padding:6px 12px}@keyframes pulse-red{0%,to{opacity:1}50%{opacity:.7}}.presupuesto-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,1fr);margin-bottom:16px}.presupuesto-grid.presupuesto-grid-5{grid-template-columns:repeat(5,1fr)}.presupuesto-item{background:#f8fafc;border-radius:8px;display:flex;flex-direction:column;gap:4px;padding:12px}.presupuesto-label{color:#6b7280;font-size:12px;font-weight:500;letter-spacing:.3px;text-transform:uppercase}.presupuesto-valor{color:#1a1a1a;font-size:16px;font-weight:700}.presupuesto-valor.porcentaje{color:#3b82f6}.presupuesto-valor.excede,.presupuesto-valor.negativo{color:#dc2626}.presupuesto-item.caja-menor-item{background:linear-gradient(135deg,#f3f4f6,#e5e7eb);border:1px solid #9ca3af}.presupuesto-valor.caja-menor{color:#4b5563}.presupuesto-barra-container{margin-top:8px}.presupuesto-barra{background:#e5e7eb;border-radius:5px;height:10px;overflow:hidden;width:100%}.presupuesto-barra-fill{background:linear-gradient(90deg,#3b82f6,#2563eb);border-radius:5px;height:100%;transition:width .5s ease}.presupuesto-barra-fill.excede{background:linear-gradient(90deg,#dc2626,#b91c1c)}@media (max-width:1200px){.presupuesto-grid.presupuesto-grid-5{grid-template-columns:repeat(3,1fr)}}@media (max-width:768px){.presupuesto-grid,.presupuesto-grid.presupuesto-grid-5{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.presupuesto-grid,.presupuesto-grid.presupuesto-grid-5{grid-template-columns:1fr}}.capitulo-content{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:24px}.info-section{margin-bottom:32px}.info-section:last-child{margin-bottom:0}.info-section h3{border-bottom:2px solid #f0f0f0;color:#1a1a1a;font-size:18px;font-weight:700;margin:0 0 20px;padding-bottom:12px}.fechas-comparison{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.fecha-col h4{border-bottom:2px solid #64dc5c;color:#1a1a1a;font-size:16px;font-weight:700;margin:0 0 16px;padding-bottom:8px}.fecha-item{align-items:center;background:#f9f9f9;border-radius:8px;display:flex;gap:12px;margin-bottom:12px;padding:12px}.fecha-label{color:#666;min-width:80px}.fecha-label,.fecha-value{font-size:14px;font-weight:600}.fecha-value{color:#1a1a1a;flex:1 1}.retraso-badge{border-radius:20px;font-size:12px;font-weight:700;padding:4px 12px;white-space:nowrap}.retraso-badge.warning{background:#ffebee;color:#c62828}.retraso-badge.success{background:#e8f5e9;color:#2e7d32}.actividades-list{display:flex;flex-direction:column;gap:12px;list-style:none;margin:0;padding:0}.actividad-item{align-items:flex-start;background:#f9f9f9;border-left:4px solid #64dc5c;border-radius:8px;display:flex;gap:12px;padding:12px 16px;transition:all .2s ease}.actividad-item:hover{background:#f0f0f0;transform:translateX(4px)}.actividad-icon{color:#64dc5c;flex-shrink:0;font-size:20px}.actividad-text{color:#333;font-size:14px;line-height:1.6}.notas-content{background:#fffbea;border-left:4px solid #ffc107;border-radius:8px;color:#333;font-size:14px;line-height:1.7;padding:16px;white-space:pre-wrap}.edit-form{display:flex;flex-direction:column;gap:24px}.form-section{border-bottom:2px solid #f0f0f0;padding-bottom:24px}.form-section:last-of-type{padding-bottom:0}.form-section h3{color:#1a1a1a;font-size:16px;font-weight:700;margin:0 0 20px}.form-grid{grid-gap:20px;gap:20px}.form-group input[type=date],.form-group input[type=text],.form-group textarea{border:2px solid #e0e0e0;border-radius:8px;font-family:inherit;font-size:14px;padding:12px;transition:all .3s ease}.form-group input:focus,.form-group textarea:focus{border-color:#64dc5c;box-shadow:0 0 0 3px #64dc5c1a;outline:none}.form-group textarea{min-height:100px}.progress-slider{-webkit-appearance:none;appearance:none;background:#e0e0e0;border-radius:4px;height:8px;outline:none;width:100%}.progress-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#64dc5c;border-radius:50%;box-shadow:0 2px 4px #0003;cursor:pointer;height:24px;width:24px}.progress-slider::-moz-range-thumb{background:#64dc5c;border:none;border-radius:50%;box-shadow:0 2px 4px #0003;cursor:pointer;height:24px;width:24px}.progress-display{color:#64dc5c;display:inline-block;font-size:18px;font-weight:700;margin-left:12px}.form-actions{gap:16px}.btn-cancelar,.btn-guardar{font-size:15px;font-weight:700;padding:14px 28px;transition:all .3s ease}.btn-guardar{background:#64dc5c;flex:1 1}.btn-guardar:hover{background:#52c348;box-shadow:0 4px 12px #64dc5c4d}.btn-cancelar{background:#e0e0e0;color:#333}.btn-cancelar:hover{background:#d0d0d0}@media (max-width:768px){.capitulo-tecnico-header,.header-left{align-items:flex-start;flex-direction:column}.header-right{justify-content:space-between;width:100%}.fechas-comparison,.form-grid{grid-template-columns:1fr}.form-actions{flex-direction:column}.btn-cancelar,.btn-guardar{width:100%}}.cronograma-proyecto{padding:20px}.cronograma-empty,.cronograma-loading{align-items:center;color:#6b7280;display:flex;flex-direction:column;justify-content:center;padding:60px 20px}.cronograma-loading .spinner{animation:spin 1s linear infinite;border:3px solid #e5e7eb;border-radius:50%;border-top-color:#3b82f6;height:40px;width:40px}.cronograma-empty .empty-icon{font-size:48px;margin-bottom:16px}.cronograma-empty h3{color:#374151;margin:0 0 8px}.cronograma-dashboard-modern{background:#fff;border-radius:16px;box-shadow:0 1px 3px #0000001a;margin-bottom:24px;padding:32px}.dashboard-main{border-bottom:1px solid #f3f4f6;flex-wrap:wrap;gap:40px;justify-content:space-between;margin-bottom:24px;padding-bottom:32px}.dashboard-main,.progress-hero{align-items:center;display:flex}.progress-hero{gap:24px}.progress-ring{height:100px;position:relative;width:100px}.progress-ring svg{height:100%;transform:rotate(-90deg);width:100%}.progress-ring .progress-bg{fill:none;stroke:#f3f4f6;stroke-width:8}.progress-ring .progress-fill{fill:none;stroke:#10b981;stroke-width:8;stroke-linecap:round;transition:stroke-dasharray .5s ease}.progress-text{align-items:baseline;display:flex;gap:2px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.progress-number{color:#111827;font-size:28px;font-weight:700;line-height:1}.progress-percent{color:#6b7280;font-size:14px;font-weight:600}.progress-info h2{color:#111827;font-size:20px;font-weight:600;margin:0 0 4px}.progress-subtitle{color:#6b7280;font-size:14px;margin:0}.dates-hero{align-items:center;display:flex;gap:24px}.date-block{background:#f9fafb;border-radius:12px;min-width:100px;padding:16px 24px;text-align:center}.date-block .date-label{color:#9ca3af;display:block;font-size:11px;font-weight:600;letter-spacing:.5px;margin-bottom:4px;text-transform:uppercase}.date-block .date-value{color:#111827;display:block;font-size:18px;font-weight:700}.date-block .date-year{color:#6b7280;display:block;font-size:12px;margin-top:2px}.date-block.start{border-left:3px solid #10b981}.date-block.end{border-left:3px solid #3b82f6}.date-arrow{color:#d1d5db}.date-arrow svg{height:32px;width:32px}.metrics-row{align-items:center;border-bottom:1px solid #f3f4f6;display:flex;gap:48px;justify-content:center;margin-bottom:24px;padding:24px 0}.metric-item{text-align:center}.metric-value{color:#111827;display:block;font-size:32px;font-weight:700;line-height:1.2}.metric-value.highlight{color:#3b82f6}.metric-value.danger{color:#ef4444}.metric-label{color:#6b7280;display:block;font-size:13px;margin-top:4px}.metric-divider{background:#e5e7eb;height:48px;width:1px}.current-activity{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border-left:4px solid #10b981;border-radius:12px;margin-bottom:24px;padding:16px 20px}.current-badge{align-items:center;display:flex;gap:8px;margin-bottom:8px}.current-badge span:last-child{color:#065f46;font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.pulse-dot{animation:pulse 2s infinite;background:#10b981;border-radius:50%;height:8px;width:8px}.current-name{color:#065f46;font-size:15px;font-weight:500;line-height:1.5;margin:0}.date-control{display:flex;justify-content:center}.btn-change-date{align-items:center;background:#f9fafb;border:1px dashed #d1d5db;border-radius:8px;color:#6b7280;cursor:pointer;display:flex;font-size:14px;gap:8px;padding:12px 20px;transition:all .2s}.btn-change-date:hover{background:#f3f4f6;border-color:#9ca3af;color:#374151}.btn-change-date svg{height:18px;width:18px}.date-editor{align-items:center;display:flex;flex-direction:column;gap:12px;max-width:400px;width:100%}.editor-label{color:#6b7280;font-size:13px}.date-editor input[type=date]{border:2px solid #e5e7eb;border-radius:8px;font-size:15px;padding:12px 16px;transition:border-color .2s;width:100%}.date-editor input[type=date]:focus{border-color:#3b82f6;outline:none}.editor-actions{display:flex;gap:12px}.btn-save{background:#10b981;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:background .2s}.btn-save:hover{background:#059669}.btn-save:disabled{background:#9ca3af;cursor:not-allowed}.btn-cancel{background:#fff;border:1px solid #e5e7eb;border-radius:8px;color:#6b7280;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s}.btn-cancel:hover{background:#f9fafb;border-color:#d1d5db}.cronograma-timeline{background:#fff;border-radius:16px;box-shadow:0 1px 3px #0000001a;margin-bottom:24px;padding:24px}.cronograma-timeline h3{color:#111827;font-size:16px;font-weight:600;margin:0 0 24px}.timeline-container,.timeline-item{position:relative}.timeline-item{display:flex;gap:20px;padding-bottom:16px}.timeline-item:last-child{padding-bottom:0}.timeline-item:last-child .connector-line.bottom{display:none}.timeline-connector{align-items:center;display:flex;flex-direction:column;flex-shrink:0;width:40px}.connector-line{background:#e5e7eb;flex:1 1;min-height:20px;width:2px}.connector-line.top{min-height:0}.timeline-item:first-child .connector-line.top{background:#0000}.connector-dot{align-items:center;background:#f3f4f6;border-radius:50%;color:#6b7280;display:flex;font-size:.85rem;font-weight:600;height:32px;justify-content:center;transition:all .3s;width:32px;z-index:1}.connector-dot.hito{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;font-size:1.2rem;height:40px;width:40px}.timeline-item.actual .connector-dot{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 0 0 4px #10b98133;color:#fff}.timeline-item.completado .connector-dot{background:#10b981;color:#fff}.timeline-item.completado .connector-line{background:#10b981}.timeline-item.en-progreso .connector-dot{background:#3b82f6;color:#fff}.timeline-item.retrasado .connector-dot{background:#ef4444;color:#fff}.timeline-item.pendiente .connector-dot{background:#f3f4f6;color:#6b7280}.timeline-content{background:#f9fafb;border-left:3px solid #e5e7eb;border-radius:12px;flex:1 1;padding:16px 20px;transition:all .3s}.timeline-item.actual .timeline-content{background:#ecfdf5;border-left-color:#10b981}.timeline-item.completado .timeline-content{border-left-color:#10b981}.timeline-item.en-progreso .timeline-content{border-left-color:#3b82f6}.timeline-item.retrasado .timeline-content{background:#fef2f2;border-left-color:#ef4444}.timeline-item.hito .timeline-content{background:#fffbeb;border-left-color:#f59e0b}.timeline-header{align-items:flex-start;display:flex;gap:12px;justify-content:space-between;margin-bottom:12px}.timeline-header h4{color:#374151;font-size:14px;font-weight:500;line-height:1.4;margin:0}.timeline-header h4.hito-title{color:#92400e;font-size:13px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.estado-badge{font-size:11px;font-weight:600;letter-spacing:.3px;text-transform:uppercase;white-space:nowrap}.estado-badge.actual{background:#10b981;color:#fff}.estado-badge.completado{background:#d1fae5;color:#065f46}.estado-badge.en-progreso{background:#dbeafe;color:#1e40af}.estado-badge.pendiente{background:#f3f4f6;color:#6b7280}.estado-badge.retrasado{background:#fee2e2;color:#991b1b}.timeline-dates{flex-wrap:wrap;gap:16px}.fecha-grupo,.timeline-dates{align-items:center;display:flex}.fecha-grupo{gap:6px}.fecha-label{color:#9ca3af;font-size:12px;text-transform:uppercase}.fecha-valor{color:#374151;font-size:13px;font-weight:500}.duracion-badge{background:#e0e7ff;border-radius:10px;color:#3730a3;font-size:12px;font-weight:600;padding:4px 10px}.btn-editar-actividad{background:#0000;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;font-size:14px;margin-left:auto;padding:4px 8px;transition:all .2s}.btn-editar-actividad:hover{background:#f3f4f6;border-color:#d1d5db}.indicador-actual{align-items:center;border-top:1px dashed #10b981;color:#065f46;display:flex;font-size:13px;font-weight:600;gap:8px;margin-top:12px;padding-top:12px}.pulse-indicator{animation:pulse 2s infinite;background:#10b981;border-radius:50%;height:10px;width:10px}.fecha-editor.inline{align-items:center;display:flex;gap:8px}.fecha-editor.inline input[type=date]{border:1px solid #d1d5db;border-radius:6px;font-size:13px;padding:6px 10px}.btn-cancelar-mini{align-items:center;background:#fee2e2;border:none;border-radius:50%;color:#991b1b;cursor:pointer;display:flex;font-size:12px;height:24px;justify-content:center;width:24px}.cronograma-leyenda{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;display:flex;flex-wrap:wrap;gap:20px;padding:16px 20px}.leyenda-item{align-items:center;color:#6b7280;display:flex;font-size:13px;gap:8px}.leyenda-color{border-radius:4px;height:14px;width:14px}.leyenda-color.actual{background:#10b981;box-shadow:0 0 0 3px #10b98133}.leyenda-color.completado{background:#10b981}.leyenda-color.en-progreso{background:#3b82f6}.leyenda-color.pendiente{background:#e5e7eb}.leyenda-color.retrasado{background:#ef4444}.leyenda-dot.hito{font-size:1rem}@media (max-width:900px){.dashboard-main{align-items:flex-start;flex-direction:column;gap:24px}.dates-hero{justify-content:center;width:100%}.metrics-row{flex-wrap:wrap;gap:24px}.metric-divider{display:none}.metric-item{flex:1 1;min-width:100px}}@media (max-width:600px){.cronograma-dashboard-modern{padding:20px}.progress-hero{flex-direction:column;text-align:center}.dates-hero{flex-direction:column;gap:12px}.date-arrow{transform:rotate(90deg)}.date-block{width:100%}.metrics-row{flex-direction:column;gap:16px}.metric-item{background:#f9fafb;border-radius:8px;padding:16px;width:100%}.timeline-content{padding:12px 16px}.timeline-dates,.timeline-header{align-items:flex-start;flex-direction:column}.timeline-dates{gap:8px}.btn-editar-actividad{margin-left:0;margin-top:8px}.cronograma-leyenda{gap:12px}}.btn-insertar-actividad{align-items:center;background:#0000;border:2px dashed #d1d5db;border-radius:8px;color:#9ca3af;cursor:pointer;display:flex;font-size:14px;gap:8px;justify-content:center;margin:8px 0;padding:8px 16px;transition:all .2s ease;width:100%}.btn-insertar-actividad:hover{background:#eff6ff;border-color:#3b82f6;color:#3b82f6}.btn-insertar-actividad span:first-child{font-size:18px;font-weight:600}.btn-insertar-actividad .insertar-texto{font-size:13px}.btn-insertar-actividad.inicio{margin-bottom:16px}.fecha-editor-completo{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;display:flex;flex-direction:column;gap:12px;padding:16px;width:100%}.fecha-editor-completo .editor-row{align-items:center;display:flex;gap:12px}.fecha-editor-completo .editor-row label{color:#64748b;font-size:13px;min-width:140px}.fecha-editor-completo .editor-row input[type=date],.fecha-editor-completo .editor-row input[type=number]{border:1px solid #cbd5e1;border-radius:6px;flex:1 1;font-size:14px;max-width:180px;padding:8px 12px}.fecha-editor-completo .editor-row input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.btn-aplicar-duracion{background:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;padding:8px 16px;transition:background .2s}.btn-aplicar-duracion:hover:not(:disabled){background:#2563eb}.btn-aplicar-duracion:disabled{background:#94a3b8;cursor:not-allowed}.fecha-editor-completo .btn-cancelar-mini{align-self:flex-start;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;color:#64748b;cursor:pointer;font-size:13px;padding:6px 14px}.fecha-editor-completo .btn-cancelar-mini:hover{background:#e2e8f0}.modal-insertar-actividad{background:#fff;border-radius:16px;box-shadow:0 25px 50px -12px #00000040;max-width:480px;overflow:hidden;width:90%}.modal-insertar-actividad .modal-header{align-items:center;background:linear-gradient(135deg,#3b82f6,#2563eb);border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:20px 24px}.modal-insertar-actividad .modal-header h3{color:#fff;font-size:18px;font-weight:600;margin:0}.modal-insertar-actividad .btn-cerrar{align-items:center;background:#fff3;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:20px;height:32px;justify-content:center;width:32px}.modal-insertar-actividad .btn-cerrar:hover{background:#ffffff4d}.modal-insertar-actividad .modal-body{padding:24px}.modal-insertar-actividad .modal-info{background:#fef3c7;border-radius:8px;color:#92400e;font-size:13px;line-height:1.5;margin:0 0 20px;padding:12px 16px}.modal-insertar-actividad .form-group{margin-bottom:16px}.modal-insertar-actividad .form-group label{color:#374151;display:block;font-size:14px;font-weight:500;margin-bottom:8px}.modal-insertar-actividad .form-group input{border:1px solid #d1d5db;border-radius:8px;font-size:14px;padding:12px 14px;transition:border-color .2s,box-shadow .2s;width:100%}.modal-insertar-actividad .form-group input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.modal-insertar-actividad .form-group input[type=number]{max-width:150px}.modal-insertar-actividad .modal-footer{background:#f9fafb;border-top:1px solid #e5e7eb;display:flex;gap:12px;justify-content:flex-end;padding:16px 24px}.modal-insertar-actividad .btn-cancelar{background:#fff;border:1px solid #d1d5db;border-radius:8px;color:#374151;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s}.modal-insertar-actividad .btn-cancelar:hover:not(:disabled){background:#f3f4f6}.modal-insertar-actividad .btn-guardar{background:#3b82f6;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 24px;transition:all .2s}.modal-insertar-actividad .btn-guardar:hover:not(:disabled){background:#2563eb}.modal-insertar-actividad .btn-guardar:disabled{background:#9ca3af;cursor:not-allowed}.cronograma-proyecto .modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.facturas-proyecto{display:flex;flex-direction:column;gap:24px}.facturas-proyecto-loading{align-items:center;display:flex;flex-direction:column;gap:16px;justify-content:center;min-height:300px}.facturas-proyecto-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;margin-bottom:8px}.facturas-proyecto-header .header-info h2{align-items:center;color:#1a1a1a;display:flex;font-size:28px;font-weight:700;gap:10px;margin:0 0 8px}.facturas-proyecto-header .header-info h2 svg{color:#64dc5c}.proyecto-nombre{color:#666;font-size:15px;margin:0}.btn-nueva-factura{align-items:center;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:10px;box-shadow:0 2px 8px #10b9814d;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;padding:12px 20px;transition:all .2s ease}.btn-nueva-factura:hover{box-shadow:0 4px 12px #10b98166;transform:translateY(-2px)}.btn-nueva-factura svg{flex-shrink:0}.facturas-stats-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.stat-box{align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 2px 8px #00000014;display:flex;gap:16px;padding:20px;transition:transform .2s ease}.stat-box:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.stat-label{font-size:.8rem;letter-spacing:.3px;text-transform:uppercase}.stat-box.total{border-left:4px solid #3b82f6}.stat-box.monto{border-left:4px solid #f59e0b}.stat-box.pagado{border-left:4px solid #10b981}.stat-box.pendiente{border-left:4px solid #ef4444}.presupuesto-comparacion{box-shadow:0 2px 8px #00000014}.presupuesto-comparacion h3{border-bottom:2px solid #f0f0f0;color:#1a1a1a;font-size:18px;font-weight:700;padding-bottom:12px}.comparacion-item{background:#f9f9f9;padding:14px 16px}.comparacion-item .label{font-size:14px}.comparacion-item .value{color:#1a1a1a;font-size:1rem}.comparacion-item .value.positivo{color:#10b981}.comparacion-item .value.negativo{color:#ef4444}.comparacion-progress .progress-bar{background:#e0e0e0;border-radius:6px;height:12px;overflow:hidden;width:100%}.comparacion-progress .progress-fill{border-radius:6px;height:100%;transition:width .5s ease}.progress-label{font-size:.85rem}.facturas-filtros{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;padding:20px 24px}.filtros-estados{display:flex;flex-wrap:wrap;gap:8px}.filtro-btn{border:2px solid #e5e7eb;color:#4b5563;font-size:.85rem;padding:10px 16px}.agrupar-selector{align-items:center;display:flex;gap:12px}.agrupar-selector label{color:#666;font-size:14px;font-weight:600}.agrupar-selector select{background:#fff;border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;font-size:.9rem;padding:10px 16px;transition:all .2s ease}.agrupar-selector select:focus{border-color:#64dc5c;box-shadow:0 0 0 3px #64dc5c1a;outline:none}.facturas-grupos{display:flex;flex-direction:column;gap:24px}.grupo-facturas{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;overflow:hidden}.grupo-header{background:#f9f9f9;border-bottom:2px solid #f0f0f0;padding:20px 24px}.grupo-header h3{align-items:center;color:#1a1a1a;display:flex;font-size:16px;font-weight:700;gap:12px;margin:0 0 12px}.proveedor-icon{font-size:1.5rem}.grupo-stats{display:flex;flex-wrap:wrap;gap:24px}.grupo-stat{color:#666;font-size:.9rem}.grupo-stat strong{color:#1a1a1a;margin-right:4px}.grupo-stat.pendiente,.grupo-stat.pendiente strong{color:#ef4444}.facturas-lista{display:flex;flex-direction:column;gap:12px;padding:16px 24px}.factura-item{background:#fafafa;border:2px solid #e5e7eb;border-radius:10px;padding:16px;transition:all .2s ease}.factura-item:hover{box-shadow:0 4px 12px #00000014;transform:translateY(-2px)}.factura-item.pendiente{border-left:4px solid #f59e0b}.factura-item.pagado_parcial{border-left:4px solid #3b82f6}.factura-item.pagado{border-left:4px solid #10b981}.factura-item.vencido{background:#fef2f2;border-left:4px solid #ef4444}.factura-item-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:12px;padding-bottom:12px}.factura-numero strong{color:#1a1a1a;font-size:1.1rem}.badge-estado{font-size:.8rem}.badge-estado.pendiente{background:#fef3c7;color:#d97706}.badge-estado.pagado_parcial{background:#dbeafe;color:#2563eb}.badge-estado.pagado{background:#dcfce7;color:#16a34a}.badge-estado.vencido{background:#fecaca;color:#dc2626}.dias-vencido{color:#ef4444;font-size:.85rem;font-weight:600}.factura-item-body{display:flex;flex-direction:column;gap:12px}.factura-info-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.info-col{display:flex;flex-direction:column;gap:4px}.info-label{color:#666;font-size:.8rem;font-weight:600}.info-value{color:#1a1a1a;font-size:.95rem}.info-value.strong{color:#10b981;font-size:1.05rem;font-weight:700}.info-value.pendiente{color:#ef4444;font-weight:600}.factura-descripcion{background:#fff;border-left:3px solid #64dc5c;border-radius:8px;display:flex;gap:8px;padding:12px}.descripcion-label{font-size:1.2rem}.factura-descripcion p{color:#666;font-size:.9rem;line-height:1.5;margin:0}.empty-state h3{font-size:18px}.badge-capitulo{background:#e0f2fe;border-radius:8px;color:#0369a1;font-size:.75rem;font-weight:600;padding:4px 10px;white-space:nowrap}.factura-actions{align-items:center;display:flex;gap:12px}.btn-ver-factura{background:#f0f0f0;border:2px solid #e0e0e0;border-radius:6px;color:#666;cursor:pointer;font-size:.8rem;font-weight:600;padding:6px 12px;transition:all .2s ease}.btn-ver-factura:hover{background:#64dc5c;border-color:#64dc5c;color:#fff}.modal-detalle-factura{background:#fff;border-radius:16px;box-shadow:0 20px 40px #0003;max-height:90vh;max-width:700px;overflow-y:auto;width:100%}.modal-detalle-factura .modal-header{align-items:center;background:#fff;border-bottom:2px solid #f0f0f0;display:flex;justify-content:space-between;padding:20px 24px;position:-webkit-sticky;position:sticky;top:0;z-index:10}.modal-detalle-factura .modal-header h2{color:#1a1a1a;font-size:1.25rem;font-weight:700;margin:0}.modal-detalle-factura .modal-close{align-items:center;background:#f0f0f0;border:none;border-radius:50%;color:#666;cursor:pointer;display:flex;font-size:1.5rem;height:36px;justify-content:center;transition:all .2s;width:36px}.modal-detalle-factura .modal-close:hover{background:#ef4444;color:#fff}.modal-detalle-factura .modal-body{display:flex;flex-direction:column;gap:24px;padding:24px}.modal-detalle-factura .modal-footer{border-top:2px solid #f0f0f0;justify-content:flex-end;padding:16px 24px}.modal-detalle-factura .btn-cerrar{background:#f0f0f0;border:none;border-radius:8px;color:#666;cursor:pointer;font-size:.9rem;font-weight:600;padding:10px 24px;transition:all .2s}.modal-detalle-factura .btn-cerrar:hover{background:#e0e0e0}.detalle-section{background:#f9f9f9;border-radius:12px;padding:20px}.detalle-section h3{border-bottom:2px solid #e0e0e0;color:#1a1a1a;font-size:1rem;font-weight:700;margin:0 0 16px;padding-bottom:12px}.detalle-section.capitulo{background:#e0f2fe;border:2px solid #0369a1}.detalle-section.capitulo h3{border-bottom-color:#0369a1;color:#0369a1}.detalle-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(2,1fr)}.detalle-item{flex-direction:column;gap:4px}.detalle-item.full{grid-column:span 2}.detalle-label{color:#666;font-size:.8rem;text-transform:uppercase}.detalle-value{color:#1a1a1a;font-size:.95rem}.detalle-value.strong{font-size:1.05rem}.detalle-section.montos{background:#fff;border:2px solid #e0e0e0}.montos-grid{display:flex;flex-direction:column;gap:12px}.monto-item{align-items:center;background:#f9f9f9;border-radius:8px;display:flex;justify-content:space-between;padding:10px 16px}.monto-item.total{background:#10b981;color:#fff}.monto-item.total .monto-label,.monto-item.total .monto-value{color:#fff;font-weight:700}.monto-label{color:#666;font-size:.9rem}.monto-value{color:#1a1a1a;font-size:1rem;font-weight:600}.retenciones-detalle{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-top:16px;padding:16px}.retenciones-detalle h4{color:#dc2626;font-size:.9rem;font-weight:600;margin:0 0 12px}.retenciones-grid{display:flex;flex-direction:column;gap:8px}.retencion-item{font-size:.9rem}.retencion-item .negativo{color:#dc2626;font-weight:600}.neto-pagar{align-items:center;background:#064e3b;border-radius:8px;color:#fff;display:flex;justify-content:space-between;margin-top:16px;padding:16px}.neto-label{font-size:1rem;font-weight:600}.neto-value{font-size:1.25rem;font-weight:700}.estado-pago{border-top:2px solid #e0e0e0;display:flex;justify-content:space-between;margin-top:16px;padding-top:16px}.pago-item{display:flex;flex-direction:column;gap:4px}.pago-item span:first-child{color:#666;font-size:.8rem;font-weight:600}.pago-item .positivo{color:#10b981;font-size:1.1rem;font-weight:700}.pago-item .negativo{color:#ef4444;font-size:1.1rem;font-weight:700}.detalle-section.notas{background:#fffbeb;border:2px solid #fbbf24}.detalle-section.notas h3{border-bottom-color:#fbbf24}.nota-item{margin-bottom:12px}.nota-item:last-child{margin-bottom:0}.nota-item strong{color:#92400e;display:block;font-size:.85rem;margin-bottom:4px}.nota-item p{color:#78350f;font-size:.9rem;line-height:1.5;margin:0}@media (max-width:768px){.facturas-proyecto-header{align-items:stretch;flex-direction:column}.btn-nueva-factura{justify-content:center;width:100%}.facturas-stats-grid{grid-template-columns:1fr 1fr}.facturas-filtros{align-items:stretch}.facturas-filtros,.filtros-estados{flex-direction:column}.filtro-btn{text-align:center;width:100%}.agrupar-selector{justify-content:space-between}.agrupar-selector select{flex:1 1}.factura-info-grid{grid-template-columns:1fr}.grupo-stats{flex-direction:column;gap:8px}.factura-item-header{align-items:flex-start;flex-direction:column;gap:12px}.factura-numero{flex-wrap:wrap}.factura-actions{justify-content:space-between;width:100%}.modal-detalle-factura{border-radius:12px;max-height:95vh}.detalle-grid{grid-template-columns:1fr}.detalle-item.full{grid-column:span 1}.estado-pago{flex-direction:column;gap:12px}}.factura-item-footer{align-items:center;border-top:1px dashed #e5e7eb;display:flex;gap:12px;margin-top:12px;padding-top:12px}.btn-eliminar-factura{border-radius:6px;display:inline-flex;font-size:.8rem;font-weight:500;gap:6px;padding:6px 12px}.detalle-section.adjunto{background:#eff6ff;border-color:#bfdbfe}.btn-ver-adjunto-modal{align-items:center;background:#fff;border:2px solid #bfdbfe;border-radius:8px;color:#2563eb;cursor:pointer;display:inline-flex;font-size:.9rem;font-weight:600;gap:10px;padding:12px 20px;transition:all .2s ease}.btn-ver-adjunto-modal:hover{background:#dbeafe;border-color:#3b82f6}.btn-ver-adjunto-modal svg{color:#3b82f6}.btn-eliminar-factura-modal{align-items:center;background:#fee2e2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;cursor:pointer;display:inline-flex;font-size:.9rem;font-weight:600;gap:8px;padding:10px 20px;transition:all .2s ease}.btn-eliminar-factura-modal:hover:not(:disabled){background:#fecaca;border-color:#f87171}.btn-eliminar-factura-modal:disabled{cursor:not-allowed;opacity:.6}.modal-detalle-factura .modal-footer{display:flex;gap:12px;justify-content:space-between}.modal-detalle-factura .modal-footer .btn-cerrar{margin-left:auto}.fecha-vencimiento-col{display:flex;flex-direction:column;gap:4px}.fecha-vencimiento-container{gap:8px}.btn-editar-fecha{font-size:12px;height:24px;width:24px}.editar-fecha-inline{gap:6px}.input-fecha-vencimiento{font-size:13px}.btn-cancelar-fecha,.btn-guardar-fecha{font-size:14px;font-weight:700;height:26px;width:26px}.fecha-vencimiento-modal .fecha-vencimiento-container{margin-top:4px}.fecha-vencimiento-modal .detalle-value{display:inline}.modal-crear-factura-proyecto{background:#fff;border-radius:16px;box-shadow:0 25px 50px -12px #00000040;max-height:95vh;max-width:1800px;min-width:1400px;overflow-y:auto;width:98vw}.modal-crear-factura-proyecto .modal-header{align-items:center;background:linear-gradient(135deg,#3b82f6,#2563eb);border-bottom:1px solid #e5e7eb;border-radius:16px 16px 0 0;display:flex;justify-content:space-between;padding:16px 24px;position:-webkit-sticky;position:sticky;top:0;z-index:10}.modal-crear-factura-proyecto .modal-header h2{color:#fff;font-size:1.15rem;font-weight:600;margin:0}.modal-crear-factura-proyecto .modal-close{align-items:center;background:#fff3;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;height:32px;justify-content:center;transition:background .2s;width:32px}.modal-crear-factura-proyecto .modal-close:hover{background:#ffffff4d}.proyecto-info-fijo{align-items:center;background:linear-gradient(135deg,#eff6ff,#dbeafe);border-bottom:1px solid #93c5fd;display:flex;gap:12px;padding:12px 24px}.proyecto-badge{align-items:center;color:#1e40af;display:flex;font-size:.85rem;gap:6px}.proyecto-badge svg{color:#3b82f6}.proyecto-info-fijo strong{color:#1e40af;font-size:.95rem}.modal-crear-factura-proyecto .factura-form{display:flex;flex-direction:column;padding:0}.modal-crear-factura-proyecto .form-section-top{grid-gap:0;display:grid;gap:0;grid-template-columns:1fr 1fr}.modal-crear-factura-proyecto .form-section-top>.form-section{border-bottom:none;border-right:1px solid #f3f4f6}.modal-crear-factura-proyecto .form-section-top>.form-section:last-child{border-right:none}.modal-crear-factura-proyecto .form-section-main{grid-gap:0;border-top:1px solid #e5e7eb;display:grid;gap:0;grid-template-columns:1.6fr 1fr}.modal-crear-factura-proyecto .form-section{border-bottom:1px solid #f3f4f6;padding:16px 20px}.modal-crear-factura-proyecto .form-section:last-of-type{border-bottom:none}.modal-crear-factura-proyecto .form-section h4{align-items:center;color:#374151;display:flex;font-size:.9rem;font-weight:600;gap:8px;margin:0 0 12px}.modal-crear-factura-proyecto .form-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,1fr)}.modal-crear-factura-proyecto .form-group{display:flex;flex-direction:column;gap:4px}.modal-crear-factura-proyecto .form-group label{color:#374151;font-size:.75rem;font-weight:600;letter-spacing:.3px;text-transform:uppercase}.modal-crear-factura-proyecto .form-group input,.modal-crear-factura-proyecto .form-group select,.modal-crear-factura-proyecto .form-group textarea{background:#fff;border:1.5px solid #e5e7eb;border-radius:6px;font-size:.9rem;padding:8px 12px;transition:all .2s}.modal-crear-factura-proyecto .form-group input:focus,.modal-crear-factura-proyecto .form-group select:focus,.modal-crear-factura-proyecto .form-group textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a;outline:none}.modal-crear-factura-proyecto .form-group input.error{border-color:#ef4444}.modal-crear-factura-proyecto .form-group input:disabled{background:#f9fafb;color:#6b7280}.modal-crear-factura-proyecto .error-message{color:#ef4444;font-size:.7rem}.proveedor-selector{position:relative}.busqueda-proveedor input{border:2px solid #e5e7eb;border-radius:8px;font-size:.9rem;padding:10px 36px 10px 12px;transition:all .2s;width:100%}.busqueda-proveedor input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.busqueda-proveedor input.error{border-color:#ef4444}.btn-limpiar-busqueda{background:#f3f4f6;color:#6b7280;height:22px;right:10px;transition:all .2s;width:22px}.btn-limpiar-busqueda:hover{background:#e5e7eb;color:#374151}.lista-proveedores-dropdown{background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 10px 25px #00000026;left:0;margin-top:4px;max-height:250px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:100}.proveedor-opcion{border-bottom:1px solid #f3f4f6;cursor:pointer;padding:10px 14px;transition:background .15s}.proveedor-opcion:last-child{border-bottom:none}.proveedor-opcion:hover{background:#f0f9ff}.proveedor-opcion-info{align-items:center;display:flex;justify-content:space-between;margin-bottom:4px}.proveedor-opcion-nombre{color:#1f2937;font-size:.9rem;font-weight:600}.proveedor-opcion-nit{color:#6b7280;font-size:.75rem}.proveedor-opcion-retenciones{display:flex;flex-wrap:wrap;gap:4px}.mini-badge-retencion{background:#dbeafe;border-radius:8px;color:#1e40af;font-size:.65rem;padding:2px 6px}.proveedor-seleccionado-info{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border:1px solid #86efac;border-radius:8px;margin-top:10px;padding:12px}.proveedor-seleccionado-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:6px}.proveedor-seleccionado-header strong{color:#166534;font-size:.9rem}.proveedor-nit{color:#16a34a;font-size:.8rem}.proveedor-retenciones-lista{display:flex;flex-wrap:wrap;gap:6px}.badge-retencion{background:#fff;border:1px solid #86efac;border-radius:16px;color:#166534;font-size:.75rem;padding:3px 10px}.badge-retencion.principal{background:#166534;border-color:#166534;color:#fff}.sin-retencion-badge{color:#9ca3af;font-size:.8rem;font-style:italic}.modal-crear-factura-proyecto .form-section-items{background:#fafbfc;border-bottom:none;border-right:1px solid #e5e7eb}.modal-crear-factura-proyecto .section-hint{color:#6b7280;font-size:.8rem;margin:-8px 0 12px}.modal-crear-factura-proyecto .nuevo-item-form{background:#fff;border:2px dashed #d1d5db;border-radius:10px;margin-bottom:12px;padding:12px}.modal-crear-factura-proyecto .nuevo-item-row{align-items:flex-end;display:flex;flex-wrap:wrap;gap:8px}.modal-crear-factura-proyecto .nuevo-item-row .form-group{margin-bottom:0}.modal-crear-factura-proyecto .nuevo-item-row .item-descripcion{flex:2 1;min-width:160px}.modal-crear-factura-proyecto .nuevo-item-row .item-cantidad{width:65px}.modal-crear-factura-proyecto .nuevo-item-row .item-unidad,.modal-crear-factura-proyecto .nuevo-item-row .item-valor{width:100px}.modal-crear-factura-proyecto .nuevo-item-row .item-iva{width:70px}.modal-crear-factura-proyecto .btn-agregar-item{align-items:center;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-weight:600;height:36px;transition:all .2s;white-space:nowrap}.modal-crear-factura-proyecto .btn-agregar-item:hover:not(:disabled){box-shadow:0 4px 12px #10b9814d;transform:translateY(-1px)}.modal-crear-factura-proyecto .btn-agregar-item:disabled{cursor:not-allowed;opacity:.5}.modal-crear-factura-proyecto .items-lista{background:#fff;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}.modal-crear-factura-proyecto .items-header{grid-gap:6px;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-bottom:2px solid #e5e7eb;color:#64748b;display:grid;font-size:.65rem;font-weight:700;gap:6px;grid-template-columns:2fr 60px 70px 90px 50px 100px 36px;letter-spacing:.3px;padding:8px 10px;text-transform:uppercase}.modal-crear-factura-proyecto .items-header span:not(:first-child){text-align:right}.modal-crear-factura-proyecto .item-row{grid-gap:6px;align-items:center;border-bottom:1px solid #f3f4f6;display:grid;font-size:.8rem;gap:6px;grid-template-columns:2fr 60px 70px 90px 50px 100px 36px;padding:8px 10px;transition:background .15s}.modal-crear-factura-proyecto .item-row:hover{background:#f8fafc}.modal-crear-factura-proyecto .item-row:last-child{border-bottom:none}.modal-crear-factura-proyecto .item-row .col-descripcion{align-items:center;color:#1f2937;display:flex;font-size:.78rem;font-weight:500;gap:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-crear-factura-proyecto .item-numero{color:#9ca3af;font-size:.75rem;font-weight:600}.modal-crear-factura-proyecto .item-row .col-acciones,.modal-crear-factura-proyecto .item-row .col-cantidad,.modal-crear-factura-proyecto .item-row .col-subtotal,.modal-crear-factura-proyecto .item-row .col-valor{text-align:right}.modal-crear-factura-proyecto .item-row .col-iva,.modal-crear-factura-proyecto .item-row .col-unidad{color:#6b7280;font-size:.75rem;text-align:right}.modal-crear-factura-proyecto .item-row .col-subtotal{color:#059669;font-weight:600}.modal-crear-factura-proyecto .input-editable{background:#f9fafb;border:1px solid #e5e7eb;border-radius:4px;box-sizing:border-box;font-size:.75rem;max-width:100%;padding:4px 5px;text-align:right;transition:all .2s;width:100%}.modal-crear-factura-proyecto .input-editable:focus{background:#fff;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a;outline:none}.modal-crear-factura-proyecto .btn-eliminar-item{align-items:center;background:#fee2e2;border:none;border-radius:4px;color:#dc2626;cursor:pointer;display:flex;justify-content:center;margin-left:auto;padding:4px;transition:all .2s}.modal-crear-factura-proyecto .btn-eliminar-item:hover{background:#fecaca}.modal-crear-factura-proyecto .items-totales{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border-top:2px solid #86efac;padding:12px}.modal-crear-factura-proyecto .items-totales .total-linea{color:#374151;display:flex;font-size:.85rem;gap:16px;justify-content:flex-end;padding:3px 0}.modal-crear-factura-proyecto .items-totales .total-label{min-width:100px;text-align:right}.modal-crear-factura-proyecto .items-totales .total-valor{font-weight:600;min-width:100px;text-align:right}.modal-crear-factura-proyecto .items-totales .total-final{border-top:2px solid #86efac;margin-top:4px;padding-top:6px}.modal-crear-factura-proyecto .items-totales .total-final .total-label,.modal-crear-factura-proyecto .items-totales .total-final .total-valor{color:#166534;font-size:.95rem;font-weight:700}.modal-crear-factura-proyecto .items-empty{align-items:center;background:#fff;border:2px dashed #e5e7eb;border-radius:8px;display:flex;flex-direction:row;gap:10px;justify-content:center;padding:16px;text-align:center}.modal-crear-factura-proyecto .items-empty svg{color:#d1d5db;flex-shrink:0}.modal-crear-factura-proyecto .items-empty p{color:#9ca3af;font-size:.8rem;margin:0}.modal-crear-factura-proyecto .form-section-resumen{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border-left:2px solid #86efac;display:flex;flex-direction:column;padding:16px}.modal-crear-factura-proyecto .form-section-resumen h4{align-items:center;color:#059669;display:flex;font-size:1rem;gap:8px;margin-bottom:12px}.modal-crear-factura-proyecto .form-section-resumen h4 svg{color:#10b981}.modal-crear-factura-proyecto .form-section-resumen .section-hint.alerta{align-items:center;background:#fef3c7;border:1px solid #fbbf24;border-radius:6px;color:#92400e;display:flex;font-size:.8rem;gap:6px;margin-bottom:12px;padding:8px 12px}.modal-crear-factura-proyecto .valores-resumen-unico{background:#fff;border:2px solid #86efac;border-radius:10px;box-shadow:0 4px 12px #10b9811a;flex:1 1;padding:16px}.modal-crear-factura-proyecto .valores-resumen-unico .resumen-linea{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;font-size:.9rem;justify-content:space-between;padding:8px 0}.modal-crear-factura-proyecto .valores-resumen-unico .resumen-linea:last-child{border-bottom:none}.modal-crear-factura-proyecto .valores-resumen-unico .resumen-linea.total{border-bottom:2px solid #10b981;color:#1f2937;font-size:1rem;font-weight:700;padding:10px 0}.modal-crear-factura-proyecto .valores-resumen-unico .resumen-separador{height:12px}.modal-crear-factura-proyecto .valores-resumen-unico .resumen-seccion-titulo{border-bottom:1px dashed #d1d5db;color:#6b7280;font-size:.8rem;font-weight:600;letter-spacing:.5px;margin-bottom:6px;padding-bottom:6px;text-transform:uppercase}.modal-crear-factura-proyecto .valores-resumen-unico .resumen-linea.retencion{color:#dc2626;font-size:.85rem;padding:6px 0}.modal-crear-factura-proyecto .valores-resumen-unico .resumen-linea.retencion span:last-child{font-weight:500}.modal-crear-factura-proyecto .valores-resumen-unico .resumen-linea.otras-retenciones-input{align-items:center;display:flex;gap:10px;padding:8px 0}.modal-crear-factura-proyecto .valores-resumen-unico .resumen-linea.otras-retenciones-input label{color:#dc2626;font-size:.85rem;white-space:nowrap}.modal-crear-factura-proyecto .valores-resumen-unico .resumen-linea.otras-retenciones-input input{background:#fef2f2;border:1px solid #fca5a5;border-radius:4px;color:#dc2626;font-size:.85rem;font-weight:500;margin-left:auto;padding:6px 10px;text-align:right;width:110px}.modal-crear-factura-proyecto .valores-resumen-unico .resumen-linea.otras-retenciones-input input:focus{border-color:#ef4444;box-shadow:0 0 0 2px #ef44441a;outline:none}.modal-crear-factura-proyecto .valores-resumen-unico .resumen-linea.total-retenciones{background:#fef2f2;border-bottom:none;color:#dc2626;font-weight:600;margin:6px -16px;padding:10px 16px}.modal-crear-factura-proyecto .valores-resumen-unico .resumen-linea.neto{border-bottom:none;border-top:3px solid #10b981;color:#059669;font-size:1.1rem;font-weight:700;margin-top:8px;padding:12px 0 6px}.modal-crear-factura-proyecto .valores-resumen-unico .resumen-linea.neto span:last-child{color:#047857;font-size:1.2rem}.modal-crear-factura-proyecto .form-section-adicional{background:#f9fafb;border-top:1px solid #e5e7eb;padding:12px 16px}.modal-crear-factura-proyecto .form-section-adicional .form-row{grid-template-columns:repeat(3,1fr)}.modal-crear-factura-proyecto .form-section-adicional textarea{min-height:50px;resize:vertical}.modal-crear-factura-proyecto .modal-footer{background:#f9fafb;border-radius:0 0 16px 16px;border-top:1px solid #e5e7eb;bottom:0;display:flex;gap:10px;justify-content:flex-end;padding:14px 20px;position:-webkit-sticky;position:sticky}.modal-crear-factura-proyecto .btn-cancelar{background:#fff;border:2px solid #e5e7eb;border-radius:6px;color:#6b7280;cursor:pointer;font-size:.9rem;font-weight:600;padding:8px 20px;transition:all .2s}.modal-crear-factura-proyecto .btn-cancelar:hover{background:#f9fafb;border-color:#d1d5db}.modal-crear-factura-proyecto .btn-guardar{background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:8px 20px;transition:all .2s}.modal-crear-factura-proyecto .btn-guardar:hover:not(:disabled){box-shadow:0 4px 12px #10b9814d;transform:translateY(-1px)}.modal-crear-factura-proyecto .btn-guardar:disabled{cursor:not-allowed;opacity:.6}@media (max-width:1200px){.modal-crear-factura-proyecto .form-section-top{grid-template-columns:1fr}.modal-crear-factura-proyecto .form-section-top>.form-section{border-bottom:1px solid #f3f4f6;border-right:none}.modal-crear-factura-proyecto .form-section-main{grid-template-columns:1fr}.modal-crear-factura-proyecto .form-section-items{border-bottom:1px solid #e5e7eb;border-right:none}.modal-crear-factura-proyecto .form-section-resumen{border-left:none;border-top:2px solid #86efac}}@media (max-width:768px){.modal-crear-factura-proyecto{border-radius:0;max-height:100vh;width:100%}.modal-crear-factura-proyecto .modal-header{border-radius:0}.modal-crear-factura-proyecto .form-row,.modal-crear-factura-proyecto .form-section-adicional .form-row{grid-template-columns:1fr}.modal-crear-factura-proyecto .items-header{display:none}.modal-crear-factura-proyecto .item-row{display:flex;flex-direction:column;gap:6px;padding:12px;position:relative}.modal-crear-factura-proyecto .item-row .col-descripcion{font-size:.9rem;white-space:normal}.modal-crear-factura-proyecto .item-row>span:not(.col-descripcion):not(.col-acciones){display:flex;justify-content:space-between;text-align:left;width:100%}.modal-crear-factura-proyecto .item-row .col-cantidad:before{color:#6b7280;content:"Cant: ";font-weight:400}.modal-crear-factura-proyecto .item-row .col-unidad:before{color:#6b7280;content:"Und: ";font-weight:400}.modal-crear-factura-proyecto .item-row .col-valor:before{color:#6b7280;content:"V.Unit: ";font-weight:400}.modal-crear-factura-proyecto .item-row .col-iva:before{color:#6b7280;content:"IVA: ";font-weight:400}.modal-crear-factura-proyecto .item-row .col-subtotal:before{color:#6b7280;content:"Subt: ";font-weight:400}.modal-crear-factura-proyecto .item-row .col-acciones{position:absolute;right:10px;top:10px}.modal-crear-factura-proyecto .nuevo-item-row{align-items:stretch;flex-direction:column}.modal-crear-factura-proyecto .nuevo-item-row .item-cantidad,.modal-crear-factura-proyecto .nuevo-item-row .item-descripcion,.modal-crear-factura-proyecto .nuevo-item-row .item-iva,.modal-crear-factura-proyecto .nuevo-item-row .item-unidad,.modal-crear-factura-proyecto .nuevo-item-row .item-valor{min-width:0;min-width:auto;width:100%}.modal-crear-factura-proyecto .btn-agregar-item{justify-content:center;margin-top:6px;width:100%}.modal-crear-factura-proyecto .modal-footer{border-radius:0}}.modal-crear-factura-proyecto .item-iva-select{align-items:center;display:flex;flex-direction:column;min-width:70px}.modal-crear-factura-proyecto .item-iva-select label{color:#374151;font-size:.75rem;font-weight:600;margin-bottom:4px}.modal-crear-factura-proyecto .select-iva{background:#fff;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;font-size:.85rem;padding:6px 4px;text-align:center;width:65px}.modal-crear-factura-proyecto .select-iva:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633;outline:none}.modal-crear-factura-proyecto .item-row .col-iva{align-items:center;display:flex;justify-content:center}.modal-crear-factura-proyecto .select-iva-mini{background:#fff;border:1px solid #d1d5db;border-radius:4px;cursor:pointer;font-size:.75rem;font-weight:600;padding:4px 2px;text-align:center;width:55px}.modal-crear-factura-proyecto .select-iva-mini:focus{border-color:#3b82f6;outline:none}.modal-crear-factura-proyecto .item-row.sin-iva{background:#fef2f2}.modal-crear-factura-proyecto .item-row.sin-iva:hover{background:#fee2e2}.modal-crear-factura-proyecto .nuevo-item-row{grid-template-columns:1fr 70px 100px 110px 70px auto}.modal-crear-factura-proyecto .btn-agregar-item{font-size:.8rem;gap:4px;min-width:90px;padding:8px 12px;width:auto}.modal-crear-factura-proyecto .form-section-plan-pagos{background:#fefce8;border-top:2px solid #fde047;padding:16px 20px}.modal-crear-factura-proyecto .plan-pagos-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.modal-crear-factura-proyecto .checkbox-plan-pagos{align-items:center;cursor:pointer;display:flex;gap:10px}.modal-crear-factura-proyecto .checkbox-plan-pagos input[type=checkbox]{accent-color:#eab308;cursor:pointer;height:20px;width:20px}.modal-crear-factura-proyecto .checkbox-plan-pagos h4{align-items:center;color:#854d0e;display:flex;font-size:.95rem;gap:8px;margin:0}.modal-crear-factura-proyecto .checkbox-plan-pagos h4 svg{color:#ca8a04}.modal-crear-factura-proyecto .btn-agregar-cuota{background:#fef08a;border:1px solid #fde047;border-radius:6px;color:#854d0e;cursor:pointer;font-size:.8rem;font-weight:600;padding:6px 12px;transition:all .2s}.modal-crear-factura-proyecto .btn-agregar-cuota:hover{background:#fde047}.modal-crear-factura-proyecto .plan-pagos-contenido{background:#fff;border:1px solid #fde047;border-radius:10px;padding:16px}.modal-crear-factura-proyecto .plan-pagos-hint{background:#fef9c3;border:1px solid #fde047;border-radius:6px;color:#713f12;font-size:.8rem;line-height:1.4;margin:0 0 16px;padding:10px 12px}.modal-crear-factura-proyecto .cuotas-lista{margin-bottom:16px}.modal-crear-factura-proyecto .cuotas-header{grid-gap:10px;background:#fef9c3;border-radius:6px 6px 0 0;color:#854d0e;display:grid;font-size:.7rem;font-weight:700;gap:10px;grid-template-columns:60px 1fr 140px 130px 36px;letter-spacing:.3px;padding:8px 12px;text-transform:uppercase}.modal-crear-factura-proyecto .cuota-row{grid-gap:10px;align-items:center;background:#fff;border:1px solid #fde047;border-top:none;display:grid;gap:10px;grid-template-columns:60px 1fr 140px 130px 36px;padding:10px 12px}.modal-crear-factura-proyecto .cuota-row:last-child{border-radius:0 0 6px 6px}.modal-crear-factura-proyecto .cuota-numero{color:#ca8a04;font-size:.9rem;font-weight:700}.modal-crear-factura-proyecto .cuota-factura{align-items:center;display:flex;gap:2px}.modal-crear-factura-proyecto .cuota-factura .factura-base{color:#6b7280;font-size:.85rem;font-weight:500}.modal-crear-factura-proyecto .cuota-factura .input-sufijo{border:1px solid #e5e7eb;border-radius:4px;font-size:.85rem;font-weight:600;padding:6px 8px;width:60px}.modal-crear-factura-proyecto .cuota-row .input-fecha,.modal-crear-factura-proyecto .cuota-row .input-monto{border:1px solid #e5e7eb;border-radius:4px;font-size:.85rem;padding:6px 10px}.modal-crear-factura-proyecto .cuota-row .input-monto{font-weight:600;text-align:right}.modal-crear-factura-proyecto .cuota-factura .input-sufijo:focus,.modal-crear-factura-proyecto .cuota-row .input-fecha:focus,.modal-crear-factura-proyecto .cuota-row .input-monto:focus{border-color:#eab308;box-shadow:0 0 0 2px #eab30833;outline:none}.modal-crear-factura-proyecto .btn-eliminar-cuota{align-items:center;background:#fee2e2;border:none;border-radius:4px;color:#dc2626;cursor:pointer;display:flex;justify-content:center;padding:6px;transition:all .2s}.modal-crear-factura-proyecto .btn-eliminar-cuota:hover{background:#fecaca}.modal-crear-factura-proyecto .plan-pagos-resumen{background:#fef9c3;border:1px solid #fde047;border-radius:8px;padding:12px}.modal-crear-factura-proyecto .plan-pagos-resumen .resumen-linea{color:#374151;display:flex;font-size:.85rem;justify-content:space-between;padding:6px 0}.modal-crear-factura-proyecto .plan-pagos-resumen .resumen-linea.diferencia{border-top:2px solid #fde047;font-weight:700;margin-top:6px;padding-top:10px}.modal-crear-factura-proyecto .plan-pagos-resumen .resumen-linea.diferencia.ok{color:#16a34a}.modal-crear-factura-proyecto .plan-pagos-resumen .resumen-linea.diferencia.warning{color:#dc2626}.modal-crear-factura-proyecto .btn-distribuir-cuotas{background:linear-gradient(135deg,#fde047,#facc15);border:none;border-radius:6px;color:#713f12;cursor:pointer;font-size:.85rem;font-weight:600;margin-top:12px;padding:8px 16px;transition:all .2s;width:100%}.modal-crear-factura-proyecto .btn-distribuir-cuotas:hover{box-shadow:0 4px 12px #eab3084d;transform:translateY(-1px)}@media (max-width:768px){.modal-crear-factura-proyecto .cuotas-header{display:none}.modal-crear-factura-proyecto .cuota-row{display:flex;flex-direction:column;gap:8px;padding:12px}.modal-crear-factura-proyecto .cuota-factura,.modal-crear-factura-proyecto .cuota-row .input-fecha,.modal-crear-factura-proyecto .cuota-row .input-monto{width:100%}.modal-crear-factura-proyecto .btn-eliminar-cuota{align-self:flex-end}}.modal-crear-factura-proyecto .form-group-adjunto{border-top:1px solid #e5e7eb;margin-top:16px;padding-top:16px}.modal-crear-factura-proyecto .form-group-adjunto>label{align-items:center;color:#374151;display:flex;font-size:.875rem;font-weight:600;gap:8px;margin-bottom:10px}.modal-crear-factura-proyecto .form-group-adjunto>label svg{color:#6b7280}.modal-crear-factura-proyecto .adjunto-input-container{align-items:center;display:flex;gap:12px}.modal-crear-factura-proyecto .input-file-hidden{display:none}.modal-crear-factura-proyecto .btn-seleccionar-archivo{align-items:center;background:#f3f4f6;border:2px dashed #d1d5db;border-radius:8px;color:#374151;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;gap:8px;padding:10px 16px;transition:all .2s ease}.modal-crear-factura-proyecto .btn-seleccionar-archivo:hover{background:#e5e7eb;border-color:#9ca3af}.modal-crear-factura-proyecto .btn-seleccionar-archivo svg{color:#6b7280}.modal-crear-factura-proyecto .adjunto-hint{color:#9ca3af;font-size:.75rem}.modal-crear-factura-proyecto .adjunto-preview{align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;display:flex;justify-content:space-between;margin-top:12px;padding:12px}.modal-crear-factura-proyecto .adjunto-info{align-items:center;display:flex;gap:12px}.modal-crear-factura-proyecto .adjunto-thumbnail{border:1px solid #e5e7eb;border-radius:6px;height:48px;object-fit:cover;width:48px}.modal-crear-factura-proyecto .adjunto-icon{align-items:center;background:#e5e7eb;border-radius:6px;display:flex;height:48px;justify-content:center;width:48px}.modal-crear-factura-proyecto .adjunto-icon svg{color:#6b7280}.modal-crear-factura-proyecto .adjunto-detalles{display:flex;flex-direction:column;gap:2px}.modal-crear-factura-proyecto .adjunto-nombre{color:#374151;font-size:.875rem;font-weight:500;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-crear-factura-proyecto .adjunto-size{color:#9ca3af;font-size:.75rem}.modal-crear-factura-proyecto .btn-eliminar-adjunto{align-items:center;background:#fee2e2;border:none;border-radius:6px;color:#dc2626;cursor:pointer;display:flex;justify-content:center;padding:8px;transition:all .2s}.modal-crear-factura-proyecto .btn-eliminar-adjunto:hover{background:#fecaca}@media (max-width:768px){.modal-crear-factura-proyecto .adjunto-input-container{align-items:flex-start;flex-direction:column}.modal-crear-factura-proyecto .adjunto-preview{align-items:flex-start;flex-direction:column;gap:12px}.modal-crear-factura-proyecto .btn-eliminar-adjunto{align-self:flex-end}}.caja-menor-proyecto{padding:20px}.caja-menor-loading{align-items:center;color:#6b7280;display:flex;flex-direction:column;justify-content:center;padding:60px 20px}.caja-menor-loading .spinner{animation:spin 1s linear infinite;border:3px solid #e5e7eb;border-radius:50%;border-top-color:#3b82f6;height:40px;width:40px}.caja-menor-header{align-items:center;background:#fff;border-radius:16px;box-shadow:0 1px 3px #0000001a;display:flex;flex-wrap:wrap;gap:24px;margin-bottom:20px;padding:24px}.header-info h2{color:#111827;font-size:20px;font-weight:600;margin:0 0 4px}.header-info p{color:#6b7280;font-size:14px;margin:0}.header-stats{display:flex;gap:24px;margin-left:auto}.stat-item{background:#f9fafb;border-radius:12px;padding:12px 24px;text-align:center}.stat-item.total{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border-left:3px solid #10b981}.stat-value{color:#111827;display:block;font-size:20px}.stat-label{color:#6b7280;display:block;margin-top:4px}.btn-nuevo-gasto{background:#3b82f6;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:12px 24px;transition:all .2s;white-space:nowrap}.btn-nuevo-gasto:hover{background:#2563eb;transform:translateY(-1px)}.resumen-capitulos{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:20px;padding:20px}.resumen-capitulos h3{color:#374151;font-size:14px;font-weight:600;margin:0 0 16px}.capitulos-grid{display:flex;flex-wrap:wrap;gap:12px}.capitulo-stat{background:#f9fafb;border-radius:8px;display:flex;flex-direction:column;gap:4px;min-width:120px;padding:12px 16px}.cap-numero{color:#6b7280;font-size:11px;font-weight:600;text-transform:uppercase}.cap-valor{color:#111827;font-size:16px;font-weight:700}.cap-cantidad{color:#9ca3af;font-size:11px}.formulario-gasto{background:#fff;border:2px solid #3b82f6;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:20px;padding:24px}.formulario-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.formulario-header h3{color:#111827;font-size:16px;font-weight:600;margin:0}.btn-cerrar{padding:4px}.btn-cerrar:hover{color:#374151}.form-grid{grid-gap:16px;gap:16px;grid-template-columns:repeat(3,1fr);margin-bottom:20px}.form-group{gap:6px}.form-group input,.form-group select{border:1px solid #e5e7eb;font-size:14px;padding:10px 12px}.form-group input:focus,.form-group select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.btn-cancelar,.btn-guardar{font-size:14px}.btn-guardar:hover{background:#059669}.form-evidencias{border-top:1px dashed #e5e7eb;margin-top:16px;padding-top:16px}.evidencias-form-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.evidencias-form-header label:first-child{color:#374151;font-size:13px;font-weight:500}.btn-agregar-archivo{background:#f3f4f6;border:1px dashed #3b82f6;border-radius:6px;color:#3b82f6;cursor:pointer;font-size:13px;font-weight:500;padding:8px 16px;transition:all .2s}.btn-agregar-archivo:hover{background:#eff6ff;border-style:solid}.btn-agregar-archivo input{display:none}.archivos-preview{display:flex;flex-wrap:wrap;gap:8px}.archivo-preview-item{align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;display:flex;font-size:13px;gap:8px;padding:8px 12px}.archivo-icono{font-size:16px}.archivo-nombre{color:#374151;max-width:180px}.btn-quitar-archivo{background:none;border-radius:4px;color:#9ca3af;font-size:12px;line-height:1;padding:2px 4px;transition:all .2s}.btn-quitar-archivo:hover{background:#fee2e2;color:#ef4444}.sin-gastos{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:60px 20px;text-align:center}.sin-gastos .icono{display:block;font-size:48px;margin-bottom:16px}.sin-gastos p{color:#6b7280;margin:0 0 20px}.btn-agregar{background:#3b82f6;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:12px 24px;transition:all .2s}.btn-agregar:hover{background:#2563eb}.lista-gastos{display:flex;flex-direction:column;gap:12px}.gasto-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:20px}.gasto-main{align-items:center;display:flex;gap:16px}.gasto-info{flex:1 1}.gasto-info h4{color:#111827;font-size:15px;font-weight:500;margin:0 0 8px}.gasto-meta{color:#6b7280;display:flex;flex-wrap:wrap;font-size:13px;gap:12px}.gasto-meta .capitulo{background:#e0e7ff;border-radius:4px;color:#3730a3;font-size:12px;padding:2px 8px}.gasto-valor{color:#111827;font-size:18px;font-weight:700;white-space:nowrap}.gasto-acciones{display:flex;gap:8px}.gasto-acciones button{background:none;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;padding:6px 10px;transition:all .2s}.gasto-acciones .btn-editar:hover{background:#fef3c7;border-color:#f59e0b}.gasto-acciones .btn-eliminar:hover{background:#fee2e2;border-color:#ef4444}.gasto-evidencias{border-top:1px solid #f3f4f6;margin-top:16px;padding-top:16px}.evidencias-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.evidencias-header span{color:#6b7280;font-size:13px;font-weight:500}.btn-subir-evidencia{background:#f9fafb;border:1px dashed #d1d5db;border-radius:6px;color:#3b82f6;cursor:pointer;font-size:13px;padding:6px 12px;transition:all .2s}.btn-subir-evidencia:hover{background:#f3f4f6;border-color:#3b82f6}.btn-subir-evidencia input{display:none}.evidencias-lista{flex-wrap:wrap;gap:8px}.evidencia-item{align-items:center;background:#f9fafb;border-radius:6px;display:flex;font-size:13px;gap:6px;padding:6px 10px}.evidencia-icono{font-size:16px}.evidencia-nombre{color:#3b82f6;max-width:150px;overflow:hidden;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.evidencia-nombre:hover{text-decoration:underline}.btn-eliminar-evidencia{background:none;color:#9ca3af;font-size:12px;padding:2px}.btn-eliminar-evidencia:hover{color:#ef4444}@media (max-width:768px){.caja-menor-header{align-items:flex-start;flex-direction:column}.header-stats{margin-left:0;width:100%}.btn-nuevo-gasto{width:100%}.form-grid{grid-template-columns:1fr}.gasto-main{align-items:flex-start;flex-direction:column}.gasto-acciones,.gasto-valor{margin-top:12px}}.actividades-capitulo{display:flex;flex-direction:column;gap:24px;padding:20px}.actividades-loading{align-items:center;display:flex;flex-direction:column;gap:16px;justify-content:center;min-height:300px}.actividades-header{align-items:center;background:linear-gradient(135deg,#3b82f6,#2563eb);border-radius:12px;box-shadow:0 4px 12px #3b82f64d;color:#fff;display:flex;justify-content:space-between;padding:24px}.actividades-header h2{font-size:1.75rem;margin:0 0 8px}.capitulo-nombre{font-size:1.1rem;margin:0;opacity:.9}.btn-volver{background:#fff3;border:2px solid #fff;color:#fff;padding:12px 24px;transition:all .2s ease}.btn-volver:hover{background:#fff;color:#3b82f6;transform:translateY(-2px)}.btn-nueva-actividad{background:#fff;border:none;border-radius:8px;color:#3b82f6;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 24px;transition:all .2s ease;white-space:nowrap}.btn-nueva-actividad:hover{box-shadow:0 4px 12px #0003;transform:translateY(-2px)}.actividades-stats{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.stat-card{border-left:4px solid #3b82f6;box-shadow:0 2px 8px #0000001a;transition:transform .2s ease}.stat-card:hover{box-shadow:0 4px 16px #00000026;transform:translateY(-4px)}.stat-icon{font-size:2.5rem}.stat-value{color:#333;font-size:1.5rem}.stat-label{font-size:.9rem}.presupuesto-comparacion{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:24px}.presupuesto-comparacion h3{color:#333;margin:0 0 20px}.comparacion-content{display:flex;flex-direction:column;gap:12px}.comparacion-item{align-items:center;background:#f8f9fa;border-radius:8px;display:flex;justify-content:space-between;padding:12px}.comparacion-item .label{color:#666;font-weight:600}.comparacion-item .value{color:#333;font-size:1.1rem;font-weight:700}.comparacion-item .value.positivo{color:#4caf50}.comparacion-item .value.negativo{color:#f44336}.comparacion-progress{display:flex;flex-direction:column;gap:8px;margin-top:8px}.progress-bar{background:#e0e0e0;border-radius:12px;height:24px;overflow:hidden;width:100%}.progress-fill{border-radius:12px;height:100%;transition:width .5s ease}.progress-label{color:#666;font-size:.9rem;font-weight:600;text-align:center}.actividades-lista{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(400px,1fr))}.actividad-card{background:#fff;border-left:4px solid #3b82f6;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:20px;transition:all .2s ease}.actividad-card:hover{box-shadow:0 4px 16px #00000026;transform:translateY(-4px)}.actividad-card.completado{border-left-color:#4caf50}.actividad-card.en-proceso{border-left-color:#2196f3}.actividad-card.planificado{border-left-color:#ff9800}.actividad-card.cancelado{border-left-color:#f44336}.actividad-header{align-items:center;border-bottom:2px solid #f0f0f0;display:flex;justify-content:space-between;margin-bottom:16px;padding-bottom:12px}.actividad-fecha{align-items:center;color:#666;display:flex;font-weight:600;gap:8px}.fecha-icon{font-size:1.2rem}.badge-estado{border-radius:12px;font-size:.85rem;font-weight:600;padding:4px 12px}.badge-estado.completado{background:#e8f5e9;color:#388e3c}.badge-estado.en-proceso{background:#e3f2fd;color:#1976d2}.badge-estado.planificado{background:#fff3e0;color:#f57c00}.badge-estado.cancelado{background:#ffebee;color:#d32f2f}.actividad-body{display:flex;flex-direction:column;gap:12px}.actividad-descripcion{color:#333;font-size:1.05rem;line-height:1.5;margin:0 0 8px}.actividad-detalles{display:flex;flex-direction:column;gap:8px}.detalle-item{align-items:center;color:#666;display:flex;font-size:.95rem;gap:8px}.detalle-icon{font-size:1.2rem}.detalle-label{font-weight:600;min-width:90px}.detalle-value{color:#333}.detalle-value.strong{color:#3b82f6;font-size:1.1rem;font-weight:700}.detalle-item.evidencias{border-top:1px solid #f0f0f0;margin-top:4px;padding-top:8px}.actividad-notas{background:#eff6ff;border-left:3px solid #3b82f6;border-radius:8px;color:#666;font-size:.9rem;margin-top:8px;padding:12px}.actividad-footer{border-top:2px solid #f0f0f0;display:flex;gap:8px;justify-content:flex-end;margin-top:16px;padding-top:12px}.btn-editar,.btn-eliminar,.btn-evidencias,.btn-gastos{border:none;border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:600;padding:8px 16px;transition:all .2s ease}.btn-gastos{background:#fef3c7;color:#d97706}.btn-gastos:hover{background:#f59e0b;color:#fff}.btn-evidencias{background:#fff3e0;color:#f57c00}.btn-evidencias:hover{background:#f57c00;color:#fff}.btn-editar{color:#1976d2}.btn-editar:hover{background:#1976d2;color:#fff}.btn-eliminar{color:#d32f2f;padding:8px 12px}.btn-eliminar:hover{background:#d32f2f;color:#fff}.estado-select{border:2px solid #0000;border-radius:20px;cursor:pointer;font-size:.85rem;font-weight:600;outline:none;padding:6px 12px;transition:all .2s ease}.estado-select.planificado{background:#eff6ff;border-color:#93c5fd;color:#3b82f6}.estado-select.en_proceso{background:#fef3c7;border-color:#fcd34d;color:#d97706}.estado-select.completado{background:#d1fae5;border-color:#6ee7b7;color:#059669}.estado-select.cancelado{background:#fee2e2;border-color:#fca5a5;color:#dc2626}.estado-select:hover{transform:scale(1.02)}.presupuesto-actividad{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-top:12px;padding:12px}.presupuesto-row{display:flex;gap:12px;justify-content:space-between;margin-bottom:8px}.presupuesto-col{align-items:center;display:flex;flex:1 1;flex-direction:column}.presupuesto-actividad .presupuesto-label{color:#64748b;font-size:11px;font-weight:500;text-transform:uppercase}.presupuesto-actividad .presupuesto-valor{font-size:14px;font-weight:700}.presupuesto-valor.azul{color:#3b82f6}.presupuesto-valor.naranja{color:#f59e0b}.presupuesto-valor.verde{color:#10b981}.presupuesto-valor.rojo{color:#ef4444}.mini-progress{background:#e2e8f0;border-radius:4px;height:8px;overflow:hidden;position:relative}.mini-progress-fill{background:linear-gradient(90deg,#10b981,#34d399);border-radius:4px;height:100%;transition:width .3s ease}.mini-progress-fill.excede{background:linear-gradient(90deg,#ef4444,#f87171)}.mini-progress-text{color:#fff;font-size:8px;font-weight:700;position:absolute;right:4px;text-shadow:0 0 2px #00000080;top:50%;transform:translateY(-50%)}.actividad-proveedor{align-items:center;color:#64748b;display:flex;font-size:13px;gap:6px;margin-top:8px}.empty-state{align-items:center;box-shadow:0 2px 8px #0000001a;display:flex;flex-direction:column;justify-content:center}.empty-icon{margin-bottom:16px}.empty-state h3{color:#333}.empty-state p{text-align:center}.btn-primera-actividad{background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 32px;transition:all .2s ease}.btn-primera-actividad:hover{box-shadow:0 4px 12px #3b82f666;transform:translateY(-2px)}@media (max-width:768px){.actividades-header{flex-direction:column;gap:16px}.btn-nueva-actividad{width:100%}.actividades-lista{grid-template-columns:1fr}.actividad-footer{flex-direction:column}.btn-editar,.btn-eliminar,.btn-evidencias{width:100%}}.modal-crear-actividad{background:#fff;border-radius:16px;box-shadow:0 25px 50px -12px #00000040;max-height:90vh;max-width:700px;overflow-y:auto;width:95%}.modal-crear-actividad.modal-simple{max-width:500px}.modal-crear-actividad.modal-simple .actividad-form.simple{padding:24px}.modal-crear-actividad .valor-preview{color:#10b981;font-size:14px;font-weight:600;margin-top:4px}.modal-crear-actividad .modal-header{align-items:center;background:linear-gradient(135deg,#3b82f6,#2563eb);border-bottom:none;border-radius:16px 16px 0 0;display:flex;justify-content:space-between;padding:20px 24px}.modal-crear-actividad .modal-header h2{color:#fff;font-size:1.25rem;font-weight:600;margin:0}.modal-crear-actividad .modal-close{align-items:center;background:#fff3;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:1.5rem;height:32px;justify-content:center;line-height:1;transition:background .2s;width:32px}.modal-crear-actividad .modal-close:hover{background:#ffffff4d}.modal-crear-actividad .modal-subheader{background:linear-gradient(135deg,#eff6ff,#dbeafe);border-bottom:1px solid #bfdbfe;padding:14px 24px}.modal-crear-actividad .modal-subheader p{color:#1d4ed8;font-size:.95rem;font-weight:600;margin:0}.modal-crear-actividad .actividad-form{display:flex;flex-direction:column;gap:20px;padding:24px}.modal-crear-actividad .form-group{display:flex;flex-direction:column;gap:6px}.modal-crear-actividad .form-group.full-width{grid-column:1/-1}.modal-crear-actividad .form-group label{color:#374151;font-size:.8rem;font-weight:600;letter-spacing:.3px;text-transform:uppercase}.modal-crear-actividad .form-group input,.modal-crear-actividad .form-group select,.modal-crear-actividad .form-group textarea{background:#fff;border:1.5px solid #e5e7eb;border-radius:8px;font-family:inherit;font-size:.95rem;padding:12px 14px;transition:all .2s ease}.modal-crear-actividad .form-group input:focus,.modal-crear-actividad .form-group select:focus,.modal-crear-actividad .form-group textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.modal-crear-actividad .form-group input.error,.modal-crear-actividad .form-group select.error,.modal-crear-actividad .form-group textarea.error{border-color:#ef4444}.modal-crear-actividad .form-group textarea{min-height:80px;resize:vertical}.modal-crear-actividad .form-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr}.modal-crear-actividad .form-row.tres-columnas{grid-template-columns:1fr 1fr 1fr}.modal-crear-actividad .error-message{color:#ef4444;font-size:.75rem;font-weight:500}.modal-crear-actividad .costo-total-preview{align-items:center;background:linear-gradient(135deg,#ecfdf5,#d1fae5);border:1px solid #86efac;border-radius:10px;display:flex;justify-content:space-between;padding:16px 20px}.modal-crear-actividad .costo-total-preview strong{color:#059669;font-size:1rem}.modal-crear-actividad .costo-total{color:#047857;font-size:1.25rem;font-weight:700}.modal-crear-actividad .modal-footer{background:#f9fafb;border-radius:0 0 16px 16px;border-top:1px solid #e5e7eb;display:flex;gap:12px;justify-content:flex-end;margin-top:4px;padding:20px 24px}.modal-crear-actividad .btn-cancelar{background:#fff;border:2px solid #e5e7eb;border-radius:8px;color:#6b7280;cursor:pointer;font-size:.95rem;font-weight:600;padding:10px 24px;transition:all .2s}.modal-crear-actividad .btn-cancelar:hover{background:#f9fafb;border-color:#d1d5db}.modal-crear-actividad .btn-guardar{background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;min-width:160px;padding:10px 24px;transition:all .2s}.modal-crear-actividad .btn-guardar:hover:not(:disabled){box-shadow:0 4px 12px #3b82f64d;transform:translateY(-2px)}.modal-crear-actividad .btn-guardar:disabled{cursor:not-allowed;opacity:.6}.modal-crear-actividad .seccion-ejecucion{background:linear-gradient(135deg,#fefce8,#fef9c3);border:1px solid #fde047;border-radius:12px;margin-top:8px;padding:16px 20px}.modal-crear-actividad .seccion-titulo{align-items:center;color:#854d0e;display:flex;font-size:.9rem;font-weight:600;gap:8px;margin-bottom:16px}.modal-crear-actividad .seccion-icono{align-items:center;background:#eab308;border-radius:6px;color:#fff;display:flex;font-size:.85rem;font-weight:700;height:24px;justify-content:center;width:24px}.modal-crear-actividad .seccion-ejecucion .form-group input{background:#fff}.modal-crear-actividad .alerta-exceso{align-items:center;background:linear-gradient(135deg,#fef2f2,#fee2e2);border:1px solid #fca5a5;border-radius:10px;color:#dc2626;display:flex;font-size:.9rem;font-weight:500;gap:10px;padding:12px 16px}.modal-crear-actividad .alerta-icono{align-items:center;background:#dc2626;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:.85rem;font-weight:700;height:24px;justify-content:center;width:24px}.modal-crear-actividad .evidencias-section{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border:1px solid #86efac;border-radius:12px;margin-top:8px;padding:16px 20px}.modal-crear-actividad .evidencias-header{align-items:center;color:#166534;display:flex;font-size:.9rem;font-weight:600;gap:8px;margin-bottom:16px}.modal-crear-actividad .evidencias-icono{font-size:1.1rem}.modal-crear-actividad .evidencias-count{background:#22c55e;border-radius:10px;color:#fff;font-size:.75rem;font-weight:700;margin-left:auto;padding:2px 8px}.modal-crear-actividad .upload-zone{margin-bottom:12px}.modal-crear-actividad .file-input-hidden{display:none}.modal-crear-actividad .upload-label{align-items:center;background:#fff;border:2px dashed #86efac;border-radius:10px;cursor:pointer;display:flex;flex-direction:column;gap:6px;padding:20px;text-align:center;transition:all .2s ease}.modal-crear-actividad .upload-label:hover:not(.disabled):not(.uploading){background:#f0fdf4;border-color:#22c55e}.modal-crear-actividad .upload-label.disabled{background:#f5f5f5;cursor:not-allowed;opacity:.6}.modal-crear-actividad .upload-label.uploading{cursor:wait}.modal-crear-actividad .upload-icon{font-size:1.5rem}.modal-crear-actividad .upload-hint{color:#6b7280;font-size:.75rem}.modal-crear-actividad .upload-spinner{animation:spin 1s linear infinite;border:3px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:20px;width:20px}.modal-crear-actividad .evidencias-lista{display:flex;flex-wrap:wrap;gap:10px}.modal-crear-actividad .evidencia-item{align-items:center;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;display:flex;flex-basis:calc(50% - 5px);flex-grow:1;flex-shrink:1;gap:10px;max-width:100%;min-width:200px;padding:8px}.modal-crear-actividad .evidencia-preview{align-items:center;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;display:flex;flex-shrink:0;height:50px;justify-content:center;overflow:hidden;width:50px}.modal-crear-actividad .evidencia-preview:hover{border-color:#3b82f6}.modal-crear-actividad .evidencia-preview img{height:100%;object-fit:cover;width:100%}.modal-crear-actividad .evidencia-doc-icon{font-size:1.5rem}.modal-crear-actividad .evidencia-info{display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:0}.modal-crear-actividad .evidencia-nombre{color:#374151;font-size:.8rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-crear-actividad .evidencia-size{color:#6b7280;font-size:.7rem}.modal-crear-actividad .evidencia-actions{display:flex;flex-shrink:0;gap:4px}.modal-crear-actividad .btn-eliminar-evidencia,.modal-crear-actividad .btn-ver-evidencia{align-items:center;border:none;border-radius:6px;cursor:pointer;display:flex;font-size:.85rem;height:28px;justify-content:center;text-decoration:none;transition:all .2s;width:28px}.modal-crear-actividad .btn-ver-evidencia{background:#dbeafe;color:#1d4ed8}.modal-crear-actividad .btn-ver-evidencia:hover{background:#3b82f6;color:#fff}.modal-crear-actividad .btn-eliminar-evidencia{background:#fee2e2;color:#dc2626}.modal-crear-actividad .btn-eliminar-evidencia:hover{background:#dc2626;color:#fff}.evidencia-preview-modal{align-items:center;background:#000000e6;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:10000}.evidencia-preview-modal .preview-content{align-items:center;display:flex;flex-direction:column;max-height:90vh;max-width:90vw;position:relative}.evidencia-preview-modal .preview-close{align-items:center;background:#fff;border:none;border-radius:50%;color:#374151;cursor:pointer;display:flex;font-size:1.5rem;height:36px;justify-content:center;position:absolute;right:0;top:-40px;transition:all .2s;width:36px}.evidencia-preview-modal .preview-close:hover{background:#f3f4f6;transform:scale(1.1)}.evidencia-preview-modal img{border-radius:8px;max-height:calc(90vh - 80px);max-width:100%;object-fit:contain}.evidencia-preview-modal .pdf-preview{background:#fff;border:none;border-radius:8px;height:calc(90vh - 80px);width:80vw}.evidencia-preview-modal .preview-info{color:#fff;display:flex;font-size:.9rem;gap:16px;margin-top:12px}.evidencia-preview-modal .preview-info span:first-child{font-weight:600}.evidencia-preview-modal .preview-info span:last-child{opacity:.7}@media (max-width:768px){.modal-crear-actividad{margin:10px;max-width:95vw}.modal-crear-actividad .actividad-form{gap:16px;padding:20px}.modal-crear-actividad .form-row,.modal-crear-actividad .form-row.tres-columnas{grid-template-columns:1fr}.modal-crear-actividad .modal-footer{flex-direction:column-reverse;padding:16px 20px}.modal-crear-actividad .btn-cancelar,.modal-crear-actividad .btn-guardar{justify-content:center;width:100%}.modal-crear-actividad .evidencia-item{flex:1 1 100%}.evidencia-preview-modal .pdf-preview{width:95vw}}.modal-evidencias{max-height:90vh;max-width:900px;overflow-y:auto}.evidencia-upload-form{background:#fffbeb;border:2px dashed #f59e0b;border-radius:12px;margin-bottom:24px;padding:24px}.upload-section{display:flex;gap:20px;margin-bottom:16px}.file-input-wrapper{display:flex;flex:1 1;flex-direction:column;gap:12px}.file-input{display:none}.file-input-label{align-items:center;background:linear-gradient(135deg,#f59e0b,#d97706);border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:600;gap:8px;justify-content:center;padding:16px 24px;transition:all .2s ease}.file-input-label:hover{box-shadow:0 4px 12px #f59e0b66;transform:translateY(-2px)}.file-name{background:#fff;border-radius:6px;color:#d97706;font-size:.9rem;font-weight:600;padding:8px 12px;word-break:break-all}.vista-previa{background:#fff;border:2px solid #e0e0e0;border-radius:8px;flex:1 1;max-width:300px;overflow:hidden}.vista-previa img{height:200px;object-fit:cover;width:100%}.file-placeholder,.pdf-placeholder,.video-placeholder{align-items:center;background:linear-gradient(135deg,#f8f9fa,#e9ecef);display:flex;flex-direction:column;height:200px;justify-content:center;width:100%}.pdf-placeholder{background:linear-gradient(135deg,#fef3c7,#fde68a)}.file-placeholder span,.pdf-placeholder span,.video-placeholder span{font-size:4rem;margin-bottom:8px}.file-placeholder p,.pdf-placeholder p,.video-placeholder p{color:#666;font-weight:600;margin:0}.btn-subir{background:#4caf50;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:14px 24px;transition:all .2s ease;width:100%}.btn-subir:hover:not(:disabled){background:#388e3c;box-shadow:0 4px 12px #4caf5066;transform:translateY(-2px)}.btn-subir:disabled{background:#ccc;cursor:not-allowed}.evidencias-lista{display:flex;flex-direction:column;gap:16px}.evidencias-lista h3{border-bottom:2px solid #e0e0e0;color:#333;margin:0;padding-bottom:12px}.evidencias-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.evidencia-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden;transition:all .2s ease}.evidencia-card:hover{box-shadow:0 4px 16px #00000026;transform:translateY(-4px)}.evidencia-preview{background:#f0f0f0;cursor:pointer;height:180px;overflow:hidden;position:relative;width:100%}.evidencia-preview img{height:100%;object-fit:cover;transition:transform .2s ease;width:100%}.evidencia-preview:hover img{transform:scale(1.05)}.documento-preview,.video-preview{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;flex-direction:column;height:100%;justify-content:center;width:100%}.documento-preview{background:linear-gradient(135deg,#f59e0b,#d97706)}.documento-icon,.video-icon{font-size:4rem;margin-bottom:8px}.play-icon,.ver-icon{font-size:2rem;opacity:.8}.evidencia-tipo-badge{background:#000000b3;border-radius:12px;color:#fff;font-size:.8rem;font-weight:600;padding:4px 12px;position:absolute;right:8px;top:8px}.evidencia-info{display:flex;flex-direction:column;gap:8px;padding:12px}.evidencia-descripcion{color:#333;font-size:.9rem;line-height:1.4;margin:0}.evidencia-fecha{color:#666;font-size:.85rem}.evidencia-actions{display:flex;gap:8px;padding:0 12px 12px}.btn-ver{background:#667eea;border:none;border-radius:6px;color:#fff;cursor:pointer;flex:1 1;font-size:.9rem;font-weight:600;padding:8px 12px;transition:all .2s ease}.btn-ver:hover{background:#5568d3}.btn-eliminar-evidencia{background:#ffebee;border:none;border-radius:6px;color:#d32f2f;cursor:pointer;font-size:.9rem;padding:8px 12px;transition:all .2s ease}.btn-eliminar-evidencia:hover{background:#d32f2f;color:#fff}.empty-state,.loading-state{align-items:center;background:#f8f9fa;border-radius:12px;display:flex;flex-direction:column;justify-content:center;padding:40px 20px}.empty-state span,.loading-state span{font-size:3rem;margin-bottom:12px;opacity:.5}.empty-state p{font-weight:600;margin:0 0 4px}.empty-state small{color:#999}@media (max-width:768px){.modal-evidencias{margin:20px;max-width:95vw}.upload-section{flex-direction:column}.vista-previa{max-width:100%}.evidencias-grid{grid-template-columns:1fr}}.detalle-proyecto-container{background:var(--surface-secondary);display:flex;flex-direction:column;height:100%;width:100%}.detalle-header{align-items:center;background:var(--surface-primary);border-bottom:1px solid var(--border-light);display:flex;gap:var(--spacing-4);padding:var(--spacing-4) var(--spacing-6)}.btn-back{background:var(--surface-secondary);border:1px solid var(--border-medium);border-radius:var(--radius-md);color:var(--gray-700);cursor:pointer;font-size:var(--font-size-sm);font-weight:500;padding:var(--spacing-2) var(--spacing-3);transition:all var(--transition-fast);white-space:nowrap}.btn-back:hover{background:var(--surface-tertiary);border-color:var(--gray-400)}.proyecto-title-section{flex:1 1}.proyecto-title-section h1{color:var(--gray-900);font-size:var(--font-size-xl);font-weight:600;margin:0 0 var(--spacing-2) 0}.proyecto-meta{flex-wrap:wrap;gap:var(--spacing-4)}.meta-item,.proyecto-meta{align-items:center;display:flex}.meta-item{color:var(--gray-600);font-size:var(--font-size-sm);gap:var(--spacing-1)}.estado-badge{padding:var(--spacing-1) var(--spacing-3)}.estado-badge.contratado_no_iniciado{background:var(--info-100);color:var(--info-600)}.estado-badge.en_ejecucion{background:var(--success-100);color:var(--success-600)}.estado-badge.en_pausa{background:var(--warning-100);color:var(--warning-600)}.estado-badge.finalizado{background:#f3e8ff;color:#7c3aed}.estado-badge.cancelado{background:var(--error-100);color:var(--error-600)}.detalle-layout{display:flex;flex:1 1;overflow:hidden}.detalle-sidebar{background:var(--surface-primary);border-right:1px solid var(--border-light);display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto;width:260px}.sidebar-title{border-bottom:1px solid var(--border-light);padding:var(--spacing-4)}.sidebar-title h3{color:var(--gray-700);font-size:var(--font-size-sm);font-weight:600;letter-spacing:.5px;margin:0;text-transform:uppercase}.capitulos-nav{display:flex;flex-direction:column;gap:2px;padding:var(--spacing-2)}.capitulo-btn{align-items:center;background:#0000;border:none;border-radius:var(--radius-md);cursor:pointer;display:flex;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3);text-align:left;transition:all var(--transition-fast)}.capitulo-btn:hover{background:var(--surface-secondary)}.capitulo-btn.active{background:var(--primary-50);color:var(--primary-700)}.capitulo-icono{flex-shrink:0;font-size:1rem;opacity:.7}.capitulo-nombre{color:var(--gray-700);flex:1 1;font-size:var(--font-size-sm);font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.capitulo-btn.active .capitulo-nombre{color:var(--primary-700);font-weight:600}.capitulo-estado{flex-shrink:0;font-size:var(--font-size-xs)}.capitulo-estado.completado{color:var(--success-500)}.capitulo-estado.en_progreso{color:var(--info-500)}.capitulo-estado.retrasado{color:var(--warning-500)}.capitulo-porcentaje{background:var(--gray-100);border-radius:4px;color:var(--gray-600);flex-shrink:0;font-size:.65rem;font-weight:600;padding:2px 5px;white-space:nowrap}.capitulo-btn.active .capitulo-porcentaje{background:var(--primary-100);color:var(--primary-700)}.capitulo-porcentaje.excede{background:#fef2f2;color:#dc2626}.capitulo-btn.excede-presupuesto{background:#fef2f2;border-left:3px solid #dc2626}.capitulo-btn.excede-presupuesto:hover{background:#fee2e2}.capitulo-estado.excede{color:#dc2626;font-weight:700}.detalle-content{background:var(--surface-secondary);flex:1 1;overflow-y:auto;padding:var(--spacing-6)}.capitulo-placeholder{background:var(--surface-primary);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--spacing-12) var(--spacing-8);text-align:center}.placeholder-header{align-items:center;display:flex;flex-direction:column;gap:var(--spacing-3);margin-bottom:var(--spacing-4)}.placeholder-icon{font-size:3rem;opacity:.5}.placeholder-header h2{color:var(--gray-800);font-size:var(--font-size-xl);font-weight:600;margin:0}.placeholder-message{color:var(--gray-500);font-size:var(--font-size-sm);line-height:1.6;margin:0 auto;max-width:400px}.detalle-loading,.error-message{align-items:center;display:flex;flex-direction:column;gap:var(--spacing-4);justify-content:center;min-height:400px}.detalle-loading p{color:#6b7280;font-size:.9rem;font-weight:500}.error-icon{font-size:2.5rem;opacity:.5}.error-message h3{color:var(--error-600);font-size:var(--font-size-lg);font-weight:600;margin:0}.error-message p{color:var(--gray-500);font-size:var(--font-size-sm);margin:0}.error-actions{display:flex;gap:var(--spacing-3);margin-top:var(--spacing-4)}.btn-retry,.btn-volver{border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);font-weight:500;padding:var(--spacing-2) var(--spacing-4);transition:all var(--transition-fast)}.btn-retry{background:var(--primary-600);color:#fff}.btn-retry:hover{background:var(--primary-700)}.btn-volver{background:var(--surface-tertiary);border:1px solid var(--border-medium);color:var(--gray-700)}.btn-volver:hover{background:var(--gray-200)}@media (max-width:1024px){.detalle-sidebar{width:220px}.detalle-content{padding:var(--spacing-4)}}@media (max-width:768px){.detalle-layout{flex-direction:column}.detalle-sidebar{border-bottom:1px solid var(--border-light);border-right:none;max-height:none;overflow:visible;width:100%}.capitulos-nav{-webkit-overflow-scrolling:touch;flex-direction:row;gap:var(--spacing-2);overflow-x:auto;overflow-y:hidden;padding:var(--spacing-2);scrollbar-width:thin}.capitulos-nav::-webkit-scrollbar{height:4px}.capitulos-nav::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:2px}.capitulo-btn{align-items:center;flex-direction:column;flex-shrink:0;height:auto;justify-content:flex-start;min-width:70px;padding:var(--spacing-2);text-align:center;width:70px}.capitulo-nombre{display:block;font-size:9px;-webkit-hyphens:auto;hyphens:auto;line-height:1.3;overflow:visible;text-align:center;text-overflow:clip;white-space:normal;width:100%;word-break:break-word}.capitulo-icono{font-size:.9rem}.capitulo-porcentaje{font-size:9px;padding:2px 6px}.detalle-header{padding:var(--spacing-4)}.detalle-header,.proyecto-meta{align-items:flex-start;flex-direction:column}.proyecto-meta{gap:var(--spacing-2)}}.proveedores{gap:24px;padding:20px}.proveedores,.proveedores-loading{display:flex;flex-direction:column}.proveedores-loading{align-items:center;gap:16px;justify-content:center;min-height:400px}.loading-spinner .spinner{animation:spin 1s linear infinite;border:3px solid #e5e7eb;border-radius:50%;border-top-color:#3b82f6;height:40px;width:40px}.proveedores-header{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;flex-wrap:wrap;justify-content:space-between;padding:24px}.header-left,.proveedores-header{align-items:center;display:flex;gap:20px}.header-icon{font-size:48px}.header-text h2{color:#1a1a1a;font-size:24px;font-weight:700;margin:0 0 8px}.header-text p{color:#666;font-size:14px;margin:0}.header-actions{flex-wrap:wrap;gap:12px}.btn-exportar-excel{background:#4caf50;font-weight:700;padding:12px 24px;transition:all .3s ease;white-space:nowrap}.btn-exportar-excel:hover{background:#388e3c;box-shadow:0 4px 12px #4caf504d;transform:translateY(-2px)}.btn-nuevo-proveedor{background:#64dc5c;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:700;padding:12px 24px;transition:all .3s ease;white-space:nowrap}.btn-nuevo-proveedor:hover{background:#52c348;box-shadow:0 4px 12px #64dc5c4d;transform:translateY(-2px)}.form-nuevo-proveedor{background:#fff;border:2px solid #64dc5c;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:24px}.form-nuevo-proveedor h3{color:#1a1a1a;font-size:18px;font-weight:700;margin:0 0 20px}.form-row{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.form-group.full-width{grid-column:1/-1}.form-group label{color:#666;font-size:13px}.form-group input,.form-group select,.form-group textarea{font-size:14px;transition:all .3s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{box-shadow:0 0 0 3px #64dc5c1a}.btn-submit{background:#64dc5c;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:15px;font-weight:700;padding:14px 28px;transition:all .3s ease;width:100%}.btn-submit:hover{background:#52c348;box-shadow:0 4px 12px #64dc5c4d;transform:translateY(-2px)}.proveedores-stats{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:24px}.proveedores-stats h3{border-bottom:2px solid #f0f0f0;color:#1a1a1a;font-size:18px;font-weight:700;margin:0 0 20px;padding-bottom:12px}.stat-card{border-left:4px solid;border-radius:10px;flex-direction:column;gap:12px;justify-content:center;padding:24px 20px;text-align:center}.stat-card:hover{box-shadow:0 4px 12px #0000001a}.stat-card.total{background:#e8f5e7;border-color:#64dc5c}.stat-card.pendiente{background:#fff3e0;border-color:#ff9800}.stat-card.dinero{background:#e3f2fd;border-color:#2196f3}.stat-content{align-items:center}.stat-label{font-size:12px;font-weight:600}.proveedores-filtros{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:24px}.filtros-header{align-items:center;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;margin-bottom:20px}.proveedores-filtros h3{color:#1a1a1a;font-size:16px;font-weight:700;margin:0}.busqueda-container{flex:1 1;max-width:500px;min-width:300px;position:relative}.busqueda-input{border:2px solid #e0e0e0;border-radius:8px;font-family:inherit;font-size:14px;padding:12px 40px 12px 16px;transition:all .3s ease;width:100%}.busqueda-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.btn-limpiar-busqueda{align-items:center;background:#f44336;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:12px;height:28px;justify-content:center;position:absolute;right:8px;top:50%;transform:translateY(-50%);transition:all .2s ease;width:28px}.btn-limpiar-busqueda:hover{background:#d32f2f;transform:translateY(-50%) scale(1.1)}.filtros-buttons{display:flex;flex-wrap:wrap;gap:12px}.filtro-btn{background:#fff;border:2px solid #e0e0e0;font-size:13px;padding:10px 20px;transition:all .2s ease;white-space:nowrap}.filtro-btn:hover{background:#f5fff5;border-color:#64dc5c}.filtro-btn.active{background:#64dc5c;border-color:#64dc5c}.empty-state{box-shadow:0 2px 8px #00000014}.empty-icon{font-size:64px}.empty-state h3{color:#1a1a1a;font-size:20px;font-weight:700;margin:0 0 12px}.empty-state p{color:#666;font-size:14px;margin:0 0 24px}.btn-nuevo-empty{background:#64dc5c;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:700;padding:12px 24px;transition:all .3s ease}.btn-nuevo-empty:hover{background:#52c348;box-shadow:0 4px 12px #64dc5c4d;transform:translateY(-2px)}.proveedores-lista{grid-gap:16px;align-items:stretch;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(380px,1fr))}.proveedor-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;cursor:pointer;display:flex;flex-direction:column;min-height:280px;overflow:hidden;transition:all .3s ease}.proveedor-card:hover{box-shadow:0 8px 16px #0000001f;transform:translateY(-4px)}.proveedor-header{background:#f9f9f9;border-bottom:1px solid #e5e7eb;flex-wrap:wrap;justify-content:space-between;padding:16px}.proveedor-header,.proveedor-info{align-items:center;display:flex;gap:12px}.proveedor-info{flex:1 1;min-width:0}.proveedor-info h4{color:#1a1a1a;font-size:15px;font-weight:700;margin:0 0 6px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proveedor-clasificacion-badge,.proveedor-tipo-badge{border-radius:12px;color:#fff;font-size:10px;font-weight:700;padding:3px 10px}.proveedor-clasificacion-badge.proveedor{background:#2196f3}.proveedor-clasificacion-badge.contratista{background:#ff5722}.proveedor-stats-mini{display:flex;flex-shrink:0;gap:12px}.proveedor-stats-mini .stat-mini{align-items:center;background:none;border:none;border-radius:0;display:flex;flex-direction:column;gap:2px;padding:0}.stat-mini-value{color:#1a1a1a;font-size:16px;font-weight:700}.stat-mini-label{color:#666;font-size:10px;font-weight:600}.proveedor-contacto{background:#fff;border-bottom:1px solid #f0f0f0;color:#6b7280;display:flex;flex-wrap:wrap;font-size:11px;gap:12px;padding:8px 16px}.proveedor-contacto p{color:#6b7280;font-size:11px;margin:0}.facturas-pendientes{display:flex;flex:1 1;flex-direction:column;padding:12px 16px}.facturas-pendientes h5{color:#374151;font-size:12px;font-weight:700;margin:0 0 8px}.facturas-lista-mini{display:flex;flex-direction:column;gap:6px}.factura-mini.vencida{background:#fef2f2;border-color:#ef4444}.factura-mini-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:6px}.factura-numero{color:#374151;font-size:11px;font-weight:700}.vencido-badge{background:#ef4444;border-radius:8px;color:#fff;font-size:9px;font-weight:700;padding:2px 6px}.factura-mini-info{color:#6b7280;display:flex;font-size:11px;justify-content:space-between;margin-bottom:4px}.factura-proyecto{color:#9ca3af}.factura-proyecto,.ver-mas{font-size:10px;margin:4px 0 0}.ver-mas{color:#3b82f6;font-weight:600;text-align:center}.sin-facturas,.sin-pendientes{align-items:center;color:#9ca3af;display:flex;flex:1 1;font-size:12px;justify-content:center;padding:16px;text-align:center}.sin-pendientes span{color:#10b981;font-weight:600}.proveedor-retencion{align-items:center;background:#f8f9fa;border-bottom:1px solid #e9ecef;display:flex;min-height:60px;padding:10px 16px}.proveedor-retencion.configurada{background:linear-gradient(135deg,#ecfdf5,#f0fdf4);border-left:3px solid #10b981}.proveedor-retencion.sin-configurar{background:#fffbeb;border-left:3px solid #f59e0b}.proveedor-retencion .retenciones-lista{display:flex;flex-direction:column;gap:6px;width:100%}.proveedor-retencion .retencion-item{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:6px;display:flex;gap:8px;justify-content:space-between;padding:6px 10px}.proveedor-retencion .retencion-item.principal{background:#f0fdf4;border-left:3px solid #10b981}.proveedor-retencion .retencion-item.secundaria{background:#eff6ff;border-left:3px solid #3b82f6}.proveedor-retencion .retencion-item .retencion-nombre{color:#374151;flex:1 1;font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proveedor-retencion .retencion-item .retencion-porcentaje{background:#10b981;border-radius:10px;color:#fff;flex-shrink:0;font-size:11px;font-weight:700;padding:2px 8px}.proveedor-retencion .retencion-item.secundaria .retencion-porcentaje{background:#3b82f6}.proveedor-retencion .retencion-item .retencion-base{color:#6b7280;flex-shrink:0;font-size:10px}.retencion-tipo{align-items:center;display:flex;gap:8px}.retencion-label{color:#666;font-size:12px;font-weight:500}.retencion-nombre{color:#2e7d32;font-size:13px;font-weight:600}.retencion-valores{align-items:center;gap:12px}.retencion-porcentaje{background:#4caf50;border-radius:20px;color:#fff;font-size:12px;font-weight:700;padding:4px 10px}.retencion-base{color:#666;font-size:12px}.sin-retencion{color:#d97706;font-size:11px;font-style:italic}.proveedor-badges{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.proveedor-nit{background:#f3f4f6;border-radius:4px;color:#6b7280;font-size:10px;padding:2px 8px}.proveedor-contacto span{align-items:center;display:flex;gap:4px}.prov-filtros-row{align-items:flex-start;gap:32px}.prov-filtro-grupo,.prov-filtros-row{display:flex;flex-direction:row;flex-wrap:wrap}.prov-filtro-grupo{align-items:center;gap:12px}.prov-filtro-grupo .filtros-buttons{align-items:center;display:flex;flex-direction:row;flex-wrap:nowrap;gap:8px}.prov-filtro-grupo label{color:#333;font-size:13px;font-weight:600;margin-right:4px;white-space:nowrap}.prov-filtro-select{background:#fff;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;font-size:13px;min-width:200px;padding:10px 16px}.prov-filtro-select:focus{border-color:#3572b0;border-color:var(--primary-500,#3572b0);outline:none}.form-section-tributaria{background:#f0f7ff;border:1px solid #b3d4fc;border-radius:8px;margin:16px 0;padding:20px}.form-section-tributaria h4{color:#1565c0}.form-group-large{flex:2 1}.facturas-lista-mini .factura-mini{align-items:center;background:#f9fafb;border-left:3px solid #3b82f6;border-radius:6px;display:flex;gap:8px;justify-content:space-between;padding:6px 10px}.facturas-lista-mini .factura-mini.vencida{background:#fef2f2;border-left-color:#ef4444}.facturas-lista-mini .factura-numero{color:#374151;font-size:11px;font-weight:600}.facturas-lista-mini .factura-monto{color:#1f2937;font-size:11px;font-weight:700}.facturas-lista-mini .vencido-badge{background:#ef4444;border-radius:8px;color:#fff;font-size:9px;font-weight:700;padding:2px 6px}.facturas-lista-mini .ver-mas{color:#3b82f6;font-size:10px;font-weight:600;margin-top:2px;padding:4px;text-align:center}@media (max-width:768px){.proveedores-header{align-items:flex-start;flex-direction:column}.btn-nuevo-proveedor{width:100%}.form-row,.proveedores-lista,.stats-grid{grid-template-columns:1fr}.proveedor-header{align-items:flex-start;flex-direction:column}.proveedor-stats-mini{justify-content:space-around;width:100%}.filtros-buttons{flex-direction:column}.filtro-btn{text-align:left;width:100%}.prov-filtro-grupo{align-items:flex-start;flex-direction:column}.prov-filtro-select{width:100%}.proveedor-retencion{align-items:flex-start;flex-direction:column}}.detalle-loading{gap:16px;justify-content:center;min-height:400px}.detalle-loading,.detalle-loading .construction-loader{align-items:center;display:flex;flex-direction:column}.detalle-loading .loader-bricks{display:flex;gap:4px}.detalle-loading .loader-brick{animation:brickPulse 1.2s ease-in-out infinite;background:#f59e0b;border-radius:2px;height:12px;width:20px}.detalle-loading .loader-brick:first-child{animation-delay:0s}.detalle-loading .loader-brick:nth-child(2){animation-delay:.2s}.detalle-loading .loader-brick:nth-child(3){animation-delay:.4s}.detalle-proveedor-v2{display:flex;flex-direction:column;gap:16px;margin:0 auto;max-width:1600px;padding:16px}.header-compacto{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;gap:16px;padding:12px 16px}.btn-volver,.header-compacto{align-items:center;display:flex}.btn-volver{border:none;color:#4b5563;font-size:13px;font-weight:600;gap:6px;padding:8px 14px;white-space:nowrap}.btn-volver svg{height:16px;width:16px}.btn-volver:hover{color:#1f2937}.header-centro{align-items:center;display:flex;flex:1 1;gap:12px;min-width:0}.proveedor-avatar-sm{align-items:center;border-radius:10px;color:#fff;display:flex;flex-shrink:0;font-size:20px;font-weight:700;height:44px;justify-content:center;width:44px}.header-info{flex:1 1;min-width:0}.header-info h1{color:#1f2937;font-size:18px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-meta{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.tipo-badge-sm{color:#fff}.nit-badge,.tipo-badge-sm{border-radius:12px;font-size:11px;font-weight:600;padding:2px 10px}.nit-badge{background:#f3f4f6;color:#6b7280}.retencion-badge-sm{background:linear-gradient(135deg,#3b82f6,#2563eb);border-radius:12px;color:#fff;font-size:11px;font-weight:600;padding:2px 10px}.header-acciones{align-items:center;display:flex;gap:8px}.btn-icon{background:#f3f4f6}.btn-icon svg{color:#6b7280;height:18px;width:18px}.btn-icon:hover{background:#e5e7eb}.btn-icon:hover svg{color:#374151}.btn-nueva-factura-sm{align-items:center;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:6px;padding:8px 16px;transition:all .2s;white-space:nowrap}.btn-nueva-factura-sm svg{height:16px;width:16px}.btn-nueva-factura-sm:hover{box-shadow:0 4px 12px #10b9814d;transform:translateY(-1px)}.panel-principal{grid-gap:16px;align-items:start;display:grid;gap:16px;grid-template-columns:320px 1fr}.columna-info{display:flex;flex-direction:column;gap:12px}.resumen-financiero{grid-gap:8px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;display:grid;gap:8px;grid-template-columns:repeat(2,1fr);padding:12px}.stat-mini{border-left:3px solid;border-radius:8px;display:flex;flex-direction:column;padding:10px}.stat-mini.total{background:#f9fafb;border-color:#9ca3af}.stat-mini.monto{background:#f0fdf4;border-color:#22c55e}.stat-mini.pagado{background:#ecfdf5;border-color:#10b981}.stat-mini.pendiente{background:#fffbeb;border-color:#f59e0b}.stat-mini.vencido{background:#fef2f2;border-color:#ef4444;grid-column:1/-1}.stat-valor{color:#1f2937;font-size:14px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stat-etiqueta{color:#6b7280;font-size:10px;font-weight:600;letter-spacing:.3px;text-transform:uppercase}.seccion-compacta{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;padding:14px}.seccion-compacta h3{border-bottom:1px solid #e5e7eb;color:#374151;font-size:13px;font-weight:700;letter-spacing:.3px;margin:0 0 10px;padding-bottom:8px;text-transform:uppercase}.seccion-compacta.retenciones{background:linear-gradient(135deg,#eff6ff,#dbeafe);border:1px solid #93c5fd}.seccion-compacta.retenciones h3{border-color:#93c5fd;color:#1e40af}.retenciones-lista{display:flex;flex-direction:column;gap:8px}.retencion-item{align-items:center;background:#fff;border:1px solid #bfdbfe;border-radius:8px;display:flex;justify-content:space-between;padding:8px 10px}.retencion-item.principal{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border-color:#22c55e}.retencion-info{align-items:center;display:flex;gap:8px}.retencion-tipo{color:#1e40af;font-size:12px;font-weight:600}.badge-ppal{background:#22c55e;border-radius:8px;color:#fff;font-size:9px;font-weight:700;padding:1px 6px;text-transform:uppercase}.retencion-valores{align-items:flex-end;display:flex;flex-direction:column;gap:2px}.retencion-pct{color:#1f2937;font-size:16px;font-weight:700}.retencion-item.principal .retencion-pct{color:#16a34a}.retencion-base{color:#6b7280;font-size:10px}.regimen-info{align-items:center;border-top:1px solid #93c5fd;display:flex;justify-content:space-between;margin-top:10px;padding-top:10px}.regimen-label{color:#1e40af;font-size:11px;font-weight:600}.regimen-valor{color:#1e3a8a;font-size:12px;font-weight:600}.datos-grid{display:flex;flex-direction:column;gap:6px}.dato-item{align-items:center;background:#f9fafb;border-radius:6px;color:#374151;display:flex;font-size:12px;gap:8px;padding:6px 8px}.dato-item.full{flex-wrap:wrap}.dato-item svg{color:#9ca3af;flex-shrink:0;height:14px;width:14px}.dato-item span{flex:1 1;min-width:0;word-break:break-word}.dato-label{color:#6b7280;flex:none!important;font-weight:600}.cuenta-numero{font-family:Monaco,Consolas,monospace;letter-spacing:.5px}.seccion-compacta.notas p{color:#4b5563;font-size:12px;line-height:1.5;margin:0}.columna-facturas{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;display:flex;flex-direction:column;min-height:400px}.filtros-inline{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:12px 16px}.filtros-titulo{color:#1f2937;font-size:15px;font-weight:700}.filtros-botones{display:flex;flex-wrap:wrap;gap:6px}.filtro-chip{background:#f3f4f6;border:none;border-radius:16px;color:#6b7280;cursor:pointer;font-size:12px;font-weight:600;padding:5px 12px;transition:all .2s}.filtro-chip:hover{background:#e5e7eb;color:#374151}.filtro-chip.active{background:#10b981;color:#fff}.empty-facturas{align-items:center;display:flex;flex:1 1;flex-direction:column;justify-content:center;padding:48px 24px;text-align:center}.empty-facturas svg{color:#d1d5db;height:48px;margin-bottom:12px;width:48px}.empty-facturas p{color:#6b7280;font-size:13px;margin:0 0 16px}.btn-crear-primera{background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:10px 20px;transition:all .2s}.btn-crear-primera:hover{box-shadow:0 4px 12px #10b9814d;transform:translateY(-1px)}.lista-facturas-compacta{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 280px);overflow-y:auto;padding:12px}.lista-facturas-compacta .factura-row{align-items:stretch!important;background:#fff;border-bottom:none;border-left:4px solid #9ca3af;border-radius:12px;box-shadow:0 1px 3px #00000014;display:flex!important;flex-direction:column!important;gap:0!important;grid-template-columns:none!important;overflow:hidden;padding:0!important;transition:all .2s}.lista-facturas-compacta .factura-row:hover{box-shadow:0 4px 12px #0000001a;transform:translateX(2px)}.lista-facturas-compacta .factura-row.pendiente{background:linear-gradient(135deg,#fffbeb,#fef3c7);border-color:#f59e0b}.lista-facturas-compacta .factura-row.pagado_parcial{background:linear-gradient(135deg,#eff6ff,#dbeafe);border-color:#3b82f6}.lista-facturas-compacta .factura-row.pagado{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border-color:#10b981}.lista-facturas-compacta .factura-row.vencido{background:linear-gradient(135deg,#fef2f2,#fee2e2);border-color:#ef4444}.lista-facturas-compacta .factura-row.cancelado{background:#f3f4f6;border-color:#9ca3af}.lista-facturas-compacta .factura-row-header{align-items:center!important;background:#ffffff80;border-bottom:1px solid #00000014;box-sizing:border-box;display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;gap:16px!important;justify-content:space-between!important;padding:12px 16px!important;width:100%}.lista-facturas-compacta .factura-id{align-items:center!important;display:flex!important;flex-shrink:0!important;flex-wrap:wrap!important;gap:10px!important}.lista-facturas-compacta .factura-id strong{color:#1f2937;font-size:15px;font-weight:700}.lista-facturas-compacta .estado-chip{border-radius:12px;color:#fff;font-size:10px;font-weight:700;letter-spacing:.3px;padding:3px 10px;text-transform:uppercase}.lista-facturas-compacta .estado-chip.pendiente{background:linear-gradient(135deg,#f59e0b,#d97706)}.lista-facturas-compacta .estado-chip.pagado_parcial{background:linear-gradient(135deg,#3b82f6,#2563eb)}.lista-facturas-compacta .estado-chip.pagado{background:linear-gradient(135deg,#10b981,#059669)}.lista-facturas-compacta .estado-chip.vencido{background:linear-gradient(135deg,#ef4444,#dc2626)}.lista-facturas-compacta .estado-chip.cancelado{background:#9ca3af}.lista-facturas-compacta .dias-badge{background:linear-gradient(135deg,#ef4444,#dc2626);border-radius:10px;color:#fff;font-size:10px;font-weight:700;padding:3px 8px}.lista-facturas-compacta .factura-monto{align-items:flex-end!important;display:flex!important;flex-direction:column!important;flex-shrink:0!important;gap:2px!important;margin-left:auto!important}.lista-facturas-compacta .monto-total{color:#1f2937;font-size:16px;font-weight:700}.lista-facturas-compacta .monto-neto{background:#10b9811a;border-radius:8px;color:#059669;font-size:11px;font-weight:600;padding:2px 8px}.lista-facturas-compacta .factura-header-spacer{flex:1 1!important;min-width:0!important}.lista-facturas-compacta .factura-row-body{grid-gap:10px 20px!important;align-items:start!important;box-sizing:border-box;display:grid!important;gap:10px 20px!important;grid-template-columns:1fr 1fr 1fr!important;padding:12px 16px!important;width:100%}.lista-facturas-compacta .factura-fechas{color:#6b7280;display:flex!important;flex-direction:column!important;font-size:12px;gap:4px}.lista-facturas-compacta .factura-fechas span{align-items:center;display:flex;gap:6px}.lista-facturas-compacta .factura-fechas span:before{content:"📅";font-size:10px}.lista-facturas-compacta .factura-proyecto{align-items:flex-start;color:#4b5563!important;display:flex!important;font-size:12px!important;font-weight:600!important;gap:6px;margin:0!important}.lista-facturas-compacta .factura-proyecto:before{content:"🏗️";font-size:11px}.lista-facturas-compacta .factura-desc{background:#00000008;border-radius:6px;color:#6b7280;font-size:12px;grid-column:1/-1;line-height:1.4;margin-top:4px;padding:8px 12px}.lista-facturas-compacta .factura-retenciones{color:#dc2626;display:flex!important;flex-wrap:wrap;font-size:11px;font-weight:600;gap:8px;justify-content:flex-start}.lista-facturas-compacta .factura-retenciones span{background:#dc262614;border-radius:6px;padding:2px 8px}.lista-facturas-compacta .factura-retenciones span.sin-retenciones{background:#9ca3af1a;color:#9ca3af;font-weight:500}.lista-facturas-compacta .factura-pagos{border-top:1px solid #0000000f;display:flex;font-size:12px;font-weight:600;gap:20px;grid-column:1/-1;margin-top:6px;padding-top:10px}.lista-facturas-compacta .factura-pagos .pagado{align-items:center;color:#059669;display:flex;gap:4px}.lista-facturas-compacta .factura-pagos .pagado:before{content:"✅";font-size:11px}.lista-facturas-compacta .factura-pagos .saldo{align-items:center;color:#f59e0b;display:flex;gap:4px}.lista-facturas-compacta .factura-pagos .saldo:before{content:"⏳";font-size:11px}.lista-facturas-compacta .factura-row-footer{background:#ffffff80;border-top:1px solid #00000014;box-sizing:border-box;justify-content:flex-end!important;padding:10px 16px!important;width:100%}.lista-facturas-compacta .btn-pago-inline{align-items:center;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:12px;font-weight:600;gap:6px;padding:8px 16px;transition:all .2s}.lista-facturas-compacta .btn-pago-inline:before{content:"💳";font-size:12px}.lista-facturas-compacta .btn-pago-inline:hover{box-shadow:0 4px 12px #3b82f659;transform:translateY(-2px)}@media (max-width:1024px){.panel-principal{grid-template-columns:280px 1fr}}@media (max-width:900px){.panel-principal{grid-template-columns:1fr}.columna-info{order:2}.columna-facturas{min-height:auto;order:1}.lista-facturas-compacta{max-height:400px}.resumen-financiero{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}}@media (max-width:640px){.detalle-proveedor-v2{padding:12px}.header-compacto{flex-wrap:wrap;gap:12px}.header-centro{flex:none;order:3;width:100%}.btn-volver{order:1}.header-acciones{margin-left:auto;order:2}.btn-nueva-factura-sm span{display:none}.filtros-inline{align-items:stretch;flex-direction:column}.filtros-botones{justify-content:center}.resumen-financiero{grid-template-columns:1fr 1fr}.lista-facturas-compacta .factura-row-header{gap:8px;grid-template-columns:1fr auto}.lista-facturas-compacta .factura-header-spacer{display:none}.lista-facturas-compacta .factura-monto{align-items:flex-end}.lista-facturas-compacta .factura-row-body{gap:10px!important;grid-template-columns:1fr!important}.lista-facturas-compacta .factura-fechas{flex-direction:row!important;flex-wrap:wrap;gap:12px}.lista-facturas-compacta .factura-retenciones{justify-content:flex-start}}.lista-facturas-compacta .factura-adjunto{border-top:1px dashed #e5e7eb;grid-column:1/-1;margin-top:8px;padding-top:8px}.btn-ver-adjunto{align-items:center;background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;color:#2563eb;cursor:pointer;display:inline-flex;font-size:.8rem;font-weight:500;gap:6px;padding:6px 12px;transition:all .2s ease}.btn-ver-adjunto:hover{background:#dbeafe;border-color:#93c5fd}.btn-ver-adjunto svg{color:#3b82f6}.lista-facturas-compacta .factura-row-footer{align-items:center;background:#f9fafb;border-radius:0 0 10px 10px;border-top:1px solid #e5e7eb;display:flex!important;gap:12px;padding:12px 16px}.btn-eliminar-factura{align-items:center;background:#fee2e2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;cursor:pointer;display:flex;height:36px;justify-content:center;margin-left:auto;padding:0;transition:all .2s ease;width:36px}.btn-eliminar-factura:hover:not(:disabled){background:#fecaca;border-color:#f87171}.btn-eliminar-factura:disabled{cursor:not-allowed;opacity:.6}.btn-eliminar-factura svg{height:18px;width:18px}.btn-spinner-small{animation:spin 1s linear infinite;border:2px solid #dc26264d;border-radius:50%;border-top-color:#dc2626;height:16px;width:16px}.fecha-vencimiento-container{align-items:center;display:flex;gap:6px}.btn-editar-fecha{align-items:center;background:#0000;border:1px solid #d1d5db;border-radius:4px;color:#6b7280;cursor:pointer;display:flex;height:22px;justify-content:center;padding:0;transition:all .2s;width:22px}.btn-editar-fecha:hover{background:#f3f4f6;border-color:#9ca3af;color:#374151}.btn-editar-fecha svg{height:12px;width:12px}.editar-fecha-inline{align-items:center;display:flex;gap:4px}.input-fecha-vencimiento{background:#fff;border:1px solid #d1d5db;border-radius:4px;color:#374151;font-size:12px;padding:4px 8px}.input-fecha-vencimiento:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633;outline:none}.btn-cancelar-fecha,.btn-guardar-fecha{align-items:center;border:none;border-radius:4px;cursor:pointer;display:flex;height:24px;justify-content:center;padding:0;transition:all .2s;width:24px}.btn-guardar-fecha{background:#10b981;color:#fff}.btn-guardar-fecha:hover:not(:disabled){background:#059669}.btn-cancelar-fecha{background:#ef4444;color:#fff}.btn-cancelar-fecha:hover:not(:disabled){background:#dc2626}.btn-cancelar-fecha:disabled,.btn-guardar-fecha:disabled{cursor:not-allowed;opacity:.6}.btn-cancelar-fecha svg,.btn-guardar-fecha svg{height:14px;width:14px}.modal-overlay{animation:fadeIn .2s ease-out}.modal-crear-factura{animation:slideUp .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 25px 50px -12px #00000040;max-height:95vh;max-width:1800px;min-width:1400px;overflow-y:auto;width:98vw}.modal-crear-factura .modal-header{align-items:center;background:linear-gradient(135deg,#3b82f6,#2563eb);border-bottom:1px solid #e5e7eb;border-radius:16px 16px 0 0;display:flex;justify-content:space-between;padding:16px 24px;position:-webkit-sticky;position:sticky;top:0;z-index:10}.modal-crear-factura .modal-header h2{color:#fff;font-size:1.15rem;font-weight:600;margin:0}.modal-crear-factura .modal-close{align-items:center;background:#fff3;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;height:32px;justify-content:center;transition:background .2s;width:32px}.modal-crear-factura .modal-close:hover{background:#ffffff4d}.factura-proveedor-info{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border-bottom:1px solid #86efac;display:flex;flex-direction:column;gap:8px;padding:12px 24px}.factura-proveedor-info .proveedor-nombre{color:#166534;font-size:1rem;font-weight:700}.proveedor-retenciones-badges{display:flex;flex-wrap:wrap;gap:8px}.proveedor-retencion-info{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.retencion-badge{align-items:center;background:#fff;border:1px solid #86efac;border-radius:16px;color:#166534;display:inline-flex;font-size:.75rem;font-weight:500;padding:3px 10px}.retencion-badge.principal{background:#166534;border-color:#166534;color:#fff}.retencion-base{color:#64748b;font-size:.8rem}.sin-retencion-info{color:#9ca3af;font-size:.8rem;font-style:italic}.modal-crear-factura .factura-form{display:flex;flex-direction:column;padding:0}.modal-crear-factura .form-section-top{grid-gap:0;display:grid;gap:0;grid-template-columns:1fr 1fr}.modal-crear-factura .form-section-top>.form-section{border-bottom:none;border-right:1px solid #f3f4f6}.modal-crear-factura .form-section-top>.form-section:last-child{border-right:none}.modal-crear-factura .form-section-main{grid-gap:0;border-top:1px solid #e5e7eb;display:grid;gap:0;grid-template-columns:2fr 1fr}.modal-crear-factura .form-section{border-bottom:1px solid #f3f4f6;padding:16px 20px}.modal-crear-factura .form-section:last-of-type{border-bottom:none}.modal-crear-factura .form-section h4{align-items:center;color:#374151;display:flex;font-size:.9rem;font-weight:600;gap:8px;margin:0 0 12px}.modal-crear-factura .form-section h4 svg{color:#6b7280}.modal-crear-factura .section-hint{color:#6b7280;font-size:.8rem;margin:-8px 0 12px}.modal-crear-factura .form-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,1fr)}.modal-crear-factura .form-group{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.modal-crear-factura .form-group:last-child{margin-bottom:0}.modal-crear-factura .form-group label{color:#374151;font-size:.75rem;font-weight:600;letter-spacing:.3px;text-transform:uppercase}.modal-crear-factura .form-group input,.modal-crear-factura .form-group select,.modal-crear-factura .form-group textarea{background:#fff;border:1.5px solid #e5e7eb;border-radius:6px;font-size:.9rem;padding:8px 12px;transition:all .2s}.modal-crear-factura .form-group input:focus,.modal-crear-factura .form-group select:focus,.modal-crear-factura .form-group textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a;outline:none}.modal-crear-factura .form-group input.error{border-color:#ef4444}.modal-crear-factura .form-group input:disabled{background:#f9fafb;color:#6b7280}.modal-crear-factura .error-message{color:#ef4444;font-size:.7rem}.proyectos-selector{margin-bottom:12px;position:relative}.busqueda-proyecto{position:relative}.busqueda-proyecto input{border:2px solid #e5e7eb;border-radius:8px;font-size:.9rem;padding:10px 36px 10px 12px;transition:all .2s;width:100%}.busqueda-proyecto input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.busqueda-proyecto input.error{border-color:#ef4444}.busqueda-proyecto .search-icon{color:#9ca3af;position:absolute;right:12px;top:50%;transform:translateY(-50%)}.lista-proyectos-dropdown{background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 10px 25px #00000026;left:0;margin-top:4px;max-height:200px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:100}.proyecto-opcion{align-items:center;border-bottom:1px solid #f3f4f6;cursor:pointer;display:flex;justify-content:space-between;padding:10px 14px;transition:background .15s}.proyecto-opcion:last-child{border-bottom:none}.proyecto-opcion:hover{background:#f0f9ff}.proyecto-opcion-info{display:flex;flex-direction:column;gap:2px}.proyecto-opcion-nombre{color:#1f2937;font-size:.85rem;font-weight:600}.proyecto-opcion-cliente{color:#6b7280;font-size:.75rem}.proyecto-opcion svg{color:#10b981}.sin-resultados{color:#6b7280;font-size:.85rem;padding:16px;text-align:center}.proyectos-seleccionados{background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;padding:12px}.proyectos-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:10px;padding-bottom:10px}.proyectos-header span{color:#374151;font-size:.85rem;font-weight:600}.btn-distribuir{background:#dbeafe;border:none;border-radius:5px;color:#1d4ed8;cursor:pointer;font-size:.75rem;font-weight:600;padding:5px 10px;transition:all .2s}.btn-distribuir:hover{background:#bfdbfe}.proyecto-seleccionado-item{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:6px;display:flex;gap:10px;margin-bottom:6px;padding:10px}.proyecto-seleccionado-item:last-of-type{margin-bottom:0}.proyecto-seleccionado-item .proyecto-info{display:flex;flex:1 1;flex-direction:column;gap:2px}.proyecto-seleccionado-item .proyecto-info strong{color:#1f2937;font-size:.85rem}.proyecto-seleccionado-item .proyecto-info span{color:#6b7280;font-size:.75rem}.proyecto-capitulo{flex:1 1;min-width:180px}.proyecto-capitulo .select-capitulo-mini{background:#fff;border:1px solid #e5e7eb;border-radius:5px;cursor:pointer;font-size:.8rem;padding:6px 10px;width:100%}.proyecto-capitulo .select-capitulo-mini:focus{border-color:#3b82f6;outline:none}.proyecto-valor{align-items:center;display:flex;gap:6px}.proyecto-valor label{color:#6b7280;font-size:.7rem;white-space:nowrap}.proyecto-valor input{border:1px solid #e5e7eb;border-radius:5px;font-size:.85rem;padding:6px 10px;text-align:right;width:110px}.proyecto-valor input:focus{border-color:#3b82f6;outline:none}.btn-remover-proyecto{align-items:center;background:#fee2e2;border:none;border-radius:5px;color:#dc2626;cursor:pointer;display:flex;justify-content:center;padding:5px;transition:all .2s}.btn-remover-proyecto:hover{background:#fecaca}.distribucion-resumen{background:#fff;border:2px solid #e5e7eb;border-radius:6px;margin-top:10px;padding:10px}.distribucion-resumen.error{background:#fef2f2;border-color:#fca5a5}.distribucion-resumen.ok{background:#f0fdf4;border-color:#86efac}.distribucion-linea{color:#374151;display:flex;font-size:.8rem;justify-content:space-between;padding:3px 0}.distribucion-linea.diferencia{border-top:1px solid #e5e7eb;font-weight:600;margin-top:3px;padding-top:6px}.distribucion-linea.diferencia.ok{color:#16a34a}.distribucion-linea.diferencia.warning{color:#dc2626}.modal-crear-factura .form-section-items{background:#fafbfc;border-bottom:none;border-right:1px solid #e5e7eb}.modal-crear-factura .nuevo-item-form{background:#fff;border:2px dashed #d1d5db;border-radius:10px;margin-bottom:12px;padding:12px}.modal-crear-factura .nuevo-item-row{grid-gap:10px;align-items:end;display:grid;gap:10px;grid-template-columns:1fr 70px 100px 110px 70px 40px}.modal-crear-factura .nuevo-item-row .form-group{margin-bottom:0}.modal-crear-factura .nuevo-item-row .form-group label{font-size:.7rem;margin-bottom:3px}.modal-crear-factura .nuevo-item-row .form-group input,.modal-crear-factura .nuevo-item-row .form-group select{font-size:.85rem;padding:6px 8px}.modal-crear-factura .btn-agregar-item{align-items:center;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;height:36px;justify-content:center;padding:8px;transition:all .2s;width:36px}.modal-crear-factura .btn-agregar-item:hover:not(:disabled){box-shadow:0 4px 12px #10b9814d;transform:translateY(-1px)}.modal-crear-factura .btn-agregar-item:disabled{cursor:not-allowed;opacity:.5}.modal-crear-factura .items-lista{background:#fff;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}.modal-crear-factura .items-header{grid-gap:6px;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-bottom:2px solid #e5e7eb;color:#64748b;display:grid;font-size:.65rem;font-weight:700;gap:6px;grid-template-columns:2fr 60px 70px 90px 50px 100px 36px;letter-spacing:.3px;padding:8px 10px;text-transform:uppercase}.modal-crear-factura .items-header span:not(:first-child){text-align:right}.modal-crear-factura .item-row{grid-gap:6px;align-items:center;border-bottom:1px solid #f3f4f6;display:grid;font-size:.8rem;gap:6px;grid-template-columns:2fr 60px 70px 90px 50px 100px 36px;padding:8px 10px;transition:background .15s}.modal-crear-factura .item-row:hover{background:#f8fafc}.modal-crear-factura .item-row:last-child{border-bottom:none}.modal-crear-factura .item-row .col-descripcion{align-items:center;color:#1f2937;display:flex;font-size:.78rem;font-weight:500;gap:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-crear-factura .item-numero{color:#9ca3af;font-size:.75rem;font-weight:600}.modal-crear-factura .item-row .col-acciones,.modal-crear-factura .item-row .col-cantidad,.modal-crear-factura .item-row .col-subtotal,.modal-crear-factura .item-row .col-valor{text-align:right}.modal-crear-factura .item-row .col-iva,.modal-crear-factura .item-row .col-unidad{color:#6b7280;font-size:.75rem;text-align:right}.modal-crear-factura .item-row .col-subtotal{color:#059669;font-weight:600}.modal-crear-factura .input-editable{background:#f9fafb;border:1px solid #e5e7eb;border-radius:4px;box-sizing:border-box;font-size:.75rem;max-width:100%;padding:4px 5px;text-align:right;transition:all .2s;width:100%}.modal-crear-factura .input-editable:focus{background:#fff;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a;outline:none}.modal-crear-factura .btn-eliminar-item{align-items:center;background:#fee2e2;border:none;border-radius:4px;color:#dc2626;cursor:pointer;display:flex;justify-content:center;margin-left:auto;padding:4px;transition:all .2s}.modal-crear-factura .btn-eliminar-item:hover{background:#fecaca}.modal-crear-factura .items-totales{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border-top:2px solid #86efac;padding:12px}.modal-crear-factura .items-totales .total-linea{color:#374151;display:flex;font-size:.85rem;gap:16px;justify-content:flex-end;padding:3px 0}.modal-crear-factura .items-totales .total-label{min-width:100px;text-align:right}.modal-crear-factura .items-totales .total-valor{font-weight:600;min-width:100px;text-align:right}.modal-crear-factura .items-totales .total-final{border-top:2px solid #86efac;margin-top:4px;padding-top:6px}.modal-crear-factura .items-totales .total-final .total-label,.modal-crear-factura .items-totales .total-final .total-valor{color:#166534;font-size:.95rem;font-weight:700}.modal-crear-factura .items-empty{align-items:center;background:#fff;border:2px dashed #e5e7eb;border-radius:8px;display:flex;flex-direction:row;gap:10px;justify-content:center;padding:16px;text-align:center}.modal-crear-factura .items-empty svg{color:#d1d5db;flex-shrink:0}.modal-crear-factura .items-empty p{color:#9ca3af;font-size:.8rem;margin:0}.modal-crear-factura .form-section-resumen{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border-left:2px solid #86efac;display:flex;flex-direction:column;padding:16px}.modal-crear-factura .form-section-resumen h4{align-items:center;color:#059669;display:flex;font-size:1rem;gap:8px;margin-bottom:12px}.modal-crear-factura .form-section-resumen h4 svg{color:#10b981}.modal-crear-factura .form-section-resumen .section-hint.alerta{align-items:center;background:#fef3c7;border:1px solid #fbbf24;border-radius:6px;color:#92400e;display:flex;font-size:.8rem;gap:6px;margin-bottom:12px;padding:8px 12px}.modal-crear-factura .valores-resumen-unico{background:#fff;border:2px solid #86efac;border-radius:10px;box-shadow:0 4px 12px #10b9811a;flex:1 1;padding:16px}.modal-crear-factura .valores-resumen-unico .resumen-linea{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;font-size:.9rem;justify-content:space-between;padding:8px 0}.modal-crear-factura .valores-resumen-unico .resumen-linea:last-child{border-bottom:none}.modal-crear-factura .valores-resumen-unico .resumen-linea.total{border-bottom:2px solid #10b981;color:#1f2937;font-size:1rem;font-weight:700;padding:10px 0}.modal-crear-factura .valores-resumen-unico hr{background:#d1d5db;border:none;height:1px;margin:8px 0}.modal-crear-factura .valores-resumen-unico .resumen-seccion-titulo{border-bottom:1px dashed #d1d5db;color:#6b7280;font-size:.8rem;font-weight:600;letter-spacing:.5px;margin-bottom:6px;padding-bottom:6px;text-transform:uppercase}.modal-crear-factura .valores-resumen-unico .resumen-linea.retencion{color:#dc2626;font-size:.85rem;padding:6px 0}.modal-crear-factura .valores-resumen-unico .resumen-linea.retencion span:last-child{font-weight:500}.modal-crear-factura .valores-resumen-unico .resumen-linea.total-retenciones{background:#fef2f2;border-bottom:none;color:#dc2626;font-weight:600;margin:6px -16px;padding:10px 16px}.modal-crear-factura .valores-resumen-unico .resumen-linea.neto{border-bottom:none;border-top:3px solid #10b981;color:#059669;font-size:1.1rem;font-weight:700;margin-top:8px;padding:12px 0 6px}.modal-crear-factura .valores-resumen-unico .resumen-linea.neto span:last-child{color:#047857;font-size:1.2rem}.modal-crear-factura .form-section-adicional{background:#f9fafb;border-top:1px solid #e5e7eb;padding:12px 20px}.modal-crear-factura .form-section-adicional h4{margin-bottom:10px}.modal-crear-factura .form-section-adicional .form-row-adicional{grid-gap:12px;display:grid;gap:12px;grid-template-columns:2fr 1fr 1fr}.modal-crear-factura .form-section-adicional .form-row-adicional .form-group{margin-bottom:0}.modal-crear-factura .form-section-adicional .form-row{grid-template-columns:repeat(3,1fr)}.modal-crear-factura .form-section-adicional textarea{min-height:50px;resize:vertical}.modal-crear-factura .modal-footer{background:#f9fafb;border-radius:0 0 16px 16px;border-top:1px solid #e5e7eb;bottom:0;display:flex;gap:10px;justify-content:flex-end;padding:14px 20px;position:-webkit-sticky;position:sticky}.modal-crear-factura .btn-cancelar{background:#fff;border:2px solid #e5e7eb;border-radius:6px;color:#6b7280;cursor:pointer;font-size:.9rem;font-weight:600;padding:8px 20px;transition:all .2s}.modal-crear-factura .btn-cancelar:hover{background:#f9fafb;border-color:#d1d5db}.modal-crear-factura .btn-guardar{background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:8px 20px;transition:all .2s}.modal-crear-factura .btn-guardar:hover:not(:disabled){box-shadow:0 4px 12px #10b9814d;transform:translateY(-1px)}.modal-crear-factura .btn-guardar:disabled{cursor:not-allowed;opacity:.6}@media (max-width:1200px){.modal-crear-factura{min-width:0;min-width:auto;width:98%}.modal-crear-factura .form-section-top{grid-template-columns:1fr}.modal-crear-factura .form-section-top>.form-section{border-bottom:1px solid #f3f4f6;border-right:none}.modal-crear-factura .form-section-main{grid-template-columns:1fr}.modal-crear-factura .form-section-items{border-bottom:1px solid #e5e7eb;border-right:none}.modal-crear-factura .form-section-resumen{border-left:none;border-top:2px solid #86efac}.modal-crear-factura .nuevo-item-row{grid-template-columns:1fr 70px 90px 100px 65px 40px}}@media (max-width:768px){.modal-crear-factura{border-radius:0;max-height:100vh;min-width:0;min-width:auto;width:100%}.modal-crear-factura .modal-header{border-radius:0}.modal-crear-factura .form-row,.modal-crear-factura .form-section-adicional .form-row,.modal-crear-factura .form-section-adicional .form-row-adicional{grid-template-columns:1fr}.modal-crear-factura .items-header{display:none}.modal-crear-factura .item-row{display:flex;flex-direction:column;gap:6px;padding:12px;position:relative}.modal-crear-factura .item-row .col-descripcion{font-size:.9rem;white-space:normal}.modal-crear-factura .item-row>span:not(.col-descripcion):not(.col-acciones){display:flex;justify-content:space-between;text-align:left;width:100%}.modal-crear-factura .item-row .col-cantidad:before{color:#6b7280;content:"Cant: ";font-weight:400}.modal-crear-factura .item-row .col-unidad:before{color:#6b7280;content:"Und: ";font-weight:400}.modal-crear-factura .item-row .col-valor:before{color:#6b7280;content:"V.Unit: ";font-weight:400}.modal-crear-factura .item-row .col-iva:before{color:#6b7280;content:"IVA: ";font-weight:400}.modal-crear-factura .item-row .col-subtotal:before{color:#6b7280;content:"Subt: ";font-weight:400}.modal-crear-factura .item-row .col-acciones{position:absolute;right:10px;top:10px}.modal-crear-factura .nuevo-item-row{gap:8px;grid-template-columns:1fr}.modal-crear-factura .btn-agregar-item{justify-content:center;width:100%}.modal-crear-factura .modal-footer{border-radius:0}.proyecto-seleccionado-item,.proyecto-valor{align-items:stretch;flex-direction:column}.proyecto-valor input{width:100%}}.modal-crear-factura .item-iva-select{align-items:center;display:flex;flex-direction:column;min-width:70px}.modal-crear-factura .item-iva-select label{color:#374151;font-size:.75rem;font-weight:600;margin-bottom:4px}.modal-crear-factura .select-iva{background:#fff;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;font-size:.85rem;padding:6px 4px;text-align:center;width:65px}.modal-crear-factura .select-iva:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633;outline:none}.modal-crear-factura .item-row .col-iva{align-items:center;display:flex;justify-content:center}.modal-crear-factura .select-iva-mini{background:#fff;border:1px solid #d1d5db;border-radius:4px;cursor:pointer;font-size:.75rem;font-weight:600;padding:4px 2px;text-align:center;width:55px}.modal-crear-factura .select-iva-mini:focus{border-color:#3b82f6;outline:none}.modal-crear-factura .item-row.sin-iva{background:#fef2f2}.modal-crear-factura .item-row.sin-iva:hover{background:#fee2e2}.modal-crear-factura .nuevo-item-row{grid-template-columns:1fr 70px 100px 110px 70px auto}.modal-crear-factura .btn-agregar-item{font-size:.8rem;gap:4px;min-width:90px;padding:8px 12px;width:auto}.modal-crear-factura .form-section-plan-pagos{background:#fefce8;border-top:2px solid #fde047;padding:16px 20px}.plan-pagos-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.checkbox-plan-pagos{align-items:center;cursor:pointer;display:flex;gap:10px}.checkbox-plan-pagos input[type=checkbox]{accent-color:#eab308;cursor:pointer;height:20px;width:20px}.checkbox-plan-pagos h4{align-items:center;color:#854d0e;display:flex;font-size:.95rem;gap:8px;margin:0}.checkbox-plan-pagos h4 svg{color:#ca8a04}.btn-agregar-cuota{background:#fef08a;border:1px solid #fde047;border-radius:6px;color:#854d0e;cursor:pointer;font-size:.8rem;font-weight:600;padding:6px 12px;transition:all .2s}.btn-agregar-cuota:hover{background:#fde047}.plan-pagos-contenido{background:#fff;border:1px solid #fde047;border-radius:10px;padding:16px}.plan-pagos-hint{background:#fef9c3;border:1px solid #fde047;border-radius:6px;color:#713f12;font-size:.8rem;line-height:1.4;margin:0 0 16px;padding:10px 12px}.cuotas-lista{margin-bottom:16px}.cuotas-header{background:#fef9c3;border-radius:6px 6px 0 0;color:#854d0e;font-size:.7rem;font-weight:700;letter-spacing:.3px;padding:8px 12px;text-transform:uppercase}.cuota-row,.cuotas-header{grid-gap:10px;display:grid;gap:10px;grid-template-columns:60px 1fr 140px 130px 36px}.cuota-row{align-items:center;background:#fff;border:1px solid #fde047;border-top:none;padding:10px 12px}.cuota-row:last-child{border-radius:0 0 6px 6px}.cuota-numero{color:#ca8a04;font-size:.9rem;font-weight:700}.cuota-factura{align-items:center;display:flex;gap:2px}.cuota-factura .factura-base{color:#6b7280;font-size:.85rem;font-weight:500}.cuota-factura .input-sufijo{font-weight:600;padding:6px 8px;width:60px}.cuota-factura .input-sufijo,.cuota-row .input-fecha{border:1px solid #e5e7eb;border-radius:4px;font-size:.85rem}.cuota-row .input-fecha{padding:6px 10px}.cuota-row .input-monto{border:1px solid #e5e7eb;border-radius:4px;font-size:.85rem;font-weight:600;padding:6px 10px;text-align:right}.cuota-factura .input-sufijo:focus,.cuota-row .input-fecha:focus,.cuota-row .input-monto:focus{border-color:#eab308;box-shadow:0 0 0 2px #eab30833;outline:none}.btn-eliminar-cuota{align-items:center;background:#fee2e2;border:none;border-radius:4px;color:#dc2626;cursor:pointer;display:flex;justify-content:center;padding:6px;transition:all .2s}.btn-eliminar-cuota:hover{background:#fecaca}.plan-pagos-resumen{background:#fef9c3;border:1px solid #fde047;border-radius:8px;padding:12px}.plan-pagos-resumen .resumen-linea{color:#374151;display:flex;font-size:.85rem;justify-content:space-between;padding:6px 0}.plan-pagos-resumen .resumen-linea.diferencia{border-top:2px solid #fde047;font-weight:700;margin-top:6px;padding-top:10px}.plan-pagos-resumen .resumen-linea.diferencia.ok{color:#16a34a}.plan-pagos-resumen .resumen-linea.diferencia.warning{color:#dc2626}.btn-distribuir-cuotas{background:linear-gradient(135deg,#fde047,#facc15);border:none;border-radius:6px;color:#713f12;cursor:pointer;font-size:.85rem;font-weight:600;margin-top:12px;padding:8px 16px;transition:all .2s;width:100%}.btn-distribuir-cuotas:hover{box-shadow:0 4px 12px #eab3084d;transform:translateY(-1px)}@media (max-width:768px){.cuotas-header{display:none}.cuota-row{display:flex;flex-direction:column;gap:8px;padding:12px}.cuota-factura,.cuota-row .input-fecha,.cuota-row .input-monto{width:100%}.btn-eliminar-cuota{align-self:flex-end}}.form-group-adjunto{border-top:1px solid #e5e7eb;margin-top:16px;padding-top:16px}.form-group-adjunto>label{align-items:center;color:#374151;display:flex;font-size:.875rem;font-weight:600;gap:8px;margin-bottom:10px}.form-group-adjunto>label svg{color:#6b7280}.adjunto-input-container{align-items:center;display:flex;gap:12px}.input-file-hidden{display:none}.btn-seleccionar-archivo{align-items:center;background:#f3f4f6;border:2px dashed #d1d5db;border-radius:8px;color:#374151;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;gap:8px;padding:10px 16px;transition:all .2s ease}.btn-seleccionar-archivo:hover{background:#e5e7eb;border-color:#9ca3af}.btn-seleccionar-archivo svg{color:#6b7280}.adjunto-hint{color:#9ca3af;font-size:.75rem}.adjunto-preview{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;justify-content:space-between;margin-top:12px;padding:12px}.adjunto-info,.adjunto-preview{align-items:center;display:flex}.adjunto-info{gap:12px}.adjunto-thumbnail{border:1px solid #e5e7eb;border-radius:6px;height:48px;object-fit:cover;width:48px}.adjunto-icon{align-items:center;background:#e5e7eb;border-radius:6px;display:flex;height:48px;justify-content:center;width:48px}.adjunto-icon svg{color:#6b7280}.adjunto-detalles{display:flex;flex-direction:column;gap:2px}.adjunto-nombre{color:#374151;font-size:.875rem;font-weight:500;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adjunto-size{color:#9ca3af;font-size:.75rem}.btn-eliminar-adjunto{align-items:center;background:#fee2e2;border:none;border-radius:6px;color:#dc2626;cursor:pointer;display:flex;justify-content:center;padding:8px;transition:all .2s}.btn-eliminar-adjunto:hover{background:#fecaca}@media (max-width:768px){.adjunto-input-container,.adjunto-preview{align-items:flex-start;flex-direction:column}.adjunto-preview{gap:12px}.btn-eliminar-adjunto{align-self:flex-end}}.modal-registrar-pago{max-width:600px}.modal-registrar-pago .modal-header{background:#1a2432;border-bottom:none;padding:20px 24px}.modal-registrar-pago .modal-header h2{align-items:center;color:#fff;display:flex;gap:10px}.modal-registrar-pago .modal-header h2 svg{color:#fff;height:24px;width:24px}.modal-registrar-pago .modal-close{background:#ffffff1a;border-radius:8px;transition:all .2s ease}.modal-registrar-pago .modal-close:hover{background:#fff3}.modal-registrar-pago .modal-close svg{color:#fff;height:18px;width:18px}.pago-info-factura{background:#fff;border-bottom:1px solid #e5e7eb;color:#1f2937;padding:20px 24px}.factura-numero{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;gap:12px;margin-bottom:16px;padding-bottom:12px}.factura-numero .label{color:#6b7280;font-size:.875rem}.factura-numero .numero{color:#1f2937;font-size:1.25rem;font-weight:700}.factura-valores{display:flex;flex-direction:column;gap:8px}.valor-item{align-items:center;display:flex;justify-content:space-between;padding:6px 0}.valor-item.total{border-top:1px solid #e5e7eb;margin-top:4px;padding:12px 0}.valor-label{color:#6b7280;font-size:.875rem}.valor-monto{color:#1f2937;font-size:1rem;font-weight:600}.valor-item.total .valor-label{color:#374151;font-weight:600}.valor-item.total .valor-monto{color:#1f2937;font-size:1.1rem}.retenciones-seccion{background:#fef3c7;border:1px solid #fbbf24;border-radius:8px;margin:12px 0;padding:12px}.retenciones-titulo{color:#92400e;font-size:.75rem;font-weight:600;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.valor-item.retencion{padding:4px 0}.valor-item.retencion .valor-label{color:#78350f;font-size:.8rem}.valor-monto.negativo{color:#dc2626}.valor-item.valor-neto{border-top:1px solid #fbbf24;margin-top:8px;padding-top:10px}.valor-item.valor-neto .valor-label{color:#92400e;font-weight:600}.valor-item.valor-neto .valor-monto{color:#059669;font-size:1.1rem;font-weight:700}.estado-pago{border-top:1px solid #e5e7eb;margin-top:12px;padding-top:12px}.valor-item.pagado .valor-monto{color:#059669}.valor-item.saldo-pendiente{background:#fef3c7;border:1px solid #fbbf24;border-radius:8px;margin-top:8px;padding:12px}.valor-item.saldo-pendiente .valor-label{color:#78350f;font-weight:600}.valor-item.saldo-pendiente .valor-monto.destacado{color:#1a2432;font-size:1.5rem;font-weight:700}.pago-form{display:flex;flex-direction:column;gap:16px;padding:24px}.input-with-prefix{align-items:stretch;background:#fff;border:2px solid #e5e7eb;border-radius:8px;display:flex;flex:1 1;overflow:hidden;transition:all .2s ease}.input-with-prefix:focus-within{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.input-prefix{align-items:center;background:#f3f4f6;color:#6b7280;display:flex;font-size:1rem;font-weight:600;justify-content:center;padding:0 14px}.input-with-prefix input{border:none;flex:1 1;font-size:1.1rem;font-weight:600;padding:12px}.input-with-prefix input:focus{box-shadow:none;outline:none}.input-with-prefix input.error{border:none}.monto-input-group{align-items:flex-start;display:flex;gap:12px}.btn-pagar-completo{align-items:center;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:.875rem;font-weight:600;gap:8px;padding:12px 16px;transition:all .3s ease;white-space:nowrap}.btn-pagar-completo svg{height:18px;width:18px}.btn-pagar-completo:hover{box-shadow:0 6px 16px #10b98166;transform:translateY(-2px)}@media (max-width:640px){.modal-registrar-pago{max-width:95vw}.pago-form{padding:16px}.form-row{grid-template-columns:1fr}.monto-input-group{flex-direction:column}.btn-pagar-completo{justify-content:center;width:100%}.modal-footer{flex-direction:column}.btn-cancelar,.btn-guardar{justify-content:center;width:100%}}.modal-editar-proveedor{max-height:90vh;max-width:800px;overflow-y:auto}.modal-editar-proveedor .modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:20px 24px}.modal-editar-proveedor .modal-header h2{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0}.modal-editar-proveedor .modal-close{align-items:center;background:#f3f4f6;border:none;border-radius:8px;cursor:pointer;display:flex;height:32px;justify-content:center;transition:all .2s ease;width:32px}.modal-editar-proveedor .modal-close:hover{background:#e5e7eb}.modal-editar-proveedor .modal-close svg{color:#6b7280;height:18px;width:18px}.proveedor-form{gap:24px;padding:24px}.form-section,.proveedor-form{display:flex;flex-direction:column}.form-section{background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;gap:16px;padding:20px}.form-section h3{align-items:center;border-bottom:2px solid #3b82f6;color:#374151;display:flex;font-size:1rem;font-weight:600;gap:10px;margin:0 0 8px;padding-bottom:10px}.form-section h3 svg{color:#3b82f6;height:20px;width:20px}.form-section-tributaria{background:linear-gradient(135deg,#eff6ff,#f0f9ff);border:1px solid #bfdbfe}.form-section-tributaria h3{border-bottom-color:#2563eb;color:#1e40af}.form-section-tributaria h3 svg{color:#2563eb}.tributaria-info-banner{align-items:flex-start;background:#fff;border:1px solid #93c5fd;border-radius:8px;display:flex;gap:12px;padding:12px 16px}.tributaria-info-banner svg{color:#3b82f6;flex-shrink:0;height:20px;margin-top:2px;width:20px}.tributaria-info-banner span{color:#1e40af;font-size:.875rem;line-height:1.5}.form-row{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.form-group input,.form-group select,.form-group textarea{background:#fff;border:2px solid #e5e7eb;font-family:inherit}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-group input.error,.form-group select.error{border-color:#ef4444}.form-group textarea{min-height:80px}.error-message{color:#ef4444;font-size:.8rem;font-weight:500}.input-with-prefix,.input-with-suffix{align-items:stretch;background:#fff;border:2px solid #e5e7eb;border-radius:8px;display:flex;overflow:hidden;transition:all .2s ease}.input-with-prefix:focus-within,.input-with-suffix:focus-within{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.input-prefix,.input-suffix{align-items:center;background:#f3f4f6;color:#6b7280;display:flex;font-size:.9rem;font-weight:600;justify-content:center;padding:0 12px}.input-with-prefix input,.input-with-suffix input{border:none;flex:1 1;font-size:.95rem;padding:12px}.input-with-prefix input:focus,.input-with-suffix input:focus{box-shadow:none;outline:none}.field-hint{color:#6b7280;font-size:.8rem;margin-top:4px}.retencion-preview{background:#fff;border:1px solid #93c5fd;border-radius:8px;padding:16px}.preview-title{color:#1e40af;font-size:.85rem;font-weight:600;letter-spacing:.5px;margin-bottom:12px;text-transform:uppercase}.preview-content{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.preview-item{display:flex;flex-direction:column;gap:4px}.preview-label{color:#6b7280;font-size:.75rem;letter-spacing:.5px;text-transform:uppercase}.preview-value{color:#1f2937;font-size:.95rem;font-weight:600}.preview-value.highlight{color:#2563eb;font-size:1.1rem}.modal-footer{margin-top:8px;padding-top:16px}.btn-cancelar{border:2px solid #e5e7eb;transition:all .2s ease}.btn-cancelar:hover{background:#f3f4f6}.btn-guardar{align-items:center;display:flex;gap:8px;transition:all .2s ease}.btn-guardar:hover:not(:disabled){box-shadow:0 4px 12px #3b82f666}.btn-guardar svg{height:18px;width:18px}.btn-spinner{animation:spin 1s linear infinite;border:3px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:20px;width:20px}.retenciones-list{display:flex;flex-direction:column;gap:16px;margin-top:16px}.retencion-form-item{background:#fff;border:2px solid #e5e7eb;border-radius:10px;padding:16px;transition:all .3s ease}.retencion-form-item.principal{background:#f8fff8;border-color:#4caf50}.retencion-form-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:12px;padding-bottom:12px}.retencion-numero{color:#374151;font-size:.9rem;font-weight:600}.retencion-form-actions{align-items:center;display:flex;gap:8px}.btn-hacer-principal{background:#e5e7eb;border:none;border-radius:12px;color:#374151;cursor:pointer;font-size:.75rem;font-weight:600;padding:4px 10px;transition:all .2s ease}.badge-es-principal,.btn-hacer-principal:hover{background:#4caf50;color:#fff}.badge-es-principal{border-radius:12px;font-size:.75rem;font-weight:600;padding:4px 10px}.btn-eliminar-retencion{align-items:center;background:#fee2e2;border:none;border-radius:6px;cursor:pointer;display:flex;height:28px;justify-content:center;transition:all .2s ease;width:28px}.btn-eliminar-retencion svg{color:#dc2626;height:16px;width:16px}.btn-eliminar-retencion:hover{background:#dc2626}.btn-eliminar-retencion:hover svg{color:#fff}.retencion-form-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:2fr 1fr 1fr}.btn-agregar-retencion{align-items:center;background:#fff;border:2px dashed #93c5fd;border-radius:10px;color:#2563eb;cursor:pointer;display:flex;font-size:.9rem;font-weight:600;gap:8px;justify-content:center;margin-top:16px;padding:12px;transition:all .2s ease;width:100%}.btn-agregar-retencion svg{height:20px;width:20px}.btn-agregar-retencion:hover{background:#eff6ff;border-color:#3b82f6}@media (max-width:768px){.modal-editar-proveedor{margin:20px;max-width:95vw}.proveedor-form{padding:16px}.form-row{grid-template-columns:1fr}.preview-content{grid-template-columns:repeat(2,1fr)}.modal-footer{flex-direction:column}.btn-cancelar,.btn-guardar{justify-content:center;width:100%}}.tipos-proveedor{margin:0 auto;max-width:1200px;padding:24px}.tipos-header{align-items:center;border-bottom:2px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:24px;padding-bottom:16px}.tipos-header .header-left{align-items:center;display:flex;gap:12px}.tipos-header .header-text h2{color:#1f2937;font-size:1.5rem;font-weight:700;margin:0}.tipos-header .header-text p{color:#6b7280;font-size:.9rem;margin:4px 0 0}.btn-nuevo{background:linear-gradient(135deg,#10b981,#059669);border-radius:8px;font-size:.9rem;font-weight:600;padding:10px 20px;transition:all .2s}.btn-nuevo:hover{box-shadow:0 4px 12px #10b9814d;transform:translateY(-2px)}.form-tipo{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 2px 8px #0000000d;margin-bottom:24px;padding:24px}.form-tipo h3{color:#1f2937;font-size:1.1rem;font-weight:600;margin:0 0 20px}.form-tipo .form-row{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr;margin-bottom:16px}.form-tipo .form-group{display:flex;flex-direction:column;gap:6px}.form-tipo .form-group label{color:#374151;font-size:.8rem;font-weight:600;letter-spacing:.3px;text-transform:uppercase}.form-tipo .form-group input[type=text],.form-tipo .form-group textarea{border:1.5px solid #e5e7eb;border-radius:8px;font-size:.95rem;padding:10px 14px;transition:all .2s}.form-tipo .form-group input:focus,.form-tipo .form-group textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.form-tipo .form-group textarea{min-height:60px;resize:vertical}.color-picker-container{align-items:center;display:flex;gap:12px}.color-input{border:none;border-radius:8px;cursor:pointer;height:38px;padding:0;width:50px}.colores-rapidos{display:flex;flex-wrap:wrap;gap:6px}.color-btn{border:2px solid #0000;border-radius:6px;cursor:pointer;height:24px;transition:all .15s;width:24px}.color-btn:hover{transform:scale(1.1)}.color-btn.active{border-color:#1f2937;box-shadow:0 0 0 2px #fff,0 0 0 4px #1f2937}.form-actions{margin-top:20px}.btn-cancelar{border:1.5px solid #e5e7eb;color:#6b7280;flex:0 0 auto;font-size:.9rem;font-weight:600;padding:10px 20px}.btn-cancelar:hover{background:#f9fafb;border-color:#d1d5db}.btn-guardar{background:linear-gradient(135deg,#3b82f6,#2563eb);flex:0 0 auto;font-size:.9rem;font-weight:600;padding:10px 20px}.btn-guardar:hover:not(:disabled){box-shadow:0 4px 12px #3b82f64d;transform:translateY(-2px)}.tipos-lista{margin-top:24px}.tipos-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.tipo-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:16px;transition:all .2s}.tipo-card:hover{border-color:#d1d5db;box-shadow:0 4px 12px #00000014}.tipo-header{align-items:center;display:flex;gap:12px;margin-bottom:12px}.tipo-color{border-radius:10px;flex-shrink:0;height:40px;width:40px}.tipo-info h4{color:#1f2937;font-size:1rem;font-weight:600;margin:0}.tipo-codigo{color:#9ca3af;font-family:monospace;font-size:.75rem}.tipo-descripcion{color:#6b7280;font-size:.85rem;line-height:1.4;margin:0 0 12px}.tipo-footer{align-items:center;border-top:1px solid #f3f4f6;display:flex;justify-content:space-between;padding-top:12px}.tipo-proveedores{background:#f3f4f6;border-radius:20px;color:#6b7280;font-size:.8rem;padding:4px 10px}.tipo-acciones{display:flex;gap:8px}.btn-editar{background:#eff6ff;border:none;color:#3b82f6;font-size:.8rem;font-weight:500;padding:6px 12px}.btn-editar:hover{background:#dbeafe}.btn-eliminar{background:#fef2f2;border-radius:6px;color:#ef4444;font-size:.8rem;padding:6px 12px;transition:all .2s}.btn-eliminar:hover:not(:disabled){background:#fee2e2}.btn-eliminar:disabled{cursor:not-allowed;opacity:.5}.tipos-proveedor-loading{gap:16px;justify-content:center;padding:60px}.construction-loader,.tipos-proveedor-loading{align-items:center;display:flex;flex-direction:column}.loader-bricks{display:flex;gap:4px}.loader-brick{animation:brickPulse 1.2s ease-in-out infinite;background:#f59e0b;border-radius:2px;height:12px;width:20px}.loader-brick:first-child{animation-delay:0s}.loader-brick:nth-child(2){animation-delay:.2s}.loader-brick:nth-child(3){animation-delay:.4s}@keyframes brickPulse{0%,to{background:#fbbf24;opacity:.4;transform:scaleY(.6)}50%{background:#f59e0b;opacity:1;transform:scaleY(1)}}.tipos-proveedor-loading p{color:#6b7280;font-size:.9rem;font-weight:500}.empty-state{background:#f9fafb;border:2px dashed #e5e7eb;border-radius:12px;padding:60px 20px}.empty-state h3{color:#1f2937;font-size:1.1rem;margin:0 0 8px}.empty-state p{color:#6b7280;font-size:.9rem}@media (max-width:768px){.tipos-proveedor{padding:16px}.tipos-header{align-items:flex-start;flex-direction:column;gap:16px}.form-tipo .form-row,.tipos-grid{grid-template-columns:1fr}}.modal-registrar-pago{max-height:90vh;max-width:700px;overflow-y:auto;width:95%}.modal-registrar-pago .modal-header{align-items:center;background:linear-gradient(135deg,#4caf50,#2e7d32);border-radius:12px 12px 0 0;color:#fff;display:flex;justify-content:space-between;padding:1.25rem 1.5rem}.modal-registrar-pago .modal-header h2{font-size:1.25rem;font-weight:600;margin:0}.modal-registrar-pago .modal-close{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1.25rem;height:32px;justify-content:center;transition:background .2s;width:32px}.modal-registrar-pago .modal-close:hover{background:#ffffff4d}.modal-registrar-pago .modal-subheader{align-items:center;background:#f5f5f5;border-bottom:1px solid #e0e0e0;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:space-between;padding:1rem 1.5rem}.pago-proveedor-info{display:flex;flex-direction:column;gap:.25rem}.pago-proveedor-info .proveedor-nombre{color:#333;font-size:1rem;font-weight:600}.pago-proveedor-info .proveedor-nit{color:#666;font-size:.8rem}.pago-resumen{align-items:flex-end;display:flex;flex-direction:column;gap:.25rem}.pago-resumen .resumen-facturas{color:#666;font-size:.85rem}.pago-resumen .resumen-total{color:#2e7d32;font-weight:600}.modal-registrar-pago .modal-body{display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem}.datos-pago-section h3,.evidencia-section h3,.facturas-pago-section h3{border-bottom:2px solid #e0e0e0;color:#333;font-size:1rem;margin:0 0 1rem;padding-bottom:.5rem}.facturas-pago-lista{display:flex;flex-direction:column;gap:.75rem}.factura-pago-item{align-items:center;background:#fafafa;border:1px solid #e0e0e0;border-radius:8px;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;padding:1rem}.factura-pago-item .factura-info{display:flex;flex-direction:column;gap:.25rem}.factura-pago-item .factura-numero{color:#333;font-weight:600}.factura-pago-item .factura-saldo{color:#666;font-size:.85rem}.factura-pago-item .factura-monto-input{align-items:center;display:flex;gap:.75rem}.factura-pago-item .factura-monto-input label{color:#666;font-size:.85rem}.input-money{align-items:center;background:#fff;border:1px solid #ddd;border-radius:6px;display:flex;overflow:hidden}.input-money .currency{background:#f0f0f0;color:#666;font-weight:500;padding:.5rem .75rem}.input-money input{border:none;font-size:1rem;outline:none;padding:.5rem;width:120px}.input-money input:focus{background:#f9f9f9}.btn-pago-total{background:#e3f2fd;border:1px solid #bbdefb;border-radius:6px;color:#1976d2;cursor:pointer;font-size:.8rem;padding:.5rem .75rem;transition:all .2s;white-space:nowrap}.btn-pago-total:hover{background:#1976d2;color:#fff}.factura-pago-item .factura-retencion-badge{background:linear-gradient(135deg,#fff3e0,#ffe0b2);border:1px solid #ffcc80;border-radius:4px;color:#e65100;display:inline-block;font-size:.7rem;font-weight:600;letter-spacing:.3px;margin-top:4px;padding:2px 6px;text-transform:uppercase}.resumen-retenciones{background:#fff3e0;border:1px solid #ffcc80;border-radius:8px;margin-top:1rem;padding:.75rem 1rem}.resumen-retenciones .retencion-line{align-items:center;display:flex;justify-content:space-between}.resumen-retenciones .retencion-line .label{color:#e65100;font-size:.9rem;font-weight:500}.resumen-retenciones .retencion-line .valor.negativo{color:#c62828;font-weight:600}.resumen-retenciones .retencion-nota{color:#795548;font-size:.75rem;font-style:italic;margin:.5rem 0 0}.total-pago-summary{align-items:center;background:#e8f5e9;border-radius:8px;display:flex;justify-content:space-between;margin-top:1rem;padding:1rem}.total-pago-summary .label{color:#2e7d32;font-weight:600}.total-pago-summary .valor{color:#2e7d32;font-size:1.25rem;font-weight:700}.datos-pago-section .form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.datos-pago-section .form-group{display:flex;flex-direction:column;gap:.5rem}.datos-pago-section .form-group label{color:#555;font-size:.85rem;font-weight:500}.datos-pago-section .form-group input,.datos-pago-section .form-group select,.datos-pago-section .form-group textarea{border:1px solid #ddd;border-radius:6px;font-size:.95rem;padding:.6rem .75rem;transition:border-color .2s}.datos-pago-section .form-group input:focus,.datos-pago-section .form-group select:focus,.datos-pago-section .form-group textarea:focus{border-color:#4caf50;outline:none}.datos-pago-section .form-group textarea{min-height:60px;resize:vertical}.evidencia-section{background:#fff3e0;border:2px dashed #ff9800;border-radius:8px;padding:1rem}.evidencia-section h3{border-bottom-color:#ffcc80;color:#e65100}.evidencia-nota{color:#e65100;font-size:.85rem;font-style:italic;margin:0 0 1rem}.evidencia-section .upload-container{background:#fff;border-radius:6px}.evidencia-section .file-input-hidden{display:none}.evidencia-section .upload-label{align-items:center;cursor:pointer;display:flex;gap:1rem;padding:1.25rem;transition:background .2s}.evidencia-section .upload-label:hover{background:#f5f5f5}.evidencia-section .upload-icon{font-size:2rem}.evidencia-section .upload-text{display:flex;flex-direction:column;gap:.25rem}.evidencia-section .upload-text span{color:#333;font-weight:500}.evidencia-section .upload-text small{color:#888;font-size:.8rem}.evidencia-section .archivo-seleccionado{align-items:center;background:#e8f5e9;border-radius:6px;display:flex;gap:1rem;padding:1rem}.evidencia-section .archivo-icono{font-size:1.5rem}.evidencia-section .archivo-info{display:flex;flex:1 1;flex-direction:column;gap:.25rem}.evidencia-section .archivo-nombre{color:#333;font-weight:500;word-break:break-all}.evidencia-section .archivo-size{color:#666;font-size:.8rem}.evidencia-section .btn-quitar-archivo{align-items:center;background:#f44336;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1rem;height:28px;justify-content:center;transition:background .2s;width:28px}.evidencia-section .btn-quitar-archivo:hover{background:#c62828}.modal-registrar-pago .modal-footer{background:#f5f5f5;border-radius:0 0 12px 12px;border-top:1px solid #e0e0e0;display:flex;gap:1rem;justify-content:flex-end;padding:1rem 1.5rem}.modal-registrar-pago .btn-cancelar{background:#fff;border:1px solid #ddd;border-radius:6px;cursor:pointer;font-size:.95rem;padding:.75rem 1.5rem;transition:all .2s}.modal-registrar-pago .btn-cancelar:hover{background:#f5f5f5}.modal-registrar-pago .btn-registrar-pago{background:linear-gradient(135deg,#4caf50,#2e7d32);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;padding:.75rem 1.5rem;transition:all .2s}.modal-registrar-pago .btn-registrar-pago:hover:not(:disabled){box-shadow:0 4px 12px #4caf5066;transform:translateY(-1px)}.modal-registrar-pago .btn-registrar-pago:disabled{cursor:not-allowed;opacity:.6}@media (max-width:600px){.modal-registrar-pago{border-radius:0;margin:0;max-height:100vh;max-width:100%;width:100%}.modal-subheader{flex-direction:column}.factura-pago-item,.modal-subheader,.pago-resumen{align-items:flex-start}.factura-pago-item{flex-direction:column}.factura-pago-item .factura-monto-input{flex-wrap:wrap;width:100%}.datos-pago-section .form-row{grid-template-columns:1fr}.modal-registrar-pago .modal-footer{flex-direction:column}.modal-registrar-pago .btn-cancelar,.modal-registrar-pago .btn-registrar-pago{text-align:center;width:100%}}.pagos-container{background:#f5f7fa;min-height:100vh;padding:1.5rem}.pagos-loading{align-items:center;display:flex;flex-direction:column;gap:1rem;justify-content:center;min-height:400px}.pagos-loading .spinner{animation:spin 1s linear infinite;border:3px solid #e5e7eb;border-radius:50%;border-top-color:#3b82f6;height:40px;width:40px}.pagos-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.5rem}.header-info h1{color:#333;font-size:1.75rem;margin:0}.header-info p{color:#666;font-size:.9rem;margin:.25rem 0 0}.vista-tabs{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;display:flex;gap:.5rem;padding:.25rem}.vista-tabs .tab-btn{background:#0000;border:none;border-radius:6px;color:#666;cursor:pointer;font-size:.9rem;padding:.6rem 1rem;transition:all .2s}.vista-tabs .tab-btn:hover{background:#f0f0f0}.vista-tabs .tab-btn.active{background:#4caf50;color:#fff;font-weight:500}.resumen-cards{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:2rem}.resumen-card{align-items:center;background:#fff;border-radius:12px;box-shadow:0 4px 12px #00000014;display:flex;gap:1rem;padding:1.5rem;transition:transform .2s}.resumen-card:hover{transform:translateY(-2px)}.resumen-card .card-icon{align-items:center;background:#f5f5f5;border-radius:12px;display:flex;font-size:2.5rem;height:60px;justify-content:center;width:60px}.resumen-card .card-content{display:flex;flex-direction:column;gap:.25rem}.resumen-card .card-value{color:#333;font-size:2rem;font-weight:700}.resumen-card .card-label{color:#666;font-size:.9rem}.resumen-card .card-monto{font-size:1rem;font-weight:600}.resumen-card.pendiente{border-left:4px solid #ff9800}.resumen-card.pendiente .card-monto{color:#ff9800}.resumen-card.vencido{border-left:4px solid #f44336}.resumen-card.vencido .card-monto{color:#f44336}.resumen-card.pagado{border-left:4px solid #4caf50}.resumen-card.pagado .card-monto{color:#4caf50}.proyeccion-section{background:#fff;border-radius:12px;box-shadow:0 4px 12px #00000014;margin-bottom:2rem;padding:1.5rem}.proyeccion-section h2{color:#333;font-size:1.1rem;margin:0 0 1.25rem}.proyeccion-cards{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.proyeccion-card{border-radius:10px;display:flex;flex-direction:column;gap:.5rem;padding:1.25rem}.proyeccion-card.dias-7{background:#fff3e0}.proyeccion-card.dias-15{background:#e3f2fd}.proyeccion-card.dias-30{background:#e8f5e9}.proyeccion-card .proyeccion-periodo{color:#333;font-weight:600}.proyeccion-card .proyeccion-facturas{color:#666;font-size:.85rem}.proyeccion-card .proyeccion-monto{font-size:1.25rem;font-weight:700}.proyeccion-card.dias-7 .proyeccion-monto{color:#e65100}.proyeccion-card.dias-15 .proyeccion-monto{color:#1565c0}.proyeccion-card.dias-30 .proyeccion-monto{color:#2e7d32}.alertas-section{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));margin-bottom:2rem}.alerta-grupo{background:#fff;border-radius:12px;box-shadow:0 4px 12px #00000014;padding:1.25rem}.alerta-grupo h3{border-bottom:2px solid;font-size:1rem;margin:0 0 1rem;padding-bottom:.75rem}.alerta-grupo.vencidas h3{border-color:#f44336;color:#c62828}.alerta-grupo.proximas h3{border-color:#ff9800;color:#e65100}.alertas-lista{display:flex;flex-direction:column;gap:.75rem}.alerta-item{align-items:center;border-left:3px solid;border-radius:8px;display:flex;justify-content:space-between;padding:.75rem}.alerta-item.vencida{background:#ffebee;border-color:#f44336}.alerta-item.proxima{background:#fff3e0;border-color:#ff9800}.alerta-info{display:flex;flex-direction:column;gap:.25rem}.alerta-factura{color:#333;font-weight:600}.alerta-proveedor{color:#666;font-size:.85rem}.alerta-dias{font-size:.8rem;font-weight:500}.alerta-item.vencida .alerta-dias{color:#c62828}.alerta-item.proxima .alerta-dias{color:#e65100}.alerta-monto{font-size:1rem;font-weight:600}.proveedores-section{background:#fff;border-radius:12px;box-shadow:0 4px 12px #00000014;margin-bottom:2rem;padding:1.5rem}.proveedores-section h2{color:#333;font-size:1.1rem;margin:0 0 1.25rem}.proveedores-tabla table{border-collapse:collapse;width:100%}.proveedores-tabla td,.proveedores-tabla th{border-bottom:1px solid #eee;padding:.75rem;text-align:left}.proveedores-tabla th{background:#f5f5f5;color:#555;font-size:.85rem;font-weight:600}.proveedores-tabla .proveedor-nombre{font-weight:500}.proveedores-tabla .center{text-align:center}.proveedores-tabla .monto{color:#2e7d32;font-weight:600}.proveedores-tabla .text-danger{color:#c62828;font-weight:600}.dashboard-action{display:flex;justify-content:center;margin-top:2rem}.btn-ir-pendientes{background:linear-gradient(135deg,#4caf50,#2e7d32);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;padding:1rem 2rem;transition:all .2s}.btn-ir-pendientes:hover{box-shadow:0 6px 20px #4caf5066;transform:translateY(-2px)}.filtros-section{border-radius:12px;box-shadow:0 4px 12px #00000014;margin-bottom:1.5rem;padding:1rem 1.25rem}.filtros-row{grid-gap:1rem;align-items:end;display:grid;gap:1rem;grid-template-columns:repeat(5,1fr)}.filtro-group{display:flex;flex-direction:column;gap:.3rem}.filtro-group.busqueda{grid-column:span 1}.filtro-group label{color:#666;font-size:.75rem;font-weight:500;letter-spacing:.3px;text-transform:uppercase}.filtro-group input,.filtro-group select{border:1px solid #ddd;border-radius:6px;font-size:.875rem;height:38px;padding:.5rem .75rem}.filtro-group input:focus,.filtro-group select:focus{border-color:#4caf50;outline:none}.seleccion-actions{align-items:center;background:#e3f2fd;border-radius:10px;display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem;padding:1rem 1.25rem}.seleccion-info{color:#1565c0;flex:1 1;font-weight:500}.btn-pagar-seleccion{background:#4caf50;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:500;padding:.6rem 1.25rem;transition:background .2s}.btn-pagar-seleccion:hover{background:#388e3c}.btn-limpiar-seleccion{background:#0000;border:1px solid #ddd;border-radius:6px;color:#666;cursor:pointer;padding:.6rem 1rem}.btn-limpiar-seleccion:hover{background:#f5f5f5}.facturas-lista{background:#fff;border-radius:12px;box-shadow:0 4px 12px #00000014;overflow:hidden}.facturas-header{background:#f5f5f5;color:#555;font-size:.8rem;font-weight:600;letter-spacing:.5px;padding:.75rem 1rem;text-transform:uppercase}.factura-row,.facturas-header{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:40px 120px 1.5fr 1fr 140px 100px 100px 100px}.factura-row{align-items:center;border-bottom:1px solid #eee;padding:1rem;transition:background .2s}.factura-row:hover{background:#fafafa}.factura-row.selected{background:#e3f2fd}.factura-row.urgencia-vencida{background:#ffebee}.factura-row.urgencia-vencida:hover{background:#ffcdd2}.factura-row.urgencia-proxima{background:#fff3e0}.factura-row.urgencia-proxima:hover{background:#ffe0b2}.col-check input[type=checkbox]{cursor:pointer;height:18px;width:18px}.col-factura{display:flex;flex-direction:column;gap:.25rem}.factura-numero{color:#333;font-weight:600}.badge-parcial{background:#ff9800;border-radius:4px;color:#fff;font-size:.7rem;padding:.15rem .4rem;width:-webkit-fit-content;width:fit-content}.col-proveedor{display:flex;flex-direction:column;gap:.15rem}.col-proveedor .proveedor-nombre{color:#333;font-weight:500}.col-proveedor .proveedor-nit{color:#888;font-size:.8rem}.col-proyecto{color:#666;font-size:.9rem}.col-vencimiento{display:flex;flex-direction:column;gap:.2rem}.col-vencimiento .fecha,.urgencia-text{font-weight:500}.urgencia-text{font-size:.75rem}.urgencia-text.vencida{color:#c62828}.urgencia-text.proxima{color:#e65100}.col-monto{color:#666;font-size:.9rem}.col-saldo{align-items:flex-end;display:flex;flex-direction:column;gap:2px}.col-saldo .saldo-valor{color:#2e7d32;font-weight:600}.col-saldo .badge-retencion{background:linear-gradient(135deg,#fff3e0,#ffe0b2);border:1px solid #ffcc80;border-radius:4px;color:#e65100;display:inline-block;font-size:.7rem;font-weight:600;letter-spacing:.3px;padding:2px 6px;text-transform:uppercase}.btn-pagar{background:#4caf50;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.85rem;padding:.5rem .75rem;transition:background .2s}.btn-pagar:hover{background:#388e3c}.btn-ver-adjunto-pago{align-items:center;background:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;color:#4b5563;cursor:pointer;display:inline-flex;justify-content:center;margin-right:8px;padding:.5rem;transition:all .2s}.btn-ver-adjunto-pago:hover{background:#e5e7eb;border-color:#9ca3af;color:#1f2937}.btn-ver-adjunto-pago svg{height:16px;width:16px}.col-acciones{align-items:center;display:flex;gap:6px;justify-content:flex-end}.empty-state,.loading-state{color:#666;padding:3rem;text-align:center}.empty-state span{display:block;font-size:3rem;margin-bottom:1rem}.historial-view .filtros-section{margin-bottom:1.5rem}.filtros-row.filtros-historial{grid-template-columns:250px 1fr}.historial-lista{min-height:200px}.pagos-grid{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.pago-card{background:#fff;border-radius:12px;box-shadow:0 4px 12px #00000014;overflow:hidden;transition:transform .2s}.pago-card:hover{transform:translateY(-2px)}.pago-card .pago-header{align-items:center;background:linear-gradient(135deg,#4caf50,#2e7d32);color:#fff;display:flex;justify-content:space-between;padding:1rem}.pago-card .pago-fecha{font-size:.9rem;opacity:.9}.pago-card .pago-monto{font-size:1.25rem;font-weight:700}.pago-card .pago-body{display:flex;flex-direction:column;gap:.5rem;padding:1rem}.pago-card .pago-factura,.pago-card .pago-metodo,.pago-card .pago-proveedor,.pago-card .pago-referencia{display:flex;font-size:.9rem;gap:.5rem}.pago-card .label{color:#888;min-width:70px}.pago-card .value{color:#333;font-weight:500}.pago-card .pago-footer{border-top:1px solid #eee;padding:.75rem 1rem}.btn-ver-evidencia{background:#e3f2fd;border-radius:6px;color:#1976d2;display:inline-block;font-size:.85rem;padding:.5rem .75rem;text-decoration:none;transition:background .2s}.btn-ver-evidencia:hover{background:#bbdefb}@media (max-width:1200px){.factura-row,.facturas-header{grid-template-columns:40px 100px 1.2fr .8fr 120px 90px 90px 80px}}@media (max-width:992px){.factura-row,.facturas-header{grid-template-columns:40px 100px 1fr 120px 90px 80px}.col-monto,.col-proyecto{display:none}.alertas-section{grid-template-columns:1fr}}@media (max-width:1200px){.filtros-row{grid-template-columns:repeat(3,1fr)}.filtros-row .filtro-group:nth-child(4),.filtros-row .filtro-group:nth-child(5){grid-column:span 1}}@media (max-width:992px){.filtros-row{grid-template-columns:repeat(2,1fr)}.filtros-row.filtros-historial{grid-template-columns:1fr 1fr}}@media (max-width:768px){.pagos-container{padding:1rem}.pagos-header{align-items:flex-start;flex-direction:column}.vista-tabs{justify-content:center;width:100%}.filtros-row,.filtros-row.filtros-historial,.proyeccion-cards,.resumen-cards{grid-template-columns:1fr}.filtro-group.busqueda{grid-column:span 1}.facturas-header{display:none}.factura-row{display:flex;flex-direction:column;gap:.75rem;padding:1rem}.factura-row .col-check{position:absolute;right:1rem;top:1rem}.pagos-grid{grid-template-columns:1fr}}.inventario-container{animation:fadeIn .5s ease;margin:0 auto;max-width:1800px;padding:20px}.inventario-header{background:#fff;border-radius:16px;box-shadow:0 2px 12px #64dc5c1a;margin-bottom:30px;padding:25px}.stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:20px}.stat-card{border-left:4px solid #64dc5c;box-shadow:0 2px 8px #00000014;gap:20px;padding:24px;transition:all .2s ease}.stat-card:hover{box-shadow:0 4px 12px #0000001f;transform:translateY(-2px)}.stat-card.warning{border-color:#ff9800}.stat-card.danger{border-color:#f44336}.stat-card.success{border-color:#4caf50}.stat-icon{flex-shrink:0;font-size:40px}.stat-content{display:flex;flex:1 1;flex-direction:column;gap:4px}.stat-value{color:#1a1a1a;font-size:24px;font-weight:700}.stat-label{color:#666;font-size:13px;font-weight:500}.filtros-section{background:#fff;border-radius:16px;box-shadow:0 2px 12px #64dc5c1a;margin-bottom:20px;padding:20px}.busqueda-box{margin-bottom:15px}.search-icon{font-size:1.2rem;left:15px}.search-input{background:#f4f2e8;border:2px solid #64dc5c4d;padding:12px 15px 12px 45px;transition:all .3s ease}.search-input:focus{background:#fff}.filtros-categoria{display:flex;flex-wrap:wrap;gap:10px}.filtro-btn{background:#64dc5c1a;border:2px solid #0000;border-radius:8px;color:#000;font-size:.9rem;font-weight:600;padding:8px 16px;transition:all .3s ease}.filtro-btn:hover{background:#64dc5c33;border-color:#64dc5c66}.filtro-btn.active{background:linear-gradient(135deg,#64dc5c,#52c048);border-color:#52c048;box-shadow:0 2px 8px #64dc5c4d;color:#000}.inventario-table{border-collapse:collapse;min-width:1200px;width:100%}.inventario-table thead{background:linear-gradient(135deg,#64dc5c,#52c048);color:#000}.inventario-table th{font-size:.9rem;font-weight:700;letter-spacing:.5px;padding:16px 12px;text-align:left;text-transform:uppercase}.inventario-table tbody tr{border-bottom:1px solid #64dc5c1a;transition:all .2s ease}.inventario-table tbody tr:hover{background:#64dc5c0d}.inventario-table tbody tr.bajo{background:#ff98000d}.inventario-table tbody tr.agotado{background:#f443360d}.inventario-table td{color:#000;font-size:.9rem;padding:16px 12px}.codigo{background:#f0f0f0;border-radius:4px;color:#666;font-weight:700;padding:4px 8px!important}.nombre{font-weight:600}.categoria-badge{align-items:center;background:#64dc5c1a;border-radius:6px;display:inline-flex;font-size:.85rem;font-weight:600;gap:6px;padding:4px 12px;text-transform:capitalize}.stock-badge{border-radius:6px;display:inline-block;font-size:.9rem;font-weight:700;padding:6px 12px}.stock-badge.normal{background:#e8f5e9;color:#388e3c}.stock-badge.bajo{animation:pulse 2s ease-in-out infinite;background:#fff3e0;color:#f57c00}.stock-badge.agotado{animation:pulse 1s ease-in-out infinite;background:#ffebee;color:#c62828}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.badge-agotado,.badge-bajo,.badge-normal{border-radius:6px;display:inline-block;font-size:.75rem;font-weight:700;padding:4px 12px;text-transform:uppercase}.badge-agotado{background:#ffebee;color:#c62828}.badge-bajo{background:#fff3e0;color:#f57c00}.badge-normal{background:#e8f5e9;color:#388e3c}.entradas{color:#2196f3;font-weight:600}.salidas{color:#f44336;font-weight:600}@media (max-width:768px){.stats-grid{grid-template-columns:1fr}.filtros-categoria{flex-direction:column}.filtro-btn{width:100%}}.entradas-container{animation:fadeIn .5s ease;margin:0 auto;max-width:1600px;padding:20px}.entradas-header{align-items:center;background:#fff;border-radius:16px;box-shadow:0 2px 12px #64dc5c1a;display:flex;justify-content:space-between;margin-bottom:30px;padding:25px}.btn-nueva-entrada{background:linear-gradient(135deg,#64dc5c,#52c048);border:none;border-radius:10px;box-shadow:0 4px 12px #64dc5c4d;color:#000;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 24px;transition:all .3s ease}.btn-nueva-entrada:hover{box-shadow:0 6px 20px #64dc5c66;transform:translateY(-2px)}.entrada-form{padding:24px}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#64dc5c}.btn-guardar{background:linear-gradient(135deg,#64dc5c,#52c048);box-shadow:0 4px 12px #64dc5c4d;color:#000}.btn-guardar:hover{box-shadow:0 6px 20px #64dc5c66}.entradas-table{border-collapse:collapse;min-width:1000px;width:100%}.entradas-table thead{background:linear-gradient(135deg,#64dc5c,#52c048);color:#000}.entradas-table th{font-size:.9rem;font-weight:700;letter-spacing:.5px;padding:16px 12px;text-align:left;text-transform:uppercase}.entradas-table tbody tr{border-bottom:1px solid #64dc5c1a;transition:all .2s ease}.entradas-table tbody tr:hover{background:#64dc5c0d}.entradas-table td{color:#000;font-size:.9rem;padding:16px 12px}.precio,.valor-total{color:#4caf50}.btn-primera{background:linear-gradient(135deg,#64dc5c,#52c048);color:#000}.btn-primera:hover{box-shadow:0 6px 20px #64dc5c66}.search-input:focus{border-color:#64dc5c;box-shadow:0 0 0 3px #64dc5c1a}.resultados-busqueda{background:#64dc5c1a}.archivos-section{border-top:2px dashed #e0e0e0;margin-top:10px;padding-top:20px}.archivos-upload{align-items:center;display:flex;flex-wrap:wrap;gap:16px}.btn-seleccionar-archivos{background:#f5f5f5;border:2px dashed #ccc;border-radius:8px;cursor:pointer;font-size:.95rem;padding:10px 20px;transition:all .2s ease}.btn-seleccionar-archivos:hover{background:#e8e8e8;border-color:#64dc5c}.archivos-hint{color:#888;font-size:.85rem}.archivos-titulo{color:#555;font-size:.9rem;font-weight:600;margin:12px 0 8px}.archivos-lista{display:flex;flex-direction:column;gap:8px}.archivo-item{align-items:center;background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;display:flex;gap:10px;padding:8px 12px}.archivo-item.existente{background:#e8f5e9;border-color:#a5d6a7}.archivo-item.nuevo{background:#fff3e0;border-color:#ffcc80}.archivo-icono{font-size:1.2rem}.archivo-nombre{flex:1 1;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.archivo-size{color:#888;font-size:.8rem}.btn-ver-archivo{font-size:.9rem;padding:4px 8px;text-decoration:none;transition:transform .2s ease}.btn-ver-archivo:hover{transform:scale(1.2)}.btn-quitar-archivo{align-items:center;background:#ff5252;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1rem;height:22px;justify-content:center;transition:all .2s ease;width:22px}.btn-quitar-archivo:hover{background:#d32f2f;transform:scale(1.1)}.btn-accion.archivos:hover{background:#9c27b01a;transform:scale(1.1)}.modal-visor{max-width:900px}.visor-body{padding:24px}.sin-archivos{color:#666;padding:40px;text-align:center}.sin-archivos .empty-icon{display:block;font-size:3rem;margin-bottom:16px;opacity:.5}.archivos-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.archivo-card{background:#f9f9f9;border:1px solid #e0e0e0;border-radius:12px;overflow:hidden;transition:all .2s ease}.archivo-card:hover{box-shadow:0 8px 20px #0000001a;transform:translateY(-4px)}.archivo-preview{align-items:center;background:#f0f0f0;display:flex;height:150px;justify-content:center}.archivo-preview.imagen img{height:100%;object-fit:cover;width:100%}.archivo-preview.documento .doc-icon{font-size:4rem;opacity:.6}.archivo-info{display:flex;flex-direction:column;gap:8px;padding:12px}.archivo-card .archivo-nombre{color:#333;font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-descargar{background:linear-gradient(135deg,#64dc5c,#52c048);border-radius:6px;color:#000;display:inline-block;font-size:.85rem;font-weight:600;padding:6px 12px;text-align:center;text-decoration:none;transition:all .2s ease}.btn-descargar:hover{box-shadow:0 4px 12px #64dc5c66;transform:translateY(-2px)}@media (max-width:768px){.form-row{grid-template-columns:1fr}.entradas-header{align-items:flex-start;flex-direction:column;gap:15px}.header-actions{flex-direction:column;gap:12px;width:100%}.btn-nueva-entrada,.search-box,.search-input{width:100%}.acciones{flex-direction:column;gap:4px}.archivos-grid{grid-template-columns:1fr 1fr}}.salidas-container{animation:fadeIn .5s ease;margin:0 auto;max-width:1600px;padding:20px}.salidas-header{align-items:center;background:#fff;border-radius:16px;box-shadow:0 2px 12px #64dc5c1a;display:flex;justify-content:space-between;margin-bottom:30px;padding:25px}.header-left h2{color:#000;font-size:1.8rem;font-weight:700;margin:0 0 5px}.header-left .subtitle{color:#0009;font-size:.95rem}.btn-nueva-salida{background:linear-gradient(135deg,#ff6b6b,#ee5a52);border:none;border-radius:10px;box-shadow:0 4px 12px #ff6b6b4d;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 24px;transition:all .3s ease}.btn-nueva-salida:hover{box-shadow:0 6px 20px #ff6b6b66;transform:translateY(-2px)}.modal-overlay{animation:fadeIn .3s ease}.modal-content{background:#fff;border-radius:16px;box-shadow:0 8px 32px #0000004d;max-width:800px;width:90%}.modal-header{border-bottom:2px solid #f0f0f0;padding:24px}.modal-header h2{color:#1a1a1a;font-size:1.5rem;font-weight:700;margin:0}.modal-close{background:none;border:none;color:#666;cursor:pointer;font-size:2rem;transition:all .2s ease}.modal-close:hover{color:#d32f2f;transform:scale(1.2)}.salida-form{padding:24px}.form-row{grid-gap:20px;gap:20px}.form-group{gap:8px}.form-group label{color:#1a1a1a;font-weight:600}.form-group input,.form-group select,.form-group textarea{border:2px solid #e0e0e0;font-size:.95rem;padding:12px;transition:all .2s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#ff6b6b}.busqueda-proveedor{position:relative}.lista-proveedores{background:#fff;border:2px solid #ff6b6b;border-radius:8px;box-shadow:0 4px 12px #00000026;left:0;margin-top:4px;max-height:200px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:1000}.proveedor-item{border-bottom:1px solid #f0f0f0;cursor:pointer;display:flex;flex-direction:column;gap:4px;padding:12px 16px;transition:all .2s ease}.proveedor-item:hover{background:#ff6b6b1a}.proveedor-item strong{color:#1a1a1a;font-size:.95rem}.proveedor-item .nit{color:#666;font-size:.85rem}.proveedor-seleccionado{background:#4caf501a;border-left:3px solid #4caf50;border-radius:4px;color:#2e7d32;font-size:.9rem;margin-top:8px;padding:10px 14px}.proveedor-seleccionado strong{color:#1b5e20}.stock-info{color:#2e7d32;display:inline;font-size:.85rem;font-weight:500}.stock-info strong{color:#1b5e20}.input-disabled{background-color:#f5f5f5!important;color:#666!important;cursor:not-allowed}.max-hint{color:#ff6b6b;font-size:.8rem;font-weight:400;margin-left:4px}.form-group input:disabled{background-color:#f5f5f5;color:#999;cursor:not-allowed}.valor-total-preview{align-items:center;background:linear-gradient(135deg,#64dc5c1a,#52c0481a);border:2px solid #64dc5c4d;border-radius:10px;display:flex;justify-content:space-between;margin-bottom:20px;padding:16px 20px}.valor-total-preview.salida{background:linear-gradient(135deg,#ff6b6b1a,#ee5a521a);border-color:#ff6b6b4d}.valor-total-preview strong{color:#1a1a1a;font-size:1.1rem}.total-amount{color:#52c048;font-size:1.5rem;font-weight:700}.valor-total-preview.salida .total-amount{color:#ff6b6b}.form-actions{border-top:2px solid #f0f0f0;padding-top:20px}.btn-cancelar,.btn-guardar{border:none;border-radius:8px;cursor:pointer;font-size:.95rem;font-weight:600;padding:12px 24px;transition:all .2s ease}.btn-cancelar{background:#f0f0f0}.btn-cancelar:hover{background:#e0e0e0}.btn-guardar{background:linear-gradient(135deg,#ff6b6b,#ee5a52);box-shadow:0 4px 12px #ff6b6b4d}.btn-guardar:hover{box-shadow:0 6px 20px #ff6b6b66;transform:translateY(-2px)}.tabla-wrapper{background:#fff;border-radius:16px;box-shadow:0 2px 12px #64dc5c1a;overflow-x:auto}.salidas-table{border-collapse:collapse;min-width:1100px;width:100%}.salidas-table thead{background:linear-gradient(135deg,#ff6b6b,#ee5a52);color:#fff}.salidas-table th{font-size:.9rem;font-weight:700;letter-spacing:.5px;padding:16px 12px;text-align:left;text-transform:uppercase}.salidas-table tbody tr{border-bottom:1px solid #ff6b6b1a;transition:all .2s ease}.salidas-table tbody tr:hover{background:#ff6b6b0d}.salidas-table td{color:#000;font-size:.9rem;padding:16px 12px}.fecha{color:#666}.articulo,.fecha{font-weight:600}.cantidad-badge{background:#4caf501a;border-radius:6px;color:#2e7d32;display:inline-block;font-weight:700;padding:6px 12px}.cantidad-badge.salida{background:#f443361a;color:#c62828}.proveedor-badge{align-items:center;background:#2196f31a;border-radius:6px;color:#1565c0;display:inline-flex;font-size:.85rem;font-weight:600;gap:6px;padding:6px 12px}.precio,.valor-total{color:#ff6b6b;font-weight:600}.factura{color:#666;font-family:monospace}.observaciones{color:#666;font-size:.85rem}.empty-state{background:#fff;border-radius:16px;box-shadow:0 2px 12px #64dc5c1a;padding:60px 40px}.empty-icon{font-size:4rem;margin-bottom:20px;opacity:.5}.empty-state h3{color:#000;font-size:1.5rem;margin:0 0 10px}.empty-state p{color:#0009;font-size:1rem;margin:0 0 20px}.btn-primera{background:linear-gradient(135deg,#ff6b6b,#ee5a52);border:none;border-radius:10px;color:#fff;cursor:pointer;font-weight:600;padding:12px 24px;transition:all .3s ease}.btn-primera:hover{box-shadow:0 6px 20px #ff6b6b66;transform:translateY(-2px)}.loading-spinner{gap:20px;padding:80px 20px}.loading-spinner p{color:#000000b3;font-size:1rem;font-weight:600}.header-actions{gap:16px}.header-actions,.search-box{align-items:center;display:flex}.search-box{position:relative}.search-icon{font-size:1rem;left:12px;opacity:.6}.search-input{border:2px solid #e0e0e0;border-radius:10px;font-size:.95rem;padding:12px 40px;transition:all .2s ease;width:300px}.search-input:focus{border-color:#ff6b6b;box-shadow:0 0 0 3px #ff6b6b1a}.clear-search{align-items:center;background:#e0e0e0;border:none;border-radius:50%;cursor:pointer;display:flex;font-size:1rem;height:22px;justify-content:center;position:absolute;right:10px;transition:all .2s ease;width:22px}.clear-search:hover{background:#d0d0d0}.resultados-busqueda{background:#ff6b6b1a;border-radius:10px;color:#333;font-size:.95rem;margin-bottom:20px;padding:12px 20px}.acciones{gap:8px}.btn-accion{background:#0000;border:none;border-radius:6px;font-size:1rem;padding:8px 10px;transition:all .2s ease}.btn-accion.editar:hover{background:#2196f31a;transform:scale(1.1)}.btn-accion.eliminar:hover{background:#f443361a;transform:scale(1.1)}.modal-confirm{max-width:450px}.modal-header.warning{background:linear-gradient(135deg,#fff3e0,#ffe0b2);border-bottom-color:#ffb74d}.modal-header h3{color:#e65100;font-size:1.3rem}.btn-cerrar{color:#666}.modal-body{padding:24px}.warning-icon{margin-bottom:16px}.confirm-message p{color:#333;margin:8px 0}.warning-text{color:#d32f2f;font-size:.9rem;margin-top:16px!important}.modal-footer{background:#f5f5f5;border-top:1px solid #e0e0e0;padding:16px 24px}.btn-eliminar{background:linear-gradient(135deg,#f44336,#d32f2f);border-radius:8px;font-weight:600;padding:10px 20px;transition:all .2s ease}.btn-eliminar:hover{box-shadow:0 4px 12px #f4433666;transform:translateY(-2px)}@media (max-width:768px){.form-row{grid-template-columns:1fr}.salidas-header{align-items:flex-start;flex-direction:column;gap:15px}.header-actions{flex-direction:column;gap:12px;width:100%}.btn-nueva-salida,.search-box,.search-input{width:100%}.acciones{flex-direction:column;gap:4px}}.usuarios-container{margin:0 auto;max-width:1400px}.usuarios-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--spacing-5)}.header-left h2{color:var(--gray-900);font-size:var(--font-size-xl);font-weight:600;margin:0 0 var(--spacing-1) 0}.header-left .subtitle{color:var(--gray-500);font-size:var(--font-size-sm);margin:0}.btn-nuevo{background:var(--primary-600);border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);font-weight:500;padding:var(--spacing-2) var(--spacing-4);transition:all var(--transition-fast)}.btn-nuevo:hover{background:var(--primary-700)}.filtros-section{align-items:center;background:var(--surface-primary);border:1px solid var(--border-light);border-radius:var(--radius-lg);display:flex;flex-wrap:wrap;gap:var(--spacing-4);margin-bottom:var(--spacing-4);padding:var(--spacing-4)}.busqueda-box{flex:1 1;min-width:200px;position:relative}.search-icon{color:var(--gray-400);left:var(--spacing-3);position:absolute;top:50%;transform:translateY(-50%)}.search-icon,.search-input{font-size:var(--font-size-sm)}.search-input{background:var(--surface-primary);border:1px solid var(--border-medium);border-radius:var(--radius-md);padding:var(--spacing-2) var(--spacing-3) var(--spacing-2) var(--spacing-8);transition:all var(--transition-fast);width:100%}.search-input:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px var(--primary-100);outline:none}.filtros-rol{display:flex;gap:var(--spacing-2)}.filtro-btn{background:var(--surface-secondary);border:1px solid var(--border-light);border-radius:var(--radius-md);color:var(--gray-600);cursor:pointer;font-size:var(--font-size-sm);font-weight:500;padding:var(--spacing-2) var(--spacing-3);transition:all var(--transition-fast)}.filtro-btn:hover{background:var(--surface-tertiary);border-color:var(--border-medium)}.filtro-btn.active{background:var(--primary-600);border-color:var(--primary-600);color:#fff}.estadisticas-usuarios{grid-gap:var(--spacing-4);display:grid;gap:var(--spacing-4);grid-template-columns:repeat(5,1fr);margin-bottom:var(--spacing-4)}.estadisticas-usuarios .stat-card{align-items:center;background:var(--surface-primary);border:1px solid var(--border-light);border-left:4px solid var(--gray-400);border-radius:var(--radius-lg);display:flex;gap:var(--spacing-3);padding:var(--spacing-4)}.estadisticas-usuarios .stat-card.admin{border-left-color:#8b5cf6}.estadisticas-usuarios .stat-card.general{border-left-color:#3b82f6}.estadisticas-usuarios .stat-card.cartera{border-left-color:#0d9488}.estadisticas-usuarios .stat-card.activos{border-left-color:#22c55e}.estadisticas-usuarios .stat-icon{font-size:1.5rem}.estadisticas-usuarios .stat-content{display:flex;flex-direction:column;gap:2px}.estadisticas-usuarios .stat-value{color:var(--gray-900);font-size:var(--font-size-xl);font-weight:700}.estadisticas-usuarios .stat-label{color:var(--gray-500);font-size:var(--font-size-xs);font-weight:500}.tabla-wrapper{background:var(--surface-primary);border:1px solid var(--border-light);border-radius:var(--radius-lg);overflow:hidden}.usuarios-table{border-collapse:collapse;width:100%}.usuarios-table thead{background:var(--surface-tertiary)}.usuarios-table th{border-bottom:1px solid var(--border-light);color:var(--gray-600);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.5px;padding:var(--spacing-3) var(--spacing-4);text-align:left;text-transform:uppercase}.usuarios-table tbody tr{border-bottom:1px solid var(--border-light);transition:background var(--transition-fast)}.usuarios-table tbody tr:hover{background:var(--surface-secondary)}.usuarios-table tbody tr:last-child{border-bottom:none}.usuarios-table td{color:var(--gray-800);font-size:var(--font-size-sm);padding:var(--spacing-3) var(--spacing-4)}.username{color:var(--gray-900);font-weight:600}.nombre{color:var(--gray-700)}.email,.fecha{color:var(--gray-500)}.email,.fecha,.rol-badge{font-size:var(--font-size-xs)}.rol-badge{border-radius:var(--radius-md);display:inline-block;font-weight:500;padding:var(--spacing-1) var(--spacing-2)}.rol-badge.purple{background:#f3e8ff;color:#7c3aed}.rol-badge.blue{background:var(--info-100);color:var(--info-600)}.rol-badge.teal{background:#ccfbf1;color:#0d9488}.estado-badge{border-radius:var(--radius-md);font-size:var(--font-size-xs);padding:var(--spacing-1) var(--spacing-2)}.estado-badge.activo{background:var(--success-100);color:var(--success-600)}.estado-badge.inactivo{background:var(--error-100);color:var(--error-600)}.acciones{gap:var(--spacing-2)}.btn-accion{align-items:center;background:var(--surface-secondary);border:1px solid var(--border-light);border-radius:var(--radius-sm);cursor:pointer;display:flex;justify-content:center;padding:var(--spacing-1) var(--spacing-2);transition:all var(--transition-fast)}.btn-accion:hover{background:var(--surface-tertiary);border-color:var(--border-medium)}.btn-accion.editar:hover{border-color:var(--primary-300);color:var(--primary-600)}.btn-accion.eliminar:hover{background:var(--error-50);border-color:var(--error-300);color:var(--error-600)}.empty-state{background:var(--surface-primary);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--spacing-12) var(--spacing-6);text-align:center}.empty-icon{display:block;font-size:2.5rem;margin-bottom:var(--spacing-4);opacity:.4}.empty-state h3{color:var(--gray-700);font-size:var(--font-size-lg);font-weight:600;margin:0 0 var(--spacing-2) 0}.empty-state p{color:var(--gray-500);font-size:var(--font-size-sm);margin:0}.loading-spinner{align-items:center;display:flex;flex-direction:column;gap:var(--spacing-4);justify-content:center;padding:var(--spacing-12) var(--spacing-4)}.spinner{animation:spin 1s linear infinite;border:3px solid #e5e7eb;border-radius:50%;border-top-color:#3b82f6;height:40px;width:40px}.modal-overlay{padding:var(--spacing-4)}.modal-content{background:var(--surface-primary);border-radius:var(--radius-lg);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-height:90vh;max-width:600px;overflow-y:auto;width:100%}.modal-content.modal-confirm{max-width:450px}.modal-header{border-bottom:1px solid var(--border-light);padding:var(--spacing-4) var(--spacing-5)}.modal-header.warning{background:var(--warning-50);border-bottom-color:var(--warning-200)}.modal-header h3{color:var(--gray-900);font-size:var(--font-size-lg)}.btn-cerrar{color:var(--gray-400);font-size:1.5rem;line-height:1;padding:0}.btn-cerrar:hover{color:var(--gray-600)}.modal-body{padding:var(--spacing-5)}.form-row{grid-gap:var(--spacing-4);gap:var(--spacing-4)}.form-group{margin-bottom:var(--spacing-4)}.form-group label{color:var(--gray-700);font-size:var(--font-size-sm);margin-bottom:var(--spacing-1)}.form-group input,.form-group select{border:1px solid var(--border-medium);border-radius:var(--radius-md);font-size:var(--font-size-sm);padding:var(--spacing-2) var(--spacing-3);transition:all var(--transition-fast)}.form-group input:focus,.form-group select:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px var(--primary-100)}.checkbox-group{display:flex;padding-top:var(--spacing-6)}.checkbox-label{align-items:center;color:var(--gray-700);cursor:pointer;display:flex;font-size:var(--font-size-sm);gap:var(--spacing-2)}.checkbox-label input[type=checkbox]{cursor:pointer;height:18px;width:18px}.roles-info{background:var(--surface-secondary);border-radius:var(--radius-md);margin-top:var(--spacing-2);padding:var(--spacing-3)}.roles-info h4{color:var(--gray-700);font-size:var(--font-size-sm);font-weight:600;margin:0 0 var(--spacing-2) 0}.roles-info ul{color:var(--gray-600);font-size:var(--font-size-xs);margin:0;padding-left:var(--spacing-4)}.roles-info li{margin-bottom:var(--spacing-1)}.modal-footer{background:var(--surface-secondary);border-top:1px solid var(--border-light);gap:var(--spacing-3);padding:var(--spacing-4) var(--spacing-5)}.btn-cancelar{background:var(--surface-primary);border:1px solid var(--border-medium);border-radius:var(--radius-md);color:var(--gray-700);font-size:var(--font-size-sm);padding:var(--spacing-2) var(--spacing-4);transition:all var(--transition-fast)}.btn-cancelar:hover{background:var(--surface-tertiary)}.btn-guardar{background:var(--primary-600);border-radius:var(--radius-md);font-size:var(--font-size-sm);padding:var(--spacing-2) var(--spacing-4);transition:all var(--transition-fast)}.btn-guardar:hover{background:var(--primary-700)}.btn-eliminar{background:var(--error-600);border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;font-size:var(--font-size-sm);font-weight:500;padding:var(--spacing-2) var(--spacing-4);transition:all var(--transition-fast)}.btn-eliminar:hover{background:var(--error-700)}.confirm-message{text-align:center}.warning-icon{display:block;font-size:3rem;margin-bottom:var(--spacing-3)}.confirm-message p{color:var(--gray-700);font-size:var(--font-size-sm);margin:0 0 var(--spacing-2) 0}.warning-text{color:var(--error-600);font-size:var(--font-size-xs)}@media (max-width:1200px){.estadisticas-usuarios{grid-template-columns:repeat(2,1fr)}.tabla-wrapper{overflow-x:auto}.usuarios-table{min-width:800px}}@media (max-width:768px){.usuarios-header{align-items:stretch;gap:var(--spacing-3)}.filtros-section,.usuarios-header{flex-direction:column}.filtros-rol{flex-wrap:wrap;width:100%}.filtro-btn{flex:1 1;text-align:center}.estadisticas-usuarios,.form-row{grid-template-columns:1fr}.checkbox-group{padding-top:0}}.cartera-loading{align-items:center;color:#6b7280;display:flex;flex-direction:column;justify-content:center;padding:60px 20px}.cartera-loading .spinner{animation:spin 1s linear infinite;border:3px solid #e5e7eb;border-radius:50%;border-top-color:#3b82f6;height:40px;width:40px}@keyframes spin{to{transform:rotate(1turn)}}.cartera-container{margin:0 auto;max-width:1400px;padding:24px}.cartera-header{margin-bottom:24px}.cartera-header h1{color:#111827;font-size:28px;font-weight:700;margin:0 0 4px}.cartera-header p{color:#6b7280;font-size:14px;margin:0}.cartera-stats{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,1fr);margin-bottom:24px}.stat-card{align-items:center;background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;display:flex;gap:16px;padding:20px}.stat-card .stat-icon{font-size:32px}.stat-card .stat-info{display:flex;flex-direction:column}.stat-card .stat-value{color:#111827;font-size:20px;font-weight:700}.stat-card .stat-label{color:#6b7280;font-size:13px}.stat-card.total{border-left:4px solid #3b82f6}.stat-card.recibido{border-left:4px solid #10b981}.stat-card.pendiente{border-left:4px solid #f59e0b}.stat-card.clientes{border-left:4px solid #8b5cf6}.cartera-filtros{display:flex;gap:16px;margin-bottom:24px}.filtro-busqueda{flex:1 1}.filtro-busqueda input{border:1px solid #e5e7eb;border-radius:8px;font-size:14px;padding:12px 16px;width:100%}.filtro-busqueda input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.filtro-estado select{background:#fff;border:1px solid #e5e7eb;border-radius:8px;font-size:14px;min-width:180px;padding:12px 16px}.hojas-vida-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(360px,1fr))}.hoja-vida-card{background:#fff;border-left:4px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #0000001a;cursor:pointer;padding:20px;transition:all .2s}.hoja-vida-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.hoja-vida-card.completado{border-left-color:#10b981}.hoja-vida-card.parcial{border-left-color:#f59e0b}.hoja-vida-card.iniciado{border-left-color:#3b82f6}.hoja-vida-card.pendiente{border-left-color:#e5e7eb}.hv-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:16px}.hv-cliente h3{color:#111827;font-size:16px;font-weight:600;margin:0 0 4px}.hv-proyecto{color:#6b7280;font-size:13px}.hv-estado-proyecto{border-radius:12px;font-size:11px;font-weight:500;padding:4px 10px;text-transform:uppercase}.hv-estado-proyecto.contratado_no_iniciado{background:#f3f4f6;color:#6b7280}.hv-estado-proyecto.en_ejecucion{background:#dbeafe;color:#1d4ed8}.hv-estado-proyecto.finalizado{background:#dcfce7;color:#16a34a}.hv-progreso{align-items:center;display:flex;gap:12px;margin-bottom:16px}.progreso-barra{background:#e5e7eb;border-radius:4px;flex:1 1;height:8px;overflow:hidden}.progreso-fill{background:linear-gradient(90deg,#3b82f6,#10b981);border-radius:4px;height:100%;transition:width .3s}.progreso-porcentaje{color:#111827;font-size:14px;font-weight:600;min-width:50px;text-align:right}.hv-valores{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,1fr);margin-bottom:12px}.hv-valor{display:flex;flex-direction:column;gap:2px}.hv-valor .label{color:#9ca3af;font-size:11px;text-transform:uppercase}.hv-valor .valor{color:#111827;font-size:14px;font-weight:600}.hv-valor .valor.recibido{color:#10b981}.hv-valor .valor.pendiente{color:#f59e0b}.hv-contacto{border-top:1px solid #f3f4f6;color:#6b7280;display:flex;flex-wrap:wrap;font-size:12px;gap:12px;padding-top:12px}.cartera-vacia{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:60px 20px;text-align:center}.cartera-vacia .icono{display:block;font-size:48px;margin-bottom:16px}.cartera-vacia p{color:#374151;font-size:16px;margin:0 0 8px}.cartera-vacia .subtexto{color:#9ca3af;font-size:14px}.hoja-vida-detalle{margin:0 auto;max-width:1200px;padding:24px}.hv-detalle-header{align-items:center;display:flex;gap:20px;margin-bottom:24px}.btn-volver{background:#fff;border:1px solid #e5e7eb;font-size:14px;padding:8px 16px}.btn-volver:hover{background:#f9fafb;border-color:#d1d5db}.hv-titulo h1{color:#111827;font-size:24px;font-weight:700;margin:0 0 4px}.hv-titulo .proyecto-nombre{color:#6b7280;font-size:14px}.hv-info-cliente{grid-gap:16px;background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;display:grid;gap:16px;grid-template-columns:repeat(4,1fr);margin-bottom:20px;padding:20px}.hv-info-cliente .info-item{display:flex;flex-direction:column;gap:4px}.hv-info-cliente .label{color:#6b7280;font-size:12px;text-transform:uppercase}.hv-info-cliente .valor{color:#111827;font-size:14px;font-weight:500}.estado-badge{border-radius:16px;font-size:12px;padding:4px 12px}.estado-badge.contratado_no_iniciado{background:#f3f4f6;color:#6b7280}.estado-badge.en_ejecucion{background:#dbeafe;color:#1d4ed8}.estado-badge.finalizado{background:#dcfce7;color:#16a34a}.hv-resumen-pagos{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,1fr);margin-bottom:24px}.resumen-item{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:20px;text-align:center}.resumen-item .valor{color:#111827;display:block;font-size:24px;font-weight:700;margin-bottom:4px}.resumen-item .label{color:#6b7280;font-size:13px}.resumen-item.esperado{border-top:3px solid #3b82f6}.resumen-item.recibido{border-top:3px solid #10b981}.resumen-item.recibido .valor{color:#10b981}.resumen-item.pendiente{border-top:3px solid #f59e0b}.resumen-item.pendiente .valor{color:#f59e0b}.resumen-item.progreso{border-top:3px solid #8b5cf6}.mini-barra{background:#e5e7eb;border-radius:3px;height:6px;margin-top:8px;overflow:hidden}.mini-fill{background:#8b5cf6;border-radius:3px;height:100%}.hv-campos-section{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:24px}.campos-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.campos-header h2{color:#111827;font-size:18px;font-weight:600;margin:0}.campos-acciones{align-items:center;display:flex;gap:12px}.total-porcentaje{border-radius:6px;font-size:13px;font-weight:600;padding:6px 12px}.total-porcentaje.ok{background:#dcfce7;color:#16a34a}.total-porcentaje.error{background:#fee2e2;color:#dc2626}.btn-agregar-campo,.btn-editar-campos{background:#f3f4f6;border:none;border-radius:6px;cursor:pointer;font-size:13px;padding:8px 16px;transition:all .2s}.btn-agregar-campo:hover,.btn-editar-campos:hover{background:#e5e7eb}.btn-cancelar{background:#fff;border:1px solid #e5e7eb}.btn-cancelar,.btn-guardar{border-radius:6px;font-size:13px;padding:8px 16px}.btn-guardar{background:#10b981}.btn-guardar:disabled{background:#9ca3af}.campos-lista{display:flex;flex-direction:column;gap:16px}.campo-pago-card{background:#f9fafb;border-radius:10px;padding:20px}.campo-header{justify-content:space-between;margin-bottom:16px}.campo-header,.campo-info{align-items:center;display:flex}.campo-info{gap:12px}.campo-info h3{color:#111827;font-size:16px;font-weight:600;margin:0}.campo-porcentaje{background:#e0e7ff;border-radius:12px;color:#3730a3;font-size:12px;font-weight:600;padding:4px 10px}.btn-agregar-comprobante{background:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:500;padding:8px 16px;transition:background .2s}.btn-agregar-comprobante:hover{background:#2563eb}.campo-valores{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(3,1fr);margin-bottom:12px}.campo-valor{display:flex;flex-direction:column;gap:2px}.campo-valor .label{color:#6b7280;font-size:11px;text-transform:uppercase}.campo-valor .valor{color:#111827;font-size:16px;font-weight:600}.campo-valor .valor.recibido{color:#10b981}.campo-valor .valor.pendiente{color:#f59e0b}.campo-progreso{margin-bottom:12px}.campo-comprobantes{border-top:1px dashed #e5e7eb;margin-top:16px;padding-top:16px}.campo-comprobantes h4{color:#6b7280;font-size:13px;font-weight:600;margin:0 0 12px}.comprobantes-lista{display:flex;flex-direction:column;gap:8px}.comprobante-item{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:8px;display:flex;gap:12px;padding:10px 12px}.comp-icono{font-size:20px}.comp-info{flex:1 1;min-width:0}.comp-nombre{color:#3b82f6;display:block;font-size:13px;overflow:hidden;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.comp-nombre:hover{text-decoration:underline}.comp-descripcion{color:#9ca3af;display:block;font-size:12px}.comp-valores{text-align:right}.comp-monto{color:#10b981;display:block;font-size:14px;font-weight:600}.comp-fecha{color:#9ca3af;display:block;font-size:11px}.btn-eliminar-comp{background:none;border:none;color:#9ca3af;cursor:pointer;font-size:14px;padding:4px}.btn-eliminar-comp:hover{color:#ef4444}.campo-edicion{align-items:center;display:flex;gap:12px}.campo-edicion input[type=text]{border:1px solid #e5e7eb;border-radius:6px;flex:1 1;font-size:14px;padding:10px 12px}.campo-porcentaje-edit{align-items:center;display:flex;gap:4px}.campo-porcentaje-edit input{border:1px solid #e5e7eb;border-radius:6px;font-size:14px;padding:10px 12px;text-align:right;width:70px}.btn-eliminar-campo{background:none;border:none;cursor:pointer;font-size:18px;padding:4px}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal-comprobante{background:#fff;border-radius:12px;box-shadow:0 20px 40px #0003;max-width:480px;width:100%}.modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:20px}.modal-header h3{font-size:18px;font-weight:600;margin:0}.btn-cerrar{background:none;border:none;color:#9ca3af;cursor:pointer;font-size:20px}.modal-body{display:flex;flex-direction:column;gap:16px;padding:20px}.modal-body .form-group{display:flex;flex-direction:column;gap:6px}.modal-body .form-group label{color:#374151;font-size:13px;font-weight:500}.modal-body .form-group input{border:1px solid #e5e7eb;border-radius:6px;font-size:14px;padding:10px 12px}.archivo-seleccionado{color:#10b981;font-size:13px;margin-top:4px}.modal-footer{border-top:1px solid #e5e7eb;display:flex;gap:12px;justify-content:flex-end;padding:16px 20px}@media (max-width:1024px){.cartera-stats,.hv-info-cliente,.hv-resumen-pagos{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.cartera-stats{grid-template-columns:1fr}.cartera-filtros{flex-direction:column}.campo-valores,.hojas-vida-grid,.hv-info-cliente,.hv-resumen-pagos,.hv-valores{grid-template-columns:1fr}.campo-header,.campos-header{align-items:flex-start;flex-direction:column;gap:12px}.campos-acciones{flex-wrap:wrap}}.estado-cobro-badge{border-radius:12px;font-size:11px;font-weight:600;padding:4px 10px;text-transform:uppercase}.estado-cobro-badge.pendiente{background:#fef3c7;color:#d97706}.estado-cobro-badge.pagado{background:#dcfce7;color:#16a34a}.campo-pago-card.campo-pagado{background:#f0fdf4;border:1px solid #bbf7d0}.campo-acciones-btns{display:flex;flex-wrap:wrap;gap:8px}.btn-enviar-cuenta{background:#f59e0b;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:500;padding:8px 16px;transition:background .2s}.btn-enviar-cuenta:hover{background:#d97706}.btn-marcar-pagado{background:#10b981;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:500;padding:8px 16px;transition:background .2s}.btn-marcar-pagado:hover{background:#059669}.cuenta-cobro-info{background:#eff6ff;border-left:3px solid #3b82f6;border-radius:8px;margin-top:12px;padding:12px}.cuenta-cobro-info .info-envio,.cuenta-cobro-info .info-pago{align-items:center;display:flex;flex-wrap:wrap;font-size:13px;gap:8px}.cuenta-cobro-info .info-pago{border-top:1px dashed #bfdbfe;margin-top:8px;padding-top:8px}.cuenta-cobro-info .label{color:#6b7280}.cuenta-cobro-info .valor{color:#1f2937;font-weight:500}.ver-documento{background:#fff;border:1px solid #bfdbfe;border-radius:4px;color:#3b82f6;font-size:12px;padding:2px 8px;text-decoration:none}.ver-documento:hover{background:#dbeafe}.modal-cuenta-cobro,.modal-marcar-pagado{background:#fff;border-radius:12px;box-shadow:0 20px 40px #0003;max-width:500px;width:100%}.modal-header.cuenta-cobro{background:#f59e0b;border-radius:12px 12px 0 0;color:#fff}.modal-header.pagado{background:#10b981;border-radius:12px 12px 0 0;color:#fff}.modal-header.cuenta-cobro .btn-cerrar,.modal-header.pagado .btn-cerrar{color:#fff}.info-envio-cuenta,.info-pago-cuenta{background:#f9fafb;border-radius:8px;margin-bottom:16px;padding:16px}.info-envio-cuenta p,.info-pago-cuenta p{color:#374151;font-size:14px;margin:0 0 8px}.info-envio-cuenta p:last-child,.info-pago-cuenta p:last-child{margin-bottom:0}.alerta-info{background:#fef3c7;border-left:3px solid #f59e0b;border-radius:6px;padding:12px}.alerta-info.success{background:#dcfce7;border-left-color:#10b981}.alerta-info p{color:#92400e;font-size:13px;margin:0}.alerta-info.success p{color:#166534}.btn-enviar{background:#f59e0b;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:background .2s}.btn-enviar:hover:not(:disabled){background:#d97706}.btn-enviar:disabled{background:#9ca3af;cursor:not-allowed}.btn-confirmar-pago{background:#10b981;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:background .2s}.btn-confirmar-pago:hover:not(:disabled){background:#059669}.btn-confirmar-pago:disabled{background:#9ca3af;cursor:not-allowed}.cartera-header{align-items:flex-start;display:flex;justify-content:space-between}.btn-exportar-excel{align-items:center;background:linear-gradient(135deg,#059669,#10b981);border-radius:8px;box-shadow:0 2px 4px #0596694d;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;padding:10px 20px;transition:all .2s}.btn-exportar-excel:hover{background:linear-gradient(135deg,#047857,#059669);box-shadow:0 4px 8px #05966966}.btn-exportar-excel svg{flex-shrink:0}.modal-exportar{background:#fff;border-radius:16px;box-shadow:0 25px 50px #00000040;max-height:90vh;max-width:500px;overflow:hidden;width:90%}.modal-exportar .modal-header{align-items:center;background:linear-gradient(135deg,#059669,#10b981);border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:20px 24px}.modal-exportar .modal-header h3{color:#fff;font-size:18px;font-weight:600;margin:0}.modal-exportar .modal-header .btn-cerrar{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:20px;height:32px;justify-content:center;transition:background .2s;width:32px}.modal-exportar .modal-header .btn-cerrar:hover{background:#ffffff4d}.modal-exportar .modal-body{padding:24px}.modal-descripcion{color:#6b7280;font-size:14px;margin:0 0 20px;text-align:center}.opciones-exportar{display:flex;flex-direction:column;gap:12px}.opcion-exportar{align-items:center;background:#f9fafb;border:2px solid #e5e7eb;border-radius:12px;cursor:pointer;display:flex;gap:16px;padding:16px 20px;text-align:left;transition:all .2s}.opcion-exportar:hover:not(:disabled){background:#eff6ff;border-color:#3b82f6;transform:translateX(4px)}.opcion-exportar:disabled{cursor:not-allowed;opacity:.6}.opcion-exportar.sin-pagos:hover:not(:disabled){background:#fef2f2;border-color:#ef4444}.opcion-exportar.pagos-parciales:hover:not(:disabled){background:#fffbeb;border-color:#f59e0b}.opcion-exportar.pagos-completos:hover:not(:disabled){background:#ecfdf5;border-color:#10b981}.opcion-exportar.todos:hover:not(:disabled){background:#eef2ff;border-color:#6366f1}.opcion-icono{flex-shrink:0;font-size:28px}.opcion-titulo{color:#1f2937;display:block;font-size:15px;font-weight:600;margin-bottom:2px}.opcion-descripcion{color:#6b7280;display:block;font-size:13px}.exportando-mensaje{align-items:center;background:#f0f9ff;border-radius:8px;color:#0369a1;display:flex;font-size:14px;font-weight:500;gap:12px;justify-content:center;margin-top:16px;padding:16px}.spinner-small{animation:spin 1s linear infinite;border:2px solid #bae6fd;border-radius:50%;border-top-color:#0284c7;height:20px;width:20px}.cuentas-cobro-container{background:#f5f7fa;min-height:100vh;padding:1.5rem}.cc-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.5rem}.cc-header-info h1{color:#333;font-size:1.75rem;margin:0}.cc-header-info p{color:#666;font-size:.9rem;margin:.25rem 0 0}.btn-nueva-cuenta{background:linear-gradient(135deg,#4caf50,#2e7d32);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;padding:.75rem 1.5rem;transition:all .2s}.btn-nueva-cuenta:hover{box-shadow:0 4px 12px #4caf5066;transform:translateY(-2px)}.cc-empty,.cc-loading{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:3rem;text-align:center}.cc-empty span{display:block;font-size:4rem;margin-bottom:1rem}.cc-empty p{color:#666;margin-bottom:1.5rem}.cc-empty button{background:#4caf50;border:none;border-radius:8px;color:#fff;cursor:pointer;padding:.75rem 1.5rem}.cc-tabla{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.cc-tabla table{border-collapse:collapse;width:100%}.cc-tabla td,.cc-tabla th{border-bottom:1px solid #eee;padding:1rem;text-align:left}.cc-tabla th{color:#555;font-size:.85rem;font-weight:600;text-transform:uppercase}.cc-tabla th,.cc-tabla tr:hover{background:#f9fafb}.consecutivo{background:#e3f2fd;color:#1976d2}.badge-tipo{border-radius:20px;display:inline-block;font-size:.8rem;font-weight:500;padding:4px 10px}.badge-tipo.separacion{background:#e8f5e9;color:#2e7d32}.badge-tipo.anticipo{background:#e3f2fd;color:#1976d2}.badge-tipo.avance{background:#fff3e0;color:#e65100}.badge-tipo.entrega_final{background:#f3e5f5;color:#7b1fa2}.btn-descargar,.btn-descargar-pdf,.btn-editar{background:none;border:1px solid #ddd;border-radius:6px;cursor:pointer;font-size:1rem;padding:.5rem;transition:all .2s}.btn-descargar-pdf:hover,.btn-descargar:hover{background:#e3f2fd;border-color:#90caf9}.cc-crear-view{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:1.5rem}.cc-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:1fr 1fr}@media (max-width:1200px){.cc-grid{grid-template-columns:1fr}}.cc-formulario h2{color:#333;font-size:1.25rem;margin:0 0 1.5rem}.cc-preview{position:-webkit-sticky;position:sticky;top:1rem}.cc-preview h2{color:#333;font-size:1.25rem;margin:0 0 1rem}.preview-container{border:1px solid #ddd;border-radius:4px;box-shadow:0 4px 20px #00000026;overflow:auto}.documento-preview{background:#fff;box-sizing:border-box;color:#000;font-family:Segoe UI,Arial,sans-serif;font-size:11px;height:792px;margin:0 auto;overflow:hidden;padding:0;position:relative;width:612px}.doc-header{align-items:center;background-color:#f1f9dc;box-sizing:border-box;display:flex;justify-content:space-between;left:0;margin:0;padding:8px 20px;position:absolute;right:0;top:0;width:100%}.doc-logo{height:30px}.doc-slogan{color:#2d5016;font-size:10px;font-weight:500}.doc-content{color:#000;padding:60px 50px}.doc-content p{color:#000;font-size:11px;line-height:1.4;margin:3px 0}.doc-fecha-section{margin-bottom:20px;text-align:right}.doc-fecha-section p{font-size:11px;margin:3px 0}.doc-destinatario{margin-bottom:15px}.doc-destinatario p{font-size:11px;margin:3px 0}.doc-debe{margin-bottom:15px}.doc-debe p{font-size:11px;margin:3px 0}.doc-cuerpo{line-height:1.5;margin-bottom:20px;text-align:left}.doc-cuerpo p{font-size:11px;margin:0}.doc-despedida{font-size:11px;margin:15px 0}.doc-firma{margin-top:10px;text-align:left}.doc-firma .firma-img{display:block;height:40px;margin-bottom:5px;margin-left:0;margin-right:auto}.doc-firma p{font-size:11px;margin:2px 0}.doc-nota{color:#555;font-size:9px;font-style:italic;margin-top:15px}.doc-footer{align-items:center;background-color:#f1f9dc;bottom:0;box-sizing:border-box;display:flex;justify-content:space-between;left:0;padding:8px 20px;position:absolute;right:0;width:100%}.footer-empresa{color:#2d5016;font-size:10px;font-weight:600}.footer-contacto{color:#2d5016;display:flex;font-size:9px;gap:15px}.highlight{background:#fff59d;padding:1px 4px}.bold{font-weight:700}.italic{font-style:italic}.underline{text-decoration:underline}.cc-search-dropdown{position:relative}.cc-search-input{border:1px solid #ddd;border-radius:8px;box-sizing:border-box;font-size:1rem;padding:.75rem 2rem .75rem .75rem;transition:border-color .2s;width:100%}.cc-search-input:focus{border-color:#4caf50;outline:none}.cc-search-clear{background:none;border:none;color:#999;cursor:pointer;font-size:1.2rem;line-height:1;padding:0 4px;position:absolute;right:8px;top:50%;transform:translateY(-50%)}.cc-search-clear:hover{color:#333}.cc-search-list{background:#fff;border:1px solid #ddd;border-radius:0 0 8px 8px;border-top:none;box-shadow:0 4px 12px #00000026;left:0;max-height:200px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:100}.cc-search-item{border-bottom:1px solid #f0f0f0;cursor:pointer;display:flex;flex-direction:column;gap:2px;padding:.6rem .75rem;transition:background .15s}.cc-search-item:last-child{border-bottom:none}.cc-search-item:hover{background:#f0f7f0}.cc-search-item.selected{background:#e8f5e9}.cc-search-main{color:#333;font-size:.9rem;font-weight:500}.cc-search-sub{color:#888;font-size:.78rem}.cc-search-empty{color:#999;font-size:.85rem;padding:.75rem;text-align:center}@media (max-width:768px){.cc-header{align-items:flex-start}.cc-header,.form-actions{flex-direction:column}.form-actions button{width:100%}.cc-preview{position:relative}}.contratos-container{background:#f5f7fa;min-height:100vh;padding:1.5rem}.ct-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.5rem}.ct-header-info h1{color:#333;font-size:1.75rem;margin:0}.ct-header-info p{color:#666;font-size:.9rem;margin:.25rem 0 0}.btn-nuevo-contrato{background:linear-gradient(135deg,#4caf50,#2e7d32);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;padding:.75rem 1.5rem;transition:all .2s}.btn-nuevo-contrato:hover{box-shadow:0 4px 12px #4caf5066;transform:translateY(-2px)}.btn-volver{background:#f5f5f5;border:1px solid #ddd;border-radius:8px;color:#333;cursor:pointer;font-size:1rem;padding:.75rem 1.5rem;transition:all .2s}.btn-volver:hover{background:#e0e0e0}.ct-empty,.ct-loading{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:3rem;text-align:center}.ct-empty span{display:block;font-size:4rem;margin-bottom:1rem}.ct-empty p{color:#666;margin-bottom:1.5rem}.ct-empty button{background:#4caf50;border:none;border-radius:8px;color:#fff;cursor:pointer;padding:.75rem 1.5rem}.ct-tabla{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.ct-tabla table{border-collapse:collapse;width:100%}.ct-tabla td,.ct-tabla th{border-bottom:1px solid #eee;padding:1rem;text-align:left}.ct-tabla th{color:#555;font-size:.85rem;font-weight:600;text-transform:uppercase}.ct-tabla th,.ct-tabla tr:hover{background:#f9fafb}.consecutivo{background:#e8f5e9;border-radius:4px;color:#2e7d32;font-size:.9rem;font-weight:600;padding:4px 10px}.cliente-info,.proyecto-info{display:flex;flex-direction:column}.cliente-info .nombre,.proyecto-info .nombre{color:#333;font-weight:500}.cliente-info .cedula,.proyecto-info .apto{color:#888;font-size:.8rem}.monto{color:#2e7d32;font-weight:600}.acciones{display:flex;gap:.5rem}.btn-editar{background:none;border:1px solid #ddd;border-radius:6px;cursor:pointer;font-size:1rem;padding:.5rem;transition:all .2s}.btn-editar:hover{background:#fff3e0;border-color:#ffcc80}.ct-crear-view{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:1.5rem}.ct-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:1fr 1fr}@media (max-width:1400px){.ct-grid{grid-template-columns:1fr}}.ct-formulario h2{color:#333;font-size:1.25rem;margin:0 0 1.5rem}.form-section{margin-bottom:1.5rem;padding-bottom:1.5rem}.form-section h3{color:#666;font-size:.9rem;letter-spacing:.5px;text-transform:uppercase}.form-row{grid-gap:1rem;gap:1rem;grid-template-columns:1fr 1fr}@media (max-width:600px){.form-row{grid-template-columns:1fr}}.form-group label{font-size:.85rem}.form-group input,.form-group select{border:1px solid #ddd;font-size:1rem;padding:.75rem}.form-group input:focus,.form-group select:focus{border-color:#4caf50}.valor-letras{color:#888;font-size:.75rem;font-style:italic;margin-top:4px}.ct-pago-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:1fr 1fr}.ct-pago-item{background:#fafafa;border:1px solid #e8e8e8;border-radius:8px;padding:.6rem .75rem}.ct-pago-label{color:#555;display:block;font-size:.8rem;font-weight:600;margin-bottom:.4rem}.ct-pago-controls{gap:.5rem}.ct-pago-controls,.ct-pago-pct{align-items:center;display:flex}.ct-pago-pct{gap:3px}.ct-pago-pct input{border:1px solid #ddd;border-radius:6px;font-size:.85rem;padding:.4rem;text-align:center;width:52px}.ct-pago-pct input:focus{border-color:#4caf50;outline:none}.ct-pago-pct span{color:#666;font-size:.8rem}.ct-pago-valor-input{background:#f9fafb;border:1px solid #ddd;border-radius:6px;color:#2e7d32;font-size:.85rem;font-weight:600;margin-left:auto;padding:4px 8px;text-align:right;transition:border-color .2s;width:120px}.ct-pago-valor-input:focus{background:#fff;border-color:#4caf50;outline:none}.ct-pago-valor-input::-webkit-inner-spin-button,.ct-pago-valor-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.ct-pago-valor-input{-moz-appearance:textfield}.ct-pago-validacion{align-items:center;border-radius:8px;display:flex;font-size:.82rem;gap:8px;margin-top:8px;padding:8px 12px}.ct-pago-validacion-icon{flex-shrink:0;font-size:1rem}.ct-pago-ok{background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46}.ct-pago-error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.ct-pago-diferencia{opacity:.85}.btn-cancelar{background:#f5f5f5;border:1px solid #ddd;color:#666;padding:.75rem 1.5rem}.btn-preview{background:#e3f2fd;border:1px solid #90caf9;border-radius:8px;color:#1976d2;cursor:pointer;font-weight:500;padding:.75rem 1.5rem}.btn-preview:hover{background:#bbdefb}.btn-guardar{background:linear-gradient(135deg,#4caf50,#2e7d32);padding:.75rem 1.5rem}.btn-guardar:hover{box-shadow:0 4px 12px #4caf5066}.ct-preview{position:-webkit-sticky;position:sticky;top:1rem}.ct-preview h2{color:#333;font-size:1.25rem;margin:0 0 1rem}.preview-nota{color:#888;font-size:.8rem;font-style:italic;margin-top:.5rem}.contrato-preview{background:#fff;box-sizing:border-box;color:#000;font-family:Segoe UI,Arial,sans-serif;font-size:9px;height:792px;margin:0;overflow:hidden;padding:0;position:relative;width:612px}.contrato-page{page-break-inside:avoid}.contrato-preview .doc-header{align-items:center;background-color:#f1f9dc;box-sizing:border-box;display:flex;justify-content:space-between;margin:0;padding:8px 20px;width:100%}.contrato-preview .doc-logo{height:28px}.contrato-preview .doc-slogan{color:#2d5016;font-size:9px;font-weight:500}.contrato-content{color:#000;padding:80px 80px 30px}.contrato-preview h2.contrato-titulo{color:#000;font-size:9px;font-weight:700;margin:8px 0 12px;text-align:center;text-decoration:underline}.contrato-tabla{border-collapse:collapse;font-size:8px;width:100%}.contrato-tabla td{border:1px solid #000;color:#000;padding:6px 8px;vertical-align:top}.contrato-tabla .label{background:#0000;font-weight:700;width:25%}.contrato-tabla .value{width:75%}.contrato-tabla .bold{font-weight:700}.contrato-preview .doc-footer{align-items:center;background-color:#f1f9dc;bottom:0;box-sizing:border-box;display:flex;justify-content:space-between;left:0;padding:8px 20px;position:absolute;right:0;width:100%}.contrato-preview .footer-empresa{color:#2d5016;font-size:9px;font-weight:600}.contrato-preview .footer-contacto{color:#2d5016;display:flex;font-size:8px;gap:15px}.contrato-clausulas{line-height:1.55;padding-top:52px!important;text-align:justify}.clausula-intro{margin-bottom:14px;text-align:justify}.clausula{margin-bottom:12px}.clausula h4{color:#000;display:inline;font-size:9px;font-weight:700;margin:0;padding:0}.clausula h4 u{background-color:#c5f092;padding:2px 4px}.clausula h4.seccion-titulo{background-color:#c5f092;display:block;margin-bottom:8px;padding:4px 8px;text-align:center}.clausula h4+p{display:inline}.clausula p{margin:0 0 5px;text-align:justify}.firma-intro{margin:15px 0;text-align:center}.firmas-container{display:flex;justify-content:space-between;margin-top:30px;padding:0 10px}.firma-box{text-align:center;width:45%}.firma-rol-titulo{background-color:#c5f092;color:#000;display:inline-block;font-size:9px;font-weight:700;margin:0 0 10px;padding:3px 6px}.firma-box .firma-img{display:block;height:40px;margin-bottom:-2px;margin-left:auto;margin-right:auto}.firma-espacio{height:38px}.firma-linea{border-top:1px solid #000;margin-bottom:6px;width:100%}.firma-cargo,.firma-nombre{font-size:8px;margin:0 0 2px}.firma-cedula{font-size:8px;margin:0}.ct-preview .preview-container{background:#e0e0e0;border:1px solid #ddd;border-radius:4px;box-shadow:0 4px 20px #00000026;max-height:700px;overflow:auto;padding:10px}.ct-preview .preview-container .contrato-page{box-shadow:0 2px 8px #0003;margin-bottom:10px}.ct-preview .preview-container .contrato-page:last-child{margin-bottom:0}.ct-btn-pdf-cot{background:#fff3e0!important;border:1px solid #ffcc80!important;color:#e65100!important}.ct-btn-pdf-cot:hover{background:#ffe0b2!important}.ct-modal-overlay{align-items:center;background:#00000080;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.ct-modal{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0003;display:flex;flex-direction:column;max-height:70vh;max-width:90vw;width:500px}.ct-modal-header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:1rem 1.25rem}.ct-modal-header h3{color:#333;font-size:1.1rem;margin:0}.ct-modal-close{background:none;border:none;color:#999;cursor:pointer;font-size:1.5rem;line-height:1;padding:0 4px}.ct-modal-close:hover{color:#333}.ct-modal-search{border-bottom:1px solid #eee;padding:.75rem 1.25rem}.ct-modal-search input{border:1px solid #ddd;border-radius:8px;box-sizing:border-box;font-size:.95rem;padding:.6rem .75rem;width:100%}.ct-modal-search input:focus{border-color:#4caf50;outline:none}.ct-modal-list{flex:1 1;max-height:400px;overflow-y:auto}.ct-modal-item{align-items:center;border-bottom:1px solid #f0f0f0;cursor:pointer;display:flex;gap:.75rem;padding:.75rem 1.25rem;transition:background .15s}.ct-modal-item:last-child{border-bottom:none}.ct-modal-item:hover{background:#f0f7f0}.ct-modal-item-num{background:#e8f5e9;border-radius:4px;color:#2e7d32;font-size:.85rem;font-weight:600;padding:4px 8px;white-space:nowrap}.ct-modal-item-info{display:flex;flex-direction:column;gap:2px}.ct-modal-item-main{color:#333;font-size:.9rem;font-weight:500}.ct-modal-item-sub{color:#888;font-size:.78rem}.ct-modal-empty{color:#999;padding:2rem;text-align:center}@media (max-width:768px){.ct-header{align-items:flex-start}.ct-header,.form-actions{flex-direction:column}.form-actions button{width:100%}.ct-preview{position:relative}}.matriz-container{margin:0 auto;max-width:1600px;padding:20px}.matriz-header{align-items:center;border-bottom:2px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:24px;padding-bottom:16px}.matriz-header-info h1{color:#1f2937;font-size:1.75rem;margin:0 0 4px}.matriz-header-info p{color:#6b7280;font-size:.9rem;margin:0}.matriz-header-actions{display:flex;gap:12px}.matriz-header-actions button{border:none;border-radius:8px;cursor:pointer;font-weight:500;padding:10px 20px;transition:all .2s}.btn-importar{background:#f3f4f6;border:1px solid #d1d5db!important;color:#374151}.btn-importar:hover:not(:disabled){background:#e5e7eb}.btn-importar:disabled{cursor:not-allowed;opacity:.6}.matriz-filtros{background:#f9fafb;border-radius:12px;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px;padding:16px}.filtro-buscar{flex:1 1;min-width:250px}.filtro-buscar input{border:1px solid #d1d5db;border-radius:8px;font-size:.9rem;padding:10px 14px;width:100%}.filtro-buscar input:focus{border-color:#1b2433;box-shadow:0 0 0 3px #1b24331a;outline:none}.filtro-select{min-width:180px}.filtro-select select{background:#fff;border:1px solid #d1d5db;border-radius:8px;cursor:pointer;font-size:.9rem;padding:10px 14px;width:100%}.filtro-select select:focus{border-color:#1b2433;outline:none}.btn-limpiar{background:#fff;border:1px solid #d1d5db;border-radius:8px;color:#6b7280;cursor:pointer;font-size:.9rem;padding:10px 16px}.btn-limpiar:hover{background:#f3f4f6}.matriz-stats{background:#eef2ff;border-radius:8px;color:#4338ca;display:flex;font-size:.9rem;justify-content:space-between;margin-bottom:16px;padding:12px 16px}.matriz-empty,.matriz-loading{color:#6b7280;padding:60px 20px;text-align:center}.matriz-empty span{display:block;font-size:3rem;margin-bottom:16px}.matriz-empty p{margin-bottom:16px}.matriz-empty button{background:#1b2433;border:none;border-radius:8px;color:#fff;cursor:pointer;padding:10px 20px}.matriz-tabla-wrapper{border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #0000000d;overflow-x:auto}.matriz-tabla{border-collapse:collapse;font-size:.875rem;width:100%}.matriz-tabla thead{background:#1b2433;color:#fff}.matriz-tabla th{font-weight:600;padding:14px 12px;text-align:left;white-space:nowrap}.matriz-tabla tbody tr{border-bottom:1px solid #f3f4f6;transition:background .2s}.matriz-tabla tbody tr:hover{background:#f9fafb}.matriz-tabla tbody tr.inactivo{background:#fef2f2;opacity:.5}.matriz-tabla td{padding:12px;vertical-align:middle}.matriz-tabla .codigo{color:#4338ca;font-family:Fira Code,monospace;font-size:.8rem;font-weight:500}.matriz-tabla .actividad{max-width:300px}.matriz-tabla .tag{border-radius:4px;display:inline-block;font-size:.75rem;font-weight:500;padding:4px 8px}.categoria-tag{background:#dbeafe;color:#1e40af}.capitulo-tag{background:#fef3c7;color:#92400e}.matriz-tabla .unidad{font-weight:500;text-align:center}.matriz-tabla .espacio{color:#6b7280;font-size:.8rem}.matriz-tabla .ffe{text-align:center}.ffe-badge{border-radius:12px;padding:3px 8px}.ffe-si{background:#dbeafe;color:#1e40af}.ffe-no{background:#f3f4f6;color:#9ca3af}.matriz-tabla .numero{color:#374151;font-size:.85rem;font-weight:500;text-align:center}.estado-badge{font-size:.75rem;padding:4px 10px}.estado-badge.activo{background:#d1fae5;color:#065f46}.estado-badge.inactivo{background:#fee2e2;color:#991b1b}.matriz-tabla .acciones{white-space:nowrap}.btn-icon{background:#0000;border:1px solid #e5e7eb;border-radius:6px;margin-right:4px;padding:6px 10px}.btn-icon:hover{background:#f3f4f6}.btn-icon.delete:hover{background:#fee2e2;border-color:#fecaca}.matriz-paginacion{align-items:center;display:flex;gap:16px;justify-content:center;padding:20px}.matriz-paginacion button{background:#fff;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;padding:8px 16px;transition:all .2s}.matriz-paginacion button:hover:not(:disabled){background:#f3f4f6}.matriz-paginacion button:disabled{cursor:not-allowed;opacity:.5}.matriz-paginacion span{color:#6b7280;font-size:.9rem}.matriz-form-view{display:flex;justify-content:center}.matriz-form-container{background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014;max-width:800px;padding:32px;width:100%}.matriz-form-container h2{color:#1f2937;font-size:1.5rem;margin:0 0 24px}.form-row{grid-gap:16px;display:grid;grid-template-columns:repeat(2,1fr);margin-bottom:16px}.form-row.four-cols{grid-template-columns:repeat(4,1fr)}.form-group{margin-bottom:16px}.form-group label{font-size:.875rem}.form-group input,.form-group select,.form-group textarea{border:1px solid #d1d5db;border-radius:8px;font-size:.9rem;padding:10px 14px;transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#1b2433;box-shadow:0 0 0 3px #1b24331a;outline:none}.form-group textarea{min-height:60px;resize:vertical}.form-section-title{border-bottom:1px solid #e5e7eb;color:#6b7280;font-size:.9rem;font-weight:600;margin:24px 0 16px;padding-bottom:8px}.checkbox-group{align-items:center;flex-direction:row}.checkbox-group label{align-items:center;cursor:pointer;display:flex;gap:8px;margin-bottom:0}.checkbox-group input[type=checkbox]{cursor:pointer;height:18px;width:18px}.form-actions{margin-top:24px;padding-top:24px}.btn-cancelar{border:none}.btn-cancelar,.btn-guardar{padding:12px 24px}.matriz-tabla .valor-unitario{color:#065f46;font-size:.85rem;font-weight:600;text-align:right;white-space:nowrap}.sin-precio{color:#9ca3af;font-size:.8rem;font-style:italic;font-weight:400}.matriz-tabla .cant-pred{color:#6b7280;font-size:.8rem;max-width:120px}.btn-importar-precios{background:#059669!important;border:none;color:#fff!important}.btn-importar-precios:hover:not(:disabled){background:#047857!important;box-shadow:0 4px 12px #05966966;transform:translateY(-1px)}.btn-importar-precios:disabled{cursor:not-allowed;opacity:.6}.matriz-tabla .valor-final{color:#1e40af;font-size:.85rem;font-weight:700;text-align:right;white-space:nowrap}.valor-preview{color:#059669;font-size:.85rem;font-weight:600;margin-top:4px}.valor-final-preview{background:#eef2ff;border:1px solid #c7d2fe;border-radius:8px;color:#1e40af;font-size:1rem;margin-bottom:16px;padding:12px 16px}.valor-final-preview span{font-size:1.1rem;font-weight:700}.valor-final-detalle{color:#6b7280;display:block;font-size:.8rem;font-weight:400;margin-top:4px}.matriz-bulk-incremento{align-items:center;background:#fef9c3;border:1px solid #fde047;border-radius:8px;display:flex;gap:8px;margin-bottom:16px;padding:10px 16px}.bulk-label{color:#854d0e;font-size:.875rem;font-weight:500;white-space:nowrap}.bulk-input{border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;padding:6px 10px;text-align:center;width:100px}.bulk-input:focus{border-color:#1b2433;box-shadow:0 0 0 2px #1b24331a;outline:none}.bulk-suffix{color:#854d0e;font-size:.875rem;font-weight:600}.btn-aplicar-incremento{background:#854d0e;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:500;padding:6px 16px;transition:all .2s;white-space:nowrap}.btn-aplicar-incremento:hover:not(:disabled){background:#713f12}.btn-aplicar-incremento:disabled{cursor:not-allowed;opacity:.5}.btn-exportar-excel{background:#059669!important;border:none;color:#fff!important}.btn-exportar-excel:hover{background:#047857!important;box-shadow:0 4px 12px #05966966;transform:translateY(-1px)}.btn-importar-excel{align-items:center;background:#2563eb;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;font-size:inherit;font-weight:500;padding:10px 20px;transition:all .2s}.btn-importar-excel:hover{background:#1d4ed8;box-shadow:0 4px 12px #2563eb66;transform:translateY(-1px)}@media (max-width:1024px){.matriz-filtros{flex-direction:column}.filtro-buscar,.filtro-select{min-width:100%}.form-row{grid-template-columns:1fr}.form-row.four-cols{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.matriz-header{flex-direction:column;gap:16px;text-align:center}.matriz-header-actions{flex-direction:column;width:100%}.form-row.four-cols{grid-template-columns:1fr}.matriz-form-container{padding:20px}}.cotizaciones-container{background:#f5f7fa;min-height:100vh;padding:1.5rem}.cotizaciones-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.5rem}.cotizaciones-header h2{color:#333;font-size:1.75rem;margin:0}.cotizaciones-header-left{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.autosave-indicator{color:#9ca3af;font-size:.78rem;transition:all .3s}.autosave-indicator.saving{color:#f59e0b}.autosave-indicator.saved{color:#10b981}.btn-primary{background:linear-gradient(135deg,#4caf50,#2e7d32);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;padding:.75rem 1.5rem;transition:all .2s}.btn-primary:hover{box-shadow:0 4px 12px #4caf5066;transform:translateY(-2px)}.btn-primary:disabled{background:#ccc;box-shadow:none;cursor:not-allowed;transform:none}.btn-secondary{background:#f5f5f5;border:1px solid #ddd;border-radius:8px;color:#333;cursor:pointer;font-size:1rem;padding:.75rem 1.5rem;transition:all .2s}.btn-secondary:hover{background:#e0e0e0}.cotizaciones-tabs{border-bottom:2px solid #e0e0e0;display:flex;gap:0;margin-bottom:1.5rem}.tab-btn{background:none;border:none;border-bottom:2px solid #0000;color:#888;cursor:pointer;font-size:.95rem;font-weight:500;margin-bottom:-2px;padding:.75rem 1.5rem;transition:all .2s}.tab-btn:hover{color:#333}.tab-btn.active{border-bottom-color:#2e7d32;color:#2e7d32}.cotizaciones-viejas{display:flex;flex-direction:column;gap:1.5rem}.viejas-upload-row{align-items:center;display:flex;flex-wrap:wrap;gap:1rem}.input-buscar-viejas{flex:1 1;min-width:250px}.input-buscar-viejas,.select-estado-viejas{background:#fff;border:1px solid #ddd;border-radius:8px;font-size:.95rem;padding:.75rem 1rem}.select-estado-viejas{cursor:pointer;min-width:160px}.viejas-empty{background:#fff;border:2px dashed #ccc;border-radius:12px;padding:3rem;text-align:center}.viejas-empty h3{color:#333;font-size:1.1rem;margin:0 0 .5rem}.viejas-empty p{color:#888;font-size:.9rem;margin:0}.upload-icon{font-size:3rem;margin-bottom:1rem}.btn-upload-excel{background:linear-gradient(135deg,#4caf50,#2e7d32);border-radius:8px;color:#fff;cursor:pointer;display:inline-block;font-size:.95rem;font-weight:500;padding:.75rem 1.5rem;transition:all .2s;white-space:nowrap}.btn-upload-excel:hover{box-shadow:0 4px 12px #4caf5066;transform:translateY(-2px)}.preview-vieja{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:1.5rem}.preview-header{align-items:center;border-bottom:2px solid #4caf50;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem}.preview-header h3{color:#333;font-size:1.25rem;margin:0}.preview-actions{display:flex;gap:.75rem}.preview-datos-cliente{margin-bottom:1.5rem}.preview-datos-cliente h4{color:#555;font-size:1rem;margin:0 0 .75rem}.preview-grid{grid-gap:.5rem 1.5rem;background:#f8f9fa;border-radius:8px;display:grid;font-size:.9rem;gap:.5rem 1.5rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));padding:1rem}.preview-actividades h4{color:#555;font-size:1rem;margin:0 0 .75rem}.preview-ffe-count{background:#e8f5e9;border-radius:12px;color:#2e7d32;display:inline-block;font-size:.8rem;font-weight:600;padding:2px 8px}.preview-tabla-wrap{border:1px solid #e0e0e0;border-radius:8px;max-height:400px;overflow-y:auto}.preview-tabla{border-collapse:collapse;font-size:.85rem;width:100%}.preview-tabla th{background:#f0f1f3;color:#555;font-size:.8rem;font-weight:600;padding:.6rem .5rem;position:-webkit-sticky;position:sticky;text-align:left;top:0;z-index:1}.preview-tabla td{border-bottom:1px solid #eee;padding:.5rem}.preview-tabla .text-right{text-align:right}.preview-tabla tr:hover{background:#f8f9fa}.preview-tabla .row-ffe-si{background:#e8f5e9}.preview-tabla .row-ffe-si:hover{background:#c8e6c9}.ffe-badge{border-radius:10px;display:inline-block;font-size:.75rem;font-weight:600;padding:2px 8px}.ffe-si{background:#2e7d32;color:#fff}.ffe-no{background:#e0e0e0;color:#666}.preview-totales{margin-left:auto;margin-top:1.5rem;max-width:350px}.preview-total-row{border-bottom:1px solid #eee;display:flex;font-size:.95rem;justify-content:space-between;padding:.5rem 0}.preview-total-final{background:#2e7d32;border:none;border-radius:8px;color:#fff;font-size:1.05rem;font-weight:600;margin-top:.5rem;padding:.75rem}.cotizaciones-filtros{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.cotizaciones-filtros input,.cotizaciones-filtros select{background:#fff;border:1px solid #ddd;border-radius:8px;font-size:.95rem;padding:.75rem 1rem}.cotizaciones-filtros input{flex:1 1;min-width:250px}.cotizaciones-filtros select{min-width:180px}.loading{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:3rem}.loading,.loading-small{color:#666;text-align:center}.loading-small{padding:1rem}.cotizaciones-tabla{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow-x:auto}.cotizaciones-tabla table{border-collapse:collapse;width:100%}.cotizaciones-tabla td,.cotizaciones-tabla th{border-bottom:1px solid #eee;padding:1rem;text-align:left}.cotizaciones-tabla th{background:#f8f9fa;color:#555;font-size:.85rem;font-weight:600;text-transform:uppercase}.cotizaciones-tabla tr:hover{background:#f8f9fa}.sin-datos{color:#999;padding:2rem!important;text-align:center}.estado-badge{border-radius:20px;display:inline-block;font-size:.8rem;font-weight:500;padding:.35rem .75rem;text-transform:capitalize}.estado-borrador{background:#fff3cd;color:#856404}.estado-enviada{background:#cce5ff;color:#004085}.estado-aprobada{background:#d4edda;color:#155724}.estado-rechazada{background:#f8d7da;color:#721c24}.estado-firmado{background:#e0d4f5;color:#4a148c}.estado-importada{background:#e0f2f1;color:#00695c}.estado-base{background:#fff8e1;color:#f57f17;font-weight:600}.acciones-btns{display:flex;gap:.5rem}.btn-icon{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:1rem;height:36px;justify-content:center;transition:all .2s;width:36px}.btn-editar{background:#e3f2fd}.btn-editar:hover{background:#bbdefb}.btn-duplicar{background:#e8eaf6}.btn-duplicar:hover{background:#c5cae9}.btn-aprobar{background:#e8f5e9;color:#2e7d32;font-size:1.1rem;font-weight:700}.btn-aprobar:hover{background:#c8e6c9}.btn-rechazar{background:#fff3e0;color:#e65100;font-size:1.1rem;font-weight:700}.btn-rechazar:hover{background:#ffe0b2}.btn-firmar{background:#f3e5f5;color:#4a148c;font-size:1.1rem;font-weight:700}.btn-firmar:hover{background:#e1bee7}.btn-ver-detalle{background:#e0f2f1;color:#00695c;font-size:1.1rem}.btn-ver-detalle:hover{background:#b2dfdb}.btn-actualizar-vieja{background:#fff3e0;color:#e65100;cursor:pointer;font-size:1rem}.btn-actualizar-vieja:hover{background:#ffe0b2}.btn-regresar-estado{background:#fce4ec;color:#880e4f;font-size:1.1rem;font-weight:700}.btn-regresar-estado:hover{background:#f8bbd0}.btn-base{background:#fff8e1;color:#f57f17;font-size:1rem;font-weight:700}.btn-base:hover{background:#ffecb3}.btn-eliminar{background:#ffebee}.btn-eliminar:hover{background:#ffcdd2}.paginacion{align-items:center;display:flex;gap:1rem;justify-content:center;margin-top:1.5rem}.paginacion button{background:#fff;border:1px solid #ddd;border-radius:6px;cursor:pointer;padding:.5rem 1rem}.paginacion button:disabled{cursor:not-allowed;opacity:.5}.paginacion span{color:#666}.cotizacion-form{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:2rem}.form-section{border-bottom:1px solid #eee;margin-bottom:2rem;padding-bottom:2rem}.form-section:last-of-type{border-bottom:none;margin-bottom:0}.form-section h3{border-bottom:2px solid #4caf50;color:#333;display:inline-block;font-size:1.25rem;margin:0 0 1rem;padding-bottom:.5rem}.section-help{color:#666;font-size:.9rem;margin:.5rem 0 1rem}.form-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{color:#555}.form-group input,.form-group select,.form-section textarea{border:1px solid #ddd;border-radius:8px;font-size:.95rem;padding:.75rem 1rem;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-section textarea:focus{border-color:#4caf50;box-shadow:0 0 0 3px #4caf501a;outline:none}.valor-sugerido{color:#059669;font-size:.8rem;margin-top:2px}.form-group-full{grid-column:1/-1}.medidas-banos-section{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:1rem 1.2rem}.medidas-banos-titulo{color:#334155;font-size:.95rem;font-weight:600;margin-bottom:.3rem}.medidas-banos-row{align-items:center;display:flex;flex-wrap:wrap;gap:1rem}.medidas-banos-campo{display:flex;flex:0 0 130px;flex-direction:column;gap:.25rem}.medidas-banos-campo .medidas-banos-label{color:#64748b;font-size:.8rem;font-weight:500}.medidas-banos-campo input{border:1px solid #ddd;border-radius:8px;font-size:.95rem;padding:.6rem .8rem;transition:border-color .2s;width:100%}.medidas-banos-campo input:focus{border-color:#4caf50;box-shadow:0 0 0 3px #4caf501a;outline:none}.medidas-banos-area{align-self:flex-end;background:#e2e8f0;border-radius:6px;color:#475569;font-size:.9rem;margin-bottom:2px;padding:.5rem 1rem;white-space:nowrap}.medidas-banos-area strong{color:#1e40af}.preguntas-proyecto{display:flex;flex-direction:column;gap:0}.pregunta-item{align-items:center;border-bottom:1px solid #f3f4f6;display:flex;justify-content:space-between;padding:12px 0}.pregunta-item:last-child{border-bottom:none}.pregunta-texto{color:#374151;font-size:.95rem}.pregunta-item select{background:#f9fafb;border:1px solid #ddd;border-radius:6px;cursor:pointer;font-size:.9rem;min-width:70px;padding:6px 12px;text-align:center}.pregunta-item select:focus{border-color:#4caf50;outline:none}.form-section textarea{font-family:inherit;resize:vertical;width:100%}.plano-selector{display:flex;flex-direction:column;gap:1.5rem}.plano-selector .form-group{max-width:400px}.plano-preview{background:#f8f9fa;border-radius:12px;padding:1.5rem;text-align:center}.plano-preview h4{color:#333;margin:0 0 1rem}.plano-preview img{border-radius:8px;box-shadow:0 2px 8px #00000026;max-height:400px;max-width:100%}.plano-error{background:#fff3cd;border:1px solid #ffc107;border-radius:8px;padding:1.5rem;text-align:center}.plano-error p{color:#856404;margin:0 0 1rem}.btn-ver-plano{background:linear-gradient(135deg,#4caf50,#2e7d32);border-radius:8px;color:#fff;display:inline-block;font-size:1rem;font-weight:500;padding:.75rem 1.5rem;text-decoration:none;transition:all .2s}.btn-ver-plano:hover{box-shadow:0 4px 12px #4caf5066;transform:translateY(-2px)}.formas-cocina-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.forma-cocina-item{background:#f8f9fa;border:2px solid #eee;border-radius:12px;cursor:pointer;padding:1rem;text-align:center;transition:all .2s}.forma-cocina-item:hover{border-color:#4caf50;box-shadow:0 4px 12px #0000001a}.forma-cocina-item.selected{background:#e8f5e9;border-color:#4caf50}.forma-cocina-item img{height:120px;margin-bottom:.75rem;object-fit:contain;width:100%}.forma-cocina-item span{color:#333;display:block;font-weight:500}.opciones-bano-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.checkbox-item{align-items:center;background:#f8f9fa;border-radius:8px;cursor:pointer;display:flex;gap:.75rem;padding:.75rem 1rem;transition:background-color .2s}.checkbox-item:hover{background:#e8f5e9}.checkbox-item input[type=checkbox]{accent-color:#4caf50;cursor:pointer;height:18px;width:18px}.checkbox-item span{color:#333;font-size:.95rem}.actividades-selector{margin-bottom:2rem}.selector-controles{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.selector-3-niveles{align-items:flex-end}.selector-nivel{display:flex;flex-direction:column;gap:4px}.selector-nivel label{color:#6b7280;font-size:.8rem;font-weight:500}.selector-nivel input,.selector-nivel select{border:1px solid #ddd;border-radius:8px;font-size:.95rem;padding:.75rem 1rem}.selector-nivel select{min-width:250px}.selector-buscar{flex:1 1}.selector-buscar input{min-width:150px;width:100%}.selector-controles input,.selector-controles select{border:1px solid #ddd;border-radius:8px;font-size:.95rem;padding:.75rem 1rem}.selector-controles select{min-width:250px}.selector-controles input{flex:1 1;min-width:200px}.valor-final-celda{color:#1e40af;font-size:.85rem;font-weight:600;text-align:right;white-space:nowrap}.actividades-disponibles{background:#f8f9fa;border-radius:12px;max-height:400px;overflow-y:auto;padding:1rem}.sin-actividades{color:#999;padding:2rem;text-align:center}.tabla-actividades-disponibles{border-collapse:collapse;width:100%}.tabla-actividades-disponibles td,.tabla-actividades-disponibles th{border-bottom:1px solid #eee;padding:.75rem;text-align:left}.tabla-actividades-disponibles th{background:#f0f1f3;box-shadow:0 1px 0 #ddd;color:#555;font-size:.85rem;font-weight:600;position:-webkit-sticky;position:sticky;top:-1rem;z-index:1}.tabla-actividades-disponibles tr:hover{background:#fff}.btn-agregar-actividad{background:#4caf50;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.85rem;padding:.4rem .75rem;transition:background-color .2s}.btn-agregar-actividad:hover{background:#388e3c}.actividades-seleccionadas{margin-top:2rem}.actividades-seleccionadas h4{color:#333;font-size:1.1rem;margin:0 0 1rem}.cap-acts-agregadas{background:#f8f9fa;border-radius:12px;margin-bottom:1.5rem}.cap-acts-agregadas h5{background:#e0e0e0;color:#333;font-size:.95rem;margin:0;padding:.75rem 1rem}.cap-acts-agregadas table{border-collapse:collapse;width:100%}.cap-acts-agregadas td,.cap-acts-agregadas th{border-bottom:1px solid #eee;padding:.75rem 1rem;text-align:left}.cap-acts-agregadas th{background:#fafafa;color:#555;font-size:.8rem;font-weight:600;text-transform:uppercase}.input-cantidad,.input-valor{border:1px solid #ddd;border-radius:6px;padding:.5rem;text-align:right;width:100px}.input-cantidad{width:80px}.input-descripcion{font-family:inherit;line-height:1.3;min-width:180px;overflow:hidden;resize:none;width:100%}.input-descripcion,.select-espacio{border:1px solid #ddd;border-radius:6px;font-size:.85rem;padding:.5rem}.select-espacio{background:#fff;cursor:pointer;width:150px}.input-descripcion:focus,.select-espacio:focus{border-color:#4caf50;box-shadow:0 0 0 2px #4caf501a;outline:none}.valor-total{color:#2e7d32;font-weight:600;text-align:right}.btn-eliminar-actividad{align-items:center;background:#ffebee;border:none;border-radius:50%;color:#d32f2f;cursor:pointer;display:flex;font-size:1.25rem;height:28px;justify-content:center;transition:all .2s;width:28px}.btn-eliminar-actividad:hover{background:#ffcdd2}.totales-section{background:#f8f9fa;border-radius:12px;padding:1.5rem!important}.totales-grid{margin-left:auto;max-width:500px}.total-row{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:.75rem 0}.total-row span:first-child{color:#555}.total-row .valor{color:#333;font-size:1rem;font-weight:600}.total-principal{background:#e8f5e9;border:none;border-radius:8px;margin:.5rem -1rem;padding:1rem}.total-principal .valor{color:#2e7d32;font-size:1.25rem}.descuento-row .input-descuento{border:1px solid #ddd;border-radius:6px;font-size:1rem;padding:.5rem;text-align:right;width:150px}.total-final{background:#2e7d32;border:none;border-radius:0 0 8px 8px;color:#fff!important;margin:.5rem -1rem -1rem;padding:1.25rem 1rem}.total-final span:first-child{color:#fff!important;font-weight:600}.total-final .valor{color:#fff!important;font-size:1.5rem}.btn-borrador{background:linear-gradient(135deg,#ff9800,#f57c00);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;padding:.75rem 1.5rem;transition:all .2s}.btn-borrador:hover{box-shadow:0 4px 12px #ff980066;transform:translateY(-2px)}.btn-borrador:disabled{background:#ccc;box-shadow:none;cursor:not-allowed;transform:none}.form-actions{border-top:1px solid #eee;gap:1rem;margin-top:2rem;padding-top:2rem}@media (max-width:768px){.cotizaciones-container{padding:1rem}.cotizaciones-header{align-items:flex-start;flex-direction:column}.cotizacion-form{padding:1rem}.form-grid{grid-template-columns:1fr}.formas-cocina-grid{grid-template-columns:repeat(2,1fr)}.opciones-bano-grid{grid-template-columns:1fr}.selector-controles{flex-direction:column}.selector-controles input,.selector-controles select,.selector-nivel input,.selector-nivel select{min-width:auto;width:100%}.cap-acts-agregadas table{font-size:.85rem}.input-cantidad,.input-valor{padding:.4rem;width:70px}.totales-grid{max-width:100%}.form-actions{flex-direction:column}.form-actions button{width:100%}}.plan-pagos-editor{margin-top:.5rem}.plan-pagos-table{border-collapse:collapse;margin-bottom:.75rem;width:100%}.plan-pagos-table th{background:#f0f0f0;border-bottom:2px solid #ddd;font-size:.85rem;padding:.5rem;text-align:left}.plan-pagos-table td{border-bottom:1px solid #eee;padding:.4rem .5rem}.plan-pagos-table input[type=text]{border:1px solid #ddd;border-radius:4px;font-size:.85rem;padding:.4rem;width:100%}.plan-pagos-table input[type=number]{border:1px solid #ddd;border-radius:4px;font-size:.85rem;padding:.4rem;text-align:center;width:80px}.plan-pagos-table .valor-pago{color:#333;font-weight:500;white-space:nowrap}.plan-pagos-table tfoot td{border-top:2px solid #333;padding-top:.5rem}.btn-remove-pago{align-items:center;background:#ffebee;border:none;border-radius:50%;color:#c62828;cursor:pointer;display:flex;font-size:.8rem;font-weight:700;height:24px;justify-content:center;width:24px}.btn-remove-pago:hover{background:#ffcdd2}.btn-add-pago{background:#e8f5e9;border:1px dashed #4caf50;border-radius:4px;color:#2e7d32;cursor:pointer;font-size:.85rem;padding:.4rem 1rem}.btn-add-pago:hover{background:#c8e6c9}.porcentaje-error{color:#c62828}.porcentaje-ok{color:#2e7d32}.plan-pagos-warning{background:#fff3e0;border-radius:4px;color:#e65100;font-size:.8rem;margin-bottom:.5rem;padding:.3rem .5rem}.btn-descargar{background:#e3f2fd;color:#1565c0}.btn-descargar:hover{background:#bbdefb}.pdf-hidden-container{left:-9999px;position:absolute;top:0}.cotizacion-page{background:#fff;box-sizing:border-box;color:#333;font-family:Helvetica Neue,Segoe UI,Arial,sans-serif;font-size:10px;font-weight:700;padding:0;position:relative;width:612px}.cotizacion-pdf-header{align-items:center;border-bottom:2px solid #ceef9e;display:flex;justify-content:space-between;margin-bottom:15px;padding-bottom:8px}.cotizacion-pdf-header .doc-logo{height:40px}.cotizacion-pdf-header .doc-slogan{color:#666;font-size:9px;font-style:italic}.cotizacion-pdf-fecha{color:#666;font-size:9px;margin-bottom:10px;text-align:right}.cotizacion-pdf-title{margin-bottom:15px;text-align:center}.cotizacion-pdf-title h2{color:#123333;font-size:16px;margin:0 0 3px}.cotizacion-pdf-title h3{color:#555;font-size:12px;font-weight:400;margin:0}.cotizacion-pdf-section{margin-bottom:8px}.cotizacion-pdf-section h4{background:#ceef9e;border-radius:3px;color:#123333;font-size:9px;margin:0 0 5px;padding:3px 8px}.cotizacion-pdf-section h4.pdf-section-beige{background:#f7f3e7;text-align:center}.pdf-data-grid{grid-gap:4px 20px;display:grid;gap:4px 20px;grid-template-columns:1fr 1fr}.pdf-data-item{display:flex;font-size:9.5px;gap:5px;padding:2px 0}.pdf-data-item .label{color:#555;font-weight:600;min-width:100px}.pdf-data-item .value{color:#333}.pdf-banner{background:#f7f3e7;height:80px;overflow:visible;position:relative}.pdf-banner-logo{display:block;height:auto;left:45px;position:absolute;top:0;width:95px;z-index:2}.pdf-banner-title{color:#1a3a2a;font-family:Helvetica Neue,Segoe UI,Arial,sans-serif;font-size:32px;font-weight:700;letter-spacing:2px;position:absolute;right:40px;top:50%;transform:translateY(-50%)}.pdf-datos-wrapper{display:flex;gap:15px;margin-top:6px}.pdf-datos-left,.pdf-datos-right{flex:1 1}.pdf-fecha-cotizacion{align-items:center;display:flex;font-size:8px;gap:0;justify-content:flex-end;margin:0 0 4px}.pdf-fecha-cotizacion .pdf-fecha-lbl{background:#fff;border:1px solid #e0dcc8;color:#333;font-weight:600;padding:3px 8px}.pdf-fecha-cotizacion .pdf-fecha-val{background:#123333;border:1px solid #123333;color:#fff;font-weight:600;min-width:70px;padding:3px 12px;text-align:center}.pdf-datos-block{border-collapse:collapse;font-size:8px;width:100%}.pdf-datos-block th.pdf-datos-title-dark{background:#123333;border:1px solid #123333;color:#fff;font-size:8.5px;font-weight:700;padding:4px 8px;text-align:left}.pdf-datos-block .pdf-dato-lbl{background:#fff;border:1px solid #e0dcc8;color:#333;font-size:7.5px;font-weight:600;padding:3px 6px;white-space:nowrap}.pdf-datos-block .pdf-dato-val{background:#f7f3e7;border:1px solid #e0dcc8;color:#123333;font-size:8.5px;font-weight:600;padding:3px 6px}.pdf-datos-block .pdf-separator-row td{background:#0000;border:none;padding:3px 0}.pdf-datos-block .pdf-val-green{background:#ceef9e!important}.pdf-plano-img{border:1px solid #ddd;border-radius:4px;display:block;height:auto;margin:8px auto 0;max-width:70%}.pdf-cocina-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr;margin-bottom:15px}.pdf-cocina-item{background:#fff;border:1px solid #ddd;border-radius:4px;padding:5px;text-align:center}.pdf-cocina-item img{height:100px;object-fit:contain;width:100%}.pdf-cocina-item .cocina-label{font-size:9px;font-weight:600;margin-top:3px}.pdf-check-box{border:1.5px solid #123333;border-radius:2px;display:inline-block;font-size:9px;height:12px;line-height:10px;margin-right:4px;text-align:center;vertical-align:middle;width:12px}.pdf-check-box.checked{background:#123333;color:#fff}.pdf-bano-list{list-style:none;margin:0;padding:0}.pdf-bano-list li{align-items:center;display:flex;font-size:9px;padding:2px 0}.pdf-cocina-row{display:flex;gap:8px;justify-content:center;margin-bottom:8px}.pdf-cocina-item-h{background:#fff;border:1px solid #ddd;border-radius:4px;flex:0 0 auto;padding:4px;text-align:center;width:105px}.pdf-cocina-item-h img{border-radius:3px;height:90px;object-fit:contain;width:100%}.pdf-bano-grid{grid-gap:3px 12px;display:grid;gap:3px 12px;grid-template-columns:1fr 1fr;margin-bottom:8px}.pdf-bano-item{align-items:center;display:flex;padding:2px 0}.pdf-bano-text{color:#333;font-size:9px}.pdf-actividades-table{border-collapse:collapse;font-size:8px;width:100%}.pdf-actividades-table th{background:#123333;color:#fff;font-size:8px;padding:4px 5px;text-align:left}.pdf-actividades-table td{border-bottom:1px solid #e0e0e0;padding:3px 5px}.pdf-actividades-table .espacio-header td{background:#ceef9e;color:#123333;font-size:9px;font-weight:700;padding:4px 5px}.pdf-actividades-table .espacio-subtotal td{background:#f0edd8;border-top:1px solid #ccc;font-size:8px;font-style:italic;font-weight:600}.pdf-actividades-table .subtotal-row td{background:#eee;border-top:2px solid #333;font-size:9px;font-weight:700}.pdf-actividades-table .text-right{text-align:right}.pdf-actividades-table .pdf-espacio-separator td{background:#0000;border:none;padding:6px 0}.pdf-actividades-table .pdf-act-row-beige td{background:#f7f3e7}.pdf-financial-table{border-collapse:collapse;margin-left:auto;margin-top:15px;width:60%}.pdf-financial-table td{font-size:10px;padding:5px 10px}.pdf-financial-table .valor-final-row{background:#123333;color:#fff;font-size:12px;font-weight:700}.pdf-financial-table .valor-final-row td{padding:8px 10px}.pdf-financial-table .descuento-row td{color:#c62828}.pdf-plan-pagos-wrapper{display:flex;justify-content:flex-end;margin-top:15px}.pdf-plan-pagos-table{border-collapse:collapse;width:55%}.pdf-plan-pagos-table th{background:#ceef9e;border:1px solid silver;color:#123333;font-size:9px;padding:4px 8px;text-align:center}.pdf-plan-pagos-table td{border:1px solid #e0dcc8;font-size:9px;padding:4px 8px}.pdf-plan-pagos-table .text-right{text-align:right}.pdf-plan-pagos-table .pdf-plan-row-beige td{background:#f7f3e7}.pdf-observaciones ol{margin:5px 0;padding-left:15px}.pdf-observaciones li{font-size:9px;line-height:1.4;margin-bottom:4px}.pdf-consideraciones p{font-size:9px;line-height:1.4;margin:3px 0}.pdf-section-small h4{font-size:7px}.pdf-section-small .pdf-consideraciones p,.pdf-section-small .pdf-observaciones p{font-size:7px;line-height:1.3}.pdf-firma{margin-top:30px;text-align:center}.pdf-firma img{height:60px}.pdf-firma .firma-nombre{font-size:11px;font-weight:700;margin-top:5px}.pdf-firma .firma-cargo{color:#666;font-size:9px}.pdf-imagen-final{margin-top:15px;width:100%}.pdf-imagen-final img{width:100%}.pdf-planos-contratista-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr;margin-bottom:8px}.pdf-plano-contratista{border:1px solid #d5d0c0;overflow:hidden}.pdf-plano-contratista-wide{grid-column:1/-1}.pdf-plano-contratista-header{background:#ceef9e;color:#1a3a2a;font-size:7px;font-weight:700;padding:4px 8px;text-align:center;text-transform:uppercase}.pdf-plano-contratista-body{align-items:center;background:#fffef8;display:flex;flex-direction:column;gap:4px;justify-content:center;min-height:120px;padding:4px}.pdf-plano-body-grid{grid-gap:4px;display:grid;gap:4px;grid-template-columns:repeat(2,1fr)}.pdf-plano-contratista-img{display:block;max-height:160px;max-width:100%;object-fit:contain}.pdf-plano-contratista-empty{background:#f0ece0;border:1px dashed #c5c0b0;height:120px;width:100%}.modal-base-overlay{align-items:center;animation:fadeIn .2s ease;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-base-content{animation:slideUp .25s ease;background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;max-width:480px;overflow:hidden;width:90%}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.modal-base-header{border-bottom:1px solid #eee;padding:20px 24px 12px}.modal-base-header h3{color:#333;font-size:18px;font-weight:600;margin:0}.modal-base-body{padding:16px 24px}.modal-base-warning{background:#fff8e1;border-left:4px solid #f9a825;border-radius:0 8px 8px 0;color:#5d4037;font-size:14px;line-height:1.5;margin:0 0 12px;padding:12px 16px}.modal-base-detail{color:#555;font-size:13px;line-height:1.5;margin:0 0 8px}.modal-base-note{color:#888;font-size:12px;font-style:italic;margin:0}.modal-base-actions{background:#fafafa;border-top:1px solid #eee;display:flex;gap:10px;justify-content:flex-end;padding:16px 24px}.modal-base-actions .btn-secondary{font-size:13px;padding:8px 20px}.modal-base-actions .btn-primary{background:#f9a825;border-color:#f9a825;color:#fff;font-size:13px;padding:8px 20px}.modal-base-actions .btn-primary:hover:not(:disabled){background:#f57f17;border-color:#f57f17}.modal-base-actions .btn-primary:disabled{cursor:not-allowed;opacity:.6}.planos-container{margin:0 auto;max-width:1400px;padding:20px}.planos-header{align-items:center;border-bottom:2px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:24px;padding-bottom:16px}.planos-header-info h1{color:#1f2937;font-size:1.75rem;margin:0 0 4px}.planos-header-info p{color:#6b7280;font-size:.9rem;margin:0}.planos-header-actions{display:flex;gap:12px}.planos-header-actions button{border:none;border-radius:8px;cursor:pointer;font-weight:500;padding:10px 20px;transition:all .2s}.btn-nuevo{background:#1b2433;color:#fff}.btn-nuevo:hover{box-shadow:0 4px 12px #1b243366;transform:translateY(-1px)}.btn-volver{background:#f3f4f6;color:#374151}.btn-volver:hover{background:#e5e7eb}.planos-filtros{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:24px}.filtro-grupo{flex:1 1;min-width:200px}.planos-filtros .filtro-input,.planos-filtros .filtro-select{border:1px solid #d1d5db;border-radius:8px;box-sizing:border-box;font-size:.95rem;padding:10px 14px;transition:border-color .2s;width:100%}.planos-filtros .filtro-input:focus,.planos-filtros .filtro-select:focus{border-color:#1b2433;box-shadow:0 0 0 3px #1b24331a;outline:none}.planos-empty,.planos-loading{color:#6b7280;font-size:1.1rem;padding:60px 20px;text-align:center}.planos-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.plano-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;display:flex;flex-direction:column;overflow:hidden;transition:all .2s}.plano-card:hover{box-shadow:0 4px 16px #0000001a;transform:translateY(-2px)}.plano-card.plano-inactivo{opacity:.6}.plano-card.plano-inactivo:hover{opacity:.8}.plano-card-img{align-items:center;background:#f3f4f6;cursor:pointer;display:flex;height:200px;justify-content:center;overflow:hidden;position:relative;width:100%}.plano-card-img img{height:100%;object-fit:cover;transition:transform .3s;width:100%}.plano-card-img:hover img{transform:scale(1.05)}.plano-card-img.img-error{background:linear-gradient(135deg,#f3f4f6,#e5e7eb)}.plano-card-img.img-error:after{color:#9ca3af;content:"Sin imagen";font-size:.9rem}.img-loading{color:#9ca3af;font-size:.85rem;position:absolute}.plano-card-overlay{align-items:center;background:#0006;bottom:0;display:flex;justify-content:center;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s}.plano-card-img:hover .plano-card-overlay{opacity:1}.plano-card-overlay span{background:#00000080;border-radius:20px;color:#fff;font-size:.85rem;font-weight:500;padding:8px 16px}.plano-card-body{flex:1 1;padding:14px 16px 8px}.plano-card-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#1f2937;display:-webkit-box;font-size:.95rem;font-weight:600;line-height:1.3;margin:0 0 8px;overflow:hidden}.plano-card-meta{align-items:center;display:flex;justify-content:space-between}.plano-estado{border-radius:12px;font-size:.75rem;font-weight:500;padding:3px 10px}.estado-activo{background:#d1fae5;color:#065f46}.estado-inactivo{background:#fee2e2;color:#991b1b}.plano-orden{color:#9ca3af;font-size:.8rem}.plano-card-actions{border-top:1px solid #f3f4f6;display:flex;gap:4px;justify-content:flex-end;padding:8px 12px}.btn-card{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:1rem;height:34px;justify-content:center;transition:all .2s;width:34px}.btn-toggle{background:#f0f9ff;color:#0369a1}.btn-toggle:hover{background:#e0f2fe}.btn-editar{background:#fef3c7;color:#92400e}.btn-editar:hover{background:#fde68a}.btn-eliminar{background:#fee2e2;color:#dc2626}.btn-eliminar:hover{background:#fecaca}.plano-modal-overlay{align-items:center;background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.plano-modal{background:#fff;border-radius:16px;display:flex;flex-direction:column;max-height:90vh;max-width:900px;overflow:hidden;width:100%}.plano-modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:16px 20px}.plano-modal-header h3{color:#1f2937;font-size:1.1rem;margin:0}.btn-cerrar-modal{align-items:center;background:#f3f4f6;border:none;border-radius:8px;color:#6b7280;cursor:pointer;display:flex;font-size:1rem;height:32px;justify-content:center;width:32px}.btn-cerrar-modal:hover{background:#e5e7eb;color:#1f2937}.plano-modal-body{align-items:center;display:flex;justify-content:center;overflow-y:auto;padding:20px}.plano-modal-body img{border-radius:8px;max-height:70vh;max-width:100%;object-fit:contain}.plano-modal-footer{border-top:1px solid #e5e7eb;padding:12px 20px;text-align:center}.btn-link-externo{color:#1b2433;font-size:.9rem;font-weight:500;text-decoration:none}.btn-link-externo:hover{text-decoration:underline}.plano-form{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:24px}.form-row{display:flex;gap:16px}.form-group,.form-row{margin-bottom:20px}.form-group-lg{flex:3 1}.form-group-sm{flex:1 1}.form-group label{color:#374151;display:block;font-size:.9rem;font-weight:500;margin-bottom:6px}.form-group input,.form-group select{border:1px solid #d1d5db;border-radius:8px;box-sizing:border-box;font-size:.95rem;padding:10px 14px;transition:border-color .2s;width:100%}.form-group input:focus,.form-group select:focus{border-color:#1b2433;box-shadow:0 0 0 3px #1b24331a;outline:none}.form-help{color:#9ca3af;display:block;font-size:.8rem;margin-top:6px}.form-preview{margin-bottom:20px}.form-preview label{color:#374151;display:block;font-size:.9rem;font-weight:500;margin-bottom:8px}.form-preview-img{align-items:center;background:#fafafa;border:2px dashed #d1d5db;border-radius:12px;display:flex;justify-content:center;min-height:200px;padding:16px;text-align:center}.form-preview-img img{border-radius:8px;max-height:400px;max-width:100%;object-fit:contain}.preview-fallback{align-items:center;color:#9ca3af;display:flex;font-size:.9rem;justify-content:center;padding:20px}.form-actions{border-top:1px solid #e5e7eb;display:flex;gap:12px;justify-content:flex-end;padding-top:16px}.btn-cancelar{background:#f3f4f6;border:1px solid #d1d5db;border-radius:8px;color:#374151;cursor:pointer;font-weight:500;padding:10px 24px;transition:all .2s}.btn-cancelar:hover{background:#e5e7eb}.btn-guardar{background:#1b2433;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:500;padding:10px 24px;transition:all .2s}.btn-guardar:hover:not(:disabled){box-shadow:0 4px 12px #1b243366;transform:translateY(-1px)}.btn-guardar:disabled{cursor:not-allowed;opacity:.6}.planos-paginacion{align-items:center;display:flex;gap:12px;justify-content:center;margin-top:24px;padding:16px 0}.planos-paginacion>button{background:#fff;border:1px solid #d1d5db;border-radius:8px;color:#374151;cursor:pointer;font-size:.9rem;padding:8px 16px;transition:all .2s}.planos-paginacion>button:hover:not(:disabled){background:#f3f4f6;border-color:#1b2433;color:#1b2433}.planos-paginacion>button:disabled{cursor:not-allowed;opacity:.4}.paginacion-numeros{display:flex;gap:4px}.pag-num{align-items:center;background:#fff;border:1px solid #d1d5db;border-radius:8px;color:#374151;cursor:pointer;display:flex;font-size:.85rem;height:36px;justify-content:center;transition:all .2s;width:36px}.pag-num:hover{background:#f3f4f6;border-color:#1b2433}.pag-num.pag-activa{background:#1b2433;border-color:#0000;color:#fff}@media (max-width:768px){.planos-header{align-items:flex-start;gap:12px}.planos-filtros,.planos-header{flex-direction:column}.filtro-grupo{min-width:100%}.planos-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.form-row{flex-direction:column}.plano-modal{margin:10px;max-width:100%}}.ficha-ffe-container{margin:0 auto;max-width:1800px;padding:20px}.ffe-page-header{align-items:center;border-bottom:2px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:24px;padding-bottom:16px}.ffe-header-info h1{color:#1f2937;font-size:1.75rem;margin:0 0 4px}.ffe-header-info p{color:#6b7280;font-size:.9rem;margin:0}.ffe-header-actions{display:flex;gap:12px}.btn-guardar-config{background:#059669;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;padding:10px 20px;transition:all .2s}.btn-guardar-config:hover{background:#047857}.btn-guardar-config:disabled{cursor:not-allowed;opacity:.6}.btn-volver-ffe{background:#f3f4f6;border:none;border-radius:8px;color:#374151;cursor:pointer;font-weight:500;padding:10px 20px;transition:all .2s}.btn-volver-ffe:hover{background:#e5e7eb}.btn-ver-ffe{background:#1b2433;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:500;padding:6px 16px;transition:all .2s}.btn-ver-ffe:hover{box-shadow:0 4px 12px #1b243366;transform:translateY(-1px)}.ffe-empty,.ffe-loading{color:#6b7280;font-size:1rem;padding:60px 20px;text-align:center}.ffe-table-container{border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow-x:auto}.ffe-table{background:#fff;border-collapse:collapse;font-size:.9rem;width:100%}.ffe-table thead th{background:#1b2433;color:#fff;font-weight:500;padding:12px 16px;text-align:left;white-space:nowrap}.ffe-table tbody tr{border-bottom:1px solid #e5e7eb;transition:background .15s}.ffe-table tbody tr:hover{background:#f9fafb}.ffe-table tbody td{padding:12px 16px}.ffe-consecutivo{color:#1b2433;font-weight:600}.ffe-valor{color:#059669;font-weight:600;white-space:nowrap}.ffe-count{font-weight:600;text-align:center}.ffe-actividades{display:flex;flex-direction:column;gap:24px}.ffe-espacio-group{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.ffe-espacio-title{background:#ceef9e;color:#1f2937;font-size:1rem;font-weight:700;letter-spacing:.5px;padding:12px 20px;text-transform:uppercase}.ffe-actividades-list{display:flex;flex-direction:column}.ffe-actividad-card{align-items:stretch;border-bottom:1px solid #e5e7eb;display:flex;gap:16px;padding:16px 20px;transition:background .15s}.ffe-actividad-card:last-child{border-bottom:none}.ffe-actividad-card:hover{background:#f9fafb}.ffe-imagen-zona{align-items:center;display:flex;flex-direction:column;gap:6px;min-width:150px;width:150px}.ffe-imagen{border:1px solid #e5e7eb;border-radius:8px;height:120px;object-fit:cover;width:150px}.ffe-imagen-placeholder{align-items:center;background:#f9fafb;border:2px dashed #d1d5db;border-radius:8px;color:#9ca3af;display:flex;flex-direction:column;gap:4px;height:120px;justify-content:center;width:150px}.ffe-placeholder-icon{font-size:1.5rem}.ffe-placeholder-text{font-size:.75rem}.ffe-imagen-info{text-align:center;width:100%}.ffe-imagen-nombre{color:#1f2937;display:block;font-size:.75rem;font-weight:600;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ffe-imagen-codigo{color:#6b7280;display:block;font-size:.7rem}.ffe-descripcion{align-items:center;display:flex;flex:1 1;min-width:0}.ffe-desc-text{color:#374151;font-size:.9rem;line-height:1.5;margin:0}.ffe-desc-original{color:#9ca3af;font-size:.75rem;font-style:italic;margin:4px 0 0}.ffe-col-observaciones,.ffe-col-proveedor{align-items:center;cursor:pointer;display:flex;gap:4px;justify-content:center;min-width:130px;width:130px}.ffe-campo-editable{border-radius:6px;color:#374151;cursor:pointer;font-size:.82rem;padding:4px 8px;transition:background .15s;word-break:break-word}.ffe-campo-editable:hover{background:#f0f9ff}.ffe-campo-vacio{color:#c0c7d0;font-size:.78rem;font-style:italic}.ffe-inline-input,.ffe-inline-select{border:1px solid #3b82f6;border-radius:6px;box-shadow:0 0 0 2px #3b82f633;font-family:inherit;font-size:.82rem;outline:none;padding:6px 8px;width:100%}.ffe-inline-select{background:#fff;cursor:pointer}.ffe-inline-textarea{border:1px solid #3b82f6;border-radius:6px;box-shadow:0 0 0 2px #3b82f633;font-family:inherit;font-size:.85rem;min-height:60px;outline:none;padding:6px 8px;resize:vertical;width:100%}.ffe-descripcion .ffe-campo-editable{font-size:.9rem;padding:2px 4px}.ffe-cantidad{align-items:center;display:flex;flex-direction:column;gap:2px;justify-content:center;min-width:100px;width:100px}.ffe-cant-editable{border-radius:6px;cursor:pointer;padding:4px 8px;transition:background .15s}.ffe-cant-editable:hover{background:#e0f2fe;color:#0369a1}.ffe-cantidad-edit{align-items:center;display:flex;flex-direction:column;gap:4px}.ffe-cantidad-input{border:1px solid #3b82f6;border-radius:6px;font-size:1rem;font-weight:700;padding:4px 6px;text-align:center;width:80px}.ffe-cantidad-input:focus{box-shadow:0 0 0 2px #3b82f64d;outline:none}.ffe-cantidad-btns{display:flex;gap:4px}.btn-cant-cancel,.btn-cant-ok{align-items:center;border:none;border-radius:6px;cursor:pointer;display:flex;font-size:.85rem;height:28px;justify-content:center;width:28px}.btn-cant-ok{background:#dcfce7;color:#16a34a}.btn-cant-ok:hover{background:#bbf7d0}.btn-cant-cancel{background:#fee2e2;color:#dc2626}.btn-cant-cancel:hover{background:#fecaca}.ffe-cant-valor{color:#1b2433;font-size:1.2rem;font-weight:700}.ffe-cant-unidad{color:#6b7280;font-size:.75rem;text-transform:uppercase}.ffe-acciones{align-items:center;display:flex;justify-content:center;min-width:180px;width:180px}.ffe-btn-group{display:flex;gap:8px}.btn-editar-ffe,.btn-eliminar-ffe{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:1rem;height:36px;justify-content:center;transition:all .2s;width:36px}.btn-editar-ffe{background:#e0f2fe;color:#0369a1}.btn-editar-ffe:hover{background:#bae6fd}.btn-eliminar-ffe{background:#fee2e2;color:#dc2626}.btn-eliminar-ffe:hover{background:#fecaca}.ffe-form-imagen{display:flex;flex-direction:column;gap:6px;width:100%}.ffe-input{border:1px solid #d1d5db;border-radius:6px;box-sizing:border-box;font-size:.8rem;padding:6px 10px;width:100%}.ffe-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633;outline:none}.ffe-form-buttons{display:flex;gap:6px}.btn-guardar-ffe{background:#059669;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.8rem;font-weight:500;padding:4px 12px;transition:background .2s}.btn-guardar-ffe:hover{background:#047857}.btn-guardar-ffe:disabled{cursor:not-allowed;opacity:.6}.btn-cancelar-ffe{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;font-size:.8rem;padding:4px 12px;transition:background .2s}.btn-cancelar-ffe:hover{background:#f3f4f6}@media (max-width:900px){.ffe-actividad-card{flex-wrap:wrap}.ffe-imagen-zona{flex-direction:row;gap:12px;min-width:100%;width:100%}.ffe-imagen,.ffe-imagen-placeholder{height:80px;width:100px}.ffe-descripcion{width:100%}.ffe-cantidad{flex-direction:row;gap:8px;min-width:auto;width:auto}.ffe-acciones,.ffe-col-observaciones,.ffe-col-proveedor{min-width:100%;width:100%}.ffe-acciones{justify-content:flex-start}.ffe-page-header{align-items:flex-start;flex-direction:column;gap:12px}}@media (max-width:600px){.ffe-table-container{font-size:.8rem}.ffe-table tbody td,.ffe-table thead th{padding:8px 10px}}.ffe-pdf-page{background:#f7f3e7;color:#1a3a2a;font-family:Helvetica Neue,Segoe UI,Arial,sans-serif;font-size:9px;line-height:1.4;width:612px}.ffe-pdf-header-area{padding:18px 30px 14px;position:relative}.ffe-pdf-logo{display:block;height:auto;position:absolute;right:30px;top:18px;width:95px}.ffe-pdf-header-body{align-items:stretch;display:flex;gap:18px}.ffe-pdf-header-left{align-items:center;background:#1a3a2a;display:flex;flex-direction:column;gap:2px;min-width:140px;padding:12px 14px;width:140px}.ffe-pdf-icono-wrap{align-items:center;background:#fff;display:flex;justify-content:center;margin-bottom:6px;padding:5px}.ffe-pdf-icono{display:block;height:auto;width:36px}.ffe-pdf-pre-title{color:#f7f3e7;font-size:7px;font-weight:500;margin-bottom:6px}.ffe-pdf-info-label{color:#f7f3e7;font-size:7.5px;font-weight:700;margin-top:4px}.ffe-pdf-info-value{color:#f7f3e7;font-size:7.5px;font-weight:400}.ffe-pdf-info-date{color:#f7f3e7;font-size:7.5px;margin-top:1px}.ffe-pdf-header-right{display:flex;flex:1 1;flex-direction:column;padding-top:25px}.ffe-pdf-title{color:#1a3a2a;font-size:38px;font-weight:700;letter-spacing:1px;line-height:1;margin:0}.ffe-pdf-subtitle{color:#1a3a2a;font-size:7.5px;font-weight:400;margin-bottom:10px;margin-top:3px}.ffe-pdf-firma-espacio{background:#fffef8;border:1px solid #c5c0b0;border-radius:2px;min-height:80px}.ffe-pdf-firma-label{color:#888;display:block;font-size:6.5px;font-style:italic;font-weight:400;margin-top:2px;text-align:right}.ffe-pdf-planos-grid{display:flex;flex-wrap:wrap;gap:8px;padding:0 35px 10px}.ffe-pdf-plano{border:1px solid #1a3a2a;overflow:hidden;width:calc(50% - 4px)}.ffe-pdf-plano-wide{width:100%}.ffe-pdf-plano-header{background:#ceef9e;color:#1a3a2a;font-size:7px;font-weight:700;letter-spacing:.5px;padding:4px 8px;text-align:center;text-transform:uppercase}.ffe-pdf-plano-body{align-items:center;background:#fffef8;display:flex;justify-content:center;min-height:120px}.ffe-pdf-plano-body-grid{grid-gap:4px;display:grid;gap:4px;grid-template-columns:repeat(2,1fr);padding:4px}.ffe-pdf-plano-img{display:block;height:auto;object-fit:contain;width:100%}.ffe-pdf-plano-empty{min-height:120px;width:100%}.ffe-pdf-categoria{margin:8px 35px 0}.ffe-pdf-cat-header{background:#1a3a2a;color:#f7f3e7;font-size:8px;font-weight:700;letter-spacing:.5px;padding:5px 10px;text-align:center;text-transform:uppercase}.ffe-pdf-cat-table{background:#fffef8;border-collapse:collapse;width:100%}.ffe-pdf-cat-table thead tr{background:#ceef9e}.ffe-pdf-cat-table th{border-bottom:1px solid #c5c0b0;color:#1a3a2a;font-size:7px;font-weight:700;padding:4px 8px;text-align:left}.ffe-pdf-th-imagen{width:120px}.ffe-pdf-th-cant{text-align:center!important;width:65px}.ffe-pdf-cat-table td{border-bottom:1px solid #e8e4d4;font-size:8px;padding:6px 8px;vertical-align:middle}.ffe-pdf-cat-table tr:last-child td{border-bottom:none}.ffe-pdf-no-data{color:#999;font-style:italic;padding:15px 8px!important;text-align:center!important}.ffe-pdf-td-imagen{width:120px}.ffe-pdf-act-img{border:1px solid #e0dcd0;display:block;height:75px;object-fit:cover;width:100px}.ffe-pdf-act-img-empty{background:#f0ece0;border:1px dashed #c5c0b0;height:75px;width:100px}.ffe-pdf-td-desc{vertical-align:middle}.ffe-pdf-act-desc{color:#1a3a2a;display:block;font-size:8px;line-height:1.4}.ffe-pdf-act-ref{color:#666;display:block;font-size:7px;font-style:italic;margin-top:2px}.ffe-pdf-td-cant{font-weight:600;text-align:center;width:65px}.ffe-pdf-th-obs{text-align:center!important;width:120px}.ffe-pdf-td-obs{text-align:left;vertical-align:middle;width:120px}.ffe-pdf-act-obs{color:#444;display:block;font-size:6.5px;line-height:1.3}.ffe-pdf-observaciones{margin:15px 35px 0}.ffe-pdf-obs-title{background:#ceef9e;color:#1a3a2a;font-size:8px;font-weight:700;padding:4px 10px;text-align:center}.ffe-pdf-obs-content{background:#fffef8;border:1px solid #d5d0c0;border-top:none;padding:8px 10px}.ffe-pdf-obs-content p{color:#333;font-size:6.5px;line-height:1.4;margin:0 0 3px;text-align:justify}.ffe-pdf-consideraciones{margin:10px 35px 0}.ffe-pdf-cons-title{background:#ceef9e;color:#1a3a2a;font-size:8px;font-weight:700;padding:4px 10px;text-align:center}.ffe-pdf-cons-content{background:#fffef8;border:1px solid #d5d0c0;border-top:none;padding:8px 10px}.ffe-pdf-cons-content p{color:#333;font-size:7px;font-style:italic;margin:0}.ffe-pdf-footer{margin-top:15px}.ffe-pdf-footer-img{display:block;height:auto;width:100%}.ffe-split-layout{align-items:flex-start;display:flex;gap:20px}.ffe-split-layout.ffe-solo-edicion .ffe-edit-panel{flex:1 1;max-width:100%;min-width:0}.ffe-split-layout.ffe-solo-preview{justify-content:center}.ffe-split-layout.ffe-solo-preview .ffe-preview-panel{margin:0 auto;max-width:100%;min-width:0;width:750px}.ffe-edit-panel{flex:1 1;min-width:0}.ffe-preview-panel{background:#e5e7eb;border-radius:10px;min-width:640px;padding:14px;width:640px}.btn-toggle-panel{background:#fff;border:2px solid #6366f1;border-radius:8px;color:#6366f1;cursor:pointer;font-size:.85rem;font-weight:600;padding:8px 16px;transition:all .2s}.btn-toggle-panel:hover{background:#eef2ff}.btn-toggle-panel.active{background:#6366f1;color:#fff}.ffe-preview-sticky{position:-webkit-sticky;position:sticky;top:20px}.ffe-preview-panel .ffe-pdf-page{box-shadow:0 4px 20px #00000026}.ffe-form-section{background:#fff;border-radius:10px;box-shadow:0 1px 3px #0000001a;margin-bottom:16px;padding:16px 20px}.ffe-form-section-title{color:#1f2937;font-size:.95rem;font-weight:700;margin-bottom:12px}.ffe-plano-form-row{align-items:center;display:flex;gap:10px;margin-bottom:8px}.ffe-plano-titulo-input{min-width:160px;width:220px}.ffe-plano-url-input{flex:1 1}.ffe-consideraciones-textarea{box-sizing:border-box;font-family:inherit;min-height:60px;resize:vertical;width:100%}.ffe-tabs{border-bottom:2px solid #e5e7eb;display:flex;gap:0;margin-bottom:20px}.ffe-tab{background:#0000;border:none;border-bottom:3px solid #0000;color:#6b7280;cursor:pointer;font-size:.95rem;font-weight:500;margin-bottom:-2px;padding:10px 24px;transition:all .2s}.ffe-tab:hover{background:#f9fafb;color:#1f2937}.ffe-tab-active{border-bottom-color:#059669;color:#059669;font-weight:600}.ffe-residente-fields{display:flex;flex-direction:column;gap:8px}.ffe-residente-row{align-items:center;display:flex;gap:10px}.ffe-residente-label{color:#374151;font-size:.85rem;font-weight:500;min-width:70px;width:70px}.ffe-residente-search-wrapper{flex:1 1;position:relative}.ffe-residente-dropdown{background:#fff;border:1px solid #d1d5db;border-radius:0 0 6px 6px;border-top:none;box-shadow:0 4px 12px #0000001a;left:0;max-height:180px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:50}.ffe-residente-option{align-items:center;cursor:pointer;display:flex;font-size:.85rem;justify-content:space-between;padding:8px 12px;transition:background .15s}.ffe-residente-option:hover{background:#eff6ff}.ffe-residente-option-nombre{color:#1f2937;font-weight:500}.ffe-residente-option-tel{color:#9ca3af;font-size:.8rem}.ffe-residente-no-results{color:#9ca3af;cursor:default;font-style:italic}.ffe-residente-no-results:hover{background:#0000}.ffe-plano-group{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:10px;padding:10px 12px}.btn-agregar-url{background:#0000;border:1px dashed #9ca3af;border-radius:6px;color:#6b7280;cursor:pointer;font-size:.78rem;margin-top:4px;padding:3px 10px;transition:all .2s}.btn-agregar-url:hover{background:#f0fdf4;border-color:#059669;color:#059669}.ffe-sync-note{background:#fef3c7;border-left:3px solid #f59e0b;border-radius:0 6px 6px 0;color:#92400e;font-size:.8rem;margin:0 0 6px;padding:6px 10px}.carrito-compras-container{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr;width:100%}.carrito-section{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:1rem 1.2rem}.carrito-section-full{grid-column:1/-1}.carrito-section-title{border-bottom:2px solid #e2e8f0;color:#1e293b;font-size:.95rem;font-weight:600;margin-bottom:.6rem;padding-bottom:.4rem}@media (max-width:1024px){.carrito-compras-container{grid-template-columns:1fr}.carrito-section-full{grid-column:1}}.carrito-datos-grid{grid-gap:.6rem;display:grid;gap:.6rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.carrito-dato{color:#475569;font-size:.9rem;padding:.4rem 0}.carrito-dato span{color:#64748b}.carrito-dato strong{color:#1e40af}.carrito-table{border-collapse:collapse;font-size:.82rem;width:100%}.carrito-table thead{background:#f1f5f9}.carrito-table th{border-bottom:2px solid #cbd5e1;color:#334155;font-size:.78rem;font-weight:600;padding:.45rem .6rem;text-align:left;white-space:nowrap}.carrito-table td{border-bottom:1px solid #e2e8f0;color:#334155;padding:.4rem .6rem}.carrito-table tbody tr:hover{background:#f8fafc}.carrito-valor{font-feature-settings:"tnum";color:#1e40af;font-variant-numeric:tabular-nums;font-weight:600;text-align:right}.carrito-nota{color:#64748b;font-size:.8rem;font-style:italic}.carrito-pega-row{align-items:center;display:flex;gap:.8rem}.carrito-pega-row label{color:#475569;font-size:.9rem;font-weight:500}.carrito-input-pega{border:1px solid #cbd5e1;border-radius:6px;font-size:.95rem;padding:.5rem .7rem;text-align:center;width:80px}.carrito-input-pega:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.carrito-pega-unit{color:#64748b;font-size:.85rem}.carrito-lechadas-table .carrito-input{border:1px solid #cbd5e1;border-radius:6px;font-size:.9rem;padding:.45rem .7rem;width:100%}.carrito-lechadas-table .carrito-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.carrito-actions{display:flex;grid-column:1/-1;justify-content:flex-start}.btn-guardar-carrito{background:#059669;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:500;padding:.6rem 1.5rem;transition:background .2s}.btn-guardar-carrito:hover{background:#047857}.btn-guardar-carrito:disabled{background:#94a3b8;cursor:not-allowed}.ffe-obs-content{flex:1 1;min-width:0}.ffe-btn-enchape{align-items:center;background:#ede9fe;border:none;border-radius:6px;color:#7c3aed;cursor:pointer;display:flex;flex-shrink:0;font-size:.75rem;height:26px;justify-content:center;transition:background .2s;width:26px}.ffe-btn-enchape:hover{background:#ddd6fe}.enchape-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:9999}.enchape-modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;max-height:70vh;max-width:95vw;width:520px}.enchape-modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:16px 20px}.enchape-modal-header h3{color:#1f2937;font-size:1.1rem;margin:0}.enchape-modal-close{align-items:center;background:#f3f4f6;border:none;border-radius:8px;color:#6b7280;cursor:pointer;display:flex;font-size:1.2rem;height:32px;justify-content:center;transition:background .2s;width:32px}.enchape-modal-close:hover{background:#e5e7eb}.enchape-modal-search{border-bottom:1px solid #e5e7eb;padding:12px 20px}.enchape-modal-search input{border:1px solid #d1d5db;border-radius:8px;box-sizing:border-box;font-family:inherit;font-size:.9rem;padding:10px 12px;transition:border-color .2s,box-shadow .2s;width:100%}.enchape-modal-search input:focus{border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed26;outline:none}.enchape-modal-list{flex:1 1;overflow-y:auto;padding:8px 0}.enchape-modal-item{align-items:center;cursor:pointer;display:flex;gap:12px;padding:10px 20px;transition:background .15s}.enchape-modal-item:hover{background:#f5f3ff}.enchape-modal-ref{color:#1f2937;font-weight:600;min-width:120px}.enchape-modal-color{color:#6b7280;flex:1 1}.enchape-modal-formato{color:#9ca3af;font-size:.85rem}.enchape-modal-empty{color:#9ca3af;font-size:.9rem;padding:30px 20px;text-align:center}.residentes-container{box-sizing:border-box;padding:20px;width:100%}.residentes-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.residentes-header-info h2{color:var(--gray-900);font-size:1.4rem;margin:0}.residentes-count{color:var(--gray-500);font-size:.85rem}.residentes-btn-crear{background:var(--primary-600);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;padding:8px 18px;transition:background .2s}.residentes-btn-crear:hover{background:var(--primary-700)}.residentes-form{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:10px;margin-bottom:20px;padding:20px}.residentes-form h3{color:var(--gray-900);font-size:1rem;margin:0 0 14px}.residentes-form-fields{display:flex;gap:16px;margin-bottom:14px}.residentes-form-group{flex:1 1}.residentes-form-group label{color:var(--gray-700);display:block;font-size:.8rem;font-weight:600;margin-bottom:4px}.residentes-input{border:1px solid var(--gray-300);border-radius:6px;box-sizing:border-box;font-size:.9rem;padding:8px 12px;transition:border-color .2s;width:100%}.residentes-input:focus{border-color:var(--primary-500);box-shadow:0 0 0 2px var(--primary-100);outline:none}.residentes-form-actions{display:flex;gap:10px}.residentes-btn-guardar{background:var(--primary-600);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;padding:8px 20px}.residentes-btn-guardar:hover{background:var(--primary-700)}.residentes-btn-cancelar{background:#fff;border:1px solid var(--gray-300);border-radius:6px;color:var(--gray-500);cursor:pointer;font-size:.85rem;padding:8px 20px}.residentes-btn-cancelar:hover{background:var(--gray-100)}.residentes-filtros{margin-bottom:16px}.residentes-busqueda{max-width:350px}.residentes-table-container{overflow-x:auto}.residentes-table{background:#fff;border-collapse:collapse;border-radius:10px;box-shadow:var(--shadow-sm);overflow:hidden;width:100%}.residentes-table thead{background:var(--gray-900)}.residentes-table th{color:#fff;font-size:.8rem;font-weight:600;padding:10px 14px;text-align:left;text-transform:uppercase}.residentes-table td{border-bottom:1px solid var(--gray-100);color:var(--gray-700);font-size:.9rem;padding:10px 14px}.residentes-table tbody tr:hover{background:var(--gray-50)}.residentes-idx{color:var(--gray-400);font-size:.8rem;width:40px}.residentes-nombre{font-weight:500}.residentes-telefono{color:var(--gray-500)}.residentes-acciones{display:flex;gap:6px;width:90px}.residentes-btn-editar,.residentes-btn-eliminar{background:none;border:none;border-radius:4px;cursor:pointer;font-size:1rem;padding:4px 8px;transition:background .15s}.residentes-btn-editar{color:var(--primary-600)}.residentes-btn-editar:hover{background:var(--primary-50)}.residentes-btn-eliminar{color:var(--error-600)}.residentes-btn-eliminar:hover{background:var(--error-100)}.residentes-empty,.residentes-loading{color:var(--gray-500);font-size:.9rem;padding:40px 20px;text-align:center}.enchapes-container{box-sizing:border-box;padding:20px;width:100%}.enchapes-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.enchapes-title{color:var(--gray-900);font-size:1.5rem;font-weight:700;margin:0}.enchapes-subtitle{color:var(--gray-500);font-size:.85rem;margin:4px 0 0}.enchapes-btn-crear{background:var(--primary-600);border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:10px 20px;transition:background .2s}.enchapes-btn-crear:hover{background:var(--primary-700)}.enchapes-form{background:var(--gray-50);border:1px solid #e5e7eb;border:1px solid var(--gray-200,#e5e7eb);border-radius:12px;margin-bottom:20px;padding:20px}.enchapes-form-title{color:var(--gray-800);font-size:1.1rem;font-weight:600;margin:0 0 16px}.enchapes-form-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr 1fr;margin-bottom:16px}.enchapes-form-group label{color:var(--gray-700);display:block;font-size:.85rem;font-weight:600;margin-bottom:6px}.enchapes-input{border:1px solid #d1d5db;border:1px solid var(--gray-300,#d1d5db);border-radius:8px;box-sizing:border-box;font-family:inherit;font-size:.9rem;padding:10px 12px;transition:border-color .2s,box-shadow .2s;width:100%}.enchapes-input:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px #6366f126;outline:none}.enchapes-form-actions{display:flex;gap:10px}.enchapes-btn-guardar{background:var(--primary-600);border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:10px 24px;transition:background .2s}.enchapes-btn-guardar:hover{background:var(--primary-700)}.enchapes-btn-cancelar{background:#fff;border:1px solid #d1d5db;border:1px solid var(--gray-300,#d1d5db);border-radius:8px;color:var(--gray-700);cursor:pointer;font-weight:600;padding:10px 24px;transition:background .2s}.enchapes-btn-cancelar:hover{background:#f3f4f6;background:var(--gray-100,#f3f4f6)}.enchapes-busqueda{margin-bottom:16px}.enchapes-table-container{overflow-x:auto}.enchapes-table{background:#fff;border-collapse:collapse;border-radius:12px;box-shadow:var(--shadow-sm);overflow:hidden;width:100%}.enchapes-table thead{background:var(--gray-50)}.enchapes-table th{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--gray-200,#e5e7eb);color:var(--gray-500);font-size:.8rem;font-weight:600;letter-spacing:.05em;padding:12px 16px;text-align:left;text-transform:uppercase}.enchapes-table td{border-bottom:1px solid #f3f4f6;border-bottom:1px solid var(--gray-100,#f3f4f6);color:var(--gray-700);font-size:.9rem;padding:12px 16px}.enchapes-table tbody tr:hover{background:var(--gray-50)}.enchapes-td-ref{color:var(--gray-900);font-weight:600}.enchapes-td-acciones{display:flex;gap:8px}.enchapes-btn-editar,.enchapes-btn-eliminar{align-items:center;border:none;border-radius:6px;cursor:pointer;display:flex;font-size:.9rem;height:32px;justify-content:center;transition:background .2s;width:32px}.enchapes-btn-editar{background:#e0f2fe;color:#0284c7}.enchapes-btn-editar:hover{background:#bae6fd}.enchapes-btn-eliminar{background:#fee2e2;color:#dc2626}.enchapes-btn-eliminar:hover{background:#fecaca}.enchapes-empty,.enchapes-loading{color:var(--gray-500);font-size:.95rem;padding:40px 20px;text-align:center}@media (max-width:768px){.enchapes-header{align-items:flex-start;flex-direction:column;gap:12px}.enchapes-form-grid{grid-template-columns:1fr}}.App{background:var(--surface-secondary)}.App,.app-content{display:flex;min-height:100vh}.app-content{flex:1 1;flex-direction:column;margin-left:260px;min-width:0;overflow-x:hidden;transition:margin-left var(--transition-slow)}.sidebar.collapsed~.app-content{margin-left:72px}.app-main{background:var(--surface-secondary);flex:1 1;min-width:0;overflow-x:auto;padding:var(--spacing-6)}.content-wrapper{margin:0 auto;max-width:1400px;min-width:0;width:100%}.placeholder-module{background:var(--surface-primary);border:1px dashed var(--border-medium);border-radius:var(--radius-lg);padding:var(--spacing-12) var(--spacing-8);text-align:center}.placeholder-module h2{color:var(--gray-700);font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-2)}.placeholder-module p{color:var(--gray-500);font-size:var(--font-size-sm)}.sidebar-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0009;bottom:0;display:none;left:0;opacity:0;position:fixed;right:0;top:0;transition:opacity .3s ease;z-index:999}@media (max-width:1024px){.app-content{margin-left:0;width:100%}.app-main{padding:var(--spacing-4)}.sidebar-overlay{display:block;opacity:1}.App.sidebar-open{overflow:hidden}}@media (max-width:768px){.app-main{padding:var(--spacing-3)}}.app-loading{align-items:center;background:linear-gradient(135deg,#0a1628,#1a2d4a 50%,#0f1c2e);display:flex;justify-content:center;min-height:100vh}.app-loading .app-loading-content{align-items:center;display:flex;flex-direction:column;gap:16px}.app-loading .app-spinner{animation:appLoadingSpin .8s linear infinite;border:3px solid #ffffff1a;border-radius:50%;border-top-color:#3b82f6;height:40px;width:40px}@keyframes appLoadingSpin{to{transform:rotate(1turn)}}.app-loading .loading-text{animation:none!important;color:#94a3b8;font-size:.9rem;font-weight:500;margin:0}
/*# sourceMappingURL=main.664315e9.css.map*/