- Add order field to all columns in DEFAULT_SETTINGS (1-47)
- Settings page: reorder columns via numeric input or up/down arrows, autosave after 400ms
- Estimator table: render columns in order specified by order field, refresh on settings updates
- Normalize column orders on load and realtime updates with fallback for missing order
- Add logging to trace column order changes through settings and estimator pages
- Reset button reinitializes all settings to defaults with proper column ordering
- Table reload prevents concurrent requests to avoid PocketBase auto-cancellation
- Created estimatortable.html with 47 columns displaying Job_Info_TestEnv data
- Implemented frozen first two columns (Job_Number, Job_Full_Name) with sticky positioning
- Implemented frozen header row with proper z-index layering
- Added proper scrolling (vertical and horizontal within table container)
- Applied .cursorrules formatting: dates in Central Time (MM/dd/yyyy), booleans as checkboxes
- Implemented calculated fields: Due_Date_Counter with business logic, Active field read-only
- Made boolean fields editable with PocketBase updates (except Active)
- Created appsettings.html for comprehensive table configuration
- Added global settings: row height, font size, striped rows
- Added per-column settings: width, visibility, read-only status
- Added dropdown choice configuration with color pickers and font styles for Job_Status
- Settings save/load from app_preferences_settings collection
- Fixed column position mapping with COLUMN_ORDER array for correct visibility and width application
- Fixed horizontal scroll by calculating total table width dynamically
- Added server routes for /estimatortable.html and /appsettings.html
- Updated port to 6500 with improved console output