:root{--mobile-drawer-breakpoint:768px;--z-mobile-drawer-backdrop:1200;--z-mobile-drawer-panel:1210;--primary-color:#0d8abc;--secondary-color:#1e293b;--bg-color:#f3f4f6;--white:#fff;--text-primary:#1e293b;--text-secondary:#64748b;--border-color:#e2e8f0;--green:#10b981;--green-light:#d1fae5;--red:#ef4444;--red-light:#fee2e2;--orange:#f59e0b;--orange-light:#fef3c7;--blue:#3b82f6;--blue-light:#dbeafe;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a;--radius-lg:16px;--radius-md:8px}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-color);color:var(--text-primary);direction:rtl;font-family:Cairo,sans-serif;line-height:1.5}*{scrollbar-width:thin;scrollbar-color:#0d8abcc7 #e2e8f099}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#e2e8f099;border-radius:999px}::-webkit-scrollbar-thumb{background:linear-gradient(#0d8abce6,#0d8abcb8);border:2px solid #e2e8f0a6;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:linear-gradient(#0d8abc,#0d8abcdb)}#root{min-height:100vh}.dashboard-container{min-height:100vh;display:flex;position:relative}.sidebar{background-color:var(--white);border-left:1px solid var(--border-color);z-index:20;flex-direction:column;width:250px;height:100vh;padding:1.5rem;transition:width .3s;display:flex;position:fixed;inset-block:0;inset-inline-start:0;overflow:hidden auto}.logo-area{text-align:center;margin-bottom:3rem}.sidebar-logo{object-fit:contain;background:radial-gradient(circle at 30% 20%,#ffffff38,#ffffff05);border:1px solid #0d8abc47;border-radius:14px;width:92px;height:92px;margin:0 auto .65rem;animation:4.5s ease-in-out infinite sidebarLogoFloat;display:block;box-shadow:0 10px 24px #0d8abc33,inset 0 1px #ffffff61}@keyframes sidebarLogoFloat{0%{filter:saturate();transform:translateY(0)scale(1)}50%{filter:saturate(1.08);transform:translateY(-3px)scale(1.01)}to{filter:saturate();transform:translateY(0)scale(1)}}.logo-header{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.logo-header .logo-text{flex:1;min-width:0}.sidebar:not(.sidebar--mobile) .logo-header{justify-content:center}.sidebar:not(.sidebar--mobile) .logo-header .logo-text{text-align:center}.sidebar.sidebar--mobile .logo-header{justify-content:space-between}.sidebar.sidebar--mobile .logo-header .logo-text{text-align:right}.logo-area h2{color:var(--primary-color);margin-bottom:.2rem;font-size:.95rem;font-weight:800;line-height:1.25}.logo-area .subtitle{color:var(--text-secondary);font-size:.78rem}.nav-menu{flex-direction:column;gap:.5rem;display:flex}.nav-item{color:var(--text-secondary);border-radius:var(--radius-md);align-items:center;gap:.75rem;padding:.75rem 1rem;font-weight:600;text-decoration:none;transition:all .2s;display:flex}.nav-item:hover,.nav-item.active{background-color:var(--blue-light);color:var(--primary-color)}.sidebar-top-toolbar{border-bottom:1px solid var(--border-color);flex-shrink:0;margin-bottom:1rem;padding-bottom:1rem}.sidebar-toggle-desktop{border-radius:var(--radius-md);border:1px solid var(--border-color);width:100%;color:var(--secondary-color);cursor:pointer;box-sizing:border-box;background:#f8fafc;justify-content:center;align-items:center;gap:.45rem;padding:.65rem .75rem;font-family:inherit;font-size:.82rem;font-weight:700;transition:background .2s,color .2s,border-color .2s,box-shadow .2s;display:inline-flex;position:relative}.sidebar-toggle-desktop:hover{background:var(--blue-light);color:var(--primary-color);border-color:#0d8abc61}.sidebar-toggle-desktop:focus-visible{outline-offset:2px;outline:2px solid #0d8abc73}.sidebar-toggle-desktop__label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sidebar.collapsed{width:80px}.sidebar.collapsed .logo-text,.sidebar.collapsed .subtitle,.sidebar.collapsed .sidebar-logo,.sidebar.collapsed .nav-item span,.sidebar.collapsed:not(.sidebar--mobile) .logo-header{display:none}.sidebar.collapsed:not(.sidebar--mobile) .logo-area{margin-bottom:1rem}.sidebar.collapsed .nav-item{justify-content:center;padding:.75rem 0}.sidebar.collapsed .sidebar-toggle-desktop{gap:0;padding:.65rem .35rem}.sidebar.collapsed .sidebar-toggle-desktop__label{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.sidebar.collapsed .sidebar-top-toolbar{padding-bottom:.5rem;border-bottom:none;margin-bottom:.75rem;padding-inline:0}.main-content{flex:1;height:100vh;margin-inline-start:250px;padding:2rem;overflow-y:auto}.sidebar.collapsed+.main-content{margin-inline-start:80px}.top-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2rem;display:flex}.header-title h1{color:var(--secondary-color);font-size:1.5rem;font-weight:700}.header-title p{color:var(--text-secondary);font-size:.9rem}.header-actions{align-items:center;gap:.75rem;display:flex}.date-display{background:var(--white);border-radius:var(--radius-md);border:1px solid var(--border-color);color:var(--text-secondary);white-space:nowrap;align-items:center;gap:.4rem;padding:.5rem .85rem;font-size:.85rem;display:inline-flex}.header-user-menu{position:relative}.header-user-btn{border:1px solid var(--border-color);background:var(--white);cursor:pointer;border-radius:999px;align-items:center;gap:.3rem;padding:.25rem .45rem .25rem .25rem;display:inline-flex}.header-user-btn img{border-radius:999px;width:34px;height:34px;display:block}.header-user-dropdown{background:var(--white);border:1px solid var(--border-color);z-index:1000;border-radius:14px;gap:.55rem;min-width:220px;padding:.75rem;display:grid;position:absolute;top:calc(100% + 8px);left:0;box-shadow:0 10px 25px #00000014}.dropdown-label{color:var(--text-secondary);font-size:.75rem}.dropdown-username{color:var(--secondary-color);word-break:break-all;font-weight:800}.dropdown-role{color:var(--text-secondary);font-size:.75rem}.header-user-dropdown .btn{justify-content:center;width:100%}.card-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.card{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);padding:1.5rem;transition:all .3s cubic-bezier(.4,0,.2,1)}@media (hover:hover) and (pointer:fine){.card:hover{transform:translateY(-2px);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}}.summary-cards{gap:1.5rem;margin-bottom:2rem;display:grid}.summary-grid-2{grid-template-columns:1fr 1fr}.summary-grid-4{grid-template-columns:repeat(4,1fr)}.stat-card{align-items:flex-start;gap:1rem;display:flex}.stat-value{color:var(--secondary-color);font-size:1.5rem;font-weight:800}.stat-label{color:var(--text-secondary);font-size:.85rem}.stat-trend{color:var(--text-secondary);font-size:.75rem}.btn{border-radius:var(--radius-md);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-family:inherit;font-weight:600;transition:opacity .2s;display:inline-flex}.btn-sm{gap:.4rem;padding:.4rem .8rem;font-size:.85rem;line-height:1.2}.btn-primary{background-color:var(--primary-color);color:var(--white)}.btn-outline{border-color:var(--border-color);color:var(--text-secondary);background-color:#0000}.btn:hover{opacity:.9}.form-control{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--white);width:100%;color:var(--text-primary);padding:.75rem;font-family:inherit;font-size:.95rem}.form-control:focus{border-color:var(--primary-color);outline:2px solid #0d8abc33}.matrix-table-scroll-wrap{-webkit-overflow-scrolling:touch;max-width:100%}.matrix-table{border-collapse:collapse;width:100%;font-size:.9rem}.matrix-table th,.matrix-table td{text-align:right;border-bottom:1px solid var(--border-color);padding:.85rem .75rem}.matrix-table th{color:var(--secondary-color);background:#f8fafc;font-weight:700}.progress-bar{background:#e2e8f0;border-radius:8px;width:100%;height:8px;overflow:hidden}.progress-fill{height:100%}.risk-list{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;list-style:none;display:grid}.risk-item{border:1px solid var(--border-color);border-radius:var(--radius-md);background:#f8fafc;justify-content:space-between;align-items:center;padding:.85rem;display:flex}.risk-item-content{align-items:center;gap:.75rem;display:flex}.badge{border-radius:6px;padding:.2rem .55rem;font-size:.75rem;font-weight:700}.badge-red{background:var(--red-light);color:var(--red)}.badge-orange{background:var(--orange-light);color:var(--orange)}.text-green{color:var(--green)}.text-red{color:var(--red)}.text-orange{color:var(--orange)}.text-blue{color:var(--blue)}.bg-green-light{background-color:var(--green-light)}.bg-red-light{background-color:var(--red-light)}.bg-orange-light{background-color:var(--orange-light)}.bg-blue-light{background-color:var(--blue-light)}.leaflet-control-attribution{opacity:0;border-radius:0 0 6px;background:#ffffff8c!important;padding:1px 5px!important;font-size:9px!important;line-height:1.1!important}.leaflet-control-attribution a{text-decoration:none;color:#64748b!important}@media (width<=1200px){.summary-grid-4{grid-template-columns:1fr 1fr}}@media (width<=768px){.summary-grid-2,.summary-grid-4{grid-template-columns:1fr}.dashboard-container{flex-direction:row;min-height:100dvh}.sidebar.sidebar--mobile{width:min(250px,86vw);z-index:var(--z-mobile-drawer-panel);box-shadow:none;transition:transform .3s,box-shadow .3s}[dir=rtl] .sidebar.sidebar--mobile:not(.sidebar--open){visibility:hidden;pointer-events:none;transform:translate(100%)}[dir=ltr] .sidebar.sidebar--mobile:not(.sidebar--open){visibility:hidden;pointer-events:none;transform:translate(-100%)}.sidebar.sidebar--mobile.sidebar--open{visibility:visible;pointer-events:auto;transform:translate(0);box-shadow:-8px 0 28px #0f172a2e}.sidebar-backdrop{z-index:var(--z-mobile-drawer-backdrop);cursor:pointer;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);-webkit-tap-highlight-color:transparent;background:#0f172a73;border:none;margin:0;padding:0;position:fixed;inset:0}.main-content{padding:1rem;padding-bottom:max(1rem, env(safe-area-inset-bottom,0px));flex:1;width:100%;min-width:0;height:auto;min-height:100dvh;margin-inline-end:0;margin-inline-start:0!important}.sidebar.collapsed+.main-content{margin-inline-start:0!important}.mobile-app-bar{padding:max(.65rem, env(safe-area-inset-top,0px)) 1rem .75rem;border-bottom:1px solid var(--border-color);background:var(--bg-color);z-index:15;justify-content:space-between;align-items:center;gap:.75rem;margin:-1rem -1rem 1rem;display:flex;position:sticky;top:0}.mobile-app-bar__menu{border-radius:var(--radius-md);min-width:44px;min-height:44px;padding:10px}.mobile-app-bar .header-actions{justify-content:flex-start;width:auto;margin-inline-start:auto;display:inline-flex}.mobile-app-bar .header-user-btn{min-height:40px}.top-header>.header-actions{display:none}.top-header{flex-direction:column;align-items:flex-start}.header-actions{flex-wrap:wrap;justify-content:space-between;width:100%}}@media (width>=769px){.mobile-app-bar,.sidebar-backdrop{display:none}}.summary-cards-container{margin-bottom:2rem}.home-dashboard .stat-card{align-items:flex-start;gap:.85rem;min-height:106px;padding:1.1rem 1.25rem}.home-dashboard .stat-head{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.home-dashboard .stat-label,.home-dashboard .stat-value{margin-bottom:.28rem}.home-dashboard .stat-icon{border-radius:12px;flex-shrink:0;place-items:center;width:44px;height:44px;display:grid;box-shadow:inset 0 1px #ffffff59}.home-dashboard .stat-icon svg{width:20px;height:20px;display:block}.btn-icon{cursor:pointer;color:var(--secondary-color);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:4px;display:inline-flex}.btn-icon:hover{background:var(--bg-color)}.skeleton{background:#e2e8f0;border-radius:8px;position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg,#0000,#ffffffa6,#0000);width:150%;height:100%;animation:1.2s infinite skeleton-shimmer;position:absolute;top:0;left:-150%}.skeleton-line{height:12px;margin-bottom:.45rem}.skeleton-line.short{width:38%}.skeleton-line.medium{width:58%}.skeleton-line.long{width:88%}.skeleton-icon{border-radius:12px;width:44px;height:44px}.skeleton-badge{width:56px;height:16px;display:inline-block}.skeleton-chart,.skeleton-map{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;justify-content:center;gap:.7rem;height:100%;padding:1rem;display:flex}@keyframes skeleton-shimmer{to{left:100%}}.chart-section{margin-bottom:2rem}.home-dashboard .card-header{border-bottom:1px solid #f1f5f9;margin-bottom:1.25rem;padding-bottom:.85rem}.home-dashboard .card-header h3{font-size:1.08rem;line-height:1.5}.home-dashboard .card-body{padding-top:.15rem}.chart-card .card-body{height:400px}.dashboard-map{border-radius:var(--radius-md);height:400px;overflow:hidden}.leaflet-popup-content-wrapper{text-align:right;border:1px solid #e2e8f0;border-radius:12px;font-family:Cairo,sans-serif;box-shadow:0 12px 24px #0f172a1f}.leaflet-container a.leaflet-popup-close-button{top:8px;left:8px;right:auto}.leaflet-popup-content{min-width:210px;margin:12px 14px}.popup-content{gap:.38rem;display:grid}.popup-title{color:var(--secondary-color);border-bottom:1px solid #eef2f7;margin-bottom:.2rem;padding-bottom:.4rem;font-weight:800;line-height:1.45}.popup-info{color:var(--text-secondary);font-size:.88rem;line-height:1.45}.popup-status{color:var(--secondary-color);font-weight:700}.popup-progress{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-top:.3rem;padding:.45rem .5rem}.popup-progress-head{color:#475569;justify-content:space-between;margin-bottom:.25rem;font-size:.78rem;display:flex}.progress-bar-bg{background:#e2e8f0;border-radius:999px;height:6px;overflow:hidden}.progress-bar-fill{border-radius:999px;height:100%}.risk-icon{background:var(--white);width:40px;height:40px;color:var(--secondary-color);box-shadow:var(--shadow-sm);border-radius:8px;justify-content:center;align-items:center;display:flex}.bottom-section,.risks-card{min-width:0}.risks-card-header{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.btn-add-risk{flex-shrink:0}.risks-card .risk-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.risks-card .risk-item{min-width:0}.risks-card .risk-item-content{flex:1;min-width:0}.risks-card .risk-details{min-width:0}.risks-card .risk-details h4{color:var(--secondary-color);overflow-wrap:anywhere;margin:0 0 .35rem;font-size:clamp(.82rem,2.3vw,.95rem);font-weight:700;line-height:1.45}.risks-card .risk-details p{color:var(--text-secondary);overflow-wrap:anywhere;margin:0;font-size:.84rem;line-height:1.55}.risks-card .risk-item .badge{writing-mode:horizontal-tb;white-space:nowrap;border-radius:8px;flex-shrink:0;align-self:center;padding:.35rem .75rem}.risk-item-actions{align-items:center;gap:.25rem;margin-inline-start:.35rem;display:inline-flex}.pagination{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;margin-top:1rem;display:flex}.pagination-pages{align-items:center;gap:.35rem;display:inline-flex}.pagination-page{width:34px;height:34px;color:var(--secondary-color);cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:8px}.pagination-page.active{border-color:var(--primary-color);background:color-mix(in srgb, var(--primary-color) 12%, white);font-weight:700}.pagination-page:disabled,.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.pagination-ellipsis{color:#94a3b8;padding:0 .2rem}.badge-green{background:var(--green-light);color:var(--green)}.modal{z-index:10000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#00000080;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-content{background:#fff;border-radius:16px;width:min(620px,100%);padding:1.5rem}.modal-content.wide{width:min(980px,100%)}.modal-header{border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;display:flex}.modal-actions{gap:.75rem;margin-top:1rem;display:flex}.form-group{margin-bottom:1rem}.form-group label{margin-bottom:.45rem;font-weight:600;display:block}.matrix-jobs-inputs{grid-template-columns:1fr 1fr;gap:1rem;max-height:460px;padding-inline-end:.5rem;display:grid;overflow:auto}@media (width<=900px){.matrix-jobs-inputs{grid-template-columns:1fr}.risks-card-header{flex-direction:column;align-items:flex-start}.risks-card .risk-list{grid-template-columns:1fr}.risks-card .risk-item{flex-direction:column;align-items:stretch;gap:.75rem;padding:1rem .95rem}.risks-card .risk-item .badge{text-align:center;box-sizing:border-box;white-space:normal;order:-1;align-self:stretch;width:100%;max-width:100%;line-height:1.35}.risks-card .risk-item-content{align-items:flex-start;width:100%}.risks-card .risk-icon{flex-shrink:0;width:44px;height:44px}}@media (width<=768px){.risks-card .card-header h3{font-size:clamp(.95rem,4.2vw,1.08rem);line-height:1.4}.home-dashboard .chart-card .card-body{height:min(360px,55vh)}.dashboard-map{height:min(360px,50vh)}}.documents-container{flex-direction:column;gap:1.5rem;display:flex}.documents-list-body{margin-top:1.25rem}.documents-list-body .pagination{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;margin-top:1rem;display:flex}.documents-list-body .pagination-pages{align-items:center;gap:.35rem;display:inline-flex}.documents-list-body .pagination-page{width:34px;height:34px;color:var(--secondary-color);cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:8px}.documents-list-body .pagination-page.active{border-color:var(--primary-color);background:color-mix(in srgb, var(--primary-color) 12%, white);font-weight:700}.documents-list-body .pagination-page:disabled,.documents-list-body .pagination-btn:disabled{opacity:.5;cursor:not-allowed}.documents-list-body .pagination-ellipsis{color:#94a3b8;padding:0 .2rem}.documents-table-scroll{-webkit-overflow-scrolling:touch;width:100%;max-width:100%;overflow-x:auto}.documents-toolbar{align-items:center;gap:1rem;display:flex}.documents-toolbar .form-control{flex:1}.table-actions{gap:.5rem;display:flex}.btn-danger{background-color:var(--red);color:var(--white)}.attachment-preview{color:var(--primary-color);align-items:center;gap:.4rem;margin-top:.1rem;font-size:.85rem;display:inline-flex}.attachment-link{color:#0284c7;cursor:pointer;text-underline-offset:2px;font:inherit;background:0 0;border:0;align-items:center;gap:.4rem;padding:0;text-decoration:underline;display:inline-flex}.attachment-link:hover{color:#0369a1}.documents-modal{max-width:500px}.documents-modal .form-actions{justify-content:flex-end;align-items:center;gap:.85rem;margin-top:1.75rem;display:flex}.document-file-input{display:none}.document-upload-field{color:#334155;cursor:pointer;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:12px;align-items:center;gap:.65rem;width:100%;padding:.85rem .9rem;transition:border-color .16s,background .16s;display:inline-flex}.document-upload-field:hover{background:#f1f5f9;border-color:#94a3b8}.document-upload-icon{color:#2563eb;background:#dbeafe;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.document-modal-attachment-preview{background:#eff6ff;border:1px solid #dbeafe;border-radius:10px;margin-top:.75rem;padding:.55rem .7rem}.document-existing-files{gap:.45rem;margin-bottom:.7rem;display:grid}.document-existing-file-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;justify-content:space-between;align-items:center;gap:.5rem;padding:.45rem .55rem;display:flex}.document-file-delete-btn{color:#dc2626;width:28px;height:28px}.document-file-delete-btn:hover{background:#fee2e2}.document-new-files-list{gap:.45rem;margin-top:.55rem;display:grid}.documents-muted-text{color:#64748b;font-size:.84rem}.documents-container .tracking-table{table-layout:fixed;border-collapse:separate;border-spacing:0;width:100%;min-width:100%}.documents-container .documents-responsive-table col.documents-col-count{width:4.75rem}.documents-container .documents-responsive-table col.documents-col-date{width:10rem}.documents-container .documents-responsive-table.documents-responsive-table--with-actions col.documents-col-attachment{width:22%}.documents-container .documents-responsive-table.documents-responsive-table--with-actions col.documents-col-actions{width:12.5rem;min-width:11.5rem}.documents-container .documents-responsive-table:not(.documents-responsive-table--with-actions) col.documents-col-attachment{width:26%}.documents-container .tracking-table thead th{color:#334155;white-space:nowrap;text-align:center;background:linear-gradient(#f8fafc 0%,#f1f5f9 100%);border-bottom:1px solid #dbe3ee;padding:1rem .75rem;font-size:.9rem;font-weight:800}.documents-container .tracking-table thead th:first-child{border-top-right-radius:12px}.documents-container .tracking-table thead th:last-child{border-top-left-radius:12px}.documents-container .tracking-table tbody td{vertical-align:middle;text-align:center;padding:.95rem .75rem}.documents-container .documents-col-name .documents-cell-value{word-break:break-word;overflow-wrap:anywhere;line-height:1.45;display:block}.documents-container .documents-cell-value--attachment{flex-wrap:wrap;justify-content:center;align-items:center;gap:.35rem;max-width:100%;display:inline-flex}.documents-container .documents-col-attachment .attachment-link,.documents-container .documents-col-attachment .attachment-preview{justify-content:center;margin-inline:auto}.documents-container .documents-col-actions .table-actions{flex-wrap:wrap;justify-content:center}.documents-container .tracking-table tbody tr{transition:background-color .16s}.documents-container .tracking-table tbody tr:hover{background:#f8fbfd}.documents-alert-modal{max-width:460px}.documents-alert-body{align-items:flex-start;gap:.9rem;padding:.35rem 0 .15rem;display:flex}.documents-alert-icon{color:#d97706;background:#fef3c7;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:inline-flex}.documents-alert-copy{gap:.35rem;display:grid}.documents-alert-copy strong{color:var(--secondary-color);font-size:1rem}.documents-alert-copy p{color:var(--text-secondary);margin:0;line-height:1.7}.documents-attachments-modal{z-index:1200;background:#0f172a8c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.documents-attachments-modal .modal-content{background:#fff;border-radius:16px;width:min(920px,96vw);max-height:88vh;overflow:auto;box-shadow:0 14px 38px #0206173d}.documents-attachments-modal .modal-header{border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding:.8rem 1rem;display:flex}.documents-attachments-modal .modal-body{padding:1rem}.documents-attachments-modal .attachment-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem;display:grid}.documents-attachments-modal .attachment-item{text-align:center;cursor:pointer;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:.75rem;transition:border-color .15s,background-color .15s}.documents-attachments-modal .attachment-item:hover{background:#f1f5f9;border-color:#cbd5e1}.documents-attachments-modal .file-name{color:#334155;overflow-wrap:anywhere;font-size:.82rem}@media (width<=900px){.documents-toolbar{flex-direction:column;align-items:stretch}.documents-modal .form-actions{justify-content:stretch}.documents-modal .form-actions .btn{flex:1}}@media (width<=768px){.documents-list-body .pagination{justify-content:center;gap:.5rem}.documents-list-body .pagination-btn{min-width:110px}.documents-list-body .pagination-pages{flex-wrap:wrap;order:-1;justify-content:center;width:100%}.documents-container .documents-table-scroll{overflow-x:visible}.documents-container .documents-responsive-table{display:block;table-layout:auto!important;width:100%!important;min-width:0!important}.documents-container .documents-responsive-table colgroup{display:none}.documents-container .documents-responsive-table thead{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.documents-container .documents-responsive-table tbody{width:100%;display:block}.documents-container .documents-responsive-table tbody tr{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--white);width:100%;box-shadow:var(--shadow-sm);margin-bottom:1rem;padding:.85rem 1rem;display:block}.documents-container .documents-responsive-table tbody td{text-align:right;border:none;border-bottom:1px dashed #e2e8f0;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:.75rem;width:100%;padding:.45rem 0;display:flex}.documents-container .documents-responsive-table tbody td:last-child{border-bottom:none;padding-bottom:0}.documents-container .documents-responsive-table tbody td:before{content:attr(data-label);color:var(--text-secondary);flex-shrink:0;padding-top:.2rem;font-size:.78rem;font-weight:800}.documents-container .documents-responsive-table tbody td .documents-cell-value{text-align:right;width:100%;min-width:0;display:block}.documents-container .documents-responsive-table tbody td .documents-cell-value--actions{width:100%}.documents-container .documents-responsive-table tbody td .documents-cell-value--actions .table-actions{flex-wrap:wrap;justify-content:flex-end;width:100%}.documents-container .documents-responsive-table tbody td .attachment-preview{justify-content:flex-end}.documents-container .documents-responsive-table tbody td .attachment-link{justify-content:flex-end;width:100%}}@media (width<=480px){.documents-container .documents-responsive-table tbody tr{padding:.75rem}.documents-container .documents-responsive-table tbody td{gap:.35rem}.documents-container .documents-responsive-table tbody td:before{padding-top:0}}.hierarchy-page .tree-container{border-radius:var(--radius-lg);border:1px solid var(--border-color);-webkit-overflow-scrolling:touch;background:#fff;margin-top:1rem;overflow-x:auto}.hierarchy-page .tree-header,.hierarchy-page .tree-row{grid-template-columns:minmax(340px,3fr) 1fr 1fr 1fr minmax(140px,1fr) .6fr;align-items:center;padding:.75rem 1rem;display:grid}.hierarchy-page .tree-header{border-bottom:2px solid var(--border-color);color:var(--secondary-color);background:#f8fafc;font-weight:700}.hierarchy-page .tree-row{border-bottom:1px solid #f1f5f9;transition:background .1s}.hierarchy-page .tree-row.level-0{background:#fffbf0;font-weight:700}.hierarchy-page .tree-row:hover{background:#f8fafc}.hierarchy-page .tree-cell{align-items:center;gap:.5rem;min-width:0;display:flex}.hierarchy-page .name-cell-inner{flex:1;align-items:center;gap:.5rem;min-width:0;display:flex}.hierarchy-page .actions-cell-inner{justify-content:flex-end;align-items:center;display:flex;position:relative}.hierarchy-page .name-cell .task-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.hierarchy-page .task-meta-icons{flex-shrink:0;align-items:center;gap:.35rem;margin-inline-start:.5rem;display:inline-flex}.hierarchy-page .toggle-btn{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;justify-content:center;align-items:center;width:20px;line-height:1;display:inline-flex}.hierarchy-page .toggle-btn svg{display:block}.hierarchy-page .type-icon{font-size:1.1rem}.hierarchy-page .type-milestone{color:#f59e0b}.hierarchy-page .type-category{color:#8b5cf6}.hierarchy-page .type-task{color:#3b82f6}.hierarchy-page .type-subtask{color:#64748b}.hierarchy-page .status-badge{white-space:nowrap;border-radius:20px;align-items:center;gap:6px;padding:4px 10px;font-size:.75rem;font-weight:600;display:inline-flex}.hierarchy-page .status-icon{flex-shrink:0;display:inline-flex}.hierarchy-page .status-icon-spin{animation:1.1s linear infinite hierarchyStatusSpin}@keyframes hierarchyStatusSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.hierarchy-page .st-completed{color:#1e40af;background:#dbeafe;border:1px solid #bfdbfe}.hierarchy-page .st-ontrack{color:#15803d;background:#dcfce7;border:1px solid #bbf7d0}.hierarchy-page .st-delayed{color:#b45309;background:#fef3c7;border:1px solid #fde68a}.hierarchy-page .st-cancelled{color:#b91c1c;background:#fee2e2;border:1px solid #fecaca}.hierarchy-page .st-pending{color:#64748b;background:#f1f5f9;border:1px solid #e2e8f0}.hierarchy-page .owner-tag,.hierarchy-page .task-counter{color:#475569;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:.85rem;display:inline-flex}.hierarchy-page .task-counter{background:#f1f5f9;border-radius:12px;font-size:.8rem}.hierarchy-page .mini-progress{background:#e2e8f0;border-radius:3px;width:100%;height:6px;overflow:hidden}.hierarchy-page .mini-progress .fill{height:100%}.hierarchy-page .progress-editable-value{cursor:pointer;font-weight:700}.hierarchy-page .progress-edit-input,.hierarchy-page .hierarchy-status-select{border:1px solid #cbd5e1;border-radius:8px;padding:.2rem .4rem;font-family:inherit;font-size:.8rem}.hierarchy-page .hierarchy-status-select{color:#0f172a;background:#fff;min-width:120px;height:30px}.hierarchy-page .hierarchy-status-select:focus,.hierarchy-page .progress-edit-input:focus{border-color:#3b82f6;outline:none;box-shadow:0 0 0 2px #3b82f633}.hierarchy-page .plan-cell{color:#64748b;font-size:.85rem}.hierarchy-page .progress-cell{width:100%}.hierarchy-page .progress-wrap{flex-direction:column;gap:4px;width:90%;display:flex}.hierarchy-page .progress-head{justify-content:space-between;font-size:.75rem;display:flex}.hierarchy-page .actions-cell{justify-content:flex-end;position:relative;overflow:visible}.hierarchy-page .actions-btn{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:10px;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.hierarchy-page .actions-btn:hover{background:#f8fafc}.hierarchy-page .milestone-summary-grid{flex-wrap:wrap;gap:1.5rem;margin-bottom:2rem;display:flex}.hierarchy-page .milestone-card{border-radius:var(--radius-lg);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);background:#fff;flex-direction:column;justify-content:center;align-items:center;padding:1.25rem;transition:transform .2s,box-shadow .2s;display:flex}.hierarchy-page .milestone-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.hierarchy-page .ms-info{text-align:center;flex-direction:column;align-items:center;width:100%;display:flex}.hierarchy-page .ms-title,.hierarchy-page .ms-status{text-align:center;width:100%}.hierarchy-page .card-half{width:calc(50% - .75rem)}.hierarchy-page .card-third{width:calc(33.333% - 1rem)}.hierarchy-page .donut-chart{border-radius:50%;width:100px;height:100px;margin-bottom:1rem;position:relative}.hierarchy-page .donut-inner{background:#fff;border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;font-weight:800;display:flex;position:absolute;top:10px;left:10px}.hierarchy-page .task-meta-btn{cursor:pointer;color:#334155;background:#fff;border:1px solid #e2e8f0;border-radius:999px;align-items:center;gap:.3rem;padding:2px 8px;font-family:inherit;font-size:.72rem;display:inline-flex}.hierarchy-page .task-meta-btn:hover{background:#f8fafc}.hierarchy-page .hierarchy-skeleton{background:#e2e8f0;border-radius:8px;position:relative;overflow:hidden}.hierarchy-page .hierarchy-skeleton:after{content:"";background:linear-gradient(90deg,#fff0 0%,#ffffffa6 50%,#fff0 100%);animation:1.3s infinite hierarchySkeletonShimmer;position:absolute;inset:0;transform:translate(-100%)}@keyframes hierarchySkeletonShimmer{to{transform:translate(100%)}}.hierarchy-page .hierarchy-skeleton-donut{border-radius:50%;width:100px;height:100px;margin-bottom:1rem}.hierarchy-page .hierarchy-skeleton-title{width:85%;height:16px;margin-bottom:.5rem}.hierarchy-page .hierarchy-skeleton-status{width:45%;height:14px}.hierarchy-page .hierarchy-skeleton-name{width:75%;height:16px}.hierarchy-page .hierarchy-skeleton-badge{border-radius:999px;width:88px;height:24px}.hierarchy-page .hierarchy-skeleton-owner{width:92px;height:24px}.hierarchy-page .hierarchy-skeleton-plan{width:78%;height:16px}.hierarchy-page .hierarchy-skeleton-progress-value{width:32%;height:12px;margin-bottom:6px}.hierarchy-page .hierarchy-skeleton-progress-fill{width:60%}.hierarchy-page .hierarchy-skeleton-action{border-radius:10px;width:34px;height:34px}.hierarchy-page .actions-menu{top:calc(100% + 6px);z-index:40;background:#fff;border:1px solid #e2e8f0;border-radius:12px;min-width:150px;padding:.35rem;position:absolute;inset-inline-end:0;box-shadow:0 10px 24px #0f172a24}.hierarchy-page .action-menu-item{cursor:pointer;color:#0f172a;background:0 0;border:0;border-radius:10px;align-items:center;gap:.5rem;width:100%;padding:.55rem .6rem;font-family:inherit;font-size:.85rem;display:flex}.hierarchy-page .action-menu-item:hover{background:#f1f5f9}.hierarchy-page .modal{z-index:10000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#00000080;justify-content:center;align-items:center;width:100%;height:100%;padding:1rem;display:flex;position:fixed;top:0;left:0}.hierarchy-page .modal-content{direction:rtl;background:#fff;border-radius:16px;width:100%;max-width:640px;padding:1.5rem;box-shadow:0 20px 25px -5px #0000001a}.hierarchy-page .hierarchy-view-modal{border:1px solid #e5e7eb;flex-direction:column;max-width:820px;max-height:min(82vh,760px);display:flex}.hierarchy-page .hierarchy-view-modal-header{border-bottom:1px solid #e2e8f0;margin-bottom:1rem;padding-bottom:.95rem}.hierarchy-page .hierarchy-view-modal-header h2{color:#1e293b;margin:0;font-size:1.1rem;line-height:1.6}.hierarchy-page .hierarchy-view-close{color:#64748b;border-radius:999px;width:30px;height:30px}.hierarchy-page .hierarchy-view-close:hover{color:#334155;background:#f1f5f9}.hierarchy-page .view-list{gap:.7rem;padding-inline-end:.2rem;display:grid;overflow-y:auto}.hierarchy-page .hierarchy-view-loading{color:#64748b;text-align:center;padding:1rem 0}.hierarchy-page .view-item{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:.75rem .85rem}.hierarchy-page .risk-view-item{border-right:4px solid #f59e0b}.hierarchy-page .comment-view-item{border-right:4px solid #3b82f6}.hierarchy-page .view-item-head.enhanced{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.45rem;display:flex}.hierarchy-page .risk-severity-pill,.hierarchy-page .comment-kind-pill{border-radius:999px;align-items:center;gap:.35rem;padding:3px 10px;font-size:.75rem;font-weight:700;display:inline-flex}.hierarchy-page .risk-severity-pill.severity-high{color:#b91c1c;background:#fee2e2}.hierarchy-page .risk-severity-pill.severity-medium{color:#b45309;background:#fef3c7}.hierarchy-page .risk-severity-pill.severity-low{color:#15803d;background:#dcfce7}.hierarchy-page .comment-kind-pill{color:#1d4ed8;background:#dbeafe}.hierarchy-page .view-item-date{color:#475569;align-items:center;gap:.35rem;font-size:.84rem;font-weight:600;display:inline-flex}.hierarchy-page .view-item-text{color:#1f2937;word-break:break-word;align-items:flex-start;gap:.45rem;margin:0;font-size:.92rem;line-height:1.7;display:flex}.hierarchy-page .view-item-leading-icon{color:#64748b;flex-shrink:0;margin-top:3px}@media (width<=900px){.hierarchy-page .tree-header,.hierarchy-page .tree-row{grid-template-columns:minmax(240px,2.3fr) 1fr 1fr 1fr 1fr .6fr;font-size:.85rem}.hierarchy-page .card-half,.hierarchy-page .card-third{width:100%}}@media (width<=768px){.hierarchy-page .tree-container{background:0 0;border:none;overflow-x:visible}.hierarchy-page .tree-header{display:none}.hierarchy-page .tree-row{border:1px solid var(--border-color);border-radius:var(--radius-md);background:#fff;margin-bottom:.85rem;padding:1rem;display:block}.hierarchy-page .tree-row.level-0{background:#fffbf0}.hierarchy-page .tree-row:hover{background:#fff}.hierarchy-page .tree-row.level-0:hover{background:#fffbf0}.hierarchy-page .tree-row .tree-cell{border-bottom:1px dashed #e2e8f0;grid-template-columns:minmax(6.25rem,38%) 1fr;align-items:center;gap:.25rem .65rem;min-width:0;padding:.5rem 0;display:grid}.hierarchy-page .tree-row .tree-cell:last-child{border-bottom:none}.hierarchy-page .tree-row .tree-cell:before{content:attr(data-label);color:var(--text-secondary);grid-column:1;font-size:.78rem;font-weight:700}.hierarchy-page .tree-row .tree-cell:not(.name-cell)>*{grid-column:2;justify-self:end}.hierarchy-page .tree-row .tree-cell.plan-cell>*{justify-self:stretch;width:100%}.hierarchy-page .tree-row .tree-cell.name-cell{border-bottom:1px solid #e2e8f0;grid-template-columns:1fr;margin-bottom:.35rem;padding-bottom:.65rem}.hierarchy-page .tree-row .tree-cell.name-cell .name-cell-inner{flex-wrap:wrap;grid-column:1;align-items:flex-start;width:100%}.hierarchy-page .tree-row .tree-cell .progress-wrap{width:100%;max-width:100%}.hierarchy-page .tree-row .tree-cell.actions-cell>.actions-cell-inner{grid-column:2;justify-content:flex-end;width:100%}}.auth-page{background:#0b1220;min-height:100vh}.auth-shell{grid-template-columns:1.05fr .95fr;min-height:100vh;display:grid}@media (width<=980px){.auth-shell{grid-template-columns:1fr}.auth-visual{order:-1;min-height:260px}}.auth-visual{background:radial-gradient(1200px 600px at 70% 30%,#0ea5e959,#0000 60%),radial-gradient(900px 600px at 20% 70%,#6366f159,#0000 55%),linear-gradient(135deg,#0b1220,#0a2a3c);place-items:center;padding:3rem 2rem;display:grid;position:relative;overflow:hidden}.auth-visual:before{content:"";filter:blur(30px);opacity:.9;background:conic-gradient(from 180deg,#0ea5e900,#0ea5e959,#6366f159,#14b8a659,#0ea5e900);animation:14s linear infinite auth-spin;position:absolute;inset:-60%}.auth-visual:after{content:"";pointer-events:none;background:radial-gradient(800px 400px at 50% 40%,#ffffff0f,#0000 65%);position:absolute;inset:0}@keyframes auth-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.visual-content{z-index:1;width:min(520px,100%);position:relative}.visual-logo{object-fit:contain;filter:drop-shadow(0 12px 24px #02061773);background:radial-gradient(circle at 35% 20%,#ffffff29,#ffffff05);border-radius:18px;width:min(320px,72%);height:auto;margin:0 auto;animation:5s ease-in-out infinite visual-logo-pulse;display:block;box-shadow:0 14px 30px #02061766,inset 0 1px #ffffff38}@keyframes visual-logo-pulse{0%{transform:translateY(0)scale(1)}50%{transform:translateY(-4px)scale(1.015)}to{transform:translateY(0)scale(1)}}.auth-form-side{background:#f8fafc;place-items:center;padding:2.5rem 1.5rem;display:grid}.auth-card{background:#fff;border:1px solid #e2e8f0e6;border-radius:20px;width:min(520px,100%);padding:2rem;box-shadow:0 18px 40px #0f172a1a}.auth-title{align-items:center;gap:.85rem;margin-bottom:.35rem;display:flex}.auth-title h1{color:#0f172a;margin:0;font-size:1.35rem;font-weight:900}.auth-subtitle{color:#64748b;margin-bottom:1.5rem;font-size:.95rem}.auth-form .field{margin-bottom:1rem}.auth-form label{color:#0f172a;margin-bottom:.5rem;font-size:.9rem;font-weight:800;display:block}.auth-form input{background:#fff;border:1px solid #e2e8f0;border-radius:14px;outline:none;width:100%;padding:.85rem .95rem;font-family:inherit;font-size:.95rem}.auth-form input:focus{border-color:#60a5fa;box-shadow:0 0 0 4px #60a5fa2e}.auth-password-input-wrap{position:relative}.auth-password-input-wrap input{padding-inline-end:2.85rem}.auth-password-toggle{inset-inline-end:.55rem;color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.auth-password-toggle:hover{color:#2563eb;background:#f1f5f9}.auth-password-toggle:focus-visible{outline-offset:2px;outline:2px solid #60a5fa59}.auth-actions{gap:.75rem;margin-top:1.15rem;display:flex}.auth-actions .btn{border-radius:14px;justify-content:center;width:100%;padding:.85rem 1rem}.auth-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:14px;margin-top:.75rem;padding:.75rem 1rem;font-size:.9rem}.auth-hint{color:#64748b;margin-top:1rem;font-size:.85rem;line-height:1.8}.auth-hint code{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:10px;padding:.1rem .35rem}.maps-page .map-layout{grid-template-columns:350px 1fr;gap:1.5rem;height:calc(100vh - 210px);display:grid}.maps-page .map-wrapper{border:1px solid var(--border-color);background:#fff;border-radius:12px;height:100%;position:relative;overflow:hidden}.maps-page .map-canvas{width:100%;height:100%}.maps-page .maps-map-loading{z-index:600;color:#475569;background:#fffffff2;border:1px solid #e2e8f0;border-radius:999px;padding:.35rem .75rem;font-size:.8rem;position:absolute;top:10px;left:50%;transform:translate(-50%)}.maps-page .sites-sidebar{border:1px solid var(--border-color);background:#fff;border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.maps-page .sites-header{border-bottom:1px solid var(--border-color);padding:1.1rem 1rem}.maps-page .sites-header h3{color:var(--secondary-color);margin-bottom:.55rem;font-size:1rem}.maps-page .maps-search-input{margin-bottom:.55rem}.maps-page .sites-list{flex:1;padding:.85rem;overflow-y:auto}.maps-page .maps-placeholder{text-align:center;color:#64748b;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:10px;margin-bottom:.75rem;padding:1rem}.maps-page .maps-error{color:var(--red);background:#fef2f2;border-color:#fecaca}.maps-page .site-card{border:1px solid var(--border-color);cursor:pointer;border-radius:8px;margin-bottom:.75rem;padding:.85rem;transition:all .2s}.maps-page .site-card:hover{border-color:var(--primary-color);background:#f8fafc}.maps-page .site-card.active{border-color:var(--primary-color);background:#eff6ff}.maps-page .site-header{justify-content:space-between;align-items:flex-start;gap:.65rem;margin-bottom:.5rem;display:flex}.maps-page .site-id{color:#1e293b;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:4px;width:fit-content;margin-bottom:.3rem;padding:2px 8px;font-size:.78rem;font-weight:700}.maps-page .site-name{font-size:.91rem;font-weight:700}.maps-page .site-status{white-space:nowrap;border-radius:10px;padding:2px 8px;font-size:.74rem}.maps-page .status-completed{background:var(--green-light);color:var(--green)}.maps-page .status-in-progress{background:var(--orange-light);color:var(--orange)}.maps-page .status-delayed{background:var(--red-light);color:var(--red)}.maps-page .status-pending{color:#475569;background:#e2e8f0}.maps-page .site-meta{color:#64748b;margin-bottom:.3rem;font-size:.82rem}.maps-page .site-phase{color:var(--primary-color);font-size:.8rem;font-weight:600}.maps-page .attach-link{color:#3b82f6;cursor:pointer;background:0 0;border:none;align-items:center;gap:.35rem;margin-top:.45rem;padding-top:.45rem;font-size:.8rem;font-weight:600;display:inline-flex}.maps-page .leaflet-popup-content-wrapper{text-align:right;border-radius:10px;font-family:Cairo,sans-serif}.maps-page .popup-title{color:#1e293b;border-bottom:1px solid #eee;margin-bottom:5px;padding-bottom:5px;font-weight:700}.maps-page .popup-id{color:#1e293b;white-space:nowrap;background:#e2e8f0;border:1px solid #cbd5e1;border-radius:6px;padding:4px 8px;font-size:.8rem;font-weight:700}.maps-page .popup-info{color:#64748b;margin-bottom:2px;font-size:.9rem}.maps-page .popup-progress{margin-top:8px}.maps-page .progress-bar-bg{background:#e2e8f0;border-radius:3px;height:6px;overflow:hidden}.maps-page .progress-bar-fill{height:100%}.attachments-modal{z-index:2000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.attachments-modal .modal-content{border-radius:var(--radius-lg);width:90%;max-width:600px;max-height:80vh;box-shadow:var(--shadow-md);background:#fff;flex-direction:column;display:flex;overflow:hidden}.attachments-modal .modal-header{border-bottom:1px solid var(--border-color);background:#f8fafc;justify-content:space-between;align-items:center;padding:1rem 1.15rem;display:flex}.attachments-modal .modal-body{padding:1rem;overflow-y:auto}.attachments-modal .attachment-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.8rem;display:grid}.attachments-modal .attachment-item{border:1px solid var(--border-color);text-align:center;cursor:pointer;background:#fff;border-radius:8px;padding:.75rem;transition:all .2s}.attachments-modal .attachment-item:hover{border-color:var(--primary-color);background:#f0f9ff}.attachments-modal .file-name{color:var(--secondary-color);word-break:break-all;font-size:.78rem}@media (width<=900px){.maps-page .map-layout{flex-direction:column-reverse;grid-template-columns:1fr;height:auto;min-height:min(70dvh,70vh);display:flex}.maps-page .sites-sidebar{height:min(40dvh,40vh);min-height:200px}.maps-page .map-wrapper{height:min(50dvh,50vh);min-height:220px}}.pip-dashboard-grid{gap:1.5rem;min-width:0;display:grid}.pip-dashboard-grid .card{min-width:0}.pip-skeleton{background:linear-gradient(90deg,#e2e8f0 25%,#f1f5f9 37%,#e2e8f0 63%) 0 0/400% 100%;border-radius:8px;animation:1.2s ease-in-out infinite pip-skeleton-shimmer;display:inline-block}.pip-skeleton-line{height:12px;display:block}.pip-skeleton-line-sm{width:34%}.pip-skeleton-line-md{width:56%}.pip-skeleton-line-lg{width:88%}.pip-skeleton-chip{border-radius:4px;width:16px;height:16px}.pip-skeleton-card{background:#fff;border:1px solid #e2e8f0;border-right:4px solid #cbd5e1;border-radius:8px;gap:.55rem;padding:.95rem 1rem;display:grid}.pip-skeleton-roadmap{gap:.5rem;display:grid}@keyframes pip-skeleton-shimmer{0%{background-position:100%}to{background-position:0}}.step-content h4{color:var(--secondary-color);overflow-wrap:anywhere;margin:0 0 .45rem;font-size:clamp(.95rem,2.5vw,1.05rem);font-weight:800;line-height:1.45}.step-desc{color:#475569;overflow-wrap:anywhere;margin:0;font-size:.88rem;line-height:1.65}.roadmap-alert .alert-icon,.roadmap-risk-alert .alert-icon{flex-shrink:0;margin-top:.1rem}.roadmap-alert .alert-text,.roadmap-risk-alert .alert-text{overflow-wrap:anywhere;flex:1;min-width:0;line-height:1.6}.pip-top-row{grid-template-columns:1fr 3fr;gap:1rem;display:grid}.pip-bottom-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.pip-card-title-row{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.pip-card-title{font-size:1rem;font-weight:800}.pip-task-list{flex-direction:column;gap:.5rem;display:flex}.pip-task-row{display:block}.task-date{color:#64748b;white-space:nowrap;background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:.15rem .5rem;font-size:.78rem;font-weight:700}.card-header-roadmap{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;display:flex}.roadmap-card-badge{border:1px solid #e2e8f0;border-radius:999px;justify-content:center;align-items:center;padding:.25rem .9rem;font-size:.8rem;font-weight:800;display:inline-flex}.roadmap-container{border-right:2px solid #e2e8f0;padding-right:1.5rem;position:relative}.roadmap-step{margin-bottom:1.5rem;position:relative}.step-marker{background:#fff;border:2px solid #cbd5e1;border-radius:999px;width:12px;height:12px;position:absolute;top:.25rem;right:-22px}.r-completed .step-marker{background:#3b82f6;border-color:#3b82f6}.r-active .step-marker{background:#10b981;border-color:#10b981}.r-delayed .step-marker{background:#f59e0b;border-color:#f59e0b}.step-meta{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.4rem;display:flex}.step-meta-line{color:#64748b;align-items:center;gap:.4rem;margin-bottom:.35rem;font-size:.82rem;display:flex}.meta-sep{color:#cbd5e1}.roadmap-status-select,.roadmap-status-badge{border:1px solid #e2e8f0;border-radius:999px;padding:.2rem .8rem;font-size:.8rem;font-weight:700}.roadmap-status-select.rs-completed,.roadmap-status-badge.rs-completed{color:#2563eb;background:#eff6ff;border-color:#bfdbfe}.roadmap-status-select.rs-active,.roadmap-status-badge.rs-active{color:#059669;background:#ecfdf5;border-color:#a7f3d0}.roadmap-status-select.rs-delayed,.roadmap-status-badge.rs-delayed{color:#d97706;background:#fffbeb;border-color:#fde68a}.roadmap-status-select.rs-pending,.roadmap-status-badge.rs-pending{color:#64748b;background:#f8fafc;border-color:#e2e8f0}.step-actions{gap:.35rem;display:inline-flex}.step-add-task-btn,.roadmap-note-btn,.roadmap-risk-btn,.roadmap-task-edit-btn,.task-edit-btn{color:#475569;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;justify-content:center;align-items:center;width:30px;height:30px;transition:all .16s;display:inline-flex}.step-add-task-btn:hover,.roadmap-note-btn:hover,.roadmap-risk-btn:hover,.roadmap-task-edit-btn:hover,.task-edit-btn:hover{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe;transform:translateY(-1px)}.roadmap-note-btn.has-note{border-color:#facc15;box-shadow:0 0 0 2px #facc1540}.roadmap-risk-btn.has-risk{border-color:#ef4444;box-shadow:0 0 0 2px #ef444433}.roadmap-task-list{gap:.45rem;margin:.5rem 0 0;padding:0;list-style:none;display:grid}.roadmap-task-row{background:#f8fafc;border:1px solid #e8eef4;border-radius:10px;align-items:center;gap:.65rem;padding:.5rem .75rem;display:flex}.roadmap-task-name{flex:1}.roadmap-task-date{color:#64748b;font-size:.75rem;font-weight:700}.roadmap-alert,.roadmap-risk-alert{border-radius:8px;gap:.75rem;margin-top:.75rem;padding:.85rem;display:flex}.roadmap-alert{background:#fffbeb;border:1px solid #fde68a}.roadmap-alert.alert-critical{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.checklist-item{border:1px solid #e2e8f0;border-right:4px solid var(--primary-color);color:#334155;background:#fff;border-radius:8px;flex-direction:column;align-items:stretch;gap:.7rem;min-width:0;padding:.95rem 1rem;font-size:.9rem;transition:background .2s;display:flex}.checklist-item:hover{background:#f8fafc}.checklist-item-main{align-items:flex-start;gap:.6rem;width:100%;min-width:0;display:flex}.checklist-item-text{overflow-wrap:anywhere;flex:1;min-width:0;line-height:1.75}.checklist-item-icon{color:var(--green);flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;display:inline-flex}.checklist-item-meta{border-top:1px dashed #e2e8f0;justify-content:space-between;align-items:center;gap:.45rem;width:100%;padding-top:.35rem;display:flex}.pip-top-row .task-edit-btn{color:#2563eb;background:linear-gradient(#fff 0%,#f0f9ff 55%,#e0f2fe 100%);border:1px solid #3b82f661;border-radius:10px;align-self:center;width:34px;height:34px;box-shadow:0 1px 2px #0f172a0f,inset 0 1px #fffffff2}.pip-top-row .task-edit-btn:hover{color:#1d4ed8;background:linear-gradient(#eff6ff 0%,#dbeafe 100%);border-color:#3b82f6;box-shadow:0 3px 10px #2563eb38,0 1px 2px #0f172a0f}.roadmap-alert.alert-info{color:#1e40af;background:#eff6ff;border-color:#dbeafe}.roadmap-risk-alert{background:#fff1f2;border:1px solid #fecdd3}.roadmap-notes-alert{background:#fefce8;border-color:#fde68a}.risk-list{gap:.3rem;margin:.35rem 0 0;padding:0;list-style:none;display:grid}.risk-list li{overflow-wrap:anywhere}.roadmap-risk-list,.roadmap-note-list{gap:.55rem}.roadmap-risk-item{background:#ffffffa6;border:1px solid #fbcfe8;border-radius:10px;justify-content:space-between;align-items:flex-start;gap:.55rem;padding:.55rem .65rem;display:flex}.roadmap-note-item{background:#ffffffbf;border:1px solid #fef08a;border-radius:10px;justify-content:space-between;align-items:flex-start;gap:.55rem;padding:.55rem .65rem;display:flex}.roadmap-risk-main{flex:1;min-width:0}.roadmap-note-text{color:#334155;overflow-wrap:anywhere;flex:1;min-width:0;margin:0;font-size:.82rem;line-height:1.55}.roadmap-risk-head{align-items:center;gap:.45rem;margin-bottom:.25rem;display:flex}.roadmap-risk-date{color:#64748b;font-size:.7rem;font-weight:700;line-height:1.2}.roadmap-risk-text{color:#334155;overflow-wrap:anywhere;margin:0;font-size:.82rem;line-height:1.55}.roadmap-risk-actions,.roadmap-note-actions{flex-shrink:0;align-self:flex-start}.risk-badge{border-radius:999px;align-items:center;gap:.35rem;padding:2px 8px;font-size:.72rem;font-weight:900;display:inline-flex}.risk-high{color:#991b1b;background:#fee2e2}.risk-medium{color:#9a3412;background:#ffedd5}.risk-low{color:#166534;background:#dcfce7}.pip-modal-backdrop{z-index:10000;background:#0f172a80;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.pip-modal{background:#fff;border:1px solid #e2e8f0;border-radius:16px;width:min(640px,100%);padding:1.25rem;box-shadow:0 20px 40px #00000026}.pip-modal-header{justify-content:space-between;margin-bottom:.75rem;display:flex}.pip-modal-subtitle{color:#64748b;margin-bottom:.5rem;font-size:.85rem}.pip-modal-close{cursor:pointer;background:0 0;border:1px solid #e2e8f0;border-radius:10px;width:36px;height:36px}.pip-modal input,.pip-modal textarea,.pip-modal select{border:1px solid #e2e8f0;border-radius:12px;width:100%;padding:.7rem .75rem;font-family:Cairo,sans-serif}.pip-modal textarea{resize:vertical;min-height:110px}.pip-modal-actions{gap:.75rem;margin-top:.75rem;display:flex}.platform-table-scroll{-webkit-overflow-scrolling:touch;width:100%;max-width:100%;overflow-x:auto}.status-cell{border:1px solid #cbd5e1;border-radius:4px;width:16px;height:16px;margin-inline:auto}.platform-table th{text-align:center;vertical-align:middle;color:#0f172a;background:linear-gradient(#f8fbff 0%,#f1f5f9 100%);padding:.9rem 1rem;font-size:.88rem;font-weight:800;line-height:1.5}.platform-table-heading{text-align:center;justify-content:center;align-items:center;min-height:48px;padding:0 .35rem;display:flex}.platform-task-cell{align-items:center;gap:.75rem;min-height:54px;padding:.3rem 0;display:flex}.platform-label-col{vertical-align:middle;padding-inline:.9rem .75rem}.platform-task-label{color:#334155;flex:1;min-width:0;font-weight:700;line-height:1.7}.platform-table tbody td{vertical-align:middle;padding-top:.7rem;padding-bottom:.7rem}.platform-table .status-col{vertical-align:middle;width:42px;min-width:42px;padding-inline:.55rem}.platform-table .status-col .status-cell{box-shadow:inset 0 1px #ffffffb3}.bg-green-status{background:#84cc16;border-color:#65a30d}.bg-blue-status{background:#0ea5e9;border-color:#0284c7}.bg-white-status{background:#f8fafc;border-color:#cbd5e1}.bg-yellow-status{background:#facc15;border-color:#ca8a04}.bg-red-status{background:#ef4444;border-color:#dc2626}@media (width<=1100px){.pip-top-row,.pip-bottom-row{grid-template-columns:1fr}.pip-dashboard-grid{gap:1rem}.pip-card-title-row{flex-wrap:wrap;align-items:flex-start;gap:.55rem}.pip-card-title{overflow-wrap:anywhere;flex:1;min-width:0;line-height:1.35}.card-header-roadmap{flex-direction:column;align-items:stretch;gap:.65rem}.card-header-roadmap h3{overflow-wrap:anywhere;margin:0;font-size:clamp(.92rem,4vw,1rem);line-height:1.45}.card-header-roadmap .roadmap-card-badge{align-self:flex-start}.roadmap-container{padding-inline-end:.85rem}.step-meta{flex-direction:column;align-items:stretch;gap:.65rem}.step-meta .roadmap-status-wrap,.step-meta .roadmap-status-select{box-sizing:border-box;width:100%;max-width:100%}.step-meta .roadmap-status-select{min-height:42px;padding:.35rem .75rem;font-size:.85rem}.step-meta .step-actions{flex-wrap:wrap;justify-content:flex-end;gap:.4rem;width:100%}.step-meta-line{flex-wrap:wrap}.checklist-item{padding:.85rem .9rem}.checklist-item-meta{flex-wrap:wrap;gap:.4rem}.roadmap-task-row{grid-template-rows:auto auto;grid-template-columns:auto 1fr auto;align-items:center;gap:.4rem .5rem;padding:.65rem .7rem;display:grid}.roadmap-task-row .roadmap-task-check{grid-area:1/1}.roadmap-task-row .roadmap-task-name{grid-area:1/2/auto/-1;min-width:0;line-height:1.45}.roadmap-task-row .roadmap-task-date{grid-area:2/2;justify-self:start}.roadmap-task-row .step-actions{flex-wrap:wrap;grid-area:2/3;justify-self:end;gap:.35rem;display:inline-flex}.roadmap-alert,.roadmap-risk-alert,.roadmap-alert.delayed-only,.roadmap-note-alert{flex-wrap:wrap;align-items:flex-start}.roadmap-risk-item,.roadmap-note-item{flex-wrap:wrap}.roadmap-risk-actions,.roadmap-note-actions{justify-content:flex-start;width:auto;margin-inline-start:auto}.platform-table-scroll{min-width:0;overflow-x:visible}.platform-table-scroll .platform-table{table-layout:auto;border-collapse:separate;border-spacing:0;width:100%;min-width:0;display:block}.platform-table-scroll .platform-table thead{width:100%;display:block}.platform-table-scroll .platform-table thead tr{flex-direction:column;gap:.55rem;margin-bottom:.85rem;display:flex}.platform-table-scroll .platform-table thead th{white-space:normal;vertical-align:middle;border:1px solid var(--border-color);box-sizing:border-box;border-radius:12px;width:100%;padding:.65rem .85rem;display:block}.platform-table-scroll .platform-table tbody{width:100%;display:block}.platform-table-scroll .platform-table tbody tr{box-sizing:border-box;border-bottom:1px solid #eef2f7;grid-template-rows:auto auto;grid-template-columns:minmax(38px,44px) 1fr;align-items:center;gap:.45rem .65rem;width:100%;padding:.85rem 0;display:grid}.platform-table-scroll .platform-table tbody td{vertical-align:middle;box-sizing:border-box;border:none;padding:.25rem}.platform-table-scroll .platform-table tbody td:first-child{grid-area:1/1;justify-self:center}.platform-table-scroll .platform-table tbody td:nth-child(2){grid-area:1/2;min-width:0}.platform-table-scroll .platform-table tbody td:nth-child(3){grid-area:2/1;justify-self:center}.platform-table-scroll .platform-table tbody td:nth-child(4){grid-area:2/2;min-width:0}.platform-table-scroll .platform-table .platform-task-cell{flex-wrap:wrap;justify-content:flex-start;align-items:flex-start;width:100%;min-height:0}.platform-table-scroll .platform-table .platform-task-label{overflow-wrap:anywhere;word-break:break-word;text-align:right;line-height:1.45}.platform-table-scroll .platform-table .platform-task-cell .task-edit-btn{flex-shrink:0}.pip-modal-backdrop{padding-inline:1rem;padding-block:max(1rem, env(safe-area-inset-top,0px)) max(1rem, env(safe-area-inset-bottom,0px));-webkit-overflow-scrolling:touch;justify-content:center;align-items:flex-start;overflow-y:auto}.pip-modal{box-sizing:border-box;flex-shrink:0;width:min(640px,100%);max-height:min(92dvh,100dvh - 2rem);margin-block:auto;overflow-y:auto}.pip-modal-actions{flex-wrap:wrap}.pip-modal-actions .btn{flex:1;justify-content:center;min-width:min(160px,100%)}}@media (width<=640px){.roadmap-task-row{grid-template-columns:auto 1fr}.roadmap-task-row .step-actions{grid-column:1/-1;justify-content:flex-end;justify-self:stretch}}.top-summary-grid{grid-template-columns:280px 1fr;align-items:stretch;gap:1.5rem;min-width:0;margin-bottom:2rem;display:grid}.stats-vertical-stack{flex-direction:column;justify-content:space-between;gap:1rem;display:flex}.stat-box{border:1px solid var(--border-color);text-align:center;background:#fff;border-radius:12px;flex-direction:column;flex:1;justify-content:center;padding:1.5rem;display:flex}.reports-grid{grid-template-columns:1fr 1fr;gap:1.5rem;min-width:0;margin-bottom:2rem;display:grid}.report-card{border:1px solid var(--border-color);background:#fff;border-radius:12px;min-width:0;padding:1.5rem;overflow:hidden;box-shadow:0 2px 4px #00000005}.report-card.full-width{grid-column:span 2}.card-title{color:var(--secondary-color);align-items:center;gap:8px;font-size:1.1rem;font-weight:700;display:flex}.chart-container{width:100%;height:300px;position:relative}.delayed-table{border-collapse:collapse;width:100%;min-width:760px}.delayed-table th,.delayed-table td{text-align:right;border-bottom:1px solid #f1f5f9;padding:1rem}.delayed-table th{color:var(--text-secondary);background:#f8fafc;font-weight:600}.status-badge{border-radius:20px;padding:4px 12px;font-size:.8rem;font-weight:600}.status-badge--completed{color:#0b6f90;background:#11a8d92e}.status-badge--ontrack{color:#4b7222;background:#7dba3a38}.status-badge--planned{color:#4b5563;background:#80808033}.status-badge--behind{color:#7a7400;background:#e5e50047}.status-badge--onhold{color:#a70000;background:#ed000029}.reports-table-wrap{-webkit-overflow-scrolling:touch;width:100%;max-width:100%;overflow-x:auto}@media (width<=1024px){.reports-grid{grid-template-columns:1fr}.report-card.full-width{grid-column:span 1}}@media (width<=768px){.top-summary-grid{grid-template-columns:1fr}}.change-password-page{justify-content:center;display:flex}.change-password-card{width:min(560px,100%);padding:1.5rem}.change-password-card-head{border-bottom:1px solid var(--border-color);align-items:flex-start;gap:.85rem;margin-bottom:1.25rem;padding-bottom:1rem;display:flex}.change-password-icon{color:#2563eb;background:#eff6ff;border-radius:14px;flex-shrink:0;place-items:center;width:46px;height:46px;display:grid}.change-password-card-head h2{color:var(--secondary-color);margin:0 0 .35rem;font-size:1.1rem}.change-password-card-head p{color:var(--text-secondary);margin:0;font-size:.9rem;line-height:1.6}.change-password-form{gap:.15rem;display:grid}.change-password-field{margin-bottom:.85rem}.change-password-field label{color:var(--secondary-color);margin-bottom:.45rem;font-size:.9rem;font-weight:700;display:block}.change-password-input-wrap{position:relative}.change-password-input-wrap input{padding:.75rem .9rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--white);width:100%;padding-inline-end:2.75rem;font-family:inherit;font-size:.95rem}.change-password-toggle{inset-inline-end:.55rem;color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.change-password-toggle:hover{color:var(--primary-color);background:#f1f5f9}.change-password-toggle:focus-visible{outline-offset:2px;outline:2px solid #0d8abc59}.change-password-input-wrap input:focus{border-color:var(--primary-color);outline:2px solid #0d8abc33}.change-password-input-wrap input[aria-invalid=true]{border-color:var(--red)}.change-password-field-error{color:var(--red);margin:.35rem 0 0;font-size:.82rem;line-height:1.5}.change-password-actions{margin-top:.5rem}.change-password-actions .btn{justify-content:center;width:100%}.change-password-form-error{background:var(--red-light);color:var(--red);border-radius:var(--radius-md);border:1px solid #fecaca;margin-top:.85rem;padding:.75rem .9rem;font-size:.9rem;line-height:1.6}@media (width<=768px){.change-password-card{padding:1.15rem}.change-password-card-head{flex-direction:column;align-items:stretch}}.site-progress-page{gap:1.5rem;min-width:0;display:grid}.site-progress-summary .stat-card{min-height:98px}.site-progress-skeleton{background:#e2e8f0;border-radius:8px;position:relative;overflow:hidden}.site-progress-skeleton:after{content:"";background:linear-gradient(90deg,#0000,#fff9,#0000);animation:1.2s infinite site-progress-skeleton-shimmer;position:absolute;inset:0;transform:translate(-100%)}.site-progress-skeleton-line{height:12px}.site-progress-skeleton-short{width:35%}.site-progress-skeleton-medium{width:55%}.site-progress-skeleton-long{width:82%}.site-progress-summary-skeleton-card{align-content:center;gap:.7rem;display:grid}.site-progress-table-skeleton-row{gap:.55rem;padding:.15rem 0;display:grid}.site-progress-chart-skeleton{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;align-content:start;gap:.75rem;height:100%;padding:1rem;display:grid}.site-progress-gauge-skeleton{gap:.55rem;width:100%;display:grid}.site-progress-skeleton-circle{border-radius:999px;width:78px;height:78px}@keyframes site-progress-skeleton-shimmer{to{transform:translate(100%)}}.filters-bar{border-radius:var(--radius-lg);border:1px solid var(--border-color);background:#fff;flex-wrap:wrap;align-items:center;gap:1rem;padding:1rem;display:flex}.filter-group{align-items:center;gap:.5rem;display:flex}.search-group{flex:1;min-width:min(420px,100%)}.search-icon{color:var(--text-secondary);font-size:1rem}.search-input{box-shadow:none!important;background:0 0!important;border:none!important;outline:none!important}.filter-label{color:var(--text-secondary);font-size:.9rem}.filter-select{border:1px solid var(--border-color);border-radius:var(--radius-md);padding:.5rem 2rem .5rem 1rem;font-family:inherit}.matrix-table-container{border-radius:var(--radius-lg);border:1px solid var(--border-color);-webkit-overflow-scrolling:touch;background:#fff;max-width:100%;overflow-x:auto}.matrix-table{border-collapse:collapse;width:100%;min-width:1260px;font-size:.9rem}.matrix-table th,.matrix-table td{text-align:right;border-bottom:1px solid var(--border-color);vertical-align:top;padding:.9rem}.matrix-table th{color:var(--secondary-color);white-space:nowrap;background:#f8fafc;font-size:.82rem;font-weight:700}.matrix-table th:nth-child(n+4):nth-child(-n+8),.matrix-table td:nth-child(n+4):nth-child(-n+8){min-width:118px}.matrix-table th:nth-child(2),.matrix-table td:nth-child(2){min-width:260px}.matrix-table th:nth-child(10),.matrix-table td:nth-child(10){min-width:150px}.matrix-table th:nth-child(11),.matrix-table td:nth-child(11){min-width:170px}.tooltip-th{cursor:help}.status-badge{border-radius:99px;align-items:center;padding:.25rem .75rem;font-size:.75rem;font-weight:600;display:inline-flex}.status-completed{background:var(--green-light);color:var(--green)}.status-progress{background:var(--orange-light);color:var(--orange)}.status-delayed{background:var(--red-light);color:var(--red)}.status-pending{color:#64748b;background:#f1f5f9}.stage-status-select{border:1px solid var(--border-color);cursor:pointer;border-radius:999px;min-width:84px;padding:.25rem .65rem;font-family:inherit;font-size:.75rem;font-weight:700;line-height:1.2}.site-name-cell{gap:.22rem;display:grid}.site-name-main{font-weight:700}.site-name-sub{color:var(--text-secondary);font-size:.78rem}.notes-cell{gap:.3rem;display:grid}.notes-preview{text-overflow:ellipsis;white-space:nowrap;max-width:120px;font-size:.8rem;overflow:hidden}.notes-actions{align-items:center;gap:.35rem;display:flex}.attachment-btn{align-items:center;gap:.25rem;display:inline-flex}.attachments-count{color:#3730a3;background:#eef2ff;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding-inline:4px;font-size:.72rem;font-weight:700;display:inline-flex}.progress-edit-input{border:1px solid var(--border-color);text-align:center;border-radius:8px;width:72px;padding:.25rem .4rem;font-family:inherit}.progress-display-btn{color:var(--text-primary);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:0;display:inline-flex}.progress-display-value{font-size:.8rem;font-weight:600}.progress-bar{background:#f1f5f9;border-radius:4px;height:8px;margin-top:4px;overflow:hidden}.progress-fill{border-radius:4px;height:100%}.sites-table-pagination{border-top:1px solid var(--border-color);background:#fafbfc;padding:.85rem 1rem}.sites-pagination-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.sites-pagination-info,.sites-pagination-pages{color:var(--text-secondary);font-size:.85rem}.sites-pagination-pages{color:var(--text-primary);font-weight:600}.sites-pagination-actions{align-items:center;gap:.5rem;display:flex}.section-container{border-radius:var(--radius-lg);border:1px solid var(--border-color);background:#fff;padding:1.25rem}.section-title{align-items:center;gap:10px;margin-bottom:1.1rem;font-size:1.1rem;font-weight:700;display:flex}.section-title-sub{color:var(--text-secondary);margin-inline-start:auto;font-size:.86rem;font-weight:500}.site-progress-charts{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.site-progress-heading{margin:0;margin-bottom:.25rem;font-size:1.35rem;font-weight:800}.regional-grid{grid-template-columns:290px 1fr;gap:1rem;display:grid}.region-list-container{border:1px solid var(--border-color);border-radius:12px;overflow:hidden}.list-header{border-bottom:1px solid var(--border-color);background:#f8fafc;padding:.8rem .95rem;font-weight:700}.region-list{max-height:340px;display:grid;overflow:auto}.region-item{text-align:right;cursor:pointer;color:var(--text-primary);background:#fff;border:0;border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:.72rem .95rem;font-family:inherit;transition:background-color .16s,color .16s;display:flex}.region-item-actions{align-items:center;gap:.3rem;display:inline-flex}.region-item.active{color:#1d4ed8;background:#eff6ff;font-weight:700}.region-chart-container{border:1px solid var(--border-color);border-radius:12px;min-width:0;padding:1rem;overflow:hidden}.region-chart-title{color:var(--secondary-color);margin:0 0 .8rem}.survey-grid{grid-template-columns:300px 1fr;gap:1rem;display:grid}.gauges-container{gap:.8rem;display:grid}.gauge-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;justify-content:space-between;align-items:center;padding:.75rem;display:flex}.gauge-info h4{margin:0;font-size:1rem}.gauge-info p{color:var(--text-secondary);margin:.2rem 0 0;font-size:.8rem}.gauge-chart-wrapper{width:78px;height:78px;position:relative}.gauge-percentage{color:var(--secondary-color);justify-content:center;align-items:center;font-size:.8rem;font-weight:800;display:flex;position:absolute;inset:0}.chart-wrapper{min-width:0;min-height:320px}.section-actions{gap:.4rem;margin-inline-start:auto;display:inline-flex}.site-progress-wide-modal{width:min(960px,100vw - 2rem);max-width:960px}.site-progress-modal-overlay{padding-block:max(1rem, env(safe-area-inset-top,0px)) max(1rem, env(safe-area-inset-bottom,0px));-webkit-overflow-scrolling:touch;justify-content:center;align-items:flex-start;overflow-y:auto}.site-progress-survey-modal{box-sizing:border-box;flex-direction:column;width:min(960px,100vw - 2rem);max-width:960px;max-height:min(92vh,100dvh - 2rem);margin-block:auto;display:flex;overflow:hidden}.site-progress-survey-modal-header{flex-shrink:0;align-items:flex-start;gap:.75rem}.site-progress-survey-modal-header h2{word-break:break-word;-webkit-hyphens:auto;hyphens:auto;flex:1;min-width:0;margin:0;font-size:clamp(.95rem,3.5vw,1.25rem);line-height:1.35}.site-progress-survey-modal-header .close-modal{flex-shrink:0;margin-block-start:.15rem}.site-progress-survey-modal-form{flex-direction:column;flex:1;min-height:0;display:flex}.site-progress-survey-modal-scroll{flex:1;min-height:0;padding-inline-end:.35rem;overflow-y:auto}.survey-cities-grid--in-survey-modal{max-height:none}.site-progress-survey-modal-actions{border-top:1px solid #e2e8f0;flex-shrink:0;margin-top:.75rem;padding-top:.75rem}.site-progress-add-site-modal{flex-direction:column;width:min(700px,100vw - 2rem);max-width:700px;max-height:calc(100vh - 2rem);display:flex}.site-progress-add-site-form{min-height:0;padding-inline-end:.35rem;overflow-y:auto}.site-progress-add-site-grid{grid-template-columns:1fr 1fr;gap:.8rem;display:grid}.site-progress-add-site-attachments{grid-column:1/-1}.site-progress-attachment-file-list{color:var(--text-secondary);gap:.25rem;margin:.5rem 0 0;padding:0;font-size:.85rem;list-style:none;display:grid}.site-progress-location-block{grid-column:1/-1}.site-progress-location-hint{color:var(--text-secondary);margin:.35rem 0 .65rem;font-size:.85rem;line-height:1.5}.site-progress-location-mode{flex-wrap:wrap;gap:.5rem;margin-bottom:.15rem;display:flex}.site-progress-location-mode-btn{border:1px solid var(--border-color,#e2e8f0);background:var(--bg-secondary,#f8fafc);min-width:140px;color:var(--text-primary,#0f172a);cursor:pointer;border-radius:8px;flex:1;padding:.45rem .75rem;font-family:inherit;font-size:.95rem;font-weight:600;line-height:1.2;transition:background .15s,border-color .15s,color .15s}.site-progress-location-mode-btn:hover{border-color:var(--primary-color,#2563eb);color:var(--primary-color,#2563eb)}.site-progress-location-mode-btn.is-active{border-color:var(--primary-color,#2563eb);background:color-mix(in srgb, var(--primary-color,#2563eb) 12%, transparent);color:var(--primary-color,#2563eb)}.site-progress-add-site-coords{grid-column:1/-1;grid-template-columns:1fr 1fr;gap:.8rem;display:grid}.survey-kpi-grid{grid-template-columns:repeat(3,1fr);gap:.8rem;margin-bottom:1rem;display:grid}.survey-cities-grid{grid-template-columns:repeat(2,1fr);gap:.8rem;max-height:420px;padding-inline-end:.4rem;display:grid;overflow:auto}.site-progress-field-stack{gap:.35rem;margin-top:.5rem;display:grid}.site-progress-mini-label{color:var(--text-secondary);margin:0;font-size:.8rem}.modal-actions{justify-content:flex-end;gap:.75rem;margin-top:1rem;display:flex}@media (width<=1000px){.site-progress-charts,.regional-grid,.survey-grid,.survey-kpi-grid,.survey-cities-grid{grid-template-columns:1fr}.matrix-table{min-width:1120px}.site-progress-add-site-grid,.site-progress-add-site-coords{grid-template-columns:1fr}}@media (width<=760px){.modal-actions{flex-wrap:wrap}.modal-actions .btn{flex:1}}
