:root{--bg: #0d0d0d;--surface: #161616;--surface2: #1e1e1e;--border: #2a2a2a;--text: #e8e8e8;--text-muted: #888;--accent: #4f9cf9;--accent-dim: rgba(79,156,249,.15);--success: #4caf7d;--warning: #f0a500;--danger: #e05c5c;--radius: 10px;--radius-sm: 6px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px;line-height:1.6;min-height:100vh}.join-view{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.join-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:48px 40px;width:100%;max-width:420px;text-align:center}.join-logo{font-size:48px;color:var(--accent);margin-bottom:16px}.join-card h1{font-size:24px;font-weight:600;margin-bottom:8px}.join-subtitle{color:var(--text-muted);margin-bottom:32px}.join-input{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:16px;padding:12px 16px;margin-bottom:12px;outline:none;transition:border-color .2s}.join-input:focus{border-color:var(--accent)}.join-btn{width:100%;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-size:15px;font-weight:600;padding:12px;cursor:pointer;transition:opacity .2s}.join-btn:hover{opacity:.85}.join-error{color:var(--danger);font-size:13px;margin-bottom:8px}.join-hint{color:var(--text-muted);font-size:13px;margin-top:24px}.workspace-root{min-height:100vh;display:flex;flex-direction:column;max-width:860px;margin:0 auto}.workspace-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:10}.workspace-header-left{display:flex;align-items:center;gap:12px}.workspace-logo{font-size:22px;color:var(--accent)}.workspace-name{font-weight:600;font-size:16px}.owner-badge{background:var(--accent-dim);color:var(--accent);font-size:11px;padding:2px 8px;border-radius:20px;margin-left:8px}.workspace-date{color:var(--text-muted);font-size:13px}.breadcrumb{padding:10px 24px;font-size:13px;color:var(--text-muted);display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--border)}.breadcrumb button{background:none;border:none;color:var(--accent);cursor:pointer;font-size:13px;padding:0}.breadcrumb button:hover{text-decoration:underline}.workspace-main{flex:1;padding:24px}.workspace-footer{text-align:center;padding:16px;color:var(--text-muted);font-size:12px;border-top:1px solid var(--border)}.workspace-desc{color:var(--text-muted);margin-bottom:24px}.section-title{font-size:13px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:16px}.contexts-grid{display:flex;flex-direction:column;gap:10px}.context-card{display:flex;align-items:center;gap:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px;cursor:pointer;transition:border-color .2s,background .2s}.context-card:hover{border-color:var(--accent);background:var(--surface2)}.context-icon{font-size:24px;width:40px;text-align:center}.context-body{flex:1}.context-title{font-size:16px;font-weight:600;margin-bottom:2px}.context-desc{color:var(--text-muted);font-size:13px;margin-bottom:6px}.context-meta{display:flex;gap:10px;font-size:12px;color:var(--text-muted)}.required-badge{background:#f0a50026;color:var(--warning);padding:1px 8px;border-radius:20px}.context-arrow{color:var(--text-muted);font-size:18px}.view-header{display:flex;align-items:center;gap:16px;margin-bottom:16px}.back-btn{background:none;border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius-sm);padding:6px 14px;cursor:pointer;font-size:13px;transition:border-color .2s}.back-btn:hover{border-color:var(--accent);color:var(--accent)}.view-header-title{display:flex;align-items:center;gap:10px}.view-icon{font-size:22px}.view-header-title h2{font-size:20px;font-weight:600}.view-desc{color:var(--text-muted);margin-bottom:20px}.modules-grid{display:flex;flex-direction:column;gap:10px}.module-card{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 18px;cursor:pointer;transition:border-color .2s}.module-card:hover{border-color:var(--accent)}.module-card.status-done{border-color:var(--success)}.module-card.status-progress{border-color:var(--warning)}.module-status-icon{font-size:18px;color:var(--text-muted);width:24px;text-align:center}.status-done .module-status-icon{color:var(--success)}.status-progress .module-status-icon{color:var(--warning)}.module-body{flex:1}.module-header-row{display:flex;align-items:center;gap:10px;margin-bottom:2px}.module-title{font-size:15px;font-weight:600}.required-tag{background:#f0a50026;color:var(--warning);font-size:11px;padding:1px 8px;border-radius:20px}.module-desc{color:var(--text-muted);font-size:13px;margin-bottom:4px}.module-meta{display:flex;gap:10px;font-size:12px;color:var(--text-muted)}.done-tag{color:var(--success)}.progress-tag{color:var(--warning)}.module-arrow{color:var(--text-muted);font-size:16px}.module-view{max-width:680px}.blocks-list{display:flex;flex-direction:column;gap:10px;margin-bottom:24px}.block-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:border-color .2s}.block-card.opened{border-color:#4f9cf966}.block-header{display:flex;align-items:center;gap:12px;padding:14px 18px;cursor:pointer;-webkit-user-select:none;user-select:none}.block-header:hover{background:var(--surface2)}.block-type-icon{font-size:16px;width:24px;text-align:center}.block-title{flex:1;font-weight:500}.block-toggle{color:var(--text-muted);font-size:12px}.block-opened-mark{color:var(--success);font-size:13px}.block-content{padding:16px 18px;border-top:1px solid var(--border);color:var(--text-muted);font-size:14px;line-height:1.7}.text-content p{margin-bottom:8px}.text-content p:last-child{margin-bottom:0}.checklist-item{display:flex;align-items:center;gap:12px;padding:8px 0;cursor:pointer;border-bottom:1px solid var(--border)}.checklist-item:last-child{border-bottom:none}.checklist-item.checked{color:var(--success)}.check-box{font-size:16px;width:20px}.contact-name{font-weight:600;color:var(--text);margin-bottom:8px}.contact-link{display:inline-block;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 16px;color:var(--text);text-decoration:none;font-size:14px;margin-right:8px;margin-top:4px;transition:border-color .2s}.contact-link:hover{border-color:var(--accent)}.contact-link.whatsapp{border-color:#4caf7d66;color:var(--success)}.video-embed,.video-player{width:100%;border-radius:var(--radius-sm)}.video-embed{aspect-ratio:16/9;border:none}.block-link,.pdf-link{color:var(--accent);text-decoration:none;font-size:14px}.block-link:hover,.pdf-link:hover{text-decoration:underline}.complete-section{margin-top:8px}.complete-btn{width:100%;padding:14px;border-radius:var(--radius);font-size:15px;font-weight:600;cursor:pointer;border:none;transition:opacity .2s}.complete-btn.ready{background:var(--success);color:#fff}.complete-btn.disabled{background:var(--surface2);color:var(--text-muted);cursor:not-allowed;border:1px solid var(--border)}.completed-banner{display:flex;align-items:center;gap:16px;background:#4caf7d1a;border:1px solid rgba(76,175,125,.3);border-radius:var(--radius);padding:16px 20px;margin-top:8px}.completed-banner span{font-size:24px;color:var(--success)}.completed-banner strong{color:var(--success)}.completed-banner p{color:var(--text-muted);font-size:13px}.loading-state,.error-state{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--text-muted)}.workspace-loading{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:var(--text-muted)}.loading-spinner{font-size:48px;color:var(--accent);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.workspace-error{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--danger)}@media(max-width:600px){.workspace-main{padding:16px}.join-card{padding:32px 24px}.workspace-header{padding:12px 16px}}
