*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,-apple-system,sans-serif;font-size:14px;background:#f5f5f5;color:#111}.app-wrap,.page-wrap{padding:1.5rem}.app-content{margin-left:192px}.topnav{background:#111;color:#fff;padding:.85rem 1.5rem;display:flex;align-items:center;gap:1.75rem;font-size:14px;position:sticky;top:0;z-index:100}.topnav-brand{font-weight:600;letter-spacing:.02em}.topnav a{color:#aaa;text-decoration:none;transition:color .15s;font-size:15px;padding:6px 2px}.topnav a:hover,.topnav a.active{color:#fff}.topnav-right{margin-left:auto;display:flex;align-items:center;gap:12px}.topnav-user{font-size:12px;color:#666}.card{background:#fff;border:1px solid #e0e0e0;border-radius:12px;padding:1.25rem;margin-bottom:1rem}.card-title{font-size:12px;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.05em;margin-bottom:1rem}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:1rem}.stats-5{grid-template-columns:repeat(5,1fr)}.stat{background:#fff;border:1px solid #e0e0e0;border-radius:10px;padding:1rem}.stat-label{font-size:11px;color:#999;margin-bottom:4px}.stat-value{font-size:22px;font-weight:600}.stat-value.green{color:#166534}.stat-value.amber{color:#92400e}.stat-value.red{color:#991b1b}.stat-value.blue{color:#1e3a8a}.tabs{display:flex;gap:4px;margin-bottom:1.5rem;flex-wrap:wrap}.tab{padding:7px 16px;border:1px solid #e0e0e0;border-radius:8px;background:#fff;cursor:pointer;font-size:13px;color:#555;transition:background .1s}.tab:hover{background:#f5f5f5}.tab.active{background:#111;color:#fff;border-color:#111}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.form-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.form-section{font-size:11px;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.05em;margin:1rem 0 .5rem;grid-column:1/-1;border-top:1px solid #f0f0f0;padding-top:1rem}.form-section:first-child{margin-top:0;border-top:none;padding-top:0}.field{margin-bottom:10px}.field.full{grid-column:1/-1}.field label{display:block;font-size:12px;color:#555;margin-bottom:3px}.field input,.field select,.field textarea{width:100%;padding:7px 10px;border:1px solid #ddd;border-radius:6px;font-size:13px;background:#fff;color:#111;transition:border-color .1s}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:#666}.field textarea{resize:vertical;min-height:60px}.btn{padding:7px 14px;border:1px solid #ddd;border-radius:6px;background:#fff;cursor:pointer;font-size:13px;color:#111;transition:background .1s}.btn:hover{background:#f5f5f5}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:#111;color:#fff;border-color:#111}.btn-primary:hover:not(:disabled){background:#333}.btn-success{background:#166534;color:#fff;border-color:#166534}.btn-success:hover:not(:disabled){background:#14532d}.btn-warning{background:#92400e;color:#fff;border-color:#92400e}.btn-warning:hover:not(:disabled){background:#78350f}.btn-danger{color:#991b1b;border-color:#fecaca}.btn-danger:hover:not(:disabled){background:#fff5f5}.btn-perm-del{color:#7f1d1d;border-color:#fca5a5;font-size:11px}.btn-full{width:100%;margin-top:8px}.btn-sm{padding:4px 8px;font-size:12px}.msg{font-size:12px;padding:7px 10px;border-radius:6px;margin-top:8px}.msg-ok{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.msg-err{background:#fff5f5;color:#991b1b;border:1px solid #fecaca}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:1rem}.toolbar input,.toolbar select{padding:7px 10px;border:1px solid #ddd;border-radius:6px;font-size:13px}.toolbar input{flex:1;min-width:140px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;font-size:11px;font-weight:600;color:#888;padding:6px 10px;border-bottom:1px solid #e0e0e0;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}td{padding:8px 10px;border-bottom:1px solid #f5f5f5;vertical-align:middle}tr:last-child td{border-bottom:none}tr:hover td{background:#fafafa}tr.clickable:hover td{cursor:pointer}.actions{display:flex;gap:4px}.badge{display:inline-flex;align-items:center;font-size:11px;padding:3px 9px;border-radius:99px;font-weight:500;white-space:nowrap;line-height:1.2}.badge-role-owner{background:#ede9fe;color:#4c1d95}.badge-role-admin{background:#dbeafe;color:#1e3a8a}.badge-role-project_manager{background:#d1fae5;color:#064e3b}.badge-role-hr_manager{background:#fef3c7;color:#78350f}.badge-role-site_engineer{background:#f1f5f9;color:#334155}.badge-role-supervisor{background:#fce7f3;color:#831843}.badge-active{background:#dcfce7;color:#166534}.badge-on_leave{background:#fef9c3;color:#854d0e}.badge-terminated,.badge-inactive{background:#fee2e2;color:#991b1b}.badge-doc-ok{background:#dcfce7;color:#166534}.badge-doc-expiring{background:#fef9c3;color:#854d0e}.badge-doc-expired{background:#fee2e2;color:#991b1b}.badge-doc-missing{background:#f1f5f9;color:#64748b}.badge-direct{background:#ede9fe;color:#4c1d95}.badge-subcontractor{background:#fce7f3;color:#831843}.badge-site-active{background:#dcfce7;color:#166534}.badge-site-planning{background:#dbeafe;color:#1e3a8a}.badge-site-on_hold{background:#fef9c3;color:#854d0e}.badge-site-completed{background:#f1f5f9;color:#475569}.badge-att-present{background:#dcfce7;color:#166534}.badge-att-completed{background:#dbeafe;color:#1e3a8a}.badge-att-absent{background:#fee2e2;color:#991b1b}.badge-att-on_leave{background:#fef9c3;color:#854d0e}.badge-att-half_day{background:#e0f2fe;color:#075985}.badge-att-off_day{background:#f1f5f9;color:#475569}.badge-att-public_holiday{background:#fce7f3;color:#831843}.badge-flag-ot{background:#fef3c7;color:#78350f;font-size:10px;padding:1px 6px}.badge-flag-late{background:#fee2e2;color:#991b1b;font-size:10px;padding:1px 6px}.badge-flag-noout{background:#fce7f3;color:#831843;font-size:10px;padding:1px 6px}.avatar{width:28px;height:28px;border-radius:50%;background:#e0e7ff;color:#3730a3;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;flex-shrink:0}.name-cell{display:flex;align-items:center;gap:8px}.mono{font-family:monospace;font-size:11px;color:#aaa}.pagination{display:flex;align-items:center;gap:6px;margin-top:1rem;flex-wrap:wrap}.pagination .page-info{font-size:12px;color:#666;margin:0 6px}.pg-btn{min-width:32px;padding:5px 8px;font-size:12px}.pg-btn.current{background:#111;color:#fff;border-color:#111}.overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:100}.overlay.open{display:block}.panel{position:fixed;right:0;top:0;bottom:0;width:540px;background:#fff;z-index:101;overflow-y:auto;box-shadow:-4px 0 24px #0000001a;display:none}.panel.open{display:block}.panel-top{padding:1.5rem;border-bottom:1px solid #f0f0f0}.panel-body{padding:1.5rem}.panel-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:1rem}.panel-header h2{font-size:16px;font-weight:600;flex:1}.panel-section{font-size:11px;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.05em;margin:1.25rem 0 .75rem;border-top:1px solid #f0f0f0;padding-top:1.25rem}.panel-section:first-of-type{border-top:none;padding-top:0;margin-top:0}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px}.di-label{font-size:11px;color:#999;margin-bottom:2px}.di-value{font-size:13px;font-weight:500}.detail-item-full{grid-column:1/-1}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-card{background:#fff;border:1px solid #e0e0e0;border-radius:12px;padding:2rem;width:360px}.login-card h1{font-size:18px;font-weight:600;margin-bottom:4px}.login-card p{font-size:13px;color:#666;margin-bottom:1.5rem}.empty{color:#999;text-align:center;padding:2rem;font-size:13px}.doc-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid #f5f5f5;font-size:13px}.doc-row:last-child{border-bottom:none}.worker-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid #f5f5f5}.worker-row:last-child{border-bottom:none}.sites-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.site-card{background:#fff;border:1px solid #e0e0e0;border-radius:12px;padding:1.25rem;cursor:pointer;transition:border-color .15s}.site-card:hover{border-color:#999}.site-icon{width:36px;height:36px;border-radius:8px;background:#f1f5f9;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.hc-card{background:#fff;border:1px solid #e0e0e0;border-radius:12px;padding:1.25rem}.hc-bar-wrap{height:6px;background:#f1f5f9;border-radius:99px;margin:8px 0;overflow:hidden}.hc-bar{height:100%;border-radius:99px;transition:width .3s}.hc-row{display:flex;justify-content:space-between;font-size:12px;color:#555;margin-bottom:4px}.bulk-list{max-height:240px;overflow-y:auto;border:1px solid #ddd;border-radius:6px;padding:8px;margin-top:4px}.bulk-item{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:13px;cursor:pointer}.search-dropdown{position:absolute;background:#fff;border:1px solid #ddd;border-radius:6px;z-index:999;min-width:280px;box-shadow:0 4px 12px #0000001a;max-height:200px;overflow-y:auto}.search-dropdown-item{padding:8px 12px;cursor:pointer;font-size:13px;border-bottom:1px solid #f5f5f5}.search-dropdown-item:last-child{border-bottom:none}.search-dropdown-item:hover{background:#f5f5f5}.mobile-list{display:none}@media (max-width: 640px){.topnav{position:fixed;bottom:0;left:0;right:0;top:auto;flex-wrap:nowrap;overflow:visible;gap:.5rem;padding:.6rem .75rem;min-height:52px;z-index:200}.topnav-brand{font-size:15px;font-weight:700;flex-shrink:0}.topnav a{font-size:13px;padding:6px 4px;flex-shrink:0;white-space:nowrap}.topnav-right{flex-shrink:0;gap:8px}.topnav-user{display:none}.topnav select{font-size:12px;padding:3px 20px 3px 6px}.nav-dropdown{top:auto!important;bottom:calc(100% + 6px)}.page-wrap{padding:1rem .75rem;padding-bottom:80px}.app-content{margin-right:0;padding-bottom:60px}.stats,.stats-5{grid-template-columns:1fr 1fr}.tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}.tab{white-space:nowrap;flex-shrink:0}.dashboard-grid{grid-template-columns:1fr!important}.form-grid,.form-grid-3,.grid-2{grid-template-columns:1fr}.form-section,.field.full{grid-column:1}.toolbar{flex-direction:column;align-items:stretch}.toolbar input,.toolbar select{width:100%;min-width:unset}.table-wrap table{display:none}.table-wrap:after{content:"";display:none}.mobile-list{display:flex;flex-direction:column;gap:8px}.mobile-card{background:#fff;border:1px solid #e0e0e0;border-radius:10px;padding:12px;cursor:pointer}.mobile-card:hover{border-color:#999}.mobile-card-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.mobile-card-row:last-child{margin-bottom:0}.mobile-card-title{font-weight:600;font-size:13px}.mobile-card-sub{font-size:12px;color:#666}.panel{width:100%;left:0}.sites-grid,.headcount-grid{grid-template-columns:1fr}.issue-detail-grid{grid-template-columns:1fr!important}.issue-sidebar{position:static!important}.pagination{gap:4px}.pg-btn{min-width:28px;padding:4px 6px;font-size:11px}.page-info{font-size:11px}.nav-sidebar{display:none!important}.app-content{margin-left:0}.topnav-right .btn-sm{font-size:12px;padding:6px 10px}.btn{min-height:44px;padding:10px 16px}.btn-sm{min-height:40px;padding:8px 12px;font-size:13px}input,select,textarea{min-height:44px;font-size:16px!important}.tab{min-height:44px;padding:10px 14px}}#root,body{direction:inherit}[dir=rtl] .topnav,[dir=rtl] .topnav-right{flex-direction:row-reverse}[dir=rtl] .page-wrap{direction:rtl;text-align:right}[dir=rtl] h1,[dir=rtl] h2,[dir=rtl] h3,[dir=rtl] .stat-label,[dir=rtl] .stat-value{text-align:right}[dir=rtl] select,[dir=rtl] input{text-align:right;direction:rtl}[dir=rtl] .card{direction:rtl}[dir=rtl] .card-title{text-align:right}[dir=rtl] .detail-grid{direction:rtl}[dir=rtl] .di-label,[dir=rtl] .di-value{text-align:right}[dir=rtl] .form-grid{direction:rtl}[dir=rtl] .field label{text-align:right;display:block}[dir=rtl] .field input,[dir=rtl] .field select,[dir=rtl] .field textarea{text-align:right;direction:rtl}[dir=rtl] .tabs{flex-direction:row-reverse}[dir=rtl] .stats{direction:rtl}[dir=rtl] .worker-row{flex-direction:row-reverse}[dir=rtl] .breadcrumb,[dir=rtl] table{direction:rtl}[dir=rtl] th,[dir=rtl] td{text-align:right}[dir=rtl] .btn{direction:rtl}[dir=rtl] .empty{text-align:right}[lang=ar] body,[lang=ar] *,[lang=ur] body,[lang=ur] *{font-family:Segoe UI,Tahoma,Arial Unicode MS,sans-serif}.site-detail-overview{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 640px){.site-detail-overview{grid-template-columns:1fr}}@media (max-width: 640px){.comment-form textarea,.note-form textarea{font-size:16px!important}}.worker-header{display:flex;align-items:center;gap:16px}.worker-header-actions{display:flex;gap:8px;flex-wrap:wrap;flex-shrink:0}.worker-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 640px){.worker-header{flex-direction:column;align-items:flex-start}.worker-header-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.worker-header-actions .btn{width:100%;justify-content:center}.worker-detail-grid{grid-template-columns:1fr}}.space-active{background:#3b82f6!important;color:#fff!important}.snag-card{cursor:pointer;margin-bottom:10px}.snag-card:hover{box-shadow:0 2px 8px #00000014}.snag-item{margin-bottom:8px}.snag-form-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}@media (max-width: 640px){.snag-form-grid{grid-template-columns:1fr}}.snag-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}@media (max-width: 640px){.snag-actions{display:grid;grid-template-columns:1fr 1fr}.snag-actions .btn{justify-content:center;text-align:center}}.kpi-tooltip{display:none;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:#1f2937;color:#f9fafb;font-size:12px;padding:8px 12px;border-radius:8px;white-space:nowrap;box-shadow:0 4px 16px #00000040;z-index:300;line-height:1.5;pointer-events:none}.kpi-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#1f2937}.kpi-tooltip.kpi-tooltip-down{bottom:auto;top:calc(100% + 8px)}.kpi-tooltip.kpi-tooltip-down:after{top:auto;bottom:100%;border-top-color:transparent;border-bottom-color:#1f2937}div:hover>.kpi-tooltip{display:block}
