.footer-jejak-kala{margin:25px 0px;}p.copyright{font-size:12px;}.animate-spin{animation:2s linear infinite spin;display:inline-block}@keyframes spin{from{transform:rotate(0)}to{transform:rotate(359deg)}}.mirror-mode{transform:scaleX(-1)}#captureBtn:active{transform:scale(.9);background:#c0392b}@media (max-width:767px){#cameraModal .modal-dialog{margin:10px}}#overlayContent{display:flex;flex-direction:column;width:auto;max-width:95%;pointer-events:none}#overlayContent div{font-size:clamp(10px, 3vw, 18px);line-height:1.2;word-wrap:break-word}@media (min-width:992px){#overlayContent div{font-size:14px}}.pos-right-bottom{bottom:10px;right:10px;text-align:right;align-items:flex-end}.pos-right-top{top:10px;right:10px;text-align:right;align-items:flex-end}.pos-left-bottom{bottom:10px;left:10px;text-align:left;align-items:flex-start}.pos-left-top{top:10px;left:10px;text-align:left;align-items:flex-start}.skeleton,canvas{border-radius:12px;margin-top:10px}#canvasWrapper,h3{text-align:center}#canvas,canvas{max-width:100%}body{padding:20px;background-color:#f4f7f6;font-family:'Segoe UI',Roboto,Helvetica,Arial,sans-serif;color:#333}canvas{display:block}.skeleton{animation:1.5s infinite shimmer;background:linear-gradient(90deg,#e2e8f0 25%,#cbd5e1 50%,#e2e8f0 75%);background-size:200% 100%;width:100%;height:400px}.alert-map{margin-bottom:10px}#canvasSkeleton{width:100%;min-height:300px;background:0 0/800px 100% no-repeat #f6f7f8;background-image:linear-gradient(to right,#f6f7f8 0,#edeef1 20%,#f6f7f8 40%,#f6f7f8 100%);display:none;border-radius:8px;animation:1.5s linear infinite shimmer}@keyframes shimmer{0%{background-position:-400px 0}100%{background-position:400px 0}}.btn-primary:disabled{cursor:not-allowed;opacity:.8}#locationSuggestions{position:absolute;z-index:1000;background:#fff;width:100%;border:1px solid #ddd;border-top:none;border-radius:0 0 8px 8px;max-height:200px;overflow-y:auto;box-shadow:0 4px 6px rgba(0,0,0,.1)}#locationSuggestions div{padding:10px 15px;cursor:pointer;border-bottom:1px solid #f0f0f0;font-size:14px}#locationSuggestions div:hover{background-color:#f8f9fa;color:#007bff}.panel{border:none;border-radius:15px;box-shadow:0 10px 30px rgba(0,0,0,.05);padding:30px;margin-top:50px}h3{font-weight:700;margin-bottom:25px;color:#2c3e50}.form-control{border-radius:8px;border:1px solid #e0e0e0;box-shadow:none;height:45px;transition:.3s}#canvas,#map{border-radius:12px}.form-control:focus{border-color:#3498db;box-shadow:0 0 0 3px rgba(52,152,219,.1)}.input-group-addon{background-color:#f8f9fa;border-color:#e0e0e0;border-radius:8px 0 0 8px}.logo-container{font-size:30px;color:#3498db;margin-bottom:-10px}.icon-wrapper .glyphicon-time{font-size:18px;margin-left:-12px;color:#2ecc71;background:#fff;border-radius:50%;padding:2px}.panel{border-top:5px solid #3498db!important}#map{z-index:1;height:350px;margin-bottom:20px;border:1px solid #ddd}.btn{border-radius:8px;padding:12px 20px;font-weight:600;transition:transform .2s}.btn:active{transform:scale(.98)}.btn-primary{background-color:#3498db;border:none}.btn-success{background-color:#2ecc71;border:none}#canvasWrapper{margin-top:30px}#canvas{box-shadow:0 4px 12px rgba(0,0,0,.15);margin-top:15px;display:none;height:auto;box-shadow:0 15px 35px rgba(0,0,0,.2);border:5px solid #fff}.action-buttons{display:flex;gap:10px;margin-top:20px}.action-buttons .btn{flex:1;padding:15px 10px;font-size:16px;display:flex;align-items:center;justify-content:center;border-radius:12px;transition:.2s}.action-buttons .btn i{margin-right:8px;font-size:18px}.source-btn{border:2px dashed #ddd;background:#fff;padding:20px 10px;border-radius:12px;transition:.3s;color:#555}.source-btn:active,.source-btn:hover{border-color:#3498db;color:#3498db;background:#f0faff}.source-btn i{display:block;font-size:24px;margin-bottom:8px}.animate-spin{animation:1s linear infinite spin;display:inline-block}@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}.source-btn.active-source{border-color:#3498db!important;background-color:#f0faff!important;box-shadow:0 0 10px rgba(52,152,219,.2)}@media (max-width:767px){.action-buttons{flex-direction:column}.action-buttons .btn{width:100%;height:55px;margin-bottom:5px}#generateBtn span::after{content:""}}#dateInput,#timeInput{background:white;}