:root{--g:#123f31;--g2:#1d6a50;--bg:#f3f6f4;--card:#fff;--line:#dbe5df;--text:#17231e;--muted:#6c7972;--blue:#2f6fed;--orange:#e28a18;--red:#d64545;--gray:#909993;--green:#278a5b;--warn:#fff7dc}
*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text)}.hidden{display:none!important}
.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(160deg,#0e3327,#1e654d)}.auth-card{width:min(390px,100%);background:#fff;border-radius:24px;padding:28px;box-shadow:0 20px 60px #0004;text-align:center}.logo,.brandmark{display:grid;place-items:center;background:var(--g);color:#fff;font-weight:900}.logo{width:64px;height:64px;border-radius:18px;margin:0 auto;font-size:24px}.auth-card h1{margin:12px 0 0}.auth-card p{color:var(--muted);margin-top:5px}
label{display:block;text-align:left;font-size:13px;font-weight:750;margin:12px 0}input,select,textarea,button{font:inherit}input,select,textarea{width:100%;margin-top:6px;border:1px solid #cad7d0;border-radius:12px;padding:12px;background:#fff;color:var(--text)}textarea{resize:vertical}button{border:1px solid #ccd8d2;background:#fff;border-radius:12px;padding:10px 14px;font-weight:750;cursor:pointer}.primary{background:var(--g);border-color:var(--g);color:#fff}.big{width:100%;padding:14px}.msg{margin-top:10px;font-weight:700;color:var(--g2)}.hint,small{color:var(--muted);font-size:12px}
.topbar{height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 18px;position:sticky;top:0;z-index:20}.brandbox{display:flex;align-items:center;gap:10px}.brandmark{width:38px;height:38px;border-radius:11px}.brandbox b{display:block}.brandbox span{display:block;color:var(--muted);font-size:11px}.top-actions{display:flex;gap:6px}.iconbtn{border:0;background:#f0f4f2;padding:9px 11px}
main{max-width:1120px;margin:auto;padding:18px 16px 96px}.screen{display:none}.screen.active{display:block}.hero{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:16px}.hero span{color:var(--muted);font-size:13px}.hero h2{margin:3px 0}.round{border-radius:999px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px}.stat span{font-size:12px;color:var(--muted);display:block}.stat strong{font-size:26px}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px;margin-bottom:14px;box-shadow:0 2px 10px #00000008}.card h3{margin:0 0 12px}.section-title,.screen-head,.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.screen-head{justify-content:flex-start;margin-bottom:12px}.screen-head h2,.calendar-head h2{margin:0}.calendar-head{margin-bottom:12px}.back{border:0;background:#eaf0ed;font-size:18px}.linkbtn{border:0;background:transparent;color:var(--g2)}
.stack,.route-list{display:flex;flex-direction:column;gap:9px}.item,.route-item{border:1px solid var(--line);border-radius:14px;padding:12px;background:#fff}.item .title,.route-item .title{font-weight:850}.meta{font-size:12px;color:var(--muted);margin-top:4px}.badge{display:inline-block;padding:3px 7px;border-radius:999px;background:#edf4f0;color:var(--g);font-size:11px;font-weight:800}.money{font-weight:850}.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.notice{background:var(--warn);border:1px solid #e8d693;border-radius:12px;padding:10px;font-size:12px}.search{margin-bottom:12px}.form-actions{display:grid;grid-template-columns:2fr 1fr;gap:10px}.visit-actions,.appointment-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.action-small{padding:8px 10px;font-size:12px}.danger-btn{border-color:#f0caca;color:#b52e2e;background:#fffafa}.buttonlike{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;color:var(--text);border:1px solid #ccd8d2;background:#fff;border-radius:12px;padding:8px 10px;font-weight:750;font-size:12px}.buttonlike.primary{color:#fff;background:var(--g);border-color:var(--g)}
.route-item{display:grid;grid-template-columns:76px 1fr auto;gap:10px;align-items:center}.route-time{font-size:17px;font-weight:900;color:var(--g)}.route-index{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#e8f1ed;font-size:11px;margin-right:5px}.route-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.status-dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:5px}.status-planned{background:var(--blue)}.status-progress{background:var(--orange)}.status-completed{background:var(--green)}.status-cancelled{background:var(--gray)}.status-urgent{background:var(--red)}
.calendar-toolbar-card{padding:10px 12px}.calendar-toolbar{display:flex;gap:12px;align-items:end;justify-content:space-between;flex-wrap:wrap}.segmented{display:flex;background:#eef3f0;border-radius:12px;padding:3px}.segmented button{border:0;background:transparent;padding:8px 11px}.segmented button.active{background:#fff;color:var(--g);box-shadow:0 1px 5px #0001}.calendar-nav{display:flex;gap:5px}.calendar-nav button{padding:8px 12px}.compact-label{margin:0;min-width:180px}.compact-label select{margin-top:3px;padding:8px 10px}
.day-view{display:flex;flex-direction:column;gap:10px}.calendar-day-title{font-weight:900;font-size:17px;margin:8px 0}.cal-event{border-left:5px solid var(--blue);background:#fff;border-radius:12px;padding:10px 11px;box-shadow:0 1px 6px #0000000b;cursor:pointer}.cal-event.progress{border-left-color:var(--orange)}.cal-event.completed{border-left-color:var(--green);opacity:.8}.cal-event.cancelled{border-left-color:var(--gray);opacity:.65}.cal-event.urgent{border-left-color:var(--red);background:#fff8f8}.cal-event-time{font-weight:900;font-size:13px}.cal-event-title{font-weight:800;margin-top:2px}.cal-event-meta{font-size:11px;color:var(--muted);margin-top:2px}
.week-grid{display:grid;grid-template-columns:repeat(7,minmax(135px,1fr));gap:8px;overflow-x:auto;padding-bottom:8px}.week-day{min-height:250px}.week-day-head{position:sticky;top:66px;background:var(--bg);z-index:3;padding:7px 4px;font-size:12px;color:var(--muted)}.week-day-head b{display:block;color:var(--text);font-size:18px}.week-day.today .week-day-head b{color:var(--g2)}.week-events{display:flex;flex-direction:column;gap:7px}.week-events .cal-event{padding:8px;font-size:12px}
.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.month-weekday{font-size:11px;color:var(--muted);font-weight:800;text-align:center;padding:5px}.month-day{min-height:110px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:6px;overflow:hidden}.month-day.outside{opacity:.42}.month-day.today{outline:2px solid #79a994}.month-num{font-size:12px;font-weight:850;margin-bottom:5px}.month-chip{font-size:10px;border-radius:7px;padding:4px 5px;margin-bottom:3px;background:#edf3ff;border-left:3px solid var(--blue);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.month-chip.progress{background:#fff2df;border-color:var(--orange)}.month-chip.completed{background:#eaf7f0;border-color:var(--green)}.month-chip.cancelled{background:#f1f2f1;border-color:var(--gray)}.month-chip.urgent{background:#fff0f0;border-color:var(--red)}.month-more{font-size:10px;color:var(--muted)}
.modal{position:fixed;inset:0;background:#0007;display:grid;place-items:center;padding:15px;z-index:50}.modal-card{background:#fff;border-radius:18px;padding:20px;width:min(520px,100%);max-height:90vh;overflow:auto;position:relative}.modal-close{position:absolute;right:10px;top:9px;border:0;background:#eef2f0;font-size:22px;padding:2px 9px}.modal-card h2{margin:0 35px 8px 0}.appointment-info{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.appointment-info div{background:#f6f8f7;border-radius:10px;padding:9px}.appointment-info span{display:block;font-size:10px;color:var(--muted)}
.bottomnav{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);padding:6px max(8px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));z-index:30}.bottomnav button{border:0;background:transparent;font-size:10px;padding:6px 2px;color:#65736c}.bottomnav button span{display:block;font-size:20px;line-height:22px}.bottomnav button.active{color:var(--g)}.bottomnav .plus span{width:42px;height:42px;border-radius:50%;margin:-19px auto 2px;background:var(--g);color:#fff;display:grid;place-items:center;box-shadow:0 5px 15px #133f3155}
@media(max-width:720px){main{padding-left:11px;padding-right:11px}.two{grid-template-columns:1fr}.stats{gap:7px}.stat{padding:11px}.stat strong{font-size:22px}.round{font-size:12px}.card{padding:13px}.calendar-toolbar{align-items:stretch}.compact-label{width:100%}.week-grid{grid-template-columns:repeat(7,78vw)}.month-day{min-height:82px;padding:4px}.month-chip{font-size:9px;padding:3px}.route-item{grid-template-columns:64px 1fr}.route-actions{grid-column:1/-1;justify-content:flex-start}.appointment-info{grid-template-columns:1fr}.form-actions{grid-template-columns:1fr}.topbar{padding:0 11px}.iconbtn{padding:8px}.calendar-head{align-items:flex-start}}
