@keyframes ag-spin{to{transform:rotate(360deg)}}.ag-centered{display:flex;align-items:center;justify-content:center;height:100vh;background:var(--bg);font-family:Segoe UI,system-ui,sans-serif}.ag-card-auth{background:var(--s1);border:1px solid var(--b1);border-radius:8px;padding:32px 36px;max-width:420px;text-align:center;box-shadow:0 6px 18px #0000000f}.ag-icon-bubble{width:48px;height:48px;border-radius:24px;display:flex;align-items:center;justify-content:center;margin:0 auto 14px}.ag-title{font-size:16px;font-weight:600;color:var(--t1);margin-bottom:6px}.ag-error-msg{font-size:12px;color:var(--t3);line-height:1.5;margin-bottom:12px}.ag-retry-btn{background:var(--acc);color:#fff;border:none;border-radius:4px;padding:8px 16px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit}.ag-spinner{width:36px;height:36px;border:3px solid var(--b1);border-top:3px solid var(--acc);border-radius:50%;animation:ag-spin .9s linear infinite;margin:0 auto 14px}.ag-loading-title{font-size:13px;font-weight:600;color:var(--t1);margin-bottom:4px}.ag-loading-sub{font-size:11px;color:var(--t3)}@keyframes ad-fade{0%{opacity:0}to{opacity:1}}@keyframes ad-slide{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes ad-spin{to{transform:rotate(360deg)}}.ad-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a52;z-index:200;animation:ad-fade .18s ease-out}.ad-aside{position:fixed;top:0;left:0;bottom:0;width:320px;background:var(--s1);border-right:1px solid var(--b1);box-shadow:4px 0 18px #0000001f;display:flex;flex-direction:column;z-index:201;font-family:Segoe UI,system-ui,sans-serif;animation:ad-slide .22s ease-out}.ad-head{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--b2);background:var(--s2)}.ad-head__close{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--b2);border-radius:6px;background:var(--s1);color:var(--t2);cursor:pointer;padding:0}.ad-head__back{display:inline-flex;align-items:center;gap:4px;background:transparent;border:none;color:var(--acc);font-size:11px;font-weight:600;font-family:inherit;cursor:pointer;padding:4px 6px;border-radius:4px}.ad-title-wrap{padding:14px 16px 6px}.ad-title{font-size:16px;font-weight:700;color:var(--t1);letter-spacing:.01em}.ad-body{flex:1;overflow-y:auto;padding:8px 12px 16px}.ad-loading{padding:24px 8px;text-align:center}.ad-loading__spinner{width:28px;height:28px;border:3px solid var(--b2);border-top:3px solid var(--acc);border-radius:50%;animation:ad-spin .9s linear infinite;margin:0 auto 10px}.ad-loading__label{font-size:11px;color:var(--t3)}.ad-error{background:var(--red-d);border:1px solid var(--red-b);border-radius:6px;padding:10px 12px;font-size:11px;color:var(--red);display:flex;align-items:center;gap:6px}.ad-empty{padding:32px 8px;text-align:center;color:var(--t3);font-size:11px}.ad-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ad-item{position:relative;background:var(--s1);border:1px solid var(--b2);border-radius:8px;padding:12px 8px 10px;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;transition:border-color .15s,box-shadow .15s,background .15s;box-shadow:none}.ad-item:hover{background:var(--s2)}.ad-item.is-menu-open{border-color:var(--acc);box-shadow:0 2px 6px #0078d426}.ad-item__logo{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;font-weight:700;flex-shrink:0;overflow:hidden}.ad-item__logo--placeholder{background:var(--s2)}.ad-item__logo-img{width:100%;height:100%;object-fit:cover;display:block}.ad-item__name{font-size:11px;color:var(--t1);font-weight:600;text-align:center;line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;width:100%}.ad-item__more{position:absolute;top:4px;right:4px;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:4px;color:var(--t3);cursor:pointer;padding:0}.ad-item__more.is-open{background:var(--s2)}.ad-item__menu{position:absolute;top:28px;right:4px;background:var(--s1);border:1px solid var(--b1);border-radius:6px;box-shadow:0 6px 14px #0000001f;padding:4px;z-index:5;min-width:140px}.ad-item__menu-btn{width:100%;display:flex;align-items:center;gap:6px;padding:6px 8px;background:transparent;border:none;border-radius:4px;color:var(--t2);font-size:11px;font-family:inherit;cursor:pointer;text-align:left}.ad-item__menu-btn:hover{background:var(--s2)}.ad-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a66;z-index:300;display:flex;align-items:center;justify-content:center;font-family:Segoe UI,system-ui,sans-serif}.ad-modal{background:var(--s1);border:1px solid var(--b1);border-radius:10px;width:380px;max-width:calc(100vw - 32px);box-shadow:0 12px 32px #0000002e;overflow:hidden}.ad-modal__head{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--b2);background:var(--s2)}.ad-modal__title{font-size:12px;font-weight:600;color:var(--t1)}.ad-modal__close{width:24px;height:24px;border:none;background:transparent;color:var(--t3);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:4px}.ad-modal__close:disabled{cursor:not-allowed}.ad-modal__body{padding:16px 18px;text-align:center}.ad-modal__icon{width:44px;height:44px;border-radius:22px;background:var(--acc-d);color:var(--acc);display:flex;align-items:center;justify-content:center;margin:0 auto 10px}.ad-modal__msg{font-size:13px;font-weight:600;color:var(--t1);margin-bottom:6px}.ad-modal__privacy{font-size:11px;color:var(--t3);line-height:1.5}.ad-modal__privacy-link{color:var(--acc);font-weight:600;display:inline-flex;align-items:center;gap:3px}.ad-modal__error{margin-top:12px;background:var(--red-d);border:1px solid var(--red-b);border-radius:6px;padding:6px 10px;font-size:10px;color:var(--red);display:flex;align-items:center;gap:5px;justify-content:center}.ad-modal__foot{padding:10px 14px;border-top:1px solid var(--b2);display:flex;justify-content:center;gap:8px}.ad-modal__btn{border-radius:5px;padding:6px 18px;font-size:11px;font-weight:600;font-family:inherit;cursor:pointer}.ad-modal__btn.cancel{background:var(--s1);border:1px solid var(--b1);color:var(--t2)}.ad-modal__btn.accept{background:var(--acc);border:none;color:#fff;padding:6px 20px}.ad-modal__btn.accept:disabled{cursor:not-allowed;opacity:.6}.ad-modal__btn:disabled{cursor:not-allowed}@keyframes pdc-spin{to{transform:rotate(360deg)}}.pdc-state{display:flex;align-items:center;justify-content:center;padding:40px;font-family:Segoe UI,system-ui,sans-serif}.pdc-error-card{background:var(--s1);border:1px solid var(--b1);border-radius:8px;padding:24px 28px;max-width:480px;text-align:center}.pdc-error-icon{width:48px;height:48px;border-radius:24px;background:#ef44441f;display:flex;align-items:center;justify-content:center;margin:0 auto 14px;color:var(--red)}.pdc-error-title{font-size:14px;font-weight:600;color:var(--t1);margin-bottom:6px}.pdc-error-msg{font-size:12px;color:var(--t3);line-height:1.5;margin-bottom:12px}.pdc-retry-btn{background:var(--acc);color:#fff;border:none;border-radius:4px;padding:8px 16px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit}.pdc-loading-inner{text-align:center}.pdc-spinner{width:36px;height:36px;border:3px solid var(--b1);border-top:3px solid var(--acc);border-radius:50%;animation:pdc-spin .9s linear infinite;margin:0 auto 14px}.pdc-loading-title{font-size:13px;font-weight:600;color:var(--t1);margin-bottom:4px}:root{--bg: #f5f5f5;--s1: #ffffff;--s2: #f0f2f5;--s3: #e8ebf0;--b1: #d1d5db;--b2: #e5e7eb;--nav-bg: #1b2a4a;--t1: #1f2937;--t2: #374151;--t3: #6b7280;--t4: #9ca3af;--acc: #0078d4;--acc-d: rgba(0, 120, 212, .08);--acc-b: rgba(0, 120, 212, .2);--grn: #0e7a0d;--grn-d: rgba(14, 122, 13, .06);--grn-b: rgba(14, 122, 13, .2);--wrn: #c87a00;--wrn-d: rgba(200, 122, 0, .06);--wrn-b: rgba(200, 122, 0, .2);--red: #c42b1c;--red-d: rgba(196, 43, 28, .06);--red-b: rgba(196, 43, 28, .2);--pur: #6b21a8;--pur-d: rgba(107, 33, 168, .06);--pur-b: rgba(107, 33, 168, .2);--cyn: #0e7490;--teal: #0f766e;--font: "Segoe UI", system-ui, sans-serif}input:focus,input:focus-visible,select:focus,select:focus-visible,textarea:focus,textarea:focus-visible,button:focus-visible,[role=listbox]:focus-visible,[role=combobox]:focus-visible{outline:1px solid var(--acc);outline-offset:0}.h-100{height:100%}.mh-0{min-height:0}.w-100{width:100%}.mw-0{min-width:0}.flex-row{display:flex;align-items:center}.flex-col{display:flex;flex-direction:column}.view-stack{display:flex;flex-direction:column;gap:12px}.stat-grid{display:grid;gap:6px}.stat-grid.cols-2{grid-template-columns:repeat(2,1fr)}.stat-grid.cols-3{grid-template-columns:repeat(3,1fr)}.stat-grid.cols-4{grid-template-columns:repeat(4,1fr)}.stat-grid.cols-5{grid-template-columns:repeat(5,1fr)}.stat-grid.cols-6{grid-template-columns:repeat(6,1fr)}.cell-name{color:var(--t1);font-weight:700}.cell-mono{font-family:monospace}.cell-id{font-family:monospace;font-size:9px;color:var(--t4)}.cell-text-2{color:var(--t2);font-size:10px;white-space:normal}.cell-text-3{color:var(--t3);font-size:10px;white-space:normal}.cell-text-3-tight{color:var(--t3);font-size:10px}.cell-mono-strong{font-family:monospace;font-weight:700}.cell-progress{display:flex;align-items:center;gap:4px}.cell-progress.gap-3{gap:3px}.cell-progress__bar{width:60px}.cell-progress__bar.w-50{width:50px}.cell-progress__bar.w-60{width:60px}.cell-progress__bar.w-80{width:80px}.cell-progress__pct{font-size:9px;color:var(--t4)}.cell-progress__pct.t1{color:var(--t1)}.cell-progress__pct.mono{font-family:monospace;font-size:10px;color:var(--t1)}.wrap-normal{white-space:normal}.search-bar{display:flex;align-items:center;gap:6px;background:var(--s1);border:1px solid var(--b2);border-radius:6px;padding:8px 10px}.search-bar__input{border:none;outline:none;font-size:12px;flex:1;color:var(--t1);background:transparent;font-family:inherit}.action-btn{background:var(--acc);border:none;border-radius:4px;padding:3px 8px;color:#fff;font-size:9px;font-weight:600;cursor:pointer}.tile-btn{background:var(--s1);border:1px solid var(--b2);border-radius:6px;padding:12px;color:var(--t1);font-size:11px;font-weight:600;cursor:pointer}.tile-btn.primary{background:var(--acc);border-color:var(--acc);color:#fff}.tile-soft{background:var(--s2);border:1px solid var(--b2);border-radius:6px;padding:10px}.tile-soft.red{background:var(--red-d);border-color:var(--red-b)}.tile-soft.grn{background:var(--grn-d);border-color:var(--grn-b)}.list-row{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--b2)}.list-row.tight{padding:6px 0}.list-row__main{flex:1}.list-row__main.clip{min-width:0}.list-row__title{font-size:11px;font-weight:600;color:var(--t1)}.list-row__title-sm{font-size:10px;font-weight:600;color:var(--t1)}.list-row__sub{font-size:9px;color:var(--t3)}.list-row__desc{font-size:10px;color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-row__head{display:flex;align-items:center;gap:4px}.section-label-sm{font-size:9px;font-weight:700;color:var(--t3);text-transform:uppercase;margin-bottom:4px}.section-label-sm-600{font-size:9px;font-weight:600;color:var(--t3);text-transform:uppercase;margin-bottom:4px}.tab-bar{display:flex;gap:1px;background:var(--s2);border-radius:6px;padding:3px;border:1px solid var(--b2)}.tab-bar__btn{padding:5px 12px;border-radius:4px;border:none;cursor:pointer;background:transparent;color:var(--t2);font-size:10px;font-weight:600;font-family:inherit}.tab-bar__btn.tight{padding:5px 10px}.tab-bar__btn.is-active{background:var(--acc);color:#fff}.empty-msg{text-align:center;padding:20px;color:var(--t4);font-size:11px}.bare-btn{background:transparent;border:none;cursor:pointer;padding:0;font-family:inherit}.icon-btn{background:transparent;border:none;cursor:pointer;padding:4px;border-radius:4px;color:var(--t3);display:inline-flex;align-items:center;justify-content:center;font-family:inherit}.icon-btn:hover{background:var(--s2);color:var(--t1)}.icon-btn:disabled{cursor:not-allowed;opacity:.55}.card{background:var(--s1);border:1px solid var(--b2);border-radius:6px;padding:12px}.muted-text{color:var(--t4)}.section-title{font-size:13px;font-weight:600;color:var(--t1);margin:0 0 8px}.subtle-divider{border-top:1px solid var(--b2)}.app-shell{display:flex;height:100vh;background:var(--bg);font-family:var(--font);color:var(--t1);overflow:hidden}.app-nav{width:210px;background:var(--nav-bg);display:flex;flex-direction:column;transition:width .2s;flex-shrink:0;box-shadow:2px 0 8px #00000026}.app-nav.is-collapsed{width:50px}.app-nav__brand{display:flex;align-items:center;gap:8px;padding:12px;border-bottom:1px solid rgba(255,255,255,.08)}.app-nav__apps{width:26px;height:26px;border-radius:6px;border:1px solid rgba(255,255,255,.12);background:#ffffff0f;color:#cbd5e1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;flex-shrink:0;transition:background .15s,color .15s}.app-nav__apps:hover{background:#0078d438;color:#60a5fa}.app-nav__logo{width:28px;height:30px;flex-shrink:0}.app-nav.is-collapsed .app-nav__logo{width:22px;height:24px}.app-nav__title-wrap{display:block}.app-nav__title{font-size:13px;font-weight:700;color:#f1f5f9}.app-nav__subtitle{font-size:8px;color:#94a3b8}.app-nav__list{flex:1;overflow-y:auto;padding:6px 0}.app-nav__link{width:100%;display:flex;align-items:center;gap:8px;padding:6px 12px;border:none;cursor:pointer;background:transparent;color:#cbd5e1;border-left:3px solid transparent;font-size:11px;font-weight:400;font-family:inherit;text-align:left;text-decoration:none;box-sizing:border-box}.app-nav.is-collapsed .app-nav__link{padding:7px 14px}.app-nav__link.is-active{background:#0078d42e;color:#60a5fa;border-left-color:var(--acc);font-weight:600}.app-nav__link-icon{flex-shrink:0}.app-nav__link-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-nav__link-badge{background:#ef4444;color:#fff;font-size:8px;border-radius:7px;padding:1px 5px;font-weight:700}.app-nav__footer{border-top:1px solid rgba(255,255,255,.08);padding:6px}.app-nav__collapse{width:100%;display:flex;align-items:center;justify-content:center;gap:3px;padding:5px;border:none;cursor:pointer;background:transparent;color:#94a3b8;font-size:9px;border-radius:4px;font-family:inherit}.app-main{flex:1;display:flex;flex-direction:column;min-width:0}.app-header{height:44px;background:var(--s1);border-bottom:1px solid var(--b1);display:flex;align-items:center;justify-content:space-between;padding:0 16px;flex-shrink:0}.app-header__crumbs{display:flex;align-items:center;gap:6px}.app-header__crumb-root{font-size:11px;color:var(--t4)}.app-header__crumb-active{font-size:12px;font-weight:600;color:var(--t1)}.app-header__right{display:flex;align-items:center;gap:8px}.app-header__search{display:flex;align-items:center;background:var(--s2);border-radius:4px;padding:3px 8px;gap:4px;border:1px solid var(--b2)}.app-header__search-input{background:transparent;border:none;color:var(--t1);font-size:11px;width:120px;outline:none;font-family:inherit}.app-header__bell{position:relative;cursor:pointer}.app-header__bell-badge{position:absolute;top:-4px;right:-4px;width:14px;height:14px;background:var(--red);border-radius:7px;font-size:8px;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;border:2px solid #fff}.app-header__sep{width:1px;height:20px;background:var(--b1)}.app-content{flex:1;overflow:auto;padding:16px;background:var(--bg)}.app-loading{padding:20px;font-size:12px;color:var(--t4)}.app-footer{height:24px;background:var(--s1);border-top:1px solid var(--b2);display:flex;align-items:center;justify-content:space-between;padding:0 16px;font-size:9px;color:var(--t4);flex-shrink:0}.app-footer__status{display:flex;align-items:center;gap:6px}.app-footer__dot{width:5px;height:5px;border-radius:3px;background:var(--grn)}.user-menu{position:relative}.user-menu__trigger{display:flex;align-items:center;gap:6px;background:transparent;border:none;padding:2px 4px;border-radius:4px;cursor:pointer;font-family:inherit}.user-menu__avatar{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,#0078d4,#6b21a8);display:flex;align-items:center;justify-content:center;color:#fff;font-size:9px;font-weight:700}.user-menu__id{text-align:left}.user-menu__name{font-size:11px;font-weight:600;color:var(--t1)}.user-menu__role{font-size:9px;color:var(--t4)}.user-menu__chevron{transition:transform .15s}.user-menu__chevron.is-open{transform:rotate(180deg)}.user-menu__pop{position:absolute;top:calc(100% + 6px);right:0;min-width:160px;background:var(--s1);border:1px solid var(--b1);border-radius:6px;box-shadow:0 6px 18px #0000001f;padding:4px;z-index:100}.user-menu__logout{width:100%;display:flex;align-items:center;gap:8px;padding:8px 10px;background:transparent;border:none;border-radius:4px;cursor:pointer;color:var(--red);font-size:12px;font-weight:500;font-family:inherit;text-align:left}.user-menu__logout:hover:not(:disabled){background:var(--red-d)}.user-menu__logout:disabled{cursor:not-allowed;opacity:.6}.upl-dock{position:fixed;right:18px;bottom:36px;width:320px;background:var(--s1);border:1px solid var(--b1);border-radius:8px;box-shadow:0 12px 28px #0000002e;z-index:500;overflow:hidden;font-family:var(--font)}.upl-dock *,.upl-dock input,.upl-dock button,.upl-dock select,.upl-dock textarea{font-family:inherit}.upl-dock__head{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--s2);border-bottom:1px solid var(--b2);color:var(--t1)}.upl-dock__head-label{flex:1;font-size:11px;font-weight:600;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upl-dock__head-btn{width:22px;height:22px;border:none;background:transparent;color:var(--t3);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;border-radius:4px}.upl-dock__head-btn:hover:not(:disabled){background:var(--b1);color:var(--t1)}.upl-dock__head-btn:disabled{cursor:not-allowed;opacity:.4}.upl-dock__body{max-height:280px;overflow-y:auto;padding:6px 8px 8px;display:flex;flex-direction:column;gap:8px}.upl-dock__item{display:flex;flex-direction:column;gap:3px;padding:6px 8px;background:var(--s2);border:1px solid var(--b2);border-radius:5px}.upl-dock__item-row{display:flex;align-items:center;gap:6px}.upl-dock__item-name{flex:1;font-size:10px;color:var(--t1);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upl-dock__item-icon{flex-shrink:0}.upl-dock__item-icon.grn{color:var(--grn)}.upl-dock__item-icon.red{color:var(--red)}.upl-dock__item-btn{width:18px;height:18px;border:none;background:transparent;color:var(--t3);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;border-radius:3px;flex-shrink:0}.upl-dock__item-btn:hover{background:var(--b1);color:var(--t1)}.upl-dock__progress{width:100%;height:6px;background:var(--b2);border-radius:999px;overflow:hidden}@keyframes upl-stripes{0%{background-position:0 0}to{background-position:18px 0}}.upl-dock__progress-bar{height:100%;width:0;background-color:var(--acc);background-image:linear-gradient(45deg,rgba(255,255,255,.3) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.3) 50%,rgba(255,255,255,.3) 75%,transparent 75%,transparent);background-size:18px 18px;border-radius:999px;transition:width .18s ease;animation:upl-stripes .9s linear infinite}.upl-dock__progress-bar.is-done{background-color:var(--grn);background-image:none;animation:none}.upl-dock__progress-bar.is-error{background-color:var(--red);background-image:none;animation:none}.upl-dock__progress-bar.is-cancel{background-color:var(--t3);background-image:none;animation:none}.upl-dock__item-meta{font-size:10px;color:var(--t3);font-variant-numeric:tabular-nums}.upl-dock__item-err{color:var(--red)}
