Spaces:
Sleeping
Sleeping
| /* ---------------------------------------------------------- layout shell */ | |
| #app { display: flex; flex-direction: column; height: 100vh; overflow: hidden; } | |
| #topnav { | |
| display: flex; | |
| align-items: center; | |
| gap: 12px; | |
| padding: 10px 16px; | |
| background: var(--surface); | |
| border-bottom: 1px solid var(--border); | |
| flex-wrap: wrap; | |
| z-index: 20; | |
| } | |
| .brand { display: flex; align-items: center; gap: 8px; margin-right: 4px; } | |
| .brand-badge { | |
| width: 30px; height: 30px; border-radius: 9px; | |
| background: linear-gradient(135deg, var(--brand), var(--accent-teal)); | |
| display: flex; align-items: center; justify-content: center; color: #fff; | |
| flex-shrink: 0; | |
| } | |
| .brand-text { line-height: 1.1; } | |
| .brand-text .name { font-weight: 700; font-size: 14px; } | |
| .brand-text .tag { font-size: 10px; color: var(--text-faint); font-family: 'JetBrains Mono', monospace; } | |
| .theme-toggle { display: flex; background: var(--surface-2); border-radius: 10px; padding: 2px; border: 1px solid var(--border); } | |
| .theme-toggle button { padding: 6px 8px; border-radius: 8px; color: var(--text-faint); } | |
| .theme-toggle button.is-active { background: var(--brand); color: #fff; } | |
| #model-picker-btn { | |
| display: flex; align-items: center; gap: 10px; | |
| padding: 6px 12px; min-width: 220px; | |
| border: 1px solid var(--border); border-radius: 10px; background: var(--surface-2); | |
| } | |
| #model-picker-btn .mp-icon { color: var(--brand); } | |
| #model-picker-btn .mp-text { text-align: left; line-height: 1.15; flex: 1; } | |
| #model-picker-btn .mp-name { font-weight: 700; font-size: 13px; } | |
| #model-picker-btn .mp-sub { font-size: 10px; color: var(--text-faint); font-family: 'JetBrains Mono', monospace; } | |
| #framework-badges { display: flex; gap: 6px; flex-wrap: wrap; } | |
| .nav-spacer { flex: 1; } | |
| #topnav .right-controls { display: flex; align-items: center; gap: 8px; } | |
| /* model picker dropdown */ | |
| #model-dropdown { | |
| position: absolute; top: 54px; left: 190px; width: 380px; max-height: 60vh; | |
| overflow-y: auto; z-index: 50; padding: 8px; display: none; | |
| } | |
| #model-dropdown.open { display: block; } | |
| .model-dropdown-group { padding: 6px 8px 2px; font-size: 10px; font-weight: 700; letter-spacing: 0.06em; color: var(--text-faint); } | |
| .model-dropdown-item { display: flex; align-items: center; justify-content: space-between; padding: 8px 10px; border-radius: 8px; } | |
| .model-dropdown-item:hover { background: var(--surface-2); } | |
| .model-dropdown-item .name { font-weight: 600; font-size: 13px; } | |
| .model-dropdown-item .sub { font-size: 10px; color: var(--text-faint); } | |
| /* ------------------------------------------------------------- main row */ | |
| #main { flex: 1; display: flex; min-height: 0; } | |
| #sidebar { | |
| width: 360px; flex-shrink: 0; overflow-y: auto; | |
| background: var(--surface); border-right: 1px solid var(--border); | |
| padding: 16px; | |
| } | |
| .sidebar-header { margin-bottom: 14px; } | |
| .sidebar-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: 0.06em; color: var(--brand); text-transform: uppercase; } | |
| .sidebar-title { font-size: 20px; font-weight: 700; margin-top: 2px; } | |
| .sidebar-lede { font-size: 12.5px; color: var(--text-dim); margin-top: 4px; } | |
| .back-row { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; color: var(--text-dim); font-size: 12px; } | |
| .back-row button { display: flex; align-items: center; gap: 4px; color: var(--text-dim); } | |
| .back-row button:hover { color: var(--text); } | |
| .module-list { display: flex; flex-direction: column; gap: 8px; } | |
| .module-card { | |
| display: flex; align-items: center; gap: 12px; padding: 14px; | |
| border: 1px solid var(--border); border-radius: 12px; background: var(--surface); | |
| text-align: left; | |
| } | |
| .module-card:hover { background: var(--surface-2); } | |
| .module-card .icon-box { | |
| width: 38px; height: 38px; border-radius: 10px; background: var(--brand-tint); color: var(--brand); | |
| display: flex; align-items: center; justify-content: center; flex-shrink: 0; | |
| } | |
| .module-card .body { flex: 1; } | |
| .module-card .title { font-weight: 700; font-size: 13.5px; } | |
| .module-card .sub { font-size: 10px; color: var(--text-faint); font-family: 'JetBrains Mono', monospace; letter-spacing: 0.03em; } | |
| .module-card .chev { color: var(--text-faint); } | |
| /* Modeling & Intelligence panel */ | |
| .info-card { padding: 16px; margin-bottom: 12px; } | |
| .info-card-head { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; } | |
| .info-card-head .icon-box { width: 34px; height: 34px; border-radius: 9px; background: var(--surface-2); display: flex; align-items: center; justify-content: center; color: var(--brand); } | |
| .info-card-head .name { font-weight: 700; font-size: 15px; } | |
| .info-card-badges { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; } | |
| .info-card-desc { font-size: 12.5px; line-height: 1.55; color: var(--text-dim); } | |
| .meta-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; margin: 12px 0; } | |
| .meta-cell { background: var(--surface-2); border-radius: 10px; padding: 8px 10px; } | |
| .meta-cell .label { font-size: 9px; letter-spacing: 0.05em; color: var(--text-faint); text-transform: uppercase; } | |
| .meta-cell .value { font-size: 12.5px; font-weight: 700; margin-top: 2px; } | |
| .box { border-radius: 12px; padding: 10px 12px; margin-bottom: 10px; } | |
| .box-title { font-size: 10.5px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; margin-bottom: 6px; display: flex; align-items: center; gap: 6px; } | |
| .box ul { margin: 0; padding-left: 16px; font-size: 12px; line-height: 1.6; } | |
| .box-info { background: var(--info-bg); color: var(--info-fg); } | |
| .box-good { background: var(--good-bg); color: var(--good-fg); } | |
| .box-bad { background: var(--bad-bg); color: var(--bad-fg); } | |
| .box-info ul, .box-good ul, .box-bad ul { color: var(--text); } | |
| .framework-row { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 10px; } | |
| /* Architecture & Theory */ | |
| .arch-empty { text-align: center; padding: 30px 16px; color: var(--text-dim); } | |
| .arch-empty .ring { width: 46px; height: 46px; border: 2px solid var(--text-faint); border-radius: 50%; margin: 0 auto 12px; display:flex; align-items:center; justify-content:center; } | |
| .arch-empty .ring::after { content: ""; width: 18px; height: 18px; border: 2px solid var(--text-faint); border-radius: 50%; } | |
| .arch-empty .title { font-weight: 700; font-size: 14px; color: var(--text); margin-bottom: 6px; } | |
| .arch-empty .sub { font-size: 12px; line-height: 1.5; } | |
| .layer-list { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; max-height: 220px; overflow-y: auto; } | |
| .layer-row { display: flex; align-items: center; justify-content: space-between; padding: 7px 10px; border-radius: 8px; background: var(--surface-2); font-size: 12px; } | |
| .layer-row .dot { width: 8px; height: 8px; border-radius: 50%; margin-right: 8px; flex-shrink: 0; } | |
| .layer-row .name-wrap { display: flex; align-items: center; } | |
| .layer-row .sub { color: var(--text-faint); font-size: 10.5px; font-family: 'JetBrains Mono', monospace; } | |
| .code-toggle { display: flex; gap: 6px; margin-bottom: 8px; } | |
| .code-toggle button { flex: 1; padding: 8px; border-radius: 9px; border: 1px solid var(--border); font-size: 12px; font-weight: 700; background: var(--surface-2); } | |
| .code-toggle button.is-active { background: var(--brand); color: #fff; border-color: transparent; } | |
| .code-actions { display: flex; gap: 6px; margin: 8px 0; } | |
| .code-actions .btn { flex: 1; justify-content: center; font-size: 11.5px; padding: 7px; } | |
| pre.code-block { | |
| background: #0F1117; color: #D7DAE6; border-radius: 10px; padding: 12px; | |
| font-family: 'JetBrains Mono', monospace; font-size: 11px; line-height: 1.55; | |
| overflow-x: auto; margin: 0; white-space: pre; | |
| } | |
| textarea.code-input { | |
| width: 100%; min-height: 180px; background: #0F1117; color: #D7DAE6; | |
| border-radius: 10px; padding: 12px; font-size: 11px; line-height: 1.55; border: 1px solid var(--border); | |
| resize: vertical; | |
| } | |
| .upload-row { display: flex; gap: 6px; align-items: center; margin-top: 8px; } | |
| .upload-row input[type="file"] { font-size: 11px; flex: 1; } | |
| .analyze-status { font-size: 11px; color: var(--text-faint); margin-top: 6px; } | |
| /* Hyperparams */ | |
| .hp-row { margin-bottom: 16px; } | |
| .hp-row .hp-label { display: flex; justify-content: space-between; font-size: 12px; font-weight: 600; margin-bottom: 6px; } | |
| .hp-row .hp-value { color: var(--brand); font-family: 'JetBrains Mono', monospace; } | |
| .hp-select-row { display: flex; gap: 6px; flex-wrap: wrap; } | |
| .hp-select-row button { padding: 6px 10px; border-radius: 8px; border: 1px solid var(--border); background: var(--surface-2); font-size: 11.5px; font-family: 'JetBrains Mono', monospace; } | |
| .hp-select-row button.is-active { background: var(--brand); color: #fff; border-color: transparent; } | |
| .hp-empty { color: var(--text-dim); font-size: 12.5px; padding: 12px 0; } | |
| /* Metrics */ | |
| .metric-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 14px; } | |
| .metric-tile { background: var(--surface-2); border-radius: 10px; padding: 10px 12px; } | |
| .metric-tile .label { font-size: 9.5px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-faint); } | |
| .metric-tile .value { font-size: 18px; font-weight: 700; margin-top: 2px; font-family: 'JetBrains Mono', monospace; } | |
| .spark-wrap { background: var(--surface-2); border-radius: 10px; padding: 10px; margin-bottom: 10px; } | |
| .spark-wrap .label { font-size: 10px; color: var(--text-faint); margin-bottom: 4px; text-transform: uppercase; letter-spacing: 0.04em; } | |
| .spark-wrap svg { width: 100%; height: 60px; display: block; } | |
| /* Benchmarking & History */ | |
| .history-timeline { position: relative; padding-left: 20px; } | |
| .history-timeline::before { content: ""; position: absolute; left: 5px; top: 4px; bottom: 4px; width: 2px; background: var(--border); } | |
| .history-item { position: relative; margin-bottom: 16px; } | |
| .history-item::before { content: ""; position: absolute; left: -20px; top: 3px; width: 10px; height: 10px; border-radius: 50%; background: var(--brand); border: 2px solid var(--surface); } | |
| .history-item .year { font-family: 'JetBrains Mono', monospace; font-weight: 700; font-size: 12px; color: var(--brand); } | |
| .history-item .origin { font-size: 11.5px; color: var(--text-faint); margin-bottom: 4px; } | |
| .history-item .blurb { font-size: 12.5px; line-height: 1.6; color: var(--text-dim); } | |
| /* Playground */ | |
| .playground-grid { display: grid; grid-template-columns: repeat(8, 1fr); gap: 3px; aspect-ratio: 1; margin-bottom: 12px; } | |
| .playground-cell { border-radius: 3px; background: var(--surface-2); border: 1px solid var(--border); cursor: pointer; } | |
| .playground-actions { display: flex; gap: 6px; margin-bottom: 12px; } | |
| .playground-actions .btn { flex: 1; justify-content: center; } | |
| .playground-result { text-align: center; padding: 10px; background: var(--surface-2); border-radius: 10px; } | |
| .playground-result .digit { font-size: 34px; font-weight: 700; font-family: 'JetBrains Mono', monospace; color: var(--brand); } | |
| .prob-bars { display: flex; align-items: flex-end; gap: 3px; height: 60px; margin-top: 10px; } | |
| .prob-bar { flex: 1; background: var(--surface-3); border-radius: 3px 3px 0 0; position: relative; display: flex; align-items: flex-end; justify-content: center; } | |
| .prob-bar .fill { width: 100%; background: var(--brand); border-radius: 3px 3px 0 0; } | |
| .prob-bar .tick { position: absolute; bottom: -16px; font-size: 9px; color: var(--text-faint); font-family: 'JetBrains Mono', monospace; } | |
| /* -------------------------------------------------------------- stage */ | |
| #stage-wrap { flex: 1; position: relative; background: #0A0E1A; overflow: hidden; } | |
| #stage { position: absolute; inset: 0; width: 100%; height: 100%; touch-action: none; cursor: grab; } | |
| #stage:active { cursor: grabbing; } | |
| .stage-caption { | |
| position: absolute; top: 14px; left: 16px; z-index: 5; | |
| font-family: 'JetBrains Mono', monospace; font-size: 11px; color: #A9B0D0; | |
| background: rgba(15,17,28,0.6); backdrop-filter: blur(6px); | |
| padding: 6px 12px; border-radius: 8px; border: 1px solid rgba(140,150,200,0.15); | |
| } | |
| .stage-hint { | |
| position: absolute; top: 14px; right: 16px; z-index: 5; | |
| font-family: 'JetBrains Mono', monospace; font-size: 10.5px; color: #6FE0C8; | |
| background: rgba(15,17,28,0.6); backdrop-filter: blur(6px); | |
| padding: 6px 12px; border-radius: 8px; border: 1px solid rgba(111,224,200,0.2); | |
| } | |
| .stage-toolbar { | |
| position: absolute; top: 14px; left: 50%; transform: translateX(-50%); z-index: 6; | |
| display: flex; gap: 6px; background: rgba(15,17,28,0.6); backdrop-filter: blur(6px); | |
| padding: 5px; border-radius: 10px; border: 1px solid rgba(140,150,200,0.15); | |
| } | |
| .stage-toolbar button { | |
| padding: 7px 10px; border-radius: 7px; color: #C7CCE0; font-size: 11.5px; font-weight: 600; | |
| display: flex; align-items: center; gap: 5px; | |
| } | |
| .stage-toolbar button:hover { background: rgba(140,150,200,0.14); } | |
| .stage-toolbar button.is-active { background: #6D5EF0; color: #fff; } | |
| .stage-toolbar .divider { width: 1px; background: rgba(140,150,200,0.2); margin: 4px 2px; } | |
| .data-pass { | |
| position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); z-index: 6; | |
| display: flex; align-items: center; gap: 10px; | |
| background: rgba(15,17,28,0.7); backdrop-filter: blur(6px); | |
| padding: 8px 16px; border-radius: 12px; border: 1px solid rgba(140,150,200,0.15); | |
| min-width: 320px; | |
| } | |
| .data-pass label { font-family: 'JetBrains Mono', monospace; font-size: 10.5px; color: #A9B0D0; white-space: nowrap; } | |
| .data-pass input[type="range"] { accent-color: #F5B44A; } | |
| .system-log { | |
| position: absolute; bottom: 20px; left: 16px; z-index: 5; | |
| font-family: 'JetBrains Mono', monospace; font-size: 10.5px; color: #5B6172; | |
| } | |
| /* Copilot */ | |
| .copilot-fab { | |
| position: absolute; bottom: 20px; right: 20px; z-index: 8; | |
| width: 52px; height: 52px; border-radius: 50%; | |
| background: linear-gradient(135deg, #6D5EF0, #16A3A3); | |
| display: flex; align-items: center; justify-content: center; color: #fff; | |
| box-shadow: 0 6px 20px rgba(109,94,240,0.4); | |
| } | |
| .copilot-fab:hover { transform: scale(1.06); } | |
| .copilot-panel { | |
| position: absolute; bottom: 84px; right: 20px; z-index: 9; | |
| width: 320px; max-height: 420px; display: none; flex-direction: column; | |
| background: rgba(20,22,32,0.92); backdrop-filter: blur(10px); | |
| border: 1px solid rgba(140,150,200,0.18); border-radius: 14px; overflow: hidden; | |
| } | |
| .copilot-panel.open { display: flex; } | |
| .copilot-head { padding: 12px 14px; border-bottom: 1px solid rgba(140,150,200,0.15); font-size: 12.5px; font-weight: 700; color: #E7E9F5; display: flex; justify-content: space-between; align-items: center; } | |
| .copilot-body { flex: 1; overflow-y: auto; padding: 12px 14px; font-size: 12px; color: #C7CCE0; line-height: 1.55; display: flex; flex-direction: column; gap: 10px; } | |
| .copilot-msg.user { color: #8FE0D0; } | |
| .copilot-msg.assistant { color: #E7E9F5; } | |
| .copilot-msg.error { color: #F08282; } | |
| .copilot-input-row { display: flex; gap: 6px; padding: 10px; border-top: 1px solid rgba(140,150,200,0.15); } | |
| .copilot-input-row input { flex: 1; background: rgba(255,255,255,0.06); border: 1px solid rgba(140,150,200,0.2); color: #fff; border-radius: 8px; padding: 8px 10px; font-size: 12px; } | |
| .copilot-input-row button { background: #6D5EF0; color: #fff; border-radius: 8px; padding: 0 12px; } | |
| .config-popover { display: none; } | |
| .config-popover.open { display: block; } | |
| /* responsive */ | |
| @media (max-width: 860px) { | |
| #sidebar { width: 100%; position: absolute; z-index: 15; height: calc(100% - 58px); } | |
| #stage-wrap { width: 100%; } | |
| #model-dropdown { left: 12px; width: calc(100vw - 24px); } | |
| } | |