:root{--color-bg-app: #0A0E1A;--color-bg-card: #141C2F;--color-bg-header: #070A14;--color-border: rgba(255, 255, 255, .08);--color-divider: rgba(255, 255, 255, .05);--color-emerald: #10B981;--color-emerald-dark: #059669;--color-gold: #F59E0B;--color-gold-hover: #D97706;--color-text-primary: #F8FAFC;--color-text-secondary: #94A3B8;--color-text-dark: #1E293B;--color-blue: #38BDF8;--color-green: #10B981;--color-purple: #A78BFA;--color-orange: #FB923C;--color-red: #F87171;--color-lavender: #C3B1E1;--color-teal: #2DD4BF;--color-teal-light: rgba(45, 212, 191, .15);--color-emerald-light: rgba(16, 185, 129, .15);--color-danger: #EF4444;--bg-card: var(--color-bg-card);--color-text: var(--color-text-primary);--color-surface: var(--color-bg-card);--shadow-premium: 0 10px 30px -10px rgba(0, 0, 0, .5);--shadow-card: 0 4px 6px -1px rgba(0, 0, 0, .2), 0 2px 4px -1px rgba(0, 0, 0, .1);--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .15);--font-header: "Outfit", sans-serif;--font-body: "Inter", sans-serif;--transition-smooth: all .2s cubic-bezier(.4, 0, .2, 1);--touch-target-height: 48px;--ui-readability-scale: 1;--safe-bottom: 0px}[data-theme=light]{--color-bg-app: #F8FAFC;--color-bg-card: #FFFFFF;--color-bg-header: #FFFFFF;--color-border: #E2E8F0;--color-divider: #F1F5F9;--color-text-primary: #0F172A;--color-text-secondary: #64748B;--color-emerald-light: rgba(16, 185, 129, .1);--color-danger-light: rgba(239, 68, 68, .1)}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{background-color:var(--color-bg-app);color:var(--color-text-primary);font-family:var(--font-body);font-size:calc(14px * var(--ui-readability-scale, 1));line-height:1.5;overflow:hidden;height:100vh;height:100dvh;height:var(--app-height, 100dvh);width:100%;max-width:100vw;-webkit-text-size-adjust:100%;text-size-adjust:100%}html.touch-device body{overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch}html.touch-device .crm-app{min-height:var(--app-height, 100dvh)}h1,h2,h3,h4,h5,h6{font-family:var(--font-header);font-weight:600;color:var(--color-text-primary)}.crm-app{display:flex;flex-direction:column;height:100vh;height:100dvh;height:var(--app-height, 100dvh);width:100%;max-width:100vw;overflow:hidden}.app-header{height:64px;background-color:var(--color-bg-header);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;padding:0 16px;flex-shrink:0;z-index:10}.brand{display:flex;align-items:center;gap:10px}.brand-logo{width:36px;height:36px;border-radius:50%;border:2px solid var(--color-emerald);object-fit:cover}.brand-text h1{font-size:14px;letter-spacing:.5px;font-weight:700}.brand-text span{font-size:10px;color:var(--color-emerald);text-transform:uppercase;font-weight:600;letter-spacing:1px}.header-actions{display:flex;align-items:center;gap:8px}.app-content{flex-grow:1;overflow:hidden;position:relative}.view-panel{display:none;flex-direction:column;height:100%;width:100%;padding:16px;overflow-y:auto;-webkit-overflow-scrolling:touch}.view-panel.active{display:flex}.section-header{margin-bottom:16px;flex-shrink:0}.section-header h2{font-size:20px;font-weight:700;letter-spacing:-.3px}.section-header.row-layout{display:flex;justify-content:space-between;align-items:center;gap:16px}.subtitle{font-size:13px;color:var(--color-text-secondary)}.text-gold{color:var(--color-gold)!important}.text-blue{color:var(--color-blue)!important}.text-green{color:var(--color-green)!important}.text-orange{color:var(--color-orange)!important}.text-red{color:var(--color-red)!important}.text-teal{color:var(--color-teal)!important}.text-purple{color:var(--color-purple)!important}.text-lavender{color:var(--color-lavender)!important}.btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-body);font-size:13px;font-weight:600;border-radius:8px;border:none;cursor:pointer;transition:var(--transition-smooth);gap:6px;height:38px;padding:0 16px;user-select:none}.btn-primary{background-color:var(--color-emerald);color:#052e16}.btn-primary:hover{background-color:var(--color-emerald-dark)}.btn-secondary{background-color:#ffffff0a;color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-secondary:hover{background-color:#ffffff14}.btn-danger{background-color:var(--color-danger);color:#fff}.btn-danger:hover{background-color:#dc2626}.btn-sm{height:32px;padding:0 12px;font-size:12px}.btn-quick-add{background-color:var(--color-gold);color:#3b2200}.btn-quick-add:hover{background-color:#e08e00}.app-nav{height:64px;background-color:var(--color-bg-header);border-top:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-around;flex-shrink:0}.nav-btn{background:none;border:none;color:var(--color-text-secondary);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;flex:1;height:100%;cursor:pointer;font-family:var(--font-body);font-size:10px;font-weight:500;transition:var(--transition-smooth);position:relative}.nav-btn i{font-size:18px}.nav-btn.active{color:var(--color-emerald)}.nav-route-badge{position:absolute;top:6px;right:25%;background-color:var(--color-danger);color:#fff;font-size:9px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px;border:1px solid var(--color-bg-app)}.kpi-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:20px}.kpi-card{background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:12px;padding:12px 14px;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow-card);transition:var(--transition-smooth)}.kpi-card.clickable{cursor:pointer}.kpi-card.clickable:hover{border-color:var(--color-text-secondary);transform:translateY(-2px)}.kpi-card.text-alert{border-left:3px solid var(--color-red)}.kpi-icon{font-size:22px;width:42px;height:42px;border-radius:8px;background-color:#ffffff08;display:flex;align-items:center;justify-content:center;flex-shrink:0}.kpi-info{display:flex;flex-direction:column}.kpi-label{font-size:11px;color:var(--color-text-secondary);text-transform:uppercase;font-weight:600}.kpi-value{font-size:16px;font-weight:700;font-family:var(--font-header)}.dashboard-lists{display:grid;grid-template-columns:1fr;gap:16px}.list-container{background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:12px;display:flex;flex-direction:column;max-height:280px}.list-header{padding:12px 16px;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:center}.list-header h3{font-size:13px;font-weight:600;display:flex;align-items:center;gap:8px}.badge{padding:2px 8px;border-radius:12px;font-size:10px;font-weight:700}.badge-red{background-color:#ef444433;color:var(--color-red)}.badge-orange{background-color:#f59e0b33;color:var(--color-gold)}.list-body{padding:8px}.scroll-y{overflow-y:auto}.dash-list-row{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-radius:6px;border-bottom:1px solid var(--color-divider);font-size:12px}.dash-list-row:last-child{border-bottom:none}.dash-list-row:hover{background-color:#ffffff05}.dash-list-info{display:flex;flex-direction:column;gap:2px}.dash-list-name{font-weight:600;color:var(--color-text-primary)}.dash-list-sub{font-size:11px;color:var(--color-text-secondary)}.dash-list-actions{display:flex;gap:8px}.route-date-controls{display:flex;align-items:center;gap:4px;background-color:#ffffff08;border:1px solid var(--color-border);border-radius:8px;padding:2px}.btn-arrow{background:none;border:none;color:var(--color-text-secondary);width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:6px;cursor:pointer;transition:var(--transition-smooth)}.btn-arrow:hover{color:var(--color-emerald);background-color:#ffffff0d}.route-date-input{background:none;border:none;color:var(--color-text-primary);font-family:var(--font-header);font-weight:700;font-size:14px;outline:none;padding:0 4px;text-align:center;cursor:pointer;width:130px}.route-date-input::-webkit-calendar-picker-indicator{filter:invert(1);cursor:pointer}.filter-bar{display:flex;gap:8px;margin-bottom:12px;flex-shrink:0}.search-box{position:relative;flex-grow:1}.search-box i{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--color-text-secondary)}.search-box input{width:100%;height:38px;background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:8px;padding:0 12px 0 34px;color:var(--color-text-primary);font-family:var(--font-body);font-size:13px;outline:none}.search-box input:focus{border-color:var(--color-emerald)}.select-input{height:38px;background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:8px;padding:0 12px;color:var(--color-text-primary);font-family:var(--font-body);font-size:13px;outline:none;cursor:pointer}.select-input:focus{border-color:var(--color-emerald)}.route-container{display:flex;flex-direction:column;gap:12px;flex-grow:1;overflow-y:auto}.no-route-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;color:var(--color-text-secondary);gap:12px}.no-route-placeholder i{font-size:48px}.route-card{background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:12px;padding:12px 14px;box-shadow:var(--shadow-premium);display:flex;flex-direction:column;gap:10px;animation:slideUp .3s ease-out}.route-card.done{opacity:.45;border-color:var(--color-emerald)}.route-card-header{display:flex;justify-content:space-between;align-items:flex-start}.route-cust-name{font-size:15px;font-weight:700;color:var(--color-text-primary)}.route-cust-sub{font-size:11px;color:var(--color-text-secondary);margin-top:1px}.route-kpi-badge{background-color:#ffffff0a;border:1px solid var(--color-border);font-size:11px;font-weight:600;padding:2px 8px;border-radius:6px;color:var(--color-text-secondary)}.route-details-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:6px 0;border-top:1px dashed var(--color-divider);border-bottom:1px dashed var(--color-divider);font-size:11px}.route-detail-item{display:flex;flex-direction:column}.route-detail-label{color:var(--color-text-secondary);text-transform:uppercase;font-size:9px;font-weight:600}.route-detail-val{color:var(--color-text-primary);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.route-actions-row{display:flex;flex-wrap:wrap;gap:6px}.btn-route-action{flex:1;min-width:60px;height:var(--touch-target-height);border-radius:8px;border:none;cursor:pointer;font-weight:700;font-size:11px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#fff;transition:var(--transition-smooth);line-height:1.1;text-align:center;white-space:nowrap}.btn-route-action i,.btn-route-log i{min-height:1em}.btn-route-action:active{transform:scale(.96)}.btn-refill{background-color:var(--color-emerald);color:#022c22}.btn-refill:hover{background-color:#059669}.btn-cash{background-color:var(--color-gold);color:#451a03}.btn-cash:hover{background-color:#d97706}.btn-gpay{background-color:var(--color-blue);color:#022440}.btn-gpay:hover{background-color:#0ea5e9}.btn-pending{background-color:var(--color-orange);color:#431407}.btn-pending:hover{background-color:#ea580c}.btn-not-available{background-color:#ef4444}.btn-not-available:hover{background-color:#dc2626}.btn-next-month{background-color:#64748b}.btn-next-month:hover{background-color:#475569}.btn-route-log{width:var(--touch-target-height);height:var(--touch-target-height);background-color:#ffffff0d;color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;cursor:pointer;transition:var(--transition-smooth)}.btn-route-log:after{content:"More";font-size:10px;font-weight:800;line-height:1}.header-text-icon{width:auto;min-width:72px;padding:0 10px;gap:6px;font-size:12px;font-weight:700}.btn-route-log:hover{background-color:#ffffff1a}.filter-panel{background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:10px;margin-bottom:16px;flex-shrink:0}.filter-selectors{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.filter-selectors .select-input{width:100%}.customers-grid{display:flex;flex-direction:column;gap:12px;flex-grow:1;overflow-y:auto}.customer-master-card{background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}.customer-master-header{display:flex;justify-content:space-between;align-items:flex-start}.customer-form-readonly input,.customer-form-readonly select,.customer-form-readonly textarea{opacity:.85;cursor:default}.cust-map-link-text{word-break:break-word;overflow-wrap:anywhere;font-size:clamp(13px,3.6vw,15px);line-height:1.5;display:block}.fse-customer-view-panel{text-align:left;padding:4px 0 8px}.fse-view-cust-name{font-size:17px;font-weight:700;margin:0 0 4px;color:var(--color-text-primary)}.fse-view-cust-meta{font-size:13px;color:var(--color-text-secondary);margin:0 0 14px}.fse-view-address-text{width:100%;box-sizing:border-box;margin:6px 0 8px;padding:12px;border-radius:10px;border:1px solid var(--color-border);background:#ffffff0a;color:var(--color-text-primary);font-size:15px;line-height:1.45;resize:none;user-select:text;-webkit-user-select:text}.fse-view-hint{font-size:11px;color:var(--color-text-secondary);margin:0 0 12px;line-height:1.4}.fse-view-address-actions{display:flex;flex-wrap:wrap;gap:8px}.fse-view-address-actions .btn{flex:1 1 140px;min-height:44px}#form-customer-full.fse-address-view-active .form-section-title,#form-customer-full.fse-address-view-active .form-grid,#form-customer-full.fse-address-view-active #location-preview-container{display:none!important}.customer-master-actions .view-btn{color:var(--color-teal)}.customer-master-actions .edit-btn{color:#bfdbfe;background:#3b82f62e;border:1px solid rgba(96,165,250,.32)}.customer-master-actions .history-btn{color:#fde68a;background:#f59e0b29;border:1px solid rgba(251,191,36,.3)}.customer-master-actions .delete-btn{color:#fecaca;background:#ef444424;border:1px solid rgba(248,113,113,.3)}.customer-master-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.customer-master-actions .btn-icon{width:auto;min-width:44px;min-height:44px;padding:0 10px;gap:6px;font-weight:700}.customer-master-actions .btn-icon span{font-size:11px;line-height:1}.btn-icon{width:32px;height:32px;border-radius:6px;border:none;background-color:#ffffff0a;color:var(--color-text-primary);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:13px;transition:var(--transition-smooth)}.btn-icon:hover{background-color:#ffffff14}.btn-icon.edit-btn:hover{color:var(--color-blue)}.btn-icon.history-btn:hover{color:var(--color-gold)}.btn-icon.delete-btn:hover{color:var(--color-red)}.customer-master-details{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;font-size:12px;border-top:1px dashed var(--color-divider);padding-top:6px}.customer-master-row{display:flex;gap:6px}.customer-master-row i{color:var(--color-text-secondary);margin-top:3px;width:14px}.cust-master-val{color:var(--color-text-primary);word-break:break-all}.calendar-workspace{display:flex;flex-direction:column;gap:16px;flex-grow:1;overflow:hidden}.calendar-wrapper{background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:12px;padding:8px;box-shadow:var(--shadow-card);display:flex;flex-direction:column}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-weight:700;font-size:11px;color:var(--color-text-secondary);padding:6px 0}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.calendar-day{aspect-ratio:1.15;background-color:#ffffff03;border:1px solid var(--color-divider);border-radius:6px;padding:4px;cursor:pointer;display:flex;flex-direction:column;justify-content:space-between;transition:var(--transition-smooth);min-height:44px}.calendar-day:hover{background-color:#ffffff0a}.calendar-day.empty{visibility:hidden}.calendar-day.today{border-color:var(--color-emerald);background-color:#10b9810d}.calendar-day.selected{border-color:var(--color-gold);background-color:#f59e0b14}.day-number{font-weight:600;font-size:11px;color:var(--color-text-primary)}.day-indicators{display:flex;flex-wrap:wrap;gap:2px;align-items:center}.dot-indicator{width:6px;height:6px;border-radius:50%}.dot-due{background-color:var(--color-blue)}.dot-completed{background-color:var(--color-emerald)}.dot-pending{background-color:var(--color-orange)}.dot-followup{background-color:var(--color-red)}.calendar-day-details{background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:12px;padding:12px;flex-grow:1;display:flex;flex-direction:column;min-height:180px;overflow:hidden}.calendar-day-details h4{font-size:13px;font-weight:700;padding-bottom:6px;border-bottom:1px solid var(--color-border);margin-bottom:8px;flex-shrink:0}.calendar-details-list{flex-grow:1}.calendar-detail-row{padding:6px 8px;border-radius:6px;border-bottom:1px solid var(--color-divider);font-size:12px;display:flex;justify-content:space-between;align-items:center}.calendar-detail-row:last-child{border-bottom:none}.reports-tabs{display:flex;gap:4px;overflow-x:auto;padding-bottom:6px;border-bottom:1px solid var(--color-border);margin-bottom:12px;flex-shrink:0;-webkit-overflow-scrolling:touch}.report-tab-btn{background:none;border:none;color:var(--color-text-secondary);padding:8px 12px;font-family:var(--font-body);font-size:12px;font-weight:600;white-space:nowrap;border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:var(--transition-smooth)}.report-tab-btn.active{background-color:#ffffff0a;color:var(--color-emerald)}.report-controls-panel{background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:12px;padding:12px;margin-bottom:16px;display:flex;flex-direction:column;gap:10px;flex-shrink:0}.report-control-group{display:none;align-items:center;flex-wrap:wrap;gap:8px;font-size:13px}.report-control-group.active{display:flex}.report-control-group label{color:var(--color-text-secondary);font-weight:500}.report-field{display:flex;flex-direction:column;gap:4px}.report-field-full{flex:1 1 100%;width:100%}.drs-expense-panel{width:100%}.drs-expense-panel summary{cursor:pointer;font-weight:600;padding:6px 0;color:var(--color-emerald);display:flex;align-items:center;gap:8px}.drs-expense-panel summary::-webkit-details-marker{display:none}.drs-expense-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.drs-expense-grid .report-field{flex:1 1 140px;min-width:120px}.coll-entries-header{flex-wrap:wrap;gap:10px;align-items:flex-start}.coll-entries-title-wrap{flex:1 1 200px;min-width:0}.coll-entries-date-label{margin:4px 0 0;font-size:12px;color:var(--color-teal);font-weight:600}.coll-entries-date-bar{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.coll-entries-date-input{width:142px;flex:0 0 auto}html.admin-role.mobile-device .coll-entries-header{flex-direction:column;align-items:stretch}html.admin-role.mobile-device .coll-entries-date-bar{width:100%}html.admin-role.mobile-device .coll-entries-date-input{flex:1 1 120px;min-width:0;width:auto}.reports-mobile-hint{display:none;font-size:12px;color:var(--color-text-secondary);margin:0 0 10px;padding:8px 12px;background:#ffffff0a;border-radius:8px;border:1px solid var(--color-border);line-height:1.4}.date-input-styled,.select-input-styled{height:36px;background-color:var(--color-bg-app);border:1px solid var(--color-border);border-radius:6px;color:var(--color-text-primary);padding:0 10px;font-family:var(--font-body);font-size:13px;outline:none;min-width:0;width:100%;box-sizing:border-box}.date-input-styled[type=date],.date-input-styled[type=month]{color-scheme:dark;-webkit-appearance:none;appearance:none}.date-input-styled::-webkit-calendar-picker-indicator{filter:invert(.85);cursor:pointer;opacity:.95}.date-input-styled::-webkit-datetime-edit,.date-input-styled::-webkit-datetime-edit-fields-wrapper,.date-input-styled::-webkit-datetime-edit-text,.date-input-styled::-webkit-datetime-edit-month-field,.date-input-styled::-webkit-datetime-edit-day-field,.date-input-styled::-webkit-datetime-edit-year-field{color:var(--color-text-primary)}.report-action-buttons{display:flex;flex-wrap:wrap;gap:8px;border-top:1px solid var(--color-border);padding-top:10px}.report-action-buttons .btn-report-compile{flex:1 1 100%}.report-action-secondary{display:flex;flex-wrap:wrap;gap:6px;flex:1 1 100%}.report-action-secondary .btn{flex:1 1 auto}#view-reports{min-height:0}#view-reports .report-controls-panel{flex-shrink:0}#view-reports .report-output-container{flex:1 1 auto;min-height:280px}.report-output-container{background-color:#0f172a;border:1px solid var(--color-border);border-radius:12px;padding:12px;flex-grow:1;overflow-y:auto}.report-paper{background-color:#fff;color:var(--color-text-dark);padding:24px;border-radius:4px;box-shadow:0 4px 6px #0000001a;min-height:350px;position:relative;overflow-x:auto;font-family:var(--font-body);font-size:11px}.drs-report{font-family:Arial,Helvetica,sans-serif;font-size:9pt;color:#111;line-height:1.35}.drs-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:2px solid #111;padding-bottom:10px;margin-bottom:12px}.drs-brand{display:flex;gap:12px;align-items:flex-start;flex:1}.drs-logo{width:64px;height:64px;object-fit:contain;border-radius:4px}.drs-company{font-size:14pt;font-weight:800;color:#000}.drs-addr{font-size:8.5pt;color:#333;margin-top:2px}.drs-meta{text-align:right;min-width:220px}.drs-title{font-size:12pt;font-weight:800;letter-spacing:.04em;margin-bottom:8px;text-align:center}.drs-meta-table{font-size:8.5pt;margin-left:auto}.drs-meta-table td{padding:1px 0 1px 8px;border:none}.drs-main-table,.drs-next-table{width:100%;max-width:100%;table-layout:fixed;border-collapse:collapse;margin:10px 0;font-size:7.5pt}.drs-main-table th,.drs-next-table th{background:#e8e8e8;border:1px solid #333;padding:5px 4px;font-weight:800;text-align:center;vertical-align:middle}.drs-main-table td,.drs-next-table td{border:1px solid #666;padding:4px 3px;vertical-align:top}.drs-main-table .r,.drs-next-table .r{text-align:right}.drs-main-table .c,.drs-next-table .c{text-align:center}.drs-main-table .l,.drs-next-table .l{text-align:left}.drs-main-table thead{display:table-header-group}.drs-footer-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:14px;page-break-inside:avoid}.drs-summary-box{border:1px solid #333;padding:8px 10px;background:#fafafa}.drs-summary-box h4{margin:0 0 6px;font-size:9pt;font-weight:800;border-bottom:1px solid #ccc;padding-bottom:4px}.drs-sum-row{display:flex;justify-content:space-between;font-size:8pt;padding:2px 0}.drs-sum-row.drs-total{font-weight:800;border-top:1px solid #333;margin-top:4px;padding-top:4px}.drs-section-title{font-size:10pt;font-weight:800;margin:14px 0 6px;page-break-after:avoid}.drs-signatures{display:flex;justify-content:space-between;margin-top:28px;font-size:9pt;font-weight:600;page-break-inside:avoid}.drs-sig-line{width:180px;border-bottom:1px solid #111;margin-bottom:6px;height:28px}.drs-page-foot{text-align:center;font-size:7pt;color:#666;margin-top:12px}.report-watermark{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-30deg);font-family:var(--font-header);font-weight:800;font-size:42px;color:#00000008;pointer-events:none;white-space:nowrap}.no-report-prompt{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#475569;height:250px;gap:8px;text-align:center}.no-report-prompt i{font-size:40px}.report-table-style{width:100%;border-collapse:collapse;margin-top:12px;font-size:10px}.report-table-style th{background-color:#f1f5f9;color:#0f172a;font-weight:700;text-align:left;padding:6px 8px;border-bottom:2px solid #cbd5e1}.report-table-style td{padding:6px 8px;border-bottom:1px solid #e2e8f0;color:#334155}.report-table-style tr:last-child td{border-bottom:2px solid #94a3b8}.report-header-section{display:flex;justify-content:space-between;border-bottom:2px solid #0f172a;padding-bottom:8px;margin-bottom:12px}.report-title-bold{font-family:var(--font-header);font-weight:800;font-size:16px;color:#0f172a}.report-meta-text{text-align:right;color:#475569}.report-summary-boxes{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px;margin-bottom:14px}.report-sum-box{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:8px 10px}.report-sum-lbl{font-size:9px;text-transform:uppercase;font-weight:600;color:#64748b}.report-sum-val{font-size:13px;font-weight:700;color:#0f172a;margin-top:2px}.settings-grid{display:grid;grid-template-columns:1fr;gap:16px}.settings-card{background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:12px;padding:14px;box-shadow:var(--shadow-card)}.settings-header{border-bottom:1px solid var(--color-border);padding-bottom:8px;margin-bottom:12px}.settings-header h3{font-size:13px;font-weight:600}.settings-form{display:flex;gap:8px;margin-bottom:10px}.settings-form input{flex-grow:1;height:36px;background-color:var(--color-bg-app);border:1px solid var(--color-border);border-radius:6px;color:#fff;padding:0 10px;outline:none;font-size:12px}.settings-form input:focus{border-color:var(--color-emerald)}.settings-list{max-height:150px;list-style:none;border:1px solid var(--color-border);border-radius:6px;background-color:#0000001a}.settings-list-item{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;border-bottom:1px solid var(--color-divider);font-size:12px}.settings-list-item:last-child{border-bottom:none}.settings-list-item button{background:none;border:none;color:var(--color-red);cursor:pointer;padding:4px}.settings-hr{border:0;height:1px;background-color:var(--color-border);margin:12px 0}.backup-actions{display:flex;flex-direction:column;gap:8px}.flex-column-gap{display:flex;flex-direction:column}.modal-overlay{position:fixed;inset:0;background-color:#000000a6;backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;padding:16px;z-index:1000}.modal-overlay.active{display:flex}.pac-container{z-index:10050!important;border-radius:8px;box-shadow:0 8px 24px #00000059}#map-search-results{z-index:10050!important}.modal-content{background-color:#0f172a;border:1px solid var(--color-border);border-radius:16px;width:100%;max-width:550px;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;box-shadow:0 25px 50px -12px #0009;animation:zoomIn .25s ease-out}.modal-content-sm{max-width:400px}.modal-header{padding:16px;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background-color:#0f172a;z-index:5}.modal-header h3{font-size:16px;font-weight:700}.modal-close{background:none;border:none;color:var(--color-text-secondary);font-size:24px;cursor:pointer;line-height:1}.modal-close:hover{color:#fff}form{padding:16px;display:flex;flex-direction:column;gap:16px}.form-section-title{font-size:12px;color:var(--color-emerald);text-transform:uppercase;font-weight:700;letter-spacing:.5px;border-bottom:1px solid var(--color-divider);padding-bottom:4px;margin-bottom:-6px}.form-grid{display:grid;grid-template-columns:1fr;gap:12px}.form-grid-single{display:flex;flex-direction:column;gap:12px}.form-group-row{display:flex;gap:12px}.form-group{display:flex;flex-direction:column;gap:4px}.width-50{width:50%}.width-100{width:100%}.form-group label{font-size:11px;font-weight:600;color:var(--color-text-secondary)}.form-group input,.form-group select,.form-group textarea{width:100%;background-color:#ffffff08;border:1px solid var(--color-border);border-radius:8px;color:var(--color-text-primary);padding:8px 12px;font-family:var(--font-body);font-size:13px;outline:none}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--color-emerald)}.col-span-2{grid-column:span 1}.modal-footer{padding:12px 16px;border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;gap:8px;background-color:#0000001a;position:sticky;bottom:0}.service-log-customer-meta{background-color:#ffffff05;border:1px solid var(--color-border);border-radius:8px;padding:10px;text-align:center}.service-log-customer-meta h4{font-size:14px;font-weight:700}.service-log-customer-meta p{font-size:11px;color:var(--color-text-secondary);margin-top:2px}.history-content-panel{padding:16px;display:flex;flex-direction:column;gap:12px;overflow:hidden}.history-meta{background-color:#ffffff05;border:1px solid var(--color-border);border-radius:8px;padding:8px 12px;font-size:12px;display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.history-table-wrapper{max-height:350px;overflow:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--color-border);border-radius:8px}.history-table{width:100%;border-collapse:collapse;font-size:11px}.history-table th{background-color:var(--color-bg-card);position:sticky;top:0;font-weight:700;text-align:left;padding:8px 10px;border-bottom:1px solid var(--color-border);color:var(--color-text-secondary)}.history-table td{padding:8px 10px;border-bottom:1px solid var(--color-divider)}.profile-modal-content{max-width:420px}.profile-summary-panel{display:grid;gap:10px;padding:16px}.profile-summary-row{display:grid;grid-template-columns:minmax(92px,.45fr) minmax(0,1fr);gap:12px;min-height:44px;align-items:center;padding:10px 12px;border:1px solid var(--color-border);border-radius:8px;background:#ffffff08}.profile-summary-row span{color:var(--color-text-secondary);font-size:12px}.profile-summary-row strong{color:var(--color-text-primary);overflow-wrap:anywhere}.toast-container{position:fixed;bottom:80px;left:50%;transform:translate(-50%);width:90%;max-width:380px;display:flex;flex-direction:column;gap:8px;z-index:2000;pointer-events:none}.toast{pointer-events:auto;background-color:#1e293b;border:1px solid var(--color-emerald);box-shadow:0 10px 15px -3px #00000080;border-radius:10px;padding:10px 14px;display:flex;justify-content:space-between;align-items:center;color:#fff;font-size:12px;animation:slideUpToast .3s cubic-bezier(.16,1,.3,1);transition:var(--transition-smooth)}.toast-msg{font-weight:500}.toast-undo-btn{background-color:var(--color-emerald);color:#022c22;border:none;border-radius:4px;padding:4px 8px;font-size:10px;font-weight:700;cursor:pointer;text-transform:uppercase;transition:var(--transition-smooth)}.toast-undo-btn:hover{background-color:#fff}@keyframes slideUp{0%{transform:translateY(15px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideUpToast{0%{transform:translateY(30px) scale(.95);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@keyframes zoomIn{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@media(min-width:768px){.form-grid{grid-template-columns:repeat(2,1fr)}.col-span-2{grid-column:span 2}body{font-size:14px}.crm-app{flex-direction:row;position:relative}.app-header{position:absolute;top:0;right:0;left:200px;border-bottom:1px solid var(--color-border);background-color:var(--color-bg-app)}.app-content{margin-top:64px;margin-left:200px;height:calc(100vh - 64px)}.app-nav{position:absolute;left:0;top:0;bottom:0;width:200px;height:100vh;flex-direction:column;border-top:none;border-right:1px solid var(--color-border);justify-content:flex-start;padding-top:30px;gap:8px}.nav-btn{flex:none;width:100%;height:50px;flex-direction:row;justify-content:flex-start;padding-left:24px;gap:12px;font-size:13px}.nav-btn i{font-size:16px}.nav-route-badge{right:20px;top:17px}.kpi-grid{grid-template-columns:repeat(4,1fr)}.dashboard-lists{grid-template-columns:repeat(2,1fr);max-height:calc(100vh - 280px)}.list-container{max-height:100%}.route-container{display:grid;grid-template-columns:repeat(2,1fr);align-content:flex-start}.filter-panel{flex-direction:row;align-items:center}.filter-selectors{grid-template-columns:repeat(4,1fr);flex-grow:2}.customers-grid{display:grid;grid-template-columns:repeat(2,1fr);align-content:flex-start}.calendar-workspace{flex-direction:row}.calendar-wrapper{flex:2}.calendar-day-details{flex:1;min-height:100%}.settings-grid{grid-template-columns:repeat(2,1fr)}.toast-container{bottom:24px;left:calc(50% + 100px)}}@media(min-width:1200px){.route-container,.customers-grid{grid-template-columns:repeat(3,1fr)}}@page{size:A4 portrait;margin:12mm 10mm 14mm}@media print{.crm-app{display:block!important;position:static!important;width:100%!important;max-width:none!important;height:auto!important;overflow:visible!important}.app-content{display:block!important;position:static!important;width:100%!important;max-width:none!important;height:auto!important;margin:0!important;padding:0!important;overflow:visible!important}html,body{width:210mm;height:auto;margin:0!important;padding:0!important;background:#fff!important;color:#000!important;font-size:14pt!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.app-header,.app-nav,#passcode-lock-overlay,.modal-overlay,.btn,.toast-container,#admin-live-tracker,#screenshot-shield,.reports-tabs,.report-controls-panel,.report-action-buttons,#view-reports>.section-header,.no-report-prompt{display:none!important}main,#view-reports,.view-panel{display:block!important;height:auto!important;overflow:visible!important;padding:0!important;margin:0!important;background:#fff!important}body *{visibility:hidden}.report-output-container,.report-output-container *,.report-paper,.report-paper *{visibility:visible}.report-output-container{position:static!important;left:0;top:0;width:100%;max-width:none!important;padding:0!important;margin:0 auto!important;background:#fff!important;border:none!important;border-radius:0!important;overflow:visible!important;box-shadow:none!important}.report-paper{box-shadow:none!important;padding:0!important;margin:0!important;background:#fff!important;color:#000!important;font-family:Arial,Helvetica,sans-serif!important;font-size:13pt!important;line-height:1.45!important;min-height:0!important;border-radius:0!important;overflow:visible!important}.report-watermark{display:none!important}.report-header-section{display:flex!important;justify-content:space-between!important;align-items:flex-start!important;border-bottom:3pt solid #000!important;padding-bottom:10pt!important;margin-bottom:14pt!important;page-break-after:avoid}.report-title-bold{font-size:22pt!important;font-weight:800!important;color:#000!important;line-height:1.2!important;letter-spacing:.02em}.report-header-section>div,.report-meta-text{font-size:13pt!important;color:#222!important;line-height:1.5!important}.report-meta-text{text-align:right!important;font-weight:600!important}.report-summary-boxes{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:10pt!important;margin:14pt 0 16pt!important;page-break-inside:avoid}.report-sum-box{border:1.5pt solid #333!important;border-radius:4pt!important;padding:10pt 12pt!important;background:#f5f5f5!important}.report-sum-lbl{font-size:11pt!important;font-weight:700!important;color:#333!important;text-transform:uppercase!important;letter-spacing:.04em}.report-sum-val{font-size:20pt!important;font-weight:800!important;color:#000!important;margin-top:4pt!important}.report-table-style{width:100%!important;border-collapse:collapse!important;margin-top:12pt!important;font-size:12pt!important;page-break-inside:auto}.report-table-style th{background:#e8e8e8!important;color:#000!important;font-size:12pt!important;font-weight:800!important;padding:8pt 6pt!important;border:1.5pt solid #333!important;text-align:left!important}.report-table-style td{padding:7pt 6pt!important;border:1pt solid #666!important;color:#000!important;font-size:11.5pt!important;vertical-align:top!important;line-height:1.35!important}.report-table-style tr{page-break-inside:avoid;break-inside:avoid-page!important;-webkit-region-break-inside:avoid;page-break-after:auto}.report-table-style thead{display:table-header-group}.report-table-style tr:last-child td{border-bottom:2pt solid #333!important}.report-paper strong,.report-table-style strong{font-weight:800!important;color:#000!important}.drs-report{font-family:Arial,Helvetica,sans-serif!important;font-size:7.5pt!important;color:#000!important;line-height:1.3!important}.drs-header{display:flex!important;justify-content:space-between!important;border-bottom:2pt solid #000!important;padding-bottom:8pt!important;margin-bottom:8pt!important;page-break-after:avoid}.drs-logo{width:48pt!important;height:48pt!important;object-fit:contain!important}.drs-company{font-size:13pt!important;font-weight:800!important}.drs-addr{font-size:7.5pt!important;color:#333!important}.drs-title{font-size:11pt!important;font-weight:800!important;text-align:center!important}.drs-main-table,.drs-next-table{width:100%!important;max-width:100%!important;table-layout:fixed!important;border-collapse:collapse!important;font-size:6.5pt!important;page-break-inside:auto}.drs-main-table th,.drs-next-table th{background:#e8e8e8!important;border:1pt solid #333!important;padding:3pt 2pt!important;font-weight:800!important;text-align:center!important}.drs-main-table td,.drs-next-table td{border:.75pt solid #666!important;padding:2pt!important;vertical-align:top!important;word-break:break-word!important}.drs-main-table thead{display:table-header-group!important}.drs-main-table tr,.drs-next-table tr,.drs-summary-box,.drs-signatures{page-break-inside:avoid!important;break-inside:avoid-page!important}html.print-drs-landscape body{width:297mm!important}html.print-drs-landscape .report-output-container,html.print-drs-landscape .report-paper,html.print-drs-landscape .drs-report{width:100%!important;max-width:none!important;box-sizing:border-box!important}.drs-footer-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:6pt!important;margin-top:10pt!important;page-break-inside:avoid}.drs-summary-box{border:1pt solid #333!important;padding:6pt!important;background:#fafafa!important}.drs-sum-row{font-size:7pt!important}.drs-signatures{margin-top:20pt!important;page-break-inside:avoid}.drs-page-foot{font-size:6pt!important;text-align:center!important;margin-top:8pt!important}}select option{background-color:#141c2f!important;color:#f8fafc!important}#sf-update-banner{position:fixed;top:0;left:0;right:0;z-index:10050;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;padding:10px 14px;background:linear-gradient(135deg,#065f46,#047857);color:#ecfdf5;font-size:13px;font-weight:600;box-shadow:0 4px 20px #00000059}#sf-update-banner #sf-update-apply-btn{background:#fff;color:#065f46;border:none;border-radius:8px;padding:8px 16px;font-weight:800;font-size:13px;cursor:pointer}#sf-update-banner #sf-update-dismiss-btn{background:transparent;border:none;color:#a7f3d0;font-size:22px;line-height:1;cursor:pointer;padding:0 4px}.route-map-empty-msg{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:200px;padding:24px;text-align:center;color:var(--color-text-secondary);font-size:14px;font-weight:600}.route-map-empty-msg i{font-size:32px;color:var(--color-teal);opacity:.85}.route-dist-nav-btn{display:flex;align-items:center;gap:8px;width:100%;text-align:left;font-size:11px;font-weight:600;color:var(--color-teal);background:var(--color-teal-light);padding:8px 12px;border-radius:8px;margin:8px 0;border:1px solid rgba(20,184,166,.25);cursor:pointer;font-family:inherit;line-height:1.35}.route-dist-nav-btn:hover,.route-dist-nav-btn:active{filter:brightness(1.08)}.route-dist-nav-nearest{color:var(--color-emerald);background:var(--color-emerald-light);border-color:#10b9814d}.route-plan-marker-wrap{background:transparent!important;border:none!important}.route-stops-list-header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;padding:10px 12px;border-radius:10px;background:linear-gradient(135deg,#10b9811f,#05966914);border:1px solid rgba(16,185,129,.25)}.route-stops-title{font-size:15px;font-weight:800;color:var(--color-emerald);display:flex;align-items:center;gap:8px}.route-stops-count{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 8px;border-radius:999px;background:var(--color-emerald);color:#022c22;font-size:13px;font-weight:900}.route-optimize-status{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--color-teal);padding:8px 12px;margin-bottom:10px;border-radius:8px;background:#14b8a61a;border:1px solid rgba(20,184,166,.25)}.route-no-gmap-warn{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border-radius:8px;background:#fb923c1f;border:1px solid rgba(251,146,60,.35);color:var(--color-orange);font-size:11px;line-height:1.4}.route-no-gmap-warn i{margin-top:2px;flex-shrink:0}.route-planner-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:28px 16px;color:var(--color-teal);font-size:14px;font-weight:600}.route-eta-timeline{margin-bottom:16px;padding:14px 16px;border-radius:12px;border:1px solid var(--color-border);background:var(--color-bg-card)}.route-eta-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;font-size:13px;font-weight:700;color:var(--color-teal);margin-bottom:8px}.route-eta-stats{display:flex;gap:10px;flex-wrap:wrap;font-size:11px;font-weight:600;color:var(--color-emerald)}.route-eta-hint{font-size:11px;color:var(--color-text-secondary);margin-bottom:12px;line-height:1.4}.route-eta-list{display:flex;flex-direction:column;gap:2px}.route-eta-row{display:flex;align-items:flex-start;gap:12px;padding:8px 10px;border-radius:8px;background:#0f172a59;border:1px solid var(--color-border)}.route-eta-row.route-eta-start{background:#3b82f61f;border-color:#3b82f64d}.route-eta-num{flex-shrink:0;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:900;background:linear-gradient(135deg,#10b981,#059669);color:#022c22;border:2px solid #fff}.route-eta-num.you{font-size:9px;background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff}.route-eta-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.route-eta-body strong{font-size:13px;color:var(--color-text)}.route-eta-sub{font-size:11px;color:var(--color-text-secondary)}.route-eta-time{font-size:12px;font-weight:700;color:var(--color-emerald)}.route-eta-connector{text-align:center;font-size:10px;font-weight:600;color:var(--color-text-secondary);padding:2px 0}.route-eta-connector i{color:var(--color-teal);font-size:9px;margin-right:4px}.route-eta-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;color:var(--color-emerald);background:var(--color-emerald-light);padding:3px 8px;border-radius:6px}.route-nav-hud{margin-bottom:14px;padding:14px 16px;border-radius:12px;border:1px solid var(--color-border);background:var(--color-bg-card)}.route-nav-hud-active{border-color:#f59e0b8c;box-shadow:0 0 0 1px #f59e0b33,0 8px 24px #0003}.route-nav-hud-top{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.route-nav-hud-top strong{font-size:15px;color:var(--color-text)}.route-nav-pulse{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#f59e0b;animation:route-nav-pulse 1.5s ease-in-out infinite}@keyframes route-nav-pulse{0%,to{opacity:1}50%{opacity:.55}}.route-nav-hud-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:12px}.route-nav-stat{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:8px;background:#0f172a59;border:1px solid var(--color-border)}.route-nav-stat .lbl{font-size:10px;font-weight:600;text-transform:uppercase;color:var(--color-text-secondary)}.route-nav-stat .val{font-size:13px;font-weight:800;color:var(--color-emerald)}.route-nav-hud-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.route-nav-hud-hint{font-size:10px;color:var(--color-text-secondary);line-height:1.4}.route-map-marker-done{background:linear-gradient(135deg,#10b981,#059669);color:#fff;width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:900;border:3px solid #fff;box-shadow:0 4px 14px #10b9818c}.route-map-marker-current{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;width:68px;height:68px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:900;border:4px solid #fff;box-shadow:0 0 0 4px #3b82f673,0 6px 20px #3b82f68c;animation:route-marker-pulse 1.2s ease-in-out infinite}@keyframes route-marker-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.route-map-marker-skipped{background:linear-gradient(135deg,#f97316,#ea580c);color:#fff;width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:800;border:2px dashed #ffedd5;opacity:.85;box-shadow:0 4px 10px #f9731680}.route-map-marker-problem{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:900;border:3px solid #fff;box-shadow:0 4px 14px #ef44448c}.route-map-marker-priority{background:linear-gradient(135deg,#a855f7,#9333ea);color:#fff;width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:900;border:3px solid #fff;box-shadow:0 4px 14px #a855f78c}.route-map-name-current{border-color:#f59e0bb3!important;color:#fcd34d!important;font-weight:800!important}.route-eta-row.route-eta-done{opacity:.65;border-color:#22c55e59;background:#22c55e14}.route-eta-row.route-eta-current{border-color:#f59e0b80;background:#f59e0b1a}.route-eta-row.route-eta-skipped{opacity:.5;text-decoration:line-through}.route-eta-num.done{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff}.route-eta-num.current{background:linear-gradient(135deg,#f59e0b,#d97706);color:#1c1917}#route-plan-map .leaflet-container{height:100%;width:100%;background:#0f172a}#route-plan-map-wrap{border-radius:12px;border:1px solid var(--color-border);background:var(--color-bg-card);padding:12px}#route-plan-map{height:380px;width:100%;border-radius:10px;border:1px solid var(--color-border);background:#0f172a;z-index:1}.route-map-marker-you{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:900;border:3px solid #fff;box-shadow:0 4px 14px #2563eb8c;letter-spacing:.5px}.route-map-marker-num{background:linear-gradient(135deg,#64748b,#475569);color:#fff;width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:900;border:3px solid #fff;box-shadow:0 4px 14px #64748b80;font-family:var(--font-header),Arial,sans-serif}.route-map-name-label{background:#0f172aeb;color:#f8fafc;border:1px solid rgba(16,185,129,.45);border-radius:6px;padding:3px 8px;font-size:11px;font-weight:700;white-space:nowrap;box-shadow:0 2px 8px #00000059}.leaflet-tooltip.route-map-name-label{background:#0f172aeb;color:#f8fafc;border:1px solid rgba(16,185,129,.45);font-weight:700}.route-sequence-controls{display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:var(--color-bg-app);border-radius:6px;padding:2px 6px;border:1px solid var(--color-border);margin-right:8px}.btn-seq{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:10px;padding:2px 4px;transition:var(--transition-smooth);display:flex;align-items:center;justify-content:center}.btn-seq:hover{color:var(--color-emerald)}.seq-num{font-family:var(--font-header);font-size:11px;font-weight:700;color:var(--color-gold);line-height:1;margin:2px 0}.route-pending-reminder-banner{background-color:#f59e0b1f;border:1px solid rgba(245,158,11,.25);border-radius:8px;padding:8px 12px;margin-bottom:10px;font-size:12px;color:var(--color-gold);display:flex;align-items:center;gap:8px;line-height:1.4;animation:slideUp .3s ease-out;width:100%}.route-pending-reminder-banner i{font-size:14px;color:var(--color-gold)}body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);-webkit-overflow-scrolling:touch;overscroll-behavior:none}html.mobile-device body,html.capacitor-app body,html.standalone-app body{padding-top:0;padding-bottom:0}@media(display-mode:standalone){.app-header{padding-top:env(safe-area-inset-top,0px)}.app-nav{padding-bottom:calc(env(safe-area-inset-bottom,0px) + 4px)}}html.capacitor-app,html.native-app{-webkit-tap-highlight-color:transparent;touch-action:manipulation}html.capacitor-app body{min-height:100dvh;background:var(--color-bg-app);user-select:none;-webkit-user-select:none}html.capacitor-app input,html.capacitor-app textarea,html.capacitor-app [contenteditable=true]{user-select:text;-webkit-user-select:text}html.capacitor-app #app-container{min-height:100dvh;display:flex;flex-direction:column}html.capacitor-app .app-header{padding-top:max(env(safe-area-inset-top,0px),8px);background:linear-gradient(180deg,#0d1220 0%,var(--color-bg-app) 100%);border-bottom:1px solid rgba(16,185,129,.15);box-shadow:0 2px 12px #00000059}html.mobile-device .app-nav,html.capacitor-app .app-nav,html.standalone-app .app-nav{position:fixed;left:0;right:0;bottom:0;z-index:900;padding-bottom:calc(env(safe-area-inset-bottom,0px) + 6px);padding-top:6px;padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);background:#0a0e1af5;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid rgba(255,255,255,.08);box-shadow:0 -4px 24px #00000073}html.mobile-device .app-content,html.capacitor-app main,html.capacitor-app .main-content,html.standalone-app .app-content{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))!important}html.mobile-device .app-header,html.standalone-app .app-header{padding-top:max(env(safe-area-inset-top,0px),4px)}html.capacitor-app .nav-btn{min-height:48px;border-radius:10px}html.capacitor-app .nav-btn.active{background:#10b9812e;color:var(--color-emerald)}html.capacitor-app #pwa-install-banner,html.capacitor-app .pwa-install-modal{display:none!important}html{font-size:clamp(14px,3.6vw,16px)}html.xs-screen{font-size:16px}html.small-screen{font-size:15px}html.phablet-screen,html.samsung-device.mobile-device{font-size:16px}html.android-device.samsung-device .app-nav,html.android-device.capacitor-app .app-nav{padding-bottom:calc(max(env(safe-area-inset-bottom,0px),var(--safe-bottom, 24px)) + 8px)}html.android-device.samsung-device .app-content,html.android-device.capacitor-app .app-content,html.samsung-device.mobile-device .app-content{padding-bottom:calc(76px + max(env(safe-area-inset-bottom,0px),var(--safe-bottom, 24px)))!important}html.samsung-device .app-header{padding-top:max(env(safe-area-inset-top,0px),28px)}html.samsung-device .cust-map-link-text{font-size:max(15px,1rem)}html.samsung-device .fse-view-address-text{font-size:max(17px,1.05rem)!important}html.samsung-device .nav-btn{min-height:50px;font-size:11px}html.samsung-device .nav-btn i{font-size:20px}html.touch-device .view-panel,html.touch-device .modal-content{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}html.touch-device .modal-content{width:calc(100% - 20px)!important;max-width:520px!important;max-height:min(94dvh,var(--app-height, 94vh))!important;margin:10px auto!important}html.touch-device .fse-view-address-text{font-size:max(16px,1rem)!important;line-height:1.55!important;min-height:88px}html.touch-device .customer-master-card,html.touch-device .route-card{font-size:max(14px,.95rem)}html.touch-device .route-cust-name,html.touch-device .customer-master-header .route-cust-name{font-size:max(16px,1.05rem)}html.touch-device .cust-master-val{font-size:max(14px,.95rem)}button,.btn,.nav-btn,select,input[type=checkbox],input[type=radio],.route-card-action,.settings-list-item button,.btn-icon{min-height:44px;min-width:44px}input[type=text],input[type=password],input[type=tel],input[type=number],input[type=date],input[type=url],input[type=email],textarea,select{min-height:44px;font-size:max(16px,1em);border-radius:8px}.scroll-y,main,.modal-content{-webkit-overflow-scrolling:touch;scroll-behavior:smooth}.nav-btn,.btn,.btn-icon,.card-header,.route-card-action{-webkit-user-select:none;user-select:none}.btn,.nav-btn,.route-card-action{-webkit-tap-highlight-color:rgba(16,185,129,.15);position:relative;overflow:hidden}@media(max-width:767px){.hide-mobile{display:none!important}.app-header{height:auto;min-height:52px;padding:8px 10px;padding-top:max(env(safe-area-inset-top,0px),8px);flex-wrap:nowrap;gap:6px}.brand-text h1{font-size:12px}.brand-text span{font-size:9px}.brand-logo{width:32px;height:32px}.header-actions{gap:4px;flex-shrink:0}.header-actions .btn{min-width:44px;padding:0 10px;height:40px}.section-header.row-layout{flex-direction:column;align-items:stretch;gap:10px}.section-header.row-layout>*:last-child{width:100%}.filter-selectors{grid-template-columns:1fr!important}#view-customers .section-header{margin-bottom:8px}#view-customers .section-header h2{font-size:17px;margin-bottom:0}#view-customers .section-header .subtitle{font-size:11px;margin-top:2px}}html.fse-role #view-customers .section-header .subtitle{display:none}.admin-dash-date-bar{margin-bottom:12px}.cust-fse-date-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;padding:8px 10px;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:10px;flex-shrink:0;width:100%;box-sizing:border-box}.cust-fse-date-quick{display:flex;flex-wrap:wrap;gap:6px}.cust-date-selected-label{flex:1 1 100%;width:100%;margin:0;font-size:12px;font-weight:600;color:var(--color-emerald);text-align:center}#view-customers{min-height:0}#view-customers .customers-grid{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}html.fse-role #cust-filter-payment,html.fse-role #cust-filter-installation,html.fse-role #cust-date-all{display:none!important}@media(max-width:767px){.cust-fse-date-bar{flex-direction:column;align-items:stretch;padding:10px;gap:10px}.cust-fse-date-bar .route-date-controls{width:100%;justify-content:center}.cust-fse-date-bar .route-date-input{flex:1;min-width:0;max-width:none;font-size:16px;min-height:44px}.cust-fse-date-quick{width:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}html.fse-role .cust-fse-date-quick{grid-template-columns:repeat(2,1fr)}.cust-fse-date-quick .btn{min-height:44px;font-size:12px;padding:0 6px;white-space:nowrap}.cust-date-selected-label{font-size:11px;line-height:1.35}#view-customers .filter-panel{padding:8px;margin-bottom:8px;gap:6px;border-radius:10px}#view-customers .filter-selectors{grid-template-columns:repeat(2,1fr)!important;gap:6px}#view-customers .filter-panel .select-input,#view-customers .filter-panel .search-box input{min-height:34px;height:34px;font-size:13px;padding:0 8px}#view-customers .search-box{min-height:0}#view-customers .search-box i{font-size:12px}#view-customers .customers-grid{gap:10px;flex:0 0 auto;min-height:1px;overflow:visible}#view-customers .customer-master-card{padding:10px 12px}.route-details-grid{grid-template-columns:repeat(2,1fr)}.route-actions-row .btn{flex:1 1 calc(50% - 6px);min-width:0}.view-panel{padding:12px;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px));scroll-padding-bottom:80px}.table-scroll,.history-table-wrapper,.report-preview-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}#passcode-lock-overlay .modal-content{width:calc(100% - 24px)!important;max-width:400px!important;max-height:min(92dvh,var(--app-height, 92vh))!important;overflow-y:auto;margin:12px!important}#login-username-input,#login-password-input,#login-fse-pin-input{font-size:16px!important}.modal-content{width:100%!important;max-width:100%!important;margin:0!important;border-radius:16px 16px 0 0!important;max-height:92vh!important;bottom:0;top:auto;position:fixed}.modal-overlay{align-items:flex-end!important}.form-grid{grid-template-columns:1fr!important}.form-group.col-span-2{grid-column:auto!important}.form-group-row{flex-direction:column!important}.form-group.width-50{width:100%!important}.settings-grid{grid-template-columns:1fr!important}.settings-card.col-span-2{grid-column:auto!important}.customers-grid{grid-template-columns:1fr!important}.app-nav{padding:4px 2px;height:60px;min-height:calc(56px + env(safe-area-inset-bottom,0px))}.nav-btn{font-size:9px;gap:2px;padding:4px 2px;min-width:0}.nav-btn i{font-size:20px}.nav-btn span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.1}.kpi-grid{grid-template-columns:repeat(2,1fr)!important}#attendance-view-container table{font-size:11px}#attendance-view-container th,#attendance-view-container td{padding:7px 5px!important}#export-panel-container>div{grid-template-columns:1fr!important}#login-passcode-input{width:200px!important;font-size:32px!important}html.admin-role.mobile-device .admin-mobile-dash-nav{display:flex!important;gap:6px;margin-bottom:12px;padding:4px;background:#ffffff0a;border-radius:12px;border:1px solid var(--color-border);position:sticky;top:0;z-index:20}html.admin-role.mobile-device .admin-mobile-dash-btn{flex:1;min-height:44px;border:none;border-radius:10px;background:transparent;color:var(--color-text-secondary);font-size:12px;font-weight:600;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer}html.admin-role.mobile-device .admin-mobile-dash-btn.active{background:#10b9812e;color:var(--color-emerald)}html.admin-role.mobile-device .admin-mobile-dash-btn i{font-size:16px}html.admin-role.mobile-device #view-dashboard .kpi-grid{grid-template-columns:repeat(2,1fr)!important;gap:8px}html.admin-role.mobile-device #view-dashboard .kpi-card{padding:10px}html.admin-role.mobile-device #view-dashboard .kpi-value{font-size:15px}html.admin-role.mobile-device #admin-live-tracker #live-tracking-map{height:220px!important}html.admin-role.mobile-device #admin-live-tracker-cards{grid-template-columns:1fr!important;gap:10px!important}html.admin-role.mobile-device .fse-tracker-card{padding:12px!important}html.admin-role.mobile-device #dashboard-charts{display:none!important}html.admin-role.mobile-device .admin-hub-tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px;margin-bottom:12px}html.admin-role.mobile-device .admin-hub-tabs .btn{flex:0 0 auto;white-space:nowrap;font-size:12px;padding:0 12px}html.admin-role.mobile-device #view-admin .settings-form{flex-direction:column!important;align-items:stretch!important}html.admin-role.mobile-device #view-admin .settings-form input,html.admin-role.mobile-device #view-admin .settings-form select,html.admin-role.mobile-device #view-admin .settings-form button{width:100%!important}html.admin-role.mobile-device #view-reports{overflow-y:auto;padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}html.admin-role.mobile-device #view-reports .section-header{margin-bottom:10px}html.admin-role.mobile-device #view-reports .section-header h2{font-size:17px}html.admin-role.mobile-device #view-reports .section-header .subtitle{font-size:12px}html.admin-role.mobile-device .reports-tabs{position:sticky;top:0;z-index:15;background:var(--color-bg-app);margin:0 -12px 12px;padding:8px 12px 6px;gap:6px;scrollbar-width:none;-webkit-overflow-scrolling:touch}html.admin-role.mobile-device .reports-tabs::-webkit-scrollbar{display:none}html.admin-role.mobile-device .report-tab-btn{min-height:44px;padding:8px 14px;font-size:13px;flex-shrink:0;background:#ffffff08;border:1px solid var(--color-border)}html.admin-role.mobile-device .report-tab-btn.active{background:#10b98126;border-color:#10b98166}html.admin-role.mobile-device .report-controls-panel{padding:14px;gap:12px}html.admin-role.mobile-device .report-control-group.active{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%}html.admin-role.mobile-device .report-field{min-width:0}html.admin-role.mobile-device .report-field-full{grid-column:1 / -1}html.admin-role.mobile-device .report-control-group label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}html.admin-role.mobile-device .report-control-group .date-input-styled,html.admin-role.mobile-device .report-control-group .select-input-styled{width:100%;height:44px;font-size:16px;box-sizing:border-box}html.admin-role.mobile-device .drs-expense-panel{grid-column:1 / -1;background:#10b9810f;border:1px solid rgba(16,185,129,.3);border-radius:10px;padding:0;overflow:hidden}html.admin-role.mobile-device .drs-expense-panel summary{list-style:none;min-height:48px;padding:10px 14px;font-size:14px;font-weight:700}html.admin-role.mobile-device .drs-expense-panel summary:after{content:"\f078";font-family:"Font Awesome 6 Free";font-weight:900;margin-left:auto;font-size:12px;opacity:.7;transition:transform .2s}html.admin-role.mobile-device .drs-expense-panel[open] summary:after{transform:rotate(180deg)}html.admin-role.mobile-device .drs-expense-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 12px 12px;margin-top:0}html.admin-role.mobile-device .drs-expense-grid .report-field{flex:unset;min-width:0}html.admin-role.mobile-device .report-action-buttons{flex-direction:column;gap:10px}html.admin-role.mobile-device .btn-report-compile{width:100%;min-height:48px;font-size:15px;font-weight:700}html.admin-role.mobile-device .report-action-secondary{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}html.admin-role.mobile-device .report-action-secondary .btn{min-height:44px;font-size:12px;width:100%}html.admin-role.mobile-device .reports-mobile-hint{display:block}html.admin-role.mobile-device .report-output-container{flex:0 0 auto;min-height:min(55vh,420px);overflow:visible;margin-bottom:8px}html.admin-role.mobile-device .report-paper{padding:12px;min-height:280px;overflow-x:auto;-webkit-overflow-scrolling:touch;font-size:10px}html.admin-role.mobile-device .report-paper .drs-report,html.admin-role.mobile-device .report-paper .report-table-style{min-width:640px}html.admin-role.mobile-device .report-paper .drs-header{flex-direction:column;gap:10px;min-width:0}html.admin-role.mobile-device .report-paper .drs-meta{text-align:left;min-width:0;width:100%}html.admin-role.mobile-device .report-paper .drs-meta-table{margin-left:0}html.admin-role.mobile-device .report-paper .report-summary-boxes{grid-template-columns:1fr;min-width:0}html.admin-role.mobile-device .report-paper .report-header-section{flex-direction:column;gap:8px}html.admin-role.mobile-device .report-paper .report-meta-text{text-align:left}}.admin-mobile-dash-nav{display:none}html.fse-role [data-role=admin],html.fse-role #view-reports,html.fse-role #view-settings,html.fse-role #view-admin,html.fse-role #view-calendar{display:none!important}html.fse-role #view-dashboard .kpi-grid{grid-template-columns:repeat(2,1fr)}html.fse-role #view-dashboard .dashboard-lists{display:flex;flex-direction:column;gap:12px}.admin-live-summary-bar{display:flex;flex-wrap:wrap;gap:8px 14px;padding:10px 12px;margin-bottom:10px;background:#10b98114;border:1px solid rgba(16,185,129,.25);border-radius:10px;font-size:12px}.admin-live-summary-bar strong{color:var(--color-emerald)}@media(min-width:768px)and (max-width:1024px){.form-grid{grid-template-columns:repeat(2,1fr)}.kpi-grid{grid-template-columns:repeat(3,1fr)}.settings-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1025px){.crm-app{max-width:100vw}.kpi-grid{grid-template-columns:repeat(4,1fr)}.settings-grid{grid-template-columns:repeat(3,1fr)}.brand-text span{display:inline!important}}html,body,.crm-app,html.touch-device body{overflow-x:hidden}.app-header,.app-content,.view-panel,.filter-panel,.customer-master-card,.route-card,.settings-card,.modal-content,.report-controls-panel,.report-output-container{max-width:100%}.mobile-user-menu-btn,.mobile-user-menu{display:none}@media(max-width:767px){:root{--mobile-nav-height: calc(76px + env(safe-area-inset-bottom, 0px)) }body{width:100vw;overflow-x:hidden!important}.app-header{position:sticky;top:0;z-index:950;width:100%;height:62px;min-height:62px;padding:8px;padding-top:max(env(safe-area-inset-top,0px),8px);gap:8px;align-items:center;flex-wrap:nowrap;overflow:visible}.brand{flex:1 1 112px;min-width:0;gap:8px}.brand-logo{width:clamp(34px,9vw,42px);height:clamp(34px,9vw,42px);flex:0 0 auto}.brand-text{min-width:0;max-width:clamp(78px,28vw,152px)}.brand-text h1{font-size:clamp(12px,3.4vw,17px);line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-text span{display:none!important;font-size:clamp(8px,2.4vw,11px);line-height:1.2;letter-spacing:.12em;overflow-wrap:anywhere}.header-actions{flex:1 1 auto;justify-content:flex-end;min-width:0;gap:6px!important}.global-search-wrap{display:block!important;flex:1 1 112px;min-width:92px;max-width:min(44vw,210px)}#global-search-input{width:100%!important;min-width:0;height:44px!important;font-size:16px}#global-search-results{right:0!important;left:auto!important;min-width:min(92vw,320px)!important;max-width:min(92vw,360px)}#user-badge{margin-right:0!important;gap:4px!important}#user-badge .btn-icon,#header-btn-install,#header-btn-sync,#header-btn-quick-add{width:44px;min-width:44px;padding:0!important}#header-btn-sync{width:auto;min-width:58px;padding:0 8px!important;justify-content:center}#header-btn-sync .hide-mobile{display:inline!important;font-size:11px;font-weight:700}#header-btn-install,#header-btn-quick-add{display:none!important}.mobile-user-menu-btn{display:flex;flex:0 0 44px}.mobile-user-menu{position:fixed;top:calc(62px + env(safe-area-inset-top,0px));right:max(8px,env(safe-area-inset-right,0px));width:min(86vw,320px);max-height:calc(100dvh - 92px - var(--mobile-nav-height));overflow-y:auto;padding:8px;border-radius:12px;border:1px solid var(--color-border);background:#141c2ffa;box-shadow:var(--shadow-premium);z-index:1200}.mobile-user-menu.open{display:grid;grid-template-columns:1fr;gap:6px}.mobile-user-menu button{min-height:44px;width:100%;border:1px solid var(--color-border);border-radius:8px;background:#ffffff0a;color:var(--color-text-primary);display:flex;align-items:center;gap:10px;padding:0 12px;font:600 14px var(--font-body);text-align:left}.mobile-user-menu .mobile-menu-logout{background:#ef444429;border-color:#ef44445c;color:#fecaca}.app-content{min-height:0;padding-bottom:var(--mobile-nav-height)!important}.view-panel{padding:12px clamp(10px,3vw,16px);padding-bottom:calc(var(--mobile-nav-height) + 16px)!important;overflow-x:hidden;scroll-padding-bottom:var(--mobile-nav-height)}.section-header.row-layout{flex-direction:column;align-items:stretch;gap:10px}.section-header .btn,#btn-add-customer-full{width:100%;min-height:48px}.app-nav{height:var(--mobile-nav-height)!important;min-height:var(--mobile-nav-height)!important;padding:6px 2px calc(8px + env(safe-area-inset-bottom,0px))!important;align-items:stretch;gap:1px}.nav-btn{min-width:0;min-height:58px;height:auto;padding:3px 1px;gap:3px;font-size:clamp(8px,2vw,10px);line-height:1.05}.nav-btn i{font-size:clamp(15px,4.2vw,19px)}.nav-btn span{white-space:normal;overflow:visible;text-overflow:clip;max-width:100%;line-height:1.05;overflow-wrap:anywhere;text-align:center}.nav-route-badge{top:0;right:12%}.cust-fse-date-bar,.filter-panel,.report-controls-panel{width:100%;overflow:hidden}.cust-fse-date-bar .route-date-controls{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:8px}.cust-fse-date-bar .route-date-input,.route-date-input,.date-input-styled,.select-input-styled,.select-input,.search-box input{width:100%;min-width:0;max-width:100%}.cust-fse-date-quick,#view-customers .filter-selectors{grid-template-columns:repeat(2,minmax(0,1fr))!important}#cust-date-all{grid-column:1 / -1}.filter-panel .search-box,#view-customers .search-box{width:100%}.customers-grid,.route-container,.settings-grid,.dashboard-lists,.kpi-grid{width:100%;min-width:0}.customer-master-card,.route-card,.settings-card,.kpi-card{min-width:0;overflow:hidden}.customer-master-header,.route-card-header,.settings-header{gap:8px;min-width:0}.customer-master-header{flex-wrap:wrap}.customer-master-actions,.modal-footer,.report-action-buttons,.report-action-secondary{display:flex;flex-wrap:wrap}.route-actions-row{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important;width:100%!important}.btn-route-action,.btn-route-log{width:100%!important;min-width:0!important;min-height:44px!important;height:48px!important;font-size:11.5px!important;padding:4px 2px!important;box-sizing:border-box!important;flex:none!important}.customer-master-actions .btn,.customer-master-actions .btn-icon,.route-actions-row .btn,.modal-footer .btn{flex:1 1 44px}.customer-master-details,.route-details-grid,.drs-expense-grid,html.admin-role.mobile-device .report-control-group.active{grid-template-columns:1fr!important}.cust-master-val,.customer-master-row,.route-cust-name,.subtitle,.kpi-label,.kpi-value{overflow-wrap:anywhere;word-break:normal}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px}.kpi-card{padding:10px;gap:8px}.kpi-icon{flex:0 0 32px}.modal-overlay{padding:0}.modal-content{width:100vw!important;max-width:100vw!important;max-height:calc(100dvh - env(safe-area-inset-top,0px))!important;overflow-y:auto}table{max-width:100%}.table-scroll,.history-table-wrapper,.report-preview-wrap,.report-paper,#attendance-view-container{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}#live-tracking-map,#route-map,#route-plan-map,#customer-map,.leaflet-container{max-width:100%;min-height:260px}}@media(max-width:360px){.app-header{gap:5px;padding-left:6px;padding-right:6px}.brand{flex:0 1 82px;gap:5px}.brand-logo{width:32px;height:32px}.brand-text{max-width:45px}.global-search-wrap{max-width:82px;min-width:72px}#user-badge{display:none!important}#header-btn-sync{min-width:52px;padding:0 6px!important}#header-btn-sync .hide-mobile{font-size:10px}.nav-btn{font-size:7.6px}}@media(min-width:390px)and (max-width:767px){.brand-text{max-width:170px}.global-search-wrap{max-width:min(42vw,190px)}}@media(min-width:600px)and (max-width:767px){.filter-selectors,#view-customers .filter-selectors,.cust-fse-date-quick{grid-template-columns:repeat(3,minmax(0,1fr))!important}.customers-grid,.route-container,.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}@media(orientation:landscape)and (max-width:1024px){.app-header{min-height:54px;padding-top:max(env(safe-area-inset-top,0px),6px)}.view-panel{padding-top:10px}.modal-content{max-height:96dvh!important}}#attendance-view-container{width:100%}#attendance-view-container table{width:100%;border-collapse:collapse;min-width:550px}#attendance-view-container th{background:#ffffff0a;font-size:11px;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;padding:10px 8px;text-align:left;position:sticky;top:0;z-index:1}#attendance-view-container td{padding:10px 8px;border-bottom:1px solid var(--color-border);vertical-align:middle}#attendance-view-container tr:hover td{background:#ffffff05}.flex-column-gap{display:flex;flex-direction:column;gap:10px}.width-100{width:100%!important}.date-input-styled:focus{outline:none;border-color:var(--color-teal);box-shadow:0 0 0 2px #2dd4bf26}.report-date-hint{font-size:11px;color:var(--color-teal);font-weight:600;margin-top:2px}#modal-edit-fse .form-group{display:flex;flex-direction:column;gap:4px}#modal-edit-fse label{font-size:12px;color:var(--color-text-secondary);font-weight:500}#modal-edit-fse input,#modal-edit-fse select{background:var(--color-bg-card);border:1px solid var(--color-border);color:var(--color-text-primary);border-radius:8px;padding:8px 12px;font-size:14px;transition:border-color .2s}#modal-edit-fse input:focus,#modal-edit-fse select:focus{outline:none;border-color:var(--color-teal);box-shadow:0 0 0 2px #2dd4bf26}#passcode-lock-overlay{display:none;position:fixed;inset:0;z-index:10000;align-items:center;justify-content:center;padding:24px;overflow-y:auto;background:var(--color-bg-app);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);opacity:1;pointer-events:auto}#passcode-lock-overlay .login-card{position:relative;inset:auto;width:min(100%,420px);max-width:420px;max-height:none;margin:auto;padding:28px;overflow:visible;text-align:left;border:1px solid var(--color-border);border-radius:8px;box-shadow:var(--shadow-premium)}.login-heading{display:flex;align-items:center;gap:14px;margin-bottom:22px}.login-logo{width:48px;height:48px;flex:0 0 48px;object-fit:cover;border-radius:50%;border:1px solid var(--color-border)}.login-heading h2{margin:0;font-family:var(--font-header);font-size:21px;line-height:1.2}.login-heading p{margin:5px 0 0;color:var(--color-text-secondary);font-size:12px;line-height:1.4}.login-status-banner{margin-bottom:14px;padding:10px 12px;border-radius:6px;font-size:12px;line-height:1.4}.login-account-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:20px;padding:4px;background:#ffffff09;border:1px solid var(--color-border);border-radius:7px}.login-account-tabs button{min-height:44px;padding:8px 10px;color:var(--color-text-secondary);background:transparent;border:0;border-radius:5px;font:inherit;font-size:13px;font-weight:600;cursor:pointer}.login-account-tabs button.is-active{color:#052e24;background:var(--color-emerald)}.login-account-panel[hidden]{display:none}.login-account-panel label{display:block;margin:0 0 6px;color:var(--color-text-secondary);font-size:12px;font-weight:500}.login-account-panel input{display:block;width:100%;min-height:46px;margin:0 0 14px;padding:10px 12px;box-sizing:border-box;color:var(--color-text-primary);background:#ffffff08;border:1px solid var(--color-border);border-radius:7px;font-size:16px}.login-account-panel input:focus{border-color:var(--color-emerald);box-shadow:0 0 0 3px #10b98129;outline:none}.login-submit{width:100%;min-height:46px;justify-content:center}.login-divider{display:flex;align-items:center;gap:12px;margin:18px 0;color:var(--color-text-secondary);font-size:11px;text-transform:uppercase}.login-divider:before,.login-divider:after{content:"";height:1px;flex:1;background:var(--color-border)}#login-passcode-input:focus{border-color:var(--color-emerald)!important;box-shadow:0 0 0 3px #10b98133!important;outline:none}#login-passcode-error{transition:color .2s;min-height:20px}.login-error{margin-top:14px;text-align:center;font-size:12px;font-weight:600;line-height:1.4}@media(max-width:480px){#passcode-lock-overlay{align-items:flex-start!important;padding:max(12px,env(safe-area-inset-top,0px)) 12px max(12px,env(safe-area-inset-bottom,0px))}#passcode-lock-overlay .login-card{position:relative!important;width:100%!important;max-width:420px!important;max-height:none!important;margin:auto!important;padding:20px!important;border-radius:8px!important}.login-heading{margin-bottom:18px}.login-heading h2{font-size:19px}}*:focus-visible{outline:2px solid var(--color-teal);outline-offset:2px}button:focus-visible,a:focus-visible{outline:2px solid var(--color-teal);outline-offset:3px;border-radius:4px}input.validation-error{border-color:var(--color-red)!important;box-shadow:0 0 0 2px #f8717133!important}.global-search-item{padding:10px 12px;cursor:pointer;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:center}.global-search-item:hover{background:#10b98114}.admin-tab-btn.active{background:var(--color-emerald)!important;color:#fff!important;border-color:var(--color-emerald)!important}.kpi-card.admin-editable-kpi{cursor:pointer;position:relative}.kpi-card.admin-editable-kpi:after{content:"\270e";position:absolute;top:8px;right:8px;font-size:11px;color:var(--color-emerald);opacity:.85}.kpi-card.admin-editable-kpi:hover{border-color:#10b98173;box-shadow:0 0 0 1px #10b98133}.emp-photo-upload-wrap{margin-bottom:12px}.emp-photo-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.emp-photo-preview,.emp-photo-placeholder,.emp-avatar{width:64px;height:64px;border-radius:50%;object-fit:cover;flex-shrink:0}.emp-photo-placeholder,.emp-avatar.emp-avatar-fallback{display:flex;align-items:center;justify-content:center;background:#ffffff0f;border:2px solid var(--color-border);color:var(--color-text-secondary);font-size:24px}.emp-photo-actions{display:flex;flex-direction:column;gap:6px;flex:1;min-width:160px}.emp-avatar-sm{width:40px;height:40px;font-size:16px}.emp-avatar-md{width:48px;height:48px;font-size:18px}.emp-avatar-lg{width:56px;height:56px;font-size:20px}.emp-avatar-ring{border:2px solid rgba(16,185,129,.45);box-shadow:0 2px 10px #00000040}.header-user-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;border:2px solid rgba(16,185,129,.35)}.emp-card-with-photo{display:flex;align-items:flex-start;gap:12px}.pwa-install-banner{position:fixed;left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 64px);z-index:10001;padding:0 10px;pointer-events:none;animation:pwa-slide-up .35s ease-out}@keyframes pwa-slide-up{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.pwa-install-inner{pointer-events:auto;display:flex;align-items:center;gap:10px;background:linear-gradient(135deg,#1a2035,#0f172a);border:1px solid rgba(16,185,129,.35);border-radius:14px;padding:12px 14px;box-shadow:0 8px 32px #00000073;max-width:520px;margin:0 auto}.pwa-install-icon{width:44px;height:44px;border-radius:10px;flex-shrink:0;object-fit:cover}.pwa-install-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--color-text-secondary);line-height:1.35}.pwa-install-text strong{font-size:14px;color:var(--color-text-primary)}.pwa-install-actions{display:flex;flex-direction:column;gap:6px;flex-shrink:0}.pwa-install-actions .btn-sm{min-height:36px;padding:0 12px;font-size:12px;white-space:nowrap}@media(display-mode:standalone){.pwa-install-banner{display:none!important}}@media(min-width:768px){.pwa-install-banner{bottom:16px}}.pwa-install-modal{position:fixed;inset:0;z-index:10050;display:flex;align-items:center;justify-content:center;padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));background:#000000b8;backdrop-filter:blur(6px);animation:pwa-fade-in .25s ease-out}@keyframes pwa-fade-in{0%{opacity:0}to{opacity:1}}body.pwa-modal-open{overflow:hidden}.pwa-modal-card{position:relative;width:100%;max-width:400px;background:linear-gradient(160deg,#1a2035,#0f172a);border:1px solid rgba(16,185,129,.4);border-radius:20px;padding:28px 22px 22px;box-shadow:0 20px 60px #0000008c;text-align:center;animation:pwa-slide-up .35s ease-out}.pwa-modal-close{position:absolute;top:12px;right:12px;width:36px;height:36px;border:none;border-radius:50%;background:#ffffff14;color:var(--color-text-secondary);font-size:18px;cursor:pointer;line-height:1}.pwa-modal-icon{width:72px;height:72px;border-radius:16px;object-fit:cover;margin:0 auto 14px;box-shadow:0 4px 20px #10b98140}.pwa-modal-card h2{font-size:22px;font-weight:700;color:var(--color-text-primary);margin:0 0 6px}.pwa-modal-sub{font-size:13px;color:var(--color-text-secondary);margin:0 0 18px;line-height:1.4}.pwa-modal-lead{font-size:14px;color:var(--color-text-secondary);text-align:left;margin:0 0 16px;line-height:1.5}.pwa-steps{text-align:left;margin:0 0 14px;padding-left:20px;font-size:14px;color:var(--color-text-secondary);line-height:1.55}.pwa-steps li{margin-bottom:10px}.pwa-steps li strong{color:var(--color-emerald)}.pwa-steps-highlight{background:#10b9811f;border-radius:10px;padding:12px 12px 12px 28px;transition:background .3s}.pwa-step-icon{display:inline-block;font-size:18px;vertical-align:middle}.pwa-modal-hint{font-size:12px;color:var(--color-text-muted, #94a3b8);text-align:left;margin:0 0 16px;line-height:1.4;padding:10px 12px;background:#0003;border-radius:8px}.pwa-modal-actions{display:flex;flex-direction:column;gap:10px;margin-top:8px}.pwa-modal-actions .btn{min-height:44px;font-size:15px;font-weight:600}@media(display-mode:standalone){.pwa-install-modal,#header-btn-install{display:none!important}}#screenshot-shield{display:none;position:fixed;inset:0;z-index:999999;background:#000;pointer-events:none}#screenshot-shield.active{display:block;pointer-events:auto}html.admin-role #screenshot-shield,body.admin-role #screenshot-shield,.admin-role #screenshot-shield{display:none!important;pointer-events:none!important;visibility:hidden!important}body.screenshot-protected{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}body.screenshot-protected input,body.screenshot-protected textarea,body.screenshot-protected select,body.screenshot-protected [contenteditable=true]{-webkit-user-select:text;user-select:text}.fse-attendance-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.att-bar-status{font-size:12px;color:var(--color-text-secondary);white-space:nowrap}.att-selfie-modal .modal-content{max-width:420px}.att-selfie-body{padding:16px 20px}.att-camera-wrap{position:relative;width:100%;aspect-ratio:4/3;background:#111;border-radius:12px;overflow:hidden;border:1px solid var(--color-border)}.att-camera-wrap video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.att-camera-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--color-text-secondary);gap:8px;font-size:13px}.att-step-status{text-align:center;font-weight:600;margin:12px 0 4px;color:var(--color-gold)}.att-selfie-note{text-align:center;font-size:11px}.att-kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;margin:16px 0}.att-kpi-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:10px;padding:12px 10px;text-align:center;display:flex;flex-direction:column;gap:4px}.att-kpi-val{font-size:20px;font-weight:700;color:var(--color-text-primary)}.att-kpi-lbl{font-size:10px;color:var(--color-text-secondary);text-transform:uppercase}.att-section-title{font-weight:700;font-size:14px;margin:20px 0 10px;color:var(--color-text-primary)}.att-alerts-box{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.att-alert-row{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#f59e0b14;border:1px solid rgba(245,158,11,.25);border-radius:8px;font-size:12px}.att-alert-danger,.att-alert-fake_gps{background:#f8717114;border-color:#f8717140}.att-table-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:10px}.att-table{width:100%;border-collapse:collapse;min-width:720px;font-size:12px}.att-table th{text-align:left;padding:10px 8px;background:#ffffff0a;font-size:10px;text-transform:uppercase;color:var(--color-text-secondary)}.att-table td{padding:10px 8px;border-top:1px solid var(--color-border);vertical-align:middle}.att-thumb{width:40px;height:40px;border-radius:6px;object-fit:cover}.att-status-pill{padding:2px 10px;border-radius:10px;font-weight:700;font-size:11px;border:1px solid}.att-flag{font-size:9px;padding:1px 6px;border-radius:6px;margin-left:4px}.att-flag-warn{background:#f59e0b33;color:#f59e0b}.att-flag-danger{background:#f8717133;color:#f87171}.att-live-map{height:280px;border-radius:12px;border:1px solid var(--color-border);margin-bottom:12px}.att-live-list{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.att-live-row{display:flex;align-items:center;gap:10px;font-size:12px;padding:6px 0}.att-live-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.att-live-state{text-transform:capitalize;font-weight:600}.att-admin-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}.att-cal-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.att-cal-month{font-weight:700;min-width:140px;text-align:center}.att-cal-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:11px;color:var(--color-text-secondary);margin-bottom:10px}.att-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.att-cal-day{aspect-ratio:1;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-card);color:var(--color-text-primary);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-bottom:3px solid var(--att-color, #10b981)}.att-cal-num{font-size:12px;font-weight:600}.att-cal-code{font-size:10px;font-weight:700;color:var(--att-color)}.att-cal-empty{aspect-ratio:1}.att-day-detail{margin-top:16px;padding:14px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-card)}.att-day-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}.att-day-photo{width:100%;max-height:200px;object-fit:cover;border-radius:8px;border:1px solid var(--color-border)}.att-no-photo{display:flex;align-items:center;justify-content:center;min-height:120px;color:var(--color-text-secondary);font-size:12px}.att-day-meta{font-size:12px;line-height:1.8;color:var(--color-text-secondary);padding-left:18px}.att-override-select{background:var(--color-bg-card);border:1px solid var(--color-border);color:var(--color-text-primary);border-radius:6px;padding:3px 6px;font-size:11px}button{transition:transform .15s ease,filter .15s ease,background .15s ease;cursor:pointer}button:active{transform:scale(.98)}.card{transition:transform .2s ease,box-shadow .2s ease}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.app-header{padding-top:max(env(safe-area-inset-top,0px),0px);padding-left:max(env(safe-area-inset-left,0px),16px);padding-right:max(env(safe-area-inset-right,0px),16px);height:calc(64px + max(env(safe-area-inset-top,0px),0px))}.bottom-nav,.mobile-action-bar,.modal-footer{padding-bottom:max(env(safe-area-inset-bottom,0px),12px);padding-left:max(env(safe-area-inset-left,0px),16px);padding-right:max(env(safe-area-inset-right,0px),16px)}@media(max-width:768px){input[type=text],input[type=password],input[type=number],input[type=search],input[type=tel],input[type=email],input[type=date],input[type=time],select,textarea{font-size:16px!important}button,.btn,.btn-icon,.nav-btn,.mobile-menu-item{min-height:44px;min-width:44px}.app-content,.route-container,.customer-list-container,.scroll-y,.modal-content{-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}.app-header,.nav-btn,.brand,.mobile-user-menu{user-select:none;-webkit-user-select:none}}@media(prefers-reduced-motion:reduce){*,:before,:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
