:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:#1b2c42;background:#f4f7fa;font-synthesis:none}*{box-sizing:border-box}html{height:100%;-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;min-height:100vh;min-height:100dvh}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.52}a{color:#1261aa;text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,p{margin-top:0}h1{font-size:26px;letter-spacing:-.8px}h2{font-size:17px}h3{font-size:16px}p{line-height:1.5;color:#647489}small,.small{font-size:12px}.muted{color:#758397}.shell{display:flex;min-height:100dvh}.sidebar{width:248px;min-width:248px;position:sticky;top:0;height:100dvh;background:#102c4b;color:#d7e5f5;display:flex;flex-direction:column;padding:24px 14px 16px}.brand{display:flex;align-items:center;gap:11px;margin:2px 12px 24px;color:#fff}.brand svg{color:#5ac5ed}.brand b{display:block;font-size:16px;letter-spacing:1.2px}.brand small{display:block;font-size:11px;letter-spacing:.7px;color:#9ebfdd;margin-top:3px}.tenant{font-size:11px;color:#89a7c6;margin:0 12px 18px}.nav{display:grid;gap:5px}.nav-item{width:100%;display:flex;gap:12px;align-items:center;background:transparent;border:0;border-radius:12px;padding:13px 15px;text-align:left;color:#b4cbe0;font-weight:600;font-size:13px}.nav-item.active,.nav-item:hover{background:#20476e;color:white}.nav-item.active svg{color:#63d1f4}.nav-item i{margin-left:auto;border-radius:50%;width:5px;height:5px;background:#56c6ef}.side-bottom{border-top:1px solid #35516e;padding:17px 4px 0;display:flex;align-items:center;gap:10px;margin-top:auto}.avatar,.top-avatar,.avatarmini,.profile-avatar{border-radius:50%;display:grid;place-items:center;flex-shrink:0;background:#d5ecff;color:#195285;font-weight:800}.avatar{width:35px;height:35px}.side-person{display:grid;gap:3px;min-width:0;flex:1}.side-person strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-person small{color:#8baccc}.iconbtn{background:transparent;border:0;color:inherit;display:grid;place-items:center;padding:8px;border-radius:10px}.iconbtn:hover{background:#ffffff15}.main{flex:1;min-width:0}.topbar{height:68px;border-bottom:1px solid #e4ebf2;background:white;display:flex;align-items:center;justify-content:space-between;padding:0 33px}.top-label{font-size:13px;font-weight:700;color:#52667c}.top-right{display:flex;gap:9px;align-items:center;color:#637589;font-size:12px}.online-dot{background:#36b384;border-radius:50%;width:8px;height:8px}.top-avatar{width:31px;height:31px;margin-left:13px}.mobilebrand,.bottomnav{display:none}.content{max-width:1350px;margin:auto;padding:31px 32px 90px}.page-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:23px}.page-heading h1{margin:0 0 7px}.page-heading p{margin:0;font-size:13px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #d5e0ed;border-radius:10px;padding:11px 15px;background:white;color:#20466b;font-weight:700;font-size:13px;min-height:42px;transition:background .15s;white-space:nowrap}.btn:hover:not(:disabled){filter:brightness(.98)}.btn.primary{color:white;background:#1461a5;border-color:#1461a5}.btn.danger{color:white;background:#c3404e;border-color:#c3404e}.btn.approve{background:#e4f7ef;color:#158354;border-color:#cbecdc}.btn.reject{background:#fff0f0;color:#b9343f;border-color:#f1d2d6}.btn.outline{background:white}.btn.subtle,.btn.ghost{border-color:transparent;background:#eff5fb}.btn.tiny{padding:7px 10px;min-height:31px;font-size:11px;border-radius:8px}.btn.full{width:100%}.card{background:white;border:1px solid #e3eaf1;border-radius:16px;box-shadow:0 5px 18px #253f5c06}.metrics,.mini-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-bottom:18px}.metric,.mini-stats>div{border:1px solid #e2eaf2;background:#fff;border-radius:14px;padding:17px 19px}.metric>span{color:#257ac4;display:block;margin-bottom:10px}.metric small,.mini-stats small{display:block;color:#7b8b9b;margin-bottom:8px}.metric strong,.mini-stats strong{display:block;color:#173c62;font-size:22px}.metric p{font-size:12px;margin:7px 0 0}.clock-grid,.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.clock-card{padding:21px}.card-header{margin-bottom:17px}.card-title{display:flex;align-items:center;gap:11px}.card-title h2{margin:0 0 3px}.card-title p{margin:0;font-size:12px}.step{display:grid;place-items:center;background:#e9f4ff;color:#1461a5;font-size:14px;font-weight:800;width:33px;height:33px;border-radius:10px;flex-shrink:0}label,.input-label{display:block;font-size:12px;font-weight:700;color:#476078}input:not([type="checkbox"]),select{width:100%;border:1px solid #d8e3ed;background:white;color:#1e354b;border-radius:9px;padding:11px 12px;min-height:43px;margin-top:8px;outline:none;font-size:14px}input:focus,select:focus{border-color:#4c9cdb;box-shadow:0 0 0 3px #2498d316}input[type="checkbox"]{width:17px;height:17px;accent-color:#156cb3}.site-info{display:flex;gap:10px;background:#f2f8fc;border-radius:11px;padding:12px;margin:14px 0}.site-mark,.tile-icon{color:#236fa6;background:#e0f0ff;display:grid;place-items:center;width:38px;height:38px;border-radius:10px;flex-shrink:0}.site-info b,.site-info small,.info-sub{display:block}.site-info b{font-size:13px}.site-info small{margin:5px 0;color:#738598}.info-sub{font-size:11px;color:#3a87b0}.hint{color:#7f91a5;display:flex;align-items:center;gap:7px;font-size:11px;margin-top:12px;line-height:1.5}.gps-result{margin-top:13px;padding:14px;border:1px solid #cce7d9;background:#f2fbf6;border-radius:11px}.gps-head{display:flex;justify-content:space-between;align-items:center}.gps-head b{font-size:12px;display:flex;align-items:center;gap:7px}.coords{font-size:18px;font-weight:800;color:#1a536f;margin:12px 0 8px;word-break:break-all}.gps-stats{display:flex;gap:15px;font-size:11px;flex-wrap:wrap;color:#5d7081}.map-link{display:flex;align-items:center;gap:8px;font-size:11px;margin-top:13px}.alert-tiny{font-size:11px;color:#b54038;margin:9px 0 0}.badge{display:inline-flex;gap:6px;align-items:center;font-size:11px;font-weight:700;border-radius:99px;padding:6px 9px;background:#f2f4f7;color:#63758b;white-space:nowrap}.badge.approved{background:#e5f7ef;color:#16774c}.badge.pending{background:#fff3d9;color:#94681b}.badge.rejected{background:#ffe8eb;color:#ae2e43}.badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.camera-area{height:218px;background:#f3f7fb;border:1px dashed #bdd0de;display:grid;place-items:center;border-radius:12px;overflow:hidden;margin-bottom:15px}.camera-placeholder{display:flex;align-items:center;flex-direction:column;color:#7492ab;gap:8px;font-size:12px}.camera-placeholder b{font-size:13px;color:#3d6689}.captured{width:100%;height:100%;object-fit:cover}.action-card{margin-top:17px;padding:20px;display:flex;align-items:center;justify-content:space-between;gap:22px}.action-left{display:flex;align-items:center;gap:15px}.action-left h2{margin:0 0 6px}.action-left p{margin:0;font-size:12px}.action-symbol{display:grid;place-items:center;background:#e9f6ef;color:#2a9a68;width:50px;height:50px;border-radius:12px;flex-shrink:0}.action-symbol.out{background:#fff0f2;color:#b94450}.action-right{display:flex;align-items:flex-end;gap:12px;min-width:46%}.action-right label{flex:1}.action-submit{min-width:180px}.last-line,.footnote{margin-top:15px;font-size:12px;color:#77899b}.card-table{overflow:hidden}.table-wrap{overflow:auto;max-width:100%}table{width:100%;border-collapse:collapse;min-width:720px;text-align:left}th{background:#f6f9fc;color:#61768d;font-size:11px;white-space:nowrap;font-weight:800}th,td{padding:13px 14px;border-bottom:1px solid #edf1f6;vertical-align:middle}td{font-size:12px;color:#43576b}td strong{color:#233e57;font-size:12px}.row-sub{display:block;margin-top:5px;color:#96a4b2;font-size:11px}.personcell{display:flex;align-items:center;gap:10px}.personcell small{display:block;color:#91a3b2;margin-top:3px}.avatarmini{height:33px;width:33px}.text-good{color:#159269}.text-muted{color:#8796a5}.table-actions{display:flex;gap:6px;align-items:center}.mini-stats strong{font-size:20px}.site-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.site-tile{padding:19px}.tile-head{display:flex;justify-content:space-between;align-items:center}.site-tile h3{margin:17px 0 7px}.site-tile p{font-size:12px;min-height:32px}.tile-spec{display:grid;gap:10px;margin-bottom:16px;font-size:12px;color:#587088}.tile-spec span{display:flex;align-items:center;gap:7px}.filters{padding:18px;margin-bottom:14px}.filter-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;align-items:end}.filter-grid .btn{min-height:43px}.settings-card{padding:23px;display:grid;gap:15px;align-content:start}.settings-card h2{margin:0}.setting-ident{display:flex;gap:12px;align-items:center}.setting-ident h2{margin:0 0 5px}.setting-ident p{font-size:12px;margin:0 0 9px}.profile-avatar{width:58px;height:58px;font-size:22px}.notice{background:#ebf5ff;border-radius:10px;color:#47647f;font-size:12px;line-height:1.6;padding:13px;display:flex;gap:9px}.notice.warn{background:#fff3de;color:#a06e22}.auth-layout{min-height:100dvh;display:grid;grid-template-columns:1.1fr 1fr}.auth-intro{background:linear-gradient(135deg,#0d2948,#16517e);color:white;display:flex;flex-direction:column;padding:48px 7% 32px}.auth-brand{display:flex;gap:12px;align-items:center;font-weight:900;font-size:18px;letter-spacing:1px}.auth-brand span{display:block;color:#8dc3e4;font-size:10px;letter-spacing:1px;margin-top:3px}.auth-hero{margin:auto 0}.hero-pill{display:inline-block;font-size:10px;background:#ffffff20;border-radius:99px;padding:9px 13px;letter-spacing:1.4px}.auth-hero h1{font-size:clamp(32px,4vw,54px);line-height:1.19;margin:23px 0}.auth-hero h1 em{font-style:normal;color:#8fd3f7}.auth-hero p{font-size:16px;color:#c6dced;max-width:490px}.hero-features{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px}.hero-features span{display:flex;gap:8px;align-items:center;border:1px solid #ffffff25;border-radius:9px;padding:10px;color:#d6eaff;font-size:12px}.auth-copy{font-size:11px;color:#8fb4d4}.auth-form-side{background:#f7fafc;display:grid;place-items:center;padding:25px}.login-card{background:white;border:1px solid #e1ebf3;border-radius:20px;box-shadow:0 20px 65px #1d385616;padding:32px;max-width:420px;width:100%}.login-icon{display:grid;place-items:center;color:#1261a5;background:#e7f4ff;border-radius:15px;width:52px;height:52px;margin-bottom:23px}.eyebrow{letter-spacing:1.5px;font-size:10px;font-weight:800;color:#197ab9}.login-card h2{font-size:27px;letter-spacing:-.6px;margin-bottom:8px}.login-card .muted{font-size:13px;margin-bottom:25px}.login-card form,.settings-card form{display:grid;gap:18px}.linkbtn{padding:13px 0;background:transparent;border:0;color:#1365a5;font-weight:700;font-size:12px}.login-foot{border-top:1px solid #e9eef4;padding-top:14px;font-size:11px;color:#8ea0af}.config-page{min-height:100dvh;display:grid;place-items:center;padding:16px}.config-card{background:white;padding:35px;border-radius:17px;border:1px solid #e2eaf2;max-width:600px;text-align:center}.codehint{background:#f0f6fa;border-radius:9px;padding:15px;margin:18px 0;font-size:13px}.modalback{position:fixed;inset:0;z-index:50;background:#051c36ae;display:grid;place-items:center;padding:20px;overflow:auto}.modal{width:100%;max-width:440px;max-height:min(90dvh,850px);overflow:auto;background:white;border-radius:17px;padding:22px;box-shadow:0 20px 70px #06172e3d}.modal.wide{max-width:640px}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.modal-head h2{font-size:20px;margin:0}.modal form{display:grid;gap:14px}.modal .muted{font-size:12px}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:10px}.form-two{display:grid;grid-template-columns:1fr 1fr;gap:13px}.checkline{display:flex;gap:9px;align-items:center;font-size:12px;line-height:1.3}.checkline.inline{margin-top:18px}.checkgrid{display:grid;grid-template-columns:1fr 1fr;gap:13px;padding:13px;border:1px solid #e9eff5;border-radius:10px}.form-title{margin:4px 0 0}.photo-modal{min-height:180px;display:grid;place-items:center;color:#738aa0;text-align:center}.photo-modal img{max-width:100%;max-height:62dvh;object-fit:contain;border-radius:9px}.camera-preview{width:100%;max-height:50dvh;min-height:240px;background:#09213e;object-fit:cover;border-radius:10px;transform:scaleX(-1)}.camera-help{font-size:12px;color:#647489;margin:12px 0}.empty{display:grid;justify-items:center;text-align:center;padding:48px 18px;color:#8ba0af}.empty h3{color:#40617e;margin:12px 0 5px}.empty p{font-size:12px;margin:0}.toast{position:fixed;left:50%;bottom:35px;transform:translate(-50%,25px);z-index:100;padding:12px 17px;border-radius:11px;background:#153e62;color:white;box-shadow:0 10px 35px #173c6040;opacity:0;transition:all .2s;max-width:min(500px,90vw);font-size:13px;pointer-events:none;text-align:center}.toast.show{transform:translate(-50%,0);opacity:1}.toast.error{background:#a22b41}.boot{height:100dvh;display:grid;place-content:center;text-align:center;color:#6e859d}.booticon{font-size:45px;color:#2782b5}.footnote{line-height:1.6}@media(max-width:1199px){.filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.site-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.action-card{align-items:stretch;flex-direction:column}.action-right{min-width:0}}@media(max-width:900px){.sidebar{width:210px;min-width:210px}.content{padding:23px 19px 100px}.topbar{padding:0 19px}.metrics{gap:9px}.metric{padding:14px}.clock-grid{grid-template-columns:1fr}.action-card{flex-direction:row;align-items:center}.auth-layout{grid-template-columns:1fr}.auth-intro{display:none}}@media(max-width:650px){.sidebar{display:none}.mobilebrand{display:flex;gap:8px;align-items:center;color:#1a527d}.top-label,.online-text{display:none}.topbar{height:57px}.content{padding:20px 12px 100px}.page-heading{align-items:flex-start}.page-heading h1{font-size:22px}.page-heading .btn{padding:9px;font-size:11px;white-space:normal}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.metric:last-child{grid-column:span 2}.metric strong{font-size:19px}.metric p{font-size:11px}.clock-card{padding:16px}.action-card{padding:16px;flex-direction:column;align-items:stretch}.action-right{flex-direction:column;align-items:stretch}.action-submit{width:100%}.bottomnav{display:flex;position:fixed;bottom:0;bottom:env(safe-area-inset-bottom,0);left:0;right:0;height:63px;z-index:20;background:#fff;box-shadow:0 -7px 25px #243d5c12;border-top:1px solid #e5ebf3;align-items:stretch;justify-content:space-around}.bottomnav button{background:none;border:0;display:grid;justify-items:center;align-content:center;gap:4px;flex:1;min-width:0;font-size:9px;font-weight:700;color:#7c8ea1;padding:2px}.bottomnav button.active{color:#1468ae}.site-grid,.settings-grid{grid-template-columns:1fr}.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-two,.checkgrid{grid-template-columns:1fr}.modalback{padding:10px;align-items:center}.modal{max-height:94dvh;padding:17px}.login-card{padding:25px}.auth-form-side{padding:12px}.login-card h2{font-size:23px}.site-tile{padding:16px}}@media(max-width:380px){.mini-stats{gap:5px}.mini-stats>div{padding:10px}.mini-stats strong{font-size:18px}.filter-grid{grid-template-columns:1fr}.metrics{gap:7px}}

/* v1.2.0: Projects, optional GPS/camera and admin config */
.project-picker-card{margin-top:20px;padding:24px}.project-check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}.project-check{border:1px solid #dfe9f4;border-radius:12px;padding:13px 15px;display:flex;align-items:flex-start;gap:12px;cursor:pointer;background:#fff}.project-check:has(input:checked){background:#eaf4ff;border-color:#2a7cbb}.project-check input{margin-top:4px;min-width:18px;min-height:18px;accent-color:#1167aa}.project-check span{display:flex;flex-direction:column;gap:3px;min-width:0}.project-check span b{overflow-wrap:anywhere;color:#153452}.project-check span small{color:#70869f}.project-selected{padding:15px;background:#eff6fc;border-radius:12px;font-weight:600}.config-panel{max-width:820px}.config-switch{display:flex;align-items:center;gap:15px;padding:20px 10px;border-bottom:1px solid #e9eff5;cursor:pointer}.config-switch input{width:23px;height:23px;min-width:23px;accent-color:#1167aa}.config-switch span{display:flex;flex-direction:column;gap:5px}.config-switch b{font-size:16px}.config-switch small{font-size:13px;color:#647992;line-height:1.5}.config-actions{padding-top:20px}.config-panel .notice{margin-top:20px}.project-picker-card .card-header{margin-bottom:18px}@media(max-width:640px){.project-picker-card{padding:16px}.project-check-grid{grid-template-columns:1fr}.config-switch{align-items:flex-start}.config-panel{padding:16px}}

.admin-menu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:15px}.admin-menu-tile{border:1px solid #e0eaf5;text-align:left;display:flex;flex-direction:column;align-items:flex-start;gap:9px;cursor:pointer;padding:22px;color:#143c62}.admin-menu-tile:hover{background:#eef6ff}.admin-menu-tile small{color:#657c94;font-size:12px}.admin-menu-tile b{font-size:17px}
