:root{--nav:#071521;--nav2:#102a3d;--blue:#23a7e8;--blue2:#0d86c8;--ink:#13212c;--muted:#637483;--bg:#edf3f7;--card:#fff;--line:#d8e2e9;--danger:#b42318;--shadow:0 12px 30px rgba(16,42,61,.10)}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--ink);min-height:100vh}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.topbar{height:72px;background:linear-gradient(135deg,var(--nav),var(--nav2));display:flex;align-items:center;justify-content:space-between;padding:10px 18px;position:sticky;top:0;z-index:40;box-shadow:0 2px 12px #0003}.brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none}.brand-mark{display:grid;place-items:center;background:linear-gradient(145deg,#31b8f5,#0b83c4);color:#fff;font-weight:950;font-style:italic;letter-spacing:-2px;border-radius:10px;width:66px;height:44px;font-size:1.55rem;box-shadow:inset 0 0 0 2px #ffffff40}.brand-mark.large{width:92px;height:62px;font-size:2.15rem}.brand-copy{display:flex;flex-direction:column;line-height:1.1}.brand-copy b{font-size:1rem}.brand-copy small{font-size:.7rem;color:#bcd2df;margin-top:4px;text-transform:uppercase;letter-spacing:.08em}.icon-button{width:42px;height:42px;border-radius:12px;border:1px solid #ffffff30;background:#ffffff12;color:#fff;font-size:1.25rem;cursor:pointer}.app-shell{width:min(1180px,100%);margin:auto;padding:18px 16px 100px}.action-hero,.page-hero{background:linear-gradient(135deg,#0b2334,#123a55);color:#fff;border-radius:22px;padding:22px;box-shadow:var(--shadow);margin-bottom:16px}.action-hero{display:grid;grid-template-columns:1fr auto;align-items:center;gap:18px}.action-hero h1,.page-hero h1{font-size:clamp(1.8rem,4vw,2.6rem);margin:3px 0 4px}.action-hero p,.page-hero p{margin:0;color:#c9dce8}.eyebrow{font-size:.72rem!important;font-weight:900;letter-spacing:.14em;color:#76c8ef!important;margin:0!important}.hero-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.voice-primary,.primary,.small-primary,.route-launch,.date-picker button,.search-bar button{border:0;background:linear-gradient(135deg,var(--blue),#5bc9f5);color:#062131;font-weight:900;border-radius:14px;padding:14px 18px;cursor:pointer;box-shadow:0 8px 18px #0087c733}.secondary{border:1px solid #ffffff38;background:#ffffff12;color:#fff;font-weight:800;border-radius:14px;padding:14px 18px;cursor:pointer}.mic-dot{display:inline-grid;place-items:center;background:#fff;color:#e24c4c;width:27px;height:27px;border-radius:50%;margin-right:8px;font-size:.7rem}.voice-status{grid-column:1/-1;min-height:0;color:#fff;font-weight:700}.calendar-card,.agenda-card,.route-card{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:16px;box-shadow:var(--shadow);margin-bottom:16px}.month-head{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;margin-bottom:10px}.month-head>div{text-align:center}.month-head p{margin:0;color:var(--muted);font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em}.month-head h2{margin:3px 0;font-size:1.55rem}.month-arrow{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:#edf6fb;color:var(--nav);font-size:2rem;text-decoration:none}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.weekdays b{text-align:center;padding:8px 2px;color:var(--muted);font-size:.76rem}.day{position:relative;min-height:118px;border:1px solid var(--line);padding:7px;text-decoration:none;color:var(--ink);overflow:hidden;background:#fff}.day:nth-child(7n+1){border-radius:10px 0 0 10px}.day:nth-child(7n){border-radius:0 10px 10px 0}.day.muted{background:#f7f9fb;color:#a8b2bb}.day.today .daynum{background:var(--nav);color:#fff}.day.selected{background:#eaf7fd;box-shadow:inset 0 0 0 3px var(--blue);z-index:2}.day.light:after,.day.medium:after,.day.busy:after{content:"";position:absolute;top:7px;right:7px;width:7px;height:7px;border-radius:50%}.day.light:after{background:#f4b740}.day.medium:after{background:#f28b30}.day.busy:after{background:#df4b45}.daynum{display:inline-grid;place-items:center;width:27px;height:27px;border-radius:9px;font-weight:900}.day-times{display:flex;flex-direction:column;gap:4px;margin-top:5px}.day-times span{font-size:.68rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#eef6fa;border-radius:6px;padding:4px}.day-times span b{color:#087db7}.day-times small{font-size:.68rem;font-weight:800;color:var(--muted)}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:3px 2px 12px}.section-head h2{margin:2px 0;font-size:1.28rem}.section-head span{color:var(--muted);font-size:.85rem}.small-primary{padding:11px 15px}.agenda-list{border-top:1px solid var(--line)}.appt-link{width:100%;display:grid;grid-template-columns:90px 1fr 22px;align-items:center;gap:12px;text-align:left;background:#fff;border:0;border-bottom:1px solid var(--line);padding:14px 6px;cursor:pointer}.time-pill{background:#e9f6fc;color:#087aad;border-radius:10px;padding:9px 7px;font-weight:900;text-align:center;font-size:.85rem}.appt-copy{display:flex;flex-direction:column;min-width:0}.appt-copy b{font-size:1rem}.appt-copy small{color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chevron{font-size:1.7rem;color:#8da0ad}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:45;background:#071521f7;backdrop-filter:blur(10px);display:grid;grid-template-columns:repeat(4,1fr);padding:7px max(8px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom));border-top:1px solid #ffffff18}.bottom-nav a,.bottom-nav button{display:flex;flex-direction:column;align-items:center;gap:2px;color:#b7c8d2;background:none;border:0;text-decoration:none;padding:6px 4px;font-size:.72rem;cursor:pointer}.bottom-nav span{font-size:1.35rem;line-height:1}.bottom-nav .active{color:#54c5f5}.bottom-nav b{font-weight:800}.modal{position:fixed;inset:0;background:#04101bba;z-index:70;display:flex;align-items:center;justify-content:center;padding:14px}.hidden{display:none!important}.modal-sheet{background:#fff;border-radius:22px;padding:22px;width:min(580px,100%);max-height:92vh;overflow:auto;position:relative;box-shadow:0 25px 60px #0007}.modal-close{position:absolute;right:12px;top:10px;border:0;background:#edf2f5;width:38px;height:38px;border-radius:50%;font-size:1.6rem;cursor:pointer}.modal-sheet h2{margin:0 48px 14px 0}.modal-sheet label{display:block;font-weight:800;margin:12px 0}.modal-sheet input,.modal-sheet textarea{width:100%;padding:13px;border:1px solid var(--line);border-radius:12px;margin-top:6px;background:#fbfdfe}.modal-sheet textarea{min-height:90px;resize:vertical}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.modal-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:16px}.modal-actions button,.modal-actions a{padding:12px 14px;border-radius:12px;border:0;text-decoration:none;font-weight:850;cursor:pointer}.primary{color:#062131}.danger{background:#fee7e5;color:var(--danger)}.neutral{background:#edf2f5;color:var(--ink)}.call,.directions{background:#e8f5fc;color:#066e9e}.warning{background:#fff7df;border:1px solid #efc45b;padding:13px;border-radius:13px;margin-top:12px}.warning p{line-height:1.5}.detail-head{padding-right:42px}.detail-time{font-size:.78rem;font-weight:900;color:#087cad;text-transform:uppercase;letter-spacing:.08em}.detail-head h2{margin:5px 0}.detail-grid{display:grid;gap:10px;margin-top:15px}.detail-row{background:#f5f8fa;border-radius:12px;padding:12px}.detail-row b{display:block;font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px}.page-hero{padding:20px}.search-bar,.date-picker{display:flex;gap:9px;background:#fff;border:1px solid var(--line);border-radius:17px;padding:10px;box-shadow:var(--shadow);margin-bottom:16px}.search-bar span{align-self:center;font-size:1.4rem;color:var(--muted)}.search-bar input,.date-picker input{flex:1;min-width:0;border:0;background:#f3f7f9;border-radius:11px;padding:12px}.customer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:12px}.customer-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:var(--shadow);display:grid;grid-template-columns:48px 1fr;gap:12px}.customer-avatar{width:48px;height:48px;border-radius:14px;background:#dff3fc;color:#0879ac;display:grid;place-items:center;font-size:1.25rem;font-weight:900}.customer-info{min-width:0}.customer-info h2{font-size:1.1rem;margin:2px 0}.customer-info p{margin:0 0 8px;color:var(--muted);font-size:.82rem}.customer-info a,.customer-info span{display:block;color:var(--ink);text-decoration:none;margin-top:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-actions{grid-column:1/-1;display:flex;gap:8px}.card-actions a{flex:1;text-align:center;text-decoration:none;background:#edf6fb;color:#0875a6;border-radius:11px;padding:10px;font-weight:800}.date-picker{align-items:end}.date-picker label{display:flex;flex-direction:column;gap:5px;font-size:.78rem;font-weight:900;flex:1}.route-list{border-top:1px solid var(--line)}.route-stop{display:grid;grid-template-columns:42px 1fr;gap:12px;padding:16px 2px;border-bottom:1px solid var(--line)}.stop-number{width:36px;height:36px;border-radius:50%;background:var(--nav);color:#fff;display:grid;place-items:center;font-weight:900}.route-time{color:#0879ad;font-weight:900}.route-stop h3{margin:3px 0}.route-stop p,.route-stop span{margin:0;color:var(--muted)}.route-stop a{display:inline-block;margin-top:8px;color:#0879ad;font-weight:800}.route-launch{display:block;text-align:center;text-decoration:none;margin-top:16px}.empty-state{text-align:center;padding:30px 15px;color:var(--muted)}.empty-state span{font-size:2.2rem}.empty-state h3{color:var(--ink);margin:8px 0 3px}.empty-state p{margin:0}.empty-state.wide{grid-column:1/-1;background:#fff;border-radius:18px;border:1px solid var(--line)}.login-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at top,#164866,var(--nav) 58%)}.login-card{background:#fff;border-radius:24px;padding:26px;width:min(430px,100%);box-shadow:0 30px 70px #0008}.login-brand{display:flex;align-items:center;gap:15px;margin-bottom:22px}.login-brand h1{font-size:1.55rem;margin:0}.login-brand p{margin:5px 0 0;color:var(--muted);font-size:.83rem}.login-card label{display:block;font-weight:900}.login-card input{width:100%;padding:15px;margin:8px 0 15px;border:1px solid var(--line);border-radius:13px;font-size:1.25rem}.full{width:100%;padding:15px}.alert.error{background:#fee7e5;color:var(--danger);padding:11px;border-radius:11px;margin-bottom:14px}
@media(min-width:900px){.bottom-nav{position:sticky;top:72px;grid-template-columns:repeat(4,130px);justify-content:center;padding:4px;background:#0b2030}.bottom-nav a,.bottom-nav button{flex-direction:row;justify-content:center;gap:7px}.bottom-nav span{font-size:1rem}.app-shell{padding-bottom:32px}}
@media(max-width:700px){.topbar{height:64px;padding:8px 12px}.brand-mark{width:57px;height:39px;font-size:1.35rem}.brand-copy small{display:none}.app-shell{padding:10px 8px 92px}.action-hero{grid-template-columns:1fr;padding:17px}.action-hero h1{font-size:1.85rem}.hero-actions{justify-content:stretch}.hero-actions button{flex:1}.calendar-card,.agenda-card,.route-card{padding:9px;border-radius:17px}.month-head h2{font-size:1.3rem}.day{min-height:76px;padding:3px}.daynum{width:23px;height:23px;font-size:.8rem}.day-times{gap:2px;margin-top:2px}.day-times span{font-size:.56rem;padding:2px}.day-times span b{display:block}.weekdays b{font-size:.64rem;padding:6px 1px}.appt-link{grid-template-columns:72px 1fr 16px;gap:8px;padding:12px 3px}.time-pill{font-size:.74rem;padding:8px 4px}.appt-copy small{font-size:.75rem}.section-head{align-items:flex-start}.form-grid{grid-template-columns:1fr}.search-bar{display:grid;grid-template-columns:28px 1fr}.search-bar button{grid-column:1/-1}.date-picker{display:grid}.date-picker button{width:100%}.modal{align-items:flex-end;padding:0}.modal-sheet{border-radius:22px 22px 0 0;padding:21px 16px calc(18px + env(safe-area-inset-bottom));max-height:94vh}.customer-grid{grid-template-columns:1fr}}
.print-toolbar{display:flex;justify-content:flex-end;gap:9px;margin:0 0 14px}.print-toolbar button{border:1px solid var(--line);background:#fff;color:var(--ink);padding:11px 14px;border-radius:12px;font-weight:850;cursor:pointer;box-shadow:var(--shadow)}.print-heading{display:none}.customer-field{position:relative}.customer-matches{position:absolute;left:0;right:0;top:100%;z-index:90;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 15px 35px #0003;overflow:hidden}.customer-matches button{display:flex;flex-direction:column;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:#fff;padding:11px;cursor:pointer}.customer-matches button:last-child{border-bottom:0}.customer-matches button:hover{background:#edf7fc}.customer-matches small{color:var(--muted);margin-top:3px}.warning hr{border:0;border-top:1px solid #ead69c}.warning-help{font-size:.85rem;color:#6e5b27}.detail-row a{color:#0879ad;text-decoration:none}.work-sheet{display:none}.route-notes{margin-top:8px!important;color:var(--ink)!important}.write-line{border-bottom:1px solid #555;height:24px}
@media(max-width:700px){.print-toolbar{display:grid;grid-template-columns:1fr 1fr}.print-toolbar button{padding:12px 7px;font-size:.82rem}}
.brand-logo{display:block;width:58px;height:58px;object-fit:contain;border-radius:10px}.brand-copy{display:none}.login-brand{flex-direction:column;text-align:center}.login-brand-logo{display:block;width:min(250px,80%);height:auto;margin:0 auto;border-radius:20px}.login-brand p{margin:0!important}
@media print{
  @page{margin:.45in}*{box-shadow:none!important}html,body{background:#fff!important;color:#000!important}.topbar,.bottom-nav,.no-print,.modal-close{display:none!important}.app-shell{width:100%!important;max-width:none!important;padding:0!important;margin:0!important}.print-heading{display:block;text-align:center;margin:0 0 14px}.print-heading h1{margin:0;font-size:20pt}.print-heading p{margin:4px 0;font-size:12pt}.calendar-card,.agenda-card,.route-card,.customer-card{border:0!important;padding:0!important;margin:0!important}.calendar-card .month-head{display:none}.day{min-height:1.35in!important;border:1px solid #777!important;background:#fff!important;color:#000!important;padding:5px!important;page-break-inside:avoid}.day.muted{color:#999!important}.day.selected{box-shadow:none!important}.day.today .daynum{background:none!important;color:#000!important;border:1px solid #000}.day-times span{background:none!important;padding:1px!important;font-size:7.5pt!important;white-space:normal!important}.day-times span b{color:#000!important}.weekdays b{color:#000!important}.appt-link{display:grid!important;grid-template-columns:1.1in 1fr!important;border-bottom:1px solid #999!important;padding:10px 0!important;break-inside:avoid}.time-pill{background:none!important;color:#000!important;border:1px solid #777}.appt-copy small{white-space:normal!important;color:#333!important}.route-stop{break-inside:avoid}.route-stop a{display:none!important}.customer-grid{display:block!important}.customer-card{display:grid!important;grid-template-columns:42px 1fr!important;border-bottom:1px solid #aaa!important;border-radius:0!important;padding:10px 0!important;break-inside:avoid}.customer-avatar{background:none!important;color:#000!important;border:1px solid #777}.modal{display:none!important}body[data-print-target="month"] .print-day{display:none!important}body[data-print-target="day"] .print-month{display:none!important}body[data-print-target="month"] .calendar-card{display:block!important}body[data-print-target="day"] .agenda-card{display:block!important}body.print-appointment .app-shell,body.print-appointment .topbar,body.print-appointment .bottom-nav{display:none!important}body.print-appointment .modal{display:block!important;position:static!important;background:#fff!important;padding:0!important}body.print-appointment .modal-sheet{display:block!important;width:100%!important;max-height:none!important;overflow:visible!important;padding:0!important;border-radius:0!important}body.print-appointment .appointment-print{display:block!important}.appointment-print .work-sheet{display:block!important;margin-top:24px}.detail-grid{grid-template-columns:1fr 1fr}.detail-row{background:#fff!important;border:1px solid #999}.modal-actions{display:none!important}
}
.customer-view-toggle{border:1px solid var(--line);background:#fff;color:var(--ink);padding:11px 14px;border-radius:12px;font-weight:850;text-decoration:none;box-shadow:var(--shadow)}.card-actions button{flex:1;text-align:center;border:0;background:#edf6fb;color:#0875a6;border-radius:11px;padding:10px;font-weight:800;cursor:pointer}.customer-manage-modal{position:fixed;inset:0;z-index:200;background:#0008;display:grid;place-items:center;padding:18px}.customer-manage-modal.hidden,.customer-manage-sheet .hidden{display:none!important}.customer-manage-sheet{position:relative;width:min(520px,100%);background:#fff;border-radius:20px;padding:24px;box-shadow:0 24px 70px #0006}.customer-manage-close{position:absolute;right:14px;top:10px;border:0;background:transparent;font-size:2rem;cursor:pointer}.customer-manage-sheet h2{margin:0 36px 6px 0}.customer-manage-sheet>p{color:var(--muted);overflow-wrap:anywhere}.customer-manage-sheet .full{margin-top:10px;border:0;border-radius:12px;padding:13px;font-weight:850;cursor:pointer}.customer-manage-sheet .primary{background:#dff3fc}.customer-manage-sheet .danger{background:#fee7e5;color:var(--danger)}.customer-manage-sheet .danger:disabled{opacity:.45;cursor:not-allowed}.delete-warning{border:1px solid #e1a5a0;background:#fff2f1;border-radius:13px;padding:13px;margin:14px 0}.delete-warning p{line-height:1.45;margin-bottom:0}.customer-manage-sheet input{width:100%;padding:13px;border:1px solid var(--line);border-radius:11px;font-size:1rem;margin-top:8px}
