@import url('https://fonts.googleapis.com/css2?family=Vazirmatn:wght@400;500;600;700&display=swap');
:root{--ink:#19233a;--muted:#71809a;--line:#e9edf4;--blue:#365fe9;--blue-light:#edf2ff;--red:#fff0f1;--redink:#d14755;--weekend:#f2f4f7;--bg:#f7f8fc}*{box-sizing:border-box}body{margin:0;background:var(--bg);font-family:Vazirmatn,Tahoma,sans-serif;color:var(--ink);font-size:14px}.top{height:64px;background:#fff;padding:0 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.top>div{display:flex;gap:8px;align-items:center}.top small{color:var(--muted);font-size:11px;border-right:1px solid var(--line);padding-right:8px}.logo{background:var(--blue);color:#fff;border-radius:10px;padding:4px 8px;font-size:18px}button{font:inherit;border:1px solid #dce2ed;background:#fff;color:var(--ink);border-radius:9px;padding:10px 13px;cursor:pointer;min-height:40px}button:hover{background:#f6f8fc}.primary{background:var(--blue);color:#fff;border-color:var(--blue)}.primary:hover{background:#244bd0}.icon{border:0;font-size:22px;padding:3px}nav{display:flex;background:white;overflow:auto;padding:7px 12px;gap:6px;border-bottom:1px solid var(--line)}nav button{white-space:nowrap;border:0;padding:8px 12px;min-height:auto;color:var(--muted)}nav button.active{background:var(--blue-light);color:var(--blue);font-weight:bold}main{max-width:1320px;margin:auto;padding:16px}.page{display:none}.page.active{display:block}.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px}.toolbar{display:flex;gap:12px;justify-content:space-between;align-items:flex-end;flex-wrap:wrap}.selectors,.actions{display:flex;gap:8px;align-items:end;flex-wrap:wrap}label{display:grid;gap:5px;font-size:12px;color:var(--muted);font-weight:600}select,input{font:inherit;color:var(--ink);border:1px solid #dce2ed;border-radius:8px;background:#fff;padding:9px;min-height:40px}select{min-width:94px}.dashboard{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin:14px 0}.stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px}.stat strong{display:block;font-size:21px;color:var(--blue);margin-bottom:3px}.stat span{font-size:11px;color:var(--muted)}.calendar-wrap{padding:0;overflow:hidden}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.weekdays{background:#f8f9fc;border-bottom:1px solid var(--line)}.weekdays span{text-align:center;font-size:10px;font-weight:bold;padding:10px 1px;color:var(--muted)}.calendar-grid{direction:rtl}.blank,.day{min-height:105px;border-left:1px solid var(--line);border-bottom:1px solid var(--line)}.day{padding:7px 5px;background:white;cursor:pointer;overflow:hidden}.day:hover.working{box-shadow:inset 0 0 0 2px #bdcbff}.day.weekend{background:var(--weekend);cursor:not-allowed}.day.holiday{background:var(--red);cursor:not-allowed}.date{font-weight:bold;font-size:14px;display:flex;justify-content:space-between}.dow{font-size:9px;color:var(--muted);font-weight:normal}.status{font-size:9px;color:var(--redink);line-height:1.35;min-height:15px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.weekend .status{color:#7b8597}.people{display:flex;flex-wrap:wrap;gap:3px;margin-top:4px}.person{font-size:10px;background:var(--blue-light);color:#254abe;padding:2px 5px;border-radius:5px;white-space:nowrap}.hint{color:var(--muted);font-size:12px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:17px}.section-head h1{font-size:20px;margin:0 0 4px}.section-head p{color:var(--muted);margin:0;font-size:12px}.employee-list,.report-list{display:grid;gap:10px}.employee,.report{background:white;border:1px solid var(--line);border-radius:13px;padding:14px;display:flex;align-items:center;justify-content:space-between;gap:10px}.avatar{background:#eaf0ff;color:var(--blue);border-radius:50%;width:38px;height:38px;display:grid;place-items:center;font-weight:bold}.employee-info{display:flex;align-items:center;gap:10px;flex:1}.employee-meta{color:var(--muted);font-size:12px;margin-top:3px}.danger{color:#d33;border-color:#ffd2d2}.settings-grid{display:grid;gap:15px}.settings-grid h2{font-size:16px;margin:0 0 5px}.muted{font-size:12px;color:var(--muted);margin-top:0}.checks{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;margin:14px 0}.checks label,.switchline{display:flex;align-items:center;gap:5px}.checks input,.switchline input{min-height:auto}.settings-grid form{display:grid;gap:12px}.holiday-form{border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:9px}.holiday-item{padding:9px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:8px;font-size:12px}.holiday-item small{color:var(--muted)}.report{display:block}.report-top{display:flex;justify-content:space-between;align-items:center}.report h3{margin:0;font-size:16px}.progress{height:8px;background:#edf0f5;border-radius:8px;overflow:hidden;margin:11px 0 8px}.progress i{display:block;height:100%;background:var(--blue);border-radius:inherit}.report-values{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;font-size:12px;color:var(--muted)}.report-values b{display:block;color:var(--ink);font-size:14px;margin-top:2px}.modal{position:fixed;inset:0;background:#18213a88;display:grid;place-items:end center;padding:0;z-index:4}.modal.hidden{display:none}.modal-box{background:#fff;width:100%;max-width:480px;border-radius:20px 20px 0 0;padding:22px;max-height:85vh;overflow:auto}.modal-box h2{font-size:18px;margin:0 0 15px}.close{float:left;border:0;font-size:24px;padding:0;min-height:20px}.assign-row{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--line);align-items:center}.assign-row label{display:flex;align-items:center;gap:8px;color:var(--ink);font-size:14px}.assign-row input{min-height:auto}.modal-actions{display:flex;gap:8px;margin-top:15px}.empty{background:#fff;border:1px dashed #ccd4e1;border-radius:12px;padding:25px;text-align:center;color:var(--muted)}#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#15213c;color:#fff;padding:10px 16px;border-radius:9px;opacity:0;transition:.2s;pointer-events:none;z-index:8}#toast.show{opacity:1}@media(min-width:700px){nav{justify-content:center}.dashboard{grid-template-columns:repeat(5,1fr)}.settings-grid{grid-template-columns:1fr 1fr}.calendar-grid .day{min-height:130px}.weekdays span{font-size:13px}.day{padding:9px}.date{font-size:16px}.status{font-size:11px}.person{font-size:11px}.report-values{grid-template-columns:repeat(4,1fr)}.modal{place-items:center;padding:20px}.modal-box{border-radius:16px}}@media print{body{background:#fff;font-size:11px}.top,nav,.toolbar,.hint,.dashboard,.section-head button,.modal,#toast{display:none!important}main{padding:0;max-width:none}.page{display:none!important}.page.active{display:block!important}.panel{border:0;padding:0}.calendar-wrap{border:1px solid #bbb}.day{min-height:85px}.weekdays span{padding:6px}.settings-grid{display:block}.report{break-inside:avoid}}
/* خانه‌های ابتدا/انتهای ماه، مستقیماً از calendarObject سال ۱۴۰۵ */
.day.adjacent{background:#fafbfc;color:#a5adbc;cursor:default}.day.adjacent .date{font-weight:400}.day.adjacent .status{visibility:hidden}
.fixed-weekend{display:flex;gap:8px;margin:14px 0}.fixed-weekend span{background:#f0f2f6;color:#5c687b;border-radius:8px;padding:8px 12px;font-size:13px;font-weight:600}
button svg{width:16px;height:16px;vertical-align:middle;margin-left:4px}.calendar-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.holiday .status{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.holiday{cursor:pointer}@media(max-width:699px){.calendar-scroll{margin:0}.weekdays,.calendar-grid{min-width:700px}.calendar-grid .day{min-height:110px}.calendar-wrap{padding:0}.calendar-scroll:after{content:'برای دیدن تمام روزها، تقویم را به چپ و راست بکشید';display:block;color:var(--muted);font-size:10px;padding:7px;text-align:center}}body[data-theme="dark"]{--ink:#e6eaf5;--muted:#a6b0c5;--line:#29354e;--bg:#101827;--blue-light:#1d315d;--weekend:#1d2636;--red:#43232b;background:var(--bg)}body[data-theme="dark"] .top,body[data-theme="dark"] nav,body[data-theme="dark"] .panel,body[data-theme="dark"] .stat,body[data-theme="dark"] .employee,body[data-theme="dark"] .report,body[data-theme="dark"] .day,body[data-theme="dark"] .modal-box,body[data-theme="dark"] select,body[data-theme="dark"] input,body[data-theme="dark"] button{background-color:#172238;color:var(--ink)}body[data-theme="dark"] .weekdays{background:#1c2941}body[data-theme="dark"] .day.adjacent{background:#141d2e;color:#71809a}body[data-theme="dark"] .day.holiday{background:#44262e}@media print{.calendar-scroll{overflow:visible}.weekdays,.calendar-grid{min-width:0}}
.export-sheet{position:absolute;left:-100000px;top:0;background:#fff;color:#19233a;font-family:Vazirmatn,Tahoma,sans-serif;overflow:visible}.export-sheet .weekdays,.export-sheet .calendar-grid{min-width:0!important;direction:rtl}.export-sheet .day{min-height:130px}.export-sheet .status{font-family:Vazirmatn,Tahoma,sans-serif}
.user-bar,.work-as{display:flex;gap:8px;align-items:center}.user-bar a{color:var(--blue);text-decoration:none}.work-as select{min-height:34px;padding:5px;max-width:220px}.work-as button{min-height:34px;padding:5px 9px;font-size:12px}
.user-bar,.work-as{display:flex;gap:8px;align-items:center}.user-bar a{color:var(--blue);text-decoration:none}.work-as select{min-height:34px;padding:5px;max-width:220px}.work-as button{min-height:34px;padding:5px 9px;font-size:12px}
.theme-toggle{display:inline-flex;cursor:pointer;color:var(--blue);font-size:20px}.theme-toggle input{display:none}.theme-toggle span{padding:2px 6px;border:1px solid var(--line);border-radius:16px}
.logout-btn{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:8px;padding:7px 10px;color:var(--ink);text-decoration:none}.logout-btn svg{margin:0;width:16px}
.monthly-table{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.monthly-table label{display:flex;justify-content:space-between;align-items:center}.monthly-table input{width:74px}
.super-password{max-width:480px;display:grid;gap:12px}.super-password h2{margin:0;font-size:17px}body[data-theme="dark"] .empty{background:#172238;border-color:#40506c;color:#c2cbdb}

img.logo{width:34px;height:34px;padding:0;background:transparent;border-radius:9px;object-fit:contain}
/* Compact, single-line mobile header */
.top{gap:8px}.top>div:first-child{min-width:0;flex:1;white-space:nowrap}.top>div:first-child b{white-space:nowrap}.top>div:first-child small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-bar{flex:0 0 auto;white-space:nowrap;font-size:12px;max-width:46%;overflow:hidden;text-overflow:ellipsis}.user-bar .theme-toggle{vertical-align:middle}@media(max-width:440px){.top{padding:0 10px}.top>div:first-child small{display:none}.top>div:first-child{gap:5px}.logo{width:30px!important;height:30px!important}.user-bar{max-width:54%;font-size:11px;gap:4px}.logout-btn{padding:6px 7px}.logout-btn svg{width:14px}}
