diff --git a/static/style.css b/static/style.css index 5f04e6b..007a48e 100644 --- a/static/style.css +++ b/static/style.css @@ -1,41 +1,57 @@ -/* ── Frankenbot Dark Theme v2 ──────────────────────────────────────────────── */ +/* ── Frankenbot Modern Design v3 ───────────────────────────────────────────── */ -@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap'); +@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap'); :root { - --bg-base: #080b12; - --bg-surface: #0f1320; - --bg-elevated: #181d2e; - --bg-hover: #1f2640; - --bg-glass: rgba(15,19,32,.7); - --accent: #7c6fff; - --accent-light: #a89eff; - --accent-dim: #4a45a0; - --accent-glow: rgba(124,111,255,.3); - --accent2: #06d6a0; - --accent2-glow: rgba(6,214,160,.25); - --success: #06d6a0; - --warning: #fbbf24; - --danger: #f43f5e; - --info: #38bdf8; - --text-primary: #e8eaf6; - --text-secondary: #94a3b8; - --text-muted: #4e5a72; - --border: rgba(255,255,255,.07); - --border-accent: rgba(124,111,255,.35); - --shadow: 0 8px 32px rgba(0,0,0,.5); - --shadow-sm: 0 2px 12px rgba(0,0,0,.3); - --radius: 14px; - --radius-sm: 9px; - --radius-xs: 6px; - --transition: .18s cubic-bezier(.4,0,.2,1); + /* Modern Color Palette - Professional & Clean */ + --bg-base: #0a0e1a; + --bg-surface: #141825; + --bg-elevated: #1e2336; + --bg-hover: #2a3147; + --bg-glass: rgba(20,24,37,.85); - /* Agent Colors */ - --agent-orchestrator: #7c6fff; - --agent-researcher: #06d6a0; + /* Primary Brand Color - Elegant Purple/Blue */ + --accent: #6366f1; + --accent-light: #818cf8; + --accent-dim: #4f46e5; + --accent-glow: rgba(99,102,241,.25); + + /* Secondary - Modern Teal */ + --accent2: #14b8a6; + --accent2-glow: rgba(20,184,166,.2); + + /* Status Colors - Vibrant but Professional */ + --success: #10b981; + --warning: #f59e0b; + --danger: #ef4444; + --info: #3b82f6; + + /* Text Hierarchy */ + --text-primary: #f1f5f9; + --text-secondary: #cbd5e1; + --text-muted: #64748b; + + /* Borders & Shadows - Softer */ + --border: rgba(148,163,184,.1); + --border-accent: rgba(99,102,241,.3); + --shadow: 0 20px 50px rgba(0,0,0,.4); + --shadow-md: 0 10px 30px rgba(0,0,0,.3); + --shadow-sm: 0 4px 15px rgba(0,0,0,.2); + + /* Border Radius - More rounded */ + --radius: 16px; + --radius-sm: 12px; + --radius-xs: 8px; + + /* Smooth Transitions */ + --transition: .25s cubic-bezier(.4,0,.2,1); + + /* Agent Colors - Brighter, More Distinct */ + --agent-orchestrator: #8b5cf6; + --agent-researcher: #14b8a6; --agent-negotiator: #f43f5e; - --agent-ar_manager: #fbbf24; - --agent-default: #38bdf8; + --agent-ar_manager: #f59e0b; + --agent-default: #3b82f6; } /* ── Reset & Base ─────────────────────────────────────────────────────────── */ @@ -47,13 +63,16 @@ body { min-height: 100vh; background: var(--bg-base); background-image: - radial-gradient(ellipse 80% 50% at 50% -10%, rgba(124,111,255,.12) 0%, transparent 60%), - radial-gradient(ellipse 40% 30% at 90% 80%, rgba(6,214,160,.06) 0%, transparent 50%); + radial-gradient(ellipse 100% 60% at 50% -20%, rgba(99,102,241,.08) 0%, transparent 70%), + radial-gradient(ellipse 60% 40% at 10% 100%, rgba(20,184,166,.05) 0%, transparent 60%), + radial-gradient(ellipse 50% 50% at 90% 10%, rgba(139,92,246,.04) 0%, transparent 50%); color: var(--text-primary); - font-family: 'Inter', 'Segoe UI', system-ui, sans-serif; + font-family: 'Plus Jakarta Sans', 'Inter', system-ui, sans-serif; font-size: .9375rem; - line-height: 1.65; + line-height: 1.7; + font-weight: 400; -webkit-font-smoothing: antialiased; + letter-spacing: -0.01em; } /* ── Scrollbar ────────────────────────────────────────────────────────────── */ @@ -68,41 +87,46 @@ body { .navbar { background: var(--bg-glass) !important; border-bottom: 1px solid var(--border); - backdrop-filter: blur(20px); - -webkit-backdrop-filter: blur(20px); - padding: .6rem 0; + backdrop-filter: blur(24px) saturate(180%); + -webkit-backdrop-filter: blur(24px) saturate(180%); + padding: .8rem 0; position: sticky; top: 0; z-index: 1000; + box-shadow: 0 1px 3px rgba(0,0,0,.1); } .navbar-brand { font-weight: 700; - font-size: 1rem; + font-size: 1.125rem; color: var(--text-primary) !important; - letter-spacing: -.02em; + letter-spacing: -.03em; display: flex; align-items: center; - gap: .5rem; + gap: .625rem; text-decoration: none; + transition: transform var(--transition); +} + +.navbar-brand:hover { + transform: translateY(-1px); } .navbar-brand .brand-icon { - width: 28px; - height: 28px; - background: linear-gradient(135deg, var(--accent), var(--accent2)); - border-radius: 8px; + width: 32px; + height: 32px; + background: linear-gradient(135deg, var(--accent) 0%, var(--accent2) 100%); + border-radius: 10px; display: flex; align-items: center; justify-content: center; - font-size: .75rem; - box-shadow: 0 0 16px var(--accent-glow); - animation: brand-pulse 3s ease-in-out infinite; + font-size: .875rem; + box-shadow: 0 4px 12px var(--accent-glow); } @keyframes brand-pulse { - 0%, 100% { box-shadow: 0 0 16px var(--accent-glow); } - 50% { box-shadow: 0 0 28px var(--accent-glow), 0 0 8px var(--accent2-glow); } + 0%, 100% { box-shadow: 0 4px 12px var(--accent-glow); } + 50% { box-shadow: 0 6px 20px var(--accent-glow); } } .nav-link { @@ -177,22 +201,24 @@ body { .card { background: var(--bg-surface); - border: 1px solid var(--border); + border: 1px solid rgba(148,163,184,.12); border-radius: var(--radius); - box-shadow: var(--shadow-sm); + box-shadow: 0 4px 20px rgba(0,0,0,.15), 0 0 0 1px rgba(99,102,241,.03); color: var(--text-primary); - transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition); + transition: all var(--transition); overflow: hidden; + backdrop-filter: blur(10px); } .card:hover { - border-color: rgba(124,111,255,.2); - box-shadow: var(--shadow); + border-color: rgba(99,102,241,.25); + box-shadow: 0 8px 30px rgba(0,0,0,.25), 0 0 0 1px rgba(99,102,241,.1); + transform: translateY(-2px); } .card-header { - background: var(--bg-elevated) !important; - border-bottom: 1px solid var(--border) !important; + background: linear-gradient(135deg, var(--bg-elevated) 0%, var(--bg-surface) 100%) !important; + border-bottom: 1px solid rgba(148,163,184,.1) !important; color: var(--text-primary) !important; padding: .85rem 1.25rem; font-weight: 600; @@ -293,26 +319,28 @@ body { } .btn-primary { - background: linear-gradient(135deg, var(--accent), #6058d0); + background: linear-gradient(135deg, var(--accent) 0%, var(--accent-dim) 100%); color: #fff; - box-shadow: 0 2px 12px rgba(124,111,255,.3); + box-shadow: 0 4px 14px rgba(99,102,241,.35), 0 2px 4px rgba(99,102,241,.2); + font-weight: 600; } .btn-primary:hover { - background: linear-gradient(135deg, var(--accent-light), var(--accent)); - box-shadow: 0 4px 20px rgba(124,111,255,.45); - transform: translateY(-1px); + background: linear-gradient(135deg, var(--accent-light) 0%, var(--accent) 100%); + box-shadow: 0 6px 20px rgba(99,102,241,.5), 0 2px 6px rgba(99,102,241,.3); + transform: translateY(-2px); color: #fff; } .btn-success { - background: linear-gradient(135deg, #059669, var(--success)); + background: linear-gradient(135deg, #0d9488 0%, var(--success) 100%); color: #fff; - box-shadow: 0 2px 12px rgba(6,214,160,.25); + box-shadow: 0 4px 14px rgba(16,185,129,.3); + font-weight: 600; } .btn-success:hover { - background: linear-gradient(135deg, #06d6a0, #059669); - box-shadow: 0 4px 20px rgba(6,214,160,.4); - transform: translateY(-1px); + background: linear-gradient(135deg, var(--accent2) 0%, #0d9488 100%); + box-shadow: 0 6px 20px rgba(20,184,166,.45); + transform: translateY(-2px); color: #fff; } @@ -386,22 +414,25 @@ body { .form-control, .form-select { - background: var(--bg-elevated); - border: 1px solid var(--border); + background: rgba(30,35,54,.6); + border: 1.5px solid rgba(148,163,184,.15); border-radius: var(--radius-sm); color: var(--text-primary); - padding: .55rem .9rem; + padding: .625rem 1rem; font-size: .875rem; - transition: border-color var(--transition), box-shadow var(--transition); + font-weight: 500; + transition: all var(--transition); + backdrop-filter: blur(8px); } .form-control:focus, .form-select:focus { - background: var(--bg-elevated); + background: rgba(30,35,54,.8); border-color: var(--accent); - box-shadow: 0 0 0 3px var(--accent-glow); + box-shadow: 0 0 0 4px rgba(99,102,241,.12), 0 2px 8px rgba(99,102,241,.2); color: var(--text-primary); outline: none; + transform: translateY(-1px); } .form-control::placeholder { color: var(--text-muted); } @@ -458,21 +489,24 @@ textarea.form-control { resize: vertical; min-height: 80px; } /* ── Badges ───────────────────────────────────────────────────────────────── */ .badge { - padding: .28em .65em; - border-radius: 5px; - font-size: .68rem; + padding: .35em .75em; + border-radius: 8px; + font-size: .7rem; font-weight: 600; - letter-spacing: .05em; + letter-spacing: .04em; text-transform: uppercase; + display: inline-flex; + align-items: center; + gap: .25rem; } -.bg-primary { background: rgba(124,111,255,.25) !important; color: var(--accent-light) !important; border: 1px solid rgba(124,111,255,.3); } -.bg-success { background: rgba(6,214,160,.2) !important; color: #34d399 !important; border: 1px solid rgba(6,214,160,.3); } -.bg-warning { background: rgba(251,191,36,.2) !important; color: #fbbf24 !important; border: 1px solid rgba(251,191,36,.3); } -.bg-danger { background: rgba(244,63,94,.2) !important; color: #f87171 !important; border: 1px solid rgba(244,63,94,.3); } -.bg-info { background: rgba(56,189,248,.2) !important; color: #38bdf8 !important; border: 1px solid rgba(56,189,248,.3); } -.bg-secondary { background: var(--bg-elevated) !important; color: var(--text-muted) !important; border: 1px solid var(--border); } -.bg-dark { background: rgba(0,0,0,.4) !important; color: var(--text-secondary) !important; border: 1px solid var(--border); } +.bg-primary { background: rgba(99,102,241,.2) !important; color: #a5b4fc !important; border: 1px solid rgba(99,102,241,.35); box-shadow: 0 2px 8px rgba(99,102,241,.15); } +.bg-success { background: rgba(16,185,129,.2) !important; color: #6ee7b7 !important; border: 1px solid rgba(16,185,129,.35); box-shadow: 0 2px 8px rgba(16,185,129,.15); } +.bg-warning { background: rgba(245,158,11,.2) !important; color: #fcd34d !important; border: 1px solid rgba(245,158,11,.35); box-shadow: 0 2px 8px rgba(245,158,11,.15); } +.bg-danger { background: rgba(239,68,68,.2) !important; color: #fca5a5 !important; border: 1px solid rgba(239,68,68,.35); box-shadow: 0 2px 8px rgba(239,68,68,.15); } +.bg-info { background: rgba(59,130,246,.2) !important; color: #93c5fd !important; border: 1px solid rgba(59,130,246,.35); box-shadow: 0 2px 8px rgba(59,130,246,.15); } +.bg-secondary { background: rgba(100,116,139,.15) !important; color: var(--text-secondary) !important; border: 1px solid rgba(100,116,139,.25); } +.bg-dark { background: rgba(15,23,42,.6) !important; color: var(--text-secondary) !important; border: 1px solid rgba(100,116,139,.2); } /* ── Alerts ───────────────────────────────────────────────────────────────── */