.login-page{min-height:100dvh;display:grid;grid-template-columns:minmax(360px,42%) minmax(0,1fr);background:var(--bg-container)}.login-brand{min-height:100dvh;display:flex;flex-direction:column;justify-content:space-between;padding:48px clamp(40px,6vw,88px) 40px;color:#f7f8fa;background:#193c31;border-right:1px solid rgba(255,255,255,.08);box-sizing:border-box}.login-brand__identity{display:flex;align-items:center;gap:12px;font-weight:600}.login-brand__mark,.login-form-header__mobile-mark{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:40px;height:40px;border-radius:8px;color:#fff;background:var(--brand-primary);font-size:20px;font-weight:700}.login-brand__name{font-size:18px}.login-brand__content{max-width:500px;padding:72px 0 80px}.login-brand__kicker{display:block;margin-bottom:18px;color:#a9c8bc;font-size:13px;font-weight:600}.login-brand h1{margin:0;color:#fff;font-size:42px;line-height:1.2;text-wrap:balance}.login-brand__content>p{max-width:430px;margin:22px 0 0;color:#c8d9d2;font-size:17px;line-height:1.8;text-wrap:pretty}.login-brand__signal{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:40px;padding-top:22px;border-top:1px solid rgba(255,255,255,.12);color:#e2ece7;font-size:13px}.login-brand__signal span{display:inline-flex;align-items:center;gap:8px}.login-brand__signal span:before{width:5px;height:5px;border-radius:50%;background:#74b394;content:""}.login-brand__footer{display:flex;align-items:center;gap:9px;color:#a9beb5;font-size:12px}.login-brand__status{width:7px;height:7px;border-radius:50%;background:#55a875}.login-access{display:grid;place-items:center;min-width:0;padding:48px clamp(32px,7vw,112px);background:#fbfcfd;box-sizing:border-box}.login-form-shell{width:min(100%,420px)}.login-form-header{display:flex;align-items:center;gap:14px;margin-bottom:34px}.login-form-header__mobile-mark{display:none}.login-form-header h2{margin:0;color:var(--text-primary);font-size:28px;line-height:1.3;text-wrap:balance}.login-form-header p{margin:8px 0 0;color:var(--text-secondary);font-size:14px;line-height:1.6;text-wrap:pretty}.login-error{margin-bottom:22px;border-radius:var(--radius-md)}.login-form .ant-form-item{margin-bottom:21px}.login-form .ant-form-item-label{padding-bottom:7px}.login-form .ant-form-item-label>label{height:auto;color:var(--text-primary);font-size:14px;font-weight:600}.login-form .ant-input-affix-wrapper{min-height:48px;padding:8px 13px;border-color:#dce1e7;border-radius:var(--radius-md);background:#fff;box-shadow:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.login-form .ant-input-affix-wrapper:hover{border-color:#9c98cc}.login-form .ant-input-affix-wrapper-focused{border-color:var(--brand-primary);box-shadow:0 0 0 3px #4f46a51f}.login-form .ant-input-prefix{margin-right:10px;color:var(--text-tertiary)}.login-form .ant-input{font-size:15px}.login-form__options{min-height:24px;margin:-2px 0 26px}.login-form__options .ant-checkbox-wrapper{color:var(--text-secondary)}.login-form__submit{margin-bottom:0!important}.login-form__submit .ant-btn{min-height:48px;border-radius:var(--radius-md);font-size:15px;font-weight:600;box-shadow:0 8px 18px #4f46a52e;transition:transform var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}.login-form__submit .ant-btn:hover{transform:translateY(-1px);box-shadow:0 10px 22px #4f46a538}.login-form__submit .ant-btn:active{transform:translateY(0)}.login-form-footer{display:flex;justify-content:space-between;gap:16px;margin-top:32px;padding-top:20px;border-top:1px solid var(--border-subtle);color:var(--text-tertiary);font-size:12px}@media (max-width: 840px){.login-page{grid-template-columns:1fr}.login-brand{display:none}.login-access{min-height:100dvh;padding:40px 24px}.login-form-header__mobile-mark{display:inline-flex}}@media (max-width: 480px){.login-access{place-items:start center;padding:28px 20px calc(28px + env(safe-area-inset-bottom))}.login-form-shell{padding-top:8vh}.login-form-header{margin-bottom:28px}.login-form-header h2{font-size:24px}.login-form-footer{flex-direction:column;gap:5px}}@media (prefers-reduced-motion: reduce){.login-form__submit .ant-btn{transition:none}}:root{--brand-primary: #246b55;--brand-primary-hover: #195440;--color-success: #2f7d4c;--color-warning: #a86416;--color-error: #c23b3b;--color-info: #326da8;--bg-sidebar: #f2f4f1;--bg-layout: #f4f6f4;--bg-container: #ffffff;--bg-subtle: #f7f9f7;--border-subtle: #dde2de;--text-primary: #202522;--text-secondary: #69716c;--text-tertiary: #929a95;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 20px;--spacing-2xl: 24px;--spacing-3xl: 32px;--spacing-4xl: 40px;--spacing-5xl: 48px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--shadow-sm: 0 1px 2px rgba(31, 45, 38, .04);--shadow-md: 0 10px 28px rgba(31, 45, 38, .08);--shadow-lg: 0 18px 46px rgba(31, 45, 38, .12);--font-size-xs: 11px;--font-size-sm: 12px;--font-size-base: 14px;--font-size-md: 14px;--font-size-lg: 16px;--font-size-xl: 18px;--font-size-2xl: 20px;--font-size-3xl: 24px;--font-size-4xl: 30px;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease}body{margin:0;font-family:SF Pro Text,PingFang SC,Microsoft YaHei,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-layout);color:var(--text-primary)}#root{min-height:100dvh}*,*:before,*:after{box-sizing:border-box}button,input,textarea,select{font:inherit}*:focus-visible{outline-color:var(--brand-primary)}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#d9d9d9;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#bfbfbf}.app-shell{min-height:100dvh;background:var(--bg-layout)}.app-sider{position:relative;z-index:20;overflow:hidden;background:var(--bg-sidebar)!important;border-right:1px solid #dfe4e0;box-shadow:none;transition:width .2s ease,min-width .2s ease,max-width .2s ease!important}.app-brand{height:64px;padding:0 16px;display:flex;align-items:center;gap:11px;border-bottom:1px solid #e0e5e1}.app-brand.is-collapsed{justify-content:center;padding:0}.app-brand__mark{width:32px;height:32px;flex:none;display:grid;place-items:center;border-radius:7px;background:#183f33;color:#fff;box-shadow:inset 0 0 0 1px #ffffff1f,0 1px 2px #15392d29}.app-brand__mark span{font-size:14px;font-weight:750}.app-brand__copy{min-width:0;display:grid;gap:2px}.app-brand__copy strong{overflow:hidden;color:#1d2621;font-size:15px;font-weight:680;text-overflow:ellipsis;white-space:nowrap}.app-brand__copy span{color:#85908a;font-size:9px;font-weight:700;letter-spacing:.13em}.app-menu{height:calc(100dvh - 116px);overflow-y:auto;padding:10px 8px 20px!important;border-inline-end:0!important;background:transparent!important;font-size:13px}.app-menu .ant-menu-item,.app-menu .ant-menu-submenu-title{min-height:40px;margin-block:2px}.app-menu .ant-menu-submenu-title{color:#47514b;font-weight:570}.app-menu .ant-menu-sub{background:transparent!important}.app-menu .ant-menu-sub .ant-menu-item{color:#68716c}.app-menu .ant-menu-item-selected{position:relative;background:#dde9e2!important;color:#173e32!important;font-weight:620}.app-menu .ant-menu-item-selected:before{content:"";position:absolute;inset:9px auto 9px 0;width:3px;border-radius:0 3px 3px 0;background:#246b55}.app-menu .ant-menu-item:not(.ant-menu-item-selected):hover,.app-menu .ant-menu-submenu-title:hover{background:#e9edea!important;color:#202522!important}.app-sider__footer{position:absolute;inset:auto 0 0;height:52px;display:flex;align-items:center;justify-content:center;border-top:1px solid #e0e5e1;background:#f2f4f1eb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.app-sider__footer .ant-btn{width:36px;height:36px;color:#68716c}.app-main-layout{min-width:0;background:var(--bg-layout)}.app-header{height:56px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;line-height:normal;border-bottom:1px solid #e2e6e3;background:#ffffffeb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.app-header__context{min-width:0;display:flex;align-items:center;gap:10px}.app-header .ant-breadcrumb{color:#7c857f}.app-header .ant-breadcrumb li:last-child{color:#333b36;font-weight:600}.app-role-tag{margin:0;border-color:#c9d9d0;background:#eef5f1;color:#2e6854}.app-account{min-height:38px;color:#525b55}.app-content{min-width:0;min-height:calc(100dvh - 56px);overflow:auto;padding:28px clamp(20px,2.4vw,40px) 40px;background:var(--bg-layout)}.ant-table-tbody>tr:hover>td{background:#f5f8f6!important}.ant-card{transition:box-shadow var(--transition-base),transform var(--transition-base)}.ant-card:hover{box-shadow:none}.ant-tag{border-radius:var(--radius-sm)}.ant-btn-primary{border-radius:var(--radius-md)}.ant-modal-content{border-radius:var(--radius-xl)!important}.ant-table-thead>tr>th{background:#f7f9f7!important;color:#5c655f!important;font-size:12px;font-weight:650!important}.ant-table-tbody>tr>td{border-bottom-color:#edf0ee!important}.ant-btn-default{box-shadow:0 1px 1px #1f2d260a}.ant-input-affix-wrapper,.ant-select-selector{box-shadow:none!important}.ant-tabs .ant-tabs-tab{color:#69716c}.ant-tabs .ant-tabs-tab-active .ant-tabs-tab-btn{font-weight:650}.ant-btn{transition:all var(--transition-base)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes contentReveal{0%{opacity:.55}to{opacity:1}}@keyframes activeRail{0%{transform:scaleY(.2);opacity:0}to{transform:scaleY(1);opacity:1}}@keyframes skeletonPulse{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.skeleton-pulse{background:linear-gradient(90deg,#f0f0f0 25%,#e8e8e8,#f0f0f0 75%);background-size:200px 100%;animation:skeletonPulse 1.5s ease-in-out infinite}@keyframes statusPulse{0%{box-shadow:0 0 #52c41a66}70%{box-shadow:0 0 0 6px #52c41a00}to{box-shadow:0 0 #52c41a00}}.status-dot-online{width:8px;height:8px;border-radius:50%;background:var(--color-success);display:inline-block;animation:statusPulse 2s ease-in-out infinite}.page-fade-in{animation:fadeIn .3s ease}.page-slide-up{animation:slideUp .35s ease}.app-content>*{animation:contentReveal .18s ease-out}.app-menu .ant-menu-item,.app-menu .ant-menu-submenu-title{transition:color .18s ease,background .18s ease,transform .18s ease}.app-menu .ant-menu-item:not(.ant-menu-item-selected):hover,.app-menu .ant-menu-submenu-title:hover{transform:translate(2px)}.app-menu .ant-menu-item-selected:before{transform-origin:center;animation:activeRail .22s cubic-bezier(.2,.8,.2,1) both}.ant-btn:not(:disabled){transition:color .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .12s ease}.ant-btn:not(:disabled):active{transform:scale(.98)}.ant-btn .anticon{transition:transform .16s ease}.ant-btn:not(:disabled):hover .anticon{transform:translateY(-1px)}.ant-table-tbody>tr>td{transition:background .16s ease}.route-loading{min-height:calc(100dvh - 88px);padding:24px;display:grid;grid-template-rows:72px 52px minmax(320px,1fr);gap:16px;box-sizing:border-box}.route-loading>div{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:#fff}.route-loading__header{width:min(100%,520px)}.route-loading__toolbar{width:min(100%,760px)}.ops-page{min-width:0}.ops-page>.ant-tabs>.ant-tabs-nav{margin-bottom:18px}.ops-page>.ant-table-wrapper,.ops-page>.ant-spin-nested-loading>.ant-spin-container>.ant-table-wrapper{overflow:hidden;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-container)}.ops-page .ant-table-thead>tr>th{color:var(--text-secondary);font-size:13px;font-weight:600}.ops-page .ant-table-tbody>tr>td{vertical-align:middle}.ops-page .ant-tabs-tab-btn,.ops-page .ant-btn,.ops-page .ant-select-selection-item{white-space:nowrap}.page-header{padding:0 0 20px;margin:0 0 20px;border-bottom:1px solid var(--border-subtle)}.page-header__row{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.page-header__copy{min-width:0}.page-header__copy h1{margin:0;color:var(--text-primary);font-size:23px;font-weight:700;line-height:1.25}.page-header__copy p{max-width:720px;margin:7px 0 0;color:var(--text-secondary);font-size:13px;line-height:1.55}.page-header__actions{min-height:38px;flex:none;display:flex;align-items:center}.search-toolbar{position:relative;z-index:2;overflow:visible}.search-toolbar__filter{position:relative;z-index:1;width:150px;flex:0 0 150px}.search-toolbar__filter.is-open,.search-toolbar__filter:focus-within{z-index:50}.search-toolbar__select-trigger{width:100%;height:36px;padding:0 34px 0 12px;display:flex;align-items:center;gap:8px;border:1px solid var(--border-subtle);border-radius:7px;background:#fff;color:var(--text-tertiary);cursor:pointer;outline:none;text-align:left;transition:border-color .16s ease,box-shadow .16s ease}.search-toolbar__select-trigger.has-value{color:var(--text-primary)}.search-toolbar__select-trigger>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-toolbar__select-trigger:hover{border-color:#78a493}.search-toolbar__select-trigger:focus-visible,.search-toolbar__filter.is-open .search-toolbar__select-trigger{border-color:var(--brand-primary);box-shadow:0 0 0 2px #246b5524}.search-toolbar__select-arrow{position:absolute;right:11px;color:#9aa29d;font-size:11px;transition:transform .16s ease}.search-toolbar__filter.is-open .search-toolbar__select-arrow{transform:rotate(180deg)}.search-toolbar__select-clear{position:absolute;z-index:2;top:50%;right:27px;width:24px;height:28px;padding:0;display:grid;place-items:center;border:0;background:transparent;color:#b2b8b4;cursor:pointer;opacity:0;pointer-events:none;transform:translateY(-50%);transition:color .16s ease,opacity .16s ease}.search-toolbar__filter:hover .search-toolbar__select-clear,.search-toolbar__filter.is-open .search-toolbar__select-clear,.search-toolbar__select-clear:focus-visible{opacity:1;pointer-events:auto}.search-toolbar__select-clear:hover{color:#747d77}.search-toolbar__select-trigger.has-value{padding-right:54px}.search-toolbar__menu{position:absolute;z-index:500;top:calc(100% + 6px);left:0;width:max(100%,220px);overflow:hidden;border:1px solid #e1e6e2;border-radius:8px;background:#fff;box-shadow:0 14px 34px #1f2d2624,0 2px 8px #1f2d260f}.search-toolbar__filter.is-align-right .search-toolbar__menu{right:0;left:auto}.search-toolbar__menu-search{padding:8px;border-bottom:1px solid #eef1ef}.search-toolbar__menu-search .ant-input-affix-wrapper{height:34px}.search-toolbar__menu-options{max-height:272px;overflow-y:auto;padding:5px}.search-toolbar__option{width:100%;min-height:36px;padding:7px 9px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;border-radius:5px;background:transparent;color:var(--text-primary);cursor:pointer;text-align:left}.search-toolbar__option>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-toolbar__option:hover,.search-toolbar__option:focus-visible{background:#f1f5f2;outline:none}.search-toolbar__option.is-selected{background:#e7f0eb;color:#1e604b;font-weight:600}.search-toolbar__option .anticon{flex:none;color:var(--brand-primary)}.search-toolbar__menu-empty{padding:20px 12px;color:var(--text-tertiary);text-align:center}.search-toolbar__extra{margin-left:auto}.app-sider-backdrop{display:none}@media (max-width: 767px){.app-sider{position:fixed!important;inset:0 auto 0 0;z-index:1000;height:100dvh}.app-sider-backdrop{position:fixed;z-index:900;top:0;right:0;bottom:0;left:0;display:block;padding:0;border:0;background:#121d1857}.app-header{height:48px!important;padding:0 10px!important}.app-header__context>.ant-btn:first-child{width:38px;height:38px;color:var(--text-primary)}.app-header .ant-breadcrumb{display:none}.app-header .ant-btn>span:not(.anticon){display:none}.app-content{padding:16px 12px 24px!important;min-height:calc(100dvh - 48px)!important}.page-header{padding-bottom:12px!important;margin-bottom:12px!important}.page-header__row{align-items:stretch!important;flex-direction:column;gap:10px!important}.page-header__copy h1{font-size:19px!important}.page-header__actions{width:100%;min-width:0;overflow-x:auto}.page-header__actions>.ant-space{min-width:max-content}.search-toolbar .ant-input-search,.search-toolbar__filter{width:100%!important;flex-basis:100%!important}.search-toolbar__extra{width:100%;margin-left:0}.search-toolbar__extra>*{max-width:100%}.ant-modal{max-width:calc(100vw - 24px);margin:12px auto}.ant-modal-content{padding:18px!important}.ant-drawer-content-wrapper{max-width:100vw}.conversation-mode>.search-toolbar{display:none!important}}@media (prefers-reduced-motion: reduce){.page-fade-in,.page-slide-up,.skeleton-pulse,.status-dot-online,.app-content>*,.app-menu .ant-menu-item-selected:before{animation:none}html{scroll-behavior:auto!important}.app-content>*,.app-menu .ant-menu-item,.app-menu .ant-menu-submenu-title,.search-toolbar__select-trigger,.search-toolbar__select-arrow,.search-toolbar__select-clear{transition:none!important}}
