*{box-sizing:border-box}html,body,#root,.app{height:100%;margin:0}body{background:#e1e1e1;color:#fff;font-family:system-ui,-apple-system,Segoe UI,Roboto,Noto Sans,Helvetica Neue,Arial,"Apple Color Emoji","Segoe UI Emoji"}button{font:inherit}.app-header{background:#fff;padding:20px 0 16px;border-bottom:3px solid #e53935}.header-logo{display:flex;justify-content:center;margin-bottom:0}.logo-image{height:48px;width:auto;object-fit:contain}.page{height:100dvh;display:flex;flex-direction:column;background:#000}.capture-page{background:#e1e1e1}.capture-header{background:#e1e1e1;padding:24px;text-align:center}.capture-title{margin:0 0 8px;font-size:24px;color:#000;font-weight:600}.capture-instruction{margin:0;font-size:14px;color:#000}.capture-vehicle-name{margin:.2em 0 .5em;font-size:20px;color:#000;font-weight:700}.bar{height:48px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;background:#111}.cameraWrap{position:relative;flex:1;background:#000;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0 10px;padding:24px 10px 120px}.camera-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0009;color:#fff;font-size:16px;z-index:10}.cameraViewport{position:relative;width:100%;max-width:640px;aspect-ratio:4 / 3;border-radius:0;overflow:hidden;background:#000;border:none}.video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:.3;pointer-events:none}.gridOverlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:linear-gradient(#fff6,#fff6),linear-gradient(#fff6,#fff6),linear-gradient(90deg,#fff6,#fff6),linear-gradient(90deg,#fff6,#fff6);background-size:100% 1px,100% 1px,1px 100%,1px 100%;background-position:0 calc(100% / 3),0 calc(200% / 3),calc(100% / 3) 0,calc(200% / 3) 0;background-repeat:no-repeat}.redLine{position:absolute;left:0;right:0;height:3px;background:#e53935;transform:translateY(-1.5px);pointer-events:none;z-index:5}.captureBtn{position:absolute;bottom:32px;left:50%;transform:translate(-50%);width:72px;height:72px;border-radius:50%;background:#fff;border:4px solid #fff;box-shadow:0 4px 12px #0000004d;cursor:pointer;transition:all .2s}.captureBtn:after{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:50%;background:#fff;border:5px solid #000}.captureBtn:active{transform:translate(-50%) scale(.95)}.capture-footer{display:flex;gap:12px;padding:16px 24px;background:#fff}.footer-btn{flex:1;padding:16px;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;border:none}.footer-btn.secondary{background:#fff;color:#000;font-size:18px;border:1px solid #000;box-shadow:2px 3px 3px #0000004d}.footer-btn.primary{background:linear-gradient(90deg,#e53935,#b50400);font-size:18px;color:#fff;box-shadow:2px 3px 3px #0000004d}.footer-btn.disabled{background:#e0e0e0;color:#999;font-size:18px;cursor:not-allowed;box-shadow:none}.footer-btn:active{transform:scale(.98)}.footer-btn.disabled:active{transform:none}.preview-header{background:#e1e1e1;padding:24px;text-align:center}.preview-title{margin:0;font-size:24px;color:#000;font-weight:600}.preview-wrap{flex:1;background:#e1e1e1;padding:0 24px 24px;display:flex;flex-direction:row;gap:16px;overflow-y:auto;align-items:flex-start}.preview-instruction{margin:0;font-size:14px;color:#000;text-align:center;text-orientation:upright;padding-top:40px;flex-shrink:0}.preview-content{flex:1;display:flex;flex-direction:column;gap:16px}.preview-image-container{position:relative;border-radius:8px;padding:8px}.preview-image{width:100%;display:block;border-radius:4px}.download-btn{position:absolute;bottom:24px;right:24px;width:48px;height:48px;background:#fff;border:none;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px #0003;transition:all .2s}.download-btn:active{transform:scale(.95)}.retake-btn{width:40%;max-width:400px;margin:0 auto 30px;padding:16px;background:#fff;color:#000;border:1px solid #000000;border-radius:12px;font-size:18px;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:2px 3px 3px #0000004d}.retake-btn:active{transform:scale(.98)}.preview-footer{display:flex;gap:12px;padding:16px 24px;background:#fff}.compareWrap{flex:1;padding:20px 16px 24px;display:flex;flex-direction:column;gap:16px;background:#000;overflow:hidden}.comparePanels{flex:1;display:flex;flex-direction:column;gap:16px;min-height:0}.panel{flex:1;background:#111;border-radius:12px;padding:12px;display:flex;flex-direction:column;min-height:0}.panel .title{color:#ccc;font-size:12px;margin-bottom:6px}.panel .img{flex:1;width:100%;height:100%;object-fit:contain;display:block;border-radius:8px;background:#000}.actions{margin-top:auto;display:flex;gap:12px;justify-content:space-between;padding-top:16px;border-top:1px solid #1f1f1f;position:sticky;bottom:0;background:linear-gradient(180deg,#0000,#000 30%);padding-bottom:8px}.actions button{flex:1;padding:12px 14px;border-radius:12px;border:1px solid #333;background:#1a1a1a;color:#fff}.actions button:last-child{background:#e53935;border-color:#e53935}.history,.historyHeader,.thumbList,.thumb{display:none}.galleryOverlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#fff;color:#000;padding:24px;overflow:auto;display:flex;flex-direction:column;gap:20px}.galleryHeader{display:flex;justify-content:space-between;align-items:center;font-size:18px;font-weight:600}.galleryActions{display:flex;gap:10px}.galleryActions button{padding:10px 16px;border-radius:999px;border:1px solid #ccc;background:#fff;color:#000;cursor:pointer}.galleryActions button:last-child{background:#000;color:#fff;border-color:#000}.galleryGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.galleryItem{background:#f6f6f6;padding:12px;border-radius:16px;display:flex;flex-direction:column;gap:8px;align-items:center;border:1px solid #e5e5e5}.galleryItem img{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:12px;background:#000}.galleryItem span{font-size:12px;color:#555}.vehicle-selector{min-height:100vh;background:#e1e1e1;color:#333;display:flex;flex-direction:column}.vehicle-groups{flex:1;padding:24px;overflow-y:auto}.vehicle-group{margin-bottom:32px}.group-title{font-size:18px;color:#000;margin:0 0 16px;font-weight:600}.vehicle-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.vehicle-item{cursor:pointer;text-align:center}.vehicle-card{background:#fff;border:3px solid transparent;border-radius:16px;padding:0;width:100%;cursor:pointer;transition:all .2s;overflow:hidden;box-shadow:3px 3px 6px 1px #0000001f;position:relative}.vehicle-card.selected{border-color:#e53935;box-shadow:0 4px 16px #e539354d}.vehicle-item:hover .vehicle-card{background:#fafafa;transform:translateY(-2px);box-shadow:0 4px 16px #00000026}.check-badge{position:absolute;top:-8px;right:-8px;width:29px;height:30px;background:#e53935;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0003;z-index:10}.vehicle-icon{width:100%;aspect-ratio:1;object-fit:cover;display:block}.vehicle-name{font-size:14px;font-weight:600;margin:12px 0 0;display:block;color:#333}.next-button-container{padding:16px 24px;background:#fff;border-top:1px solid #e0e0e0;position:sticky;bottom:0;z-index:100;animation:slideUp .3s ease-out;box-shadow:0 -2px 5px #0000001a}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.next-button{width:100%;max-width:500px;margin:0 auto;display:block;padding:16px;background:#e53935;color:#fff;border:none;border-radius:12px;font-size:18px;font-weight:600;cursor:pointer;transition:all .2s}.next-button:active{transform:scale(.98);background:#c62828}.vehicle-count{font-size:12px;color:#999;display:block}.loading-skeleton{padding:24px}.skeleton-title{height:32px;width:200px;background:#e0e0e0;border-radius:8px;margin-bottom:32px}.skeleton-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px}.skeleton-card{height:150px;background:#f0f0f0;border-radius:12px}.error-message{text-align:center;padding:48px 24px}.error-message h2{margin:0 0 16px;color:#e53935}.error-message p{color:#000;margin:0 0 24px}.error-message button{padding:12px 24px;background:#e53935;color:#fff;border:none;border-radius:8px;cursor:pointer}.photo-overview{min-height:100vh;background:#f5f5f5;color:#333;display:flex;flex-direction:column}.overview-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.progress-info{padding:16px 24px;background:#fff;border-bottom:1px solid #e0e0e0}.progress-text{color:#666;margin:0 0 8px;font-size:14px;text-align:center}.progress-bar{height:6px;background:#e0e0e0;border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:#e53935;transition:width .3s}.grid-container{flex:1;padding:16px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;overflow-y:auto}.grid-item{aspect-ratio:1;background:#fff;border:2px solid #e0e0e0;border-radius:12px;overflow:hidden;cursor:pointer;position:relative;transition:all .2s}.grid-item:hover{border-color:#999;transform:scale(1.02);box-shadow:0 2px 8px #0000001a}.grid-item.captured{border-color:#e53935;background:#fff}.thumbnail{width:100%;height:100%;object-fit:cover;display:block}.placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.placeholder-icon{font-size:32px;opacity:.3}.placeholder-text{font-size:12px;color:#999}.position-label{position:absolute;top:8px;right:8px;background:#000000b3;color:#fff;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:600}.overview-footer{padding:16px;background:#fff;border-top:1px solid #e0e0e0}.save-btn{width:100%;padding:16px;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.save-btn.enabled{background:#e53935;color:#fff}.save-btn.enabled:active{transform:scale(.98)}.save-btn.disabled{background:#e0e0e0;color:#999;cursor:not-allowed}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;display:flex;align-items:flex-end;justify-content:center;z-index:1000}.bottom-sheet{width:100%;max-width:600px;max-height:70vh;background:#fff;color:#000;border-radius:16px 16px 0 0;display:flex;flex-direction:column;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.preview-header{padding:16px 20px;display:flex;justify-content:space-between;align-items:center}.preview-header h3{margin:0;font-size:18px}.close-btn{background:none;border:none;font-size:24px;cursor:pointer;padding:0;color:#666}.preview-content,.empty-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.preview-image-container{background:#adadad;flex:1;display:flex;align-items:center;justify-content:center;overflow:auto}.preview-image{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px}.empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:40px}.empty-icon{font-size:64px;opacity:.3}.empty-text{font-size:16px;color:#999}.preview-actions{padding:20px;border-top:1px solid #eee}.btn-primary{width:100%;padding:14px;background:#e53935;color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer}.btn-primary:active{transform:scale(.98)}.overview-page{position:relative;height:100vh;background:#f5f5f5;display:flex;flex-direction:column}.overview-header{padding:16px;background:#fff;border-bottom:1px solid #ddd;flex-shrink:0}.overview-title{font-size:18px;font-weight:700;margin:0;text-align:center;color:#000}.overview-grid{display:flex;flex-wrap:wrap;gap:8px;padding:16px;overflow-y:auto;align-content:flex-start;transition:padding-bottom .3s ease;height:calc(100vh - 49px)}.overview-slot{width:calc(33.333% - 6px);aspect-ratio:1;background:#fff;border-radius:8px;overflow:hidden;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;flex-shrink:0;box-shadow:2px 3px 3px #0000004d}.overview-slot.selected{box-shadow:0 4px 12px #e539354d}.overview-slot:active{transform:scale(.95)}.overview-slot-image{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden}.overview-slot-image img{width:100%;height:100%;object-fit:cover}.overview-slot-image .non-car-image{width:auto;height:50%;object-fit:cover}.overview-slot-label{padding:8px;text-align:center;font-size:12px;background:#fff;border-top:1px solid #eee;color:#ccc}.overview-preview{position:fixed;border-radius:25px;bottom:0;left:0;right:0;background:#fff;border-top:1px solid #ddd;padding:16px;box-shadow:0 -2px 8px #0000001a;z-index:10;animation:slideUpFromBottom .3s ease-out}@keyframes slideUpFromBottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}.overview-preview-content{text-align:center}.overview-preview-content img{max-width:100%;max-height:200px;object-fit:contain;margin-bottom:12px;border-radius:8px}.overview-preview-title{font-weight:700;color:#000}.overview-preview-subtitle{font-size:14px;color:#666;margin:0 0 12px}.overview-action-btn{padding:12px 32px;border:none;border-radius:8px;font-size:16px;font-weight:700;cursor:pointer;transition:all .2s}.overview-action-btn.start,.overview-action-btn.retake{background:linear-gradient(90deg,#e53935,#b50400);font-size:18px;color:#fff;box-shadow:2px 3px 3px #0000004d}.overview-action-btn:active{transform:scale(.95)}.overview-footer{position:fixed;bottom:0;left:0;right:0;padding:12px 16px;background:#fff;border-top:1px solid #ddd;display:flex;justify-content:center;z-index:10}.splash-screen{position:fixed;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,#250100,#c30e0a);display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .3s ease-in;transition:opacity .5s ease-out}.splash-screen.fading{opacity:0}.splash-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:40px;padding:24px}.splash-logo{width:220px;height:auto;object-fit:contain;animation:logoFadeIn .8s ease-out;margin:-35px}.splash-title{font-size:22px;font-weight:600;color:#fff;margin:0;text-align:center;letter-spacing:2px;animation:titleSlideUp .8s ease-out .2s both}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes logoFadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes titleSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
