:root{--bg-page:#f5f7fa;--bg-surface:#fff;--bg-subtle:#fafafa;--bg-section:#fff;--bg-highlight:#fff7e6;--bg-info:#e6f4ff;--bg-success:#f6ffed;--bg-warning:#fff7e6;--bg-danger:#fff1f0;--bg-tile-accent:#fafbfc;--text-primary:#1f2933;--text-secondary:#6b7785;--text-muted:#8c8c8c;--text-inverse:#fff;--border:#f0f0f0;--border-strong:#d9d9d9;--shadow-sm:0 1px 3px rgba(0,0,0,.06);--shadow-md:0 4px 12px rgba(0,0,0,.08);--shadow-phone:0 6px 18px rgba(0,0,0,.15);--status-good:#237804;--status-bad:#a8071a}[data-theme=dark]{--bg-page:#0d1117;--bg-surface:#161b22;--bg-subtle:#1c232d;--bg-section:#161b22;--bg-highlight:#2d2210;--bg-info:#0d2b4a;--bg-success:#0e2f1d;--bg-warning:#2d2210;--bg-danger:#3a1414;--bg-tile-accent:#1c232d;--text-primary:#e6edf3;--text-secondary:#9ca3af;--text-muted:#6e7681;--text-inverse:#0d1117;--border:#30363d;--border-strong:#484f58;--shadow-sm:0 1px 3px rgba(0,0,0,.5);--shadow-md:0 4px 12px rgba(0,0,0,.5);--shadow-phone:0 6px 18px rgba(0,0,0,.6);--status-good:#56d364;--status-bad:#f85149}body,html{margin:0;padding:0;background:var(--bg-page);color:var(--text-primary);font-family:var(--font-family-base,Pretendard,-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Apple SD Gothic Neo","Malgun Gothic",sans-serif);font-size:var(--font-size-base,14px);-webkit-font-smoothing:antialiased;transition:background .18s ease,color .18s ease}.ant-card{background:var(--card-default-bg,var(--bg-surface))!important;border-color:var(--card-default-border,var(--border))!important;border-radius:var(--card-default-radius,var(--radius-card,8px))!important;box-shadow:var(--card-default-shadow,var(--shadow-card,0 1px 3px rgba(0,0,0,.3)));transition:box-shadow .18s ease,border-radius .18s ease,background .18s ease}.ant-card:hover{box-shadow:var(--shadow-hover,var(--card-default-shadow,var(--shadow-card)))}.ant-card-bordered{border-color:var(--card-default-border,var(--border))}.ant-card-head{background:var(--card-header-bg,transparent)!important;border-radius:var(--card-default-radius,8px) var(--card-default-radius,8px) 0 0!important}.ant-card-body{padding:var(--card-padding-y,14px) var(--card-padding-x,16px)!important}.kpi-tile{background:var(--card-kpi-bg,var(--bg-surface))!important;border:1px solid var(--card-kpi-border,var(--border))!important;border-radius:var(--card-kpi-radius,var(--radius-tile,6px))!important;box-shadow:var(--card-kpi-shadow,var(--shadow-sm));padding:var(--card-kpi-padding-y,12px) var(--card-kpi-padding-x,14px)!important}.section-card{background:var(--card-section-bg,var(--bg-surface));border:1px solid var(--card-section-border,var(--border));border-radius:var(--card-section-radius,var(--radius-card,8px));box-shadow:var(--card-section-shadow,var(--shadow-md));padding:var(--card-section-padding-y,18px) var(--card-section-padding-x,20px)}.section-card-header{background:var(--card-section-header-bg,transparent)}.style-tile{background:var(--card-tile-bg,var(--bg-tile-accent));border:1px solid var(--card-tile-border,var(--border));border-radius:var(--card-tile-radius,var(--radius-tile,6px));padding:var(--card-tile-padding-y,10px) var(--card-tile-padding-x,12px)}.ant-btn{border-radius:var(--radius-button,6px)!important;font-weight:var(--button-weight,500)!important;padding-top:var(--button-padding-y,4px)!important;padding-bottom:var(--button-padding-y,4px)!important}.ant-input,.ant-input-affix-wrapper,.ant-select-selector{border-radius:var(--radius-input,6px)!important}.ant-tag{border-radius:var(--radius-pill,14px)!important}.section-header h1,.t-h1,h1.ant-typography{font-size:var(--text-h1-size,28px);font-weight:var(--text-h1-weight,800);line-height:var(--text-h1-line,1.2);color:var(--text-primary)}.ant-card-head-title,.t-h2,h2.ant-typography{font-size:var(--text-h2-size,20px);font-weight:var(--text-h2-weight,700);line-height:var(--text-h2-line,1.3);color:var(--text-primary)}.ant-modal-title,.t-h3,h3.ant-typography{font-size:var(--text-h3-size,16px);font-weight:var(--text-h3-weight,700);line-height:var(--text-h3-line,1.35);color:var(--text-primary)}.t-body{font-size:var(--text-body-size,14px);font-weight:var(--text-body-weight,400);line-height:var(--text-body-line,1.5);color:var(--text-primary)}.section-header .sub,.t-meta{font-size:var(--text-meta-size,12px);font-weight:var(--text-meta-weight,400);line-height:var(--text-meta-line,1.4);color:var(--text-secondary)}.kpi-tile .label,.t-label{font-size:var(--text-label-size,11px);font-weight:var(--text-label-weight,600);letter-spacing:var(--text-label-letter,.4px);text-transform:uppercase;color:var(--text-secondary)}.kpi-tile .value,.t-kpi{font-size:var(--text-kpi-size,32px);font-weight:var(--text-kpi-weight,800);line-height:var(--text-kpi-line,1.1);color:var(--text-primary)}.t-kpi-mini{font-size:var(--text-kpi-mini-size,20px);font-weight:var(--text-kpi-mini-weight,700)}.ant-btn-primary:hover{box-shadow:var(--glow-accent,none)}*{box-sizing:border-box}a{color:inherit;text-decoration:none}.leaflet-container{width:100%;height:100%;font-family:inherit;z-index:0;background:var(--bg-subtle)}.map-label{background:var(--bg-surface);border:1px solid var(--border);border-radius:4px;font-size:11px;padding:2px 6px;white-space:nowrap;font-weight:500;color:var(--text-primary)}.map-label.profit-good{border-color:#52c41a;color:var(--status-good)}.map-label.profit-bad{border-color:#ff4d4f;color:var(--status-bad)}.div-icon-vehicle{background:#1677ff;color:#fff;border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;border:2px solid var(--bg-surface);box-shadow:0 1px 4px rgba(0,0,0,.35)}.div-icon-vehicle.idle{background:#8c8c8c}.div-icon-vehicle.full{background:#faad14}.div-icon-hub{width:14px;height:14px;border-radius:3px;border:2px solid var(--bg-surface);box-shadow:0 1px 3px rgba(0,0,0,.4)}.div-icon-hub.collection_center{background:#1677ff}.div-icon-hub.sorting_plant{background:#722ed1}.div-icon-hub.washing_plant{background:#13c2c2}.div-icon-hub.compounding_plant{background:#fa541c}.div-icon-hub.delivery_dropoff{background:#389e0d}.div-icon-pickup{width:8px;height:8px;border-radius:50%;border:1px solid hsla(0,0%,100%,.85);opacity:.85}.div-icon-pickup.residential{background:#2f54eb}.div-icon-pickup.commercial{background:#fa8c16}.div-icon-pickup.industrial{background:#d4380d}.kpi-tile{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;padding:14px 18px;transition:background .18s ease,border-color .18s ease}.kpi-tile .label{font-size:11px;color:var(--text-secondary);letter-spacing:.4px;text-transform:uppercase}.kpi-tile .value{font-size:22px;font-weight:700;margin-top:4px;color:var(--text-primary)}.kpi-tile .delta{font-size:11px;color:var(--text-secondary);margin-top:2px}.kpi-tile .delta.up{color:var(--status-good)}.kpi-tile .delta.down{color:var(--status-bad)}.phone-mockup{border:8px solid #1f2933;border-radius:32px;background:var(--bg-page);padding:14px 12px;box-shadow:var(--shadow-phone);width:232px;margin:0 auto}[data-theme=dark] .phone-mockup{background:#2a313c}.phone-mockup .notch{width:64px;height:6px;background:#1f2933;border-radius:4px;margin:-8px auto 8px}.phone-mockup .push{background:var(--bg-surface);color:var(--text-primary);border-radius:12px;padding:10px 12px;margin-bottom:8px;box-shadow:var(--shadow-sm);font-size:12px}.phone-mockup .push .src{font-size:10px;color:var(--text-muted)}.phone-mockup .push .title{font-weight:700;margin-top:1px;color:var(--text-primary)}.phone-mockup .push .body{color:var(--text-secondary);margin-top:2px;line-height:1.4}.gantt-cell{height:22px;border-radius:3px;font-size:10px;color:#fff;display:flex;align-items:center;padding:0 6px;white-space:nowrap;overflow:hidden}.gantt-cell.completed{background:#52c41a}.gantt-cell.in_transit{background:#1677ff}.gantt-cell.planned{background:var(--border-strong);color:var(--text-secondary)}.gantt-cell.skipped{background:#ff4d4f}.section-header{background:var(--bg-section);border-bottom:1px solid var(--border);padding:16px 24px;transition:background .18s ease,border-color .18s ease}.section-header h1{font-size:18px;margin:0;font-weight:700;color:var(--text-primary)}.section-header .sub{font-size:12px;color:var(--text-secondary);margin-top:2px}[data-theme=dark] .ant-card-bordered{border-color:var(--border)}.sidebar-bottom-tray .ant-menu-item,.sidebar-bottom-tray .ant-menu-submenu-title{height:32px;line-height:32px;font-size:12px}.sidebar-bottom-tray .ant-menu-submenu-arrow{color:var(--text-muted)}.sidebar-bottom-tray .ant-menu-title-content,.sidebar-bottom-tray .anticon{color:var(--text-secondary)}.sidebar-bottom-tray .ant-menu-item-selected .ant-menu-title-content,.sidebar-bottom-tray .ant-menu-item-selected .anticon{color:var(--text-primary)}.scenario-report-modal-wrap{display:flex!important;justify-content:center!important;align-items:flex-start!important;padding-top:16px!important}.scenario-report-modal{max-width:98vw!important;width:98vw!important;top:0!important;padding-bottom:0!important}.scenario-report-modal .ant-modal-content{max-width:none!important;width:100%!important}.app-header-grid{display:grid!important;grid-template-columns:auto 1fr auto;align-items:center;grid-gap:12px;gap:12px}.app-header-grid .cell-2,.app-header-grid .cell-3{display:none!important}@media (min-width:2200px){.app-header-grid{grid-template-columns:auto 1fr 1fr auto}.app-header-grid .cell-2{display:flex!important}}@media (min-width:4200px){.app-header-grid{grid-template-columns:auto 1fr 1fr 1fr auto}.app-header-grid .cell-3{display:flex!important}}.scenario-layout{display:flex;flex-direction:column;gap:16px}@media (min-width:2200px) and (max-width:4199px){aside.ant-layout-sider{flex:0 0!important;max-width:0!important;min-width:0!important;width:0!important;overflow:hidden!important}.scenario-layout{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;grid-template-areas:"ai ops" "ai situation";grid-gap:16px;gap:16px;height:calc(100vh - 84px)}.scenario-layout>section[data-region=ai]{grid-area:ai}.scenario-layout>section[data-region=ops]{grid-area:ops}.scenario-layout>section[data-region=situation]{grid-area:situation}.scenario-layout>section{overflow-y:auto;height:100%;min-height:0}}.home-3col-layout{display:flex;flex-direction:column;gap:16px}@media (min-width:4200px){.home-3col-layout{display:grid;grid-template-columns:calc(33.3333vw - 240px) 33.3333vw 33.3333vw;grid-template-rows:1fr;grid-template-areas:"platform pillars roadmap";grid-gap:0;gap:0;height:calc(100vh - 84px)}.home-3col-layout>section[data-region=platform]{grid-area:platform}.home-3col-layout>section[data-region=pillars]{grid-area:pillars}.home-3col-layout>section[data-region=roadmap]{grid-area:roadmap}.home-3col-layout>section{overflow-y:auto;height:100%;min-height:0;padding:0 12px}}.data-catalog-page{width:100%}@media (min-width:4200px){.data-catalog-page{width:33.3333vw;margin-left:calc(33.3333vw - 240px);box-sizing:border-box}.scenario-layout{display:grid;grid-template-columns:calc(33.3333vw - 240px) 33.3333vw 33.3333vw;grid-template-rows:1fr;grid-template-areas:"ai ops situation";grid-gap:0;gap:0;height:calc(100vh - 84px)}.scenario-layout>section[data-region=ai]{grid-area:ai}.scenario-layout>section[data-region=ops]{grid-area:ops}.scenario-layout>section[data-region=situation]{grid-area:situation}.scenario-layout>section{overflow-y:auto;height:100%;min-height:0;padding:0 12px}}