.shortkey-container { overflow-y: auto; padding: 1.5rem; min-height: 100vh; color: var(--color-text-primary); background: var(--color-background-secondary); scrollbar-width: none; -ms-overflow-style: none; } .shortkey-container::-webkit-scrollbar { display: none; } /* Header */ .shortkey-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; border: 1px solid var(--color-border); border-radius: var(--radius-lg); padding: 1.5rem; background: var(--color-surface); box-shadow: 0 2px 8px rgb(0 0 0 / 10%); } .header-content { display: flex; align-items: center; gap: 1rem; } .header-icon { color: var(--color-accent); } .shortkey-header h1 { margin: 0; font-size: 1.5rem; font-weight: 600; color: var(--color-text-primary); } .shortkey-header p { margin: 0; font-size: 0.875rem; color: var(--color-text-secondary); } /* Card */ .shortkey-card { overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-background-primary); box-shadow: 0 2px 8px var(--color-border); } /* Table */ .table-container { overflow-x: auto; } .shortkey-table { width: 100%; border-collapse: collapse; background: transparent; } .shortkey-table th { border-bottom: 1px solid var(--color-border); padding: 1rem; font-size: 0.875rem; font-weight: 600; text-align: left; color: var(--color-text-primary); background: var(--color-background-tertiary); } .shortkey-table td { border-bottom: 1px solid var(--color-border-secondary); padding: 1rem; vertical-align: middle; } .table-row:hover { background: var(--color-background-tertiary); } .table-row:last-child td { border-bottom: none; } /* Table Cells */ .name-cell { width: 25%; font-weight: 500; color: var(--color-text-primary); } .key-cell { width: 20%; } .key-binding { display: flex; align-items: center; } .key-display { border: 1px solid var(--color-border); border-radius: var(--radius-sm); padding: 0.25rem 0.5rem; font-size: 0.75rem; font-family: monospace; color: var(--color-text-primary); background: var(--color-background-tertiary); box-shadow: 0 1px 2px rgb(0 0 0 / 10%); } .no-binding { font-size: 0.875rem; color: var(--color-text-secondary); font-style: italic; } .status-cell { width: 15%; } .status-badge { display: inline-block; border-radius: var(--radius-lg); padding: 0.25rem 0.75rem; font-size: 0.75rem; font-weight: 500; } .status-enabled { border: 1px solid rgb(103 194 58 / 20%); color: var(--color-success); background: rgb(103 194 58 / 10%); } .status-disabled { border: 1px solid rgb(245 108 108 / 20%); color: var(--color-danger); background: rgb(245 108 108 / 10%); } .source-cell { width: 15%; } .source-name { font-size: 0.875rem; color: var(--color-text-secondary); } .actions-cell { width: 25%; } .action-buttons { display: flex; gap: 0.5rem; align-items: center; } /* Buttons */ .btn { display: inline-flex; justify-content: center; align-items: center; border: none; border-radius: var(--radius-sm); padding: 0.5rem 0.875rem; min-width: fit-content; font-size: 0.75rem; font-weight: 500; text-decoration: none; transition: all 0.2s ease; gap: 0.375rem; cursor: pointer; } .btn:disabled { opacity: 0.5; cursor: not-allowed; } .btn:hover:not(:disabled) { transform: translateY(-1px); box-shadow: 0 4px 8px rgb(0 0 0 / 15%); } .btn-sm { padding: 0.375rem 0.75rem; font-size: 0.75rem; } .btn-primary { color: white; background: var(--color-accent); } .btn-primary:hover:not(:disabled) { background: var(--color-accent-hover); } .btn-secondary { border: 1px solid var(--color-border); color: var(--color-text-primary); background: var(--color-background-tertiary); } .btn-secondary:hover:not(:disabled) { border-color: var(--color-accent); background: var(--color-background-secondary); } .btn-success { color: white; background: var(--color-success); } .btn-success:hover:not(:disabled) { background: var(--color-success); } .btn-danger { color: white; background: var(--color-danger); } .btn-danger:hover:not(:disabled) { background: var(--color-danger); } /* Modal */ .modal-overlay { position: fixed; inset: 0; z-index: 1000; display: flex; justify-content: center; align-items: center; padding: 1rem; background: rgb(0 0 0 / 50%); } .modal-content { overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-lg); width: 100%; max-width: 500px; max-height: 90vh; background: var(--color-background-primary); box-shadow: 0 20px 25px -5px rgb(0 0 0 / 10%), 0 10px 10px -5px rgb(0 0 0 / 4%); } .modal-header { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--color-border-secondary); padding: 1.5rem; } .modal-title { margin: 0; font-size: 1.125rem; font-weight: 600; color: var(--color-text-primary); } .modal-close { display: flex; justify-content: center; align-items: center; border: none; border-radius: var(--radius-sm); width: 32px; height: 32px; color: var(--color-text-secondary); background: var(--color-background-tertiary); transition: all 0.2s ease; cursor: pointer; } .modal-close:hover { color: var(--color-text-primary); background: var(--color-background-secondary); } .modal-body { padding: 1.5rem; } .modal-footer { display: flex; justify-content: flex-end; border-top: 1px solid var(--color-border-secondary); padding: 1rem 1.5rem; background: var(--color-background-tertiary); gap: 0.75rem; } /* Form Elements */ .form-group { margin-bottom: 1rem; } .form-group label { display: block; margin-bottom: 0.5rem; font-size: 0.875rem; font-weight: 500; color: var(--color-text-primary); } .form-input { border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: 0.75rem; width: 100%; font-size: 0.875rem; color: var(--color-text-primary); background: var(--color-background-primary); transition: all 0.2s ease; box-sizing: border-box; } .form-input:focus { border-color: var(--color-accent); outline: none; box-shadow: 0 0 0 2px rgb(64 158 255 / 20%); } .key-input { font-family: monospace; font-weight: 600; text-align: center; letter-spacing: 0.5px; } .input-hint { margin-top: 0.5rem; font-size: 0.75rem; text-align: center; color: var(--color-text-secondary); } /* Responsive Design */ @media (width <= 768px) { .shortkey-container { padding: 1rem; } .shortkey-header { flex-direction: column; align-items: flex-start; gap: 1rem; } .table-container { overflow-x: auto; } .shortkey-table th, .shortkey-table td { padding: 0.75rem 0.5rem; } .action-buttons { flex-direction: column; gap: 0.25rem; } .btn-sm { padding: 0.25rem 0.5rem; font-size: 0.7rem; } .modal-content { margin: 1rem; } .modal-header, .modal-body, .modal-footer { padding: 1rem; } } @media (width <= 480px) { .shortkey-container { padding: 0.75rem; } .shortkey-header h1 { font-size: 1.25rem; } .shortkey-table { font-size: 0.875rem; } .shortkey-table th, .shortkey-table td { padding: 0.5rem 0.375rem; } } /* Focus styles for accessibility */ .btn:focus-visible, .modal-close:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; } .form-input:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }