.app{--platform-header-gap: calc(.55rem + 3mm) ;width:100%;max-width:min(1100px,100%);margin:0 auto;padding:1.5rem 1.25rem 2rem;display:flex;flex-direction:column;min-height:100vh;min-width:0;box-sizing:border-box}.app>.experiment-workspace-outer{flex:1 1 auto;min-height:0}.lab-hero{margin-bottom:1.5rem;border-bottom:1px solid var(--border);padding-top:5mm;padding-bottom:calc(.9rem - 1mm)}.lab-topbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1.2rem 1.5rem}.lab-brand{display:flex;align-items:center;gap:.8rem;justify-self:start;min-width:0}.lab-logo-wrap{width:48px;height:48px;border-radius:999px;background:var(--bg);display:flex;align-items:center;justify-content:center;overflow:hidden}.lab-brand-logo{height:40px;width:auto;object-fit:contain}.lab-brand-text{display:flex;flex-direction:column;gap:.1rem}.lab-brand-univ{font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.lab-brand-lab{font-size:1.5rem;font-weight:700;letter-spacing:-.02em;color:var(--text)}.lab-platform-badge{display:flex;flex-direction:column;justify-content:center;align-items:center;justify-self:center;grid-column:2;padding:3mm 0;gap:var(--platform-header-gap)}.lab-header-quicknav{width:100%;max-width:min(52rem,100%);display:flex;justify-content:center}.lab-header-quicknav-btns{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.4rem .45rem}.lab-header-quicknav-tab.nav-tab{font-size:.78rem;padding:.3rem .7rem}.lab-platform-main{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;position:relative;isolation:isolate;gap:.22rem;font-size:1.5rem;font-weight:800;letter-spacing:-.025em;color:#eef6ff;text-align:center;padding:.4rem 1.35rem;border-radius:11px;background:linear-gradient(160deg,#132642c7,#1c3b68bd 45%,#34366cb8);backdrop-filter:blur(8px) saturate(120%);-webkit-backdrop-filter:blur(8px) saturate(120%);border:1px solid rgba(142,178,226,.34);border-top-color:#d5e7ff8f;margin:0 auto;box-shadow:inset 0 1px #ecf6ff6b,inset 0 -10px 16px #08122633,0 10px 24px #040c2147,0 3px 8px #040c2133,0 0 16px #4476c229}.lab-platform-main:before{content:"";position:absolute;left:10%;right:10%;top:0;height:52%;border-radius:999px;background:linear-gradient(to bottom,#e8f3ff47,#e8f3ff00);pointer-events:none;z-index:-1}.lab-platform-main:after{content:"";position:absolute;top:1px;right:1px;bottom:1px;left:1px;border-radius:10px;border:1px solid rgba(190,217,255,.18);pointer-events:none;z-index:-1}.lab-platform-main-text{font-size:1.5rem;font-weight:850;letter-spacing:-.025em;line-height:1.1;color:#f6fbff;text-shadow:0 1px 0 rgba(255,255,255,.2),0 8px 18px rgba(4,12,31,.34)}.lab-platform-main-btn{cursor:pointer}.lab-platform-sub{display:block;font-size:.8rem;font-weight:620;letter-spacing:.04em;line-height:1.2;color:#c4ddfcf2;text-shadow:0 4px 10px rgba(5,12,30,.28)}.lab-platform-sub-row{margin-top:calc(.15rem - .5cm);display:flex;justify-content:center}.lab-header-session{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.65rem;grid-column:3;justify-self:end;min-width:0}.lab-header-spacer{grid-column:3;justify-self:end}.lab-header-guest-meta{grid-column:3;justify-self:end;align-self:center;display:flex;flex-direction:column;align-items:flex-end;gap:.4rem;max-width:min(22rem,38vw);min-width:0}.lab-header-slogan{margin:0;font-size:.74rem;font-weight:500;letter-spacing:.02em;line-height:1.4;color:#94a3b8f2;text-align:right;text-wrap:balance}.lab-header-meta-badges{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.35rem}.lab-meta-badge{font-size:.65rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:.18rem .45rem;border-radius:999px;border:1px solid rgba(148,163,184,.35);background:#0f172a73;color:#cbd5e1f2;white-space:nowrap}.lab-meta-badge--version{font-family:var(--mono);text-transform:none;letter-spacing:.04em;font-weight:500;color:#bae6fde6;border-color:#38bdf840;background:#38bdf814}.lab-meta-badge--env{color:#7dd3fc;border-color:#38bdf859;background:#38bdf81a}.lab-btn-admin{font-size:.68rem;letter-spacing:.06em;padding:.22rem .55rem;border-radius:999px;border:1px solid var(--border);background:#38bdf81f;color:var(--accent);cursor:pointer;white-space:nowrap}.lab-btn-admin:hover{background:#38bdf838;border-color:var(--accent)}.sys-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.9rem}.sys-card{border:1px solid var(--border);border-radius:12px;padding:.9rem;margin-top:.9rem;background:#0f172a33}.sys-card h3{margin:0 0 .6rem;font-size:.95rem}.sys-runtime-row{display:flex;gap:.5rem;flex-wrap:wrap}.sys-list{display:flex;flex-direction:column;gap:.5rem}.sys-item{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.sys-badge{border-radius:999px;border:1px solid var(--border);padding:.16rem .52rem;font-size:.72rem;font-weight:600}.sys-badge--ok{color:#22c55e;border-color:#22c55e80;background:#22c55e1a}.sys-badge--warn{color:#f59e0b;border-color:#f59e0b73;background:#f59e0b1a}.sys-badge--placeholder{color:#60a5fa;border-color:#60a5fa80;background:#60a5fa1a}.service-unavailable-banner{margin:0 0 1rem;border:1px solid rgba(245,158,11,.45);background:#f59e0b1f;color:#fbbf24;border-radius:10px;padding:.65rem .85rem;font-size:.86rem}@media (max-width: 768px){.lab-topbar{grid-template-columns:1fr;align-items:flex-start;gap:.75rem}.lab-brand{grid-column:1;grid-row:1}.lab-header-session{width:100%;grid-column:1;grid-row:2;justify-self:stretch;justify-content:flex-start}.lab-header-spacer{display:none}.lab-platform-badge{grid-column:1;grid-row:3;justify-self:center;width:100%;margin-top:.25rem}.lab-header-quicknav-btns{justify-content:center}.lab-platform-main{display:inline-flex;flex-direction:column;align-items:center;width:fit-content;max-width:100%;gap:.16rem;padding:.35rem 1rem}.lab-platform-main-text{font-size:1.32rem}.lab-header-guest-meta{grid-column:1;grid-row:2;justify-self:stretch;max-width:100%;align-items:center}.lab-header-slogan{text-align:center;font-size:.7rem}.lab-header-meta-badges{justify-content:center}}.grid{display:grid;gap:1.25rem;min-width:0}.grid>*{min-width:0}@media (min-width: 900px){.grid-2{grid-template-columns:1fr 1fr}}.panel{background:#2a3648e6;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(91,111,139,.85);border-radius:12px;padding:1.25rem 1.35rem;min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:break-word}.panel h2{margin:0 0 1rem;font-size:1.05rem;font-weight:600;color:var(--text);overflow-wrap:anywhere}.panel h3{overflow-wrap:anywhere}.panel ul,.panel ol{margin:.5rem 0 0;padding-left:1.25rem}.panel li{overflow-wrap:anywhere;word-break:break-word;line-height:1.45;margin-bottom:.35rem}.top-nav{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.top-nav-wrap{display:flex;flex-direction:column;gap:.15rem;margin-bottom:1.25rem}.workflow-nav{margin-bottom:.35rem}.workflow-current-project{margin:.05rem 0 .4rem;font-size:.9rem;color:var(--text);display:flex;flex-wrap:wrap;align-items:center;gap:.45rem}.workflow-current-project strong{color:var(--accent, #5ec9ff)}.workflow-current-project-label{font-weight:600;color:var(--accent, #5ec9ff)}.workflow-project-select{min-width:14rem;max-width:min(42rem,100%)}.workflow-project-new-btn{padding:.42rem .7rem;font-size:.82rem}.workflow-progress{display:flex;flex-wrap:wrap;align-items:stretch;gap:.35rem .45rem;list-style:none;margin:0;padding:.35rem 0 .25rem;border-bottom:1px solid rgba(148,163,184,.28)}.workflow-progress-item{flex:1 1 auto;min-width:min(100%,8.5rem)}.workflow-step-btn{width:100%;display:flex;align-items:flex-start;gap:.45rem;text-align:left;padding:.42rem .55rem .48rem;border-radius:10px;border:1px solid rgba(148,163,184,.35);background:#0f172a59;color:var(--muted);cursor:pointer;transition:border-color .12s ease,background .12s ease,color .12s ease}.workflow-step-btn:hover{border-color:#38bdf873;color:var(--text)}.workflow-step-btn--active{border-color:#38bdf8a6;background:linear-gradient(180deg,#38bdf838,#0f172a8c);color:#e2e8f0;box-shadow:inset 0 1px #ffffff0f}.workflow-progress-item--current .workflow-step-num{background:#38bdf859;color:#0f172a}.workflow-step-num{flex:0 0 auto;width:1.35rem;height:1.35rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:800;background:#94a3b833;color:var(--muted)}.workflow-step-text{display:flex;flex-direction:column;gap:.06rem;min-width:0}.workflow-step-label{font-size:.78rem;font-weight:650;letter-spacing:-.02em;line-height:1.2}.workflow-step-en{font-size:.62rem;font-weight:500;letter-spacing:.02em;color:#94a3b8f2;line-height:1.2}.workflow-step-btn--active .workflow-step-en{color:#e2e8f0d9}.workflow-step-hint{margin:.25rem 0 0;font-size:.72rem;color:var(--muted);line-height:1.35}.top-nav-row--workflow-sub .top-nav-row-label{width:6.5rem}@media (max-width: 720px){.workflow-progress-item{min-width:calc(50% - .25rem)}.workflow-step-en{display:none}}.top-nav-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:.35rem .55rem;padding:.4rem 0;border-bottom:1px solid rgba(148,163,184,.22)}.top-nav-row:last-child{border-bottom:none}.top-nav-row-label{flex:0 0 auto;width:7.75rem;font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);padding-top:.44rem;line-height:1.25}@media (max-width: 720px){.top-nav-row-label{width:100%;padding-top:0}}.top-nav-row-btns{display:flex;flex-wrap:wrap;gap:.45rem;flex:1 1 auto;min-width:0}.nav-tab--ai{border-style:dashed}.nav-tab--ai:not(.nav-tab-active){opacity:.88}.top-nav--auth{margin-bottom:0}.nav-tab{padding:.45rem .9rem;border-radius:999px;border:1px solid var(--border);background:#0f172a66;color:var(--muted);font-size:.85rem;cursor:pointer}.nav-tab-active{background:linear-gradient(180deg,var(--accent) 0%,var(--accent-dim) 100%);color:#0f172a;border-color:transparent}.nav-tab:hover:not(.nav-tab-active){border-color:var(--accent);color:var(--text)}label{display:block;font-size:.8rem;font-weight:600;color:var(--muted);margin-bottom:.35rem}.field{margin-bottom:1rem}.field:last-child{margin-bottom:0}input[type=file]{width:100%;padding:.5rem 0;font-size:.85rem;color:var(--muted)}select,input[type=text],textarea{width:100%;max-width:100%;min-width:0;padding:.55rem .65rem;border-radius:8px;border:1px solid var(--border);background:var(--surface2);color:var(--text);font-size:.9rem}textarea{resize:vertical;line-height:1.45}select:focus,input[type=text]:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.55rem 1rem;border-radius:8px;border:none;font-size:.9rem;font-weight:600;cursor:pointer;background:linear-gradient(180deg,var(--accent) 0%,var(--accent-dim) 100%);color:#0f172a}.btn:hover{filter:brightness(1.06)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--surface2);color:var(--text);border:1px solid var(--border)}.msg{font-size:.85rem;margin-top:.75rem;padding:.65rem .75rem;border-radius:8px;background:var(--surface2);border:1px solid var(--border);overflow-wrap:anywhere;word-break:break-word}.msg.error{border-color:#f87171;color:#fecaca}.msg.ok{border-color:var(--ok);color:#a7f3d0}.table-wrap{overflow-x:auto;overflow-y:auto;max-width:100%;max-height:320px;border-radius:8px;border:1px solid var(--border);-webkit-overflow-scrolling:touch}.table-wrap table{table-layout:fixed;width:100%}table{width:100%;border-collapse:collapse;font-size:.8rem;font-family:var(--mono)}th,td{padding:.45rem .6rem;text-align:left;border-bottom:1px solid var(--border);white-space:normal;overflow-wrap:anywhere;word-break:break-word;vertical-align:top}.table-cell-progress{width:26%;min-width:0;max-width:100%;vertical-align:middle}th{background:var(--surface2);position:sticky;top:0;z-index:1}.metrics-interpretation{margin-bottom:1rem;padding:.85rem 1rem;border-radius:10px;border:1px solid rgba(56,189,248,.35);background:#38bdf814}.metrics-interpretation-title{margin:0 0 .5rem;font-size:.88rem;font-weight:600;color:#e0f2fe}.metrics-interpretation-body{font-size:.85rem;line-height:1.65;color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}.metrics-pre{font-family:var(--mono);font-size:.75rem;line-height:1.45;overflow:auto;max-width:100%;max-height:240px;margin:0;padding:.75rem;background:#0c1017;border-radius:8px;border:1px solid var(--border);overflow-wrap:anywhere;word-break:break-word}.plot-img{max-width:100%;height:auto;border-radius:8px;border:1px solid var(--border);display:block;margin-top:.75rem}.stat-card{border-radius:10px;border:1px solid var(--border);background:radial-gradient(circle at top left,rgba(56,189,248,.16),transparent 55%);padding:.85rem .9rem}.stat-label{font-size:.8rem;color:var(--muted);margin-bottom:.25rem}.stat-value{font-size:1.4rem;font-weight:700}.mini-table{width:100%;max-width:100%;table-layout:fixed;border-collapse:collapse;font-size:.8rem}.mini-table th,.mini-table td{text-align:left;padding:.35rem .5rem;border-bottom:1px solid var(--border);white-space:normal;overflow-wrap:anywhere;word-break:break-word;vertical-align:top}.upload-dropzone{border:2px dashed var(--border);border-radius:12px;padding:1.25rem 1.1rem;margin-bottom:.75rem;background:#0f172a40;transition:border-color .15s ease,background .15s ease}.upload-dropzone--active{border-color:var(--accent);background:#38bdf81a}.upload-dropzone .upload-dropzone-field{margin-bottom:.5rem}.upload-dropzone-hint{margin-top:.35rem;margin-bottom:0}.hint{font-size:.8rem;color:var(--muted);margin-top:.5rem;overflow-wrap:anywhere;word-break:break-word}.flex{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.checkbox-row{display:flex;flex-wrap:wrap;gap:.5rem 1rem;font-size:.85rem;color:var(--text)}.checkbox-row label{display:inline-flex;align-items:center;gap:.35rem;font-weight:500;color:var(--text);margin:0;cursor:pointer}.checkbox-row input{width:auto}.lab-footer-tagline{margin-top:auto;padding-top:2rem;padding-bottom:.25rem;border-top:1px solid var(--border);text-align:center}.lab-footer-tagline p{margin:0;font-size:.88rem;color:var(--muted);letter-spacing:.03em;line-height:1.55;font-weight:500}.lab-api-badge{font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:.2rem .5rem;border-radius:6px;border:1px solid var(--border);background:#38bdf81f;color:#7dd3fc;white-space:nowrap}.lab-session-email{font-size:.8rem;color:var(--muted);max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lab-logout{font-size:.8rem;padding:.35rem .75rem;border-radius:999px;border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer}.lab-logout:hover{border-color:var(--accent)}.auth-loading-screen{min-height:40vh;display:flex;align-items:center;justify-content:center;color:var(--muted)}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem 1rem}.auth-panel-below-nav{margin-top:calc(var(--platform-header-gap) + 2mm);display:flex;justify-content:center;padding:0 1rem 2rem}.app:has(.auth-panel-below-nav) .lab-hero{margin-bottom:0}.auth-card{width:100%;max-width:420px;padding:1.75rem;border-radius:12px;border:1px solid var(--border);background:linear-gradient(180deg,#ffffff0f,#ffffff05),var(--surface);box-shadow:0 12px 40px #00000038}.auth-card--compact{transform:scale(.91);transform-origin:top center}.auth-title{margin:0 0 .5rem;font-size:1.35rem}.auth-hint{margin:0 0 1.25rem;font-size:.85rem;color:var(--muted);line-height:1.45}.auth-hint-below-register{margin:.85rem 0 0;text-align:center}.auth-backend-mode{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.25rem;padding:.75rem .85rem;border-radius:10px;border:1px solid var(--border);background:#00000026}.auth-backend-mode-label{font-size:.75rem;font-weight:600;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}.auth-backend-mode-buttons{display:flex;gap:.5rem}.auth-backend-mode-sub{display:flex;gap:.45rem;padding-left:.15rem;border-left:2px solid rgba(56,189,248,.35);margin-left:.1rem}.auth-backend-mode-btn{flex:1;padding:.45rem .6rem;font-size:.82rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer}.auth-backend-mode-btn:hover:not(:disabled){border-color:var(--accent)}.auth-backend-mode-btn--sub{flex:1;font-size:.78rem;padding:.38rem .45rem}.auth-backend-mode-btn--active{border-color:#38bdf8;background:#38bdf826;color:#e0f2fe;font-weight:600}.auth-ai-agent-model{display:flex;flex-direction:column;gap:.3rem}.auth-ai-agent-model-label{font-size:.72rem;font-weight:600;color:var(--muted);letter-spacing:.05em;text-transform:uppercase}.auth-ai-agent-model-select{width:100%;padding:.4rem .5rem;font-size:.82rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text)}.auth-backend-mode-btn:disabled{opacity:.65;cursor:not-allowed}.auth-backend-mode-hint{margin:0;font-size:.75rem;color:var(--muted);line-height:1.4}.auth-backend-mode-status{margin:.35rem 0 0;font-size:.78rem;line-height:1.35}.auth-backend-mode-status--pending{color:var(--muted)}.auth-backend-mode-status--ok{color:#4ade80}.auth-backend-mode-status--err{color:#f87171}.auth-backend-endpoint-row{display:flex;flex-direction:column;gap:.35rem;margin-top:.5rem;padding:.55rem .6rem;border-radius:8px;border:1px solid var(--border);background:#ffffff08}.auth-backend-endpoint-label{font-size:.72rem;font-weight:600;color:var(--muted)}.auth-backend-endpoint-input{width:100%;padding:.45rem .5rem;font-size:.8rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text)}.auth-backend-endpoint-save{align-self:flex-start;margin-top:.15rem;font-size:.78rem;padding:.35rem .65rem}.auth-form{display:flex;flex-direction:column;gap:.85rem}.auth-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;font-weight:500}.auth-form input{padding:.5rem .65rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text)}.auth-error{font-size:.85rem;color:#f87171;overflow-wrap:anywhere;word-break:break-word}.auth-success{font-size:.85rem;color:#4ade80;line-height:1.4}.auth-submit{margin-top:.25rem;padding:.55rem 1rem;border-radius:8px;border:none;background:linear-gradient(135deg,#38bdf8,#6366f1);color:#0f172a;font-weight:600;cursor:pointer}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-link{margin-top:1rem;width:100%;padding:.4rem;background:transparent;border:none;color:var(--accent);cursor:pointer;font-size:.85rem;text-decoration:underline}.admin-page{padding:.25rem 0 1.5rem}.admin-section{margin-bottom:2rem}.admin-section h3{margin:0 0 .75rem;font-size:1rem}.admin-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin-bottom:.75rem}.admin-filters label{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem}.admin-filters input{min-width:120px;padding:.35rem .5rem;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text)}.admin-filters button{padding:.4rem .75rem;border-radius:6px;border:1px solid var(--border);background:var(--bg);cursor:pointer}.admin-table-wrap{overflow-x:auto;max-width:100%;border-radius:8px;border:1px solid var(--border)}.admin-table{width:100%;max-width:100%;table-layout:fixed;border-collapse:collapse;font-size:.78rem}.admin-table th,.admin-table td{text-align:left;padding:.45rem .5rem;border-bottom:1px solid var(--border);vertical-align:top;overflow-wrap:anywhere;word-break:break-word}.admin-table td{white-space:normal}.admin-table th{background:#ffffff08;white-space:normal}.admin-actions{display:flex;flex-wrap:wrap;gap:.35rem}.admin-actions button{font-size:.72rem;padding:.25rem .45rem;border-radius:4px;border:1px solid var(--border);background:var(--bg);cursor:pointer}.admin-detail{max-width:280px;word-break:break-all}.page-title{margin:0 0 1rem}.admin-hint-block{margin:0 0 .75rem;font-size:.82rem}.admin-announce-form{display:flex;flex-direction:column;gap:.65rem;margin-bottom:.75rem;max-width:640px}.admin-announce-form label{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;color:var(--muted)}.admin-announce-form input,.admin-announce-form textarea{width:100%;max-width:100%;padding:.45rem .55rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:.88rem}.admin-announce-form-row{width:100%}.admin-announce-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.admin-table-announce .admin-col-id{width:3rem}.admin-announce-body{max-width:220px;font-size:.76rem;line-height:1.35}.admin-mono{font-family:var(--mono);font-size:.72rem;white-space:nowrap}.admin-panel-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#0f172aa6;display:flex;align-items:flex-start;justify-content:center;padding:2rem 1rem;overflow-y:auto}.admin-panel-modal{width:100%;max-width:520px;margin-top:.5rem;padding:1.25rem 1.35rem;border-radius:12px;border:1px solid var(--border);background:var(--surface);box-shadow:0 24px 48px #00000073}.admin-panel-modal-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1rem;padding-bottom:.65rem;border-bottom:1px solid var(--border)}.admin-panel-modal-title{margin:0;font-size:1.1rem;font-weight:600}.admin-panel-close{font-size:.8rem;padding:.3rem .65rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer}.admin-panel-body{display:flex;flex-direction:column;gap:1.25rem}.admin-panel-section h3{margin:0 0 .5rem;font-size:.9rem;font-weight:600;color:var(--text)}.admin-panel-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem}.admin-panel-list li{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap;font-size:.8rem;padding:.4rem .5rem;border-radius:8px;border:1px solid var(--border);background:#0f172a59}.admin-panel-list li button{font-size:.75rem;padding:.25rem .55rem;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer}.admin-panel-btn-danger{border-color:#f8717180!important;color:#f87171!important}.admin-panel-footer-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}.admin-panel-footer-actions button{font-size:.8rem;padding:.35rem .75rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer}.admin-panel-form{display:flex;flex-direction:column;gap:.65rem}.admin-panel-form label{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem}.admin-panel-form input{padding:.45rem .55rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text)}.arch-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;background:#0f172ab8;display:flex;align-items:center;justify-content:center;padding:1.4rem 1rem}.arch-modal{width:100%;max-width:920px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:1.2rem;box-shadow:0 20px 50px #0006;max-height:calc(100vh - 2.8rem);overflow:auto}.experiment-entry-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;background:#0f172ab8;display:flex;align-items:center;justify-content:center;padding:1.2rem}.experiment-entry-dialog{width:min(100%,620px);border-radius:14px;border:1px solid var(--border);background:var(--surface);box-shadow:0 18px 44px #00000059;padding:1rem 1rem 1.05rem}.experiment-entry-dialog h3{margin:0 0 .5rem;font-size:1.05rem}.experiment-entry-dialog .hint{margin:0}.experiment-entry-actions{margin-top:.9rem;display:flex;flex-wrap:wrap;gap:.45rem}.arch-diagram{margin-top:.8rem;display:grid;gap:.6rem}.arch-node{border:1px solid var(--border);border-radius:10px;padding:.7rem .8rem;background:#38bdf814;font-size:.9rem}.arch-arrow{text-align:center;font-size:.82rem;color:var(--muted)}.arch-external{margin-top:1rem;padding-top:.85rem;border-top:1px dashed var(--border)}.arch-row{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin-top:.35rem}.arch-node--compact{flex:1 1 220px;max-width:300px;font-size:.85rem}.arch-actions{margin-top:1rem;display:flex;justify-content:flex-end}.jobs-log-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10050;background:#0f172ab8;display:flex;align-items:center;justify-content:center;padding:1.4rem 1rem}.jobs-log-modal{width:100%;max-width:min(920px,100%);background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:1.2rem 1.35rem;box-shadow:0 20px 50px #0006;max-height:calc(100vh - 2.8rem);overflow:hidden;display:flex;flex-direction:column;min-width:0}.jobs-log-modal-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.5rem;flex-shrink:0}.jobs-log-modal-title{margin:0;font-size:1.1rem;font-weight:600;color:var(--text)}.jobs-log-modal-close{flex-shrink:0;font-size:.85rem;padding:.35rem .85rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer}.jobs-log-modal-close:hover{border-color:var(--accent)}.jobs-log-pre{flex:1 1 auto;min-height:0;max-height:min(55vh,520px);margin-top:.25rem}.ai-chat-page{max-width:min(900px,100%);margin:0 auto;display:flex;flex-direction:column;gap:.75rem;min-height:min(78vh,900px)}.ai-chat-page--sidebar{max-width:none;margin:0;min-height:0;flex:1 1 auto;height:100%;gap:.35rem}.ai-chat-sidebar-subtitle{margin:.2rem 0 0;font-size:.78rem}.ai-chat-provider-hint--compact{margin:0;font-size:.72rem;line-height:1.35}.ai-chat-page .ai-chat-input-row{flex-shrink:0}.ai-chat-page--sidebar .ai-chat-thread{flex:1 1 auto;min-height:0;max-height:min(92vh,1320px);padding:.45rem .5rem;overflow-y:auto}.ai-chat-page--sidebar .ai-chat-input{min-height:114px}.ai-chat-page--sidebar .ai-chat-msg{grid-template-columns:30px 1fr;gap:.15rem .4rem;margin-bottom:.55rem;align-items:start}.ai-chat-page--sidebar .ai-chat-msg--assistant .ai-chat-msg-role,.ai-chat-page--sidebar .ai-chat-msg--user .ai-chat-msg-role{font-size:.7rem;line-height:1.15;padding-top:.08rem}.ai-chat-page--sidebar .ai-chat-msg-body{line-height:1.45}.ai-chat-page--sidebar .ai-chat-quick-chips{flex-wrap:wrap}.ai-chat-page--sidebar .ai-chat-chip{font-size:.72rem;padding:.25rem .45rem}.experiment-workspace-outer{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;max-height:calc(100vh - 9.5rem);gap:.4rem;width:100%}.experiment-workspace{display:grid;grid-template-columns:minmax(0,1.22fr) minmax(0,1.78fr);gap:.65rem .85rem;align-items:stretch;width:100%;flex:1 1 auto;min-height:0}.experiment-workspace-chat{display:flex;flex-direction:column;min-width:0;min-height:0;max-height:100%}.experiment-workspace-main{min-width:0;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:.65rem;max-height:100%}.experiment-workspace-main>.panel,.experiment-workspace-main>section{flex:1 1 auto}@media (max-width: 900px){.experiment-workspace-outer{max-height:none}.experiment-workspace{grid-template-columns:1fr;min-height:0}.experiment-workspace-chat{max-height:min(42vh,380px)}}.ai-chat-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.75rem}.ai-chat-header--sidebar{flex-wrap:nowrap;align-items:center;gap:.5rem}.ai-chat-header--sidebar .ai-chat-header-titles{min-width:0;flex:0 1 auto}.ai-chat-header--sidebar .ai-chat-title-h2{font-size:.95rem;font-weight:700}.ai-chat-header--sidebar .ai-chat-provider-box{flex-shrink:0}.ai-chat-header--sidebar .ai-chat-provider-label{flex-direction:row;align-items:center;gap:.35rem;font-size:.7rem;white-space:nowrap}.ai-chat-header--sidebar .ai-chat-provider-select{min-width:6.5rem;max-width:10rem;font-size:.74rem;padding:.22rem .35rem}.ai-chat-phase-hint{margin:.35rem 0 0;max-width:44rem;font-size:.84rem}.ai-chat-provider-box{flex-shrink:0}.ai-chat-provider-label{display:flex;flex-direction:column;gap:.25rem;font-size:.78rem;font-weight:600;color:var(--muted)}.ai-chat-provider-select{min-width:12rem;padding:.35rem .5rem;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:.88rem}.ai-chat-provider-hint{margin:0 0 .35rem;font-size:.8rem}.ai-chat-toggle{display:flex;align-items:center;gap:.4rem;font-size:.88rem;color:var(--muted);cursor:pointer}.ai-chat-thread{flex:1 1 auto;min-height:0;overflow-y:auto;border:1px solid var(--border);border-radius:12px;padding:.75rem .9rem;background:var(--bg)}.ai-chat-page:not(.ai-chat-page--sidebar) .ai-chat-thread{min-height:12rem;max-height:min(52vh,560px)}.ai-chat-msg{display:grid;grid-template-columns:52px 1fr;gap:.5rem .75rem;margin-bottom:1rem;align-items:start}.ai-chat-msg--user .ai-chat-msg-role{color:var(--accent);font-weight:600;font-size:.78rem}.ai-chat-msg--assistant .ai-chat-msg-role{color:#22c55e;font-weight:600;font-size:.78rem}.ai-chat-msg-body{min-width:0;font-size:.92rem;line-height:1.55}.ai-chat-user-pre{margin:0;white-space:pre-wrap;word-break:break-word;font-family:inherit;font-size:.92rem}.ai-chat-markdown code{font-size:.86em;padding:.1em .35em;border-radius:4px;background:var(--surface);border:1px solid var(--border)}.ai-chat-quick-chips{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.ai-chat-chip{font-size:.8rem;padding:.35rem .65rem;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer}.ai-chat-chip:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.ai-chat-chip:disabled{opacity:.55;cursor:not-allowed}.ai-chat-tool-results{margin-top:.55rem;display:flex;flex-direction:column;gap:.5rem}.ai-chat-tool-card{border-radius:10px;border:1px solid var(--border);padding:.55rem .7rem;background:var(--surface);font-size:.84rem}.ai-chat-tool-card--train{border-left:3px solid #3b82f6}.ai-chat-tool-card--predict{border-left:3px solid #a855f7}.ai-chat-tool-card-title{font-weight:600;margin-bottom:.35rem;color:var(--text)}.ai-chat-tool-dry-hint{margin:0 0 .4rem;font-size:.8rem;color:#ca8a04}.ai-chat-tool-row{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .5rem;margin-bottom:.35rem}.ai-chat-tool-label{font-size:.78rem;color:var(--muted)}.ai-chat-tool-code{font-size:.8rem;word-break:break-all;flex:1 1 auto;min-width:0}.ai-chat-copy{font-size:.75rem!important;padding:.2rem .5rem!important;min-height:auto!important}.ai-chat-tool-metrics{margin:0;padding:.45rem .55rem;border-radius:8px;background:var(--bg);border:1px solid var(--border);font-size:.76rem;max-height:200px;overflow:auto;white-space:pre-wrap;word-break:break-word}.ai-chat-tool-err{margin:0;font-size:.76rem;color:#dc2626;white-space:pre-wrap;word-break:break-word}.ai-chat-tool-fallback{margin:0;font-size:.76rem;max-height:160px;overflow:auto}.ai-chat-tool-meta{margin:0 0 .35rem;font-size:.82rem;color:var(--muted)}.ai-chat-tools{margin-top:.5rem;font-size:.82rem}.ai-chat-tool-pre{margin:.35rem 0 0;padding:.5rem .65rem;border-radius:8px;background:var(--surface);border:1px solid var(--border);font-size:.78rem;max-height:220px;overflow:auto;white-space:pre-wrap;word-break:break-word}.ai-chat-input-row{display:flex;flex-direction:row;align-items:flex-end;gap:.5rem;width:100%}.ai-chat-input{flex:1 1 auto;min-width:0;width:auto;resize:vertical;min-height:76px;padding:.65rem .85rem;border-radius:10px;border:1px solid var(--accent);background:var(--surface);color:var(--text);font-family:inherit;font-size:.95rem;outline:2px solid var(--accent);outline-offset:1px}.ai-chat-input:focus{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:1px}.ai-chat-send.auth-submit{margin-top:0;padding:0}.ai-chat-send{flex-shrink:0;min-width:1.85rem;width:1.85rem;height:1.85rem;display:inline-flex;align-items:center;justify-content:center;font-size:.95rem;line-height:1;border-radius:8px}@media (max-width: 479px){.ai-chat-input-row{flex-direction:column;align-items:stretch}.ai-chat-send{align-self:flex-end;width:1.85rem;height:1.85rem}}.projects-page-compact{min-width:0}.projects-smart-panel{padding-top:.65rem}.projects-brief-compose{border:1px solid var(--border);border-radius:10px;padding:.65rem .75rem;background:#0000000f;display:flex;flex-direction:column;gap:.55rem}.projects-brief-field{display:flex;flex-direction:column;gap:.25rem;font-size:.84rem;font-weight:500}.projects-brief-field input,.projects-brief-field textarea{width:100%;font-family:inherit;font-size:.88rem;box-sizing:border-box}.projects-brief-title-wrap{border-radius:8px;background:var(--surface2);border:1px solid var(--border);min-width:0;transition:box-shadow .15s ease,outline-color .15s ease}.projects-brief-title-wrap input{display:block;width:100%;margin:0;border:none;background:transparent;padding:.55rem .65rem;font-family:inherit;font-size:.88rem;color:var(--text);border-radius:8px;box-sizing:border-box}.projects-brief-title-wrap input:focus{outline:none}.projects-brief-title-wrap:focus-within{outline:2px solid var(--accent);outline-offset:1px}.projects-brief-body-wrap{display:block;min-width:0;border-radius:8px;transition:box-shadow .15s ease,outline-color .15s ease}.projects-brief-body-wrap--drag{outline:2px dashed var(--accent, #6366f1);outline-offset:2px;box-shadow:0 0 0 3px #6366f11f}.projects-brief-field textarea{min-height:7.5rem;resize:vertical;line-height:1.45}.projects-brief-body-wrap textarea{display:block}.projects-brief-field textarea::placeholder{color:var(--muted, rgba(0, 0, 0, .45));font-size:.82rem;line-height:1.45}.projects-brief-msg{margin:0}.projects-brief-actions{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.15rem}.projects-data-guide-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:1rem;background:#0f172a73}.projects-data-guide-dialog{width:100%;max-width:40rem;max-height:min(85vh,640px);overflow:auto;padding:1rem 1.15rem;border-radius:10px;background:var(--panel, #fff);color:#111827;box-shadow:0 12px 40px #0000002e;border:1px solid var(--border, rgba(0, 0, 0, .08));--text: #111827;--muted: #374151}.projects-data-guide-dialog,.projects-data-guide-dialog h3,.projects-data-guide-dialog h4,.projects-data-guide-dialog p,.projects-data-guide-dialog li,.projects-data-guide-dialog code,.projects-data-guide-dialog strong,.projects-data-guide-dialog span,.projects-data-guide-dialog a,.projects-data-guide-dialog *{color:#111827!important}.projects-data-guide-dialog .hint{color:#374151!important}.projects-data-guide-dialog h3{margin:0 0 .5rem;font-size:1.05rem}.projects-data-guide-intro{margin:0 0 .75rem;font-size:.9rem;line-height:1.5;color:#111827}.projects-data-guide-section{margin-top:.65rem}.projects-data-guide-section h4{margin:0 0 .35rem;font-size:.88rem;font-weight:600;color:#111827}.projects-data-guide-section ul{margin:0;padding-left:1.15rem;font-size:.86rem;line-height:1.5}.projects-data-guide-section li{margin-bottom:.35rem}.projects-data-guide-checklist{margin-top:.75rem;padding:.55rem .65rem;border-radius:8px;background:var(--panel-2, #f8f9fb);font-size:.86rem;color:#111827}.projects-data-guide-checklist h4{margin:0 0 .35rem;font-size:.88rem}.projects-data-guide-actions{display:flex;justify-content:flex-end;gap:.45rem;margin-top:.85rem;padding-top:.65rem;border-top:1px solid var(--border, rgba(0, 0, 0, .08))}.projects-analysis-panel{margin-top:.75rem;padding:.65rem .75rem;background:var(--panel-2, #f8f9fb);color:#111827;--text: #111827;--muted: #374151}.projects-analysis-panel h4,.projects-analysis-panel h5,.projects-analysis-panel p,.projects-analysis-panel li,.projects-analysis-panel code,.projects-analysis-panel strong,.projects-analysis-panel span,.projects-analysis-panel a,.projects-analysis-panel *{color:#111827!important}.projects-analysis-panel .hint{color:#374151!important}.projects-analysis-heading{margin:0 0 .35rem;font-size:.95rem}.panel--dense{padding:.75rem .9rem}.panel-heading-row{margin:0 0 .55rem;font-size:1rem;font-weight:600;color:var(--text)}.home-page{display:flex;flex-direction:column;gap:.75rem;min-width:0}.home-three-grid{display:grid;grid-template-columns:1fr;gap:.65rem;align-items:stretch}@media (min-width: 960px){.home-three-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.home-three-box{display:flex;flex-direction:column;min-height:0}.home-three-title{margin:0 0 .45rem;font-size:.95rem;font-weight:700;color:var(--accent);letter-spacing:.02em}.home-three-subtitle{margin:0 0 .5rem;font-size:.76rem}.home-intro-lead{margin:0 0 .55rem;font-size:.84rem;line-height:1.5;color:var(--text);font-weight:500}.home-intro-bullets{margin:0;padding-left:1.05rem;font-size:.78rem;line-height:1.45;color:var(--text);flex:1;display:flex;flex-direction:column;gap:.35rem}.home-intro-bullets li{padding-left:.15rem}.home-intro-bullets-sep{color:var(--muted);font-weight:400}.home-intro-kw{color:var(--accent);font-weight:600;letter-spacing:.02em}.home-people{display:flex;flex-direction:column;gap:.85rem;flex:1;min-height:0;max-height:min(52vh,28rem);overflow-y:auto;padding-right:.25rem}.home-people-block{min-width:0}.home-people-role{font-size:.72rem;letter-spacing:.12em;color:var(--muted);text-transform:uppercase;margin-bottom:.2rem}.home-people-name-row{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .6rem}.home-people-name{font-size:.85rem;letter-spacing:.06em;color:var(--text)}.home-people-gr{margin:.25rem 0 0;font-size:.82rem;line-height:1.5;color:var(--text)}.home-projects-scroll{flex:1;min-height:0;max-height:min(42vh,22rem);overflow-y:auto;padding-right:.25rem;-webkit-overflow-scrolling:touch}.home-projects-scroll--folded{max-height:11.25rem;overflow:hidden}.home-projects-list-inner{margin:0;padding-left:1rem;font-size:.82rem;line-height:1.35}.home-projects-toggle{margin-top:.55rem;width:100%;padding:.45rem .7rem;font-size:.82rem;font-weight:600;border-radius:8px;border:1px solid var(--border);background:var(--surface2);color:var(--accent);cursor:pointer;font-family:inherit}.home-projects-toggle:hover{border-color:var(--accent);background:#38bdf81a}.home-list{margin:0;padding-left:1rem;font-size:.82rem;line-height:1.35}.home-list--dense li{margin-bottom:.25rem}.home-list--tight{font-size:.78rem;padding-left:.95rem}.home-list--tight li{margin-bottom:.2rem}.home-list-meta{color:var(--muted);font-weight:400}.btn--compact{padding:.4rem .75rem;font-size:.82rem}.dash-page{display:flex;flex-direction:column;gap:.75rem;min-width:0}.dash-kpi-panel{margin:0}.dash-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:.5rem}.stat-card--compact{padding:.55rem .65rem}.stat-card--compact .stat-label{font-size:.72rem}.stat-card--compact .stat-value{font-size:1.2rem}.stat-value--accent{color:#38bdf8}.stat-value--warn{color:#fbbf24}.dash-visual-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.65rem}.dash-visual-cell{min-height:0}.dash-chart{min-width:0}.dash-chart-title{font-size:.78rem;font-weight:600;color:var(--muted);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.04em}.dash-chart-empty{margin:.25rem 0 0;font-size:.82rem}.dash-hbar-list{display:flex;flex-direction:column;gap:.35rem}.dash-hbar-row{display:grid;grid-template-columns:52px 1fr 36px;align-items:center;gap:.4rem;font-size:.78rem}.dash-hbar-label{color:var(--muted)}.dash-hbar-track{height:8px;border-radius:999px;background:#94a3b840;overflow:hidden}.dash-hbar-fill{height:100%;border-radius:999px;transition:width .25s ease}.dash-hbar-fill--gpu{background:linear-gradient(90deg,#34d399,#059669)}.dash-hbar-fill--vram{background:linear-gradient(90deg,#f472b6,#db2777)}.dash-hbar-val{text-align:right;font-family:var(--mono);font-size:.72rem;color:var(--text)}.dash-stack-bar{display:flex;height:14px;border-radius:8px;overflow:hidden;border:1px solid var(--border)}.dash-stack-seg{transition:flex .2s ease}.dash-legend{list-style:none;margin:.45rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem .75rem;font-size:.72rem}.dash-legend li{display:inline-flex;align-items:center;gap:.25rem}.dash-legend-dot{width:8px;height:8px;border-radius:999px;flex-shrink:0}.dash-legend-name{color:var(--muted)}.dash-legend-n{font-family:var(--mono);color:var(--text)}.dash-task-bars{display:flex;flex-direction:column;gap:.35rem}.dash-task-row{display:grid;grid-template-columns:minmax(0,1fr) 1fr 28px;align-items:center;gap:.4rem;font-size:.78rem}.dash-task-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.dash-task-track{height:7px;border-radius:999px;background:#94a3b833;overflow:hidden}.dash-task-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,rgba(94,201,255,.5),var(--accent));transition:width .25s ease}.dash-task-n{font-family:var(--mono);font-size:.72rem;text-align:right}.dash-spark-wrap{display:flex;align-items:flex-end;gap:3px;height:64px;padding-top:.25rem}.dash-spark-col{flex:1 1 0;min-width:0;display:flex;align-items:flex-end;justify-content:center}.dash-spark-bar{width:100%;max-width:14px;margin:0 auto;border-radius:4px 4px 2px 2px;background:linear-gradient(180deg,var(--accent),rgba(94,201,255,.35));min-height:8px;transition:height .2s ease}.dash-two-col{display:grid;grid-template-columns:1fr;gap:.65rem}@media (min-width: 900px){.dash-two-col{grid-template-columns:1.2fr .8fr}}.table-wrap--short{max-height:200px}.table-wrap--medium{max-height:260px}.dash-mini-pct{font-size:.72rem;margin-bottom:2px;font-family:var(--mono)}.dash-progress-track{width:100%;height:7px;border-radius:999px;background:#94a3b84d;overflow:hidden}.dash-progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#60a5fa,#3b82f6);transition:width .2s ease}.mini-table--tight th,.mini-table--tight td{padding:.28rem .4rem;font-size:.78rem}.notebook-page{display:flex;flex-direction:column;gap:.75rem;min-height:0;flex:1}.notebook-page-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.75rem 1rem}.notebook-page-title h2{margin:0 0 .35rem;font-size:1.25rem}.notebook-page-sub{margin:0;max-width:48rem}.notebook-page-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem}.notebook-gpu-badge{font-size:.72rem;padding:.25rem .55rem;border-radius:999px;border:1px solid rgba(56,189,248,.45);background:#38bdf81f;color:var(--accent);max-width:14rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notebook-toolbar-btn{font-size:.8rem;padding:.35rem .75rem;border-radius:8px;border:1px solid var(--border);background:#0f172a80;color:var(--text);cursor:pointer}.notebook-toolbar-btn:hover:not(:disabled){border-color:var(--accent)}.notebook-toolbar-btn:disabled{opacity:.45;cursor:not-allowed}.notebook-toolbar-btn--danger{border-color:#f871718c;color:#fecaca}.notebook-package-hint{margin:0}.notebook-page-notice h3{margin-top:0;font-size:1rem}.notebook-page-error{border-color:#f8717173;background:#7f1d1d33}.notebook-page-loading{margin:0}.notebook-iframe-wrap{flex:1;min-height:min(72vh,900px);border-radius:12px;overflow:hidden;border:1px solid var(--border);background:#0f172a}.notebook-iframe{width:100%;height:min(72vh,900px);border:none;display:block}:root{--bg: #1b2634;--surface: #2a3648;--surface2: #3a4a61;--border: #5b6f8b;--text: #f5f8ff;--muted: #bcc8db;--accent: #5ec9ff;--accent-dim: #29b4f6;--ok: #34d399;--warn: #fbbf24;--font: "DM Sans", system-ui, sans-serif;--mono: "JetBrains Mono", ui-monospace, monospace}*{box-sizing:border-box}body{margin:0;min-height:100vh;overflow-y:auto;overflow-x:clip;font-family:var(--font);background-color:#071018;background-image:radial-gradient(ellipse 95% 85% at 50% 48%,rgba(5,12,24,.45),transparent 58%),linear-gradient(180deg,#060e1aad,#08101e8c 42%,#0a1220b8),radial-gradient(ellipse 110% 50% at 50% 0%,rgba(94,201,255,.07),transparent 52%),url(/lab-background.png);background-position:center center;background-size:cover,cover,cover;background-repeat:no-repeat;background-attachment:fixed;color:var(--text)}#root{min-height:100vh;max-width:100%;overflow-x:clip}button,input,select{font-family:inherit}a{color:var(--accent)}
