*{box-sizing:border-box;margin:0;padding:0}body{color:#333;background:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px}.container{max-width:1100px;margin:0 auto;padding:20px}h1{margin-bottom:16px;font-size:22px;font-weight:600}.search-bar{gap:8px;margin-bottom:16px;display:flex}.search-bar input{border:1px solid #d8dde3;border-radius:6px;flex:1;padding:9px 12px;font-size:14px;transition:border-color .12s,box-shadow .12s}.search-bar input:focus{border-color:#1976d2;outline:none;box-shadow:0 0 0 3px #1976d21f}.search-bar button{color:#fff;cursor:pointer;background:#333;border:none;border-radius:4px;padding:8px 20px}.add-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#4caf50;border:none;border-radius:4px;padding:8px 16px;font-size:14px}.add-btn:hover{background:#43a047}.add-modal{background:#fff;border-radius:8px;width:380px;max-width:90vw;padding:20px}.add-modal h3{margin:0 0 16px;font-size:16px}.add-field{margin-bottom:12px}.add-field label{color:#666;margin-bottom:4px;font-size:12px;font-weight:600;display:block}.add-field input{box-sizing:border-box;border:1px solid #ddd;border-radius:4px;width:100%;padding:8px 10px;font-family:inherit;font-size:14px}.add-row{gap:12px;display:flex}.add-row .add-field{flex:1}.plate-input-wrap{position:relative}.car-suggestions{z-index:10;background:#fff;border:1px solid #ddd;border-top:none;border-radius:0 0 4px 4px;max-height:160px;margin:0;padding:0;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 4px 8px #0000001a}.car-suggestions li{cursor:pointer;padding:8px 10px;font-size:13px}.car-suggestions li:hover{background:#f0f0f0}.car-suggestions li strong{color:#333}.car-suggestions li span{color:#999}.save-btn{color:#fff!important;background:#4caf50!important;border-color:#4caf50!important}.save-btn:disabled{opacity:.5;cursor:default!important}.loading{text-align:center;color:#999;padding:40px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;table-layout:fixed;background:#fff;width:100%}th,td{text-align:left;vertical-align:top;border:1px solid #e0e0e0;padding:10px 12px}th{white-space:nowrap;background:#f9f9f9;font-weight:600}tr.registered{background:#e8f5e9}tr.registered:hover{background:#c8e6c9}tr:hover{background:#fafafa}.plate{white-space:nowrap;font-weight:600}.date{white-space:nowrap;font-size:13px}.time{color:#999}.desc{max-width:200px;font-size:13px}.desc-display{cursor:pointer;border-radius:4px;min-height:24px;padding:4px}.desc-display:hover{background:#f0f0f0}.desc-edit input{border:1px solid #ccc;border-radius:4px;width:100%;padding:4px 6px;font-family:inherit;font-size:13px}.face-cell{text-align:center;width:80px}.face-wrap{display:inline-block;position:relative}.face-thumb{object-fit:cover;cursor:pointer;border:2px solid #4caf50;border-radius:4px;width:72px;height:90px}.face-thumb:hover{border-color:#333}.face-remove{color:#fff;cursor:pointer;background:#e53e3e;border:none;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:12px;line-height:1;display:flex;position:absolute;top:-6px;right:-6px}.face-btn{cursor:pointer;background:#fafafa;border:2px dashed #bbb;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:20px;display:inline-flex}.face-btn:hover{background:#f0f0f0;border-color:#666}.face-btn-active{background:#e8f5e9;border-style:solid;border-color:#4caf50}.face-modal{background:#fff;border-radius:8px;width:90vw;max-width:600px;max-height:80vh;padding:20px;overflow-y:auto}.face-modal h3{margin:0 0 16px;font-size:16px}.face-group{margin-bottom:16px}.face-group h4{color:#666;border-bottom:1px solid #eee;margin:0 0 8px;padding-bottom:4px;font-size:13px}.face-grid{grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:8px;display:grid}.face-item{cursor:pointer;border:2px solid #0000;border-radius:6px;flex-direction:column;align-items:center;padding:4px;display:flex}.face-item:hover{background:#f0faf0;border-color:#4caf50}.face-item img{object-fit:cover;border-radius:4px;width:64px;height:80px}.face-time{color:#666;margin-top:2px;font-size:11px}.empty-face{text-align:center;color:#999;padding:24px}.face-saving{text-align:center;color:#4caf50;padding:8px;font-size:13px}.face-candidates-row td{background:#fafafa;overflow:hidden;padding:6px 12px!important}.face-candidates-strip{gap:16px;padding:4px 0;display:flex;overflow-x:auto}.face-candidates-group{flex-shrink:0;align-items:center;gap:6px;display:flex}.cam-label{color:#999;writing-mode:vertical-rl;text-orientation:mixed;font-size:11px;font-weight:600}.face-candidate{cursor:pointer;border:2px solid #0000;border-radius:4px;flex-direction:column;flex-shrink:0;align-items:center;padding:3px;display:flex}.face-candidate:hover{background:#f0faf0;border-color:#4caf50}.face-candidate img{object-fit:cover;border-radius:3px;width:96px;height:120px}.face-cand-time{color:#666;margin-top:1px;font-size:10px}.face-candidates-loading,.face-candidates-empty{text-align:center;color:#999;padding:8px;font-size:13px}.images{min-width:100px}.images:focus{outline-offset:-2px;outline:2px dashed #999}.image-list{flex-wrap:wrap;gap:4px;margin-bottom:4px;display:flex}.thumb{object-fit:cover;cursor:pointer;border:1px solid #ddd;border-radius:4px;width:48px;height:48px}.file-btn{cursor:pointer;color:#999;border:1px dashed #bbb;border-radius:4px;justify-content:center;align-items:center;width:28px;height:28px;font-size:16px;display:inline-flex}.file-btn:hover{color:#666;border-color:#666}.uploading{color:#999;font-size:11px}.delete-cell{text-align:center;vertical-align:middle}.delete-log-btn{cursor:pointer;opacity:.3;background:0 0;border:none;padding:4px;font-size:16px;transition:opacity .2s}.delete-log-btn:hover{opacity:1}.memo{min-width:180px}.memo-display{cursor:pointer;white-space:pre-wrap;border-radius:4px;min-height:32px;padding:4px;font-size:13px}.memo-display:hover{background:#f0f0f0}.placeholder{color:#bbb;font-style:italic}.memo-edit textarea{resize:vertical;border:1px solid #ccc;border-radius:4px;width:100%;padding:6px;font-family:inherit;font-size:13px}.memo-btns{gap:4px;margin-top:4px;display:flex}.memo-btns button{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:4px;padding:4px 12px;font-size:12px}.memo-btns button:first-child{color:#fff;background:#333;border-color:#333}.pager{border-top:1px solid #eee;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:20px;padding:14px 4px;display:flex}.pager-summary{color:#555;font-variant-numeric:tabular-nums;flex-shrink:0;font-size:13px}.pager-summary strong{color:#1976d2;font-weight:600}.pager-summary .pager-of{color:#888}.pager-controls{flex-wrap:wrap;flex:1;justify-content:center;align-items:center;gap:4px;display:flex}.pager-controls button,.pager-controls .pager-ellipsis{font-variant-numeric:tabular-nums;justify-content:center;align-items:center;min-width:36px;height:36px;padding:0 10px;font-size:14px;display:inline-flex}.pager-controls button{color:#333;cursor:pointer;background:#fff;border:1px solid #d8dde3;border-radius:6px;transition:border-color .12s,color .12s,background .12s}.pager-controls button:hover:not(:disabled):not(.pager-current){color:#1976d2;background:#f4faff;border-color:#1976d2}.pager-controls button:focus-visible{outline-offset:1px;outline:2px solid #1976d2}.pager-controls button:disabled{opacity:.35;cursor:not-allowed}.pager-current{font-weight:600;color:#fff!important;cursor:default!important;background:#1976d2!important;border-color:#1976d2!important}.pager-ellipsis{color:#aaa;border:none}.pager-jump{flex-shrink:0;align-items:center;gap:4px;display:flex}.pager-jump input{text-align:center;border:1px solid #d8dde3;border-radius:4px;width:76px;height:32px;padding:0 8px;font-family:inherit;font-size:13px}.pager-jump input:focus{border-color:#1976d2;outline:none}.pager-jump input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.pager-jump input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.pager-jump button{color:#fff;cursor:pointer;background:#1976d2;border:1px solid #1976d2;border-radius:4px;height:32px;padding:0 14px;font-size:13px;font-weight:500;transition:background .12s}.pager-jump button:hover:not(:disabled){background:#1565c0}.pager-jump button:disabled{opacity:.45;cursor:not-allowed}@media (width<=700px){.pager{flex-direction:column;align-items:stretch;gap:10px}.pager-summary{text-align:center}.pager-jump{justify-content:center}}.modal-overlay{z-index:1000;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:8px;max-width:90vw;max-height:90vh;padding:16px}.modal img{object-fit:contain;max-width:80vw;max-height:70vh;margin-bottom:12px;display:block}.modal-btns{justify-content:flex-end;gap:8px;display:flex}.modal-btns button{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:4px;padding:6px 16px}.delete-btn{color:#e53e3e;border-color:#e53e3e!important}.empty{text-align:center;color:#999;padding:40px!important}@media (width<=768px){.container{padding:12px}th,td{padding:8px 6px;font-size:12px}.desc{max-width:120px}.thumb{width:36px;height:36px}}.admin-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.admin-header h1{margin-bottom:0}.guest-switch-btn{cursor:pointer;background:#e0e0e0;border:none;border-radius:4px;padding:6px 16px;font-size:13px}.guest-switch-btn:hover{background:#ccc}.pin-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.pin-dialog{text-align:center;background:#fff;border-radius:12px;min-width:280px;padding:32px 40px}.pin-dialog h3{margin:0 0 24px;font-size:18px}.pin-boxes{justify-content:center;gap:12px;margin-bottom:24px;display:flex}.pin-box{text-align:center;border:2px solid #ddd;border-radius:8px;outline:none;width:48px;height:56px;font-size:24px}.pin-box:focus{border-color:#333}.pin-box.pin-error{background:#ffebee;border-color:#e53935}.pin-locked{color:#e53935;margin-bottom:16px;font-size:14px}.pin-cancel{cursor:pointer;background:#e0e0e0;border:none;border-radius:4px;padding:8px 24px;font-size:14px}.pin-cancel:hover{background:#ccc}.shake{animation:.5s ease-in-out shake}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-10px)}40%{transform:translate(10px)}60%{transform:translate(-6px)}80%{transform:translate(6px)}}.guest-container{background:#f5f5f5;max-width:700px;min-height:100vh;margin:0 auto;padding:16px}.guest-top-bar{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.guest-top-bar h2{margin:0;font-size:20px;font-weight:700}.guest-top-actions{align-items:center;gap:8px;display:flex}.guest-add-btn{color:#fff;cursor:pointer;background:#4caf50;border:none;border-radius:4px;padding:6px 14px;font-size:14px}.guest-admin-link{cursor:pointer;color:#666;background:#e0e0e0;border:1px solid #ccc;border-radius:4px;padding:6px 14px;font-size:13px}.guest-admin-link:hover{background:#d0d0d0}.guest-loading,.guest-empty{text-align:center;color:#999;padding:40px}.guest-table-wrap{overflow-x:auto}.guest-table{border-collapse:collapse;background:#fff;width:100%}.guest-table th,.guest-table td{text-align:left;border:1px solid #e0e0e0;padding:10px 12px}.guest-table th{background:#f9f9f9;font-size:14px;font-weight:600}.guest-time{white-space:nowrap;color:#666;width:60px;font-size:14px}.guest-plate{font-size:16px;font-weight:700}.guest-car-image{text-align:center;width:60px}.guest-car-thumb{object-fit:cover;cursor:pointer;border:1px solid #ddd;border-radius:4px;width:48px;height:36px}.guest-no-image{color:#ccc;font-size:14px}.guest-memo-cell{color:#555;max-width:120px;font-size:12px}.guest-memo-text{word-break:break-all}.guest-photo-cell{min-width:50px}.guest-thumb-list{flex-wrap:wrap;gap:3px;display:flex}.guest-car-thumb-sm{object-fit:cover;cursor:pointer;border:1px solid #ddd;border-radius:3px;width:32px;height:32px}.guest-registered{background-color:#e8f5e9}.guest-registered .guest-plate{color:#2e7d32}.guest-pagination{justify-content:center;align-items:center;gap:16px;padding:12px 0;display:flex}.guest-pagination button{cursor:pointer;background:#fff;border:1px solid #ccc;border-radius:4px;padding:6px 14px;font-size:14px}.guest-pagination button:disabled{opacity:.4;cursor:default}.guest-pagination span{color:#666;font-size:14px}.guest-input-btn-cell{text-align:center;width:90px}.guest-input-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#4caf50;border:none;border-radius:4px;padding:6px 12px;font-size:13px}.guest-input-btn:hover{background:#43a047}.guest-saved{color:#4caf50;font-size:20px;font-weight:700}.guest-row-active{background:#e8f5e9}.guest-expand-row td{background:#fafafa;padding:10px 12px!important}.guest-expand-actions{gap:8px;margin-bottom:8px;display:flex}.guest-cam-btn{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:6px;padding:8px 14px;font-size:14px}.guest-cam-btn:hover{background:#f0f0f0}.guest-cam-btn:disabled{opacity:.5}.guest-preview-strip{gap:10px;width:100%;max-width:500px;margin-bottom:16px;padding:8px 0;display:flex;overflow-x:auto}.guest-preview-item{flex-shrink:0;position:relative}.guest-preview-item img{object-fit:cover;border-radius:8px;width:80px;height:80px}.guest-preview-remove{color:#fff;cursor:pointer;background:#e53935;border:none;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;display:flex;position:absolute;top:-6px;right:-6px}.guest-actions{gap:12px;width:100%;max-width:500px;margin-bottom:20px;display:flex}.guest-big-btn{cursor:pointer;background:#fff;border:1px solid #e0e0e0;border-radius:12px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px 16px;transition:box-shadow .15s;display:flex;box-shadow:0 1px 4px #0000000f}.guest-big-btn:hover{box-shadow:0 2px 8px #0000001f}.guest-big-btn:disabled{opacity:.5;cursor:not-allowed}.guest-btn-icon{font-size:36px}.guest-btn-text{color:#333;font-size:16px;font-weight:600}.guest-memo-section{width:100%;max-width:500px;margin-bottom:20px}.guest-memo-input{resize:vertical;box-sizing:border-box;border:1px solid #ddd;border-radius:10px;width:100%;padding:14px;font-family:inherit;font-size:16px;line-height:1.6}.guest-memo-input:focus{border-color:#4caf50;outline:none}.guest-submit-btn{color:#fff;cursor:pointer;background:#4caf50;border:none;border-radius:10px;width:100%;max-width:500px;padding:16px;font-size:18px;font-weight:700}.guest-submit-btn:hover{background:#43a047}.guest-submit-btn:disabled{cursor:not-allowed;background:#aaa}.guest-done{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:60vh;display:flex}.guest-done-icon{color:#fff;background:#4caf50;border-radius:50%;width:80px;height:80px;margin-bottom:20px;font-size:48px;line-height:80px}.guest-done h2{margin:0 0 8px;font-size:24px}.guest-done p{color:#888;font-size:16px}.admin-tabs{border-bottom:2px solid #e0e0e0;gap:4px;margin-bottom:16px;display:flex}.tab-btn{cursor:pointer;color:#666;background:0 0;border:none;border-bottom:3px solid #0000;margin-bottom:-2px;padding:10px 20px;font-size:14px;font-weight:500}.tab-btn:hover{color:#333;background:#f5f5f5}.tab-btn.tab-active{color:#1976d2;border-bottom-color:#1976d2;font-weight:600}.log-filter-bar{gap:8px;margin-bottom:12px;display:flex}.filter-btn{cursor:pointer;color:#555;background:#fff;border:1px solid #ccc;border-radius:999px;padding:6px 14px;font-size:13px}.filter-btn:hover{background:#f0f0f0}.filter-btn.filter-active{color:#fff;background:#1976d2;border-color:#1976d2}.cars-manager{margin-top:4px}.cars-table input{box-sizing:border-box;border:1px solid #aaa;border-radius:4px;width:100%;padding:6px 8px;font-family:inherit;font-size:13px}.cars-edit-row{background:#fff8e1!important}.cars-row-actions{gap:4px;display:flex}.cars-row-actions button{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:4px;padding:4px 10px;font-size:12px}.cars-row-actions button:disabled{opacity:.4;cursor:not-allowed}.cars-row-actions .cars-save{color:#fff;background:#4caf50;border-color:#4caf50}.cars-row-actions .cars-delete{color:#e53e3e;border-color:#e53e3e}.cars-row-actions .cars-delete:hover:not(:disabled){color:#fff;background:#e53e3e}.cars-last-entry{color:#555;white-space:nowrap;font-size:12px}.cars-total{text-align:right;font-variant-numeric:tabular-nums;color:#333}
