/* ============================================================ 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; } }