:root{--paper: #f4f7fc;--card: #ffffff;--card-border: #e2e8f2;--frame-bg: #ffffff;--sidebar-bg: #f6f9fd;--ink: #1b2432;--ink-secondary: #55637a;--ink-faint: #93a1b7;--accent: #2563eb;--accent-strong: #1d4ed8;--accent-dim: rgba(37, 99, 235, .1);--domain-customer: #1f9e99;--domain-patent: #d58a2e;--domain-competitor: #7c63e8;--danger: #cf5a4e;--navy: #152a4e;--navy-elevated: #1e3a66;--navy-border: rgba(140, 170, 225, .18);--on-navy: #e8eefb;--on-navy-secondary: #9db4dd;color-scheme:light}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(1200px 600px at 12% -10%,rgba(59,110,220,.14),transparent 60%),radial-gradient(1000px 700px at 105% 15%,rgba(96,140,230,.12),transparent 55%),linear-gradient(160deg,#eef3fa,#e3ebf7);color:var(--ink);font-feature-settings:"tnum";-webkit-font-smoothing:antialiased;padding:0;box-sizing:border-box}::selection{background:#2563eb33}.app-frame{max-width:none;margin:0;min-height:100vh;background:var(--frame-bg);border-radius:0;border:none;display:flex;overflow:hidden}.app-sidebar{width:218px;flex:none;background:var(--sidebar-bg);border-right:1px solid rgba(30,60,120,.07);padding:20px 14px 18px;display:flex;flex-direction:column}.side-brand{display:flex;align-items:center;gap:10px;padding:2px 8px 18px}.side-brand .brand-mark{width:30px;height:30px;flex:none}.brand-mark img{width:100%;height:100%;display:block;object-fit:contain}.side-brand .brand-name{font-size:14px;font-weight:700;letter-spacing:.01em}.side-brand .brand-sub{font-size:9px;letter-spacing:.14em;color:var(--ink-faint);text-transform:uppercase;margin-top:1px}.side-group{margin-top:14px}.side-group-label{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);padding:0 10px 6px}.side-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border:none;background:none;font:inherit;text-align:left;width:100%;border-radius:8px;font-size:13px;color:var(--ink-secondary);cursor:pointer;transition:background .18s ease,color .18s ease;margin-bottom:1px}.side-item .anticon{font-size:15px}.side-item:hover{background:#2563eb0f;color:var(--ink)}.side-item.active{background:var(--accent-dim);color:var(--accent-strong);font-weight:600}.side-footer{margin-top:auto;padding:12px 10px 0;border-top:1px solid rgba(30,60,120,.07);font-size:10px;color:var(--ink-faint);letter-spacing:.06em}.app-side-main{flex:1;min-width:0;display:flex;flex-direction:column}.app-topbar{height:62px;flex:none;display:flex;align-items:center;gap:14px;padding:0 22px;border-bottom:1px solid rgba(30,60,120,.07);background:#ffffffd9;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.ws-switch{flex:none;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink);border:1px solid var(--card-border);background:var(--card);border-radius:999px;padding:6px 14px;cursor:pointer;white-space:nowrap;transition:border-color .18s ease,box-shadow .18s ease}.ws-switch:hover{border-color:#2563eb73;box-shadow:0 0 0 3px #2563eb14}.ws-switch .ws-label{color:var(--ink-faint);font-size:12px}.topbar-search{flex:1 1 0;min-width:0;max-width:400px;margin:0 auto;display:flex;align-items:center;gap:8px;background:#eef2f8;border:1px solid transparent;border-radius:999px;padding:7px 14px;color:var(--ink-faint);font-size:13px;cursor:text;font-family:inherit;text-align:left;transition:border-color .18s ease,background .18s ease}.topbar-search:hover{border-color:#2563eb66;background:#e6edf7}.topbar-search .search-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.topbar-search kbd{margin-left:auto;flex:none;font-size:11px;color:var(--ink-faint);border:1px solid var(--card-border);background:var(--card);border-radius:4px;padding:0 5px;font-family:inherit}.topbar-right{flex:none;display:flex;align-items:center;gap:14px}.topbar-date{font-size:12px;color:var(--ink-secondary);white-space:nowrap;font-variant-numeric:tabular-nums}.topbar-icon-btn{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--ink-secondary);cursor:pointer;border:1px solid var(--card-border);background:var(--card);font:inherit;transition:color .18s ease,border-color .18s ease,transform .18s ease}.topbar-icon-btn:hover{color:var(--accent-strong);border-color:#2563eb73;transform:translateY(-1px)}.topbar-icon-btn:active{transform:translateY(0) scale(.96)}.topbar-user{display:flex;align-items:center;gap:8px;cursor:pointer;white-space:nowrap;font-size:13px}.app-main{flex:1;min-width:0;padding:24px 26px 46px;background:var(--paper)}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.page-title{font-size:24px;font-weight:700;color:var(--ink);letter-spacing:-.01em;display:flex;align-items:center;gap:10px;text-wrap:balance}.page-sub{margin-top:4px;font-size:13px;color:var(--ink-secondary)}.paper-card{background:#fff;border:1px solid rgba(30,60,120,.08);border-radius:10px;padding:20px 22px;box-shadow:0 1px 2px #1e376e0a,0 10px 28px #1e376e0d;transition:box-shadow .22s ease,transform .22s ease}.paper-card:hover{box-shadow:0 1px 2px #1e376e0d,0 14px 34px #1e376e14}.paper-card .card-title{font-size:13px;font-weight:600;letter-spacing:.05em;color:var(--ink);display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.card-title .card-extra{font-size:12px;font-weight:400;color:var(--accent);cursor:pointer}.dark-panel{background:radial-gradient(600px 300px at 100% 0%,rgba(80,130,240,.2),transparent 60%),linear-gradient(165deg,#1e3a6633,transparent),linear-gradient(165deg,#1c3870,var(--navy));border:1px solid var(--navy-border);border-radius:10px;padding:20px 22px;color:var(--on-navy);box-shadow:0 1px 2px #0a193c33,0 12px 30px #0a193c38}.dark-panel .card-title{font-size:13px;font-weight:600;letter-spacing:.05em;color:var(--on-navy);display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.dark-panel .card-title .card-extra{font-size:12px;font-weight:400;color:#82b1ff;cursor:pointer}.dark-panel .dim{color:var(--on-navy-secondary)}.domain-badge{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:500;padding:1px 8px;border-radius:4px;border:1px solid;white-space:nowrap}.domain-badge.customer{color:var(--domain-customer);border-color:#1f9e9966;background:#1f9e9914}.domain-badge.patent{color:var(--domain-patent);border-color:#d58a2e66;background:#d58a2e14}.domain-badge.competitor{color:var(--domain-competitor);border-color:#7c63e866;background:#7c63e814}.conf-badge{font-size:11px;padding:1px 8px;border-radius:4px;border:1px solid;white-space:nowrap}.conf-badge.high{color:var(--accent-strong);border-color:#2563eb66;background:#2563eb14}.conf-badge.medium{color:var(--domain-patent);border-color:#d58a2e66;background:#d58a2e14}.conf-badge.low{color:var(--ink-faint);border-color:var(--card-border);background:#94a3b81f}.sev-badge{font-size:11px;padding:1px 8px;border-radius:4px;border:1px solid;white-space:nowrap}.sev-badge.urgent{color:var(--danger);border-color:#cf5a4e73;background:#cf5a4e14}.sev-badge.important{color:var(--domain-patent);border-color:#d58a2e73;background:#d58a2e14}.sev-badge.normal{color:var(--accent-strong);border-color:#2563eb73;background:#2563eb14}.tag-chip{display:inline-block;font-size:12px;color:var(--ink-secondary);background:#1b24320d;border-radius:4px;padding:1px 8px;margin-right:6px}.meta-line{font-size:12px;color:var(--ink-faint);font-variant-numeric:tabular-nums}.section-gap{margin-top:16px}.progress-track{height:6px;border-radius:3px;background:#1b243214;overflow:hidden}.dark-panel .progress-track{background:#8caae129}.progress-fill{height:100%;border-radius:3px;background:var(--accent)}.quote-box{border-left:3px solid var(--accent);background:#2563eb0f;border-radius:0 6px 6px 0;padding:10px 14px;font-size:13px;line-height:1.7;color:var(--ink-secondary)}.dark-panel .quote-box{background:#8caae11a;color:var(--on-navy-secondary)}.dot-rating{letter-spacing:3px;font-size:13px}.feature-card{transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.feature-card:hover{transform:translateY(-2px);border-color:#2563eb59!important;box-shadow:0 8px 20px #1e376e14}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px}.status-dot.ok{background:#2f9e6e}.status-dot.warn{background:#d58a2e}.status-dot.err{background:var(--danger);animation:pulse-dot 1.6s ease-in-out infinite}@keyframes pulse-dot{50%{opacity:.45}}.rise-in{animation:rise-in .45s ease both}.stagger-1{animation-delay:.05s}.stagger-2{animation-delay:.12s}.stagger-3{animation-delay:.19s}.stagger-4{animation-delay:.26s}@keyframes rise-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.dark-panel .ant-btn{color:var(--on-navy);border-color:#8caae159;background:transparent}.dark-panel .ant-btn:hover:not(:disabled){color:#82b1ff;border-color:#82b1ff;background:#8caae11f}.dark-panel .ant-btn:disabled{color:#9db4dd73;border-color:#8caae12e;background:transparent}.dark-panel .ant-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.dark-panel a{color:#82b1ff}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-behavior:auto}}.link-btn{border:none;background:none;padding:0;font:inherit;font-size:12px;color:var(--accent);cursor:pointer;transition:color .18s ease}.link-btn:hover{color:var(--accent-strong);text-decoration:underline;text-underline-offset:3px}.dark-panel .link-btn{color:#82b1ff}.dark-panel .link-btn:hover{color:#b3d0ff}.tab-btn{border:none;background:none;font:inherit;cursor:pointer;padding:0;color:inherit;text-align:left}.split{display:flex;gap:16px;align-items:flex-start}.split-main{flex:1;min-width:0}.split-side{flex:none}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-scroll>table{min-width:640px}.table-scroll tbody tr{transition:background .15s ease}.table-scroll tbody tr:hover{background:#2563eb0a}@media (max-width: 1200px){.split{flex-direction:column;align-items:stretch}.split-main,.split-side{box-sizing:border-box;width:100%!important;min-width:0;max-width:100%}}@media (max-width: 1180px){.app-sidebar{width:64px;padding:16px 10px;align-items:center}.side-brand{padding:2px 0 16px}.app-sidebar .brand-text,.side-group-label,.side-item .side-label,.side-footer{display:none}.side-item{width:40px;height:40px;justify-content:center;padding:0;gap:0}}.topbar-calendar{width:296px}.topbar-calendar .ant-picker-calendar-mini .ant-picker-content th,.topbar-calendar .ant-picker-calendar-mini .ant-picker-content td{height:30px}.topbar-calendar .ant-picker-calendar-mini .ant-picker-calendar-date{height:30px;line-height:28px;margin:0 2px}@media (max-width: 1080px){.topbar-date,.topbar-user .user-name{display:none}}@media (max-width: 860px){body{padding:0}.app-frame{border-radius:0;min-height:100vh}.topbar-search{display:none}.app-main{padding:16px 14px 36px}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#1b243233;border-radius:4px}::-webkit-scrollbar-track{background:transparent}.login-page{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;overflow:auto;display:flex;align-items:center;justify-content:center;gap:7vw;padding:48px;background:radial-gradient(900px 500px at 85% -10%,rgba(64,120,240,.35),transparent 60%),radial-gradient(700px 500px at 0% 100%,rgba(30,70,180,.3),transparent 55%),linear-gradient(155deg,#081a3e,#0c2660,#12357f)}.login-page:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:radial-gradient(rgba(150,190,255,.14) 1px,transparent 1.5px),radial-gradient(rgba(150,190,255,.07) 1.5px,transparent 2px);background-size:22px 22px,88px 88px;background-position:0 0,11px 11px}.login-decor{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.login-star{position:absolute;background:radial-gradient(#dcebff,#5e9bff);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);filter:drop-shadow(0 0 6px rgba(140,190,255,.8));animation:login-twinkle 3.2s ease-in-out infinite}@keyframes login-twinkle{0%,to{opacity:.15;transform:scale(.8)}50%{opacity:1;transform:scale(1.1)}}.login-square{position:absolute;border:1.5px solid rgba(140,190,255,.45);border-radius:3px;animation:login-float 7s ease-in-out infinite}@keyframes login-float{0%,to{transform:translateY(0) rotate(0);opacity:.5}50%{transform:translateY(-14px) rotate(40deg);opacity:1}}.login-hero{position:relative;z-index:1;max-width:520px}.login-eyebrow{font-size:12px;letter-spacing:.32em;text-transform:uppercase;color:#a0c8ffd9;margin-bottom:18px}.login-title{margin:0;font-size:52px;font-weight:700;line-height:1.15;letter-spacing:.02em;color:#fff}.login-title-bar{width:56px;height:4px;border-radius:2px;background:var(--accent);margin:22px 0 18px}.login-sub{margin:0;font-size:15px;color:#bed7ffbf}.login-card{position:relative;z-index:1;flex:none;width:400px;max-width:100%;padding:34px 32px 28px;text-align:center;background:#fff;border-radius:12px;box-shadow:0 24px 80px #020a2373}.login-qr-title{font-size:15px;font-weight:600;color:var(--ink);margin-bottom:16px}.login-qr-wrap{position:relative;width:300px;min-height:380px;margin:0 auto}.login-qr-spin{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.login-qr iframe{border:0}.login-hint{font-size:13px;color:var(--ink-faint);margin-bottom:24px}@media (max-width: 768px){.login-page{flex-direction:column;justify-content:flex-start;gap:28px;padding:calc(40px + env(safe-area-inset-top)) 20px 40px}.login-hero{text-align:center;max-width:100%}.login-title{font-size:34px}.login-title-bar{margin:16px auto 12px}.login-card{width:100%;max-width:400px}.login-star:nth-child(n+5),.login-square:nth-child(n+3){display:none}}@media (max-width: 768px){body{padding:0}.app-frame-mobile{flex-direction:column;min-height:100dvh;border-radius:0;border:none;box-shadow:none;max-width:none}.mobile-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:calc(10px + env(safe-area-inset-top)) 14px 10px;background:var(--sidebar-bg);border-bottom:1px solid rgba(30,60,120,.08)}.mobile-header .topbar-icon-btn{width:40px;height:40px}.mobile-main{flex:1;padding:14px 14px calc(88px + env(safe-area-inset-bottom));overflow-x:hidden}.mobile-main .ant-col{margin-bottom:12px}.mobile-main h1{font-size:21px!important}.mobile-main .page-head{flex-wrap:wrap}.chain-connector{display:none}.mobile-main table{font-size:12px;min-width:520px}.mobile-main .table-scroll,.mobile-main .paper-card:has(table),.mobile-main .dark-panel:has(table){overflow-x:auto;-webkit-overflow-scrolling:touch}.mobile-tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;background:#ffffffeb;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid rgba(30,60,120,.1);padding-bottom:env(safe-area-inset-bottom)}.tab-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:52px;padding:6px 0;border:none;background:none;font:inherit;font-size:17px;color:var(--ink-faint);cursor:pointer;transition:transform .15s cubic-bezier(.16,1,.3,1),color .2s}.tab-item:active{transform:translateY(1px) scale(.96)}.tab-item.active{color:var(--accent)}.tab-label{font-size:10px;line-height:1}.mobile-nav-drawer .ant-drawer-content{border-radius:12px 12px 0 0;background:var(--frame-bg)}.mobile-nav-drawer .ant-drawer-body{padding-bottom:calc(24px + env(safe-area-inset-bottom))!important}.drawer-item{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;padding:10px 12px;border:none;border-radius:8px;background:none;font:inherit;font-size:15px;color:var(--ink);text-align:left;cursor:pointer;transition:background .15s,transform .15s cubic-bezier(.16,1,.3,1)}.drawer-item:active{background:#2563eb14;transform:scale(.98)}.mobile-main>*{animation:mobile-page-in .2s cubic-bezier(.16,1,.3,1)}@keyframes mobile-page-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}}@media (max-width: 768px) and (prefers-reduced-motion: reduce){.mobile-main>*{animation:none}.tab-item,.drawer-item{transition:none}.tab-item:active,.drawer-item:active{transform:none}}
