#root:has(.jj-login-page){min-width:0}.jj-login-page,.jj-login-page *{box-sizing:border-box}.jj-login-page{--login-accent:#244f43;--login-text:#263f38;--login-muted:#66766e;min-height:100dvh;color:var(--login-text);background:#f7f9f7;grid-template-columns:1.08fr 1fr;gap:24px;padding:16px;display:grid}.jj-login-visual{isolation:isolate;background:#a1aaa1;border-radius:24px;flex-direction:column;justify-content:space-between;min-height:640px;display:flex;position:relative;overflow:hidden}.jj-login-image{z-index:-2;object-fit:cover;object-position:center;width:100%;height:100%;position:absolute;inset:0}.jj-login-visual:before{content:"";z-index:-1;background:linear-gradient(#f1f0e424 0%,#0000 28%,#192b2429 45%,#192b2480 100%);position:absolute;inset:0}.jj-login-brand{color:#fff;letter-spacing:-.5px;padding:clamp(28px,3.2vw,56px);font-size:clamp(21px,1.6vw,28px);font-weight:700}.jj-login-visual-copy{color:#fff;padding:clamp(28px,3.8vw,68px) clamp(28px,3.8vw,68px) clamp(56px,12dvh,140px)}.jj-login-visual-copy h2{letter-spacing:-1.8px;margin:0;font-size:clamp(36px,4.1vw,70px);font-weight:600;line-height:1.42}.jj-login-visual-copy p{margin:25px 0 0;font-size:clamp(14px,1.15vw,19px);line-height:1.7}.jj-login-workspace{flex-direction:column;justify-content:space-between;min-width:0;padding:35px clamp(24px,3.4vw,64px) 26px;display:flex}.jj-login-workspace-label{color:var(--login-muted);letter-spacing:3px;align-self:flex-end;font-size:12px}.jj-login-form-wrap{width:100%;max-width:440px;margin:52px auto}.jj-login-welcome{color:#527164;letter-spacing:3px;margin:0 0 18px;font-size:14px;font-weight:600}.jj-login-heading h1{color:var(--login-text);letter-spacing:-1px;margin:0;font-size:clamp(27px,2.15vw,36px);font-weight:650;line-height:1.45}.jj-login-description{color:var(--login-muted);margin:16px 0 0;font-size:15px;line-height:1.7}.jj-login-form{margin-top:44px}.jj-login-form .ant-form-item{margin-bottom:27px}.jj-login-form .ant-form-item-label{padding-bottom:10px}.jj-login-form .ant-form-item-label>label{color:var(--login-text);font-size:14px;font-weight:600}.jj-login-form .ant-input-affix-wrapper,.jj-login-form .ant-form-item-control-input-content>.ant-input{height:54px}.jj-login-password-toggle{color:var(--login-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:4px 2px 4px 12px;font-size:13px}.jj-login-password-toggle:hover{color:var(--login-accent)}.jj-login-password-toggle:focus-visible{outline:2px solid var(--login-accent);outline-offset:2px}.jj-login-page .jj-login-submit{border-radius:10px;height:56px;margin-top:12px;padding-inline:22px;font-weight:600}.jj-login-submit-content{flex:1;justify-content:space-between;align-items:center;gap:16px;display:flex}.jj-login-notice{margin:22px 0}.jj-login-oauth{margin-top:24px}.jj-login-oauth-label{color:var(--login-muted);margin-bottom:10px;font-size:13px;display:block}.jj-login-oauth-list{flex-wrap:wrap;gap:10px;display:flex}.jj-login-oauth-button{height:44px;color:var(--login-text);background:#fff;border:1px solid #d6dfda;border-radius:10px;flex:140px;justify-content:center;align-items:center;font-size:14px;transition:border-color .2s,color .2s;display:inline-flex}.jj-login-oauth-button:hover{border-color:var(--login-accent);color:var(--login-accent)}.jj-login-oauth-button:focus-visible{outline:2px solid var(--login-accent);outline-offset:2px}.jj-login-help{color:var(--login-muted);border-top:1px solid #e0e7e2;margin-top:36px;padding-top:27px;font-size:13px;line-height:1.8}.jj-login-help p{margin:0}.jj-login-help p+p{color:#49675a;margin-top:3px}.jj-login-footer{color:var(--login-muted);justify-content:space-between;gap:20px;font-size:11px;line-height:1.8;display:flex}.jj-login-footer span:last-child{text-align:right;max-width:260px}.jj-login-page--bootstrap .jj-login-form-wrap{margin-block:24px}.jj-login-page--bootstrap .jj-login-form{margin-top:28px}@media (width>=768px) and (height<=800px){.jj-login-workspace{padding-block:24px 20px}.jj-login-form-wrap{margin-block:24px}.jj-login-form{margin-top:28px}.jj-login-form .ant-form-item{margin-bottom:22px}.jj-login-help{margin-top:28px;padding-top:22px}}@media (width<=1100px){.jj-login-page{grid-template-columns:1fr 1fr;gap:12px;padding:12px}.jj-login-workspace{padding:28px 24px 20px}.jj-login-form-wrap{margin-block:40px}.jj-login-visual-copy h2{letter-spacing:-1px;font-size:clamp(32px,4.2vw,46px)}.jj-login-footer{flex-direction:column;gap:4px}.jj-login-footer span:last-child{text-align:left;max-width:none}}@media (width<=767px){.jj-login-page{grid-template-columns:1fr;gap:0;padding:12px}.jj-login-visual{border-radius:18px;min-height:230px}.jj-login-image{object-position:center 44%}.jj-login-brand{padding:22px 24px;font-size:20px}.jj-login-visual-copy{padding:8px 24px 25px}.jj-login-visual-copy h2{font-size:28px;line-height:1.35}.jj-login-visual-copy p{margin-top:12px;font-size:12px}.jj-login-workspace{padding:30px 16px 14px}.jj-login-workspace-label{display:none}.jj-login-form-wrap{margin:0 auto 34px}.jj-login-welcome{margin-bottom:10px;font-size:13px}.jj-login-heading h1{font-size:27px}.jj-login-description{margin-top:10px;font-size:14px}.jj-login-form{margin-top:28px}.jj-login-form .ant-form-item{margin-bottom:22px}.jj-login-help{margin-top:28px;padding-top:22px}}@media (prefers-reduced-motion:reduce){.jj-login-page *,.jj-login-page :before,.jj-login-page :after{transition:none!important}}.jj-stat-block{background:var(--primary-50);border:1px solid var(--primary-200);border-radius:var(--radius-md);padding:16px 20px;transition:all 80ms}.jj-stat-block--clickable{cursor:pointer}.jj-stat-block--clickable:hover{border-color:var(--primary-300);background:var(--primary-100)}.jj-stat-block--highlight{background:var(--primary-100)}.jj-stat-block__head{align-items:center;gap:6px;margin-bottom:8px;display:flex}.jj-stat-block__icon{color:var(--primary-600);align-items:center;display:flex}.jj-stat-block__label{color:var(--gray-600);font-size:13px}.jj-stat-block__value{color:var(--gray-900);font-variant-numeric:tabular-nums;font-size:28px;font-weight:600;line-height:1.2}.jj-stat-block__unit{color:var(--gray-600);margin-left:4px;font-size:14px;font-weight:400}.jj-stat-block--plain{border-color:var(--gray-200);background:#fff}.jj-stat-block--plain.jj-stat-block--clickable:hover{border-color:var(--primary-300);background:#fff;box-shadow:0 2px 8px #0f172a0f}.jj-stat-block__hint{color:var(--gray-400);cursor:help;border-radius:var(--radius-full);align-items:center;display:inline-flex}.jj-stat-block__hint:hover,.jj-stat-block__hint:focus-visible{color:var(--primary-600);outline:none}.jj-stat-block__footer{color:var(--gray-500);justify-content:space-between;align-items:center;gap:8px;min-width:0;margin-top:8px;font-size:12px;display:flex}.jj-stat-block__compares{border-top:1px solid var(--primary-200);flex-direction:column;gap:6px;margin-top:12px;padding-top:12px;display:flex}.jj-stat-block__compare{justify-content:space-between;align-items:baseline;gap:8px;font-size:13px;display:flex}.jj-stat-block__compare-label{color:var(--gray-500);flex-shrink:0}.jj-stat-block__compare-value{color:var(--gray-800);font-variant-numeric:tabular-nums;text-align:right;font-weight:500}.jj-metric{padding:4px 0}.jj-metric__label{color:var(--gray-500);margin-bottom:6px;font-size:13px}.jj-metric__value{color:var(--gray-900);font-variant-numeric:tabular-nums;font-size:24px;font-weight:600;line-height:1.2}.jj-metric__unit{color:var(--gray-500);margin-left:4px;font-size:14px;font-weight:400}.jj-metric__trend{margin-top:4px;font-size:13px}.jj-metric__trend--up{color:var(--success-600)}.jj-metric__trend--down{color:var(--error-500)}.jj-metric__sub{color:var(--gray-500);margin-top:4px;font-size:12px}.jj-quick-actions{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;display:grid}.jj-quick-action{border-radius:var(--radius-lg);cursor:pointer;flex-direction:column;align-items:center;gap:8px;padding:12px 8px;transition:background 80ms;display:flex}.jj-quick-action:hover{background:var(--gray-100)}.jj-quick-action--disabled{opacity:.5;cursor:not-allowed}.jj-quick-action__icon{border-radius:var(--radius-md);background:var(--primary-50);width:44px;height:44px;color:var(--primary-600);justify-content:center;align-items:center;display:flex;position:relative}.jj-quick-action__badge{background:var(--error-500);color:#fff;text-align:center;border-radius:var(--radius-full);min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:600;line-height:18px;position:absolute;top:-4px;right:-4px}.jj-quick-action__label{color:var(--gray-700);text-align:center;font-size:13px}.jj-todo-row{border-radius:var(--radius-md);cursor:pointer;align-items:center;gap:10px;padding:10px 12px;transition:background 80ms;display:flex}.jj-todo-row:hover{background:var(--gray-50)}.jj-todo-row__dot{border-radius:var(--radius-full);background:var(--gray-400);flex-shrink:0;width:6px;height:6px}.jj-todo-row__dot[data-danger]{background:var(--error-500)}.jj-todo-row__label{color:var(--gray-800);flex:1;font-size:14px}.jj-todo-row__count{color:var(--gray-800);font-variant-numeric:tabular-nums;font-size:14px;font-weight:600}.jj-todo-row__count--danger{color:var(--error-500)}:root{--primary-50:#eff6ff;--primary-100:#dbeafe;--primary-200:#bfdbfe;--primary-300:#93c5fd;--primary-400:#60a5fa;--primary-500:#3b82f6;--primary-600:#2563eb;--primary-700:#1d4ed8;--primary-800:#1e40af;--primary-900:#1e3a8a;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--dark-700:#334155;--dark-800:#1e293b;--dark-900:#0f172a;--success-50:#f0fdf4;--success-100:#dcfce7;--success-200:#bbf7d0;--success-500:#22c55e;--success-600:#16a34a;--success-700:#15803d;--warning-50:#fffbeb;--warning-100:#fef3c7;--warning-200:#fde68a;--warning-500:#f59e0b;--warning-600:#d97706;--warning-700:#b45309;--error-50:#fef2f2;--error-100:#fee2e2;--error-200:#fecaca;--error-500:#ef4444;--error-600:#dc2626;--error-700:#b91c1c;--info-50:#eff6ff;--info-100:#dbeafe;--info-200:#bfdbfe;--info-500:#3b82f6;--info-600:#2563eb;--chart-1:#3b82f6;--chart-2:#22c55e;--chart-3:#f59e0b;--chart-4:#8b5cf6;--chart-5:#ec4899;--chart-6:#14b8a6;--jj-primary:var(--primary-500);--jj-primary-hover:var(--primary-600);--jj-primary-active:var(--primary-700);--jj-primary-bg:var(--primary-50);--jj-primary-border:var(--primary-200);--jj-sidebar-bg:var(--dark-700);--jj-sidebar-text:#ffffffd9;--jj-sidebar-text-muted:#ffffff80;--jj-bg-layout:var(--gray-50);--jj-bg-subtle:var(--gray-50);--jj-fill:var(--gray-100);--jj-border:var(--gray-300);--jj-divider:var(--gray-200);--jj-text-1:var(--gray-900);--jj-text-2:var(--gray-600);--jj-text-3:var(--gray-500);--jj-text-disabled:var(--gray-400);--jj-success:var(--success-500);--jj-warning:var(--warning-500);--jj-error:var(--error-500);--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-xs:2px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--radius-full:9999px;--shadow-xs:0 1px 2px 0 #0000000d;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px 0 #0000000f;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -1px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -2px #0000000d;--shadow-xl:0 20px 25px -5px #0000001a, 0 10px 10px -5px #0000000a;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-mono:"SF Mono", "Consolas", "Liberation Mono", monospace;--text-xs:12px;--text-sm:13px;--text-base:14px;--text-lg:16px;--text-xl:18px;--text-2xl:24px;--text-3xl:30px;--text-4xl:36px;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.75}html,body,#root{height:100%;margin:0;padding:0}body{background:var(--gray-50);color:var(--gray-800);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-variant-numeric:tabular-nums}#root{min-width:1280px}::selection{background:var(--primary-100);color:var(--primary-700)}*{scrollbar-width:thin;scrollbar-color:var(--gray-300) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}.stat-card{background:var(--primary-50);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);border:1px solid var(--primary-200);transition:all 80ms}.stat-card__label{font-size:var(--text-sm);color:var(--gray-600);margin-bottom:var(--space-1)}.stat-card__value{font-size:var(--text-3xl);font-weight:var(--font-semibold);color:var(--gray-900);font-feature-settings:"tnum";line-height:var(--leading-tight)}.stat-card__unit{font-size:var(--text-base);font-weight:var(--font-normal);margin-left:var(--space-1)}.stat-card__change{font-size:var(--text-sm);color:var(--success-600);margin-top:var(--space-1)}.stat-card--clickable{cursor:pointer}.stat-card--clickable:hover{border-color:var(--primary-300);box-shadow:var(--shadow-md)}.kpi-card{border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-xs);border:1px solid var(--gray-200);cursor:pointer;background:#fff;transition:all 80ms}.kpi-card:hover{border-color:var(--primary-300);box-shadow:var(--shadow-md)}.kpi-card__label{font-size:var(--text-sm);color:var(--gray-500);margin-bottom:var(--space-2)}.kpi-card__value{font-size:32px;font-weight:var(--font-semibold);color:var(--gray-900);margin-bottom:var(--space-1);font-feature-settings:"tnum";line-height:1}.kpi-card__change{font-size:var(--text-sm);align-items:center;gap:var(--space-1);display:flex}.kpi-card__change--positive{color:var(--success-600)}.kpi-card__change--negative{color:var(--error-500)}.quick-actions{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(100px,1fr));display:grid}.quick-action{align-items:center;gap:var(--space-2);padding:var(--space-4);border-radius:var(--radius-lg);cursor:pointer;border:1px solid var(--gray-200);background:#fff;flex-direction:column;transition:all 80ms;display:flex}.quick-action:hover{box-shadow:var(--shadow-md);border-color:var(--primary-200)}.quick-action__icon{border-radius:var(--radius-md);background:var(--primary-50);width:48px;height:48px;color:var(--primary-600);justify-content:center;align-items:center;font-size:24px;display:flex}.quick-action__label{font-size:var(--text-sm);color:var(--gray-700);text-align:center;font-weight:var(--font-medium)}.process-dots{gap:3px;display:flex}.process-dot{border-radius:var(--radius-xs);cursor:pointer;width:16px;height:16px;transition:all 80ms;position:relative}.process-dot--pending{background:var(--gray-200);border:1px solid var(--gray-300)}.process-dot--inProgress{background:var(--primary-500)}.process-dot--completed{background:var(--success-500)}.process-dot--completed:after{content:"✓";color:#fff;font-size:10px;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.process-dot--rework{background:var(--error-500)}.process-dot:hover{z-index:1;transform:scale(1.1)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.page-enter{animation:.1s fadeIn}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.skeleton{background:linear-gradient(90deg, var(--gray-100) 0%, var(--gray-200) 50%, var(--gray-100) 100%);border-radius:var(--radius-md);background-size:1000px 100%;animation:2s infinite shimmer}.jj-sidebar.ant-layout-sider,.jj-sidebar .ant-layout-sider-children{background:#191919}.jj-sidebar.ant-layout-sider{border-right:1px solid #303030;height:100vh}.jj-sider{color:#b8b8b8;background:#191919;flex-direction:column;height:100%;display:flex}.jj-sider__logo{flex:0 0 64px;align-items:center;gap:10px;min-height:64px;padding:0 16px;display:flex}.jj-sider__brand{color:#f5ceca;background:#632b28;border-radius:6px;flex:0 0 28px;justify-content:center;align-items:center;width:28px;height:28px;font-size:15px;font-weight:600;display:flex}.jj-sider__name{color:#ededed;white-space:nowrap;font-size:16px;font-weight:600}.jj-sider__collapse{color:#aaa;cursor:pointer;background:0 0;border:0;border-radius:8px;flex:0 0 32px;justify-content:center;align-items:center;width:32px;height:32px;margin-left:auto;padding:0;display:inline-flex}.jj-sider__collapse:hover{color:#fff;background:#2b2b2b}.jj-sider__shortcuts{justify-content:space-between;align-items:center;gap:8px;padding:8px 12px 18px;display:flex}.jj-sider__switch{border:1px solid #303030;border-radius:22px;padding:2px;display:flex}.jj-sider__switch button,.jj-sider__new-chat{color:#a6a6a6;cursor:pointer;background:0 0;justify-content:center;align-items:center;display:flex}.jj-sider__switch button{border:0;border-radius:18px;width:30px;height:27px}.jj-sider__switch button.is-active{color:#f5f5f5;background:#303030}.jj-sider__new-chat{white-space:nowrap;border:1px solid #303030;border-radius:20px;gap:6px;height:33px;padding:0 9px;font-size:11.44px}.jj-sider__new-chat:hover,.jj-sider__switch button:hover{color:#fff;background:#303030}.jj-sider button:focus-visible{outline-offset:3px;outline:2px solid #a8b9e8}.jj-sider__section{color:#777;justify-content:space-between;align-items:center;min-height:30px;padding:0 12px 8px 20px;font-size:12px;display:flex}.jj-sider__section-actions{align-items:center;display:flex}.jj-sider__nav{scrollbar-width:thin;scrollbar-color:#444 #191919;flex:auto;min-height:0;padding:0 0 8px;overflow:hidden auto}.jj-sider__nav::-webkit-scrollbar{width:4px}.jj-sider__nav::-webkit-scrollbar-thumb{background:#444;border-radius:2px}.jj-sider__footer{border-top:1px solid #292929;flex:0 0 42px;justify-content:space-between;align-items:center;gap:8px;padding:0 20px;display:flex}.jj-sider__version{color:#737373;font-variant-numeric:tabular-nums;font-size:11px}.jj-sidebar--collapsed .jj-sider__logo{justify-content:center;padding:0}.jj-sidebar--collapsed .jj-sider__collapse{margin:0}.jj-sidebar--collapsed .jj-sider__shortcuts{flex-direction:column;padding:4px 8px 16px}.jj-sidebar--collapsed .jj-sider__switch{border:0;flex-direction:column;gap:6px;padding:0}.jj-sidebar--collapsed .jj-sider__switch button{border-radius:9px;width:35px;height:32px}.jj-sidebar--collapsed .jj-sider__new-chat{border-radius:9px;width:35px;padding:0}.jj-sider__history{padding:0 8px}.jj-sider__history-date{color:#777;padding:8px 10px 12px;font-size:13px}.jj-chat-history{text-align:left;cursor:pointer;color:#b8b8b8;background:0 0;border:0;border-radius:9px;align-items:center;gap:10px;width:100%;margin-bottom:4px;padding:12px 10px;display:flex}.jj-chat-history:hover{color:#eee;background:#252525}.jj-chat-history.is-active{color:#f1f1f1;background:#2b2b2b}.jj-chat-history svg{flex-shrink:0}.jj-chat-history span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14px;overflow:hidden}.jj-chat-history small{color:#777;flex-shrink:0;font-size:12px}.jj-sider__history-empty{color:#888;padding:12px 10px;font-size:12px;line-height:1.9}.jj-sidebar--collapsed .jj-chat-history{justify-content:center;padding:12px 0}.jj-header{border-bottom:1px solid var(--gray-200);background:#fff;flex:0 0 56px;align-items:center;gap:16px;height:56px;padding:0 16px 0 20px;line-height:normal;display:flex}.jj-header__left{flex-direction:column;flex:none;gap:3px;display:flex}.jj-header__subtitle{color:var(--gray-500);font-size:11px;line-height:16px}.jj-header__title{color:var(--gray-800);font-size:15px;font-weight:600}.jj-header__center{flex:auto;justify-content:center;display:flex}.jj-header__search{background:var(--gray-50);border-color:var(--gray-200);border-radius:6px;width:360px;max-width:100%;height:34px}.jj-header__search:hover{border-color:var(--gray-300)}.jj-header__search:focus-within{background:#fff}.jj-kbd{color:var(--gray-400);border:1px solid var(--gray-200);background:#fff;border-radius:4px;padding:1px 5px;font-size:11px;line-height:16px}.jj-header__right{flex:none;align-items:center;gap:8px;display:flex}.jj-ai-btn{background:var(--primary-50)!important;height:32px!important;color:var(--primary-600)!important;border:none!important;border-radius:6px!important;padding:0 12px!important;font-size:13px!important;font-weight:500!important}.jj-ai-btn:hover{background:var(--primary-100)!important}.jj-icon-btn{width:32px!important;height:32px!important;color:var(--gray-500)!important;justify-content:center!important;align-items:center!important;display:inline-flex!important}.jj-icon-btn:hover{color:var(--gray-800)!important;background:var(--gray-100)!important}.jj-user{cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;height:36px;margin-left:4px;padding:0 8px;transition:background 80ms;display:flex}.jj-user:hover{background:var(--gray-100)}.jj-user__avatar{background:var(--primary-50);width:26px;height:26px;color:var(--primary-600);border-radius:50%;flex:0 0 26px;justify-content:center;align-items:center;display:flex}.jj-user__meta{flex-direction:column;align-items:flex-start;line-height:1.25;display:flex}.jj-user__name{color:var(--gray-800);font-size:13px;font-weight:500}.jj-user__role{color:var(--gray-400);font-size:11px}.jj-content{background:var(--gray-50);flex:auto;overflow:hidden auto}.jj-content::-webkit-scrollbar{width:10px}.jj-content::-webkit-scrollbar-thumb{background:var(--gray-300);border:3px solid var(--gray-50);border-radius:5px}.jj-content::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}.jj-page{min-height:100%;padding:20px 24px 32px}.jj-sidebar .ant-menu-inline,.jj-sidebar .ant-menu-vertical{background:0 0;border-inline-end:none!important}.jj-sidebar .ant-menu-inline .ant-menu-submenu-title,.jj-sidebar .ant-menu-inline .ant-menu-item{color:#b8b8b8;border-radius:6px;width:calc(100% - 16px);height:38px;margin:2px 8px;font-size:13.5px;line-height:38px}.jj-sidebar .ant-menu-inline .ant-menu-submenu-title:hover,.jj-sidebar .ant-menu-inline .ant-menu-item:hover{color:#f0f0f0!important;background:#292929!important}.jj-sidebar .ant-menu-inline .ant-menu-item-selected{font-weight:500;color:#fff!important;background:#303030!important}.jj-sidebar .ant-menu-inline .ant-menu-item-selected:hover{color:#fff!important;background:#363636!important}.jj-sidebar .ant-menu-inline .ant-menu-submenu-selected>.ant-menu-submenu-title{color:#ededed;font-weight:500}.jj-sidebar .ant-menu-inline .ant-menu-sub.ant-menu-inline{background:0 0!important}.jj-sidebar .ant-menu-inline .ant-menu-sub .ant-menu-item{width:calc(100% - 16px);height:34px;font-size:13px;line-height:34px;padding-left:40px!important}.jj-sidebar .ant-menu-inline .ant-menu-item:after,.jj-sidebar .ant-menu-vertical .ant-menu-item:after{display:none!important}.ant-menu-inline-collapsed .ant-menu-item,.ant-menu-inline-collapsed .ant-menu-submenu-title{width:calc(100% - 16px);margin:2px 8px;padding-inline:calc(50% - 8px)!important}.jj-table-page__body .dt-surface{border-radius:0}.jj-content .jj-table-panel,.jj-content .table-container{box-shadow:none!important;border:0!important;border-radius:0!important}.jj-content .jj-table-panel.ant-card>.ant-card-body{padding:0}.jj-content>div:has(.dt-surface){min-height:100%;background:#fff!important;padding:12px 16px 16px!important}.jj-content .jj-table-panel:has(>.dt-surface){padding:0!important}.jj-content .jj-table-panel.ant-card>.ant-card-head{border-radius:0;padding-inline:0}.jj-content .dt-surface{border-radius:0}.jj-content .dt-surface,.jj-content .table-container{overflow:visible}.dt-sticky-controls{z-index:20;background:#fff;position:sticky;top:0;box-shadow:0 1px #ededee}.jj-sider__upgrade.ant-btn{color:#bdc1c8;flex-shrink:0;gap:3px;padding-inline:5px;font-size:11px}.jj-sider__upgrade.ant-btn:hover{color:#fff!important;background:#303030!important}.jj-sidebar--collapsed .jj-sider__footer{justify-content:center;padding-inline:0}.jj-app-icon{border-radius:var(--radius-lg);color:#fff;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.jj-user-menu{min-width:200px}.jj-user-menu .jj-app-icon,.jj-user-menu__apps .jj-app-icon{border-radius:5px}.jj-user-menu__app{flex-direction:column;padding-block:2px;line-height:1.35;display:inline-flex}.jj-user-menu__app small{max-width:140px;color:var(--ant-color-text-tertiary,#8a8f99);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.jj-user-menu__apps .ant-dropdown-menu{max-height:360px;overflow-y:auto}@media (width<=1200px){.jj-header__center{min-width:0}.jj-header__search{width:260px}}.ant-alert{align-items:center;padding:6px 12px;font-size:13px;line-height:20px}.ant-alert .ant-alert-title,.ant-alert .ant-alert-message{font-size:13px;line-height:20px}.ant-alert .ant-alert-description{margin-top:2px;font-size:12px;line-height:18px}.ant-alert .ant-alert-description .ant-btn-link{height:auto;padding:0 4px;font-size:12px;line-height:18px}.ant-alert .ant-alert-icon{font-size:14px}.ant-alert .ant-alert-action .ant-btn{height:24px;padding:0 8px;font-size:12px}.ant-message .ant-message-notice-content{padding:6px 12px;font-size:13px}.ant-notification .ant-notification-notice{width:320px;padding:10px 14px}.jj-selector-editor{flex-direction:column;gap:8px;width:100%;display:flex}.jj-selector-row{border:1px solid var(--gray-200);background:var(--gray-50);border-radius:8px;flex-direction:column;gap:6px;padding:8px;display:flex}.jj-selector-head{align-items:center;gap:6px;display:flex}.jj-selector-index{background:var(--gray-200);width:18px;height:18px;color:var(--gray-600);text-align:center;border-radius:50%;flex:none;font-size:11px;line-height:18px}.jj-selector-type{flex:1;min-width:0}.jj-selector-ids{width:100%}.jj-selector-warn{color:#d97706;font-size:12px}.jj-selector-note{color:var(--gray-500);font-size:12px}.jj-selector-add{color:var(--gray-600)}.jj-user-menu .ant-dropdown-menu-submenu-title{align-items:center;gap:10px;padding-block:10px}.jj-user-menu__app{gap:3px;min-width:160px}.jj-user-menu__app-option{justify-content:space-between;align-items:center;gap:20px;min-width:140px;display:flex}.jj-user-menu__apps .ant-dropdown-menu-item{align-items:center;padding-block:8px}.jj-header__right>.ant-badge{flex-shrink:0;display:inline-flex}.jj-table-horizontal-scroll{min-width:0}.jj-table-horizontal-slider{appearance:none;cursor:pointer;background:#f0f2f5;border:0;border-radius:3px;width:100%;height:6px;margin:5px 0 10px;padding:0;display:block}.jj-table-horizontal-slider::-webkit-slider-thumb{appearance:none;width:var(--scroll-thumb-width);cursor:grab;background:#b8bec8;border:0;border-radius:3px;height:6px}.jj-table-horizontal-slider::-moz-range-thumb{width:var(--scroll-thumb-width);cursor:grab;background:#b8bec8;border:0;border-radius:3px;height:6px}.jj-table-horizontal-slider:focus-visible{outline-offset:2px;outline:2px solid #3b60cc}.jj-table-horizontal-scroll .ant-table-content{scrollbar-width:none!important}.jj-table-horizontal-scroll .ant-table-content::-webkit-scrollbar{display:none}@media print{.jj-table-horizontal-slider{display:none}}.ant-table-wrapper .ant-table,.ant-table-wrapper .ant-table .ant-table-container,.ant-table-wrapper .ant-table .ant-table-header,.ant-table-wrapper .ant-table .ant-table-content,.ant-table-wrapper .ant-table .ant-table-body,.ant-table-wrapper .ant-table .ant-table-footer,.ant-table-wrapper .ant-table .ant-table-thead>tr>th{border-radius:0!important;border-start-start-radius:0!important;border-start-end-radius:0!important;border-end-end-radius:0!important;border-end-start-radius:0!important}.ant-table-wrapper .ant-table .ant-table-container{overflow:hidden;border-radius:6px!important;border:1px solid #e2e4e8!important;border-start-start-radius:6px!important;border-start-end-radius:6px!important;border-end-end-radius:6px!important;border-end-start-radius:6px!important}.ant-table-wrapper .ant-table .ant-table-content,.ant-table-wrapper .ant-table .ant-table-body{scrollbar-width:thin;scrollbar-color:#b8bec8 #f4f5f7}@supports selector(::-webkit-scrollbar){.ant-table-wrapper .ant-table .ant-table-content,.ant-table-wrapper .ant-table .ant-table-body{scrollbar-width:auto;scrollbar-color:auto}}.ant-table-wrapper .ant-table .ant-table-content::-webkit-scrollbar{width:6px;height:6px}.ant-table-wrapper .ant-table .ant-table-body::-webkit-scrollbar{width:6px;height:6px}.ant-table-wrapper .ant-table .ant-table-content::-webkit-scrollbar-track{background:#f4f5f7}.ant-table-wrapper .ant-table .ant-table-body::-webkit-scrollbar-track{background:#f4f5f7}.ant-table-wrapper .ant-table .ant-table-content::-webkit-scrollbar-thumb{background:#b8bec8;border-radius:3px}.ant-table-wrapper .ant-table .ant-table-body::-webkit-scrollbar-thumb{background:#b8bec8;border-radius:3px}.ant-table-wrapper .ant-table .ant-table-content::-webkit-scrollbar-thumb:hover{background:#929baa}.ant-table-wrapper .ant-table .ant-table-body::-webkit-scrollbar-thumb:hover{background:#929baa}.ant-table-wrapper .ant-table .ant-table-thead>tr>th{height:30px;line-height:20px;color:#4e5969!important;border-bottom:1px solid #e2e4e8!important;border-right:1px solid #e2e4e8!important;padding:4px 10px!important;font-weight:400!important}.ant-table-wrapper .ant-table .ant-table-tbody>tr>td,.ant-table-wrapper .ant-table .ant-table-summary>tr>td{border-bottom:1px solid #e2e4e8!important;border-right:1px solid #e2e4e8!important}.ant-table-wrapper .ant-table .ant-table-thead>tr>th:before{display:none!important}.dt-surface .ant-table-wrapper .ant-table .ant-table-tbody>tr>td{overflow:hidden}.ant-table-wrapper .ant-table .ant-table-container:before,.ant-table-wrapper .ant-table .ant-table-container:after,.ant-table-wrapper .ant-table .ant-table-cell-fix:after{box-shadow:none!important;border-radius:0!important}.ant-card:has(>.ant-card-body .ant-table-wrapper){box-shadow:none!important;border-radius:0!important}.ant-card:has(>.ant-card-body .ant-table-wrapper)>.ant-card-head{box-shadow:none!important;border-radius:0!important}.dt-surface:has(.ant-table-wrapper){box-shadow:none!important;border-radius:0!important}.table-container:has(.ant-table-wrapper){box-shadow:none!important;border-radius:0!important}.jj-relation-cell-value{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.jj-relation-cell-value .ant-typography{white-space:nowrap}.dt-surface .jj-form-files.is-readonly{--dt-thumbnail-size:min(40px, calc(var(--dt-row-height) - var(--dt-row-padding) * 2 - 2px))}.dt-surface .jj-form-files.is-readonly .jj-form-file-images{flex-wrap:nowrap;gap:4px}.dt-surface .jj-form-files.is-readonly .jj-form-file-images .jj-form-file{border:0;flex:none;padding:0}.dt-surface .jj-form-files.is-readonly .jj-form-file-images .ant-image,.dt-surface .jj-form-files.is-readonly .jj-form-file-images .ant-image-img{width:var(--dt-thumbnail-size)!important;height:var(--dt-thumbnail-size)!important}.dt-surface .jj-form-files.is-readonly .jj-form-file-empty{min-height:var(--dt-thumbnail-size)}
