Spaces:
Sleeping
Sleeping
| .setup-shell { | |
| min-height: 100dvh; | |
| display: flex; | |
| flex-direction: column; | |
| background: var(--bg-base); | |
| } | |
| .setup-bar { | |
| height: 64px; | |
| border-bottom: 1px solid var(--border); | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| padding: 0 2rem; | |
| background: rgba(10, 10, 10, 0.8); | |
| backdrop-filter: blur(12px); | |
| position: sticky; | |
| top: 0; | |
| z-index: 100; | |
| } | |
| .setup-bar__left { | |
| display: flex; | |
| align-items: center; | |
| gap: 1rem; | |
| } | |
| .setup-back-btn { | |
| background: transparent; | |
| border: 1px solid var(--border); | |
| color: var(--text-dim); | |
| width: 36px; | |
| height: 36px; | |
| border-radius: 8px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| cursor: pointer; | |
| transition: all 0.2s; | |
| } | |
| .setup-back-btn:hover { | |
| background: var(--surface); | |
| color: #ffffff; | |
| border-color: rgba(255, 255, 255, 0.2); | |
| } | |
| .setup-bar__brand { | |
| display: flex; align-items: center; gap: var(--space-2); | |
| font-family: var(--font-display); font-weight: 600; font-size: var(--text-lg); | |
| text-decoration: none; color: var(--text-primary); cursor: pointer; | |
| } | |
| .setup-bar__step { | |
| font-size: var(--text-sm); color: var(--text-muted); font-weight: 500; | |
| } | |
| .setup-body { | |
| flex: 1; | |
| display: grid; | |
| grid-template-columns: 280px 1fr; | |
| max-width: 1100px; | |
| margin: 0 auto; | |
| width: 100%; | |
| padding: var(--space-8) var(--space-6); | |
| gap: var(--space-8); | |
| } | |
| .setup-aside { | |
| position: sticky; | |
| top: calc(56px + var(--space-8)); | |
| align-self: start; | |
| display: flex; | |
| flex-direction: column; | |
| gap: var(--space-5); | |
| } | |
| .setup-aside__title { | |
| font-family: var(--font-display); | |
| font-size: var(--text-2xl); | |
| font-weight: 700; | |
| letter-spacing: -0.02em; | |
| } | |
| .setup-aside__sub { | |
| font-size: var(--text-sm); | |
| color: var(--text-secondary); | |
| line-height: 1.6; | |
| } | |
| .setup-aside__tip { | |
| display: flex; | |
| gap: var(--space-3); | |
| padding: var(--space-4); | |
| background: var(--amber-glow); | |
| border: 1px solid rgba(245,158,11,0.2); | |
| border-radius: var(--radius-lg); | |
| font-size: var(--text-xs); | |
| color: var(--amber-600); | |
| line-height: 1.55; | |
| } | |
| .setup-aside__tip svg { flex-shrink: 0; margin-top: 1px; } | |
| .setup-nav { display: flex; flex-direction: column; gap: var(--space-1); } | |
| .setup-nav__item { | |
| display: flex; align-items: center; gap: var(--space-3); | |
| padding: var(--space-3) var(--space-4); | |
| border-radius: var(--radius-md); | |
| font-size: var(--text-sm); | |
| font-weight: 500; | |
| color: var(--text-secondary); | |
| background: transparent; | |
| text-align: left; | |
| transition: all var(--dur-fast) var(--ease-out); | |
| } | |
| .setup-nav__item:hover { background: var(--bg-surface); color: var(--text-primary); } | |
| .setup-nav__item.active { background: var(--ascent-blue-glow-strong); color: var(--ascent-blue-700); } | |
| .setup-nav__dot { | |
| width: 8px; height: 8px; border-radius: 50%; | |
| background: var(--stone-400); flex-shrink: 0; | |
| } | |
| .setup-nav__dot[data-done="true"] { background: var(--success); } | |
| .setup-main { | |
| display: flex; | |
| flex-direction: column; | |
| min-width: 0; | |
| } | |
| .setup-section { | |
| display: flex; | |
| flex-direction: column; | |
| gap: var(--space-6); | |
| } | |
| .setup-section__title { | |
| font-family: var(--font-display); | |
| font-size: var(--text-2xl); | |
| font-weight: 700; | |
| letter-spacing: -0.02em; | |
| display: flex; align-items: center; gap: var(--space-3); | |
| } | |
| .setup-section__tag { | |
| font-family: var(--font-body); | |
| font-size: var(--text-xs); | |
| font-weight: 600; | |
| color: var(--text-muted); | |
| text-transform: uppercase; | |
| letter-spacing: 0.06em; | |
| padding: 2px var(--space-2); | |
| background: var(--bg-surface); | |
| border: 1px solid var(--border-medium); | |
| border-radius: var(--radius-sm); | |
| } | |
| .setup-section__note { | |
| font-size: var(--text-sm); color: var(--text-secondary); | |
| margin-top: calc(-1 * var(--space-4)); | |
| } | |
| .setup-row { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr; | |
| gap: var(--space-5); | |
| } | |
| .level-grid { | |
| display: grid; | |
| grid-template-columns: repeat(3, 1fr); | |
| gap: var(--space-3); | |
| } | |
| .level-btn { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: flex-start; | |
| gap: var(--space-1); | |
| padding: var(--space-4); | |
| background: var(--bg-elevated); | |
| border: 1.5px solid var(--border-medium); | |
| border-radius: var(--radius-lg); | |
| text-align: left; | |
| transition: all var(--dur-fast) var(--ease-out); | |
| } | |
| .level-btn:hover { border-color: var(--primary); } | |
| .level-btn--active { border-color: var(--primary); background: var(--ascent-blue-glow-strong); } | |
| .level-btn__name { font-weight: 600; font-size: var(--text-base); color: var(--text-primary); } | |
| .level-btn__desc { font-size: var(--text-xs); color: var(--text-secondary); line-height: 1.4; } | |
| .level-btn--active .level-btn__name { color: var(--ascent-blue-700); } | |
| .dropzone { | |
| border: 2px dashed var(--border-medium); | |
| border-radius: var(--radius-xl); | |
| padding: var(--space-8) var(--space-6); | |
| text-align: center; | |
| cursor: pointer; | |
| transition: all var(--dur-base) var(--ease-out); | |
| display: flex; flex-direction: column; align-items: center; gap: var(--space-3); | |
| background: var(--bg-surface); | |
| user-select: none; | |
| } | |
| .dropzone:hover, .dropzone--drag { border-color: var(--primary); background: var(--ascent-blue-glow); } | |
| .dropzone--done { border-color: var(--success); border-style: solid; background: var(--success-glow); } | |
| .dropzone__icon { | |
| width: 44px; height: 44px; color: var(--text-muted); | |
| } | |
| .dropzone__icon--done { color: var(--success); } | |
| .dropzone__icon svg { width: 100%; height: 100%; } | |
| .dropzone__name { font-weight: 600; font-size: var(--text-base); word-break: break-all; } | |
| .dropzone__label { font-size: var(--text-base); color: var(--text-secondary); } | |
| .dropzone__label span { color: var(--primary); text-decoration: underline; } | |
| .dropzone__sub { font-size: var(--text-xs); color: var(--text-muted); } | |
| .setup-error { | |
| display: flex; align-items: flex-start; gap: var(--space-3); | |
| padding: var(--space-4); | |
| background: var(--danger-glow); | |
| border: 1px solid rgba(220,38,38,0.2); | |
| border-radius: var(--radius-lg); | |
| font-size: var(--text-sm); | |
| color: var(--danger-dark); | |
| line-height: 1.5; | |
| } | |
| .setup-error svg { flex-shrink: 0; margin-top: 1px; } | |
| .setup-actions { | |
| display: flex; | |
| align-items: center; | |
| justify-content: flex-end; | |
| gap: var(--space-4); | |
| padding-top: var(--space-4); | |
| border-top: 1px solid var(--border); | |
| } | |
| /* ββ Responsive βββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| /* Tablet */ | |
| @media (max-width: 960px) { | |
| .setup-body { grid-template-columns: 220px 1fr; gap: var(--space-6); padding: var(--space-6) var(--space-4); } | |
| .level-grid { grid-template-columns: repeat(2, 1fr); } | |
| } | |
| /* Mobile */ | |
| @media (max-width: 768px) { | |
| .setup-body { grid-template-columns: 1fr; padding: var(--space-5) var(--space-4); gap: var(--space-5); } | |
| .setup-aside { position: static; } | |
| /* Horizontal nav with wrapping */ | |
| .setup-nav { flex-direction: row; flex-wrap: wrap; } | |
| .setup-nav__item { flex: 1; min-width: 100px; justify-content: center; } | |
| /* Collapse 2-col rows to 1 */ | |
| .setup-row { grid-template-columns: 1fr; } | |
| /* Level grid: 2-col on tablet, 1-col on phone */ | |
| .level-grid { grid-template-columns: repeat(2, 1fr); } | |
| /* Dropzone: less padding */ | |
| .dropzone { padding: var(--space-6) var(--space-4); } | |
| /* Actions: stack buttons */ | |
| .setup-actions { flex-wrap: wrap; } | |
| .setup-actions .btn-primary, | |
| .setup-actions .btn-secondary { flex: 1; justify-content: center; } | |
| } | |
| /* Small phone */ | |
| @media (max-width: 480px) { | |
| .level-grid { grid-template-columns: 1fr; } | |
| .setup-bar { padding: 0 var(--space-4); } | |
| .setup-section__title { font-size: var(--text-xl); } | |
| } | |