:root{--bg:var(--c-page-bg);--bg-2:var(--c-page-bg);--app-bg:var(--c-page-bg);--surface-strong:var(--c-surface);--surface-hover:var(--c-surface-alt);--ink-muted:var(--c-muted);--ink-dim:var(--c-dim);--accent:var(--c-brand);--accent-hover:var(--c-brand-dark);--accent-soft:var(--c-brand-soft);--success:var(--c-green);--warning:var(--c-warning);--danger:var(--c-red);--shadow:0 12px 30px rgba(15,32,49,.08);--shadow-lg:0 26px 56px rgba(15,32,49,.14);--ring:var(--c-brand-ring);--employee-block-gap:8px;--btn-ease:cubic-bezier(0.22,1,0.36,1);--btn-duration:0.28s;--btn-transition:transform var(--btn-duration) var(--btn-ease),background-color var(--btn-duration) var(--btn-ease),border-color var(--btn-duration) var(--btn-ease),box-shadow var(--btn-duration) var(--btn-ease),color var(--btn-duration) var(--btn-ease)}*{box-sizing:border-box;box-shadow:none!important}body,html{padding:0;margin:0;color:var(--ink);overflow-x:hidden;scroll-behavior:auto;min-height:100%}body,html{background:var(--app-bg);background-image:none;background-color:var(--app-bg)}body{min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5;letter-spacing:-.01em;overscroll-behavior-y:contain;overflow-anchor:none}body:has(.admin-page.admin-redesign),html:has(.admin-page.admin-redesign){background:var(--page-bg);background-color:var(--page-bg)}body:has(.employee-page.employee-redesign),html:has(.employee-page.employee-redesign){background:var(--page-bg);background-color:var(--page-bg)}body.modal-open,body.no-scroll{overflow:hidden}body.no-scroll{position:fixed;width:100%;height:100%}button{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}main{width:100%}.container{max-width:960px;margin:0 auto;padding:20px 18px 26px}.login-page.login-redesign{--login-bg:var(--page-bg);--login-surface:var(--surface);--login-surface-soft:var(--surface-alt);--login-border:var(--border);--login-border-strong:var(--border);--login-ink:var(--ink);--login-ink-muted:var(--ink-muted);--login-accent:var(--brand);--login-accent-soft:var(--brand-soft);--login-success-soft:var(--green-soft);--login-success-ink:var(--green-dark);--login-danger-soft:var(--red-soft);--login-danger-ink:var(--red-dark);--login-danger-border:var(--red-border);--login-success-border:var(--green-border);min-height:100dvh;background:var(--login-bg)}.login-page.login-redesign .login-shell{max-width:540px;margin:0 auto;min-height:calc(100dvh - 46px);display:grid;grid-template-rows:1fr auto 1fr;align-items:center;justify-items:center;width:100%;grid-gap:0;gap:0}.login-page.login-redesign .login-header{display:grid;justify-items:center;grid-gap:14px;gap:14px;align-self:end;margin-bottom:22px}.login-page.login-redesign .login-header-chip{min-height:36px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-full);border:1px solid var(--login-border);background:var(--login-surface);color:var(--login-ink-muted);font-size:var(--fs-md);font-weight:600;letter-spacing:.08em;text-transform:uppercase}.login-page.login-redesign .login-header-title{margin:0;font-size:clamp(26px,3.2vw,32px);line-height:1;letter-spacing:0;text-align:center;display:inline-flex;align-items:baseline;justify-content:center;gap:4px}.login-page.login-redesign .login-header-title-main{display:inline-flex;align-items:center;justify-content:center;padding:0;color:var(--login-ink);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.login-page.login-redesign .login-header-title-main-accent{color:var(--login-accent)}.login-page.login-redesign .login-header-title-separator{color:var(--login-label);font-weight:600;line-height:1}.login-page.login-redesign .login-center{display:flex;justify-content:center;width:100%;grid-row:2}.login-page.login-redesign .login-center .login-card{width:min(430px,100%);background:var(--login-surface);border:1px solid var(--login-border);border-radius:var(--radius-panel);padding:var(--card-padding)}.login-page.login-redesign .login-access-card{display:grid;align-content:start;grid-gap:10px;gap:10px}.login-page.login-redesign .login-form{display:grid;grid-gap:12px;gap:12px}.login-page.login-redesign .login-input-group{display:grid;grid-gap:8px;gap:8px}.login-page.login-redesign .login-label{font-size:var(--fs-md);color:var(--login-label);letter-spacing:.01em;text-transform:uppercase;font-weight:600}.login-page.login-redesign .login-field{min-height:var(--ctrl-h);display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;grid-gap:10px;gap:10px;border-radius:var(--radius-full);border:1px solid var(--login-border);background:var(--login-surface-soft);padding:0 12px;transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease}.login-page.login-redesign .login-field:hover{border-color:var(--brand-border)}.login-page.login-redesign .login-field:focus-within{border-color:var(--input-focus-border);background:var(--input-focus-bg);box-shadow:0 0 0 var(--input-focus-ring-size) var(--input-focus-ring)!important}.login-page.login-redesign .login-field-icon{width:18px;height:18px;color:var(--login-icon);display:inline-flex;align-items:center;justify-content:center}.login-page.login-redesign .login-field-icon svg{width:18px;height:18px;stroke-width:1.9;fill:none}.login-page.login-redesign .login-input{border:0!important;border-radius:var(--radius-none)!important;background:transparent!important;box-shadow:none!important;min-height:calc(var(--ctrl-h) - 6px);padding:0 4px 0 0!important;color:var(--login-ink)!important;font-size:var(--ctrl-fs)!important;font-weight:500;caret-color:var(--brand)}.login-page.login-redesign .login-input:focus,.login-page.login-redesign .login-input:focus-visible{outline:none!important}.login-page.login-redesign .login-input::placeholder{color:var(--login-placeholder)!important}.login-page.login-redesign .login-button{width:100%;min-height:var(--ctrl-h)!important;height:var(--ctrl-h)!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px;text-align:center!important;border-radius:var(--radius-full)!important;border:1px solid var(--btn-dark)!important;background:var(--btn-dark)!important;color:var(--btn-dark-text)!important;font-size:var(--ctrl-fs)!important;font-weight:600!important;letter-spacing:.01em;box-shadow:none!important;transition:border-color .2s ease,background-color .2s ease,color .2s ease,opacity .2s ease!important}.login-page.login-redesign .login-button.is-loading{cursor:progress;pointer-events:none}.login-page.login-redesign .login-button:focus-visible:not(:disabled),.login-page.login-redesign .login-button:hover:not(:disabled){border-color:var(--btn-dark-hover)!important;background:var(--btn-dark-hover)!important;color:var(--surface)!important}.login-page.login-redesign .login-button:active:not(:disabled){border-color:var(--btn-dark-active)!important;background:var(--btn-dark-active)!important}.login-page.login-redesign .login-button:disabled{border-color:var(--border)!important;background:var(--surface-alt)!important;color:var(--ink-dim)!important;opacity:1!important}.login-page.login-redesign .login-button.is-loading:disabled{border-color:var(--btn-dark-hover)!important;background:var(--btn-dark-hover)!important;color:var(--surface)!important}.login-page.login-redesign .login-button-spinner{width:14px;height:14px;border-radius:var(--radius-full);border:2px solid hsla(0,0%,100%,.34);border-top:2px solid var(--surface);animation:loginSpin .72s linear infinite}@keyframes loginSpin{to{transform:rotate(1turn)}}.app-page-enter{animation:appPageEnter .32s cubic-bezier(.22,.61,.36,1) both}@keyframes appPageEnter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.login-page.login-redesign .login-notice,.login-page.login-redesign .notice.login-notice{margin:0;min-height:38px;border-radius:var(--radius-card);border:1px solid var(--login-danger-border)!important;background:var(--login-danger-soft)!important;color:var(--login-danger-ink)!important;padding:9px 12px!important;font-size:var(--fs-md);font-weight:500;line-height:1.35;letter-spacing:.01em;display:flex;align-items:center;gap:8px}.login-page.login-redesign .login-notice:before,.login-page.login-redesign .notice.login-notice:before{content:"";width:6px;height:6px;border-radius:var(--radius-full);flex:0 0 auto;background:currentColor;opacity:.85}.login-page.login-redesign .login-notice.is-open,.login-page.login-redesign .notice.login-notice.is-open{animation:loginNoticeIn .24s ease both}.login-page.login-redesign .login-notice.is-closing,.login-page.login-redesign .notice.login-notice.is-closing{animation:loginNoticeOut .24s ease both}@keyframes loginNoticeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes loginNoticeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}.login-page.login-redesign .login-notice.notice.success,.login-page.login-redesign .notice.login-notice.success{border-color:var(--login-success-border)!important;background:var(--login-success-soft)!important;color:var(--login-success-ink)!important}.login-page.login-redesign .login-footer{text-align:center;color:var(--ink-dim);font-size:var(--fs-md);letter-spacing:.02em;align-self:start;margin-top:18px}.login-page.login-redesign .login-footer-link{color:inherit;text-decoration:none;opacity:.84;border-bottom:1px solid transparent;transition:opacity .2s ease,border-color .2s ease,color .2s ease}.login-page.login-redesign .login-footer-link:focus-visible,.login-page.login-redesign .login-footer-link:hover{opacity:1;color:var(--ink-muted);border-bottom-color:var(--border)}.employee-shell{max-width:520px;margin:0 auto;display:grid;grid-gap:var(--employee-block-gap);gap:var(--employee-block-gap);width:100%;flex:1 1 auto;min-height:100%}.employee-brand{display:flex;justify-content:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-panel);padding:6px 12px;overflow:visible}.employee-brand .login-badge{background:var(--brand-soft);color:var(--accent);font-size:var(--fs-md);letter-spacing:.12em;white-space:nowrap}.employee-hero{display:grid;grid-gap:8px;gap:8px;padding:14px;border-radius:var(--radius-panel);background:var(--surface);border:1px solid var(--border)}.employee-hero-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.employee-title-wrap{display:flex;align-items:center;min-height:36px}.employee-title{font-size:var(--fs-2xl);font-weight:700;color:var(--ink)}.employee-subtitle{font-size:var(--fs-md);color:var(--ink-muted)}.employee-card{padding:12px}.location-card{padding:4px 10px;min-height:52px}.location-card,.location-value{display:flex;align-items:center;justify-content:center}.location-value{min-height:0;width:100%;font-size:var(--fs-xl);font-weight:600;line-height:1.15;color:var(--ink);text-align:center}.location-value.is-placeholder{color:var(--ink-dim);letter-spacing:.06em;text-transform:uppercase}.location-value.is-error{color:var(--danger);letter-spacing:.02em;text-transform:none}@media (max-width:640px){.employee-shell{margin:0 auto;gap:var(--employee-block-gap)}.employee-hero{padding:12px}.employee-title{font-size:var(--fs-xl)}.employee-card{padding:8px}.employee-actions-card{margin-bottom:0}.login-page.login-redesign .login-shell{min-height:calc(100dvh - 20px);grid-template-rows:1fr auto 1fr;gap:0}.login-page.login-redesign .login-center .login-card{border-radius:var(--radius-panel);padding:14px}.login-page.login-redesign .login-header-title{font-size:var(--fs-4xl)}.login-page.login-redesign .login-header-chip{min-height:34px;font-size:var(--fs-sm)}.login-page.login-redesign .login-header{gap:11px;margin-bottom:14px}.login-page.login-redesign .login-footer{margin-top:12px}.login-page.login-redesign .login-input{font-size:var(--fs-base)!important}}.container>*+*{margin-top:20px}.hero{display:grid;grid-gap:14px;gap:14px;padding:32px 28px;border-radius:var(--radius-panel);background:var(--surface);box-shadow:var(--shadow-lg);border:1px solid var(--surface)}.hero h1{font-size:clamp(24px,4vw,34px);margin:0;letter-spacing:-.02em;font-weight:700;color:var(--ink)}.hero p{margin:0;color:var(--ink-muted);font-size:var(--fs-xl);line-height:1.6}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-panel);padding:26px;box-shadow:var(--shadow)}.grid{display:grid;grid-gap:18px;gap:18px}.grid-2{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.label{font-weight:600;font-size:var(--fs-md);color:var(--ink-muted);margin-bottom:10px;display:grid;grid-gap:10px;gap:10px;letter-spacing:.02em;text-transform:uppercase}.input{width:100%;border:1px solid var(--border-strong);padding:11px 14px;min-height:var(--ctrl-h);font-size:var(--ctrl-fs);background:var(--surface-strong);color:var(--ink);box-shadow:none}.input:focus{outline:none;box-shadow:0 0 0 var(--input-focus-ring-size) var(--input-focus-ring)!important}.input::placeholder{color:var(--c-placeholder)}.skip-to-content{position:absolute;top:-100%;left:12px;z-index:9999;padding:8px 16px;background:var(--brand);color:var(--surface);border-radius:var(--radius-card);font-size:var(--fs-lg);font-weight:600;text-decoration:none;white-space:nowrap}.skip-to-content:focus{top:12px}.button{display:flex;align-items:center;justify-content:center;border:none;background:var(--brand);color:var(--surface);font-weight:600;padding:10px 20px;min-height:var(--ctrl-h);border-radius:var(--radius-card);letter-spacing:.01em;cursor:pointer;transition:var(--btn-transition);font-size:var(--ctrl-fs);box-shadow:none;-webkit-tap-highlight-color:transparent}.button.secondary{background:var(--btn-dark)}.button.ghost{background:var(--surface);border:1px solid var(--border);color:var(--ink);box-shadow:none}.button.ghost:active:not(:disabled){background:rgba(29,44,61,.12);box-shadow:none}.button.danger{background:var(--danger)}.button.big{padding:10px 28px;min-height:var(--ctrl-h);font-size:var(--ctrl-fs);border-radius:var(--radius-card)}.button:disabled{opacity:.4;cursor:not-allowed;background:var(--ink-dim);color:var(--ink-muted);box-shadow:none}.button:focus-visible{outline:none;box-shadow:0 0 0 4px var(--brand-ring)}.button.danger:focus-visible{box-shadow:0 0 0 4px rgba(220,38,38,.2)}.button.big:disabled{background:var(--ink-dim);color:var(--ink-muted)}.section-title{margin:0 0 16px;font-size:var(--fs-2xl);font-weight:600;color:var(--ink);letter-spacing:-.01em}.badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-full);background:var(--accent-soft);color:var(--accent);font-size:var(--fs-sm);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.notice{border-radius:var(--radius-card);background:var(--red-soft);color:var(--red-dark);border:1px solid var(--red-border)}.notice,.toast{padding:12px 16px;font-size:var(--fs-lg)}.toast{border-radius:var(--radius-card);border:1px solid var(--green-border);font-weight:600}.notice.success,.toast{background:var(--green-soft);color:var(--green-dark)}.notice.success{border-color:var(--green-border)}@keyframes eft-spin{to{transform:rotate(1turn)}}@keyframes eft-loading-dots-pulse{0%,to{opacity:var(--loading-dots-max-opacity)}50%{opacity:var(--loading-dots-min-opacity)}}.loading-dots{display:inline-flex;align-items:center;justify-content:center;min-width:var(--loading-dots-min-w);letter-spacing:var(--loading-dots-tracking);line-height:1;animation:eft-loading-dots-pulse var(--loading-dots-duration) ease-in-out infinite}.eft-spinner{width:28px;height:28px;border:2.5px solid var(--border);border-top-color:var(--accent);border-radius:var(--radius-full);animation:eft-spin .75s linear infinite;margin:20px auto;display:block;flex-shrink:0}.input-label{display:grid;grid-gap:var(--service-label-gap);gap:var(--service-label-gap);margin:0;font-size:var(--service-label-fs);text-transform:uppercase;letter-spacing:var(--service-label-tracking);font-weight:var(--service-label-fw);color:var(--service-label-color)}label.input-label{pointer-events:none}label.input-label>*{pointer-events:auto}.db-panel{display:grid;grid-gap:16px;gap:16px;padding:4px}.db-form{display:grid;grid-gap:12px;gap:12px}.db-addresses{display:grid;grid-gap:10px;gap:10px}.db-address-row{display:grid;grid-gap:8px;gap:8px;grid-template-columns:1fr auto;align-items:center}.db-address-remove{padding:10px 14px;min-height:var(--ctrl-h)}.db-section{border:1px solid var(--border);border-radius:var(--radius-panel);padding:16px;background:var(--surface);display:grid;grid-gap:12px;gap:12px}.db-section-title{margin:0;font-size:var(--service-label-fs);font-weight:var(--service-label-fw);text-transform:uppercase;letter-spacing:var(--service-label-tracking);color:var(--service-label-color)}.db-section-title.danger{color:var(--ink-muted)}.db-addresses .button.ghost{align-self:start;width:-moz-fit-content;width:fit-content}.dashboard{display:grid;grid-gap:20px;gap:20px}.route-planner{display:grid;grid-gap:16px;gap:16px}.route-form{display:grid;grid-gap:14px;gap:14px}.route-inputs{display:grid;grid-gap:10px;gap:10px}.route-result{font-size:var(--fs-xl);font-weight:600;color:var(--ink);text-align:center}.route-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.route-distance{font-size:var(--fs-lg);font-weight:600;color:var(--ink)}.route-map-card{padding:0;overflow:hidden}.route-map-frame{position:relative;border:0;overflow:hidden}.route-map-frame .route-map{position:relative;z-index:1}.route-map-band{position:absolute;left:0;right:0;bottom:0;height:20px;background:#fcfcfc;display:flex;align-items:center;justify-content:center;font-size:var(--fs-md);font-weight:600;color:var(--ink);pointer-events:none;z-index:6}.route-map{width:100%;height:420px}.route-modal{max-width:920px;width:min(92vw,920px);padding:20px}.route-modal-header{position:relative;display:flex;align-items:flex-start;justify-content:center;gap:12px;margin-bottom:12px}.route-modal-title{text-align:center;display:grid;grid-gap:6px;gap:6px}.route-modal-distance{font-size:var(--fs-base);font-weight:600;color:var(--ink-muted)}.route-modal-header .icon-button{position:absolute;right:0;top:0;transform:none}.route-modal-body .route-map{height:420px}.route-marker-label{background:transparent;border:none;color:var(--ink);font-weight:700;font-size:var(--fs-sm);box-shadow:none}.route-employee-marker{background:transparent!important;border:0!important}.route-employee-marker-inner{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-full);border:1px solid var(--route-employee-marker-border,var(--border));background:var(--route-employee-marker-bg,var(--surface));box-shadow:0 3px 8px rgba(15,32,49,.18)}.route-employee-marker-inner svg{width:14px;height:14px;stroke:var(--route-employee-marker-fg,var(--brand));fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.route-error{text-align:center}@media (max-width:640px){.route-map{height:320px}.route-summary{flex-direction:column;align-items:stretch}.route-modal{padding:16px}.route-modal-body .route-map{height:320px}}.inline-form{display:grid;grid-gap:12px;gap:12px}.status-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-panel);font-size:var(--fs-md);font-weight:600}.status-pill.status-pill--icon-only{justify-content:center;gap:0;padding-inline:var(--status-pill-icon-pad-x)}.status-pill .status-icon{width:var(--status-icon-sz);height:var(--status-icon-sz);display:inline-block}.status-pill.active{background:var(--green-soft);color:var(--green-dark)}.status-pill.idle{background:var(--surface-muted);color:var(--ink-muted)}.status-pill.offline{background:var(--surface-muted);color:var(--ink-dim)}.status-pill.warn{background:var(--c-warning-soft);color:var(--c-warning-text)}.status-pill.danger{background:var(--c-red-soft);color:var(--c-red-dark)}.topbar{justify-content:space-between;gap:16px;padding:var(--card-padding);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);margin-bottom:0}.topbar,.topbar-actions{display:flex;align-items:center}.topbar-actions{gap:10px;flex-wrap:wrap}.topbar-actions .button{flex:1 1;min-width:160px;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center}.topbar-title{font-size:var(--fs-2xl);font-weight:700;color:var(--ink);letter-spacing:-.01em}.topbar-meta{display:flex;flex-wrap:wrap;gap:8px;color:var(--ink-muted);font-size:var(--fs-md)}.admin-panel-title{margin:0;text-align:center}.admin-page .card,.admin-page .topbar{padding:var(--card-padding)}.admin-headbar-grid{width:100%;display:grid;grid-template-columns:190px 1fr 190px;grid-template-areas:"left title right";align-items:center;grid-gap:22px;gap:22px}.admin-headbar-left{grid-area:left;justify-self:start}.admin-headbar-left,.admin-headbar-right{width:190px;min-width:190px;white-space:nowrap}.admin-headbar-right{grid-area:right;justify-self:end}.admin-panel-title{grid-area:title;justify-self:center}.button.ghost.topbar-ghost{display:inline-flex;align-items:center;justify-content:center;min-height:var(--logout-h);height:var(--logout-h);padding:0 var(--logout-pad-x);font-size:var(--logout-fs);font-weight:var(--logout-fw);line-height:1;border-radius:var(--radius-full);background-color:var(--surface);transition:var(--btn-transition)}.button.ghost.topbar-ghost:hover:not(:disabled){background-color:rgba(29,44,61,.07);border-color:var(--border);color:var(--ink);box-shadow:0 8px 16px rgba(21,35,46,.12)}.button.ghost.topbar-ghost:active:not(:disabled){background-color:rgba(29,44,61,.1);box-shadow:0 6px 12px rgba(21,35,46,.1)}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:0;border-bottom:none;padding-bottom:0}.tabs-spread{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));grid-gap:10px;gap:10px}.tab-pill{display:inline-flex;align-items:center;padding:8px 16px;border-radius:var(--radius-full);border:1px solid var(--border);font-size:var(--fs-md)}.tab,.tab-pill{background:var(--surface);font-weight:600;color:var(--ink-muted)}.tab{padding:10px 18px;border:none;font-size:var(--fs-base);cursor:pointer;border-radius:var(--radius-full);border:1px solid var(--border);transition:var(--btn-transition)}.tab.active{color:var(--accent);border-color:var(--brand-border);background:var(--brand-soft)}.employee-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-panel);padding:20px;box-shadow:var(--shadow)}.employee-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.employee-name{font-size:var(--fs-2xl);font-weight:700;color:var(--ink)}.menu-dropdown{position:absolute;top:100%;margin-top:8px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);min-width:160px;width:160px;z-index:100;opacity:0;transform:scale(.985);transform-origin:top right}.menu-dropdown.is-closing{pointer-events:none}.menu-item{padding:8px 10px;cursor:pointer;font-size:var(--fs-base);white-space:nowrap;width:100%;box-sizing:border-box;color:var(--ink);display:flex;align-items:center;justify-content:center;text-align:center;transition:var(--btn-transition)}.menu-item:hover{background:var(--surface);border-color:var(--border)}.menu-item-danger{color:var(--danger);transition:var(--btn-transition)}.menu-item-danger:hover{background:transparent}.timeline{display:grid;grid-gap:12px;gap:12px}.timeline-item{display:grid;grid-gap:6px;gap:6px;padding:14px 16px;border-radius:var(--radius-card);background:var(--surface-hover);border:1px solid var(--border)}.timeline-time{font-size:var(--fs-md);color:var(--ink-dim);font-weight:600;letter-spacing:.02em;text-transform:uppercase}.timeline-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.timeline-text{font-size:var(--fs-lg);color:var(--ink-muted)}.period-shifts-grid{display:grid;grid-gap:7px;gap:7px}.period-shift-card{position:relative;display:grid;grid-gap:8px;gap:8px;padding:10px 11px;box-shadow:0 8px 18px rgba(17,38,65,.06);transition:box-shadow .3s var(--ios-ease-out),border-color .3s var(--ios-ease-out),background-color .3s var(--ios-ease-out)}.period-shift-card:hover{border-color:var(--brand-border);box-shadow:0 10px 20px rgba(17,38,65,.08)}.period-shift-card.is-expanded{border-color:var(--brand-border);box-shadow:0 12px 24px rgba(17,38,65,.1);background:var(--surface)}.period-shift-card.is-active,.period-shift-card.is-active.is-expanded,.period-shift-card.is-active:hover{border-color:var(--c-green-border);background:var(--c-green-soft)}.period-shift-card.is-ended,.period-shift-card.is-ended.is-expanded,.period-shift-card.is-ended:hover{border-color:var(--c-red-border);background:var(--c-red-soft)}.period-shift-header,.period-shift-topline{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.period-shift-time{display:inline-flex;align-items:center;min-height:32px;padding:6px 10px;border-radius:var(--radius-card);border:1px solid var(--border);background:var(--c-surface-brand);font-size:var(--fs-md);color:var(--ink-muted);font-weight:600;letter-spacing:0;text-transform:none;white-space:nowrap}.period-shift-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:6px;gap:6px}.period-shift-meta-item{min-height:30px;padding:5px 10px;border-radius:var(--radius-card);border:1px solid var(--border);background:var(--c-surface-alt);font-size:var(--fs-md);font-weight:600;color:var(--ink-muted)}.period-shift-meta-item,.period-shift-status{display:inline-flex;align-items:center;justify-content:center}.period-shift-status{min-height:32px;padding:6px 11px;border-radius:var(--radius-full);font-size:var(--fs-sm);font-weight:700;letter-spacing:.02em;border:1px solid transparent;white-space:nowrap}.period-shift-status.active{background:var(--c-green-soft);border-color:var(--c-green-border);color:var(--c-green-dark)}.period-shift-status.ended{background:var(--c-surface-muted);border-color:var(--border);color:var(--c-muted)}.period-shift-actions,.period-shift-trailing{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-left:auto;flex-wrap:wrap}.period-shift-actions .button,.period-shift-trailing .button{min-height:34px;padding:6px 11px;border-radius:var(--radius-card);font-size:var(--fs-md);white-space:nowrap}.period-shift-map-toggle{min-width:118px}.period-shift-map-toggle.route-error{border-color:var(--border);color:inherit}.period-shift-map-panel{max-height:0;opacity:0;overflow:hidden;transition:max-height .3s cubic-bezier(.16,1,.3,1),opacity .3s ease}.period-shift-map-panel.is-open{max-height:900px;opacity:1}.period-shift-map-content{display:grid;grid-gap:8px;gap:8px;padding-top:4px}.period-shift-map-meta{font-size:var(--fs-md);font-weight:700;color:var(--ink-muted);text-align:center}.period-shift-map .route-map{height:100%;position:relative;z-index:1}.period-shift-map{position:relative;width:100%;aspect-ratio:1/1;overflow:hidden;border:1px solid var(--border);background:var(--surface)}.period-shift-map .route-map-band{position:absolute;left:0;right:0;bottom:0;height:20px;background:hsla(0,0%,99%,.98);border-top:1px solid rgba(29,44,61,.14);z-index:9}.main-action{text-align:left;padding:16px 12px;grid-gap:10px;gap:10px}.main-action-button{width:100%;max-width:400px;margin:0 auto}.main-action .button.big{border-radius:var(--radius-panel)}.action-status{margin-top:16px;font-size:var(--fs-lg);color:var(--ink-muted)}.employee-page .container{min-height:100dvh;display:flex;padding:10px 18px calc(env(safe-area-inset-bottom) + 10px)}.admin-page{min-height:100dvh;overflow-x:hidden}.admin-page .container{height:auto;overflow:visible;padding:10px 18px 16px}.admin-page .container>*+*{margin-top:16px}.admin-page .employee-brand{margin-bottom:0}.employee-page .button.big{min-height:48px;padding:12px 18px;border-radius:var(--radius-panel);font-size:var(--fs-lg)}.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--inner-gap);gap:var(--inner-gap);margin-bottom:0}.employee-stats{gap:var(--employee-block-gap);margin-bottom:0}.employee-stats .stat-card,.employee-stats .stat-card.timer{min-height:var(--stat-card-h);padding:var(--card-padding);text-align:center;justify-content:center}.employee-stats .stat-card.timer{display:flex;gap:6px}.employee-stats .stat-value{width:100%;line-height:1.1;margin-bottom:0}.employee-stats .stat-label{width:100%;min-height:30px;line-height:1.2;text-wrap:balance}.employee-stats .stat-label,.stat-card{display:flex;align-items:center;justify-content:center}.stat-card{padding:var(--card-padding);border-radius:var(--radius-card);border:1px solid var(--border);text-align:center;flex-direction:column;gap:var(--inner-gap);min-height:var(--stat-card-h)}.stat-card,.stat-card.timer{background:var(--surface-hover)}.stat-card.timer{border-color:var(--border);box-shadow:none}.admin-stats .stat-card{text-align:center}.stat-card.timer{text-align:left}.stat-value{font-size:var(--fs-3xl);font-weight:700;color:var(--ink);padding-block:var(--kpi-value-pad-y);margin-bottom:4px}.stat-label{font-weight:600;letter-spacing:.02em}.employee-status{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-full);background:var(--brand-soft);color:var(--accent);font-size:var(--fs-md);font-weight:700;letter-spacing:.02em}.employee-status.active{background:var(--c-green-soft);color:var(--c-green-dark)}.employee-status.danger{background:var(--c-red-soft);color:var(--c-red-dark)}.shift-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:var(--fs-base);color:var(--ink-muted)}.shift-sessions{display:grid;grid-gap:6px;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.dashboard-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:var(--section-gap);gap:var(--section-gap);margin-bottom:var(--card-padding)}.admin-dashboard-card{position:relative;overflow:visible;z-index:30;isolation:isolate}.admin-dashboard-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.admin-dashboard-head .section-title{margin:0}.admin-calendar-inline{position:relative;display:inline-flex;align-items:center;flex-shrink:0}.admin-calendar-trigger{border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:var(--radius-full);min-height:34px;padding:7px 12px;display:inline-flex;align-items:center;gap:8px;cursor:pointer;transition:var(--btn-transition)}.admin-calendar-trigger:hover{background:var(--brand-soft);border-color:var(--brand-border)}.admin-calendar-trigger.is-open{border-color:var(--brand-border);box-shadow:0 0 0 3px var(--brand-ring)}.admin-calendar-trigger-title{font-size:var(--fs-md);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted)}.admin-calendar-trigger-icon{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;color:var(--ink-muted);flex:0 0 auto}.admin-calendar-trigger-icon svg{width:16px;height:16px;display:block}.admin-calendar-trigger-value{font-size:var(--fs-md);font-weight:700;color:var(--ink)}.admin-calendar-topbar-actions{display:inline-flex;align-items:center;gap:8px}.admin-calendar-link{border:1px solid var(--border);background:var(--surface);color:var(--ink-muted);border-radius:var(--radius-full);min-height:34px;padding:6px 11px;font-size:var(--fs-md);font-weight:600;cursor:pointer;transition:var(--btn-transition)}.admin-calendar-link:focus-visible,.admin-calendar-link:hover{background:var(--brand-soft);border-color:var(--brand-border);color:var(--ink)}.admin-calendar-popover{position:absolute;top:calc(100% + 10px);z-index:120;width:min(460px,calc(100vw - 34px));border-radius:var(--radius-card);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-lg);padding:10px;opacity:0;transform:scale(.98);transform-origin:top right}.admin-calendar-popover.is-closing{pointer-events:none}.admin-calendar{display:grid;grid-gap:8px;gap:8px;padding:8px;border:1px solid rgba(29,44,61,.08);box-shadow:none}.admin-calendar-head{display:grid;align-items:center;grid-gap:8px;gap:8px}.admin-calendar-nav{border-radius:var(--radius-full);border:1px solid var(--border);background:var(--surface);color:var(--ink);line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--btn-transition)}.admin-calendar-nav:hover{background:var(--brand-soft);border-color:var(--brand-border)}.admin-calendar-title{text-align:center;font-weight:600;color:var(--ink);text-transform:capitalize;letter-spacing:-.01em}.admin-calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:6px;gap:6px}.admin-calendar-weekday{text-align:center;font-weight:600;color:var(--ink-muted);padding:4px 0 2px}.admin-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:6px;gap:6px}.admin-calendar-day{min-height:36px;border:1px solid transparent;background:transparent;color:var(--ink);display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;cursor:pointer;transition:background-color var(--btn-duration) ease,transform var(--btn-duration) ease;position:relative}.admin-calendar-day:hover:not(.is-in-range):not(.is-range-start):not(.is-range-end){background:rgba(29,44,61,.06);border-color:var(--border)}.admin-calendar-day-number{font-size:var(--fs-base);font-weight:600;line-height:1}.admin-calendar-day.is-outside{color:var(--ink-dim);opacity:.38}.admin-calendar-day.is-today:not(.is-in-range){border:1px solid var(--brand-border);background:var(--brand-soft)}.admin-calendar-day.is-in-range{background:var(--brand-soft);color:var(--ink);border-color:var(--brand-border)}.admin-calendar-day.is-range-end,.admin-calendar-day.is-range-start{color:var(--surface);border-color:transparent;box-shadow:0 8px 14px var(--brand-ring)}.admin-calendar-day.is-in-range:hover{background:var(--brand-soft)}.admin-calendar-day.is-range-end:hover,.admin-calendar-day.is-range-start:hover{background:var(--brand-dark)}.modal-content.modal-employee{height:min(620px,calc(100vh - 40px));min-height:min(620px,calc(100vh - 40px));max-height:min(620px,calc(100vh - 40px));overflow-y:auto;overflow-x:hidden}.modal-content.modal-employee .stats-grid{gap:12px}.modal-overlay.modal-overlay-employee{align-items:center;overflow:hidden}.modal-content.modal-employee .stat-card{text-align:center}.modal-employee-dashboard-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}.modal-employee-dashboard-head .admin-calendar-inline{flex:1 1 300px}.modal-employee-export{min-height:42px;padding-inline:14px;white-space:nowrap}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;overscroll-behavior:contain;opacity:0}.modal-overlay.is-closing{pointer-events:none}.modal-overlay.modal-overlay-nested{background:transparent}.modal-content{background:var(--surface);border:1px solid var(--border);padding:32px;max-width:480px;width:100%;box-shadow:var(--shadow-lg);max-height:calc(100vh - 40px);overflow:auto;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior:contain;opacity:0;transform:scale(.985);will-change:transform,opacity}.modal-content::-webkit-scrollbar{width:0;height:0}.modal-header{margin-bottom:18px}.modal-header-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.modal-title-block{display:grid;grid-gap:6px;gap:6px;width:100%}.modal-meta-row{display:flex;flex-wrap:nowrap;gap:10px;width:100%}.modal-title-block .modal-title{text-align:center;margin:0}.modal-name-row{display:grid;grid-template-columns:80px 1fr 80px;align-items:center;grid-gap:8px;gap:8px}.modal-name-spacer{width:80px;height:1px}.modal-actions-inline{display:flex;gap:8px;position:relative;justify-self:end;align-items:center}.menu-anchor{position:relative;display:inline-flex}.icon-button{width:36px;height:36px;border-radius:var(--radius-card);border:1px solid var(--border);background:var(--surface-strong);display:inline-flex;align-items:center;justify-content:center;color:var(--ink-muted);cursor:pointer;transition:var(--btn-transition)}.icon-button:hover{background:var(--surface);border-color:var(--border);color:var(--ink);box-shadow:0 8px 16px rgba(21,35,46,.12)}.icon-button:active{box-shadow:0 6px 12px rgba(21,35,46,.1)}.icon-button.route-error{border-color:rgba(196,62,62,.7);color:var(--surface);background:var(--red);box-shadow:0 8px 16px rgba(196,62,62,.22)}.icon-button.route-error:hover{background:var(--c-red-dark);border-color:var(--c-red-border);color:var(--surface)}.modal-menu{right:calc(100% + 6px);left:auto;top:0;min-width:180px}.menu-anchor .modal-menu{top:calc(100% - 2px);left:auto;right:0;min-width:160px;width:160px}.modal-title{font-size:var(--fs-3xl);font-weight:700;margin:0;color:var(--ink);line-height:1.1}.modal-description{color:var(--ink-muted);font-size:var(--fs-lg);margin:0}.modal-actions{display:flex;gap:12px;margin-top:24px;justify-content:flex-end}.confirm-modal-code-grid{gap:var(--section-gap)}.confirm-modal-error{margin-top:var(--inner-gap)}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:640px){body{background:var(--app-bg);background-image:none}.container{padding:var(--mob-page-pad-y) var(--mob-page-pad-x) calc(env(safe-area-inset-bottom) + var(--mob-safe-bottom-offset))}.input,input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),select,textarea{font-size:var(--mob-touch-fs)!important}label.label{pointer-events:none}label.label>.input,label.label>input,label.label>select,label.label>textarea{pointer-events:auto}.container>*+*{margin-top:var(--section-gap)}.card,.hero{padding:var(--card-padding)}.card{border-radius:var(--radius-card)}.topbar{flex-direction:row;align-items:center;justify-content:space-between;text-align:left;gap:var(--mob-gap-lg);margin-top:0}.admin-page .card,.admin-page .topbar,.topbar{padding:var(--card-padding)}.admin-topbar{flex-direction:column;align-items:center;text-align:center;gap:var(--mob-gap-md);margin-top:0}.admin-headbar-grid{grid-template-columns:1fr 1fr;grid-template-areas:"title title" "left right";gap:var(--mob-gap-md);justify-content:stretch}.admin-panel-title{grid-column:1/-1;width:100%;justify-self:stretch;text-align:center}.admin-headbar-left,.admin-headbar-right{justify-self:stretch;width:auto;min-width:0}.employee-topbar{margin-top:0}.topbar-title{font-size:var(--mob-title-fs)}.topbar-meta{justify-content:flex-start;text-align:left}.admin-topbar .topbar-meta{justify-content:center;text-align:center}.topbar .button{width:auto}.topbar-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--mob-gap-md);gap:var(--mob-gap-md);width:100%}.topbar-actions .button{width:100%;min-width:0;font-size:var(--mob-cta-fs)}.tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.tabs::-webkit-scrollbar{display:none}.tab{white-space:nowrap;padding:10px 16px;font-size:var(--mob-tab-fs-legacy)}.stats-grid{grid-template-columns:repeat(2,1fr);gap:var(--mob-gap-md);justify-items:stretch;margin-bottom:12px}.admin-stats .stat-card:nth-child(3){grid-column:1/-1}.stat-card.timer{grid-column:1/-1;display:grid;grid-gap:var(--mob-gap-2xs);gap:var(--mob-gap-2xs);padding:var(--card-padding)}.stat-card,.stat-card.timer{text-align:center;width:100%}.stat-card{padding:var(--mob-panel-pad-compact)}.dashboard-cards .stat-card{padding:var(--mob-dashboard-card-pad)}.stat-value{font-size:var(--mob-stat-value-fs-sm)}.stat-label{font-size:var(--mob-stat-label-fs-sm)}.employee-stats .stat-card,.employee-stats .stat-card.timer{min-height:var(--mob-stat-card-h-sm);padding:var(--mob-stat-card-pad)}.employee-stats .stat-card.timer{grid-column:auto;display:flex;gap:var(--mob-grid-gap)}.employee-stats .stat-value{font-size:var(--fs-4xl);margin-bottom:0;line-height:1.1}.employee-stats .stat-label{font-size:var(--mob-label-fs);min-height:var(--mob-stat-label-min-h);line-height:1.2}.location-card{padding:var(--mob-location-pad);min-height:var(--mob-kpi-row-h)}.location-value{font-size:var(--mob-location-fs);min-height:0;line-height:1.15}.employee-page,.employee-page .container{min-height:100dvh;overflow:visible}.employee-page .container{height:100dvh;display:flex;padding:var(--mob-page-pad-y) var(--mob-page-pad-x) calc(env(safe-area-inset-bottom) + var(--mob-safe-bottom-offset))}.employee-brand{padding:6px 12px}.employee-brand .login-badge{font-size:var(--fs-md);letter-spacing:.12em}.employee-hero{padding:var(--card-padding)}.employee-card{padding:var(--mob-panel-pad-compact)}.employee-title{font-size:var(--type-title-fs)}.employee-page .button.big{min-height:var(--mob-cta-h-base);padding:var(--mob-cta-pad)}.employee-actions-card{padding:var(--card-padding);display:flex;flex-direction:column;justify-content:center}.employee-actions-card .main-action{width:100%}.employee-page .container>*+*{margin-top:var(--section-gap)}.admin-page{min-height:100dvh;overflow-x:hidden}.admin-page .container{height:auto;overflow:visible;padding:var(--mob-page-pad-y) var(--mob-page-pad-x) calc(env(safe-area-inset-bottom) + var(--mob-safe-bottom-offset))}.admin-page .container>*+*{margin-top:var(--section-gap)}.modal-employee-dashboard-head{flex-direction:column;align-items:stretch}.modal-employee-dashboard-head .admin-calendar-inline{width:100%;flex:1 1 auto}.modal-employee-export{width:100%}.period-shift-card{padding:var(--mob-shift-card-pad-compact);gap:var(--mob-grid-gap)}.period-shift-map-panel.is-open{max-height:var(--mob-shift-map-panel-max-h)}.period-shift-map .route-map{height:100%}}.action-error{display:none;align-self:center;padding:6px 10px;border:1px solid var(--c-brand-border);color:var(--c-brand-dark);background:var(--c-brand-soft);border-radius:var(--radius-card);font-size:var(--fs-base)}.action-error.visible{display:flex}.modal-content{padding:24px 20px;margin:20px}.modal-content.modal-employee{width:100%;margin:16px;padding:20px 16px;height:calc(100vh - 32px);min-height:calc(100vh - 32px);max-height:calc(100vh - 32px)}.modal-content.modal-employee .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.modal-content.modal-employee .admin-stats .stat-card{grid-column:auto}.modal-content.modal-employee .stat-card{min-height:80px;padding:12px 10px}.modal-content.modal-employee .stat-value{font-size:var(--fs-3xl)}.modal-content.modal-employee .stat-label{font-size:var(--fs-sm)}.modal-header-row.compact,.modal-meta-row{align-items:center}.modal-meta-row{flex-direction:row;justify-content:space-between;gap:8px}.stats-grid.admin-stats{grid-template-columns:repeat(2,1fr);gap:10px}.timeline{gap:10px}.modal-actions{flex-direction:column}.button{width:100%}.admin-calendar-link:hover,.admin-calendar-nav:hover,.admin-calendar-trigger:hover,.button.danger:hover:not(:disabled),.button.ghost:hover:not(:disabled),.button.secondary:hover:not(:disabled),.button:hover:not(:disabled),.employee-chip:hover,.icon-button:hover,.tab:hover{transform:none;box-shadow:none}.main-action{padding:16px;text-align:center;display:grid;grid-gap:12px;gap:12px;justify-items:center}.main-action .button.big{min-height:52px;font-size:var(--fs-xl);border-radius:var(--radius-card);width:100%;max-width:100%}.employee-header{flex-wrap:wrap;gap:12px;align-items:flex-start}.employee-name{font-size:var(--fs-xl)}.timeline-item{padding:10px 12px}.menu-dropdown{right:0;left:auto;min-width:180px}.dashboard-cards{grid-template-columns:repeat(2,1fr)}.admin-dashboard-head{flex-direction:column;align-items:stretch;gap:10px}.admin-calendar-inline{width:100%;justify-content:space-between;gap:8px}.admin-calendar-trigger{flex:1 1;justify-content:space-between;min-width:0;padding:7px 10px}.admin-calendar-trigger-title,.admin-calendar-trigger-value{font-size:var(--fs-sm)}.admin-calendar-topbar-actions{width:auto;justify-content:flex-end}.admin-calendar-link{padding:6px 10px;font-size:var(--fs-sm)}.admin-calendar-popover{right:0;left:auto;width:min(420px,calc(100vw - 26px));padding:8px}.admin-calendar{padding:7px;gap:7px}.admin-calendar-head{grid-template-columns:34px 1fr 34px}.admin-calendar-nav{width:34px;height:34px;font-size:var(--fs-2xl)}.admin-calendar-title{font-size:var(--fs-xl)}.admin-calendar-weekday{font-size:var(--fs-sm)}.admin-calendar-grid{gap:5px}.admin-calendar-day{min-height:34px}.admin-calendar-day-number{font-size:var(--fs-md)}.employee-tabs{grid-template-columns:repeat(2,1fr)}.hero h1,.hero p,.section-title{text-align:center}.admin-calendar-popover,.card,.db-section,.employee-brand,.employee-card,.employee-hero,.login-page.login-redesign .login-card,.modal-content,.stat-card,.topbar{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow)}.card,.db-section,.employee-brand,.employee-card,.employee-hero,.login-page.login-redesign .login-card,.modal-content,.stat-card,.topbar{border-radius:var(--radius-panel)}.input{border-radius:var(--radius-card);background:var(--surface);border-color:var(--border);transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease}.input:focus{border-color:var(--input-focus-border);box-shadow:0 0 0 var(--input-focus-ring-size) var(--input-focus-ring);background:var(--input-focus-bg)}.topbar{padding:14px 16px;border-radius:var(--radius-panel)}.admin-headbar-grid{gap:14px}.stats-grid{gap:10px}.stat-card{min-height:88px;padding:12px 10px}.stat-value{font-size:var(--fs-4xl);letter-spacing:-.01em}.stat-label{font-size:var(--fs-md);color:var(--ink-muted)}.employee-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}.employee-chip{position:relative;width:100%;padding:12px 14px 12px 30px;border-radius:var(--radius-card);border:1px solid rgba(29,44,61,.14);background:var(--surface);color:var(--ink);font-size:var(--fs-base);font-weight:600;cursor:pointer;text-align:left;transition:var(--btn-transition);box-shadow:0 8px 18px rgba(17,36,56,.08)}.employee-chip:before{content:"";position:absolute;left:12px;top:50%;transform:translateY(-50%);width:8px;height:8px;border-radius:var(--radius-full);background:var(--c-dim)}.employee-chip.active{background:var(--c-green-soft);border-color:var(--c-green-border);color:var(--c-green-dark);box-shadow:none}.employee-chip.active:before{background:var(--green)}.employee-chip.inactive{background:var(--c-red-soft);border-color:var(--c-red-border);color:var(--c-red-dark);box-shadow:none}.employee-chip.inactive:before{background:var(--red)}.menu-dropdown{padding:6px}.menu-dropdown,.menu-item{border-radius:var(--radius-card)}.menu-item:hover{background:var(--brand-soft)}.modal-overlay{background:rgba(15,22,32,.38)}.modal-content{border-radius:var(--radius-panel);border-color:var(--border)}.modal-meta-row{gap:12px}.modal-description{font-size:var(--fs-base)}.admin-calendar-link,.admin-calendar-nav,.admin-calendar-trigger{background:var(--surface);border:1px solid rgba(29,44,61,.15)}.admin-calendar-trigger{border-radius:var(--radius-card);padding:9px 12px}.admin-calendar-popover{border-radius:var(--radius-panel);border-color:var(--border)}.admin-calendar{border-radius:var(--radius-card);border-color:var(--border);background:var(--surface)}.admin-calendar-title{font-size:var(--fs-2xl);font-weight:700}.admin-calendar-day{border-radius:var(--radius-card)}.admin-calendar-day.has-data:not(.is-in-range){background:var(--brand-soft)}.admin-calendar-day.is-range-end,.admin-calendar-day.is-range-start{background:var(--brand);box-shadow:0 10px 18px var(--brand-ring)}.period-shift-card{border-radius:var(--radius-card);border:1px solid var(--border);background:var(--surface)}.period-shift-meta{font-size:var(--fs-md)}.period-shift-map{border-radius:var(--radius-card)}.route-map-band{background:var(--surface)}@media (max-width:640px){.container{padding:var(--mob-page-pad-y) var(--mob-page-pad-x) calc(env(safe-area-inset-bottom) + var(--mob-safe-bottom-offset))}.card,.modal-content,.topbar{border-radius:var(--radius-panel)}.button.big,.db-section,.employee-brand,.employee-card,.employee-hero,.stat-card{border-radius:var(--radius-card)}.button.big{min-height:46px}.employee-page .employee-brand,.employee-page .employee-card,.employee-page .employee-hero,.employee-page .stat-card{border-radius:var(--radius-panel)}.employee-page .button.big{min-height:50px;border-radius:var(--radius-card)}}.modal-content.modal-employee{width:min(900px,94vw);max-width:min(900px,94vw);min-height:min(680px,calc(100vh - 34px));max-height:min(680px,calc(100vh - 34px));position:relative;overflow:hidden;padding:var(--card-padding);border-radius:var(--radius-panel);border:1px solid var(--border);background:var(--c-surface-brand);box-shadow:0 34px 74px rgba(14,30,45,.2)}.modal-content.modal-employee .modal-header{margin-bottom:12px}.modal-content.modal-employee .modal-header-row.compact{align-items:flex-start}.modal-content.modal-employee .modal-name-row{grid-template-columns:52px 1fr 52px}.modal-content.modal-employee .modal-title{font-size:var(--fs-6xl);font-weight:700;letter-spacing:-.02em}.modal-content.modal-employee .modal-meta-row{margin-top:8px;justify-content:center;flex-wrap:wrap;gap:8px}.modal-content.modal-employee .employee-status,.modal-content.modal-employee .modal-description{margin:0;display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:5px 11px;border-radius:var(--radius-full);font-size:var(--fs-md);font-weight:700;letter-spacing:.01em;border:1px solid var(--border);background:var(--surface);color:var(--ink-muted)}.modal-content.modal-employee .employee-status{color:var(--ink);border-color:var(--brand-border);background:var(--brand-soft)}.modal-content.modal-employee .employee-status.active{color:var(--c-green-dark);border-color:var(--c-green-border);background:var(--c-green-soft)}.modal-content.modal-employee .employee-status.danger{color:var(--c-red-dark);border-color:var(--c-red-border);background:var(--c-red-soft)}.modal-content.modal-employee .icon-button{width:38px;height:38px;border-radius:var(--radius-card);background:var(--surface)}.modal-content.modal-employee .modal-employee-dashboard-head{margin-bottom:12px;padding:0;border:0;border-radius:var(--radius-none);background:transparent}.modal-content.modal-employee .modal-employee-export{min-height:42px;border-radius:var(--radius-card);padding-inline:14px}.modal-content.modal-employee .stats-grid.admin-stats{margin-top:2px;margin-bottom:12px;gap:10px}.modal-content.modal-employee .admin-stats .stat-card{min-height:88px;border-radius:var(--radius-panel);border-color:var(--border);background:var(--surface)}.modal-content.modal-employee .admin-stats .stat-value{font-size:var(--fs-4xl);line-height:1.1}.modal-content.modal-employee .admin-stats .stat-label{font-size:var(--fs-md);font-weight:600;color:var(--ink-muted)}.modal-content.modal-employee .section-title{font-size:var(--fs-2xl);margin-bottom:10px}.modal-content.modal-employee .period-shifts-grid{display:grid;grid-gap:9px;gap:9px;max-height:340px;overflow:auto;padding-right:2px;scrollbar-width:thin}.modal-content.modal-employee .period-shift-card{gap:8px;border-radius:var(--radius-card);border:1px solid rgba(29,44,61,.14);background:var(--surface);box-shadow:0 8px 16px rgba(15,30,44,.08)}.modal-content.modal-employee .period-shift-card:hover{border-color:var(--brand-border);box-shadow:0 10px 18px rgba(15,30,44,.1)}.modal-content.modal-employee .period-shift-card.is-expanded{border-color:var(--brand-border);background:var(--surface)}.modal-content.modal-employee .period-shift-time{font-size:var(--fs-md);font-weight:600}.modal-content.modal-employee .period-shift-meta{font-size:var(--fs-md);gap:8px}.modal-content.modal-employee .period-shift-meta-item{min-height:32px;border-color:var(--border);background:var(--c-surface-brand)}.modal-content.modal-employee .period-shift-status{border-radius:var(--radius-full)}.modal-content.modal-employee .period-shift-trailing{margin-left:auto;justify-content:flex-end}.modal-content.modal-employee .period-shift-trailing .button{min-height:36px;border-radius:var(--radius-card)}.modal-content.modal-employee .period-shift-map-panel.is-open{max-height:980px}.modal-content.modal-employee .period-shift-map-meta{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:6px 11px;border-radius:var(--radius-full);border:1px solid var(--c-border);background:var(--c-surface-brand);width:-moz-fit-content;width:fit-content;margin-inline:auto;font-size:var(--fs-base);font-weight:700;color:var(--ink)}.modal-content.modal-employee .period-shift-map{border-radius:var(--radius-card);border:1px solid var(--border);background:var(--surface);box-shadow:0 8px 16px rgba(14,30,45,.08)}.modal-content.modal-employee .period-shift-map .route-map-band{background:var(--surface)}.modal-content.modal-employee .period-shift-overlay{position:absolute;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(15,22,32,.28);opacity:0;pointer-events:none;transition:opacity .3s var(--ios-ease-out)}.modal-content.modal-employee .period-shift-overlay.is-open{opacity:1;pointer-events:auto}.modal-content.modal-employee .period-shift-overlay-card{width:min(100%,540px);max-height:min(84vh,700px);overflow:hidden;display:grid;grid-gap:12px;gap:12px;padding:14px;border-radius:var(--radius-panel);border:1px solid rgba(29,44,61,.14);background:var(--surface);box-shadow:0 20px 44px rgba(14,30,45,.24)}.modal-content.modal-employee .period-shift-overlay-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;grid-gap:10px;gap:10px;padding-bottom:10px;border-bottom:1px solid var(--border)}.modal-content.modal-employee .period-shift-overlay-title{justify-self:start;font-size:var(--fs-2xl);font-weight:700;color:var(--ink);line-height:1.2}.modal-content.modal-employee .period-shift-overlay-subtitle{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:4px 10px;width:-moz-fit-content;width:fit-content;border-radius:var(--radius-full);border:1px solid var(--c-border);background:var(--c-surface-brand);font-size:var(--fs-md);font-weight:600;color:var(--ink-dim)}.modal-content.modal-employee .period-shift-overlay-subtitle-center{justify-self:center}.modal-content.modal-employee .period-shift-overlay-close{justify-self:end;width:36px;height:36px;min-height:36px;padding:0;border-radius:var(--radius-full)}.modal-content.modal-employee .period-shift-overlay-map{width:min(100%,400px);max-width:400px;aspect-ratio:1/1;margin:0 auto}.modal-content.modal-employee .period-shift-overlay-card .period-shift-map-content{display:grid;grid-gap:12px;gap:12px;padding:0;border-radius:var(--radius-none);background:transparent}.modal-content.modal-employee .period-shift-overlay-card .notice{width:-moz-fit-content;width:fit-content;margin:0 auto;border-radius:var(--radius-full);padding:8px 12px}@media (max-width:900px){.modal-content.modal-employee{width:calc(100vw - 20px);max-width:calc(100vw - 20px);min-height:calc(100vh - 20px);max-height:calc(100vh - 20px);padding:14px;border-radius:var(--radius-panel)}.modal-content.modal-employee .modal-title{font-size:var(--fs-4xl)}.modal-content.modal-employee .modal-name-row{grid-template-columns:44px 1fr 44px}.modal-content.modal-employee .stats-grid.admin-stats{gap:8px}.modal-content.modal-employee .admin-stats .stat-card{min-height:80px}.modal-content.modal-employee .admin-stats .stat-value{font-size:var(--fs-3xl)}.modal-content.modal-employee .period-shifts-grid{max-height:230px}.modal-content.modal-employee .period-shift-overlay{padding:12px}.modal-content.modal-employee .period-shift-overlay-card{width:100%;border-radius:var(--radius-card)}.modal-content.modal-employee .period-shift-overlay-title{font-size:var(--fs-xl)}}.modal-code-copy{border:1px solid var(--border);background:var(--surface);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:30px;font:inherit;line-height:inherit;white-space:nowrap;transition:color var(--btn-duration) ease,border-color var(--btn-duration) ease,background-color var(--btn-duration) ease,transform var(--btn-duration) ease}.modal-code-copy-label{opacity:1;transition:opacity var(--btn-duration) ease}.modal-code-copy-state{position:absolute;inset:0;display:inline-flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity var(--btn-duration) ease}.modal-code-copy.is-copied .modal-code-copy-label{opacity:0}.modal-code-copy-state.is-visible{opacity:1}.modal-code-copy:hover{background:var(--brand-soft);border-color:var(--brand-border);color:var(--ink)}.modal-code-copy:focus-visible{outline:none;box-shadow:0 0 0 3px var(--brand-ring)}.modal-code-copy.is-copied{color:var(--c-green-dark);border-color:var(--c-green-border);background:var(--c-green-soft)}@keyframes mobile-copy-feedback-pop{0%{transform:translateY(0)}45%{transform:translateY(-1px)}to{transform:translateY(0)}}.admin-page.admin-redesign .button.mobile-copy-feedback{transition:color var(--btn-duration) ease,border-color var(--btn-duration) ease,background-color var(--btn-duration) ease,transform var(--btn-duration) ease}.admin-page.admin-redesign .button.mobile-copy-feedback.is-copied{color:var(--brand-dark)!important;border-color:var(--brand-border)!important;background:var(--brand-soft)!important;animation:mobile-copy-feedback-pop var(--btn-duration) ease}.dashboard-cards .stat-card,.modal-content.modal-employee .admin-stats .stat-card,.stats-grid .stat-card{display:grid;grid-auto-flow:row;grid-auto-rows:min-content;align-content:center;justify-items:center;justify-content:center;text-align:center;grid-gap:6px;gap:6px;padding:12px 10px}.dashboard-cards .stat-card.timer,.modal-content.modal-employee .admin-stats .stat-card.timer,.stats-grid .stat-card.timer{text-align:center}.dashboard-cards .stat-value,.modal-content.modal-employee .admin-stats .stat-value,.stats-grid .stat-value{width:100%;margin-bottom:0;line-height:1.1}.dashboard-cards .stat-label,.modal-content.modal-employee .admin-stats .stat-label,.stats-grid .stat-label{width:100%;min-height:30px;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.2;text-wrap:balance}@media (max-width:640px){.dashboard-cards .stat-label,.modal-content.modal-employee .admin-stats .stat-label,.stats-grid .stat-label{min-height:28px}}:root{--ios-ease-unified:cubic-bezier(0.4,0,0.2,1);--ios-ease-out:var(--ios-ease-unified);--ios-ease-in:var(--ios-ease-unified);--ios-ease-spring:cubic-bezier(0.22,1,0.36,1);--ios-dur-fast:var(--btn-duration);--ios-dur-mid:var(--btn-duration);--ios-dur-slow:var(--btn-duration)}.admin-calendar-link,.admin-calendar-nav,.admin-calendar-trigger,.button,.button.big,.employee-chip,.icon-button,.main-action .button.big,.menu-item,.modal-code-copy,.period-shift-actions .button,.period-shift-trailing .button,.tab{border-radius:var(--radius-card);transition:transform var(--ios-dur-fast) var(--ios-ease-spring),box-shadow var(--ios-dur-mid) var(--ios-ease-spring),border-color var(--ios-dur-mid) var(--ios-ease-out),background-color var(--ios-dur-mid) var(--ios-ease-out),color var(--ios-dur-mid) var(--ios-ease-out),opacity var(--ios-dur-fast) var(--ios-ease-out);will-change:transform}.card,.db-section,.employee-brand,.employee-card,.employee-hero,.location-value,.stat-card,.topbar{transition:none}.admin-calendar,.admin-calendar-popover,.modal-content,.period-shift-card{transition:transform var(--ios-dur-mid) var(--ios-ease-spring),box-shadow var(--ios-dur-mid) var(--ios-ease-spring),border-color var(--ios-dur-mid) var(--ios-ease-out),background-color var(--ios-dur-mid) var(--ios-ease-out),opacity var(--ios-dur-mid) var(--ios-ease-out)}.input,input,select,textarea{transition:border-color var(--ios-dur-mid) var(--ios-ease-out),box-shadow var(--ios-dur-mid) var(--ios-ease-out),background-color var(--ios-dur-mid) var(--ios-ease-out),color var(--ios-dur-mid) var(--ios-ease-out)}.admin-calendar-popover{animation:iosPopoverIn var(--ios-dur-mid) var(--ios-ease-out) forwards}.admin-calendar-popover.is-closing{animation:iosPopoverOut var(--ios-dur-mid) var(--ios-ease-in) forwards}.menu-dropdown{animation:iosMenuIn var(--ios-dur-fast) var(--ios-ease-out) forwards}.menu-dropdown.is-closing{animation:iosMenuOut var(--ios-dur-fast) var(--ios-ease-in) forwards}.modal-overlay{animation:iosModalOverlayIn var(--ios-dur-mid) var(--ios-ease-out) forwards}.modal-overlay.is-closing{animation:iosModalOverlayOut var(--ios-dur-mid) var(--ios-ease-in) forwards}.modal-content{animation:iosModalContentIn var(--ios-dur-mid) var(--ios-ease-out) forwards}.modal-content.is-closing{animation:iosModalContentOut var(--ios-dur-mid) var(--ios-ease-in) forwards}.period-shift-map-panel{transition:max-height var(--ios-dur-slow) var(--ios-ease-out),opacity var(--ios-dur-mid) var(--ios-ease-out)}.period-shift-map-content{animation:iosFadeLift var(--ios-dur-mid) var(--ios-ease-out)}.modal-content.modal-employee,.modal-content.modal-employee .period-shifts-grid{scroll-behavior:smooth}.admin-calendar-day:active,.admin-calendar-link:active,.admin-calendar-link:hover,.admin-calendar-nav:active,.admin-calendar-nav:hover,.admin-calendar-trigger:active,.admin-calendar-trigger:hover,.button.danger:hover:not(:disabled),.button.ghost.topbar-ghost:active:not(:disabled),.button.ghost.topbar-ghost:hover:not(:disabled),.button.ghost:hover:not(:disabled),.button.secondary:hover:not(:disabled),.button:active:not(:disabled),.button:hover:not(:disabled),.employee-chip:active,.employee-chip:hover,.icon-button:active,.icon-button:hover,.menu-item-danger:hover,.menu-item:active,.menu-item:hover,.modal-code-copy:active,.modal-code-copy:hover,.period-shift-actions .button:active:not(:disabled),.period-shift-actions .button:hover:not(:disabled),.period-shift-trailing .button:active:not(:disabled),.period-shift-trailing .button:hover:not(:disabled),.tab:active,.tab:hover{transform:none}.button:hover:not(:disabled){background:var(--accent-hover);border-color:transparent}.button.secondary:hover:not(:disabled){background:var(--btn-secondary-hover);border-color:transparent}.button.danger:hover:not(:disabled){background:var(--c-red-dark);border-color:transparent}.admin-calendar-day:hover:not(.is-in-range):not(.is-range-start):not(.is-range-end),.admin-calendar-link:hover,.admin-calendar-nav:hover,.admin-calendar-trigger:hover,.button.ghost:hover:not(:disabled),.employee-chip:hover,.icon-button:hover,.menu-item:hover,.modal-code-copy:hover,.period-shift-actions .button:hover:not(:disabled),.period-shift-trailing .button:hover:not(:disabled),.tab:hover{background:var(--brand-soft);border-color:var(--border);color:var(--ink)}.employee-chip.active:hover{background:var(--c-green-soft);border-color:var(--c-green-border);color:var(--c-green-dark)}.employee-chip.inactive:hover{background:var(--c-red-soft);border-color:var(--c-red-border);color:var(--c-red-dark)}.icon-button.route-error:hover,.menu-item-danger:hover{background:rgba(214,69,69,.12);border-color:var(--border);color:var(--danger)}.menu-item-danger:hover{font-weight:600}@keyframes iosPopoverIn{0%{opacity:0;transform:scale(.985)}to{opacity:1;transform:scale(1)}}@keyframes iosPopoverOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.985)}}@keyframes iosMenuIn{0%{opacity:0;transform:scale(.99)}to{opacity:1;transform:scale(1)}}@keyframes iosMenuOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.99)}}@keyframes iosModalOverlayIn{0%{opacity:0}to{opacity:1}}@keyframes iosModalOverlayOut{0%{opacity:1}to{opacity:0}}@keyframes iosModalContentIn{0%{opacity:0;transform:scale(.986)}to{opacity:1;transform:scale(1)}}@keyframes iosModalContentOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.988)}}@keyframes iosFadeLift{0%{opacity:0}to{opacity:1}}.btn-icon{flex-shrink:0;width:14px;height:14px;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.btn-icon,.range-label-short{display:none}@keyframes eftGlobalLoading{0%{transform:translateX(-30%);opacity:.5}50%{transform:translateX(0);opacity:1}to{transform:translateX(30%);opacity:.5}}