/** * Session Picker Component Styles * Modal for selecting or creating sessions */ /* === Session Picker Modal === */ .session-picker-modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.8); display: flex; align-items: center; justify-content: center; z-index: 10000; padding: 20px; } .session-picker-content { background: #161b22; border: 1px solid #30363d; border-radius: 12px; max-width: 600px; width: 100%; max-height: 80vh; display: flex; flex-direction: column; overflow: hidden; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5); } /* === Picker Header === */ .picker-header { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; border-bottom: 1px solid #30363d; } .picker-header h2 { margin: 0; font-size: 1.25rem; font-weight: 600; color: #c9d1d9; } .picker-header .btn-close { width: 32px; height: 32px; padding: 0; background: transparent; border: none; color: #8b949e; cursor: pointer; border-radius: 6px; font-size: 20px; line-height: 1; transition: all 0.15s ease; } .picker-header .btn-close:hover { background: #21262d; color: #c9d1d9; } /* === Picker Tabs === */ .picker-tabs { display: flex; gap: 4px; padding: 12px 20px; border-bottom: 1px solid #30363d; } .picker-tab { display: flex; align-items: center; gap: 6px; padding: 8px 16px; background: transparent; border: none; border-radius: 6px; color: #8b949e; cursor: pointer; font-size: 14px; font-weight: 500; transition: all 0.15s ease; } .picker-tab:hover { background: #21262d; color: #c9d1d9; } .picker-tab.active { background: #21262d; color: #58a6ff; } .picker-tab .tab-icon { font-size: 16px; } /* === Picker Body === */ .picker-body { flex: 1; overflow-y: auto; padding: 0; } .picker-tab-content { display: none; padding: 16px 20px; } .picker-tab-content.active { display: block; } /* === Session/Project Items === */ .session-item, .project-item { display: flex; align-items: center; gap: 12px; padding: 12px; background: #161b22; border: 1px solid #30363d; border-radius: 8px; margin-bottom: 8px; cursor: pointer; transition: all 0.15s ease; } .session-item:hover, .project-item:hover { background: #21262d; border-color: #58a6ff; } .session-icon, .project-icon { font-size: 24px; flex-shrink: 0; } .session-info, .project-info { flex: 1; min-width: 0; } .session-title, .project-name { font-size: 14px; font-weight: 500; color: #c9d1d9; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .session-meta, .project-meta { display: flex; align-items: center; gap: 8px; font-size: 12px; color: #8b949e; margin-top: 2px; } .session-project { padding: 2px 6px; background: #21262d; border-radius: 4px; } .session-time { flex-shrink: 0; } .session-arrow, .project-arrow { color: #8b949e; flex-shrink: 0; } /* === Empty State === */ .empty-state, .error-state { text-align: center; padding: 40px 20px; } .empty-icon { font-size: 48px; margin-bottom: 16px; opacity: 0.5; } .empty-state h3, .error-state h3 { font-size: 1.125rem; font-weight: 600; color: #c9d1d9; margin-bottom: 8px; } .empty-state p, .error-state p { font-size: 0.875rem; color: #8b949e; margin-bottom: 16px; } /* === New Session Form === */ .new-session-form { display: flex; flex-direction: column; gap: 16px; } .form-group { display: flex; flex-direction: column; gap: 6px; } .form-group label { font-size: 13px; font-weight: 500; color: #c9d1d9; } .form-group input { padding: 8px 12px; background: #0d1117; border: 1px solid #30363d; border-radius: 6px; color: #c9d1d9; font-size: 14px; } .form-group input:focus { outline: none; border-color: #58a6ff; box-shadow: 0 0 0 3px rgba(88, 166, 255, 0.1); } /* === Buttons === */ .btn-primary, .btn-secondary { display: inline-flex; align-items: center; justify-content: center; padding: 8px 16px; border-radius: 6px; font-size: 14px; font-weight: 500; cursor: pointer; transition: all 0.15s ease; border: none; } .btn-primary { background: #1f6feb; color: #ffffff; } .btn-primary:hover { background: #388bfd; } .btn-secondary { background: #21262d; color: #c9d1d9; } .btn-secondary:hover { background: #30363d; } .btn-block { width: 100%; } /* === Loading === */ .loading { width: 40px; height: 40px; border: 3px solid #30363d; border-top-color: #58a6ff; border-radius: 50%; animation: spin 0.8s linear infinite; margin: 2rem auto; } @keyframes spin { to { transform: rotate(360deg); } } /* === Mobile Responsive === */ @media (max-width: 640px) { .session-picker-modal { padding: 10px; } .session-picker-content { max-height: 90vh; border-radius: 8px; } .picker-header { padding: 12px 16px; } .picker-header h2 { font-size: 1.125rem; } .picker-tabs { padding: 8px 16px; } .picker-tab { padding: 6px 12px; font-size: 13px; } .picker-body { padding: 12px 16px; } .session-item, .project-item { padding: 10px; } .session-icon, .project-icon { font-size: 20px; } .session-title, .project-name { font-size: 13px; } .empty-icon { font-size: 36px; } } /* === Touch Targets === */ @media (hover: none) and (pointer: coarse) { .picker-tab, .session-item, .project-item { min-height: 44px; } .btn-close, .btn-primary, .btn-secondary { min-height: 44px; min-width: 44px; } } /* === Print Styles === */ @media print { .session-picker-modal { display: none; } }