body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;cursor:default;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-user-select:none;user-select:none}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.app-frame{box-sizing:border-box;margin-inline:auto;padding-inline:24px;width:min(1440px,calc(100% - 40px))}.metric-equipment{--metric-fill:#eff8f4;--metric-border:#cddfd6}.metric-collection{--metric-fill:#fff9e9;--metric-border:#e9dfbd}.metric-users{--metric-fill:#eef5fd;--metric-border:#cfdded}.metric-pickup{--metric-fill:#fff2e9;--metric-border:#ecd8c8}.metric-recovery{--metric-fill:#f4f1fa;--metric-border:#ded7ed}.metric-errors{--metric-fill:#fcf0ef;--metric-border:#ebd5d3}.metric-carbon{--metric-fill:#f2f8ea;--metric-border:#d7e4c9}.analysis-group-cards>.ant-card,.dashboard-metric-pair>.ant-card{background:var(--metric-fill)!important;border-color:var(--metric-border)!important}.app-page,.app-shell{min-height:100vh}.app-content{min-height:calc(100vh - 76px);padding-block:40px}.app-page{box-sizing:border-box;display:flex;flex-direction:column;padding-block:24px}.app-content:has(.overview-page),.app-content:has(.overview-page)>.app-frame{display:grid;min-height:0}.app-content:has(.overview-page){padding-block:0}.app-page.overview-page{min-height:0;padding-bottom:16px}.overview-page>.ant-typography.overview-title{color:#1e293b;font-weight:800;letter-spacing:-.5px;margin:0 0 24px}@media (min-width:768px){.app-shell:has(.overview-page){height:100dvh;min-height:0}}@media (min-width:768px) and (max-width:1100px){.app-page.overview-page{padding-top:12px}}@media (max-width:575px){.app-frame{padding-inline:12px;width:100%}}#kakao-map,#map,#monitoring-map,a,button,input,textarea{-webkit-user-select:auto;user-select:auto}a,button{cursor:pointer}#root,.ant-layout,.ant-layout-content,body,html{background:#f0f7f4!important}body,html{height:100%;width:100%}input::-ms-clear,input::-ms-reveal{display:none}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0);font-family:sans-serif;line-height:1.15}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:initial;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{font-weight:500;margin-bottom:.5em;margin-top:0}p{margin-bottom:1em;margin-top:0}abbr[data-original-title],abbr[title]{border-bottom:0;cursor:help;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}address{font-style:normal;line-height:inherit;margin-bottom:1em}input[type=number],input[type=password],input[type=text],textarea{-webkit-appearance:none}dl,ol,ul{margin-bottom:1em;margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}code,kbd,pre,samp{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:1em}pre{margin-bottom:1em;margin-top:0;overflow:auto}figure{margin:0 0 1em}img{border-style:none;vertical-align:middle}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{caption-side:bottom;padding-bottom:.3em;padding-top:.75em;text-align:left}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{border:0;margin:0;min-width:0;padding:0}legend{color:inherit;display:block;font-size:1.5em;line-height:inherit;margin-bottom:.5em;max-width:100%;padding:0;white-space:normal;width:100%}progress{vertical-align:initial}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:none;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}.app-header-frame{padding-top:12px}.ant-layout-header.app-header{align-items:center;border:1px solid;border-radius:8px;box-shadow:0 4px 16px #2d4a3e0f;display:flex;height:64px;padding:0 20px 0 0;position:relative;z-index:1000}.app-brand{align-self:stretch;background:var(--brand-background);border-radius:7px 0 0 7px;display:flex;flex-direction:column;flex-shrink:0;gap:4px;justify-content:center;line-height:1.1;padding-inline:20px;white-space:nowrap}.app-brand strong{color:#ffb52b;font-size:22px;font-weight:900}.app-brand span{color:#d5e6da;font-size:11px;font-weight:600}.app-nav{display:flex;flex:1 1;justify-content:center;min-width:0;position:relative}.app-menu-indicator{--indicator-inset:8px;background:currentColor;border-radius:2px;bottom:0;height:2px;left:var(--indicator-inset);pointer-events:none;position:absolute;transition:transform .2s ease-out;width:calc(var(--menu-item-width) - var(--indicator-inset)*2)}@media (prefers-reduced-motion:reduce){.app-menu-indicator{transition:none}}.app-nav .app-menu{background:#0000;border-bottom:0;display:flex;font-size:15px;font-weight:600;justify-content:center;max-width:calc(130px*var(--menu-count));min-width:0;position:relative;width:100%}.app-nav .app-menu>.ant-menu-overflow-item{flex:none;max-width:100%;padding-inline:0;text-align:center;width:max(calc(100%/var(--menu-count)),108px)}.app-account-name{font-weight:600}.app-account-divider{background:#00000014;display:inline-block;height:16px;margin-inline:8px;width:1px}.app-account .app-account-action{color:inherit;font-size:13px;font-weight:700;padding:0}.app-account-action .anticon{color:var(--account-icon-color);margin-left:4px}.dashboard-panels{grid-gap:16px;display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}.dashboard-panels>.ant-card>.ant-card-body{display:flex;flex:1 1;flex-direction:column;min-height:0}.dashboard-map{border:1px solid #cbdcd2;border-radius:12px;flex:1 1;min-height:280px}@media (min-width:768px){.dashboard-panels{flex:1 1;grid-template:minmax(0,1fr) /repeat(2,minmax(0,1fr));min-height:160px}.dashboard-panels .dashboard-map,.dashboard-panels .live-feed-scroll{flex:1 1;height:auto;min-height:0}.dashboard-metric-pair>.ant-card>.ant-card-body{padding:clamp(8px,calc(5vh - 22px),24px) clamp(10px,1.5vw,24px)}}.dashboard-metric-pair,.dashboard-metrics{grid-gap:16px;display:grid;gap:16px}.dashboard-metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:24px}.dashboard-metric-pair{grid-template-rows:1fr 1fr;min-width:0}.dashboard-metric-pair>.ant-card:first-child .ant-statistic-content-prefix{color:#059669}.dashboard-metric-pair .ant-statistic-content{font-size:30px;font-weight:800}@media (min-width:768px) and (max-width:1100px){.dashboard-metric-pair,.dashboard-metrics{gap:12px}.dashboard-metrics{margin-bottom:16px}.dashboard-metric-pair>.ant-card>.ant-card-body{padding:8px 10px}.dashboard-metric-pair .ant-statistic-content{font-size:24px}}.dashboard-device-total{color:#64748b;font-size:14px;font-weight:600;white-space:nowrap}.dashboard-detail-trigger{background:#0000;border:0;border-radius:inherit;color:#547566;height:100%;inset:0;position:absolute;width:100%}.dashboard-detail-trigger .anticon{position:absolute;right:16px;top:16px}.dashboard-detail-trigger:focus-visible{outline:2px solid #059669;outline-offset:-3px}.dashboard-detail-popover{width:min(620px,calc(100vw - 24px))}.dashboard-detail-popover section{max-height:70vh;overflow:auto;overscroll-behavior:contain}.device-status-table{--device-status-row-height:42px}.device-status-table tr{height:var(--device-status-row-height)}.device-status-table .ant-table-container{min-height:calc((var(--device-status-page-size) + 1)*var(--device-status-row-height))}@media (max-width:991px){.dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:575px){.dashboard-metrics{grid-template-columns:minmax(0,1fr)}}.dashboard-page .ant-statistic .ant-statistic-content .ant-statistic-content-prefix{-webkit-margin-end:12px;margin-inline-end:12px}.ant-statistic-title{font-size:16px!important;margin-bottom:8px!important}.empty-table-row td{background:#f7faf8!important}.live-feed-scroll{height:clamp(290px,32vh,460px);list-style:none;margin:0;overflow-y:auto;padding:0 6px 0 0}.live-feed-event{grid-gap:4px 12px;border-bottom:1px solid #cbdcd2;display:grid;gap:4px 12px;grid-template-columns:1fr auto;padding:10px 0}.live-feed-event:first-child{padding-top:0}.live-feed-event:last-child{border-bottom:0}.live-feed-outcome{align-items:center;display:flex;font-size:13px;font-weight:700;gap:6px}.live-feed-event time{font-feature-settings:"tnum";color:#64748b;font-size:12px;font-variant-numeric:tabular-nums}.live-feed-message{font-size:13px;grid-column:1/-1;overflow-wrap:anywhere}.live-feed-empty{color:#64748b}.live-feed-scroll::-webkit-scrollbar{width:5px}.live-feed-scroll::-webkit-scrollbar-track{background:#0000}.live-feed-scroll::-webkit-scrollbar-thumb{background:#cbdcd2;border-radius:4px}#kakao-map,#monitoring-map{container-type:inline-size}.device-pin-anchor{max-width:min(320px,calc(100cqw - 16px));padding-bottom:50px;pointer-events:none;width:-webkit-max-content;width:max-content}.device-pin-card{grid-gap:6px;background:#f7faf8;border:1px solid #cbdcd2;border-radius:12px;box-shadow:0 4px 12px #2d4a3e16;box-sizing:border-box;color:#1e293b;display:grid;font-family:inherit;font-size:13px;gap:6px;line-height:1.4;overflow-wrap:anywhere;padding:10px 14px;pointer-events:auto;text-align:left;white-space:normal;width:100%;word-break:keep-all}.device-pin-card:focus-visible{outline:2px solid #087558}.device-pin-heading{align-items:center;display:flex;flex-wrap:wrap;gap:4px 12px;justify-content:space-between}.device-pin-status{border-radius:4px;font-size:11px;font-weight:700;padding:2px 6px;white-space:nowrap}.device-pin-status[data-state=normal]{background:#d8f3e7;color:#096044}.device-pin-status[data-state=planned]{background:#fff0cd;color:#785210}.device-pin-status[data-state=error]{background:#fde6e4;color:#9e3634}.device-pin-address{color:#50685d;font-size:12px}.ant-layout-sider{background:#f7faf8!important;border:1px solid #cbdcd2!important;box-shadow:0 4px 16px #2d4a3e0a}.ant-table{background:#0000!important}.ant-input-clear-icon,.ant-input::placeholder{color:#94a3b8!important}.ant-input-prefix{color:#64748b!important}.ant-input-affix-wrapper input:-webkit-autofill,input:-webkit-autofill{-webkit-text-fill-color:#1e293b!important;box-shadow:inset 0 0 0 1000px #fff!important;-webkit-transition:background-color 9999s ease-in-out 0s;transition:background-color 9999s ease-in-out 0s}.monitoring-stage{grid-gap:4px 12px;display:grid;flex:1 1;gap:4px 12px;grid-template:"previous wall next" minmax(0,1fr) ".        dots .   " auto /auto minmax(0,1fr) auto;margin-inline:-24px;min-height:0}.monitoring-wall{grid-gap:3px;background:#202b27;border-radius:10px;display:grid;gap:3px;grid-area:wall;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr));overflow:hidden;padding:3px}.monitoring-tile{margin:0;min-width:0;overflow:hidden;position:relative}.monitoring-frame{display:block;height:100%;inset:0;position:absolute;width:100%}.monitoring-tile figcaption{background:#0c1411d6;border-radius:4px;bottom:6px;color:#fff;font-size:clamp(11px,.94vw,14px);font-weight:600;line-height:1.4;max-width:calc(100% - 12px);padding:3px 7px;position:absolute;right:6px;text-align:right;word-break:keep-all}.monitoring-arrow{align-self:center;background:#15231ee0;border:1px solid #ffffff73;border-radius:8px;color:#fff;display:grid;font-size:18px;height:44px;padding:0;place-items:center;width:38px}.monitoring-arrow.previous{grid-area:previous}.monitoring-arrow.next{grid-area:next}.monitoring-arrow:hover{background:#233e33}.monitoring-dots{display:flex;grid-area:dots;place-self:center}.monitoring-dots button{background:#0000;border:0;border-radius:50%;display:grid;height:28px;padding:0;place-items:center;width:28px}.monitoring-dots button:after{background:#91a59b;border-radius:50%;content:"";height:7px;width:7px}.monitoring-dots button[aria-current=page]:after{background:#2d4a3e;height:10px;width:10px}.monitoring-page button:focus-visible{outline:2px solid #e5a531;outline-offset:1px}@media (max-width:767px){.app-shell:has(.monitoring-page){height:100dvh;min-height:720px}.monitoring-stage{gap:0 12px;grid-template:"wall     wall   wall" minmax(0,1fr) "previous dots   next" auto /auto minmax(0,1fr) auto;margin-inline:0}.monitoring-wall{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(8,minmax(0,1fr));margin-bottom:12px}.monitoring-arrow{height:36px}}@media (prefers-reduced-motion:no-preference){.monitoring-wall{animation:monitoring-page-in .18s ease-out}@keyframes monitoring-page-in{0%{opacity:.8}to{opacity:1}}}.ant-tabs-item,.ant-tabs-nav-wrap{color:#1e293b!important}.ant-table-placeholder .ant-empty-description{color:#64748b!important}.ant-input,.ant-input-affix-wrapper,.ant-input-wrapper,.ant-picker,.ant-select-selector{background:#fff!important;border-color:#cbdcd2!important;color:#1e293b!important}.ant-input-affix-wrapper>input.ant-input,.ant-input-group>input.ant-input{background:#0000!important;color:#1e293b!important}.ant-input-clear-icon,.ant-input::placeholder,.ant-select-selection-placeholder{color:#94a3b8!important}.ant-input-affix-wrapper input:-webkit-autofill,.ant-input-wrapper input:-webkit-autofill,input:-webkit-autofill{-webkit-text-fill-color:#1e293b!important;background-color:#fff!important;box-shadow:inset 0 0 0 1000px #fff!important;-webkit-transition:background-color 9999s ease-in-out 0s,color 9999s ease-in-out 0s!important;transition:background-color 9999s ease-in-out 0s,color 9999s ease-in-out 0s!important}.analysis-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:24px}.analysis-header label{align-items:center;color:#344c42;display:flex;gap:8px}.analysis-header .ant-select{min-width:192px}.analysis-report-table .ant-card-extra{max-width:40%}.analysis-report-table .ant-card-extra input{min-width:0}.analysis-report-table small{color:#50665b;display:block;margin-top:8px}.analysis-summary{display:flex;flex-wrap:wrap;gap:20px 16px;margin-bottom:24px}.analysis-metric-group{flex:1 1;min-width:0}.analysis-metric-group h4{color:#344c42;font-size:14px;margin:0 0 8px}.analysis-group-cards{grid-gap:12px;display:grid;gap:12px}.analysis-metric-group.metric-equipment{flex-basis:100%}.analysis-metric-group.metric-equipment .analysis-group-cards{column-gap:16px;grid-template-columns:repeat(3,minmax(0,1fr))}.analysis-group-cards .ant-card-body{padding:16px 20px}.analysis-group-cards .ant-statistic .ant-statistic-content .ant-statistic-content-prefix{-webkit-margin-end:12px;margin-inline-end:12px}.analysis-group-cards .ant-statistic-content-suffix{font-size:.68em}@media (max-width:767px){.analysis-summary{flex-direction:column}.analysis-group-cards,.analysis-metric-group.metric-equipment .analysis-group-cards{gap:10px;grid-template-columns:repeat(auto-fit,minmax(min(165px,100%),1fr))}.analysis-group-cards .ant-card-body{padding:12px}}.ant-typography{color:#1e293b!important}.ant-statistic-title{color:#64748b!important;font-size:13px!important;font-weight:700!important}.ant-statistic-content{color:#1e293b!important;font-weight:800!important}.ant-table-cell-fix-right:after{border-left:1px solid #cbdcd2!important;box-shadow:none!important}.ant-input,.ant-input-affix-wrapper{background:#fff!important;border-color:#cbdcd2!important;color:#1e293b!important}.ant-input-affix-wrapper>input.ant-input{background:#0000!important}.ant-input::placeholder{color:#94a3b8!important}.ant-pagination-next .ant-pagination-item-link,.ant-pagination-prev .ant-pagination-item-link{color:#64748b!important}.ant-tabs-item,.ant-tabs-nav-wrap,.ant-typography{color:#1e293b!important}.ant-card{background:#f7faf8!important;border:1px solid #cbdcd2!important;box-shadow:0 4px 16px #2d4a3e0a}.ant-tabs-card>.ant-tabs-nav .ant-tabs-tab{background:#e2f0e9!important;border-color:#cbdcd2!important}.ant-tabs-card>.ant-tabs-nav .ant-tabs-tab-active{background:#f7faf8!important;border-bottom-color:#f7faf8!important}.ant-tabs-tab-btn{color:#64748b!important}.ant-tabs-tab-active .ant-tabs-tab-btn{color:#1e293b!important;font-weight:700!important}.dark-sub-tabs>.ant-tabs-nav .ant-tabs-tab{background:#f0f7f4!important}.dark-sub-tabs>.ant-tabs-nav .ant-tabs-tab-active{background:#e2f0e9!important;border-color:#cbdcd2!important}.ant-table{background:#f7faf8!important;color:#1e293b!important}.ant-table-thead>tr>th{background:#ebf2ee!important;border-bottom:2px solid #cbdcd2!important;color:#1e293b!important;font-weight:700!important}.ant-table-tbody>tr>td{border-bottom:1px solid #cbdcd2!important;color:#1e293b!important}.ant-table-tbody>tr:hover>td{background:#e3ede7!important}.ant-table-cell-fix-left,.ant-table-cell-fix-right{background:#f7faf8!important}.ant-form-item-label>label{color:#1e293b!important;font-weight:600!important}.ant-input,.ant-input-password,.ant-picker,.ant-select-selector{background:#fff!important;border-color:#cbdcd2!important;color:#1e293b!important}.ant-input[disabled]{background:#f0f7f4!important;color:#64748b!important}.ant-input::placeholder,.ant-select-selection-placeholder{color:#94a3b8!important}.ant-picker-suffix,.ant-select-arrow{color:#64748b!important}.dark-descriptions .ant-descriptions-item-label{background:#f8fafc!important;border-color:#cbdcd2!important;color:#1e293b!important;font-weight:600!important}.dark-descriptions .ant-descriptions-item-content{background:#f7faf8!important;border-color:#cbdcd2!important}.ant-modal-content{background:#f7faf8!important;border:1px solid #cbdcd2!important;box-shadow:0 20px 25px -5px #2d4a3e1a!important;color:#1e293b!important}.ant-modal-header{background:#0000!important;border-bottom:1px solid #cbdcd2!important;margin-bottom:16px!important}.ant-modal-title{color:#1e293b!important;font-weight:800!important}.ant-modal-close{color:#64748b!important}.ant-modal-close:hover{color:#1e293b!important}.ant-modal-footer{border-top:1px solid #cbdcd2!important;margin-top:16px!important;padding-top:12px!important}.ant-modal-footer .ant-btn-default{background:#e2f0e9!important;border:none!important;color:#1e293b!important}.ant-pagination,.ant-pagination-item,.ant-pagination-item a,.ant-table-pagination{user-select:none!important;-webkit-user-select:none!important}.ant-pagination-item a{color:#64748b!important}.ant-pagination-item-active a{color:#fff!important}.ant-pagination-item-active{background:#10b981!important;border-color:#10b981!important}.ant-pagination-item-link,.ant-pagination-prev .ant-pagination-item-link{color:#64748b!important}.login-page{align-items:center;display:flex;justify-content:center;min-height:calc(100vh - 156px);padding:24px}.login-card{border-radius:8px!important;box-shadow:0 16px 40px #2d4a3e1a!important;max-width:420px;width:100%}.login-card .ant-card-body{padding:32px!important}.login-brand{align-items:center;display:flex;flex-direction:column;gap:6px;margin-bottom:28px}.login-logo{align-items:center;background:#1f3a2f;border-radius:8px;box-shadow:0 8px 18px #1f3a2f29;color:#f0a500;display:inline-flex;font-size:23px;font-weight:900;height:54px;justify-content:center;letter-spacing:0;min-width:128px;padding:0 20px}.login-subtitle{color:#64748b!important;font-size:13px;font-weight:700}.login-heading{margin-bottom:22px;text-align:center}.login-heading .ant-typography{margin-bottom:8px!important}.google-login-button{border-color:#cbdcd2;color:#1e293b;font-weight:800;height:46px}.google-login-button:hover{border-color:#10b981!important;color:#1b3328!important}.login-policy{color:#64748b;font-size:13px;width:100%}.login-policy div{align-items:center;display:flex;gap:8px}.login-policy .anticon{color:#10b981}.login-back-link{color:#64748b;display:block;font-size:13px;font-weight:700;margin-top:24px;text-align:center}.login-back-link:hover{color:#1b3328}