.page { height: 100vh; box-sizing: border-box; padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; background: var(--bg); color: var(--text); overflow: auto; } .toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; } .addRow { display: flex; flex: 1; gap: 8px; min-width: 220px; } .addRow > :first-child { flex: 1; } .sectionLabel { font-size: var(--text-xs); font-weight: 800; letter-spacing: 0.06em; color: var(--text2); text-transform: uppercase; } .queue { display: flex; flex-direction: row; align-items: flex-start; gap: 12px; overflow-x: auto; overflow-y: visible; padding: 8px 4px 12px; min-height: 160px; } .empty { color: var(--text2); font-size: var(--text-sm); padding: 12px 4px; } .slot { position: relative; flex: 0 0 auto; width: 110px; display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 8px 6px; border-radius: var(--radius-sm); border: 1px solid transparent; background: transparent; cursor: grab; user-select: none; overflow: visible; } .slot:active { cursor: grabbing; } .slotActive { border-color: rgba(245, 197, 66, 0.55); background: rgba(245, 197, 66, 0.08); } .slotActive .avatar { border-color: #f5c542; box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.45), 0 0 12px rgba(245, 197, 66, 0.45); } .avatar { width: 64px; height: 64px; border-radius: 50%; border: 3px solid #3f3f46; overflow: hidden; display: flex; align-items: center; justify-content: center; background: #18181b; flex-shrink: 0; } .avatarImg { width: 100%; height: 100%; object-fit: cover; } .letter { font-size: 26px; font-weight: 800; color: #f8fafc; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.45); } .slotName { width: 100%; text-align: center; font-size: 12px; font-weight: 700; line-height: 1.2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .slotActions { display: flex; gap: 4px; } .miniBtn { appearance: none; width: 22px; height: 22px; border-radius: 6px; border: 1px solid var(--stroke); background: var(--color-overlay-dark-3, rgba(0, 0, 0, 0.35)); color: var(--text); cursor: pointer; font-size: 14px; line-height: 1; display: inline-flex; align-items: center; justify-content: center; } .miniBtn:hover { border-color: var(--accent, #a78bfa); } .conditionMenu { position: fixed; z-index: 10000; box-sizing: border-box; padding: 6px; border-radius: var(--radius-sm); border: 1px solid var(--stroke); background: var(--bg-elevated, #111827); box-shadow: 0 10px 28px rgba(0, 0, 0, 0.45); overflow-x: hidden; overflow-y: auto; } .conditionItem { display: block; width: 100%; text-align: left; appearance: none; border: none; background: transparent; color: var(--text); padding: 6px 8px; border-radius: 6px; cursor: pointer; font-size: 13px; } .conditionItem:hover { background: rgba(255, 255, 255, 0.06); } .conditionEmpty { color: var(--text2); font-size: 12px; padding: 6px 8px; } .reserve { display: flex; flex-direction: column; gap: 6px; padding-bottom: 8px; } .reserveRow { display: flex; align-items: center; gap: 10px; padding: 6px 8px; border-radius: var(--radius-sm); border: 1px solid var(--stroke); background: var(--color-overlay-dark-3, rgba(0, 0, 0, 0.25)); } .reserveRow .avatar { width: 36px; height: 36px; border-width: 2px; } .reserveRow .letter { font-size: 16px; } .reserveName { flex: 1; font-size: var(--text-sm); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }