*{box-sizing:border-box;margin:0;padding:0}body{font-family:sans-serif;background:#1a1a2e;color:#eee;-webkit-tap-highlight-color:transparent}button,a,input,select,textarea{touch-action:manipulation}.app{max-width:600px;margin:0 auto;padding:16px;min-height:100vh}header{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid #333;margin-bottom:16px}header h1{font-size:1.8rem}.user-info{font-size:.85rem;color:#aaa}.center-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:12px;text-align:center}.spinner{width:36px;height:36px;border:3px solid #333;border-top-color:#0f3460;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.waiting-icon{font-size:3rem}.waiting-hint{color:#888;margin-top:4px}.waiting-name{font-size:.95rem;color:#aaa}.join-wrap{display:flex;justify-content:center;padding-top:32px}.join-box{background:#16213e;padding:28px;border-radius:12px;min-width:300px;max-width:440px;width:100%;display:flex;flex-direction:column;gap:14px}.join-box h2{text-align:center}.join-hint{font-size:.85rem;color:#888;text-align:center}.join-box form{display:flex;flex-direction:column;gap:10px}.join-box input{padding:10px 14px;border-radius:8px;border:1px solid #333;background:#1a1a2e;color:#eee;font-size:16px;outline:none}.join-box input:focus{border-color:#0f3460}.join-box button{padding:10px;border-radius:8px;border:none;background:#0f3460;color:#eee;cursor:pointer;font-size:1rem}.join-box button:hover:not(:disabled){background:#1a4a80}.join-box button:disabled{opacity:.5;cursor:default}.error{color:#f88;font-size:.9rem}.tabs{display:flex;gap:8px;margin-bottom:16px}.tabs button{padding:8px 16px;border-radius:8px;border:1px solid #333;background:transparent;color:#aaa;cursor:pointer;font-size:.9rem}.tabs button.active{background:#0f3460;border-color:#0f3460;color:#eee}.badge{background:#e53935;color:#fff;border-radius:10px;padding:1px 6px;font-size:.72rem;margin-left:5px}.search-wrap{margin-bottom:12px}.search-input{width:100%;padding:10px 14px;border-radius:8px;border:1px solid #333;background:#16213e;color:#eee;font-size:16px;outline:none}.search-input:focus{border-color:#0f3460}.track-list{display:flex;flex-direction:column;gap:8px}.track-card{background:#16213e;border-radius:8px;padding:14px 16px;cursor:pointer}.track-card:hover{background:#0f3460}.track-title{font-size:1rem;font-weight:600}.track-artist{color:#aaa;font-size:.85rem;margin-top:3px}.request-card{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;background:#16213e;border-radius:8px;padding:12px 16px;margin-bottom:8px}.request-info{flex:1;min-width:0}.request-title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.request-artist{font-size:.85rem;color:#aaa;margin-top:2px}.request-status{flex-shrink:0;text-align:right}.status-badge{display:inline-block;padding:3px 10px;border-radius:12px;font-size:.78rem;font-weight:600}.status-badge.pending{background:#5a4000;color:#ffc107}.status-badge.queued{background:#0d3d1e;color:#4caf50}.status-badge.rejected{background:#3d0d0d;color:#f44336}.reject-reason{font-size:.78rem;color:#f44336;margin-top:4px;max-width:140px;word-break:break-word}.queue-card{display:flex;align-items:center;gap:12px;background:#16213e;border-radius:8px;padding:12px 16px;margin-bottom:8px}.queue-card.mine{border-left:3px solid #4caf50}.queue-card.current{border-left:3px solid #ffc107}.queue-num{width:24px;text-align:center;font-size:.85rem;color:#666;flex-shrink:0}.queue-info{flex:1;min-width:0}.queue-title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.queue-artist{font-size:.85rem;color:#aaa;margin-top:2px}.mine-label{font-size:.75rem;color:#4caf50;flex-shrink:0}.empty{text-align:center;color:#666;padding:40px}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:#0f3460;padding:12px 24px;border-radius:8px;z-index:200;white-space:nowrap}@media (max-width: 480px){.app{padding:12px}header h1{font-size:1.4rem}.tabs button{padding:10px 12px;font-size:.85rem}.track-card{padding:16px}.join-box{padding:20px;min-width:auto}.toast{max-width:calc(100vw - 32px);white-space:normal;text-align:center}}@media (min-width: 768px){.app{padding:24px}}
