.page-title{text-align:center;flex-direction:column;gap:8px;margin-bottom:32px;display:flex}.page-title__title{color:var(--color-text);font-size:32px;font-weight:700}.page-title__subtitle{color:var(--color-text-secondary);font-size:15px}.notification{position:relative}.notification__button{cursor:pointer;background:0 0;border:none;font-size:24px;position:relative}.notification__badge{color:#fff;background:#e53935;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:12px;display:flex;position:absolute;top:-8px;right:-8px}.notification__dropdown{z-index:1000;background:#fff;border-radius:12px;width:320px;max-height:400px;padding:10px;position:absolute;top:40px;right:0;overflow-y:auto;box-shadow:0 10px 30px #00000026}.notification__item{cursor:pointer;border-bottom:1px solid var(--color-border);border-radius:8px;padding:12px;transition:background .2s}.notification__item--new{background:#f2f6ff;font-weight:600}.notification__item:hover{background:#f5f5f5}.notification__item--new:hover{background:#e8f0ff}.notification__title{margin-bottom:6px;font-weight:600}.notification__message{white-space:pre-line;color:#555;font-size:14px}.notification__date{color:#999;margin-top:8px;font-size:12px}.notification__empty{text-align:center;color:#777;padding:20px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;gap:24px;width:100%;max-width:420px;padding:32px;display:flex;box-shadow:0 8px 24px #0000000f}.card__footer{text-align:center}.input[type=date],.input[type=time]{appearance:none;width:100%;max-width:100%;height:52px;font-family:inherit;font-size:var(--font-size-md);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);box-sizing:border-box;background:#fff;align-items:center;padding:0 16px;font-size:16px;display:flex}.input-group{flex-direction:column;gap:10px;width:100%;display:flex}.input-label{font-size:var(--font-size-md);color:var(--color-text);font-weight:600}.input-wrapper{width:100%;position:relative}.input{box-sizing:border-box;border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;min-width:0;max-width:100%;height:52px;padding:0 16px;font-size:16px;display:block}.input::placeholder{color:var(--color-text-secondary)}.input:focus{border-color:var(--color-primary);outline:none}.password-toggle{cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-size:18px;display:flex;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.btn{border-radius:var(--radius-md);background:var(--color-primary);color:#fff;width:100%;height:48px;font-size:var(--font-size-md);cursor:pointer;border:none;font-weight:600;transition:background .2s}.btn:hover{background:#1d4ed8}.btn:active{transform:scale(.99)}.btn.disabled{opacity:.5;cursor:not-allowed}.link-button{color:var(--color-primary);font-size:var(--font-size-md);font-weight:500;text-decoration:none;transition:color .2s;display:inline-block}.link-button:hover{color:#1d4ed8}.page{background:var(--color-background);padding:24px}.page--centered{justify-content:center;align-items:center;display:flex}.page__container{width:100%;max-width:420px;margin:0 auto}.select-group{flex-direction:column;gap:10px;display:flex}.select-label{font-size:var(--font-size-md);color:var(--color-text);font-weight:600}.select{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:100%;height:52px;color:var(--color-text);font-size:var(--font-size-md);cursor:pointer;padding:0 16px;transition:border-color .2s,box-shadow .2s}.select:focus{border-color:var(--color-primary);outline:none}.select:disabled{opacity:.6;cursor:not-allowed}.info-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;padding:20px;box-shadow:0 4px 12px #0000000f}.info-card__title{text-align:center;color:var(--color-text);margin-bottom:16px;font-size:16px;font-weight:600}.info-card__content{flex-direction:column;gap:12px;display:flex}.dialog-overlay{z-index:1000;background:#00000059;justify-content:center;align-items:flex-start;padding:16px;display:flex;position:fixed;inset:0}.dialog{background:var(--color-surface);border-radius:var(--radius-lg);box-sizing:border-box;flex-direction:column;gap:24px;width:100%;min-width:0;max-width:420px;margin-top:20px;padding:24px;animation:.2s dialog-show;display:flex;overflow:hidden;box-shadow:0 12px 32px #00000026}@keyframes dialog-show{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.shift-list{width:100%;overflow:hidden}.shift-header{border-bottom:1px solid var(--color-border);text-align:center;grid-template-columns:40px 1fr 1fr 70px 40px 50px;align-items:center;padding:10px 2px;font-size:14px;font-weight:600;display:grid}.shift-row{border-bottom:1px solid var(--color-border);grid-template-columns:1fr 40px;align-items:center;width:100%;display:grid}.shift-info{cursor:pointer;text-align:center;width:100%;color:var(--color-text);background:0 0;border:none;grid-template-columns:35px 1fr 1fr 45px 60px;align-items:center;gap:2px;padding:10px 2px;font-size:15px;display:grid}.shift-info:hover{background:#00000008}.shift-info strong{font-weight:600}.delete-shift-button{cursor:pointer;opacity:.7;background:0 0;border:none;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-size:16px;display:flex}.delete-shift-button:hover{opacity:1}@media (width<=600px){.shift-header{grid-template-columns:35px 1fr 1fr 45px 60px 30px;padding:10px 2px;font-size:12px}.shift-row{grid-template-columns:1fr 30px}.shift-info{grid-template-columns:35px 1fr 1fr 45px 60px;gap:2px;padding:10px 2px;font-size:14px}.delete-shift-button{width:26px;height:26px;font-size:14px}.shift-info span,.shift-info strong{white-space:nowrap}}.timesheet-print-page{box-sizing:border-box;color:#000;background:#fff;width:100%;min-height:100vh;padding:20px;font-family:Arial,sans-serif}.timesheet-print-loading{justify-content:center;align-items:center;min-height:100vh;font-size:18px;display:flex}.timesheet-print-header{justify-content:space-between;align-items:flex-start;margin-bottom:10px;display:flex}.timesheet-print-header h1{margin:0 0 4px;font-size:18px;line-height:1}.timesheet-print-info{gap:12px;font-size:11px;display:flex}.timesheet-print-mode{font-size:11px;font-weight:700}.timesheet-print-table{border-collapse:collapse;border-spacing:0;table-layout:fixed;color:#000;width:100%;font-size:7px}.timesheet-print-table th,.timesheet-print-table td{box-sizing:border-box;text-align:center;vertical-align:middle;white-space:nowrap;border:1px solid #000;height:12px;padding:1px;line-height:1}.timesheet-print-table th{font-weight:700}.timesheet-print__employee{width:80px;min-width:80px;max-width:80px;overflow:hidden;text-align:left!important;white-space:normal!important;padding-left:3px!important}.timesheet-print__total{background:#f2f2f2;width:28px;font-weight:700}.timesheet-print__department td{text-align:left;background:#eee;height:14px;padding-left:4px;font-weight:700}.timesheet-print__cell--scheduled{background:#e4f3e4}.timesheet-print__cell--active{background:#cfe8cf}@media screen{.timesheet-print-page{max-width:1600px;margin:0 auto}}@media print{@page{size:A4 landscape;margin:5mm}html,body{background:#fff!important;width:100%!important;margin:0!important;padding:0!important}body{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.timesheet-print-page{background:#fff!important;width:100%!important;min-height:0!important;margin:0!important;padding:0!important}.timesheet-print-header{margin-bottom:4px!important}.timesheet-print-header h1{font-size:14px!important}.timesheet-print-info,.timesheet-print-mode{font-size:8px!important}.timesheet-print-table{page-break-inside:auto!important;break-inside:auto!important;width:100%!important;font-size:6px!important}.timesheet-print-table thead{display:table-header-group}.timesheet-print-table tbody{display:table-row-group}.timesheet-print-table tr{page-break-inside:avoid!important;break-inside:avoid!important}.timesheet-print-table th,.timesheet-print-table td{height:10px!important;padding:1px!important;line-height:1!important}.timesheet-print__employee{width:55px!important;min-width:55px!important;max-width:55px!important}.timesheet-print__total{width:25px!important}.timesheet-print__department td{height:12px!important}}.offline-page{background:var(--color-background);justify-content:center;align-items:center;min-height:100dvh;padding:24px;display:flex}.offline-page__content{text-align:center;flex-direction:column;align-items:center;width:100%;max-width:420px;display:flex}.offline-page__icon{border:1px solid var(--color-border);width:64px;height:64px;color:var(--color-text-secondary);background:var(--color-surface);border-radius:50%;justify-content:center;align-items:center;margin-bottom:24px;font-size:32px;display:flex}.offline-page__title{color:var(--color-text);margin:0 0 12px;font-size:24px;font-weight:700}.offline-page__text{max-width:340px;color:var(--color-text-secondary);margin:0 0 24px;font-size:16px;line-height:1.5}.offline-page__button{border-radius:var(--radius-md);background:var(--color-primary);color:#fff;cursor:pointer;border:none;min-width:160px;height:48px;padding:0 24px;font-size:16px;font-weight:600}.offline-page__button:hover{opacity:.9}.offline-page__button:active{opacity:.8}@media (width<=480px){.offline-page{padding:20px}.offline-page__title{font-size:22px}}:root{--color-primary:#2563eb;--color-background:#f5f5f5;--color-surface:#fff;--color-text:#1f2937;--color-border:#d1d5db;--color-text-secondary:#6b7280;--color-danger:#d32f2f;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--font-family:Inter, system-ui, sans-serif;--font-size-xs:12px;--font-size-sm:14px;--font-size-md:16px;--font-size-lg:20px;--font-size-xl:32px}*,:before,:after{box-sizing:border-box}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100%}body{font-family:var(--font-family);background:var(--color-background);color:var(--color-text)}.container{width:100%;max-width:960px;padding:0 var(--space-md);margin:0 auto}.app-shell{min-height:100vh}.app-header{border-bottom:1px solid var(--color-border);background:var(--color-surface);align-items:center;height:64px;display:flex}.app-title{font-size:1.125rem;font-weight:600}.app-main{padding:var(--space-lg) 0}.form-error{text-align:center;color:var(--color-danger);font-size:var(--font-size-sm);margin-top:-10px}button:disabled{opacity:.6;cursor:not-allowed}.login-form{flex-direction:column;gap:16px;display:flex}.month-switcher{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.month-switcher__title{text-align:center;flex:1;font-size:18px;font-weight:600}.month-switcher__arrow{color:var(--color-text);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:28px;line-height:1}.month-switcher__arrow:hover{opacity:.6}.password-request-dialog{flex-direction:column;gap:16px;width:100%;max-height:80vh;padding-right:10px;display:flex;overflow-y:auto}.password-request-dialog hr{border:none;border-top:1px solid var(--color-border);width:100%;margin:8px 0}.timesheet-month__title{text-align:center;text-transform:capitalize;min-width:180px;color:var(--color-text);font-size:18px;font-weight:700}.timesheet-month__button{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:42px;height:42px;color:var(--color-text);cursor:pointer;justify-content:center;align-items:center;font-size:20px;transition:all .2s;display:flex}.timesheet-month__button:hover{background:var(--color-primary);color:#fff}.timesheet-month__button:active{transform:scale(.95)}.timesheet-wrapper{border-radius:var(--radius-md);width:100%;margin-top:20px;overflow-x:auto}.timesheet th{background:var(--color-background);font-weight:700}.timesheet__employee{z-index:2;background:var(--color-surface);min-width:180px;position:sticky;left:0;text-align:left!important}.timesheet__total{background:#0000000d;font-weight:700}.timesheet-section{margin-bottom:30px}.timesheet-section__title{background:var(--color-primary);color:#fff;border-radius:var(--radius-md);margin:15px 0;padding:10px}.timesheet-total-row td{background:var(--color-background);font-weight:700}.timesheet-grand-total{border-top:2px solid var(--color-border);margin-top:20px;padding:15px;font-size:18px;font-weight:600}.timesheet-dialog{width:100%;max-width:1200px}.timesheet-dialog__header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.timesheet-month{justify-content:center;align-items:center;gap:20px;margin-bottom:20px;display:flex}.timesheet-month__button{width:40px;height:40px}.timesheet-scroll{border:1px solid var(--color-border);width:100%;max-height:70vh;overflow:auto}.timesheet{border-collapse:collapse;width:100%;min-width:900px}.timesheet th,.timesheet td{border:1px solid var(--color-border);text-align:center;white-space:nowrap;padding:8px}.timesheet th{background:var(--color-surface);position:sticky;top:0}.timesheet-name{font-weight:600;text-align:left!important}.timesheet-total{font-weight:700}.timesheet-position-row td{background:var(--color-background);text-align:left;border-top:2px solid var(--color-border);padding:12px;font-weight:700}.timesheet__department td{background:var(--color-background);text-align:left;font-weight:700}.timesheet__subtotal td{border-top:2px solid var(--color-border);font-weight:700}.salary-value{cursor:pointer;-webkit-user-select:none;user-select:none}.timesheet__cell--active,.timesheet__cell--empty{cursor:pointer;transition:transform .15s,background-color .15s,box-shadow .15s}.timesheet__cell--active:hover,.timesheet__cell--empty:hover{transform:scale(1.08);box-shadow:0 2px 8px #0000001f}.timesheet__cell--empty{color:var(--color-text-secondary)}.timesheet__cell--empty:hover{color:var(--color-primary);background:var(--color-primary-light)}.timesheet__cell--scheduled{background:#e4f3e4}.timesheet__cell--active.timesheet__cell--scheduled{background:#cfe8cf}.timesheet-close{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;min-width:0;max-width:100%;display:flex}.timesheet-close button{white-space:nowrap;flex:0 auto;max-width:100%}.timesheet-dialog__header{justify-content:space-between;align-items:center;gap:16px;width:100%;min-width:0;margin-bottom:20px;display:flex}.timesheet-dialog__header h3{min-width:0;margin:0}@media (width<=600px){.timesheet-dialog__header{flex-direction:column;align-items:stretch}.timesheet-close{justify-content:stretch;width:100%}.timesheet-close button{flex:1 1 0;min-width:0}}.dialog__restaurants-list{flex-direction:column;gap:8px;min-height:0;max-height:300px;padding-right:8px;display:flex;overflow:hidden scroll}.dialog__employees-list{flex-direction:column;gap:8px;min-height:0;max-height:400px;padding-right:8px;display:flex;overflow:hidden scroll}.dialog{flex-direction:column;width:100%;max-width:500px;max-height:calc(100vh - 40px);display:flex;overflow:hidden}.dialog__content{flex-direction:column;min-height:0;display:flex;overflow:hidden}@media (width>=769px){.timesheet-dialog{background:var(--color-surface,#fff);border-radius:var(--radius-lg,12px);box-sizing:border-box;z-index:1001;flex-direction:column;width:auto;max-width:none;height:auto;max-height:none;margin:0;padding:24px;display:flex;position:fixed;inset:20px;overflow:hidden}.timesheet-dialog__header,.timesheet-month,.timesheet-schedule-hint{flex-shrink:0}.timesheet-scroll{border:1px solid var(--color-border,#ddd);border-radius:var(--radius-md,8px);box-sizing:border-box;flex:1;width:100%;min-height:0;margin-top:16px;overflow:auto}.timesheet{border-collapse:collapse;table-layout:auto;width:max-content;min-width:100%}.timesheet thead{z-index:10;position:sticky;top:0}.timesheet thead th{background:var(--color-surface,#fff);z-index:10;position:sticky;top:0}.timesheet__employee{z-index:5;background:var(--color-surface,#fff);white-space:nowrap;min-width:220px;position:sticky;left:0}.timesheet thead .timesheet__employee{z-index:20}.timesheet__cell{text-align:center;white-space:nowrap;min-width:48px;height:42px}.timesheet__total{text-align:center;white-space:nowrap;background:var(--color-background,#f5f5f5);min-width:70px;font-weight:600}.timesheet__department td{z-index:4;background:var(--color-background,#f5f5f5);position:sticky;left:0}}.my-schedule-dialog{flex-direction:column;gap:16px;width:100%;min-width:0;display:flex}.my-schedule-filters{grid-template-columns:1fr 1fr;gap:12px;display:grid}.my-schedule th{z-index:2;background:var(--color-surface);font-weight:600;position:sticky;top:0}.my-schedule-message{text-align:center;color:var(--color-text);padding:20px 0}@media (width<=600px){.my-schedule-filters{grid-template-columns:1fr}.my-schedule-scroll{max-height:50vh}.my-schedule{min-width:460px}.my-schedule th,.my-schedule td{padding:8px;font-size:14px}}.my-schedule-list{border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;max-height:55vh;display:flex;overflow:hidden auto}.my-schedule-day{border-bottom:1px solid var(--color-border);grid-template-columns:72px 1fr auto;align-items:center;gap:16px;min-height:58px;padding:8px 14px;display:grid}.my-schedule-day:last-child{border-bottom:none}.my-schedule-day__date{align-items:center;gap:8px;display:flex}.my-schedule-day__number{background:var(--color-background);border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-weight:600;display:flex}.my-schedule-day__weekday{color:var(--color-text-secondary);text-transform:capitalize;font-size:13px}.my-schedule-day__status{align-items:center;gap:9px;font-size:14px;display:flex}.my-schedule-day__circle{border-radius:50%;flex-shrink:0;width:10px;height:10px}.my-schedule-day--working .my-schedule-day__circle{background:#e53935}.my-schedule-day--off .my-schedule-day__circle{background:#43a047}.my-schedule-legend{color:var(--color-text-secondary);align-items:center;gap:18px;font-size:13px;display:flex}.my-schedule-legend__item{align-items:center;gap:7px;display:flex}.my-schedule-legend__circle{border-radius:50%;width:9px;height:9px}.my-schedule-legend__circle--working{background:#e53935}.my-schedule-legend__circle--off{background:#43a047}.my-schedule-day__arrival{text-align:right;flex-direction:column;align-items:flex-end;gap:2px;min-width:90px;display:flex}.my-schedule-day__arrival-label{color:var(--color-text-secondary);white-space:nowrap;font-size:11px}.my-schedule-day__arrival-time{font-size:15px;font-weight:600}@media (width<=600px){.my-schedule-list{max-height:50vh}.my-schedule-day{grid-template-columns:62px 1fr auto;gap:10px;min-height:54px;padding:7px 10px}.my-schedule-day__number{width:36px;height:36px;font-size:14px}.my-schedule-day__weekday{font-size:12px}.my-schedule-day__status{font-size:13px}.my-schedule-day__arrival{min-width:82px;font-size:14px}.my-schedule-day__arrival-label{font-size:10px}.my-schedule-day__arrival-time{font-size:14px}}.timesheet-close{justify-content:center;margin-top:20px;display:flex}.timesheet-close button{width:160px}@media print{@page{size:A4 landscape;margin:5mm}body.print-timesheet{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}body.print-timesheet *{visibility:hidden!important}body.print-timesheet .timesheet-dialog,body.print-timesheet .timesheet-dialog *{visibility:visible!important}body.print-timesheet .timesheet-dialog{width:100%!important;max-width:none!important;height:auto!important;max-height:none!important;box-shadow:none!important;background:#fff!important;border:none!important;border-radius:0!important;margin:0!important;padding:0!important;display:block!important;position:absolute!important;inset:0 auto auto 0!important;overflow:visible!important}body.print-timesheet .timesheet-dialog__header{justify-content:space-between!important;align-items:center!important;width:100%!important;margin:0 0 4px!important;padding:0!important;display:flex!important}body.print-timesheet .timesheet-dialog__header h3{margin:0!important;font-size:14px!important;line-height:1!important}body.print-timesheet .timesheet-close,body.print-timesheet .timesheet-month__button{display:none!important}body.print-timesheet .timesheet-month{text-align:center!important;width:100%!important;margin:0 0 5px!important;padding:0!important;display:block!important}body.print-timesheet .timesheet-schedule-hint{display:none!important}body.print-timesheet .timesheet-scroll{border:none!important;border-radius:0!important;width:100%!important;height:auto!important;max-height:none!important;margin:0!important;padding:0!important;display:block!important;overflow:visible!important}body.print-timesheet .timesheet{border-collapse:collapse!important;border-spacing:0!important;table-layout:fixed!important;page-break-inside:avoid!important;break-inside:avoid!important;width:100%!important;min-width:0!important;max-width:100%!important;margin:0!important;padding:0!important;font-size:6px!important}body.print-timesheet .timesheet thead{display:table-header-group!important;position:static!important}body.print-timesheet .timesheet tbody{display:table-row-group!important}body.print-timesheet .timesheet tr{page-break-inside:avoid!important;break-inside:avoid!important}body.print-timesheet .timesheet th,body.print-timesheet .timesheet td{z-index:auto!important;text-align:center!important;vertical-align:middle!important;white-space:nowrap!important;box-sizing:border-box!important;border:1px solid #000!important;height:10px!important;padding:1px!important;line-height:1!important;position:static!important;inset:auto!important}body.print-timesheet .timesheet th.timesheet__employee,body.print-timesheet .timesheet td.timesheet__employee{z-index:auto!important;text-align:left!important;white-space:normal!important;box-sizing:border-box!important;background:#fff!important;width:55px!important;min-width:55px!important;max-width:55px!important;padding:1px 2px!important;position:static!important;left:auto!important;overflow:hidden!important}body.print-timesheet .timesheet__department{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;background-color:#eee!important;height:12px!important;font-weight:700!important}body.print-timesheet .timesheet__department td{z-index:auto!important;text-align:left!important;background-color:#eee!important;padding:1px 3px!important;position:static!important;left:auto!important}body.print-timesheet .timesheet__total{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;background-color:#f2f2f2!important;font-weight:700!important;position:static!important}body.print-timesheet .timesheet__cell--scheduled{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;background-color:#e4f3e4!important}body.print-timesheet .timesheet__cell--scheduled.timesheet__cell--active{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;background-color:#cfe8cf!important}body.print-timesheet .timesheet__cell--scheduled.timesheet__cell--empty{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;background-color:#e4f3e4!important}body.print-timesheet .timesheet__cell--empty:not(.timesheet__cell--scheduled){-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;background-color:#fff!important}body.print-timesheet .timesheet__cell--arrival-mode,body.print-timesheet .timesheet__cell--active,body.print-timesheet .timesheet__cell--empty{cursor:default!important;box-shadow:none!important;transform:none!important}body.print-timesheet .timesheet input[type=time]{text-align:center!important;background:0 0!important;border:none!important;outline:none!important;width:100%!important;margin:0!important;padding:0!important;font-size:6px!important}}
