:root{--bg-dark: #070913;--bg-sidebar: #040D36;--bg-card: #0d1224;--bg-card-hover: #141c36;--text-main: #f8fafc;--text-muted: #64748b;--accent-yellow: #FBE618;--accent-yellow-dark: #C9B600;--accent-orange: #C9A800;--border-color: #151d38;--sidebar-border: rgba(255, 255, 255, .06);--nav-hover: rgba(255, 255, 255, .05);--nav-active: rgba(251, 230, 24, .09);--nav-text-active: #FBE618;--success: #22c55e;--danger: #ef4444;--warning: #f59e0b;transition:background-color .3s ease,color .3s ease}:root[data-theme=light]{--bg-dark: #f0f4f8;--bg-sidebar: #0a1c6a;--bg-card: #ffffff;--bg-card-hover: #e0e7ff;--text-main: #0A1C6A;--text-muted: #475569;--accent-yellow: #D1BE00;--accent-yellow-dark: #A39300;--accent-orange: #A38900;--border-color: #cbd5e1;--sidebar-border: rgba(0, 0, 0, .06);--nav-hover: rgba(10, 28, 106, .04);--nav-active: rgba(10, 28, 106, .08);--nav-text-active: #0A1C6A;--success: #16a34a;--danger: #dc2626;--warning: #d97706}*{box-sizing:border-box;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}body{background-color:var(--bg-dark);color:var(--text-main);height:100vh;height:100dvh;overflow:hidden;transition:background-color .3s ease,color .3s ease}.layout-container{display:flex;height:100vh;height:100dvh}.sidebar{width:240px;background-color:var(--bg-sidebar)!important;border-right:1px solid rgba(255,255,255,.08)!important;display:flex;flex-direction:column;transition:width .3s cubic-bezier(.4,0,.2,1);position:relative;z-index:50}.sidebar.collapsed{width:70px}.sidebar-header{padding:16px 20px;height:70px;display:flex;align-items:center;border-bottom:1px solid rgba(255,255,255,.08)!important}.logo-container{width:48px;height:48px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.logo-icon-custom{width:100%;height:100%;object-fit:contain}.logo-text-section{display:flex;flex-direction:column;line-height:1.1;overflow:hidden;white-space:nowrap}.logo-title{font-weight:800;font-size:.95rem;letter-spacing:.05em;color:#fff!important}.logo-subtitle{font-size:.65rem;color:#a1a1aa!important;opacity:.7}.category-header{padding:14px 20px 6px;font-size:.675rem;font-weight:700;color:#ffffff59!important;text-transform:uppercase;letter-spacing:.08em;display:flex;justify-content:space-between;align-items:center}.sidebar-collapsed .category-header{display:none}.sidebar-nav{padding:16px 0;flex:1;display:flex;flex-direction:column;gap:2px;overflow-y:auto;min-height:0}.sidebar-nav::-webkit-scrollbar{width:4px}.sidebar-nav::-webkit-scrollbar-track{background:transparent}.sidebar-nav::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:4px}.sidebar-nav::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.nav-item{display:flex;align-items:center;gap:12px;padding:10px 16px;margin:1px 12px;color:#a1a1aa!important;text-decoration:none;font-weight:500;font-size:.875rem;border-radius:8px;transition:all .2s cubic-bezier(.4,0,.2,1);cursor:pointer;white-space:nowrap}.nav-item svg{color:#a1a1aa!important;transition:transform .2s ease,color .2s ease}.sidebar.collapsed .nav-item{padding:10px 0;margin:4px 10px;justify-content:center}.nav-item:hover{background-color:#ffffff0d!important;color:#fff!important}.nav-item:hover svg{color:#fff!important;transform:scale(1.05)}.nav-item.active{background-color:var(--accent-yellow)!important;color:#0a1c6a!important;font-weight:700}.nav-item.active svg{color:#0a1c6a!important}.sidebar.collapsed .nav-item.active{background-color:var(--accent-yellow)!important;color:#fff!important}.sidebar-footer{border-top:1px solid rgba(255,255,255,.08)!important;padding:0;display:flex;flex-direction:column;height:60px;justify-content:center}.sidebar-toggle-wrapper{padding:0 16px 0 0;display:flex;justify-content:flex-end;align-items:center}.sidebar.collapsed .sidebar-toggle-wrapper{justify-content:center;padding-right:0}.sidebar-toggle-btn{background:#ffffff08!important;border:1px solid rgba(255,255,255,.08)!important;color:#fff9!important;width:32px;height:32px;flex-shrink:0;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.sidebar-toggle-btn:hover{background:var(--accent-yellow)!important;color:#000!important;border-color:var(--accent-yellow)!important}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.topbar{height:70px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 32px;background:var(--bg-dark)}.search-bar{display:flex;align-items:center;background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:8px 16px;width:300px}.search-bar input{background:transparent;border:none;color:var(--text-main);outline:none;margin-left:8px;width:100%}.topbar-actions{display:flex;align-items:center;gap:20px}.user-profile{display:flex;align-items:center;gap:12px}.avatar{width:36px;height:36px;background:var(--accent-orange);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}.user-dropdown-container{position:relative}.user-dropdown-menu{position:absolute;top:calc(100% + 12px);right:0;background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;min-width:200px;box-shadow:0 10px 25px -5px #0000004d;z-index:1001;padding:8px;animation:fadeInDown .2s ease-out}.dropdown-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:transparent}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.dropdown-header-mobile{padding:10px 12px;display:none;flex-direction:column;border-bottom:1px solid var(--border-color);margin-bottom:8px}.dropdown-item{display:flex;align-items:center;gap:10px;padding:10px 12px;width:100%;border:none;background:transparent;color:var(--text-main);font-size:.875rem;border-radius:8px;cursor:pointer;transition:all .2s;text-align:left;text-decoration:none}.dropdown-item:hover{background:var(--bg-card-hover);color:var(--accent-yellow)}.dropdown-item.danger{color:var(--danger)}.dropdown-item.danger:hover{background:#ef44441a;color:var(--danger)}.dropdown-divider{height:1px;background:var(--border-color);margin:6px 0}.dashboard-scroll{flex:1;overflow-y:auto;overflow-x:hidden;padding:32px;max-width:100%}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:24px;margin-bottom:32px}.kpi-card{background:var(--bg-card);border-radius:16px;padding:24px;border:1px solid var(--border-color);position:relative;overflow:hidden;box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -1px #00000008;transition:all .2s ease}:root[data-theme=light] .kpi-card,:root[data-theme=light] .panel{box-shadow:0 4px 20px #00000008,0 1px 3px #00000003;border-color:#0000000d}.kpi-header{display:flex;justify-content:space-between;align-items:center;color:var(--text-muted);margin-bottom:16px;font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.kpi-value{font-size:2.25rem;font-weight:800;letter-spacing:-.03em;color:var(--text-main)}.kpi-subtitle{font-size:.85rem;color:var(--text-muted);margin-top:8px;font-weight:500}.dashboard-grid{display:grid;grid-template-columns:2fr 1fr;gap:24px}.charts-grid{display:grid;grid-template-columns:2fr 1fr;gap:24px;margin-bottom:24px}@media (max-width: 1024px){.dashboard-grid,.charts-grid{grid-template-columns:1fr!important}}.panel{background:var(--bg-card);border-radius:16px;border:1px solid var(--border-color);padding:24px;display:flex;flex-direction:column;box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -1px #00000008}.panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.panel-title{font-size:1.15rem;font-weight:700;letter-spacing:-.02em;color:var(--text-main)}.btn-primary{background:var(--accent-yellow);color:#fff;border:none;padding:8px 16px;border-radius:8px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .2s ease;box-shadow:0 2px 8px #eab30833}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px #eab30859}.table-container{overflow-x:auto;background:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;padding:12px 20px;box-shadow:0 1px 3px #00000005}table{width:100%;border-collapse:collapse}th{text-align:left;color:var(--text-muted);font-weight:600;font-size:.725rem;letter-spacing:.05em;text-transform:uppercase;padding:14px 16px;border-bottom:1px solid var(--border-color)}td{padding:16px;border-bottom:1px solid var(--border-color);color:var(--text-main);font-size:.85rem}tr:hover td{background-color:#eab30804}tr:last-child td{border-bottom:none}.material-info{display:flex;align-items:center;gap:12px}.material-icon{width:40px;height:40px;background:var(--bg-dark);border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--accent-yellow)}.material-name{font-weight:500}.material-sku{font-size:.75rem;color:var(--text-muted)}.badge{padding:6px 12px;border-radius:8px;font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;display:inline-flex;align-items:center;justify-content:center}.badge.success{background:#dcfce7;color:#15803d;border:1px solid rgba(21,128,61,.15)}.badge.warning{background:#fef9c3;color:#ca8a04;border:1px solid rgba(202,138,4,.15)}.badge.danger{background:#fee2e2;color:#b91c1c;border:1px solid rgba(185,28,28,.15)}.progress-bar{width:100%;height:6px;background:var(--bg-dark);border-radius:3px;margin-top:4px;overflow:hidden}.progress-fill{height:100%;background:var(--success)}.progress-fill.warning{background:var(--warning)}.progress-fill.danger{background:var(--danger)}.action-buttons{display:flex;gap:8px}.btn-icon{background:transparent;border:1px solid var(--border-color);color:var(--text-muted);width:32px;height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.btn-icon:hover{background:var(--bg-card-hover);color:var(--text-main)}.mobile-menu-btn{display:none!important}.activity-list{display:flex;flex-direction:column;gap:20px}.activity-item{display:flex;gap:16px}.activity-avatar{width:32px;height:32px;border-radius:50%;background:var(--bg-dark);border:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;flex-shrink:0}.activity-content{flex:1}.activity-text{font-size:.875rem;line-height:1.4}.activity-text strong{color:var(--text-main);font-weight:500}.activity-time{font-size:.75rem;color:var(--text-muted);margin-top:4px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:16px}.modal-content{background:var(--bg-card);padding:32px;border-radius:16px;border:1px solid var(--border-color);width:100%;max-width:500px;max-height:90dvh;overflow-y:auto;position:relative;box-shadow:0 20px 25px -5px #0000004d}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.modal-title{font-size:1.25rem;font-weight:600}.modal-close{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:6px}.modal-close:hover{background:var(--bg-dark);color:var(--text-main)}.form-group{margin-bottom:20px}.form-label{display:block;margin-bottom:8px;font-size:.875rem;font-weight:500;color:var(--text-muted)}.form-input{width:100%;padding:12px;border-radius:8px;border:1px solid var(--border-color);background:var(--bg-dark);color:var(--text-main);outline:none;transition:border-color .2s}.form-input:focus{border-color:var(--accent-yellow)}.btn-danger{background:var(--danger);color:#fff;border:none;padding:8px 12px;border-radius:6px;cursor:pointer;display:flex;align-items:center;gap:6px}.btn-secondary{background:var(--bg-dark);color:var(--text-main);border:1px solid var(--border-color);padding:10px 20px;border-radius:8px;cursor:pointer;font-weight:600}.sidebar-overlay{display:none}@media (max-width: 1024px){.dashboard-grid{grid-template-columns:1fr}}@media (max-width: 768px){.mobile-menu-btn{display:flex!important;margin-right:12px}.sidebar-overlay{display:block;position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:999;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.sidebar{position:fixed;height:100vh;height:100dvh;left:-260px;z-index:1000;box-shadow:10px 0 15px -3px #0000001a}.sidebar.active{left:0}.sidebar.collapsed{left:-260px}.main-content{width:100%}.topbar{padding:0 16px}.search-bar{width:160px}.topbar-actions{gap:12px}.user-profile span{display:none}.dropdown-header-mobile{display:flex}.dashboard-scroll{padding:16px}.kpi-grid{grid-template-columns:1fr!important;gap:16px!important}.panel{padding:16px;overflow-x:hidden}.responsive-split{grid-template-columns:1fr!important}.gantt-item-row{grid-template-columns:1fr!important;gap:12px!important}.charts-grid,.dashboard-grid{grid-template-columns:1fr!important}.page-header-container{flex-direction:column;align-items:flex-start!important}.project-cards-grid{grid-template-columns:1fr!important}.table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-container.responsive-table table,.table-container.responsive-table thead,.table-container.responsive-table tbody,.table-container.responsive-table th,.table-container.responsive-table td,.table-container.responsive-table tr{display:block}.table-container.responsive-table thead tr{position:absolute;top:-9999px;left:-9999px}.table-container.responsive-table tr{border:1px solid var(--border-color);margin-bottom:16px;border-radius:8px;padding:8px;background:var(--bg-card)}.table-container.responsive-table td{border:none;border-bottom:1px solid var(--border-color);position:relative;padding:12px 16px;text-align:right;display:flex;justify-content:space-between;align-items:center;min-height:48px;gap:16px}.table-container.responsive-table td:last-child{border-bottom:0}.table-container.responsive-table td:before{position:static;transform:none;width:auto;padding-right:0;white-space:nowrap;text-align:left;font-weight:600;color:var(--text-muted);font-size:.75rem;content:attr(data-label);flex-shrink:0}.table-container.responsive-table td>div,.table-container.responsive-table td>span{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:6px;word-break:break-all;overflow-wrap:break-word;min-width:0;max-width:100%;text-align:right}}@media (max-width: 480px){.search-bar{display:none}.topbar-actions{width:100%;justify-content:flex-end}}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at center,#030825b8,#010414f2),url(/login-bg.png) no-repeat center center;background-size:cover;position:relative;overflow:hidden;padding:24px}.auth-orb{position:absolute;border-radius:50%;filter:blur(90px);pointer-events:none;z-index:0;opacity:.45}.auth-orb-1{width:400px;height:400px;background:radial-gradient(circle,rgba(251,230,24,.25) 0%,transparent 70%);top:-100px;right:-50px;animation:floatOrb1 15s ease-in-out infinite}.auth-orb-2{width:500px;height:500px;background:radial-gradient(circle,rgba(249,115,22,.18) 0%,transparent 70%);bottom:-150px;left:-100px;animation:floatOrb2 20s ease-in-out infinite}@keyframes floatOrb1{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-30px,40px) scale(1.1)}}@keyframes floatOrb2{0%,to{transform:translate(0) scale(1)}50%{transform:translate(40px,-30px) scale(1.05)}}.auth-bg-pattern{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.007) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.007) 1px,transparent 1px);background-size:24px 24px;pointer-events:none;z-index:0}.auth-card{background:#06135366;border:1px solid rgba(255,255,255,.09);border-radius:24px;padding:44px 38px;width:100%;max-width:440px;position:relative;z-index:10;backdrop-filter:blur(24px) saturate(120%);-webkit-backdrop-filter:blur(24px) saturate(120%);box-shadow:0 24px 80px #000000a6,inset 0 1px 1px #ffffff1a;animation:authFadeIn .6s cubic-bezier(.16,1,.3,1)}@keyframes authFadeIn{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.auth-header{text-align:center;margin-bottom:28px}.auth-logo{width:72px;height:72px;background:linear-gradient(135deg,var(--accent-yellow),var(--accent-orange));border-radius:18px;display:flex;align-items:center;justify-content:center;margin:0 auto 20px;color:#000;box-shadow:0 8px 24px #fbe6184d}.auth-title{font-size:1.75rem;font-weight:700;margin-bottom:6px}.auth-subtitle{color:var(--text-muted);font-size:.9rem}.auth-error{display:flex;align-items:center;gap:8px;background:#ef444417;border:1px solid rgba(239,68,68,.25);border-radius:12px;padding:12px 16px;margin-bottom:20px;color:#fca5a5;font-size:.825rem;animation:authShake .4s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}@keyframes authShake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.auth-form{display:flex;flex-direction:column;gap:18px}.auth-field{display:flex;align-items:center;background:#0308258c;border:1px solid rgba(255,255,255,.07);border-radius:14px;padding:0 18px;transition:border-color .2s,box-shadow .2s,background-color .2s}.auth-field:focus-within{border-color:#fbe618b3;box-shadow:0 0 0 4px #fbe6181f;background:#030825b3}.auth-field-icon{color:#fff6;flex-shrink:0;transition:color .2s}.auth-field:focus-within .auth-field-icon{color:var(--accent-yellow)}.auth-field input{flex:1;background:transparent;border:none;color:#fff!important;-webkit-text-fill-color:#ffffff!important;caret-color:#fbe618;padding:14px 12px;outline:none;font-size:.95rem}.auth-field input::placeholder{color:#ffffff59;opacity:1}.auth-field input:-webkit-autofill,.auth-field input:-webkit-autofill:hover,.auth-field input:-webkit-autofill:focus{-webkit-text-fill-color:#ffffff!important;-webkit-box-shadow:0 0 0 1000px #04092b inset!important;box-shadow:0 0 0 1000px #04092b inset!important;caret-color:#fbe618;transition:background-color 5000s ease-in-out 0s}.auth-field-toggle{background:none;border:none;color:#fff6;cursor:pointer;padding:6px;display:flex;align-items:center;transition:color .2s}.auth-field-toggle:hover{color:#fff}.auth-submit{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:15px;background:linear-gradient(135deg,#fbe618,#f97316);color:#040d36;border:none;border-radius:14px;font-size:.95rem;font-weight:700;cursor:pointer;transition:transform .2s,box-shadow .2s,filter .2s;margin-top:8px;box-shadow:0 6px 20px #fbe61838}.auth-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 28px #fbe61861;filter:brightness(1.05)}.auth-submit:active:not(:disabled){transform:translateY(0)}.auth-submit:disabled{opacity:.55;cursor:not-allowed}.auth-spinner{width:20px;height:20px;border:2.5px solid rgba(4,13,54,.15);border-top-color:#040d36;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.auth-footer{text-align:center;margin-top:32px;color:#ffffff59;font-size:.775rem}.permissions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:12px}.permission-card{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--bg-dark);border:1px solid var(--border-color);border-radius:10px;cursor:pointer;transition:all .2s;-webkit-user-select:none;user-select:none}.permission-card:hover{border-color:var(--accent-yellow);background:#eab3080d}.permission-card.active{border-color:var(--accent-yellow);background:#eab3081a}.permission-icon{color:var(--text-muted);flex-shrink:0}.permission-card.active .permission-icon{color:var(--accent-yellow)}.permission-label{flex:1;font-size:.875rem;font-weight:500}.permission-toggle{width:36px;height:20px;border-radius:10px;background:var(--bg-card-hover);position:relative;transition:background .2s;flex-shrink:0}.permission-toggle.on{background:var(--accent-yellow)}.permission-toggle-dot{width:16px;height:16px;border-radius:50%;background:#fff;position:absolute;top:2px;left:2px;transition:transform .2s}.permission-toggle.on .permission-toggle-dot{transform:translate(16px)}@media (max-width: 480px){.auth-card{padding:32px 24px}.permissions-grid{grid-template-columns:1fr}}.project-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:24px;margin-top:24px}.project-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;padding:24px;cursor:pointer;transition:transform .2s,border-color .2s,box-shadow .2s;position:relative;overflow:hidden}.project-card:hover{transform:translateY(-4px);border-color:var(--accent-yellow);box-shadow:0 12px 24px #0003}.project-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.project-card-name{font-size:1.15rem;font-weight:700;color:var(--text-main)}.project-card-location{display:flex;align-items:center;gap:4px;font-size:.8rem;color:var(--text-muted);margin-top:4px}.project-card-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border-color)}.project-stat{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--text-main)}.project-card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:20px;padding-top:12px}.tabs-container{display:flex;gap:8px;margin-top:24px;border-bottom:1px solid var(--border-color);padding:0 4px}.tab-btn{padding:12px 24px;background:transparent;border:none;color:var(--text-muted);font-weight:600;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s;font-size:.9rem}.tab-btn:hover{color:var(--text-main);background:#ffffff08}.tab-btn.active{color:var(--accent-yellow);border-bottom-color:var(--accent-yellow)}.admin-nav-label{padding:24px 24px 8px;font-size:.7rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px}.badge.info{background:#dbeafe;color:#1d4ed8;border:1px solid rgba(29,78,216,.15)}.sidebar-collapsed .admin-nav-label{display:none}.model-portal-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;overflow:hidden;box-shadow:0 4px 20px #00000005;transition:transform .3s ease,box-shadow .3s ease;display:flex;flex-direction:column}.model-portal-card:hover{transform:translateY(-4px);box-shadow:0 12px 30px #0000000f}.model-card-image-wrapper{position:relative;height:200px;overflow:hidden}.model-card-image{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.model-portal-card:hover .model-card-image{transform:scale(1.05)}.model-card-badge{position:absolute;top:12px;left:12px;z-index:2;box-shadow:0 2px 8px #00000026}.model-card-price-badge{position:absolute;bottom:12px;right:12px;z-index:2;background:#161313d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;padding:6px 12px;border-radius:6px;font-size:.85rem;font-weight:700;box-shadow:0 2px 8px #00000026}.model-card-body{padding:16px;display:flex;flex-direction:column;flex-grow:1}.model-card-title{font-size:1.1rem;font-weight:700;color:var(--text-main);margin:0 0 6px;letter-spacing:-.01em}.model-card-desc{font-size:.8rem;color:var(--text-muted);margin:0 0 16px;line-height:1.4;height:2.8em;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.model-card-specs{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--border-color)}.model-card-spec-item{display:flex;align-items:center;gap:6px;font-size:.75rem;color:var(--text-muted);font-weight:600}.model-card-spec-item svg{color:var(--accent-yellow)}.model-card-footer{margin-top:auto;display:flex;justify-content:space-between;align-items:center}.model-card-units{font-size:.75rem;color:var(--text-muted);font-weight:600}.model-card-actions{display:flex;gap:8px}.model-card-image-wrapper{position:relative;height:200px;overflow:hidden;background:var(--bg-dark);display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--border-color)}.model-card-placeholder-content{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--text-muted);font-size:.8rem;font-weight:500}:root[data-theme=light] .model-card-image-wrapper{background:#e2e8f0}.searchable-option{transition:all .15s ease}.searchable-option:hover{background:var(--nav-hover)!important;color:var(--text-main)!important}.notification-item-hover:hover{background:var(--nav-hover)!important}@keyframes slideIn{0%{transform:translateY(100px);opacity:0}to{transform:translateY(0);opacity:1}}.cronograma-view-toggle{display:inline-flex;background:var(--bg-dark);border:1px solid var(--border-color);border-radius:10px;padding:3px;gap:2px}.cronograma-view-toggle button{display:flex;align-items:center;gap:6px;padding:8px 16px;border:none;border-radius:8px;background:transparent;color:var(--text-muted);font-size:.825rem;font-weight:600;cursor:pointer;transition:all .2s ease}.cronograma-view-toggle button.active{background:var(--accent-yellow);color:#fff;box-shadow:0 2px 8px #eab30840}.cronograma-view-toggle button:not(.active):hover{background:var(--bg-card-hover);color:var(--text-main)}.phase-group{margin-bottom:16px;border:1px solid var(--border-color);border-radius:12px;overflow:hidden;background:var(--bg-card);transition:all .2s ease}.phase-group:hover{border-color:#eab30833}.phase-group-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:var(--bg-dark);cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none}.phase-group-header:hover{background:var(--bg-card-hover)}.phase-group-left{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.phase-color-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 3px #ffffff0f}.phase-group-name{font-size:.9rem;font-weight:700;color:var(--text-main);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.phase-group-meta{font-size:.75rem;color:var(--text-muted);font-weight:500;margin-left:8px;flex-shrink:0}.phase-group-right{display:flex;align-items:center;gap:12px}.phase-progress-mini{display:flex;align-items:center;gap:8px;font-size:.75rem;font-weight:700}.phase-progress-mini-bar{width:80px;height:6px;border-radius:100px;background:var(--border-color);overflow:hidden}.phase-progress-mini-fill{height:100%;border-radius:100px;transition:width .5s ease}.phase-tasks-table{width:100%;border-collapse:collapse}.phase-tasks-table th{padding:10px 16px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--border-color);text-align:left;background:var(--bg-dark)}.phase-tasks-table td{padding:12px 16px;font-size:.825rem;color:var(--text-main);border-bottom:1px solid var(--border-color);vertical-align:middle}.phase-tasks-table tr:last-child td{border-bottom:none}.phase-tasks-table tr:hover td{background:#eab30805}.priority-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:4px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.priority-badge.critica{background:#ef44441a;color:var(--danger)}.priority-badge.alta{background:#f973161a;color:#f97316}.priority-badge.media{background:#eab3081a;color:var(--warning)}.priority-badge.baja{background:#22c55e1a;color:var(--success)}.task-status-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:6px;font-size:.725rem;font-weight:600}.task-status-badge.pendiente{background:#64748b1a;color:var(--text-muted)}.task-status-badge.en_progreso{background:#3b82f61a;color:#3b82f6}.task-status-badge.completada{background:#22c55e1a;color:var(--success)}.task-status-badge.bloqueada{background:#ef44441a;color:var(--danger)}.task-status-badge.cancelada{background:#64748b14;color:var(--text-muted);text-decoration:line-through}.task-progress-slider{display:flex;align-items:center;gap:8px}.task-progress-slider input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:70px;height:5px;border-radius:100px;background:var(--border-color);outline:none;cursor:pointer}.task-progress-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent-yellow);cursor:pointer;box-shadow:0 2px 4px #00000026;transition:transform .15s ease}.task-progress-slider input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2)}.task-progress-slider span{font-size:.75rem;font-weight:700;color:var(--text-main);min-width:32px;text-align:right}.gantt-wrapper{border:1px solid var(--border-color);border-radius:12px;overflow:hidden;background:var(--bg-card)}.gantt-scroll-container{overflow-x:auto;overflow-y:auto;max-height:520px}.gantt-table{display:grid;min-width:max-content}.gantt-header-row{display:flex;position:sticky;top:0;z-index:10;background:var(--bg-dark);border-bottom:2px solid var(--border-color)}.gantt-header-label-col{min-width:280px;max-width:280px;padding:12px 16px;font-size:.725rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;border-right:1px solid var(--border-color);display:flex;align-items:center;position:sticky;left:0;background:var(--bg-dark);z-index:20}.gantt-header-timeline{display:flex;flex:1}.gantt-header-cell{min-width:48px;padding:10px 4px;text-align:center;font-size:.65rem;font-weight:600;color:var(--text-muted);border-right:1px solid var(--border-color);display:flex;flex-direction:column;gap:2px}.gantt-header-cell .month-label{font-size:.6rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.gantt-header-cell .day-label{font-size:.7rem;font-weight:600;color:var(--text-main)}.gantt-header-cell.is-weekend{background:#64748b0a}.gantt-header-cell.is-today{background:#eab30814;color:var(--accent-yellow)}.gantt-row{display:flex;border-bottom:1px solid var(--border-color);min-height:40px;transition:background .15s ease}.gantt-row:hover{background:#eab30804}.gantt-row.phase-row{background:var(--bg-dark)}.gantt-row.phase-row:hover{background:var(--bg-card-hover)}.gantt-row-label{min-width:280px;max-width:280px;padding:8px 16px;display:flex;align-items:center;gap:8px;border-right:1px solid var(--border-color);position:sticky;left:0;background:var(--bg-card);z-index:15;overflow:hidden}.gantt-row.phase-row .gantt-row-label{background:var(--bg-dark)}.gantt-row:hover .gantt-row-label{background:var(--bg-card-hover)}.gantt-row-label-text{font-size:.8rem;font-weight:500;color:var(--text-main);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-row.phase-row .gantt-row-label-text{font-weight:700;font-size:.825rem}.gantt-row-timeline{display:flex;flex:1;position:relative;align-items:center}.gantt-cell{min-width:48px;height:100%;border-right:1px solid var(--border-color);position:relative}.gantt-cell.is-weekend{background:#64748b08}.gantt-bar-container{position:absolute;top:50%;transform:translateY(-50%);height:22px;display:flex;align-items:center;z-index:4;cursor:default}.gantt-bar{height:100%;border-radius:4px;position:relative;overflow:hidden;min-width:6px;box-shadow:0 1px 3px #0000001a;transition:opacity .15s ease}.gantt-bar:hover{opacity:.85}.gantt-bar-progress{height:100%;border-radius:4px;transition:width .3s ease}.gantt-bar.phase-bar{height:12px;border-radius:6px}.gantt-today-line{position:absolute;top:0;bottom:0;width:2px;background:var(--danger);z-index:6;pointer-events:none}.gantt-today-line:before{content:"HOY";position:absolute;top:-1px;left:50%;transform:translate(-50%);font-size:.55rem;font-weight:800;color:var(--danger);background:var(--bg-dark);padding:1px 4px;border-radius:3px;letter-spacing:.05em}.gantt-tooltip{position:fixed;background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;padding:12px 16px;box-shadow:0 8px 24px #0003;z-index:9999;pointer-events:none;min-width:200px;max-width:280px}.gantt-tooltip h4{font-size:.85rem;font-weight:700;color:var(--text-main);margin-bottom:8px}.gantt-tooltip .tooltip-row{display:flex;justify-content:space-between;font-size:.75rem;margin-bottom:4px}.gantt-tooltip .tooltip-row .label{color:var(--text-muted)}.gantt-tooltip .tooltip-row .value{color:var(--text-main);font-weight:600}.phase-actions-row{display:flex;align-items:center;gap:6px;padding:12px 20px;background:var(--bg-card);border-top:1px solid var(--border-color)}.btn-add-task{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:6px;border:1px dashed var(--border-color);background:transparent;color:var(--text-muted);font-size:.775rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-add-task:hover{border-color:var(--accent-yellow);color:var(--accent-yellow);background:#eab3080a}.cronograma-empty{text-align:center;padding:60px 20px;color:var(--text-muted)}.cronograma-empty svg{margin-bottom:16px;opacity:.3}@media (max-width: 768px){.gantt-header-label-col,.gantt-row-label{min-width:180px;max-width:180px}.gantt-header-cell,.gantt-cell{min-width:36px}.phase-group-header{padding:10px 14px}.cronograma-view-toggle button{padding:6px 12px;font-size:.775rem}}.dashboard-tabs-bar{display:flex;align-items:center;gap:4px;background:#ffffff08;border:1px solid var(--border-color);border-radius:12px;padding:4px;margin-bottom:28px;width:fit-content;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.dashboard-tab-btn{display:flex;align-items:center;gap:8px;padding:9px 20px;border-radius:9px;border:none;background:transparent;color:var(--text-muted);font-size:.85rem;font-weight:600;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);white-space:nowrap}.dashboard-tab-btn:hover{color:var(--text-main);background:#ffffff0a}.dashboard-tab-btn.active{background:var(--accent-yellow);color:#040d36;box-shadow:0 4px 14px #fbe6184d}.project-accordion-list{display:flex;flex-direction:column;gap:16px}.project-accordion-item{background:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease}.project-accordion-item:hover{border-color:#fbe61833;box-shadow:0 8px 32px #00000014}.project-accordion-item.is-open{border-color:#fbe61840;box-shadow:0 8px 32px #fbe6180d}.project-accordion-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;cursor:pointer;transition:background .2s ease;-webkit-user-select:none;user-select:none;gap:16px}.project-accordion-header:hover{background:#ffffff04}.project-accordion-chevron{transition:transform .3s cubic-bezier(.4,0,.2,1);flex-shrink:0;color:var(--text-muted)}.project-accordion-chevron.open{transform:rotate(90deg)}.project-accordion-body{overflow:hidden;max-height:0;transition:max-height .4s cubic-bezier(.4,0,.2,1)}.project-accordion-body.open{max-height:9999px}.project-accordion-inner{padding:0 24px 24px;border-top:1px solid var(--border-color)}.project-pill-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.project-pill-tag{display:flex;align-items:center;gap:5px;padding:4px 10px;border-radius:100px;background:#ffffff0a;border:1px solid var(--border-color);font-size:.72rem;color:var(--text-muted);font-weight:600}.accordion-kpi-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));gap:12px;margin-top:20px}.accordion-kpi-card{background:#ffffff05;border:1px solid var(--border-color);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:6px;transition:border-color .2s ease}.accordion-kpi-card.danger{border-color:#dc262633;background:#dc262605}.accordion-kpi-card.success{border-color:#22c55e33;background:#22c55e05}.accordion-kpi-label{font-size:.68rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.accordion-kpi-value{font-size:1.4rem;font-weight:800;color:var(--text-main);letter-spacing:-.02em;line-height:1}.accordion-kpi-sub{font-size:.72rem;color:var(--text-muted);font-weight:500}.dual-progress-container{background:#ffffff05;border:1px solid var(--border-color);border-radius:12px;padding:16px;margin-top:12px;display:flex;flex-direction:column;gap:10px}.dual-progress-row{display:flex;flex-direction:column;gap:4px}.dual-progress-labels{display:flex;justify-content:space-between;font-size:.7rem;font-weight:600;color:var(--text-muted)}.dual-progress-bar{height:6px;background:#ffffff0f;border-radius:100px;overflow:hidden}.dual-progress-fill{height:100%;border-radius:100px;transition:width .6s cubic-bezier(.4,0,.2,1)}.models-section-header{display:flex;align-items:center;gap:8px;margin-top:20px;margin-bottom:12px;padding-top:16px;border-top:1px solid var(--border-color)}.models-section-title{font-size:.8rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}.models-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:12px}.model-card-mini{background:#ffffff05;border:1px solid var(--border-color);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:8px;transition:all .2s ease}.model-card-mini:hover{border-color:#fbe61833;background:#fbe61805;transform:translateY(-1px)}.model-card-name{font-size:.875rem;font-weight:700;color:var(--text-main)}.model-card-specs{display:flex;flex-wrap:wrap;gap:6px}.model-spec-chip{display:flex;align-items:center;gap:3px;font-size:.68rem;color:var(--text-muted);font-weight:600}.model-card-price{font-size:1rem;font-weight:800;color:var(--accent-yellow);letter-spacing:-.01em}.model-card-units{font-size:.72rem;color:var(--text-muted);font-weight:500}.properties-section-header{display:flex;align-items:center;justify-content:space-between;margin-top:20px;margin-bottom:10px;padding-top:16px;border-top:1px solid var(--border-color);flex-wrap:wrap;gap:8px}.properties-section-title{display:flex;align-items:center;gap:8px;font-size:.8rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}.properties-filter-bar{display:flex;gap:6px;flex-wrap:wrap}.prop-filter-select{background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-main);padding:5px 10px;border-radius:7px;font-size:.72rem;font-weight:600;outline:none;cursor:pointer;transition:border-color .2s ease}.prop-filter-select:focus{border-color:var(--accent-yellow)}.properties-list{display:flex;flex-direction:column;gap:6px}.property-sub-accordion{background:#ffffff04;border:1px solid rgba(255,255,255,.05);border-radius:10px;overflow:hidden;transition:all .2s ease}.property-sub-accordion:hover{border-color:#fbe61826}.property-sub-accordion.is-open{border-color:#fbe61833;background:#ffffff05}.property-row-header{display:flex;align-items:center;padding:11px 16px;cursor:pointer;gap:12px;transition:background .15s ease;flex-wrap:wrap}.property-row-header:hover{background:#ffffff05}.property-identifier{font-size:.8rem;font-weight:700;color:var(--text-main);min-width:70px}.property-status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.property-row-cost{font-size:.78rem;font-weight:700;color:var(--text-main)}.property-row-days{font-size:.72rem;color:var(--text-muted);font-weight:600}.property-row-progress{display:flex;align-items:center;gap:6px;margin-left:auto}.property-mini-bar{width:50px;height:4px;background:#ffffff0f;border-radius:100px;overflow:hidden}.property-mini-bar-fill{height:100%;border-radius:100px;background:var(--accent-yellow);transition:width .5s ease}.property-progress-pct{font-size:.7rem;font-weight:700;color:var(--text-muted);min-width:28px}.property-row-chevron{transition:transform .25s ease;color:var(--text-muted);flex-shrink:0}.property-row-chevron.open{transform:rotate(90deg)}.property-detail-panel{padding:14px 16px 16px;border-top:1px solid rgba(255,255,255,.04);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:12px}.property-detail-kpi{display:flex;flex-direction:column;gap:4px}.property-detail-kpi-label{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted)}.property-detail-kpi-value{font-size:1rem;font-weight:800;color:var(--text-main)}.property-detail-kpi-sub{font-size:.7rem;color:var(--text-muted);font-weight:500}.phase-timeline{margin-top:4px;display:flex;flex-direction:column;gap:4px}.phase-timeline-item{display:flex;align-items:center;gap:8px}.phase-timeline-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.phase-timeline-label{font-size:.7rem;color:var(--text-muted);flex:1}.phase-timeline-days{font-size:.7rem;font-weight:700;color:var(--text-main)}.deviation-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:5px;font-size:.65rem;font-weight:700;letter-spacing:.02em}.deviation-badge.danger{background:#dc26261a;color:var(--danger)}.deviation-badge.success{background:#22c55e1a;color:var(--success)}.deviation-badge.neutral{background:#ffffff0d;color:var(--text-muted)}.accordion-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 20px;gap:12px;color:var(--text-muted);text-align:center}.accordion-empty p{font-size:.825rem;max-width:300px;line-height:1.5}.accordion-toggle-all{background:transparent;border:1px solid var(--border-color);color:var(--text-muted);padding:5px 12px;border-radius:7px;font-size:.72rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:5px}.accordion-toggle-all:hover{border-color:var(--accent-yellow);color:var(--accent-yellow)}.accordion-pagination{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border-color)}.accordion-page-btn{background:transparent;border:1px solid var(--border-color);color:var(--text-muted);width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.75rem;font-weight:600;transition:all .15s ease}.accordion-page-btn:hover,.accordion-page-btn.active{background:var(--accent-yellow);border-color:var(--accent-yellow);color:#040d36}@media (max-width: 768px){.dashboard-tabs-bar{width:100%;justify-content:stretch}.dashboard-tab-btn{flex:1;justify-content:center;padding:8px 12px;font-size:.78rem}.project-accordion-header{padding:16px}.project-accordion-inner{padding:0 16px 16px}.accordion-kpi-strip{grid-template-columns:repeat(2,1fr)}.property-detail-panel{grid-template-columns:1fr 1fr}.models-grid{grid-template-columns:1fr}}
