:root{font-family:Segoe UI Variable Text,PingFang SC,Noto Sans SC,Microsoft YaHei,sans-serif;color:#17314f;background:radial-gradient(circle at top left,rgba(90,158,216,.18),transparent 30%),radial-gradient(circle at 80% 20%,rgba(67,179,153,.14),transparent 28%),linear-gradient(180deg,#f5f9ff,#edf4fb 55%,#e9f1f8);color-scheme:light;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{min-width:320px;overflow-x:hidden}button,input,textarea,select{font:inherit}button{-webkit-user-select:none;user-select:none}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}.app-shell{position:relative;min-height:100vh;overflow:hidden}.app-main,.page-section,.topbar,.hero-banner,.lab-hero,.app-footer__inner{width:min(1240px,calc(100% - 32px));margin-inline:auto}.app-backdrop{position:fixed;inset:auto;border-radius:999px;filter:blur(10px);opacity:.8;pointer-events:none;z-index:0}.app-backdrop--one{top:-120px;left:-80px;width:360px;height:360px;background:radial-gradient(circle,rgba(70,144,210,.3),transparent 70%)}.app-backdrop--two{top:240px;right:-100px;width:420px;height:420px;background:radial-gradient(circle,rgba(88,189,157,.22),transparent 72%)}.app-backdrop--three{bottom:-120px;left:25%;width:520px;height:520px;background:radial-gradient(circle,rgba(217,130,43,.14),transparent 74%)}.topbar-shell{position:sticky;top:0;z-index:20;padding:18px 0 10px}.topbar{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;border:1px solid rgba(255,255,255,.65);border-radius:24px;background:#ffffffb8;box-shadow:0 22px 50px #122e4e1a;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand-lockup{display:flex;align-items:center;gap:14px;border:none;background:transparent;text-align:left;padding:0}.brand-lockup__mark{width:48px;height:48px;border-radius:16px;background:linear-gradient(135deg,#0b4f7a,#2f95c6);display:grid;place-items:center;box-shadow:0 14px 32px #155e9140}.brand-lockup__mark img{width:30px;height:30px;object-fit:contain}.brand-lockup__text{display:flex;flex-direction:column;gap:2px}.brand-lockup__eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#6982a1}.brand-lockup__text strong{font-size:16px;color:#14314d;line-height:1.25;max-width:420px}.topbar-nav,.topbar-actions,.topbar-nav__item,.topbar-menu__item,.user-chip,.toolbar,.toolbar__chips,.toolbar__search,.workspace-card__header,.workspace-card__status,.workspace-card__footer,.hero-banner__actions,.hero-banner__news,.signal-row,.lab-tile__footer,.dataset-card__top,.dataset-card__facts,.dataset-card__footer,.list-card__header,.list-stack__row,.mobile-nav__auth,.mobile-nav__item,.mobile-nav__toggle,.topbar-menu__icon,.resource-card__icon,.metric-card__icon,.detail-card__icon,.empty-state__icon,.login-modal__badge,.log-panel__row{display:flex;align-items:center}.topbar-nav,.topbar-actions{gap:12px}.topbar-nav__item,.app-button,.mobile-nav__item,.mobile-nav__toggle,.toolbar-chip,.tile-picker__item,.topbar-menu__item{border:none;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease}.topbar-nav__item{gap:8px;padding:10px 14px;border-radius:999px;background:transparent;color:#37506e}.topbar-nav__item:hover,.topbar-nav__item.is-active{background:#0b6aa814;color:#0b5f95}.topbar-dropdown{position:relative}.topbar-menu{position:absolute;top:calc(100% + 10px);left:0;min-width:280px;padding:8px;border-radius:22px;background:#fffffff0;box-shadow:0 24px 48px #10233f2e;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.topbar-menu--wide{min-width:340px}.topbar-menu__item{width:100%;gap:14px;padding:12px;border-radius:16px;background:transparent;text-align:left}.topbar-menu__item:hover{background:#0b6aa814}.topbar-menu__icon,.resource-card__icon,.metric-card__icon,.detail-card__icon,.empty-state__icon,.login-modal__badge{justify-content:center}.topbar-menu__icon{width:36px;height:36px;border-radius:12px;background:#0b6aa814;color:#0b6aa8}.topbar-menu__title{font-weight:600;color:#17314f}.topbar-menu__desc{margin-top:2px;font-size:12px;color:#6d829d}.user-chip{gap:8px;padding:10px 14px;border-radius:999px;background:#0b6aa814;color:#0b5f95}.app-button{gap:8px;justify-content:center;min-height:44px;padding:0 18px;border-radius:999px;font-weight:600}.app-button:hover,.mobile-nav__toggle:hover,.toolbar-chip:hover,.tile-picker__item:hover{transform:translateY(-1px)}.app-button:disabled{opacity:.58;cursor:not-allowed;transform:none}.app-button--primary{color:#fff;background:linear-gradient(135deg,#0b4f7a,#0d77b2);box-shadow:0 14px 30px #0b6aa83d}.app-button--secondary{color:#184264;background:#ffffffe0;border:1px solid rgba(15,46,79,.12)}.app-button--ghost{color:#31506f;background:#ffffff85;border:1px solid rgba(15,46,79,.1)}.mobile-nav{position:relative}.mobile-nav__toggle{width:46px;height:46px;border-radius:16px;background:#0b6aa814;color:#0b6aa8}.mobile-nav__panel{position:absolute;top:calc(100% + 12px);right:0;width:min(360px,calc(100vw - 32px));padding:16px;border-radius:24px;background:#fffffff2;box-shadow:0 24px 48px #10233f2e}.mobile-nav__group+.mobile-nav__group{margin-top:16px}.mobile-nav__title{margin-bottom:8px;font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:#7b90a8}.mobile-nav__item{width:100%;gap:10px;justify-content:flex-start;padding:12px 14px;border-radius:16px;background:transparent;color:#23405f}.mobile-nav__item.is-active{background:#0b6aa814;color:#0b5f95}.mobile-nav__auth,.mobile-nav__login{margin-top:16px}.page-section{position:relative;z-index:1;margin-top:42px}.section-header{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:24px}.section-eyebrow{margin-bottom:8px;font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#6783a1}.section-title{margin:0;font-size:clamp(28px,3vw,40px);line-height:1.08;color:#15304d}.section-subtitle{margin:10px 0 0;max-width:760px;color:#59728f;line-height:1.75}.surface-card{position:relative;z-index:1;padding:24px;border:1px solid rgba(255,255,255,.62);border-radius:28px;background:#ffffffd1;box-shadow:0 22px 60px #122e4e1a;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.hero-banner{position:relative;z-index:1;margin-top:20px;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:22px}.hero-banner--compact{grid-template-columns:1fr}.home-stage{position:relative;z-index:1;width:min(1240px,calc(100% - 32px));min-height:calc(100vh - 140px);margin:26px auto 0;display:grid;justify-items:center;align-content:start;gap:38px}.home-stage__intro{max-width:780px;text-align:center;padding-top:46px}.home-stage__line{width:72px;height:1px;margin:22px auto 26px;background:#16304c29}.home-stage__intro h1{margin:0;font-size:clamp(40px,5vw,72px);line-height:1.02;letter-spacing:-.04em;color:#152c45}.home-stage__intro p{max-width:720px;margin:20px auto 0;color:#657b95;font-size:16px;line-height:1.85}.home-stage__actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:28px}.lab-showcase{width:100%;display:grid;justify-items:center;gap:22px;padding-bottom:28px}.lab-showcase__stack{position:relative;width:min(1040px,100%);min-height:560px;display:grid;place-items:center}.lab-showcase__card{position:absolute;top:32px;left:50%;width:260px;min-height:360px;padding:18px 18px 22px;border:1px solid rgba(24,42,62,.08);border-radius:22px;background:var(--card-accent);color:#fff6ef;text-align:left;box-shadow:0 28px 60px #11233629;transform:translate(calc(-50% + var(--card-shift))) rotate(var(--card-rotate));transform-origin:bottom center;transition:transform .32s cubic-bezier(.22,1,.36,1),box-shadow .32s ease,filter .24s ease,opacity .24s ease;z-index:calc(10 + var(--card-depth))}.lab-showcase__stack:hover .lab-showcase__card{filter:saturate(.92)}.lab-showcase__card.is-active{filter:saturate(1.02)!important;box-shadow:0 36px 78px #11233647;transform:translate(calc(-50% + var(--card-shift))) translateY(-22px) rotate(calc(var(--card-rotate) * .45)) scale(1.04);z-index:40}.lab-showcase__card.is-dimmed{opacity:.72;filter:saturate(.82)}.lab-showcase__graphic{height:140px;border-radius:14px;background-image:var(--card-pattern);background-size:cover;opacity:.98}.lab-showcase__content{margin-top:18px}.lab-showcase__badge{display:inline-flex;padding:6px 11px;border-radius:999px;background:#ffffff29;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.lab-showcase__content h2{margin:18px 0 12px;font-size:34px;line-height:.95;letter-spacing:-.05em}.lab-showcase__content p{margin:0;color:#fff7ede0;line-height:1.7;font-size:14px}.lab-showcase__detail{width:min(860px,100%);padding:20px 24px;border:1px solid rgba(19,44,69,.08);border-radius:22px;background:#ffffffb8;box-shadow:0 18px 42px #122e4e14;text-align:center}.lab-showcase__detail-eyebrow{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#8090a3}.lab-showcase__detail h3{margin:10px 0 12px;font-size:28px;color:#152c45}.lab-showcase__detail p{max-width:760px;margin:0 auto;color:#677d95;line-height:1.75}.lab-showcase__detail-tags{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:18px}.lab-showcase__detail-chip{display:inline-flex;padding:8px 12px;border-radius:999px;background:#0b6aa814;color:#215070;font-size:12px;font-weight:700}.lab-showcase__legend{width:min(1040px,100%);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.lab-showcase__legend-item{display:grid;gap:4px;padding:16px 18px;border:1px solid rgba(19,44,69,.09);border-radius:18px;background:#ffffffb8;text-align:left;box-shadow:0 12px 30px #122e4e0f;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.lab-showcase__legend-item:hover{transform:translateY(-2px);border-color:#132c4529;box-shadow:0 16px 36px #122e4e1a}.lab-showcase__legend-item.is-active{border-color:#132c4533;background:#fffffff0;box-shadow:0 18px 42px #122e4e1f}.lab-showcase__legend-item strong{color:#16304c;font-size:15px}.lab-showcase__legend-item span{color:#6b7f95;font-size:13px;line-height:1.5}.lab-showcase__legend-dot{width:12px;height:12px;border-radius:999px;margin-bottom:4px}.hero-banner__copy,.lab-hero__content{padding:12px 6px}.hero-banner__copy h1,.lab-hero__content h1{margin:16px 0 14px;font-size:clamp(34px,5vw,58px);line-height:1.02;color:#13304d}.hero-banner__copy p,.lab-hero__content p{margin:0;max-width:700px;color:#59728f;font-size:16px;line-height:1.8}.hero-banner__actions{gap:12px;flex-wrap:wrap;margin-top:26px}.hero-banner__panel{overflow:hidden;padding:0}.hero-banner__visual{position:relative;min-height:280px}.hero-banner__visual img{width:100%;height:100%;object-fit:cover}.hero-banner__news{flex-direction:column;align-items:stretch;gap:12px;padding:22px}.signal-row{gap:14px;justify-content:space-between;padding:12px 14px;border-radius:18px;background:#0b6aa80d}.signal-row__tag,.lab-tile__badge{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:700;background:#ffffff29;color:#fff}.signal-row__tag{color:#0b5f95;background:#0b6aa81a}.signal-row__title{flex:1;color:#17314f;font-weight:600}.signal-row__date{font-size:13px;color:#7388a1}.metric-grid,.detail-grid,.resource-grid,.dataset-grid{display:grid;gap:18px}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.metric-card{text-align:left}.metric-card__icon{width:48px;height:48px;border-radius:16px;margin-bottom:18px}.metric-card__value{font-size:clamp(28px,3vw,42px);font-weight:800}.metric-card__label{margin-top:6px;color:#5a738f}.lab-grid,.resource-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.lab-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-tile{position:relative;min-height:320px;padding:24px;border:none;border-radius:30px;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;text-align:left;background-size:cover;background-position:center;box-shadow:0 20px 54px #15304d29}.lab-tile:before,.lab-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0a14231f,#0a1423a6)}.lab-tile>*,.lab-hero__content{position:relative;z-index:1}.lab-tile__body h3,.resource-card h3,.detail-card h3,.list-card h3,.dataset-card h3,.workspace-card h3,.login-modal h3,.empty-state h3,.app-footer h3{margin:0}.lab-tile__body{color:#fff}.lab-tile__icon{width:52px;height:52px;border-radius:18px;display:grid;place-items:center;margin-bottom:18px;background:#ffffff2e;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.lab-tile__body h3{font-size:26px;margin-bottom:12px}.lab-tile__body p{margin:0;color:#ffffffe0;line-height:1.75}.lab-tile__footer{justify-content:space-between;gap:12px;color:#ffffffe6;font-size:14px}.resource-card__icon,.detail-card__icon,.empty-state__icon,.login-modal__badge{width:52px;height:52px;border-radius:18px;margin-bottom:18px;background:linear-gradient(135deg,#0b4f7a,#0d77b2);color:#fff}.resource-card p,.detail-card p,.dataset-card p,.workspace-card p,.empty-state p,.login-modal p{color:#5a738f;line-height:1.75}.resource-card__meta{margin:18px 0;color:#71859f;font-size:13px}.lab-hero{position:relative;z-index:1;min-height:360px;margin-top:18px;border-radius:34px;overflow:hidden;background-size:cover;background-position:center}.lab-hero__content{position:relative;z-index:1;width:min(1240px,calc(100% - 32px));margin:0 auto;padding-block:70px}.lab-hero__content h1,.lab-hero__content p{color:#fff}.lab-hero__chips,.tag-cloud,.tile-picker{display:flex;flex-wrap:wrap;gap:10px}.glass-chip,.app-badge{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;font-size:12px;font-weight:700}.glass-chip{background:#ffffff24;color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.detail-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.detail-card,.list-card,.workspace-card,.dataset-card{height:100%}.detail-card h3,.list-card h3,.workspace-card h3,.dataset-card h3{font-size:22px}.detail-card p{margin-bottom:0}.split-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}.admin-workspace{display:grid;gap:24px}.list-stack{display:grid;gap:12px;margin-top:18px}.list-stack__row{gap:10px;padding:14px;border-radius:18px;background:#0b6aa80d;color:#284868}.dataset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dataset-card__top,.dataset-card__facts,.dataset-card__footer{justify-content:space-between;gap:12px}.dataset-card__top{align-items:flex-start}.dataset-card__facts{flex-wrap:wrap;margin:20px 0;color:#4d6784}.dataset-card__facts span,.dataset-card__footer span{display:inline-flex;align-items:center;gap:6px}.dataset-card__footer{padding-top:16px;border-top:1px solid rgba(16,35,63,.09);color:#7388a1;font-size:13px}.admin-asset-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.admin-asset-actions--align{justify-content:flex-end}.admin-user-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.admin-user-form__password{grid-column:1 / -1}.toolbar{justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:18px}.toolbar--tabs{margin-top:8px}.toolbar-chip{padding:10px 14px;border-radius:999px;background:#ffffffbd;color:#45637f}.toolbar-chip.is-active{background:linear-gradient(135deg,#0b4f7a,#0d77b2);color:#fff;box-shadow:0 12px 28px #0b6aa833}.toolbar__search{gap:8px;min-width:260px;padding:0 14px;border-radius:18px;background:#ffffffc7;border:1px solid rgba(16,35,63,.08)}.toolbar__search input{border:none;background:transparent;height:46px}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.field{display:grid;gap:8px}.field--wide{grid-column:1 / -1}.field span{font-weight:600;color:#264767}.field input,.field select,.field textarea{width:100%;border:1px solid rgba(16,35,63,.1);border-radius:18px;background:#ffffffe0;padding:13px 15px;color:#16304c}.field input:focus,.field select:focus,.field textarea:focus,.toolbar__search input:focus{outline:none}.upload-dropzone{position:relative;border:1.5px dashed rgba(11,106,168,.24);border-radius:24px;background:linear-gradient(135deg,#0b6aa80d,#fffc);padding:28px;text-align:center}.upload-dropzone input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}.upload-dropzone strong{display:block;margin-top:12px;color:#16304c}.upload-dropzone p{margin:8px 0 0}.tile-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.tile-picker__item{gap:10px;justify-content:flex-start;padding:14px;border-radius:18px;background:#ffffffb8;color:#355372}.tile-picker__item.is-active{background:#0b6aa81a;color:#0b5f95;box-shadow:inset 0 0 0 1px #0b6aa829}.file-list,.log-panel{display:grid;gap:10px;margin-top:14px}.file-list__item,.log-panel__row{justify-content:space-between;gap:12px;padding:12px 14px;border-radius:16px;background:#0b6aa80d;color:#355372}.log-panel__row{justify-content:flex-start}.progress-strip{overflow:hidden;width:100%;height:10px;border-radius:999px;background:#10233f14}.progress-strip__bar{height:100%;background:linear-gradient(135deg,#0b4f7a,#30a98e);border-radius:inherit;transition:width .22s ease}.workspace-card__header,.workspace-card__footer,.workspace-card__status{justify-content:space-between;gap:14px}.workspace-card__header{align-items:flex-start;margin-bottom:20px}.workspace-card__footer{flex-direction:column;align-items:stretch;margin-top:6px}.workspace-card__status{color:#58708f;font-size:14px}.form-note{padding:14px 16px;border-radius:16px;background:#d9822b14;color:#9d5f1f}.form-note--error{background:#c44b4f14;color:#b23d42}.empty-state{text-align:center}.empty-state__icon,.login-modal__badge{margin-inline:auto}.loading-dot{width:14px;height:14px;border-radius:999px;margin:0 auto 14px;background:linear-gradient(135deg,#0b4f7a,#30a98e);box-shadow:0 0 0 8px #0b6aa81f;animation:pulse 1.4s ease-in-out infinite}.modal-backdrop{position:fixed;inset:0;display:grid;place-items:center;padding:20px;background:#07182a52;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:40}.login-modal{overflow:hidden;padding:0}.login-modal__hero{position:relative;padding:34px 28px 26px;background:linear-gradient(135deg,#0b4f7a,#0d77b2);color:#fff}.login-modal__hero h3{font-size:28px;margin:14px 0 10px}.login-modal__hero p{margin:0;color:#ffffffdb}.login-modal__form{display:grid;gap:16px;padding:26px}.login-modal__close{position:absolute;top:18px;right:18px;width:36px;height:36px;border:none;border-radius:12px;background:#ffffff24;color:#fff}.login-modal__actions{display:flex;justify-content:flex-end;gap:12px}.app-footer{position:relative;z-index:1;margin-top:52px;padding:0 0 42px}.app-footer__inner{padding:26px 24px;border-radius:30px;border:1px solid rgba(255,255,255,.6);background:#ffffffb8;box-shadow:0 20px 44px #122e4e1a}.app-footer__meta{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px;color:#6d829d}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.08);opacity:.75}}@media(max-width:1080px){.metric-grid,.detail-grid,.dataset-grid,.resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-banner,.split-layout{grid-template-columns:1fr}.lab-showcase__stack{min-height:460px}.lab-showcase__card{width:220px;min-height:320px}.lab-showcase__legend{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.app-main,.page-section,.topbar,.hero-banner,.lab-hero,.app-footer__inner{width:min(1240px,calc(100% - 20px))}.topbar-shell{padding-top:10px}.topbar{padding:14px}.brand-lockup__text strong{font-size:16px}.hero-banner__copy h1,.lab-hero__content h1{font-size:34px}.home-stage{width:min(1240px,calc(100% - 20px));min-height:auto;gap:20px}.home-stage__intro{padding-top:20px}.home-stage__intro h1{font-size:36px}.lab-showcase__stack{min-height:auto;display:grid;gap:14px}.lab-showcase__card{position:relative;top:auto;left:auto;width:100%;min-height:auto;transform:none}.lab-showcase__stack:hover .lab-showcase__card,.lab-showcase__card.is-active,.lab-showcase__card:hover{transform:none;filter:none!important;opacity:1}.metric-grid,.detail-grid,.dataset-grid,.resource-grid,.lab-grid,.form-grid,.split-layout,.tile-picker,.lab-showcase__legend{grid-template-columns:1fr}.section-header,.workspace-card__header,.workspace-card__status,.dataset-card__top,.dataset-card__footer{align-items:flex-start;flex-direction:column}.toolbar{align-items:stretch}.toolbar__search{min-width:100%}.login-modal__actions,.hero-banner__actions{flex-direction:column}}
