@import url('https://fonts.googleapis.com/css2?family=Cairo:wght@400;500;600;700;800&display=swap');
*{box-sizing:border-box}body{margin:0;background:#f7f7f5;color:#1f2937;font-family:Cairo,Tahoma,Arial,sans-serif}.app-shell{display:flex;min-height:100vh}.sidebar{width:255px;background:#fff;border-left:1px solid #eadfca;box-shadow:-3px 0 20px rgba(160,120,30,.07);padding:18px 14px;position:fixed;right:0;top:0;bottom:0;z-index:10}.brand{display:flex;gap:10px;align-items:center;padding:8px 8px 20px;border-bottom:1px solid #eee4d2}.brand-icon{font-size:30px}.brand strong{display:block;color:#9b6b0a;font-size:18px}.brand span{color:#9b6b0a;font-weight:700}.sidebar nav{margin-top:18px}.nav-item{display:flex;gap:12px;align-items:center;text-decoration:none;color:#25304d;padding:13px 14px;border-radius:12px;margin:6px 0;font-weight:700}.nav-item:hover,.nav-item.active{background:#b98618;color:#fff}.side-footer{position:absolute;bottom:22px;right:18px;left:18px;text-align:center;color:#b98a28;font-size:12px}.main{margin-right:255px;width:calc(100% - 255px);min-width:0;padding:0 24px 30px}.topbar{min-height:78px;background:#fff;border-bottom:1px solid #eee5d5;display:flex;justify-content:space-between;align-items:center;padding:0 8px;margin:0 -24px 20px 0}.topbar h1{margin:0;font-size:21px;color:#263352}.topbar small{color:#8a8f9a}.admin-box{display:flex;gap:12px;align-items:center;font-size:13px}.admin-box a{color:#9a6b0b;text-decoration:none}.flash{padding:12px 16px;border-radius:10px;margin-bottom:16px;background:#eef7ee;color:#176b2b}.flash.error{background:#fff0f0;color:#9b2020}.toolbar{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:15px}.btn{border:0;border-radius:9px;padding:10px 16px;font-family:inherit;font-weight:700;text-decoration:none;display:inline-block;cursor:pointer}.btn-gold{background:#b88617;color:#fff}.btn-light{background:#fff;border:1px solid #e4dccd;color:#263352}.btn-danger{background:#c94a4a;color:#fff}.btn-green{background:#3d9b62;color:#fff}.card{background:#fff;border:1px solid #e8e1d4;border-radius:14px;box-shadow:0 5px 20px rgba(0,0,0,.04);padding:18px}.grid-cards{display:grid;grid-template-columns:repeat(7,minmax(110px,1fr));gap:12px}.stat-card{background:#fff;border:1px solid #e5dfd2;border-radius:14px;padding:15px;text-align:center;min-height:105px}.stat-card .label{font-size:13px;color:#555}.stat-card .value{font-size:28px;font-weight:800;margin-top:8px;color:#24304d}.dashboard-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:16px;margin-top:16px}.dashboard-grid .wide{grid-column:1/-1}.section-title{font-size:16px;font-weight:800;color:#9b6b0a;margin:0 0 12px}.table-wrap{width:100%;max-width:100%;max-height:calc(100vh - 285px);overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;border:1px solid #e1ddd4;border-radius:10px;background:#fff;position:relative}.table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0}.table th,.table td{border-right:1px solid #ddd8ce;border-bottom:1px solid #ddd8ce}.table th:first-child,.table td:first-child{border-right:0}.table th,.table td{border:1px solid #ddd8ce;padding:9px 8px;text-align:center;font-size:13px}.table th{background:#e9edf8;color:#263352;font-weight:800}.table td.name{text-align:right;white-space:nowrap}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.field label{display:block;font-weight:700;margin-bottom:6px;font-size:13px}.field input,.field select,.field textarea{width:100%;padding:11px;border:1px solid #d9d5cc;border-radius:9px;font:inherit;background:#fff}.field textarea{min-height:90px}.status{display:inline-block;padding:4px 7px;border-radius:6px;font-weight:700;font-size:11px}.status-present{background:#dff5e4;color:#087b2f}.status-absent{background:#ffe1e1;color:#b51f2b}.status-late{background:#fff0c9;color:#9a6900}.status-leave{background:#fff5b8;color:#8d6a00}.status-sick{background:#eadcff;color:#6534a4}.status-remote{background:#dceaff;color:#245ca8}.status-mission{background:#e2e5ea;color:#56606e}/* سجل الحضور: التمرير يكون داخل الجدول فقط */
.attendance-table{min-width:max-content;direction:rtl}
.attendance-table th{position:sticky;top:0;z-index:10;height:58px;white-space:nowrap}.attendance-table thead{position:sticky;top:0;z-index:10}
.attendance-table thead th{background:#e9edf8}
.attendance-table .day{width:44px;min-width:44px;max-width:44px;vertical-align:middle}.attendance-table .day-name,.attendance-table .day-number{display:block;line-height:1.15}.attendance-table .day-name{font-size:10px;font-weight:600;margin-bottom:3px}.attendance-table .day-number{font-size:15px;font-weight:700}
.attendance-table td.day{padding:3px;width:44px;min-width:44px;max-width:44px}
.attendance-table select{font:inherit;font-size:12px;border:1px solid transparent;border-radius:6px;background:#fff;min-width:38px;width:38px;height:34px;text-align:center;text-align-last:center;cursor:pointer;padding:0}
/* تثبيت بيانات الموظف أثناء تحريك أيام الشهر */
.attendance-table th:nth-child(1),.attendance-table td:nth-child(1){position:sticky;right:0;z-index:7;width:42px;min-width:42px;background:#fff}
.attendance-table th:nth-child(2),.attendance-table td:nth-child(2){position:sticky;right:42px;z-index:7;width:100px;min-width:100px;background:#fff}
.attendance-table th:nth-child(3),.attendance-table td:nth-child(3){position:sticky;right:142px;z-index:7;width:180px;min-width:180px;background:#fff}
.attendance-table thead th:nth-child(1),.attendance-table thead th:nth-child(2),.attendance-table thead th:nth-child(3){background:#e9edf8;z-index:10}
.attendance-table th.weekend,.attendance-table td.weekend{background:#f5faff}.attendance-table td.weekend select{background:transparent}.attendance-table td.status-filled{background:color-mix(in srgb,var(--status-color,#b88617) 16%,#fff)}.attendance-table td.status-filled select{background:color-mix(in srgb,var(--status-color,#b88617) 20%,#fff);border-color:color-mix(in srgb,var(--status-color,#b88617) 55%,#fff)}.attendance-table tbody tr:hover td.weekend{background:#f5faff}.attendance-table tbody tr:hover td{background:#faf8f2}
.attendance-table tbody tr:hover td:nth-child(1),.attendance-table tbody tr:hover td:nth-child(2),.attendance-table tbody tr:hover td:nth-child(3){background:#faf8f2}
.attendance-table .name{text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.attendance-table th:nth-last-child(-n+5),.attendance-table td:nth-last-child(-n+5){width:62px;min-width:62px}
@media(max-width:760px){.attendance-table th:nth-child(2),.attendance-table td:nth-child(2){width:88px;min-width:88px;right:42px}.attendance-table th:nth-child(3),.attendance-table td:nth-child(3){width:150px;min-width:150px;right:130px}.attendance-table th:nth-child(1),.attendance-table td:nth-child(1){width:42px;min-width:42px}.attendance-table .day{width:42px;min-width:42px;max-width:42px}.attendance-table .day-name{font-size:9px}.attendance-table .day-number{font-size:14px}.attendance-table td.day{width:42px;min-width:42px;max-width:42px}.table-wrap{border-radius:8px}}
.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#fff,#f3eee4)}.login-box{width:min(420px,92vw);background:#fff;padding:32px;border-radius:18px;border:1px solid #eadfca;box-shadow:0 15px 40px rgba(100,70,20,.12)}.login-box h1{text-align:center;color:#9b6b0a;margin:0 0 8px}.login-box p{text-align:center;color:#777}.login-box .field{margin:14px 0}.login-box .btn{width:100%}.muted{color:#777}.pagination{display:flex;gap:6px;justify-content:center;margin-top:14px}.pagination a{padding:7px 12px;border:1px solid #ddd;border-radius:7px;text-decoration:none;color:#333}.pagination a.active{background:#b88617;color:#fff}.kpi-note{font-size:11px;color:#888}.chart{height:260px;display:flex;align-items:end;gap:10px;padding:15px;border-top:1px solid #eee}.bar-group{flex:1;height:100%;display:flex;align-items:end;gap:3px}.bar{flex:1;background:#b88617;border-radius:5px 5px 0 0;min-height:2px}.bar.abs{background:#dc6b70}.bar.late{background:#e8aa39}.month-label{font-size:10px;text-align:center;color:#555}.legend{display:flex;gap:14px;justify-content:center;font-size:11px}.dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-left:4px}.dot.abs{background:#dc6b70}.dot.late{background:#e8aa39}.attendance-legend{display:flex;align-items:center;gap:8px 14px;justify-content:flex-start;flex-wrap:wrap;margin:0 0 12px;padding:9px 11px;background:#fbfaf7;border:1px solid #eee5d5;border-radius:10px;font-size:12px}.legend-title{color:#8f650f;white-space:nowrap}.legend-item{display:inline-flex;align-items:center;gap:6px;padding:4px 7px;border:1px solid #e5dfd2;border-radius:7px;background:#fff;white-space:nowrap}.legend-color{display:inline-block;width:15px;height:15px;border-radius:4px;border:2px solid;flex:0 0 15px}.empty{padding:30px;text-align:center;color:#888}
@media(max-width:1100px){.grid-cards{grid-template-columns:repeat(4,1fr)}.dashboard-grid{grid-template-columns:1fr}.sidebar{width:220px}.main{margin-right:220px;width:calc(100% - 220px)}}@media(max-width:760px){.sidebar{position:static;width:100%;height:auto}.app-shell{display:block}.main{margin-right:0;width:100%;padding:0 12px 20px}.topbar{margin:0 -12px 15px;padding:12px;flex-direction:column;align-items:flex-start;gap:8px}.grid-cards{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}.side-footer{position:static;margin-top:20px}.sidebar nav{display:grid;grid-template-columns:1fr 1fr}.nav-item{font-size:12px}}

/* لوحة المعلومات الجديدة */
.dashboard-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.date-picker{display:flex;align-items:center;gap:7px}.date-picker input{border:1px solid #e4dccd;border-radius:9px;padding:10px 12px;font:inherit;background:#fff;color:#263352}.dashboard-head{background:#fff;border:1px solid #e8e1d4;border-radius:14px;padding:18px;margin-bottom:14px}.dashboard-head h2{margin:0;color:#9b6b0a;font-size:21px}.dashboard-head p{margin:5px 0 0;color:#777;font-size:13px}.dashboard-cards{grid-template-columns:repeat(auto-fit,minmax(145px,1fr));}.dashboard-cards .stat-card{position:relative;overflow:hidden}.dynamic-card{border-top:4px solid var(--card-color)}.card-status-dot{width:12px;height:12px;border-radius:50%;background:var(--card-color);margin:0 auto 5px}.dynamic-card .value{color:var(--card-color)}.total-card{border-top:4px solid #263352}.dashboard-note{background:#fff9e9;border:1px solid #ead9ad;color:#735a17;border-radius:10px;padding:10px 14px;margin:14px 0}.dashboard-visuals{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.dashboard-chart-card{min-height:350px}.donut-wrap{display:flex;align-items:center;justify-content:center;gap:35px;min-height:285px}.donut{width:245px;height:245px;border-radius:50%;background:var(--donut);display:grid;place-items:center;position:relative;flex:0 0 auto}.donut:after{content:"";position:absolute;inset:52px;background:#fff;border-radius:50%}.donut-center{position:relative;z-index:2;text-align:center;color:#263352}.donut-center strong{display:block;font-size:34px}.donut-center span{font-size:12px}.donut-legend{min-width:210px}.donut-legend>div{display:grid;grid-template-columns:16px 1fr 35px 45px;align-items:center;gap:7px;margin:9px 0;font-size:12px}.donut-legend i{width:13px;height:13px;border-radius:4px}.donut-legend b{text-align:center}.donut-legend small{text-align:left;color:#777}.status-bars{padding:10px 4px}.status-bar-row{display:grid;grid-template-columns:130px 1fr 45px;gap:10px;align-items:center;margin:18px 0;font-size:12px}.status-bar-track{height:17px;background:#f0eee9;border-radius:10px;overflow:hidden}.status-bar-track i{display:block;height:100%;border-radius:10px;min-width:2px}.status-bar-row>b{text-align:center}.report-toolbar{background:#fff;border:1px solid #e8e1d4;border-radius:14px;padding:14px;margin-bottom:16px}.report-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.report-filters select,.report-filters input{border:1px solid #d9d5cc;border-radius:8px;padding:10px;font:inherit;background:#fff}.report-header{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;border-bottom:1px solid #eee5d5;padding-bottom:12px;margin-bottom:12px}.report-header h2{margin:0;color:#9b6b0a}.report-header p{margin:4px 0;color:#777;font-size:12px}.report-meta{font-size:11px;color:#777}.report-summary{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:12px;color:#555;font-size:13px}.report-table-wrap{max-height:calc(100vh - 330px)}.report-status{display:inline-block;padding:4px 9px;border-radius:6px;font-size:11px;font-weight:700;background-color:var(--report-status-color,#eee)!important;-webkit-print-color-adjust:exact;print-color-adjust:exact;color:#1f2937}.no-print{display:block}
@media(max-width:900px){.dashboard-visuals{grid-template-columns:1fr}.donut-wrap{flex-wrap:wrap}.donut{width:210px;height:210px}.donut:after{inset:45px}.status-bar-row{grid-template-columns:105px 1fr 35px}}
.monthly-toolbar{background:#fff;border:1px solid #e8e1d4;border-radius:14px;padding:14px;margin-bottom:16px}.monthly-toolbar .report-filters label{font-weight:700;color:#555;font-size:13px}.monthly-report{padding:22px}.monthly-report-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;border-bottom:1px solid #eee5d5;padding-bottom:14px;margin-bottom:16px}.monthly-report-head h2{margin:0;color:#9b6b0a;font-size:22px}.monthly-report-head p{margin:5px 0 0;color:#777}.monthly-stat-grid{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px;margin-bottom:16px}.monthly-stat{background:#faf8f2;border:1px solid #e7ddc8;border-radius:12px;padding:14px;text-align:center}.monthly-stat span{display:block;color:#666;font-size:12px}.monthly-stat b{display:block;color:#263352;font-size:24px;margin-top:5px}.monthly-two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.monthly-section{box-shadow:none}.monthly-section h3{margin:0 0 14px;color:#263352;font-size:16px}.monthly-status-list{display:flex;flex-direction:column;gap:9px}.monthly-status-row{display:grid;grid-template-columns:14px 1fr 70px 55px;align-items:center;gap:8px;border-bottom:1px solid #f0ece4;padding:7px 0}.monthly-dot{width:11px;height:11px;border-radius:50%;display:block}.monthly-status-row b{text-align:center}.monthly-status-row small{text-align:left;color:#777}.monthly-indicators{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.monthly-indicators div{background:#f8f8f6;border:1px solid #ebe6dc;border-radius:10px;padding:12px;text-align:center}.monthly-indicators span{display:block;color:#666;font-size:11px}.monthly-indicators b{display:block;color:#263352;font-size:20px;margin-top:4px}.monthly-note{margin-top:12px;padding:10px 12px;border-radius:9px;background:#fff9e9;border:1px solid #ead9ad;color:#735a17;font-size:12px}.monthly-table-wrap{max-height:none}.monthly-table-wrap small{color:#777;font-size:10px}@media(max-width:1100px){.monthly-stat-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.monthly-two-col{grid-template-columns:1fr}.monthly-stat-grid{grid-template-columns:repeat(2,1fr)}.monthly-report{padding:14px}.monthly-report-head{flex-direction:column}.monthly-indicators{grid-template-columns:1fr}.monthly-toolbar .report-filters{flex-direction:column;align-items:stretch}.monthly-toolbar .report-filters .btn,.monthly-toolbar .report-filters select{width:100%}}
@media print{*{-webkit-print-color-adjust:exact;print-color-adjust:exact}body{background:#fff}.sidebar,.topbar,.no-print,.dashboard-toolbar,.flash{display:none!important}.main{margin:0!important;width:100%!important;padding:0!important}.card,.report-card{box-shadow:none;border:0}.report-table-wrap{max-height:none;overflow:visible}.report-header{margin-top:0}.table th,.table td{font-size:11px;padding:6px}.report-table{width:100%;min-width:0}.side-footer{display:none}}
