:root{--bg:#f6f8fb;--panel:#ffffff;--line:#e4e8ef;--text:#142033;--muted:#718096;--red:#e60013;--red-dark:#b8000f;--red-soft:#fff0f1;--green:#18a052;--green-dark:#118342;--green-soft:#edf9f2;--blue:var(--red);--blue-dark:var(--red-dark);--danger:#b42318;--shadow:0 16px 50px rgba(16,24,40,0.08)}*{box-sizing:border-box}body,html{min-height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}.text-link{color:var(--red);font-weight:700;text-decoration:underline;text-underline-offset:3px}button,input,select{font:inherit}.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#fff0f1,#f7f8fb 55%,#edf9f2)}.auth-card{width:min(420px,100%);background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:28px}.auth-card h1,.page-title h1{margin:0 0 8px;font-size:28px;letter-spacing:0}.muted{color:var(--muted)}.error{color:var(--danger);background:#fff1f0;border:1px solid #ffd2cc;border-radius:8px}.error,.success{padding:10px 12px}.success{color:#075e32;background:var(--green-soft);border:1px solid #b7e4c9;border-radius:8px}.error.compact{margin:0}.field{display:grid;grid-gap:6px;gap:6px;margin-bottom:14px}.field.max-profile-field,.field.settings-inline-field{margin-bottom:0}.field label{font-size:13px;color:#41516a;font-weight:700}.checkbox-grid{display:flex;flex-wrap:wrap;gap:8px}.checkbox-grid label{min-height:36px;display:inline-flex;align-items:center;gap:8px;border:1px solid #d7dde8;border-radius:8px;padding:0 12px;background:#fff;color:var(--text)}.checkbox-grid input{width:16px;height:16px;accent-color:var(--green)}.field-error{display:none;color:var(--danger);font-size:13px;font-weight:700}.calendar-access-field.is-invalid .field-error,.field.is-invalid .field-error{display:block}.input,.select{width:100%;height:42px;border:1px solid #d7dde8;border-radius:8px;padding:0 12px;background:#fff;color:var(--text)}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;border:1px solid transparent;border-radius:8px;background:var(--blue);color:#fff;padding:0 14px;cursor:pointer;font-weight:700}.button:hover{background:var(--blue-dark)}.button.secondary{background:#fff;color:var(--text);border-color:#d7dde8}.button.secondary:hover{background:#f5f7fb}.button.secondary.is-active{border-color:var(--green);background:var(--green-soft);color:var(--green-dark)}.button.danger{background:#fff;color:var(--danger);border-color:#f2c4bf}.button.icon{width:40px;padding:0}.app-shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.sidebar{background:#fff;border-right:1px solid var(--line);padding:16px;position:-webkit-sticky;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;height:54px;margin-bottom:14px;overflow:hidden}.brand-logo{width:170px;height:auto;display:block;object-fit:contain;object-position:left center}.nav{display:grid;grid-gap:6px;gap:6px}.nav-group{display:grid;grid-gap:4px;gap:4px}.logout-button,.nav a{display:flex;align-items:center;gap:10px;min-height:42px;padding:0 12px;border-radius:8px;color:#334155}.nav-subitems{display:grid;grid-gap:3px;gap:3px}.nav-subitems a{min-height:32px;padding:0 12px;font-size:14px;color:#526173}.nav-count{min-width:22px;height:22px;display:inline-grid;place-items:center;margin-left:auto;border-radius:999px;background:var(--blue);color:#fff;font-size:12px;font-weight:800}.logout-button:hover,.nav a.active,.nav a:hover{background:var(--red-soft);color:var(--red-dark)}.logout-button{width:100%;border:0;background:transparent;cursor:pointer;text-align:left;margin-top:10px}.sidebar-user{border-top:1px solid var(--line);margin-top:22px;padding-top:16px;font-size:14px;display:grid;grid-gap:10px;gap:10px}.sidebar-user-main{display:flex;align-items:center;gap:10px;min-width:0}.sidebar-user-info{min-width:0;display:grid;grid-gap:2px;gap:2px}.sidebar-user-info .muted{line-height:1.25}.sidebar-user-info .user-name{max-width:none;min-width:0}.content{min-width:0;padding:22px}.page-title{justify-content:space-between;gap:16px;margin-bottom:18px}.page-title,.toolbar{display:flex;align-items:center}.toolbar{flex-wrap:wrap;gap:10px}.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:10px;gap:10px}.filters,.quick-planner-panel{margin-bottom:16px}.department-switch{gap:16px;margin-bottom:16px;padding:14px 18px}.department-switch,.quick-planner-panel summary{display:flex;align-items:center;justify-content:space-between}.quick-planner-panel summary{gap:14px;min-height:58px;padding:0 18px;cursor:pointer;list-style:none}.quick-planner-panel summary::-webkit-details-marker{display:none}.quick-planner-panel summary span:first-child{display:grid;grid-gap:3px;gap:3px}.quick-planner-chevron{width:32px;height:32px;display:grid;place-items:center;border:1px solid #d7dde8;border-radius:999px;background:#fff;color:transparent;flex:0 0 32px;position:relative;transition:transform .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease}.quick-planner-chevron:before{content:"";width:8px;height:8px;border-right:2px solid var(--green-dark);border-bottom:2px solid var(--green-dark);transform:translateY(4px) rotate(45deg);transition:border-color .2s ease}.quick-planner-panel summary:hover .quick-planner-chevron{border-color:#a8d8bd;background:#f2fbf6;box-shadow:0 4px 14px rgba(16,24,40,.08)}.quick-planner-panel[open] .quick-planner-chevron{transform:rotate(180deg)}.quick-planner{display:grid;grid-template-columns:minmax(260px,1fr) minmax(300px,1fr) minmax(260px,1fr) minmax(280px,1fr);align-items:start;grid-gap:14px;gap:14px;border-top:1px solid var(--line);padding:18px}.quick-planner-card{display:grid;align-content:start;grid-gap:10px;gap:10px;min-width:0}.quick-planner-card .field{margin-bottom:0}.quick-planner-card .form-row{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-planner-create .form-row{grid-template-columns:minmax(96px,1fr) minmax(120px,.9fr)}.quick-planner-success{grid-column:1/-1}.modal-form-success{margin-top:12px}.modal-form-context{margin:-4px 0 14px}.quick-planner h2{margin:0 0 6px;font-size:18px}.weekdays{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.modal-danger-zone{display:flex;justify-content:flex-start;border-top:1px solid var(--line);margin-top:16px;padding-top:14px}.modal-danger-zone .button{width:auto;min-height:36px;padding:0 12px;font-size:14px}.weekdays label{min-height:30px;display:inline-flex;align-items:center;gap:5px;padding:0 8px;background:#fff;font-size:13px;font-weight:700}.panel,.weekdays label{border:1px solid var(--line);border-radius:8px}.panel{background:var(--panel);box-shadow:0 8px 30px rgba(16,24,40,.04)}.panel.pad{padding:18px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px}.grid-2,.grid-3{display:grid;gap:16px}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:16px}.admin-dashboard{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px;margin-bottom:16px}.admin-dashboard-card{display:grid;grid-gap:14px;gap:14px}.admin-dashboard-card h2{margin:0 0 4px;font-size:20px}.reports-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px;margin-bottom:12px}.report-kpi{display:grid;grid-gap:4px;gap:4px;min-height:86px;align-content:center;position:relative;overflow:hidden}.report-kpi:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--brand)}.report-kpi span{color:#66758a;font-size:13px;font-weight:800}.report-kpi strong{font-size:30px;line-height:1;letter-spacing:0}.reports-filter-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:14px;gap:14px;align-items:end;margin-bottom:16px}.reports-filter-grid{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));grid-gap:10px;gap:10px}.reports-filter-grid .field{margin-bottom:0}.reports-filter-actions{display:grid;grid-template-columns:1fr;grid-gap:8px;gap:8px;min-width:160px}.reports-filter-actions .button{width:100%}.reports-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:16px;gap:16px;align-items:stretch}.report-summary-card{min-height:260px;overflow:hidden}.report-summary-card h2{font-size:20px}.report-summary-card .table{table-layout:fixed}.report-summary-card .table thead{background:#f8fafc}.report-summary-card .table td,.report-summary-card .table th{padding:10px}.report-summary-card .table td:first-child,.report-summary-card .table th:first-child{width:48%}.report-type-summary-table td:first-child,.report-type-summary-table th:first-child{width:32%}.report-type-summary-table td:nth-child(2),.report-type-summary-table th:nth-child(2){width:34%}.report-type-summary-table td:nth-child(3),.report-type-summary-table td:nth-child(4),.report-type-summary-table th:nth-child(3),.report-type-summary-table th:nth-child(4){width:17%}.reports-detail-panel{margin-top:16px;overflow:auto}.reports-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 18px 10px;border-bottom:1px solid var(--line)}.reports-detail-head h2{margin-bottom:4px}.reports-detail-table tbody tr:hover{background:#fbfcfe}.dashboard-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.dashboard-stats div{display:grid;grid-gap:2px;gap:2px;border:1px solid var(--line);border-radius:8px;padding:10px;background:#fbfcfe}.dashboard-stats strong{font-size:24px}.dashboard-stats span,.dashboard-workers{color:var(--muted);font-size:13px}.dashboard-workers{display:grid;grid-gap:4px;gap:4px}.dashboard-workers strong{color:var(--text)}.dashboard-worker-list{display:flex;flex-wrap:wrap;gap:6px}.dashboard-worker-list a{display:inline-flex;align-items:center;min-height:26px;border-radius:999px;background:var(--green-soft);color:var(--green-dark);padding:0 9px;font-size:13px;font-weight:800}.dashboard-worker-list a:hover{background:#dff3e7}.dashboard-workers-more{margin-top:2px}.dashboard-workers-more summary{width:-moz-fit-content;width:fit-content;color:var(--red);cursor:pointer;font-size:13px;font-weight:800;list-style:none}.dashboard-workers-more summary::-webkit-details-marker{display:none}.error-page{min-height:100vh;display:grid;place-items:center;padding:20px}.error-card{width:min(520px,100%)}.table{width:100%;border-collapse:collapse}.table td,.table th{padding:12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-size:14px}.table th{color:#526173;font-size:12px;text-transform:uppercase}.table-toolbar{align-items:center;gap:16px;padding:14px;border-bottom:1px solid var(--line)}.section-head,.table-toolbar{display:flex;justify-content:space-between}.section-head{align-items:flex-start;gap:12px;margin-bottom:18px}.section-head h2{margin-bottom:4px}.badge{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:999px;background:#eef2f7;color:#435267;font-size:12px;font-weight:700}.archived-row{opacity:.72}.status-active{background:var(--green-soft);color:var(--green-dark)}.status-archived{background:#f7e8e6;color:var(--danger)}.calendar{overflow:auto}.calendar-load-more{display:flex;align-items:center;justify-content:center;gap:12px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:12px;margin-top:12px;box-shadow:0 8px 24px rgba(16,24,40,.05)}.calendar-load-more span{color:#66758a;font-size:13px;font-weight:800}.calendar-picker-panel,.calendar-tabs{margin-bottom:12px}.calendar-overview{display:grid;grid-template-columns:minmax(360px,.9fr) minmax(520px,1.6fr);align-items:center;grid-gap:18px;gap:18px}.calendar-picker-form{display:grid;grid-template-columns:auto minmax(260px,1fr);align-items:center;grid-gap:10px;gap:10px}.calendar-picker-form label{color:#66758a;font-size:13px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.calendar-overview-summary{display:grid;grid-template-columns:minmax(360px,1.15fr) minmax(220px,.85fr);align-items:center;grid-gap:12px;gap:12px}.calendar-overview-stats{gap:8px}.calendar-overview-stats div{min-height:54px;padding:8px 10px}.calendar-overview-stats strong{font-size:22px}.calendar-overview-workers{min-width:0}.calendar-overview-more{display:inline-flex;align-items:center;min-height:26px;border-radius:999px;background:#eef2f7;color:#526173;padding:0 9px;font-size:13px;font-weight:900}.calendar-tab-list{display:inline-flex;flex-wrap:wrap;gap:4px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:4px}.calendar-tab{min-height:34px;display:inline-flex;align-items:center;border-radius:6px;color:#435267;padding:0 12px;font-weight:800}.calendar-tab:hover{background:#f5f7fb;color:var(--red-dark)}.calendar-tab.is-active{background:var(--red);color:#fff}.filters-compact{grid-template-columns:minmax(180px,1.2fr) repeat(3,minmax(140px,1fr)) auto auto;gap:8px;padding:10px;margin-bottom:12px}.shift-legend{display:flex;align-items:center;gap:14px;padding:9px 12px;margin-bottom:12px}.shift-legend>div{display:flex;flex-wrap:wrap;gap:8px}.legend-item{min-height:28px;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:999px;padding:0 10px;background:#fff;color:#334155;font-size:13px;font-weight:700}.legend-item span{width:10px;height:10px;border-radius:50%;flex:0 0 10px}.calendar-grid{min-width:1500px;display:grid;grid-template-columns:300px repeat(7,minmax(170px,1fr))}.calendar-grid-day{min-width:620px;grid-template-columns:300px minmax(240px,1fr)}.calendar-cell,.calendar-head,.calendar-user{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:96px;padding:10px;background:#fff}.calendar-open-row{background:#fff}.avatar-free{background:var(--green)}.calendar-head{min-height:80px;position:-webkit-sticky;position:sticky;top:0;z-index:1;text-align:center}.calendar-head>strong{display:inline-flex;color:#1f2937;font-size:16px;font-weight:700;line-height:1.2}.calendar-head .muted{margin-top:3px;font-size:13px}.date-history-link{display:inline-flex;color:#1f2937;font-size:16px;font-weight:700;line-height:1.2;text-decoration:underline;-webkit-text-decoration-color:transparent;text-decoration-color:transparent;text-underline-offset:4px}.date-history-link:hover{color:var(--red);-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}.calendar-user{position:-webkit-sticky;position:sticky;left:0;z-index:2;display:flex;align-items:center;gap:10px;min-width:0}.calendar-current-user,.calendar-current-user-cell{background:#f4f8fb}.calendar-current-user{box-shadow:inset 4px 0 0 #8aa7bd}.calendar-current-user .user-name:after{content:"вы";display:inline-flex;min-height:20px;align-items:center;margin-left:8px;border-radius:999px;background:#e7eff5;color:#4d6578;padding:0 7px;font-size:11px;font-weight:800}.calendar-user-link{display:flex;align-items:center;gap:10px;min-width:0;color:inherit}.calendar-corner{left:0;z-index:3;text-align:left}.avatar{width:36px;height:36px;flex:0 0 36px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--red);font-size:13px;font-weight:800;overflow:hidden}.avatar.avatar-free{background:var(--green)}.avatar img{width:100%;height:100%;display:block;object-fit:cover}.avatar-sm{width:30px;height:30px;flex-basis:30px;font-size:11px}.avatar-lg{width:76px;height:76px;flex-basis:76px;font-size:22px}.user-name{font-weight:700;max-width:220px;white-space:normal;overflow:hidden;line-height:1.25}.shift-card{display:grid;grid-gap:5px;gap:5px;width:100%;max-width:100%;min-width:0;min-height:58px;-moz-appearance:none;appearance:none;-webkit-appearance:none;border:1px solid color-mix(in srgb,var(--shift-color,#d28c3f) 30%,#d8e0ea);border-left:5px solid var(--shift-color,#d28c3f);border-radius:8px;color:var(--text);-webkit-text-fill-color:currentColor;background:color-mix(in srgb,var(--shift-color,#d28c3f) 13%,#fff);padding:10px 12px;text-align:left;cursor:pointer;box-shadow:0 1px 0 rgba(16,24,40,.03);overflow:hidden}.shift-card:hover{background:color-mix(in srgb,var(--shift-color,#d28c3f) 18%,#fff)}.shift-card-readonly{cursor:default}.shift-card-readonly:hover{background:color-mix(in srgb,var(--shift-color,#d28c3f) 13%,#fff)}.shift-card:disabled{cursor:not-allowed;filter:none;opacity:1;color:var(--text);-webkit-text-fill-color:currentColor}.free-shifts-cell{display:grid;min-width:0;align-content:start;grid-gap:8px;gap:8px;background:#fff}.empty-open-shifts{align-self:center;justify-self:center;text-align:center}.shift-slot-cell{display:grid;min-width:0;align-content:center;grid-gap:8px;gap:8px}.daily-shift-address-note{display:inline-flex;align-items:center;justify-content:center;justify-self:center;width:-moz-fit-content;width:fit-content;max-width:100%;min-height:32px;border:1px dashed #d8e0ea;border-radius:8px;background:#f8fafc;color:#66758a;padding:4px 12px;font-size:12px;font-weight:800;line-height:1.25;text-align:center}.open-shift-card{display:block;width:100%;max-width:100%;min-width:0;border:0;font:inherit}.open-shift-unavailable{cursor:default}.open-shift-free{border-color:color-mix(in srgb,var(--green) 35%,#d8e0ea)}.open-shift-partial{border-color:color-mix(in srgb,#d28c3f 45%,#d8e0ea)}.open-shift-closed{opacity:.84}.open-shift-overfull{border-color:color-mix(in srgb,var(--red) 45%,#d8e0ea)}.shift-card span,.shift-card strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis}.shift-card strong{font-size:13px;line-height:1.2;white-space:nowrap}.shift-card span{font-size:12px;font-weight:700;line-height:1.28;white-space:normal;overflow-wrap:anywhere}.shift-card .shift-time{color:#334155}.shift-card .shift-status{display:inline-flex;width:-moz-fit-content;width:fit-content;max-width:100%;border-radius:999px;background:rgba(255,255,255,.68);color:#526173;padding:2px 7px}.shift-card.open-shift-unavailable .shift-status{border-radius:8px;background:rgba(255,255,255,.58);color:#435267;padding:5px 13px}.shift-template-list{display:flex;flex-wrap:wrap;gap:8px}.shift-template-wrap{position:relative;display:inline-flex}.shift-template-button{min-height:34px;display:inline-flex;align-items:center;gap:7px;border:1px solid #d7dde8;border-radius:8px;background:#fff;color:var(--text);padding:0 28px 0 10px;cursor:pointer;font-size:13px;font-weight:700}.shift-template-button:hover{background:#f5f7fb}.shift-template-button span{width:10px;height:10px;border-radius:50%;flex:0 0 10px}.shift-template-delete{position:absolute;top:-7px;right:-7px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:1px solid #ffd2cc;border-radius:50%;background:#fff;color:var(--red);cursor:pointer;padding:0;line-height:0;opacity:0;pointer-events:none;box-shadow:0 8px 18px rgba(16,24,40,.12);transition:opacity .15s ease,background .15s ease,color .15s ease}.shift-template-delete svg{display:block;width:12px;height:12px;flex:0 0 12px}.shift-template-delete:focus-visible,.shift-template-wrap:hover .shift-template-delete{opacity:1;pointer-events:auto}.shift-template-delete:hover{background:var(--red);color:#fff}.shift-template-delete:disabled{cursor:wait;opacity:.7}.shift-history{border-top:1px solid var(--line);margin-top:16px;padding-top:14px}.shift-history h3{margin:0 0 8px;font-size:16px}.shift-view-card{display:grid;grid-gap:14px;gap:14px;border:1px solid var(--line);border-radius:8px;background:#fbfcfe;padding:14px}.shift-view-title{display:flex;align-items:center;gap:10px}.shift-view-title>span{width:14px;height:14px;flex:0 0 14px;border-radius:50%;border:1px solid rgba(15,23,42,.12)}.shift-view-title strong{font-size:18px}.shift-view-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.shift-view-grid div{display:grid;grid-gap:4px;gap:4px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px 12px}.shift-view-grid span{color:#66758a;font-size:12px;font-weight:800;text-transform:uppercase}.shift-view-grid strong{line-height:1.35}.shift-view-status{margin:0}.history-item{border:1px solid var(--line);border-radius:8px;padding:10px;margin-top:8px;font-size:13px;text-align:left}.day-history-modal{width:min(760px,calc(100vw - 32px))}.day-history-list{max-height:min(58vh,520px);overflow:auto}.day-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px;margin:16px 0}.day-summary-grid h3,.shift-history h3{margin:0 0 8px;font-size:15px}.day-summary-item{display:flex;align-items:flex-start;gap:9px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:9px 10px;margin-top:8px}.day-summary-item>span{width:10px;height:10px;flex:0 0 10px;border-radius:50%;margin-top:4px}.day-summary-item small,.day-summary-item strong{display:block}.day-summary-item small{color:#66758a;font-weight:700}.warning-box{display:grid;grid-gap:4px;gap:4px;border:1px solid #f2c4bf;border-radius:8px;background:#fff8f6;padding:10px 12px;margin-bottom:14px;font-size:13px}.warning-box,.warning-box strong{color:#7a271a}.empty-slot{width:100%;min-height:44px;display:grid;place-items:center;border:1px dashed #d1dae8;border-radius:8px;background:transparent;color:#159653;cursor:pointer}.empty-slot:hover{border-color:#a8d8bd;background:#f2fbf6}.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.34);display:none;align-items:center;justify-content:center;padding:18px;z-index:80}.modal-backdrop.modal-open,.modal-backdrop:target{display:flex}.modal-backdrop.is-dismissed{display:none}.modal{width:min(520px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:8px;padding:20px;box-shadow:var(--shadow)}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.app-confirm-backdrop{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(15,23,42,.38)}.app-confirm{width:min(420px,100%);display:grid;grid-gap:14px;gap:14px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:18px;box-shadow:var(--shadow)}.app-confirm h3{margin:0;font-size:20px}.app-confirm p{margin:0;color:var(--muted);line-height:1.45}.app-confirm .toolbar{justify-content:flex-start}.app-toast{position:fixed;right:18px;bottom:18px;z-index:90;max-width:min(360px,calc(100vw - 36px));margin:0;box-shadow:var(--shadow)}.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.form-row-wide-left{grid-template-columns:minmax(0,1fr) 110px}.form-row-time-capacity{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 130px}.color-input-full{padding:4px}.settings-layout{display:grid;grid-template-columns:minmax(360px,.85fr) minmax(560px,1.45fr);grid-gap:16px;gap:16px;align-items:start}.settings-card{min-height:0}.settings-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}.settings-card-head h2{margin-bottom:4px}.settings-create-row{grid-template-columns:minmax(0,1fr) auto;grid-gap:10px;padding:10px}.settings-create-row,.settings-shift-create{display:grid;gap:10px;border:1px solid var(--line);border-radius:8px;background:#f8fafc;margin-bottom:12px}.settings-shift-create{grid-template-columns:minmax(140px,.8fr) minmax(220px,1fr) 92px 120px 120px auto;grid-gap:10px;align-items:end;padding:12px}.settings-create-row .field,.settings-shift-create .field{margin-bottom:0}.settings-shift-copy{margin-bottom:22px}.settings-shift-copy .field{margin-bottom:12px}.settings-copy-note{margin-top:12px;line-height:1.45}.settings-list{display:grid;grid-gap:8px;gap:8px}.shift-type-list{gap:18px}.shift-type-group{display:grid;grid-gap:8px;gap:8px;border:1px solid var(--line);border-radius:8px;background:#fbfcfe;padding:10px}.shift-type-group-title{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 2px 4px}.settings-list-item{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:10px;gap:10px;align-items:center;border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px}.shift-type-item{grid-template-columns:minmax(150px,.7fr) minmax(0,1.6fr) auto}.shift-type-preview{display:flex;align-items:center;gap:10px;min-width:0}.shift-type-preview small,.shift-type-preview strong{display:block;min-width:0}.shift-type-preview strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shift-type-preview small{color:#66758a;font-weight:700}.shift-type-dot{width:18px;height:18px;flex:0 0 18px;border:1px solid rgba(15,23,42,.14);border-radius:50%}.settings-row-form{display:grid;grid-template-columns:minmax(132px,.9fr) minmax(150px,1fr) 54px 96px 96px auto;grid-gap:8px;gap:8px;align-items:center;min-width:0}.settings-row-delete,.settings-row-form>*{min-width:0}.position-row-form{grid-template-columns:minmax(160px,1fr) auto}.profile-avatar-row{display:flex;align-items:center;gap:18px;margin-bottom:16px}.profile-layout{display:grid;grid-template-columns:minmax(520px,1.2fr) minmax(360px,.8fr);grid-gap:16px;gap:16px;align-items:stretch}.profile-data-card,.profile-password-card{min-height:100%}.profile-main-head{display:grid;grid-template-columns:auto minmax(0,1fr);grid-gap:16px;gap:16px;align-items:center;margin-bottom:18px}.profile-main-head h2{margin-bottom:4px}.profile-badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.profile-upload-form{border:1px solid var(--line);border-radius:8px;padding:12px;background:#fbfcfe;margin-bottom:14px}.profile-upload-row{display:grid;grid-template-columns:minmax(220px,1fr) auto;grid-gap:10px;gap:10px;align-items:end}.profile-upload-row .field{margin-bottom:0}.profile-details-table{table-layout:fixed}.profile-details-table td{padding:11px 12px}.profile-details-table td:first-child{width:160px;color:#41516a;font-size:13px;font-weight:700;text-transform:uppercase}.profile-details-table tr:last-child td{border-bottom:0}.profile-calendar-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:5px 18px;gap:5px 18px;line-height:1.35;overflow-wrap:anywhere}.profile-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.profile-info-item{display:grid;grid-gap:5px;gap:5px;border:1px solid var(--line);border-radius:8px;padding:12px;background:#fff}.profile-info-item span{color:#66758a;font-size:12px;font-weight:800;text-transform:uppercase}.profile-info-item strong{font-size:14px;line-height:1.35}.profile-max-panel{display:grid;grid-template-columns:minmax(170px,.35fr) minmax(0,1fr);grid-gap:12px;gap:12px;align-items:end;border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.max-profile-row{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;grid-gap:8px;gap:8px;align-items:center}.profile-password-card .button{margin-top:2px}.profile-shifts-panel{margin-top:16px;overflow:auto}.profile-shift-summary{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.profile-shifts-table tbody tr:hover{background:#fbfcfe}.file-input{height:auto;padding:9px 12px}.users-create-layout{display:grid;grid-template-columns:minmax(520px,1.3fr) minmax(280px,.7fr);grid-gap:16px;gap:16px;align-items:stretch}.users-create-card{min-height:100%}.users-create-card .button{margin-top:2px}.users-stats-card{min-height:100%}.users-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.users-stat{display:grid;grid-gap:4px;gap:4px;min-height:96px;align-content:center;border:1px solid var(--line);border-radius:8px;padding:14px;background:#fbfcfe}.users-stat span{color:#66758a;font-size:13px;font-weight:800}.users-stat strong{font-size:30px;line-height:1}.user-cell{display:flex;align-items:center;gap:10px}.user-profile-link{width:-moz-fit-content;width:fit-content;border-radius:8px;padding:4px}.user-profile-link:hover{background:var(--red-soft);color:var(--red-dark)}.user-profile-modal{width:min(920px,calc(100vw - 32px))}.users-table{table-layout:fixed}.users-table td{overflow-wrap:anywhere}.users-table td:first-child,.users-table th:first-child{width:32%}.users-table td:nth-child(2),.users-table th:nth-child(2){width:22%}.users-table td:nth-child(3),.users-table td:nth-child(5),.users-table td:nth-child(6),.users-table th:nth-child(3),.users-table th:nth-child(5),.users-table th:nth-child(6){width:12%}.users-table td:nth-child(4),.users-table th:nth-child(4){width:18%}.access-summary{display:flex;flex-wrap:wrap;gap:6px;max-width:100%;min-width:0}.access-chip{display:inline-flex;align-items:center;max-width:100%;min-height:24px;border:1px solid #dbe3ee;border-radius:999px;background:#f8fafc;color:#334155;padding:0 8px;font-size:12px;font-weight:800;line-height:1.2}.access-chip-strong{border-color:#f0c8c3;background:var(--red-soft);color:var(--red-dark)}.access-chip-more{background:#eef2f7;color:#526173}.access-full-list{display:grid;grid-gap:3px;gap:3px;color:#334155;line-height:1.35;overflow-wrap:anywhere}.history-item,.profile-log-panel{min-width:0;overflow-wrap:anywhere}.profile-edit-panel{border-top:1px solid var(--line);margin-top:16px;padding-top:16px}.profile-edit-panel summary{width:-moz-fit-content;width:fit-content;list-style:none}.profile-edit-panel summary::-webkit-details-marker{display:none}.profile-actions,.profile-edit-form{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.profile-actions{display:flex;flex-wrap:wrap;gap:8px}.profile-log-panel{border-top:1px solid var(--line);margin-top:16px;padding-top:16px}.profile-log-panel h3{margin:0 0 8px;font-size:16px}.profile-card-head{display:flex;align-items:center;gap:16px;margin-bottom:16px}.profile-card-head h3{margin:0 0 6px;font-size:22px}.color-input{width:54px;padding:4px}.settings-time-select{min-width:96px}.settings-department-select{min-width:156px}.mobile-schedule{display:none;margin-top:16px}.mobile-day{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}.mobile-day-picker{display:flex;gap:8px;overflow-x:auto;padding:2px 0 10px;margin:4px -4px 8px;scroll-snap-type:x proximity}.mobile-day-pill{width:96px;min-width:96px;display:grid;grid-gap:2px;gap:2px;border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:#fff;color:var(--text);text-decoration:none;scroll-snap-align:start}.mobile-day-pill span{min-width:0;color:var(--muted);font-size:12px;font-weight:800;line-height:1.15;white-space:nowrap}.mobile-day-pill strong{font-size:15px}.mobile-day-pill.is-active{border-color:var(--red);background:var(--red-soft);color:var(--red)}.mobile-day-pill.is-active span{color:var(--red)}.mobile-day-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.mobile-day-head h3{margin:0}.mobile-shift{display:grid;grid-gap:4px;gap:4px;border-left:5px solid var(--green);border-radius:8px;background:#fff;padding:10px 12px;margin-top:8px;box-shadow:0 4px 18px rgba(16,24,40,.06)}.mobile-shift-button{width:100%;border-top:0;border-right:0;border-bottom:0;color:var(--text);cursor:pointer;font:inherit;text-align:left}.mobile-shift-disabled{opacity:.68}.mobile-shift-readonly{box-shadow:none;cursor:default}.mobile-user-list{display:grid;grid-gap:10px;gap:10px;margin-top:10px}.mobile-user-card{border:1px solid var(--line);border-radius:8px;background:#fff;padding:12px}.mobile-current-user-card{background:#f4f8fb;box-shadow:inset 4px 0 0 #8aa7bd}.mobile-user-card-head{display:flex;align-items:center;gap:10px}.mobile-user-card-head .calendar-user-link,.mobile-user-card-head>div{min-width:0}.mobile-user-card-head strong{display:block;color:var(--text);line-height:1.25}.mobile-user-card-head span{display:block;color:var(--muted);font-size:13px;line-height:1.25}.mobile-empty-user-shifts{margin:10px 0 0}.mobile-add-shift{min-height:42px;display:flex;align-items:center;justify-content:center;gap:7px;margin-top:10px;border:1px dashed #b8d3ea;border-radius:8px;background:#fbfdff;color:var(--green);font-weight:800;text-decoration:none}.mobile-add-shift:hover{border-color:var(--green);background:#f2fbf6}.mobile-daily-shift-address{border:1px dashed #d8e0ea;border-radius:8px;background:#f8fafc;color:#66758a;padding:9px 10px;font-size:13px;font-weight:800}.log-list{display:grid;grid-gap:0;gap:0}.log-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:4px}.log-item{display:grid;grid-template-columns:32px 1fr;grid-gap:12px;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.log-dot{width:10px;height:10px;border-radius:50%;background:var(--red);margin:6px auto 0}.notification-list{display:grid;grid-gap:10px;gap:10px}.notification-item{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;border:1px solid var(--line);border-radius:8px;padding:14px}.notification-item p{margin:6px 0}.notification-unread{border-color:#ffb8bf;background:var(--red-soft)}a[aria-disabled=true]{pointer-events:none;opacity:.5}@media (max-width:1300px){.profile-layout,.profile-max-panel,.settings-layout,.users-create-layout{grid-template-columns:1fr}.settings-shift-create{grid-template-columns:minmax(130px,.8fr) minmax(220px,1fr) 92px 110px 110px auto}.shift-type-item{grid-template-columns:minmax(0,1fr);align-items:stretch}.shift-type-item .settings-row-form{grid-template-columns:minmax(260px,1.15fr) minmax(170px,1fr) 58px 96px 96px minmax(108px,auto)}.shift-type-item .settings-department-select{min-width:0}.shift-type-item .settings-row-delete .button{width:100%;max-width:180px}.reports-kpi-grid,.reports-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.reports-filter-panel{grid-template-columns:1fr}.reports-filter-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-planner{grid-template-columns:repeat(2,minmax(280px,1fr))}}@media (max-width:1100px){.shift-type-item .settings-row-form{grid-template-columns:minmax(260px,1fr) minmax(170px,1fr) 58px}.shift-type-item .settings-row-form .button{width:100%}}@media (max-width:900px){body,html{overflow-x:hidden;width:100%}body{background:#fff}.app-shell{grid-template-columns:1fr;width:100%;overflow-x:hidden}.sidebar{position:-webkit-sticky;position:sticky;top:0;z-index:10;height:auto;border-right:0;border-bottom:1px solid var(--line);padding:12px;width:100%;overflow:hidden}.brand{height:44px;margin-bottom:12px}.brand-logo{width:146px;height:auto}.nav{grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px}.nav,.nav-group{display:grid;gap:8px}.nav-group{grid-column:1/-1;grid-template-columns:1fr;grid-gap:8px}.logout-button,.nav a{min-height:38px;min-width:0;white-space:normal;padding:0 10px}.nav-subitems{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px}.nav-subitems a{min-height:38px;font-size:13px}.sidebar-user{display:none}.content{padding:14px;width:100%;max-width:100vw;overflow-x:hidden}.admin-dashboard,.dashboard-stats,.grid-2,.grid-3,.profile-layout,.reports-kpi-grid,.reports-summary-grid,.settings-layout,.users-create-layout{grid-template-columns:1fr}.page-title{align-items:flex-start;flex-direction:column;gap:10px;margin-bottom:12px}.page-title h1{font-size:24px}.toolbar{width:100%;grid-gap:8px;gap:8px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.page-title .toolbar{grid-template-columns:44px minmax(0,1fr) 44px}.toolbar .button{width:100%;min-width:0}.toolbar .button.icon{width:100%}.filters,.reports-filter-actions,.reports-filter-grid{grid-template-columns:1fr}.report-summary-card{min-height:0}.reports-detail-head{flex-direction:column;padding:14px 0 10px}.calendar-overview,.calendar-overview-summary,.calendar-picker-form{grid-template-columns:1fr}.calendar-tab-list{width:100%;display:grid;grid-template-columns:1fr 1fr}.calendar-tab{justify-content:center}.quick-planner-panel summary{min-height:auto;padding:12px}.quick-planner{padding:12px}.form-row,.form-row-time-capacity,.form-row-wide-left,.max-profile-row,.profile-info-grid,.profile-upload-row,.quick-planner,.quick-planner-card .form-row,.quick-planner-create .form-row{grid-template-columns:1fr}.color-input-full{height:48px}.calendar,.desktop-calendar-load-more{display:none}.mobile-schedule{display:block;margin-top:12px;border-radius:0;border-left:0;border-right:0;box-shadow:none;overflow:hidden}.mobile-schedule h2{margin-top:0;font-size:20px}.mobile-day{padding-top:16px;margin-top:16px}.mobile-day-head{align-items:flex-start;flex-direction:column}.mobile-day-head .button{width:100%}.mobile-shift{min-height:54px;padding:12px}.mobile-user-card .mobile-shift{box-shadow:none;background:#f9fafb}.mobile-user-card-head .calendar-user-link{width:100%}.day-summary-grid,.shift-view-grid{grid-template-columns:1fr}.modal-backdrop{align-items:stretch;padding:10px}.modal{width:100%;max-height:calc(100vh - 20px);padding:16px}.position-row-form,.settings-create-row,.settings-list-item,.settings-row-form,.settings-shift-create,.shift-type-item{grid-template-columns:1fr}.profile-avatar-row,.shift-type-preview{align-items:flex-start}.profile-avatar-row{flex-direction:column}.profile-main-head{align-items:flex-start;grid-template-columns:auto minmax(0,1fr)}.profile-details-table td:first-child{width:108px}.profile-calendar-list{grid-template-columns:1fr}.notification-item,.profile-card-head,.table-toolbar{align-items:flex-start;flex-direction:column}.table{min-width:0;table-layout:fixed}.table td,.table th{padding:10px 8px;word-break:break-word}.users-panel{overflow:visible!important}.users-table,.users-table>tbody,.users-table>tbody>tr,.users-table>tbody>tr>td{display:block;width:100%}.users-table th,.users-table th:first-child,.users-table th:nth-child(2),.users-table th:nth-child(3),.users-table th:nth-child(4),.users-table th:nth-child(5),.users-table th:nth-child(6),.users-table>tbody>tr>td,.users-table>tbody>tr>td:first-child,.users-table>tbody>tr>td:nth-child(2),.users-table>tbody>tr>td:nth-child(3),.users-table>tbody>tr>td:nth-child(4),.users-table>tbody>tr>td:nth-child(5),.users-table>tbody>tr>td:nth-child(6){width:100%}.users-table{table-layout:auto}.users-table thead{display:none}.users-table>tbody{display:grid;grid-gap:10px;gap:10px;padding:10px}.users-table>tbody>tr{border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden}.users-table>tbody>tr>td{display:block;border-bottom:1px solid var(--line);padding:10px 12px;word-break:normal;overflow-wrap:anywhere}.users-table>tbody>tr>td>*{max-width:100%}.users-table .badge{white-space:normal;text-align:left}.users-table>tbody>tr>td:last-child{border-bottom:0}.users-table>tbody>tr>td:before{color:var(--muted);content:"";display:block;margin-bottom:6px;font-size:12px;font-weight:800;text-transform:uppercase}.users-table>tbody>tr>td:first-child:before{content:"Пользователь"}.users-table>tbody>tr>td:nth-child(2):before{content:"Контакты"}.users-table>tbody>tr>td:nth-child(3):before{content:"Роль"}.users-table>tbody>tr>td:nth-child(4):before{content:"Доступы"}.users-table>tbody>tr>td:nth-child(5):before{content:"Должность"}.users-table>tbody>tr>td:nth-child(6):before{content:"Статус"}.users-table .user-cell{align-items:center;width:100%;max-width:100%}.users-table .user-cell strong{word-break:normal;overflow-wrap:anywhere;line-height:1.25}.users-table .user-profile-link{width:100%;max-width:100%}.reports-detail-panel{overflow:visible!important;background:transparent;border:0;box-shadow:none}.reports-detail-table,.reports-detail-table tbody,.reports-detail-table td,.reports-detail-table tr{display:block;width:100%}.reports-detail-table{table-layout:auto;border-collapse:separate;border-spacing:0 10px}.reports-detail-table thead{display:none}.reports-detail-table tbody{display:grid;grid-gap:10px;gap:10px}.reports-detail-table tr{border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden}.reports-detail-table td{display:grid;grid-template-columns:96px minmax(0,1fr);grid-gap:12px;gap:12px;border-bottom:1px solid var(--line);padding:10px 12px;word-break:normal;overflow-wrap:anywhere}.reports-detail-table td:last-child{border-bottom:0}.reports-detail-table td:before{color:var(--muted);content:attr(data-label);font-size:12px;font-weight:800;text-transform:uppercase}.reports-detail-table .badge{justify-self:start;max-width:100%;min-height:28px;height:auto;padding:5px 10px;border-radius:8px;line-height:1.2;white-space:normal;overflow-wrap:anywhere}.profile-shifts-panel{overflow:visible!important;background:transparent;border:0;box-shadow:none}.profile-shift-summary{justify-content:flex-start}.profile-shifts-table,.profile-shifts-table tbody,.profile-shifts-table td,.profile-shifts-table tr{display:block;width:100%}.profile-shifts-table{table-layout:auto;border-collapse:separate;border-spacing:0 10px}.profile-shifts-table thead{display:none}.profile-shifts-table tbody{display:grid;grid-gap:10px;gap:10px}.profile-shifts-table tr{border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden}.profile-shifts-table td{display:grid;grid-template-columns:96px minmax(0,1fr);grid-gap:12px;gap:12px;border-bottom:1px solid var(--line);padding:10px 12px;word-break:normal;overflow-wrap:anywhere}.profile-shifts-table td:last-child{border-bottom:0}.profile-shifts-table td:before{color:var(--muted);content:attr(data-label);font-size:12px;font-weight:800;text-transform:uppercase}.panel,.panel.pad,section[style*=overflow]{max-width:100%}.panel{border-radius:8px}}@media (max-width:520px){.nav a svg{display:none}.auth-card,.panel.pad{padding:14px}.nav{grid-template-columns:1fr}.button{min-height:42px;padding:0 12px}.department-switch .toolbar{grid-template-columns:1fr}.page-title .toolbar{grid-template-columns:44px minmax(0,1fr) 44px}.page-title .toolbar .button{padding:0 8px}}