/*
 * Filature - SliTaz developer platform
 * Copyright (C) 2026 SliTaz GNU/Linux - BSD License, see LICENSE
 *
 * Follows the SliTaz website stylesheet (website/slitaz-2026.css):
 * same colors, header, menu bar, column and footer, so Filature reads
 * as part of slitaz.org. No JavaScript: the dark theme comes from the
 * system preference only. Pages stay readable without this file.
 */

:root {
	--primary:        #e74c3c;
	--primary-dark:   #c0392b;
	--primary-light:  #ff6b61;
	--secondary:      #3498db;
	--secondary-dark: #2980b9;
	--accent:         #2ecc71;

	--dark:           #2c3e50;
	--text:           #34495e;
	--text-light:     #7f8c8d;
	--light:          #dde3e8;
	--white:          #ffffff;
	--border:         #b8c4ca;

	--space-xs:       0.25rem;
	--space-sm:       0.5rem;
	--space-md:       1rem;
	--space-lg:       1.5rem;
	--space-xl:       2rem;
	--space-2xl:      3rem;

	--font-family:    system-ui, -apple-system, BlinkMacSystemFont,
	                  'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
	--font-mono:      "DejaVu Sans Mono", "Liberation Mono", Menlo, Consolas, monospace;
	--font-size-sm:   0.875rem;
	--font-size-lg:   1.125rem;
	--font-size-xl:   1.25rem;
	--font-size-2xl:  1.5rem;
	--font-size-3xl:  2rem;

	--radius-sm:      4px;
	--radius-md:      8px;
	--shadow-sm:      0 1px 2px rgba(0,0,0,0.05);
	--shadow-md:      0 4px 6px rgba(0,0,0,0.1);
	--transition:     0.2s ease-in-out;
}

*, *::before, *::after {
	box-sizing: border-box;
}

html {
	font-size: 16px;
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

body {
	margin: 0;
	font-family: var(--font-family);
	line-height: 1.6;
	color: var(--text);
	background: var(--white);
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	overflow-wrap: break-word;
}

h1, h2, h3 {
	color: var(--dark);
	line-height: 1.3;
	margin: 0 0 var(--space-md);
	font-weight: 600;
}

h1 { font-size: var(--font-size-3xl); }
h2 { font-size: var(--font-size-2xl); margin-top: var(--space-xl); }

p {
	margin: 0 0 var(--space-md);
}

a {
	color: var(--secondary);
	text-decoration: none;
	transition: color var(--transition);
}

a:hover {
	color: var(--secondary-dark);
	text-decoration: underline;
}

code {
	font-family: var(--font-mono);
	background: var(--light);
	padding: 2px 6px;
	border-radius: var(--radius-sm);
	font-size: var(--font-size-sm);
}

small {
	color: var(--text-light);
}

/* Header: logo, name and SliTaz network links */

#header {
	background: #2c3e50;
	border-bottom: 1px solid #1a252f;
	padding: var(--space-md) var(--space-xl);
	display: flex;
	align-items: center;
	gap: var(--space-md);
	box-shadow: var(--shadow-sm);
}

#brand {
	margin: 0;
	font-size: var(--font-size-lg);
	font-weight: 600;
}

#brand a {
	color: #f0f2f4;
	display: flex;
	align-items: center;
	gap: var(--space-sm);
}

#brand a:hover {
	color: var(--primary-light);
	text-decoration: none;
}

#brand img {
	height: 28px;
	width: auto;
}

#network {
	margin-left: auto;
}

#network ul, #nav ul {
	display: flex;
	flex-wrap: wrap;
	list-style: none;
	margin: 0;
	padding: 0;
}

#network ul {
	gap: var(--space-lg);
}

#network a {
	color: #b0bec5;
	font-weight: 500;
	font-size: var(--font-size-sm);
}

#network a:hover {
	color: var(--primary);
	text-decoration: none;
}

/* Menu bar: the Filature menu */

#nav {
	background: #f5f7f8;
	border-bottom: 1px solid var(--border);
	padding: var(--space-sm) var(--space-xl);
}

#nav ul {
	gap: var(--space-xs);
	justify-content: center;
	align-items: center;
}

#nav a, #nav button {
	display: inline-block;
	padding: var(--space-sm) var(--space-md);
	border-radius: var(--radius-sm);
	font-weight: 500;
	font-size: var(--font-size-sm);
	color: var(--text);
	transition: all var(--transition);
}

#nav a:hover, #nav button:hover {
	background: var(--light);
	color: var(--primary);
	text-decoration: none;
}

#nav form {
	margin: 0;
}

#nav button {
	font-family: inherit;
	background: none;
	border: none;
	cursor: pointer;
}

/* Content column */

.content {
	width: 100%;
	max-width: 900px;
	margin: 0 auto;
	padding: var(--space-2xl) var(--space-xl);
}

/* Public home */

.hero {
	background: var(--light);
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	padding: var(--space-xl);
	text-align: center;
	margin-bottom: var(--space-xl);
}

.hero h1 {
	margin-bottom: var(--space-xs);
}

.hero .tagline {
	font-size: var(--font-size-lg);
	color: var(--text-light);
}

.hero-buttons {
	display: flex;
	gap: var(--space-md);
	justify-content: center;
	flex-wrap: wrap;
	margin: 0;
}

.btn, button {
	display: inline-block;
	padding: var(--space-sm) var(--space-lg);
	border-radius: var(--radius-md);
	font: 600 1rem var(--font-family);
	cursor: pointer;
	border: none;
	transition: all var(--transition);
}

.btn:hover {
	text-decoration: none;
}

.btn-primary, button {
	background: linear-gradient(135deg, var(--primary), var(--primary-dark));
	color: #fff;
	box-shadow: var(--shadow-md);
}

.btn-primary:hover, button:hover {
	background: linear-gradient(135deg, var(--primary-dark), var(--primary));
	color: #fff;
}

.btn-secondary {
	background: var(--white);
	color: var(--dark);
	border: 2px solid var(--border);
}

.btn-secondary:hover {
	border-color: var(--secondary);
	color: var(--dark);
}

/* Lists of threads and devices */

ul.threads, ul.devices {
	list-style: none;
	margin: 0;
	padding: 0;
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	overflow: hidden;
}

ul.threads li, ul.devices li {
	padding: var(--space-md) var(--space-lg);
	border-bottom: 1px solid var(--border);
}

ul.threads li:last-child, ul.devices li:last-child {
	border-bottom: none;
}

ul.threads a {
	color: var(--dark);
	font-weight: 600;
}

ul.threads a:hover {
	color: var(--primary);
	text-decoration: none;
}

ul.devices p, ul.devices form {
	margin: 0 0 var(--space-sm);
}

.private {
	color: var(--primary);
}

span.private {
	border: 1px solid var(--primary);
	border-radius: var(--radius-sm);
	padding: 0 var(--space-xs);
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
}

/* Pages of threads and messages */

.pager {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: var(--space-sm) var(--space-md);
	margin: var(--space-md) 0;
	font-size: var(--font-size-sm);
	color: var(--text-light);
}

/* Messages */

article {
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	padding: var(--space-md) var(--space-lg);
	margin: 0 0 var(--space-md);
}

article:target {
	border-color: var(--secondary);
	box-shadow: var(--shadow-md);
}

article .meta {
	font-size: var(--font-size-sm);
	color: var(--text-light);
	border-bottom: 1px solid var(--border);
	padding-bottom: var(--space-sm);
}

article .meta strong {
	color: var(--dark);
}

article .meta a {
	color: var(--text-light);
}

.text {
	font-family: var(--font-mono);
	font-size: 0.9rem;
}

/* Bugs: status badge, history, meta line */

p.meta {
	color: var(--text-light);
	font-size: var(--font-size-sm);
}

.status {
	display: inline-block;
	padding: 0 var(--space-sm);
	border-radius: var(--radius-sm);
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	color: #fff;
}

.status.open {
	background: #27ae60;
}

.status.closed {
	background: var(--text-light);
}

ul.history {
	list-style: none;
	margin: 0 0 var(--space-md);
	padding: 0;
	font-size: var(--font-size-sm);
}

ul.history li {
	padding: var(--space-xs) 0;
	border-bottom: 1px solid var(--border);
}

/* Forms */

input, textarea {
	font: inherit;
	color: var(--text);
	background: var(--white);
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	padding: var(--space-sm);
	width: 100%;
}

textarea {
	font-family: var(--font-mono);
	font-size: 0.9rem;
}

input:focus, textarea:focus {
	outline: none;
	border-color: var(--secondary);
}

input#code {
	width: auto;
	font-family: var(--font-mono);
	font-size: var(--font-size-xl);
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

form.invite {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-sm);
	margin-bottom: var(--space-lg);
}

form.invite input {
	width: auto;
	flex: 1 1 10rem;
}

.error {
	color: var(--primary-dark);
	background: rgba(231, 76, 60, 0.08);
	border-left: 3px solid var(--primary);
	border-radius: var(--radius-sm);
	padding: var(--space-sm) var(--space-md);
}

/* Footer */

#footer {
	border-top: 1px solid var(--border);
	padding: var(--space-xl) var(--space-xl) var(--space-lg);
	text-align: center;
	color: var(--text-light);
	font-size: var(--font-size-sm);
	margin-top: auto;
	line-height: 1.8;
}

#footer p {
	margin-bottom: var(--space-sm);
}

#footer a {
	color: var(--text-light);
	margin: 0 var(--space-sm);
}

#footer a:hover {
	color: var(--secondary);
}

/* Phones: the network links are in the footer too */

@media (max-width: 768px) {
	#header {
		padding: var(--space-md);
	}

	#network {
		display: none;
	}

	#nav {
		padding: var(--space-xs) var(--space-sm);
	}

	.content {
		padding: var(--space-lg) var(--space-md);
	}

	h1 { font-size: var(--font-size-2xl); }
	h2 { font-size: var(--font-size-xl); }
}

/* Dark theme, from the system preference, same values as the website */

@media (prefers-color-scheme: dark) {
	:root {
		--dark:       #f0f0f0;
		--text:       #b8b8b8;
		--text-light: #787878;
		--light:      #1e1e1e;
		--white:      #141414;
		--border:     #2a2a2a;
		--shadow-sm:  0 1px 2px rgba(0,0,0,0.4);
		--shadow-md:  0 4px 6px rgba(0,0,0,0.5);
	}

	#header {
		background: var(--white);
		border-bottom-color: var(--border);
	}

	#brand a { color: var(--dark); }
	#brand a:hover { color: var(--primary); }
	#network a { color: var(--text-light); }
	#nav { background: var(--light); }
	.error { color: var(--primary-light); }
}
