.app-shell { display: grid; grid-template-columns: 280px 1fr; min-height: 100vh; background: #f5f7fb; color: #0f172a; } .app-sidebar { border-right: 1px solid rgba(15, 23, 42, 0.08); padding: 2rem 1.5rem; display: flex; flex-direction: column; gap: 2rem; background: #ffffff; } .app-sidebar .brand span { font-size: 1.25rem; font-weight: 700; display: block; } .app-sidebar .brand small { color: #64748b; } .app-sidebar nav { display: flex; flex-direction: column; gap: 0.75rem; } .app-sidebar a { display: flex; align-items: center; gap: 0.75rem; padding: 0.6rem 0.75rem; border-radius: 10px; text-decoration: none; color: inherit; font-weight: 500; } .app-sidebar a.active { background: #eef2ff; color: #4338ca; } .app-main { padding: 2rem 3rem; overflow-y: auto; } .wizard-page { display: flex; flex-direction: column; gap: 1.5rem; } .wizard-progress { display: flex; gap: 1rem; flex-wrap: wrap; } .wizard-progress__dot { display: flex; flex-direction: column; align-items: center; gap: 0.35rem; border: none; background: transparent; color: #94a3b8; font-weight: 500; cursor: pointer; } .wizard-progress__dot span { width: 34px; height: 34px; border-radius: 50%; border: 2px solid currentColor; display: grid; place-items: center; } .wizard-progress__dot.is-active { color: #4338ca; } .wizard-step { margin-top: 1rem; } .wizard-actions { display: flex; justify-content: space-between; gap: 1rem; } .wizard-actions button { padding: 0.75rem 1.5rem; border-radius: 12px; border: 1px solid rgba(67, 56, 202, 0.3); background: #fff; cursor: pointer; } .wizard-actions button.primary { background: #4338ca; color: #fff; border-color: transparent; display: inline-flex; align-items: center; gap: 0.4rem; } .wizard-actions button.ghost, .ghost { background: transparent; border-color: rgba(67, 56, 202, 0.35); color: #4338ca; } .wizard-actions button:disabled { opacity: 0.5; cursor: not-allowed; } .sb-error { color: #dc2626; margin: 0.5rem 0 0; } .sb-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); } .sb-field { display: flex; flex-direction: column; gap: 0.4rem; font-size: 0.95rem; color: #0f172a; } .sb-field input, .sb-field select, .sb-field textarea { border: 1px solid rgba(15, 23, 42, 0.15); border-radius: 10px; padding: 0.65rem 0.85rem; font-size: 0.95rem; font-family: inherit; background: #f8fafc; } .sb-pill-list { display: flex; flex-wrap: wrap; gap: 0.5rem; } .sb-pill { padding: 0.35rem 0.75rem; border-radius: 999px; background: rgba(67, 56, 202, 0.1); color: #4338ca; display: inline-flex; align-items: center; gap: 0.35rem; } .sb-pill button { border: none; background: transparent; color: inherit; cursor: pointer; } .sb-objective-input { display: flex; gap: 0.5rem; } .sb-objective-input input { flex: 1; } .sb-objective-input button { border: none; background: #0f172a; color: #fff; border-radius: 10px; padding: 0.65rem 1rem; cursor: pointer; } .sb-blueprint-meta { display: flex; justify-content: space-between; align-items: center; } .status-dot { display: inline-flex; align-items: center; gap: 0.35rem; text-transform: capitalize; } .status-dot::before { content: ''; width: 10px; height: 10px; border-radius: 50%; background: currentColor; } .status-ready { color: #10b981; } .status-generating { color: #f97316; } .status-draft { color: #94a3b8; } .preview-canvas { background: #fff; border-radius: 18px; padding: 1.5rem; box-shadow: 0 8px 26px rgba(15, 23, 42, 0.08); } .preview-nav { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 1rem; } .preview-nav button { border: 1px solid rgba(15, 23, 42, 0.1); background: #f8fafc; border-radius: 999px; padding: 0.35rem 0.85rem; cursor: pointer; } .preview-nav button.is-active { background: #4338ca; color: white; border-color: transparent; } .preview-hero { margin-bottom: 1.25rem; } .preview-hero .preview-label { text-transform: uppercase; font-size: 0.7rem; letter-spacing: 0.08em; color: #94a3b8; } .preview-blocks { display: grid; gap: 1rem; } .preview-block { border: 1px dashed rgba(67, 56, 202, 0.2); border-radius: 14px; padding: 1rem; background: rgba(67, 56, 202, 0.04); } .sb-blueprint-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 1rem; } .sb-blueprint-list li { display: flex; justify-content: space-between; align-items: center; padding-bottom: 0.75rem; border-bottom: 1px solid rgba(15, 23, 42, 0.08); } .sb-blueprint-list strong { display: block; } .sb-blueprint-list span { color: #475569; font-size: 0.9rem; } .sb-loading { display: flex; align-items: center; gap: 0.5rem; color: #475569; } .spin { animation: spin 1s linear infinite; } @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }