Files

641 lines
16 KiB
CSS
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* ============================================================
AUTH SYSTÉM STYL
============================================================
Umístění: libovolné (např. /css/auth-styl.css)
Aktivace: v auth/config.php nastavit
define('AUTH_CSS', '/css/auth-styl.css');
Funguje bez jakýchkoliv změn v PHP souborech.
Styluje čistě pomocí HTML elementů žádné třídy nejsou
potřeba.
============================================================ */
/* ------------------------------------------------------------
GOOGLE FONTS
Montserrat 300/500 tři velikosti (viz níže)
IBM Plex Serif 200 jedna velikost pro veškerý text
------------------------------------------------------------ */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;500&family=IBM+Plex+Serif:ital,wght@0,200;1,200&display=swap');
/* ------------------------------------------------------------
TYPOGRAFICKÁ STUPNICE MONTSERRAT
============================================================
Velikost A 2.6rem ... hlavní nadpis stránky (h1), jednou, weight 300
Velikost B 1.05rem ... nadpisy sekcí (h2, h3), weight 300
Velikost C 0.78rem ... nejmenší (th weight 500, button/label weight 300)
= shodná s IBM Plex Serif optickou velikostí
IBM Plex Serif 200 ... 0.875rem pro veškerý ostatní text
------------------------------------------------------------ */
/* ------------------------------------------------------------
PROMĚNNÉ
------------------------------------------------------------ */
:root {
/* Pozadí */
--bg-hlavni: #141414; /* tělo stránky = barva mezer mezi bloky */
--bg-obsah: #222222; /* světlejší bloky obsahu */
--bg-prvek: #2a2a2a; /* inputy, tabulky, textarea */
--bg-prvek-focus: #313131; /* input při focusu */
/* Písmo */
--text-hlavni: #d0d0d0;
--text-jemny: #7a7a7a;
--text-nadpis: #eeeeee;
/* Akcent tmavě červená */
--akcent: #5c1010; /* pozadí tlačítek, th */
--akcent-hover: #7a1515; /* hover tlačítek */
--akcent-svetly: #c0392b; /* text, h1, h3, odkazy */
--akcent-okraj: #4a0d0d; /* okraje akcentových prvků */
/* Ocelová šedá */
--ocel: #3a4455; /* okraje inputů, tabulek */
--ocel-svetly: #6a7a90; /* labely, h2, pomocný text */
/* Stavy */
--chyba-text: #f08080;
--uspech-text: #68d391;
/* Rozměry */
--pruh-max: 620px;
--sekce-mezera: 1.6rem; /* výška tmavé mezery mezi bloky */
--sekce-padding: 1.4rem; /* vnitřní odsazení bloků */
--polomer-blok: 6px; /* zaoblení rohů bloků */
--polomer-prvek: 4px; /* zaoblení inputů, tlačítek */
/* Stíny */
--stin-blok: 0 2px 12px rgba(0, 0, 0, 0.45);
--stin-input: inset 0 1px 3px rgba(0, 0, 0, 0.3);
--stin-input-focus: 0 0 0 2px rgba(192, 57, 43, 0.25);
}
/* ------------------------------------------------------------
ZÁKLAD
------------------------------------------------------------ */
*, *::before, *::after {
box-sizing: border-box;
margin: 0;
padding: 0;
}
html {
font-size: 16px;
scroll-behavior: smooth;
}
body {
background-color: var(--bg-hlavni);
color: var(--text-hlavni);
font-family: 'IBM Plex Serif', Georgia, serif;
font-size: 0.875rem; /* IBM Plex Serif trochu větší než dřív */
font-weight: 200;
line-height: 1.75;
min-height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
padding: 0;
animation: fadein 0.2s ease-in;
}
/* ------------------------------------------------------------
OBSAHOVÝ PRUH
------------------------------------------------------------ */
body > * {
width: 100%;
max-width: var(--pruh-max);
}
/* ------------------------------------------------------------
BLOKY OBSAHU světlejší pozadí, zaoblení, stín
------------------------------------------------------------ */
body > h1,
body > h2,
body > h3,
body > p,
body > form,
body > table,
body > section,
body > ol,
body > ul,
body > textarea {
background-color: var(--bg-obsah);
padding-left: var(--sekce-padding);
padding-right: var(--sekce-padding);
padding-top: var(--sekce-padding);
padding-bottom: var(--sekce-padding);
border-radius: var(--polomer-blok);
box-shadow: var(--stin-blok);
}
/* Tabulka padding jen nahoře/dole, šířku řídí buňky */
body > table {
padding-left: 0;
padding-right: 0;
overflow: hidden; /* zaoblení se projeví i na th/td */
}
/* Mezery každý blok dostane mezeru nahoře */
body > h1,
body > h2,
body > h3,
body > p,
body > form,
body > table,
body > section,
body > ol,
body > ul,
body > textarea {
margin-top: var(--sekce-mezera);
}
/* hr = čistá tmavá mezera, žádná čára */
body > hr {
border: none;
background: transparent;
height: 0;
padding: 0;
margin: 0;
box-shadow: none;
}
/* h2 těsně za h1 stejný blok, bez mezery nahoře */
body > h1 + h2 {
margin-top: 0;
border-top-left-radius: 0;
border-top-right-radius: 0;
padding-top: 0;
}
/* h1 když za ním následuje h2 zaoblení jen nahoře, bez čáry dole */
body > h1:has(+ h2) {
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
padding-bottom: 0.3rem;
box-shadow: var(--stin-blok); /* stejný stín jako ostatní bloky, bez čáry */
}
/* h3 blok má o trochu světlejší pozadí než ostatní bloky */
body > h3 {
background-color: #292929;
}
body > *:last-child {
margin-bottom: var(--sekce-mezera);
}
/* Elementy uvnitř formuláře a sekcí bez extra pozadí a stínu */
form > *,
section > * {
background-color: transparent;
box-shadow: none;
border-radius: 0;
margin-top: 0;
padding-left: 0;
padding-right: 0;
}
/* ------------------------------------------------------------
TYPOGRAFIE MONTSERRAT
------------------------------------------------------------ */
/* === VELIKOST A: hlavní nadpis stránky, jednou === */
h1 {
font-family: 'Montserrat', sans-serif;
font-weight: 300;
font-size: 2.6rem;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--akcent-svetly);
line-height: 1.15;
}
/* === VELIKOST B: nadpisy sekcí === */
h2,
h3 {
font-family: 'Montserrat', sans-serif;
font-weight: 300;
font-size: 1.05rem;
letter-spacing: 0.14em;
text-transform: uppercase;
}
h2 {
color: #9ab0c8; /* světlejší modrošedá čitelná na tmavém i světlém */
}
h3 {
color: var(--akcent-svetly);
}
/* === VELIKOST C: th, button, label, indikátory ===
(shodná s IBM Plex Serif = 0.78rem, aby text vypadal stejně velký) */
p {
font-size: 0.875rem; /* IBM Plex Serif velikost */
}
strong {
color: var(--text-nadpis);
font-weight: 300;
}
p > strong:first-child {
color: var(--chyba-text);
}
em {
color: var(--text-jemny);
font-style: italic;
}
/* ------------------------------------------------------------
ODKAZY
------------------------------------------------------------ */
a {
color: var(--akcent-svetly);
text-decoration: none;
border-bottom: 1px solid var(--akcent-okraj);
transition: color 0.15s, border-color 0.15s;
}
a:hover,
a:focus {
color: #e74c3c;
border-bottom-color: #e74c3c;
outline: none;
}
/* ------------------------------------------------------------
FORMULÁŘE
------------------------------------------------------------ */
form {
width: 100%;
max-width: var(--pruh-max);
}
form p {
padding: 0;
margin-bottom: 0.9rem;
box-shadow: none;
border-radius: 0;
margin-top: 0;
}
/* === VELIKOST C: label === */
label {
display: block;
font-family: 'Montserrat', sans-serif;
font-weight: 300;
font-size: 0.78rem;
letter-spacing: 0.1em;
text-transform: uppercase;
color: var(--ocel-svetly);
margin-bottom: 0;
padding-bottom: 0;
line-height: 1; /* pevná výška řádku zabrání dědění 1.75 z body */
}
/* Inline label pro checkbox jiný styl */
label:has(input[type="checkbox"]) {
display: inline-flex;
align-items: center;
gap: 0.5rem;
font-family: 'IBM Plex Serif', Georgia, serif;
font-weight: 200;
font-size: 0.875rem;
text-transform: none;
letter-spacing: normal;
color: var(--text-hlavni);
cursor: pointer;
}
/* ------------------------------------------------------------
INPUTY
------------------------------------------------------------ */
input[type="text"],
input[type="email"],
input[type="password"] {
display: block;
width: 100%;
background-color: var(--bg-prvek);
color: var(--text-hlavni);
border: 1px solid var(--ocel);
border-radius: var(--polomer-prvek);
padding: 0.45rem 0.7rem;
font-size: 0.875rem;
font-family: 'IBM Plex Serif', Georgia, serif;
font-weight: 200;
box-shadow: var(--stin-input);
transition: border-color 0.15s, background-color 0.15s, box-shadow 0.15s;
outline: none;
margin-top: 0.15rem; /* minimální optický odstup od labelu */
margin-bottom: 0;
line-height: 1.4;
}
input[type="text"]:focus,
input[type="email"]:focus,
input[type="password"]:focus {
background-color: var(--bg-prvek-focus);
border-color: var(--akcent-svetly);
box-shadow: var(--stin-input), var(--stin-input-focus);
}
input[type="text"]::placeholder,
input[type="email"]::placeholder,
input[type="password"]::placeholder {
color: var(--ocel-svetly);
opacity: 0.6;
}
/* Inline inputy v tabulce admin.php */
table input[type="password"] {
width: auto;
display: inline-block;
padding: 0.2rem 0.4rem;
font-size: 0.78rem;
margin-top: 0;
}
input[type="checkbox"] {
width: 0.85rem;
height: 0.85rem;
accent-color: var(--akcent-svetly);
cursor: pointer;
flex-shrink: 0;
}
/* ------------------------------------------------------------
TEXTAREA
------------------------------------------------------------ */
textarea {
display: block;
width: 100%;
background-color: var(--bg-prvek);
color: #98c898; /* terminálová zelená pro SQL */
border: 1px solid var(--ocel);
border-radius: var(--polomer-prvek);
padding: 0.75rem;
font-family: 'Courier New', Courier, monospace;
font-size: 0.75rem;
line-height: 1.55;
resize: vertical;
outline: none;
box-shadow: var(--stin-input);
}
textarea:focus {
border-color: var(--akcent-svetly);
box-shadow: var(--stin-input), var(--stin-input-focus);
}
/* ------------------------------------------------------------
TLAČÍTKA VELIKOST C (0.78rem Montserrat)
------------------------------------------------------------ */
button[type="submit"],
button[type="button"] {
background-color: var(--akcent);
color: #e8e8e8;
border: 1px solid var(--akcent-okraj);
border-radius: var(--polomer-prvek);
padding: 0.48rem 1.1rem;
font-family: 'Montserrat', sans-serif;
font-weight: 300;
font-size: 0.78rem;
letter-spacing: 0.1em;
cursor: pointer;
transition: background-color 0.15s, border-color 0.15s, box-shadow 0.15s;
margin-top: 0.3rem;
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
}
button[type="submit"]:hover,
button[type="button"]:hover {
background-color: var(--akcent-hover);
border-color: var(--akcent-hover);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
}
button[type="submit"]:focus,
button[type="button"]:focus {
outline: none;
box-shadow: 0 0 0 2px rgba(192, 57, 43, 0.4);
}
button:disabled {
background-color: #1c1c1c;
color: var(--text-jemny);
border-color: #2a2a2a;
cursor: not-allowed;
box-shadow: none;
}
button:disabled:hover {
background-color: #1c1c1c;
border-color: #2a2a2a;
box-shadow: none;
}
/* Inline formuláře odhlášení, smazání v tabulce */
form[style*="display:inline"],
form[style*="display: inline"] {
display: inline;
width: auto;
margin: 0;
padding: 0;
background-color: transparent;
box-shadow: none;
border-radius: 0;
}
form[style*="display:inline"] button,
form[style*="display: inline"] button {
margin-top: 0;
padding: 0.2rem 0;
font-size: 0.78rem;
min-width: 7rem; /* stejná šířka pro Smazat i Změnit heslo */
text-align: center;
}
/* ------------------------------------------------------------
INDIKÁTOR SÍLY HESLA VELIKOST C
------------------------------------------------------------ */
#heslo-sila,
#novy-heslo-sila {
display: inline-block;
font-family: 'Montserrat', sans-serif;
font-weight: 300;
font-size: 0.78rem;
letter-spacing: 0.06em;
color: var(--text-jemny);
margin-top: 0.2rem;
}
#tlacitko-duvod,
#novy-tlacitko-duvod {
font-family: 'Montserrat', sans-serif;
font-weight: 300;
font-size: 0.78rem;
letter-spacing: 0.04em;
color: var(--text-jemny);
margin-left: 0.4rem;
}
/* ------------------------------------------------------------
TABULKY
------------------------------------------------------------ */
table {
width: 100%;
border-collapse: collapse;
font-size: 0.78rem;
}
/* === VELIKOST C: záhlaví tabulky weight 500 pro lepší čitelnost === */
table th {
font-family: 'Montserrat', sans-serif;
font-weight: 500;
font-size: 0.78rem;
letter-spacing: 0.1em;
text-transform: uppercase;
background-color: var(--akcent);
color: #e8e8e8;
text-align: left;
padding: 0.5rem 0.75rem;
border: 1px solid var(--akcent-okraj);
}
table td {
background-color: var(--bg-prvek);
color: var(--text-hlavni);
padding: 0.4rem 0.75rem;
border: 1px solid var(--ocel);
vertical-align: middle;
font-family: 'IBM Plex Serif', Georgia, serif;
font-weight: 200;
font-size: 0.875rem;
}
table tr:nth-child(even) td {
background-color: #262626;
}
table tr:hover td {
background-color: #2d2d2d;
transition: background-color 0.1s;
}
table td em {
color: var(--text-jemny);
font-style: italic;
}
/* ------------------------------------------------------------
KÓDOVÉ ELEMENTY
------------------------------------------------------------ */
code {
background-color: var(--bg-prvek);
color: #98c898;
font-family: 'Courier New', Courier, monospace;
font-size: 0.85em;
padding: 0.1em 0.35em;
border-radius: var(--polomer-prvek);
border: 1px solid var(--ocel);
}
/* ------------------------------------------------------------
SEZNAMY
------------------------------------------------------------ */
ol, ul {
padding-left: 1.4rem;
font-family: 'IBM Plex Serif', Georgia, serif;
font-weight: 200;
font-size: 0.875rem;
}
ol li, ul li {
margin-bottom: 0.25rem;
line-height: 1.65;
}
/* ------------------------------------------------------------
RESPONSIVNÍ DESIGN
------------------------------------------------------------ */
@media (max-width: 680px) {
:root {
--pruh-max: 100%;
--sekce-padding: 1rem;
--sekce-mezera: 1rem;
--polomer-blok: 0px; /* na mobilu bez zaoblení bloky jdou od kraje */
}
h1 {
font-size: 1.6rem;
}
h2, h3 {
font-size: 0.95rem;
}
table td form[style*="display:inline"],
table td form[style*="display: inline"] {
display: block;
margin-bottom: 0.3rem;
}
table td form[style*="display:inline"] button,
table td form[style*="display: inline"] button {
width: 100%;
}
/* iOS: font-size ≥ 16px zabrání zoomu při focusu */
input[type="text"],
input[type="email"],
input[type="password"] {
font-size: 1rem;
}
table input[type="password"] {
display: block;
width: 100%;
margin-bottom: 0.3rem;
font-size: 1rem;
}
}
@media (max-width: 400px) {
h1 {
font-size: 1.3rem;
letter-spacing: 0.08em;
}
button[type="submit"],
button[type="button"] {
width: 100%;
}
}
/* ------------------------------------------------------------
PŘECHOD PŘI NAČTENÍ
------------------------------------------------------------ */
@keyframes fadein {
from { opacity: 0; transform: translateY(4px); }
to { opacity: 1; transform: translateY(0); }
}