*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#f2f4f7;color:#10233f}button,input,select,textarea{font:inherit}button{border:0;border-radius:8px;background:#071a57;color:#fff;padding:11px 16px;cursor:pointer}button:hover{opacity:.92}button:disabled{opacity:.55;cursor:not-allowed}.secondary{background:#eef1f6;color:#10233f}.danger{background:#b42318}.small{padding:8px 12px}header{position:sticky;top:0;z-index:5;background:#071a57;color:#fff;padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}header b{font-size:22px}nav{display:flex;align-items:center;gap:8px}nav button{background:transparent}nav button.active{background:#fff;color:#071a57}nav span{font-size:14px;margin:0 8px}main{max-width:1200px;margin:24px auto;padding:0 16px}.card{background:#fff;border-radius:14px;padding:20px;margin-bottom:18px;box-shadow:0 4px 18px #10233f14}.login{width:min(460px,calc(100vw - 32px));margin:0}.center{min-height:100vh;display:grid;place-items:center}.login h1{margin-top:0}.login input,.visitor-form input,.visitor-form select,.admin-form input,.admin-form select,.admin-form textarea,.inline-form input,.inline-form select{width:100%;padding:12px;border:1px solid #ccd4df;border-radius:8px;margin-bottom:10px}.visitor-form,.admin-form{max-width:560px}.admin-form textarea{min-height:90px;resize:vertical}.inline-form{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:start}.inline-form input,.inline-form select{margin:0}.photo-row{display:flex;gap:18px;align-items:center;margin-bottom:14px}.photo-box{width:150px;height:150px;border:2px dashed #b9c3d0;border-radius:12px;display:grid;place-items:center;overflow:hidden;background:#f7f9fb}.photo-box img{width:100%;height:100%;object-fit:cover}.photo-row>div:nth-child(2){flex:1}.hint{color:#667085;font-size:13px}.error{background:#fee4e2;color:#b42318;padding:10px;border-radius:8px;margin:10px 0}.warning{background:#fff4d6;color:#8a5a00;padding:10px;border-radius:8px;margin-top:8px}.match{background:#e9f8ef;color:#087443;padding:10px;border-radius:8px;margin-top:8px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;margin-top:14px}th,td{text-align:left;padding:11px 10px;border-bottom:1px solid #e5e7eb;white-space:nowrap}th{color:#475467;font-size:13px}.thumb{width:48px;height:48px;object-fit:cover;border-radius:8px}.status{padding:4px 8px;border-radius:20px;font-size:12px}.status.pending{background:#fff4d6}.status.inside,.status.approved{background:#e9f8ef}.status.rejected{background:#fee4e2}.status.out{background:#eef1f6}.tabs{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}.tabs button.active{background:#fff;color:#071a57;border:1px solid #071a57}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000ad;display:grid;place-items:center;z-index:50;padding:18px}.camera{background:#fff;border-radius:14px;padding:18px;width:min(720px,100%)}.camera video{width:100%;max-height:65vh;object-fit:cover;border-radius:10px;background:#000}.actions{display:flex;gap:10px;margin-top:12px}@media(max-width:700px){header{align-items:flex-start;flex-direction:column}nav{width:100%;flex-wrap:wrap}.inline-form{grid-template-columns:1fr}.photo-row{align-items:flex-start;flex-direction:column}.photo-box{width:130px;height:130px}th,td{padding:8px}.card{padding:15px}}.success{background:#e9f8ef;color:#087443;padding:10px;border-radius:8px;margin:10px 0}.vehicle-summary{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:16px 0}.summary-box{border:1px solid #dbe2ea;border-radius:10px;padding:12px;background:#f8fafc;display:flex;flex-direction:column;gap:5px}.summary-box span{font-size:13px;color:#667085}.vehicle-thumb{width:64px;height:48px}.form-actions{display:flex;gap:8px}@media(max-width:700px){.vehicle-summary{grid-template-columns:repeat(2,1fr)}}.report-filters{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;align-items:end;margin:16px 0}.report-filters label{font-size:13px;color:#475467;font-weight:600}.report-filters input,.report-filters select{display:block;width:100%;padding:10px;border:1px solid #ccd4df;border-radius:8px;margin-top:6px}.report-actions{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap}.report-summary{display:inline-flex;gap:8px;align-items:baseline;background:#f2f4f7;border-radius:10px;padding:10px 14px;margin-top:6px}.report-summary b{font-size:20px}@media(max-width:900px){.report-filters{grid-template-columns:1fr 1fr}}@media(max-width:600px){.report-filters{grid-template-columns:1fr}}footer{max-width:1200px;margin:24px auto 0;padding:18px 20px;text-align:center;color:#64748b;font-size:13px;border-top:1px solid #e2e8f0}.gate-tabs{margin-bottom:16px;display:flex;flex-wrap:wrap;gap:8px}.gate-tabs button{margin:0}html,body,#root{min-height:100%}body{overflow-x:hidden}.app-shell{min-height:100vh;padding-bottom:12px}.brand{font-size:22px;font-weight:700;white-space:nowrap}.user-bar{display:flex;align-items:center;gap:10px;margin-left:auto}.app-nav{display:flex;align-items:center;gap:6px}.app-nav button{min-height:42px;padding:9px 12px;display:flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap}.nav-icon{font-size:17px;line-height:1}.card h2{margin-top:0}.visitor-form input,.visitor-form select,.admin-form input,.admin-form select,.admin-form textarea{min-height:46px}button{min-height:42px}.actions button,.form-actions button{min-height:44px}@media(max-width:700px){body{background:#f2f4f7;padding-bottom:72px}header{position:sticky;top:0;padding:10px 12px;min-height:58px;display:block;z-index:30;box-shadow:0 2px 10px #0000001f}.brand{font-size:18px;padding-right:110px;line-height:32px}.user-bar{position:absolute;right:10px;top:10px;gap:5px}.user-bar span{display:none}.user-bar .small{font-size:12px;padding:7px 9px;min-height:34px}.app-nav{position:fixed;left:0;right:0;bottom:0;height:68px;background:#071a57;z-index:100;display:flex;gap:0;padding:5px 3px calc(5px + env(safe-area-inset-bottom));box-shadow:0 -3px 14px #0000002e;overflow-x:auto}.app-nav button{background:transparent;border-radius:8px;flex:1 0 78px;min-width:78px;height:56px;min-height:56px;padding:5px 4px;color:#fff;flex-direction:column;font-size:11px;line-height:14px;gap:3px}.app-nav button.active{background:#fff;color:#071a57}.nav-icon{font-size:19px}main{width:100%;margin:12px auto;padding:0 10px}.card{border-radius:12px;padding:14px;margin-bottom:12px;box-shadow:0 2px 12px #10233f12}.card h2{font-size:21px;margin-bottom:8px}.hint{line-height:1.4}.visitor-form,.admin-form{max-width:none;width:100%}.photo-row{width:100%;gap:12px}.photo-box{width:118px;height:118px;flex:0 0 auto}.photo-row>div:nth-child(2){width:100%}.photo-row>div:nth-child(2) button{width:100%}.form-actions{display:grid;grid-template-columns:1fr 1fr}.form-actions button{width:100%}.inline-form{grid-template-columns:1fr}.inline-form button{width:100%}.vehicle-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.summary-box{padding:10px;font-size:13px}.tablewrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:8px}table{min-width:760px;font-size:13px}th,td{padding:9px 8px}.report-filters{grid-template-columns:1fr;gap:8px}.report-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.report-actions button:first-child{grid-column:1/-1}.modal{padding:8px;align-items:center}.camera{width:100%;max-height:94vh;padding:12px;border-radius:12px}.camera h3{margin:0 0 10px;font-size:18px}.camera video{max-height:68vh;aspect-ratio:3/4;object-fit:cover}.actions{display:grid;grid-template-columns:1fr 1fr}.actions button{width:100%}footer{margin:12px 10px 0;padding:14px 8px;font-size:12px}}@media(max-width:380px){.brand{font-size:16px}.app-nav button{flex-basis:72px;min-width:72px;font-size:10px}.card{padding:12px}.photo-box{width:105px;height:105px}.report-actions{grid-template-columns:1fr}.report-actions button:first-child{grid-column:auto}}@media(max-width:700px){.tabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:3px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs button{flex:0 0 auto;min-height:42px}.login{margin:16px;width:calc(100vw - 24px)}.login h1{font-size:26px;line-height:1.15}}.checkbox-label{display:inline-flex;align-items:center;gap:10px;width:max-content;min-height:40px;margin:8px 0 4px;padding:8px 12px;border:1px solid #cbd5e1;border-radius:8px;background:#f8fafc;color:#02154a;font-size:15px;font-weight:600;line-height:1;cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-label:hover{background:#f1f5f9;border-color:#94a3b8}.checkbox-label input[type=checkbox]{width:18px;height:18px;margin:0;accent-color:#02154a;cursor:pointer;flex:0 0 auto}.checkbox-label span{display:inline-block;white-space:nowrap}@media(max-width:600px){.checkbox-label{width:100%;box-sizing:border-box;justify-content:flex-start}}@media(min-width:701px){header .app-nav{flex:1 1 auto;justify-content:center;min-width:0}header .user-bar{flex:0 0 auto;margin-left:auto}}.camera-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.camera-head h3{margin:0}.camera-mode{font-size:13px;font-weight:700;padding:6px 10px;border-radius:999px;background:#eef2ff;color:#0b1f63}.camera-preview{position:relative;width:100%;overflow:hidden;border-radius:10px;background:#111}.camera-preview video{display:block;width:100%;max-height:65vh;object-fit:cover}.face-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.camera-options{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 10px}.camera-options button{flex:1 1 180px;min-height:42px}.camera-options .active-option{font-weight:700;outline:2px solid #0b1f63}.camera-options .face-option{background:#f4f7ff}.face-status{text-align:center;font-size:14px;font-weight:600;padding:9px;border-radius:8px;background:#fff7ed;margin-bottom:10px}.face-status.found{background:#ecfdf5;color:#166534}@media(max-width:600px){.camera{width:min(96vw,560px);max-height:94vh;padding:12px}.camera-options{display:none}.camera-preview video{max-height:52vh;aspect-ratio:3/4;object-fit:cover}.actions{margin-top:10px}.actions button{flex:1;min-height:44px}}@media(max-width:700px){.camera-options{display:none!important}.camera{width:calc(100vw - 20px);max-width:560px;max-height:calc(100vh - 20px);overflow:hidden;padding:10px}.camera-head{margin-bottom:8px}.camera-head h3{font-size:17px}.camera-mode{font-size:11px;padding:4px 7px}.camera-preview video{max-height:55vh;aspect-ratio:3/4;object-fit:cover}.actions{display:flex;gap:8px;margin-top:8px}.actions button{flex:1;min-height:44px;padding:9px 12px}}
