Files
MSPPPPaM/css/auth-styl.css
T

618 lines
15 KiB
CSS
Raw 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
Barlow Condensed moderní bezpatkové, kapitálky pro nadpisy
Source Serif 4 moderní patkové pro tělo textu
------------------------------------------------------------ */
@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;600;700&family=Source+Serif+4:ital,wght@0,300;0,400;1,300&display=swap');
/* ------------------------------------------------------------
PROMĚNNÉ barvy a rozměry
------------------------------------------------------------ */
:root {
/* Pozadí */
--bg-hlavni: #141414; /* hlavní pozadí stránky tmavší = "mezera" mezi sekcemi */
--bg-obsah: #222222; /* pozadí obsahových bloků (světlejší) */
--bg-prvek: #2c2c2c; /* pozadí inputů, tabulek, textarea */
--bg-prvek-focus: #333333; /* inputy při focusu */
/* Písmo */
--text-hlavni: #d4d4d4; /* hlavní text */
--text-jemny: #888888; /* pomocný text */
--text-nadpis: #f0f0f0; /* nadpisy */
/* Akcent tmavě červená */
--akcent: #5c1010; /* primární akcent pozadí buttonů, th (tmavší) */
--akcent-hover: #7a1515; /* hover stav buttonů */
--akcent-svetly: #c0392b; /* červená pro text, odkazy, h1 */
--akcent-okraj: #4a0d0d; /* okraj akcentových prvků */
/* Doplňková barva ocelová šedá */
--ocel: #3a4455; /* okraje, oddělovače */
--ocel-svetly: #718096; /* jemnější prvky, labely */
/* Stavy */
--chyba-text: #fc8181;
--uspech-text: #68d391;
/* Rozměry */
--pruh-max: 640px;
--sekce-mezera: 1.8rem; /* svislá mezera mezi sekcemi (vyplněna bg-hlavni) */
--sekce-padding: 1.4rem; /* vnitřní odsazení bloků obsahu */
--polomer: 3px;
}
/* ------------------------------------------------------------
ZÁKLAD reset a tělo stránky
------------------------------------------------------------ */
*, *::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: 'Source Serif 4', Georgia, serif;
font-size: 1rem;
font-weight: 300;
line-height: 1.7;
min-height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
padding: 0;
}
/* ------------------------------------------------------------
FONT PRO NADPISY
------------------------------------------------------------ */
h1, h2, h3,
table th,
label {
font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif;
}
/* ------------------------------------------------------------
OBSAHOVÝ PRUH všechny přímé potomky body
------------------------------------------------------------ */
body > * {
width: 100%;
max-width: var(--pruh-max);
}
/* ------------------------------------------------------------
SEKCE vizuální bloky oddělené mezerou v barvě pozadí
------------------------------------------------------------ */
/* Každý přímý potomek body dostane světlejší pozadí
a vnitřní odsazení tvoří "blok obsahu" */
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);
}
body > h1 { padding-top: var(--sekce-padding); }
body > h2 { padding-top: 0.4rem; }
body > h3 { padding-top: var(--sekce-padding); }
body > p { padding-top: 0.5rem; }
body > form { padding-top: 0.5rem; padding-bottom: var(--sekce-padding); }
body > table { padding-top: 0.5rem; padding-bottom: var(--sekce-padding);
padding-left: 0; padding-right: 0; }
body > section { padding-top: var(--sekce-padding); padding-bottom: var(--sekce-padding); }
body > ol,
body > ul { padding-top: 0.5rem; padding-bottom: 0.7rem; }
body > textarea { padding-top: 0.3rem; padding-bottom: var(--sekce-padding); }
/* Nadpisy h1/h2 začínají nový vizuální blok mezera nahoře */
body > h1 {
margin-top: var(--sekce-mezera);
}
body > h2 {
margin-top: var(--sekce-mezera);
}
body > h3 {
margin-top: calc(var(--sekce-mezera) * 0.8);
}
/* Poslední prvek dostane spodní padding a spodní mezeru */
body > *:last-child {
padding-bottom: var(--sekce-padding);
margin-bottom: var(--sekce-mezera);
}
/* hr tmavá mezera mezi sekcemi místo čáry */
body > hr {
background-color: transparent;
border: none;
height: var(--sekce-mezera);
padding: 0;
margin: 0;
/* hr nemá bg-obsah, takže tvoří "tmavou mezeru" */
}
/* h2 hned za h1 patří ke stejné hlavičce bez mezery */
body > h1 + h2 {
margin-top: 0;
padding-bottom: var(--sekce-padding);
}
/* Elementy uvnitř formuláře nebo sekce bez extra pozadí */
form > *,
section > * {
background-color: transparent;
}
/* ------------------------------------------------------------
TYPOGRAFIE
------------------------------------------------------------ */
h1 {
color: var(--akcent-svetly);
font-size: 2rem;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
border: none;
padding-bottom: 0;
}
h2 {
color: var(--ocel-svetly);
font-size: 0.95rem;
font-weight: 600;
letter-spacing: 0.12em;
text-transform: uppercase;
}
h3 {
color: var(--akcent-svetly);
font-size: 1.1rem;
font-weight: 700;
letter-spacing: 0.06em;
text-transform: uppercase;
padding-bottom: 0.5rem;
border-bottom: 1px solid var(--akcent-okraj);
}
p {
padding-bottom: 0.4rem;
}
strong {
color: var(--text-nadpis);
font-weight: 600;
}
/* Chybové hlášky */
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 {
background-color: transparent;
padding-left: 0;
padding-right: 0;
margin-bottom: 0.75rem;
}
label {
display: block;
font-size: 0.82rem;
font-weight: 600;
letter-spacing: 0.09em;
text-transform: uppercase;
color: var(--ocel-svetly);
margin-bottom: 0; /* žádná mezera mezi labelem a inputem */
line-height: 1.4;
}
/* Inline label pro checkbox */
label:has(input[type="checkbox"]) {
display: inline-flex;
align-items: center;
gap: 0.5rem;
text-transform: none;
letter-spacing: normal;
font-size: 0.95rem;
font-weight: 300;
color: var(--text-hlavni);
cursor: pointer;
font-family: 'Source Serif 4', Georgia, serif;
}
/* ------------------------------------------------------------
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);
padding: 0.45rem 0.7rem;
font-size: 1rem;
font-family: 'Source Serif 4', Georgia, serif;
font-weight: 300;
transition: border-color 0.15s, background-color 0.15s;
outline: none;
margin-top: 0; /* žádná mezera mezi labelem a inputem */
}
input[type="text"]:focus,
input[type="email"]:focus,
input[type="password"]:focus {
background-color: var(--bg-prvek-focus);
border-color: var(--akcent-svetly);
}
input[type="text"]::placeholder,
input[type="email"]::placeholder,
input[type="password"]::placeholder {
color: var(--ocel-svetly);
opacity: 0.7;
}
/* Inline inputy pro heslo v tabulce admin.php */
table input[type="password"] {
width: auto;
display: inline-block;
padding: 0.25rem 0.45rem;
font-size: 0.88rem;
margin-top: 0;
}
input[type="checkbox"] {
width: 1rem;
height: 1rem;
accent-color: var(--akcent-svetly);
cursor: pointer;
flex-shrink: 0;
}
/* ------------------------------------------------------------
TEXTAREA (install.php SQL výpis)
------------------------------------------------------------ */
textarea {
display: block;
width: 100%;
max-width: var(--pruh-max);
background-color: var(--bg-prvek);
color: #a8d8a8;
border: 1px solid var(--ocel);
border-radius: var(--polomer);
padding: 0.75rem;
font-family: 'Courier New', Courier, monospace;
font-size: 0.82rem;
line-height: 1.5;
resize: vertical;
outline: none;
margin-top: 0.4rem;
}
textarea:focus {
border-color: var(--akcent-svetly);
}
/* ------------------------------------------------------------
TLAČÍTKA
------------------------------------------------------------ */
button[type="submit"],
button[type="button"] {
background-color: var(--akcent); /* tmavší červená */
color: #f0f0f0;
border: 1px solid var(--akcent-okraj);
border-radius: var(--polomer);
padding: 0.5rem 1.2rem;
font-size: 0.9rem;
font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif;
font-weight: 600;
letter-spacing: 0.08em;
text-transform: uppercase;
cursor: pointer;
transition: background-color 0.15s, border-color 0.15s;
margin-top: 0.3rem;
}
button[type="submit"]:hover,
button[type="button"]:hover {
background-color: var(--akcent-hover);
border-color: var(--akcent-hover);
}
button[type="submit"]:focus,
button[type="button"]:focus {
outline: 2px solid var(--akcent-svetly);
outline-offset: 2px;
}
button:disabled {
background-color: #1e1e1e;
color: var(--ocel-svetly);
border-color: var(--ocel);
cursor: not-allowed;
}
button:disabled:hover {
background-color: #1e1e1e;
border-color: var(--ocel);
}
/* 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;
}
form[style*="display:inline"] button,
form[style*="display: inline"] button {
margin-top: 0;
padding: 0.2rem 0.6rem;
font-size: 0.82rem;
}
/* ------------------------------------------------------------
INDIKÁTOR SÍLY HESLA
------------------------------------------------------------ */
#heslo-sila,
#novy-heslo-sila {
display: inline-block;
font-size: 0.8rem;
font-family: 'Barlow Condensed', sans-serif;
letter-spacing: 0.04em;
color: var(--text-jemny);
margin-top: 0.25rem;
}
#tlacitko-duvod,
#novy-tlacitko-duvod {
font-size: 0.8rem;
font-family: 'Barlow Condensed', sans-serif;
color: var(--text-jemny);
margin-left: 0.4rem;
letter-spacing: 0.02em;
}
/* ------------------------------------------------------------
TABULKY
------------------------------------------------------------ */
table {
width: 100%;
border-collapse: collapse;
margin-top: 0.5rem;
font-size: 0.9rem;
}
table th {
background-color: var(--akcent); /* tmavší červená */
color: #f0f0f0;
text-align: left;
padding: 0.45rem 0.7rem;
font-size: 0.78rem;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
border: 1px solid var(--akcent-okraj);
}
table td {
background-color: var(--bg-prvek);
color: var(--text-hlavni);
padding: 0.4rem 0.7rem;
border: 1px solid var(--ocel);
vertical-align: middle;
font-family: 'Source Serif 4', Georgia, serif;
font-weight: 300;
}
table tr:nth-child(even) td {
background-color: #272727;
}
table tr:hover td {
background-color: #2e2e2e;
}
table td em {
color: var(--text-jemny);
font-style: italic;
font-size: 0.85rem;
}
/* ------------------------------------------------------------
KÓDOVÉ ELEMENTY
------------------------------------------------------------ */
code {
background-color: var(--bg-prvek);
color: #a8d8a8;
font-family: 'Courier New', Courier, monospace;
font-size: 0.85em;
padding: 0.1em 0.35em;
border-radius: var(--polomer);
border: 1px solid var(--ocel);
}
/* ------------------------------------------------------------
SEZNAMY
------------------------------------------------------------ */
ol, ul {
padding-left: 1.5rem;
margin-top: 0.3rem;
margin-bottom: 0.3rem;
font-family: 'Source Serif 4', Georgia, serif;
font-weight: 300;
}
ol li, ul li {
margin-bottom: 0.3rem;
line-height: 1.6;
}
/* ------------------------------------------------------------
RESPONSIVNÍ DESIGN
------------------------------------------------------------ */
@media (max-width: 680px) {
:root {
--pruh-max: 100%;
--sekce-padding: 1rem;
--sekce-mezera: 1.2rem;
}
h1 {
font-size: 1.6rem;
}
table {
font-size: 0.8rem;
}
table th,
table td {
padding: 0.3rem 0.35rem;
}
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%;
}
input[type="text"],
input[type="email"],
input[type="password"] {
font-size: 1rem; /* zabrání zoomu na iOS */
}
table input[type="password"] {
display: block;
width: 100%;
margin-bottom: 0.3rem;
}
}
@media (max-width: 400px) {
h1 {
font-size: 1.3rem;
}
button[type="submit"],
button[type="button"] {
width: 100%;
}
}
/* ------------------------------------------------------------
ŠÍŘKA OBSAHU jemný lem na širších obrazovkách
------------------------------------------------------------ */
@media (min-width: 700px) {
body {
background-image:
linear-gradient(to right,
var(--bg-hlavni) calc(50% - 340px),
#1c1c1c calc(50% - 340px),
#1c1c1c calc(50% + 340px),
var(--bg-hlavni) calc(50% + 340px)
);
}
}
/* ------------------------------------------------------------
PŘECHOD PŘI NAČTENÍ
------------------------------------------------------------ */
body {
animation: fadein 0.18s ease-in;
}
@keyframes fadein {
from { opacity: 0; }
to { opacity: 1; }
}