.portal{min-height:100vh;background:#f4f7f4}.portal-header{height:70px;padding:0 5%;background:#fff;border-bottom:1px solid #e1e9e1;display:flex;align-items:center;gap:24px}.portal-logo{display:flex;align-items:center;gap:9px;color:#245d4c;font:800 25px Manrope,Arial;letter-spacing:-1px}.portal-logo svg{background:#eaf3ea;border-radius:7px;padding:4px;box-sizing:content-box}.portal-header>span{font-size:12px;color:#8b9985}.portal-header>div{margin-left:auto;display:flex;gap:10px}.portal-content{max-width:1350px;margin:auto;padding:30px 35px 80px}.portal-title{margin-bottom:26px}.portal-title h1{font-size:31px;margin:7px 0 9px}.portal-title p{font-size:12px;color:#8b9984}.portal-tabs{display:flex;gap:5px;border-bottom:1px solid #dfe8db;overflow:auto;margin-bottom:25px;padding-bottom:12px}.portal-tabs button{border:0;background:none;padding:10px 13px;border-radius:6px;font-size:11px;white-space:nowrap;color:#7e8f75}.portal-tabs button.selected{background:#e1eddf;color:#315f3e;font-weight:700}.admin-mode{background:#edf3eb;border-bottom:1px solid #dce7d7;padding:10px 5%;display:flex;gap:10px;align-items:center}.admin-mode button{background:none;border:0;padding:10px 13px;font-size:12px;color:#79906e;display:flex;gap:8px;align-items:center;border-radius:5px}.admin-mode button.selected{background:#fff;color:#355c3c;box-shadow:0 1px 5px #12301807}.admin-mode>span{margin-left:auto;font-size:11px;color:#91a188}.admin-portal>.shell .sidebar{top:132px}.admin-portal>.shell .main main{padding-top:25px}.employee-portal .portal-content{max-width:760px}.attendance-hero{padding:29px;background:linear-gradient(130deg,#254f3d,#31684c);border-radius:17px;color:#f3f9ef;box-shadow:0 10px 30px #265c3b10;position:relative;overflow:hidden;margin-bottom:18px}.attendance-hero:before{content:'';position:absolute;width:270px;height:270px;border:1px solid #ffffff0d;border-radius:50%;right:-160px;top:30px;box-shadow:0 0 0 35px #ffffff06,0 0 0 70px #ffffff04;pointer-events:none}.attendance-hero-top{display:flex;align-items:center;justify-content:space-between;color:#b5ceb0;font-size:11px}.attendance-hero-top>span{display:flex;align-items:center;gap:8px}.attendance-hero-top .live-dot{background:#a4d5a0}.attendance-hero h2{font-size:26px;margin-top:24px;color:#f1f8eb}.attendance-hero p{font-size:12px;color:#aac7a3;margin-top:8px}.attendance-punch{padding:24px 0}.attendance-punch span{font-size:9px;letter-spacing:1.6px;color:#9ebc97;display:block}.attendance-punch b{display:block;font-size:27px;font-family:Manrope;margin:8px 0}.attendance-punch small{color:#abc9a4}.attendance-hero>button{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid #c1d8b4;background:#d6e9c7;color:#325532;border-radius:9px;min-height:53px;font-size:14px;font-weight:650}.attendance-hero>button svg:last-child{margin-left:auto}.attendance-hero>button:hover{background:#e1f0d6}.employee-tiles{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:18px 0 25px}.employee-tiles>button{border:1px solid #e1e9da;background:white;border-radius:12px;padding:22px;text-align:left}.employee-tiles>button>span{display:grid;place-items:center;background:#edf4e9;color:#84a174;border-radius:9px;width:40px;height:40px;margin-bottom:15px}.employee-tiles b{display:block;font:700 14px Manrope;color:#4d6a42;margin-bottom:5px}.employee-tiles small{font-size:10px;color:#97a18e}.mobile-nav{position:fixed;bottom:0;left:0;right:0;background:#ffffffed;backdrop-filter:blur(12px);border-top:1px solid #e5ecdf;display:flex;justify-content:center;gap:35px;z-index:50;padding:12px 16px max(12px,env(safe-area-inset-bottom))}.mobile-nav button{display:flex;align-items:center;flex-direction:column;gap:5px;border:0;background:none;color:#9eaa95;font-size:10px;min-width:55px;padding:5px}.mobile-nav button.selected{color:#39724c}.mobile-nav button.selected svg{stroke-width:2.5}.employee-task{padding:23px;display:flex;flex-direction:column;align-items:flex-start;gap:12px}.employee-task h2{font-size:17px}.employee-task p{font-size:12px;color:#8a9b7e}.employee-task strong{font:750 22px Manrope;color:#467148}.employee-task .button{margin-top:10px}.row-actions{display:flex;gap:7px}.camera-preview{width:100%;aspect-ratio:4/3;background:#152c22;border-radius:10px;object-fit:cover}.invite-link{display:block;overflow-wrap:anywhere;line-height:1.8;padding:12px;border:1px solid #dce7d4;background:#f4f8ef;border-radius:6px;margin-bottom:18px}.portal-loading{height:100vh;display:flex;align-items:center;justify-content:center;gap:15px;color:#65855b;font-size:13px}.login-page{display:grid;grid-template-columns:1.05fr 1fr;min-height:100vh;background:#fcfdfb}.login-story{background:#234d3a;padding:55px 12%;display:flex;flex-direction:column;position:relative;overflow:hidden;color:#eaf4df}.login-story:after{content:'';position:absolute;width:500px;height:500px;border:1px solid #d9ecc215;border-radius:50%;bottom:-300px;right:-300px;box-shadow:0 0 0 50px #d9ecc208,0 0 0 100px #d9ecc205;pointer-events:none}.login-brand{display:flex;align-items:center;gap:10px;font:800 31px Manrope;letter-spacing:-1px;margin-bottom:110px}.login-kicker{font-size:10px;letter-spacing:2px;color:#94b087;margin-bottom:20px}.login-story h1{font-size:clamp(38px,4.5vw,66px);line-height:1.17;display:block;letter-spacing:-2px;margin-bottom:24px}.login-story h1 em{color:#b9d69d;font-style:normal}.login-story p{font-size:14px;line-height:1.9;max-width:330px;color:#a6c09b}.login-features{display:flex;flex-direction:column;gap:17px;margin-top:auto;padding-top:70px}.login-features span{display:flex;gap:12px;align-items:center;font-size:11px;color:#a9c79d}.login-features svg{width:17px}.login-panel{display:grid;place-items:center;padding:50px}.login-box{width:100%;max-width:355px}.login-box h2{font-size:31px;color:#2e4e2e;margin:10px 0 13px}.login-box>p{font-size:12px;line-height:1.85;color:#8b9c80;margin-bottom:30px}.login-box form label{display:block;font-size:11px;color:#657c58;margin-bottom:20px}.login-box input{display:block;border:1px solid #dce5d4;border-radius:7px;padding:14px;width:100%;margin-top:8px;background:#fafcf8;font-size:12px;color:#314f2f}.login-box .primary{width:100%;padding:14px;font-size:12px;background:#3e754b;justify-content:space-between;margin:8px 0 20px}.telegram-login{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:13px;border:1px solid #dce5d6;border-radius:7px;color:#7b9270;font-size:12px}.login-box>small{display:block;font-size:10px;line-height:1.8;color:#a2ad98;text-align:center;margin-top:27px}.portal table td{white-space:normal;min-width:80px;max-width:310px}.portal table a{display:block;font-size:11px}.portal .stats{gap:14px}.employee-portal .card{border-radius:12px}.employee-portal .card-heading{padding:21px}.employee-portal .notice{border-radius:11px}.portal .form-grid input[type=checkbox]{appearance:auto;width:18px;height:18px;accent-color:#36744b}
@media(max-width:800px){.login-page{grid-template-columns:1fr}.login-story{padding:28px 25px 38px}.login-brand{margin-bottom:36px;font-size:26px}.login-kicker{font-size:8px}.login-story h1{font-size:35px;letter-spacing:-1px}.login-story p{font-size:11px}.login-features{display:none}.login-panel{padding:35px 24px}.login-box{max-width:430px}.login-box h2{font-size:25px}.portal-header{height:62px;padding:0 18px;gap:18px}.portal-header>span{font-size:10px;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-content{padding:22px 17px 100px}.portal-title h1{font-size:26px}.attendance-hero{padding:24px;border-radius:14px}.attendance-hero h2{font-size:23px}.attendance-punch b{font-size:24px}.employee-tiles{gap:12px}.employee-tiles>button{padding:18px}.mobile-nav{gap:0;justify-content:space-around}.mobile-nav button{font-size:9px;min-width:50px}.admin-mode{padding:8px 12px;flex-wrap:wrap}.admin-mode>span{display:none}.admin-mode button{font-size:10px;padding:8px}.portal-tabs{margin-left:-17px;margin-right:-17px;padding-left:12px}.portal-tabs button{font-size:10px}.portal .card-heading{flex-wrap:wrap;gap:15px}.portal .stats{grid-template-columns:repeat(2,1fr)}.portal .row-actions{flex-wrap:wrap}.admin-portal>.shell .sidebar{top:112px}}

.section-help{font-size:12px;color:#647b59;margin:0 0 20px}.section-help summary{cursor:pointer;display:flex;align-items:center;gap:8px;list-style:none}.section-help p{padding:16px;background:#eaf1e5;border-radius:8px;line-height:1.8;max-width:780px}

.face-panel{margin:20px 0}.face-panel h2{display:flex;gap:9px;align-items:center}.face-pricing{display:grid;gap:8px;background:#f1f6f3;border-radius:12px;padding:16px;margin:16px 0;font-size:13px;line-height:1.6}.face-enroll{display:grid;gap:16px;margin:18px 0;max-width:620px}.face-consent{display:flex;align-items:flex-start;gap:10px;font-size:14px}.face-consent input{width:18px;height:18px;margin:1px 0;flex-shrink:0}.face-profile{display:flex;gap:18px;padding:18px 0;border-top:1px solid #e5ece6}.face-profile img{width:112px;height:112px;object-fit:cover;border-radius:12px}.face-profile>div{display:grid;gap:8px;min-width:0}.face-profile small{color:#68766d}.face-profiles .row-actions{flex-wrap:wrap}.face-profile .button{white-space:normal;text-align:left}@media(max-width:600px){.face-profile{gap:12px;align-items:flex-start}.face-profile img{width:72px;height:88px}.face-panel .card-heading{align-items:flex-start}}

.face-test{border-top:1px solid #dbe5dd;padding:18px 0;margin-top:12px}.test-reference{width:100px;height:100px;object-fit:cover;border-radius:10px}.tariff-form{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.tariff-form label{display:grid;gap:6px}.tariff-form input{min-height:42px;border:1px solid #ccd9d0;border-radius:8px;padding:8px;background:white;font:inherit}.face-test .row-actions{flex-wrap:wrap;gap:10px}.face-test .warning{display:flex;gap:10px}
.geofence-panel h2{display:flex;gap:9px;align-items:center}.geofence-branches{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:20px}.geofence-branch{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid #dfe9de;border-radius:10px;padding:17px}.geofence-branch.selected{border-color:#5e9870;background:#f0f7ed}.geofence-branch>div{display:grid;gap:7px;min-width:0}.geofence-branch b{font-size:14px}.geofence-branch span{font-size:12px;overflow-wrap:anywhere}.geofence-branch small{font-size:11px;color:#7c8f76}.geofence-branch .button{flex-shrink:0}.geofence-editor{border:1px solid #d7e5d5;border-radius:12px;padding:22px;margin:16px 0 25px;background:#fbfdf9;outline:none}.geofence-editor-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.geofence-editor h3{font-size:23px;margin:5px 0}.geofence-toolbar,.geofence-modes,.geofence-draw-actions,.geofence-save{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.geofence-toolbar{justify-content:space-between}.geofence-modes button[aria-pressed=true]{background:#e0eddd;border-color:#80a97a;color:#2d623d}.geofence-instruction{font-size:12px;line-height:1.8;margin:15px 0;color:#65795f}.geofence-map{height:420px;width:100%;border-radius:10px;border:1px solid #ccd9c7;z-index:0;background:#e7eee2}.geofence-map .leaflet-control-attribution{font-size:10px;color:#234d3a;background:#fffffff2;padding:3px 6px}.geofence-map .leaflet-control-attribution a{color:#236a40;text-decoration:underline}.geofence-point{background:none;border:0}.geofence-point span{display:grid;place-items:center;height:26px;width:26px;background:#fff;color:#265b37;border:2px solid #367551;border-radius:50%;font:bold 12px Arial;box-shadow:0 2px 6px #163c3440}.geofence-draw-actions{padding:14px 0;border-bottom:1px solid #dfe9db;margin-bottom:18px}.geofence-draw-actions>span{font-size:12px;color:#52704a;margin-right:auto}.geofence-fields{margin-top:20px}.geofence-field-action{display:flex;align-items:end}.geofence-coordinates{margin-top:20px;font-size:12px}.geofence-coordinates summary{cursor:pointer;padding:10px 0;color:#527449}.geofence-coordinates>div{display:flex;gap:10px;align-items:center;padding:10px 0;border-top:1px solid #e0e9db}.geofence-coordinates label{flex:1;min-width:0;display:grid;gap:5px}.geofence-coordinates input{width:100%;padding:9px;border:1px solid #d3dfcc;border-radius:6px;font:inherit;color:#35572e}.geofence-save{justify-content:flex-end;border-top:1px solid #dfe9db;padding-top:18px;margin-top:22px}.geofence-save small{margin-right:auto;color:#758b6b;font-size:11px}.geofence-panel button:disabled{opacity:.5;cursor:not-allowed}.geofence-map .leaflet-control-zoom a{color:#315d3b}.geofence-editor .warning{overflow-wrap:anywhere}@media(max-width:700px){.geofence-branches{grid-template-columns:1fr}.geofence-branch{padding:14px}.geofence-editor{padding:13px;margin-left:-3px;margin-right:-3px}.geofence-map{height:360px}.geofence-toolbar{align-items:stretch}.geofence-modes{width:100%}.geofence-modes .button{flex:1;justify-content:center;padding:10px 8px}.geofence-save small{width:100%;line-height:1.7}.geofence-draw-actions>span{width:100%}.geofence-draw-actions .button{font-size:11px}.geofence-coordinates>div{gap:6px}.geofence-coordinates input{font-size:11px;padding:8px 5px}.geofence-map .leaflet-control-attribution{font-size:9px;max-width:100%}}


.work-panels{display:grid;gap:18px}.work-card{padding:24px;margin:18px 0;min-width:0}.work-card p{line-height:1.6;overflow-wrap:anywhere}.work-card details{margin-top:18px}.work-card summary{cursor:pointer;color:#4b705c}.work-form{display:grid;gap:16px;margin-top:18px}.work-form label{display:grid;gap:7px}.work-form input,.work-form select{width:100%;min-width:0;padding:12px;border:1px solid #d9e3dc;border-radius:9px;background:white;color:#243c32;font:inherit}.work-form fieldset{min-width:0;border:1px solid #d9e3dc;border-radius:12px;padding:18px}.work-form .work-check{display:flex;align-items:center;gap:10px;padding:7px 0}.work-check input{width:18px;height:18px}.due-late{border-left:5px solid #c84444;background:#fff8f7}.due-soon{border-left:5px solid #e3b044;background:#fffdf3}.due-done{border-left:5px solid #668a6e}.text-danger{color:#b63232}.tool-photo{width:100px;height:100px;object-fit:cover;border-radius:12px}.work-card .card-heading,.work-card .row-actions{flex-wrap:wrap;gap:10px}.work-card input[type=file]{max-width:220px}.mobile-nav{overflow-x:auto;justify-content:flex-start}.mobile-nav button{min-width:72px;flex:1 0 72px}@media(min-width:800px){.work-form{grid-template-columns:1fr 1fr}.work-form>button{justify-self:start}}

.support-launch{position:fixed;right:20px;bottom:85px;z-index:35;box-shadow:0 4px 20px #143c3226}.support-panel{position:fixed;right:20px;bottom:145px;width:min(460px,calc(100vw - 24px));max-height:75dvh;z-index:40;display:flex;flex-direction:column;padding:20px;box-shadow:0 12px 50px #143c3240;overflow:hidden}.support-panel header{display:flex;justify-content:space-between;gap:12px}.support-panel h2{margin:0}.support-history{overflow:auto;min-height:60px;flex:1;margin:12px 0}.support-history article{border-bottom:1px solid #dce6df;padding:12px 0}.support-history p{white-space:pre-wrap;overflow-wrap:anywhere}.support-panel form{display:grid;gap:9px;overflow:auto;flex-shrink:0;max-height:48dvh}.support-panel label{display:grid;gap:5px}.support-panel textarea{min-height:80px}.support-panel small{color:#627567;line-height:1.5}.job-location.full{grid-column:1/-1;min-width:0}.job-location .row-actions{flex-wrap:wrap;margin:10px 0}@media(max-width:600px){.support-panel{right:12px;bottom:140px;padding:14px}.support-launch{right:12px}}

/* Positive, searchable access controls */
.access-editor{display:flex;flex-direction:column;gap:16px}.access-tools{display:grid;gap:12px;position:sticky;top:-24px;background:#fff;z-index:2;padding:12px 0;border-bottom:1px solid #dce6df}.access-tools p{margin:0;line-height:1.6}.access-tools label{display:grid;gap:6px}.access-tools input,.access-tools select{font:inherit;border:1px solid #ccd9d0;border-radius:8px;padding:11px;width:100%;min-width:0}.access-filters{display:flex;gap:6px;flex-wrap:wrap}.access-filters .button{padding:8px 12px}.access-list{display:grid;gap:9px}.access-row{display:flex;align-items:flex-start;gap:10px;border:1px solid #dde6e0;border-radius:10px;padding:12px;background:#fafcfb}.access-row.is-allowed{border-color:#a7cbb5;background:#f2faf5}.access-check{display:flex!important;align-items:flex-start;gap:12px;flex:1;min-width:0;cursor:pointer;color:#203b2e!important;font-weight:600}.access-check input[type=checkbox]{width:21px!important;height:21px!important;flex:0 0 21px;margin:2px 0 0;accent-color:#23764f}.access-check span{min-width:0;line-height:1.5;overflow-wrap:anywhere}.access-check small{display:block;color:#718177;font-size:11px;font-weight:400}.access-footer{position:sticky;bottom:-24px;background:white;padding:14px 0;margin-top:0;z-index:2}.help-inline{display:inline-flex;position:relative;vertical-align:middle;flex-shrink:0}.help-dot{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:1px solid #a9bdb0;border-radius:50%;background:#f4f8f5;color:#315f44;font-weight:700;cursor:pointer;padding:0}.help-dot:focus-visible{outline:3px solid #87b99b;outline-offset:2px}.help-explanation{position:absolute;right:0;top:29px;width:280px;max-width:70vw;background:#163c2c;color:white;padding:13px;border-radius:10px;box-shadow:0 6px 18px #0002;font-size:13px;font-weight:400;line-height:1.7;z-index:20;white-space:normal}.field-label{display:flex;align-items:center;justify-content:space-between;gap:8px}.form-purpose{line-height:1.7;padding:12px 14px;background:#f0f7f2;border-radius:9px;color:#35553f}.form-grid .inline-checkbox{display:flex;flex-direction:row-reverse;align-items:center;justify-content:flex-end;gap:10px}.inline-checkbox input[type=checkbox]{width:20px;height:20px;flex-shrink:0}.inline-checkbox .field-label{flex:1}.section-help p,.help-copy{white-space:pre-line;line-height:1.8}@media(max-width:600px){.access-tools{top:-14px}.access-footer{bottom:-14px}.access-filters .button{font-size:11px;padding:7px 9px}.access-row{padding:10px}.access-check{font-size:13px}}
@media(min-width:1100px){.admin-portal .portal-content{max-width:none;margin-left:245px;padding:28px 35px 80px}.admin-portal .portal-tabs{position:fixed;left:0;top:132px;bottom:0;width:245px;display:flex;flex-direction:column;gap:3px;overflow-y:auto;overflow-x:hidden;background:#fff;border-right:1px solid #dfe8db;padding:18px 12px;margin:0;z-index:25}.admin-portal .portal-tabs button{text-align:left;font-size:13px;white-space:normal;padding:11px 14px;flex-shrink:0}}
