/* --- UNIVERSAL GREEN SYNTAX OS --- */
@import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;700&family=Inter:wght@400;700&display=swap');

/* OCHRANA PROTI CHROME BUGU: Explicitní vynucení základních kurzorů */
html, body { cursor: default; }
a, button, .hh-btn, .hh-link, .nav-item, .hh-sidebar-toggle-btn, select, label { cursor: pointer !important; }
input, textarea, .hh-input, .q-pos-input, .mini-input { cursor: text !important; }

:root {
    /* POZADÍ & KONTEJNERY */
    --color-bg-deep: #020617;        
    --color-bg-card: #0a0e1a;        
    --color-border: #1e293b;         
    
    /* ZELENÁ PALETA */
    --color-primary: #00d700;        
    --color-dim: #005f00;            
    --color-amber: #ffb100;          
    --color-text: #ABB2BF;           
    --color-blue: #3b82f6;           
    --color-error: #ff3333;          
    
    --glow: 0 0 15px rgba(0, 255, 65, 0.2);
    --radius: 6px;
    --font-main: 'Fira Code', monospace;
    --font-ui: 'Inter', sans-serif;
    
    --sidebar-width: 260px;
}

/* ====================================================================== */
/* SYSTEM UPGRADE: PROTOKOL SVĚTLÉHO REŽIMU (LIGHT MODE)                 */
/* ====================================================================== */
body.light-mode {
    --color-bg-deep: #f8fafc;        
    --color-bg-card: #ffffff;        
    --color-border: #cbd5e1;         
    --color-text: #0f172a;           
    --color-dim: #008000;            
    --color-primary: #00aa00;        
    --glow: 0 0 10px rgba(0, 170, 0, 0.15);
    background-image: none !important; 
}
body.light-mode .hh-card { background-image: none !important; }
body.light-mode .hh-sidebar { background: #f1f5f9; border-right: 1px solid #cbd5e1; }
body.light-mode .hh-input, body.light-mode .q-pos-input, body.light-mode .mini-input { background: #ffffff; color: #000; }
body.light-mode .hh-sidebar-toggle-btn { background: #f1f5f9; }

/* --- GLOBÁLNÍ NASTAVENÍ --- */
* { box-sizing: border-box; }
body {
    margin: 0; 
    background-color: var(--color-bg-deep);
    background-image: repeating-linear-gradient(0deg, rgba(0,255,65,0.025) 0px, rgba(0,255,65,0.025) 1px, transparent 1px, transparent 2px);
    background-attachment: fixed;
    color: var(--color-text); font-family: var(--font-ui);
    min-height: 100vh; overflow-x: hidden;
    letter-spacing: -0.5px;
    transition: background-color 0.3s, color 0.3s;
}

/* --- UNIVERZÁLNÍ KOMPONENTY --- */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: #050505; }
body.light-mode ::webkit-scrollbar-track { background: #f1f5f9; }
::-webkit-scrollbar-thumb { background: var(--color-dim); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--color-primary); }
/* Odstranění otravných šipek u číselných polí pro čistý vzhled */
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
input[type="number"] {
    -moz-appearance: textfield; /* Pravidlo pro Firefox */
}
.hh-card {
    background-color: var(--color-bg-card);
    background-image: repeating-linear-gradient(0deg, rgba(0,255,65,0.02) 0px, rgba(0,255,65,0.02) 1px, transparent 1px, transparent 2px);
    background-attachment: fixed;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 25px; margin-bottom: 25px;
    position: relative; box-shadow: 0 0 15px rgba(0,0,0,0.5);
    transition: border-color 0.3s, box-shadow 0.3s, background-color 0.3s;
}
body.light-mode .hh-card { box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05); }
.hh-card:hover { border-color: var(--color-primary); box-shadow: 0 0 20px var(--glow); }

.hh-card-label {
    position: absolute; top: -10px; left: 15px;
    background-color: var(--color-bg-deep);
    padding: 0 8px; font-weight: bold;
    color: var(--color-primary); font-size: 0.75rem;
    border: 1px solid var(--color-border);
    border-radius: 4px; text-transform: uppercase;
    font-family: var(--font-main);
    transition: background-color 0.3s;
}

.hh-input {
    width: 100%; background: #000; border: 1px solid var(--color-border);
    padding: 12px; color: var(--color-primary); font-family: var(--font-main);
    border-radius: var(--radius); outline: none; margin-bottom: 15px;
    transition: background-color 0.3s, border-color 0.3s;
}
.hh-input:focus { border-color: var(--color-primary); box-shadow: 0 0 5px var(--color-primary); }

.hh-btn {
    display: inline-block; width: 100%; background: transparent; 
    border: 1px solid var(--color-primary); color: var(--color-primary); 
    padding: 12px; font-weight: bold; text-transform: uppercase; 
    border-radius: var(--radius); transition: 0.3s;
    text-decoration: none !important; font-family: var(--font-main); text-align: center;
}
.hh-btn:hover { background: var(--color-primary); color: #000 !important; box-shadow: 0 0 15px var(--color-primary); }
.hh-btn-warn { border-color: var(--color-amber); color: var(--color-amber); }
.hh-btn-warn:hover { background: var(--color-amber); color: #000 !important; box-shadow: 0 0 15px var(--color-amber); }
.hh-btn-dim { border-color: var(--color-border); color: var(--color-text); }
.hh-btn-dim:hover { background: var(--color-border); color: #fff !important; box-shadow: none; }
body.light-mode .hh-btn-dim:hover { color: #000 !important; }

/* --- ARCHITEKTURA STRUKTURY WEBU --- */
/* Profilová vizitka v navigaci */
.sidebar-profile {
    padding: 15px; border-bottom: 1px solid var(--color-border); margin-bottom: 10px;
}
.sidebar-profile-link {
    text-decoration: none; display: flex; align-items: center; gap: 10px;
}
.sidebar-avatar {
    width: 35px; border: 1px solid var(--color-primary); border-radius: 4px;
}
.sidebar-username { color: var(--color-primary); font-size: 0.75rem; font-weight: bold; }
.sidebar-action { color: var(--color-dim); font-size: 0.55rem; font-family: var(--font-main); }
.sidebar-admin-badge { margin-top: 20px; padding: 10px 15px; color: var(--color-amber); font-size: 0.6rem; font-family: var(--font-main); }
.nav-item.sidebar-disconnect { color: var(--color-error); margin-top: auto; }

.hh-sidebar {
    position: fixed; left: 0; top: 0; width: var(--sidebar-width); height: 100vh;
    background: #080808; border-right: 1px solid var(--color-dim);
    padding: 20px; display: flex; flex-direction: column; z-index: 1000;
    transition: width 0.3s ease-in-out, min-width 0.3s ease-in-out, opacity 0.2s ease-in-out, background-color 0.3s, left 0.3s ease-in-out;
    opacity: 1; visibility: visible;
}
.hh-sidebar nav { flex-grow: 1; display: flex; flex-direction: column; }

.hh-main { 
    margin-left: var(--sidebar-width); padding: 40px; width: calc(100% - var(--sidebar-width)); 
    transition: margin-left 0.3s ease-in-out, padding-left 0.3s ease-in-out, width 0.3s ease-in-out, max-width 0.3s ease-in-out, padding 0.3s;
}

body.sidebar-collapsed .hh-sidebar { width: 0 !important; min-width: 0 !important; opacity: 0; overflow: hidden; visibility: hidden; border-right: none !important; }
body.sidebar-collapsed .hh-main { margin-left: 0 !important; padding-left: 40px !important; width: 100% !important; max-width: 100% !important; }

.hh-sidebar-toggle-btn {
    position: fixed; top: 50%; left: var(--sidebar-width); transform: translateY(-50%); z-index: 10000;
    width: 20px; height: 50px; background: #000; border: 1px solid var(--color-border); border-left: none;
    color: var(--color-dim); display: flex; align-items: center; justify-content: center;
    border-radius: 0 5px 5px 0; transition: left 0.3s ease-in-out, color 0.2s, border-color 0.2s, box-shadow 0.2s, background-color 0.3s;
    user-select: none;
}
.hh-sidebar-toggle-btn:hover { border-color: var(--color-primary); color: var(--color-primary); box-shadow: 0 0 10px rgba(0, 255, 65, 0.2); }
body.sidebar-collapsed .hh-sidebar-toggle-btn { left: 0px; }
.hh-sidebar-toggle-btn .close-icon { display: none; }
.hh-sidebar-toggle-btn .open-icon { display: block; }
body.sidebar-collapsed .hh-sidebar-toggle-btn .open-icon { display: none; }
body.sidebar-collapsed .hh-sidebar-toggle-btn .close-icon { display: block; }

.hh-logo-container { text-align: center; margin-bottom: 40px; padding: 10px; }
.hh-logo-img { max-width: 180px; height: auto; filter: invert(1) brightness(1.2) contrast(1.2) drop-shadow(0 0 8px var(--color-primary)); opacity: 0.9; margin-bottom: 10px; }
body.light-mode .hh-logo-img { filter: drop-shadow(0 0 2px rgba(0,0,0,0.1)); opacity: 1; }

.hh-link { color: var(--color-primary); text-decoration: none !important; font-family: var(--font-main); font-size: 0.7rem; opacity: 0.7; transition: 0.3s; }
.hh-link:hover { opacity: 1; text-shadow: 0 0 8px var(--color-primary); }
body.light-mode .hh-link:hover { text-shadow: none; font-weight: bold; }

.nav-item { display: flex; align-items: center; gap: 12px; padding: 12px; color: var(--color-text); text-decoration: none; border-radius: 6px; margin-bottom: 5px; transition: 0.2s; }
.nav-item:hover { color: var(--color-primary); background: rgba(0, 255, 65, 0.05); }
.nav-item.active { color: var(--color-primary); background: rgba(0, 255, 65, 0.1); border-left: 3px solid var(--color-primary); }

.hh-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 20px; }
.hh-grid-half { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }

/* --- EXPERTNÍ TŘÍDY --- */
.q-card.dragging { opacity: 0.4; transform: scale(0.98); border: 2px dashed var(--color-primary) !important; box-shadow: 0 0 15px rgba(0, 255, 65, 0.3); }
.drag-handle { color: var(--color-dim); font-size: 1.2rem; user-select: none; padding: 0 5px; cursor: grab !important; }
.drag-handle:active { cursor: grabbing !important; }
.q-pos-input { width: 55px; background: rgba(0,0,0,0.5); border: 1px solid rgba(0, 255, 65, 0.3); color: var(--color-primary); text-align: center; font-family: var(--font-main); font-size: 0.8rem; border-radius: 3px; padding: 2px; }
.q-pos-input:focus { border-color: var(--color-primary); outline: none; box-shadow: 0 0 5px var(--color-primary); }

.source-inactive { opacity: 0.3; pointer-events: none; transition: opacity 0.2s; }

.hh-btn-recalc { color: var(--color-error); border-color: var(--color-error); background: transparent; }
.hh-btn-recalc:hover { background: rgba(255, 50, 50, 0.15) !important; color: var(--color-error) !important; box-shadow: 0 0 10px var(--color-error) !important; }
.hh-btn-export { color: var(--color-amber); border-color: var(--color-amber); background: rgba(255, 177, 0, 0.05); }
.hh-btn-export:hover { background: rgba(255, 177, 0, 0.2) !important; color: var(--color-amber) !important; box-shadow: 0 0 10px var(--color-amber) !important; }

/* --- ANIMACE & EFEKTY --- */
.typewriter { font-family: var(--font-main); font-weight: bold; visibility: hidden; color: var(--color-primary); text-shadow: 0 0 5px currentColor; letter-spacing: 1px; }
body.light-mode .typewriter { text-shadow: none; }
.cursor { display: inline-block; width: 8px; height: 1.2em; background-color: var(--color-primary); margin-left: 5px; vertical-align: middle; box-shadow: 0 0 10px var(--color-primary); animation: blink 0.8s infinite; will-change: opacity; pointer-events: none; transition: opacity 0.5s; }
@keyframes blink { 0%, 100% { opacity: 1; } 50% { opacity: 0; } }

.text-error { color: var(--color-error); }
.text-dim { color: var(--color-dim); }
.text-primary { color: var(--color-primary); }
.text-number { color: var(--color-amber); }
.mission-text img { max-width: 100% !important; height: auto !important; display: block; margin: 20px auto; border: 1px solid #333; box-shadow: 0 0 20px rgba(0, 255, 65, 0.1); border-radius: 4px; }

/* ====================================================================== */
/* ADMIN COCKPIT & DATA TABLES (Refaktoring z admin.php)                  */
/* ====================================================================== */

.admin-cockpit {
    display: grid;
    grid-template-columns: 1fr 2fr 1fr;
    grid-template-areas: "unit deploy sched" "clock bulk sched";
    gap: 20px; 
    margin-bottom: 30px;
}
.area-unit { grid-area: unit; }
.area-deploy { grid-area: deploy; }
.area-clock { grid-area: clock; }
.area-bulk { grid-area: bulk; }
.area-sched { grid-area: sched; }

/* Flexbox roztahování pro Plánovač (Vyplní dynamicky 100% volného místa) */
.area-sched, .area-unit { 
    display: flex; 
    flex-direction: column; 
    height: 100%; 
}
.scroll-list { 
    flex: 1; 
    overflow-y: auto; 
    min-height: 0; /* Trik, který povolí posuvník až na úplném dně */
    margin-top: 15px; 
    font-size: 0.7rem; 
    border-top: 1px solid var(--color-border); 
}
.scroll-list.no-border { border-top: none; }

.unit-item { display: flex; gap: 5px; padding: 8px 0; border-bottom: 1px solid var(--color-border); align-items: center; }

.table-responsive { width: 100%; overflow-x: auto; }
.db-table { width: 100%; border-collapse: collapse; font-size: 0.75rem; white-space: nowrap; }
.db-table th { text-align: left; padding: 10px; color: var(--color-dim); border-bottom: 2px solid var(--color-border); }
.db-table td { padding: 8px; border-bottom: 1px solid var(--color-border); vertical-align: middle; }

.mini-input { background: #000; border: 1px solid var(--color-border); color: var(--color-primary); font-size: 0.65rem; padding: 2px 4px; border-radius: 3px; }
.btn-token { background:none; border:none; font-weight:bold; font-size: 1.1rem; padding: 0 4px; line-height: 1; }
.btn-save-unit { background: transparent; border: none; color: var(--color-primary); font-size: 0.7rem; padding: 0 5px; font-weight: bold; }

/* ====================================================================== */
/* MISSION FACTORY & INTEL EDITOR (manage_missions.php)                   */
/* ====================================================================== */
.mission-layout { display: grid; grid-template-columns: 1fr 2fr; gap: 30px; margin-top: 20px; }
.intel-layout { display: grid; grid-template-columns: 1fr 1fr 1.5fr; gap: 25px; }
.intel-editor-box { margin-top: 30px; padding: 25px; border: 1px solid var(--color-primary); background: rgba(0,255,65,0.03); border-radius: var(--radius); }
.scroll-list-large { max-height: 650px; overflow-y: auto; padding-right: 10px; }

.mission-item {
    border: 1px solid var(--color-border); padding: 12px; margin-bottom: 10px; 
    display: flex; justify-content: space-between; align-items: center; 
    background: rgba(0,0,0,0.2); border-radius: 4px; transition: 0.2s;
}
.mission-item:hover { border-color: var(--color-primary); background: rgba(0,0,0,0.4); }
.hh-flex-between { display: flex; justify-content: space-between; align-items: center; }

/* ====================================================================== */
/* THEORY FACTORY (manage_theory.php)					  */
/* ====================================================================== */
.theory-layout { display: grid; grid-template-columns: 1.5fr 1fr; gap: 30px; }
.theory-group-box { display: flex; flex-wrap: wrap; gap: 10px; }
.theory-group-label { font-size: 0.75rem; cursor: pointer; background: rgba(0,0,0,0.3); padding: 5px 10px; border: 1px solid var(--color-border); border-radius: 4px; transition: 0.2s; }
.theory-group-label:hover { border-color: var(--color-primary); }

/* ====================================================================== */
/* THEORY ARCHIVE (theory.php)			                          */
/* ====================================================================== */

.theory-sector-title { 
    grid-column: 1 / -1; /* Roztáhne nadpis přes všechny sloupce v gridu */
    font-family: var(--font-main); font-size: 0.8rem; 
    color: var(--color-primary); margin: 20px 0 0 0; 
    border-left: 3px solid var(--color-primary); padding-left: 10px; 
}

.theory-card { 
    text-decoration: none; display: flex; flex-direction: column; 
    border-left: 3px solid var(--color-amber); transition: 0.3s; 
}
.theory-card:hover { border-left-color: var(--color-primary); }
.theory-card:hover .theory-action { color: var(--color-primary); }

.theory-id { font-size: 0.55rem; color: var(--color-dim); font-family: var(--font-main); }
.theory-title { font-weight: bold; color: var(--color-text); margin: 8px 0; font-size: 0.85rem; }
.theory-action { font-size: 0.55rem; color: var(--color-amber); font-family: var(--font-main); margin-top: auto; transition: 0.3s; }

.theory-empty { text-align: center; padding: 60px; border-style: dashed; opacity: 0.5; }
.theory-empty-icon { font-size: 2rem; margin-bottom: 15px; color: var(--color-dim); }

/* ====================================================================== */
/* THEORY READER (theory_view.php)                                        */
/* ====================================================================== */

.theory-view-header { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 25px; }
.theory-view-meta { text-align: right; font-family: var(--font-main); }

/* Vzhled terminálového okna */
.terminal-window {
    background: var(--color-bg-deep); border: 1px solid var(--color-border); 
    border-radius: 8px; overflow: hidden; box-shadow: 0 25px 60px rgba(0,0,0,0.5);
}
body.light-mode .terminal-window { box-shadow: 0 10px 30px rgba(0,0,0,0.1); }

.terminal-header {
    background: var(--color-border); padding: 12px 20px; 
    display: flex; align-items: center; justify-content: space-between;
}
.terminal-dots { display: flex; gap: 8px; }
.term-dot { width: 11px; height: 11px; border-radius: 50%; }
.dot-red { background: #ff5f56; }
.dot-yellow { background: #ffbd2e; }
.dot-green { background: #27c93f; }

.terminal-title { font-family: var(--font-main); font-size: 0.65rem; color: var(--color-text); opacity: 0.7; }
.theory-content { padding: 40px; color: var(--color-text); line-height: 1.7; font-size: 0.95rem; }

/* Informační rámeček dole */
.theory-notice {
    margin-top: 40px; padding: 20px; border: 1px dashed var(--color-primary); 
    border-radius: var(--radius); background: rgba(0, 255, 65, 0.05); 
    display: flex; gap: 20px; align-items: center;
/* Ochrana proti poškozenému HTML z databáze */
    flex-wrap: wrap; 
    word-break: break-word;
    width: 100%;
    box-sizing: border-box;
    position: relative;
    z-index: 10;
}
.theory-notice p { font-size: 0.75rem; color: var(--color-text); margin: 0; } 
.theory-notice i { flex-shrink: 0; }

/* ====================================================================== */
/* USER DASHBOARD (dashboard.php)                                         */
/* ====================================================================== */

/* Profilová vizitka v hlavičce */
.dash-profile-card {
    display: grid; 
    grid-template-columns: 120px 1fr; 
    gap: 20px; 
    align-items: center;
}
.dash-avatar-box { text-align: center; }
.dash-avatar-img {
    width: 100px; height: 100px; 
    border: 2px solid var(--color-primary); 
    padding: 5px; background: #000; object-fit: cover;
}
.dash-profile-info { display: flex; justify-content: space-between; align-items: flex-start; }
.dash-username { color: var(--color-primary); font-family: var(--font-main); font-size: 1.4rem; font-weight: bold; }
.dash-lvl-badge { font-size: 1.2rem; color: var(--color-primary); font-family: var(--font-main); }

/* Oddělovače sektorů misí */
.dash-sector-title {
    font-family: var(--font-main); font-size: 0.8rem; 
    color: var(--color-primary); margin: 40px 0 15px 0; 
    border-left: 3px solid var(--color-primary); padding-left: 10px;
}

/* Karta mise */
.mission-card { position: relative; margin-top: 10px; display: flex; flex-direction: column; justify-content: space-between; }
.mission-card.locked { border-color: #441111; }
.mission-card.completed { border-color: var(--color-primary); }

.mission-status-badge { font-size: 0.55rem; margin-top: 2px; text-transform: uppercase; }
.mission-status-badge.completed { color: var(--color-primary); }
.mission-status-badge.progress { color: var(--color-amber); }

/* Vnitřek karty a rozmazání při zamknutí */
.mission-content { padding-top: 10px; flex-grow: 1; display: flex; flex-direction: column; justify-content: space-between;}
.mission-content.locked { opacity: 0.1; filter: blur(3px); pointer-events: none; user-select: none; }
.mission-desc { font-size: 0.75rem; min-height: 50px; margin-bottom: 20px; line-height: 1.4; color: var(--color-text); }
.mission-footer { display: flex; justify-content: space-between; align-items: flex-end; border-top: 1px solid var(--color-border); padding-top: 15px; }

.xp-label { font-size: 0.5rem; margin-bottom: 2px; }
.xp-value { font-weight: bold; font-family: var(--font-main); font-size: 1.1rem; }

/* ====================================================================== */
/* GLOBAL PERFORMANCE MATRIX (gradebook.php)                              */
/* ====================================================================== */

/* Obaly pro vyhledávání a řízení matrixu */
.matrix-controls { display: flex; gap: 15px; align-items: center; flex-wrap: wrap; }
.matrix-controls-right { margin-left: auto; color: var(--color-dim); font-size: 0.7rem; }

/* Architektura široké tabulky */
.matrix-table { width: 100%; border-collapse: collapse; font-size: 0.75rem; white-space: nowrap; }
.matrix-table thead tr { background: rgba(0,255,65,0.05); color: var(--color-primary); border-bottom: 2px solid var(--color-border); }
.matrix-table th { padding: 10px; text-align: center; border-right: 1px solid var(--color-border); min-width: 80px; }
.matrix-table th.col-operator { padding: 15px; text-align: left; min-width: 180px; }
.matrix-table th.col-perf { padding: 15px; text-align: right; background: rgba(255,177,0,0.1); color: var(--color-amber); border-right: none; }

.matrix-table tbody tr { border-bottom: 1px solid var(--color-border); }
.matrix-table td { border-right: 1px solid var(--color-border); vertical-align: middle; }
.matrix-table td.col-operator { padding: 10px 12px; }

/* Buňky se zápisem a hover efekty */
.xp-cell { transition: background 0.2s; cursor: pointer; text-align: center; }
.xp-cell:hover { background: rgba(255, 177, 0, 0.2) !important; }
.xp-cell.not-deployed { background: rgba(0,0,0,0.3) !important; color: #444 !important; }
.xp-cell.bonus-active { background: rgba(255,177,0,0.05); }

/* Vnitřek buněk */
.op-name { font-weight: bold; color: #fff; font-size: 0.85rem; }
.op-badge-skip { color: var(--color-primary); font-size: 0.7rem; margin-left: 5px; border: 1px solid var(--color-primary); padding: 1px 4px; border-radius: 3px; }
.op-aka { font-size: 0.55rem; color: var(--color-dim); }

.perf-cell { text-align: right; padding: 12px; font-weight: bold; background: rgba(255,177,0,0.03); border-right: none !important; }

/* ====================================================================== */
/* PROGRESS LOG (my_progress.php)                                         */
/* ====================================================================== */

/* Hlavní statistická karta vlevo a vpravo */
.prog-summary-card {
    display: grid; 
    grid-template-columns: 1fr 2fr; 
    gap: 30px; 
    align-items: center; 
    margin-bottom: 30px;
}
.prog-stat-box { text-align: center; border-right: 1px solid var(--color-border); padding-right: 15px; }
.prog-perc-value { font-size: 3rem; font-weight: bold; color: var(--color-primary); }
.prog-xp-value { font-size: 0.7rem; font-family: var(--font-main); color: var(--color-dim); }

.prog-keys-box { display: flex; justify-content: space-between; margin-bottom: 10px; }
.prog-disclaimer { font-size: 0.6rem; color: var(--color-dim); margin-top: 10px; line-height: 1.4; }

/* Karta pro přeskočení bosse */
.prog-boss-box { margin-top: 15px; padding-top: 15px; border-top: 1px dashed var(--color-border); text-align: center; }

/* Tabulka s historií (Responsive) */
.history-table { width: 100%; border-collapse: collapse; font-size: 0.85rem; }
.history-table thead tr { color: var(--color-dim); border-bottom: 1px solid var(--color-border); text-align: left; }
.history-table th { padding: 10px; }
.history-table tbody tr { border-bottom: 1px solid var(--color-border); }
.history-table td { padding: 15px; }

.history-xp-col { text-align: center; font-family: var(--font-main); }
.history-acc-col { text-align: center; }

.acc-badge {
    display: inline-block; padding: 2px 8px; border-radius: 3px; 
    background: rgba(0,0,0,0.3); font-weight: bold; min-width: 50px;
}
.acc-badge.bonus { background: rgba(255,177,0,0.1); border: 1px solid var(--color-amber); color: var(--color-amber); font-size: 0.7rem; }

/* ====================================================================== */
/* ACTIVE MISSION INTERFACE (mission.php)                                 */
/* ====================================================================== */

/* Plovoucí časomíra */
.timer-hud {
    position: fixed; top: 20px; right: 20px; background: rgba(0,0,0,0.85); 
    border: 2px solid var(--color-amber); color: var(--color-amber);
    padding: 10px 20px; font-family: var(--font-main); font-size: 1.2rem;
    border-radius: 5px; box-shadow: 0 0 15px rgba(255, 191, 0, 0.2); z-index: 1000;
}
.timer-hud.critical { border-color: var(--color-error); color: var(--color-error); animation: pulse 1s infinite; }
@keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(255,0,0,0.7); } 70% { box-shadow: 0 0 0 15px rgba(255,0,0,0); } 100% { box-shadow: 0 0 0 0 rgba(255,0,0,0); } }

/* Hlavní kontejner mise */
.mission-container { max-width: 100%; margin-top: 20px; }
.mission-briefing-text { color: var(--color-text); line-height: 1.6; }
.mission-sync-bar {
    display: flex; justify-content: space-between; margin-top: 20px; padding: 10px; 
    border: 1px dashed var(--color-dim); font-size: 0.7rem; color: var(--color-amber);
}

/* Skupiny a otázky */
.intel-group {
    background: rgba(0,255,65,0.02); border: 1px solid var(--color-border); 
    padding: 25px; margin-bottom: 40px; border-radius: var(--radius); 
    box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
}
.question-block { margin-bottom: 40px; }
.question-block.nested { margin-left: 35px; border-left: 1px solid var(--color-border); padding-left: 20px; }
.question-header { color: var(--color-primary); font-family: var(--font-main); font-size: 0.75rem; margin-bottom: 12px; display: flex; align-items: center; gap: 10px; }
.badge-intel { background: var(--color-amber); color: #000; padding: 2px 8px; font-weight: bold; font-size: 0.6rem; border-radius: 2px; }
.intel-separator { border-bottom: 1px solid var(--color-border); margin: 25px 0; }
.option-label { display: block; margin-bottom: 10px; cursor: pointer; font-size: 0.9rem; color: var(--color-text); }

/* Nápovědy (Hints) */
.hints-wrapper { margin-top: 15px; display: flex; flex-wrap: wrap; gap: 8px; }
.btn-hint { font-size: 0.55rem; width: auto; padding: 3px 12px; border-color: var(--color-amber); color: var(--color-amber); }
.hint-box { margin-top: 8px; padding: 10px; background: rgba(0,255,65,0.05); border: 1px solid var(--color-border); color: var(--color-primary); font-family: var(--font-main); font-size: 0.75rem; }
.btn-transmit { margin-top: 20px; border-color: var(--color-primary); box-shadow: 0 0 15px rgba(0,255,65,0.1); }

/* ====================================================================== */
/* MISSION DEBRIEFING (mission_results.php)                               */
/* ====================================================================== */

.debrief-container { max-width: 800px; margin: 40px auto; }
.debrief-card { text-align: center; margin-bottom: 30px; }
.debrief-perc { 
    font-size: 4rem; font-weight: bold; color: var(--color-primary); 
    text-shadow: 0 0 15px var(--color-primary); margin: 20px 0; 
}
.debrief-xp { font-family: var(--font-main); color: var(--color-dim); margin-bottom: 20px; }
.debrief-title { font-family: var(--font-main); font-size: 0.8rem; color: var(--color-amber); margin: 40px 0 20px 0; }

.q-result-card { margin-bottom: 15px; background: rgba(0,0,0,0.2); }
.q-result-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 5px; }
.q-result-label { font-size: 0.7rem; color: var(--color-dim); }
.q-result-xp-badge { 
    font-family: var(--font-main); font-size: 0.7rem; 
    border: 1px solid currentColor; padding: 2px 8px; 
    border-radius: 3px; background: rgba(0,0,0,0.3); 
}
.q-result-text { margin-bottom: 15px; color: var(--color-text); }
.q-result-answers { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; font-size: 0.8rem; }
.q-result-col-label { font-size: 0.6rem; color: var(--color-dim); display: block; margin-bottom: 3px; }

/* ====================================================================== */
/* QUESTION MANAGER (manage_questions.php)                                */
/* ====================================================================== */

/* Horní ovládací panel */
.q-manager-controls { display: flex; gap: 15px; align-items: center; flex-wrap: wrap; margin-bottom: 30px; }
.q-manager-controls form { margin: 0; }
.q-manager-controls .hh-btn-dim { margin-left: auto; }

/* Samotná karta otázky */
.q-card {
    transition: transform 0.2s, box-shadow 0.2s, opacity 0.2s, border-color 0.3s;
    background: var(--color-bg-card);
}
.q-card-header { display: flex; justify-content: space-between; align-items: center; }
.q-card-tools { display: flex; align-items: center; gap: 15px; }
.q-card-actions { display: flex; gap: 15px; }
.q-card-type { color: var(--color-amber); font-size: 0.65rem; }
.q-card-snippet { margin-top: 10px; font-size: 0.85rem; color: var(--color-text); opacity: 0.7; }

/* Modifikátory karet */
.q-card.is-info { border-left: 4px solid var(--color-amber) !important; }
.q-card.is-empty { opacity: 0.6; }

/* Třídy pro tahání otázek (Drag & Drop) */
.q-card.dragging {
    opacity: 0.4;
    transform: scale(0.98);
    border: 2px dashed var(--color-primary) !important;
    box-shadow: 0 0 15px rgba(0, 255, 65, 0.3);
}
.drag-handle { cursor: grab; color: var(--color-dim); font-size: 1.2rem; user-select: none; padding: 0 5px; }
.drag-handle:active { cursor: grabbing; }

.q-pos-input {
    width: 55px; background: rgba(0,0,0,0.5); border: 1px solid var(--color-border); 
    color: var(--color-primary); text-align: center; font-family: var(--font-main); 
    font-size: 0.8rem; border-radius: 3px; padding: 2px;
}
body.light-mode .q-pos-input { background: #fff; }
.q-pos-input:focus { border-color: var(--color-primary); outline: none; box-shadow: 0 0 5px var(--glow); }

/* Upozornění (Alert box) */
.hh-alert-ok {
    background: rgba(0, 255, 65, 0.1); border: 1px solid var(--color-primary); 
    color: var(--color-primary); padding: 15px; margin-bottom: 20px; font-weight: bold;
}

/* ====================================================================== */
/* QUESTION EDITOR (edit_question.php)			                  */
/* ====================================================================== */

.q-editor-container { max-width: 800px; margin: 20px auto; }
.q-editor-actions { margin-top: 30px; display: flex; justify-content: space-between; align-items: center; }

/* Box pro zaškrtávací možnosti */
.options-database {
    margin-top: 20px; padding: 15px; border: 1px solid var(--color-border); 
    background: rgba(0,0,0,0.2); border-radius: var(--radius);
}
body.light-mode .options-database { background: rgba(0,0,0,0.02); }

.option-row {
    display: flex; gap: 10px; align-items: center; margin-top: 8px; 
    border-bottom: 1px solid var(--color-border); padding-bottom: 5px;
}
.option-checkbox { width: 20px; height: 20px; accent-color: var(--color-primary); cursor: pointer; }
.option-input { margin: 0; flex: 1; }

/* ====================================================================== */
/* ADMIN VIEW SUBMISSION (view_submission.php)                            */
/* ====================================================================== */

/* Hlavičková karta s celkovým hodnocením */
.sub-summary-card { border-color: var(--color-primary); margin-bottom: 30px; }
.sub-summary-header { display: flex; justify-content: space-between; align-items: center; }
.sub-operator-info { line-height: 1.5; font-size: 0.85rem; }
.sub-total-box { text-align: right; }
.sub-total-xp { font-size: 2rem; font-weight: bold; color: var(--color-primary); }

/* Jednotlivé karty otázek ve výpisu */
.sub-q-card { margin-bottom: 10px; transition: 0.2s; }
.sub-q-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 10px; }
.sub-q-title { font-weight: bold; margin-bottom: 15px; color: var(--color-text); }

/* Blok s rozborem odpovědí žáka */
.sub-ans-box {
    background: rgba(0,0,0,0.4); padding: 15px; border-radius: var(--radius); 
    font-size: 0.85rem; border: 1px solid var(--color-border);
}
body.light-mode .sub-ans-box { background: rgba(0,0,0,0.03); }

.sub-opt-row { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.sub-opt-key { font-size: 0.6rem; background: rgba(0,255,65,0.1); padding: 2px 5px; border-radius: 3px; border: 1px solid rgba(0,255,65,0.2); color: var(--color-primary); }

.sub-input-row { display: flex; flex-direction: column; gap: 8px; }

/* Karta pro manuální Override bodů */
.sub-override-card { border-color: var(--color-amber); margin-top: 40px; }
.sub-override-card .hh-card-label { color: var(--color-amber); border-color: var(--color-amber); }
.sub-override-form { display: flex; align-items: flex-end; gap: 20px; }
/* Manuální úpravy u jednotlivých otázek */
.sub-q-override-input {
    width: 60px; background: rgba(0,0,0,0.8); border: 1px solid var(--color-amber); 
    color: var(--color-amber); text-align: center; font-family: var(--font-main); 
    font-size: 0.75rem; border-radius: 3px; padding: 2px; margin-right: 5px;
}
.sub-q-override-input:focus { outline: none; box-shadow: 0 0 5px var(--color-amber); }
.badge-override {
    background: rgba(157, 0, 255, 0.1); border: 1px solid #9d00ff; color: #d080ff;
    font-family: var(--font-main); font-size: 0.6rem; padding: 2px 5px; border-radius: 3px; margin-right: 10px;
}

/* ====================================================================== */
/* TERMINAL AUTH (login.php)                                              */
/* ====================================================================== */

.auth-body {
    display: flex; justify-content: center; align-items: center; 
    height: 100vh; margin: 0; 
    /* Pokud nenajde proměnnou, použije automaticky temně černou #050505 */
    background-color: var(--color-bg, #050505); 
    color: var(--color-text, #fff);
}

/* Záchranná brzda pro případ, že by žák překlikl na světlý režim */
body.light-mode.auth-body {
    background-color: var(--color-bg-light, #f1f5f9);
}

.auth-wrapper { width: 100%; max-width: 420px; padding: 20px; }

.auth-title {
    text-align: center; color: var(--color-primary); margin-bottom: 30px; 
    font-family: var(--font-main); letter-spacing: 2px;
}
.auth-error-box {
    color: var(--color-error); font-size: 0.8rem; text-align: center; 
    font-family: var(--font-main); background: rgba(255,0,0,0.1); 
    padding: 10px; border: 1px solid var(--color-error); margin: 0 0 20px 0;
}
.auth-footer {
    margin-top: 25px; text-align: center; font-size: 0.6rem; color: var(--color-dim); 
    font-family: var(--font-main); border-top: 1px solid var(--color-border); padding-top: 15px;
}

/* Speciální tlačítko pro přepínač motivu v loginu */
.auth-theme-btn {
    position: fixed; top: 20px; right: 20px; background: none; border: 1px solid var(--color-border);
    color: var(--color-dim); padding: 5px 10px; border-radius: var(--radius); cursor: pointer;
    font-size: 0.8rem; transition: 0.3s;
}
.auth-theme-btn:hover { border-color: var(--color-primary); color: var(--color-primary); }

/* ====================================================================== */
/* ARMORY & ACHIEVEMENTS (admin_achievements.php)                        */
/* ====================================================================== */

/* Hlavní rozvržení – levý úzký a pravý širší sloupec */
.ach-layout { display: grid; grid-template-columns: 1fr 1.8fr; gap: 20px; }
.ach-col { display: flex; flex-direction: column; gap: 20px; }

/* Mini editační prvky uvnitř seznamu dovedností */
.mini-input-skill { 
    background: rgba(0,0,0,0.5); border: 1px solid var(--color-border); 
    color: var(--color-primary); font-size: 0.75rem; padding: 4px; 
    border-radius: 3px; font-family: var(--font-main); width: 100%; margin-bottom: 5px;
    box-sizing: border-box;
}
body.light-mode .mini-input-skill { background: #fff; }
.mini-input-skill.skill-title { font-weight: bold; }
.mini-input-skill.skill-desc { height: 50px; font-family: sans-serif; color: var(--color-text); }

.skill-item { border-bottom: 1px solid var(--color-border); padding: 15px 0; }
.skill-actions { display: flex; justify-content: space-between; align-items: center; }
.skill-save-btn { background: none; border: none; cursor: pointer; padding: 0; font-family: var(--font-main); }

/* Grid pro dlaždice aktivních ocenění */
.ach-grid-list { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }

.ach-item-box {
    background: rgba(0,0,0,0.3); padding: 15px; border: 1px solid var(--color-border); 
    position: relative; border-radius: 4px;
}
body.light-mode .ach-item-box { background: rgba(0,0,0,0.02); }

.ach-delete-btn { position: absolute; top: 5px; right: 10px; text-decoration: none; }
.ach-meta-wrapper { display: flex; gap: 15px; align-items: center; }
.ach-icon-img { width: 35px; height: 35px; object-fit: contain; }
.ach-title-text { color: var(--color-primary); font-size: 0.75rem; font-weight: bold; }
.ach-info-text { font-size: 0.55rem; color: var(--color-amber); margin-top: 3px; font-family: var(--font-main); }

/* ====================================================================== */
/* ADMIN & FORM UTILITIES                                                 */
/* ====================================================================== */

/* Chybové hlášky a alerty */
.hh-alert-error {
    background: rgba(255, 0, 0, 0.1); border: 1px solid var(--color-error); 
    color: var(--color-error); padding: 12px; margin-bottom: 20px; 
    font-size: 0.8rem; font-weight: bold;
}

/* Dynamické flex formuláře (řadí se vedle sebe, na mobilu pod sebe) */
.hh-flex-form { display: flex; gap: 10px; align-items: center; margin-bottom: 10px; }
.hh-flex-form.wrap { flex-wrap: wrap; }
.hh-flex-form .hh-input { margin: 0; flex: 1; }
.hh-flex-col { display: flex; flex-direction: column; gap: 15px; }

/* Oddělovače a popisky */
.hh-divider { border: 0; border-top: 1px solid var(--color-border); margin: 15px 0; }
.cb-label { display: block; font-size: 0.65rem; margin-bottom: 5px; cursor: pointer; font-family: var(--font-main); }
.row-locked { background: rgba(255,0,0,0.05); }

/* ====================================================================== */
/* USER PROFILE (profile.php)                                             */
/* ====================================================================== */

.profile-layout { display: grid; grid-template-columns: 1fr 2fr; gap: 30px; align-items: start; }
.profile-col { display: flex; flex-direction: column; gap: 20px; }

/* Vizitka a odznaky */
.profile-card-center { text-align: center; }
.profile-avatar-main { width: 120px; border: 2px solid var(--color-primary); padding: 5px; background: #000; margin: 20px 0; object-fit: cover; }
.profile-nickname { font-weight: bold; color: var(--color-primary); font-size: 1.2rem; }

.achievements-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(60px, 1fr)); gap: 10px; padding-top: 10px; }
.ach-icon-small { width: 45px; height: 45px; filter: drop-shadow(0 0 5px var(--color-primary)); margin-bottom: 5px; }
.ach-title-small { font-size: 0.5rem; color: var(--color-primary); text-transform: uppercase; overflow: hidden; }

/* Výběr Avatara */
.avatar-selection-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin: 10px 0 25px 0; }
.avatar-label { cursor: pointer; text-align: center; }
.avatar-select { width: 50px; border: 2px solid var(--color-border); padding: 3px; border-radius: var(--radius); transition: 0.3s; background: #000; }
input[type="radio"]:checked + .avatar-select { border-color: var(--color-primary); box-shadow: 0 0 10px var(--color-primary); }

.msg-error { color: var(--color-error); font-size: 0.75rem; margin-bottom: 10px; font-family: var(--font-main); }
.msg-success { color: var(--color-primary); font-size: 0.75rem; margin-bottom: 10px; font-family: var(--font-main); }

/* ====================================================================== */
/* RESPONSIVE PROTOKOL: MOBILY A TABLETY                                  */
/* ====================================================================== */
@media (max-width: 1200px) {
    .area-sched { min-height: 400px; }
    .admin-cockpit {
        grid-template-columns: 1fr 1fr;
        grid-template-areas: "deploy deploy" "sched sched" "unit clock" "bulk bulk";
    }
    .mission-layout { grid-template-columns: 1fr; }
    .intel-layout { grid-template-columns: 1fr 1fr; }
    .theory-layout { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
    .hh-main { margin-left: 0 !important; width: 100% !important; max-width: 100% !important; padding: 20px; padding-left: 35px; }
    .hh-sidebar { position: fixed; left: calc(var(--sidebar-width) * -1); top: 0; width: var(--sidebar-width); z-index: 99999; box-shadow: 5px 0 25px rgba(0,0,0,0.8); }
    .hh-sidebar-toggle-btn { left: 0px !important; border-left: none; }
    body:not(.sidebar-collapsed) .hh-sidebar { left: 0px !important; }
    body:not(.sidebar-collapsed) .hh-sidebar-toggle-btn { left: var(--sidebar-width) !important; }
    
    .hh-grid, .hh-grid-half { grid-template-columns: 1fr !important; }
    
    .admin-cockpit {
        grid-template-columns: 1fr;
        grid-template-areas: "deploy" "sched" "unit" "clock" "bulk";
    }
    .macro-border-right { border-right: none !important; padding-right: 0 !important; border-bottom: 1px solid var(--color-border); padding-bottom: 20px; margin-bottom: 10px; }
    
    /* Mobilní zlom pro Mission Factory */
    .intel-layout { grid-template-columns: 1fr; }
    .mission-item { flex-direction: column; align-items: flex-start; gap: 15px; }
    /* Mobilní zlomení pro Dashboard */
    .dash-profile-card { grid-template-columns: 1fr; text-align: center; }
    .dash-profile-info { flex-direction: column; align-items: center; gap: 10px; }
    .dash-profile-info > div { text-align: center !important; }

/* Mobilní zlom pro Gradebook Controls */
    .matrix-controls { flex-direction: column; align-items: stretch; }
    .matrix-controls-right { margin-left: 0; text-align: center; margin-top: 10px; }

/* Mobilní zlom pro Progress Log */
    .prog-summary-card { grid-template-columns: 1fr; }
    .prog-stat-box { border-right: none; border-bottom: 1px solid var(--color-border); padding-right: 0; padding-bottom: 15px; }

/* Mobilní úprava pro Misi */
    .timer-hud { top: 10px; right: 10px; font-size: 1rem; padding: 8px 15px; }
    .question-block.nested { margin-left: 10px; padding-left: 15px; }
    .intel-group { padding: 15px; }

/* Mobilní úprava pro Výsledky */
    .debrief-container { margin: 20px auto; }
    .q-result-answers { grid-template-columns: 1fr; gap: 10px; }

/* Mobilní úprava pro čtení teorie */
    .theory-view-header { flex-direction: column; align-items: flex-start; gap: 15px; }
    .theory-view-meta { text-align: left; }
    .theory-content { padding: 20px; }

/* Mobilní úprava pro Question Manager */
    .q-manager-controls { flex-direction: column; align-items: stretch; }
    .q-manager-controls .hh-btn-dim { margin-left: 0; }
    .q-card-header { flex-direction: column; align-items: flex-start; gap: 15px; }

/* Mobilní úprava pro Editor Otázek */
    .q-editor-actions { flex-direction: column-reverse; gap: 20px; }
    .q-editor-actions .hh-btn { width: 100% !important; }    

/* Mobilní úprava pro Rentgen odevzdání */
    .sub-summary-header { flex-direction: column; align-items: flex-start; gap: 15px; }
    .sub-total-box { text-align: left; }
    .sub-override-form { flex-direction: column; align-items: stretch; gap: 10px; }
    .sub-override-form .hh-btn { width: 100% !important; }

/* Mobilní zlom pro Achievements Lab */
    .ach-layout { grid-template-columns: 1fr; }
    .ach-grid-list { grid-template-columns: 1fr; }

/* Mobilní zlomení univerzálních formulářů */
    .hh-flex-form { flex-direction: column; align-items: stretch; }
    .hh-flex-form .hh-btn { width: 100% !important; margin-top: 5px; }

/* Mobilní zlomení profilu */
    .profile-layout { grid-template-columns: 1fr; }
}
