@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');

:root{--ink:#182520;--muted:#78857f;--green:#1c6049;--green-dark:#143e31;--green-soft:#e9f4ee;--lime:#c4e86b;--paper:#f5f7f4;--line:#e7ece8;--white:#fff;--red:#a83636;--red-soft:#fff0ee;--amber:#a76918;--shadow:0 12px 36px rgba(24,53,40,.055)}
*{box-sizing:border-box}[hidden]{display:none!important}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:14px;line-height:1.5}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.topbar{height:72px;background:#102b24;color:#f4f7f3;padding:0 clamp(20px,5vw,72px);display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:11px;font-family:Manrope,sans-serif;font-weight:800;font-size:17px;letter-spacing:-.5px}.brand em{font-style:normal;color:#a8cc65}.brand-mark{width:32px;height:32px;border-radius:10px;background:var(--lime);color:var(--green-dark);display:grid;place-items:center;font-weight:800;font-size:18px}.topbar-right{display:flex;gap:17px;align-items:center}.topbar-right form{margin:0}.user-chip{display:flex;align-items:center;gap:8px;font-size:13px;color:#e7eee8}.user-dot,.pulse,.live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#88c66e}.user-dot{width:7px;height:7px}.role-label{font-size:10px;text-transform:uppercase;letter-spacing:.8px;color:#b7c8bc;background:#254338;padding:4px 8px;border-radius:20px}.page-shell{max-width:1240px;padding:42px 30px 72px;margin:0 auto}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:28px}.page-heading h1{font:800 clamp(27px,4vw,37px)/1.2 Manrope,sans-serif;letter-spacing:-1.25px;margin:8px 0}.page-heading p{margin:0;color:var(--muted);font-size:14px}.page-heading p strong{color:var(--ink)}.eyebrow,.panel-kicker{font-size:10px;font-weight:700;letter-spacing:1.45px;color:var(--green);display:flex;align-items:center;gap:8px}.pulse{width:7px;height:7px;box-shadow:0 0 0 4px rgba(99,172,95,.13)}.panel{background:var(--white);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.panel h2,.section-heading h2{font:700 19px/1.35 Manrope,sans-serif;letter-spacing:-.45px;margin:5px 0 0}.panel-title-row,.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.muted{color:var(--muted)}.button{display:inline-flex;justify-content:center;align-items:center;gap:10px;border:0;border-radius:8px;padding:11px 16px;font-weight:700;font-size:13px;transition:transform .15s,background .15s}.button:hover{transform:translateY(-1px)}.button-primary{background:var(--green);color:#fff}.button-primary:hover{background:var(--green-dark)}.button-secondary{background:#edf3ef;color:#275542}.button-secondary:hover{background:#e0ebe4}.button-quiet{color:#d7e4db;background:transparent}.button-quiet:hover{background:#254338}.button-danger{color:#9b3939;background:#fff1ef}.button-danger:hover{background:#ffe2df}.button-small{font-size:11px;padding:7px 10px;border-radius:7px}.button-large{padding:15px 18px;font-size:14px}.button-wide{width:100%}.notice{padding:12px 15px;border-radius:9px;margin:0 0 17px;font-size:13px;font-weight:600}.notice-success{background:#e9f6ec;color:#22623a;border:1px solid #d3ead9}.notice-error{background:var(--red-soft);color:var(--red);border:1px solid #f3d7d2}.live-pill,.admin-badge{display:flex;align-items:center;gap:9px;background:#eaf5eb;color:#356641;padding:9px 12px;border-radius:30px;font-size:10px;letter-spacing:.8px;font-weight:700;white-space:nowrap}.dot-sep{padding:0 5px;color:#bac4bd}.guard-layout{display:grid;grid-template-columns:minmax(350px,.9fr) minmax(430px,1.1fr);gap:20px;align-items:start}.entry-panel,.log-panel{padding:24px}.step-badge,.count-badge{font-size:10px;font-weight:700;color:#75847b;background:#f1f4f1;padding:6px 9px;border-radius:20px;white-space:nowrap}.entry-form{display:flex;flex-direction:column;gap:20px;margin-top:26px}.entry-form label,.login-card label,.admin-create-form>label{display:flex;flex-direction:column;gap:8px;font-weight:600;font-size:12px;color:#35423b}.entry-form input:not([type=radio]),.entry-form select,.login-card input,.admin-create-form input,.admin-create-form select,.inline-edit input,.inline-edit select{width:100%;height:41px;border:1px solid #dce4de;border-radius:7px;background:#fff;padding:0 11px;color:var(--ink);outline:0}.entry-form input:focus,.entry-form select:focus,.login-card input:focus,.admin-create-form input:focus,.admin-create-form select:focus,.inline-edit input:focus,.inline-edit select:focus{border-color:#77a68d;box-shadow:0 0 0 3px rgba(51,127,89,.09)}.entry-form .input-lg{height:47px;font-size:14px}.entry-form select.input-lg{height:148px;padding:5px}.entry-form select option{padding:8px;border-radius:4px}.field-large{gap:9px!important}.required{color:#bd5148}.field-hint,.form-footnote,.optional{font-size:11px;font-weight:400;color:#87938c}.status-field{border:0;padding:0;margin:0}.status-field legend{font-size:12px;font-weight:600;color:#35423b;margin-bottom:9px}.status-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.status-option{position:relative;display:flex!important;flex-direction:row!important;align-items:center;gap:11px;padding:12px;border:1px solid #e0e7e2;border-radius:9px;cursor:pointer}.status-option:has(input:checked){border-color:#72a889;background:#f0f7f1;box-shadow:0 0 0 2px rgba(55,127,88,.08)}.status-option>input{position:absolute;opacity:0}.status-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#e8f4eb;color:#317546;font-size:20px}.status-out .status-icon{background:#fff1e5;color:#a65d1d}.status-option strong{display:block;font-size:14px;letter-spacing:.4px}.status-option small{display:block;font-size:10px;color:#849088;font-weight:400}.form-footnote{text-align:center;margin:-11px 0 0}.log-panel{min-height:450px}.table-wrap{width:100%;overflow:auto;margin-top:18px}.data-table{border-collapse:collapse;width:100%;text-align:left}.data-table th{font-size:9px;text-transform:uppercase;letter-spacing:1px;color:#909a94;font-weight:700;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}.data-table td{padding:12px;border-bottom:1px solid #eff2ef;font-size:12px;vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:0}.data-table td strong{font-size:12px;font-weight:700;display:block}.data-table td small{display:block;color:#8a9690;font-size:10px;margin-top:3px}.status-tag{display:inline-flex;align-items:center;padding:4px 8px;border-radius:20px;font-size:9px;font-weight:700;letter-spacing:.55px;background:#f0f2f0;color:#727d76;white-space:nowrap}.tag-in{background:#e8f5eb;color:#347249}.tag-out{background:#feeceb;color:#bd271e}.tag-muted{background:#eff2f0;color:#747e78}.time-cell{white-space:nowrap;color:#66736c;font-size:11px!important}.empty-state{min-height:280px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;text-align:center;color:#87938c;font-size:12px}.empty-state strong{color:#46544c;font-size:13px}.empty-icon{font-size:29px;color:#adc1b4}.login-shell{max-width:none;min-height:calc(100vh - 72px);padding:0 clamp(24px,9vw,140px);display:flex;flex-direction:column;justify-content:center;background:radial-gradient(ellipse at 16% 33%,rgba(198,224,177,.25),transparent 37%),var(--paper)}.login-layout{width:min(990px,100%);margin:auto;display:grid;grid-template-columns:1.2fr .8fr;align-items:center;gap:clamp(35px,8vw,120px);padding:56px 0}.login-intro h1{font:800 clamp(38px,5vw,55px)/1.14 Manrope,sans-serif;letter-spacing:-2.4px;margin:21px 0 16px}.login-intro h1 span{color:var(--green)}.login-intro>p{max-width:420px;color:#6f7d75;line-height:1.8;font-size:15px}.login-stats{display:flex;gap:40px;margin-top:49px}.login-stats div{display:flex;flex-direction:column;gap:4px}.login-stats strong{font-size:10px;letter-spacing:1px;color:var(--green)}.login-stats span{color:#8b9790;font-size:11px}.login-card{padding:31px 32px;box-shadow:0 17px 55px rgba(30,56,42,.09)}.login-card h2{font:800 23px Manrope,sans-serif;letter-spacing:-.7px;margin:8px 0 3px}.login-card>.muted{font-size:12px;margin:0 0 24px}.login-card .form-stack{display:flex;flex-direction:column;gap:16px}.login-card input{height:46px}.login-card .button{margin-top:3px;height:45px;justify-content:space-between;padding:0 15px}.login-foot{border-top:1px solid var(--line);margin-top:21px;padding-top:15px;color:#929c95;font-size:10px;text-align:center}.lock-icon{margin-right:5px}.page-foot{text-align:center;color:#a1aaa4;font-size:10px;padding:0 0 22px}.page-foot span{padding:0 5px;color:#c7cec9}.dashboard-heading{margin-bottom:22px}.updated-label{display:grid;grid-template-columns:auto auto;gap:2px 8px;align-items:center;color:#4d7655;font-size:11px;font-weight:600}.updated-label .pulse{grid-row:span 2}.updated-label small{grid-column:2;color:#8e9992;font-size:9px;font-weight:400}.summary-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-bottom:33px}.summary-strip>div{background:#fff;border:1px solid var(--line);border-radius:11px;padding:15px 18px;display:flex;align-items:center;gap:12px}.summary-number{font:800 25px Manrope,sans-serif;letter-spacing:-1px}.summary-caption{display:flex;align-items:center;gap:6px;color:#75827a;font-size:11px}.mini-dot{width:7px;height:7px;border-radius:50%;display:inline-block}.mini-in{background:#63a975}.mini-out{background:#e7a353}.section-block{margin-bottom:27px}.section-heading{margin-bottom:16px}.section-heading .muted{font-size:11px}.location-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.location-card{padding:18px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.location-card-top{display:flex;align-items:center;gap:8px}.location-symbol{width:27px;height:27px;border-radius:8px;background:#eaf3eb;color:var(--green);display:grid;place-items:center;font-size:12px;font-weight:800}.location-code{color:#8c9890;font-size:9px;font-weight:700;letter-spacing:.9px}.live-dot{width:6px;height:6px;margin-left:auto}.location-card h3{font:700 16px Manrope,sans-serif;margin:12px 0 13px}.location-metrics{display:flex;gap:30px}.location-metrics div{display:flex;align-items:baseline;gap:6px}.location-metrics strong{font:800 25px Manrope,sans-serif;letter-spacing:-.9px}.location-metrics span{font-size:9px;font-weight:700;letter-spacing:.8px;color:#8c9790}.metric-in{color:#398155}.metric-out{color:#c17b35}.card-divider{height:1px;background:#eef1ee;margin:14px 0 10px}.card-foot{display:flex;justify-content:space-between;color:#929d96;font-size:9px;letter-spacing:.7px}.card-foot span:last-child{letter-spacing:0;color:#647168}.search-panel{padding:21px 22px}.search-shortcut{font-size:24px;color:#8b9990}.search-control{margin:13px 0 0;display:flex;align-items:center;gap:10px;height:45px;border:1px solid #dde5df;border-radius:8px;padding:0 12px;color:#829088}.search-control:focus-within{border-color:#77a68d;box-shadow:0 0 0 3px rgba(51,127,89,.09)}.search-control input{border:0;outline:0;flex:1;min-width:0;background:transparent;color:var(--ink);font-size:12px}.search-control kbd{font:10px 'DM Sans';border:1px solid #dfe5e0;border-radius:4px;padding:2px 6px;color:#89948d}.search-results{margin-top:8px}.search-placeholder{padding:15px 3px;color:#98a29b;font-size:11px}.result-row{display:grid;grid-template-columns:1.3fr 1fr .8fr 1.2fr;align-items:center;gap:10px;border-top:1px solid #eff2ef;padding:12px 5px;font-size:11px}.result-name strong,.result-name small{display:block}.result-name small,.result-dept,.result-time{font-size:10px;color:#89948e}.result-loc{color:#506057}.admin-badge{background:#e9effa;color:#4d6485;font-size:9px}.admin-nav{display:flex;gap:6px;border-bottom:1px solid #dfe6e1;margin:0 0 19px;padding:0 0 10px}.admin-nav a{font-size:11px;font-weight:600;color:#65736a;padding:8px 11px;border-radius:7px}.admin-nav a:hover{background:#eaf1eb;color:var(--green)}.admin-nav span{color:#8a978e;margin-left:5px}.admin-section{padding:21px;margin-bottom:16px;scroll-margin-top:15px}.admin-create-form{display:flex;align-items:flex-end;gap:9px;padding:15px 0;border-bottom:1px solid var(--line);margin-top:10px}.admin-create-form>label{min-width:115px;flex:1;font-size:10px}.admin-create-form input,.admin-create-form select{height:36px;font-size:11px}.admin-create-form .check-label{min-width:57px;flex:0 0 auto;flex-direction:row;align-items:center;gap:6px;padding-bottom:9px}.check-label input{width:14px!important;height:14px!important;accent-color:var(--green)}.inline-edit{display:flex;gap:5px;align-items:center;min-width:510px}.inline-edit input,.inline-edit select{height:31px;padding:0 7px;font-size:10px;min-width:75px}.inline-edit .check-label{display:flex;align-items:center;gap:4px;white-space:nowrap;font-size:9px;color:#718078}.admin-table .table-wrap{margin-top:8px}.admin-table td{padding:10px 8px}.admin-table td:nth-child(3){max-width:580px}.admin-table th{padding:9px 8px}.admin-note{text-align:center;color:#89968e;font-size:10px;padding:2px 0}.role-select{min-width:80px}.login-layout .notice{margin:0 0 15px}
@media(max-width:850px){.page-shell{padding:30px 20px 55px}.guard-layout{grid-template-columns:1fr}.log-panel{min-height:unset}.location-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.login-shell{padding:0 7vw}.admin-create-form{flex-wrap:wrap}.admin-create-form>label{min-width:calc(50% - 10px)}.admin-create-form .check-label{min-width:auto}.section-heading .muted{max-width:190px;text-align:right}}
@media(max-width:560px){.topbar{height:61px;padding:0 16px}.brand{font-size:15px}.brand-mark{height:29px;width:29px}.topbar-right{gap:8px}.role-label{display:none}.user-chip{font-size:11px}.button-quiet{font-size:10px;padding:7px}.page-shell{padding:27px 15px 45px}.page-heading{align-items:flex-start;flex-direction:column;gap:13px;margin-bottom:21px}.page-heading h1{font-size:28px}.page-heading p{font-size:12px}.live-pill{font-size:9px}.entry-panel,.log-panel{padding:18px 15px}.panel h2,.section-heading h2{font-size:17px}.guard-layout{gap:13px}.entry-form{gap:17px;margin-top:20px}.data-table th{padding:9px 7px}.data-table td{padding:10px 7px}.time-cell{font-size:10px!important}.login-shell{min-height:calc(100vh - 61px);padding:0 20px}.login-layout{grid-template-columns:1fr;gap:25px;padding:38px 0}.login-intro h1{font-size:37px;margin:13px 0}.login-intro>p{font-size:12px;line-height:1.65}.login-stats{margin-top:21px;gap:27px}.login-card{padding:23px 20px}.login-card h2{font-size:21px}.login-stats strong{font-size:9px}.login-stats span{font-size:10px}.page-foot{font-size:9px}.dashboard-heading .updated-label{margin-top:0}.summary-strip{gap:7px;margin-bottom:24px}.summary-strip>div{padding:10px 9px;align-items:flex-start;flex-direction:column;gap:4px}.summary-number{font-size:21px}.summary-caption{font-size:9px}.location-grid{grid-template-columns:1fr 1fr;gap:8px}.location-card{padding:13px 11px}.location-card h3{font-size:13px;margin:9px 0}.location-metrics{gap:17px}.location-metrics strong{font-size:21px}.location-metrics span{font-size:8px}.card-foot{font-size:8px}.card-foot span:last-child{font-size:9px}.section-heading{align-items:flex-start}.section-heading .muted{font-size:9px;max-width:120px}.search-panel{padding:17px 13px}.result-row{grid-template-columns:1.2fr .8fr;gap:6px}.result-time,.result-dept{display:none}.admin-nav{overflow:auto;white-space:nowrap}.admin-nav a{font-size:10px;padding:7px}.admin-section{padding:16px 12px}.admin-create-form{gap:7px}.admin-create-form>label{min-width:100%;}.admin-create-form .check-label{min-width:60px}.admin-create-form .button{margin-left:auto}.admin-section .section-heading .muted{max-width:none}.admin-badge{font-size:8px}.notice{font-size:11px}.step-badge,.count-badge{font-size:9px;padding:5px 7px}}

.personnel-picker{display:flex;flex-direction:column;gap:8px}.personnel-picker>label{font-weight:600;font-size:12px;color:#35423b}.personnel-picker .department-filter{height:41px;border:1px solid #dce4de;border-radius:7px;background:#fff;padding:0 11px;color:var(--ink);outline:0}.personnel-picker .department-filter:focus{border-color:#77a68d;box-shadow:0 0 0 3px rgba(51,127,89,.09)}.log-person-label{font-size:11px;color:#849088;margin:4px 0 0}.log-note{min-width:110px;color:#6f7c74;font-size:11px!important}
.result-loc strong,.result-loc small{display:block}.result-loc strong{font-size:10px;font-weight:600}.result-loc small{font-size:9px;color:#89948e;margin-top:3px}
.personnel-detail{padding:12px;border:1px solid #dce9df;border-radius:9px;background:#f7fbf7}.personnel-detail-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.personnel-detail-head>div:first-child strong,.personnel-detail-head>div:first-child small{display:block}.personnel-detail-head>div:first-child strong{font-size:13px;color:#26382e}.personnel-detail-head>div:first-child small{font-size:10px;color:#849088;margin-top:2px}.personnel-last-status{display:flex;align-items:flex-end;flex-direction:column;gap:4px}.personnel-last-status>span:first-child,.personnel-detail-meta span{font-size:8px;font-weight:700;letter-spacing:.8px;color:#87948b}.personnel-detail-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;border-top:1px solid #e3ece5;margin-top:10px;padding-top:9px}.personnel-detail-meta>div{display:flex;flex-direction:column;gap:3px}.personnel-detail-meta strong{font-size:11px;color:#3d5747}
.monitoring-hint{margin:10px 0 5px;color:#87938c;font-size:10px}
.personnel-monitoring-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.monitor-person-card{min-width:0;padding:14px;border:1px solid #e7ece8;border-radius:10px;background:#fff}
.monitor-person-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.monitor-person-name{min-width:0}
.monitor-person-name strong,.monitor-person-name small{display:block;overflow-wrap:anywhere}
.monitor-person-name strong{font-size:13px;color:#26382e}
.monitor-person-name small{font-size:10px;color:#89948e;margin-top:3px}
.monitor-out-duration small{font-size:9px;color:#87938c}
.monitor-person-footer{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;border-top:1px solid #edf1ed;margin-top:12px;padding-top:10px}
.monitor-out-duration{display:flex;flex-direction:column;gap:3px}
.monitor-out-duration strong{font:700 13px Manrope,sans-serif;color:#a66524}
.monitor-last-event{font-size:9px;color:#89948e;text-align:right}
@media(max-width:850px){.personnel-monitoring-list{grid-template-columns:1fr}}
@media(max-width:560px){.monitor-person-card{padding:12px}.monitor-person-footer{align-items:flex-start;flex-direction:column}.monitor-last-event{text-align:left}}
/* Make movement states easy to scan on both role dashboards. */
.summary-strip>.summary-status{min-height:88px;padding:16px 20px;border-radius:12px}
.summary-strip>.summary-in{background:#eaf6ed;border-color:#cfe7d5}
.summary-strip>.summary-out{background:#fff2e7;border-color:#f0d7bd}
.summary-status .summary-number{font-size:34px;line-height:1;color:#276d43}
.summary-out .summary-number{color:#a95e20}
.summary-status .summary-caption{font-size:12px;font-weight:700;color:#345d41}
.summary-out .summary-caption{color:#87501f}
.summary-strip>.summary-locations{min-height:88px;border-radius:12px}
.location-metrics{gap:10px}
.location-metrics .metric-box{flex:1;justify-content:space-between;gap:8px;padding:10px 12px;border-radius:9px}
.location-metrics .metric-box-in{background:#edf7ef}
.location-metrics .metric-box-out{background:#fff4e9}
.location-metrics .metric-box strong{font-size:30px;line-height:1}
.location-metrics .metric-box span{font-size:11px;font-weight:800;letter-spacing:.6px;color:#487353}
.location-metrics .metric-box-out span{color:#9a642f}
.status-options{gap:12px}
.status-options .status-option{min-height:90px;padding:14px;gap:14px;border-radius:12px}
.status-options .status-icon{width:46px;height:46px;border-radius:12px;font-size:26px}
.status-options .status-option strong{font-size:21px;letter-spacing:.7px}
.status-options .status-option small{font-size:12px;margin-top:2px}
.status-options .status-option.status-in:has(input:checked){border-color:#54a36b;background:#e8f5eb;box-shadow:0 0 0 3px rgba(55,127,88,.15)}
.status-options .status-option.status-out:has(input:checked){border-color:#d78a3d;background:#fff0df;box-shadow:0 0 0 3px rgba(190,119,48,.16)}
.status-option:has(input:focus-visible){outline:3px solid #80a992;outline-offset:2px}
.status-options .status-option.status-out:has(input:checked) .status-icon{background:#f8dfc4;color:#965218}
.personnel-last-status .status-tag,.log-panel .status-tag{padding:6px 11px;font-size:11px;letter-spacing:.6px;min-width:58px;justify-content:center}
.monitor-person-heading .status-tag{padding:7px 12px;font-size:12px;letter-spacing:.7px;min-width:62px;justify-content:center}
@media(max-width:560px){
  .summary-strip>.summary-status{min-height:82px;padding:12px 10px}
  .summary-status .summary-number{font-size:28px}
  .summary-status .summary-caption{font-size:10px;line-height:1.3}
  .summary-strip>.summary-locations{min-height:82px}
  .location-metrics .metric-box{padding:9px 8px}
  .location-metrics .metric-box strong{font-size:25px}
  .status-options .status-option{min-height:82px;padding:11px 9px;gap:9px}
  .status-options .status-icon{width:40px;height:40px;font-size:23px}
  .status-options .status-option strong{font-size:19px}
  .status-options .status-option small{font-size:10px}
}
.monitor-person-heading{align-items:center}
.monitor-person-name{flex:1;padding:9px 11px;border:1px solid #e2e8e3;border-left-width:4px;border-radius:9px;background:#f5f7f5}
.monitor-person-name.nameplate-in{border-color:#cfe6d4;border-left-color:#4d9861;background:#eaf6ed}
.monitor-person-name.nameplate-in strong{color:#245b37}
.monitor-person-name.nameplate-in small{color:#52765c}
.monitor-person-name.nameplate-out{border-color:#f0d8bd;border-left-color:#cf8137;background:#fff2e7}
.monitor-person-name.nameplate-out strong{color:#814819}
.monitor-person-name.nameplate-out small{color:#8f6844}
.monitor-person-name.nameplate-muted{border-left-color:#aab5ad}
@media(max-width:560px){.monitor-person-name{padding:8px 9px}}
.personnel-table-scroll{width:100%;overflow:auto;margin-top:12px;border:1px solid #e6ece7;border-radius:10px}
.personnel-dashboard-table{width:100%;min-width:980px;table-layout:fixed;margin:0}
.personnel-dashboard-table th{background:#f6f8f6;padding:12px 13px}
.personnel-dashboard-table th:nth-child(1){width:9%}
.personnel-dashboard-table th:nth-child(2){width:18%}
.personnel-dashboard-table th:nth-child(3){width:13%}
.personnel-dashboard-table th:nth-child(4){width:13%}
.personnel-dashboard-table th:nth-child(5),.personnel-dashboard-table th:nth-child(6){width:11%}
.personnel-dashboard-table th:nth-child(7){width:11%}
.personnel-dashboard-table th:nth-child(8){width:14%}
.personnel-dashboard-table td{padding:11px 13px;overflow-wrap:anywhere}
.personnel-dashboard-table tbody tr{transition:background .15s}
.personnel-dashboard-table tbody tr:hover{background:#fafcf9}
.personnel-dashboard-table .personnel-code{font-weight:700;color:#43564a;font-variant-numeric:tabular-nums}
.personnel-nameplate{padding:8px 10px;border:1px solid #e2e8e3;border-left-width:4px;border-radius:8px;background:#f5f7f5}
.personnel-nameplate strong,.personnel-nameplate small{display:block;overflow-wrap:anywhere}
.personnel-nameplate strong{font-size:12px;color:#24382c}
.personnel-nameplate small{margin-top:3px;font-size:10px;color:#7d8b81}
.personnel-nameplate.nameplate-in{border-color:#cfe6d4;border-left-color:#4d9861;background:#eaf6ed}
.personnel-nameplate.nameplate-in strong{color:#245b37}
.personnel-nameplate.nameplate-out{border-color:#f0d8bd;border-left-color:#cf8137;background:#fff2e7}
.personnel-nameplate.nameplate-out strong{color:#814819}
.personnel-nameplate.nameplate-muted{border-left-color:#aab5ad}
.personnel-department,.personnel-note{color:#526157}
.personnel-dashboard-table .movement-time-cell{font-variant-numeric:tabular-nums;white-space:nowrap}
.personnel-dashboard-table .movement-time-cell strong{font-size:13px}
.personnel-dashboard-table .movement-time-cell small{margin-top:3px;font-size:8px;font-weight:800;letter-spacing:.65px;color:#aa6327}
.personnel-dashboard-table .movement-out.is-current strong{color:#a65d1d}
.personnel-dashboard-table .movement-in.is-current strong{color:#327348}
.personnel-dashboard-table .personnel-duration{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.personnel-dashboard-table .duration-out{color:#a65d1d}
.personnel-dashboard-table .duration-in{color:#327348}
.personnel-dashboard-table .duration-muted{color:#89948e}
.personnel-dashboard-table .personnel-note{font-size:11px}
.personnel-dashboard-table .search-placeholder{padding:20px;text-align:center}
.personnel-detail{border-left-width:4px;transition:background .15s,border-color .15s}
.personnel-detail.detail-in{background:#eaf6ed;border-color:#cfe6d4;border-left-color:#4d9861}
.personnel-detail.detail-in .personnel-detail-head>div:first-child strong{color:#245b37}
.personnel-detail.detail-out{background:#fff1ef;border-color:#f5d3cf;border-left-color:#dc3545}
.personnel-detail.detail-out .personnel-detail-head>div:first-child strong{color:#9e2319}
.personnel-detail.detail-muted{background:#f5f7f5;border-color:#e2e8e3;border-left-color:#aab5ad}
.project-groups{display:flex;flex-direction:column;gap:22px}
.project-group{padding:16px;background:#eef3ee;border:1px solid #e0e8e0;border-radius:13px}
.project-group-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}
.project-group-heading .panel-kicker{font-size:9px}
.project-group-heading h3{margin:4px 0 0;font:700 17px/1.3 Manrope,sans-serif;letter-spacing:-.35px;color:#24392d}
.project-location-count{padding:6px 10px;border-radius:20px;background:#fff;color:#627268;font-size:10px;font-weight:700;white-space:nowrap}
.project-group .location-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:850px){.project-group .location-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.project-groups{gap:14px}.project-group{padding:12px 10px}.project-group-heading h3{font-size:15px}.project-group .location-grid{grid-template-columns:1fr 1fr}}

/* Guard batch logging and emergency headcount */
.batch-panel,.headcount-panel{margin-top:20px;padding:24px}
.batch-panel .panel-title-row p{margin:5px 0 0;font-size:11px}
.batch-form{margin-top:19px}
.batch-toolbar{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(140px,.8fr) minmax(140px,.8fr) minmax(140px,.8fr) auto auto;gap:10px;align-items:end}
.batch-toolbar label,.batch-actions>label,.headcount-search-label,.headcount-department-label{display:flex;flex-direction:column;gap:7px;font-size:11px;font-weight:600;color:#526157}
.batch-toolbar input,.batch-toolbar select,.batch-actions>label input,.headcount-search-label input,.headcount-department-label select{height:40px;border:1px solid #dce4de;border-radius:7px;background:#fff;padding:0 11px;color:var(--ink);outline:0;min-width:0}
.batch-toolbar input:focus,.batch-toolbar select:focus,.batch-actions>label input:focus,.headcount-search-label input:focus,.headcount-department-label select:focus{border-color:#77a68d;box-shadow:0 0 0 3px rgba(51,127,89,.09)}
.batch-toolbar .button{height:40px;white-space:nowrap}
.batch-list,.headcount-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:13px 0;border:1px solid #e6ece7;border-radius:10px;padding:9px;max-height:355px;overflow:auto}
.batch-person{display:flex;align-items:center;gap:10px;min-width:0;padding:10px;border:1px solid #edf1ed;border-radius:8px;background:#fff;cursor:pointer}
.batch-person:hover{border-color:#c9dccd;background:#f8fbf8}
.batch-person[hidden],.headcount-person[hidden]{display:none!important}
.batch-person input,.headcount-person input{width:19px;height:19px;flex:0 0 auto;accent-color:var(--green)}
.batch-person-copy,.headcount-person-copy{display:block;min-width:0;flex:1}
.batch-person-copy strong,.batch-person-copy small,.headcount-person-copy strong,.headcount-person-copy small{display:block;overflow-wrap:anywhere}
.batch-person-copy strong,.headcount-person-copy strong{font-size:12px;color:#2d4034}
.batch-person-copy small,.headcount-person-copy small{font-size:9px;color:#849088;margin-top:3px;line-height:1.4}
.batch-person-tags{display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex:0 0 auto}
.batch-category{flex:0 0 auto;padding:5px 7px;border-radius:20px;font-size:8px;font-weight:800;letter-spacing:.45px;white-space:nowrap}
.batch-home{background:#edf6ef;color:#3e744b}
.batch-visitor{background:#fff2e6;color:#9a6025}
.batch-footer{display:flex;align-items:flex-end;justify-content:space-between;gap:14px}
.batch-actions{display:grid;grid-template-columns:minmax(270px,1.2fr) minmax(200px,1fr) auto;gap:10px;align-items:end;flex:1;max-width:920px}
.batch-status-field{width:100%;min-width:0;margin:0}
.batch-status-field .status-options{gap:6px}
.batch-status-field .status-option{min-width:0;padding:9px;gap:7px}
.batch-status-field .status-icon{width:30px;height:30px;flex:0 0 auto}
.batch-actions .button{height:40px;white-space:nowrap}
.batch-form>.form-footnote{margin:12px 0 0;text-align:left}
.headcount-panel .panel-title-row p{margin:5px 0 0;font-size:11px;max-width:680px}
.headcount-panel .panel-title-row{align-items:center}
.headcount-session-line{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:17px 0 10px;color:#748179;font-size:10px}
.headcount-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:10px 0 16px}
.hc-metric{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;border:1px solid #e5ebe6;border-radius:10px;background:#f8faf8}
.hc-metric strong{font:800 25px Manrope,sans-serif;color:#40544a}
.hc-metric span{font-size:10px;font-weight:700;color:#6e7b73;text-align:right}
.hc-in{background:#edf7ef;border-color:#d8eadd}.hc-in strong{color:#347249}
.hc-out{background:#fff3e8;border-color:#f0ddc9}.hc-out strong{color:#a66524}
.hc-unknown{background:#f4f5f4}.hc-checked{background:#edf3f8;border-color:#dce7f0}.hc-checked strong{color:#42627d}
.headcount-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(180px,.65fr) minmax(180px,.65fr);gap:10px;max-width:960px}
.headcount-list{max-height:430px;margin-top:12px}
.headcount-person{display:flex;align-items:center;gap:11px;min-width:0;padding:11px;border:1px solid #e7ece8;border-radius:9px;background:#fff;cursor:pointer}
.headcount-person:hover{border-color:#c9dccd}
.headcount-person.is-checked{background:#edf7ef;border-color:#cfe6d4}
.headcount-person.headcount-out-row{border-left:3px solid #d79552}
.headcount-person-state{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:0 0 auto}
.headcount-person-state small{font-size:9px;color:#89948e;white-space:nowrap}
.headcount-footnote{margin:9px 0 0;font-size:10px;color:#87938c}
.headcount-status{margin-top:16px;padding:10px 12px;border-radius:8px;font-size:11px;font-weight:600}
.headcount-status.notice-success{background:#eef6ef;color:#3e7049;border:1px solid #dceadd}
.headcount-status.notice-error{background:var(--red-soft);color:var(--red);border:1px solid #f3d7d2}
.headcount-panel button:disabled{opacity:.55;cursor:wait}
@media(max-width:850px){.batch-toolbar{grid-template-columns:1fr 1fr}.batch-toolbar .batch-search-label{grid-column:span 2}.batch-footer{align-items:flex-start;flex-direction:column}.batch-actions{width:100%;max-width:none;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.batch-status-field{grid-column:span 2}.headcount-toolbar{max-width:none}.headcount-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.batch-panel,.headcount-panel{padding:17px 14px}.batch-panel .panel-title-row,.headcount-panel .panel-title-row{align-items:flex-start;flex-direction:column}.batch-toolbar{grid-template-columns:1fr}.batch-toolbar .batch-search-label{grid-column:auto}.batch-toolbar .button{width:100%}.batch-list,.headcount-list{grid-template-columns:1fr;padding:7px;max-height:320px}.batch-person{padding:9px 7px;gap:7px}.batch-person-copy strong,.headcount-person-copy strong{font-size:11px}.batch-person-copy small,.headcount-person-copy small{font-size:8px}.batch-category{font-size:7px;padding:4px 5px}.batch-person-tags .status-tag{font-size:7px;padding:4px 5px}.batch-actions{grid-template-columns:1fr}.batch-status-field{grid-column:auto}.batch-actions .button{width:100%}.batch-footer{gap:8px}.headcount-toolbar{grid-template-columns:1fr}.headcount-metrics{gap:7px}.hc-metric{padding:10px 9px;flex-direction:column;align-items:flex-start;gap:2px}.hc-metric strong{font-size:23px}.hc-metric span{text-align:left;font-size:9px}.headcount-session-line{align-items:flex-start;flex-direction:column}.headcount-panel .panel-title-row .button{width:100%}.headcount-person{gap:8px;padding:9px 7px}.headcount-person-state .status-tag{font-size:8px;padding:4px 6px}}
.admin-import-box{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,1.5fr);gap:22px;align-items:center;margin:15px 0;padding:17px;border:1px solid #dfe9e1;border-radius:10px;background:#f7faf7}
.admin-import-box>div>strong{font:700 13px Manrope,sans-serif;color:#2e4737}
.admin-import-box p{margin:5px 0;color:#69776e;font-size:10px;line-height:1.6}
.admin-import-box small{color:#87938c;font-size:9px}
.admin-import-form{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto;gap:10px;align-items:end}
.admin-import-form label{display:flex;flex-direction:column;gap:6px;min-width:0;font-size:10px;font-weight:600;color:#526157}
.admin-import-form input[type=file],.admin-import-form select{width:100%;height:40px;min-width:0;border:1px solid #dce4de;border-radius:7px;background:#fff;padding:7px;color:var(--ink);font:10px 'DM Sans',sans-serif}
.admin-import-form input[type=file]{padding:5px}
.admin-import-form .button{height:40px;white-space:nowrap}
@media(max-width:850px){.admin-import-box{grid-template-columns:1fr;gap:12px}.admin-import-form{grid-template-columns:1fr 1fr}.admin-import-form .button{grid-column:span 2}}
@media(max-width:560px){.admin-import-box{padding:13px 10px}.admin-import-form{grid-template-columns:1fr}.admin-import-form .button{grid-column:auto;width:100%}}
.admin-bulk-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 8px;color:#718078;font-size:10px}
.admin-personnel-search{display:grid;gap:7px;margin-top:18px;color:#526157;font-size:11px;font-weight:700}
.admin-personnel-search>div{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.admin-personnel-search input[type=search]{flex:1;min-width:210px;height:39px;padding:0 11px;border:1px solid #dce4de;border-radius:7px;background:#fff;color:var(--ink);font:12px 'DM Sans',sans-serif}
.admin-personnel-search input[type=search]:focus{outline:0;border-color:#77a68d;box-shadow:0 0 0 3px rgba(51,127,89,.09)}
.admin-personnel-log-link{border:0;background:transparent;padding:0;font-weight:700}
.admin-personnel-savebar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0 14px;padding:11px 13px;border:1px solid #d8e7db;border-radius:9px;background:#f3f8f3;color:#506157;font-size:11px}
.admin-personnel-savebar .button{white-space:nowrap}
.admin-bulk-toolbar form{display:flex;align-items:center;gap:9px;margin:0}
.admin-bulk-toolbar .button:disabled{opacity:.5;cursor:not-allowed;transform:none}
#personnel .admin-table th:first-child,#personnel .admin-table td:first-child{width:42px;text-align:center}
#personnel .admin-table th:first-child input[type=checkbox],#personnel .admin-table td:first-child input[type=checkbox]{width:18px;height:18px;accent-color:var(--green);cursor:pointer}
#personnel .admin-table td:nth-child(4){max-width:580px}
@media(max-width:560px){.admin-bulk-toolbar{align-items:flex-start;flex-direction:column}.admin-bulk-toolbar form{width:100%;justify-content:space-between}.admin-personnel-search>div{align-items:stretch;flex-direction:column}.admin-personnel-search input[type=search]{min-width:0;width:100%}.admin-personnel-search .button{width:100%;justify-content:center}}
@media(max-width:560px){.admin-personnel-savebar{align-items:stretch;flex-direction:column}.admin-personnel-savebar .button{width:100%;justify-content:center}}

/* Public QR self-service portals and dual printable location posters */
.guard-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}
.qr-portal-dialog{width:min(960px,calc(100% - 24px));max-height:min(92vh,980px);overflow:auto;padding:22px;border:1px solid #dce6df;border-radius:16px;background:#f7faf7;color:var(--ink);box-shadow:0 24px 80px rgba(10,35,22,.25)}
.qr-portal-dialog::backdrop,.self-service-dialog::backdrop{background:rgba(9,26,17,.62);backdrop-filter:blur(3px)}
.qr-portal-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:16px}
.qr-portal-dialog-head h2{margin:4px 0;font:800 22px/1.25 Manrope,sans-serif}
.qr-portal-dialog-head p{margin:0;font-size:12px}
.qr-location-picker{display:grid;gap:6px;max-width:440px;color:#526157;font-size:11px;font-weight:700}
.qr-location-picker select{height:42px;padding:0 11px;border:1px solid #dce4de;border-radius:8px;background:#fff;color:var(--ink)}
.qr-token-reset-form{display:flex;align-items:center;gap:10px;margin:12px 0;padding:10px 12px;border:1px solid #f1d6d0;border-radius:9px;background:#fff7f5;color:#8b5549;font-size:10px}
.qr-poster-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));align-items:stretch;gap:14px;margin-top:14px}
.qr-poster{display:flex;min-width:0;flex-direction:column;align-items:center;padding:20px 16px;border:1px solid #dbe5de;border-radius:13px;background:#fff;text-align:center;box-shadow:0 6px 18px rgba(28,64,41,.05)}
.qr-poster-personnel{border-top:5px solid #378152}
.qr-poster-visitor{border-top:5px solid #d78a3d}
.qr-poster-nightlog{border-top:5px solid #2b5c8f}
.qr-poster-brand{display:flex;align-items:center;gap:9px;font:800 11px Manrope,sans-serif;letter-spacing:.08em;color:#173b29}
.qr-poster-brand .brand-mark{width:29px;height:29px}
.qr-poster-kicker{margin:14px 0 4px;color:#77877d;font-size:8px;font-weight:800;letter-spacing:.14em}
.qr-poster h3{max-width:330px;margin:0;color:#183a28;font:800 17px/1.3 Manrope,sans-serif}
.qr-poster-subtitle{min-height:34px;margin:7px 0;color:#65736a;font-size:10px}
.qr-poster-location{margin:2px 0 11px;color:#1f5136;font:800 14px Manrope,sans-serif}
.qr-code-frame{display:grid;place-items:center;width:222px;height:222px;max-width:100%;padding:10px;border:1px solid #e1e9e3;border-radius:12px;background:#fff}
.qr-code-frame>div{display:grid;place-items:center;width:200px;height:200px}
.qr-code-frame img,.qr-code-frame canvas{display:block;max-width:100%;max-height:100%}
.qr-poster-instruction{max-width:300px;min-height:30px;margin:12px 0 7px;color:#41534a;font-size:10px}
.qr-poster-url{width:100%;min-height:33px;overflow-wrap:anywhere;color:#76847b;font-size:8px;line-height:1.45}
.qr-print-one{margin-top:9px}
.qr-print-actions{display:flex;justify-content:flex-end;margin-top:14px}

.self-service-shell.page-shell{width:min(100%,720px);padding:20px 14px 40px}
.self-service-page{display:grid;gap:14px}
.self-service-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 16px;border-radius:14px;background:#102b24;color:#fff}
.self-service-brand{display:flex;align-items:center;gap:10px;font:800 14px Manrope,sans-serif}
.self-service-brand .brand-mark{flex:0 0 32px}
.self-service-location{display:block;margin-top:3px;color:#d5e2d8;font-size:10px;font-weight:500}
.self-service-heading{padding:6px 4px}
.self-service-heading h1{margin:0;font:800 clamp(23px,6vw,31px)/1.2 Manrope,sans-serif;letter-spacing:-.7px}
.self-service-heading p{margin:7px 0 0;color:#748179;font-size:12px}
.self-service-panel{padding:16px;border:1px solid #dfe7e1;border-radius:13px;background:#fff;box-shadow:var(--shadow)}
.self-service-search{display:grid;gap:7px;color:#46584d;font-size:11px;font-weight:700}
.self-service-search input,.self-service-form input,.self-service-form textarea{width:100%;min-height:48px;padding:0 13px;border:1px solid #d5e0d8;border-radius:9px;background:#fff;color:var(--ink);font:14px 'DM Sans',sans-serif}
.self-service-search input:focus,.self-service-form input:focus,.self-service-form textarea:focus{outline:0;border-color:#6fa583;box-shadow:0 0 0 3px rgba(51,127,89,.1)}
.self-personnel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.self-personnel-card{display:flex;align-items:center;gap:11px;min-width:0;padding:11px;border:1px solid #e1e9e3;border-radius:11px;background:#fff;text-align:left}
.self-personnel-card:hover{border-color:#8bb69a;background:#f8fbf8}
.self-personnel-photo,.self-personnel-avatar{display:grid;place-items:center;flex:0 0 54px;width:54px;height:54px;overflow:hidden;border-radius:50%;background:#e6f0e8;color:#285a3b;font:800 15px Manrope,sans-serif}
.self-personnel-photo{object-fit:cover}
.self-personnel-copy{display:grid;min-width:0;gap:3px}
.self-personnel-copy strong{overflow:hidden;color:#253c2d;font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.self-personnel-copy small{overflow:hidden;color:#7e8a82;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.self-status-badge{flex:0 0 auto;margin-left:auto;padding:5px 7px;border-radius:20px;font-size:8px;font-weight:800;letter-spacing:.04em}
.self-status-in{background:#e7f5ea;color:#347047}.self-status-out{background:#fff0e2;color:#a45b1f}
.self-service-empty{padding:25px 12px;color:#77847b;text-align:center;font-size:12px}
.self-service-dialog{width:min(440px,calc(100% - 24px));padding:18px;border:0;border-radius:16px;background:#fff;box-shadow:0 24px 80px rgba(10,35,22,.3)}
.self-dialog-close{float:right}
.self-dialog-profile{display:grid;justify-items:center;gap:8px;padding:5px 12px 16px;text-align:center}
.self-dialog-profile .self-personnel-photo,.self-dialog-profile .self-personnel-avatar{width:112px;height:112px;font-size:27px}
.self-dialog-profile h2{margin:3px 0 0;color:#213e2d;font:800 20px Manrope,sans-serif}
.self-dialog-profile p{margin:0;color:#748179;font-size:11px}
.self-dialog-profile .self-status-badge{margin:2px 0 0;font-size:10px}
.self-service-form{display:grid;gap:12px}
.self-service-form label{display:grid;gap:6px;color:#46584d;font-size:11px;font-weight:700}
.self-service-form input{min-height:44px;font-size:13px}
.self-service-form textarea{min-height:78px;padding:10px 12px;resize:vertical;font-size:13px}
.self-service-form .button{min-height:50px;font-size:14px}
.self-remarks{margin-top:2px}
.self-service-error{margin:8px 0 0;padding:10px;border:1px solid #f1d0ca;border-radius:8px;background:#fff3f1;color:#a43f35;font-size:11px}
.self-service-success{padding:10px 12px;border-radius:8px;background:#e9f6ec;color:#24633a;font-size:11px}
.self-pass-screen{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;overflow:auto;padding:20px;background:linear-gradient(145deg,#185b37,#0e2e20);color:#fff}
.self-pass-screen[hidden]{display:none}
.self-pass-screen.pass-out{background:linear-gradient(145deg,#bd6b26,#753b20)}
.self-pass-card{display:grid;justify-items:center;width:min(100%,420px);padding:25px;border:1px solid rgba(255,255,255,.24);border-radius:22px;background:rgba(255,255,255,.1);text-align:center;backdrop-filter:blur(8px)}
.self-pass-card .self-personnel-photo,.self-pass-card .self-personnel-avatar{width:132px;height:132px;border:4px solid rgba(255,255,255,.7);font-size:32px}
.self-pass-card h2{margin:15px 0 4px;font:800 24px Manrope,sans-serif}
.self-pass-status{margin:4px 0 8px;padding:9px 17px;border-radius:25px;background:#effff2;color:#185b37;font:900 15px Manrope,sans-serif;letter-spacing:.08em}
.pass-out .self-pass-status{background:#fff3e7;color:#8d491a}
.self-pass-card p{margin:4px 0;color:#e1eee5;font-size:12px}
.self-pass-card time{margin:4px 0 18px;font:700 14px Manrope,sans-serif}
.self-pass-card .button{width:100%;min-height:48px}
.visitor-mode-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.visitor-mode-tab{min-height:47px;padding:9px;border:1px solid #dbe5de;border-radius:9px;background:#fff;color:#637168;font-weight:800;font-size:11px}
.visitor-mode-tab[aria-selected=true]{border-color:#548c66;background:#eaf5ec;color:#285c3b}
.self-visitor-form{display:grid;gap:12px}
.self-visitor-form label{display:grid;gap:6px;color:#46584d;font-size:11px;font-weight:700}
.self-visitor-form .required{color:#b7483e}
.self-visitor-active-list{display:grid;gap:9px}
.self-visitor-active-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px;border:1px solid #e0e8e2;border-radius:10px}
.self-visitor-active-card strong{display:block;color:#274333;font-size:12px}
.self-visitor-active-card small{display:block;margin-top:3px;color:#7d8981;font-size:9px}
.self-visitor-active-card .button{min-height:40px}
.self-visitor-pass{border-top:5px solid #4f9660}
.self-visitor-pass.pass-out{border-color:#d2833e}
.self-visitor-pass .self-pass-status{margin-top:12px}

@media(max-width:620px){
  .guard-header-actions{width:100%;justify-content:flex-start}
  .guard-header-actions .button{flex:1}
  .qr-portal-dialog{padding:15px}
  .qr-poster-grid{grid-template-columns:1fr}
  .qr-portal-dialog-head h2{font-size:19px}
  .qr-token-reset-form{align-items:flex-start;flex-direction:column}
  .qr-print-actions .button{width:100%}
  .self-service-shell.page-shell{padding:12px 10px 28px}
  .self-service-header{align-items:flex-start;padding:13px}
  .self-personnel-grid{grid-template-columns:1fr}
  .self-service-panel{padding:13px}
  .self-visitor-active-card{grid-template-columns:1fr}
  .self-visitor-active-card .button{width:100%}
}

@media print{
  body[data-qr-print] *{visibility:hidden!important}
  body[data-qr-print] #qr-portal-dialog[open],
  body[data-qr-print] #qr-portal-dialog[open] *{visibility:visible!important}
  body[data-qr-print] #qr-portal-dialog[open]{position:static!important;display:block!important;width:100%!important;max-width:none!important;max-height:none!important;overflow:visible!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:#fff!important;box-shadow:none!important}
  body[data-qr-print] .qr-portal-dialog-head,
  body[data-qr-print] .qr-location-picker,
  body[data-qr-print] .qr-token-reset-form,
  body[data-qr-print] .qr-print-actions,
  body[data-qr-print] .qr-print-one{display:none!important}
  body[data-qr-print] .qr-poster-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7mm!important;margin:0!important}
  body[data-qr-print] .qr-poster{display:flex!important;min-height:178mm!important;padding:10mm 7mm!important;border:1px solid #bac8bd!important;border-top-width:4mm!important;border-radius:0!important;box-shadow:none!important;break-inside:avoid}
  body[data-qr-print=personnel] .qr-poster-grid,
  body[data-qr-print=visitor] .qr-poster-grid,
  body[data-qr-print=night-log] .qr-poster-grid{display:block!important}
  body[data-qr-print=personnel] .qr-poster:not([data-qr-poster=personnel]),
  body[data-qr-print=visitor] .qr-poster:not([data-qr-poster=visitor]),
  body[data-qr-print=night-log] .qr-poster:not([data-qr-poster=night-log]){display:none!important}
  body[data-qr-print=personnel] .qr-poster[data-qr-poster=personnel],
  body[data-qr-print=visitor] .qr-poster[data-qr-poster=visitor],
  body[data-qr-print=night-log] .qr-poster[data-qr-poster=night-log]{width:100%!important;min-height:175mm!important}
  body[data-qr-print] .qr-poster h3{font-size:20pt!important}
  body[data-qr-print] .qr-poster-subtitle{font-size:12pt!important}
  body[data-qr-print] .qr-poster-location{font-size:16pt!important}
  body[data-qr-print] .qr-code-frame{width:75mm!important;height:75mm!important;margin:3mm 0!important}
  body[data-qr-print] .qr-code-frame>div{width:68mm!important;height:68mm!important}
  body[data-qr-print] .qr-poster-url{font-size:7pt!important}
  body[data-qr-print] .qr-poster-instruction{font-size:10pt!important}
}
.guard-dashboard{display:grid;grid-template-columns:195px minmax(0,1fr);align-items:start;gap:18px}
.guard-sidebar{position:sticky;top:14px;align-self:start}
.guard-sidebar nav{display:grid;gap:6px;padding:8px;border:1px solid #dfe7e1;border-radius:12px;background:#f6f8f6}
.guard-sidebar-link{display:flex;align-items:center;gap:10px;width:100%;min-height:56px;padding:9px;border:1px solid transparent;border-radius:8px;background:transparent;color:#65736a;text-align:left}
.guard-sidebar-link:hover{background:#edf3ef;color:#28563d}
.guard-sidebar-link[aria-pressed=true]{border-color:#d8e6da;background:#eaf4ec;color:#245b37}
.guard-sidebar-number{display:grid;place-items:center;flex:0 0 30px;height:30px;border-radius:8px;background:#e8eeea;color:#63766a;font-size:10px;font-weight:800}
.guard-sidebar-link[aria-pressed=true] .guard-sidebar-number{background:#337f59;color:#fff}
.guard-sidebar-link strong,.guard-sidebar-link small{display:block}
.guard-sidebar-link strong{font-size:11px}
.guard-sidebar-link small{margin-top:2px;color:#88948d;font-size:9px}
.guard-dashboard-content{display:grid;gap:17px;min-width:0}
.guard-category-panel{scroll-margin-top:15px}
.guard-category-panel[hidden]{display:none!important}
.batch-preview{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr);gap:14px;margin-top:13px;padding:13px;border:1px solid #dce9df;border-radius:9px;background:#f7fbf7}
.batch-preview[hidden]{display:none!important}
.batch-preview-heading strong{font:700 12px Manrope,sans-serif;color:#2d4938}
.batch-preview-heading p{margin:5px 0 0;color:#65746b;font-size:10px;line-height:1.6}
.batch-preview-list{display:grid;gap:4px;max-height:132px;overflow:auto;margin:0;padding:0;list-style:none;color:#42554a;font-size:10px}
.batch-preview-list li{padding:4px 7px;border-radius:5px;background:#fff}
.batch-preview-list .batch-preview-more{color:#76837a;font-style:italic}
.headcount-mode-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}
.headcount-mode-bar p{margin:0;color:#78857d;font-size:10px}
.headcount-mode-bar button[aria-pressed=true]{background:#337f59;color:#fff}
.admin-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:15px;padding-top:12px;border-top:1px solid #edf1ed}
.admin-pagination-summary{color:#78857d;font-size:10px;white-space:nowrap}
.admin-pagination-pages{display:flex;align-items:center;gap:4px}
.admin-pagination-pages a,.admin-pagination-pages span,.admin-pagination-pages button{display:grid;place-items:center;min-width:31px;height:31px;padding:0 7px;border:1px solid #e1e8e2;border-radius:7px;background:#fff;color:#53645a;font:700 10px 'DM Sans',sans-serif;cursor:pointer}
.admin-pagination-pages a:hover,.admin-pagination-pages button:hover:not(:disabled):not(.is-current){border-color:#9dbca3;background:#f1f7f2;color:#28563d}
.admin-pagination-pages .is-current{border-color:#337f59;background:#337f59;color:#fff;cursor:default}
.admin-pagination-pages .is-disabled,.admin-pagination-pages button:disabled{color:#b5beb8;background:#f6f8f6;border-color:#e8ede9;cursor:not-allowed;opacity:.6}
.admin-pagination-pages .pagination-ellipsis{min-width:20px;border:0;background:transparent;cursor:default}
@media(max-width:1100px){.guard-dashboard-content .guard-layout{grid-template-columns:1fr}}
@media(max-width:850px){.guard-dashboard{grid-template-columns:1fr;gap:10px}.guard-sidebar{top:0;z-index:20;padding:7px 0;background:var(--paper)}.guard-sidebar nav{display:flex;gap:6px;overflow-x:auto;padding:6px}.guard-sidebar-link{flex:0 0 auto;width:auto;min-width:190px}.batch-preview{grid-template-columns:1fr}}
.tcard-visitor-section{margin-top:20px;padding-top:18px;border-top:1px solid #e7eee8}
.tcard-visitor-heading,.self-visitor-tcard-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.tcard-visitor-heading h3,.self-visitor-tcard-heading h2{margin:4px 0;color:#2d4636;font:700 16px/1.3 Manrope,sans-serif}
.tcard-visitor-heading p,.self-visitor-tcard-heading p{margin:3px 0 0;font-size:10px}
.tcard-visitor-grid{grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:11px}
.tcard-visitor-card{cursor:default}
.tcard-visitor-card:hover{transform:none;box-shadow:0 4px 15px rgba(22,163,74,.13)}
.tcard-no-visitors{margin:10px 0 0;padding:12px;border:1px dashed #dce5de;border-radius:8px;color:#738078;font-size:10px;text-align:center}
.tcard-no-visitors[hidden]{display:none!important}
.guestbook-quick-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.batch-actions .button:disabled{opacity:.45;cursor:not-allowed;transform:none}
.guard-layout .batch-panel{grid-column:1/-1}
.batch-title-row{cursor:pointer;list-style:none}
.batch-title-row::-webkit-details-marker{display:none}
.batch-title-row::after{content:"⌄";display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:8px;background:#eaf4ec;color:#245b37;font-size:17px;font-weight:800}
#guard-batch[open] .batch-title-row::after{content:"⌃"}
#guard-batch[open] .batch-title-row{margin-bottom:17px}
.self-visitor-tcard-section{margin-top:18px;padding:15px;border:1px solid #e0e9e2;border-radius:12px;background:#fff}
.self-visitor-tcard-grid{margin-top:12px}
.self-visitor-tcard{cursor:default}
.self-visitor-tcard:hover{border-color:#e1e9e3;background:#fff}
.self-visitor-active-card{grid-template-columns:60px minmax(0,1fr) auto}
.self-visitor-active-photo,.self-visitor-active-photo-fallback{display:grid;place-items:center;width:60px;height:74px;overflow:hidden;border-radius:7px;background:#e6f0e8;color:#285a3b;font:800 18px Manrope,sans-serif;object-fit:cover}
.self-visitor-active-photo[hidden],.self-visitor-active-photo-fallback[hidden]{display:none!important}
.self-visitor-active-card .button{grid-column:3;grid-row:1}
.self-visitor-active-card>div{grid-column:2;grid-row:1}
.self-visitor-active-card>img,.self-visitor-active-card>span{grid-column:1;grid-row:1}
@media(max-width:560px){.guestbook-quick-actions{flex-direction:column}.guestbook-quick-actions .button{width:100%}.tcard-visitor-heading,.self-visitor-tcard-heading{align-items:flex-start}.self-visitor-active-card{grid-template-columns:52px minmax(0,1fr)}.self-visitor-active-photo,.self-visitor-active-photo-fallback{width:52px;height:66px}.self-visitor-active-card .button{grid-column:1/-1;grid-row:2}.self-visitor-active-card>div{grid-column:2;grid-row:1}.self-visitor-active-card>img,.self-visitor-active-card>span{grid-column:1;grid-row:1}}
@media(max-width:560px){.self-service-brand{gap:6px;font-size:11px}}
@media(max-width:420px){.topbar{padding-right:12px;padding-left:12px}.brand{gap:7px;font-size:12px;letter-spacing:-.3px}.brand-mark{flex:0 0 29px;width:29px;height:29px;font-size:16px}.topbar-right{gap:7px}.user-chip{gap:5px;font-size:10px}.role-label{padding:3px 5px;font-size:8px}}
@media(max-width:560px){.headcount-mode-bar{align-items:stretch;flex-direction:column}.headcount-mode-bar .button{width:100%}.admin-pagination{align-items:flex-start;flex-direction:column}.admin-pagination-pages{width:100%;justify-content:center;flex-wrap:wrap}}
.movement-mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:4px;border:1px solid #e2e9e3;border-radius:9px;background:#f4f7f4}
.movement-mode-switch button{min-height:38px;border:0;border-radius:6px;background:transparent;color:#6e7b72;font-size:11px;font-weight:700}
.movement-mode-switch button[aria-pressed=true]{background:#fff;color:#28563d;box-shadow:0 1px 4px rgba(23,52,35,.1)}
.external-visitor-picker{display:flex;flex-direction:column;gap:9px}
.external-visitor-picker[hidden],.personnel-picker[hidden]{display:none!important}
.external-visitor-picker>label{display:flex;flex-direction:column;gap:6px;min-width:0;color:#526157;font-size:10px;font-weight:600}
.external-visitor-picker>label input{width:100%;height:42px;border:1px solid #dce4de;border-radius:8px;background:#fff;padding:9px 11px;color:var(--ink);font:12px 'DM Sans',sans-serif}
.external-visitor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.external-visitor-grid>label{display:flex;flex-direction:column;gap:6px;min-width:0;color:#526157;font-size:10px;font-weight:600}
.external-visitor-grid>label input{width:100%;height:40px;border:1px solid #dce4de;border-radius:8px;background:#fff;padding:9px 11px;color:var(--ink);font:12px 'DM Sans',sans-serif}
.external-visitor-grid>label:last-child:nth-child(odd){grid-column:1 / -1}
@media(max-width:560px){.external-visitor-grid{grid-template-columns:1fr}}
.external-visitor-lookup{min-height:26px;margin-top:-5px}
.external-visitor-suggestions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.external-visitor-suggestion{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0;padding:9px 11px;border:1px solid #dce7de;border-radius:8px;background:#f8fbf8;text-align:left;cursor:pointer}
.external-visitor-suggestion:hover,.external-visitor-suggestion:focus-visible{border-color:#8cad91;background:#f0f7f1}
.external-visitor-suggestion strong{overflow:hidden;max-width:100%;color:#294535;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.external-visitor-suggestion small{color:#78867c;font-size:9px}
.external-visitor-add-new{justify-self:start;max-width:100%;padding:8px 10px;border:1px dashed #c5d6c8;border-radius:7px;background:#fbfdfb;color:#387047;font:600 10px 'DM Sans',sans-serif;text-align:left;overflow-wrap:anywhere;cursor:pointer}
.external-visitor-add-new:hover,.external-visitor-add-new:focus-visible{border-color:#83a98a;background:#f0f7f1}
.visitor-new-hint{color:#9a6025}
.visitor-selected-hint{color:#387047;font-weight:600}
@media(max-width:560px){.movement-mode-switch button{font-size:10px;padding:7px 5px}.external-visitor-suggestions{grid-template-columns:1fr}}
.log-date-filter{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0 2px;color:#526157;font-size:11px;font-weight:700}
.log-date-filter input{width:min(220px,58%);height:39px;border:1px solid #dce4de;border-radius:7px;background:#fff;padding:0 10px;color:var(--ink);font:12px 'DM Sans',sans-serif}
.log-date-filter input:focus{outline:0;border-color:#77a68d;box-shadow:0 0 0 3px rgba(51,127,89,.09)}
.personnel-nameplate{display:block;width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:transform .15s,box-shadow .15s}
.personnel-nameplate:hover{transform:translateY(-1px);box-shadow:0 3px 9px rgba(30,56,42,.09)}
.personnel-nameplate:focus-visible{outline:3px solid rgba(55,127,88,.35);outline-offset:2px}
.movement-log-dialog{width:min(980px,calc(100vw - 30px));max-width:none;max-height:86vh;overflow:auto;padding:22px;border:1px solid #dfe7e1;border-radius:14px;background:#fff;color:var(--ink);box-shadow:0 24px 80px rgba(16,43,36,.24)}
.movement-log-dialog::backdrop{background:rgba(13,30,23,.55);backdrop-filter:blur(2px)}
.movement-log-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:17px}
.movement-log-header h2{font:700 19px/1.35 Manrope,sans-serif;letter-spacing:-.45px;margin:5px 0 2px;overflow-wrap:anywhere}
.movement-log-header p{margin:0;font-size:11px}
.movement-log-scroll{width:100%;overflow:auto}
.movement-log-table{min-width:700px}
.movement-log-table td{overflow-wrap:anywhere}
@media(max-width:560px){.log-date-filter{align-items:flex-start;flex-direction:column;gap:7px}.log-date-filter input{width:100%}.movement-log-dialog{width:calc(100vw - 20px);max-height:90vh;padding:17px 12px}.movement-log-header{gap:10px}.movement-log-header .button{flex:0 0 auto}}
.date-stepper{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:14px 0 10px}
.date-stepper input,.date-range-filter input{height:34px;border:1px solid #dce4de;border-radius:7px;background:#fff;padding:0 10px;color:var(--ink);font:12px 'DM Sans',sans-serif}
.date-stepper input:focus,.date-range-filter input:focus{outline:0;border-color:#77a68d;box-shadow:0 0 0 3px rgba(51,127,89,.09)}
.date-stepper .button:disabled{opacity:.45;cursor:not-allowed}
.date-stepper-label{margin-left:4px;color:#87938c;font-size:10px}
.date-stepper-label.is-past{color:#9a6025;font-weight:600}
.date-range-filter{display:flex;align-items:flex-end;flex-wrap:wrap;gap:10px;margin:0 0 14px;padding-bottom:12px;border-bottom:1px solid #eef2ef}
.date-range-filter label{display:flex;flex-direction:column;gap:5px;color:#526157;font-size:10px;font-weight:700}
.date-range-filter .muted{font-size:10px;padding-bottom:9px}
.movement-log-truncated{margin:0 0 10px;color:#9a6025;font-size:10px}
@media(max-width:560px){.date-stepper input{flex:1;min-width:0}.date-stepper-label{width:100%;margin-left:0}.date-range-filter label{flex:1;min-width:calc(50% - 10px)}.date-range-filter input{width:100%}}

/* Satpam mobile layout: keep category navigation and controls easy to reach. */
@media(max-width:560px){
  .topbar-right{gap:6px;min-width:0}
  .user-chip{max-width:45vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .guard-dashboard,.guard-dashboard-content,.guard-category-panel{min-width:0}
  .guard-dashboard{gap:8px}
  .guard-sidebar{position:sticky;top:0;z-index:30;margin:0;padding:5px 0;background:var(--paper)}
  .guard-sidebar nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;overflow:visible;padding:5px}
  .guard-sidebar-link{display:flex;align-items:center;justify-content:flex-start;gap:5px;width:100%;min-width:0;min-height:58px;padding:6px 4px}
  .guard-sidebar-number{width:22px;height:22px;flex:0 0 22px;border-radius:6px;font-size:8px}
  .guard-sidebar-link>span:nth-child(2){min-width:0}
  .guard-sidebar-link strong{font-size:9px;line-height:1.25;overflow-wrap:anywhere}
  .guard-sidebar-link small{display:none}
  .guard-dashboard-content{gap:10px}
  .guard-dashboard-content .guard-layout{grid-template-columns:minmax(0,1fr);gap:10px}
  .entry-panel,.log-panel,.batch-panel,.headcount-panel{min-width:0;padding:15px 12px;border-radius:11px}
  .entry-panel .panel-title-row,.log-panel .panel-title-row{align-items:flex-start;gap:8px}
  .entry-panel .panel-title-row h2,.log-panel .panel-title-row h2,.batch-panel .panel-title-row h2,.headcount-panel .panel-title-row h2{font-size:16px}
  .entry-form{gap:15px;margin-top:16px}
  .entry-form label,.personnel-picker>label{font-size:11px}
  .entry-form input:not([type=radio]),.entry-form select,.personnel-picker .department-filter{min-width:0;font-size:12px}
  .entry-form select.input-lg{height:128px}
  .entry-form select option{padding:7px 5px;white-space:normal}
  .status-options{gap:7px}
  .status-options .status-option{min-height:72px;padding:9px 7px;gap:7px}
  .status-options .status-icon{width:34px;height:34px;flex:0 0 34px;border-radius:9px;font-size:20px}
  .status-options .status-option strong{font-size:17px}
  .status-options .status-option small{font-size:9px}
  .personnel-detail{padding:10px}
  .personnel-detail-head{align-items:flex-start;flex-direction:column}
  .personnel-last-status{align-items:flex-start}
  .personnel-detail-meta{grid-template-columns:1fr;gap:8px}
  .entry-form .button-large{min-height:49px}
  .log-panel{min-height:0}
  .log-date-filter{align-items:stretch}
  .log-date-filter input{width:100%;max-width:none}
  .guard-sidebar-link:focus-visible,.entry-form button:focus-visible,.headcount-panel button:focus-visible{outline:3px solid rgba(55,127,88,.35);outline-offset:2px}
  .page-heading p strong{overflow-wrap:anywhere}
  .guard-dashboard button,.guard-dashboard input:not([type=radio]),.guard-dashboard select{min-height:43px}
  .guard-dashboard .headcount-person input,.guard-dashboard .batch-person input{min-height:19px}
}

/* Emergency review keeps IN and OUT rosters in separate, scannable groups. */
.headcount-list{display:block;max-height:none;padding:0;border:0;overflow:visible}
.headcount-group{padding:12px;border:1px solid #e5ebe6;border-radius:10px;background:#fbfcfb}
.headcount-group+.headcount-group{margin-top:12px}
.headcount-group-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}
.headcount-group-heading h3{margin:0;color:#347249;font:800 12px Manrope,sans-serif;letter-spacing:.2px}
.headcount-group-heading>span{color:#77847c;font-size:9px;font-weight:700;white-space:nowrap}
.headcount-group-out .headcount-group-heading h3{color:#a66524}
.headcount-group-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.headcount-group-empty{grid-column:1/-1;margin:0;padding:12px;border-radius:8px;background:#fff;color:#839087;font-size:10px;text-align:center}
.headcount-person.headcount-missing-row{border-color:#efc9c3;background:#fff5f3}
.headcount-person.headcount-missing-row .headcount-person-copy strong{color:#9b3939}
.headcount-outcome{font-size:8px!important;font-weight:800;letter-spacing:.25px;text-align:right;white-space:normal!important}
.headcount-outcome.is-missing{color:#a43d36!important}
.headcount-outcome.is-found{color:#347249!important}
.hc-missing{background:#fff1ef;border-color:#f0d4d0}
.hc-missing strong{color:#a43d36}
@media(max-width:850px){.headcount-group-list{grid-template-columns:1fr}}
@media(max-width:560px){.headcount-group{padding:9px}.headcount-group-list{grid-template-columns:1fr;gap:6px}.headcount-person{min-height:63px;padding:9px;gap:8px}.headcount-person-copy small{font-size:9px}.headcount-person-state{max-width:112px}.headcount-outcome{text-align:right}.headcount-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
.status-list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:8px 0 5px}
.status-list-toolbar .monitoring-hint{margin:0;max-width:720px}
.status-list-toolbar .button{flex:0 0 auto}
.status-list-toolbar .button[aria-pressed=true]{background:var(--green);color:#fff}
@media(max-width:640px){.status-list-toolbar{align-items:stretch;flex-direction:column;gap:9px}.status-list-toolbar .button{width:100%}}

/* Security Guard virtual T-Card rack */
.tcard-rack-panel{grid-column:1/-1;padding:22px}
.tcard-rack-header{display:flex;align-items:center;justify-content:space-between;gap:16px}
.tcard-rack-header h2{margin-top:5px}
.tcard-rack-header p{margin:5px 0 0;font-size:11px}
.tcard-rack-total{display:grid;place-items:center;min-width:64px;padding:9px 12px;border:1px solid #dce8de;border-radius:12px;background:#f2f8f3}
.tcard-rack-total strong{font:800 24px/1 Manrope,sans-serif;color:#276d43}
.tcard-rack-total small{margin-top:4px;color:#718078;font-size:8px;font-weight:800;letter-spacing:1px}
.tcard-action-bar{display:grid;gap:12px;margin-top:18px}
.tcard-search-label{display:flex;flex-direction:column;gap:6px;color:#526157;font-size:10px;font-weight:700}
.tcard-search-label input{height:43px;width:100%;padding:0 12px;border:1px solid #dce4de;border-radius:8px;background:#fff;color:var(--ink);font:12px 'DM Sans',sans-serif}
.tcard-search-label input:focus{outline:0;border-color:#77a68d;box-shadow:0 0 0 3px rgba(51,127,89,.09)}
.tcard-filter-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.tcard-filter-tabs button{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;min-height:45px;padding:9px 11px;border:1px solid #e1e8e2;border-radius:8px;background:#f7f9f7;color:#53645a;font-size:10px;font-weight:700;text-align:left}
.tcard-filter-tabs button span{display:grid;place-items:center;min-width:25px;height:25px;padding:0 6px;border-radius:20px;background:#e7ece8;color:#54665a;font-size:10px;font-weight:800}
.tcard-filter-tabs button[data-tcard-filter=IN] span{background:#e2f4e7;color:#287443}
.tcard-filter-tabs button[data-tcard-filter=OUT] span{background:#fee9e7;color:#a93636}
.tcard-filter-tabs button.is-active{border-color:#77a68d;background:#edf6ef;color:#245b37;box-shadow:0 0 0 2px rgba(55,127,88,.07)}
.tcard-filter-tabs button[data-tcard-filter=IN].is-active{border-color:#16a34a;background:#eaf7ed;color:#176534}
.tcard-filter-tabs button[data-tcard-filter=OUT].is-active{border-color:#dc6262;background:#fff1f0;color:#a93636}
.tcard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:16px;margin-top:16px}
.tcard-card{display:flex;flex-direction:column;min-width:0;overflow:hidden;padding:0;border:2px solid #64748b;border-radius:11px;background:#fff;color:var(--ink);text-align:left;box-shadow:0 3px 12px rgba(20,43,30,.07);transition:transform .16s,box-shadow .16s,border-color .16s}
.tcard-card.is-in{border-color:#16a34a;box-shadow:0 4px 15px rgba(22,163,74,.13)}
.tcard-card.is-out{border-color:#dc6262;box-shadow:0 4px 15px rgba(220,98,98,.1)}
.tcard-card:hover,.tcard-card:focus-visible{transform:translateY(-2px);box-shadow:0 8px 20px rgba(20,43,30,.15);outline:0}
.tcard-card:focus-visible{outline:3px solid rgba(55,127,88,.4);outline-offset:2px}
.tcard-photo-frame,.tcard-modal-photo-frame{position:relative;display:block;overflow:hidden;aspect-ratio:3/4;background:#e9eeea}
.tcard-photo{display:block;width:100%;height:100%;object-fit:cover;object-position:center 38%;background:#e9eeea}
.tcard-avatar{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden;background:linear-gradient(145deg,rgba(255,255,255,.2),transparent 45%),var(--avatar-color);color:#fff;font:800 37px Manrope,sans-serif;letter-spacing:1px;text-shadow:0 2px 9px rgba(0,0,0,.18)}
.tcard-avatar::before{content:"";position:absolute;width:74%;aspect-ratio:1;border:1px solid rgba(255,255,255,.38);border-radius:50%;background:rgba(255,255,255,.1)}
.tcard-avatar{z-index:0}
.tcard-avatar:not([hidden]){display:grid}
.tcard-avatar[hidden],.tcard-photo[hidden]{display:none!important}
.tcard-status-badge{position:absolute;top:9px;right:9px;z-index:2;padding:6px 10px;border:1px solid rgba(255,255,255,.65);border-radius:20px;background:#16a34a;color:#fff;font-size:10px;font-weight:900;letter-spacing:.8px;box-shadow:0 2px 8px rgba(0,0,0,.18)}
.tcard-status-badge.badge-out{background:#dc2626}
.tcard-card-info{display:flex;flex-direction:column;gap:3px;min-height:99px;padding:10px 11px}
.tcard-card-info strong{display:-webkit-box;overflow:hidden;color:#26382e;font-size:12px;font-weight:800;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}
.tcard-card-info small{overflow:hidden;color:#718078;font-size:9px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
.tcard-card-info .tcard-last-event{margin-top:auto;color:#347249;font-size:9px;font-weight:800}
.tcard-card.is-out .tcard-card-info .tcard-last-event{color:#a94444}
.tcard-card[hidden]{display:none!important}
.tcard-empty-state,.tcard-no-results{grid-column:1/-1;display:flex;align-items:center;flex-direction:column;gap:7px;padding:32px 15px;border:1px dashed #dce5de;border-radius:10px;background:#fafcfb;color:#738078;text-align:center}
.tcard-empty-state>span{font-size:25px;color:#82a28c}
.tcard-empty-state strong{color:#3e5145;font-size:13px}
.tcard-empty-state small{font-size:10px}
.tcard-no-results[hidden]{display:none!important}
.guard-legacy-entry{min-width:0}
.guard-legacy-entry>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border:1px solid #dfe7e1;border-radius:11px;background:#fff;cursor:pointer;list-style:none}
.guard-legacy-entry>summary::-webkit-details-marker,.guard-log-summary::-webkit-details-marker{display:none}
.guard-legacy-entry>summary strong,.guard-legacy-entry>summary small{display:block}
.guard-legacy-entry>summary strong{color:#294535;font-size:12px}
.guard-legacy-entry>summary small{margin-top:3px;color:#87938c;font-size:9px}
.guard-legacy-entry[open]>summary{border-radius:11px 11px 0 0;background:#f7faf7}
.guard-legacy-entry>.entry-panel{margin-top:0;border-radius:0 0 11px 11px}
.guard-log-details{min-width:0;min-height:0}
.guard-log-summary{cursor:pointer;list-style:none}
.guard-log-summary>div{min-width:0}
.guard-log-summary .log-person-label{overflow-wrap:anywhere}
.tcard-verification-dialog{width:min(760px,calc(100vw - 28px));max-width:none;max-height:92vh;overflow:auto;padding:22px;border:1px solid #dfe7e1;border-radius:15px;background:#fff;color:var(--ink);box-shadow:0 24px 80px rgba(16,43,36,.24)}
.tcard-verification-dialog::backdrop{background:rgba(13,30,23,.62);backdrop-filter:blur(3px)}
.tcard-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:15px}
.tcard-modal-header p{margin:5px 0 0;color:#78857d;font-size:11px}
.tcard-modal-close{display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:9px;background:#eef3ef;color:#43574a;font-size:25px;line-height:1}
.tcard-modal-body{display:grid;grid-template-columns:minmax(200px,.8fr) minmax(0,1.2fr);gap:22px;align-items:start}
.tcard-modal-photo-frame{border-radius:10px;border:1px solid #e0e7e2;box-shadow:0 4px 16px rgba(20,43,30,.1)}
.tcard-modal-photo-frame img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 38%}
.tcard-modal-photo-frame img[hidden],.tcard-modal-photo-frame .tcard-avatar[hidden]{display:none!important}
.tcard-modal-photo-frame .tcard-status-badge{font-size:12px;padding:8px 13px}
.tcard-modal-details h2{margin:0;color:#26382e;font:800 22px/1.25 Manrope,sans-serif;overflow-wrap:anywhere}
.tcard-modal-number{margin:5px 0 14px;color:#78857d;font-size:12px;font-weight:700}
.tcard-status-text.is-in{color:#287443!important}
.tcard-status-text.is-out{color:#a93636!important}
.tcard-modal-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:15px}
.tcard-modal-meta>div{display:flex;flex-direction:column;gap:4px;min-width:0;padding:9px;border:1px solid #e7ece8;border-radius:8px;background:#f8faf8}
.tcard-modal-meta>div:last-child{grid-column:1/-1}
.tcard-modal-meta span{color:#89948d;font-size:8px;font-weight:800;letter-spacing:.8px}
.tcard-modal-meta strong{color:#3e5145;font-size:11px;overflow-wrap:anywhere}
.tcard-modal-details>label{display:flex;flex-direction:column;gap:6px;color:#526157;font-size:10px;font-weight:700}
.tcard-modal-details textarea{width:100%;resize:vertical;min-height:76px;padding:9px 11px;border:1px solid #dce4de;border-radius:8px;color:var(--ink);font:12px 'DM Sans',sans-serif}
.tcard-modal-details textarea:focus{outline:0;border-color:#77a68d;box-shadow:0 0 0 3px rgba(51,127,89,.09)}
.tcard-confirm-button{width:100%;min-height:49px;margin-top:12px;font-size:13px}
.tcard-modal-error{margin:10px 0 0;padding:9px 10px;border:1px solid #efcfcb;border-radius:7px;background:#fff3f1;color:#a43d36;font-size:10px}
.tcard-modal-error[hidden]{display:none!important}
@media(max-width:850px){.tcard-grid{grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:12px}.tcard-modal-body{grid-template-columns:minmax(180px,.8fr) minmax(0,1.2fr);gap:16px}}
@media(max-width:560px){
  .tcard-rack-panel{padding:15px 12px}
  .tcard-rack-header{align-items:flex-start;gap:8px}
  .tcard-rack-header h2{font-size:16px}
  .tcard-rack-header p{font-size:10px;line-height:1.45}
  .tcard-rack-total{min-width:51px;padding:7px 8px}
  .tcard-rack-total strong{font-size:20px}
  .tcard-action-bar{gap:9px;margin-top:13px}
  .tcard-filter-tabs{grid-template-columns:1fr;gap:5px}
  .tcard-filter-tabs button{min-height:42px;padding:7px 9px;font-size:10px}
  .tcard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:11px}
  .tcard-card{border-radius:9px}
  .tcard-card-info{min-height:91px;padding:8px 8px}
  .tcard-card-info strong{font-size:10px}
  .tcard-card-info small,.tcard-card-info .tcard-last-event{font-size:8px}
  .tcard-status-badge{top:6px;right:6px;padding:5px 7px;font-size:8px}
  .tcard-modal-body{grid-template-columns:1fr;gap:14px}
  .tcard-modal-photo-frame{width:min(230px,75%);margin:0 auto}
  .tcard-verification-dialog{width:calc(100vw - 18px);max-height:94vh;padding:15px 12px}
  .tcard-modal-header{margin-bottom:11px}
  .tcard-modal-details h2{font-size:18px}
  .guard-legacy-entry>summary{padding:12px}
  .guard-legacy-entry>summary strong{font-size:11px}
  .guard-log-summary{align-items:flex-start;gap:8px}
}

/* Visitor photo capture & preview */
.visitor-detail-info-group{display:flex;align-items:center;gap:11px}
.visitor-detail-avatar{width:38px;height:38px;border-radius:6px;object-fit:cover;border:1px solid #c7d6cb;flex-shrink:0;background:#fff}
.visitor-photo-section{margin-top:14px}
.visitor-photo-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px;font-size:12px;font-weight:600;color:#35423b}
.visitor-photo-card{display:flex;align-items:center;gap:14px;padding:12px 14px;background:#f8faf8;border:1px dashed #cdd9d0;border-radius:10px}
.visitor-photo-thumb-wrap{width:96px;height:96px;min-width:96px;border-radius:8px;border:1px solid #d0dbd3;background:#182520;overflow:hidden;display:flex;align-items:center;justify-content:center;position:relative}
.visitor-id-thumb-wrap{width:128px;min-width:128px;height:86px}
.visitor-photo-thumb-wrap video{width:100%;height:100%;object-fit:cover;display:block}
.visitor-photo-thumb-wrap img{width:100%;height:100%;object-fit:cover;display:block}
.visitor-photo-thumb-wrap [hidden],.visitor-photo-empty[hidden]{display:none!important}
.visitor-photo-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#8a968f;font-size:10px;text-align:center;padding:4px;width:100%;height:100%;background:#fff}
.visitor-photo-icon{font-size:20px;line-height:1}
.visitor-photo-actions{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}
.visitor-photo-buttons{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.visitor-photo-actions .field-hint{margin:0;font-size:10px;line-height:1.35}
@media(max-width:560px){
  .visitor-photo-card{flex-direction:column;align-items:flex-start}
}

/* Clickable location cards & separated IN/OUT personnel status lists */
.location-card.is-clickable{cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.location-card.is-clickable:hover{transform:translateY(-2px);border-color:#84b396;box-shadow:0 14px 32px rgba(24,53,40,.11)}
.location-card.is-clickable:focus-visible{outline:3px solid rgba(55,127,88,.35);outline-offset:2px}
.location-card.is-clickable:hover .card-foot span:last-child{color:var(--green);font-weight:700}

.guard-status-controls{display:flex;flex-direction:column;gap:9px;margin:14px 0 12px}
.guard-status-date-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:9px}
.guard-status-date-row .log-date-filter{margin:0;flex:1;min-width:190px}
.guard-status-mode-switch{flex:1;min-width:210px}
.guard-status-search{width:100%;height:38px;border:1px solid #dce4de;border-radius:8px;background:#fff;padding:0 11px;color:var(--ink);font:12px 'DM Sans',sans-serif}
.guard-status-search:focus{outline:0;border-color:#77a68d;box-shadow:0 0 0 3px rgba(51,127,89,.09)}
.location-roster-toolbar{margin:0 0 14px}

.status-split-grid{display:grid;grid-template-columns:1fr;gap:12px}
.location-roster-dialog .status-split-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.status-split-section{margin:0!important}
.status-split-list{display:flex;flex-direction:column;gap:7px;max-height:360px;overflow:auto;padding-right:2px}
.status-split-item{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:9px 11px;border:1px solid #e2e8e3;border-left-width:4px;border-radius:8px;background:#fff;text-align:left;cursor:pointer;transition:transform .12s,box-shadow .12s,background .12s}
.status-split-item:hover{transform:translateY(-1px);box-shadow:0 3px 9px rgba(24,53,40,.08)}
.status-split-item.is-in{background:#eaf6ed;border-color:#cfe6d4;border-left-color:#4d9861}
.status-split-item.is-in:hover{background:#e1f2e6}
.status-split-item.is-out{background:#fff1ef;border-color:#f5d3cf;border-left-color:#dc3545}
.status-split-item.is-out:hover{background:#ffe8e5}
.status-split-copy{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.status-split-copy strong{font-size:12px;color:#24382c;overflow-wrap:anywhere}
.status-split-item.is-in .status-split-copy strong{color:#245b37}
.status-split-item.is-out .status-split-copy strong{color:#9e2319}
.status-split-copy small{font-size:10px;color:#6e7d74;overflow-wrap:anywhere;line-height:1.35}
.status-split-note{color:#526157!important;font-style:italic}
.status-split-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:0 0 auto}
.status-split-meta small{font-size:10px;color:#66736c;font-variant-numeric:tabular-nums;white-space:nowrap}
@media(max-width:780px){
  .location-roster-dialog .status-split-grid{grid-template-columns:1fr}
}

/* ===== Paperless Journey Management Plan (JMP) & Electronic Signature ===== */
.jmp-summary-strip{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:22px}
.jmp-stat-card{min-height:84px;padding:15px 18px}
.jmp-stat-draft{background:#f7f9f7;border-color:#dee6e0}
.jmp-stat-draft .summary-number{color:#495950}

.jmp-dashboard{grid-template-columns:230px minmax(0,1fr);gap:20px}
.jmp-sidebar-card{display:flex;flex-direction:column;gap:10px}
.jmp-sidebar-top{display:contents}
.jmp-sidebar-heading{font-size:9px;font-weight:800;letter-spacing:1.2px;color:#6c7b72;padding:0 6px;order:1}
.jmp-sidebar nav{padding:8px;border:1px solid #dce5de;border-radius:13px;background:#fff;box-shadow:0 6px 20px rgba(24,53,40,.035);order:2}
.jmp-sidebar-divider{height:1px;background:#e5ece7;margin:4px 4px}
.jmp-new-btn{min-height:42px;border-radius:10px;font-size:12px;box-shadow:0 6px 16px rgba(28,96,73,.16);order:3}

.jmp-wizard-form{display:flex;flex-direction:column;gap:16px}
.jmp-status-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0;padding:15px 20px;border-radius:12px;border:1px solid #cce0d1;border-left:5px solid var(--green);background:#f3f9f5;color:#1e4d32}
.jmp-status-banner.status-submitted{background:#fff9ee;border-color:#f2d49b;border-left-color:#d88b28;color:#7c4a03}
.jmp-status-banner.status-approved{background:#eaf6ed;border-color:#bfe3c8;border-left-color:#2b824c;color:#1b5e32}
.jmp-banner-info{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.jmp-banner-title{display:block;font:700 15px/1.3 Manrope,sans-serif;color:#183324}
.jmp-banner-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:0 0 auto}
.jmp-banner-actions .status-tag{padding:6px 12px;font-size:10px;letter-spacing:.7px}

.jmp-step-panel{padding:24px 26px}
.jmp-panel-header{align-items:flex-start;padding-bottom:16px;margin-bottom:18px;border-bottom:1px solid #e7ede9}
.jmp-panel-header p.muted{margin:4px 0 0;font-size:12px}

.jmp-section-box{margin:0 0 18px;padding:18px 20px;border:1px solid #dde6df;border-radius:12px;background:#f9fbf9}
.jmp-subhead{display:flex;align-items:center;gap:9px;margin:0 0 14px;font:800 12px/1.3 Manrope,sans-serif;letter-spacing:.05em;color:#1b3c2a;text-transform:uppercase;padding-bottom:10px;border-bottom:1px solid #dce6df}
.jmp-sec-badge{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 7px;border-radius:6px;background:var(--green);color:#fff;font-size:11px;font-weight:800;letter-spacing:0}
.jmp-subhead-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid #dce6df}
.jmp-subhead-row .jmp-subhead{margin:0;padding:0;border:0}

.jmp-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 16px}
.jmp-grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 16px}
.jmp-span-2{grid-column:span 2}

.jmp-field,.jmp-section-box>div>label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:#2f3e35;min-width:0}
.jmp-section-box input:not([type=checkbox]):not([type=radio]),.jmp-section-box select{width:100%;height:40px;border:1px solid #d4dfd7;border-radius:8px;background:#fff;padding:0 12px;font:12px 'DM Sans',sans-serif;color:var(--ink);transition:border-color .15s,box-shadow .15s}
.jmp-section-box input:not([type=checkbox]):not([type=radio]):focus,.jmp-section-box select:focus{outline:0;border-color:#4d916c;box-shadow:0 0 0 3px rgba(55,127,88,.12)}

/* Fit to Drive & Emergency Kit readiness cards */
.jmp-readiness-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:14px;margin-top:16px;padding-top:14px;border-top:1px dashed #d7e2da}
.jmp-readiness-card{display:flex;flex-direction:column;gap:8px}
.jmp-readiness-label{font-size:11px;font-weight:700;color:#415449;text-transform:uppercase;letter-spacing:.04em}
.jmp-choice-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}
.jmp-choice-pill{position:relative;display:flex!important;flex-direction:row!important;align-items:center;gap:11px;padding:11px 13px;border:1px solid #d6e2d9;border-radius:10px;background:#fff;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}
.jmp-choice-pill:hover{border-color:#9fc2ab;background:#f5faf6}
.jmp-choice-pill>input{position:absolute;opacity:0;pointer-events:none}
.jmp-choice-icon{display:grid;place-items:center;width:32px;height:32px;flex:0 0 32px;border-radius:8px;background:#edf3ef;color:#556b5e;font-size:15px;font-weight:800}
.jmp-choice-pill strong{display:block;font-size:12px;font-weight:800;color:#22362a}
.jmp-choice-pill small{display:block;font-size:10px;font-weight:400;color:#738279;margin-top:1px;line-height:1.3}
.jmp-choice-fit:has(input:checked),.jmp-choice-kit:has(input:checked){border-color:#479465;background:#eaf6ee;box-shadow:0 0 0 2px rgba(55,127,88,.12)}
.jmp-choice-fit:has(input:checked) .jmp-choice-icon,.jmp-choice-kit:has(input:checked) .jmp-choice-icon{background:#2d7d4f;color:#fff}
.jmp-choice-notfit:has(input:checked){border-color:#d45b52;background:#fff1ef;box-shadow:0 0 0 2px rgba(212,91,82,.14)}
.jmp-choice-notfit:has(input:checked) .jmp-choice-icon{background:#c53b32;color:#fff}

/* Pre-journey checklist cards */
.jmp-check-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.jmp-checklist-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.jmp-check-card{position:relative;display:flex!important;flex-direction:row!important;align-items:center;gap:11px;padding:11px 13px;border:1px solid #d8e3da;border-radius:10px;background:#fff;cursor:pointer;transition:border-color .14s,background .14s,transform .12s}
.jmp-check-card:hover{border-color:#9bc0a7;transform:translateY(-1px)}
.jmp-check-card>input.jmp-precheck-input{position:absolute;opacity:0;pointer-events:none}
.jmp-check-box{display:grid;place-items:center;width:24px;height:24px;flex:0 0 24px;border:2px solid #c3d2c7;border-radius:6px;background:#f6f9f6;color:transparent;font-size:13px;font-weight:800;transition:all .14s}
.jmp-check-text{display:flex;flex-direction:column;gap:1px;min-width:0}
.jmp-check-text strong{font-size:12px;font-weight:700;color:#23372b}
.jmp-check-text small{font-size:10px;font-weight:400;color:#7b8980}
.jmp-check-card:has(input:checked){border-color:#63a87b;background:#eef8f1}
.jmp-check-card:has(input:checked) .jmp-check-box{border-color:#2b7a4b;background:#2b7a4b;color:#fff}
.jmp-check-card:has(input:checked) .jmp-check-text strong{color:#1b4f30}

/* Editable tables (Risk Assessment & Route Checkpoints) */
.jmp-table-wrap{margin-top:4px;border:1px solid #dce5de;border-radius:10px;background:#fff;overflow:auto}
.jmp-edit-table{min-width:640px}
.jmp-edit-table th{background:#f2f6f3;padding:10px 12px;font-size:10px;color:#4e6055}
.jmp-edit-table td{padding:8px 10px;vertical-align:middle}
.jmp-row-num{text-align:center;font-weight:800;color:#3d5446;background:#f9fbf9}
.jmp-table-input,.jmp-edit-table input[type=text]{width:100%!important;height:36px!important;font-size:12px!important;padding:0 10px!important;border-radius:7px!important}
.jmp-table-select,.jmp-edit-table select{width:100%!important;height:36px!important;font-size:12px!important;font-weight:700!important;padding:0 9px!important;border-radius:7px!important}

/* Signature pad */
.jmp-signature-box{background:#f5faf6;border-color:#c6ddd0}
.jmp-dual-sig-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.jmp-sig-card{display:flex;flex-direction:column;gap:9px;padding:13px 14px;border:1px solid #d1e2d7;border-radius:11px;background:#fff}
.jmp-sig-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.jmp-sig-card-head strong{display:block;font-size:12px;color:#1d3d2b}
.jmp-sig-card-head small{display:block;font-size:10px;color:#6f7f75;margin-top:2px}
.jmp-signature-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.jmp-party-chief-info{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:12px;padding:10px 14px;border-radius:9px;border:1px solid #cfe2d5;background:#eaf5ed;font-size:11px;color:#214b33}
.signature-pad-wrap{position:relative;border:2px dashed #7ca88d;border-radius:11px;background:#fff;padding:6px;touch-action:none;overflow:hidden}
.signature-canvas{display:block;width:100%;height:165px;background:radial-gradient(#e4ece7 1px,transparent 1px) 0 0/16px 16px,#fff;border-radius:8px;cursor:crosshair;touch-action:none}
.signature-pad-Water{position:absolute;right:14px;bottom:10px;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#b2c2b8;pointer-events:none}
.signature-saved-preview{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:10px;padding:10px 14px;border-radius:9px;background:#e9f6ed;border:1px solid #c3e0cb}
.signature-saved-preview img{max-width:min(100%,320px);max-height:56px;object-fit:contain;object-position:left center;border:1px solid #cbe0d1;border-radius:6px;background:#fff;padding:4px}

.jmp-safety-note{padding:12px 15px;border-radius:9px;border:1px solid #f0d8a8;background:#fffaf0;color:#784f0d;font-size:11px;line-height:1.5}

.jmp-step-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:20px;padding-top:16px;border-top:1px solid #e1e8e3}
.jmp-submit-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.jmp-row-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}

.jmp-supervisor-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:14px 0 12px}
.jmp-filter-tabs,.jmp-driver-filter-tabs{flex:1;min-width:300px;grid-template-columns:repeat(4,minmax(0,1fr))}
.jmp-supervisor-toolbar .guard-status-search{flex:1;min-width:240px;max-width:420px}

.jmp-approval-dialog{width:min(960px,95vw);max-height:90vh}
.jmp-modal-head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.jmp-approval-body{display:flex;flex-direction:column;gap:14px;max-height:calc(90vh - 110px);overflow:auto;padding-right:4px}
.jmp-summary-cards{display:flex;flex-direction:column;gap:12px}
.jmp-summary-card{padding:13px 15px;border:1px solid #dce5de;border-radius:10px;background:#f8fbf9}
.jmp-summary-card h4{margin:0 0 10px;font-size:12px;font-weight:800;color:#1d422d;text-transform:uppercase;letter-spacing:.04em}
.jmp-summary-kv-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px 14px}
.jmp-kv{display:flex;flex-direction:column;gap:2px}
.jmp-kv-label{font-size:10px;color:#68776e;text-transform:uppercase;letter-spacing:.03em}
.jmp-kv-val{font-size:12px;color:#1f3126;overflow-wrap:anywhere}
.jmp-check-pill-list{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.jmp-mini-table{margin-top:8px;font-size:11px}
.jmp-mini-table th,.jmp-mini-table td{padding:6px 8px}
.jmp-driver-sig-preview{display:block;max-height:80px;max-width:280px;border:1px solid #cfe0d4;border-radius:7px;background:#fff;padding:6px;margin-bottom:6px}
.tag-muted{background:#edf1ee;color:#4f5e55}

@media(max-width:960px){
  .jmp-summary-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:16px}
  .jmp-dashboard{grid-template-columns:1fr;gap:14px}
  .jmp-readiness-grid,.jmp-dual-sig-grid{grid-template-columns:1fr}
  .jmp-grid-4,.jmp-grid-3,.jmp-checklist-grid,.jmp-summary-kv-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .jmp-span-2{grid-column:span 2}
}

@media(max-width:850px){
  /* Prevent JMP sidebar from sticking & blocking half of the mobile viewport */
  .guard-sidebar.jmp-sidebar{position:static;top:auto;padding:0;border:0;background:transparent;box-shadow:none}
  .jmp-sidebar-card{gap:8px}
  .jmp-sidebar-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
  .jmp-sidebar-heading{padding:0;order:0;font-size:10px}
  .jmp-new-btn{order:0;width:auto!important;min-height:36px;padding:0 13px;font-size:11px}
  .jmp-sidebar nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:6px;padding:7px;overflow:visible}
  .jmp-sidebar .guard-sidebar-link{min-width:0;min-height:46px;padding:8px 10px;gap:8px}
  .jmp-sidebar .guard-sidebar-number{width:24px;height:24px;font-size:10px}
  .jmp-sidebar .guard-sidebar-link strong{font-size:11px;line-height:1.2}
  .jmp-sidebar .guard-sidebar-link small{font-size:9px;margin-top:1px}
  .jmp-sidebar-divider{display:none}
}

@media(max-width:640px){
  .jmp-summary-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .jmp-stat-card{min-height:68px;padding:11px 12px}
  .jmp-stat-card .summary-number{font-size:21px}
  .jmp-stat-card .summary-caption{font-size:10px}

  .jmp-sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr))}
  .jmp-sidebar nav .guard-sidebar-link:last-child:nth-child(even){grid-column:span 2}

  .jmp-status-banner{flex-direction:column;align-items:stretch;padding:13px 14px;gap:10px}
  .jmp-banner-actions{width:100%;justify-content:flex-start}
  .jmp-banner-actions .button{flex:1 1 auto;justify-content:center}

  .jmp-step-panel{padding:15px 13px}
  .jmp-panel-header{flex-direction:column;align-items:flex-start;gap:8px;padding-bottom:12px;margin-bottom:14px}
  .jmp-panel-header .step-badge,.jmp-panel-header>.button{align-self:flex-start}
  .jmp-panel-header>.button{width:100%}

  .jmp-section-box{padding:13px 12px;margin-bottom:14px}
  .jmp-subhead-row{flex-direction:column;align-items:flex-start;gap:8px}
  .jmp-check-actions{width:100%;justify-content:space-between}

  .jmp-grid-4,.jmp-grid-3,.jmp-checklist-grid,.jmp-summary-kv-grid{grid-template-columns:1fr;gap:11px}
  .jmp-span-2{grid-column:span 1}

  /* Prevent iOS/Android auto-zoom on input focus and improve touch targets */
  .jmp-section-box input:not([type=checkbox]):not([type=radio]),.jmp-section-box select{height:43px;font-size:15px;padding:0 12px}
  .jmp-choice-row{grid-template-columns:1fr}

  /* Convert wide editable tables (Risk & Checkpoint) into clean stacked mobile cards */
  .jmp-table-wrap{border:0;background:transparent;overflow:visible}
  .jmp-edit-table{min-width:0!important;width:100%;display:block}
  .jmp-edit-table thead{display:none}
  .jmp-edit-table tbody{display:flex;flex-direction:column;gap:10px}
  .jmp-edit-table tr{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid #d5e1d8;border-radius:10px;background:#fff;box-shadow:0 2px 8px rgba(20,50,35,.04)}
  .jmp-edit-table td{display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:0!important;border:0!important;text-align:left!important;background:transparent!important}
  .jmp-edit-table td::before{content:attr(data-label);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#556b5e}
  .jmp-edit-table td.jmp-row-num{flex-direction:row;align-items:center;justify-content:space-between;padding-bottom:6px!important;margin-bottom:2px;border-bottom:1px dashed #e2ebe5!important;font-size:12px;color:#1d452f}
  .jmp-table-input,.jmp-edit-table input[type=text],.jmp-table-select,.jmp-edit-table select{height:41px!important;font-size:14px!important}

  /* Convert Driver & Supervisor JMP History tables into stacked mobile cards */
  .personnel-table-scroll:has(.jmp-responsive-table){overflow:visible;max-height:none}
  .jmp-responsive-table{min-width:0!important;width:100%;display:block}
  .jmp-responsive-table thead{display:none}
  .jmp-responsive-table tbody{display:flex;flex-direction:column;gap:10px}
  .jmp-responsive-table tr{display:flex;flex-direction:column;gap:8px;padding:13px;border:1px solid #d8e3da;border-radius:11px;background:#fff;box-shadow:0 3px 10px rgba(20,50,35,.04)}
  .jmp-responsive-table td{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:0!important;border:0!important}
  .jmp-responsive-table td:not(.search-placeholder)::before{content:attr(data-label);font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#66786d}
  .jmp-responsive-table td[data-label^="Aksi"]{padding-top:8px!important;margin-top:2px;border-top:1px dashed #e1eae4!important;width:100%}
  .jmp-row-actions{width:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:7px}
  .jmp-row-actions .button{width:100%;justify-content:center}

  /* Signature cards on mobile */
  .jmp-sig-card{padding:12px}
  .jmp-sig-card-head{flex-direction:column;align-items:stretch;gap:8px}
  .jmp-sig-card-head>div:last-child,.jmp-sig-card-head>.button{align-self:flex-end}
  .signature-canvas{height:145px}
  .jmp-driver-sig-preview{max-width:100%}

  .jmp-supervisor-toolbar{flex-direction:column;align-items:stretch;gap:9px}
  .jmp-filter-tabs,.jmp-driver-filter-tabs{grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;width:100%}
  .jmp-supervisor-toolbar .guard-status-search{min-width:0;max-width:none;width:100%}

  .jmp-step-footer{flex-direction:column;align-items:stretch;gap:10px}
  .jmp-submit-actions{flex-direction:column;align-items:stretch;width:100%}
  .jmp-submit-actions .button,.jmp-step-footer>.button{width:100%;justify-content:center}

  /* Supervisor JMP Modal on mobile */
  .jmp-approval-dialog{width:96vw;max-height:94vh;padding:14px 12px}
  .jmp-modal-header{flex-direction:column;align-items:stretch;gap:10px}
  .jmp-modal-head-actions{width:100%;display:grid;grid-template-columns:1fr auto;gap:8px}
  .jmp-approval-body{max-height:calc(94vh - 135px);padding-right:0}
}

/* ===== HR Dashboard & Person On Board (POB) ===== */
.tag-pob{background:#1b7347;color:#fff;font-weight:800;letter-spacing:.04em;box-shadow:0 2px 6px rgba(27,115,71,.18)}
.is-pob-row{background:#f4fbf6}
.hr-pob-filter-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:10px 0 12px}
.hr-pob-tabs{grid-template-columns:repeat(3,minmax(0,1fr));width:100%;max-width:680px}
.hr-tab-link{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:7px 14px;border-radius:8px;font-size:12px;font-weight:700;color:#465a4e;text-decoration:none;text-align:center;transition:background .15s,color .15s,box-shadow .15s}
.hr-tab-link:hover{color:#183826;background:rgba(255,255,255,.65)}
.hr-tab-link.is-active{background:#fff;color:#143b27;box-shadow:0 2px 8px rgba(18,45,31,.09)}

.hr-filter-form,.hr-admin-filter-form{display:grid;grid-template-columns:1.5fr 1fr 1.1fr 1fr auto;gap:10px 12px;align-items:end;margin:0 0 14px;padding:13px 15px;border:1px solid #dce6df;border-radius:11px;background:#f8fbf9}
.hr-admin-filter-form{grid-template-columns:1.5fr 1fr 1.2fr auto}
.hr-filter-field{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:700;color:#35483d;min-width:0}
.hr-filter-field input,.hr-filter-field select{width:100%;height:38px;border:1px solid #cfddd3;border-radius:8px;background:#fff;padding:0 11px;font:12px 'DM Sans',sans-serif;color:var(--ink)}
.hr-filter-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}

.hr-bulk-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.hr-bulk-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.hr-bulk-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.hr-bulk-move-group{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.hr-bulk-move-group select{height:34px;border:1px solid #cddbd1;border-radius:7px;background:#fff;padding:0 10px;font-size:12px}

.hr-location-cell,.hr-pob-cell{display:flex;flex-direction:column;gap:4px;min-width:190px}
.hr-location-select{width:100%;height:36px;border:1px solid #cbd9cf;border-radius:8px;background:#fff;padding:0 10px;font-size:12px;font-weight:600;color:#1e3628}
.hr-pob-toggle-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;padding:6px 13px;border-radius:8px;font:800 11.5px/1.2 Manrope,sans-serif;cursor:pointer;transition:all .15s;width:fit-content}
.hr-pob-toggle-btn.is-pob{border:1px solid #1e7a4c;background:#1e7a4c;color:#fff;box-shadow:0 3px 10px rgba(30,122,76,.18)}
.hr-pob-toggle-btn.is-pob:hover{background:#17633d}
.hr-pob-toggle-btn.is-non-pob{border:1px dashed #99b2a3;background:#fff;color:#354c3f}
.hr-pob-toggle-btn.is-non-pob:hover{border-color:#2b7a4b;background:#eff8f2;color:#1b4f30}
.hr-pob-indicator{font-size:13px;line-height:1}

@media(max-width:960px){
  .hr-filter-form,.hr-admin-filter-form{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hr-filter-search{grid-column:span 2}
}
@media(max-width:640px){
  .hr-pob-tabs{grid-template-columns:1fr;max-width:none}
  .hr-filter-form,.hr-admin-filter-form{grid-template-columns:1fr;padding:12px}
  .hr-filter-search{grid-column:span 1}
  .hr-filter-actions,.hr-bulk-actions,.hr-bulk-move-group{width:100%}
  .hr-filter-actions .button,.hr-bulk-actions>.button,.hr-bulk-move-group select,.hr-bulk-move-group .button{flex:1 1 auto;justify-content:center;width:100%}
  .hr-location-cell,.hr-pob-cell{min-width:0;width:100%}
  .hr-pob-toggle-btn{width:100%}
}

/* ===== Admin Dashboard Sidebar, Desktop Grid & Mobile Responsive Layout ===== */
.page-shell.admin-shell{max-width:1460px;padding:34px 28px 68px}
.admin-page-heading{align-items:center}
.admin-head-Quicklinks{display:flex;align-items:center;gap:8px;flex-wrap:wrap}

.admin-summary-strip{margin-bottom:20px}
.admin-stat-trigger{width:100%;text-align:left;cursor:pointer;font:inherit;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.admin-stat-trigger:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(18,52,36,.09);border-color:#9fc5ae}
.admin-stat-trigger.is-active-stat{border-color:#1c6049;box-shadow:0 0 0 2px rgba(28,96,73,.16),0 10px 24px rgba(18,52,36,.08)}

.admin-dashboard{display:grid;grid-template-columns:258px minmax(0,1fr);align-items:start;gap:22px}
.admin-sidebar{position:sticky;top:16px;align-self:start;min-width:0}
.admin-sidebar nav{display:grid;align-content:start;gap:5px;max-height:calc(100vh - 32px);overflow-y:auto;overscroll-behavior:contain;padding:11px;border:1px solid #dce6df;border-radius:14px;background:#f6f9f7;box-shadow:0 6px 20px rgba(20,50,35,.04);scrollbar-width:thin}
.admin-sidebar-group-label{padding:5px 8px 3px;font-size:9px;font-weight:800;letter-spacing:.9px;color:#6f8076;text-transform:uppercase}
.admin-sidebar-divider{height:1px;background:#dfe8e1;margin:6px 4px}

.admin-sidebar-link{display:flex;align-items:center;gap:9px;width:100%;min-height:62px;padding:9px 10px;border:1px solid transparent;border-radius:10px;background:transparent;color:#55665c;text-align:left;transition:background .15s,border-color .15s,color .15s}
.admin-sidebar-link:hover{background:#edf4ef;color:#1e4d35}
.admin-sidebar-link:focus-visible{outline:3px solid rgba(36,112,76,.28);outline-offset:2px}
.admin-sidebar-link[aria-pressed=true]{border-color:#cde0d3;background:#e7f3eb;color:#17472e;box-shadow:0 2px 8px rgba(20,60,38,.06)}
.admin-sidebar-link[aria-pressed=true] .guard-sidebar-number{background:#1c6049;color:#fff}
.admin-sidebar-copy{flex:1;min-width:0}
.admin-sidebar-copy strong,.admin-sidebar-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:normal}
.admin-sidebar-copy strong{font-size:11.5px;font-weight:750;line-height:1.25}
.admin-sidebar-copy small{display:-webkit-box;margin-top:3px;font-size:9.5px;line-height:1.25;color:#7d8c83;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}
.admin-sidebar-link[aria-pressed=true] .admin-sidebar-copy small{color:#3c6950}
.admin-sidebar-pill{flex:0 0 auto;min-width:25px;padding:4px 7px;border-radius:20px;background:#e4ece7;color:#485b50;font-size:10px;font-weight:800;font-variant-numeric:tabular-nums;text-align:center}
.admin-sidebar-link[aria-pressed=true] .admin-sidebar-pill{background:#1c6049;color:#fff}

.admin-sidebar-shortcut{display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px dashed #cddbd1;border-radius:10px;background:#fff;color:#27523b;text-decoration:none;transition:background .15s,border-color .15s,transform .15s}
.admin-sidebar-shortcut:hover{background:#eff7f2;border-color:#88b398;transform:translateY(-1px)}
.admin-shortcut-icon{display:grid;place-items:center;flex:0 0 28px;height:28px;border-radius:8px;background:#eaf4ed;color:#1c6049;font-size:13px;font-weight:800}
.admin-sidebar-shortcut strong,.admin-sidebar-shortcut small{display:block}
.admin-sidebar-shortcut strong{font-size:11.5px;font-weight:700;color:#1d4630}
.admin-sidebar-shortcut small{margin-top:1px;font-size:9.5px;color:#76867c}

.admin-dashboard-content{display:grid;gap:16px;min-width:0}
.admin-category-panel{padding:24px;margin-bottom:0;scroll-margin-top:16px}
.admin-category-panel[hidden]{display:none!important}

/* Admin Section Heading & Collapsible Drawers */
.admin-personnel-heading{flex-wrap:wrap;gap:12px}
.admin-personnel-top-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.admin-drawer-card{margin:14px 0 16px;padding:18px;border:1px solid #d5e4da;border-radius:12px;background:#f7fbf8;box-shadow:0 4px 14px rgba(18,50,34,.04)}
.admin-drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.admin-drawer-head strong,.admin-drawer-head-inline strong{font:700 14px Manrope,sans-serif;color:#1d422d}
.admin-drawer-head p{margin:3px 0 0;font-size:11.5px;color:#62756a}
.admin-drawer-head-inline{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}

/* Structured Desktop Grid Forms for Admin Create Forms */
.admin-grid-form{display:grid;gap:12px;align-items:end;padding:16px;margin:14px 0 18px;border:1px solid #e1eae4;border-radius:11px;background:#f9fbf9}
.admin-drawer-card .admin-grid-form{padding:0;margin:0;border:0;background:transparent}
.admin-grid-form>label{min-width:0;font-size:11px;font-weight:700;color:#33473b;gap:6px}
.admin-grid-form input:not([type=checkbox]),.admin-grid-form select{height:39px;font-size:12px;padding:0 11px;border-radius:8px;border-color:#cfddd3}
.admin-form-submit{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;min-height:39px}
.admin-form-submit .check-label{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;color:#33473b;padding:0;min-width:auto}
.admin-form-submit .button{height:39px;white-space:nowrap}

.admin-grid-projects{grid-template-columns:minmax(160px,.8fr) minmax(240px,1.5fr) auto}
.admin-grid-locations{grid-template-columns:minmax(180px,1fr) minmax(140px,.75fr) minmax(200px,1.1fr) auto}
.admin-grid-personnel{grid-template-columns:repeat(3,minmax(0,1fr))}
.admin-grid-accounts{grid-template-columns:repeat(2,minmax(150px,1fr)) minmax(150px,.9fr) minmax(190px,1.1fr) auto}
.admin-grid-guestbook{grid-template-columns:minmax(220px,1.3fr) minmax(150px,.85fr) minmax(150px,.85fr) auto}

/* Clean Multi-Column Inline Edit Forms inside Desktop Admin Tables */
.admin-table td{vertical-align:top;padding:13px 10px}
.admin-table td:nth-child(3),.admin-personnel-table td:nth-child(4),.admin-personnel-table td:nth-child(5){max-width:none}
.admin-cell-delete{text-align:right;white-space:nowrap}
.inline-edit{min-width:0;width:100%}
.inline-edit input:not([type=checkbox]),.inline-edit select{height:34px;padding:0 9px;font-size:11.5px;border-radius:7px;border-color:#d2dfd6;min-width:0}
.inline-edit-Checks{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.inline-edit .check-label.compact{font-size:11px;font-weight:700;color:#3d5245;gap:5px}

.inline-edit-project{display:grid;grid-template-columns:130px minmax(180px,1fr) auto;gap:8px;align-items:center}
.inline-edit-location{display:grid;grid-template-columns:minmax(140px,1fr) 115px minmax(150px,1.1fr) auto auto;gap:8px;align-items:center}
.inline-edit-personnel{display:grid;grid-template-columns:minmax(100px,.85fr) minmax(145px,1.25fr) minmax(115px,1fr);gap:7px;align-items:center}
.inline-edit-personnel .inline-edit-Checks{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:2px}
.admin-autosave-toggles{display:inline-flex;align-items:center;gap:12px}
.admin-autosave-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;font-size:10px;font-weight:750;background:#eef5f0;color:#2e6b47;border:1px solid #d3e5d9;transition:background .18s,color .18s,border-color .18s}
.admin-autosave-badge.is-dirty{background:#fff8eb;color:#9a6715;border-color:#efd8ab}
.admin-autosave-badge.is-saving{background:#eef4ff;color:#1d58a8;border-color:#c9dcfa}
.admin-autosave-badge.is-saved{background:#e7f6ec;color:#18683b;border-color:#b8e0c6}
.admin-autosave-badge.is-error{background:#fff1ef;color:#a82e26;border-color:#f2c6c2}
.inline-edit-account{display:grid;grid-template-columns:minmax(120px,1fr) minmax(140px,1.1fr) minmax(120px,.9fr) minmax(150px,1.1fr) auto;gap:7px;align-items:center}

@media(max-width:1220px){
  .admin-grid-locations,.admin-grid-accounts,.admin-grid-guestbook{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-grid-locations .admin-form-submit,.admin-grid-accounts .admin-form-submit,.admin-grid-guestbook .admin-form-submit{grid-column:span 2;justify-content:flex-end}
  .inline-edit-location{grid-template-columns:repeat(3,minmax(0,1fr))}
  .inline-edit-account{grid-template-columns:repeat(2,minmax(0,1fr))}
  .inline-edit-account .inline-edit-Checks{grid-column:span 2}
  .inline-edit-personnel{grid-template-columns:repeat(2,minmax(0,1fr))}
  .inline-edit-personnel .inline-edit-Checks{grid-column:1/-1}
}

@media(max-width:960px){
  .page-shell.admin-shell{padding:24px 16px 52px}
  .admin-dashboard{grid-template-columns:1fr;gap:14px}
  .admin-sidebar{position:relative;top:auto;z-index:auto;padding:0;background:transparent}
  .admin-sidebar nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:none;overflow:visible;padding:11px}
  .admin-sidebar-group-label{grid-column:1/-1}
  .admin-sidebar-divider,.admin-sidebar-shortcut{display:none}
  .admin-sidebar-link{width:100%;min-width:0;min-height:68px;padding:9px;gap:8px}
  .admin-grid-projects,.admin-grid-personnel{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-grid-projects .admin-form-submit,.admin-grid-personnel .admin-form-submit{grid-column:span 2}
}

/* Mobile Responsive Cards for Admin Dashboard */
@media(max-width:768px){
  .page-shell.admin-shell{padding:18px 12px 46px}
  .admin-page-heading{flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:16px}
  .admin-head-Quicklinks{width:100%;justify-content:flex-start}
  .admin-summary-strip.jmp-summary-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:14px}
  .admin-summary-strip .summary-status{min-height:74px;padding:11px 12px}
  .admin-summary-strip .summary-number{font-size:22px}
  .admin-summary-strip .summary-caption{font-size:10px}

  .admin-sidebar nav{display:flex;align-items:stretch;gap:8px;max-height:none;overflow-x:auto;overflow-y:hidden;padding:8px 2px 11px;scroll-snap-type:x mandatory;scrollbar-width:thin}
  .admin-sidebar-group-label,.admin-sidebar-divider,.admin-sidebar-shortcut{display:none}
  .admin-sidebar-link{flex:0 0 min(78vw,230px);width:min(78vw,230px);min-height:60px;padding:8px;gap:8px;scroll-snap-align:start}
  .admin-sidebar-link .guard-sidebar-number{width:26px;height:26px;flex-basis:26px;border-radius:7px}
  .admin-sidebar-copy strong{font-size:10.5px}
  .admin-sidebar-copy small{display:none}

  .admin-category-panel{padding:16px 13px;border-radius:12px}
  .admin-personnel-heading{flex-direction:column;align-items:stretch;gap:10px}
  .admin-personnel-top-actions{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:7px}
  .admin-personnel-top-actions .count-badge{grid-column:span 2;text-align:center;padding:6px}
  .admin-personnel-top-actions .button{width:100%;justify-content:center}

  .admin-grid-form,.admin-grid-projects,.admin-grid-locations,.admin-grid-personnel,.admin-grid-accounts,.admin-grid-guestbook{grid-template-columns:1fr;padding:13px;gap:10px}
  .admin-grid-form .admin-form-submit{grid-column:span 1!important;width:100%;justify-content:space-between}
  .admin-grid-form .admin-form-submit .button{flex:1 1 auto;justify-content:center}
  .admin-grid-form input:not([type=checkbox]),.admin-grid-form select{height:42px;font-size:14px}

  /* Convert all Admin Tables into clean mobile stacked cards */
  .admin-category-panel .table-wrap{overflow:visible;margin-top:12px}
  .admin-responsive-table{display:block;width:100%;min-width:0!important}
  .admin-responsive-table thead{display:none}
  .admin-responsive-table tbody{display:flex;flex-direction:column;gap:12px}
  .admin-responsive-table tr{display:flex;flex-direction:column;gap:10px;padding:14px;border:1px solid #d7e3da;border-radius:12px;background:#fff;box-shadow:0 3px 10px rgba(18,48,32,.045)}
  .admin-responsive-table tr.is-pob-row{background:#f3fbf6;border-color:#b8dec6}
  .admin-responsive-table td{display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:0!important;border:0!important;width:100%!important;max-width:none!important;text-align:left!important}
  .admin-responsive-table td::before{content:attr(data-label);font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#62756a}
  .admin-responsive-table td[data-label="Pilih"]{flex-direction:row;align-items:center;justify-content:space-between;padding-bottom:8px!important;border-bottom:1px dashed #e1ebe4!important}
  .admin-responsive-table td[data-label^="Perbarui"],.admin-responsive-table td[data-label^="Edit"],.admin-responsive-table td[data-label^="Ubah"]{padding-top:10px!important;border-top:1px dashed #e1ebe4!important}
  .admin-responsive-table td.admin-cell-delete{padding-top:6px!important}
  .admin-responsive-table td.admin-cell-delete::before{display:none}
  .admin-responsive-table td.admin-cell-delete form,.admin-responsive-table td.admin-cell-delete .button{width:100%;justify-content:center}

  .inline-edit,.inline-edit-project,.inline-edit-location,.inline-edit-personnel,.inline-edit-account{display:grid;grid-template-columns:1fr;gap:8px;width:100%;min-width:0}
  .inline-edit select[name$="[assigned_location_id]"],.inline-edit .inline-edit-Checks{grid-column:span 1!important}
  .inline-edit input:not([type=checkbox]),.inline-edit select{height:40px;font-size:13.5px;padding:0 11px;width:100%}
  .inline-edit-Checks{width:100%;justify-content:space-between;padding-top:4px}
  .inline-edit-Checks .button,.inline-edit>.button{flex:1 1 auto;height:38px;justify-content:center}
}

/* T-Card rack filtering and paging */
.tcard-rack-tools{display:flex;align-items:center;gap:9px;flex-shrink:0}
.tcard-rack-buttons{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:6px}
.tcard-select-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.tcard-select-filters label{display:grid;gap:5px;min-width:0;color:#526157;font-size:10px;font-weight:700}
.tcard-select-filters select{width:100%;min-height:40px;padding:0 10px;border:1px solid #dce4de;border-radius:8px;background:#fff;color:var(--ink);font:11px 'DM Sans',sans-serif}
.tcard-select-filters select:focus{outline:0;border-color:#77a68d;box-shadow:0 0 0 3px rgba(51,127,89,.09)}
.tcard-pagination{display:flex;align-items:center;justify-content:center;gap:13px;margin-top:17px}
.tcard-pagination[hidden]{display:none!important}
.tcard-pagination>span{color:#66756b;font-size:10px;font-weight:700;text-align:center}
.tcard-pagination button:disabled{opacity:.45;cursor:not-allowed}
.status-split-item:disabled{opacity:.6;cursor:not-allowed}

/* Portrait card artwork on the public self-service T-Card page */
#self-tcard .self-personnel-card{align-items:center;min-height:126px;padding:10px}
#self-tcard .self-personnel-photo,#self-tcard .self-personnel-avatar{flex:0 0 86px;width:86px;height:108px;border:1px solid #dce6de;border-radius:10px;object-fit:contain}
#self-tcard .self-personnel-photo{background:#f3f6f3}
#self-tcard .self-personnel-avatar{border:0;background:linear-gradient(145deg,#eff7f0,#dcebdd);font-size:21px}
#self-tcard .self-personnel-photo[hidden],#self-tcard .self-personnel-avatar[hidden]{display:none!important}
#self-tcard .self-dialog-profile .self-personnel-photo,#self-tcard .self-dialog-profile .self-personnel-avatar{width:172px;height:214px;border-radius:12px}
#self-tcard .self-pass-card .self-personnel-photo,#self-tcard .self-pass-card .self-personnel-avatar{width:176px;height:220px;border-radius:14px}
#self-tcard .self-dialog-profile .self-personnel-avatar,#self-tcard .self-pass-card .self-personnel-avatar{font-size:38px}
@media(max-width:560px){
  .tcard-rack-header{flex-direction:column}
  .tcard-rack-tools{align-items:center;flex-direction:row;justify-content:space-between;width:100%;gap:7px}
  .tcard-rack-buttons{align-items:stretch;flex:1;flex-direction:row;min-width:0}
  .tcard-rack-tools .button{flex:1;min-width:0;min-height:38px;padding:6px 7px;font-size:9px;line-height:1.2;white-space:normal}
  .tcard-select-filters{gap:7px}
  .tcard-select-filters select{min-height:40px;font-size:10px}
  .tcard-pagination{gap:7px}
  .tcard-pagination .button{min-height:38px;padding:7px 8px;font-size:9px}
  #self-tcard .self-personnel-card{min-height:112px;padding:8px}
  #self-tcard .self-personnel-photo,#self-tcard .self-personnel-avatar{flex-basis:72px;width:72px;height:92px;border-radius:8px}
  #self-tcard .self-dialog-profile .self-personnel-photo,#self-tcard .self-dialog-profile .self-personnel-avatar{width:148px;height:184px}
  #self-tcard .self-pass-card .self-personnel-photo,#self-tcard .self-pass-card .self-personnel-avatar{width:152px;height:190px}
}

/* Batch movement is selected directly from the virtual T-Card rack. */
.tcard-batch{margin-top:14px;padding:12px 14px;border:1px solid #dfe8e1;border-radius:11px;background:#f8fbf8}
.tcard-batch-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}
.tcard-batch-toolbar>div{display:grid;gap:3px;min-width:0}
.tcard-batch-toolbar strong{color:#314d3a;font-size:11px;font-weight:800}
.tcard-batch-toolbar small{color:#77857b;font-size:9px;line-height:1.45}
.tcard-batch-toolbar .button{flex:0 0 auto}
.tcard-batch-toolbar .button.is-active{border-color:#347249;background:#e7f3e9;color:#27663d}
.tcard-batch-panel{margin-top:13px;padding-top:12px;border-top:1px solid #e1eae3}
.tcard-batch-panel[hidden]{display:none!important}
.tcard-batch-summary{display:flex;align-items:flex-start;gap:10px}
.tcard-batch-summary p{margin:3px 0 0;color:#5d6d62;font-size:10px;line-height:1.5}
.tcard-batch-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px;margin:10px 0 0;padding:0;list-style:none}
.tcard-batch-preview[hidden]{display:none!important}
.tcard-batch-preview li{min-width:0;overflow:hidden;padding:7px 9px;border:1px solid #e3eae4;border-radius:7px;background:#fff;color:#546258;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.tcard-batch-preview li.is-in{border-color:#c9e6d0;background:#f3fbf5;color:#287443}
.tcard-batch-preview li.is-out{border-color:#f0d1cf;background:#fff6f5;color:#a43d36}
.tcard-batch-preview li.batch-preview-more{border-style:dashed;color:#748078}
.tcard-batch-form{display:grid;gap:10px;margin-top:11px}
.tcard-batch-form>label{display:grid;gap:5px;color:#526157;font-size:9px;font-weight:700}
.tcard-batch-form>label input{min-height:38px;padding:0 10px;border:1px solid #dce4de;border-radius:7px;background:#fff;color:var(--ink);font:11px 'DM Sans',sans-serif}
.tcard-batch-actions{display:flex;align-items:center;flex-wrap:wrap;gap:7px}
.tcard-batch-actions .button:disabled{opacity:.45;cursor:not-allowed;filter:saturate(.55)}
.tcard-batch-form .form-footnote{margin:0;color:#77857b;font-size:9px}
.tcard-rack.is-batch-mode .tcard-grid:not(.tcard-visitor-grid) .tcard-card{cursor:pointer}
.tcard-rack.is-batch-mode .tcard-grid:not(.tcard-visitor-grid) .tcard-card:hover{transform:translateY(-2px)}
.tcard-rack.is-batch-mode .tcard-grid:not(.tcard-visitor-grid) .tcard-card .tcard-photo-frame::after{position:absolute;z-index:3;right:8px;bottom:8px;padding:5px 8px;border:1px solid rgba(255,255,255,.78);border-radius:20px;background:rgba(25,44,32,.78);color:#fff;content:'PILIH';font-size:8px;font-weight:900;letter-spacing:.5px;pointer-events:none}
.tcard-rack.is-batch-mode .tcard-grid:not(.tcard-visitor-grid) .tcard-card.is-batch-selected{border-color:#1c8b4c;box-shadow:0 0 0 3px rgba(28,139,76,.2),0 7px 20px rgba(22,91,47,.15)}
.tcard-rack.is-batch-mode .tcard-grid:not(.tcard-visitor-grid) .tcard-card.is-batch-selected .tcard-photo-frame::after{background:#178343;content:'✓ TERPILIH'}

/* Guard guestbook actions and date selection. */
.guard-guestbook-panel{padding:22px}
.guestbook-panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:17px}
.guestbook-panel-heading h2{margin:5px 0}
.guestbook-panel-heading p{margin:0;font-size:10px}
.guestbook-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.guestbook-action-card{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:start;gap:10px 12px;min-width:0;padding:15px;border:1px solid #e0e8e2;border-radius:11px;background:#fbfdfb}
.guestbook-action-card:only-child{grid-column:1/-1}
.guestbook-action-entry{border-top:3px solid #398052}
.guestbook-action-print{border-top:3px solid #829386}
.guestbook-action-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:#e8f3eb;color:#347249;font-size:23px;font-weight:800}
.guestbook-action-print .guestbook-action-icon{background:#eef1ef;color:#5f7165}
.guestbook-action-card>div{min-width:0;padding-top:2px}
.guestbook-action-card h3{margin:0;color:#304637;font:800 12px/1.35 Manrope,sans-serif}
.guestbook-action-card p{margin:5px 0 0;color:#748078;font-size:9px;line-height:1.55}
.guestbook-action-card>.button{grid-column:2;justify-self:start;min-height:38px;padding:8px 12px;font-size:10px}
.guestbook-dialog{width:min(600px,calc(100vw - 30px))}
.guestbook-dialog-help{margin:0 0 16px;padding:11px 12px;border:1px solid #e1e9e3;border-radius:8px;background:#f7faf7;color:#647269;font-size:10px;line-height:1.6}
.guestbook-export-form{display:grid;gap:14px}
.guestbook-date-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.guestbook-date-fields label{display:grid;gap:6px;color:#536259;font-size:10px;font-weight:700}
.guestbook-date-fields input{width:100%;min-height:42px;padding:0 10px;border:1px solid #dce4de;border-radius:8px;background:#fff;color:#34463a;font:12px 'DM Sans',sans-serif}
.guestbook-export-form>.button{width:100%;min-height:45px}
@media(max-width:700px){.guestbook-action-grid{grid-template-columns:1fr}}
@media(max-width:560px){
  .tcard-batch{padding:10px}
  .tcard-batch-toolbar{align-items:stretch;flex-direction:column}
  .tcard-batch-toolbar .button{width:100%;min-height:39px}
  .tcard-batch-summary{align-items:flex-start;flex-direction:column;gap:5px}
  .tcard-batch-preview{grid-template-columns:1fr;gap:5px}
  .tcard-batch-actions{display:grid;grid-template-columns:1fr 1fr}
  .tcard-batch-actions .button{width:100%;min-height:39px;padding:7px 8px;font-size:9px}
  .tcard-batch-actions .button:nth-child(n+3){grid-column:span 2}
  .guard-guestbook-panel{padding:15px 12px}
  .guestbook-panel-heading{gap:8px}
  .guestbook-panel-heading h2{font-size:16px}
  .guestbook-action-grid{gap:9px}
  .guestbook-action-card{grid-template-columns:36px minmax(0,1fr);gap:8px 10px;padding:12px}
  .guestbook-action-icon{width:36px;height:36px;font-size:20px}
  .guestbook-action-card h3{font-size:11px}
  .guestbook-action-card>.button{width:100%;justify-content:center}
  .guestbook-date-fields{grid-template-columns:1fr;gap:10px}
}

/* Self visitor identity photo and selfie sit beside each other with enlarged photo review. */
#visitor-checkin-panel .self-visitor-photo-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:14px;margin-top:6px}
#visitor-checkin-panel .self-visitor-photo-row .visitor-photo-section{display:flex;min-width:0;flex-direction:column;margin-top:0}
#visitor-checkin-panel .self-visitor-photo-row .visitor-photo-heading{min-height:30px;align-items:center;gap:6px;font-size:12px;line-height:1.35}
#visitor-checkin-panel .self-visitor-photo-row .visitor-photo-card{height:100%;flex-direction:column;align-items:stretch;gap:10px;padding:12px;border-style:solid;border-color:#cfe0d4;background:#f7fbf8}
#visitor-checkin-panel .self-visitor-photo-row .visitor-photo-thumb-wrap,
#visitor-checkin-panel .self-visitor-photo-row .visitor-id-thumb-wrap{width:100%;min-width:0;height:220px;border-radius:10px;background:#101c16;border:1px solid #bfd2c5;cursor:pointer}
#visitor-checkin-panel .self-visitor-photo-row .visitor-photo-thumb-wrap img{width:100%;height:100%;object-fit:contain;background:#0d1712}
#visitor-checkin-panel .self-visitor-photo-row .visitor-photo-empty{gap:6px;padding:14px;font-size:11px;background:#fff;cursor:default}
#visitor-checkin-panel .self-visitor-photo-row .visitor-photo-empty strong{color:#2b4335;font-size:12px}
#visitor-checkin-panel .self-visitor-photo-row .visitor-photo-empty small{color:#78877e;font-size:10px;line-height:1.35}
#visitor-checkin-panel .self-visitor-photo-row .visitor-photo-icon{font-size:30px}
.visitor-photo-zoom-badge{position:absolute;right:8px;bottom:8px;padding:5px 9px;border-radius:999px;background:rgba(15,28,21,.82);color:#fff;font-size:10px;font-weight:700;letter-spacing:.01em;backdrop-filter:blur(4px);box-shadow:0 2px 8px rgba(0,0,0,.25);cursor:pointer}
#visitor-checkin-panel .self-visitor-photo-row .visitor-photo-actions{gap:7px}
#visitor-checkin-panel .self-visitor-photo-row .visitor-photo-buttons{display:flex;flex-wrap:wrap;gap:6px}
#visitor-checkin-panel .self-visitor-photo-row .visitor-photo-buttons .button{flex:1 1 calc(50% - 6px);min-width:110px;min-height:36px;padding:7px 10px;font-size:11px;line-height:1.25;justify-content:center}
#visitor-checkin-panel .self-visitor-photo-row .field-hint{font-size:10px;line-height:1.4}

/* Emergency headcount department racks. */
.headcount-department-racks{display:grid;gap:7px}
.headcount-department-rack{min-width:0;overflow:hidden;border:1px solid #e0e9e2;border-radius:9px;background:#fff}
.headcount-department-rack[open]{border-color:#cbdccf;background:#fbfdfb}
.headcount-department-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:57px;padding:9px 12px;cursor:pointer;list-style:none}
.headcount-department-summary::-webkit-details-marker{display:none}
.headcount-department-summary::after{display:grid;place-items:center;flex:0 0 25px;width:25px;height:25px;border-radius:7px;background:#eef4ef;color:#477052;content:'⌄';font-size:16px;font-weight:800}
.headcount-department-rack[open]>.headcount-department-summary::after{content:'⌃'}
.headcount-department-copy{display:grid;min-width:0;gap:3px}
.headcount-department-copy strong{overflow:hidden;color:#2f4938;font-size:11px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}
.headcount-department-copy small{color:#7b887f;font-size:9px}
.headcount-department-meta{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:5px;margin-left:auto}
.headcount-department-count,.headcount-department-missing{padding:5px 7px;border-radius:20px;background:#f0f4f1;color:#68776d;font-size:8px;font-weight:800;white-space:nowrap}
.headcount-department-missing{background:#fff1ef;color:#a43d36}
.headcount-department-missing:not(.has-missing){background:#edf7ef;color:#347249}
.headcount-group-out .headcount-department-summary{background:#fffdfa}
.headcount-group-out .headcount-department-summary::after{background:#fff2e6;color:#a66524}
.headcount-department-people{grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:10px;border:0;border-top:1px solid #e8eee9;border-radius:0;background:#f8faf8}
@media(max-width:850px){.headcount-department-people{grid-template-columns:1fr}}
@media(max-width:640px){
  #visitor-checkin-panel .self-visitor-photo-row{grid-template-columns:1fr;gap:12px}
  #visitor-checkin-panel .self-visitor-photo-row .visitor-photo-thumb-wrap,
  #visitor-checkin-panel .self-visitor-photo-row .visitor-id-thumb-wrap{height:215px}
}
@media(max-width:560px){
  .headcount-department-summary{gap:6px;padding:8px}
  .headcount-department-meta{gap:4px}
  .headcount-department-count,.headcount-department-missing{padding:4px 5px;font-size:7px}
  .headcount-department-people{padding:7px}
}

/* Batch movement selection on the public self T-Card page. */
.self-tcard-batch{padding:13px 15px;border:1px solid #dfe8e1;border-radius:12px;background:#f8fbf8}
.self-tcard-batch-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}
.self-tcard-batch-toolbar>div{display:grid;gap:3px;min-width:0}
.self-tcard-batch-toolbar strong{color:#314d3a;font-size:11px;font-weight:800}
.self-tcard-batch-toolbar small{color:#77857b;font-size:9px;line-height:1.45}
.self-tcard-batch-toolbar .button.is-active{border:1px solid #347249;background:#e7f3e9;color:#27663d}
.self-tcard-batch-panel{display:grid;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid #e1eae3}
.self-tcard-batch-panel[hidden]{display:none!important}
.self-tcard-batch-summary{display:flex;align-items:flex-start;gap:9px}
.self-tcard-batch-summary p{margin:3px 0 0;color:#5d6d62;font-size:10px;line-height:1.5}
.self-tcard-batch-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 9px;margin:0;padding:0;list-style:none}
.self-tcard-batch-preview[hidden]{display:none!important}
.self-tcard-batch-preview li{min-width:0;overflow:hidden;padding:7px 9px;border:1px solid #e3eae4;border-radius:7px;background:#fff;color:#546258;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.self-tcard-batch-preview li.is-in{border-color:#c9e6d0;background:#f3fbf5;color:#287443}
.self-tcard-batch-preview li.is-out{border-color:#f0d1cf;background:#fff6f5;color:#a43d36}
.self-tcard-batch-preview li.is-other-location{border-color:#f0d9b5;background:#fff8eb;color:#966320}
.self-tcard-batch-preview li.batch-preview-more{border-style:dashed;color:#748078}
.self-tcard-batch-note{display:grid;gap:5px;color:#526157;font-size:9px;font-weight:700}
.self-tcard-batch-note input{width:100%;min-height:39px;padding:0 10px;border:1px solid #dce4de;border-radius:8px;background:#fff;color:var(--ink);font:11px 'DM Sans',sans-serif}
.self-tcard-batch-actions{display:flex;align-items:center;flex-wrap:wrap;gap:7px}
.self-tcard-batch-actions .button:disabled{opacity:.45;cursor:not-allowed;filter:saturate(.55)}
.self-tcard-batch-message{margin:0;padding:9px 10px;border:1px solid #d8e9db;border-radius:8px;background:#edf7ef;color:#347249;font-size:10px;line-height:1.45}
.self-tcard-batch-message.is-error{border-color:#efcfcb;background:#fff3f1;color:#a43d36}
.self-tcard-batch-message[hidden]{display:none!important}
#self-personnel-grid .self-personnel-card[data-personnel-id]{position:relative}
#self-tcard.is-batch-mode #self-personnel-grid .self-personnel-card[data-personnel-id]{cursor:pointer}
#self-tcard.is-batch-mode #self-personnel-grid .self-personnel-card[data-personnel-id]::after{position:absolute;top:6px;left:6px;display:grid;place-items:center;width:22px;height:22px;border:1px solid rgba(255,255,255,.9);border-radius:50%;background:rgba(35,58,43,.78);color:#fff;content:'+';font-size:15px;font-weight:800;line-height:1;box-shadow:0 1px 5px rgba(0,0,0,.15)}
#self-tcard.is-batch-mode #self-personnel-grid .self-personnel-card.is-batch-selected{border-color:#1c8b4c;background:#f1faf3;box-shadow:0 0 0 2px rgba(28,139,76,.16)}
#self-tcard.is-batch-mode #self-personnel-grid .self-personnel-card.is-batch-selected::after{background:#178343;content:'✓'}
@media(max-width:560px){
  .self-tcard-batch{padding:11px}
  .self-tcard-batch-toolbar{align-items:stretch;flex-direction:column}
  .self-tcard-batch-toolbar .button{width:100%;min-height:42px}
  .self-tcard-batch-summary{align-items:flex-start;flex-direction:column;gap:5px}
  .self-tcard-batch-preview{grid-template-columns:1fr;gap:5px}
  .self-tcard-batch-actions{display:grid;grid-template-columns:1fr 1fr}
  .self-tcard-batch-actions .button{width:100%;min-height:40px;padding:7px 8px;font-size:10px}
  .self-tcard-batch-actions .button:nth-child(n+3){grid-column:span 2}
}

/* Single-screen (1 Layar) Camera Preview & Enlarged Photo Review for Self Visitor */
body.camera-modal-open{overflow:hidden}
.self-camera-screen{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:12px;background:rgba(10,18,14,.88);backdrop-filter:blur(6px)}
.self-camera-screen[hidden]{display:none!important}
.self-camera-dialog{display:flex;flex-direction:column;width:min(820px,100%);height:min(92dvh,760px);border:1px solid rgba(255,255,255,.16);border-radius:16px;background:#101c16;color:#f3f8f4;box-shadow:0 24px 60px rgba(0,0,0,.55);overflow:hidden}
.self-camera-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid rgba(255,255,255,.1);background:#15251d}
.self-camera-kicker{display:inline-block;margin-bottom:3px;color:#7ed9a2;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.self-camera-header h2{margin:0;color:#fff;font-size:16px;font-weight:800}
.self-camera-viewport{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;background:#08100c;overflow:hidden}
.self-camera-viewport video,.self-camera-viewport img{width:100%;height:100%;object-fit:contain;display:block}
.self-camera-viewport video.is-mirrored{transform:scaleX(-1)}
.self-camera-viewport [hidden]{display:none!important}
.self-camera-frame-guide{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;pointer-events:none}
.self-camera-frame-box{border:2px dashed rgba(126,217,162,.85);border-radius:14px;box-shadow:0 0 0 9999px rgba(6,12,9,.38)}
.self-camera-viewport[data-frame-mode="id"] .self-camera-frame-box{width:min(86%,520px);aspect-ratio:1.58/1}
.self-camera-viewport[data-frame-mode="selfie"] .self-camera-frame-box{width:min(72%,340px);aspect-ratio:3/4;border-radius:24px}
.self-camera-footer{display:grid;gap:10px;padding:14px 18px;border-top:1px solid rgba(255,255,255,.1);background:#15251d}
.self-camera-hint{margin:0;color:#cfe2d6;font-size:12px;text-align:center}
.self-camera-controls{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px}
.self-camera-controls[hidden]{display:none!important}
.self-camera-controls .button{min-height:44px;padding:10px 16px;font-size:13px;font-weight:700}
.self-camera-shutter-btn{min-width:190px;background:#1f9d58;border-color:#1f9d58;color:#fff;box-shadow:0 6px 18px rgba(31,157,88,.35)}
@media(max-width:640px){
  .self-camera-screen{padding:0}
  .self-camera-dialog{width:100%;height:100dvh;border:0;border-radius:0}
  .self-camera-header{padding:12px 14px}
  .self-camera-header h2{font-size:14px}
  .self-camera-footer{padding:12px 14px calc(14px + env(safe-area-inset-bottom,0px))}
  .self-camera-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .self-camera-shutter-btn{grid-column:1 / -1;order:-1;width:100%}
}

/* JMP Signer Autofill Bar on Admin & Supervisor Dashboards */
.jmp-signer-autofill-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 16px;margin:0 0 14px;padding:11px 14px;border:1px solid #cfe0d4;border-radius:10px;background:#f4faf6}
.jmp-signer-autofill-label{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;flex:1 1 360px;margin:0;color:#1e3f2b;font-size:12px;font-weight:700}
.jmp-signer-autofill-label input{flex:1 1 220px;max-width:340px;min-height:36px;padding:6px 11px;border:1px solid #b8d0c0;border-radius:8px;background:#fff;color:#16291e;font-size:12px;font-weight:700}
.jmp-signer-autofill-hint{color:#587060;font-size:11px}
@media(max-width:640px){
  .jmp-signer-autofill-bar{padding:10px 12px}
  .jmp-signer-autofill-label{flex-direction:column;align-items:stretch}
  .jmp-signer-autofill-label input{max-width:none;width:100%}
}

/* Mandatory Night Exit Note Banner (18:00 - 02:00 WIB) */
.tcard-night-banner{margin:10px 0 6px;padding:10px 12px;border:1px solid #e0a82e;border-left:4px solid #c97a00;border-radius:8px;background:#fff8e6;color:#7a4700;font-size:12px;font-weight:700;line-height:1.45;text-align:left}
.tcard-night-banner[hidden]{display:none!important}
.required{color:#c92a2a;font-weight:800}

/* ==========================================================================
   Log Jam Malam Manual — Guard Dashboard (#guard-nightlog-panel)
   & Self-Service Portal (self_night_log.html) — Desktop & Mobile
   ========================================================================== */

/* Hero Header on Guard Dashboard */
.nightlog-hero-header{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:14px 20px;padding-bottom:16px;border-bottom:1px solid #e4ece6}
.nightlog-hero-copy{max-width:680px}
.nightlog-hero-copy h2{margin:4px 0 6px;color:#173424;font:800 clamp(18px,2.2vw,22px)/1.25 Manrope,sans-serif;letter-spacing:-.02em}
.nightlog-hero-copy p{margin:0;font-size:12px;line-height:1.5}
.nightlog-hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}

/* KPI Strip (3 cards on Desktop, responsive on Mobile) */
.nightlog-kpi-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}
.nightlog-kpi-card{display:flex;flex-direction:column;justify-content:space-between;gap:4px;padding:14px 16px;border:1px solid #dce6df;border-radius:12px;background:#f9fbf9; transition:border-color .15s,box-shadow .15s}
.nightlog-kpi-card.is-amber{border-color:#f0d2a8;border-left:4px solid #d47b19;background:linear-gradient(180deg,#fffaf2 0%,#fff6e8 100%)}
.nightlog-kpi-card.is-green{border-color:#c6e3cf;border-left:4px solid #2b824c;background:linear-gradient(180deg,#f5fcf7 0%,#ebf8ef 100%)}
.nightlog-kpi-card.is-slate{border-color:#d4e0d8;border-left:4px solid #2d5a42;background:linear-gradient(180deg,#f8fbf9 0%,#f0f6f2 100%)}
.nightlog-kpi-label{color:#556b5e;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.nightlog-kpi-card.is-amber .nightlog-kpi-label{color:#8c4f0a}
.nightlog-kpi-card.is-green .nightlog-kpi-label{color:#1f6138}
.nightlog-kpi-value{color:#183324;font:800 clamp(22px,2.8vw,28px)/1.1 Manrope,sans-serif}
.nightlog-kpi-card.is-amber .nightlog-kpi-value{color:#a85907}
.nightlog-kpi-card.is-green .nightlog-kpi-value{color:#216b3c}
.nightlog-kpi-sub{color:#6e7e74;font-size:11px;line-height:1.35}

/* 2-Column Workspace Grid (Form Left + Active Out Right) */
.nightlog-workspace-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:16px;align-items:stretch;margin-top:16px}
.nightlog-card{display:flex;flex-direction:column;padding:18px;border:1px solid #dce6df;border-radius:14px;background:#fff;box-shadow:0 6px 18px rgba(17,43,29,.04)}
.nightlog-card-head{display:flex;align-items:flex-start;gap:12px;padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid #edf2ee}
.nightlog-card-head-main{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:8px;flex:1;min-width:0}
.nightlog-card-head h3{margin:2px 0 4px;color:#1b3828;font:800 15px/1.3 Manrope,sans-serif}
.nightlog-card-head p{margin:0;color:#6b7b71;font-size:11.5px;line-height:1.45}
.nightlog-card-icon{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:10px;font:800 16px Manrope,sans-serif}
.nightlog-card-icon.is-out{background:#fff1de;color:#b8600b;border:1px solid #f4d3a9}
.nightlog-card-icon.is-in{background:#e7f6ec;color:#226c3d;border:1px solid #bfe3ca}

/* Guard Manual Input Form */
.nightlog-form{display:flex;flex-direction:column;gap:14px;flex:1}
.nightlog-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.nightlog-field{display:flex;flex-direction:column;gap:5px;color:#354b3e;font-size:11.5px;font-weight:700}
.nightlog-field.is-full{grid-column:1 / -1}
.nightlog-field .optional{color:#839289;font-weight:500;font-size:10.5px}
.nightlog-field input,.nightlog-field select,.nightlog-field textarea{width:100%;min-height:42px;padding:8px 12px;border:1px solid #cddbd1;border-radius:9px;background:#fbfdfb;color:#182e21;font:500 13px 'DM Sans',sans-serif;transition:border-color .15s,box-shadow .15s,background-color .15s}
.nightlog-field input:focus,.nightlog-field select:focus,.nightlog-field textarea:focus{outline:0;border-color:#337f59;background:#fff;box-shadow:0 0 0 3px rgba(51,127,89,.12)}
.nightlog-form-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:10px;border-top:1px solid #eff4f0}
.nightlog-feedback{font-size:11.5px;font-weight:600}

/* Active Out Cards (Shared by Guard Dashboard & Self Night Log) */
.nightlog-active-list{display:flex;flex-direction:column;gap:10px;max-height:360px;overflow-y:auto;padding-right:2px}
.nightlog-active-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;border:1px solid #ead5b7;border-left:4px solid #d47b19;border-radius:11px;background:#fffcf7;transition:transform .12s,box-shadow .12s}
.nightlog-active-card:hover{box-shadow:0 4px 14px rgba(180,102,18,.09)}
.nightlog-avatar{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:50%;background:#fbe8cc;color:#985008;font:800 15px Manrope,sans-serif;border:1px solid #f0cfa1}
.nightlog-active-body{display:flex;flex-direction:column;gap:4px;min-width:0}
.nightlog-active-title{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px}
.nightlog-active-title strong{color:#1c3425;font:800 13.5px/1.25 Manrope,sans-serif}
.nightlog-time-pill{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;background:#fff0d6;color:#995108;border:1px solid #f1d09f;font-size:10.5px;font-weight:800;white-space:nowrap}
.nightlog-active-meta{color:#66776c;font-size:11px;line-height:1.35}
.nightlog-purpose-pill{display:inline-block;margin-top:2px;padding:4px 9px;border-radius:7px;background:#f4f7f5;color:#2c4435;font-size:11.5px;font-weight:600;line-height:1.35;word-break:break-word}
.nightlog-active-actions{display:flex;align-items:center;justify-content:flex-end}
.nightlog-active-actions .button{min-height:38px;padding:0 13px;font-weight:800;white-space:nowrap}
.nightlog-manual-in-group{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}
.nightlog-manual-time-label{display:flex;flex-direction:column;gap:4px;color:#5a4118;font-size:10.5px;font-weight:800}
.nightlog-manual-time-input{min-height:38px;padding:4px 10px;border:1px solid #d7b483;border-radius:8px;background:#fff;color:#1b3324;font:700 13px 'DM Sans',sans-serif}
.nightlog-manual-time-input:focus{outline:0;border-color:#337f59;box-shadow:0 0 0 3px rgba(51,127,89,.14)}
.nightlog-table-in-group{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}

.nightlog-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:160px;padding:22px 16px;border:1px dashed #d4e0d8;border-radius:11px;background:#f9fbf9;color:#64756a;text-align:center}
.nightlog-empty-state strong{color:#294635;font:700 13px Manrope,sans-serif}
.nightlog-empty-state span{font-size:11.5px;max-width:340px;line-height:1.45}
.nightlog-empty-state[hidden]{display:none!important}

/* Register Table Card & Toolbar */
.nightlog-table-card{margin-top:16px}
.nightlog-table-toolbar{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:12px 16px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid #edf2ee}
.nightlog-table-toolbar h3,.self-night-section-title{margin:3px 0 0;color:#1b3828;font:800 15.5px/1.3 Manrope,sans-serif}
.nightlog-table-filters{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.nightlog-search-input{min-width:230px;max-width:280px}
.nightlog-col-name strong{display:block;color:#1b3626;font-size:12.5px}
.nightlog-col-name .table-subtext{display:block;margin-top:2px;color:#718277;font-size:10.5px}
.nightlog-col-time{white-space:nowrap;font-weight:700;color:#274232}
.nightlog-col-purpose{max-width:290px;line-height:1.4}
.nightlog-col-actions{text-align:right}
.nightlog-row-actions{display:inline-flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:6px}

/* Self-Service Night Log Portal (self_night_log.html) */
.self-night-shell.page-shell{width:min(100%,860px);padding:20px 16px 44px}
.self-night-page{gap:15px}
.self-night-hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(240px,.85fr);gap:16px;align-items:center;padding:18px 20px;border:1px solid #d7e4db;border-radius:15px;background:linear-gradient(135deg,#f6fbf7 0%,#ebf5ee 100%);box-shadow:0 8px 24px rgba(16,43,36,.05)}
.self-night-window-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:#153829;color:#f3faf5;font-size:10px;font-weight:800;letter-spacing:.05em}
.self-night-hero-main h1{margin:8px 0 6px;color:#143122;font:800 clamp(20px,3.6vw,26px)/1.2 Manrope,sans-serif;letter-spacing:-.02em}
.self-night-hero-main p{margin:0;color:#4f6457;font-size:12.5px;line-height:1.5}
.self-night-hero-side{display:flex;flex-direction:column;gap:10px;align-items:stretch}
.self-night-mini-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.self-night-mini-stat{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:10px;background:#fff;border:1px solid #d8e5dc;text-align:center}
.self-night-mini-stat.is-amber{border-color:#efd0a4;background:#fffaf2}
.self-night-mini-label{color:#627569;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.self-night-mini-stat.is-amber .self-night-mini-label{color:#94510a}
.self-night-mini-stat strong{color:#193525;font:800 20px/1.1 Manrope,sans-serif}
.self-night-mini-stat.is-amber strong{color:#b05e08}
.self-night-switch-btn{width:100%;justify-content:center;text-align:center;min-height:38px;background:#fff}

.self-night-tabs{gap:10px}
.self-night-tabs .visitor-mode-tab{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:10px 14px;border-radius:11px;font-size:12.5px;transition:all .15s}
.self-night-tabs .visitor-mode-tab .tab-icon{display: inline-grid;place-items:center;width:24px;height:24px;border-radius:7px;background:#edf3ef;color:#466050;font-weight:900}
.self-night-tabs .visitor-mode-tab[aria-selected=true]{border-color:#2f7a53;background:#173d2b;color:#fff;box-shadow:0 6px 16px rgba(23,61,43,.16)}
.self-night-tabs .visitor-mode-tab[aria-selected=true] .tab-icon{background:rgba(255,255,255,.18);color:#fff}
.self-night-tabs .visitor-mode-tab[aria-selected=true] .count-badge{background:#ffb74d;color:#2b1700}

.self-night-callout{margin:0 0 16px;padding:12px 14px;border-radius:10px}
.self-night-callout strong{display:block;font-size:12.5px;margin-bottom:3px}
.self-night-callout p{margin:0;font-size:11.5px;font-weight:500;color:#6e4206;line-height:1.45}

/* Self-Visitor & Self-Night Form Controls */
.self-visitor-form input,.self-visitor-form select,.self-visitor-form textarea{width:100%;min-height:46px;padding:9px 13px;border:1px solid #ccdcd0;border-radius:10px;background:#fbfdfb;color:var(--ink);font:500 14px 'DM Sans',sans-serif;transition:border-color .15s,box-shadow .15s,background-color .15s}
.self-visitor-form textarea{min-height:86px;padding:11px 13px;resize:vertical;line-height:1.45}
.self-visitor-form input:focus,.self-visitor-form select:focus,.self-visitor-form textarea:focus{outline:0;border-color:#337f59;background:#fff;box-shadow:0 0 0 3px rgba(51,127,89,.12)}

.self-night-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.self-night-field{display:flex;flex-direction:column;gap:6px;color:#334a3c;font-size:12px;font-weight:700}
.self-night-field.is-full{grid-column:1 / -1}
.self-night-field .optional{color:#7f8e85;font-weight:500;font-size:10.5px}
.self-night-submit-btn{min-height:50px;margin-top:4px;font-size:14px;font-weight:800;border-radius:11px}

.self-night-in-toolbar{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:14px}
.self-night-search-wrap{flex:1 1 280px}
.self-night-refresh-btn{min-height:46px;padding:0 16px}
.self-night-register-panel{margin-top:2px}

/* Responsive Breakpoints: Tablet (<= 980px) */
@media(max-width:980px){
  .nightlog-workspace-grid{grid-template-columns:1fr}
  .self-night-hero{grid-template-columns:1fr}
  .self-night-form-grid{grid-template-columns:1fr 1fr}
}

/* Responsive Breakpoints: Mobile (<= 680px) */
@media(max-width:680px){
  .nightlog-hero-header{flex-direction:column;align-items:stretch}
  .nightlog-hero-actions{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .nightlog-hero-actions .button:last-child{grid-column:1 / -1}
  .nightlog-kpi-strip{grid-template-columns:1fr;gap:8px}
  .nightlog-kpi-card{flex-direction:row;align-items:center;justify-content:space-between;padding:12px 14px}
  .nightlog-kpi-sub{display:none}
  .nightlog-card{padding:14px}
  .nightlog-form-grid,.self-night-form-grid{grid-template-columns:1fr}
  .nightlog-form-footer{flex-direction:column;align-items:stretch}
  .nightlog-form-footer .button{width:100%;min-height:46px}

  .nightlog-active-card{grid-template-columns:auto minmax(0,1fr);gap:10px;padding:12px}
  .nightlog-active-actions{grid-column:1 / -1;width:100%;padding-top:6px;border-top:1px dashed #eed8b8}
  .nightlog-manual-in-group{display:grid;grid-template-columns:1fr;gap:8px}
  .nightlog-manual-time-input{width:100%;min-height:42px}
  .nightlog-active-actions .button{width:100%;min-height:42px;justify-content:center}
  .nightlog-table-in-group{width:100%;justify-content:flex-end}

  .nightlog-table-toolbar{flex-direction:column;align-items:stretch;gap:10px}
  .nightlog-table-filters{width:100%;display:grid;grid-template-columns:1fr auto;gap:8px}
  .nightlog-table-filters .log-date-filter{grid-column:1 / -1;justify-content:space-between;width:100%}
  .nightlog-search-input{grid-column:1 / -1;max-width:none;width:100%}

  .self-night-shell.page-shell{padding:12px 10px 32px}
  .self-night-hero{padding:14px}
  .self-night-tabs{grid-template-columns:1fr}
  .self-night-in-toolbar{flex-direction:column;align-items:stretch}
  .self-night-refresh-btn{width:100%}

  /* Mobile Card Transformation for .nightlog-responsive-table */
  .nightlog-responsive-table,
  .nightlog-responsive-table thead,
  .nightlog-responsive-table tbody,
  .nightlog-responsive-table tr,
  .nightlog-responsive-table td{display:block;width:100%}
  .nightlog-responsive-table thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
  .nightlog-responsive-table tbody{display:grid;gap:10px}
  .nightlog-responsive-table tr{padding:12px 14px;border:1px solid #dce6df;border-radius:12px;background:#fff;box-shadow:0 2px 8px rgba(15,40,26,.04)}
  .nightlog-responsive-table tr.nightlog-empty-row{padding:18px 12px;text-align:center}
  .nightlog-responsive-table td{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid #f0f4f1;font-size:12px;text-align:right}
  .nightlog-responsive-table td:last-child{border-bottom:0;padding-bottom:0}
  .nightlog-responsive-table td:first-child{padding-top:0}
  .nightlog-responsive-table tr.nightlog-empty-row td{display:block;text-align:center;border:0}
  .nightlog-responsive-table td::before{content:attr(data-label);flex:0 0 42%;color:#617368;font:800 10px/1.4 Manrope,sans-serif;letter-spacing:.04em;text-transform:uppercase;text-align:left}
  .nightlog-responsive-table tr.nightlog-empty-row td::before{display:none}
  .nightlog-col-purpose{max-width:none}
  .nightlog-row-actions{width:100%;justify-content:flex-end}
}
