Spaces:
Sleeping
Sleeping
| /* ========================================= | |
| SaaS PRO THEME – DRAGONTECH STYLE | |
| Works with sidebar layout + dark mode | |
| ========================================= */ | |
| /* ---------- THEME TOKENS ---------- */ | |
| :root { | |
| --bg: #f4f5fb; | |
| --bg-alt: #ffffff; | |
| --text: #111827; | |
| --text-light: #6b7280; | |
| --border: #e5e7eb; | |
| --primary: #2563eb; | |
| --primary-soft: #dbeafe; | |
| --primary-hover: #1e40af; | |
| --danger: #dc2626; | |
| --danger-soft: #fee2e2; | |
| --success: #16a34a; | |
| --success-soft: #dcfce7; | |
| --warning: #f97316; | |
| --warning-soft: #ffedd5; | |
| --card-bg: #ffffff; | |
| --sidebar-bg: #020617; | |
| --sidebar-text: #cbd5e1; | |
| --sidebar-active: #111827; | |
| --chip-red: #fee2e2; | |
| --chip-red-text: #b91c1c; | |
| --chip-green: #dcfce7; | |
| --chip-green-text: #166534; | |
| --chip-blue: #dbeafe; | |
| --chip-blue-text: #1d4ed8; | |
| --shadow-soft: 0 18px 40px rgba(15, 23, 42, 0.12); | |
| } | |
| html[data-theme="dark"] { | |
| --bg: #020617; | |
| --bg-alt: #020617; | |
| --text: #e5e7eb; | |
| --text-light: #9ca3af; | |
| --border: #1f2933; | |
| --card-bg: #020617; | |
| --sidebar-bg: #020617; | |
| --sidebar-text: #cbd5e1; | |
| --sidebar-active: #0b1120; | |
| --shadow-soft: 0 18px 40px rgba(0, 0, 0, 0.6); | |
| } | |
| /* ---------- RESET ---------- */ | |
| *, | |
| *::before, | |
| *::after { | |
| box-sizing: border-box; | |
| } | |
| body { | |
| margin: 0; | |
| font-family: system-ui, -apple-system, BlinkMacSystemFont, "Inter", | |
| "Segoe UI", sans-serif; | |
| background: radial-gradient(circle at top left, #e5edff 0, #f4f5fb 40%, #f9fafb 100%); | |
| color: var(--text); | |
| } | |
| a { | |
| color: var(--primary); | |
| text-decoration: none; | |
| } | |
| a:hover { | |
| text-decoration: underline; | |
| } | |
| /* ========================================= | |
| LAYOUT | |
| ========================================= */ | |
| .layout { | |
| display: flex; | |
| min-height: 100vh; | |
| } | |
| /* ---------- SIDEBAR ---------- */ | |
| .sidebar { | |
| width: 260px; | |
| background: radial-gradient(circle at top, #0b1220 0, #020617 45%, #000 100%); | |
| color: var(--sidebar-text); | |
| padding: 22px 18px; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 10px; | |
| border-right: 1px solid rgba(148, 163, 184, 0.2); | |
| } | |
| .sidebar-title { | |
| font-size: 20px; | |
| font-weight: 600; | |
| margin: 0 0 16px; | |
| color: #f9fafb; | |
| } | |
| .sidebar > p { | |
| margin: 0 0 10px; | |
| } | |
| /* nav links */ | |
| .nav-link { | |
| display: block; | |
| padding: 9px 11px; | |
| border-radius: 8px; | |
| margin-bottom: 4px; | |
| color: var(--sidebar-text); | |
| font-size: 14px; | |
| transition: background 0.18s ease, color 0.18s ease, transform 0.1s ease; | |
| } | |
| .nav-link.active { | |
| background: linear-gradient(135deg, #2563eb, #38bdf8); | |
| color: #f9fafb; | |
| box-shadow: 0 10px 25px rgba(37, 99, 235, 0.45); | |
| } | |
| .nav-link:hover { | |
| background: rgba(248, 250, 252, 0.09); | |
| color: #e5e7eb; | |
| transform: translateY(-1px); | |
| } | |
| .small-link { | |
| font-size: 12px; | |
| opacity: 0.9; | |
| } | |
| /* theme button */ | |
| .theme-btn { | |
| margin-top: auto; | |
| margin-bottom: 4px; | |
| padding: 8px 10px; | |
| border-radius: 999px; | |
| border: 1px solid rgba(148, 163, 184, 0.35); | |
| background: rgba(15, 23, 42, 0.9); | |
| color: #e5e7eb; | |
| cursor: pointer; | |
| font-size: 13px; | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 6px; | |
| justify-content: center; | |
| } | |
| .theme-btn:hover { | |
| border-color: rgba(248, 250, 252, 0.6); | |
| } | |
| /* ---------- MAIN CONTENT ---------- */ | |
| .content { | |
| flex: 1; | |
| padding: 22px 30px; | |
| display: flex; | |
| flex-direction: column; | |
| } | |
| .topbar { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| margin-bottom: 14px; | |
| } | |
| .topbar h1 { | |
| font-size: 22px; | |
| font-weight: 600; | |
| letter-spacing: -0.02em; | |
| margin: 0; | |
| color: var(--text); | |
| } | |
| .page-content { | |
| max-width: 960px; | |
| width: 100%; | |
| padding-bottom: 40px; | |
| } | |
| /* ========================================= | |
| COOKIE / NOTICE | |
| ========================================= */ | |
| .cookie-banner { | |
| font-size: 11px; | |
| padding: 7px 10px; | |
| background: rgba(15, 23, 42, 0.92); | |
| color: #e5e7eb; | |
| border-radius: 8px; | |
| margin-bottom: 12px; | |
| } | |
| /* ========================================= | |
| CARDS | |
| ========================================= */ | |
| .card { | |
| background: rgba(255, 255, 255, 0.98); | |
| border-radius: 14px; | |
| padding: 18px 18px 16px; | |
| border: 1px solid rgba(148, 163, 184, 0.25); | |
| box-shadow: var(--shadow-soft); | |
| backdrop-filter: blur(24px); | |
| margin-bottom: 18px; | |
| } | |
| html[data-theme="dark"] .card { | |
| background: rgba(15, 23, 42, 0.98); | |
| } | |
| .subtitle { | |
| font-size: 13px; | |
| color: var(--text-light); | |
| margin-top: 4px; | |
| margin-bottom: 18px; | |
| } | |
| /* ========================================= | |
| FORMS & INPUTS | |
| ========================================= */ | |
| label { | |
| font-size: 13px; | |
| font-weight: 500; | |
| display: block; | |
| margin-bottom: 4px; | |
| } | |
| textarea, | |
| input[type="email"], | |
| input[type="password"], | |
| input[type="text"] { | |
| width: 100%; | |
| padding: 10px 11px; | |
| border-radius: 10px; | |
| border: 1px solid var(--border); | |
| background: var(--bg-alt); | |
| color: var(--text); | |
| font-size: 14px; | |
| transition: border 0.16s ease, box-shadow 0.16s ease, background 0.16s ease; | |
| } | |
| textarea { | |
| min-height: 150px; | |
| resize: vertical; | |
| } | |
| textarea:focus, | |
| input:focus { | |
| outline: none; | |
| border-color: var(--primary); | |
| box-shadow: 0 0 0 1px rgba(37, 99, 235, 0.25); | |
| } | |
| button { | |
| background: linear-gradient(135deg, #2563eb, #1d4ed8); | |
| color: white; | |
| padding: 9px 14px; | |
| border-radius: 999px; | |
| border: none; | |
| cursor: pointer; | |
| font-size: 14px; | |
| font-weight: 500; | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 7px; | |
| transition: transform 0.1s ease, box-shadow 0.1s ease, opacity 0.1s ease; | |
| } | |
| button:hover { | |
| transform: translateY(-1px); | |
| box-shadow: 0 12px 25px rgba(37, 99, 235, 0.4); | |
| } | |
| button:active { | |
| transform: translateY(0); | |
| box-shadow: none; | |
| } | |
| .btn-secondary { | |
| background: var(--bg-alt); | |
| color: var(--text); | |
| border: 1px solid var(--border); | |
| box-shadow: none; | |
| } | |
| .btn-secondary:hover { | |
| box-shadow: 0 8px 16px rgba(15, 23, 42, 0.12); | |
| } | |
| .btn-danger { | |
| background: var(--danger); | |
| box-shadow: 0 10px 25px rgba(220, 38, 38, 0.45); | |
| } | |
| /* ========================================= | |
| HISTORY FILTERS & ACTIONS | |
| ========================================= */ | |
| .history-search { | |
| margin-bottom: 10px; | |
| } | |
| .history-search input { | |
| max-width: 260px; | |
| } | |
| .filter-buttons { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 6px; | |
| margin-bottom: 12px; | |
| } | |
| .filter-btn { | |
| padding: 6px 10px; | |
| border-radius: 999px; | |
| font-size: 12px; | |
| border: 1px solid var(--border); | |
| background: var(--bg-alt); | |
| color: var(--text-light); | |
| text-decoration: none; | |
| transition: background 0.16s ease, color 0.16s ease, border 0.16s ease; | |
| } | |
| .filter-btn.active { | |
| background: var(--primary-soft); | |
| color: var(--primary-hover); | |
| border-color: var(--primary); | |
| } | |
| /* history actions row */ | |
| .history-actions { | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| margin-bottom: 14px; | |
| flex-wrap: wrap; | |
| } | |
| /* ========================================= | |
| TABLES | |
| ========================================= */ | |
| .table-wrapper { | |
| overflow-x: auto; | |
| } | |
| .table { | |
| width: 100%; | |
| border-collapse: collapse; | |
| font-size: 13px; | |
| } | |
| .table th, | |
| .table td { | |
| text-align: left; | |
| padding: 9px 8px; | |
| border-bottom: 1px solid var(--border); | |
| } | |
| .table th { | |
| font-weight: 600; | |
| color: var(--text-light); | |
| } | |
| /* ========================================= | |
| CHIPS & FLAGS | |
| ========================================= */ | |
| .chip { | |
| padding: 4px 10px; | |
| border-radius: 999px; | |
| font-size: 11px; | |
| font-weight: 600; | |
| display: inline-block; | |
| } | |
| .chip.red { | |
| background: var(--chip-red); | |
| color: var(--chip-red-text); | |
| } | |
| .chip.green { | |
| background: var(--chip-green); | |
| color: var(--chip-green-text); | |
| } | |
| .chip.blue { | |
| background: var(--chip-blue); | |
| color: var(--chip-blue-text); | |
| } | |
| /* flags in result card */ | |
| .flag-section { | |
| margin-top: 8px; | |
| margin-bottom: 6px; | |
| } | |
| .flag { | |
| display: inline-block; | |
| padding: 3px 8px; | |
| border-radius: 999px; | |
| font-size: 11px; | |
| font-weight: 500; | |
| margin-right: 6px; | |
| } | |
| .flag.red { | |
| background: var(--danger-soft); | |
| color: var(--danger); | |
| } | |
| .flag.orange { | |
| background: var(--warning-soft); | |
| color: var(--warning); | |
| } | |
| /* ========================================= | |
| RESULT CARD & CONFIDENCE METER | |
| ========================================= */ | |
| .result-card { | |
| border-left: 4px solid var(--primary); | |
| animation: fadeInUp 0.3s ease-out; | |
| } | |
| .result-card.aggressive { | |
| border-left-color: var(--danger); | |
| } | |
| .result-card.polite { | |
| border-left-color: var(--success); | |
| } | |
| .result-card.friendly { | |
| border-left-color: var(--chip-blue-text); | |
| } | |
| .severity-bar { | |
| width: 100%; | |
| height: 7px; | |
| border-radius: 999px; | |
| background: var(--bg); | |
| overflow: hidden; | |
| margin: 10px 0 8px; | |
| } | |
| .severity-fill { | |
| width: 0; | |
| height: 100%; | |
| border-radius: 999px; | |
| background: linear-gradient(90deg, #22c55e, #eab308, #ef4444); | |
| transition: width 0.6s ease-out; | |
| } | |
| /* you can set width inline from HTML: style="width: {{ result.severity }}%" */ | |
| .score-boxes { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 8px; | |
| margin-top: 4px; | |
| font-size: 12px; | |
| color: var(--text-light); | |
| } | |
| .score-item { | |
| padding: 4px 8px; | |
| border-radius: 999px; | |
| background: var(--bg); | |
| } | |
| /* explanation list */ | |
| .explanation-list { | |
| margin: 8px 0 0; | |
| padding-left: 18px; | |
| font-size: 13px; | |
| color: var(--text-light); | |
| } | |
| /* empty states */ | |
| .empty { | |
| font-size: 13px; | |
| color: var(--text-light); | |
| } | |
| /* ========================================= | |
| ANIMATIONS | |
| ========================================= */ | |
| @keyframes fadeInUp { | |
| from { | |
| opacity: 0; | |
| transform: translateY(6px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| /* ========================================= | |
| RESPONSIVE (MOBILE / TABLET) | |
| ========================================= */ | |
| @media (max-width: 900px) { | |
| .layout { | |
| flex-direction: column; | |
| } | |
| .sidebar { | |
| width: 100%; | |
| flex-direction: row; | |
| align-items: center; | |
| gap: 10px; | |
| overflow-x: auto; | |
| padding: 10px 12px; | |
| border-bottom: 1px solid rgba(148, 163, 184, 0.3); | |
| } | |
| .sidebar-title { | |
| display: none; | |
| } | |
| .nav-link { | |
| white-space: nowrap; | |
| margin-bottom: 0; | |
| } | |
| .theme-btn { | |
| margin-top: 0; | |
| } | |
| .content { | |
| padding: 16px 14px 22px; | |
| } | |
| .page-content { | |
| max-width: 100%; | |
| } | |
| textarea { | |
| min-height: 120px; | |
| } | |
| .history-actions { | |
| flex-direction: row; | |
| align-items: stretch; | |
| } | |
| } | |