:root{--navy: #03045e;--deep: #1b54a6;--blue: #0077b6;--aqua: #00b4d8;--mist: #e7f7fb;--paper: #f8f9fa;--ink: #1a1a2e;--muted: #5b6b7a;--line: rgba(0, 119, 182, .16);--white: #ffffff;--gold: #f4a723;--good: #00b4d8;--warn: #f4a723;--bad: #8b0000;--shadow: 0 4px 20px rgba(0, 0, 0, .08);font-family:Montserrat,system-ui,sans-serif;color:var(--ink);background:var(--paper);line-height:1.45}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;max-width:100%;overflow-x:hidden}body{background:radial-gradient(1200px 500px at 10% -10%,rgba(144,224,239,.45),transparent 55%),radial-gradient(900px 420px at 100% 0%,rgba(0,180,216,.16),transparent 50%),var(--paper)}.shell{min-height:100%;max-width:100%;overflow-x:hidden}.site-topbar{background:#1b54a6;color:#fff;text-align:center;font-size:.8rem;font-weight:600;letter-spacing:.04em;padding:.45rem 1rem;padding-top:max(.45rem,env(safe-area-inset-top))}button,input,select,textarea{font:inherit}button{cursor:pointer}.app{width:100%;max-width:none;margin:0;padding:20px max(16px,env(safe-area-inset-right)) max(40px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.brand{display:flex;align-items:center;gap:14px}.brand h1{margin:0;font-family:Poppins,sans-serif;font-size:1.35rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--navy)}.brand p{margin:2px 0 0;color:var(--muted);font-size:.92rem}.logo{width:64px;height:64px;object-fit:contain;flex:none}.tabs{display:flex;background:#ffffffb8;border:1px solid var(--line);border-radius:999px;padding:4px;gap:4px}.tabs button{border:0;background:transparent;color:var(--muted);padding:8px 18px;border-radius:999px;font-weight:600}.tabs button.active{background:var(--navy);color:#fff}.tabs button.lock-tab{padding-left:14px;padding-right:14px}.lock-form{display:grid;gap:12px;max-width:320px}.login-form{max-width:none;margin-top:28px}.login-app{display:grid;place-items:start center;padding-top:48px}.login-card{width:min(460px,100%);background:var(--white);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);padding:24px}.login-copy{margin:16px 0 18px}.login-title{margin:18px 0 0;color:var(--navy);font-size:1.25rem}.login-mode-links{display:grid;gap:8px;margin-top:16px}.account-bar{display:flex;align-items:center;gap:12px}.customer-portal-card h2{margin:0 0 6px;color:var(--navy);font-family:Poppins,sans-serif}.portal-tabs{display:flex;flex-wrap:wrap;gap:8px 16px;border-bottom:1px solid var(--line);margin:4px 0 16px}.portal-tabs button{border:0;background:transparent;color:var(--muted);padding:8px 0 10px;font-weight:700;box-shadow:inset 0 -2px 0 transparent}.portal-tabs button.active{color:var(--navy);box-shadow:inset 0 -2px 0 var(--navy)}.portal-block h3{margin:18px 0 6px;color:var(--navy);font-size:.95rem}.portal-plan-name{margin:0 0 6px;font-weight:700;color:var(--ink)}.portal-notice{background:var(--mist);border:1px solid var(--line);border-radius:12px;padding:10px 14px;color:var(--deep);font-weight:600;margin:0 0 14px}.portal-error,.portal-alert{color:var(--bad);font-weight:700}.portal-success{color:var(--good, #1f7a4d);font-weight:700}.plan-offer{border:1px solid var(--line);border-radius:16px;padding:14px 16px;margin:12px 0;background:var(--white)}.plan-offer-price{margin:0 0 6px;font-weight:800;color:var(--navy)}.topic-chips{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 12px}.topic-chip{border:1.5px solid var(--line);background:var(--white);border-radius:8px;padding:8px 12px;font-weight:700;font-size:.85rem;color:var(--muted)}.topic-chip.active{border-color:var(--blue, #1d6fd8);background:var(--mist);color:var(--blue, #1d6fd8)}.house-code{font-size:1.6rem;font-weight:800;letter-spacing:.18em;color:var(--navy);margin:4px 0 8px}.person-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.person-name{margin:0;font-weight:700}.portal-stepper{display:flex;align-items:center;justify-content:center;gap:18px;padding:8px 0 12px}.portal-stepper .primary{width:48px;height:48px;border-radius:24px;font-size:1.4rem;padding:0}.portal-step-value{min-width:88px;text-align:center}.portal-step-value strong{display:block;font-size:2.2rem;color:var(--navy);line-height:1}.portal-step-value span{color:var(--muted);font-size:.75rem;font-weight:700;text-transform:uppercase}.portal-picks,.portal-cities{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.portal-picks button,.portal-cities button{border:1.5px solid var(--line);background:#fff;color:var(--muted);border-radius:8px;padding:8px 12px;font-weight:800}.portal-picks button.active,.portal-cities button.active{border-color:var(--navy);background:var(--navy);color:#fff}.portal-link-btn{display:inline-flex;align-items:center;text-decoration:none}.portal-messages-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.portal-message.unread{box-shadow:inset 3px 0 0 var(--blue)}.portal-message{cursor:pointer}.portal-message-line{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.portal-message-line strong{flex:1}.portal-message-line .meta{white-space:nowrap}.portal-message-body{margin:10px 0 16px;white-space:pre-wrap;color:var(--ink);font-size:.95rem;line-height:1.5}.portal-order{cursor:pointer}.portal-order-top{display:flex;justify-content:space-between;gap:12px}.lock-form label{display:flex;flex-direction:column;gap:6px;font-size:.82rem;font-weight:600;color:var(--deep)}.settings-panel .form-grid{margin-top:8px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.stat{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:16px 18px;box-shadow:var(--shadow)}.stat span{display:block;color:var(--muted);font-size:.8rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.stat strong{display:block;margin-top:6px;font-size:1.7rem;font-weight:700;color:var(--navy)}.stat-split{display:flex;flex-wrap:nowrap;justify-content:space-between;gap:8px;margin-top:8px}.stat-split span{letter-spacing:.02em;text-transform:none;color:var(--deep);font-size:.82rem}.legend{display:flex;flex-wrap:wrap;gap:16px;margin:0 0 12px;font-size:.8rem;font-weight:700}.legend-dot{display:inline-flex;align-items:center;gap:6px;color:var(--muted)}.failed-month-note{margin:0 0 12px;padding:10px 12px;border-radius:12px;background:#fdecea;border:1px solid #d64545;color:#b42318;font-size:.88rem;font-weight:700}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex:none}.dot.paid{background:#22a45a}.dot.delivered{background:#d64545}.stop-label{display:inline-flex;align-items:center;gap:4px;flex:1;min-width:0;overflow:hidden}.stop-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stop-equip{flex:none;display:inline-flex;align-items:center;justify-content:center;font-size:.62rem;font-weight:700;letter-spacing:.03em;padding:1px 5px;border-radius:5px;background:#03045e1a;color:var(--navy)}.store-emoji{font-size:14px;line-height:1;display:block}.stop-equip.store-equip .store-emoji{font-size:16px}.stat-equip .store-emoji{font-size:15px}.equip-btn .store-emoji{font-size:20px;line-height:1}.stat-equip{display:inline-flex;align-items:center;gap:3px}.stop-equip.store-equip{padding:2px 6px;min-width:24px;min-height:20px}.stop-meta{display:inline-flex;align-items:center;gap:4px;flex:none;margin-left:auto}.stop-meta .unpaid-flag{margin-left:0;min-width:5.75em;justify-content:center}.stop.pickup .stop-equip{background:#d9770647;color:#7c2d12}.name-link .dot{margin-left:6px}.check{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--paper);border-radius:12px;padding:8px 12px;font-size:.88rem;font-weight:700;color:var(--deep);cursor:pointer}.check:has(input:checked){background:#e8f7ee;border-color:#22a45a;color:#1b7a43}.check.delivered:has(input:checked){background:#fdecea;border-color:#d64545;color:#b42318}.check input{width:16px;height:16px;accent-color:#22a45a;margin:0}.check.delivered input{accent-color:#d64545}.row-actions:has(.check.paid input:checked):has(.check.delivered input:checked) .check:has(input:checked){background:#e7f7fb;border-color:#0077b6;color:#0077b6}.row-actions:has(.check.paid input:checked):has(.check.delivered input:checked) .check input{accent-color:#0077b6}.legend .delivery,.delivery,.name-link.delivery,.info-name.delivery,strong.delivery{color:#0077b6}.legend .pickup,.pickup,.name-link.pickup,.info-name.pickup,strong.pickup{color:#d97706}.legend .pickup{font-weight:800}.name-link{display:inline-flex;align-items:center;gap:6px;border:0;background:none;padding:0;font-weight:700;font-size:1rem;text-align:left}.name-link:hover{text-decoration:underline}.name-link.completed{text-decoration:line-through;text-decoration-color:#0077b6}.name-link.pickup.completed{text-decoration-color:#d97706}.name-link.unpaid-delivered,.name-link.completed.unpaid-delivered{color:#b42318;text-decoration:none}.name-link.completed.unpaid-delivered:hover{text-decoration:underline;text-decoration-color:#b42318}.name-link.unpaid-status,.name-link.completed.unpaid-status{color:#6d28d9;text-decoration:none}.name-link.paid-status,.name-link.completed.paid-status{color:#1b7a43;text-decoration:none}.name-link.closed-status,.name-link.completed.closed-status{color:#0077b6;text-decoration:none}.name-link.hold-status,.name-link.completed.hold-status{color:#854d0e;text-decoration:none}.toggle{border:1px solid var(--line);background:var(--paper);color:var(--muted);border-radius:12px;padding:8px 14px;font-weight:700}.toggle.on{background:var(--blue);border-color:var(--blue);color:#fff}.fulfillment-kicker{margin:0 0 4px;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.info-list{display:grid;gap:10px;margin:0 0 16px}.info-list div{display:grid;grid-template-columns:120px 1fr;gap:10px;padding-bottom:8px;border-bottom:1px solid var(--line)}.info-list dt{color:var(--muted);font-size:.8rem;font-weight:700}.info-list dd{margin:0;font-weight:600}.woo-card{background:var(--white);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);padding:20px;margin-bottom:16px}.woo-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.woo-head strong{font-family:Poppins,sans-serif;color:var(--navy)}.woo-head p{margin:4px 0 0}.woo-card .form-grid{margin-top:16px}.woo-message{margin:12px 0 0;color:var(--deep);font-weight:600}button:disabled{opacity:.65;cursor:not-allowed}.calendar-head,.list-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}.sync-line{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:6px}.sync-line .meta{margin:0}.sync-line .ghost{padding:6px 12px}.month-nav{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.calendar-search{width:200px;min-width:140px}.print-menu{position:relative}.print-menu-list{position:absolute;right:0;top:calc(100% + 6px);z-index:12;min-width:15.5rem;width:max-content;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:6px;display:grid}.print-menu-list button{border:0;background:transparent;color:var(--navy);text-align:left;padding:8px 12px;border-radius:10px;font-weight:600;white-space:nowrap}.print-menu-list button:hover{background:var(--mist)}.print-sheet{display:none}.month-nav h2,.list-head h2{margin:0;font-size:1.25rem;font-family:Poppins,sans-serif;color:var(--navy)}.icon-btn,.primary,.ghost,.danger{border-radius:12px;border:1px solid transparent;padding:8px 14px;font-weight:600}.icon-btn,.ghost{background:var(--mist);color:var(--deep);border-color:var(--line)}.primary{background:var(--blue);color:#fff}.primary:hover{background:#005f92}.danger{background:#fdecea;color:var(--bad);border-color:#f3c8c3}.weekdays,.grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.weekdays span{text-align:center;color:var(--muted);font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding-bottom:6px}.wd-short,.day-count{display:none}.day-cell{position:relative;min-height:128px;min-width:0}.day-cell:hover,.day-cell:focus-within{z-index:8}.day{width:100%;height:100%;min-height:128px;border:1px solid var(--line);border-radius:16px;padding:8px;background:#fbfdfe;text-align:left;display:flex;flex-direction:column;gap:6px;overflow:hidden}.day.muted{opacity:.45}.day-cell.today .day{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue);background:#eef9fc}.day-cell.selected .day{border-color:var(--navy)}.day-num{font-weight:700;color:var(--navy);font-size:.9rem}.stop{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;min-width:0;border:3px solid transparent;border-radius:9px;padding:4px 6px;font-size:.75rem;font-weight:600}.stop.delivery{background:#d7eef8;color:#0077b6;border-color:#0077b6}.stop.pickup{background:#fff6e5;color:#7c2d12;border-color:#d97706}.stop.completed{text-decoration:line-through;text-decoration-color:#0077b6;opacity:.72}.stop.pickup.completed{text-decoration-color:#d97706}.stop.unpaid-delivered,.stop.completed.unpaid-delivered{background:#d64545;color:#fff;text-decoration:none;opacity:1}.stop.unpaid-status,.stop.completed.unpaid-status{background:#7c3aed;color:#fff;text-decoration:none;opacity:1}.stop.paid-status,.stop.completed.paid-status{background:#22a45a;color:#fff;text-decoration:none;opacity:1}.stop.closed-status,.stop.completed.closed-status{background:#0077b6;color:#fff;text-decoration:none;opacity:1}.stop.hold-status,.stop.completed.hold-status{background:#fde047;color:#713f12;text-decoration:none;opacity:1}.stop.delivery.unpaid-delivered,.stop.delivery.unpaid-status,.stop.delivery.paid-status,.stop.delivery.closed-status,.stop.delivery.hold-status{border-color:#0077b6}.stop.pickup.unpaid-delivered,.stop.pickup.unpaid-status,.stop.pickup.paid-status,.stop.pickup.closed-status,.stop.pickup.hold-status{border-color:#d97706}.stop.unpaid-delivered .stop-equip,.stop.unpaid-status .stop-equip,.stop.paid-status .stop-equip,.stop.closed-status .stop-equip{background:#ffffff38;color:#fff}.stop.hold-status .stop-equip{background:#713f1224;color:#713f12}.stop.skipped{background:#f3f4f5;color:var(--muted)}.more{color:var(--muted);font-size:.72rem;font-weight:600}.day-hover{display:none;position:absolute;left:0;top:0;z-index:9;width:100%;min-width:0;max-height:360px;overflow:auto;padding:8px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);flex-direction:column;gap:4px;cursor:pointer}.day-cell:hover .day-hover,.day-cell:focus-within .day-hover{display:flex}.day-cell:nth-child(7n) .day-hover{left:auto;right:0}.day-hover-title{font-weight:700;color:var(--navy);font-size:.78rem;padding:2px 4px 4px}.layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,300px);gap:16px;width:100%;min-width:0}.side{background:var(--white);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);padding:20px;min-height:420px;min-width:0}.side h3{margin:0 0 4px;font-size:1.15rem}.side .sub{margin:0 0 16px;color:var(--muted);font-size:.92rem}.route-launch{margin:-8px 0 16px}.route-launch .primary{width:100%}.route-launch .meta{margin:6px 0 0}.stop-card{border:1px solid var(--line);border-radius:16px;padding:12px;margin-bottom:10px;background:#fbfdfe}.stop-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.stop-card-head .name-link{min-width:0;flex:1}.stop-card-head .unpaid-flag{margin-left:0;flex:none}.stop-card.unpaid-delivered{background:#fdecea;border-color:#d64545}.stop-card.unpaid-status{background:#f5f0ff;border-color:#7c3aed}.stop-card.paid-status{background:#e8f7ee;border-color:#22a45a}.stop-card.closed-status{background:#e7f7fb;border-color:#0077b6}.stop-card.hold-status{background:#fef9c3;border-color:#fde047}.stop-card.delivery{border:3px solid #0077b6}.stop-card.pickup{border:3px solid #d97706}.unpaid-flag{display:inline-flex;align-items:center;margin-left:6px;padding:1px 6px;border-radius:999px;background:#d64545;color:#fff;font-size:.62rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;text-decoration:none;flex:none}.stop.unpaid-delivered .unpaid-flag{background:#fff;color:#b42318}.stop.unpaid-status .unpaid-flag{background:#fff;color:#6d28d9}.stop.paid-status .unpaid-flag{background:#fff;color:#1b7a43}.stop.closed-status .unpaid-flag{background:#fff;color:#0077b6}.stop.hold-status .unpaid-flag{background:#fff;color:#854d0e}.stop.first-month .unpaid-flag,.stop-card.first-month .unpaid-flag{background:#f4a723;color:#713f12}.unpaid-flag.cash-unpaid-flag{background:#7c3aed}.unpaid-flag.paid-flag{background:#22a45a}.unpaid-flag.closed-flag{background:#0077b6}.unpaid-flag.hold-flag{background:#fde047;color:#713f12}.stop-card h4{margin:0 0 4px;font-size:1rem}.stop-card p{margin:0;color:var(--muted);font-size:.88rem}.row-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.empty{color:var(--muted);padding:18px 0}.search-row{display:flex;flex-direction:column;align-items:flex-end;gap:10px;margin-left:auto}.search{width:280px;min-width:160px;border:1px solid var(--line);border-radius:12px;padding:9px 12px;background:var(--paper)}.filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}.chip{border:1px solid var(--line);background:var(--paper);color:var(--muted);border-radius:999px;padding:6px 12px;font-size:.85rem;font-weight:600}.chip.active{background:var(--navy);border-color:var(--navy);color:#fff}.names{display:flex;flex-direction:column;gap:10px}.name-card{width:100%;text-align:left;border:1px solid var(--line);background:#fbfdfe;border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:12px}.name-main{display:grid;grid-template-columns:1fr auto;gap:8px 16px;width:100%;border:0;background:transparent;padding:0;text-align:left}.name-card strong{font-size:1.05rem;color:var(--navy)}.equipment-field{border:0;padding:0;margin:0}.equipment-field legend{font-size:.82rem;font-weight:600;color:var(--deep);margin-bottom:8px}.equip{display:flex;flex-wrap:wrap;gap:8px}.equip-btn{border:1px solid var(--line);background:var(--paper);color:var(--muted);border-radius:12px;padding:8px 12px;min-width:88px;display:flex;flex-direction:column;align-items:flex-start;gap:2px}.equip-btn strong{font-size:.95rem;display:inline-flex;align-items:center;justify-content:center}.equip-btn span{font-size:.72rem;font-weight:600}.equip-btn.active{background:var(--navy);border-color:var(--navy);color:#fff}.equip-btn.active strong{color:#fff}button.info-name{display:inline;border:0;background:none;padding:0;margin:0 0 16px;font-family:Poppins,sans-serif;font-size:1.4rem;font-weight:700}button.info-name:hover{text-decoration:underline}.meta{color:var(--muted);font-size:.88rem}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 9px;font-size:.75rem;font-weight:700;background:var(--mist);color:var(--deep)}.badge.paused{background:#f4efe3;color:#8a6d1f}.badge.activity-source-staff{background:#e3edff;color:#1b3fa6}.badge.activity-source-system{background:var(--mist);color:var(--muted)}.badge.activity-source-customer{background:#e3f4ec;color:#157a4a}.activity-list{display:flex;flex-direction:column;gap:10px;margin:0 0 16px;padding:0;list-style:none}.activity-item{border:1px solid var(--line);border-radius:14px;padding:10px 12px}.activity-item-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.activity-content{margin:0;font-size:.92rem;line-height:1.4}.badge-row{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;align-items:center}.stack{display:flex;flex-direction:column;gap:10px;margin-top:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid label,.stack label{display:flex;flex-direction:column;gap:6px;font-size:.82rem;font-weight:600;color:var(--deep)}.span-2{grid-column:span 2}input,select,textarea{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;color:var(--ink)}input:disabled,select:disabled,textarea:disabled{background:#eef3f6;color:var(--muted);cursor:not-allowed}.form-grid label .meta,.stack label .meta{font-weight:500}textarea{min-height:84px;resize:vertical}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#073b4c61;display:grid;place-items:center;padding:20px;z-index:20;overflow:auto;-webkit-overflow-scrolling:touch}.modal{width:min(640px,100%);max-height:min(920px,calc(100dvh - 40px));overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;background:#fff;border-radius:24px;padding:22px;box-shadow:0 24px 70px #073b4c40}.modal h3{margin:0 0 16px}.analytics-page{display:flex;flex-direction:column;gap:12px}.analytics-title{margin:0;color:var(--navy);font-family:Poppins,sans-serif;font-size:1.7rem;font-weight:800}.analytics-section{margin:8px 0 0;color:var(--navy);font-family:Poppins,sans-serif;font-size:1.05rem}.analytics-subtabs{display:flex;gap:18px;border-bottom:1px solid var(--line);margin:4px 0 8px}.analytics-subtabs button{border:0;background:transparent;color:var(--muted);padding:8px 0 10px;font-weight:700;box-shadow:inset 0 -2px 0 transparent}.analytics-subtabs button.active{color:var(--navy);box-shadow:inset 0 -2px 0 var(--navy)}.analytics-metric{display:grid;gap:10px}.analytics-sales-figures{display:flex;flex-wrap:wrap;gap:16px}.analytics-compare-col{display:grid;gap:1px}.analytics-compare-col span,.analytics-compare-item span{color:var(--muted);font-size:.65rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.analytics-compare-col strong,.analytics-compare-item strong{color:var(--navy);font-size:1.15rem;font-weight:800}.analytics-compare-col em,.analytics-compare-item em{color:var(--deep);font-size:1rem;font-style:normal;font-weight:800}.analytics-compare{display:flex;flex-wrap:wrap;align-items:baseline;gap:16px}.analytics-compare-item{display:flex;align-items:baseline;gap:6px}.analytics-compare b{color:var(--muted);font-size:.9rem;font-weight:800}.analytics-compare b.up{color:#22a45a}.analytics-compare b.down{color:#d64545}.analytics-trend{display:flex;align-items:flex-end;gap:4px}.analytics-trend-col{flex:1;display:grid;justify-items:center;gap:3px;min-width:0}.analytics-trend-col strong{color:var(--navy);font-size:.65rem;font-weight:800;white-space:nowrap}.analytics-trend-well{width:62%;height:22px;background:var(--paper);border-radius:4px;display:flex;align-items:flex-end;overflow:hidden}.analytics-trend-well span{display:block;width:100%;border-radius:4px}.analytics-trend-well-split{align-items:flex-end;gap:2px}.analytics-trend-well-split span{flex:1;width:auto;min-width:0;border-radius:3px 3px 0 0}.analytics-sales-legend{margin:4px 0 0}.analytics-trend-col em{color:var(--muted);font-size:.7rem;font-style:normal;font-weight:700}button.analytics-trend-col,button.analytics-compare-item{font:inherit;background:transparent;border:0;padding:0;cursor:pointer;text-align:center}button.analytics-compare-item{text-align:left}button.analytics-compare-item:disabled{cursor:default}.analytics-trend-col.selected{background:#fdecea;border-radius:8px;padding:4px 0}.analytics-trend-col.selected-cancel em{color:#b42318}.analytics-trend-col.selected-new{background:#e7f7fb}.analytics-trend-col.selected-new em{color:#0077b6}.analytics-cancel-list{display:grid;gap:8px;margin-top:4px}.analytics-cancel-heading{margin:8px 0 0;color:var(--navy);font-size:.85rem;font-weight:800}.analytics-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.analytics-stat{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:14px}.analytics-stat .stat-top{display:flex;align-items:baseline;justify-content:space-between;gap:6px}.analytics-stat .stat-top>b{color:var(--muted);font-size:.65rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap}.analytics-stat .stat-label{display:inline-flex;align-items:center;gap:4px;min-width:0}.info-tip{position:relative;display:inline-flex;flex:none}.info-tip-btn{width:14px;height:14px;padding:0;border:1px solid var(--muted);border-radius:50%;background:var(--white);color:var(--muted);font-family:Georgia,Times New Roman,serif;font-size:10px;font-style:italic;font-weight:700;line-height:1;letter-spacing:0;text-transform:none;display:inline-flex;align-items:center;justify-content:center}.info-tip-btn:hover,.info-tip-btn[aria-expanded=true]{border-color:var(--blue);color:var(--blue)}.info-tip-pop{position:absolute;z-index:40;top:calc(100% + 8px);left:0;width:22rem;padding:16px 18px;background:#f7f7f7;border:none;border-radius:4px;box-shadow:0 2px 10px #0000001f;color:#1a1a1a;font-size:13px;font-weight:400;letter-spacing:0;line-height:1.5;text-align:left;text-transform:none;white-space:normal}.info-tip-pop p{margin:0 0 12px;font-size:13px;font-weight:400;color:#1a1a1a;text-transform:none;letter-spacing:0}.info-tip-pop p:last-child{margin-bottom:0}.info-tip-pop strong{display:inline;margin:0;color:inherit;font-size:13px;font-weight:700;letter-spacing:0;text-transform:none}.info-tip-pop ul{margin:0;padding-left:1.2em;list-style:disc}.info-tip-pop li{margin:0 0 4px;font-size:13px;font-weight:400;color:#1a1a1a;text-transform:none;letter-spacing:0}.info-tip-pop li:last-child{margin-bottom:0}.analytics-stat .info-tip,.analytics-compare-col .info-tip{display:inline-flex}.analytics-stat .info-tip-pop,.analytics-compare-col .info-tip-pop{color:#1a1a1a;font-size:13px;font-weight:400;letter-spacing:0;line-height:1.5;text-transform:none}.analytics-stat:nth-child(4n) .info-tip-pop,.info-tip-pop.end{left:auto;right:0}.info-tip-pop.start{left:0;right:auto}.insights-page .analytics-stat .info-tip-pop,.insights-page .analytics-stat:nth-child(4n) .info-tip-pop{left:0;right:auto}.analytics-compare-col>span{display:inline-flex;align-items:center;gap:4px}.analytics-stat.failed{background:var(--white);border:3px solid #d64545}.analytics-stat.hold{background:var(--white);border:3px solid #fde047}.analytics-stat .stat-top,.analytics-stat .stat-label{color:var(--muted);font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.analytics-stat>strong{display:block;margin-top:4px;color:var(--navy);font-size:1.4rem;font-weight:800}.analytics-stat.failed>strong,.analytics-stat.hold>strong{color:var(--navy)}.analytics-card{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:16px;overflow:visible}.analytics-chart{display:flex;align-items:center;gap:16px}.analytics-legend{flex:1;display:grid;gap:10px;min-width:0}.analytics-legend-item{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.analytics-legend-item i{width:10px;height:10px;border-radius:50%;flex:none}.analytics-legend-item span{color:var(--muted)}.analytics-legend-item strong,.analytics-legend-count{color:var(--navy);font:inherit;font-weight:800}.analytics-legend-count{padding:0;border:0;background:transparent;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.analytics-pending-modal{max-height:min(80vh,640px);overflow:auto}.analytics-legend-item em{color:var(--muted);font-style:normal;font-weight:700}.analytics-graph{width:50%;display:grid;gap:8px}.analytics-bars{display:flex;align-items:flex-end;justify-content:center;gap:12px;min-height:120px}.analytics-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px}.analytics-bar-col span{color:var(--muted);font-size:.75rem;font-weight:700}.analytics-bar-well{width:28px;height:96px;background:var(--paper);border-radius:8px;display:flex;align-items:flex-end;overflow:hidden}.analytics-bar-fill{width:100%;border-radius:10px}.analytics-stack{display:flex;height:12px;border-radius:999px;overflow:hidden;background:var(--paper)}.analytics-stack span{display:block;height:100%}.analytics-sub{display:flex;align-items:flex-start;gap:12px;background:var(--white);border:1px solid var(--line);border-radius:16px;padding:14px}.analytics-sub strong,.analytics-sub .name-link{color:var(--navy);font-size:1rem}.analytics-charge-label{margin:8px 0 0;color:var(--muted);font-size:.7rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.analytics-charge-time{margin:2px 0 0;color:var(--navy);font-weight:800}.analytics-sub-total{margin-left:auto;color:var(--blue);font-weight:800;flex:none;text-align:right}.origin-dot{width:14px;height:14px;border-radius:50%;flex:none;box-shadow:0 0 0 1px #0000001f}.origin-name{display:flex;align-items:center;gap:8px;min-width:0}.origin-legend{display:flex;flex-wrap:wrap;gap:8px 14px;margin:0 0 12px}.origin-legend-item{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:.8rem;font-weight:700}.origin-legend-item i{width:12px;height:12px;border-radius:50%;box-shadow:0 0 0 1px #0000001f}.insights-page{display:flex;flex-direction:column;gap:12px}.insights-lead{margin:0;color:var(--muted);font-size:.92rem}.insights-lead em{display:inline-flex;width:1.05em;height:1.05em;align-items:center;justify-content:center;border:1px solid var(--muted);border-radius:50%;font-style:normal;font-size:.7rem;font-weight:800}.shop-frame{width:100%;min-height:min(78vh,900px);border:1px solid var(--line);border-radius:16px;background:var(--white);margin-top:12px}.sales-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:12px;margin-bottom:18px}.sales-compare-card{display:grid;gap:8px}.sales-compare-head,.sales-compare-row{display:grid;grid-template-columns:minmax(90px,1.2fr) repeat(3,minmax(0,1fr));gap:8px;align-items:center}.sales-compare-head span{color:var(--muted);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.sales-compare-row span{color:var(--navy);font-weight:700}.sales-compare-row strong{color:var(--navy);font-weight:800}.sales-compare-row.total{border-top:1px solid var(--line);padding-top:8px}.growth-legend{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:8px}.growth-legend-item,.growth-month-row span{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:.8rem;font-weight:700}.growth-legend-item i,.growth-month-row i{width:10px;height:10px;border-radius:50%}.growth-plot{display:flex;align-items:flex-end;gap:8px;min-height:120px}.growth-col{flex:1;display:grid;justify-items:center;gap:6px;background:transparent;border:0;padding:0}.growth-col em{font-style:normal;font-size:.7rem;font-weight:700;color:var(--muted)}.growth-col.active em{color:var(--navy)}.growth-bars{display:flex;align-items:flex-end;gap:3px;width:100%;justify-content:center}.growth-bars i{width:8px;border-radius:4px 4px 0 0;display:block}.growth-month-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:6px 0}.insights-subhead{margin:10px 0 8px;color:var(--muted);font-size:.78rem}.insights-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.insights-mix{display:grid;gap:7px}.insights-mix-row{display:grid;grid-template-columns:minmax(72px,.9fr) 1fr auto;gap:8px;align-items:center;font-size:.82rem}button.insights-mix-row{width:100%;margin:0;padding:5px 4px;border:0;border-radius:8px;background:transparent;text-align:left;cursor:pointer}button.insights-mix-row.selected,.analytics-stat.selected{background:var(--mist);box-shadow:inset 0 0 0 2px var(--blue)}.analytics-stat.clickable{cursor:pointer}.insights-mix-row span{color:var(--ink)}.insights-mix-row strong{color:var(--navy);font-size:.82rem}.insights-mix-track{height:8px;background:var(--mist);border-radius:99px;overflow:hidden}.insights-mix-track i{display:block;height:100%;background:var(--blue);border-radius:99px}.insights-people{margin-top:0}.insights-people-modal{width:min(720px,100%);overscroll-behavior:contain}.insights-people-head{margin:0 0 8px;color:var(--navy);font-size:.85rem;font-weight:800}.insights-life{display:block;margin-top:2px;color:var(--muted);font-size:.72rem;font-weight:700;font-style:normal}@media(hover:none){.day-cell:hover .day-hover,.day-cell:focus-within .day-hover{display:none}}@media(max-width:980px){.stats,.analytics-stats{grid-template-columns:1fr 1fr}.insights-grid,.sales-row{grid-template-columns:1fr}.analytics-chart{flex-direction:column;align-items:stretch}.analytics-graph{width:100%}.layout,.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.day,.day-cell{min-height:86px}.topbar{flex-direction:column;align-items:stretch}.tabs{width:100%}.tabs button{flex:1}.search-row{width:100%;margin-left:0;align-items:stretch}.search{width:100%}}@media(max-width:720px){.app{padding:14px max(12px,env(safe-area-inset-right)) max(28px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.site-topbar{font-size:.72rem;letter-spacing:.02em;padding-left:12px;padding-right:12px}.topbar-extra{display:none}.topbar{gap:12px;margin-bottom:14px}.brand{gap:10px}.brand h1{font-size:1.05rem;letter-spacing:.03em}.brand p{font-size:.82rem}.logo{width:44px;height:44px}.tabs{border-radius:14px}.tabs button,.tabs button.lock-tab{padding:10px 8px;font-size:.82rem}.stats{gap:8px;margin-bottom:12px}.stat{padding:12px;border-radius:14px}.stat span{font-size:.68rem}.stat strong{font-size:1.35rem}.stat-split{flex-wrap:wrap;gap:4px 8px}.stat-split span{font-size:.72rem}.login-app{padding-top:20px;place-items:start stretch}.login-card{width:100%;padding:20px 16px 24px;border-radius:18px}.login-form{margin-top:22px}.calendar-head,.list-head{flex-direction:column;align-items:stretch;gap:10px}.month-nav{gap:6px}.calendar-search{width:100%;order:-1;flex:1 1 100%}.month-nav .ghost,.month-nav .primary,.print-menu>button{padding:8px 10px;font-size:.85rem}.nav-month-name{display:none}.legend{gap:10px 14px;font-size:.72rem;margin-bottom:8px}.weekdays,.grid{gap:3px}.wd-full{display:none}.wd-short{display:inline}.weekdays span{font-size:.7rem;letter-spacing:0;padding-bottom:4px}.day,.day-cell{min-height:52px}.day{min-height:52px;padding:4px 2px;gap:2px;border-radius:10px;align-items:center}.day-num{font-size:.78rem}.day .stop,.day .more{display:none}.day-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#d7eef8;color:#0077b6;font-size:.65rem;font-weight:700}.day-count.pickup{background:#ffedd5;color:#c2410c}.day-count.mixed{background:#03045e1a;color:var(--navy)}.day-count.unpaid{background:#d64545;color:#fff}.day-count.cash-unpaid{background:#7c3aed;color:#fff}.day-count.hold{background:#fde047;color:#713f12}.side{padding:16px;min-height:0;border-radius:18px}.stop-card{padding:12px}.name-link{font-size:.95rem}.check{flex:1;justify-content:center;padding:10px 8px}.row-actions{gap:6px}.name-main{grid-template-columns:1fr}.equip-btn{flex:1;min-width:0;align-items:center;text-align:center}.info-list div{grid-template-columns:1fr;gap:2px}.modal-back{padding:0;align-items:stretch;place-items:end center}.modal{width:100%;max-height:100%;overflow:auto;border-radius:20px 20px 0 0;padding:18px 16px max(18px,env(safe-area-inset-bottom))}.account-bar{justify-content:space-between}input,select,textarea,.search{font-size:16px}.stop-bottles{display:none}}@media print{html,body,#root,.shell{background:#fff!important;max-width:none!important}html[data-print=calendar],html[data-print=calendar] body,html[data-print=calendar] #root,html[data-print=calendar] .shell{height:100%!important;overflow:hidden!important}html:not([data-print=calendar]),html:not([data-print=calendar]) body,html:not([data-print=calendar]) #root,html:not([data-print=calendar]) .shell{height:auto!important;overflow:visible!important}body{background:#fff!important}.site-topbar,.app,.print-menu{display:none!important}.print-sheet{display:block!important;color:#03045e;font-size:11px}.print-calendar{display:flex!important;flex-direction:column;height:100vh;max-height:100%;overflow:hidden;break-inside:avoid;page-break-inside:avoid;page-break-after:avoid}.print-head{display:flex;align-items:center;gap:12px;margin-bottom:12px;border-bottom:2px solid #03045e;padding-bottom:8px}.print-calendar .print-head{flex:none;gap:8px;margin-bottom:6px;padding-bottom:4px}.print-logo{width:48px;height:48px;object-fit:contain}.print-calendar .print-logo{width:32px;height:32px}.print-head strong{display:block;letter-spacing:.06em;text-transform:uppercase;font-size:10px}.print-head h1{margin:2px 0 0;font-size:20px;font-family:Poppins,sans-serif}.print-calendar .print-head h1{font-size:15px}.print-head p{margin:2px 0 0;color:#1b54a6;display:inline-flex;flex-wrap:wrap;align-items:center;gap:2px}.print-head .store-emoji,.print-stop .store-emoji,.print-row .store-emoji{font-size:12px;line-height:1}.print-weekdays,.print-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.print-calendar .print-weekdays{flex:none;gap:3px;margin-bottom:3px}.print-calendar .print-grid{flex:1;min-height:0;gap:3px}.print-weekdays span{font-size:9px;font-weight:700;text-transform:uppercase;text-align:center}.print-day{border:1px solid rgba(3,4,94,.2);border-radius:6px;min-height:72px;padding:4px}.print-calendar .print-day{min-height:0;overflow:hidden;padding:2px 3px;border-radius:4px}.print-day.empty{border-color:transparent}.print-day-num{display:block;font-weight:700;margin-bottom:3px}.print-calendar .print-day-num{font-size:9px;margin-bottom:1px}.print-stop{display:flex;justify-content:space-between;gap:4px;font-size:8px;font-weight:600;padding:1px 0;border-bottom:1px solid rgba(3,4,94,.08)}.print-stop span:last-child{display:inline-flex;align-items:center;gap:1px;flex:none}.print-calendar .print-stop{font-size:var(--print-stop-size, 7px);line-height:1.15;padding:0;white-space:nowrap;overflow:hidden}.print-calendar .print-stop span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis}.print-stop.pickup{color:#d97706}.print-list{list-style:none;margin:0;padding:0}.print-list li{break-inside:avoid;border:1px solid rgba(3,4,94,.18);border-radius:8px;padding:8px 10px;margin-bottom:8px}.print-row{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.print-row strong{font-size:13px}.print-checks{display:flex;gap:18px;margin-top:6px;font-weight:600}.print-pickup-table{width:100%;border-collapse:collapse;margin-top:8px;font-size:12px}.print-pickup-table th,.print-pickup-table td{border:1px solid rgba(3,4,94,.18);padding:8px 10px;text-align:left;vertical-align:middle}.print-pickup-table th{background:#03045e0f;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.print-pickup-table tbody tr{break-inside:avoid}.print-pickup-name,.print-pickup-status{font-weight:700}.print-pickup-status.failed{color:#b42318}.print-pickup-status.hold{color:#854d0e}.print-pickup-check{text-align:center;font-size:16px;font-weight:700;width:4.5rem;height:2rem}.print-delivery-contact{display:flex;flex-direction:column;gap:2px;max-width:14rem;line-height:1.25}.print-delivery-phone{color:#1b54a6;font-size:11px}.print-week-page{page-break-after:always;break-after:page}.print-week-page.last{page-break-after:auto;break-after:auto}.print-address{margin:4px 0 0;font-size:12px}.print-phone,.print-notes{margin:2px 0 0;color:#1b54a6}}
