@charset "UTF-8";
:root{--bg:#f5f7f4;--white:#fff;--ink:#1a2c2a;--ink2:#314641;--muted:#73817b;--teal:#245747;--deep:#17382f;--lime:#d8ed9d;--lime2:#eef7cf;--outline:#e5eae6;--shadow:0 14px 40px rgba(24,47,39,.035);--radius:17px;--radius-lg:23px;--warn:#b47720;--red:#ba4d4d;--green:#256b4f}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:var(--bg);font-family:Inter,"Segoe UI",system-ui,-apple-system,Arial,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}
h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:780;line-height:1.2;letter-spacing:-.035em}h1{font-size:clamp(32px,3.4vw,47px)}h2{font-size:21px}h3{font-size:17px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}input,select,textarea{min-width:0}input::placeholder,textarea::placeholder{color:#a2ada5}a,button,input,select,textarea,summary{outline-offset:3px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #8cb9a1}
svg{flex-shrink:0}strong{font-weight:700}small{display:block;color:var(--muted);font-size:13px;line-height:1.55}
[hidden]{display:none!important}
.overline,.small-label,.nav-label{font-weight:800;font-size:11px;letter-spacing:.105em;color:#83928b}
.subtle,.muted-inline{color:var(--muted);font-size:13px}.tone-green{color:var(--green)!important}.tone-amber{color:var(--warn)!important}.tone-red{color:var(--red)!important}
.eyebrow{display:flex;align-items:center;gap:11px;color:var(--teal);font-size:12px;font-weight:800;letter-spacing:.145em}.eyebrow.small{font-size:10px}.eyebrow-line{width:21px;height:2px;background:#729f87}.micro-dot{width:3px;height:3px;border-radius:50%;background:var(--teal)}
.heading-period,.brand-dot{color:#8aaa60}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;white-space:nowrap;text-align:center;min-height:45px;padding:10px 17px;border-radius:11px;border:1px solid transparent;font-size:14px;font-weight:750;line-height:1.2;transition:background-color .19s ease,color .19s ease,border-color .19s ease,transform .19s ease,box-shadow .19s ease}
.btn:not(:disabled):hover{transform:translateY(-1px)}.btn:active:not(:disabled){transform:scale(.985)}.btn-primary{background:var(--teal);border-color:var(--teal);color:white}.btn-primary:hover{background:#183e34;box-shadow:0 6px 20px rgba(36,87,71,.18)}.btn-dark{background:#20352e;color:#fff}.btn-outline{color:var(--ink2);background:#fff;border-color:#dce5df}.btn-outline:hover{background:#f4f8f3;border-color:#91b19a}.btn-light{background:#f5f7f5;color:var(--ink);border-color:#e8eeea}.btn-ghost{color:var(--ink2);background:transparent}.btn-sm{min-height:37px;font-size:13px;padding:8px 12px}.btn-xs{min-height:33px;font-size:12px;padding:7px 10px;border-radius:8px}.btn-xl{min-height:56px;font-size:15px;border-radius:13px}.btn-block{display:flex;width:100%}.btn.disabled{opacity:.45;pointer-events:none}
.brand{display:inline-flex;align-items:center;gap:9px;font-size:28px;line-height:1;letter-spacing:-.065em;font-weight:850;color:var(--ink)}.brand-mark{display:inline-flex;width:37px;height:37px;align-items:center;justify-content:center;color:#fff;background:#285d4b;border-radius:12px;transform:rotate(-7deg)}.brand-mark svg{transform:rotate(7deg)}
.app-grid{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh}.sidebar{background:#203a32;color:#dce7df;padding:32px 17px 22px;display:flex;flex-direction:column;min-height:100vh;position:sticky;top:0;height:100vh;overflow:auto}.sidebar-brand{color:#fff;padding:0 14px;margin-bottom:39px}.sidebar-brand .brand-mark{background:var(--lime);color:#254c3a}.sidebar-workspace{background:#2b483d;border:1px solid #426153;border-radius:13px;padding:11px 10px;display:flex;align-items:center;gap:10px;margin-bottom:32px}.workspace-symbol{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:#d5e79f;color:#28583b}.sidebar-workspace .small-label{display:block;color:#b1c4b6;font-size:10px}.sidebar-workspace strong{display:block;color:#fff;font-size:12px;max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-nav{display:flex;flex-direction:column;gap:5px}.nav-label{color:#89a399;padding:5px 16px 12px}.nav-label-extra{margin-top:23px}.nav-item{min-height:45px;padding:10px 13px;display:flex;align-items:center;gap:13px;border-radius:10px;color:#bdcfc5;font-size:14px;font-weight:550;transition:background .2s,color .2s,transform .2s}.nav-item:hover{color:#fff;background:#315347}.nav-item.active{color:#f3ffe8;background:#3a5d4e;font-weight:720}.nav-item.active svg{color:#cdec92}.nav-active-dot{width:5px;height:5px;border-radius:50%;margin-left:auto;background:#d5ef9b}.sidebar-foot{margin-top:auto;padding-top:22px}.sidebar-tip{background:#2b483d;border:1px solid #416453;border-radius:12px;padding:14px;margin-bottom:14px}.sidebar-tip span{color:#d6eea1}.sidebar-tip strong{display:block;color:#fff;font-size:13px;margin:5px 0 1px}.sidebar-tip small{color:#b8cfc2;font-size:12px}.side-logout{display:flex;align-items:center;gap:12px;width:100%;padding:11px 14px;background:transparent;color:#b8c9bd;border:0;text-align:left;border-radius:10px;font-size:13px}.side-logout:hover{background:#3b5449;color:#fff}
.app-main{min-width:0;min-height:100vh;display:flex;flex-direction:column}.app-header{height:87px;border-bottom:1px solid var(--outline);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,3.5vw,58px);background:rgba(255,255,255,.55)}.breadcrumb-line,.app-header-actions{display:flex;align-items:center;gap:11px}.breadcrumb-line{font-size:13px;color:#89958e}.breadcrumb-line strong{color:#233931}.app-header-actions{gap:24px}.date-label{display:inline-flex;align-items:center;gap:8px;color:#67776e;font-size:13px;font-weight:630}.avatar-wrap{display:flex;align-items:center;gap:11px}.avatar{display:flex;align-items:center;justify-content:center;flex:none;width:39px;height:39px;border-radius:12px;background:#d9e6d8;color:#2e624b;font-size:15px;font-weight:790}.avatar-soft{background:#e6efdf}.avatar-sm{width:35px;height:35px;border-radius:9px;font-size:13px}.avatar-large{width:52px;height:52px;font-size:21px}.avatar-name{font-size:13px;font-weight:720;line-height:1.3}.avatar-name small{font-size:11px;font-weight:450;margin-top:3px}.content{width:min(100%,1560px);padding:35px clamp(20px,3.5vw,58px) 55px;margin:0 auto;flex:1}.app-footer{font-size:12px;color:#a0aaa2;padding:15px clamp(20px,3.5vw,58px) 24px}.mobile-nav,.more-sheet{display:none}
.page-top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.page-top h1{margin:10px 0 9px}.page-top p{font-size:14px;color:#718179;max-width:650px}.page-top>.btn{margin-top:20px}.top-gap{margin-top:24px}.top-gap-sm{margin-top:17px}
.panel{min-width:0;background:var(--white);border:1px solid var(--outline);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:23px 25px;border-bottom:1px solid #eef0ed}.panel-head h2{margin:5px 0 0;font-size:20px}.panel-inner,.panel-body{padding:22px 25px}.panel-help{padding:0 25px 20px}.mini-heading{font-size:14px;font-weight:760;margin-bottom:13px}.plain-link,.text-link{display:inline-flex;align-items:center;gap:6px;color:#285c48;font-size:13px;font-weight:740}.plain-link:hover,.text-link:hover{color:#152f26;text-decoration:underline}
.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.stat-card{min-height:155px;position:relative;overflow:hidden;background:#fff;border:1px solid var(--outline);border-radius:20px;padding:22px 23px;display:flex;justify-content:space-between;flex-direction:column;box-shadow:var(--shadow)}.stat-label{display:flex;align-items:center;gap:10px;color:#77867c;font-size:13px;font-weight:650}.stat-bottom{display:flex;align-items:baseline;gap:11px;flex-wrap:wrap}.stat-bottom>strong{font-size:40px;letter-spacing:-.06em;line-height:1.1;font-weight:820}.stat-bottom>strong.stat-currency{font-size:clamp(23px,2.1vw,33px)}.stat-trend{font-size:11px;color:#88958c;white-space:nowrap}.stat-dark{background:#24483b;color:#fff}.stat-dark .stat-label,.stat-dark .stat-trend{color:#c3d6c8}.stat-glyph{position:absolute;color:#4a7561;right:-5px;bottom:-17px;transform:rotate(-23deg)}.stat-lime{background:#e3efbf;border-color:#dcebb3}.stat-lime .stat-label,.stat-lime .stat-trend{color:#526b4e}
.two-columns{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr);gap:20px}.activity-list{padding:3px 25px 11px}.activity-item{display:flex;align-items:center;gap:13px;padding:14px 0;border-bottom:1px solid #edf0ed;min-width:0}.activity-item:last-child{border-bottom:0}.activity-info{min-width:0;flex:1}.activity-info strong,.mini-row strong{display:block;font-size:13px}.activity-info small,.mini-row small{font-size:12px}.activity-meta{text-align:right;min-width:75px}.activity-meta strong{font-size:13px;display:block}.activity-meta small{font-size:11px}.shift-progress{padding:3px 24px 5px}.shift-card,.site-row{display:flex;align-items:center;gap:14px;padding:17px 0;border-bottom:1px solid #eef1ed}.shift-card:last-child,.site-row:last-child{border-bottom:0}.shift-icon{display:grid;place-items:center;width:47px;height:47px;border-radius:13px;background:#edf3e8;color:#315e45;flex:none}.shift-morning{background:#fff3d8;color:#b7822c}.shift-night{background:#e4e9fb;color:#667cb1}.shift-info{flex:1}.shift-info strong,.site-row strong{font-size:14px;display:block}.shift-info small,.site-row small{font-size:12px}.shift-count{font-size:24px;font-weight:800;text-align:right}.shift-count small{font-size:11px}.shortcut-divider{border-top:1px solid var(--outline);margin:5px 25px 19px}.panel>.mini-heading{margin-left:25px}.quick-grid{padding:0 25px 24px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.quick-item{display:flex;align-items:center;gap:8px;border:1px solid #e9eee9;background:#f9fbf8;padding:13px;border-radius:11px;font-size:12px;font-weight:680;min-height:49px}.quick-item>span{flex:1}.quick-item>svg:first-child{color:#537962}.quick-item>svg:last-child{color:#98aaa0}.quick-item:hover{border-color:#aac7aa;background:#f4f9f0}
.pill{display:inline-flex;align-items:center;justify-content:center;border-radius:40px;padding:5px 10px;line-height:1.2;font-size:11px;font-weight:750;white-space:nowrap;background:#f2f5f0;color:#58685e}.pill-green{background:#e3f3e6;color:#287547}.pill-amber{background:#fff3db;color:#a77224}.pill-red{background:#fbe9e8;color:#b44b48}.pill-muted{background:#f0f2f0;color:#76847b}
.table-responsive{overflow-x:auto;width:100%;scrollbar-width:thin}.data-table{border-collapse:collapse;min-width:640px;width:100%;font-size:13px;text-align:left}.data-table thead{background:#fbfcfa}.data-table th{padding:15px 17px;color:#89968e;font-weight:740;font-size:11px;letter-spacing:.035em;border-bottom:1px solid var(--outline);white-space:nowrap}.data-table td{padding:15px 17px;border-bottom:1px solid #edf0ed;vertical-align:middle;color:#42534a}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#fafcf9}.data-table td>small{font-size:11px}.person{display:flex;align-items:center;gap:10px;min-width:155px}.person strong{font-size:13px;display:block;color:#26392f}.person small{font-size:11px}.table-grade{display:inline-flex;padding:5px 8px;border:1px solid #e2eae4;border-radius:7px;font-size:11px;font-weight:700}.table-action,.icon-button{display:inline-flex;align-items:center;justify-content:center;flex:none;width:33px;height:33px;border:1px solid #e8ece8;background:white;color:#52695b;border-radius:8px}.table-action:hover,.icon-button:hover{background:#ecf5e7;border-color:#b6d6b5}.selected-row{background:#f1f7ec!important}.search-field{display:flex;align-items:center;gap:9px;background:#f7f9f6;border:1px solid #e5ebe5;border-radius:10px;padding:8px 13px;min-width:190px}.search-field svg{color:#97a69a}.search-field input{background:transparent;border:0;outline:none;width:165px;font-size:12px}
.empty-state{display:flex;align-items:center;flex-direction:column;justify-content:center;text-align:center;color:#91a097;min-height:180px;padding:25px;gap:8px}.empty-state strong{color:#415649;font-size:14px}.empty-state p{font-size:13px;max-width:270px}.compact-empty{min-height:126px;padding:15px}.form-panel{scroll-margin-top:95px}.summary-head{cursor:pointer;list-style:none}.summary-head::-webkit-details-marker{display:none}.summary-hint{font-size:12px;color:#8a9c8e;display:flex;align-items:center;gap:9px}.form-panel[open]>.summary-head .summary-hint svg{transform:rotate(90deg)}.form-stack{display:flex;flex-direction:column;gap:18px}.form-subheading{font-size:12px;color:#466e57;font-weight:800;border-bottom:1px solid var(--outline);padding-bottom:10px;margin-top:5px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.input-wrap{display:flex;flex-direction:column;gap:7px;min-width:0}.input-wrap>span:first-child{font-size:12px;font-weight:700;color:#485d51}.input-wrap>span:first-child small{display:inline;font-weight:450;font-size:11px}.input-wrap input,.input-wrap select,.input-wrap textarea,.grade-row input,.review-form input,.review-form select{display:block;width:100%;background:#fff;color:#223c2e;border:1px solid #dfe7df;border-radius:10px;min-height:45px;padding:10px 12px;font-size:14px;transition:border-color .2s,box-shadow .2s}.input-wrap input:focus,.input-wrap select:focus,.input-wrap textarea:focus{outline:0;border-color:#5b9873;box-shadow:0 0 0 3px #e1f3e3}.input-wrap input[type=file]{padding:9px;max-width:100%;font-size:12px}.input-wrap input[type=date],.input-wrap input[type=time]{min-height:45px}.input-wrap textarea{min-height:85px;resize:vertical}.input-wrap.compact>span:first-child{font-size:11px}.input-wrap.compact input{min-height:39px;padding:7px 9px;font-size:13px}.form-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.help-hint{display:flex;align-items:center;gap:8px;color:#86988b;font-size:12px;line-height:1.6}.small-info{color:#7a8a7c;font-size:12px;line-height:1.6;margin-bottom:14px}.doc-links{display:flex;gap:12px;flex-wrap:wrap}.doc-links a{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#365e4b}
.notice{display:flex;align-items:center;gap:16px;border:1px solid #f0dfbe;background:#fff8e8;border-radius:15px;padding:16px 20px;margin:0 0 20px}.notice>span{display:grid;place-items:center;width:40px;height:40px;background:#fbedcc;color:#a77e34;border-radius:11px;flex:none}.notice>div{flex:1}.notice strong{font-size:14px}.notice p{font-size:12px;color:#927d5f;margin-top:3px}.notice .btn{flex:none}.compact-notice{display:block;font-size:12px;margin:16px 23px}.filter-line,.inline-form{display:flex;align-items:end;gap:13px;flex-wrap:wrap}.filter-line{padding:15px 21px;justify-content:space-between}.inline-form>.input-wrap{min-width:175px}.inside-list{padding:12px 23px 20px}.inside-list>.muted-inline{display:block;padding:16px 0}.mini-row{display:flex;align-items:center;gap:10px;border-bottom:1px solid #eef0ee;padding:11px 0;flex-wrap:wrap}.mini-row:last-child{border-bottom:0}.mini-row>div{flex:1;min-width:100px}.site-row{padding:17px 23px}.site-row>div{flex:1}.site-count{background:#f3f7f1;padding:7px 11px;border-radius:8px;font-size:12px;font-weight:740}.inside-footer{margin:0 23px;padding:17px 0 23px;border-top:1px solid #e9eee9}.evidence-pair{display:flex;gap:5px}.evidence-pair img{width:37px;height:41px;object-fit:cover;border-radius:7px;border:1px solid #e7eae7}.evidence-missing{display:grid;place-items:center;width:37px;height:41px;border:1px dashed #dde7dd;border-radius:7px}.table-details{font-size:11px;max-width:180px}.table-details summary{color:#497659;cursor:pointer;font-size:11px;list-style:none}.table-details summary:hover{text-decoration:underline}.table-details small{display:block;overflow-wrap:anywhere}.review-form{display:flex;flex-direction:column;gap:5px;min-width:135px}.review-form input,.review-form select{min-height:32px;font-size:11px;padding:5px 8px;border-radius:7px}.review-form .btn{align-self:flex-start}
.payroll-summary-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(150px,1fr);gap:16px}.payroll-banner{overflow:hidden;position:relative;background:#234c3c;color:#fff;border-radius:20px;padding:24px 28px;display:flex;flex-direction:column;gap:8px;min-height:145px}.payroll-banner .overline{color:#b9d3bf}.payroll-banner strong{font-size:37px;line-height:1.1;letter-spacing:-.05em}.payroll-banner small{color:#c9dbca;max-width:430px}.banner-deco{position:absolute;right:30px;top:22px;color:#4b785c;transform:rotate(-16deg)}.payroll-banner-secondary{border:1px solid #dfe7e1;background:#edf4e7;border-radius:20px;padding:19px 22px;display:flex;flex-direction:column;justify-content:space-between}.payroll-banner-secondary>span{color:#688e72}.payroll-banner-secondary strong{font-size:39px;letter-spacing:-.05em}.payroll-layout{grid-template-columns:minmax(0,1.12fr) minmax(345px,.88fr)}.payroll-detail .panel-head h2{font-size:19px}.pay-available{margin:22px 23px 7px;background:#e8f3d3;padding:19px 22px;border-radius:15px}.pay-available>span{display:block;font-size:12px;color:#50734c;font-weight:670}.pay-available strong{font-size:29px;letter-spacing:-.045em;display:block;margin:5px 0}.pay-available small{font-size:11px;color:#60815a}.balance-rows{padding:10px 23px}.balance-rows>div{padding:10px 0;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #eef1ed;font-size:13px;color:#607269}.balance-rows>div>strong{font-size:13px;color:#273e33;text-align:right;white-space:nowrap}.balance-rows>div:last-child{border-bottom:0}.balance-rows>.balance-total{border-top:1px solid #d7e5d8;border-bottom:0;padding-top:15px;color:#2b513c;font-weight:730}.balance-rows>.balance-total strong{font-size:18px}.inline-details{border-top:1px solid #edf0ed}.inline-details>summary{display:flex;align-items:center;gap:10px;padding:17px 23px;font-size:13px;font-weight:720;cursor:pointer;list-style:none}.inline-details>summary::-webkit-details-marker{display:none}.inline-details>summary>svg:last-child{margin-left:auto;transition:transform .18s}.inline-details[open]>summary>svg:last-child{transform:rotate(90deg)}.inline-body{padding:0 23px 20px}.inline-payment-form{display:flex;flex-direction:column;gap:11px}.form-separator{height:25px;display:flex;align-items:center;justify-content:center;color:#98a99d;font-size:10px;font-weight:700;letter-spacing:.1em;margin:6px 0}.form-separator:before,.form-separator:after{content:"";height:1px;background:#e8ede8;flex:1;margin:0 10px}.transaction-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:35px;padding:20px 25px 25px}.transaction-grid .mini-row>.pill{font-size:10px}.transaction-dot{width:10px;height:10px;background:#dfb6b0;border-radius:50%;flex:none}.transaction-advance{background:#bed1f0}.request-actions{display:flex;align-items:center;gap:4px;width:100%;padding-left:22px}
.report-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.report-card{background:#fff;border:1px solid var(--outline);border-radius:20px;padding:23px 25px}.report-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.report-card h2{font-size:18px}.report-card-count{font-size:36px;font-weight:790;letter-spacing:-.04em;padding-top:4px}.report-card-count span{font-size:13px;font-weight:450;color:#8d9c91}.report-figures{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;border-top:1px solid var(--outline);padding-top:17px;margin-top:18px}.report-figures small{font-size:11px}.report-figures strong{display:block;font-size:15px;margin-top:4px;overflow-wrap:anywhere}
.site-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:20px 23px}.site-setting-card{border:1px solid var(--outline);padding:18px;border-radius:15px;display:flex;flex-direction:column;gap:18px}.site-setting-title{display:flex;align-items:center;gap:11px;flex-wrap:wrap}.site-setting-title>strong{flex:1;font-size:14px}.site-setting-title>.pill{font-size:10px}.site-setting-card .form-grid{gap:13px}.site-setting-actions{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.rule-row{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:9px;align-items:end;border-bottom:1px solid #edf0ed;padding:10px 0}.rule-row:last-of-type{margin-bottom:9px}.rule-row .input-wrap>span:first-child{font-size:10px}.grade-row{display:grid;grid-template-columns:1fr 1.2fr auto;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid #eff1ec}.grade-row>input,.grade-amount{border:1px solid #dfe7df;border-radius:9px;min-width:0;padding:8px 10px;height:39px;font-size:13px;background:#fff}.grade-amount{display:flex;align-items:center;gap:5px;color:#83958a}.grade-amount input{border:0;padding:0;width:100%;min-width:0;outline:none;font-size:13px}.tag-list{display:flex;flex-wrap:wrap;gap:10px;padding-bottom:24px}.switch-label{display:flex;align-items:center;gap:9px;font-size:13px}.sop-list{padding:5px 23px 20px}.sop-item{display:flex;align-items:flex-start;gap:13px;padding:17px 0;border-bottom:1px solid #eef0ed}.sop-item:last-child{border:0}.sop-icon{width:39px;height:39px;display:grid;place-items:center;background:#edf5eb;color:#3f795a;border-radius:11px;flex:none}.sop-item strong{font-size:14px}.sop-item small{margin:4px 0}.sop-item p{color:#7c8b80;font-size:12px;max-width:510px}.sop-public-list{display:grid;gap:13px;max-width:900px}.sop-accordion>summary{display:flex;align-items:center;gap:16px;padding:23px;list-style:none;cursor:pointer}.sop-accordion>summary::-webkit-details-marker{display:none}.sop-accordion>summary>span:nth-child(2){flex:1}.sop-accordion>summary>span:nth-child(2) strong{display:block;font-size:16px}.sop-accordion>summary>svg:last-child{transition:transform .2s}.sop-accordion[open]>summary>svg:last-child{transform:rotate(90deg)}.sop-number{width:43px;height:43px;border-radius:11px;background:#eff4eb;color:#789173;display:grid;place-items:center;font-weight:800;font-size:14px}.sop-content{padding:0 26px 25px 82px;font-size:14px;color:#52685a;line-height:1.9}
.worker-hero{position:relative;overflow:hidden;background:#dbeeb8;min-height:228px;border-radius:22px;display:flex;align-items:center;justify-content:space-between;padding:30px 37px}.worker-hero-text{display:flex;align-items:flex-start;flex-direction:column;gap:9px;z-index:1}.worker-hero-text .overline{color:#567750}.worker-hero-text>strong{font-size:clamp(34px,5vw,49px);letter-spacing:-.055em;line-height:1.1}.worker-hero-text small{max-width:365px;color:#63855b}.worker-hero-text .btn{margin-top:11px}.worker-hero-art{display:grid;place-items:center;color:#7caa76;background:#cce6a9;width:180px;height:180px;border-radius:50%;transform:translate(10px,25px) rotate(-13deg);margin-right:4vw}.mini-orbit{position:absolute;border:1px solid #b7d49d;width:250px;height:250px;border-radius:50%}.working-panel{margin:20px 24px;display:flex;align-items:center;gap:14px;padding:19px;background:#f2f7ee;border-radius:15px}.working-panel strong{font-size:15px;display:block}.working-illustration{width:53px;height:53px;border-radius:14px;background:#e0eecf;display:grid;place-items:center;color:#4b7955}.panel>.btn-block{width:calc(100% - 48px);margin:0 24px 22px}.padding-side{padding:14px 24px 22px}.panel-bottom-link{margin-top:8px!important}.inline-status{font-size:12px;color:#46744b;display:flex;align-items:center;gap:7px;margin-top:9px}
.public-wrap{width:min(100%,1350px);padding:0 30px;margin:auto;min-height:100vh;display:flex;flex-direction:column}.public-header{height:94px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e1e9e2;gap:12px}.header-tools{display:flex;align-items:center;gap:15px}.today-pill{color:#60786a;display:flex;align-items:center;gap:7px;font-size:13px}.standalone-content{flex:1;display:flex;align-items:center}.public-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:24px 0;color:#8c9b8f;font-size:12px;border-top:1px solid #e1e9e2}
.clock-layout{width:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(385px,520px);gap:clamp(30px,5vw,85px);align-items:center;padding:40px 0 55px}.clock-intro{padding:15px 0 15px 30px;max-width:590px}.clock-intro h1{font-size:clamp(48px,6vw,88px);letter-spacing:-.075em;line-height:1.07;margin:27px 0 24px;color:#1b4032}.clock-intro h1 em,.login-intro h1 em{font-style:normal;color:#7fa15e}.clock-intro>p,.login-intro>p{font-size:17px;line-height:1.7;color:#788b7a;max-width:440px}.clock-explain{margin-top:52px;display:grid;gap:0;max-width:385px}.explain-row{display:flex;gap:17px;align-items:center;border-bottom:1px solid #e3eae2;padding:15px 0}.explain-row:last-child{border:0}.explain-number{font-size:12px;color:#91ab93;font-weight:750}.explain-row>div{flex:1}.explain-row strong{display:block;font-size:14px}.explain-row small{font-size:12px}.explain-row>svg{color:#a8c19d}.clock-intro-foot{display:flex;align-items:start;gap:10px;font-size:12px;line-height:1.7;color:#849886;max-width:375px;margin-top:35px}
.clock-panel{background:#fff;border:1px solid #e2e8e1;border-radius:25px;box-shadow:0 25px 75px rgba(26,62,44,.075);overflow:hidden}.clock-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:25px 29px 19px}.clock-panel-head h2{font-size:26px;margin:4px 0 4px}.clock-panel-head p{font-size:13px;color:#87978a}.clock-live{border:1px solid #e7ece5;border-radius:12px;padding:9px 12px;text-align:center;display:flex;align-items:center;gap:6px}.clock-live strong{font-size:19px;letter-spacing:-.03em}.clock-live small{font-size:10px}.live-indicator{width:7px;height:7px;background:#6ca76c;border-radius:50%;box-shadow:0 0 0 4px #dcefdb}.clock-panel form{padding:0 29px 28px}.fieldgroup{padding:20px 0;border-top:1px solid #eff1ed}.fieldgroup-title{font-size:11px;color:#95a597;display:flex;align-items:center;gap:13px;font-weight:780;letter-spacing:.08em;margin-bottom:14px}.fieldgroup-title span{font-size:13px;color:#4e6856;letter-spacing:0}.team-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.team-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:17px;border:1.5px solid #e0e9df;background:#fcfdfa;border-radius:15px;min-height:148px;cursor:pointer;transition:transform .19s,background .19s,border-color .19s,box-shadow .19s}.team-card:hover{transform:translateY(-2px);border-color:#a7c5a8}.team-card:has(input:checked){border-color:#3f8a60;background:#f0f9e8;box-shadow:0 0 0 3px #e8f4dd}.team-card input{position:absolute;opacity:0;width:1px;height:1px}.team-card:focus-within{outline:2px solid #7db994;outline-offset:2px}.team-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:10px}.team-sun{background:#fff1d6;color:#b38a43}.team-moon{background:#e6eaf8;color:#7487be}.team-label{font-size:9px;font-weight:820;letter-spacing:.09em;color:#849788;margin-top:5px}.team-card strong{font-size:15px}.team-card small{font-size:12px}.team-check{position:absolute;top:12px;right:12px;display:grid;place-items:center;width:24px;height:24px;border:1px solid #e0eae1;border-radius:50%;color:transparent}.team-card:has(input:checked) .team-check{background:#33875b;border-color:#33875b;color:white}.field-row{display:grid;grid-template-columns:1.3fr 1fr;gap:12px}.action-toggle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));background:#f3f6f1;border:1px solid #e4ebe2;padding:5px;gap:4px;border-radius:12px;margin-bottom:15px}.action-toggle label{position:relative;cursor:pointer}.action-toggle input{position:absolute;opacity:0}.action-toggle span{display:flex;align-items:center;justify-content:center;gap:8px;padding:11px;border-radius:9px;font-size:13px;color:#4a6352;font-weight:750}.action-toggle input:checked+span{background:white;color:#245a45;box-shadow:0 2px 9px #233b2914}.action-toggle input:focus-visible+span{outline:2px solid #6ca678}.verify-grid{display:grid;grid-template-columns:1fr;gap:8px}.verify-card{display:flex;align-items:center;gap:10px;background:#f8faf7;border:1px solid #e8ede6;border-radius:11px;padding:10px 11px}.verify-icon{color:#739477}.verify-card>div{flex:1;min-width:0}.verify-card strong{display:block;font-size:12px}.verify-card small{font-size:11px;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.verify-card button{flex:none;min-height:44px;min-width:96px;font-size:13px}.camera-box{border-radius:12px;background:#162c26;margin-top:12px;position:relative;overflow:hidden}.camera-box video,.camera-box img{width:100%;max-height:260px;object-fit:cover;display:block;aspect-ratio:4/3;transform:scaleX(-1)}.camera-box img{transform:scaleX(-1)}.camera-overlay{position:absolute;left:10px;top:10px}.camera-label{display:inline-flex;gap:6px;align-items:center;padding:7px 9px;background:#10261fa6;color:white;border:1px solid #fff3;border-radius:8px;font-size:11px}.camera-controls{position:absolute;left:0;right:0;bottom:12px;display:flex;align-items:center;justify-content:center;gap:10px}.clock-message{margin-bottom:13px;padding:12px;border-radius:10px;background:#fff0ec;color:#a14c40;font-size:12px}.clock-help{display:flex;align-items:flex-start;gap:9px;color:#93a197;font-size:11px;line-height:1.6;margin-top:13px}.clock-complete{padding:30px 35px 38px;text-align:center}.clock-complete h2{margin:17px 0 9px;font-size:25px}.clock-complete p{font-size:14px;color:#72847a;line-height:1.65;margin-bottom:25px}.complete-icon{display:grid;place-items:center;width:75px;height:75px;border-radius:50%;background:#e2f4d6;color:#2d8056;margin:0 auto;animation:completePop .4s both}
.login-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(340px,.8fr);gap:clamp(30px,6vw,110px);align-items:center;width:100%;padding:65px 20px}.login-intro{max-width:620px}.login-intro h1{font-size:clamp(44px,5.4vw,72px);letter-spacing:-.07em;margin:30px 0 23px}.login-art{position:relative;height:240px;margin:25px 0 0;display:flex;align-items:center}.art-orbit{position:absolute;border:1px solid #d5e3d1;border-radius:50%;width:260px;height:260px;left:35%;top:-10px}.art-orbit-two{width:195px;height:195px;left:43%;top:25px;background:#eaf2df}.art-card{width:250px;padding:23px;border-radius:18px;background:#d8eba5;color:#305a40;z-index:1;box-shadow:var(--shadow);transform:rotate(-5deg)}.art-card>span{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:#bcd68c}.art-card p{font-size:13px;margin-top:24px}.art-card strong{font-size:21px;display:block;margin-top:3px}.art-bar{height:7px;background:#c2dda2;border-radius:20px;margin-top:21px}.art-bar i{width:72%;height:100%;display:block;border-radius:20px;background:#568e59}.login-form-card{background:#fff;border:1px solid #e6ece6;border-radius:25px;padding:37px;box-shadow:0 23px 55px #213f3210}.login-form-card h2{font-size:27px;margin:7px 0 9px}.login-form-card>p{font-size:13px;color:#829187;margin-bottom:24px;line-height:1.7}.login-form-card .form-stack{gap:17px}.password-wrap{position:relative;display:block}.password-wrap input{padding-right:52px}.password-toggle{position:absolute;right:0;top:0;height:44px;width:44px;display:grid;place-items:center;color:#779182;background:transparent;border:0}.login-foot{display:flex;align-items:center;gap:9px;color:#819388;font-size:12px;border-top:1px solid #edf0ed;margin-top:23px;padding-top:20px}.centered-link{display:flex;align-items:center;justify-content:center;min-height:44px;margin-top:23px}
.public-footer>span:first-child{font-weight:730}
.toast{display:flex;align-items:center;gap:12px;padding:13px 17px;border-radius:12px;margin:14px 0;background:#e7f3e6;color:#275f3f;font-size:13px;border:1px solid #cae5ca;animation:toastIn .25s ease both}.toast-error{background:#fff0ed;color:#a3473e;border-color:#f0d4cf}
.print-body{background:#f3f5f1}.slip-wrap{max-width:750px;margin:50px auto;background:#fff;border-radius:18px;padding:43px 50px;box-shadow:0 15px 40px #1d36260c}.slip-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:30px;border-bottom:2px solid #244b38}.slip-header h1{font-size:30px;margin:9px 0}.slip-header p{color:#87968a;font-size:13px}.slip-branch{background:#e3f3d9;border-radius:15px;padding:18px;color:#276b45}.slip-person{display:grid;grid-template-columns:1fr 1fr;padding:27px 0 32px;gap:20px;border-bottom:1px solid #e6ebe5}.slip-person>div{display:flex;flex-direction:column}.slip-person small{font-size:11px;letter-spacing:.08em}.slip-person strong{font-size:17px;margin-top:5px}.slip-person span{font-size:12px;color:#879588}.slip-rows{padding-top:23px}.slip-rows>div{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid #eef0eb;font-size:14px}.slip-rows strong{text-align:right;white-space:nowrap}.slip-subtotal{font-weight:800}.slip-total{border:0!important;background:#e7f2da;padding:18px!important;border-radius:12px;margin-top:14px;font-weight:800}.slip-total strong{font-size:23px}.slip-note{margin-top:24px;font-size:12px;color:#839084;line-height:1.7}.slip-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:center;margin-top:30px}
@keyframes toastIn{from{opacity:0;transform:translateY(-9px)}to{opacity:1;transform:translateY(0)}}@keyframes completePop{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes slideIn{from{opacity:0;transform:translateY(11px)}to{opacity:1;transform:translateY(0)}}
.page-top,.stats-grid,.panel{animation:slideIn .26s ease both}
@media(max-width:1200px){.app-grid{grid-template-columns:220px minmax(0,1fr)}.sidebar{padding-left:12px;padding-right:12px}.content{padding:28px 22px 50px}.app-header{padding:0 22px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.two-columns{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.payroll-layout{grid-template-columns:minmax(0,1fr)}.site-settings-grid{grid-template-columns:minmax(0,1fr)}.clock-layout{gap:40px}.clock-intro{padding-left:0}}
@media(max-width:900px){.app-grid{grid-template-columns:190px minmax(0,1fr)}.sidebar{padding:26px 9px}.sidebar-brand{margin-bottom:29px}.sidebar-workspace{gap:7px}.sidebar-workspace strong{max-width:102px}.nav-item{font-size:13px;gap:9px}.app-header-actions{gap:12px}.date-label{display:none}.two-columns{grid-template-columns:minmax(0,1fr)}.clock-layout{grid-template-columns:1fr;max-width:690px;margin:auto}.clock-intro{padding:0}.clock-intro h1{font-size:61px}.clock-explain{display:none}.clock-intro-foot{margin-top:18px}.public-wrap{padding:0 22px}.login-layout{grid-template-columns:1fr;padding:32px 0}.login-intro{display:none}.login-form-card{max-width:520px;margin:auto}.report-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.app-grid{display:block}.sidebar{display:none}.mobile-nav{display:flex;position:fixed;z-index:50;bottom:0;left:0;right:0;min-height:calc(72px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #e6eee5;box-shadow:0 -6px 26px #1e402010;justify-content:space-around;padding:6px 6px calc(6px + env(safe-area-inset-bottom))}.mobile-nav-item{border:0;background:transparent;color:#94a095;display:flex;flex:1;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:6px 2px;border-radius:9px;font-size:10px;font-weight:700;min-width:0}.mobile-nav-item span{white-space:nowrap;font-size:10px}.mobile-nav-item.active{color:#286c48}.mobile-nav-item.active svg{background:#e3f3dc;width:38px;height:28px;border-radius:9px;padding:3px}.more-sheet{display:flex;align-items:flex-end;justify-content:center;position:fixed;inset:0;z-index:60;background:#14251d99}.more-panel{background:#fff;width:100%;border-radius:22px 22px 0 0;padding:22px 22px calc(25px + env(safe-area-inset-bottom));box-shadow:0 -10px 40px #14251d30;animation:slideIn .24s ease}.more-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:15px}.more-head button{background:none;border:0}.more-panel>a,.sheet-logout{display:flex;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid var(--outline);font-weight:650;font-size:14px;width:100%}.more-panel>a>svg:last-child{margin-left:auto}.sheet-logout{background:none;border:0;color:#a04848;text-align:left}.app-main{min-height:100vh}.app-header{height:65px;padding:0 17px}.app-header .breadcrumb-name{display:none}.breadcrumb-line{font-size:12px}.avatar-wrap{gap:8px}.avatar-name{display:none}.avatar{width:35px;height:35px}.app-header-actions>.btn{display:none}.content{padding:23px 16px 115px}.page-top h1{font-size:34px;margin:8px 0}.page-top p{font-size:13px}.page-top{gap:12px;flex-wrap:wrap}.page-top>.btn{margin-top:0}.app-footer{display:none}.stats-grid{gap:10px}.stat-card{padding:17px;min-height:137px;border-radius:16px}.stat-label{font-size:11px;gap:7px}.stat-label svg{width:16px;height:16px}.stat-bottom>strong{font-size:34px}.stat-bottom>strong.stat-currency{font-size:23px}.stat-trend{font-size:10px}.panel{border-radius:17px}.panel-head{padding:19px 18px}.panel-head h2{font-size:17px}.panel-body,.panel-inner{padding:18px}.activity-list,.shift-progress{padding:5px 18px 10px}.quick-grid{padding:0 18px 20px}.two-columns{gap:14px}.search-field{min-width:160px}.search-field input{width:130px}.payroll-summary-grid{grid-template-columns:1fr}.payroll-banner-secondary{display:none}.transaction-grid{grid-template-columns:1fr;gap:15px;padding:18px}.site-settings-grid{padding:16px}.site-setting-card{padding:13px}.report-cards{gap:10px}.report-card{padding:16px;border-radius:16px}.report-figures{grid-template-columns:1fr;gap:5px}.report-figures>div{display:flex;justify-content:space-between}.report-card-count{font-size:30px}.worker-hero{padding:24px;min-height:184px}.worker-hero-art{width:110px;height:110px;margin-right:-15px}.worker-hero-art>svg{width:58px}.inline-form{align-items:end}.filter-line{padding:15px}.public-header{height:78px}.public-header .today-pill{display:none}.clock-layout{padding:20px 0 35px;gap:21px}.clock-intro h1{font-size:clamp(39px,9vw,57px);margin:15px 0 12px}.clock-intro>p{font-size:14px;max-width:430px}.clock-intro-foot{display:none}.clock-panel-head{padding:21px 20px}.clock-panel form{padding:0 20px 23px}.clock-panel-head h2{font-size:23px}.login-form-card{padding:28px 22px}.public-footer{padding:17px 0;font-size:11px}.notice{padding:12px;flex-wrap:wrap}.notice>div{min-width:185px}.notice .btn{margin-left:48px}.form-grid{gap:11px}.sop-content{padding:0 22px 22px 22px}}
@media(max-width:420px){.page-top>.btn{width:100%;justify-content:center}.stats-grid{gap:8px}.stat-card{padding:13px 12px;min-height:127px}.stat-bottom>strong{font-size:30px}.stat-bottom>strong.stat-currency{font-size:20px}.stat-label{font-size:10px}.panel-head{gap:9px}.panel-head>.search-field{min-width:100px;padding:7px}.search-field input{width:92px}.clock-layout{padding-top:20px}.team-card{padding:12px;min-height:140px}.team-card strong{font-size:13px}.team-icon{width:33px;height:33px}.field-row{grid-template-columns:1fr}.clock-panel-head{padding:20px 17px}.clock-panel form{padding:0 17px 20px}.clock-panel-head h2{font-size:21px}.clock-live strong{font-size:16px}.clock-live{padding:7px}.verify-card{padding:10px}.verify-card .btn{font-size:12px;min-height:44px;min-width:104px;padding:8px 10px;white-space:nowrap}.verify-card small{font-size:12px;max-width:unset;overflow-wrap:anywhere;white-space:normal}.public-header .btn.btn-sm{min-height:44px}.public-header .brand{min-height:44px}.public-wrap{padding:0 14px}.public-footer>span:last-child{display:none}.form-grid{grid-template-columns:1fr}.site-setting-card .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-cards{grid-template-columns:1fr}.report-figures{grid-template-columns:repeat(3,minmax(0,1fr))}.report-figures>div{display:block}.grade-row{grid-template-columns:1fr 1fr auto}.rule-row{grid-template-columns:repeat(3,1fr)}.rule-row .btn{grid-column:1 / -1}.payroll-banner{padding:20px}.payroll-banner strong{font-size:30px}.banner-deco{right:5px;opacity:.25}.slip-wrap{margin:0;padding:24px 17px;border-radius:0}.slip-total strong{font-size:18px}}
/* Privacy notice & operations readiness: compact and touch-friendly. */
.privacy-ack{display:flex;align-items:flex-start;gap:12px;padding:13px 15px;margin-bottom:15px;border:1px solid #e0e8dd;border-radius:12px;background:#f6faf4;color:#445f50;font-size:13px;line-height:1.6;cursor:pointer}
.privacy-ack input{width:19px;height:19px;flex:none;margin:3px 0;accent-color:#2d7250}
.privacy-ack:focus-within{outline:2px solid #83ba92;outline-offset:2px}
.privacy-ack span{overflow-wrap:anywhere}
.readiness-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;padding:19px 24px}
.readiness-item{display:flex;gap:12px;align-items:flex-start;border:1px solid #e7ede7;border-radius:13px;padding:15px;background:#fcfdfb}
.readiness-item>.readiness-symbol{display:grid;place-items:center;flex:none;width:35px;height:35px;border-radius:10px;background:#edf4e8;color:#406c50}
.readiness-item strong{font-size:14px;display:block}.readiness-item small{font-size:12px}
.readiness-bullet{font-size:12px;color:#687e6f;display:flex;align-items:center;gap:7px;margin-top:7px}
.readiness-good{color:#2d794b}.readiness-warn{color:#af7734}
.readiness-note{padding:0 24px 22px;font-size:13px;color:#667a6b}
.period-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.period-summary>div{background:#fff;border:1px solid #e3e9e3;border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:5px}
.period-summary>div strong{font-size:25px;letter-spacing:-.04em}
.period-timeline{display:grid;gap:10px;padding:14px 21px}
.period-timeline a{display:flex;align-items:center;gap:14px;padding:14px;border:1px solid #e4eae4;border-radius:12px}
.period-timeline a:hover{background:#f5faf3}
.period-timeline a>div{flex:1;min-width:0}
.period-timeline a strong{font-size:14px}
.period-timeline a small{font-size:12px}
.period-timeline a>span:last-child{font-weight:800;color:#2e6048;font-size:14px}
@media(max-width:600px){.readiness-grid{grid-template-columns:1fr;padding:15px}.readiness-note{padding:0 15px 20px}.period-summary{grid-template-columns:1fr}.period-timeline{padding:12px}.privacy-ack{font-size:14px}}
/* Reachable header controls on desktop/tablet as well as mobile. */
.public-header .brand,.public-header .btn.btn-sm{min-height:44px}
@media print{body{background:#fff!important}.no-print{display:none!important}.slip-wrap{box-shadow:none;margin:0;max-width:none}.slip-rows>div{break-inside:avoid}@page{size:A4;margin:14mm}}

/* SMART SHIFT ADMIN */
.shift-quick-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}
.shift-quick-stats>div{display:flex;align-items:center;gap:13px;background:#fff;border:1px solid #e2e9e2;border-radius:16px;padding:17px 20px}
.shift-quick-stats>div>span{display:grid;place-items:center;width:41px;height:41px;border-radius:12px;background:#eaf3e5;color:#3e7553;flex:none}
.shift-quick-stats strong{font-size:14px;display:block}.shift-quick-stats small{font-size:12px;color:#516753}
.shift-template-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;padding:20px}
.shift-template-card{border:1px solid #e1e8e1;background:#fbfdf9;border-radius:15px;padding:18px;display:flex;flex-direction:column;gap:10px}
.shift-template-card>row,.shift-template-card>.shift-template-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px}
.shift-template-card .shift-letter{display:grid;place-items:center;width:39px;height:39px;border-radius:10px;background:#285a42;color:#fff;font-size:16px;font-weight:800}
.shift-template-card>strong{font-size:17px;color:#243d31}
.shift-timing{display:flex;align-items:center;gap:8px;font-size:22px;font-weight:800;letter-spacing:-.04em;color:#1e4734}
.shift-template-bottom{border-top:1px solid #e1e8e1;padding-top:12px;margin-top:auto}
.shift-template-bottom>span{display:flex;align-items:center;gap:6px;font-size:12px;color:#516b56}
.panel-details{border-top:1px solid #e6eee4;padding:0 22px}
.panel-details>summary{display:flex;align-items:center;gap:9px;padding:17px 0;cursor:pointer;list-style:none;font-size:14px;font-weight:750}
.panel-details>summary::-webkit-details-marker{display:none}
.panel-details[open]>summary>svg:last-child{transform:rotate(90deg)}
.panel-details>summary>svg:last-child{margin-left:auto;transition:transform .2s}
.shift-editor-body{padding:10px 0 25px}
.shift-notice{display:flex;align-items:flex-start;gap:9px;padding:12px 15px;border:1px solid #cfe1d3;border-radius:11px;background:#f4f9f3;font-size:13px;color:#42604b}
.weekday-picker{border:0;margin:0;padding:0}
.weekday-picker legend{font-size:12px;color:#405d47;font-weight:800;margin-bottom:10px}
.weekday-picker>div{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.weekday-picker label{position:relative;cursor:pointer}
.weekday-picker input{position:absolute;opacity:0}
.weekday-picker span{display:grid;place-items:center;min-height:43px;border:1px solid #d9e5d9;border-radius:9px;font-size:12px;font-weight:700}
.weekday-picker input:checked+span{background:#245b40;color:#fff;border-color:#245b40}
.weekday-picker input:focus-visible+span{outline:3px solid #89bda0}
.shift-weekly-grid{padding:17px 20px;border-top:1px solid #e7ede6}
.shift-weekly-grid>strong{font-size:13px;display:block;margin-bottom:12px}
.shift-weekly-row{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:10px 0;border-bottom:1px solid #eff2ed}
.shift-weekly-row>span{font-size:13px;font-weight:680;min-width:105px;overflow:hidden;text-overflow:ellipsis}
.shift-weekly-row>div{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;width:70%;min-width:0}
.shift-weekly-row>div>span{display:flex;align-items:center;flex-direction:column;gap:2px;font-size:10px;color:#566d5a}
.shift-weekly-row b{font-size:13px;color:#275c3c}
.shift-custom-break{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.shift-custom-break .input-wrap:last-child{grid-column:1/-1}
.shift-editor-body .btn{align-self:flex-start}
.shift-editor .input-wrap input[type=time]{min-height:45px}
@media(max-width:980px){.shift-quick-stats{grid-template-columns:1fr}.shift-weekly-row{display:block}.shift-weekly-row>div{width:100%;margin-top:8px}}
@media(max-width:520px){.shift-quick-stats>div{padding:12px}.shift-template-grid{padding:13px}.panel-details{padding:0 15px}.weekday-picker>div{gap:3px}.weekday-picker span{font-size:11px;min-height:43px}.shift-custom-break{grid-template-columns:1fr}.shift-custom-break .input-wrap:last-child{grid-column:auto}.shift-template-card .shift-timing{font-size:20px}}

@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* Legible touch-first typography on narrow phones; 16px fields prevent iOS input zoom. */
@media(max-width:760px){.input-wrap input,.input-wrap select,.input-wrap textarea{font-size:16px}.input-wrap>span:first-child{font-size:16px}.page-top p,.clock-intro>p{font-size:15px;line-height:1.6}.clock-panel-head p{font-size:14px}.team-card strong{font-size:16px}.team-card small{font-size:13px}.team-label{font-size:11px}.verify-card strong{font-size:14px}.verify-card small{font-size:13px}.stat-label{font-size:12px}.stat-trend{font-size:12px}.mobile-nav-item span{font-size:12px}.mobile-nav-item{min-height:56px}.overline{font-size:12px}.public-header .btn{min-height:44px}.app-header .avatar-wrap{min-width:44px;min-height:44px}.plain-link{min-height:35px}.table-action,.icon-button{min-width:44px;min-height:44px}.data-table td{font-size:14px}.activity-info small{font-size:13px}}

/* A11Y contrast corrections based on axe-core WCAG 2.1 AA audit, 2026-10-28. */
:root{--muted:#516858}
small,.subtle,.muted-inline{color:#506656}
.overline,.small-label{color:#4d6456}
.today-pill{color:#45614f}
.clock-intro h1 em,.login-intro h1 em{color:#52763f}
.clock-intro>p,.login-intro>p{color:#4e6755}
.explain-number{color:#537056}
.clock-intro-foot,.clock-help,.help-hint{color:#506d58}
.clock-panel-head p,.login-form-card>p{color:#4e6554}
.login-foot{color:#506555}
.team-card .team-label{color:#536c59}
.team-card small{color:#506653}
.fieldgroup-title{color:#4f6856}
.input-wrap>span:first-child{color:#395543}
input::placeholder,textarea::placeholder{color:#607667}
.verify-card small{color:#51685a}
.public-footer{color:#566e5d}
.sidebar .nav-label{color:#b4caba}
.sidebar .small-label{color:#b4caba}

/* Portal admin/pekerja accessibility pass: contrast for dense operational data. */
.breadcrumb-line,.breadcrumb-name{color:#465f4f}
.page-top p{color:#4c6553}
.eyebrow{color:#305f44}
.panel .overline,.panel-head .overline{color:#445e4d}
.data-table th{color:#405b4b}
.data-table td{color:#3c5746}
.data-table td small{color:#516958}
.small-info,.help-hint{color:#4f6756}
.notice p{color:#63513a}
.stat-label,.stat-trend{color:#526a56}
.stat-dark{background:#183e30}
.stat-dark .stat-label,.stat-dark .stat-trend{color:#e9f6e9}
.stat-lime .stat-label,.stat-lime .stat-trend{color:#3d6240}
.btn-primary{background:#1e4e3c;border-color:#1e4e3c;color:#fff}
.btn-outline{color:#284a38}
.pill,.pill-muted{color:#425b4b}
.pill-amber{color:#77511f}
.worker-hero-text .overline{color:#395f35}
.worker-hero-text small{color:#395f35}
.worker-hero .inline-status,.inline-status{color:#325b3d}
.empty-state{color:#4b6554}
.empty-state p{color:#4b6554}
.empty-state strong{color:#2c4a37}
.mobile-nav-item{color:#48614e}
.app-footer{color:#485d4e}
.pay-available small{color:#3f6140}
.form-separator{color:#4e6756}
.readiness-item small{color:#4a6250}
.readiness-warn{color:#75501e}
.readiness-note{color:#506554}
.grade-amount{color:#405d49}
.summary-hint{color:#506656}
.table-responsive:focus-visible{outline:3px solid #528d6a;outline-offset:-3px;border-radius:6px}

/* CAMERA-FIRST — full-viewport entrance inspired by the approved HADIR concept */
body.camera-home{background:#f3f5f1}
.camera-home .public-wrap{max-width:none;width:100%;padding:0 22px;min-height:100dvh}
.camera-home .public-header{height:78px;border:0;flex:none;padding:0 12px}
.camera-home .standalone-content{display:block;flex:1;min-height:0}
.camera-home .public-footer{display:none}
.scan-page{width:100%;height:calc(100dvh - 92px);min-height:590px;display:flex;flex-direction:column;gap:7px}
.scan-surface{flex:1;min-height:0;position:relative;border-radius:23px;overflow:hidden;background:#233b31;box-shadow:0 20px 55px #183c2925}
.scan-video-backdrop{position:absolute;inset:-28px;width:calc(100% + 56px);height:calc(100% + 56px);object-fit:cover;transform:scaleX(-1);filter:blur(28px) brightness(.57);opacity:.44;pointer-events:none}
.scan-live-video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;object-position:center center;transform:scaleX(-1);background:transparent;pointer-events:none}
.scan-placeholder{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;color:#eef9ec;background:radial-gradient(circle at 50% 34%,#557462 0%,#243b31 46%,#1c2c25 100%)}
.scan-placeholder strong{font-size:clamp(20px,2.2vw,28px)}
.scan-placeholder>span{font-size:14px;color:#c4d5c7;max-width:300px}
.placeholder-mark{width:80px;height:80px;border:1px solid #b2e5c477;display:grid;place-items:center;border-radius:23px;color:#c6edbe;margin-bottom:12px}
.scan-retry{margin-top:9px;display:flex;gap:10px;align-items:center;border:1px solid #cae8bc;color:#163c28;background:#d7efbe;border-radius:12px;padding:11px 17px;font-weight:750;min-height:45px}
.scan-tint{position:absolute;inset:0;background:linear-gradient(180deg,#0c241e39 0%,transparent 28%,transparent 50%,#112d267a 100%);pointer-events:none}
.scan-toolbar{position:absolute;top:27px;left:26px;right:26px;display:flex;align-items:flex-start;justify-content:space-between;gap:15px;z-index:3;pointer-events:none}
.glass-panel{background:#152920ab;border:1px solid #c1dedb73;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-radius:14px;color:#fff;box-shadow:0 12px 30px #091c1630}
.scan-instruction{width:min(320px,31vw);padding:23px;display:grid;gap:21px;border-left:3px solid #b7e6bb}
.instruction-line{display:flex;align-items:flex-start;gap:13px}
.instruction-line>svg{color:#b9f1c5;margin-top:3px}
.instruction-line span{display:grid;gap:3px}
.instruction-line strong{font-size:13px;font-weight:760;line-height:1.4}
.instruction-line small{font-size:11px;color:#d7e7de}
.scan-indicators{display:flex;gap:9px;pointer-events:auto}
.scan-indicator{display:flex;gap:11px;align-items:center;padding:12px 15px;min-height:62px;cursor:pointer;text-align:left}
.scan-indicator:hover{background:#153d31ce}
.scan-indicator>svg{color:#b6edb8}
.scan-indicator span{display:grid;gap:4px}
.scan-indicator strong{font-size:13px;color:#fff}
.scan-indicator small{font-size:11px;color:#d3e7d7;max-width:150px}
.scan-signal{position:absolute;top:48px;left:50%;transform:translateX(-50%);z-index:3;display:inline-flex;align-items:center;gap:8px;border-radius:22px;background:#25613fdf;padding:10px 16px;color:#effff4;font-size:13px;font-weight:700;box-shadow:0 6px 25px #10271c3a;max-width:38%;text-align:center}
/* Keep live camera feedback clear of instruction and GPS panels on tablets. */
@media (min-width:761px) and (max-width:1100px){.camera-home .scan-signal{top:auto;bottom:16px;max-width:min(520px,calc(100% - 40px));}}
/* On a short landscape screen, keep scanner controls and action dock usable
   instead of stacking the full instructions over the camera preview. */
@media (min-width:761px) and (max-height:500px){
 .camera-home .scan-toolbar{top:8px;left:12px;right:12px;justify-content:flex-end}
 .camera-home .scan-instruction{display:none}
 .camera-home .scan-indicators{gap:6px}
 .camera-home .scan-indicator{min-height:42px;max-width:175px;padding:6px 9px}
 .camera-home .scan-indicator strong{font-size:11px}
 .camera-home .scan-indicator small{font-size:10px}
 .camera-home .scan-placeholder{align-items:flex-start;text-align:left;padding:10px 18px;gap:4px}
 .camera-home .scan-placeholder .placeholder-mark{display:none}
 .camera-home .scan-placeholder strong{max-width:46%;font-size:18px;line-height:1.3}
 .camera-home .scan-placeholder>span{max-width:46%;font-size:12px}
 .camera-home .scan-placeholder .scan-retry{margin-top:2px;min-height:44px;padding:6px 10px;font-size:12px}
 .camera-home .scan-signal{top:auto;bottom:9px;left:auto;right:12px;transform:none;max-width:48%;padding:5px 9px;font-size:11px}
}
.face-trace{position:absolute;z-index:3;left:39%;top:19%;width:21%;height:46%;border:1px solid #b4fac29e;border-radius:28px;pointer-events:none;box-shadow:0 0 0 1px #bbeac451,0 0 26px #a2edb752;transition:left .24s linear,top .24s linear,width .24s linear,height .24s linear}
.face-corner{position:absolute;width:26%;height:16%;border:4px solid #c2ffcf}
.face-corner.tl{top:-3px;left:-3px;border-right:0;border-bottom:0;border-radius:28px 0 0 0}
.face-corner.tr{top:-3px;right:-3px;border-left:0;border-bottom:0;border-radius:0 28px 0 0}
.face-corner.bl{bottom:-3px;left:-3px;border-right:0;border-top:0;border-radius:0 0 0 28px}
.face-corner.br{bottom:-3px;right:-3px;border-left:0;border-top:0;border-radius:0 0 28px}
.face-detect-label{position:absolute;bottom:calc(100% + 11px);left:50%;transform:translateX(-50%);white-space:nowrap;background:#26955d;color:#fff;padding:7px 13px;border-radius:22px;font-size:12px;font-weight:800}
.scan-person-card{position:absolute;z-index:4;top:34%;left:66%;display:flex;align-items:center;gap:13px;max-width:320px;background:#fffffff4;border:1px solid #ffffffb8;padding:14px 18px;border-radius:16px;box-shadow:0 10px 35px #06231c25;color:#1d372a}
.scan-person-avatar{width:47px;height:47px;border-radius:50%;background:#d9f0df;color:#24754a;display:grid;place-items:center}
.scan-person-card>span:last-child{display:grid;gap:4px}
.scan-person-card strong{font-size:15px;line-height:1.2}
.scan-person-card small{font-size:12px}
.scan-person-card em{font-style:normal;display:flex;align-items:center;gap:4px;color:#2b7747;font-size:11px;font-weight:760}
.scan-mobile-headline{display:none}
.scan-dock{position:absolute;bottom:19px;left:18px;right:18px;z-index:5;display:flex;align-items:center;gap:15px;background:#fffffff5;padding:15px 18px;border:1px solid #fff;border-radius:19px;box-shadow:0 12px 35px #14291d31}
.dock-context{min-width:345px;flex:1.28;display:flex;align-items:center;gap:14px;overflow:hidden}
.dock-site-icon{width:51px;height:51px;background:#e7f4e7;color:#267044;border-radius:13px;display:grid;place-items:center;flex:none}
.dock-context>span:nth-child(2){min-width:0;display:grid;gap:3px}
.dock-context small{color:#71857a;font-size:12px}
.dock-context strong{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dock-divider{height:45px;width:1px;background:#dce5db;flex:none;margin:0 5px}
.dock-hours{display:flex;gap:10px;align-items:center;color:#375e4b}
.dock-hours>span{display:grid;gap:3px}
.dock-hours strong{font-size:15px}
.dock-actions{flex:1.45;min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.dock-action{min-height:83px;border:1px solid #d6e1da;background:#fff;border-radius:13px;display:flex;align-items:center;justify-content:center;gap:12px;color:#183d31;transition:background .2s,transform .2s;cursor:pointer;padding:12px 10px}
.dock-action:hover{transform:translateY(-2px);background:#f1f7ef}
.dock-action:active{transform:translateY(0)}
.dock-action strong{font-size:20px;display:block;line-height:1.2}
.dock-action small{font-size:11px;color:#72847a;margin-top:3px}
.action-enter{background:#216143;color:white;border-color:#216143}
.action-enter:hover{background:#164d35}
.action-enter small{color:#e1f5e5}
.scan-underbar{display:flex;align-items:center;justify-content:space-between;gap:13px;min-height:36px;padding:0 16px}
.face-consent{display:flex;align-items:center;gap:8px;font-size:12px;color:#385841;cursor:pointer}
.face-consent input{accent-color:#28764e;width:18px;height:18px;flex:none}
.scan-privacy-note{display:flex;align-items:center;gap:5px;color:#697b6d;font-size:11px}
.scan-dialog{width:min(450px,calc(100% - 30px));max-height:calc(100dvh - 20px);overflow-y:auto;border:1px solid #e6ece6;border-radius:22px;padding:0;box-shadow:0 30px 100px #0c2b2a40;color:#1b352b}
.scan-dialog::backdrop{background:#102923a6;backdrop-filter:blur(4px)}
.scan-dialog-header{padding:23px 25px 19px;border-bottom:1px solid #e9ece8;display:flex;justify-content:space-between;gap:12px}
.scan-dialog-header h2{font-size:24px;margin:6px 0}
.scan-dialog-header p{font-size:13px;color:#56715e}
.scan-dialog-body{padding:23px 25px;display:grid;gap:18px}
.scan-form-block{display:grid;gap:12px}
.scan-dialog-note{font-size:12px;color:#526957;background:#f1f7ef;border-radius:9px;padding:11px 13px}
.scan-team-picker{border:0;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:9px}
.scan-team-picker legend{font-weight:700;font-size:12px;margin-bottom:8px}
.scan-team-choice{display:flex;gap:7px;align-items:center;padding:13px 10px;border:1px solid #dee9de;border-radius:10px;font-size:13px;cursor:pointer}
.scan-team-choice:has(input:checked){background:#e7f6e7;border-color:#70b486}
.scan-team-choice input{accent-color:#2d8354}
.scan-dialog-help{text-align:center;font-size:12px;color:#59715f}
.scan-success-dialog{text-align:center;padding:30px}
.scan-success-dialog h2{font-size:25px;margin:12px 0}
.scan-success-dialog p{color:#57705d;margin-bottom:20px}
.employee-actions{display:flex;align-items:center;gap:7px}
.face-action{color:#397c53;background:#eff7ed}
.face-enroll-layout{align-items:start}
.enroll-camera{position:relative;aspect-ratio:4/3;overflow:hidden;background:#233f34}
.enroll-camera video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}
.enroll-camera-placeholder{position:absolute;inset:0;background:#254335;color:#f3ffef;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;text-align:center}
.enroll-camera-placeholder small{color:#d7e8dc;max-width:260px}
.enroll-camera-footer{position:absolute;bottom:10px;left:10px;background:#102921cc;color:#fff;border-radius:10px;padding:8px 12px;font-size:12px}
.enroll-step{display:flex;align-items:center;gap:14px;border-bottom:1px solid #e5ece6;padding:14px 0}
.enroll-step>span:first-child{font-size:12px;color:#729178;font-weight:800}
.enroll-step>div{flex:1}
.enroll-step strong{font-size:14px}
.enroll-step.done{color:#246c43}
.enroll-progress{height:6px;background:#e5efdf;border-radius:99px;margin-top:15px;overflow:hidden}
.enroll-progress i{display:block;height:100%;width:0;background:#408d56;transition:width .2s}
/* Camera-first accessibility: keep secondary text legible on light surfaces. */
.dock-action:not(.action-enter) small{color:#415b4a}
.scan-privacy-note{color:#3c5846}
@media(max-width:1100px){.dock-context{min-width:220px}.scan-dock{gap:10px}.dock-context small{font-size:11px}.dock-context strong{font-size:15px}.dock-hours{display:none}.dock-divider{display:none}.scan-instruction{width:260px}.scan-signal{max-width:48%}}
@media(max-width:760px){
 .camera-home .public-wrap{padding:0}
 .camera-home .public-header{height:65px;padding:0 17px}
 .scan-page{height:calc(100dvh - 65px);min-height:530px;gap:0}
 .scan-surface{border-radius:0;box-shadow:none}
 .scan-toolbar{left:10px;right:10px;top:12px}
 .scan-instruction{display:none}
 .scan-indicators{width:100%;justify-content:space-between}
 .scan-indicator{min-height:50px;padding:8px 10px;gap:7px}
 .scan-indicator strong{font-size:11px}
 .scan-indicator small{font-size:10px}
 .scan-indicator svg{width:17px}
 .scan-signal{top:80px;max-width:94%;white-space:normal;font-size:12px;padding:8px 12px}
 .scan-person-card{left:50%;top:auto;bottom:190px;transform:translateX(-50%);max-width:95%;width:max-content;padding:10px 12px}
 .scan-person-card strong{font-size:13px}
 .scan-person-avatar{width:36px;height:36px}
 .scan-mobile-headline{display:block;position:absolute;left:0;right:0;bottom:165px;text-align:center;color:#e7f7ea;font-size:12px;text-shadow:0 1px 4px #112d25}
 .scan-dock{bottom:8px;left:8px;right:8px;display:grid;padding:9px;border-radius:15px;gap:8px}
 .dock-context{min-width:0;padding:6px;justify-content:flex-start;gap:10px}
 .dock-site-icon{width:34px;height:34px}
 .dock-site-icon svg{width:20px}
 .dock-context strong{font-size:13px}
 .dock-actions{gap:6px}
 .dock-action{min-height:60px;gap:4px;flex-direction:column;padding:9px 5px}
 .dock-action svg{height:19px;width:19px}
 .dock-action strong{font-size:15px}
 .dock-action small{font-size:10px}
 .scan-underbar{padding:10px 13px;display:flex;justify-content:center;align-items:flex-start;min-height:72px;background:#fff}
 .scan-privacy-note{display:none}
 .face-consent{font-size:11px}
 .scan-page{height:calc(100dvh - 65px - 72px)}
 .face-trace{border-radius:17px}
 .face-corner.tl{border-radius:17px 0 0 0}
 .face-corner.tr{border-radius:0 17px 0 0}
 .face-corner.bl{border-radius:0 0 0 17px}
 .face-corner.br{border-radius:0 0 17px 0}
 .scan-success-dialog{max-width:93%}
}

/* Sidebar no longer renders a duplicate WORKSPACE identity card. */
.worker-shell .sidebar-head{display:flex;align-items:center;margin-bottom:13px}
.worker-shell .sidebar-brand{margin:0;padding:0 14px}
