Create a web application for an IT department to track laptop and desktop checkouts to staff members. The app should use a SQLite database and have a retro/vintage aesthetic with a dark mode color scheme.

## Tech Stack
- Backend: Python Flask or Node.js Express
- Database: SQLite
- Frontend: HTML/CSS/JavaScript (vanilla or lightweight framework)

## Design Requirements
- **Retro aesthetic with dark mode** - think terminal green, amber, or phosphor monitor vibes, CRT scanlines, monospace fonts, vintage computer UI elements
- Clean, functional interface that's easy to use quickly
- **Fully mobile responsive** - must work seamlessly on iPad and tablets
- Touch-friendly UI elements (larger tap targets, appropriate spacing)

## Database Schema

### Devices Table
- `id` (primary key)
- `asset_tag` (required, unique)
- `serial_number` (required)
- `make` (required) - e.g., Dell, HP, Lenovo
- `model` (required) - e.g., Latitude 3450, Pro 14
- `hostname` (optional)
- `status` - available, pending, assigned, retired
- `created_at`
- `updated_at`

### People Table
- `id` (primary key)
- `name` (required)
- `location` (optional) - school/site
- `position` (optional) - job title/role
- `phone` (optional)
- `email` (optional)
- `created_at`

### Transactions Table (audit trail)
- `id` (primary key)
- `device_id` (foreign key)
- `person_id` (foreign key)
- `transaction_type` - check_out, check_in
- `status` - pending, completed
- `checkout_date`
- `return_date` (null until checked in)
- `condition_on_return` (optional) - excellent, good, fair, poor, damaged
- `notes` (optional)
- `it_signature` (base64 image data)
- `recipient_signature` (base64 image data)
- `it_signed_at` (timestamp)
- `recipient_signed_at` (timestamp)
- `created_at`

## Device Status Workflow

### Status Definitions
- **available** - Device is not assigned to anyone and can be checked out
- **pending** - IT has staged the checkout (assigned device to person), awaiting pickup and signatures
- **assigned** - Device has been picked up, both signatures collected, person is actively using it
- **retired** - Device is no longer available for checkout

### Check-Out Flow
1. **IT Stages Checkout**: IT staff selects device and person, fills out details, device status changes to `pending`
2. **Pickup & Signing**: When person arrives to pick up device:
   - Display checkout summary (device info, person info, any notes)
   - Recipient signs on signature pad
   - IT staff signs on signature pad
   - Both signatures required to complete
3. **Completion**: Once both signatures captured, device status changes to `assigned`

### Check-In Flow
1. IT locates the device (by asset tag or serial)
2. Record return condition
3. Add any notes about issues
4. Both recipient and IT sign to confirm return
5. Device status changes to `available`

## Signature Feature Requirements

### Signature Pad Component
- Canvas-based signature capture
- **Must support both touch (iPad/tablet) and mouse input**
- Clear button to reset signature
- Visual indicator when signature is empty vs captured
- Smooth line drawing with appropriate stroke width
- Save signatures as base64 PNG data

### Signature UI/UX
- Large signature area (minimum 300px height on mobile)
- Clear labels: "Recipient Signature" and "IT Staff Signature"
- Visual confirmation when signature is captured (checkmark or border change)
- Prevent form submission until both signatures are present
- Option to clear and redo each signature independently

### Pickup/Signing Page
- Dedicated page/modal for the signing process
- Shows device summary (asset tag, serial, make, model)
- Shows recipient info (name, location, position)
- Displays any checkout notes
- Two signature pads side by side (desktop) or stacked (mobile)
- Large, touch-friendly "Complete Checkout" button
- Cancel option to return to pending state

## Core Features

### Device Management
- Add new devices (asset tag, serial, make, model required; hostname optional)
- Edit device information
- View all devices with status indicators
- Search/filter devices by asset tag, serial number, model, or status
- Quick status filter tabs: All | Available | Pending | Assigned | Retired

### Staged Checkout (IT Creates Pending)
- Select available device (by asset tag or serial number search)
- Select or create person (name required; location/position optional)
- Add optional notes
- Save as pending - device not yet handed over
- Generates a pending transaction awaiting signatures

### Complete Checkout (Pickup with Signatures)
- View list of pending checkouts
- Select pending checkout to complete
- Display checkout summary
- Capture recipient signature (touch or mouse)
- Capture IT signature (touch or mouse)
- Both signatures required to finalize
- Device status changes from `pending` to `assigned`

### Check-In Process
- Find assigned device by asset tag or serial number
- Record return condition (dropdown: Excellent, Good, Fair, Poor, Damaged)
- Add optional notes about condition or issues
- Capture recipient signature confirming return
- Capture IT signature confirming receipt
- Device status changes to `available`

### Audit Trail / History
- **Device History View**: See complete checkout/check-in history for any device, including signatures
- **Person History View**: See all devices a person has checked out (past and current)
- **Global Transaction Log**: Chronological list of all transactions with filters
- Ability to view captured signatures in transaction details

### Import Feature
Import data from Excel (.xls/.xlsx) files with the following column mapping:
- Ticket # → can be ignored or stored as reference
- Name → person name
- Department → person location (map to location field)
- Phone → person phone
- Checkout Date → transaction date
- Return Date → return date (if present)
- Brand → device make
- Model → device model
- Serial # → device serial number
- Asset # → device asset tag

The import should:
- Create devices if they don't exist (match by asset tag or serial number)
- Create people if they don't exist (match by name)
- Create transaction records for the checkout/check-in
- Imported historical records can skip signature requirement (mark as legacy/imported)
- Handle rows with only checkout dates (set device to assigned) vs rows with both dates (completed transactions, device available)
- Show preview before importing
- Report any errors or duplicates

## UI Pages/Views

1. **Dashboard** - Quick stats (available, pending, assigned, retired counts), recent activity, pending pickups alert
2. **Devices List** - All devices with status indicators, search, filters, status tabs
3. **Stage Checkout** - Form to create a pending checkout
4. **Pending Pickups** - List of staged checkouts awaiting signature/pickup
5. **Complete Pickup** - Signature capture page for finalizing checkout
6. **Check In** - Form to check in a device with signatures
7. **Device Detail** - Single device view with full history and signature records
8. **People List** - All people who have borrowed devices
9. **Person Detail** - Single person view with their device history
10. **Transaction Log** - Full audit trail with date filters, signature viewing
11. **Import** - Upload and preview Excel import
12. **Settings/Admin** - Export data, manage dropdown options

## Mobile/iPad Responsive Requirements
- Fluid layouts that adapt from phone to tablet to desktop
- Touch-friendly buttons (minimum 44px tap targets)
- Signature pads scale appropriately on all screen sizes
- Tables convert to card layouts on smaller screens
- Navigation works as hamburger menu on mobile
- Forms stack vertically on narrow screens
- Signature capture works flawlessly with finger/stylus on iPad

## Retro Dark Mode Design Specifics
- Background: Near-black (#0a0a0a or #121212)
- Primary accent: Terminal green (#00ff00 or #33ff33) OR amber (#ffb000)
- Secondary text: Dimmed green/amber or gray
- Font: Monospace (IBM Plex Mono, Fira Code, or similar)
- Subtle CRT scanline overlay effect (CSS)
- Glowing text effects on headers
- Chunky borders, no rounded corners (or very minimal)
- ASCII-art style decorative elements optional
- Form inputs styled like terminal inputs
- Signature pad should have retro styling (green/amber drawing on dark background)
- Status badges with appropriate colors (green=available, yellow=pending, blue=assigned, gray=retired)