:root{--route-green:#188c45;--route-lime:#8fce3f;--route-dark:#111914;--route-soft:#f2f7f2;--route-line:#dce5dd;--route-red:#bd3c34;--route-orange:#ec741c}
.gg-admin-main:has(.route-shell){width:min(1540px,calc(100% - 24px))}
.route-titlebar{align-items:center}
.route-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}
.route-stat{background:linear-gradient(150deg,#fff,#f5f8f5);border:1px solid var(--route-line);border-radius:13px;padding:14px 15px;min-width:0}
.route-stat span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.06em;font-weight:900;color:#66756b}.route-stat strong{display:block;margin-top:5px;font-size:24px;color:#17472b;white-space:nowrap}.route-stat small{display:block;margin-top:4px;color:#748078;font-size:9px}
.route-edit-panel{background:#fff;border:1px solid #cfe0cf;border-radius:13px;padding:16px;margin:0 0 14px;box-shadow:0 8px 28px rgba(19,57,31,.05)}
.route-edit-panel[hidden]{display:none}.route-edit-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;margin-bottom:13px}.route-edit-head h2{margin:0;font-size:19px}.route-edit-head p{margin:4px 0 0;color:#68766c;font-size:11px;max-width:760px;line-height:1.45}.route-close{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:0;border-radius:8px;background:#f1f4f1;color:#48544b;font-size:22px;text-decoration:none;cursor:pointer}
.route-recurrence-preview{margin:11px 0;padding:9px 11px;background:#eff8ed;border:1px solid #d5e8d1;border-radius:8px;color:#47623e;font-size:10px;font-weight:700}
.route-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:15px 0 10px}
.route-period-nav{display:flex;align-items:center;gap:7px}.route-nav-btn,.route-today{height:37px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #ccd7cf;border-radius:8px;background:#fff;color:#273a2c;text-decoration:none;font-weight:900}.route-nav-btn{width:38px;font-size:22px}.route-today{padding:0 12px;font-size:10px}.route-period-title{margin-left:7px;font-size:21px;font-weight:900;color:#17291d}
.route-view-switch{display:flex;padding:3px;background:#eaf0eb;border-radius:9px}.route-view-switch a{padding:8px 14px;border-radius:7px;text-decoration:none;color:#5f6b62;font-size:10px;font-weight:900}.route-view-switch a.active{background:#fff;color:#187f42;box-shadow:0 1px 4px rgba(0,0,0,.08)}
.route-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;align-items:start}
.route-day{min-width:0;background:#f7f9f7;border:1px solid #dce5dd;border-radius:12px;overflow:hidden}.route-day.today{border-color:#7dbf5e;box-shadow:0 0 0 2px rgba(100,176,70,.08)}
.route-day>header{display:flex;justify-content:space-between;gap:7px;padding:10px;background:#152019;color:#fff}.route-day.today>header{background:linear-gradient(135deg,#12683b,#179449)}
.route-day>header span{display:block;font-size:8px;text-transform:uppercase;color:#a9b8ad;font-weight:900}.route-day>header strong{display:block;margin-top:2px;font-size:12px}.route-day-meta{text-align:right}.route-day-meta b{display:block;font-size:9px;color:#a8e45a}.route-day-meta small{display:block;margin-top:2px;font-size:7.5px;color:#c3cdc6}
.route-dropzone{min-height:420px;padding:7px}.route-dropzone.drag-over{background:#e4f5df;outline:2px dashed #6cb050;outline-offset:-4px}.route-empty-day{height:90px;display:flex;align-items:center;justify-content:center;padding:10px;text-align:center;color:#95a097;font-size:8px;border:1px dashed #d4ddd5;border-radius:8px}
.route-card{position:relative;background:#fff;border:1px solid #d8e0d9;border-left:4px solid var(--route-green);border-radius:9px;padding:9px;margin-bottom:7px;cursor:grab;box-shadow:0 3px 12px rgba(24,52,31,.05)}.route-card.dragging{opacity:.45}.route-card.completed{border-left-color:#669b56;background:#f2f8f0}.route-card.skipped{border-left-color:#a7a7a7;background:#f2f3f2;opacity:.74}
.route-card-top{display:flex;justify-content:space-between;align-items:center;gap:6px}.route-frequency{display:inline-flex;padding:3px 6px;border-radius:99px;background:#e5f4df;color:#43702f;font-size:7px;font-weight:900;text-transform:uppercase}.route-frequency.biweekly{background:#eef0ff;color:#555b9d}.route-frequency.one_time{background:#fff0df;color:#9d6526}.route-order{font-size:7px;color:#8a958c;font-weight:900}
.route-card h3{font-size:11px;margin:7px 0 3px;line-height:1.15}.route-address{font-size:8px;color:#68756d;line-height:1.25;margin:0 0 7px;min-height:20px}.route-card-data{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-top:1px solid #edf0ed;font-size:8px;color:#56645b}.route-card-data b{font-size:10px;color:#168746}.route-crew{font-size:7.5px;color:#69756d;margin:2px 0 5px}
.route-status{font-size:8px;font-weight:900;padding:5px 6px;border-radius:6px;margin:5px 0}.route-status.completed{background:#dff1d9;color:#38702b}.route-status.skipped{background:#e7e8e7;color:#666}
.route-card-actions{display:flex;align-items:center;gap:4px}.route-icon-btn,.route-more-btn{border:1px solid #d9e0da;background:#f9fbf9;color:#445348;border-radius:6px;height:27px;min-width:27px;font-size:10px;font-weight:900;cursor:pointer}.route-icon-btn.complete{margin-left:auto;color:#168744}.route-more-btn{font-size:13px}
.route-card-menu{position:absolute;z-index:80;right:6px;top:calc(100% - 4px);width:180px;background:#fff;border:1px solid #d6dfd8;border-radius:9px;padding:5px;box-shadow:0 14px 32px rgba(18,37,23,.18)}.route-card-menu a,.route-card-menu button{display:block;width:100%;text-align:left;border:0;background:transparent;padding:8px;border-radius:6px;color:#354239;text-decoration:none;font-size:9px;font-weight:800;cursor:pointer}.route-card-menu a:hover,.route-card-menu button:hover{background:#f1f5f1}.route-card-menu .danger{color:#a73731}
.route-drag-help{margin:10px 0 18px;padding:9px 12px;border-radius:9px;background:#eef7ec;color:#526a4a;font-size:10px;text-align:center}
.route-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.route-month-dow{text-align:center;padding:7px;font-size:8px;text-transform:uppercase;font-weight:900;color:#68766c}.route-month-day{min-height:135px;background:#fff;border:1px solid #dae3db;border-radius:9px;padding:7px;text-decoration:none;color:#233429;overflow:hidden}.route-month-day:hover{border-color:#83ba68}.route-month-day.today{box-shadow:inset 0 0 0 2px #69a950}.route-month-day.outside{opacity:.48}.route-month-day>strong{display:block;margin-bottom:5px;font-size:12px}.route-month-stop{display:flex;justify-content:space-between;gap:4px;margin:3px 0;padding:4px 5px;border-radius:5px;background:#e9f5e5;color:#315b27;font-size:7.5px;line-height:1.15}.route-month-stop.skipped{background:#eee;color:#777}.route-month-stop.completed{background:#d8eed2}.route-month-day>small{font-size:7px;color:#728078}
.route-toast{position:fixed;z-index:6000;right:22px;bottom:22px;max-width:360px;padding:12px 15px;border-radius:9px;color:#fff;font-size:11px;font-weight:800;box-shadow:0 13px 35px rgba(0,0,0,.2)}.route-toast.ok{background:#176f3c}.route-toast.bad{background:#9d342d}.route-toast[hidden]{display:none}
.route-move-modal{position:fixed;inset:0;z-index:5900;background:rgba(5,20,10,.65);display:flex;align-items:center;justify-content:center;padding:18px}.route-move-modal[hidden]{display:none}.route-modal-card{position:relative;width:min(450px,100%);background:#fff;border-radius:13px;padding:20px}.route-modal-card h2{margin-top:0}.route-modal-card>p{font-size:11px;color:#68766c}.route-modal-card .route-close{position:absolute;right:10px;top:10px}.route-check{display:flex;align-items:center;gap:8px;margin:12px 0;font-size:10px;font-weight:800}.route-check input{width:auto}
@media(max-width:1200px){.route-week{grid-template-columns:repeat(4,minmax(0,1fr))}.route-stat-grid{grid-template-columns:repeat(2,1fr)}.route-dropzone{min-height:280px}}
@media(max-width:760px){.route-toolbar{align-items:flex-start;flex-direction:column}.route-period-title{font-size:16px}.route-week{grid-template-columns:1fr 1fr}.route-month-day{min-height:95px}.route-month-stop{display:none}.route-month{gap:3px}.route-stat-grid{grid-template-columns:1fr 1fr}}
@media(max-width:500px){.route-week{grid-template-columns:1fr}.route-stat-grid{grid-template-columns:1fr}.route-dropzone{min-height:120px}.route-month-day{min-height:65px;padding:5px}.route-month-dow{font-size:7px;padding:4px}.route-period-nav{flex-wrap:wrap}.route-period-title{width:100%;margin-left:0}.route-card{cursor:default}}
