.app-card{display:flex;flex-direction:column;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a;transition:all .3s ease;cursor:pointer}.app-card:hover{transform:translateY(-4px);box-shadow:0 4px 12px #00000026}.app-card:active{transform:translateY(-2px);box-shadow:0 2px 8px #0000001f}.app-card-image{position:relative;width:100%;padding-top:100%;background:linear-gradient(135deg,#667eea,#764ba2);overflow:hidden}.app-card-image img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}.app-card-placeholder{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:3rem;font-weight:700}.app-card-badge{position:absolute;top:8px;right:8px;padding:4px 8px;background-color:#0009;color:#fff;border-radius:4px;font-size:.75rem;font-weight:500}.app-card-badge.paid{background-color:#faad14}.app-card-badge.login-required{background-color:#1890ff}.app-card-content{flex:1;padding:12px;display:flex;flex-direction:column}.app-card-title{margin:0 0 8px;font-size:.95rem;font-weight:600;color:var(--text-color, #262626);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-card-description{margin:0 0 8px;font-size:.8rem;color:var(--text-muted, #8c8c8c);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.app-card-footer{display:flex;gap:4px;margin-top:auto}.app-card-category{display:inline-block;padding:2px 6px;background-color:#f0f0f0;border-radius:3px;font-size:.7rem;color:var(--text-muted, #8c8c8c)}@media (max-width: 480px){.app-card-title{font-size:.85rem}.app-card-description{font-size:.75rem;-webkit-line-clamp:1}}.app-list{padding:1rem;background-color:var(--bg-color, #f5f5f5);min-height:100%}.app-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem;max-width:1200px;margin:0 auto}.loading-container,.error-container,.empty-container{display:flex;align-items:center;justify-content:center;min-height:300px;font-size:1rem;color:var(--text-muted, #8c8c8c)}@media (min-width: 768px){.app-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1.5rem;padding:1.5rem}.app-list{padding:0}}@media (min-width: 1024px){.app-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:2rem;padding:2rem}}@media (max-width: 480px){.app-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.75rem}.app-list{padding:.75rem}}@media (max-width: 360px){.app-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}.app-list{padding:.5rem}}.app-detail{display:flex;flex-direction:column;min-height:100vh;background-color:var(--bg-color, #f5f5f5)}.app-detail-header{display:flex;align-items:center;justify-content:space-between;background-color:var(--primary-color, #1890ff);color:#fff;padding:1rem;box-shadow:0 2px 8px #0000001a}.back-btn{padding:.5rem 1rem;background-color:#fff3;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem;transition:background-color .3s ease}.back-btn:hover{background-color:#ffffff4d}.app-detail-title{margin:0;font-size:1.3rem;font-weight:600}.app-detail-content{flex:1;padding:1.5rem;max-width:600px;margin:0 auto;width:100%}.app-detail-image{width:100%;aspect-ratio:1;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;overflow:hidden;margin-bottom:1.5rem;display:flex;align-items:center;justify-content:center}.app-detail-image img{width:100%;height:100%;object-fit:cover}.app-detail-placeholder{font-size:4rem;color:#fff;font-weight:700}.app-detail-info{margin-bottom:2rem}.app-detail-name{margin:0 0 .5rem;font-size:1.8rem;font-weight:700;color:var(--text-color, #262626)}.app-detail-category{display:inline-block;padding:.25rem .75rem;background-color:var(--primary-color, #1890ff);color:#fff;border-radius:4px;font-size:.85rem;margin-bottom:1rem}.app-detail-badges{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.5rem}.badge{display:inline-block;padding:.4rem .8rem;border-radius:4px;font-size:.8rem;font-weight:500}.badge-coming{background-color:#faad14;color:#fff}.badge-paid{background-color:#ff4d4f;color:#fff}.badge-login{background-color:#52c41a;color:#fff}.app-detail-section{margin-bottom:1.5rem}.app-detail-section h3{margin:0 0 .75rem;font-size:1.1rem;font-weight:600;color:var(--text-color, #262626)}.app-detail-section p{margin:0;color:var(--text-muted, #8c8c8c);line-height:1.6}.app-detail-section ul{margin:0;padding-left:1.5rem;list-style:disc}.app-detail-section li{margin-bottom:.5rem;color:var(--text-muted, #8c8c8c)}.app-detail-actions{display:flex;gap:1rem;margin-top:2rem}.launch-btn{flex:1;padding:1rem;background-color:var(--primary-color, #1890ff);color:#fff;border:none;border-radius:4px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease}.launch-btn:hover:not(:disabled){background-color:#0050b3;transform:translateY(-2px);box-shadow:0 4px 12px #1890ff66}.launch-btn:disabled{background-color:#d9d9d9;color:#8c8c8c;cursor:not-allowed}.launch-btn.login-required-btn{background-color:#ff4d4f;cursor:pointer}.launch-btn.login-required-btn:hover{background-color:#cf1322;transform:translateY(-2px);box-shadow:0 4px 12px #ff4d4f66}.loading-container,.error-container{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-muted, #8c8c8c);font-size:1rem}.error-container{color:#ff4d4f}@media (max-width: 768px){.app-detail-content{padding:1rem}.app-detail-name{font-size:1.5rem}.app-detail-image{aspect-ratio:1;margin-bottom:1rem}}@media (max-width: 480px){.app-detail-header{padding:.75rem}.app-detail-title{font-size:1.1rem}.back-btn{padding:.4rem .8rem;font-size:.9rem}.app-detail-content{padding:.75rem}.app-detail-name{font-size:1.3rem}.launch-btn{padding:.75rem;font-size:.95rem}}.hand-drawing{display:flex;flex-direction:column;height:100vh;background-color:#000}.drawing-container{flex:1;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.canvas-wrapper{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.drawing-canvas,.drawing-canvas-overlay{width:100%;height:100%;cursor:crosshair;display:block;object-fit:contain;position:absolute;top:0;left:0}.hidden-video{display:none}.pinch-indicator{position:absolute;top:20px;right:20px;background-color:#000000b3;color:#fff;padding:10px 20px;border-radius:20px;font-size:.9rem;font-weight:600;z-index:100;transition:all .2s ease;border:2px solid #666}.pinch-indicator.active{background-color:#4caf50cc;border-color:#4caf50;box-shadow:0 0 10px #4caf5080}.debug-info{position:absolute;top:70px;right:20px;background-color:#000000b3;color:#fff;padding:10px 15px;border-radius:8px;font-size:.85rem;z-index:100;line-height:1.5}.debug-info p{margin:2px 0}.loading-message,.error-message{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;font-size:1.2rem;text-align:center;padding:2rem}.error-message{color:#ff6b6b}.error-hint{font-size:.9rem;margin-top:1rem;color:#ffb3b3}.color-palette{background-color:#000000e6;padding:1rem;border-top:1px solid #333;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.color-palette label{color:#fff;font-weight:600;white-space:nowrap}.color-options{display:flex;gap:.5rem;flex-wrap:wrap}.color-btn{width:30px;height:30px;border:2px solid transparent;border-radius:4px;cursor:pointer;transition:all .2s ease;flex-shrink:0}.color-btn:hover{transform:scale(1.1);border-color:#fff}.color-btn.selected{border-color:#fff;box-shadow:0 0 8px #ffffff80;transform:scale(1.15)}.brush-size-control{display:flex;align-items:center;gap:.5rem}.brush-size-control label{color:#fff;font-weight:600;white-space:nowrap;font-size:.9rem}.brush-slider{width:100px;height:6px;border-radius:3px;background:linear-gradient(to right,#ff4d4f,#1890ff);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.brush-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;cursor:pointer;box-shadow:0 2px 4px #0000004d}.brush-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#fff;cursor:pointer;border:none;box-shadow:0 2px 4px #0000004d}.drawing-controls{background-color:#000c;padding:1rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;border-top:1px solid #333;flex-wrap:wrap}.clear-btn{padding:.5rem 1rem;background-color:#ff4d4f;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:600;transition:all .3s ease;white-space:nowrap}.clear-btn:hover{background-color:#ff7875;transform:translateY(-2px)}.save-btn{padding:.5rem 1rem;background-color:#52c41a;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:600;transition:all .3s ease;white-space:nowrap}.save-btn:hover{background-color:#73d13d;transform:translateY(-2px)}.back-btn{padding:.5rem 1rem;background-color:#1890ff;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:600;transition:all .3s ease;white-space:nowrap}.back-btn:hover{background-color:#40a9ff;transform:translateY(-2px)}.drawing-info{color:#fff;font-size:.9rem;flex:1}.hint{color:#aaa;font-size:.85rem}@media (max-width: 768px){.color-palette{flex-direction:column;align-items:flex-start;gap:.5rem}.color-options{width:100%}.brush-size-control{width:100%;flex-direction:column;align-items:flex-start}.brush-slider{width:100%}.drawing-controls{flex-direction:column;align-items:stretch}.clear-btn,.save-btn,.back-btn,.drawing-info{width:100%}}.drawing-info p{margin:.25rem 0}.hint{color:#999;font-size:.8rem}@media (max-width: 768px){.drawing-controls{flex-direction:column;align-items:stretch}.clear-btn{width:100%}.drawing-info{text-align:center}.drawing-info p{font-size:.8rem}}@media (max-width: 480px){.drawing-controls{padding:.75rem}.clear-btn{padding:.4rem .8rem;font-size:.9rem}.drawing-info{font-size:.75rem}.hint{font-size:.7rem}}.toolbar{background-color:#000000e6;padding:1rem;border-top:1px solid #333;z-index:4;position:relative;max-height:40vh;overflow-y:auto}.draw-mode-selector{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid #444}.draw-mode-selector label{color:#fff;font-weight:600;white-space:nowrap}.mode-options{display:flex;gap:.5rem}.mode-btn{padding:.5rem 1rem;background-color:#ffffff1a;color:#fff;border:2px solid transparent;border-radius:4px;cursor:pointer;font-weight:600;transition:all .2s ease;white-space:nowrap}.mode-btn:hover{background-color:#fff3;transform:translateY(-2px)}.mode-btn.selected{background-color:#1890ff;border-color:#40a9ff;box-shadow:0 0 8px #1890ff80}.eraser-btn{background:linear-gradient(135deg,#f0f0f0,#d0d0d0)!important;font-size:18px;display:flex;align-items:center;justify-content:center;border:2px solid #999!important}.eraser-btn.selected{background:linear-gradient(135deg,#fff,#e0e0e0)!important;border-color:#fff!important;box-shadow:0 0 8px #fffc!important}.stencils{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.stencils label{color:#fff;font-weight:600;white-space:nowrap}.stencil-options{display:flex;gap:.5rem;flex-wrap:wrap}.stencil-btn{width:40px;height:40px;background-color:#ffffff1a;border:2px solid transparent;border-radius:4px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;color:#fff;padding:5px}.stencil-btn:hover{transform:scale(1.1);border-color:#fff;background-color:#fff3}.stencil-btn.selected{border-color:#1890ff;box-shadow:0 0 8px #1890ff80;transform:scale(1.15);background-color:#1890ff4d}.stencil-btn svg{width:100%;height:100%}.app{min-height:100vh;display:flex;flex-direction:column;background-color:var(--bg-color, #f5f5f5)}.header{background-color:var(--primary-color, #1890ff);color:#fff;padding:1rem;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 8px #0000001a;position:sticky;top:0;z-index:100}.header-title{margin:0;font-size:1.3rem;font-weight:600;flex:1}.user-info{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.user-name{font-size:.9rem}.token-balance{font-size:.9rem;padding:.4rem .8rem;background-color:#fff3;border-radius:4px}.logout-btn{padding:.4rem .8rem;border:none;border-radius:4px;background-color:#fff3;color:#fff;cursor:pointer;font-weight:500;transition:background-color .3s ease}.logout-btn:hover{background-color:#ffffff4d}.main-content{flex:1;display:flex;flex-direction:column}.login-btn{padding:.6rem 1.2rem;border:none;border-radius:4px;background-color:var(--primary-color, #1890ff);color:#fff;cursor:pointer;font-weight:500;transition:all .3s ease;font-size:.95rem}.login-btn:hover:not(:disabled){opacity:.9;transform:translateY(-2px);box-shadow:0 2px 8px #1890ff4d}.login-form{width:100%}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;color:var(--text-color, #262626);font-weight:500}.form-input{width:100%;padding:.75rem;border:1px solid var(--border-color, #d9d9d9);border-radius:4px;font-size:1rem;transition:border-color .3s ease;box-sizing:border-box}.form-input:focus{outline:none;border-color:var(--primary-color, #1890ff);box-shadow:0 0 0 2px #1890ff33}.error-message{color:#ff4d4f;padding:.75rem;margin-bottom:1.5rem;background-color:#fff1f0;border:1px solid #ffccc7;border-radius:4px;font-size:.95rem}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:#fff;border-radius:8px;padding:2rem;max-width:400px;width:100%;position:relative;box-shadow:0 4px 16px #00000026}.modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-muted, #8c8c8c);transition:color .3s ease}.modal-close:hover{color:var(--text-color, #262626)}.modal-title{margin:0 0 .5rem;font-size:1.3rem;font-weight:600;color:var(--text-color, #262626)}.modal-subtitle{margin:0 0 1.5rem;color:var(--text-muted, #8c8c8c)}@media (max-width: 768px){.header{flex-direction:column;gap:1rem;padding:.75rem}.header-title{font-size:1.1rem;width:100%;text-align:center}.user-info{width:100%;justify-content:center;gap:.75rem}.user-name,.token-balance{font-size:.8rem}.logout-btn{padding:.3rem .6rem;font-size:.8rem}}@media (max-width: 480px){.header{padding:.5rem;gap:.75rem}.header-title{font-size:1rem}.user-info{gap:.5rem}.modal-content{padding:1.5rem;max-width:90%}.modal-title{font-size:1.1rem}}:root{--primary-color: #1890ff;--success-color: #52c41a;--error-color: #ff4d4f;--warning-color: #faad14;--text-color: #262626;--text-light: #8c8c8c;--border-color: #d9d9d9;--bg-color: #fafafa}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--text-color);background-color:var(--bg-color)}#root{min-height:100vh;display:flex;flex-direction:column}.app{display:flex;flex-direction:column;min-height:100vh}.header{background-color:#fff;padding:1rem 2rem;box-shadow:0 1px 4px #00000014;display:flex;justify-content:space-between;align-items:center}.header h1{font-size:1.5rem;font-weight:600;color:var(--primary-color)}.user-info{display:flex;align-items:center;gap:1rem}.user-name{color:var(--text-light);font-size:.875rem}.token-balance{background-color:var(--primary-color);color:#fff;padding:.5rem 1rem;border-radius:4px;font-size:.875rem;font-weight:500}.login-btn,.logout-btn{padding:.5rem 1.5rem;border:none;border-radius:4px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .3s ease}.login-btn{background-color:var(--primary-color);color:#fff}.login-btn:hover:not(:disabled){background-color:#0050b3}.login-btn:disabled{opacity:.6;cursor:not-allowed}.logout-btn{background-color:var(--error-color);color:#fff}.logout-btn:hover{background-color:#d9363e}.main-content{flex:1;padding:2rem;max-width:1200px;margin:0 auto;width:100%}.dashboard,.login-prompt{background-color:#fff;padding:2rem;border-radius:8px;box-shadow:0 1px 4px #00000014}.dashboard h2,.login-prompt h2{color:var(--text-color);margin-bottom:1rem;font-size:1.25rem}.dashboard p,.login-prompt p{color:var(--text-light);line-height:1.6}.footer{background-color:#fff;padding:1.5rem 2rem;text-align:center;border-top:1px solid var(--border-color);color:var(--text-light);font-size:.875rem}@media (max-width: 768px){.header{flex-direction:column;gap:1rem;align-items:flex-start}.header h1{font-size:1.25rem}.user-info{width:100%;justify-content:space-between}.main-content{padding:1rem}.dashboard,.login-prompt{padding:1.5rem}}
