:root{--bg-primary:#fff;--bg-secondary:#fafafa;--bg-card:#fff;--border-color:#eaeaea;--text-primary:#171717;--text-secondary:#666;--accent:#0070f3;--accent-hover:#0060df;--success:#0cce6b;--error:#e00;--warning:#f5a623;--radius:8px;--radius-sm:4px;--shadow:0 2px 8px #00000014;--transition:.15s ease;--max-width:1200px}*{box-sizing:border-box}body{background:var(--bg-secondary);color:var(--text-primary);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:.9375rem;font-weight:400;line-height:1.6}a{color:var(--accent);transition:color var(--transition);text-decoration:none}a:hover{color:var(--accent-hover)}ul{margin:0;padding:0;list-style:none}h1,h2,h3,h4{letter-spacing:-.02em;color:var(--text-primary);margin:0 0 .5rem;font-weight:600}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1rem}p{color:var(--text-secondary);margin:0 0 1rem}.app-layout{flex-direction:column;min-height:100vh;display:flex}.main-content{flex:1;padding-top:47px}.navbar{z-index:100;background:var(--bg-primary);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:stretch;height:47px;padding:0 1.5rem;display:flex;position:fixed;top:0;left:0;right:0}.navbar-left,.navbar-right{align-self:center}.navbar-left{align-self:center;align-items:center;display:flex}.logo{color:var(--text-primary);letter-spacing:-.03em;font-size:1.125rem;font-weight:700}.logo:hover{color:var(--text-primary)}.navbar-tabs{align-items:stretch;gap:0;height:100%;display:flex}.navbar-tab{color:var(--text-secondary);transition:color var(--transition),border-color var(--transition);border-bottom:2px solid #0000;align-items:center;padding:0 1rem;font-size:.875rem;text-decoration:none;display:flex}.navbar-tab:hover{color:var(--text-primary)}.navbar-tab-active{color:var(--text-primary);border-bottom-color:var(--text-primary)}.navbar-right{align-items:center;margin-right:1.5rem;display:flex}.nav-link{color:var(--text-secondary);transition:color var(--transition);font-size:.875rem}.nav-link:hover{color:var(--text-primary)}.nav-provider{border:1px solid var(--border-color);border-radius:var(--radius);padding:.375rem .75rem}.nav-provider:hover{border-color:var(--text-primary);color:var(--text-primary)}.user-menu{align-items:center;gap:1rem;display:flex}.rk-btn{border:1px solid var(--border-color);border-radius:var(--radius);background:var(--bg-card);color:var(--text-primary);cursor:pointer;white-space:nowrap;transition:border-color var(--transition);align-items:center;padding:.2rem .5rem;font-size:.75rem;font-weight:500;line-height:1.4;display:inline-flex}.rk-btn:hover{border-color:var(--text-primary)}.token-balance{color:var(--text-secondary);white-space:nowrap;font-size:.8rem;font-weight:600}.wallet-info{align-items:center;gap:.5rem;display:flex}.user-dropdown{position:relative}.user-dropdown-trigger{color:#fff;cursor:pointer;border-radius:var(--radius);transition:opacity var(--transition);background:#000;border:none;padding:.375rem .75rem;font-size:.875rem;font-weight:500}.user-dropdown-trigger:hover{opacity:.85}.user-dropdown-menu{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius);z-index:100;min-width:140px;padding:.25rem 0;position:absolute;top:100%;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0000001a}.user-dropdown-item{text-align:center;cursor:pointer;width:100%;color:var(--text-primary);transition:background var(--transition);background:0 0;border:none;padding:.5rem .75rem;font-size:.875rem;display:block}.user-dropdown-item:hover{background:var(--bg-secondary)}.auth-links{align-items:center;gap:1rem;display:flex}.btn-text{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:0;font-size:.875rem}.btn-text:hover{color:var(--text-primary)}.btn-primary,.btn-secondary{border-radius:var(--radius);cursor:pointer;transition:all var(--transition);border:1px solid #0000;justify-content:center;align-items:center;padding:.5rem 1rem;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex}.btn-primary{background:var(--text-primary);color:#fff}.btn-primary:hover{color:#fff;background:#000}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--bg-primary);color:var(--text-primary);border-color:var(--border-color)}.btn-secondary:hover{border-color:var(--text-primary)}.card-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem;margin-top:1.5rem;display:grid}.key-card,.groupBuy-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius);transition:box-shadow var(--transition),border-color var(--transition);flex-direction:column;padding:1.25rem;display:flex}.key-card:hover,.groupBuy-card:hover{box-shadow:var(--shadow);border-color:#ccc}.key-card h4 a,.groupBuy-card h4 a{color:var(--text-primary)}.key-card h4 a:hover,.groupBuy-card h4 a:hover{color:var(--accent)}.key-description,.groupBuy-description{color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:2.625rem;margin:.5rem 0 1rem;font-size:.875rem;line-height:1.5;display:-webkit-box;overflow:hidden}.key-card>.btn-primary,.groupBuy-card>.btn-primary,.key-card>.card-actions,.groupBuy-card>.card-actions{margin-top:auto}.card-actions{justify-content:space-between;align-items:center;display:flex}.copy-link-btn{border:1px solid var(--border-color);border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;transition:color var(--transition),border-color var(--transition);background:0 0;justify-content:center;align-items:center;padding:0;display:inline-flex}.copy-link-btn:hover{color:var(--text-primary);border-color:var(--text-primary)}.key-details,.groupBuy-details,.groupBuy-meta{grid-template-columns:auto 1fr;gap:.25rem 1rem;margin-bottom:1rem;font-size:.8125rem;display:grid}.key-details dt,.groupBuy-details dt,.groupBuy-meta dt{color:var(--text-secondary)}.key-details dd,.groupBuy-details dd,.groupBuy-meta dd{color:var(--text-primary);margin:0}.groupBuy-progress{margin:1rem 0}.progress-bar{background:var(--border-color);border-radius:3px;height:6px;overflow:hidden}.progress-fill{background:var(--text-primary);border-radius:3px;height:100%;transition:width .3s}.progress-text{color:var(--text-secondary);margin-top:.25rem;font-size:.8125rem;display:block}.filter-bar{border-bottom:1px solid var(--border-color);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:1rem;padding-bottom:.75rem;display:flex}.filter-bar h3{border:none;margin:0;padding:0}.filter-tabs{gap:.25rem;display:flex}.filter-tab{border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition);text-transform:capitalize;background:0 0;padding:.25rem .625rem;font-size:.75rem}.filter-tab:hover{border-color:var(--text-secondary);color:var(--text-primary)}.filter-tab-active,.filter-tab-active:hover{background:var(--text-primary);border-color:var(--text-primary);color:#fff}.tab-bar{border-bottom:1px solid var(--border-color);gap:0;margin:1.5rem 0 0;display:flex}.tab{color:var(--text-secondary);cursor:pointer;transition:all var(--transition);background:0 0;border:none;border-bottom:2px solid #0000;padding:.625rem 1rem;font-size:.875rem}.tab:hover{color:var(--text-primary)}.tab-active{color:var(--text-primary);border-bottom-color:var(--text-primary)}.search-bar{margin:1.5rem 0 0}.search-bar input{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius);width:100%;color:var(--text-primary);transition:border-color var(--transition);outline:none;padding:.625rem 1rem;font-size:.9375rem}.search-bar input:focus{border-color:var(--text-primary)}.search-bar input::placeholder{color:#999}.page-not-found{text-align:center;padding-top:4rem}.page-not-found h1{color:var(--text-secondary);margin-bottom:.5rem;font-size:4rem}.page-not-found p{color:var(--text-secondary);margin-bottom:2rem}.page-auth{justify-content:center;padding-top:3rem;display:flex}.auth-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius);width:100%;max-width:400px;padding:2rem}.auth-card form{flex-direction:column;gap:1rem;display:flex}.auth-card label{color:var(--text-secondary);flex-direction:column;gap:.375rem;font-size:.875rem;display:flex}.auth-card input{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);outline:none;padding:.5rem .75rem;font-size:.9375rem}.auth-card input:focus{border-color:var(--text-primary)}.auth-footer{text-align:center;margin-top:1rem;font-size:.875rem}.auth-footer a{color:var(--text-primary);font-weight:600}.auth-footer a:hover{color:var(--text-primary);text-decoration:underline}.dashboard-section{margin-bottom:2rem}.dashboard-section h3{border-bottom:1px solid var(--border-color);margin-bottom:1rem;padding-bottom:.5rem}.action-buttons{gap:.5rem;margin-top:.75rem;display:flex}.badge{border-radius:var(--radius-sm);text-transform:capitalize;color:var(--text-secondary);background:#f0f0f0;padding:.125rem .5rem;font-size:.75rem;font-weight:500;display:inline-block}.status-active{color:var(--success)}.status-funded{color:var(--accent)}.status-completed{color:var(--success)}.status-failed{color:var(--error)}.status-pending,.status-pending_review{color:var(--warning)}.expired{color:var(--error)}.error-message,.error{color:var(--error);margin:.5rem 0;font-size:.875rem}.success-message{color:#0a7c42;border-radius:var(--radius-sm);background:#ecfdf5;border:1px solid #bbf7d0;margin:1rem 0;padding:.75rem 1rem;font-size:.875rem}.empty-state{color:var(--text-secondary);text-align:center;grid-column:1/-1;padding:2rem 0}.empty-state a{color:var(--text-primary);font-weight:600}.loading{text-align:center;color:var(--text-secondary);padding:2rem 0}.page-groupBuy-detail,.page-key-detail{max-width:800px;margin:0 auto;padding:2rem 1.5rem}.groupBuy-creator{color:var(--text-secondary);margin-bottom:1.5rem;font-size:.875rem}.groupBuy-info{margin-bottom:1.5rem}.contribute-section,.refund-section{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius);margin:1.5rem 0;padding:1.25rem}.groupBuy-expired{color:var(--warning);font-style:italic}.page-home,.page-admin,.page-provider,.page-consumer{max-width:var(--max-width);margin:0 auto;padding:2rem 1.5rem}.footer{text-align:center;border-top:1px solid var(--border-color);margin-top:3rem;padding:2rem 0}.footer p{color:var(--text-secondary);margin:0;font-size:.8125rem}.page-provider-onboarding{max-width:640px;margin:0 auto;padding:2rem 1.5rem}.form-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius);margin-top:1rem;padding:1.5rem}.form-group{flex-direction:column;gap:.375rem;margin-bottom:1rem;display:flex}.form-group label{color:var(--text-secondary);font-size:.875rem;font-weight:500}.form-group input,.form-group textarea,.form-group select{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);transition:border-color var(--transition);outline:none;padding:.5rem .75rem;font-family:inherit;font-size:.9375rem}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--text-primary)}.form-group textarea{resize:vertical}.provider-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.keys-list,.groupBuys-list,.subscriptions-list{flex-direction:column;gap:1rem;display:flex}.key-card-header,.subscription-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.rejection-reason{border-radius:var(--radius-sm);color:#991b1b;background:#fef2f2;border:1px solid #fecaca;margin-top:.75rem;padding:.625rem .75rem;font-size:.8125rem}.badge-success{color:#065f46;background:#ecfdf5}.badge-danger{color:#991b1b;background:#fef2f2}.badge-warning{color:#92400e;background:#fffbeb}.dash-layout{min-height:calc(100vh - 47px);display:flex}.dash-sidebar{border-right:1px solid var(--border-color);background:var(--bg-primary);flex-shrink:0;width:220px;padding:1.5rem 0}.dash-nav{flex-direction:column;display:flex}.dash-nav-item{text-align:left;width:100%;color:var(--text-secondary);cursor:pointer;transition:all var(--transition);background:0 0;border:none;border-left:2px solid #0000;padding:.5rem 1.25rem;font-size:.875rem;display:block}.dash-nav-item:hover{color:var(--text-primary);background:var(--bg-secondary)}.dash-nav-active{color:var(--text-primary);border-left-color:var(--text-primary);background:var(--bg-secondary);font-weight:500}.dash-content{flex:1;min-width:0;padding:1.5rem 2rem}.dash-content h3{border-bottom:1px solid var(--border-color);margin-bottom:1rem;padding-bottom:.5rem}.text-secondary{color:var(--text-secondary)}.profile-info{grid-template-columns:auto 1fr;gap:.25rem 1rem;font-size:.9375rem;display:grid}.profile-info dt{color:var(--text-secondary);font-weight:500}.profile-info dd{color:var(--text-primary);margin:0}.settings-form{flex-direction:column;gap:.75rem;max-width:400px;margin-top:1rem;display:flex}.subscription-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius);padding:1.25rem}.subscription-name{color:var(--text-primary);font-weight:500}.subscription-amount{color:var(--text-primary);font-weight:600}.subscription-details{grid-template-columns:auto 1fr;gap:.25rem 1rem;margin:.5rem 0;font-size:.8125rem;display:grid}.subscription-details dt{color:var(--text-secondary)}.subscription-details dd{color:var(--text-primary);margin:0}.access-token{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);margin-top:.5rem;padding:.5rem .75rem;overflow-x:auto}.access-token code{color:var(--text-primary);word-break:break-all;font-size:.8125rem}.wallet-status,.wallet-connect{align-items:center;gap:.75rem;display:flex}.wallet-badge{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);padding:.25rem .625rem;font-family:monospace;font-size:.8125rem;display:inline-block}.purchase-section{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius);margin-top:1.5rem;padding:1.25rem}.price-total{color:var(--text-primary);margin:1rem 0;font-size:1.125rem}.tx-status{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);word-break:break-all;margin:1rem 0;padding:.75rem 1rem;font-size:.875rem}.modal-overlay{z-index:1000;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.modal-content{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius);width:100%;max-width:480px;padding:1.5rem;box-shadow:0 8px 30px #0000001f}.modal-content h3{border-bottom:1px solid var(--border-color);margin-bottom:1rem;padding-bottom:.5rem}.modal-actions{gap:.5rem;margin-top:1rem;display:flex}