/* Common glyph fast path; full glyph fallback remains available for real names. */
@font-face{font-family:HRMSans;font-style:normal;font-weight:100 900;font-display:swap;src:url('../brand/hrm-v4/JLHrmSans-100-900.woff2') format('woff2')}
@font-face{font-family:HRMSerif;font-style:normal;font-weight:400;font-display:swap;src:url('../brand/hrm-v4/JLHrmSerif-400.woff2') format('woff2')}
@font-face{font-family:HRMSerif;font-style:normal;font-weight:600;font-display:swap;src:url('../brand/hrm-v4/JLHrmSerif-600.woff2') format('woff2')}
/* Full Chinese fonts, SIL OFL 1.1; licenses accompany the files. */
@font-face{font-family:HRMSansFull;font-style:normal;font-weight:100 900;font-display:swap;src:url('/fonts/SourceHanSansCN-VF.woff2') format('woff2')}
@font-face{font-family:HRMSerifFull;font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/SourceHanSerifCN-Regular.woff2') format('woff2')}
@font-face{font-family:HRMSerifFull;font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/SourceHanSerifCN-SemiBold.woff2') format('woff2')}
/* 鲸落 SPA V1.7 · HRM 视觉覆盖层。只覆盖样式，不改 DOM、路由、字段、权限或业务脚本。 */



:root{--sea:#08A8B5;--surf:#A3D4E5;--paper:#F8FBFD;--mist:#EFF6FA;--ink:#242629;--muted:#5F666A;--line:#D0DBE2;--warm:#E7BA7D}
html{background:var(--paper)}
body{font-family:HRMSans,HRMSansFull,"PingFang SC","Microsoft YaHei",sans-serif;font-weight:400;color:var(--ink);background:var(--paper);font-size:14px;line-height:1.6;min-height:100vh}
body>.navbar{background:var(--mist)!important;border-right:1px solid var(--line);z-index:1010}
.navbar>.container{max-width:none;padding:0 24px}
.navbar-brand{font-size:12px;font-weight:400;letter-spacing:.08em;color:var(--muted)!important;background:url('../brand/hrm-v4/logo-h-black.svg') no-repeat 0 22px;background-size:160px auto;padding:98px 0 24px;margin:0;min-width:176px;line-height:1.5}
.navbar .nav-link{color:var(--muted)!important;font-weight:500;font-size:14px;border-radius:8px;padding:13px 18px!important;transition:background .15s}
.navbar .nav-link:hover,.navbar .nav-link:focus{background:#dcecf0;color:var(--ink)!important}
.navbar-toggler{border:1px solid var(--line);background:var(--ink);box-shadow:none}
body>.container{max-width:none;padding:36px 40px 64px}
body>.container>.container{max-width:none;padding:0;margin-top:0!important}
h1,h2{font:400 30px/1.4 HRMSerif,HRMSerifFull,"Songti SC",SimSun,serif;color:var(--ink);margin-bottom:26px;letter-spacing:.02em}
h3{font:400 24px/1.5 HRMSerif,HRMSerifFull,"Songti SC",SimSun,serif}h4{font-size:19px;line-height:1.5}h5{font-size:16px;line-height:1.5}h6{font-size:14px;line-height:1.5}
.card{background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:none!important;overflow:visible}
.card-header{padding:18px 22px;background:var(--mist)!important;color:var(--ink)!important;border-bottom:1px solid var(--line);border-radius:12px 12px 0 0!important;font-weight:500}
.card-header .text-light{color:var(--muted)!important}.card-header h3,.card-header h4,.card-header h5{margin:0}
.card-body{padding:24px}.card .card .card-body{padding:18px}
.display-4{font-family:HRMSerif,HRMSerifFull,"Songti SC",SimSun,serif;font-size:46px;line-height:1.2;margin:18px 0 24px;font-variant-numeric:tabular-nums}
body>.container>.row:first-child .card{background:linear-gradient(135deg,var(--paper) 22%,var(--mist) 62%,#dfedf3)}
.table{color:var(--ink);margin-bottom:0;font-size:13px;--bs-table-striped-bg:#eff6fa80;--bs-table-hover-bg:#e6f2f4}
.table>:not(caption)>*>*{padding:14px 16px;border-color:var(--line);vertical-align:middle;background-color:transparent}
.table thead th{font-size:12px;font-weight:500;color:var(--muted);background:var(--mist);padding-top:15px;padding-bottom:15px;white-space:nowrap;border-bottom:1px solid var(--line)}
.table tbody th{font-weight:500;color:var(--muted)}
.table>:not(:first-child){border-top:0}.table-responsive{border:1px solid var(--line);border-radius:10px;max-width:100%;background:var(--paper)}
.table-responsive .table{min-width:620px}.table-responsive td .btn{white-space:nowrap}
body>.container>.row .table-responsive .table{min-width:0}
.table td{font-variant-numeric:tabular-nums}.table td .form-control{min-width:95px}
.btn{font-family:inherit;font-size:13px;font-weight:500;line-height:1.5;min-height:44px;padding:11px 18px;border-radius:8px;box-shadow:none!important;white-space:nowrap;border-width:1px}
.btn-primary,.btn-success{background:var(--ink)!important;border-color:var(--ink)!important;color:var(--paper)!important}
.btn-primary:hover,.btn-success:hover{background:#42494c!important}
.btn-secondary,.btn-info,.btn-light,.btn-warning,.btn-outline-secondary,.btn-outline-primary{background:transparent!important;border-color:var(--line)!important;color:var(--ink)!important}
.btn-secondary:hover,.btn-info:hover,.btn-light:hover,.btn-warning:hover,.btn-outline-secondary:hover{background:var(--mist)!important;border-color:var(--muted)!important}
.btn-danger{background:transparent!important;color:#a7473e!important;border-color:#e2bcb5!important}
.btn-danger:hover{background:#fcf0ed!important}.btn-sm{min-height:32px;padding:5px 11px;font-size:12px;border-radius:6px}
.d-flex.justify-content-end{gap:8px}.dropdown-menu{border-color:var(--line);background:var(--paper);font-size:13px;border-radius:8px}
.form-label{display:block;margin-bottom:8px;color:var(--muted);font-size:12px;font-weight:500}
.form-control,.form-select,input.form-control-sm,.select2-container--default .select2-selection--single,.select2-container--default .select2-selection--multiple{font-family:inherit;color:var(--ink);background-color:var(--paper);border:1px solid var(--line)!important;border-radius:8px!important;min-height:44px;font-size:13px;padding:10px 12px;box-shadow:none;max-width:100%!important}
input.form-control-sm{width:100%}.form-control-sm{min-height:36px;padding:6px 9px}
.form-control:focus,.form-select:focus,input.form-control-sm:focus{border-color:var(--sea)!important;box-shadow:0 0 0 3px #08a8b512;outline:none}
.form-control:disabled,.form-control[readonly]{background:var(--mist)}
.form-check-input{border-color:var(--line)}.form-check-input:checked{background:var(--sea);border-color:var(--sea)}
.form-check{margin-bottom:8px}.form-check-label{font-size:13px}.form-text,.text-muted,small{color:var(--muted)!important;font-size:12px}
.select2-container{max-width:100%}.select2-container--default .select2-selection--single{padding:6px 8px}.select2-container--default .select2-selection--single .select2-selection__arrow{top:9px}
.select2-container--default .select2-selection--multiple{padding:3px 7px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background:var(--mist)!important;border-color:var(--line)!important;color:var(--ink)!important;font-weight:400}
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:var(--muted)!important}
.select2-dropdown{border-color:var(--line);font-size:13px}.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable{background:var(--sea)}
form>.row{row-gap:16px}.mb-3{margin-bottom:20px!important}.mb-4{margin-bottom:28px!important}
#searchForm{width:100%}#searchForm>.d-flex{flex-wrap:wrap}#searchForm>.d-flex>div{flex:1 1 145px!important;min-width:120px!important}
#searchForm+.col-md-6{width:100%;text-align:left!important}
.badge{font-weight:500;font-size:11px;line-height:1.3;padding:5px 8px;border-radius:5px}
.badge.bg-success,.badge-active{background:#e0f0eb!important;color:#25634f!important}
.badge.bg-info,.badge-pending{background:#dfedf3!important;color:#326278!important}
.badge.bg-warning,.badge-guarantee,.badge-pending-resign{background:#f6ead7!important;color:#785724!important}
.badge.bg-danger{background:#f6e7e4!important;color:#9a4a40!important}
.badge.bg-secondary,.badge-resigned,.badge-resign-paid{background:#e7edef!important;color:var(--muted)!important}
.alert{border-radius:8px;border:1px solid var(--line);background:var(--mist);color:var(--ink);font-size:13px}.alert-danger{background:#f9eeeb;border-color:#e2bcb5;color:#924437}
.page-link{background:var(--paper);border-color:var(--line);color:var(--ink);padding:8px 13px;font-size:13px}.page-item.active .page-link{background:var(--ink);border-color:var(--ink)}
.pagination{gap:5px;margin-top:24px;flex-wrap:wrap}.page-link{border-radius:6px!important}.pagination .page-item.disabled .page-link{background:var(--mist)}
a{color:#087c85;text-decoration:none}a:hover{color:#05545a}dt{font-weight:500;color:var(--muted);font-size:13px}dd{margin-bottom:14px;font-size:13px}
.progress{height:8px;background:var(--mist);border-radius:8px}.progress-bar{background:var(--sea)}
@media(min-width:992px){body>.navbar{position:fixed;left:0;top:0;bottom:0;width:232px;display:block;overflow-y:auto;padding:0 0 28px}
.navbar>.container{display:block}.navbar-brand{display:block}.navbar-collapse{display:block!important}.navbar-nav{display:flex;flex-direction:column!important;gap:6px}.navbar-nav .nav-item:last-child{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}
body>.container{width:calc(100% - 232px);margin-left:232px;margin-top:0!important}}
@media(max-width:1199px){body>.container{padding:28px 24px 48px}.card-body{padding:20px}.table>:not(caption)>*>*{padding:12px}}
@media(min-width:768px) and (max-width:1199px){body>.container>.row>.col-md-6{width:100%}}
@media(max-width:991px){body>.navbar{border-right:0;border-bottom:1px solid var(--line);padding:0 0 8px}.navbar-brand{background-position:0 16px;padding-top:82px;padding-bottom:8px;background-size:140px auto}.navbar>.container{padding:0 22px}.navbar-nav{padding:18px 0 6px}.navbar-toggler{margin-top:15px}.navbar-nav .nav-item:last-child{margin-top:10px}body>.container{margin-top:0!important}}
@media(max-width:767px){body>.container{padding:26px 16px 44px}h1,h2{font-size:26px}h3{font-size:21px}.card-body{padding:18px}.card-header{padding:16px 18px}.d-flex.justify-content-between{gap:16px;flex-wrap:wrap}.table-responsive .table{min-width:680px}.btn{min-height:42px}.btn-sm{min-height:32px}form>.row{row-gap:8px}.card .card-body>.row{row-gap:16px}.col-md-2,.col-md-3,.col-md-4,.col-md-6{min-width:0}#searchForm>.d-flex{display:grid!important;grid-template-columns:1fr 1fr}.w-25{width:38%!important}}
@media print{body>.navbar{position:static;width:100%}body>.container{margin:0;width:100%}.navbar-nav{display:none}}

/* V3：按鲸落 SPA V1.7 恢复品牌层次。后台表格采用紧凑字号，主标题与主按钮沿用品牌节奏。 */
body{font-synthesis:none;font-size:14px;background:var(--paper)}
body>.navbar{background:var(--mist)!important;padding-top:10px;border-right:1px solid var(--line)}
.navbar>.container{padding:0 16px}.navbar-brand{margin:0 20px;background-position:0 24px;padding-top:92px;padding-bottom:42px;min-width:160px;letter-spacing:.08em}
.navbar .nav-link{font-weight:400;padding:14px 18px!important;display:flex;align-items:center;gap:14px;line-height:24px}
.navbar .nav-link::before{content:'';display:block;width:19px;height:19px;flex:0 0 19px;background:currentColor;mask-size:contain;mask-position:center;mask-repeat:no-repeat}
.navbar-nav{gap:8px!important}
body[data-module="stores"] .nav-link[href$="/stores"],body[data-module="credentials"] .nav-link[href$="/credentials"],body[data-module="photos"] .nav-link[href$="/photos"],body>.container{position:relative;isolation:isolate;padding:48px 40px 64px}
body>.container:before{content:'';position:absolute;z-index:-1;pointer-events:none;top:0;right:0;width:75%;height:240px;background:radial-gradient(ellipse 72% 110% at 108% -28%,#08A8B529 0,#A3D4E533 42%,#F8FBFD00 75%)}
h1,h2{font:600 38px/1.35 HRMSerif,HRMSerifFull,"Songti SC",SimSun,serif;margin-bottom:32px;letter-spacing:0}
h3{font:600 24px/1.4 HRMSerif,HRMSerifFull,"Songti SC",SimSun,serif}h4{font:600 23px/1.45 HRMSerif,HRMSerifFull,"Songti SC",SimSun,serif}h5{font-weight:500}
.card{border:1px solid var(--line);border-radius:12px;background:var(--paper)}
.card-header{padding:24px;background:transparent!important;border-bottom:1px solid #D0DBE280;font-weight:500}
.card-header h4,.card-header h5{font:600 23px/1.4 HRMSerif,HRMSerifFull,"Songti SC",SimSun,serif}
.card-header h6{font-size:14px}.card-body{padding:24px}
.card .card{box-shadow:none!important}.card .card .card-header{padding:20px}.card .card .card-body{padding:20px}
.card-header.bg-primary,.card-header.bg-success,.card-header.bg-info{color:var(--ink)!important}
.card-header .fas{font-size:18px;color:var(--muted)}
.btn{min-height:48px;font-size:15px;line-height:24px;padding:11px 22px;border-radius:8px}
.btn-sm{min-height:34px;font-size:13px;line-height:20px;padding:6px 10px}
.btn-secondary,.btn-info,.btn-light,.btn-warning{background:var(--paper)!important}
.table .btn{background:transparent!important;border-color:transparent!important;color:var(--muted)!important;padding:6px 8px}
.table .btn:hover{background:var(--mist)!important;color:var(--ink)!important}.table .btn-danger{color:#a63d3d!important}
.table .btn-primary{color:#087c85!important}.table .btn-danger:hover{background:#A63D3D0D!important}
.d-flex.justify-content-end .btn:not(:first-child){background:var(--paper)!important;color:var(--ink)!important;border-color:var(--line)!important}
.form-label{font-size:13px;font-weight:400;line-height:22px;margin-bottom:8px}
.form-control,.form-select,input.form-control-sm,.select2-container--default .select2-selection--single,.select2-container--default .select2-selection--multiple{font-size:14px;min-height:44px;border-radius:7px!important}
.select2-container--default .select2-selection--multiple .select2-selection__choice{border:0!important;padding:3px 7px!important;background:#A3D4E533!important}
.table{font-size:13px;--bs-table-striped-bg:transparent;--bs-table-hover-bg:#EFF6FA88}
.table thead th{font-size:12px;padding:15px 16px;border-bottom:0;color:var(--muted)}
.table tbody td{padding:17px 16px;border-color:#D0DBE278;height:62px}
.table tbody th{border-color:#D0DBE278}
.table-responsive{border-radius:10px;border-color:var(--line);scrollbar-width:thin}
.table-responsive td:first-child{white-space:nowrap}
.table-responsive:not(:has(.w-25)) td:last-child:has(.btn){position:sticky;right:0;background:var(--paper);border-left:1px solid #D0DBE250;z-index:1;white-space:nowrap}
.table-responsive thead th:last-child{background:var(--mist)}
.table td .badge{padding:4px 9px}.badge.bg-success,.badge-active{background:#A3D4E540!important;color:#24545B!important}
.table-responsive .table-info{--bs-table-accent-bg:#EFF6FA80}
.pagination{margin:24px 0 0}.page-link{border-color:transparent;background:transparent}.page-item.disabled .page-link{background:transparent;border-color:transparent}
.mb-4{margin-bottom:32px!important}.mb-3{margin-bottom:24px!important}
#searchForm{border:1px solid var(--line);border-radius:12px;padding:24px;background:var(--paper)}
.card-body:has(>#searchForm),.card-body:has(>.row>#searchForm){padding:0;border:0}
.card:has(#searchForm){border:0;background:transparent}
.card-body>#searchForm{margin:0}
.card-body>.row:has(>#searchForm){margin:0;--bs-gutter-x:0;gap:20px}
form.card.card-body{padding:24px}
.card-body>.row>#searchForm{padding:24px}
@media(min-width:768px){h2:has(+.d-flex.justify-content-end){margin-bottom:-48px}.d-flex.justify-content-end{margin-bottom:32px!important;min-height:48px;align-items:center}h1:has(+h3){font-size:32px;line-height:1.5}}
/* Dashboard: one continuous, asymmetric sea field; every original metric, link and store row is kept. */
body[data-module="overview"]>.container>.dashboard-summary{position:relative;isolation:isolate;margin:0 0 32px;--bs-gutter-x:0;padding:32px 8px;border-radius:14px;overflow:hidden;background:radial-gradient(ellipse 60% 175% at 107% 111%,#08A8B5BD 0,#A3D4E585 46%,#EFF6FA00 77%),var(--mist);border:1px solid var(--line)}
body[data-module="overview"]>.container>.dashboard-summary:after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:url('../brand/hrm-v4/grain.svg');background-size:256px;mix-blend-mode:soft-light}
body[data-module="overview"]>.container>.dashboard-summary .card{border:0;border-radius:0;margin:0!important;background:transparent}
body[data-module="overview"]>.container>.dashboard-summary .card-body{padding:8px 32px}
body[data-module="overview"]>.container>.dashboard-summary .col-md-4+.col-md-4{border-left:1px solid #D0DBE2}
body[data-module="overview"]>.container>.dashboard-summary h5{font:500 14px/24px HRMSans,HRMSansFull,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--muted)}
body[data-module="overview"]>.container>.dashboard-summary .display-4{font:400 56px/1.25 HRMSerif,HRMSerifFull,"Songti SC",SimSun,serif;margin:12px 0 20px}
body[data-module="overview"]>.container>.dashboard-summary .btn{min-height:34px;padding:4px 0;border:0;background:transparent!important;color:var(--ink)!important;font-size:13px;font-weight:400}
body[data-module="overview"]>.container>.dashboard-summary .btn:after{content:' →';margin-left:16px}
body[data-module="overview"]>.container>.dashboard-recent>.col-md-6:first-child{width:40%}
body[data-module="overview"]>.container>.dashboard-recent>.col-md-6:last-child{width:60%}
body[data-module="overview"]>.container>.dashboard-recent .card-body{padding:0}
body[data-module="overview"]>.container>.dashboard-recent .table-responsive{border:0;border-radius:0 0 12px 12px}
body[data-module="overview"]>.container>.dashboard-recent .card-header{border:0;padding:24px}
body[data-module="overview"]>.container>.dashboard-recent .table td:first-child,body[data-module="overview"]>.container>.dashboard-recent .table th:first-child{padding-left:24px}
body[data-module="auth"]>.container:before{width:100%;height:100vh;background:radial-gradient(ellipse 60% 80% at 105% 102%,#08A8B587 0,#A3D4E566 45%,#F8FBFD00 80%)}
body[data-module="auth"] .card{margin-top:48px;border:0;background:transparent}body[data-module="auth"] .card-header{background:transparent!important;border:0;padding:0 0 24px}body[data-module="auth"] .card-header h3{font-size:38px}body[data-module="auth"] .card-body{padding:0}
@media(max-width:1199px){body>.container{padding:32px}.navbar-brand{margin-left:20px}body[data-module="overview"]>.container>.dashboard-recent>.col-md-6{width:100%}h1,h2{font-size:34px}}
@media(max-width:991px){.navbar-brand{padding-top:70px;padding-bottom:12px;background-position:0 16px;background-size:140px auto;margin-left:8px}.navbar-toggler{margin-right:8px}.navbar-nav{padding:12px 8px}body>.container{padding-top:32px}.navbar-nav .nav-item:last-child{padding-top:0}}
@media(max-width:767px){body>.container{padding:32px 24px 64px}h1,h2{font-size:32px;line-height:44px}h3,.card-header h4,.card-header h5{font-size:24px}.card-body,.card-header{padding:24px}.navbar>.container{padding:0 16px}body[data-module="overview"]>.container>.dashboard-summary{padding:8px 24px}body[data-module="overview"]>.container>.dashboard-summary .card-body{padding:24px 0}body[data-module="overview"]>.container>.dashboard-summary .col-md-4+.col-md-4{border-left:0;border-top:1px solid #D0DBE2}body[data-module="overview"]>.container>.dashboard-recent>.col-md-6{width:100%}body[data-module="overview"]>.container>.dashboard-recent .table-responsive .table{min-width:440px}body[data-module="overview"]>.container>.dashboard-recent>.col-md-6:first-child .table{min-width:0}.table-responsive .table{min-width:720px}.d-flex.justify-content-end{margin-bottom:24px!important}.d-flex.justify-content-end .btn{padding:11px 16px}.form-label{font-size:14px}#searchForm{padding:20px}.card-body>.row>#searchForm{padding:20px}}
@media(max-width:359px){body>.container{padding-left:20px;padding-right:20px}}
@media(max-width:1199px){body[data-module="overview"]>.container>.dashboard-recent>.col-md-6{width:100%!important}}
@media(max-width:767px){#searchForm>.row>.col-md-2,form.card>.row>.col-md-2{width:50%}form.card>.row>.col-md-2:has(button){width:100%}}

/* V4：参考用户指定的数字营销工作台，统一为紧凑的后台尺度。 */
body>.container{padding:24px 32px 48px}body>.container:before{display:none}
body>.navbar{padding-top:0;background:var(--mist)!important}
.navbar>.container{padding:0 20px}.navbar-brand{margin:0 4px;padding:94px 0 38px;background-position:0 32px;min-width:160px;font-size:12px;letter-spacing:.06em}
.navbar .nav-link{padding:11px 12px!important;gap:12px;font-size:14px;line-height:24px;border-radius:7px}
.navbar .nav-link::before{width:18px;height:18px;flex-basis:18px}.navbar-nav{gap:6px!important}
body[data-module] .navbar .nav-link{box-shadow:none}
body[data-module="stores"] .nav-link[href$="/stores"],body[data-module="credentials"] .nav-link[href$="/credentials"],body[data-module="photos"] .nav-link[href$="/photos"],.navbar .nav-link[style]{font-weight:400}
h1,h2{font:600 28px/1.4 HRMSerif,HRMSerifFull,"Songti SC",SimSun,serif;margin-bottom:24px;letter-spacing:0}
h3{font:600 22px/1.5 HRMSerif,HRMSerifFull,"Songti SC",SimSun,serif}h4{font:500 17px/1.5 HRMSans,HRMSansFull,"PingFang SC","Microsoft YaHei",sans-serif}h5{font:500 15px/1.5 HRMSans,HRMSansFull,"PingFang SC","Microsoft YaHei",sans-serif}
.card{border-radius:8px;background:var(--paper)}.card-header{padding:16px 20px;background:var(--mist)!important;border-bottom:1px solid var(--line);border-radius:8px 8px 0 0!important}
.card-header h4,.card-header h5{font:500 15px/24px HRMSans,HRMSansFull,"PingFang SC","Microsoft YaHei",sans-serif}.card-header h3{font-size:22px}.card-header .fas{font-size:15px}
.card-body{padding:24px}.card .card .card-header{padding:14px 18px}.card .card .card-body{padding:20px}
.btn{min-height:38px;padding:8px 16px;font-size:13px;line-height:20px;border-radius:6px}.btn-sm{min-height:28px;padding:4px 8px;font-size:12px;line-height:20px}
.table .btn{padding:4px 6px;min-height:28px;font-size:12px;color:#326278!important}.table .btn-danger{color:#9a4a40!important}
.d-flex.justify-content-end{gap:8px;min-height:38px;margin-bottom:20px!important}
.form-label{font-size:12px;line-height:20px;margin-bottom:6px}.form-control,.form-select,input.form-control-sm,.select2-container--default .select2-selection--single,.select2-container--default .select2-selection--multiple{font-size:13px;min-height:40px;padding:8px 12px;border-radius:6px!important}
.select2-container--default .select2-selection--multiple{padding:3px 7px}.select2-container--default .select2-selection--single{padding:5px 8px}.select2-container--default .select2-selection--single .select2-selection__arrow{top:6px}
.select2-container--default .select2-selection--multiple .select2-selection__choice{padding:3px 6px!important}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:var(--muted)!important}
#searchForm,form.card.card-body,.card-body>.row>#searchForm{padding:20px;border-radius:8px}#searchForm{background:var(--paper)}
.mb-4{margin-bottom:20px!important}.mb-3{margin-bottom:16px!important}form>.row{row-gap:12px}
.table{font-size:13px;--bs-table-striped-bg:transparent;--bs-table-hover-bg:#EFF6FA}
.table thead th{padding:10px 14px;font-size:12px;line-height:18px;border-bottom:1px solid var(--line);font-weight:400}
.table tbody td,.table tbody th{padding:8px 14px;height:44px;border-color:#D0DBE250;line-height:24px}
.table tbody td:first-child{font-weight:500}.table-responsive{border-radius:8px}.table td .badge{font-weight:400;font-size:11px;border-radius:4px;padding:4px 7px}
.table-responsive td:last-child:has(.btn){border-left:1px solid #D0DBE233!important}
.pagination{margin:16px 0 0}.page-link{font-size:12px;padding:6px 10px}
/* Original three metrics, their original links, and every store row remain in place. */
form.card>.row{row-gap:16px}
body[data-module="overview"]>.container>.dashboard-summary{background:none;border:0;padding:0;margin:0 -6px 16px;--bs-gutter-x:12px;overflow:visible;border-radius:0}
body[data-module="overview"]>.container>.dashboard-summary:after{display:none}
body[data-module="overview"]>.container>.dashboard-summary .col-md-4+.col-md-4{border:0}
body[data-module="overview"]>.container>.dashboard-summary .card{border:1px solid var(--line);border-radius:8px;background:var(--paper);height:100%}
body[data-module="overview"]>.container>.dashboard-summary .col-md-4:first-child .card{background:var(--mist);border-color:#A3D4E5AA}
body[data-module="overview"]>.container>.dashboard-summary .card-body{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 16px;padding:16px 20px}
body[data-module="overview"]>.container>.dashboard-summary h5{font:400 13px/24px HRMSans,HRMSansFull,"PingFang SC","Microsoft YaHei",sans-serif;margin:0}
body[data-module="overview"]>.container>.dashboard-summary .display-4{font:500 22px/28px HRMSans,HRMSansFull,"PingFang SC","Microsoft YaHei",sans-serif;margin:0;letter-spacing:0}
body[data-module="overview"]>.container>.dashboard-summary .btn{grid-column:1/-1;justify-self:start;font-size:12px;line-height:20px;min-height:24px;padding:0;color:#326278!important}
body[data-module="overview"]>.container>.dashboard-summary .btn:after{margin-left:8px}
body[data-module="overview"]>.container>.dashboard-recent{--bs-gutter-x:16px}
body[data-module="overview"]>.container>.dashboard-recent .card-header{padding:16px 20px;background:var(--paper)!important}
body[data-module="overview"]>.container>.dashboard-recent .table td:first-child,body[data-module="overview"]>.container>.dashboard-recent .table th:first-child{padding-left:20px}
body[data-module="overview"]>.container>.dashboard-recent .table-responsive{max-height:none;overflow-y:visible;border-radius:0 0 8px 8px}
body[data-module="auth"]>.container:before{display:block}body[data-module="auth"] .card-header h3{font-size:28px}
@media(min-width:992px){body>.navbar{width:208px}body>.container{width:calc(100% - 208px);margin-left:208px}.navbar-nav .nav-item:last-child{margin-top:24px;padding-top:16px}}
@media(min-width:768px){h2:has(+.d-flex.justify-content-end){margin-bottom:-39px}.d-flex.justify-content-end{min-height:39px}h1:has(+h3){font-size:28px}}
@media(max-width:1199px){body>.container{padding:24px}.navbar-brand{margin-left:4px}}
@media(max-width:991px){.navbar-brand{padding:70px 0 10px;background-position:0 18px;background-size:140px auto}.navbar>.container{padding:0 20px}.navbar-nav{padding:12px 0}.navbar-toggler{margin-right:0}}
@media(max-width:767px){body>.container{padding:24px 16px 60px}h1,h2{font-size:26px;line-height:36px}.card-header{padding:14px 16px}.card-body{padding:20px}.d-flex.justify-content-end .btn{padding:8px 12px}.d-flex.justify-content-end{margin-bottom:16px!important}#searchForm{padding:16px}.form-label{font-size:12px}body[data-module="overview"]>.container>.dashboard-summary{row-gap:10px}body[data-module="overview"]>.container>.dashboard-summary .card-body{padding:12px 16px}body[data-module="overview"]>.container>.dashboard-summary .display-4{font-size:28px}body[data-module="overview"]>.container>.dashboard-recent .card-header{padding:14px 16px}body[data-module="overview"]>.container>.dashboard-recent>.col-md-6:first-child .table{min-width:0}}
@media(max-width:767px){.table-responsive .table td{white-space:nowrap}.table-responsive .table{width:max-content;min-width:100%}.table-responsive:not(:has(.w-25)) td:last-child:has(.btn){position:static}.table tbody td{height:44px}.table .btn{min-height:36px}}
/* Desktop review only, as requested. Keep the original login form and controls. */
@media(min-width:992px){
body[data-module="overview"]>.container>.dashboard-summary .card-body{padding:12px 20px;gap:4px 16px}
body[data-module="overview"]>.container>.dashboard-recent>.col-md-6:first-child{width:40%!important}
body[data-module="overview"]>.container>.dashboard-recent>.col-md-6:last-child{width:60%!important}
body[data-module="auth"]>.navbar{width:57%;border:0;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse 88% 78% at 108% 104%,#08A8B5D9 0,#A3D4E5B3 44%,#EFF6FA00 82%),radial-gradient(ellipse 110% 65% at -15% 54%,#A3D4E5A6 0,#EFF6FA00 85%),var(--paper)!important}
body[data-module="auth"]>.navbar:after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:url('../brand/hrm-v4/grain.svg');background-size:256px;mix-blend-mode:soft-light}
body[data-module="auth"]>.navbar>.container{height:100%;padding:0 9.1%;position:relative}
body[data-module="auth"] .navbar-brand{position:relative;margin:48px 0 0;padding:0;height:calc(50vh + 72px);display:flex;align-items:flex-end;background-position:0 0;background-size:180px auto;font:400 16px/26px HRMSans,HRMSansFull,"PingFang SC","Microsoft YaHei",sans-serif;letter-spacing:.02em;color:var(--ink)!important}
body[data-module="auth"] .navbar-brand:before{content:'档案各归其位，\A重要的事不遗失。';white-space:pre;position:absolute;left:0;top:calc(50vh - 132px);font:600 48px/1.5 HRMSerif,HRMSerifFull,"Songti SC",SimSun,serif;letter-spacing:0}
body[data-module="auth"] .navbar-brand:after{content:'WHALEFALL SPA · ARCHIVES';position:absolute;left:0;top:calc(50vh - 180px);font:500 11px/20px HRMSans,HRMSansFull,"PingFang SC","Microsoft YaHei",sans-serif;letter-spacing:.16em}
body[data-module="auth"] .navbar-collapse{position:absolute;left:9.1%;right:9.1%;bottom:44px}
body[data-module="auth"] .navbar-nav{display:flex;align-items:flex-end;max-width:none}
body[data-module="auth"] .navbar-nav .nav-item:last-child{margin:0;padding:0;border:0}
body[data-module="auth"] .nav-link[href$="/login"]{position:fixed;left:auto;right:calc(43% + 5.2%);bottom:34px;padding:0!important;font-size:12px;color:var(--ink)!important}
body[data-module="auth"] .nav-link[href$="/login"]::before{display:none}
body[data-module="auth"]>.container{width:43%;margin-left:57%;min-height:100vh;display:flex;flex-direction:column;gap:16px;align-items:center;justify-content:center;padding:64px 48px}
body[data-module="auth"]>.container>.alert{width:100%;max-width:380px;flex-shrink:0}
body[data-module="auth"]>.container:before{display:none}
body[data-module="auth"]>.container>.container{max-width:380px;transform:translateY(-24px)}
body[data-module="auth"] .col-md-6{width:100%}
body[data-module="auth"] .card{margin:0!important;background:transparent}
body[data-module="auth"] .card-header{padding:0 0 32px;background:transparent!important}
body[data-module="auth"] .card-header:before{content:'WELCOME BACK';display:block;font:500 11px/20px HRMSans,HRMSansFull,"PingFang SC","Microsoft YaHei",sans-serif;letter-spacing:.16em;color:var(--muted);margin-bottom:16px}
body[data-module="auth"] .card-header h3{text-align:left!important;font:600 32px/45px HRMSerif,HRMSerifFull,"Songti SC",SimSun,serif}
body[data-module="auth"] .card-header:after{content:'档案有序，每一份资料都触手可及。';display:block;font:400 14px/24px HRMSans,HRMSansFull,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--muted);margin-top:12px}
body[data-module="auth"] .card-body{padding:0}
body[data-module="auth"] .form-label{font-size:14px;font-weight:500;color:var(--ink);margin-bottom:10px}
body[data-module="auth"] .form-control{min-height:50px;border-radius:8px!important;padding:12px 16px;font-size:14px}
body[data-module="auth"] .mb-3{margin-bottom:24px!important}
body[data-module="auth"] .btn{min-height:48px;margin-top:8px;font-size:16px;border-radius:8px;text-align:left;padding-left:24px}
body[data-module="auth"] .d-grid{position:relative}
body[data-module="auth"] .d-grid:after{content:'→';position:absolute;right:24px;top:50%;transform:translateY(-40%);font:400 24px/24px HRMSans,HRMSansFull,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--paper);pointer-events:none}
body[data-module="auth"]>.container:after{content:'鲸落 SPA · 档案中心';position:absolute;bottom:28px;left:0;right:0;text-align:center;font:400 12px/20px HRMSans,HRMSansFull,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--muted)}
}

@media(min-width:992px){
body[data-module="auth"] form{display:grid}
body[data-module="auth"] .navbar>.container:after{content:'门店档案 · 资质证照 · 门店图片';position:fixed;bottom:34px;left:5.2%;font:400 12px/20px HRMSans,HRMSansFull,"PingFang SC","Microsoft YaHei",sans-serif;letter-spacing:.08em}
body[data-module="auth"]>.navbar{padding-bottom:0}
body[data-module="auth"] .navbar-brand{margin-top:0;background-position:0 48px;height:calc(50vh + 120px)}
body[data-module="auth"] .navbar-brand:before{top:calc(50vh - 84px)}
body[data-module="auth"] .navbar-brand:after{top:calc(50vh - 132px)}
body[data-module="auth"] .navbar-collapse{bottom:34px}
}

.nav-link[href$="/stores"]:before{mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%209h18L19%203H5L3%209Zm1%200v12h16V9M9%2021v-8h6v8%22/%3E%3C/svg%3E")}
.nav-link[href$="/credentials"]:before{mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22/%3E%3Cpath%20d%3D%22M7%2012h10M12%207v10M8.5%208.5c1.5%201%202.5%202.5%203.5%203.5s2%202.5%203.5%203.5M8.5%2015.5c1.5-1%202.5-2.5%203.5-3.5s2-2.5%203.5-3.5%22/%3E%3C/svg%3E")}
.nav-link[href$="/photos"]:before{mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%224%22%20width%3D%2218%22%20height%3D%2216%22%20rx%3D%222%22/%3E%3Ccircle%20cx%3D%228.5%22%20cy%3D%229%22%20r%3D%221.5%22/%3E%3Cpath%20d%3D%22M21%2015l-5-5-9%2010%22/%3E%3C/svg%3E")}
.nav-link[href$="/uncategorized"]:before{mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M22%2012h-6l-2%203h-4l-2-3H2%22/%3E%3Cpath%20d%3D%22M5.45%205.11%202%2012v6a2%202%200%200%200%202%202h16a2%202%200%200%200%202-2v-6l-3.45-6.89A2%202%200%200%200%2016.76%204H7.24a2%202%200%200%200-1.79%201.11z%22/%3E%3C/svg%3E")}
.nav-link[href$="/contracts"]:before{mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%22/%3E%3Cpath%20d%3D%22M14%202v6h6M8%2013h8M8%2017h8M8%209h2%22/%3E%3C/svg%3E")}
.nav-link[href$="/logout"]:before{mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M9%204H4v16h5m5-13%205%205-5%205m-6-5h11%22/%3E%3C/svg%3E")}

/* Employee list: keep complete IDs readable while reserving room for remarks. */
.table th.employee-wecom-id,.table td.employee-wecom-id{width:100px;max-width:100px;white-space:normal;overflow-wrap:anywhere}
.table th.employee-remark,.table td.employee-remark{width:22%;min-width:210px;white-space:normal;overflow-wrap:anywhere}
/* Select2 keeps its native remove/clear buttons and keyboard behavior. */
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{position:static;flex:0 0 16px;width:16px;height:18px;margin:0 4px 0 0!important;padding:0!important;border:0!important;border-radius:3px!important;font:400 14px/18px Arial,sans-serif!important;color:var(--muted)!important;background:transparent;vertical-align:middle}
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:var(--ink)!important;background:#A3D4E566!important}
.select2-container--default .select2-selection--multiple.select2-selection--clearable{padding-right:30px}
.select2-container--default .select2-selection--multiple .select2-selection__clear{position:absolute;right:7px;top:50%;transform:translateY(-50%);margin:0;width:20px;height:20px;padding:0;border:0;border-radius:4px;font:400 16px/20px Arial,sans-serif;color:var(--muted);background:transparent}
.select2-container--default .select2-selection--multiple .select2-selection__clear:hover{color:var(--ink);background:var(--mist)}
.select2-container--default .select2-selection__choice__remove:focus-visible,.select2-container--default .select2-selection__clear:focus-visible{outline:2px solid var(--sea);outline-offset:2px}
body[data-module="stores"] .table:has(.employee-wecom-id) td:nth-child(7),body[data-module="stores"] .table:has(.employee-wecom-id) td:nth-child(8){white-space:nowrap}

/* Admin-only recent analytics navigation. */
.navbar .nav-equipment::before{display:none}.nav-equipment-icon{display:block;flex:0 0 18px}

/* Employee names are quiet links; keyboard and hover make the destination clear. */
a.employee-name-link{color:inherit;text-decoration:none}
a.employee-name-link:hover,a.employee-name-link:focus-visible{color:var(--ink);text-decoration:underline;text-underline-offset:3px}

/* Employee detail: the device-list jump is low frequency, so it rides along with the primary actions as a quiet link. */
.employee-actions .employee-asset-link{margin-left:24px;vertical-align:middle;font-size:13px;color:var(--muted);white-space:nowrap}
.employee-actions .employee-asset-link:after{content:' →'}
.employee-actions .employee-asset-link:hover,.employee-actions .employee-asset-link:focus-visible{color:var(--ink)}
@media(max-width:767px){.employee-actions .employee-asset-link{display:block;margin:14px 0 0}}
