* { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%); min-height: 100vh; color: #e4e4e7; } .app { min-height: 100vh; padding: 1rem; } header { text-align: center; padding: 1rem; margin-bottom: 1rem; } header h1 { font-size: 2rem; font-weight: 700; background: linear-gradient(90deg, #818cf8, #c084fc); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .board { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; max-width: 1400px; margin: 0 auto; padding: 0 1rem; } @media (max-width: 1200px) { .board { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 600px) { .board { grid-template-columns: 1fr; } } .column { background: rgba(255, 255, 255, 0.05); border-radius: 12px; padding: 1rem; min-height: 400px; display: flex; flex-direction: column; border: 1px solid rgba(255, 255, 255, 0.1); transition: background 0.2s, border-color 0.2s; } .column-over { background: rgba(129, 140, 248, 0.1); border-color: rgba(129, 140, 248, 0.3); } .column-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; padding-bottom: 0.75rem; border-bottom: 1px solid rgba(255, 255, 255, 0.1); } .column-header h2 { font-size: 1rem; font-weight: 600; } .task-count { background: rgba(255, 255, 255, 0.1); padding: 0.25rem 0.5rem; border-radius: 9999px; font-size: 0.75rem; font-weight: 500; } .tasks { flex: 1; display: flex; flex-direction: column; gap: 0.5rem; min-height: 100px; } .task-card { background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 8px; padding: 0.75rem; cursor: grab; transition: transform 0.15s, box-shadow 0.15s, background 0.15s; position: relative; } .task-card:hover { background: rgba(255, 255, 255, 0.12); transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); } .task-card:active { cursor: grabbing; } .task-card-overlay { box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4); transform: rotate(3deg); } .task-card p { font-size: 0.875rem; line-height: 1.4; word-break: break-word; } .task-actions { position: absolute; top: 0.5rem; right: 0.5rem; display: none; gap: 0.25rem; } .task-card:hover .task-actions { display: flex; } .task-actions button { background: rgba(0, 0, 0, 0.3); border: none; border-radius: 4px; padding: 0.25rem; cursor: pointer; font-size: 0.75rem; opacity: 0.7; transition: opacity 0.15s; } .task-actions button:hover { opacity: 1; } .task-edit { display: flex; gap: 0.5rem; } .task-edit input { flex: 1; padding: 0.5rem; border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 4px; background: rgba(0, 0, 0, 0.2); color: inherit; font-size: 0.875rem; } .task-edit button { padding: 0.5rem 0.75rem; background: #818cf8; color: white; border: none; border-radius: 4px; cursor: pointer; font-size: 0.75rem; } .add-task-btn { width: 100%; padding: 0.75rem; background: transparent; border: 1px dashed rgba(255, 255, 255, 0.2); border-radius: 8px; color: rgba(255, 255, 255, 0.5); cursor: pointer; font-size: 0.875rem; transition: border-color 0.15s, color 0.15s; margin-top: auto; } .add-task-btn:hover { border-color: rgba(255, 255, 255, 0.4); color: rgba(255, 255, 255, 0.8); } .add-task-form { display: flex; flex-direction: column; gap: 0.5rem; margin-top: auto; } .add-task-form input { width: 100%; padding: 0.75rem; border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 8px; background: rgba(0, 0, 0, 0.2); color: inherit; font-size: 0.875rem; } .add-task-form input:focus { outline: none; border-color: #818cf8; } .form-actions { display: flex; gap: 0.5rem; } .form-actions button { flex: 1; padding: 0.5rem; border: none; border-radius: 6px; cursor: pointer; font-size: 0.875rem; font-weight: 500; transition: opacity 0.15s; } .form-actions button[type="submit"] { background: #818cf8; color: white; } .form-actions button[type="button"] { background: rgba(255, 255, 255, 0.1); color: rgba(255, 255, 255, 0.7); } .form-actions button:hover { opacity: 0.9; }