Files
MSPPPPaM/css/auth-styl.css
T

607 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
Montserrat moderní bezpatkové, kapitálky pro nadpisy
IBM Plex Serif moderní patkové pro tělo textu
------------------------------------------------------------ */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600;700&family=IBM+Plex+Serif: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 = barva oddělovačů mezi bloky */
--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: 'IBM Plex Serif', 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: 'Montserrat', '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); padding-bottom: var(--sekce-padding); }
body > h2 { padding-top: var(--sekce-padding); padding-bottom: var(--sekce-padding); }
body > h3 { padding-top: var(--sekce-padding); padding-bottom: var(--sekce-padding); }
body > p { padding-top: var(--sekce-padding); padding-bottom: var(--sekce-padding); }
body > form { padding-top: var(--sekce-padding); padding-bottom: var(--sekce-padding); }
body > table { padding-top: var(--sekce-padding); 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: var(--sekce-padding); padding-bottom: var(--sekce-padding); }
body > textarea { padding-top: var(--sekce-padding); 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 nahoře */
body > h1 + h2 {
margin-top: 0;
padding-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;
}
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;
}
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: 'IBM Plex Serif', 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: 'IBM Plex Serif', 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: 'Montserrat', '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: 'Montserrat', 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: 'Montserrat', 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: 'IBM Plex Serif', 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: 'IBM Plex Serif', 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
------------------------------------------------------------ */
/* Na širších obrazovkách je body #141414 po celé šířce.
Světlejší bloky obsahu jsou omezeny na --pruh-max šířku,
takže po stranách přirozeně zůstává tmavé pozadí. */
/* ------------------------------------------------------------
PŘECHOD PŘI NAČTENÍ
------------------------------------------------------------ */
body {
animation: fadein 0.18s ease-in;
}
@keyframes fadein {
from { opacity: 0; }
to { opacity: 1; }
}