.status-timeline{display:flex;align-items:flex-start;justify-content:space-between;padding:16px 0;position:relative}.timeline-step{display:flex;flex-direction:column;align-items:center;flex:1;position:relative}.step-dot{width:28px;height:28px;border-radius:50%;background:var(--gray-200);display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff;font-weight:700;z-index:1;transition:all .3s}.step-dot.complete{background:var(--blue-600)}.step-dot.current{background:var(--blue-600);box-shadow:0 0 0 4px #1a73e833}.step-label{font-size:10px;color:var(--gray-400);margin-top:6px;text-align:center;font-weight:500}.step-label.active{color:var(--blue-600);font-weight:600}.step-line{position:absolute;top:14px;left:50%;width:100%;height:2px;background:var(--gray-200);z-index:0}.step-line.complete{background:var(--blue-600)}.timeline-cancelled{text-align:center;padding:16px}.cancelled-badge{background:var(--red-500);color:#fff;padding:6px 16px;border-radius:20px;font-size:14px;font-weight:600}.chat-panel{margin-top:16px;border:1px solid var(--gray-200);border-radius:16px;overflow:hidden;background:var(--gray-50)}.chat-messages{max-height:300px;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:8px}.chat-empty{text-align:center;color:var(--gray-400);font-size:14px;padding:24px 0}.chat-bubble{max-width:80%;padding:10px 14px;border-radius:16px}.chat-bubble.mine{background:var(--blue-600);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}.chat-bubble.theirs{background:#fff;color:var(--gray-900);align-self:flex-start;border-bottom-left-radius:4px;border:1px solid var(--gray-200)}.chat-sender{display:block;font-size:11px;font-weight:600;color:var(--gray-400);margin-bottom:2px}.chat-text{font-size:14px;line-height:1.4;margin:0}.chat-time{display:block;font-size:10px;opacity:.7;margin-top:4px;text-align:right}.chat-input-form{display:flex;gap:8px;padding:12px;border-top:1px solid var(--gray-200);background:#fff}.chat-input{flex:1;padding:10px 16px;border:1px solid var(--gray-200);border-radius:20px;font-size:14px;outline:none;transition:border-color .2s}.chat-input:focus{border-color:var(--blue-600)}.chat-send{padding:10px 20px;background:var(--blue-600);color:#fff;border:none;border-radius:20px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .2s}.chat-send:disabled{opacity:.5;cursor:not-allowed}.chat-photo-btn{width:40px;height:40px;border:none;background:var(--gray-100);border-radius:20px;font-size:18px;cursor:pointer;flex-shrink:0}.chat-photo{max-width:200px;border-radius:12px;margin-bottom:4px;display:block}.chat-photo-loading{padding:12px 16px;background:#0000000d;border-radius:12px;margin-bottom:4px;font-size:12px;color:var(--gray-400);min-width:120px;text-align:center}.chat-send-error{padding:6px 12px;background:#fef2f2;color:#dc2626;font-size:12px;font-weight:500;text-align:center;border-top:1px solid #fecaca}.chat-load-error{text-align:center;padding:16px;color:#dc2626;font-size:13px}.chat-load-error button{margin-top:8px;padding:6px 16px;background:#fef2f2;color:#dc2626;border:1px solid #fecaca;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer}.chat-load-error button:hover{background:#fee2e2}.tracking-container{min-height:100vh;display:flex;flex-direction:column;max-width:480px;margin:0 auto;background:#fff}.tracking-header{background:var(--brand-color, var(--blue-600));color:#fff;padding:20px 24px;text-align:center}.company-logo-row{display:flex;align-items:center;justify-content:center;gap:10px}.company-logo{width:36px;height:36px;border-radius:8px;object-fit:cover;background:#fff3}.company-name{font-size:20px;font-weight:700}.service-type{font-size:14px;opacity:.85;margin-top:4px}.map-area{height:280px;background:var(--gray-100);position:relative;overflow:hidden}.map-placeholder{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.tech-marker{display:flex;align-items:center;gap:8px;background:#fff;padding:8px 16px;border-radius:20px;box-shadow:0 2px 8px #0000001a}.marker-dot{width:12px;height:12px;border-radius:50%;background:var(--brand-color, var(--blue-600));animation:pulse 2s infinite}.marker-label{font-weight:600;font-size:14px;color:var(--gray-700)}.coords{font-size:12px;color:var(--gray-400);font-family:monospace}.map-note{font-size:14px;color:var(--gray-500)}.pulse-ring{width:40px;height:40px;border-radius:50%;background:var(--blue-600);animation:pulse 2s infinite}@keyframes pulse{0%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.2)}to{opacity:1;transform:scale(1)}}.info-panel{flex:1;padding:24px}.status-section{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.status-badge{display:inline-block;padding:6px 14px;border-radius:20px;font-size:13px;font-weight:600;color:#fff}.status-scheduled{background:#6b7280}.status-en_route{background:#f59e0b}.status-arrived{background:#3b82f6}.status-in_progress{background:#8b5cf6}.status-completed{background:#10b981}.status-cancelled{background:#ef4444}.eta-display{text-align:right}.eta-label{display:block;font-size:11px;color:var(--gray-400);text-transform:uppercase;letter-spacing:.5px}.eta-time{font-size:28px;font-weight:800;color:var(--gray-900)}.eta-duration{display:block;font-size:13px;color:var(--gray-500);margin-top:2px}.eta-warning{display:block;font-size:12px;color:#b45309;margin-top:4px;font-weight:500}.tech-name-phone{display:flex;flex-direction:column;gap:2px}.tech-name{font-weight:600;color:#1e293b;font-size:15px}.tech-phone{color:var(--brand-color, var(--blue-600));text-decoration:none;font-weight:400;font-size:14px}.address-link{color:var(--brand-color, var(--blue-600))!important;text-decoration:none}.address-link:hover,.tech-phone:hover{text-decoration:underline}.details-section{margin-top:20px;display:flex;flex-direction:column;gap:12px}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--gray-200)}.detail-label{font-size:13px;color:var(--gray-500)}.detail-value{font-size:14px;font-weight:500;color:var(--gray-700);text-align:right;max-width:60%}.tech-detail-row{align-items:center}.tech-info{display:flex;align-items:center;gap:10px}.tech-avatar-btn{width:40px;height:40px;border-radius:50%;border:none;padding:0;overflow:hidden;flex-shrink:0;background:none}.tech-avatar-img{width:40px;height:40px;border-radius:50%;object-fit:cover}.tech-avatar-initials{width:40px;height:40px;border-radius:50%;background:var(--brand-color, var(--blue-600));color:#fff;font-size:15px;font-weight:700;display:flex;align-items:center;justify-content:center}.tech-photo-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;animation:fadeIn .2s ease}.tech-photo-modal{background:#fff;border-radius:20px;padding:20px;max-width:320px;width:100%;text-align:center}.tech-photo-full{width:200px;height:200px;border-radius:50%;object-fit:cover;margin-bottom:12px}.tech-photo-name{font-size:18px;font-weight:700;color:var(--gray-900);margin:0 0 16px}.tech-photo-close{background:var(--gray-100);border:none;border-radius:10px;padding:10px 32px;font-size:14px;font-weight:600;color:var(--gray-700);cursor:pointer}.tech-photo-close:hover{background:var(--gray-200)}.completed-map-area{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f0fdf4,#eff6ff)}.completed-map-message{text-align:center;padding:24px}.completed-map-icon{font-size:48px;display:block;margin-bottom:8px}.completed-map-message p{font-size:16px;font-weight:600;color:var(--gray-700);margin:0}.rating-card-prominent{border:2px solid #f59e0b;box-shadow:0 4px 12px #f59e0b26}.resched-link{background:none;border:none;color:var(--brand-color, var(--blue-600));font-size:13px;font-weight:600;cursor:pointer;margin-left:8px;text-decoration:underline}.resched-card{background:#eff6ff;border:1px solid #bfdbfe;border-radius:16px;padding:20px;margin-bottom:16px}.resched-title{font-size:17px;font-weight:700;color:#1e293b;margin:0 0 12px}.resched-form{display:flex;flex-direction:column;gap:6px}.resched-label{font-size:12px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.5px;margin-top:6px}.resched-input{padding:10px 12px;border:1px solid #e2e8f0;border-radius:10px;font-size:15px;color:#1e293b}.resched-textarea{padding:10px 12px;border:1px solid #e2e8f0;border-radius:10px;font-size:14px;resize:none;font-family:inherit}.resched-submit{background:var(--brand-color, var(--blue-600));color:#fff;border:none;border-radius:12px;padding:12px;font-size:15px;font-weight:600;cursor:pointer;margin-top:8px}.resched-submit:hover{background:#1557b0}.resched-done{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:12px;padding:16px;margin-bottom:16px;text-align:center}.resched-done p{font-size:14px;color:#16a34a;font-weight:500;margin:0}.rating-card{background:#fffbeb;border:1px solid #fef08a;border-radius:16px;padding:20px;text-align:center;margin-bottom:16px}.rating-title{font-size:17px;font-weight:700;color:#1e293b;margin:0 0 12px}.rating-stars{display:flex;justify-content:center;gap:8px;margin-bottom:12px}.rating-star{font-size:36px;background:none;border:none;color:#d1d5db;cursor:pointer;transition:color .15s;padding:0}.rating-star.active,.rating-star:hover{color:#f59e0b}.rating-textarea{width:100%;border:1px solid #e2e8f0;border-radius:12px;padding:12px;font-size:14px;resize:none;margin-bottom:12px;font-family:inherit}.rating-submit{background:#f59e0b;color:#fff;border:none;border-radius:12px;padding:12px 24px;font-size:15px;font-weight:600;cursor:pointer;width:100%}.rating-submit:hover{background:#d97706}.rating-done{text-align:center;padding:16px;background:#f0fdf4;border-radius:12px;margin-bottom:16px}.rating-done-stars{font-size:28px;color:#f59e0b}.rating-done p{font-size:14px;color:#16a34a;margin:8px 0 0;font-weight:600}.review-prompt{margin-top:16px;padding-top:16px;border-top:1px solid #d1fae5}.review-prompt-text{color:#1e293b!important;font-size:15px!important;font-weight:600!important;margin:0 0 12px!important}.review-copy-box{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:12px;margin-bottom:12px}.review-copy-text{font-size:14px;color:#475569;font-style:italic;margin:0 0 8px;line-height:1.4}.review-copy-btn{background:#1e293b;color:#fff;border:none;padding:6px 14px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:background .2s}.review-copy-btn:hover{background:#334155}.review-links{display:flex;gap:10px;justify-content:center;margin-top:4px}.review-link{display:inline-block;padding:10px 18px;border-radius:10px;font-size:14px;font-weight:600;color:#fff;text-decoration:none;transition:opacity .2s}.review-link:hover{opacity:.85}.review-link-google{background:#4285f4}.review-link-yelp{background:#d32323}.discount-banner{background:linear-gradient(135deg,#ecfdf5,#eff6ff);border:1px solid #a7f3d0;border-radius:16px;padding:20px;margin-bottom:16px;text-align:center;position:relative;overflow:hidden}.discount-banner:before{content:"";position:absolute;top:-20px;right:-20px;width:80px;height:80px;background:#10b98114;border-radius:50%}.discount-banner:after{content:"";position:absolute;bottom:-15px;left:-15px;width:60px;height:60px;background:#3b82f60f;border-radius:50%}.discount-icon{font-size:32px;margin-bottom:8px}.discount-content{position:relative;z-index:1}.discount-heading{font-size:16px;font-weight:700;color:#065f46;margin:0 0 6px}.discount-text{font-size:15px;color:#1e293b;margin:0 0 12px}.discount-text strong{color:#059669;font-weight:700}.discount-code-box{display:inline-block;background:#fff;border:2px dashed #10b981;border-radius:10px;padding:10px 24px;margin-bottom:10px}.discount-code{font-size:20px;font-weight:800;color:#059669;letter-spacing:2px;font-family:monospace}.discount-fine-print{font-size:12px;color:#64748b;margin:0}.contact-card-section{background:#fff;border:1px solid var(--gray-200);border-radius:16px;padding:20px;margin-bottom:16px;box-shadow:0 1px 4px #0000000f}.contact-card-header{display:flex;align-items:center;gap:14px;margin-bottom:16px}.contact-card-avatar{width:48px;height:48px;border-radius:50%;flex-shrink:0;overflow:hidden}.contact-card-avatar-img{width:48px;height:48px;border-radius:50%;object-fit:cover}.contact-card-avatar-initials{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#3b82f6,#1a73e8);color:#fff;font-size:17px;font-weight:700;display:flex;align-items:center;justify-content:center}.contact-card-info{display:flex;flex-direction:column;gap:2px}.contact-card-name{font-size:16px;font-weight:700;color:#1e293b}.contact-card-company{font-size:13px;color:#64748b}.contact-card-buttons{display:flex;flex-direction:column;gap:10px;position:relative}.contact-card-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:13px 20px;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;border:none;text-decoration:none;transition:opacity .2s,transform .1s;font-family:inherit}.contact-card-btn:active{transform:scale(.98)}.contact-card-btn-icon{flex-shrink:0}.contact-card-btn-save{background:#1e293b;color:#fff}.contact-card-btn-save:hover{opacity:.9}.contact-card-btn-wallet{background:#000;color:#fff;position:relative}.contact-card-btn-wallet:hover{opacity:.85}.wallet-tooltip{background:#1e293b;color:#fff;font-size:13px;font-weight:500;line-height:1.5;padding:12px 16px;border-radius:10px;margin-top:2px;animation:fadeIn .2s ease}.chat-toggle{width:100%;margin-top:24px;padding:14px;border:2px solid var(--brand-color, var(--blue-600));background:transparent;color:var(--brand-color, var(--blue-600));font-size:15px;font-weight:600;border-radius:12px;cursor:pointer;transition:all .2s}.chat-toggle:hover{background:var(--brand-color, var(--blue-600));color:#fff}.custom-marker{display:flex;flex-direction:column;align-items:center;cursor:pointer;filter:drop-shadow(0 3px 6px rgba(0,0,0,.25));transition:transform .2s}.custom-marker:hover{transform:scale(1.1)}.tech-marker-icon .marker-circle{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,#3b82f6,#1a73e8);border:3px solid #fff;display:flex;align-items:center;justify-content:center;animation:techPulse 2s ease-in-out infinite;position:relative}.tech-marker-icon .marker-circle:after{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:50%;border:2px solid rgba(59,130,246,.3);animation:techRing 2s ease-in-out infinite}.dest-marker-icon .marker-circle{width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,#10b981,#059669);border:3px solid #fff;display:flex;align-items:center;justify-content:center}.marker-emoji{font-size:22px;line-height:1}.marker-arrow{width:0;height:0;border-left:9px solid transparent;border-right:9px solid transparent;margin-top:-3px}.tech-marker-icon .marker-arrow{border-top:12px solid #1a73e8}.dest-marker-icon .marker-arrow{border-top:11px solid #059669}.marker-label{background:#1a73e8;color:#fff;font-size:10px;font-weight:700;padding:2px 8px;border-radius:10px;margin-top:4px;white-space:nowrap;letter-spacing:.3px}@keyframes techPulse{0%,to{box-shadow:0 0 #1a73e866}50%{box-shadow:0 0 0 12px #1a73e800}}@keyframes techRing{0%,to{transform:scale(1);opacity:.6}50%{transform:scale(1.15);opacity:0}}.tracking-loading,.tracking-error{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center}.spinner{width:40px;height:40px;border:3px solid var(--gray-200);border-top-color:var(--brand-color, var(--blue-600));border-radius:50%;animation:spin .8s linear infinite;margin-bottom:16px}.error-icon{width:60px;height:60px;border-radius:50%;background:var(--red-500);color:#fff;font-size:28px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-bottom:16px}.tracking-error h2{font-size:20px;color:var(--gray-900);margin-bottom:8px}.tracking-error p,.tracking-loading p{font-size:15px;color:var(--gray-500)}.retry-btn{margin-top:16px;padding:10px 24px;background:var(--brand-color, var(--blue-600));color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer}.retry-btn:hover{background:#1557b0}.skeleton{background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-200) 50%,var(--gray-100) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:8px}.skeleton-text{height:16px;border-radius:4px}.skeleton-badge{width:100px;height:30px;border-radius:20px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.connection-banner{text-align:center;padding:8px 16px;font-size:13px;font-weight:600;z-index:10}.offline-banner{background:#fef2f2;color:#dc2626;border-bottom:1px solid #fecaca}.reconnect-banner{background:#fffbeb;color:#d97706;border-bottom:1px solid #fde68a;animation:fadeInSlide .3s ease}@keyframes fadeInSlide{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.working-map-area{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f5f3ff,#ede9fe)}.working-indicator{text-align:center;position:relative;display:flex;flex-direction:column;align-items:center;gap:8px}.working-pulse-ring{position:absolute;top:50%;left:50%;width:100px;height:100px;margin-top:-70px;margin-left:-50px;border-radius:50%;border:3px solid #8b5cf6;opacity:0;animation:workingPulseRing 2s ease-out infinite}.working-icon-wrapper{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#8b5cf6,#7c3aed);display:flex;align-items:center;justify-content:center;animation:workingBob 2s ease-in-out infinite;box-shadow:0 4px 20px #8b5cf64d}.working-icon{font-size:36px;line-height:1;animation:workingWrench 3s ease-in-out infinite;display:block}.working-text{font-size:18px;font-weight:700;color:#5b21b6;margin:4px 0 0}.working-dots{display:flex;gap:6px;justify-content:center}.working-dot{width:8px;height:8px;border-radius:50%;background:#8b5cf6;animation:workingDotBounce 1.4s ease-in-out infinite}.working-dot:nth-child(2){animation-delay:.2s}.working-dot:nth-child(3){animation-delay:.4s}@keyframes workingPulseRing{0%{transform:scale(.8);opacity:.5}to{transform:scale(1.8);opacity:0}}@keyframes workingBob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes workingWrench{0%,to{transform:rotate(0)}20%{transform:rotate(-15deg)}40%{transform:rotate(15deg)}60%{transform:rotate(-10deg)}80%{transform:rotate(0)}}@keyframes workingDotBounce{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}.completed-animation{text-align:center;position:relative;display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px}.confetti-container{position:absolute;top:0;left:50%;width:0;height:0;pointer-events:none}.confetti-dot{position:absolute;width:10px;height:10px;border-radius:50%;background:var(--color, #10b981);animation:confettiFall 2.5s ease-out var(--delay, 0s) infinite;transform:translate(var(--x, 0px))}@keyframes confettiFall{0%{opacity:1;transform:translate(var(--x, 0px)) translateY(-20px) scale(0)}20%{opacity:1;transform:translate(var(--x, 0px)) translateY(-60px) scale(1)}to{opacity:0;transform:translate(calc(var(--x, 0px) * 1.5)) translateY(80px) scale(.5)}}.completed-check-circle{width:90px;height:90px;animation:bounceIn .6s ease-out forwards}.completed-check-svg{width:100%;height:100%}.completed-check-bg{fill:none;stroke:#10b981;stroke-width:3;stroke-dasharray:157;stroke-dashoffset:157;animation:checkCircleDraw .6s ease-out .2s forwards}.completed-check-mark{fill:none;stroke:#10b981;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:48;stroke-dashoffset:48;animation:checkMarkDraw .4s ease-out .7s forwards}@keyframes bounceIn{0%{transform:scale(0)}50%{transform:scale(1.15)}70%{transform:scale(.95)}to{transform:scale(1)}}@keyframes checkCircleDraw{to{stroke-dashoffset:0}}@keyframes checkMarkDraw{to{stroke-dashoffset:0}}.completed-text{font-size:22px;font-weight:800;color:#059669;margin:0;animation:fadeInUp .5s ease-out .9s both}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.status-badge-animated{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:20px;font-size:13px;font-weight:600;color:#fff}.status-badge-animated.status-in_progress{background:#8b5cf6;animation:badgePulse 2s ease-in-out infinite}.status-wrench-icon{display:inline-block;animation:wrenchSpin 3s ease-in-out infinite;font-size:14px}@keyframes wrenchSpin{0%,to{transform:rotate(0)}25%{transform:rotate(-20deg)}50%{transform:rotate(20deg)}75%{transform:rotate(0)}}@keyframes badgePulse{0%,to{box-shadow:0 0 #8b5cf666}50%{box-shadow:0 0 0 8px #8b5cf600}}.status-completed-badge{background:#10b981;animation:bounceIn .6s ease-out forwards}.status-check-bounce{display:inline-block;animation:checkBounce .6s ease-out;font-size:14px}@keyframes checkBounce{0%{transform:scale(0)}50%{transform:scale(1.4)}to{transform:scale(1)}}.status-cancelled-badge{background:#ef4444}.tracking-footer{text-align:center;padding:16px;font-size:12px;color:#94a3b8}.tracking-footer a{color:#64748b;text-decoration:none}.tracking-footer a:hover{text-decoration:underline}.queue-map-area{display:flex;align-items:center;justify-content:center;min-height:240px;background:linear-gradient(135deg,#f0f7ff,#e8f4fd)}.queue-indicator{text-align:center;padding:32px 20px}.queue-road{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:20px;position:relative}.queue-road-line{position:absolute;left:10%;right:10%;height:3px;background:#cbd5e1;border-radius:2px;top:50%;transform:translateY(-50%);z-index:0}.queue-stop{width:28px;height:28px;border-radius:50%;background:#e2e8f0;display:flex;align-items:center;justify-content:center;z-index:1;animation:queueStopPulse 2s ease-in-out infinite}.queue-stop-dot{width:10px;height:10px;border-radius:50%;background:#94a3b8}.queue-house{font-size:24px;z-index:1;animation:queueHouseBounce 1.5s ease-in-out infinite}.queue-truck{font-size:36px;animation:queueTruckBounce 1.2s ease-in-out infinite;margin-bottom:16px}.queue-text{font-size:20px;font-weight:700;color:#1e293b;margin:0 0 6px}.queue-subtext{font-size:14px;color:#64748b;margin:0}@keyframes queueStopPulse{0%,to{transform:scale(1);opacity:.7}50%{transform:scale(1.15);opacity:1}}@keyframes queueHouseBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes queueTruckBounce{0%,to{transform:translateY(0) translate(0)}25%{transform:translateY(-3px) translate(2px)}75%{transform:translateY(-2px) translate(-2px)}}.document-container{min-height:100vh;display:flex;flex-direction:column;max-width:480px;margin:0 auto;background:#fff}.document-header{background:var(--brand-color, var(--blue-600));color:#fff;padding:20px 24px;text-align:center}.document-header .company-logo-row{display:flex;align-items:center;justify-content:center;gap:10px}.document-header .company-logo{width:36px;height:36px;border-radius:8px;object-fit:cover;background:#fff3}.document-header .company-name{font-size:20px;font-weight:700}.document-header .document-type{font-size:14px;opacity:.85;margin-top:4px;text-transform:uppercase;letter-spacing:1px}.document-header .document-type-prominent{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:3px;opacity:.7;margin-bottom:8px}.document-header .document-header-number{font-size:13px;opacity:.75;margin-top:6px;font-weight:500;letter-spacing:.5px}.document-parties{display:flex;justify-content:space-between;gap:16px;margin-bottom:20px}.document-party{flex:1}.document-party-to{text-align:right}.document-party-label{font-size:11px;color:var(--gray-400);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-weight:600}.document-party-name{font-size:15px;font-weight:700;color:var(--gray-900);margin-bottom:2px}.document-party-detail{font-size:13px;color:var(--gray-500);margin-top:2px;line-height:1.4}.document-party-link{color:var(--brand-color, var(--blue-600));text-decoration:none}.document-party-link:hover{text-decoration:underline}.document-body{flex:1;padding:24px}.document-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.document-number{font-size:15px;font-weight:600;color:var(--gray-700)}.document-status-badge{display:inline-block;padding:5px 14px;border-radius:20px;font-size:12px;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:.5px}.status-draft{background:#6b7280}.status-sent{background:#3b82f6}.status-accepted{background:#10b981}.status-declined{background:#ef4444}.status-pending{background:#f59e0b}.status-paid{background:#10b981}.status-overdue{background:#ef4444}.document-customer{background:var(--gray-50);border-radius:12px;padding:16px;margin-bottom:20px}.document-customer-label{font-size:11px;color:var(--gray-400);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.document-customer-name{font-size:16px;font-weight:600;color:var(--gray-900)}.document-customer-phone{font-size:14px;color:var(--gray-500);margin-top:2px}.document-dates{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.document-date-row{display:flex;justify-content:space-between;align-items:center}.document-date-label{font-size:13px;color:var(--gray-500)}.document-date-value{font-size:14px;font-weight:500;color:var(--gray-700)}.line-items-section{margin-bottom:24px}.line-items-heading{font-size:13px;font-weight:700;color:var(--gray-500);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}.line-items-table{width:100%;border-collapse:collapse}.line-items-table thead th{font-size:11px;font-weight:600;color:var(--gray-400);text-transform:uppercase;letter-spacing:.5px;padding:8px 0;border-bottom:2px solid var(--gray-200);text-align:left}.line-items-table thead th:nth-child(2),.line-items-table thead th:nth-child(3),.line-items-table thead th:nth-child(4){text-align:right}.line-items-table tbody td{padding:12px 0;border-bottom:1px solid var(--gray-100);font-size:14px;color:var(--gray-700)}.line-items-table tbody td:nth-child(2),.line-items-table tbody td:nth-child(3),.line-items-table tbody td:nth-child(4){text-align:right;font-variant-numeric:tabular-nums}.line-items-table tbody td:first-child{font-weight:500;max-width:180px}.line-item-desc-sub{display:block;font-size:12px;color:var(--gray-400);font-weight:400;margin-top:2px}.document-totals{border-top:2px solid var(--gray-200);padding-top:16px;margin-bottom:24px}.totals-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0}.totals-row.totals-grand{border-top:2px solid var(--gray-900);margin-top:8px;padding-top:12px}.totals-label{font-size:14px;color:var(--gray-500)}.totals-value{font-size:14px;font-weight:600;color:var(--gray-700);font-variant-numeric:tabular-nums}.totals-grand .totals-label{font-size:16px;font-weight:700;color:var(--gray-900)}.totals-grand .totals-value{font-size:20px;font-weight:800;color:var(--gray-900)}.document-notes{background:#eff6ff;border-radius:12px;padding:16px;margin-bottom:24px}.document-notes-label{font-size:11px;color:var(--gray-400);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.document-notes-text{font-size:14px;color:var(--gray-700);line-height:1.5;white-space:pre-wrap}.document-actions{display:flex;gap:12px;margin-bottom:24px}.document-btn{flex:1;padding:14px;border:none;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;transition:opacity .2s,transform .1s;font-family:inherit;text-align:center}.document-btn:active{transform:scale(.98)}.document-btn:disabled{opacity:.5;cursor:not-allowed}.document-btn:disabled:active{transform:none}.document-btn-accept{background:#10b981;color:#fff}.document-btn-accept:hover:not(:disabled){opacity:.9}.document-btn-decline{background:#fff;color:#ef4444;border:2px solid #ef4444}.document-btn-decline:hover:not(:disabled){background:#fef2f2}.document-btn-pay{background:var(--brand-color, var(--blue-600));color:#fff;position:relative}.document-btn-pay:hover:not(:disabled){opacity:.9}.pay-tooltip{background:#1e293b;color:#fff;font-size:13px;font-weight:500;padding:10px 16px;border-radius:10px;text-align:center;margin-bottom:8px;animation:fadeIn .2s ease}.paid-badge{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:12px;padding:16px;margin-bottom:24px;text-align:center}.paid-badge-icon{font-size:32px;display:block;margin-bottom:8px}.paid-badge-text{font-size:16px;font-weight:700;color:#16a34a;margin:0 0 4px}.paid-badge-detail{font-size:13px;color:var(--gray-500);margin:0}.response-banner{border-radius:12px;padding:16px;margin-bottom:24px;text-align:center}.response-banner-accepted{background:#f0fdf4;border:1px solid #bbf7d0}.response-banner-declined{background:#fef2f2;border:1px solid #fecaca}.response-banner-icon{font-size:28px;display:block;margin-bottom:6px}.response-banner-text{font-size:15px;font-weight:600;margin:0}.response-banner-accepted .response-banner-text{color:#16a34a}.response-banner-declined .response-banner-text{color:#dc2626}.due-date-overdue{color:#ef4444!important;font-weight:700!important}.document-loading,.document-error{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center;max-width:480px;margin:0 auto}.document-loading .spinner{width:40px;height:40px;border:3px solid var(--gray-200);border-top-color:var(--blue-600);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:16px}.document-error .error-icon{width:60px;height:60px;border-radius:50%;background:var(--red-500);color:#fff;font-size:28px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-bottom:16px}.document-error h2{font-size:20px;color:var(--gray-900);margin-bottom:8px}.document-error p,.document-loading p{font-size:15px;color:var(--gray-500)}.document-retry-btn{margin-top:16px;padding:10px 24px;background:var(--blue-600);color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer}.document-retry-btn:hover{background:#1557b0}.document-footer{text-align:center;padding:20px 24px;border-top:1px solid var(--gray-100)}.document-footer p{font-size:12px;color:var(--gray-400);margin:0}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--blue-600: #1a73e8;--blue-700: #0d47a1;--gray-50: #f8fafc;--gray-100: #f1f5f9;--gray-200: #e2e8f0;--gray-400: #94a3b8;--gray-500: #64748b;--gray-700: #334155;--gray-900: #0f172a;--green-500: #10b981;--amber-500: #f59e0b;--red-500: #ef4444}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--gray-50);color:var(--gray-900);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,#root{height:100%}
