:root{--primary:#2066b0;--secondary:#deeaf7;--graphite:#44494e;--white:#fff;--primary-hover:#1b599c;--primary-active:#164d87;--primary-soft:#eaf2fb;--primary-tint:#c7ddf3;--bg:#f5f8fc;--surface:#fff;--surface-2:#f0f5fb;--border:#e2e9f1;--border-strong:#cdd8e5;--divider:#edf1f6;--text:#2a2f34;--text-body:#44494e;--text-muted:#79828c;--text-faint:#a6aeb8;--text-on-primary:#fff;--success:#1f9d5f;--success-soft:#e3f5ec;--success-text:#157a49;--warning:#d99409;--warning-soft:#fcf2db;--warning-text:#8f6206;--danger:#dc3a44;--danger-hover:#c52f39;--danger-active:#ab2730;--danger-soft:#fbe6e7;--danger-text:#b02831;--info:#2066b0;--info-soft:#deeaf7;--info-text:#185290;--r-xs:6px;--r-sm:8px;--r-md:10px;--r-lg:14px;--r-xl:18px;--r-pill:999px;--sh-xs:0 1px 2px #2643670f;--sh-sm:0 2px 6px #26436712;--sh-md:0 6px 18px #2643671a;--sh-lg:0 16px 40px #26436729;--sh-focus:0 0 0 3px #2066b02e;--sh-focus-danger:0 0 0 3px #dc3a442e;--font:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--fs-page:26px;--fs-section:19px;--fs-card:15px;--fs-body:14px;--fs-label:13px;--fs-small:12px;--lh-tight:1.25;--lh-base:1.5;--gap:16px;--pad:20px;--ease:cubic-bezier(.4, 0, .2, 1);--dur:.22s}*{box-sizing:border-box}html,body{font-family:var(--font);font-size:var(--fs-body);line-height:var(--lh-base);color:var(--text-body);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;padding:0}h1,h2,h3,h4,p{margin:0}button{font-family:inherit}::selection{background:var(--primary);color:#fff}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#cdd8e5 padding-box content-box;border:2px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#b3c2d4 padding-box content-box}::-webkit-scrollbar-track{background:0 0}.t-page{font-size:var(--fs-page);color:var(--text);font-weight:700;line-height:var(--lh-tight);letter-spacing:-.01em}.t-section{font-size:var(--fs-section);color:var(--text);font-weight:650;line-height:var(--lh-tight)}.t-card{font-size:var(--fs-card);color:var(--text);font-weight:600}.t-body{font-size:var(--fs-body);color:var(--text-body);font-weight:400}.t-label{font-size:var(--fs-label);color:var(--text-body);font-weight:600}.t-muted{font-size:var(--fs-label);color:var(--text-muted);font-weight:400}.t-small{font-size:var(--fs-small);color:var(--text-muted);font-weight:400}@keyframes spin{to{transform:rotate(360deg)}}@keyframes skeleton-shine{0%{background-position:-200% 0}to{background-position:200% 0}}@media (prefers-reduced-motion:no-preference){@keyframes drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}@keyframes toast-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:none}}}.btn{font-family:var(--font);font-weight:600;font-size:var(--fs-body);white-space:nowrap;border-radius:var(--r-md);cursor:pointer;height:40px;transition:background var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), transform 80ms var(--ease);-webkit-user-select:none;user-select:none;border:1.5px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 16px;line-height:1;display:inline-flex;position:relative}.btn:focus-visible{box-shadow:var(--sh-focus);outline:none}.btn:active:not(:disabled){transform:translateY(.5px)}.btn .icon{margin:0 -2px}.btn--sm{height:32px;font-size:var(--fs-label);border-radius:var(--r-sm);padding:0 12px}.btn--lg{height:46px;padding:0 22px;font-size:15px}.btn--block{width:100%}.btn--icon{width:40px;padding:0}.btn--icon.btn--sm{width:32px}.btn:disabled{cursor:not-allowed;opacity:.5}.btn--primary{background:var(--primary);color:#fff}.btn--primary:hover:not(:disabled){background:var(--primary-hover)}.btn--primary:active:not(:disabled){background:var(--primary-active)}.btn--secondary{background:var(--secondary);color:var(--primary)}.btn--secondary:hover:not(:disabled){background:#d0e1f5}.btn--secondary:active:not(:disabled){background:var(--primary-tint)}.btn--danger{background:var(--danger);color:#fff}.btn--danger:hover:not(:disabled){background:var(--danger-hover)}.btn--danger:active:not(:disabled){background:var(--danger-active)}.btn--danger:focus-visible{box-shadow:var(--sh-focus-danger)}.btn--ghost{color:var(--primary);border-color:var(--primary-tint);background:0 0}.btn--ghost:hover:not(:disabled){background:var(--primary-soft);border-color:var(--primary)}.btn--ghost:active:not(:disabled){background:var(--secondary)}.btn--quiet{color:var(--text-muted);background:0 0;border-color:#0000}.btn--quiet:hover:not(:disabled){background:var(--surface-2);color:var(--text-body)}.btn.is-loading{pointer-events:none;color:#0000!important}.btn.is-loading .btn-spin{border:2px solid;border-top-color:#0000;border-radius:50%;width:17px;height:17px;animation:.7s linear infinite spin;position:absolute}.btn--primary.is-loading .btn-spin,.btn--danger.is-loading .btn-spin{color:#fff}.btn--secondary.is-loading .btn-spin,.btn--ghost.is-loading .btn-spin{color:var(--primary)}.field{flex-direction:column;gap:6px;display:flex}.field-label{font-size:var(--fs-label);color:var(--text-body);font-weight:600}.field-label .req{color:var(--danger);margin-left:2px}.field-hint{font-size:var(--fs-small);color:var(--text-muted)}.field-error{font-size:var(--fs-small);color:var(--danger-text);align-items:center;gap:5px;display:flex}.field--notch{position:relative}.field-notch-label{z-index:1;background:var(--surface);font-size:var(--fs-small);pointer-events:none;padding:0 4px;line-height:1;position:absolute;top:0;left:10px;transform:translateY(-50%)}.input-wrap{align-items:center;display:flex;position:relative}.input-wrap .input-lead{color:var(--text-muted);pointer-events:none;display:flex;position:absolute;left:12px}.input-wrap .input-trail{color:var(--text-muted);display:flex;position:absolute;right:10px}.input-wrap.has-lead .input{padding-left:38px}.input-wrap.has-trail .input{padding-right:38px}.input{width:100%;height:40px;font-family:var(--font);font-size:var(--fs-body);color:var(--text);background:var(--surface);border:1.5px solid var(--border-strong);border-radius:var(--r-md);transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), background var(--dur);outline:none;padding:0 12px}.input::placeholder{color:var(--text-faint)}.input:hover:not(:disabled):not(:focus){border-color:#b3c2d4}.input:focus{border-color:var(--primary);box-shadow:var(--sh-focus)}.input:disabled{background:var(--surface-2);color:var(--text-faint);cursor:not-allowed}.input.is-filled{border-color:var(--border-strong);background:var(--surface)}.input.is-error{border-color:var(--danger)}.input.is-error:focus{box-shadow:var(--sh-focus-danger)}textarea.input{resize:vertical;height:auto;min-height:80px;padding:10px 12px;line-height:1.5}select.input{appearance:none;cursor:pointer;padding-right:38px}.choice{cursor:pointer;font-size:var(--fs-body);color:var(--text-body);-webkit-user-select:none;user-select:none;align-items:center;gap:9px;display:inline-flex}.choice input{opacity:0;pointer-events:none;position:absolute}.choice-box{border:1.5px solid var(--border-strong);background:var(--surface);width:19px;height:19px;transition:all var(--dur) var(--ease);color:#fff;border-radius:6px;flex:none;justify-content:center;align-items:center;display:flex}.choice-box.round{border-radius:50%}.choice input:focus-visible+.choice-box{box-shadow:var(--sh-focus)}.choice input:checked+.choice-box{background:var(--primary);border-color:var(--primary)}.choice-box .tick{opacity:0;transition:opacity .15s}.choice input:checked+.choice-box .tick{opacity:1}.choice-box .dot{width:8px;height:8px;transition:transform .15s var(--ease);background:#fff;border-radius:50%;transform:scale(0)}.choice input:checked+.choice-box.round .dot{transform:scale(1)}.choice input:disabled+.choice-box{background:var(--surface-2);border-color:var(--border)}.choice.is-disabled{color:var(--text-faint);cursor:not-allowed}.toggle{cursor:pointer;-webkit-user-select:none;user-select:none;font-size:var(--fs-body);color:var(--text-body);align-items:center;gap:10px;display:inline-flex}.toggle input{opacity:0;pointer-events:none;position:absolute}.toggle-track{width:40px;height:23px;transition:background var(--dur) var(--ease);background:#c8d3e0;border-radius:999px;flex:none;position:relative}.toggle-track:after{content:"";width:18px;height:18px;box-shadow:var(--sh-xs);transition:transform var(--dur) var(--ease);background:#fff;border-radius:50%;position:absolute;top:2.5px;left:2.5px}.toggle input:checked+.toggle-track{background:var(--primary)}.toggle input:checked+.toggle-track:after{transform:translate(17px)}.toggle input:focus-visible+.toggle-track{box-shadow:var(--sh-focus)}.toggle input:disabled+.toggle-track{opacity:.5}.multi{background:var(--surface);border:1.5px solid var(--border-strong);border-radius:var(--r-md);cursor:text;min-height:40px;transition:border-color var(--dur), box-shadow var(--dur);flex-wrap:wrap;align-items:center;gap:6px;padding:5px 10px;display:flex}.multi.is-focus{border-color:var(--primary);box-shadow:var(--sh-focus)}.multi .chip{background:var(--secondary);color:var(--primary);border-radius:var(--r-pill);font-size:var(--fs-small);align-items:center;gap:5px;padding:3px 6px 3px 10px;font-weight:600;display:inline-flex}.multi .chip button{cursor:pointer;color:var(--primary);background:0 0;border:none;border-radius:50%;padding:2px;display:flex}.multi .chip button:hover{background:#2066b026}.multi .multi-input{min-width:60px;height:28px;font-family:var(--font);font-size:var(--fs-body);background:0 0;border:none;outline:none;flex:1}.badge{border-radius:var(--r-pill);font-size:var(--fs-small);white-space:nowrap;align-items:center;gap:5px;padding:3px 10px;font-weight:600;line-height:1.4;display:inline-flex}.badge .dot{background:currentColor;border-radius:50%;width:6px;height:6px}.badge--admin{color:#6b3fb0;background:#e7ddf6}.badge--hr{background:var(--secondary);color:var(--primary)}.badge--manager{color:var(--success-text);background:#d9f0e6}.badge--custom{color:var(--text-body);background:#eef1f5}.tag{border-radius:var(--r-pill);font-size:var(--fs-small);align-items:center;gap:6px;padding:3px 11px;font-weight:600;display:inline-flex}.tag--ok{background:var(--success-soft);color:var(--success-text)}.tag--blocked{background:var(--danger-soft);color:var(--danger-text)}.tag--absent{background:var(--warning-soft);color:var(--warning-text)}.tag--neutral{color:var(--text-muted);background:#eef1f5}.tip-wrap{display:inline-flex;position:relative}.tip{z-index:60;color:#fff;font-size:var(--fs-small);border-radius:var(--r-sm);white-space:nowrap;pointer-events:none;opacity:0;box-shadow:var(--sh-md);background:#2a2f34;padding:6px 10px;font-weight:500;transition:opacity .15s,transform .15s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(4px)}.tip:after{content:"";border:5px solid #0000;border-top-color:#2a2f34;position:absolute;top:100%;left:50%;transform:translate(-50%)}.tip-wrap:hover .tip{opacity:1;transform:translate(-50%)translateY(0)}.tip-wrap:has(:focus-visible) .tip{opacity:1;transform:translate(-50%)translateY(0)}.tip--right{left:auto;right:0;transform:translateY(4px)}.tip--right:after{left:auto;right:12px;transform:none}.tip-wrap:hover .tip--right{transform:translateY(0)}.tip-wrap:has(:focus-visible) .tip--right{transform:translateY(0)}.tip--bottom{top:calc(100% + 8px);bottom:auto;transform:translate(-50%)translateY(-4px)}.tip--right.tip--bottom{transform:translateY(-4px)}.tip--bottom:after{border-top-color:#0000;border-bottom-color:#2a2f34;top:auto;bottom:100%}.tip-wrap:hover .tip--bottom{transform:translate(-50%)translateY(0)}.tip-wrap:has(:focus-visible) .tip--bottom{transform:translate(-50%)translateY(0)}.tip-wrap:hover .tip--right.tip--bottom{transform:translateY(0)}.tip-wrap:has(:focus-visible) .tip--right.tip--bottom{transform:translateY(0)}.spinner{border:2.5px solid var(--secondary);border-top-color:var(--primary);border-radius:50%;animation:.7s linear infinite spin}.skel{border-radius:var(--r-sm);background:linear-gradient(90deg,#eef2f7 25%,#e2e9f1 37%,#eef2f7 63%) 0 0/200% 100%;animation:1.4s infinite skeleton-shine}.empty{text-align:center;flex-direction:column;align-items:center;gap:4px;padding:48px 24px;display:flex}.empty-ico{border-radius:var(--r-lg);background:var(--secondary);width:64px;height:64px;color:var(--primary);justify-content:center;align-items:center;margin-bottom:10px;display:flex}.empty-ico.warn{background:var(--warning-soft);color:var(--warning)}.empty h4{font-size:var(--fs-card);color:var(--text)}.empty p{font-size:var(--fs-label);color:var(--text-muted);max-width:320px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-xs)}.filters{background:var(--secondary);border-radius:var(--r-lg);padding:16px}.filters-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));align-items:end;gap:12px;display:grid}.filters-actions{justify-content:flex-end;gap:10px;margin-top:14px;display:flex}.table-stub{border:1.5px dashed var(--border-strong);border-radius:var(--r-lg);background:repeating-linear-gradient(135deg,#f7fafd,#f7fafd 12px,#f1f6fb 12px 24px)}.table-stub-head{border-bottom:1.5px dashed var(--border-strong);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:var(--fs-small);color:var(--text-muted);align-items:center;gap:8px;padding:12px 16px;display:flex}.ov-backdrop{-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px);z-index:100;animation:overlay-in var(--dur) var(--ease);background:#1f2d3d6b;position:absolute;inset:0}.drawer{z-index:101;background:var(--surface);width:min(480px,100%);box-shadow:var(--sh-lg);border-left:1px solid var(--border);animation:drawer-in var(--dur) var(--ease);flex-direction:column;display:flex;position:absolute;top:0;bottom:0;right:0}.drawer--wide{width:min(640px,100%)}.drawer-head{border-bottom:1px solid var(--divider);flex:none;align-items:center;gap:12px;padding:18px 22px;display:flex}.drawer-head .dh-title{flex:1;min-width:0}.drawer-head h3{font-size:var(--fs-section);color:var(--text);font-weight:650}.drawer-head .dh-sub{font-size:var(--fs-small);color:var(--text-muted);margin-top:2px}.drawer-tab{z-index:2;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--border);width:44px;height:44px;box-shadow:var(--sh-md);color:var(--text-muted);cursor:pointer;transition:background var(--dur) var(--ease), color var(--dur) var(--ease), transform .12s var(--ease);justify-content:center;align-items:center;display:flex;position:absolute;top:20px;left:-54px}.drawer-tab:hover{background:var(--secondary);color:var(--primary);transform:scale(1.05)}.drawer-tab:active{transform:scale(.96)}.drawer-tab:focus-visible{box-shadow:var(--sh-focus);outline:none}@media (width<=560px){.drawer-tab{background:var(--surface-2);box-shadow:none;top:12px;left:auto;right:12px}}.drawer-body{flex:1;padding:22px;overflow-y:auto}.drawer-foot{border-top:1px solid var(--divider);background:var(--surface);flex:none;justify-content:flex-end;align-items:center;gap:10px;padding:16px 22px;display:flex}.modal-center{z-index:101;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.modal{background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--sh-lg);width:min(420px,100%);animation:modal-in var(--dur) var(--ease);text-align:center;padding:26px}.modal-ico{border-radius:var(--r-lg);justify-content:center;align-items:center;width:54px;height:54px;margin:0 auto 16px;display:flex}.modal-ico--danger{background:var(--danger-soft);color:var(--danger)}.modal-ico--info{background:var(--secondary);color:var(--primary)}.modal-ico--warn{background:var(--warning-soft);color:var(--warning)}.modal h3{color:var(--text);margin-bottom:8px;font-size:18px;font-weight:650}.modal p{font-size:var(--fs-body);color:var(--text-muted);line-height:1.55}.modal-actions{gap:10px;margin-top:22px;display:flex}.modal-actions .btn{flex:1}.toast-stack{z-index:200;flex-direction:column;gap:10px;width:340px;max-width:calc(100% - 36px);display:flex;position:absolute;top:18px;right:18px}.toast{background:var(--surface);border-radius:var(--r-md);box-shadow:var(--sh-md);border:1px solid var(--border);animation:toast-in var(--dur) var(--ease);align-items:flex-start;gap:11px;padding:13px 14px;display:flex;position:relative;overflow:hidden}.toast:before{content:"";width:4px;position:absolute;top:0;bottom:0;left:0}.toast--success:before{background:var(--success)}.toast--error:before{background:var(--danger)}.toast--warning:before{background:var(--warning)}.toast--info:before{background:var(--info)}.toast-ico{flex:none;margin-top:1px}.toast--success .toast-ico{color:var(--success)}.toast--error .toast-ico{color:var(--danger)}.toast--warning .toast-ico{color:var(--warning)}.toast--info .toast-ico{color:var(--info)}.toast-content{flex:1;min-width:0}.toast-title{font-size:var(--fs-label);color:var(--text);font-weight:650}.toast-msg{font-size:var(--fs-small);color:var(--text-muted);white-space:pre-line;margin-top:2px}.toast-x{color:var(--text-faint);cursor:pointer;background:0 0;border:none;border-radius:5px;padding:2px;display:flex}.toast-x:hover{color:var(--text-body);background:var(--surface-2)}.app-root{background:var(--bg);height:100vh;display:flex;position:relative;overflow:hidden}.sidebar{background:var(--surface);border-right:1px solid var(--border);width:258px;transition:width var(--dur) var(--ease);z-index:6;flex-direction:column;flex:none;display:flex;position:relative}.sidebar.is-collapsed{width:78px}.sb-top{align-items:center;gap:12px;height:72px;padding:18px 18px 16px;display:flex}.sb-logo{border-radius:var(--r-md);background:var(--primary);color:#fff;width:42px;height:42px;box-shadow:var(--sh-sm);flex:none;justify-content:center;align-items:center;display:flex}.sb-logo-text{min-width:0;overflow:hidden}.sb-logo-text .nm{color:var(--text);white-space:nowrap;font-size:15px;font-weight:700}.sb-logo-text .sb{color:var(--text-muted);white-space:nowrap;font-size:11px}.is-collapsed .sb-logo-text{display:none}.sb-collapse{background:var(--surface);border:1px solid var(--border);width:26px;height:26px;box-shadow:var(--sh-sm);color:var(--text-muted);cursor:pointer;z-index:7;transition:background var(--dur), color var(--dur);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:26px;right:-13px}.sb-collapse:hover{background:var(--secondary);color:var(--primary)}.sb-nav{flex-direction:column;flex:1;gap:4px;padding:10px 14px;display:flex;overflow:hidden auto}.sb-nav-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-faint);white-space:nowrap;padding:10px 12px 6px;font-size:10.5px;font-weight:700}.is-collapsed .sb-nav-label{opacity:0;height:8px;padding:0}.sb-item{border-radius:var(--r-md);cursor:pointer;text-align:left;width:100%;color:var(--text-body);font-size:var(--fs-body);font-weight:500;font-family:var(--font);transition:background var(--dur) var(--ease), color var(--dur) var(--ease);background:0 0;border:none;align-items:center;gap:12px;padding:10px 12px;display:flex;position:relative}.sb-item .sb-ico{color:var(--text-muted);transition:color var(--dur);flex:none;display:flex}.sb-item .sb-txt{white-space:nowrap;overflow:hidden}.is-collapsed .sb-item{justify-content:center;padding:11px}.is-collapsed .sb-item .sb-txt{display:none}.sb-item:hover{background:var(--surface-2);color:var(--text)}.sb-item:hover .sb-ico{color:var(--text-body)}.sidebar[data-active=fill] .sb-item.is-active{background:var(--secondary);color:var(--primary)}.sidebar[data-active=fill] .sb-item.is-active .sb-ico{color:var(--primary)}.sidebar[data-active=bar] .sb-item.is-active{background:var(--secondary);color:var(--primary)}.sidebar[data-active=bar] .sb-item.is-active .sb-ico{color:var(--primary)}.sidebar[data-active=bar] .sb-item.is-active:before{content:"";background:var(--primary);border-radius:0 var(--r-pill) var(--r-pill) 0;width:4px;position:absolute;top:7px;bottom:7px;left:-14px}.sidebar[data-active=solid] .sb-item.is-active{background:var(--primary);color:#fff;box-shadow:var(--sh-sm)}.sidebar[data-active=solid] .sb-item.is-active .sb-ico{color:#fff}.sb-profile{border-top:1px solid var(--divider);padding:12px 14px}.sb-profile-btn{border-radius:var(--r-md);cursor:pointer;text-align:left;width:100%;font-family:var(--font);transition:background var(--dur);background:0 0;border:none;align-items:center;gap:11px;padding:8px 10px;display:flex}.sb-profile-btn:hover{background:var(--surface-2)}.sb-avatar{background:var(--secondary);width:38px;height:38px;color:var(--primary);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex}.sb-profile-meta{min-width:0;overflow:hidden}.sb-profile-meta .nm{font-size:var(--fs-label);color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.sb-profile-meta .rl{font-size:var(--fs-small);color:var(--text-muted);white-space:nowrap}.is-collapsed .sb-profile-btn{justify-content:center;padding:8px}.is-collapsed .sb-profile-meta{display:none}.app-main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.app-header{background:var(--bg);border-bottom:1px solid var(--border);flex:none;align-items:center;gap:16px;padding:20px 32px;display:flex}.app-header .ah-titles{flex:1;min-width:0}.app-header .ah-sub{font-size:var(--fs-label);color:var(--text-muted);margin-top:3px}.app-header .ah-actions{align-items:center;gap:10px;display:flex}.app-header--chip{background:var(--surface)}.app-header .ah-titles--chip{flex:none}#ah-reports-slot:has(*){flex:1;align-items:center;gap:16px;min-width:0;display:flex}.app-header h1.report-title-chip{font-size:var(--fs-section);letter-spacing:-.01em;background:var(--surface);color:var(--primary);border:1.5px solid var(--primary);border-radius:var(--r-lg);box-shadow:var(--sh-xs);align-items:center;margin:0;padding:10px 18px;font-weight:650;display:inline-flex}.app-body{flex:1;padding:28px 32px;overflow-y:auto}.app-body--reports{padding-top:14px;padding-left:16px}.drawer-head:has(.report-filterbar){flex-wrap:nowrap;align-items:center;gap:16px}.drawer-head:has(.report-filterbar) .dh-title{flex:none;order:2;align-self:center}.drawer-head:has(.report-filterbar) .report-filterbar{order:1}.drawer-head h3.report-title-chip,.drawer-foot .report-title-chip{border-radius:var(--r-pill);color:var(--success-text);font-size:var(--fs-section);letter-spacing:-.01em;background:#d9f0e6;align-items:center;margin:0;padding:8px 18px;font-weight:650;display:inline-flex}.report-filterbar{background:var(--secondary);border-radius:var(--r-md);flex-wrap:wrap;flex:auto;justify-content:flex-start;align-items:flex-end;gap:14px;padding:12px 16px;display:flex}.report-filterbar .field{gap:4px}.report-filterbar .field-label{font-size:var(--fs-small);color:var(--info-text);font-weight:600}.report-filterbar .input-wrap{width:150px}.report-filterbar .input-wrap:has(input[type=search]){width:190px}.report-filterbar .input{background:var(--surface);height:38px}.report-filterbar-actions{align-items:flex-end;gap:8px;display:flex}.report-reset{background:var(--surface);border:1px solid var(--primary-tint);width:38px;height:38px}.report-reset:hover{background:var(--primary);color:#fff;border-color:var(--primary)}@media (width<=900px){:is(.report-filterbar .input-wrap,.report-filterbar .input-wrap:has(input[type=search])){width:100%}.report-filterbar .field{flex:140px}}.app-body-inner{max-width:1180px}.app-body-inner--full{max-width:none}.tiles{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}@media (width<=1100px){.tiles{grid-template-columns:repeat(2,1fr)}}@media (width<=680px){.tiles{grid-template-columns:1fr}}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);cursor:pointer;transition:border-color var(--dur), box-shadow var(--dur), transform .12s var(--ease);text-align:left;flex-direction:column;gap:12px;min-height:156px;padding:22px;display:flex;position:relative}.tile:hover{border-color:var(--primary-tint);box-shadow:var(--sh-md);transform:translateY(-2px)}.tile-ico{border-radius:var(--r-md);background:var(--secondary);width:48px;height:48px;color:var(--primary);justify-content:center;align-items:center;display:flex}.tile h3{font-size:var(--fs-card);color:var(--text);font-weight:650}.tile p{font-size:var(--fs-label);color:var(--text-muted);line-height:1.5}.tile-open{border-radius:var(--r-sm);background:var(--surface-2);width:34px;height:34px;color:var(--text-muted);cursor:pointer;opacity:0;transition:all var(--dur);border:none;justify-content:center;align-items:center;display:flex;position:absolute;top:14px;right:14px}.tile:hover .tile-open{opacity:1}.tile-open:hover{background:var(--secondary);color:var(--primary)}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:18px;display:flex}.toolbar .tb-search{flex:1;min-width:220px;max-width:360px}.toolbar .tb-spacer{flex:1}.data-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-xs);overflow:hidden}.dt-scroll{scrollbar-width:thin;scrollbar-color:var(--border) transparent;overflow-x:auto}.dt-scroll::-webkit-scrollbar{height:6px}.dt-scroll::-webkit-scrollbar-track{background:var(--surface-2)}.dt-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.dt-scroll::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.dt{border-collapse:collapse;width:100%;min-width:900px;font-size:var(--fs-body)}.dt thead th{text-align:left;font-size:var(--fs-small);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--surface-2);border-bottom:1px solid var(--border);white-space:nowrap;padding:13px 18px;font-weight:700}.dt tbody td{border-bottom:1px solid var(--divider);color:var(--text-body);vertical-align:middle;padding:13px 18px}.dt tbody tr:last-child td{border-bottom:none}.dt tbody tr{transition:background var(--dur)}.dt tbody tr:hover{background:var(--primary-soft)}.dt .cell-name{align-items:center;gap:11px;display:flex}.dt .cell-name .av{background:var(--secondary);width:34px;height:34px;color:var(--primary);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:12.5px;font-weight:700;display:flex}.dt .cell-name .nm{color:var(--text);white-space:nowrap;font-weight:600}.dt .cell-name .sub{font-size:var(--fs-small);color:var(--text-muted)}.dt .row-actions{opacity:.35;transition:opacity var(--dur);justify-content:flex-end;gap:4px;display:flex}.dt tbody tr:hover .row-actions{opacity:1}.icon-btn{border-radius:var(--r-sm);width:32px;height:32px;color:var(--text-muted);cursor:pointer;transition:background var(--dur), color var(--dur);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.icon-btn:hover{background:var(--secondary);color:var(--primary)}.icon-btn.danger:hover{background:var(--danger-soft);color:var(--danger)}.table-foot{border-top:1px solid var(--divider);font-size:var(--fs-label);color:var(--text-muted);justify-content:space-between;align-items:center;padding:12px 18px;display:flex}.pager{gap:6px;display:flex}.pager button{border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface);min-width:32px;height:32px;color:var(--text-body);cursor:pointer;font-size:var(--fs-label);font-weight:600}.pager button:hover{border-color:var(--primary-tint)}.pager button.is-active{background:var(--primary);color:#fff;border-color:var(--primary)}.tabs{background:var(--surface-2);border-radius:var(--r-md);gap:4px;margin-bottom:20px;padding:4px;display:inline-flex}.tab{border-radius:var(--r-sm);cursor:pointer;font-family:var(--font);font-size:var(--fs-label);color:var(--text-muted);transition:all var(--dur);background:0 0;border:none;padding:8px 16px;font-weight:600}.tab:hover{color:var(--text-body)}.tab.is-active{background:var(--surface);color:var(--primary);box-shadow:var(--sh-xs)}.list-cards{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;display:grid}.lc{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);transition:border-color var(--dur), box-shadow var(--dur);flex-direction:column;gap:12px;padding:18px;display:flex}.lc:hover{border-color:var(--primary-tint);box-shadow:var(--sh-sm)}.lc--clickable{cursor:pointer}.lc-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.lc-title{font-size:var(--fs-card);color:var(--text);font-weight:650}.lc-sub{font-size:var(--fs-small);color:var(--text-muted);margin-top:2px}.lc-badges{flex-wrap:wrap;gap:4px;margin:4px 0 2px;display:flex}.lc-badge{background:var(--primary-soft);color:var(--primary);border-radius:20px;padding:2px 8px;font-size:11px;font-weight:600}.lc-meta{flex-wrap:wrap;gap:8px;display:flex}.lc-stat{font-size:var(--fs-label);color:var(--text-body);align-items:center;gap:7px;display:flex}.lc-stat .icon{color:var(--text-muted)}.profile-card{border-bottom:1px solid var(--divider);flex-direction:column;align-items:center;gap:4px;margin-bottom:18px;padding:8px 0 18px;display:flex}.profile-card .pav{background:var(--secondary);width:76px;height:76px;color:var(--primary);border-radius:50%;justify-content:center;align-items:center;margin-bottom:8px;font-size:28px;font-weight:700;display:flex}.profile-card .pnm{color:var(--text);font-size:17px;font-weight:700}.kv{flex-direction:column;gap:14px;display:flex}.kv-row{flex-direction:column;gap:4px;display:flex}.kv-row .k{font-size:var(--fs-small);text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint);font-weight:600}.kv-row .v{font-size:var(--fs-body);color:var(--text)}.zones{flex-wrap:wrap;gap:7px;display:flex}.form-col{flex-direction:column;gap:16px;display:flex}.form-section-title{font-size:var(--fs-label);color:var(--text);margin:6px 0 -4px;font-weight:700}.perm-list{flex-direction:column;display:flex}.perm-row{border-bottom:1px solid var(--divider);justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.perm-row:last-child{border-bottom:none}.perm-row .pr-text .pr-t{font-size:var(--fs-body);color:var(--text);font-weight:600}.perm-row .pr-text .pr-d{font-size:var(--fs-small);color:var(--text-muted)}.auth-stage{background:var(--bg);justify-content:center;align-items:center;width:100%;height:100vh;padding:24px;display:flex;position:relative;overflow:hidden}.auth-bg{background:radial-gradient(1100px 520px at 18% -10%, var(--secondary), transparent 60%), radial-gradient(900px 480px at 100% 110%, #e8f0fa, transparent 55%);z-index:0;position:absolute;inset:0}.auth-card{z-index:1;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);width:100%;max-width:412px;box-shadow:var(--sh-lg);padding:34px;position:relative}.auth-brand{text-align:center;flex-direction:column;align-items:center;gap:12px;margin-bottom:26px;display:flex}.auth-logo{border-radius:var(--r-lg);background:var(--primary);color:#fff;width:56px;height:56px;box-shadow:var(--sh-md);justify-content:center;align-items:center;display:flex}.auth-title{color:var(--text);font-size:20px;font-weight:700}.auth-subtitle{font-size:var(--fs-label);color:var(--text-muted);margin-top:4px;line-height:1.5}.auth-form{flex-direction:column;gap:16px;display:flex}.auth-link{color:var(--primary);font-family:var(--font);font-size:var(--fs-label);cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.auth-link:hover{text-decoration:underline}.auth-foot{text-align:center;font-size:var(--fs-label);color:var(--text-muted);margin-top:20px}.auth-error{background:var(--danger-soft);color:var(--danger);border-radius:var(--r-md);font-size:var(--fs-label);padding:10px 14px;font-weight:500}.otp-inputs{justify-content:center;gap:8px;display:flex}.otp-cell{text-align:center;width:46px;height:56px;color:var(--text);border:1.5px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);transition:border-color var(--dur), box-shadow var(--dur);outline:none;font-size:24px;font-weight:700}.otp-cell:focus{border-color:var(--primary);box-shadow:var(--sh-focus)}.sb-overlay{z-index:5;background:#0000005c;position:fixed;inset:0}.page-tabs{gap:2px;display:flex}.ptab{border-radius:var(--r-pill);cursor:pointer;font-family:var(--font);font-size:var(--fs-label);color:var(--text-muted);transition:all var(--dur);background:0 0;border:none;padding:8px 18px;font-weight:600}.ptab:hover{color:var(--text);background:var(--surface-2)}.ptab.is-active{background:var(--secondary);color:var(--primary)}.t-muted{color:var(--text-muted);font-size:var(--fs-label)}.nm{color:var(--text);font-weight:600}.icon-btn--danger:hover{background:var(--danger-soft);color:var(--danger)}.hamburger{display:none}@media (width<=720px){.sidebar{transition:transform var(--dur) var(--ease);box-shadow:var(--sh-lg);position:absolute;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.is-mobile-open{transform:translate(0)}.sidebar.is-collapsed{width:258px}.sb-collapse{display:none}.hamburger{display:flex}.app-header{padding:16px 18px}.app-body{padding:20px 18px}}.profile-av-lg[data-v-72320272]{background:var(--primary);color:#fff;letter-spacing:.5px;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;font-size:24px;font-weight:700;display:flex}.profile-meta-list[data-v-72320272]{flex-direction:column;gap:0;display:flex}.pml-row[data-v-72320272]{border-bottom:1px solid var(--divider);align-items:center;gap:10px;padding:12px 0;font-size:14px;display:flex}.pml-row[data-v-72320272] svg{color:var(--text-faint);flex-shrink:0}.pml-label[data-v-72320272]{color:var(--text-muted);flex-shrink:0;width:80px}.pml-val[data-v-72320272]{color:var(--text);text-align:right;margin-left:auto}.sel[data-v-05a1b68f]{position:relative}.sel-trigger[data-v-05a1b68f]{cursor:pointer;-webkit-user-select:none;user-select:none;flex-wrap:nowrap;align-items:center;gap:0;min-height:40px;padding-right:10px;display:flex}.sel-trigger.is-disabled[data-v-05a1b68f]{opacity:.5;pointer-events:none}.sel-trigger.is-error[data-v-05a1b68f]{border-color:var(--danger)}.sel-val[data-v-05a1b68f]{color:var(--text);font-size:var(--fs-body);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.sel-ph[data-v-05a1b68f]{color:var(--text-faint);font-size:var(--fs-body);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.sel-clear[data-v-05a1b68f]{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:50%;flex-shrink:0;align-items:center;margin-left:4px;padding:2px;display:flex}.sel-clear[data-v-05a1b68f]:hover{color:var(--text);background:var(--surface-2)}.sel-ico[data-v-05a1b68f]{color:var(--text-muted);transition:transform var(--dur);flex-shrink:0;margin-left:4px;display:flex}.sel-ico--open[data-v-05a1b68f]{transform:rotate(180deg)}.sel-drop[data-v-05a1b68f]{min-width:180px;max-height:260px;box-shadow:var(--sh-md);padding:5px;overflow-y:auto}.sel-search-wrap[data-v-05a1b68f]{padding:4px 4px 6px}.sel-search[data-v-05a1b68f]{box-sizing:border-box;border:1.5px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface-2);width:100%;font-family:var(--font);font-size:var(--fs-body);color:var(--text);outline:none;padding:7px 10px}.sel-search[data-v-05a1b68f]:focus{border-color:var(--primary)}.sel-search[data-v-05a1b68f]::placeholder{color:var(--text-faint)}.sel-opt[data-v-05a1b68f]{border-radius:var(--r-sm);cursor:pointer;font-size:var(--fs-body);color:var(--text-body);transition:background var(--dur);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:8px;padding:8px 10px;display:flex;overflow:hidden}.sel-opt[data-v-05a1b68f]:hover{background:var(--surface-2)}.sel-opt--on[data-v-05a1b68f]{color:var(--primary);font-weight:600}.sel-opt--on[data-v-05a1b68f]:hover{background:var(--primary-soft)}.sel-chk[data-v-05a1b68f]{border:1.5px solid var(--border-strong);width:16px;height:16px;transition:border-color var(--dur), background var(--dur);color:var(--primary);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sel-opt--on .sel-chk[data-v-05a1b68f]{border-color:var(--primary);background:var(--primary-soft)}.sel-empty[data-v-05a1b68f]{font-size:var(--fs-body);color:var(--text-muted);padding:8px 10px}.icon-btn--active[data-v-c6ea6529]{color:var(--primary);background:var(--secondary)}.sched-pop[data-v-c6ea6529]{min-width:240px;box-shadow:var(--sh-md);flex-direction:column;gap:12px;padding:14px;display:flex}.sched-pop-title[data-v-c6ea6529]{font-size:var(--fs-label);color:var(--text);font-weight:650}.sched-pop-freq[data-v-c6ea6529]{flex-direction:column;gap:6px;display:flex}.sched-pop-freq-lbl[data-v-c6ea6529]{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:11px;font-weight:600}.pi-pop[data-v-c6ea6529]{width:340px;box-shadow:var(--sh-md);flex-direction:column;gap:10px;padding:14px;display:flex}.pi-title[data-v-c6ea6529]{font-size:var(--fs-label);color:var(--text);font-weight:650}.pi-row[data-v-c6ea6529]{font-size:var(--fs-small);color:var(--text-body);align-items:flex-start;gap:9px;line-height:1.4;display:flex}.pi-swatch[data-v-c6ea6529]{border:1.5px solid #0000;border-radius:4px;flex-shrink:0;width:16px;height:16px;margin-top:1px}.pi-swatch--dayoff[data-v-c6ea6529]{background:#e3256b2e;border-color:#e3256b}.pi-swatch--noschedule[data-v-c6ea6529]{background:#3b82f62e;border-color:#3b82f6}.pi-swatch--manual[data-v-c6ea6529]{background:#22c55e40;border-color:#22c55e}.pi-list[data-v-c6ea6529]{grid-template-columns:auto 1fr;align-items:start;gap:10px 9px;margin-top:10px;display:grid}.pi-list .pi-row[data-v-c6ea6529]{display:contents}.pi-list .pi-row>div[data-v-c6ea6529]{font-size:var(--fs-small);color:var(--text-body);line-height:1.4}.pi-list .dr-badge[data-v-c6ea6529]{justify-self:start;margin-top:1px}.pi-note[data-v-c6ea6529]{color:var(--text-muted);border-top:1px solid var(--divider);padding-top:8px;font-size:11px;line-height:1.4}.rp-layout[data-v-c6ea6529]{flex-direction:column;gap:0;height:100%;display:flex}.rp-main[data-v-c6ea6529]{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);min-height:0;box-shadow:var(--sh-xs);flex-direction:column;flex:1;display:flex;overflow:hidden}.rp-main-head[data-v-c6ea6529]{border-bottom:1px solid var(--divider);flex-wrap:wrap;flex-shrink:0;align-items:flex-end;gap:16px;padding:14px 20px;display:flex}.rp-main-head--embedded[data-v-c6ea6529]{border-bottom:none;flex:1;align-items:center;min-width:0;padding:0}.rp-filterbar[data-v-c6ea6529]{flex-wrap:wrap;flex:1;align-items:flex-end;gap:10px;display:flex}.rf--date[data-v-c6ea6529]{flex-shrink:0;width:148px}.rf--div[data-v-c6ea6529],.rf--dep[data-v-c6ea6529]{flex-shrink:0;width:210px}.rf--search[data-v-c6ea6529]{flex:1;min-width:180px;max-width:320px}.rf-break[data-v-c6ea6529]{flex-basis:100%;height:0}.rf--search-narrow[data-v-c6ea6529]{flex:none;width:368px;min-width:0;max-width:368px}.rp-kpi-mini[data-v-c6ea6529]{white-space:nowrap;border-radius:var(--r-md);background:var(--surface);border:1.5px solid #6bdb96;flex-shrink:0;align-items:center;gap:14px;padding:6px 14px;display:flex}.rp-kpi-date[data-v-c6ea6529]{flex-direction:column;line-height:1.25;display:flex}.rp-kpi-day[data-v-c6ea6529]{text-transform:uppercase;letter-spacing:.05em;color:#42c574;font-size:10px;font-weight:700}.rp-kpi-datefmt[data-v-c6ea6529]{color:var(--text-muted);text-transform:capitalize;font-size:12px}.rp-kpi-time[data-v-c6ea6529]{color:var(--text);font-variant-numeric:tabular-nums;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:18px;font-weight:700}.rp-kpi-sep[data-v-c6ea6529]{background:var(--border);flex-shrink:0;width:1px;height:28px}.rp-kpi-updated[data-v-c6ea6529]{flex-direction:column;line-height:1.25;display:flex}.rp-kpi-updated-lbl[data-v-c6ea6529]{text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint);font-size:10px;font-weight:600}.rp-kpi-updated-val[data-v-c6ea6529]{color:var(--text-body);font-variant-numeric:tabular-nums;font-family:ui-monospace,monospace;font-size:13px;font-weight:600}.rp-head-right[data-v-c6ea6529]{flex-shrink:0;align-items:center;gap:12px;display:flex}.rp-head-right--stack[data-v-c6ea6529]{flex-direction:column;align-items:flex-end;gap:8px}.rp-filterbar-actions[data-v-c6ea6529]{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-xs);align-items:center;gap:2px;margin-bottom:4px;padding:5px;display:flex}.rp-act-sep[data-v-c6ea6529]{background:var(--border);flex-shrink:0;width:1px;height:20px;margin:0 4px}.rp-main-actions[data-v-c6ea6529]{gap:8px;display:flex}.rp-main-body[data-v-c6ea6529]{flex:1;padding:20px;position:relative;overflow-y:auto}.dr-loading-overlay[data-v-c6ea6529]{z-index:30;background:color-mix(in srgb, var(--surface) 72%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:absolute;inset:0}.dr-load-ring[data-v-c6ea6529]{background:conic-gradient(from 0deg, var(--primary), transparent 68%);border-radius:50%;width:46px;height:46px;animation:.8s linear infinite dr-spin-c6ea6529;-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 5px),#000 calc(100% - 5px));mask:radial-gradient(farthest-side,#0000 calc(100% - 5px),#000 calc(100% - 5px))}@keyframes dr-spin-c6ea6529{to{transform:rotate(360deg)}}.dr-loading-label[data-v-c6ea6529]{font-size:var(--fs-small);color:var(--text-muted);letter-spacing:.02em;font-weight:600}.dr-fade-enter-active[data-v-c6ea6529],.dr-fade-leave-active[data-v-c6ea6529]{transition:opacity .2s}.dr-fade-enter-from[data-v-c6ea6529],.dr-fade-leave-to[data-v-c6ea6529]{opacity:0}.rp-nav[data-v-c6ea6529]{flex-wrap:wrap;align-items:center;gap:6px;padding:12px 0 0;display:flex}.rp-nav-btn[data-v-c6ea6529]{border:1.5px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);height:34px;color:var(--text-body);font-size:var(--fs-label);cursor:pointer;transition:border-color var(--dur), background var(--dur), color var(--dur);white-space:nowrap;align-items:center;gap:6px;padding:0 10px;font-weight:500;display:inline-flex}.rp-nav-btn[data-v-c6ea6529]:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}.rp-nav-ext[data-v-c6ea6529]{color:var(--text-faint);transition:color var(--dur), background var(--dur);border-radius:4px;align-items:center;margin-left:2px;padding:2px;display:flex}.rp-nav-ext[data-v-c6ea6529]:hover{color:var(--primary);background:var(--primary-soft)}.rp-no-access[data-v-c6ea6529]{color:var(--text-muted);font-size:var(--fs-body);flex:1;justify-content:center;align-items:center;display:flex}.dr[data-v-c6ea6529]{flex-direction:column;gap:16px;display:flex}.dr-tiles-toggle[data-v-c6ea6529]{border:none;border-right:1px solid var(--border);border-bottom:1px solid var(--border);border-radius:0 0 var(--r-md) 0;background:var(--surface-2);color:var(--text-muted);font-size:var(--fs-small);cursor:pointer;transition:background var(--dur), color var(--dur);align-self:flex-start;align-items:center;gap:6px;margin:-20px 0 0 -20px;padding:9px 16px 8px;font-weight:600;display:flex}.dr-tiles-toggle[data-v-c6ea6529]:hover{background:var(--secondary);color:var(--primary)}.dr-tile--loading[data-v-c6ea6529]{opacity:.5;pointer-events:none}.dr-tiles[data-v-c6ea6529]{grid-template-columns:repeat(6,1fr);gap:12px;display:grid}.dr-tile.card[data-v-c6ea6529]{transition:box-shadow var(--dur), border-color var(--dur);flex-direction:column;gap:4px;padding:14px 16px;display:flex}.dr-tile.card[data-v-c6ea6529]:hover{border-color:var(--border-strong)}.dr-tile--all.card[data-v-c6ea6529]{border-color:var(--primary)}.dr-tile--all .dr-tile-name[data-v-c6ea6529]{color:var(--primary)}.dr-tile-name[data-v-c6ea6529]{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:6px;font-size:10px;font-weight:700}.dr-tile-num[data-v-c6ea6529]{font-size:28px;font-weight:700;line-height:1}.dr-tile-num--total[data-v-c6ea6529]{color:var(--text-muted)}.dr-tile-num--present[data-v-c6ea6529]{color:var(--primary)}.dr-tile-num--absent[data-v-c6ea6529]{color:var(--danger)}.dr-tile-lbl[data-v-c6ea6529]{color:var(--text-faint);font-size:11px}.dr-tile-stats-row[data-v-c6ea6529]{align-items:stretch;gap:12px;display:flex}.dr-tile-stat-group[data-v-c6ea6529]{flex:1;min-width:0}.dr-tile-stat-main[data-v-c6ea6529]{align-items:baseline;gap:6px;display:flex}.dr-tile-vsep[data-v-c6ea6529]{background:var(--divider);flex-shrink:0;align-self:stretch;width:1px}.dr-tile-pct[data-v-c6ea6529]{font-size:16px;font-weight:700;line-height:1}.dr-tile-pct--present[data-v-c6ea6529]{color:var(--primary)}.dr-tile-pct--absent[data-v-c6ea6529]{color:var(--danger)}.dr-tile-sep[data-v-c6ea6529]{background:var(--divider);height:1px;margin:6px 0}.dr-th-narrow[data-v-c6ea6529],.dr-td-narrow[data-v-c6ea6529]{white-space:nowrap;width:1%}.dr-pagination[data-v-c6ea6529]{border-top:1px solid var(--divider);flex-shrink:0;justify-content:center;align-items:center;gap:8px;padding:8px 16px;display:flex}.dr-pg-btn[data-v-c6ea6529]{border:1.5px solid var(--border-strong);border-radius:var(--r-sm);cursor:pointer;width:28px;height:28px;color:var(--text-muted);transition:background var(--dur), color var(--dur);background:0 0;justify-content:center;align-items:center;display:flex}.dr-pg-btn[data-v-c6ea6529]:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.dr-pg-btn[data-v-c6ea6529]:disabled{opacity:.35;cursor:default}.dr-pg-info[data-v-c6ea6529]{font-size:var(--fs-label);color:var(--text-muted);text-align:center;min-width:40px}.dr-bd-badge[data-v-c6ea6529]{color:#fff;background:#22c55e;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;font-weight:700;display:inline-flex}.dr-sect-count[data-v-c6ea6529]{border-radius:var(--r-pill);background:color-mix(in srgb, currentColor 15%, transparent);min-width:18px;height:18px;color:inherit;justify-content:center;align-items:center;padding:0 5px;font-size:11px;font-weight:700;display:inline-flex}.dr-bd-tag[data-v-c6ea6529]{color:#15803d;vertical-align:middle;background:#22c55e26;border-radius:99px;margin-left:6px;padding:1px 7px;font-size:11px;font-weight:700;display:inline-block}.dr-card-title[data-v-c6ea6529]{font-size:var(--fs-label);color:#5077a1;background:#deeaf7;border:1px solid #c2d8ef;border-radius:99px;padding:2px 10px;font-weight:600;display:inline-block}.dr-card-head[data-v-c6ea6529]{font-size:var(--fs-label);color:var(--text-body);border-bottom:1px solid var(--divider);align-items:center;gap:8px;padding:13px 16px 12px;font-weight:600;display:flex}.dr-card-count[data-v-c6ea6529]{background:var(--surface-2);min-width:22px;height:20px;color:var(--text-muted);border-radius:99px;justify-content:center;align-items:center;padding:0 6px;font-size:11px;font-weight:700;display:inline-flex}.dr-exp-btn[data-v-c6ea6529]{flex-shrink:0}.dr-info-btn[data-v-c6ea6529]{color:var(--text-faint);flex-shrink:0}.dr-info-btn--push[data-v-c6ea6529],.dr-exp-btn--push[data-v-c6ea6529]{margin-left:auto}.dr-bd-follow[data-v-c6ea6529]{font-size:var(--fs-small);color:var(--text-muted);white-space:nowrap;flex-shrink:0;margin-left:auto;font-weight:500}.rp-main-body--exp[data-v-c6ea6529]{overflow-y:hidden}.dr.dr--expanded[data-v-c6ea6529]{flex-direction:column;gap:0;height:100%;display:flex}.dr.dr--expanded .dr-tiles[data-v-c6ea6529],.dr.dr--expanded .dr-tiles-toggle[data-v-c6ea6529]{display:none}.dr.dr--expanded .dr-tables[data-v-c6ea6529]{flex:1;min-height:0;display:flex!important}.dr.dr--expanded .dr-tables[data-v-c6ea6529]>:not(.dr--active),.dr.dr--expanded .dr-right-col[data-v-c6ea6529]>:not(.dr--active),.dr.dr--expanded .dr-side-row[data-v-c6ea6529]>:not(.dr--active){display:none}.dr.dr--expanded .dr--active[data-v-c6ea6529]{flex-direction:column;flex:1;min-height:0;display:flex}.dr.dr--expanded .dr--active .dt-scroll[data-v-c6ea6529]{flex:1;min-height:0;overflow-y:auto}.dr.dr--expanded .dr-dept-table.dr--active[data-v-c6ea6529],.dr.dr--expanded .dr-absent.dr--active[data-v-c6ea6529],.dr.dr--expanded .dr-bdays.dr--active[data-v-c6ea6529]{overflow:hidden auto}.dr-tables[data-v-c6ea6529]{align-items:flex-start;gap:16px;display:flex}.dr-main-table.card[data-v-c6ea6529]{flex-direction:column;flex:2;min-width:0;display:flex;overflow:hidden}.dr-right-col[data-v-c6ea6529]{flex-direction:column;flex:2.7;gap:16px;min-width:0;display:flex}.dr-side-row[data-v-c6ea6529]{gap:16px;display:flex}.dr-dept-table.card[data-v-c6ea6529]{flex:1.2;align-self:flex-start;min-width:0;overflow:hidden}.dr-absent.card[data-v-c6ea6529]{flex:1.5;min-width:0;overflow:hidden}.dr-bdays.card[data-v-c6ea6529]{overflow:hidden}.dr-present-scroll[data-v-c6ea6529]{flex:1;min-height:0;overflow-y:auto}.dr-dt[data-v-c6ea6529]{border-collapse:collapse;width:100%;font-size:var(--fs-body)}.dr-dt th[data-v-c6ea6529]{background:var(--surface-2);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 16px;font-size:11px;font-weight:700}.th-sort[data-v-c6ea6529]{cursor:pointer;-webkit-user-select:none;user-select:none}.th-sort[data-v-c6ea6529]:hover,.th-sort--on[data-v-c6ea6529]{color:var(--primary)}.sort-ico[data-v-c6ea6529]{opacity:.35;vertical-align:middle;margin-left:3px;font-size:10px}.th-sort--on .sort-ico[data-v-c6ea6529]{opacity:1}.dr-dt td[data-v-c6ea6529]{border-bottom:1px solid var(--divider);color:var(--text-body);vertical-align:middle;padding:6px 16px 5px}.dr-dt tr:last-child td[data-v-c6ea6529]{border-bottom:none}.dr-dt tbody tr:hover td[data-v-c6ea6529]{background:var(--surface-2)}.dr-tr-today td[data-v-c6ea6529]{font-weight:600}.dr-td-muted[data-v-c6ea6529]{color:var(--text-muted)}.dr-td-mono[data-v-c6ea6529]{font-variant-numeric:tabular-nums;font-family:ui-monospace,monospace}.dr-th-r[data-v-c6ea6529],.dr-td-r[data-v-c6ea6529]{text-align:right}.dr-th-c[data-v-c6ea6529],.dr-td-c[data-v-c6ea6529]{text-align:center}.dr-td-present[data-v-c6ea6529]{color:var(--primary);font-weight:600}.dr-empty[data-v-c6ea6529]{text-align:center;color:var(--text-muted);padding:24px 16px;font-style:italic}.dr-row--no-schedule td[data-v-c6ea6529]{background:#3b82f614}.dr-td--manual[data-v-c6ea6529]{background:#22c55e1f!important}.dr-row--day-off td[data-v-c6ea6529]{background:#e3256b14!important}.dr-badge[data-v-c6ea6529]{border-radius:var(--r-pill);width:fit-content;font-weight:700;font-size:inherit;padding:1px 7px;font-family:inherit;display:inline-flex}.dr-badge--danger[data-v-c6ea6529]{color:#ef4444;background:#ef444426}.dr-badge--info[data-v-c6ea6529]{color:var(--primary);background:#2066b026}.dr-time-cell[data-v-c6ea6529]{flex-direction:column;justify-content:center;min-height:30px;line-height:1.3;display:flex}.dr-shift-sub[data-v-c6ea6529]{color:var(--text-faint);font-size:10px;font-weight:400}.dr-dt tbody tr:hover .dr-shift-sub[data-v-c6ea6529]{color:var(--success)}.dr-abs-sect-row td[data-v-c6ea6529]{text-transform:uppercase;letter-spacing:.04em;border-bottom:none;padding:6px 16px;font-size:11px;font-weight:700}.dr-abs-sect-row--danger td[data-v-c6ea6529]{color:var(--danger);background:#ef44441a}.dr-abs-sect-row--warn td[data-v-c6ea6529]{color:#b45309;background:#f59e0b1a}.dr-abs-sect-row--neutral td[data-v-c6ea6529]{background:var(--surface-2);color:var(--text-muted)}.dr-abs-sect-row--success td[data-v-c6ea6529]{color:#15803d;background:#22c55e1a}.dr-col-dept[data-v-c6ea6529]{width:130px}.dr-col-reason[data-v-c6ea6529]{width:140px}.dr-td-nowrap[data-v-c6ea6529]{white-space:nowrap}.dr-tiles--compact[data-v-c6ea6529]{grid-template-columns:repeat(4,1fr)}.dr-tiles--narrow[data-v-c6ea6529]{grid-template-columns:repeat(3,1fr)}.dr-tiles--compact .dr-tile.card[data-v-c6ea6529]{padding:12px 14px}.dr-tiles--compact .dr-tile-num[data-v-c6ea6529]{font-size:22px}.dr-tiles--compact .dr-tile-pct[data-v-c6ea6529]{font-size:14px}.dr-tiles--compact .dr-tile-stat-main[data-v-c6ea6529]{gap:4px}.dr-tiles--narrow .dr-tile.card[data-v-c6ea6529]{padding:10px 12px}.dr-tiles--narrow .dr-tile-num[data-v-c6ea6529]{font-size:18px}.dr-tiles--narrow .dr-tile-pct[data-v-c6ea6529]{font-size:12px}.dr-tiles--narrow .dr-tile-lbl[data-v-c6ea6529]{font-size:9px}.dr-tiles--narrow .dr-tile-stat-main[data-v-c6ea6529]{gap:3px}.dr-tiles--narrow .dr-tile-stats-row[data-v-c6ea6529]{gap:8px}.dr-tables--compact .dr-side-row[data-v-c6ea6529]{flex-direction:column}.dr-tables--compact .dr-main-table.card[data-v-c6ea6529],.dr-tables--compact .dr-right-col[data-v-c6ea6529]{flex:1}.dr-tables--narrow[data-v-c6ea6529],.dr-tables--narrow .dr-side-row[data-v-c6ea6529]{flex-direction:column}.dr-tables--compact .dr-dept-table.card[data-v-c6ea6529],.dr-tables--narrow .dr-dept-table.card[data-v-c6ea6529]{align-self:stretch}@media (prefers-color-scheme:dark){.dr-bd-tag[data-v-c6ea6529]{color:#4ade80;background:#22c55e33}.dr-abs-sect-head--warn[data-v-c6ea6529]{color:#fbbf24}}[data-theme=dark]{color:#fbbf24;background:#22c55e33}.dc[data-v-002b7c12]{flex-direction:column;gap:16px;display:flex}.dc-add-row[data-v-002b7c12]{justify-content:flex-start;display:flex}.dc-loading[data-v-002b7c12]{justify-content:center;padding:32px 0;display:flex}.dc-empty[data-v-002b7c12]{text-align:center;color:var(--text-muted);font-size:var(--fs-body);padding:32px 0}.dc-form[data-v-002b7c12]{border:1.5px solid var(--primary-soft);flex-direction:column;gap:0;padding:18px;display:flex}.dc-form-head[data-v-002b7c12]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.dc-form-title[data-v-002b7c12]{font-size:var(--fs-body);color:var(--text);font-weight:600}.dc-close-btn[data-v-002b7c12]{cursor:pointer;color:var(--text-muted);border-radius:var(--r-sm);background:0 0;border:none;align-items:center;padding:4px;display:flex}.dc-close-btn[data-v-002b7c12]:hover{color:var(--text);background:var(--surface-2)}.dc-form-error[data-v-002b7c12]{font-size:var(--fs-sm);color:var(--danger);margin-top:8px}.dc-form-actions[data-v-002b7c12]{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.dc-list[data-v-002b7c12]{flex-direction:column;gap:10px;display:flex}.dc-item[data-v-002b7c12]{padding:14px 16px;transition:border-color .15s}.dc-item--active[data-v-002b7c12]{border-color:var(--primary-soft)}.dc-item-head[data-v-002b7c12]{justify-content:space-between;align-items:center;gap:8px;display:flex}.dc-item-name[data-v-002b7c12]{font-size:var(--fs-body);color:var(--text);font-weight:600}.dc-item-actions[data-v-002b7c12]{flex-shrink:0;gap:4px;display:flex}.dc-item-order[data-v-002b7c12]{color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border);border-radius:4px;align-self:center;margin-left:4px;padding:0 6px;font-size:11px;line-height:1}.dc-confirm[data-v-002b7c12]{background:var(--surface-2);border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--text);justify-content:space-between;align-items:center;gap:12px;margin-top:10px;padding:10px 12px;display:flex}.dc-confirm-btns[data-v-002b7c12]{gap:8px;display:flex}.dc-chips[data-v-002b7c12]{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.dc-chip[data-v-002b7c12]{background:var(--surface-2);color:var(--text);font-size:var(--fs-sm);border:1px solid var(--border);border-radius:20px;padding:3px 10px;line-height:1.5}.dc-no-depts[data-v-002b7c12]{font-size:var(--fs-sm);color:var(--text-faint);margin-top:8px;font-style:italic}.post-save-prompt[data-v-83492f5b]{flex-direction:column;gap:16px;padding:4px 0;display:flex}.ps-desc[data-v-83492f5b]{color:var(--text-primary);margin:0;font-size:14px;line-height:1.5}.ps-card[data-v-83492f5b]{background:var(--surface-2);border-radius:var(--r-md);flex-direction:column;gap:10px;padding:14px 16px;display:flex}.ps-row[data-v-83492f5b]{justify-content:space-between;align-items:center;font-size:13px;display:flex}.ps-row span[data-v-83492f5b]{color:var(--text-muted)}.ps-row strong[data-v-83492f5b]{font-family:monospace;font-size:13px}.zone-tags[data-v-83492f5b]{flex-wrap:wrap;gap:6px;padding:4px 0;display:flex}.zone-tag[data-v-83492f5b]{border-radius:var(--r-pill);background:var(--secondary);color:var(--primary);font-size:var(--fs-small);align-items:center;padding:4px 10px;font-weight:600;display:inline-flex}.dr-tabs[data-v-83492f5b]{background:0 0;border-radius:0;gap:6px;margin:20px 0;padding:0;display:flex}.dr-tab[data-v-83492f5b]{border:1px solid var(--primary-tint);border-radius:var(--r-sm);cursor:pointer;font-family:var(--font);font-size:var(--fs-body);color:var(--primary);transition:all var(--dur);white-space:nowrap;background:0 0;flex:1;padding:10px 12px;font-weight:600}.dr-tab[data-v-83492f5b]:hover:not(.dr-tab--on){background:var(--primary-soft);border-color:var(--primary)}.dr-tab--on[data-v-83492f5b]{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 1px 4px #0000002e}.th-sort[data-v-83492f5b]{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.th-sort[data-v-83492f5b]:hover,.th-sort--on[data-v-83492f5b]{color:var(--primary)}.sort-ico[data-v-83492f5b]{opacity:.35;vertical-align:middle;margin-left:3px;font-size:10px}.th-sort--on .sort-ico[data-v-83492f5b]{opacity:1}.nm-wrap[data-v-83492f5b]{align-items:baseline;gap:0;display:inline-flex}.emp-tab[data-v-83492f5b]{color:var(--text-muted);flex-shrink:0;margin-right:6px;font-size:11px;font-weight:500}.fp-checks[data-v-83492f5b]{flex-direction:column;justify-content:flex-end;gap:8px;padding-bottom:2px;display:flex}.fp-check[data-v-83492f5b]{color:var(--text-body);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:7px;font-size:13px;display:flex}.fp-check input[data-v-83492f5b]{cursor:pointer;accent-color:var(--primary);width:15px;height:15px}.tb-check[data-v-83492f5b]{color:var(--text-body);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:7px;font-size:13px;display:flex}.tb-check input[data-v-83492f5b]{cursor:pointer;accent-color:var(--primary);width:15px;height:15px}.pg[data-v-83492f5b]{align-items:center;gap:2px;display:flex}.pg-btn[data-v-83492f5b]{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);min-width:30px;height:30px;color:var(--text-body);font-size:var(--fs-label);cursor:pointer;transition:background var(--dur);padding:0 6px}.pg-btn[data-v-83492f5b]:hover:not(:disabled){background:var(--primary-soft);color:var(--primary)}.pg-btn[data-v-83492f5b]:disabled{opacity:.35;cursor:default}.pg-btn--on[data-v-83492f5b]{background:var(--primary);color:#fff;border-color:var(--primary);font-weight:600}.pg-btn--on[data-v-83492f5b]:hover{background:var(--primary);color:#fff}.pg-dots[data-v-83492f5b]{color:var(--text-muted);font-size:var(--fs-label);padding:0 4px}.pg-size[data-v-83492f5b]{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);height:30px;color:var(--text-body);font-size:var(--fs-label);cursor:pointer;padding:0 8px}.src-tag[data-v-83492f5b]{vertical-align:middle;letter-spacing:.02em;border-radius:4px;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-block}.src-tag--skud[data-v-83492f5b]{background:var(--primary-soft);color:var(--primary)}.src-tag--manual[data-v-83492f5b]{background:var(--surface-2);color:var(--text-muted)}.src-tag--hidden[data-v-83492f5b]{color:#856404;background:#fff3cd}.sched-drawer-body[data-v-3cb68eeb]{flex-direction:column;height:100%;display:flex}.sched-emp-section[data-v-3cb68eeb],.sched-table-area[data-v-3cb68eeb]{flex-direction:column;flex:1;min-height:0;display:flex}.sched-table-scroll[data-v-3cb68eeb]{flex:1;min-height:0;overflow-y:auto}.sched-combined-body[data-v-3cb68eeb]{flex-direction:column;height:100%;display:flex}.schedule-emp-table thead th[data-v-3cb68eeb]{z-index:3;position:sticky;top:0}.plan-header[data-v-3cb68eeb]{background:var(--primary-soft);border:1px solid var(--primary-tint);border-radius:10px;flex-shrink:0;margin-bottom:4px;padding:16px 20px}.plan-fields[data-v-3cb68eeb]{flex-wrap:wrap;align-items:flex-end;gap:10px 14px;padding-bottom:4px;display:flex}.pf[data-v-3cb68eeb]{flex:none}.pf--xs[data-v-3cb68eeb]{width:110px}.pf--sm[data-v-3cb68eeb]{width:152px}.pf--time[data-v-3cb68eeb]{width:128px}.pf--md[data-v-3cb68eeb]{width:186px}.pf--lg[data-v-3cb68eeb]{width:224px}.pf--days[data-v-3cb68eeb]{flex:0 auto;width:auto}.pf-divider[data-v-3cb68eeb]{background:var(--divider);flex:0 0 1px;align-self:flex-end;width:1px;height:40px;margin-bottom:2px}@media (width<=900px){.pf-divider[data-v-3cb68eeb]{display:none}}.pf-label[data-v-3cb68eeb]{font-size:var(--fs-label,12px);color:var(--text-muted);margin-bottom:6px;font-weight:500}.pf-days-row[data-v-3cb68eeb]{flex-wrap:wrap;align-items:center;gap:10px;min-height:34px;display:flex}.pf-readonly[data-v-3cb68eeb]{height:34px;color:var(--text);align-items:center;padding:0 2px;font-size:14px;font-weight:500;display:flex}.schedule-emp-table[data-v-3cb68eeb]{min-width:1300px}.plan-checkbox[data-v-3cb68eeb]{cursor:pointer;width:16px;height:16px;accent-color:var(--primary);flex-shrink:0;margin-top:2px}[data-v-3cb68eeb] .lc--selected{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 2px var(--primary-tint)}.plans-group[data-v-3cb68eeb]{margin-bottom:28px}.plans-group-title[data-v-3cb68eeb]{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--divider);margin-bottom:14px;padding:0 2px 10px;font-size:13px;font-weight:700}.col-sticky[data-v-3cb68eeb]{background:var(--surface);z-index:2;white-space:normal;word-break:break-word;width:180px;min-width:160px;transition:background var(--dur);position:sticky;left:0}thead .col-sticky[data-v-3cb68eeb]{background:var(--surface-2)}[data-v-3cb68eeb] tr:hover .col-sticky,tr.row--selected .col-sticky[data-v-3cb68eeb]{background:var(--primary-soft)}.emp-name-wrap[data-v-3cb68eeb]{align-items:center;gap:5px;display:flex}.emp-toggle[data-v-3cb68eeb]{cursor:pointer;width:20px;height:20px;color:var(--text-muted);opacity:0;pointer-events:none;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;transition:opacity .15s,color .15s;display:flex}tr:hover .emp-toggle[data-v-3cb68eeb]{opacity:1;pointer-events:auto}tr:hover .emp-toggle[data-v-3cb68eeb]:hover{color:#c0392b}.emp-toggle--on[data-v-3cb68eeb]{color:var(--primary);opacity:1!important;pointer-events:auto!important}tr.row--disabled[data-v-3cb68eeb]{pointer-events:none}tr.row--disabled .emp-toggle[data-v-3cb68eeb]{pointer-events:auto}tr.row--disabled td[data-v-3cb68eeb]{opacity:.45;background:var(--surface-2)!important}tr.row--disabled .col-sticky[data-v-3cb68eeb]{opacity:.7}.col-num[data-v-3cb68eeb]{text-align:center;min-width:48px;font-weight:600}.col-division[data-v-3cb68eeb]{min-width:130px;max-width:180px}.col-type[data-v-3cb68eeb]{min-width:150px}.col-shift[data-v-3cb68eeb]{width:180px;min-width:180px;padding:2px 4px}.col-cycle[data-v-3cb68eeb]{white-space:nowrap;width:1%;padding:2px 4px}.cycle-date-input[data-v-3cb68eeb]{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:5px;width:118px;height:28px;padding:3px 5px;font-size:12px}.sdf[data-v-3cb68eeb]{border-bottom:1px solid var(--divider);align-items:center;gap:6px;margin-bottom:4px;padding:8px 0;display:flex}.sdf--add[data-v-3cb68eeb]{padding:6px 0}.sdf-add-btn[data-v-3cb68eeb]{color:var(--primary);cursor:pointer;background:0 0;border:none;align-items:center;gap:5px;padding:2px 0;font-size:13px;display:inline-flex}.sdf-add-btn[data-v-3cb68eeb]:hover{text-decoration:underline}.sdf-input[data-v-3cb68eeb]{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:5px;height:30px;padding:4px 7px;font-size:13px}.sdf-input[data-v-3cb68eeb]:focus{outline:2px solid var(--primary-tint);border-color:var(--primary)}.sdf-input[placeholder="Название (необяз.)"][data-v-3cb68eeb]{flex:1;min-width:0}.sdf-time[data-v-3cb68eeb]{width:82px}.sdf-lunch[data-v-3cb68eeb]{width:58px}.sdf-cycle[data-v-3cb68eeb]{text-align:center;width:48px}.sdf-sep[data-v-3cb68eeb]{color:var(--text-muted);flex-shrink:0;font-size:13px}.sdf-radio[data-v-3cb68eeb]{color:var(--text-muted);white-space:nowrap;cursor:pointer;align-items:center;gap:3px;font-size:12px;display:flex}.sdf-type-badge[data-v-3cb68eeb]{color:var(--text-muted);background:var(--surface-2);white-space:nowrap;border-radius:4px;padding:2px 7px;font-size:12px}.sdf-btn[data-v-3cb68eeb]{border:1px solid var(--border);cursor:pointer;background:var(--surface-2);min-width:28px;height:28px;color:var(--text-muted);border-radius:5px;padding:0 6px;font-size:12px}.sdf-btn--ok[data-v-3cb68eeb]{background:var(--success-soft);color:var(--success-text);border-color:#0000}.sdf-btn[data-v-3cb68eeb]:disabled{opacity:.5}.sdt[data-v-3cb68eeb]{font-size:13px;width:100%!important;min-width:0!important}.sdt td[data-v-3cb68eeb],.sdt th[data-v-3cb68eeb]{white-space:nowrap;padding:5px 10px!important}.sdt-lunch[data-v-3cb68eeb]{color:var(--text-muted)}.sdt-editing td[data-v-3cb68eeb]{background:var(--primary-soft)}.col-day[data-v-3cb68eeb]{text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;min-width:30px;max-width:30px;padding:4px 2px;font-size:12px;transition:filter .1s}.col-day--head-weekend[data-v-3cb68eeb]{background:var(--surface-2);color:#b91c1c}.col-day--head-weekend .day-dow[data-v-3cb68eeb]{color:#b91c1c;opacity:.75}.col-day--head-extra[data-v-3cb68eeb]{color:#7c5700;background:#fef9c3}.col-day--head-extra .day-dow[data-v-3cb68eeb]{color:#7c5700;opacity:.8}.col-day--work[data-v-3cb68eeb]{color:var(--success-text);background:#e8f8ef;font-weight:700}.col-day--custom[data-v-3cb68eeb]{box-shadow:inset 0 0 0 1.5px var(--success-text);background:#d6f2e3}.day-hours-input[data-v-3cb68eeb]{box-sizing:border-box;border:1.5px solid var(--success-text);text-align:center;width:100%;color:var(--success-text);-moz-appearance:textfield;background:#fff;border-radius:4px;outline:none;padding:2px 3px;font-size:12px;font-weight:700}.day-hours-input[data-v-3cb68eeb]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.day-hours-input[data-v-3cb68eeb]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.col-day--extra[data-v-3cb68eeb]{color:#7c5700;cursor:default;background:#fffacb}.col-day--natural[data-v-3cb68eeb],.col-day--off[data-v-3cb68eeb]{color:#c0392b;background:#fde8e8}.col-day[data-v-3cb68eeb]:not(.col-day--extra):hover{filter:brightness(.94)}.day-cross[data-v-3cb68eeb]{color:inherit;opacity:.6;font-size:10px}.day-dow[data-v-3cb68eeb]{color:var(--text-muted);margin-top:1px;font-size:9px}.col-sel[data-v-3cb68eeb]{text-align:center;width:32px;min-width:32px;padding:0 6px!important}.row-checkbox[data-v-3cb68eeb]{cursor:pointer;width:14px;height:14px;accent-color:var(--primary)}.row-checkbox--disabled[data-v-3cb68eeb]{opacity:.25;cursor:not-allowed}.row--selected td[data-v-3cb68eeb]{background:var(--primary-soft)!important}.cycle-shift-bar[data-v-3cb68eeb]{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);align-items:center;gap:6px;margin-bottom:8px;padding:7px 12px;font-size:13px;display:flex}.cycle-shift-label[data-v-3cb68eeb]{color:var(--text-muted);white-space:nowrap}.cycle-shift-input[data-v-3cb68eeb]{text-align:center;border:1px solid var(--border);background:var(--surface);width:52px;color:var(--text);border-radius:5px;height:28px;padding:3px 6px;font-size:13px}.cycle-shift-unit[data-v-3cb68eeb]{color:var(--text-muted)}.cycle-shift-bar--inactive[data-v-3cb68eeb]{opacity:.45}.cycle-shift-sep[data-v-3cb68eeb]{background:var(--border);width:1px;height:20px;margin:0 2px}.cycle-shift-confirm[data-v-3cb68eeb]:hover{background:var(--success-soft);color:var(--success-text)}.cycle-shift-cancel[data-v-3cb68eeb]:hover{background:var(--danger-soft);color:var(--danger)}.row-copy-btn[data-v-a74c500d]{opacity:0;transition:opacity .15s}[data-v-a74c500d] tr:hover .row-copy-btn{opacity:1}.type-badge[data-v-a74c500d]{white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:500;display:inline-block}.sdf[data-v-a74c500d]{border-bottom:1px solid var(--divider);align-items:center;gap:6px;margin-bottom:4px;padding:8px 0;display:flex}.sdf--add[data-v-a74c500d]{padding:6px 0}.sdf-add-btn[data-v-a74c500d]{color:var(--primary);cursor:pointer;background:0 0;border:none;align-items:center;gap:5px;padding:2px 0;font-size:13px;display:inline-flex}.sdf-add-btn[data-v-a74c500d]:hover{text-decoration:underline}.sdf-input[data-v-a74c500d]{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:5px;height:30px;padding:4px 7px;font-size:13px}.sdf-input[data-v-a74c500d]:focus{outline:2px solid var(--primary-tint);border-color:var(--primary)}.sdf-btn[data-v-a74c500d]{border:1px solid var(--border);cursor:pointer;background:var(--surface-2);min-width:28px;height:28px;color:var(--text-muted);border-radius:5px;padding:0 6px;font-size:12px}.sdf-btn--ok[data-v-a74c500d]{background:var(--success-soft);color:var(--success-text);border-color:#0000}.sdf-btn[data-v-a74c500d]:disabled{opacity:.5}.sdf-color[data-v-a74c500d]{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:5px;flex-shrink:0;width:36px;height:30px;padding:2px}.sdt[data-v-a74c500d]{font-size:13px;width:100%!important;min-width:0!important}.sdt td[data-v-a74c500d],.sdt th[data-v-a74c500d]{white-space:nowrap;padding:8px 10px!important}.sdt-actions[data-v-a74c500d]{justify-content:flex-end;align-items:center;gap:2px;width:72px;display:flex}.sdt-editing td[data-v-a74c500d]{background:var(--primary-soft)}.at-dot[data-v-a74c500d]{vertical-align:middle;border-radius:50%;flex-shrink:0;width:10px;height:10px;margin-right:6px;display:inline-block}.at-sys[data-v-a74c500d]{color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border);vertical-align:middle;border-radius:4px;margin-left:6px;padding:1px 5px;font-size:11px;display:inline-block}.roles-page[data-v-1c6f99e8]{flex-direction:column;gap:0;height:100%;display:flex}.roles-table[data-v-1c6f99e8]{min-width:1000px}.roles-table tbody td[data-v-1c6f99e8]{background:var(--surface)}.roles-table tbody tr:hover td[data-v-1c6f99e8]{background:var(--primary-soft)}.role-name-cell[data-v-1c6f99e8]{align-items:center;gap:10px;display:flex}.role-icon[data-v-1c6f99e8]{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.role-icon--system[data-v-1c6f99e8]{background:var(--secondary);color:var(--primary)}.role-icon--custom[data-v-1c6f99e8]{background:var(--surface-2);color:var(--text-muted)}.role-name[data-v-1c6f99e8]{color:var(--text);font-weight:650;line-height:1.2}.role-sys-badge[data-v-1c6f99e8]{color:var(--primary);margin-top:2px;font-size:10px;font-weight:700}.role-custom-badge[data-v-1c6f99e8]{color:var(--text-faint);margin-top:2px;font-size:10px}.role-desc[data-v-1c6f99e8]{color:var(--text-muted);max-width:260px;font-size:13px}.report-tags[data-v-1c6f99e8]{grid-template-columns:repeat(2,max-content);gap:10px;display:grid}.report-dots[data-v-1c6f99e8]{flex-wrap:wrap;gap:5px;margin-bottom:4px;display:flex}.rd[data-v-1c6f99e8]{cursor:default;border:2px solid #0000;border-radius:50%;flex-shrink:0;width:14px;height:14px;display:inline-block}.rd--none[data-v-1c6f99e8]{background:var(--surface-2);border-color:var(--border)}.rd--all[data-v-1c6f99e8]{background:#86efac;border-color:#4ade80}.rd--dept[data-v-1c6f99e8]{background:#93c5fd;border-color:#60a5fa}.rd--div[data-v-1c6f99e8]{background:#fcd34d;border-color:#fbbf24}.report-dots-legend[data-v-1c6f99e8]{gap:8px;display:flex}.rd-legend[data-v-1c6f99e8]{color:var(--text-faint);align-items:center;gap:3px;font-size:10px;display:flex}.rd-legend .rd[data-v-1c6f99e8]{width:8px;height:8px}.crud-grid[data-v-1c6f99e8]{flex-direction:column;gap:3px;display:flex}.crud-chip[data-v-1c6f99e8]{border-radius:20px;align-items:center;gap:4px;width:fit-content;padding:2px 7px;font-size:11px;font-weight:600;display:inline-flex}.crud-chip--on[data-v-1c6f99e8]{background:var(--secondary);color:var(--primary)}.crud-chip--off[data-v-1c6f99e8]{background:var(--surface-2);color:var(--text-faint)}.users-badge[data-v-1c6f99e8]{background:var(--surface-2);min-width:26px;height:26px;color:var(--text-body);border-radius:13px;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:inline-flex}.perm-section[data-v-1c6f99e8]{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.perm-section+.perm-section[data-v-1c6f99e8]{margin-top:12px}.perm-section-title[data-v-1c6f99e8]{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);background:var(--surface-2);border-bottom:1px solid var(--border);padding:8px 14px;font-size:12px;font-weight:700}.perm-reports[data-v-1c6f99e8]{flex-direction:column;display:flex}.perm-report-row[data-v-1c6f99e8]{border-bottom:1px solid var(--divider);justify-content:space-between;align-items:center;gap:12px;padding:8px 14px;display:flex}.perm-report-row[data-v-1c6f99e8]:last-child{border-bottom:none}.perm-report-label[data-v-1c6f99e8]{color:var(--text-body);font-size:13px}.perm-crud-row[data-v-1c6f99e8]{flex-wrap:wrap;gap:8px 20px;padding:12px 14px;display:flex}.perm-crud-check[data-v-1c6f99e8]{color:var(--text-body);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:13px;display:flex}.perm-crud-check input[data-v-1c6f99e8]{accent-color:var(--primary);cursor:pointer;width:15px;height:15px}.perm-dict-row[data-v-1c6f99e8]{border-top:1px solid var(--divider);background:var(--surface-2);align-items:center;padding:8px 14px;display:flex}.perm-roles-note[data-v-1c6f99e8]{color:var(--text-muted);align-items:center;gap:7px;padding:12px 14px;font-size:13px;display:flex}
