diff --git a/app.py b/app.py
index 807be11..cc962ca 100644
--- a/app.py
+++ b/app.py
@@ -4,7 +4,7 @@ Simple Tablet Lending and Return Management Web Application
with SQLite backend
"""
-from flask import Flask, render_template, request, redirect, url_for, flash
+from flask import Flask, render_template, request, redirect, url_for, flash, make_response, session
import sqlite3
import os
from datetime import datetime
@@ -25,15 +25,41 @@ app.config['BABEL_TRANSLATION_DIRECTORIES'] = 'translations'
# Locale selector function
def get_locale():
- # Try to get language from URL parameter
- lang = request.args.get('lang')
+ # Try to get language from cookie
+ lang = request.cookies.get('language')
if lang and lang in app.config['LANGUAGES']:
return lang
# Try to get from session
if hasattr(request, 'session') and 'language' in request.session:
return request.session['language']
- # Try to get from browser preferences
- return request.accept_languages.best_match(app.config['LANGUAGES'].keys())
+ # Default to Spanish (es) for internal app
+ return 'es'
+
+
+# Before request handler to set language from URL param and persist to cookie/session
+@app.before_request
+def handle_language():
+ lang = request.args.get('lang')
+ if lang and lang in app.config['LANGUAGES']:
+ # Store in session
+ session['language'] = lang
+ # Set cookie for longer persistence (1 year)
+ # Note: We need to use response.set_cookie, but before_request can't modify response
+ # So we'll handle this in a separate route
+ return None
+
+
+# Language switcher endpoint
+@app.route('/set_language')
+def set_language():
+ lang = request.args.get('lang')
+ if lang and lang in app.config['LANGUAGES']:
+ session['language'] = lang
+ # Set cookie
+ resp = make_response(redirect(request.referrer or '/'))
+ resp.set_cookie('language', lang, max_age=31536000) # 1 year
+ return resp
+ return redirect(request.referrer or '/')
# Initialize Babel with locale selector
babel = Babel(app, locale_selector=get_locale)
diff --git a/docs/CORPORATE_DESIGN.md b/docs/CORPORATE_DESIGN.md
new file mode 100644
index 0000000..eae6bed
--- /dev/null
+++ b/docs/CORPORATE_DESIGN.md
@@ -0,0 +1,176 @@
+# Corporate Design Specifications
+
+## Overview
+
+This document defines the corporate design specifications for the Tablet Management System, including color palette, logo usage, and branding guidelines.
+
+---
+
+## Color Palette
+
+### Primary Corporate Colors
+
+The following three colors constitute the official corporate color palette:
+
+| Color Name | Hex Code | RGB | Usage |
+|------------|----------|-----|-------|
+| **Cobalt Blue** | `#1338BE` | rgb(19, 56, 190) | Primary brand color, headers, navigation, main actions |
+| **Tiger Orange** | `#FC6A03` | rgb(252, 106, 3) | Accents, highlights, loading indicators, secondary actions |
+| **Emerald Green** | `#028A0F` | rgb(2, 138, 15) | Success states, positive feedback, confirmation |
+
+### Color Shades
+
+Each corporate color has been extended with a full shade range (50-900) for use in Tailwind CSS:
+
+#### Cobalt Blue Shades
+- `cobalt-50`: `#f0f5ff` (Lightest)
+- `cobalt-100`: `#e0eaff`
+- `cobalt-200`: `#b3c6ff`
+- `cobalt-300`: `#80a0ff`
+- `cobalt-400`: `#4d7aff`
+- **`cobalt-500`: `#1338BE`** (Primary)
+- `cobalt-600`: `#0f2a9c`
+- `cobalt-700`: `#0b1f72`
+- `cobalt-800`: `#081552`
+- `cobalt-900`: `#060f38` (Darkest)
+
+#### Tiger Orange Shades
+- `tiger-50`: `#fff8f0` (Lightest)
+- `tiger-100`: `#ffe8d6`
+- `tiger-200`: `#ffccab`
+- `tiger-300`: `#ffae80`
+- `tiger-400`: `#ff8c55`
+- **`tiger-500`: `#FC6A03`** (Primary)
+- `tiger-600`: `#e05a00`
+- `tiger-700`: `#b84500`
+- `tiger-800`: `#8c3300`
+- `tiger-900`: `#662500` (Darkest)
+
+#### Emerald Green Shades
+- `emerald-50`: `#f0fdf4` (Lightest)
+- `emerald-100`: `#dcfce7`
+- `emerald-200`: `#bbf7d0`
+- `emerald-300`: `#86efac`
+- `emerald-400`: `#4ade80`
+- **`emerald-500`: `#028A0F`** (Primary)
+- `emerald-600`: `#006b0c`
+- `emerald-700`: `#005209`
+- `emerald-800`: `#003d07`
+- `emerald-900`: `#002904` (Darkest)
+
+---
+
+## Logo Usage
+
+### Logo File
+- **File**: `assets/Schamann.png`
+- **Dimensions**: 175 x 161 pixels
+- **Format**: PNG with transparency
+- **Web Path**: `/static/Schamann.png`
+
+### Display Guidelines
+- The logo should be displayed at a fixed height of 40px in the header
+- Use `object-contain` to maintain aspect ratio
+- The logo should appear to the left of the application title
+- Do not stretch or distort the logo
+
+### Implementation
+```html
+
+```
+
+---
+
+## Usage Examples
+
+### Headers and Navigation
+```html
+
+
+
+
+