:root{font-family:Tahoma,"Segoe UI",sans-serif;color:#12304a;background:#f3f6fa}*{box-sizing:border-box}body{margin:0}header{height:70px;background:#123b61;color:white;display:flex;align-items:center;gap:28px;padding:0 max(20px,calc((100% - 1400px)/2));box-shadow:0 2px 12px #183b5a30}header a{color:white;text-decoration:none}.brand{font-size:28px;font-weight:900}nav{display:flex;gap:22px;flex:1}header form{margin:0}.link{background:transparent;border:1px solid #ffffff55;color:white;padding:9px 16px;border-radius:9px}main{max-width:1400px;margin:28px auto;padding:0 20px;min-height:calc(100vh - 150px)}footer{text-align:center;color:#718096;padding:20px}.hero{background:linear-gradient(115deg,#123b61,#167c88);color:#fff;border-radius:22px;padding:34px;display:flex;justify-content:space-between;align-items:center}.hero h1{font-size:30px;margin:8px 0}.hero p{margin:0;color:#dcecf3}.online{background:#ffffff20;padding:10px 15px;border-radius:30px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:22px}.card{background:#fff;border-radius:17px;padding:25px;text-decoration:none;color:#12304a;box-shadow:0 7px 25px #173f6310;border:1px solid #e3ebf2}.card b{font-size:30px;display:block;color:#167c88}.card span{display:block;margin-top:10px}.card.warning b{color:#d97706}.page-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:20px}.page-head h1{margin:0 0 8px}.page-head p{margin:0;color:#64748b}.page-head form{display:flex;gap:8px}.page-head input,input{border:1px solid #cbd5e1;border-radius:10px;padding:12px;font:inherit}.page-head button,.primary{border:0;border-radius:10px;padding:12px 24px;background:#167c88;color:#fff;font:inherit}.table-wrap{background:#fff;border-radius:16px;overflow:auto;box-shadow:0 6px 25px #173f6310}table{width:100%;border-collapse:collapse;min-width:850px}th,td{text-align:right;padding:14px;border-bottom:1px solid #e8eef4}th{background:#eef4f8;color:#37536b}.badge{padding:6px 10px;border-radius:20px;font-size:12px}.badge.ok{background:#dcfce7;color:#166534}.badge.off{background:#e5e7eb;color:#4b5563}.danger{color:#b91c1c;font-weight:bold}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top right,#16818d,#123b61 45%,#0c263e)}.login-card{width:min(430px,calc(100% - 32px));background:#fff;border-radius:24px;padding:36px;box-shadow:0 25px 70px #0005}.login-card .mark{width:64px;height:64px;display:grid;place-items:center;border-radius:18px;background:#167c88;color:#fff;font-size:36px;font-weight:bold}.login-card h1{margin-bottom:5px}.login-card p{color:#64748b}.login-card label{display:grid;gap:8px;margin:18px 0}.login-card input{width:100%}.login-card .primary{width:100%;font-weight:bold}.error{color:#b91c1c}.empty{text-align:center;background:#fff;padding:60px;border-radius:20px}@media(max-width:850px){header{height:auto;flex-wrap:wrap;padding:15px 20px}nav{order:3;width:100%;overflow:auto}.cards{grid-template-columns:repeat(2,1fr)}.page-head{align-items:stretch;flex-direction:column;gap:15px}.hero{padding:24px}.hero h1{font-size:24px}}@media(max-width:480px){.cards{grid-template-columns:1fr}.online{display:none}main{padding:0 12px;margin-top:16px}}
.attendance-filter{display:flex;gap:12px;align-items:end;background:#fff;padding:18px;border-radius:16px}.attendance-filter label,.attendance-extra label{display:grid;gap:6px}.attendance-filter select{min-width:220px;border:1px solid #cbd5e1;border-radius:10px;padding:12px;font:inherit}.attendance-legend{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.attendance-legend span,.status-options span{display:block;padding:8px 11px;border-radius:9px}.attendance-list{display:grid;gap:12px}.attendance-row{background:#fff;border:2px solid transparent;border-radius:16px;padding:16px;display:grid;grid-template-columns:190px 1fr 280px;gap:16px;align-items:center}.attendance-row.not-set{border-color:#cbd5e1;background:#f8fafc}.person{display:grid;gap:5px}.person small{color:#64748b}.status-options{display:flex;gap:6px;flex-wrap:wrap}.status-options label{cursor:pointer}.status-options input{position:absolute;opacity:0}.status-options input:checked+span{outline:3px solid #123b61;box-shadow:0 0 0 2px #fff inset;font-weight:bold}.status-present span,.status-present{background:#dcfce7;color:#166534}.status-absent span,.status-absent{background:#fee2e2;color:#991b1b}.status-leave span,.status-leave{background:#dbeafe;color:#1e40af}.status-unpaid span,.status-unpaid{background:#ffedd5;color:#9a3412}.status-mission span,.status-mission{background:#e0e7ff;color:#3730a3}.status-holiday span,.status-holiday{background:#f3e8ff;color:#6b21a8}.status-sick span,.status-sick{background:#ccfbf1;color:#115e59}.status-empty{background:#e5e7eb;color:#475569}.attendance-extra{display:grid;grid-template-columns:90px 1fr;gap:8px}.attendance-extra input{width:100%;padding:8px}.sticky-actions{position:sticky;bottom:10px;margin-top:18px;background:#123b61;color:#fff;padding:15px 20px;border-radius:15px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 10px 30px #0004}.notice{padding:14px 18px;border-radius:12px;background:#e0f2fe;color:#075985;margin:14px 0}.notice.success{background:#dcfce7;color:#166534}.notice.error{background:#fee2e2;color:#991b1b}@media(max-width:1100px){.attendance-row{grid-template-columns:1fr}.attendance-extra{max-width:500px}}@media(max-width:650px){.attendance-filter{align-items:stretch;flex-direction:column}.status-options{display:grid;grid-template-columns:repeat(2,1fr)}.attendance-extra{grid-template-columns:1fr}.sticky-actions{gap:12px;align-items:stretch;flex-direction:column}}
.demo-users{margin-top:20px;padding:12px;background:#eef6f8;border-radius:12px;font-size:13px;line-height:1.9}.demo-users summary{cursor:pointer;font-weight:bold}.back-button{cursor:pointer;font:inherit;white-space:nowrap}.machine-print-sheet{page:record-sheet;background:#fff;max-width:900px;margin:20px auto;padding:28px;border:1px solid #9aa9b8;color:#111}.record-print-title{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid #173f63;padding:0 0 14px;background:#fff;color:#111;height:auto;box-shadow:none}.record-print-title h1{margin:0}.record-print-title p{margin:5px 0 0}.record-code{font-size:18px}.machine-print-sheet section{margin-top:16px;border:1px solid #8b99a7}.machine-print-sheet section h2{font-size:16px;margin:0;padding:7px 12px;background:#e7eef5}.record-signatures{display:flex;justify-content:space-around;color:#111;min-height:100px;align-items:end}@page record-sheet{size:A4 portrait;margin:10mm}@page personnel-sheet{size:A4 portrait;margin:10mm}.personnel-print-sheet{page:personnel-sheet}@media print{.machine-print-sheet,.personnel-print-sheet{border:0;margin:0;max-width:none;padding:0}.record-print-title{display:flex!important}.record-signatures{display:flex!important}.machine-print-sheet section{break-inside:avoid}.print-grid>div{font-size:11px;padding:7px}}
.head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.button{display:inline-block;text-decoration:none;border:1px solid #b8c8d6;background:#fff;color:#123b61;padding:11px 17px;border-radius:10px}.button.primary{background:#167c88;color:#fff;border-color:#167c88}.form-card{background:#fff;border-radius:18px;padding:22px;box-shadow:0 6px 25px #173f6310}.form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.form-grid label{display:grid;gap:7px}.form-grid input,.form-grid select{width:100%;border:1px solid #cbd5e1;border-radius:10px;padding:11px;font:inherit}.form-grid .wide{grid-column:span 2}.form-grid .check{display:flex;align-items:center;gap:8px}.form-grid .check input{width:auto}.top-gap{margin-top:20px}@media(max-width:1000px){.form-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.head-actions{align-items:stretch;flex-direction:column}}
.print-title,.print-signatures{display:none}.payroll-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.payroll-summary>div{background:#fff;border-radius:14px;padding:17px}.payroll-summary span{display:block;color:#64748b}.payroll-summary b{display:block;margin-top:8px;font-size:18px}.net-pay{font-weight:bold;color:#166534}.payroll-table table{min-width:1300px;font-size:12px}.payroll-table tfoot th{background:#dbeafe}.page-head form{display:flex;gap:8px;align-items:end}.page-head form label{display:grid;gap:4px}.page-head select{border:1px solid #cbd5e1;border-radius:10px;padding:11px;font:inherit}@media(max-width:850px){.payroll-summary{grid-template-columns:repeat(2,1fr)}}@media print{body{background:#fff;color:#000;font-family:Tahoma,sans-serif}header,footer,.no-print{display:none!important}main{max-width:none;margin:0;padding:0}.print-title{display:block;text-align:center;margin-bottom:12px}.payroll-summary{grid-template-columns:repeat(4,1fr);gap:5px}.payroll-summary>div{border:1px solid #777;border-radius:0;padding:7px}.table-wrap{box-shadow:none;overflow:visible}.payroll-table table{min-width:0;font-size:8px}.payroll-table th,.payroll-table td{padding:4px;border:1px solid #777}.badge{padding:2px;background:none!important;color:#000!important}.print-signatures{display:grid;grid-template-columns:repeat(3,1fr);gap:50px;margin-top:35px;text-align:center}@page{size:A4 landscape;margin:8mm}}
.section-title{margin-top:32px;border-right:5px solid #167c88;padding-right:12px}.machine-attendance{margin-bottom:90px}.action-buttons{display:flex;gap:8px}.action-buttons button{border:0;border-radius:10px;padding:11px 17px;font:inherit}.action-buttons .primary{background:#167c88;color:#fff}@media(max-width:650px){.action-buttons{flex-direction:column}}
.admin-dashboard-actions{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:22px}.dashboard-panel{background:#fff;border:1px solid #dbe5ed;border-radius:17px;overflow:hidden;box-shadow:0 7px 25px #173f6310}.dashboard-panel summary{cursor:pointer;padding:20px;font-size:18px;font-weight:bold;color:#123b61}.dashboard-panel .form-card{box-shadow:none;border-radius:0;border-top:1px solid #e5edf3}.dashboard-panel h2{font-size:16px;margin:20px 0 12px}.region-selector{display:flex;gap:12px;align-items:end;padding:20px}.region-selector label{display:grid;gap:7px;flex:1}.region-selector select{border:1px solid #cbd5e1;border-radius:10px;padding:12px;font:inherit}.dashboard-panel>p{padding:0 20px 20px;color:#64748b;line-height:1.9}.region-operations{background:#fff;margin-top:22px;padding:22px;border-radius:17px}.region-operations h2{margin-top:0}@media(max-width:900px){.admin-dashboard-actions{grid-template-columns:1fr}.region-selector{align-items:stretch;flex-direction:column}}
.monthly-attendance{grid-column:1/-1;display:flex;align-items:center;gap:5px;overflow-x:auto;padding-top:11px;border-top:1px solid #e7edf2;direction:rtl}.month-caption{white-space:nowrap;font-size:12px;color:#64748b;margin-left:5px}.month-day{width:25px;height:25px;min-width:25px;border-radius:7px;display:grid;place-items:center;text-decoration:none;font-size:11px;font-weight:bold;border:1px solid transparent}.month-day.day-present{background:#22c55e;color:#fff}.month-day.day-absent{background:#ef4444;color:#fff}.month-day.day-paid-leave{background:#3b82f6;color:#fff}.month-day.day-unpaid-leave{background:#f97316;color:#fff}.month-day.day-mission{background:#6366f1;color:#fff}.month-day.day-holiday{background:#a855f7;color:#fff}.month-day.day-sick{background:#14b8a6;color:#fff}.month-day.day-empty{background:#e5e7eb;color:#64748b}.month-day.day-future{background:#f8fafc;color:#cbd5e1;border-color:#e2e8f0}.month-day.selected{outline:3px solid #123b61;outline-offset:2px}
.global-month-days{background:#fff;border-radius:16px;padding:16px 18px;margin:16px 0;box-shadow:0 6px 25px #173f6310}.global-month-days .monthly-attendance{grid-column:auto;border-top:0;padding:12px 2px 5px}.month-days-title{display:flex;justify-content:space-between;gap:12px}.month-days-title small{color:#64748b}.month-day.day-partial{background:#f59e0b;color:#fff}.month-days-guide{display:flex;gap:16px;margin-top:10px;font-size:12px;color:#64748b}.month-days-guide span:before{content:"";display:inline-block;width:10px;height:10px;border-radius:3px;margin-left:5px}.month-days-guide .complete:before{background:#22c55e}.month-days-guide .partial:before{background:#f59e0b}.month-days-guide .empty-day:before{background:#e5e7eb}@media(max-width:650px){.month-days-title{flex-direction:column}.global-month-days{padding:13px}}
/* Iranian vehicle plate: visual order is left-to-right: 2 digits, letter, 3 digits, Iran serial. */
.plate-field{grid-column:span 2;display:flex;flex-direction:column;gap:.45rem}.iran-plate{display:grid;grid-template-columns:110px 130px 120px 110px;gap:6px;align-items:end;background:#fff;border:2px solid #183f65;border-radius:10px;padding:8px;width:max-content;max-width:100%}.iran-plate label{display:flex;flex-direction:column;gap:4px;text-align:center;margin:0}.iran-plate label+label{border-left:1px solid #9eb0bf;padding-left:6px}.iran-plate b{font-size:.8rem;direction:rtl}.iran-plate input,.iran-plate select{text-align:center;font-size:1.15rem;font-weight:700;min-width:0;width:100%}@media(max-width:700px){.plate-field{grid-column:span 1}.iran-plate{grid-template-columns:repeat(4,minmax(65px,1fr));width:100%}}
.personnel-print-sheet{background:#fff;max-width:1050px;margin:20px auto;padding:28px;border:1px solid #9aa9b8;color:#111}.print-title{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid #173f63;padding-bottom:14px}.personnel-photo{width:120px;height:150px;border:1px solid #555;display:flex;align-items:center;justify-content:center}.personnel-photo img{width:100%;height:100%;object-fit:cover}.personnel-print-sheet section{margin-top:14px;border:1px solid #8b99a7}.personnel-print-sheet section h2{font-size:16px;margin:0;padding:7px 12px;background:#e7eef5}.print-grid{display:grid;grid-template-columns:repeat(3,1fr)}.print-grid>div{padding:9px;border:1px solid #d2d9df;min-height:38px}.print-grid .wide{grid-column:span 2}.personnel-print-sheet footer{display:flex;justify-content:space-around;color:#111;min-height:90px;align-items:end}.print-actions{max-width:1050px;margin:15px auto;display:flex;gap:10px}@media print{.print-actions{display:none!important}.personnel-print-sheet{border:0;margin:0;max-width:none;padding:8mm}.personnel-print-sheet .print-title{display:flex!important}.personnel-print-sheet footer{display:flex!important}.print-grid>div{font-size:12px}.personnel-print-sheet section{break-inside:avoid}}
.personnel-print-sheet{page:personnel}
@page personnel{size:A4 portrait;margin:10mm}
.comparison-card{margin:1.25rem 0;padding:1rem;background:#fff;border-radius:18px}.difference-up{color:#b42318!important;font-weight:800;background:#fff0ee}.difference-down{color:#087443!important;font-weight:800;background:#eafaf1}.difference-same{color:#52606d;font-weight:700}.annual-payroll-chart{margin-top:1rem;padding:1rem;border:1px solid #dbe5ef;border-radius:14px;overflow-x:auto}.annual-payroll-chart svg{display:block;min-width:900px;width:100%;height:auto}.chart-axis{stroke:#91a4b7;stroke-width:2}.chart-bar{fill:#178a95}.chart-bar:hover{fill:#0d6470}.chart-month-labels{display:grid;grid-template-columns:repeat(12,minmax(70px,1fr));min-width:900px;direction:ltr;text-align:center}.chart-month-labels span{display:flex;flex-direction:column;gap:.2rem;color:#17324d}.chart-month-labels small{font-size:.72rem;color:#60758a}
.machine-capacity-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}.machine-shift-card{padding:1rem;border:1px solid #d6e1ec;border-radius:14px;background:#f8fbfd}.machine-shift-rows{display:grid;gap:.6rem;margin-top:.8rem}.machine-shift-rows label{padding:.55rem;background:#fff;border-radius:9px}

/* ARMAN visual identity */
body:not(.login-page){background-color:#f3f6fa;background-image:linear-gradient(rgba(243,246,250,.94),rgba(243,246,250,.94)),url("../images/arman-logo-gold-black.png");background-repeat:no-repeat;background-position:center 105px;background-size:min(72vw,760px);background-attachment:fixed}
header{height:78px;background:linear-gradient(110deg,#080808,#17120a 55%,#3a2910);border-bottom:1px solid #c99b46;box-shadow:0 2px 14px #0005}
.brand{display:flex;align-items:center;gap:10px;color:#f5d17b;font-size:22px}
.brand-logo{width:62px;height:62px;border-radius:12px;object-fit:cover;box-shadow:0 0 14px #d5a94c55}
main{min-height:calc(100vh - 158px)}
.hero{padding:24px 34px;gap:24px;background:linear-gradient(115deg,#0a0a0a,#33240d 70%,#6b4b17);border:1px solid #c99b46;box-shadow:0 10px 35px #18120a30}
.dashboard-logo{width:142px;height:142px;object-fit:cover;border-radius:22px;box-shadow:0 0 24px #d7ad5255}
.hero-content{flex:1}
.login-page{padding:24px}
.login-card{width:min(470px,calc(100% - 32px));padding:30px 38px 36px;text-align:center}
.login-logo{display:block;width:min(285px,90%);max-height:245px;object-fit:contain;margin:0 auto 10px}
.login-card label{text-align:right}
@media(max-width:850px){.brand-logo{width:52px;height:52px}.dashboard-logo{width:100px;height:100px}.hero{padding:20px}}
@media(max-width:480px){.hero{align-items:flex-start;gap:14px}.dashboard-logo{width:76px;height:76px;border-radius:14px}.login-card{padding:24px}.login-logo{width:230px}}
@media print{body:not(.login-page){background:#fff!important}.dashboard-logo{display:none!important}}
.password-change-card{max-width:520px;margin:45px auto}.password-change-card form,.password-change-card label{display:grid;gap:10px}.password-change-card label{margin:16px 0}
.mobile-shell{max-width:620px;margin:0 auto}.mobile-welcome{display:flex;align-items:center;gap:16px;background:linear-gradient(120deg,#090909,#3b2910);color:#fff;border:1px solid #c99b46;border-radius:24px;padding:18px}.mobile-welcome img{width:92px;height:92px;object-fit:cover;border-radius:18px}.mobile-welcome h1{margin:5px 0}.mobile-welcome p{margin:0;color:#f4d98f}.shift-card{margin-top:18px;background:#fff;border-radius:22px;padding:22px;box-shadow:0 8px 30px #173f6315}.shift-card h2{margin-top:0}.shift-card form button{width:100%;border:0;border-radius:16px;padding:18px;font:inherit;font-weight:900;color:#fff}.shift-start{background:#16845b}.shift-end{background:#b42318}.session-time{display:flex;justify-content:space-between;align-items:center;background:#eef6f8;border-radius:14px;padding:14px;margin:12px 0}.session-time b{font-size:22px}.geo-status{min-height:24px;margin-top:10px;color:#64748b}.mobile-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}.mobile-actions a{display:grid;place-items:center;gap:7px;min-height:115px;background:#fff;border:1px solid #e0e7ee;border-radius:20px;text-decoration:none;color:#12304a;box-shadow:0 7px 24px #173f6310;text-align:center}.mobile-actions b{font-size:30px;color:#b5842d}@media(max-width:480px){.mobile-shell{margin:-6px 0 0}.mobile-welcome img{width:76px;height:76px}.mobile-actions{grid-template-columns:repeat(2,1fr)}}
