:root{--bg-dark: #0a0a0c;--panel-bg: rgba(16, 16, 20, .75);--panel-border: rgba(245, 230, 211, .07);--panel-glow: rgba(245, 230, 211, .02);--text-primary: #f5e6d3;--text-secondary: rgba(245, 230, 211, .6);--text-muted: rgba(245, 230, 211, .35);--color-in-progress: #3b82f6;--color-pending-quote: #f97316;--color-pending-sig: #a855f7;--color-done: #10b981;--glass-blur: blur(20px) saturate(140%);--card-shadow: 0 8px 32px 0 rgba(0, 0, 0, .4);--font-base: "Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-title: "Space Grotesk", sans-serif}*{box-sizing:border-box;margin:0;padding:0}body,html{width:100%;height:100%;overflow:hidden;font-family:var(--font-base);background-color:var(--bg-dark);color:var(--text-primary);-webkit-font-smoothing:antialiased}.app-container{position:relative;width:100vw;height:100vh;display:flex}#map,.leaflet-container{width:100%;height:100%;position:absolute;top:0;left:0;z-index:1;background-color:#0c0d10!important}.dashboard-sidebar{position:absolute;top:20px;left:20px;bottom:20px;width:390px;z-index:1000;background:var(--panel-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--panel-border);border-radius:20px;box-shadow:var(--card-shadow),inset 0 0 30px var(--panel-glow);display:flex;flex-direction:column;overflow:hidden;transition:transform .4s cubic-bezier(.16,1,.3,1),opacity .4s ease}.sidebar-header{padding:24px 24px 16px;border-bottom:1px solid rgba(255,255,255,.03)}.logo-area{display:flex;align-items:center;gap:8px}.logo-icon{font-size:1.5rem;color:#f5e6d3;animation:rotateGlow 8s infinite linear;text-shadow:0 0 10px rgba(245,230,211,.4)}.logo-area h1{font-family:var(--font-title);font-size:1.5rem;font-weight:700;letter-spacing:.1em;background:linear-gradient(135deg,#fff,#f5e6d3);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.tagline{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.15em;margin-top:4px}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:16px 24px}.stat-card{background:#ffffff05;border:1px solid rgba(255,255,255,.03);border-radius:12px;padding:12px;display:flex;flex-direction:column;cursor:pointer;transition:all .3s ease}.stat-card:hover{background:#ffffff0a;border-color:#ffffff14;transform:translateY(-2px);box-shadow:0 4px 12px #0003}.stat-value{font-family:var(--font-title);font-size:1.5rem;font-weight:600;color:var(--accent, var(--text-primary))}.stat-label{font-size:.7rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-top:2px}.search-box{margin:0 24px 12px;position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:12px;width:16px;height:16px;color:var(--text-secondary);pointer-events:none}.search-box input{width:100%;background:#00000040;border:1px solid rgba(255,255,255,.05);border-radius:10px;padding:10px 12px 10px 38px;font-family:var(--font-base);font-size:.85rem;color:var(--text-primary);transition:all .3s ease}.search-box input:focus{outline:none;border-color:#f5e6d333;background:#0006;box-shadow:0 0 10px #f5e6d30d}.status-filters{display:flex;flex-wrap:wrap;gap:6px;padding:0 24px 16px;border-bottom:1px solid rgba(255,255,255,.03)}.filter-btn{background:#ffffff08;border:1px solid rgba(255,255,255,.03);border-radius:20px;padding:5px 12px;font-family:var(--font-base);font-size:.75rem;font-weight:500;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s ease}.filter-btn:hover{background:#ffffff0f;color:var(--text-primary)}.filter-btn.active{background:#f5e6d31f;border-color:#f5e6d340;color:var(--text-primary);box-shadow:0 2px 8px #0000004d}.dot{width:6px;height:6px;border-radius:50%;display:inline-block}.dot.progress{background:var(--color-in-progress);box-shadow:0 0 6px var(--color-in-progress)}.dot.pending{background:var(--color-pending-quote);box-shadow:0 0 6px var(--color-pending-quote)}.dot.signature{background:var(--color-pending-sig);box-shadow:0 0 6px var(--color-pending-sig)}.dot.done{background:var(--color-done);box-shadow:0 0 6px var(--color-done)}.missions-section{flex:1;overflow-y:auto;padding:16px 24px;display:flex;flex-direction:column}.missions-section h2{font-family:var(--font-title);font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary);margin-bottom:12px}.missions-list{display:flex;flex-direction:column;gap:10px;flex:1}.missions-section::-webkit-scrollbar{width:5px}.missions-section::-webkit-scrollbar-track{background:transparent}.missions-section::-webkit-scrollbar-thumb{background:#f5e6d31a;border-radius:10px}.missions-section::-webkit-scrollbar-thumb:hover{background:#f5e6d340}.mission-card{background:#ffffff05;border:1px solid rgba(255,255,255,.03);border-radius:12px;padding:14px;cursor:pointer;position:relative;overflow:hidden;transition:all .3s cubic-bezier(.16,1,.3,1)}.mission-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--status-color, var(--text-muted));transition:width .2s ease}.mission-card:hover{background:#ffffff0a;border-color:#ffffff14;transform:translate(4px);box-shadow:0 4px 16px #00000026}.mission-card:hover:before{width:6px}.mission-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:6px;gap:12px}.mission-client{font-weight:600;font-size:.95rem;color:var(--text-primary)}.mission-budget{font-size:.8rem;font-weight:500;padding:2px 6px;background:#ffffff0a;border-radius:6px;border:1px solid rgba(255,255,255,.03);color:var(--text-secondary)}.mission-title{font-size:.8rem;color:var(--text-secondary);margin-bottom:8px;line-height:1.3}.mission-card-footer{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;color:var(--text-muted)}.mission-address{display:flex;align-items:center;gap:4px;max-width:70%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mission-address svg{width:12px;height:12px;flex-shrink:0}.mission-badge{font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;border-radius:10px;font-weight:600;background:var(--status-bg);color:var(--status-color);border:1px solid rgba(255,255,255,.05)}.empty-state{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-size:.85rem;padding:40px 0;text-align:center}.sidebar-footer{padding:16px 24px 24px;border-top:1px solid rgba(255,255,255,.03)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-base);font-size:.85rem;font-weight:500;padding:10px 20px;border-radius:10px;border:1px solid transparent;cursor:pointer;transition:all .2s ease}.btn-primary{background:linear-gradient(135deg,#fff,#f5e6d3);color:#0c0d0f;box-shadow:0 4px 15px #f5e6d333}.btn-primary:hover{background:linear-gradient(135deg,#f5e6d3,#e8d5bf);box-shadow:0 4px 20px #f5e6d359;transform:translateY(-1px)}.btn-secondary{background:#ffffff0d;border-color:#ffffff0d;color:var(--text-primary)}.btn-secondary:hover{background:#ffffff1a;border-color:#ffffff1a}.btn-outline{background:transparent;border-color:#ffffff1a;color:var(--text-primary)}.btn-outline:hover{background:#ffffff0d;border-color:#fff3}.btn-danger{background:#ef444426;border-color:#ef444433;color:#ef4444}.btn-danger:hover{background:#ef444440;border-color:#ef444466}.btn-block{width:100%}.btn-sm{padding:6px 12px;font-size:.75rem;border-radius:6px}.btn-icon-only{padding:10px;width:40px;height:40px;flex-shrink:0}.btn svg{width:16px;height:16px}.glass-dialog{border:1px solid var(--panel-border);border-radius:20px;background:#0c0c0fd9;backdrop-filter:blur(25px);-webkit-backdrop-filter:blur(25px);box-shadow:0 20px 50px #0009,inset 0 0 40px #ffffff03;color:var(--text-primary);width:500px;max-width:90vw;margin:auto;padding:0;overflow:hidden}.glass-dialog::backdrop{background:#050508bf;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:fadeIn .3s ease forwards}.glass-dialog[open]{animation:slideUpShow .4s cubic-bezier(.16,1,.3,1) forwards}.dialog-header{padding:20px 24px;border-bottom:1px solid rgba(255,255,255,.03);display:flex;justify-content:space-between;align-items:center}.dialog-header h3{font-family:var(--font-title);font-size:1.2rem;font-weight:600}.btn-close{background:transparent;border:none;color:var(--text-secondary);font-size:1.5rem;cursor:pointer;line-height:1;transition:color .2s ease}.btn-close:hover{color:var(--text-primary)}.dialog-body{padding:24px;display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:.8rem;font-weight:500;color:var(--text-secondary)}.form-group input,.form-group select,.form-group textarea{background:#0000004d;border:1px solid rgba(255,255,255,.06);border-radius:8px;padding:10px 12px;font-family:var(--font-base);font-size:.85rem;color:var(--text-primary);transition:all .3s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#f5e6d340;background:#0000008c}.form-group input[readonly]{background:#ffffff05;color:var(--text-secondary);cursor:not-allowed}.form-row{display:flex;gap:12px;align-items:flex-end}.form-row .form-group{flex:1}.input-action-group{display:flex;gap:8px}.input-action-group input{flex:1}.form-help{font-size:.7rem;color:var(--text-muted)}.dialog-actions{display:flex;gap:12px;margin-top:12px;align-items:center}.flex-spacer{flex:1}.view-status-badge{align-self:flex-start;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:4px 12px;border-radius:12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.05)}.view-title{font-family:var(--font-title);font-size:1.3rem;font-weight:600;margin-top:-6px}.detail-item{display:flex;gap:12px;align-items:flex-start}.detail-item svg{color:var(--text-secondary);width:18px;height:18px;margin-top:2px;flex-shrink:0}.detail-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.detail-value{font-size:.9rem;color:var(--text-primary);margin-top:2px;line-height:1.4}.divider{border:0;height:1px;background:#ffffff0a}.quest-marker{position:relative;width:20px;height:20px}.quest-ring{position:absolute;width:24px;height:24px;top:-2px;left:-2px;border-radius:50%;border:2px solid var(--status-color);box-shadow:0 0 10px var(--status-color);opacity:.9;animation:markerPulse 1.8s infinite cubic-bezier(.25,0,0,1);pointer-events:none}.quest-center{position:absolute;width:12px;height:12px;top:4px;left:4px;border-radius:50%;background:#fff;border:2px solid var(--status-color);box-shadow:0 0 6px var(--status-color);transition:transform .2s cubic-bezier(.175,.885,.32,1.275)}.quest-marker:hover .quest-center{transform:scale(1.3)}.leaflet-popup-content-wrapper{background:#0c0c10d9!important;backdrop-filter:blur(12px)!important;-webkit-backdrop-filter:blur(12px)!important;border:1px solid rgba(255,255,255,.05)!important;color:var(--text-primary)!important;border-radius:12px!important;box-shadow:var(--card-shadow)!important}.leaflet-popup-tip{background:#0c0c10d9!important;border:1px solid rgba(255,255,255,.05)!important}.leaflet-container a.leaflet-popup-close-button{color:var(--text-secondary)!important;padding:8px 10px 0 0!important}.leaflet-container a.leaflet-popup-close-button:hover{color:var(--text-primary)!important}.popup-content-area{padding:6px 4px;font-family:var(--font-base)}.popup-client{font-weight:600;font-size:.9rem;margin-bottom:2px}.popup-desc{font-size:.75rem;color:var(--text-secondary);margin-bottom:6px;line-height:1.3}.popup-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid rgba(255,255,255,.04);padding-top:6px;font-size:.7rem}.popup-budget{font-weight:500}.popup-btn-detail{background:transparent;border:none;color:var(--text-primary);cursor:pointer;font-weight:600;font-family:var(--font-base);font-size:.7rem;text-decoration:underline}.leaflet-control-attribution{background:#00000080!important;color:var(--text-secondary)!important}.map-indicator{position:absolute;bottom:30px;left:50%;transform:translate(-50%);z-index:1000;transition:all .3s cubic-bezier(.16,1,.3,1)}.map-indicator.hidden{bottom:-80px;opacity:0;pointer-events:none}.indicator-content{background:#101014e6;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid rgba(245,230,211,.15);border-radius:12px;padding:12px 20px;display:flex;align-items:center;gap:16px;box-shadow:0 10px 30px #00000080;color:var(--text-primary);font-size:.85rem;font-weight:500}.indicator-content svg{color:var(--color-in-progress);width:20px;height:20px}.pulse{animation:markerPulse 1.5s infinite}@keyframes markerPulse{0%{transform:scale(.6);opacity:.9}to{transform:scale(2.2);opacity:0}}@keyframes rotateGlow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUpShow{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.hidden{display:none!important}.center-reticle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:130px;height:130px;z-index:999;pointer-events:none;display:flex;align-items:center;justify-content:center;transition:all .3s cubic-bezier(.16,1,.3,1);--reticle-color: rgba(245, 230, 211, .35)}.center-reticle:before{content:"";position:absolute;width:80px;height:1px;background:linear-gradient(to right,var(--reticle-color) 0%,var(--reticle-color) 35%,transparent 35%,transparent 65%,var(--reticle-color) 65%,var(--reticle-color) 100%);transition:all .3s ease}.center-reticle:after{content:"";position:absolute;width:1px;height:80px;background:linear-gradient(to bottom,var(--reticle-color) 0%,var(--reticle-color) 35%,transparent 35%,transparent 65%,var(--reticle-color) 65%,var(--reticle-color) 100%);transition:all .3s ease}.center-reticle .reticle-ring{width:12px;height:12px;border:1px solid var(--reticle-color);border-radius:50%;transition:all .3s ease}.center-reticle.locked{transform:translate(-50%,-50%) rotate(45deg);--reticle-color: var(--lock-color, #3b82f6);filter:drop-shadow(0 0 6px var(--lock-color))}.center-reticle.locked .reticle-ring{transform:scale(1.5);background:var(--lock-color);box-shadow:0 0 8px var(--lock-color)}.center-reticle.locked:before,.center-reticle.locked:after{animation:reticlePulse 1.2s infinite ease-in-out}@keyframes reticlePulse{0%{opacity:.7}50%{opacity:1}to{opacity:.7}}.mission-card.focused{background:#ffffff0d!important;border-color:var(--status-color)!important;box-shadow:0 4px 20px #0000004d,0 0 10px var(--status-color)!important;transform:translate(6px)}.files-toggle{display:flex;align-items:center;gap:6px;margin-top:8px;padding:5px 0 0;border-top:1px solid rgba(255,255,255,.03);background:transparent;border-left:none;border-right:none;border-bottom:none;color:var(--text-secondary);cursor:pointer;font-family:var(--font-base);font-size:.72rem;font-weight:500;transition:color .2s ease;width:100%;text-align:left}.files-toggle:hover{color:var(--text-primary)}.files-toggle svg{width:13px;height:13px;flex-shrink:0}.files-toggle .files-count{background:#ffffff0f;padding:1px 6px;border-radius:8px;font-size:.65rem}.files-toggle .chevron-icon{margin-left:auto;transition:transform .3s cubic-bezier(.16,1,.3,1)}.files-toggle.open .chevron-icon{transform:rotate(180deg)}.files-accordion{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s cubic-bezier(.16,1,.3,1)}.files-accordion.open{grid-template-rows:1fr}.files-accordion-inner{overflow:hidden}.files-carousel{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;padding:10px 2px 6px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}.files-carousel::-webkit-scrollbar{display:none}.file-thumb{flex:0 0 90px;width:90px;height:78px;border-radius:8px;background:#ffffff08;border:1px solid rgba(255,255,255,.04);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;scroll-snap-align:start;transition:all .2s ease;position:relative;overflow:hidden}.file-thumb:hover{background:#ffffff0f;border-color:#ffffff1a;transform:translateY(-2px);box-shadow:0 4px 10px #0003}.file-thumb img{width:100%;height:100%;object-fit:cover;border-radius:7px}.file-thumb-icon{display:flex;align-items:center;justify-content:center;width:100%;height:48px}.file-thumb-icon svg{width:24px;height:24px;color:var(--text-secondary)}.file-thumb-name{font-size:.6rem;color:var(--text-muted);max-width:80px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;padding:0 4px}.file-thumb-add{flex:0 0 60px;width:60px;height:78px;border-radius:8px;background:transparent;border:1.5px dashed rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;color:var(--text-muted);padding:0;font-family:var(--font-base)}.file-thumb-add:hover{border-color:#f5e6d340;color:var(--text-primary);background:#ffffff05}.file-thumb-add svg{width:20px;height:20px}.file-thumb-remove{position:absolute;top:3px;right:3px;width:16px;height:16px;border-radius:50%;background:#ef4444b3;border:none;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .2s ease;font-size:10px;line-height:1;padding:0}.file-thumb:hover .file-thumb-remove{opacity:1}.dialog-files-section{display:flex;flex-direction:column;gap:10px}.dialog-files-header{display:flex;justify-content:space-between;align-items:center}.dialog-files-header h5{font-family:var(--font-title);font-size:.85rem;font-weight:600;color:var(--text-primary)}.dialog-files-carousel{display:flex;gap:10px;overflow-x:auto;overflow-y:hidden;padding:4px 0 8px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}.dialog-files-carousel::-webkit-scrollbar{display:none}.dialog-file-card{flex:0 0 120px;width:120px;height:100px;border-radius:10px;background:#ffffff08;border:1px solid rgba(255,255,255,.04);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;scroll-snap-align:start;position:relative;overflow:hidden;cursor:pointer;transition:all .2s ease}.dialog-file-card:hover{background:#ffffff0f;border-color:#ffffff1a}.dialog-file-card img{width:100%;height:100%;object-fit:cover;border-radius:9px}.dialog-file-card .file-thumb-icon{height:40px}.dialog-file-card .file-thumb-name{max-width:110px;font-size:.65rem}.dialog-file-card .file-thumb-remove{top:4px;right:4px;width:18px;height:18px}.dialog-file-card:hover .file-thumb-remove{opacity:1}.hidden-file-input{display:none}
