:root{color-scheme:dark;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;--primary: #8b5cf6;--primary-hover: #7c3aed;--primary-glow: rgba(139, 92, 246, .15);--accent: #22c55e;--accent-hover: #16a34a;--surface: rgba(255, 255, 255, .04);--surface-hover: rgba(255, 255, 255, .07);--border: rgba(255, 255, 255, .1);--border-light: rgba(255, 255, 255, .06);--text: #fafafa;--text-secondary: rgba(255, 255, 255, .65);--text-muted: rgba(255, 255, 255, .4);--radius: .75rem;--radius-sm: .5rem;--radius-lg: 1rem}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100vh;background:#0a0a0a;color:var(--text)}.app{min-height:100vh;display:flex;flex-direction:column}.header{position:sticky;top:0;z-index:100;background:#0a0a0ad9;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--border)}.header-inner{max-width:1200px;margin:0 auto;padding:0 1.5rem;height:64px;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.logo{display:flex;align-items:center;gap:.5rem;cursor:pointer;flex-shrink:0}.logo-icon{font-size:1.5rem;color:var(--primary);font-weight:700}.logo-text{font-size:1.15rem;font-weight:700;letter-spacing:-.02em;background:linear-gradient(135deg,#8b5cf6,#06b6d4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.nav{display:flex;gap:.25rem}.nav-btn{display:flex;align-items:center;gap:.4rem;padding:.5rem .75rem;border:none;background:transparent;color:var(--text-secondary);font-size:.85rem;font-weight:500;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s}.nav-btn:hover{background:var(--surface-hover);color:var(--text)}.nav-btn.active{background:var(--primary-glow);color:var(--primary)}.nav-icon{font-size:1rem}.nav-label{display:none}@media(min-width:640px){.nav-label{display:inline}}.time-credits{display:flex;align-items:center;gap:.35rem;padding:.4rem .75rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);flex-shrink:0}.credits-icon{font-size:1rem}.credits-amount{font-weight:700;font-size:.95rem;color:var(--accent)}.credits-label{font-size:.75rem;color:var(--text-muted)}.main{flex:1;max-width:1200px;margin:0 auto;padding:2rem 1.5rem;width:100%}.hero{text-align:center;padding:2rem 0 4rem}.hero-content{max-width:640px;margin:0 auto 3rem}.hero-badge{display:inline-block;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--primary);border:1px solid rgba(139,92,246,.3);padding:.3rem .75rem;border-radius:2rem;margin-bottom:1.5rem;background:var(--primary-glow)}.hero-title{font-size:clamp(2rem,5vw,3.25rem);font-weight:800;letter-spacing:-.03em;line-height:1.15;margin:0 0 1.25rem}.hero-highlight{background:linear-gradient(135deg,#8b5cf6,#06b6d4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-subtitle{font-size:1.1rem;color:var(--text-secondary);max-width:480px;margin:0 auto 2rem;line-height:1.7}.hero-actions{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}.hero-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;max-width:480px;margin:0 auto 4rem}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem 1rem;text-align:center}.stat-number{font-size:1.75rem;font-weight:800;color:var(--primary)}.stat-label{font-size:.75rem;color:var(--text-muted);margin-top:.25rem}.hero-how{text-align:center}.section-title{font-size:1.5rem;font-weight:700;margin:0 0 1.5rem;letter-spacing:-.02em}.how-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;text-align:left}.how-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;transition:border-color .2s}.how-card:hover{border-color:var(--primary)}.how-step{width:2rem;height:2rem;display:grid;place-items:center;background:var(--primary-glow);color:var(--primary);font-weight:700;font-size:.85rem;border-radius:50%;margin-bottom:.75rem}.how-card h3{font-size:1rem;margin:0 0 .5rem}.how-card p{font-size:.85rem;color:var(--text-secondary);margin:0;line-height:1.6}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.65rem 1.25rem;border:none;border-radius:var(--radius-sm);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 12px #8b5cf64d}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--surface-hover);border-color:#fff3}.btn-sm{padding:.4rem .85rem;font-size:.8rem}.btn-full{width:100%}.page-title{font-size:1.75rem;font-weight:800;margin:0 0 .35rem;letter-spacing:-.02em}.page-subtitle{color:var(--text-secondary);margin:0 0 2rem;font-size:.95rem}.section-subtitle{font-size:1.1rem;font-weight:700;margin:2.5rem 0 1rem}.browse-controls{margin-bottom:1.5rem}.search-box{position:relative;margin-bottom:1rem}.search-icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);font-size:.9rem;opacity:.5}.search-input{width:100%;padding:.75rem 1rem .75rem 2.5rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:.9rem;outline:none;transition:border-color .2s}.search-input:focus{border-color:var(--primary)}.search-input::placeholder{color:var(--text-muted)}.filter-row{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.category-filters{display:flex;gap:.35rem;flex-wrap:wrap}.cat-btn{padding:.35rem .65rem;background:transparent;border:1px solid var(--border);border-radius:2rem;color:var(--text-secondary);font-size:.75rem;cursor:pointer;transition:all .2s}.cat-btn:hover{border-color:var(--primary);color:var(--primary)}.cat-btn.active{background:var(--primary-glow);border-color:var(--primary);color:var(--primary)}.sort-select{padding:.4rem .75rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:.8rem;cursor:pointer;outline:none}.results-count{font-size:.8rem;color:var(--text-muted);margin-bottom:1rem}.user-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1rem}.user-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;transition:border-color .2s}.user-card:hover{border-color:#8b5cf666}.user-card-header{display:flex;gap:.75rem;margin-bottom:.75rem}.user-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#8b5cf6,#06b6d4);display:grid;place-items:center;font-weight:700;font-size:.85rem;flex-shrink:0}.user-avatar.sm{width:36px;height:36px;font-size:.75rem}.user-info{flex:1;min-width:0}.user-name{font-size:1rem;font-weight:700;margin:0}.user-location{font-size:.8rem;color:var(--text-muted);margin:.1rem 0 .3rem}.user-bio{font-size:.85rem;color:var(--text-secondary);margin:0 0 .75rem;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.user-skills-section{margin-bottom:.75rem}.skills-section-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin:0 0 .4rem}.skill-tags{display:flex;flex-wrap:wrap;gap:.35rem}.skill-badge-compact{display:inline-block;padding:.2rem .5rem;border:1px solid;border-radius:2rem;font-size:.7rem;font-weight:600;cursor:default}.user-card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border-light)}.availability{display:flex;align-items:center;gap:.35rem;font-size:.8rem;color:var(--text-secondary)}.avail-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);animation:pulse 2s infinite}.avail-dot.large{width:10px;height:10px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.skill-badge{background:var(--surface);border:1px solid var(--border);border-left:3px solid;border-radius:var(--radius-sm);padding:.75rem;cursor:default}.skill-badge-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.35rem}.skill-name{font-weight:700;font-size:.9rem}.skill-level{font-size:.65rem;padding:.15rem .4rem;border-radius:2rem;font-weight:600}.skill-desc{font-size:.8rem;color:var(--text-secondary);margin:0 0 .5rem;line-height:1.5}.skill-meta{display:flex;justify-content:space-between;font-size:.7rem;color:var(--text-muted)}.profile-skills-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.75rem}.rating-stars{display:inline-flex;align-items:center;gap:.1rem}.rating-sm{font-size:.75rem}.rating-md{font-size:1rem}.star{color:#f59e0b}.star.empty{color:var(--text-muted)}.rating-value{margin-left:.3rem;font-weight:600;font-size:.85em}.rating-count{margin-left:.15rem;color:var(--text-muted);font-size:.85em}.match-filter{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:1.5rem}.filter-label{font-size:.85rem;color:var(--text-secondary);margin-right:.25rem}.filter-chip{padding:.3rem .65rem;background:transparent;border:1px solid var(--border);border-radius:2rem;color:var(--text-secondary);font-size:.75rem;cursor:pointer;transition:all .2s}.filter-chip:hover{border-color:var(--primary);color:var(--primary)}.filter-chip.active{background:var(--primary-glow);border-color:var(--primary);color:var(--primary)}.match-list{display:flex;flex-direction:column;gap:1rem}.match-card{display:flex;gap:1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;transition:border-color .2s}.match-card:hover{border-color:#8b5cf666}.match-score-ring{position:relative;width:64px;height:64px;flex-shrink:0}.score-svg{width:100%;height:100%;transform:rotate(-90deg)}.score-text{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:.8rem;font-weight:700}.match-user-info{flex:1;min-width:0}.match-header{display:flex;gap:.75rem;align-items:center;margin-bottom:.75rem}.match-exchanges{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem}.exchange-row{display:flex;align-items:center;gap:.75rem}.exchange-side{display:flex;flex-direction:column;flex:1}.exchange-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted)}.exchange-skill{font-weight:600;font-size:.9rem}.exchange-arrow{font-size:1.25rem;color:var(--primary);flex-shrink:0}.match-footer{display:flex;justify-content:space-between;align-items:center;padding-top:.75rem;border-top:1px solid var(--border-light)}.passport-header-card{display:flex;gap:1.25rem;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;margin-bottom:1.5rem}.passport-avatar-lg{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,#8b5cf6,#06b6d4);display:grid;place-items:center;font-weight:700;font-size:1.25rem;flex-shrink:0}.passport-user-info h3{margin:0 0 .15rem;font-size:1.15rem}.passport-user-info p{margin:0;color:var(--text-secondary);font-size:.85rem}.passport-user-info .joined{font-size:.75rem;color:var(--text-muted);margin-top:.35rem}.passport-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.75rem;margin-bottom:2rem}.passport-stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:1rem;text-align:center}.passport-stat-number{font-size:1.5rem;font-weight:800;color:var(--primary)}.passport-stat-label{font-size:.7rem;color:var(--text-muted);margin-top:.25rem}.achievement-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem}.achievement{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:1rem;text-align:center;transition:all .2s}.achievement.unlocked{border-color:#8b5cf64d}.achievement.locked{opacity:.4}.achievement-icon{font-size:1.5rem;display:block;margin-bottom:.5rem}.achievement-name{font-weight:700;font-size:.85rem;display:block;margin-bottom:.25rem}.achievement-desc{font-size:.7rem;color:var(--text-muted)}.history-timeline{display:flex;flex-direction:column;gap:0}.history-entry{display:flex;gap:1rem;border-left:2px solid var(--border);padding:1rem 0 1rem 1.25rem;margin-left:.5rem;position:relative}.history-entry.taught{border-left-color:var(--primary)}.history-entry.learned{border-left-color:var(--accent)}.history-dot{position:absolute;left:-5px;top:1.25rem;width:8px;height:8px;border-radius:50%;background:var(--primary)}.history-entry.learned .history-dot{background:var(--accent)}.history-content{flex:1}.history-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.35rem;flex-wrap:wrap}.history-type{font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;padding:.15rem .4rem;border-radius:2rem;font-weight:600}.history-type.taught{background:#8b5cf626;color:var(--primary)}.history-type.learned{background:#22c55e26;color:var(--accent)}.history-skill{font-weight:700;font-size:.95rem}.certificate-badge{font-size:.7rem;color:var(--accent);background:#22c55e1a;padding:.15rem .4rem;border-radius:2rem}.history-meta{display:flex;gap:1rem;font-size:.8rem;color:var(--text-secondary);flex-wrap:wrap}.profile-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;margin-bottom:1.5rem}.profile-header{display:flex;gap:1.25rem;align-items:center;margin-bottom:1rem}.profile-avatar-lg{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,#8b5cf6,#06b6d4);display:grid;place-items:center;font-weight:700;font-size:1.25rem;flex-shrink:0}.profile-info h3{margin:0 0 .15rem;font-size:1.15rem}.profile-location{font-size:.8rem;color:var(--text-muted);margin:0 0 .35rem}.profile-bio{font-size:.85rem;color:var(--text-secondary);margin:.5rem 0 0;line-height:1.6}.profile-availability{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#22c55e14;border:1px solid rgba(34,197,94,.2);border-radius:var(--radius-sm);font-size:.85rem;color:var(--accent)}.profile-section{margin-bottom:1rem}.requests-list{display:flex;flex-direction:column;gap:.75rem}.request-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.request-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.request-badge{font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;padding:.2rem .5rem;border-radius:2rem;font-weight:600}.request-badge.incoming{background:#22c55e26;color:var(--accent)}.request-badge.outgoing{background:#8b5cf626;color:var(--primary)}.request-date{font-size:.75rem;color:var(--text-muted)}.request-partner{font-size:.9rem;margin:0 0 .75rem}.request-exchange{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.request-skill{font-size:.85rem;padding:.3rem .6rem;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border)}.request-skill.teach{border-color:#8b5cf64d;color:var(--primary)}.request-skill.learn{border-color:#22c55e4d;color:var(--accent)}.request-arrow{font-size:1.25rem;color:var(--text-muted)}.request-message{font-size:.85rem;color:var(--text-secondary);font-style:italic;margin:0 0 .75rem;padding:.5rem .75rem;background:#ffffff05;border-radius:var(--radius-sm);border-left:3px solid var(--border)}.request-actions{display:flex;gap:.5rem}.request-status{font-size:.75rem;padding:.25rem .5rem;border-radius:2rem;font-weight:600}.request-status.accepted{background:#22c55e26;color:var(--accent)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;z-index:200;padding:1.5rem}.modal{background:#141414;border:1px solid var(--border);border-radius:var(--radius-lg);padding:2rem;max-width:480px;width:100%;max-height:90vh;overflow-y:auto;position:relative}.success-modal{text-align:center}.success-icon{width:56px;height:56px;border-radius:50%;background:var(--accent);display:grid;place-items:center;font-size:1.5rem;font-weight:700;margin:0 auto 1rem}.success-modal h3{margin:0 0 .5rem}.success-modal p{color:var(--text-secondary);margin:0 0 1.5rem}.modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;color:var(--text-muted);font-size:1.5rem;cursor:pointer;width:32px;height:32px;display:grid;place-items:center;border-radius:50%;transition:all .2s}.modal-close:hover{background:var(--surface-hover);color:var(--text)}.modal-title{margin:0 0 .25rem;font-size:1.25rem}.modal-subtitle{color:var(--text-secondary);margin:0 0 1.5rem;font-size:.9rem}.barter-form{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.35rem}.form-group label{font-size:.8rem;font-weight:600;color:var(--text-secondary)}.form-select{padding:.65rem .75rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:.9rem;cursor:pointer;outline:none}.form-select:focus{border-color:var(--primary)}.form-exchange-icon{text-align:center;font-size:1.5rem;color:var(--primary);padding:.25rem 0}.hours-selector{display:flex;gap:.5rem}.hour-btn{flex:1;padding:.5rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s}.hour-btn:hover{border-color:var(--primary)}.hour-btn.active{background:var(--primary-glow);border-color:var(--primary);color:var(--primary)}.form-textarea{padding:.65rem .75rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:.9rem;font-family:inherit;resize:vertical;outline:none}.form-textarea:focus{border-color:var(--primary)}.form-textarea::placeholder{color:var(--text-muted)}.form-summary{padding:.75rem;background:var(--primary-glow);border:1px solid rgba(139,92,246,.2);border-radius:var(--radius-sm);text-align:center;font-size:.85rem}.form-summary p{margin:0}.empty-state{text-align:center;padding:3rem 1rem}.empty-icon{font-size:2.5rem;display:block;margin-bottom:.75rem}.empty-state h3{margin:0 0 .35rem}.empty-state p{color:var(--text-secondary);margin:0}
