@font-face{font-family:IRANSans;src:url(/fonts/IRANSansWeb_Light.woff2) format("woff2");font-weight:300;font-display:swap}@font-face{font-family:IRANSans;src:url(/fonts/IRANSansWeb.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:IRANSans;src:url(/fonts/IRANSansWeb_Medium.woff2) format("woff2");font-weight:500;font-display:swap}@font-face{font-family:IRANSans;src:url(/fonts/IRANSansWeb_Bold.woff2) format("woff2");font-weight:700;font-display:swap}:root{--font-sans: "IRANSans", "Vazirmatn", Tahoma, Arial, sans-serif;--radius-sm: 10px;--radius-md: 16px;--radius-lg: 22px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(15, 23, 20, .06);--shadow-md: 0 8px 24px -8px rgba(15, 23, 20, .18);color-scheme:light;--bg: #F4F6F5;--bg-elevated: #FFFFFF;--surface: #FFFFFF;--surface-muted: #EEF2F0;--border: #E1E7E3;--ink: #16201B;--ink-muted: #5B6A62;--ink-faint: #8B978F;--primary: #1F6F5C;--primary-strong: #164F42;--primary-soft: #E3F1EC;--primary-contrast: #FFFFFF;--accent: #DE9A2C;--accent-soft: #FBEDD2;--danger: #C6493F;--danger-soft: #FBEAE8;--focus-ring: 0 0 0 3px rgba(31, 111, 92, .28)}html[data-theme=dark]{color-scheme:dark;--bg: #0F1713;--bg-elevated: #16211C;--surface: #16211C;--surface-muted: #1C2822;--border: #29352E;--ink: #EAF1EC;--ink-muted: #9FAEA6;--ink-faint: #6C7A72;--primary: #4FB894;--primary-strong: #6FCBA9;--primary-soft: #1B3A30;--primary-contrast: #08120E;--accent: #EBB65B;--accent-soft: #3A2E15;--danger: #E28178;--danger-soft: #3B211E;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 12px 28px -10px rgba(0, 0, 0, .55);--focus-ring: 0 0 0 3px rgba(79, 184, 148, .35)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font-sans);background:var(--bg);color:var(--ink);direction:rtl;-webkit-font-smoothing:antialiased;transition:background-color .25s ease,color .25s ease}button,input,select,textarea{font-family:inherit}::selection{background:var(--primary-soft);color:var(--primary-strong)}*:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-sm)}.app-shell{max-width:480px;margin:0 auto;min-height:100vh;background:var(--bg);display:flex;flex-direction:column;position:relative}.header{position:sticky;top:0;z-index:20;background:var(--bg-elevated);border-bottom:1px solid var(--border);padding:14px 18px;display:flex;justify-content:space-between;align-items:center;gap:12px}.header .brand{display:flex;align-items:center;gap:10px;min-width:0}.brand-mark{width:34px;height:34px;border-radius:10px;background:linear-gradient(155deg,var(--primary),var(--primary-strong));display:flex;align-items:center;justify-content:center;color:var(--primary-contrast);flex-shrink:0;box-shadow:var(--shadow-sm)}.brand-logo{height:26px;width:auto;max-width:120px;flex-shrink:0}.brand-text{min-width:0}.brand-text .greeting{font-size:13px;color:var(--ink-muted);line-height:1.3}.brand-text .datetime{font-size:13px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}.header-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.icon-btn{width:36px;height:36px;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface);color:var(--ink-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .15s ease,color .15s ease,transform .1s ease}.icon-btn:hover{background:var(--surface-muted);color:var(--ink)}.icon-btn:active{transform:scale(.94)}.content{padding:18px 16px 96px;flex:1}.bottom-nav{position:sticky;bottom:0;z-index:20;display:flex;background:var(--bg-elevated);border-top:1px solid var(--border);padding:8px 10px calc(8px + env(safe-area-inset-bottom));gap:4px}.bottom-nav button{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 4px;border:none;background:transparent;color:var(--ink-faint);border-radius:var(--radius-sm);cursor:pointer;font-size:11px;transition:color .15s ease,background-color .15s ease}.bottom-nav button.active{color:var(--primary);background:var(--primary-soft)}.bottom-nav button svg{width:20px;height:20px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:18px;margin-bottom:14px;box-shadow:var(--shadow-sm)}.card>p:first-child,.card-title{font-weight:600;font-size:14px;margin:0 0 12px;color:var(--ink)}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-pill);font-size:12px;font-weight:600}.status-badge.inside{background:var(--primary-soft);color:var(--primary-strong)}.status-badge.outside{background:var(--danger-soft);color:var(--danger)}.status-badge.pending{background:var(--accent-soft);color:var(--accent)}.status-badge.approved{background:var(--primary-soft);color:var(--primary-strong)}.status-badge.rejected{background:var(--danger-soft);color:var(--danger)}.status-badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.status-badge.present{background:var(--primary-soft);color:var(--primary-strong)}.status-badge.short{background:var(--accent-soft);color:var(--accent)}.status-badge.absent{background:var(--danger-soft);color:var(--danger)}.status-badge.leave{background:var(--primary-soft);color:var(--primary-strong)}.status-badge.holiday,.status-badge.weekly_holiday,.status-badge.future{background:var(--surface-muted);color:var(--ink-faint)}.row-actions{display:flex;gap:4px;justify-content:flex-end}.row-icon-btn{width:28px;height:28px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--ink-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .15s ease,color .15s ease;flex-shrink:0}.row-icon-btn svg{width:14px;height:14px}.row-icon-btn:hover{background:var(--surface-muted);color:var(--ink)}.row-icon-btn.danger:hover{background:var(--danger-soft);color:var(--danger)}.edit-banner{display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--accent-soft);color:var(--accent);padding:10px 14px;border-radius:var(--radius-sm);font-size:12.5px;font-weight:600;margin-bottom:14px}.edit-banner button{background:transparent;border:none;color:inherit;cursor:pointer;display:flex;align-items:center}.edit-banner button svg{width:16px;height:16px}.deficit-highlight{color:var(--danger)!important}.table-scroll{max-height:360px;overflow-y:auto}.table-scroll table thead th{position:sticky;top:0;background:var(--surface)}.presence-wrap{display:flex;flex-direction:column;align-items:center;gap:14px;padding:8px 0 4px}.presence-ring{position:relative;width:180px;height:180px}.presence-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.presence-ring circle.track{fill:none;stroke:var(--surface-muted);stroke-width:10}.presence-ring circle.progress{fill:none;stroke:var(--primary);stroke-width:10;stroke-linecap:round;transition:stroke-dashoffset .6s ease,stroke .3s ease}.presence-ring.awaiting-checkout circle.progress{stroke:var(--accent)}.presence-btn{position:absolute;top:14px;right:14px;bottom:14px;left:14px;border-radius:50%;border:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:var(--primary);color:var(--primary-contrast);font-size:15px;font-weight:700;box-shadow:var(--shadow-md);transition:transform .12s ease,background-color .2s ease,opacity .2s ease}.presence-btn:active{transform:scale(.96)}.presence-btn.checkout{background:var(--accent)}.presence-btn.done{background:var(--surface-muted);color:var(--ink-faint);box-shadow:none}.presence-btn:disabled{cursor:not-allowed;opacity:.7}.presence-btn svg{width:30px;height:30px}@keyframes pulse-ring{0%{box-shadow:0 0 #1f6f5c59}to{box-shadow:0 0 0 16px #1f6f5c00}}.presence-btn.pulsing{animation:pulse-ring 2.2s ease-out infinite}@media (prefers-reduced-motion: reduce){.presence-btn.pulsing{animation:none}}.presence-label{font-size:13px;color:var(--ink-muted);text-align:center}.timeline{display:flex;align-items:center;gap:10px;margin-top:4px}.timeline .time-tag{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink);min-width:46px;text-align:center}.timeline .bar{flex:1;height:8px;border-radius:var(--radius-pill);background:var(--surface-muted);overflow:hidden;position:relative}.timeline .bar-fill{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-pill);background:linear-gradient(90deg,var(--primary),var(--accent))}.big-btn{width:100%;padding:15px;font-size:15px;font-weight:700;border:none;border-radius:var(--radius-md);color:var(--primary-contrast);cursor:pointer;margin-top:8px;transition:transform .1s ease,opacity .2s ease}.big-btn:active{transform:scale(.98)}.big-btn.checkin{background:var(--primary)}.big-btn.checkout{background:var(--accent)}.big-btn:disabled{background:var(--surface-muted);color:var(--ink-faint);cursor:not-allowed}.submit-btn{background:var(--primary);color:var(--primary-contrast);border:none;padding:13px;border-radius:var(--radius-md);width:100%;cursor:pointer;font-size:14px;font-weight:700;transition:transform .1s ease,opacity .2s ease}.submit-btn:active{transform:scale(.98)}.submit-btn:disabled{opacity:.6;cursor:not-allowed}form label{display:block;margin-bottom:14px;font-size:13px;color:var(--ink-muted)}form input,form textarea,form select{width:100%;padding:11px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);margin-top:6px;font-family:inherit;font-size:14px;background:var(--surface);color:var(--ink);transition:border-color .15s ease,box-shadow .15s ease}form input:focus,form textarea:focus,form select:focus{border-color:var(--primary)}form textarea{resize:vertical;min-height:64px}select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235B6A62' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M5.5 8.5 12 15l6.5-6.5'/></svg>");background-repeat:no-repeat;background-position:left 10px center;background-size:15px;padding-left:32px!important;cursor:pointer;font-family:var(--font-sans)}html[data-theme=dark] select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239FAEA6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M5.5 8.5 12 15l6.5-6.5'/></svg>")}select:hover{border-color:var(--ink-faint)}.jalali-date-group{display:flex;gap:6px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px;background:var(--surface);margin-top:6px;transition:border-color .15s ease}.jalali-date-group:focus-within{border-color:var(--primary)}.jalali-date-group select{margin-top:0;border:none;background-color:transparent;padding:8px 24px 8px 8px!important;background-position:left 4px center;background-size:13px}.error-box,.success-box{padding:12px 14px;border-radius:var(--radius-sm);margin-bottom:14px;font-size:13px;display:flex;align-items:center;gap:8px}.error-box{background:var(--danger-soft);color:var(--danger)}.success-box{background:var(--primary-soft);color:var(--primary-strong)}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:right;padding:10px 6px;border-bottom:1px solid var(--border)}th{color:var(--ink-muted);font-weight:600;font-size:12px}td{color:var(--ink)}tr:last-child td{border-bottom:none}.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.stat-box{background:var(--surface-muted);border-radius:var(--radius-md);padding:16px 12px;text-align:center}.stat-box .value{font-size:24px;font-weight:700;color:var(--primary);font-variant-numeric:tabular-nums}.stat-box .label{font-size:12px;color:var(--ink-muted);margin-top:4px}.stat-box.wide{grid-column:1 / -1}.login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px;background:radial-gradient(circle at 50% -10%,var(--primary-soft),var(--bg) 60%)}.login-box{width:100%;max-width:340px}.login-logo{display:block;height:48px;width:auto;max-width:220px;margin:0 auto 20px}.login-mark{width:56px;height:56px;border-radius:16px;background:linear-gradient(155deg,var(--primary),var(--primary-strong));display:flex;align-items:center;justify-content:center;color:var(--primary-contrast);margin:0 auto 18px;box-shadow:var(--shadow-md)}.login-box h1{text-align:center;margin:0 0 4px;color:var(--ink);font-size:19px}.login-box .subtitle{text-align:center;color:var(--ink-muted);font-size:13px;margin-bottom:24px}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px;box-shadow:var(--shadow-md)}.captcha-row{display:flex;align-items:center;gap:8px;margin-top:6px}.captcha-question{flex-shrink:0;min-width:84px;text-align:center;padding:10px 8px;border-radius:var(--radius-sm);background:var(--surface-muted);color:var(--ink);font-weight:700;font-size:14px;font-variant-numeric:tabular-nums;letter-spacing:.5px;-webkit-user-select:none;user-select:none}.captcha-row .row-icon-btn{width:38px;height:38px;flex-shrink:0}.captcha-row .row-icon-btn svg{width:16px;height:16px}.captcha-input{flex:1;min-width:0;margin-top:0!important}.muted{color:var(--ink-faint);font-size:13px}.segmented{display:flex;background:var(--surface-muted);border-radius:var(--radius-pill);padding:4px;gap:4px;margin-bottom:12px}.segmented button{flex:1;border:none;background:transparent;padding:9px 6px;border-radius:var(--radius-pill);font-size:13px;font-weight:600;color:var(--ink-muted);cursor:pointer;transition:background-color .15s ease,color .15s ease,box-shadow .15s ease;font-family:inherit}.segmented button.active{background:var(--surface);color:var(--primary);box-shadow:var(--shadow-sm)}.report-filters{display:flex;gap:8px}.report-filters>div{flex:1}.report-filters label{margin-bottom:0}.section-heading{display:flex;align-items:center;gap:8px;font-weight:600;font-size:14px;margin:0 0 12px;color:var(--ink)}.section-heading .icon-chip{width:26px;height:26px;border-radius:8px;background:var(--primary-soft);color:var(--primary-strong);display:flex;align-items:center;justify-content:center;flex-shrink:0}.section-heading .icon-chip svg{width:14px;height:14px}.chart-scroll{overflow-x:auto;padding-bottom:2px}.chart-legend-row{display:flex;gap:14px;margin-top:10px;flex-wrap:wrap;font-size:12px;color:var(--ink-muted)}.chart-legend-row .dot{width:9px;height:9px;border-radius:50%;display:inline-block;margin-inline-end:5px;vertical-align:middle}.donut-wrap{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.donut-svg{flex-shrink:0}.donut-legend{display:flex;flex-direction:column;gap:8px;flex:1;min-width:120px}.legend-row{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink-muted)}.legend-row .legend-val{margin-inline-start:auto;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}.legend-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.profile-head{display:flex;align-items:center;gap:14px}.profile-avatar{width:52px;height:52px;border-radius:50%;background:linear-gradient(155deg,var(--primary),var(--primary-strong));color:var(--primary-contrast);display:flex;align-items:center;justify-content:center;font-size:19px;font-weight:700;flex-shrink:0}.profile-name{font-size:15px;font-weight:700;color:var(--ink)}.profile-username{font-size:12.5px;color:var(--ink-muted);direction:ltr;text-align:right;margin-top:2px}.section-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.link-btn{background:transparent;border:none;color:var(--primary);font-weight:600;font-size:13px;cursor:pointer;padding:6px 10px;border-radius:var(--radius-sm)}.link-btn:hover{background:var(--primary-soft)}@media (max-width: 380px){.presence-ring{width:160px;height:160px}}
