.territory-page-head{align-items:flex-end}.territory-head-actions{display:flex;gap:10px}.territory-head-actions .icon{width:17px}.territory-mobile-tabs{display:none}
.territory-planner-grid{display:grid;grid-template-columns:minmax(390px,.82fr) minmax(560px,1.18fr);gap:18px;align-items:start}.territory-planner-grid>*{min-width:0}.territory-opportunities-card{grid-column:1/-1}.territory-card-head{min-height:76px}.territory-card-head>div:first-child{min-width:0}.territory-card-head h2{font-size:17px}.territory-card-head p{margin-top:3px}.territory-month-controls{display:flex;align-items:center;gap:7px}.territory-month-controls strong{min-width:120px;color:var(--ink);font-size:13px;text-align:center}.territory-month-controls .icon-button{width:32px;height:32px;color:var(--ink)}
.territory-calendar-card .territory-card-head{align-items:stretch;flex-direction:column;gap:12px}.territory-calendar-card .territory-month-controls{justify-content:space-between;width:100%}
.territory-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:28px repeat(6,52px);padding:10px 14px 14px;border-top:1px solid var(--line)}.territory-calendar .calendar-weekday{display:grid;place-items:center;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase}.territory-calendar .calendar-day{position:relative;min-width:0;padding:5px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--ink);cursor:pointer;text-align:left}.territory-calendar .calendar-day:hover,.territory-calendar .calendar-day.selected{border-color:var(--green);background:var(--surface-selected)}.territory-calendar .calendar-day.outside{opacity:.32}.territory-calendar .calendar-day.today>span{background:var(--green);color:#fff}.territory-calendar .calendar-day>span{display:grid;width:24px;height:24px;place-items:center;border-radius:7px;font-size:11px;font-weight:800}.territory-calendar .calendar-day>i{position:absolute;right:6px;bottom:6px;display:flex;gap:3px}.territory-calendar .calendar-day>i b{width:6px;height:6px;border-radius:50%;background:var(--blue)}.territory-calendar .calendar-day>i b.reminder{background:var(--amber)}.territory-calendar .calendar-day>i b.lead{background:var(--green)}
.territory-day-summary{display:grid;grid-template-columns:minmax(0,1fr) repeat(3,auto);gap:14px;align-items:center;padding:12px 16px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface-soft)}.territory-day-summary>div strong,.territory-day-summary>div span{display:block}.territory-day-summary>div strong{font-size:15px}.territory-day-summary>div span{color:var(--muted);font-size:11px}.territory-day-summary>span{color:var(--muted);font-size:11px}.territory-day-summary>span b{margin-right:3px;color:var(--ink);font-size:14px}
.territory-day-schedule{max-height:350px;padding:8px 16px 16px;overflow:auto}.territory-visit-row{display:grid;grid-template-columns:74px 4px minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;padding:12px 0;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer;text-align:left}.territory-visit-row:last-child{border-bottom:0}.territory-visit-row:hover .territory-visit-copy strong{color:var(--green)}.territory-visit-row>time{color:var(--muted);font-size:12px;text-align:right}.territory-visit-line{width:4px;height:48px;border-radius:99px;background:var(--blue)}.territory-visit-row.completed .territory-visit-line{background:var(--green)}.territory-visit-row.missed .territory-visit-line{background:var(--red)}.territory-visit-row.reminder .territory-visit-line{background:var(--amber)}.territory-visit-row.lead .territory-visit-line{background:var(--violet)}.territory-visit-copy{min-width:0}.territory-visit-copy strong,.territory-visit-copy span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.territory-visit-copy strong{font-size:14px}.territory-visit-copy span{margin-top:3px;color:var(--muted);font-size:11px}.territory-visit-state{padding:5px 8px;border-radius:999px;background:var(--neutral-badge-bg);color:var(--neutral-badge-text);font-size:10px;font-style:normal;font-weight:800;text-transform:capitalize}.territory-visit-state.next{background:var(--blue-soft);color:var(--blue)}
.territory-map-count,.territory-opportunity-count{padding:6px 9px;border:1px solid var(--line);border-radius:999px;background:var(--neutral-badge-bg);color:var(--neutral-badge-text);font-size:11px;font-weight:800}.territory-map-layout{display:grid;grid-template-columns:minmax(0,1fr) 235px;min-height:430px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.territory-map-canvas{position:relative;min-height:430px;background:var(--product-image-bg)}.territory-map-canvas .maplibregl-map{font-family:"DM Sans",sans-serif}.territory-customer-browser{display:flex;min-width:0;flex-direction:column;border-left:1px solid var(--line);background:var(--surface-soft)}.territory-search{display:flex;align-items:center;gap:8px;margin:12px;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:var(--input-bg);color:var(--muted)}.territory-search .icon{width:16px}.territory-search input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:var(--ink);font:500 12px "DM Sans"}.territory-customer-list{min-height:0;flex:1;padding:0 8px 10px;overflow:auto}.territory-customer-row{display:grid;grid-template-columns:34px minmax(0,1fr);gap:9px;width:100%;padding:9px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--ink);cursor:pointer;text-align:left}.territory-customer-row:hover,.territory-customer-row.active{border-color:var(--line);background:var(--surface-raised)}.territory-customer-row.active{border-color:var(--green);background:var(--surface-selected)}.territory-customer-row>span{display:grid;width:34px;height:34px;place-items:center;border-radius:9px;background:var(--green-soft);color:var(--green);font-size:10px;font-weight:800}.territory-customer-row>div{min-width:0}.territory-customer-row strong,.territory-customer-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.territory-customer-row strong{font-size:12px}.territory-customer-row small{margin-top:3px;color:var(--muted);font-size:10px}.territory-customer-row em{display:block;margin-top:4px;color:var(--green);font-size:10px;font-style:normal;font-weight:700}
.territory-customer-insight{min-height:184px;padding:16px}.territory-insight-head{display:flex;gap:12px;align-items:flex-start}.territory-insight-avatar{display:grid;width:44px;height:44px;flex:none;place-items:center;border-radius:12px;background:var(--green-soft);color:var(--green);font-size:13px;font-weight:800}.territory-insight-head>div{min-width:0}.territory-insight-head h3{font-size:17px}.territory-insight-head p{margin-top:3px;color:var(--muted);font-size:11px}.territory-insight-actions{display:flex;gap:7px;margin-left:auto}.territory-insight-actions .button{padding:8px 10px;font-size:11px}.territory-insight-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:14px}.territory-insight-grid>div{padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft)}.territory-insight-grid span,.territory-insight-grid strong,.territory-insight-grid small{display:block}.territory-insight-grid span{color:var(--muted);font-size:9px;font-weight:800;text-transform:uppercase}.territory-insight-grid strong{margin-top:4px;font-size:13px}.territory-insight-grid small{margin-top:2px;color:var(--muted);font-size:10px}.territory-insight-grid strong.negative{color:var(--red)}.territory-insight-grid strong.positive{color:var(--green)}.territory-last-items{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.territory-last-items span{padding:5px 8px;border-radius:999px;background:var(--neutral-badge-bg);color:var(--neutral-badge-text);font-size:10px}
.territory-opportunity-filters{display:flex;gap:7px;padding:0 18px 14px}.territory-opportunity-filters button{padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:var(--control-bg);color:var(--muted);font:700 11px "DM Sans";cursor:pointer}.territory-opportunity-filters button.active{border-color:var(--green);background:var(--surface-selected);color:var(--green)}.territory-opportunity-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px;padding:0 18px 18px}.territory-opportunity-row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px 0;border-top:1px solid var(--line);color:var(--ink);cursor:pointer}.territory-opportunity-row:nth-child(-n+2){border-top:0}.territory-opportunity-row>span{display:grid;width:40px;height:40px;place-items:center;border-radius:11px;background:var(--amber-soft);color:var(--amber);font-size:11px;font-weight:800}.territory-opportunity-row.declining>span{background:var(--red-soft);color:var(--red)}.territory-opportunity-row.soon>span{background:var(--blue-soft);color:var(--blue)}.territory-opportunity-copy{min-width:0}.territory-opportunity-copy strong,.territory-opportunity-copy span,.territory-opportunity-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.territory-opportunity-copy strong{font-size:13px}.territory-opportunity-copy span{margin-top:3px;color:var(--muted);font-size:11px}.territory-opportunity-copy small{margin-top:4px;color:var(--green);font-size:10px;font-weight:700}.territory-opportunity-row>button{padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--control-bg);color:var(--green);font:800 10px "DM Sans";cursor:pointer}
.territory-empty{display:grid;min-height:120px;place-items:center;padding:24px;color:var(--muted);font-size:12px;line-height:1.5;text-align:center}
@media(max-width:1180px){.territory-planner-grid{grid-template-columns:1fr}.territory-opportunities-card{grid-column:auto}.territory-map-layout{grid-template-columns:minmax(0,1fr) 280px}.territory-opportunity-list{grid-template-columns:1fr}.territory-opportunity-row:nth-child(2){border-top:1px solid var(--line)}}
@media(max-width:700px){.territory-page-head{align-items:stretch}.territory-head-actions{display:grid;grid-template-columns:1fr 1fr}.territory-head-actions .button{justify-content:center;padding:10px 8px}.territory-mobile-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin:0 0 12px;padding:4px;border:1px solid var(--line);border-radius:11px;background:var(--control-bg)}.territory-mobile-tabs button{padding:8px 4px;border:0;border-radius:8px;background:transparent;color:var(--muted);font:700 10px "DM Sans"}.territory-mobile-tabs button.active{background:var(--control-active-bg);color:var(--green);box-shadow:0 1px 4px color-mix(in srgb,var(--overlay) 18%,transparent)}.territory-planner-grid{display:block}.territory-planner-grid>[data-territory-panel]{display:none}.territory-planner-grid>[data-territory-panel].mobile-active{display:block}.territory-card-head{align-items:stretch;flex-direction:column;gap:10px}.territory-month-controls{display:grid;grid-template-columns:32px 1fr 32px}.territory-calendar{grid-template-rows:24px repeat(6,47px);padding:8px}.territory-calendar .calendar-day{padding:2px}.territory-day-summary{grid-template-columns:1fr repeat(3,auto);gap:7px;padding:10px}.territory-day-summary>span{display:grid;text-align:center}.territory-visit-row{grid-template-columns:58px 3px minmax(0,1fr);gap:9px}.territory-visit-state{display:none}.territory-map-layout{display:flex;min-height:0;flex-direction:column}.territory-map-canvas{min-height:340px}.territory-customer-browser{height:240px;border-top:1px solid var(--line);border-left:0}.territory-customer-insight{padding:12px}.territory-insight-head{display:grid;grid-template-columns:40px minmax(0,1fr)}.territory-insight-avatar{width:40px;height:40px}.territory-insight-actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);width:100%;margin:0}.territory-insight-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.territory-opportunity-filters{display:grid;grid-template-columns:repeat(4,1fr);padding:0 10px 10px}.territory-opportunity-filters button{padding:8px 3px}.territory-opportunity-list{padding:0 12px 12px}.territory-opportunity-row{grid-template-columns:36px minmax(0,1fr) auto}.territory-opportunity-row>span{width:36px;height:36px}}
