/* ---------------------------------------------------------- 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); } }