Spaces:
Sleeping
Sleeping
| :root { | |
| color-scheme: dark; | |
| font-family: | |
| Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; | |
| color: #eef3f8; | |
| background: #0d1117; | |
| font-synthesis: none; | |
| text-rendering: optimizeLegibility; | |
| -webkit-font-smoothing: antialiased; | |
| } | |
| * { | |
| box-sizing: border-box; | |
| } | |
| body { | |
| margin: 0; | |
| min-width: 320px; | |
| min-height: 100svh; | |
| background: #0d1117; | |
| } | |
| button { | |
| font: inherit; | |
| } | |
| .app-shell { | |
| display: grid; | |
| grid-template-columns: minmax(300px, 380px) minmax(0, 1fr); | |
| height: 100svh; | |
| min-height: 100svh; | |
| overflow: hidden; | |
| } | |
| .sidebar { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 22px; | |
| height: 100svh; | |
| min-height: 100svh; | |
| min-width: 0; | |
| padding: 28px; | |
| border-right: 1px solid #252d38; | |
| background: #111821; | |
| overflow: hidden; | |
| } | |
| .brand-block h1, | |
| .viewer-header h2, | |
| .section-heading h2 { | |
| margin: 0; | |
| letter-spacing: 0; | |
| } | |
| .brand-block h1 { | |
| margin-top: 4px; | |
| font-size: 30px; | |
| line-height: 1.05; | |
| } | |
| .subtle { | |
| margin: 10px 0 0; | |
| color: #9aa8b7; | |
| line-height: 1.6; | |
| } | |
| .eyebrow { | |
| margin: 0; | |
| color: #7dd3fc; | |
| font-size: 12px; | |
| font-weight: 700; | |
| letter-spacing: 0; | |
| text-transform: uppercase; | |
| } | |
| .section-heading span, | |
| .file-meta { | |
| color: #8b99aa; | |
| font-size: 12px; | |
| } | |
| .auth-actions { | |
| display: flex; | |
| gap: 10px; | |
| flex-wrap: wrap; | |
| } | |
| .primary-button, | |
| .ghost-button { | |
| min-height: 42px; | |
| border: 1px solid transparent; | |
| border-radius: 8px; | |
| padding: 0 14px; | |
| cursor: pointer; | |
| transition: | |
| transform 160ms ease, | |
| border-color 160ms ease, | |
| background 160ms ease; | |
| } | |
| .primary-button { | |
| color: #071015; | |
| background: #7dd3fc; | |
| font-weight: 700; | |
| } | |
| .ghost-button { | |
| color: #d7e1eb; | |
| background: transparent; | |
| border-color: #334155; | |
| } | |
| .primary-button:hover, | |
| .ghost-button:hover, | |
| .file-row:hover { | |
| transform: translateY(-1px); | |
| } | |
| .primary-button:disabled, | |
| .file-row:disabled { | |
| cursor: not-allowed; | |
| opacity: 0.55; | |
| transform: none; | |
| } | |
| .notice { | |
| display: grid; | |
| gap: 6px; | |
| padding: 12px; | |
| border: 1px solid #334155; | |
| border-radius: 8px; | |
| background: #151f2b; | |
| color: #d9e4ee; | |
| font-size: 13px; | |
| line-height: 1.45; | |
| } | |
| .notice.error, | |
| .error-banner { | |
| border-color: #7f1d1d; | |
| background: #2a1115; | |
| color: #fecaca; | |
| } | |
| .selector-grid { | |
| display: grid; | |
| grid-template-rows: minmax(140px, 0.8fr) minmax(180px, 1.2fr); | |
| flex: 1 1 auto; | |
| gap: 18px; | |
| min-height: 0; | |
| } | |
| .file-section, | |
| .animation-panel { | |
| display: flex; | |
| min-height: 0; | |
| flex-direction: column; | |
| gap: 12px; | |
| } | |
| .animation-panel { | |
| flex: 0 0 auto; | |
| border-top: 1px solid #252d38; | |
| padding-top: 16px; | |
| } | |
| .section-heading { | |
| display: flex; | |
| align-items: baseline; | |
| justify-content: space-between; | |
| gap: 12px; | |
| } | |
| .section-heading h2 { | |
| font-size: 15px; | |
| } | |
| .search-input { | |
| width: 100%; | |
| min-height: 38px; | |
| border: 1px solid #263140; | |
| border-radius: 8px; | |
| padding: 0 11px; | |
| color: #eef3f8; | |
| background: #151f2b; | |
| font: inherit; | |
| } | |
| .search-input:focus { | |
| border-color: #7dd3fc; | |
| outline: 0; | |
| } | |
| .search-input:disabled { | |
| opacity: 0.55; | |
| } | |
| .file-list { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 8px; | |
| min-height: 0; | |
| overflow: auto; | |
| padding-right: 4px; | |
| } | |
| .file-row, | |
| .list-row { | |
| width: 100%; | |
| min-height: 62px; | |
| border: 1px solid #263140; | |
| border-radius: 8px; | |
| padding: 10px 12px; | |
| text-align: left; | |
| background: #151f2b; | |
| color: #eef3f8; | |
| } | |
| .file-row { | |
| display: grid; | |
| grid-template-rows: auto auto; | |
| gap: 6px; | |
| cursor: pointer; | |
| } | |
| .file-row.active { | |
| border-color: #7dd3fc; | |
| background: #172536; | |
| } | |
| .file-row.compact { | |
| min-height: 68px; | |
| padding-top: 12px; | |
| padding-bottom: 12px; | |
| } | |
| .file-name { | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| white-space: nowrap; | |
| font-size: 14px; | |
| font-weight: 700; | |
| line-height: 1.25; | |
| } | |
| .file-meta { | |
| display: block; | |
| line-height: 1.25; | |
| } | |
| .muted { | |
| display: grid; | |
| place-items: center; | |
| color: #8b99aa; | |
| } | |
| .viewer-shell { | |
| display: grid; | |
| grid-template-rows: auto minmax(0, 1fr); | |
| min-width: 0; | |
| height: 100svh; | |
| min-height: 100svh; | |
| background: #0d1117; | |
| overflow: hidden; | |
| } | |
| .viewer-header { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 18px; | |
| min-height: 86px; | |
| padding: 22px 28px; | |
| border-bottom: 1px solid #252d38; | |
| } | |
| .viewer-header h2 { | |
| max-width: 70vw; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| white-space: nowrap; | |
| font-size: 20px; | |
| } | |
| .viewer-status { | |
| flex: 0 0 auto; | |
| border: 1px solid #334155; | |
| border-radius: 999px; | |
| padding: 6px 10px; | |
| color: #b7c5d5; | |
| font-size: 12px; | |
| } | |
| .viewer-actions { | |
| display: flex; | |
| align-items: center; | |
| gap: 12px; | |
| flex: 0 0 auto; | |
| } | |
| .segmented-control { | |
| display: inline-grid; | |
| grid-template-columns: repeat(2, minmax(58px, auto)); | |
| overflow: hidden; | |
| border: 1px solid #334155; | |
| border-radius: 8px; | |
| background: #111821; | |
| } | |
| .segmented-control button { | |
| min-height: 34px; | |
| border: 0; | |
| border-right: 1px solid #334155; | |
| padding: 0 12px; | |
| color: #b7c5d5; | |
| background: transparent; | |
| cursor: pointer; | |
| } | |
| .segmented-control button:last-child { | |
| border-right: 0; | |
| } | |
| .segmented-control button.active { | |
| color: #071015; | |
| background: #7dd3fc; | |
| font-weight: 700; | |
| } | |
| .viewer-canvas { | |
| position: relative; | |
| width: 100%; | |
| height: 100%; | |
| min-height: 0; | |
| overflow: hidden; | |
| } | |
| .viewer-canvas canvas { | |
| position: absolute; | |
| inset: 0; | |
| display: block; | |
| width: 100%; | |
| height: 100%; | |
| } | |
| .six-view-labels { | |
| position: absolute; | |
| inset: 0; | |
| display: grid; | |
| grid-template-columns: repeat(3, 1fr); | |
| grid-template-rows: repeat(2, 1fr); | |
| pointer-events: none; | |
| z-index: 1; | |
| } | |
| .six-view-labels span { | |
| align-self: start; | |
| justify-self: start; | |
| margin: 12px; | |
| border: 1px solid rgb(125 211 252 / 42%); | |
| border-radius: 999px; | |
| padding: 4px 9px; | |
| background: rgb(13 17 23 / 72%); | |
| color: #dff6ff; | |
| font-size: 12px; | |
| font-weight: 700; | |
| } | |
| .morph-frame-label { | |
| position: absolute; | |
| top: 18px; | |
| right: 18px; | |
| z-index: 2; | |
| border: 1px solid rgb(125 211 252 / 42%); | |
| border-radius: 8px; | |
| padding: 8px 10px; | |
| background: rgb(13 17 23 / 78%); | |
| color: #dff6ff; | |
| font-size: 13px; | |
| font-weight: 700; | |
| line-height: 1.2; | |
| pointer-events: none; | |
| } | |
| .empty-state { | |
| position: absolute; | |
| inset: 0; | |
| display: grid; | |
| place-content: center; | |
| gap: 8px; | |
| padding: 24px; | |
| color: #9aa8b7; | |
| text-align: center; | |
| pointer-events: none; | |
| z-index: 1; | |
| } | |
| .empty-state strong { | |
| color: #eef3f8; | |
| font-size: 18px; | |
| } | |
| .error-banner { | |
| position: absolute; | |
| left: 20px; | |
| right: 20px; | |
| bottom: 20px; | |
| border: 1px solid; | |
| border-radius: 8px; | |
| padding: 12px; | |
| z-index: 2; | |
| } | |
| .loading-overlay { | |
| position: fixed; | |
| right: 24px; | |
| bottom: 24px; | |
| border: 1px solid #334155; | |
| border-radius: 8px; | |
| padding: 12px 14px; | |
| background: #151f2b; | |
| color: #eef3f8; | |
| box-shadow: 0 16px 44px rgb(0 0 0 / 32%); | |
| } | |
| @media (max-width: 820px) { | |
| .app-shell { | |
| grid-template-columns: 1fr; | |
| grid-template-rows: auto minmax(520px, 1fr); | |
| height: auto; | |
| overflow: visible; | |
| } | |
| .sidebar { | |
| height: auto; | |
| min-height: auto; | |
| max-height: 48svh; | |
| padding: 20px; | |
| border-right: 0; | |
| border-bottom: 1px solid #252d38; | |
| } | |
| .brand-block h1 { | |
| font-size: 25px; | |
| } | |
| .viewer-shell { | |
| height: 52svh; | |
| min-height: 520px; | |
| } | |
| .viewer-header { | |
| align-items: flex-start; | |
| flex-direction: column; | |
| min-height: 74px; | |
| padding: 16px 20px; | |
| } | |
| .viewer-header h2 { | |
| max-width: 92vw; | |
| font-size: 17px; | |
| } | |
| .viewer-actions { | |
| width: 100%; | |
| justify-content: space-between; | |
| } | |
| } | |