/* C6: atribut `hidden` musí přebít `display` z komponent. Bez tohoto pravidla ho
   .typing-profile-bar, .typing-generator-row i .typing-diagnostic-row (display: grid)
   přebíjely, takže solo profil i začátečnická úroveň ty části jen označily za skryté
   a dál byly vidět. */
[hidden] {
  display: none !important;
}

:root {
  --bg: #eef2f6;
  --card: #ffffff;
  --text: #1f2937;
  --muted: #52606d;
  --line: #d8e1ea;
  --primary: #0f766e;
  --primary-hover: #0b5f59;
  --danger: #b42318;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  color: var(--text);
  font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
  background: linear-gradient(180deg, #edf2f7 0%, #f7fafc 100%);
}

.page-header {
  padding: 32px 20px 16px;
}

.header-inner {
  max-width: 1100px;
  margin: 0 auto;
}

h1 {
  margin: 0 0 8px;
  font-size: clamp(1.8rem, 4vw, 2.3rem);
}

.brand-mark {
  margin: 0 0 8px;
  display: inline-flex;
  align-items: flex-end;
  gap: 2px;
  flex-wrap: wrap;
  line-height: 1;
  font-weight: 900;
  letter-spacing: 0.02em;
}

.brand-mark .brand-el {
  color: #4b5be7;
  font-size: clamp(2rem, 5vw, 3rem);
}

.brand-mark .brand-core {
  color: #1f2937;
  font-size: clamp(2rem, 5vw, 3rem);
}

.brand-mark .brand-t {
  color: #0f766e;
  font-size: clamp(2.5rem, 5.8vw, 3.6rem);
  line-height: 0.86;
  transform: translateY(4px);
}

.brand-mark .brand-sub {
  font-size: 0.95rem;
  color: #52606d;
  font-weight: 700;
  margin-left: 10px;
  margin-bottom: 5px;
}

.brand-home-link {
  text-decoration: none;
  color: inherit;
  display: inline-block;
}

.brand-home-link:focus-visible {
  outline: 2px solid #4b5be7;
  outline-offset: 4px;
  border-radius: 10px;
}

h2 {
  margin: 0 0 16px;
  font-size: 1.35rem;
}

h3 {
  margin: 0;
  font-size: 1rem;
}

p {
  margin: 0;
}

.pill-row {
  margin-top: 12px;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.pill {
  display: inline-block;
  padding: 6px 10px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  font-size: 0.85rem;
}

.mode-switcher {
  margin-top: 10px;
  display: inline-flex;
  gap: 8px;
  flex-wrap: wrap;
}

.mode-link {
  display: inline-block;
  text-decoration: none;
  color: #233042;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  padding: 6px 10px;
  font-size: 0.83rem;
  font-weight: 700;
}

.mode-link:hover {
  background: #f8fbfd;
}

.mode-link.is-active {
  background: #e6fffa;
  color: #0f766e;
  border-color: #bfe9df;
}

.retro-control {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 999px;
  padding: 4px 8px;
  font-size: 0.79rem;
  font-weight: 700;
  color: #334155;
}

.retro-control select {
  width: auto;
  min-width: 106px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  padding: 3px 8px;
  font-size: 0.76rem;
}

.project-switcher {
  margin-top: 14px;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(220px, 280px) minmax(220px, 1fr) auto;
  align-items: end;
}

.project-picker,
.project-name {
  min-width: 0;
}

.project-actions {
  display: inline-flex;
  gap: 8px;
  flex-wrap: wrap;
}

.layout {
  max-width: 1100px;
  margin: 0 auto;
  padding: 12px 20px 40px;
  display: grid;
  gap: 18px;
}

.app-tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
  align-content: flex-start;
  overflow: visible;
  padding: 10px;
}

[data-product-profile="solo_student"] .app-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.tab-btn {
  flex: 0 1 auto;
  --tab-scale: 1;
  background: #fff;
  color: #233042;
  border: 1px solid var(--line);
  border-radius: 12px;
  min-height: 36px;
  padding: calc(9px * var(--tab-scale)) calc(12px * var(--tab-scale));
  font-size: calc(1rem * var(--tab-scale));
  line-height: 1.1;
  white-space: nowrap;
}

[data-product-profile="solo_student"] .tab-btn {
  min-height: 58px;
  border-radius: 18px;
  font-size: 1.02rem;
  font-weight: 800;
  letter-spacing: 0.01em;
  background: linear-gradient(135deg, #f8fffd 0%, #eef8ff 100%);
  box-shadow: 0 10px 20px rgba(15, 23, 42, 0.08);
}

[data-product-profile="solo_student"] .tab-btn.active {
  background: linear-gradient(135deg, #dff8f1 0%, #e8f2ff 100%);
  border-color: #8fd5c2;
}

.tab-btn.active {
  background: #e6fffa;
  color: #0f766e;
  border-color: #bfe9df;
}

.tab-btn[data-priority="low"] {
  --tab-scale: 0.68;
}

.app-panel {
  display: none;
  gap: 18px;
}

.app-panel.active {
  display: grid;
}

.card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 18px;
  box-shadow: 0 6px 16px rgba(15, 23, 42, 0.05);
}

[data-product-profile="solo_student"] .overview-entry-card {
  order: 1;
}

[data-product-profile="solo_student"] .overview-taccounts-card {
  order: 2;
  border-color: #9fd7c9;
  box-shadow: 0 10px 24px rgba(15, 118, 110, 0.10);
}

[data-product-profile="solo_student"] .overview-preview-card {
  order: 3;
}

.overview-sort-field {
  min-width: 190px;
}

.student-panel {
  display: none;
}

[data-product-profile="solo_student"] .student-panel {
  display: grid;
  gap: 12px;
  margin: 0 0 16px;
  padding: 16px;
  border-radius: 18px;
  border: 1px solid rgba(143, 213, 194, 0.9);
  background:
    radial-gradient(circle at top right, rgba(152, 223, 204, 0.34), transparent 38%),
    linear-gradient(135deg, #f8fffd 0%, #eef7ff 100%);
}

.student-panel-kicker {
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #0f766e;
}

.student-panel-title {
  margin: 0;
  font-size: clamp(1.05rem, 2vw, 1.28rem);
  line-height: 1.3;
}

.entry-md-dal-hint {
  margin-top: -2px;
}

[data-product-profile="solo_student"] .entry-md-dal-hint {
  margin: -2px 0 4px;
  padding: 10px 12px;
  border-radius: 12px;
  background: #f6fbff;
  border: 1px solid #d9e9f5;
  color: #28506d;
  font-weight: 600;
}

.student-step-row,
.student-chip-row {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.student-step,
.student-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid rgba(191, 225, 217, 0.95);
  color: #244256;
  font-size: 0.92rem;
  font-weight: 700;
}

.student-step-num {
  width: 1.6rem;
  height: 1.6rem;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  background: #0f766e;
  color: #fff;
  font-size: 0.78rem;
}

form {
  display: grid;
  gap: 12px;
}

.entry-meta {
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(280px, 1fr) 230px;
}

.entry-description-field {
  min-width: 0;
}

.entry-date-field {
  max-width: 230px;
}

.entry-mode-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(7, minmax(120px, 1fr));
}

label {
  display: grid;
  gap: 6px;
  font-size: 0.95rem;
}

input,
select,
textarea,
button {
  font: inherit;
}

input,
select,
textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  padding: 9px 10px;
}

textarea {
  resize: vertical;
}

button {
  border: 0;
  border-radius: 10px;
  padding: 10px 14px;
  background: var(--primary);
  color: #fff;
  font-weight: 600;
  cursor: pointer;
}

button:hover {
  background: var(--primary-hover);
}

button.secondary {
  background: #fff;
  color: var(--text);
  border: 1px solid var(--line);
}

button.secondary:hover {
  background: #f8fafc;
}

button.danger {
  background: #fff;
  border: 1px solid #f2c2bf;
  color: var(--danger);
}

button.danger:hover {
  background: #fff7f6;
}

.line-items-header {
  margin-top: 6px;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}

/* C8: přepínač rozsahu nabídky účtů je vidět vedle titulku položek. */
.entry-accounts-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.85rem;
  color: var(--muted);
  cursor: pointer;
}

.entry-accounts-note {
  margin-top: 2px;
}

.line-table-footer {
  margin-top: 4px;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.entry-grid-wrap {
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fbfdff;
}

.entry-grid {
  width: 100%;
  border-collapse: collapse;
  min-width: 760px;
}

.entry-grid thead th {
  text-align: left;
  color: #334e68;
  font-weight: 700;
  background: #f6f9fc;
  border-bottom: 1px solid var(--line);
  padding: 10px 8px;
}

.entry-grid tbody td {
  border-bottom: 1px solid var(--line);
  padding: 8px;
  vertical-align: middle;
}

.entry-grid th.col-md,
.entry-grid td.col-md {
  background: linear-gradient(180deg, #f5fcf8 0%, #f9fffb 100%);
}

.entry-grid th.col-dal,
.entry-grid td.col-dal {
  background: linear-gradient(180deg, #f6f9ff 0%, #fbfdff 100%);
}

.entry-grid th.col-md,
.entry-grid td.col-md,
.entry-grid th.col-dal,
.entry-grid td.col-dal {
  box-shadow: inset 1px 0 0 #e7edf5, inset -1px 0 0 #e7edf5;
}

.entry-grid tbody tr:last-child td {
  border-bottom: 0;
}

.entry-grid input,
.entry-grid select {
  border-radius: 8px;
  background: #fff;
}

.entry-grid input[name="amountMd"],
.entry-grid input[name="amountD"] {
  text-align: right;
}

.action-cell {
  width: 120px;
}

.action-cell .danger {
  width: 100%;
  white-space: nowrap;
}

.section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.helper-text {
  margin: 0 0 12px;
  color: var(--muted);
  font-size: 0.92rem;
  line-height: 1.5;
}

.ledger-toolbar {
  display: grid;
  gap: 10px;
  grid-template-columns: 180px minmax(260px, 1fr) 220px;
  margin-bottom: 10px;
}

.saldo-toolbar {
  display: grid;
  gap: 10px;
  grid-template-columns: 180px 220px minmax(260px, 1fr);
  margin-bottom: 12px;
}

.saldo-search input {
  width: 100%;
}

.subledger-form {
  display: grid;
  gap: 10px;
  grid-template-columns: 170px minmax(260px, 1fr) minmax(220px, 1fr) 160px 150px auto;
  align-items: end;
  margin-bottom: 8px;
}

.bank-statement-meta {
  display: grid;
  gap: 10px;
  grid-template-columns: 180px 180px minmax(260px, 1fr);
}

.bank-lines-grid {
  min-width: 1360px;
}

.bank-lines-grid th,
.bank-lines-grid td {
  white-space: nowrap;
}

.bank-lines-grid td:nth-child(2) input {
  min-width: 220px;
}

.bank-lines-grid td:nth-child(8) select {
  min-width: 220px;
}

.receivable-form {
  grid-template-columns: 150px 160px 160px minmax(220px, 1fr) 150px 150px minmax(240px, 1fr) minmax(200px, 1fr) auto;
}

.invoice-layout {
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(520px, 2fr) minmax(280px, 1fr);
  align-items: start;
}

.invoice-pane {
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fbfdff;
  padding: 12px;
}

.invoice-pane h3 {
  margin: 0 0 8px;
}

.invoice-form {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(3, minmax(150px, 1fr));
}

.invoice-wide {
  grid-column: 1 / -1;
}

.preview-box {
  margin-top: 8px;
  border: 1px dashed #c8d5e2;
  border-radius: 10px;
  background: #fff;
  padding: 10px;
  min-height: 180px;
  white-space: pre-line;
  line-height: 1.45;
  color: #334e68;
  font-size: 0.9rem;
}

.issued-bridge {
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(260px, 1fr) auto minmax(260px, 1fr) auto;
  align-items: end;
  margin-bottom: 10px;
}

.internal-form {
  grid-template-columns: 160px 170px minmax(260px, 1fr) 150px minmax(200px, 1fr) auto;
}

.internal-note {
  min-width: 0;
}

.compact-field {
  display: grid;
  gap: 6px;
}

.ledger-search input {
  width: 100%;
}

.small {
  padding: 8px 12px;
  font-size: 0.9rem;
}

.toggle-group {
  display: inline-flex;
  border: 1px solid var(--line);
  border-radius: 10px;
  overflow: hidden;
}

.toggle-group .small {
  border: 0;
  border-right: 1px solid var(--line);
  border-radius: 0;
  background: #fff;
  color: var(--text);
}

.toggle-group .small:last-child {
  border-right: 0;
}

.toggle-group .small.active {
  background: #e6fffa;
  color: #0f766e;
}

.report-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
}

.report-grid-full {
  grid-template-columns: 1fr;
}

.report-box {
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fbfdff;
  padding: 12px;
}

.report-box h3 {
  margin: 0 0 10px;
  font-size: 0.98rem;
}

.report-kv {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  font-size: 0.92rem;
  margin: 4px 0;
}

.report-kv.strong {
  margin-top: 8px;
  font-weight: 700;
}

.full-report {
  background: #ffffff;
}

.report-table th,
.report-table td {
  padding: 8px 8px;
}

.report-table td:last-child,
.report-table th:last-child {
  text-align: right;
}

.report-table tr.is-strong td {
  font-weight: 700;
  border-top: 1px solid #d0dae6;
  background: #f8fbfd;
}

.report-balance-layout {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(280px, 1fr));
}

.mission-form {
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(180px, 220px) minmax(180px, 220px) 180px minmax(220px, 1fr) auto;
  align-items: end;
}

.mission-form .actions {
  margin-top: 0;
}

.mission-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 6px;
}

.mission-kpis {
  margin-top: 12px;
}

.mission-brief-box {
  margin-top: 8px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  padding: 12px;
}

.mission-brief-box h3 {
  margin: 0 0 6px;
  font-size: 1rem;
}

.mission-brief-checks {
  margin: 8px 0 0;
  padding-left: 18px;
  display: grid;
  gap: 4px;
}

.mission-debrief-box {
  margin-top: 4px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fbfdff;
  padding: 12px;
}

.mission-debrief-box h3 {
  margin: 0 0 8px;
  font-size: 1rem;
}

.mission-audit-table td:last-child,
.mission-audit-table th:last-child {
  text-align: right;
}

.typing-setup {
  display: grid;
  gap: 10px;
  grid-template-columns: 220px minmax(220px, 1fr) 230px auto;
  align-items: end;
}

[data-product-profile="solo_student"] .typing-setup {
  padding: 14px;
  border: 1px solid #dbe8f2;
  border-radius: 16px;
  background: linear-gradient(135deg, #ffffff 0%, #f6fbff 100%);
}

.student-start-hint {
  display: none;
}

[data-product-profile="solo_student"] .student-start-hint {
  display: block;
  margin: 10px 0 0;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid #cfe3f2;
  background: linear-gradient(135deg, #f9fcff 0%, #eef7ff 100%);
  color: #1f4563;
  font-weight: 600;
}

.typing-profile-bar {
  margin-top: 10px;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(190px, 230px) minmax(210px, 1fr) auto minmax(210px, 1fr) 180px auto;
  align-items: end;
}

.typing-profile-select-field,
.typing-profile-new-field,
.typing-profile-name-field,
.typing-profile-status-field {
  min-width: 0;
}

.typing-profile-select-field select,
.typing-profile-new-field input,
.typing-profile-name-field input,
.typing-profile-status-field select {
  width: 100%;
}

.typing-actions {
  display: inline-flex;
  gap: 8px;
  flex-wrap: wrap;
}

.typing-generator-row {
  margin-top: 10px;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(240px, 1fr) 190px auto;
  align-items: end;
}

.typing-diagnostic-row {
  margin-top: 10px;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(240px, 1fr) auto;
  align-items: end;
}

.typing-diagnostic-info {
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fbfdff;
  padding: 10px 12px;
}

.typing-diagnostic-info h3 {
  margin: 0 0 6px;
}

.typing-diagnostic-info .helper-text {
  margin: 4px 0 0;
}

.typing-diagnostic-plan-list {
  margin: 8px 0 0;
  padding-left: 18px;
  display: grid;
  gap: 4px;
}

.typing-diagnostic-plan-list li {
  color: #334155;
  line-height: 1.4;
}

.typing-topic-field {
  min-width: 0;
}

.typing-topic-field input {
  width: 100%;
}

.typing-theme-field,
.typing-theme-field select {
  width: 100%;
}

.typing-generate-length-field,
.typing-generate-length-field select {
  width: 100%;
}

.typing-target-wrap {
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fbfdff;
  padding: 10px;
}

[data-product-profile="solo_student"] .typing-target-wrap {
  border-color: #bfd9eb;
  background: linear-gradient(180deg, #f8fbff 0%, #fdfefe 100%);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.9);
}

.typing-target-wrap h3 {
  margin: 0 0 8px;
}

.typing-target {
  margin: 0;
  white-space: pre-wrap;
  color: #334155;
  font-size: 0.94rem;
  line-height: 1.5;
  font-family: "Consolas", "SFMono-Regular", Menlo, Monaco, "Liberation Mono", monospace;
}

.typing-metrics-grid {
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}

.typing-guidance-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(260px, 1fr));
}

.typing-guidance-box {
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fbfdff;
  padding: 10px 12px;
}

[data-product-profile="solo_student"] .typing-guidance-box {
  border-color: #d7e4ee;
  background: linear-gradient(180deg, #ffffff 0%, #f7fbff 100%);
}

.typing-guidance-box h3 {
  margin: 0 0 8px;
}

.typing-guidance-text {
  margin: 0;
  color: #334155;
  white-space: pre-wrap;
  line-height: 1.45;
  min-height: 94px;
}

.typing-profile-grid {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.typing-progress-grid {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

html[data-typing-theme="typewriter"] .app-panel[data-panel="typing"] .typing-target-wrap,
html[data-typing-theme="typewriter"] .app-panel[data-panel="typing"] .typing-guidance-box,
html[data-typing-theme="typewriter"] .app-panel[data-panel="typing"] .typing-diagnostic-info {
  background: #f8f2e4;
  border-color: #d9c7a2;
}

html[data-typing-theme="typewriter"] .app-panel[data-panel="typing"] :is(#typing-target, #typing-input, #typing-instruction, #typing-ai-insight) {
  font-family: "Courier Prime", "Courier New", Courier, monospace;
  color: #312922;
}

html[data-typing-theme="typewriter"] .app-panel[data-panel="typing"] :is(#typing-target, #typing-input) {
  background: linear-gradient(180deg, rgba(226, 206, 171, 0.16), rgba(226, 206, 171, 0.16) 1px, transparent 1px, transparent 1.6em);
  background-size: 100% 1.6em;
}

html[data-typing-theme="dot_matrix_90s"] .app-panel[data-panel="typing"] .typing-target-wrap,
html[data-typing-theme="dot_matrix_90s"] .app-panel[data-panel="typing"] .typing-guidance-box,
html[data-typing-theme="dot_matrix_90s"] .app-panel[data-panel="typing"] .typing-diagnostic-info {
  background: #10271f;
  border-color: #2f8462;
}

html[data-typing-theme="dot_matrix_90s"] .app-panel[data-panel="typing"] :is(.typing-target-wrap h3, .typing-guidance-box h3, #typing-target, #typing-input, #typing-instruction, #typing-ai-insight, .typing-diagnostic-info .helper-text, .typing-diagnostic-info h3) {
  color: #7ef9ab;
  font-family: "IBM Plex Mono", "Lucida Console", "Courier New", monospace;
}

html[data-typing-theme="dot_matrix_90s"] .app-panel[data-panel="typing"] #typing-input {
  background: #0e2019;
  border-color: #2f8462;
  caret-color: #7ef9ab;
}

html[data-typing-theme="dot_matrix_90s"] .app-panel[data-panel="typing"] #typing-target {
  color: #7ef9ab;
}

html[data-typing-theme="daisywheel"] .app-panel[data-panel="typing"] .typing-target-wrap,
html[data-typing-theme="daisywheel"] .app-panel[data-panel="typing"] .typing-guidance-box,
html[data-typing-theme="daisywheel"] .app-panel[data-panel="typing"] .typing-diagnostic-info {
  background: #fdfdfc;
  border-color: #cfd6df;
  box-shadow: inset 0 0 0 1px #eef2f7;
}

html[data-typing-theme="daisywheel"] .app-panel[data-panel="typing"] :is(#typing-target, #typing-input, #typing-instruction, #typing-ai-insight) {
  font-family: "Liberation Mono", "Nimbus Mono PS", "Courier New", monospace;
  letter-spacing: 0.02em;
  color: #111827;
}

.classroom-seed-form {
  margin-bottom: 10px;
  display: grid;
  gap: 10px;
  grid-template-columns: 180px 180px minmax(220px, 1fr) 150px auto;
  align-items: end;
}

.classroom-seed-form .actions {
  margin-top: 0;
}

.classroom-form {
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(260px, 360px) 200px auto;
  align-items: end;
}

.classroom-form .actions {
  margin-top: 0;
}

.classroom-kpis {
  margin: 8px 0 10px;
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.classroom-grid {
  --classroom-cols: 6;
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(var(--classroom-cols), minmax(120px, 1fr));
}

.classroom-empty {
  margin: 0;
  border: 1px dashed #c2cfdd;
  border-radius: 12px;
  background: #f8fbff;
  padding: 12px;
  color: var(--muted);
}

.seat-card {
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fbfdff;
  padding: 8px;
  display: grid;
  gap: 6px;
  align-content: start;
  min-height: 122px;
}

.seat-card header {
  font-size: 0.78rem;
  color: #52606d;
  border-bottom: 1px dashed #d6e0ea;
  padding-bottom: 4px;
}

.seat-card.state-working {
  box-shadow: inset 0 0 0 1px #d4efe8;
}

.seat-card.state-help {
  box-shadow: inset 0 0 0 1px #f6d7bf;
}

.seat-card.state-idle {
  box-shadow: inset 0 0 0 1px #d9deea;
}

.seat-card.state-done {
  box-shadow: inset 0 0 0 1px #c8ecd8;
}

.seat-card.state-empty {
  background: #f8fbff;
}

.seat-student {
  font-weight: 700;
  line-height: 1.2;
}

.seat-state {
  font-size: 0.82rem;
  color: #334e68;
}

.seat-progress {
  font-size: 0.8rem;
  color: #52606d;
}

.seat-metrics {
  display: grid;
  gap: 2px;
  font-size: 0.72rem;
  color: #52606d;
}

.seat-body {
  color: #718096;
  font-size: 0.8rem;
}

.hidden {
  display: none !important;
}

.account-form {
  display: grid;
  gap: 10px;
  grid-template-columns: 190px minmax(280px, 1fr) 250px auto auto auto;
  align-items: end;
  margin-bottom: 8px;
}

.check-field {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
}

.check-field input {
  width: auto;
}

.accounts-table .account-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.accounts-table .account-actions button {
  white-space: nowrap;
}

.accounts-table .account-code-cell {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.accounts-table .pin-mark {
  font-size: 0.95rem;
  width: 1.1em;
  display: inline-block;
}

.accounts-table .pin-mark.is-off {
  visibility: hidden;
}

.admin-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.admin-box {
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fbfdff;
  padding: 12px;
}

.admin-transfer-actions {
  display: grid;
  gap: 10px;
}

.admin-transfer-file {
  display: grid;
  gap: 6px;
}

.records-table tr.is-editing td {
  background: #f0faf8;
}

.settings-form {
  display: grid;
  gap: 8px;
}

.mode-option {
  display: flex;
  align-items: center;
  gap: 10px;
  border: 1px solid #d9e2ec;
  border-radius: 10px;
  background: #fff;
  padding: 9px 10px;
}

.mode-option input {
  width: auto;
}

.admin-opening-card {
  margin-top: 0;
}

.admin-series-card {
  margin-top: 0;
}

.admin-directory-card {
  margin-top: 0;
}

.opening-form {
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(260px, 1fr) 120px 150px 170px minmax(220px, 1fr) auto;
  align-items: end;
  margin-bottom: 6px;
}

.opening-note {
  min-width: 0;
}

.series-table td input {
  min-width: 110px;
}

.series-table td.series-preview-cell {
  font-weight: 700;
}

.catalogs-form .actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 10px;
}

.catalogs-table select,
.catalogs-table input {
  min-width: 160px;
}

.catalogs-table td.action-cell {
  width: 120px;
}

.catalogs-table td.action-cell button {
  width: 100%;
}

#directory-form {
  display: grid;
  gap: 10px;
  grid-template-columns: 160px 180px minmax(280px, 1fr) 150px 150px auto;
  align-items: end;
}

#directory-form .actions {
  margin-top: 0;
}

.integrity-list {
  margin: 8px 0 0;
  padding-left: 18px;
  display: grid;
  gap: 6px;
}

.actions {
  margin-top: 2px;
}

.status {
  margin-top: 12px;
  min-height: 20px;
  color: var(--muted);
}

.status.error {
  color: var(--danger);
}

.table-wrap {
  overflow-x: auto;
}

table {
  width: 100%;
  border-collapse: collapse;
}

th,
td {
  text-align: left;
  border-bottom: 1px solid var(--line);
  padding: 10px 8px;
  white-space: nowrap;
}

th {
  color: #334e68;
  font-weight: 600;
  background: #f8fbfd;
}

.ok {
  color: #067647;
}

.bad {
  color: var(--danger);
}

.ledger-table td {
  vertical-align: top;
}

.ledger-table th.col-md,
.ledger-table td.col-md {
  background: linear-gradient(180deg, #f5fcf8 0%, #f9fffb 100%);
}

.ledger-table th.col-dal,
.ledger-table td.col-dal {
  background: linear-gradient(180deg, #f6f9ff 0%, #fbfdff 100%);
}

.ledger-table .cell-description,
.ledger-table .cell-account {
  white-space: normal;
}

.ledger-table tbody tr.is-selected {
  background: #ecfdf7;
}

.cell-amount {
  text-align: right;
}

.taccounts-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
}

.taccounts-grid.is-highlighted .taccount {
  border-color: #55b69d;
  box-shadow: 0 0 0 2px rgba(85, 182, 157, 0.18);
}

.taccounts-grid.detail-mode {
  grid-template-columns: 1fr;
}

.taccount {
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fdfefe;
  padding: 12px;
}

.taccount h4 {
  margin: 0;
  font-size: 0.95rem;
}

.t-lines {
  margin-top: 10px;
  position: relative;
  border-top: 2px solid #5f6c7b;
  min-height: 74px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  padding-top: 8px;
}

.t-lines::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  bottom: 0;
  width: 2px;
  transform: translateX(-1px);
  background: #5f6c7b;
}

.t-col {
  padding: 0 10px;
}

.t-col.left {
  text-align: left;
}

.t-col.right {
  text-align: right;
}

.t-col .label {
  display: block;
  color: #52606d;
  font-size: 0.8rem;
  margin-bottom: 8px;
}

.t-col .value {
  font-weight: 700;
  font-size: 1.05rem;
}

.t-saldo {
  margin-top: 10px;
  display: flex;
  justify-content: space-between;
  font-size: 0.92rem;
}

.t-ledger {
  margin-top: 10px;
  position: relative;
  border-top: 2px solid #5f6c7b;
}

.t-ledger::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  bottom: 0;
  width: 2px;
  transform: translateX(-1px);
  background: #5f6c7b;
}

.t-lines.t-lines-detail {
  margin-top: 0;
  border-top: 0;
  min-height: 0;
  padding-top: 8px;
}

.t-lines.t-lines-detail::after {
  display: none;
}

.t-entry-list {
  position: relative;
  border-top: 1px solid #d8e1ea;
}

.t-entry-row {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-bottom: 1px dotted #d5e0ea;
}

.t-entry-row:last-child {
  border-bottom: 0;
}

.t-entry-cell {
  padding: 7px 10px;
  min-height: 38px;
  font-size: 0.8rem;
  line-height: 1.2;
  color: #334e68;
}

.t-entry-cell.left {
  padding-right: 14px;
}

.t-entry-cell.right {
  padding-left: 14px;
}

.t-entry-cell.empty {
  color: transparent;
}

.t-entry-amount {
  font-weight: 700;
  color: #1f2937;
  white-space: nowrap;
}

.t-entry-date {
  color: #718096;
  font-size: 0.76rem;
  white-space: nowrap;
}

.t-entry-desc {
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.t-entry-line {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: baseline;
  gap: 10px;
}

.t-entry-cell.right .t-entry-line {
  text-align: right;
}

.empty-state {
  color: var(--muted);
  font-size: 0.95rem;
}

html[data-ui-mode="retro95"] {
  --bg: #d5d9e0;
  --card: #e6e8ec;
  --text: #151b27;
  --muted: #374151;
  --line: #8a95a8;
  --primary: #123f8f;
  --primary-hover: #0e3476;
  --danger: #9d1c1c;
}

html[data-ui-mode="retro95"] body {
  font-family: "Lucida Console", "Courier New", monospace;
  background: linear-gradient(180deg, #cfd5df 0%, #dce2eb 100%);
}

html[data-ui-mode="retro95"] .brand-mark .brand-el,
html[data-ui-mode="retro95"] .brand-mark .brand-core,
html[data-ui-mode="retro95"] .brand-mark .brand-t {
  color: #173a73;
}

html[data-ui-mode="retro95"] .brand-mark .brand-sub {
  color: #374151;
}

html[data-ui-mode="retro95"] .card,
html[data-ui-mode="retro95"] .entry-grid-wrap,
html[data-ui-mode="retro95"] .invoice-pane,
html[data-ui-mode="retro95"] .admin-box,
html[data-ui-mode="retro95"] .report-box,
html[data-ui-mode="retro95"] .taccount {
  border-radius: 0;
  border-color: #7f8aa0;
  box-shadow: inset 1px 1px 0 #f7f9fc, inset -1px -1px 0 #8a95a8;
}

html[data-ui-mode="retro95"] button,
html[data-ui-mode="retro95"] input,
html[data-ui-mode="retro95"] select,
html[data-ui-mode="retro95"] textarea,
html[data-ui-mode="retro95"] .tab-btn,
html[data-ui-mode="retro95"] .mode-link,
html[data-ui-mode="retro95"] .pill {
  border-radius: 0;
}

html[data-ui-mode="retro95"] .tab-btn {
  border-color: #7f8aa0;
}

html[data-ui-mode="retro95"] .tab-btn.active,
html[data-ui-mode="retro95"] .mode-link.is-active {
  background: #dbeafe;
  border-color: #6f7f9a;
  color: #123f8f;
}

html[data-ui-mode="retro95"] .retro-control {
  border-radius: 0;
  border-color: #697791;
  background: #dce3ef;
  box-shadow: inset 1px 1px 0 #f8fbff, inset -1px -1px 0 #8a95a8;
}

html[data-ui-mode="retro95"] .retro-control select {
  border-radius: 0;
  border-color: #697791;
  box-shadow: inset 1px 1px 0 #ffffff, inset -1px -1px 0 #a8b1c2;
}

html[data-ui-mode="retro95"] .entry-grid thead th,
html[data-ui-mode="retro95"] th {
  background: #dbe1eb;
}

html[data-ui-mode="retro95"] .entry-grid th.col-md,
html[data-ui-mode="retro95"] .entry-grid td.col-md,
html[data-ui-mode="retro95"] .ledger-table th.col-md,
html[data-ui-mode="retro95"] .ledger-table td.col-md {
  background: #e6efe3;
}

html[data-ui-mode="retro95"] .entry-grid th.col-dal,
html[data-ui-mode="retro95"] .entry-grid td.col-dal,
html[data-ui-mode="retro95"] .ledger-table th.col-dal,
html[data-ui-mode="retro95"] .ledger-table td.col-dal {
  background: #e3e8ef;
}

html[data-ui-mode="retro95"] body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background: repeating-linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.04) 0px,
    rgba(255, 255, 255, 0.04) 1px,
    rgba(0, 0, 0, 0.02) 2px,
    rgba(0, 0, 0, 0.02) 3px
  );
  opacity: 0.2;
  z-index: 0;
}

html[data-ui-mode="retro95"][data-retro-crt="off"] body::before {
  display: none;
}

html[data-ui-mode="retro95"][data-retro-crt="soft"] body::before {
  opacity: 0.16;
}

html[data-ui-mode="retro95"][data-retro-crt="strong"] body::before {
  opacity: 0.36;
}

html[data-ui-mode="retro95"] .page-header,
html[data-ui-mode="retro95"] .layout {
  position: relative;
  z-index: 1;
}

html[data-ui-mode="retro95"] .header-inner,
html[data-ui-mode="retro95"] .app-tabs,
html[data-ui-mode="retro95"] .card {
  border: 1px solid #6f7d95;
  box-shadow: inset 1px 1px 0 #f8fbff, inset -1px -1px 0 #8a95a8;
  background: #dfe5ef;
}

html[data-ui-mode="retro95"] .app-tabs {
  border-radius: 0;
  padding: 8px;
}

html[data-ui-mode="retro95"] h2,
html[data-ui-mode="retro95"] h3,
html[data-ui-mode="retro95"] h4 {
  letter-spacing: 0.02em;
}

html[data-ui-mode="retro95"] input,
html[data-ui-mode="retro95"] select,
html[data-ui-mode="retro95"] textarea {
  background: #f0f4fa;
  border: 1px solid #697791;
  box-shadow: inset 1px 1px 0 #ffffff, inset -1px -1px 0 #a8b1c2;
}

html[data-ui-mode="retro95"] button {
  border: 1px solid #5d6a84;
  background: linear-gradient(180deg, #dce5f4 0%, #b7c3d9 100%);
  color: #112a4f;
  box-shadow: inset 1px 1px 0 #f8fbff, inset -1px -1px 0 #7f8aa0;
  font-weight: 700;
}

html[data-ui-mode="retro95"] button:hover {
  background: linear-gradient(180deg, #e4ecfa 0%, #c3cee3 100%);
}

html[data-ui-mode="retro95"] button:active {
  box-shadow: inset -1px -1px 0 #f8fbff, inset 1px 1px 0 #7f8aa0;
  transform: translateY(1px);
}

html[data-ui-mode="retro95"] button:not(.secondary):not(.danger) {
  background: linear-gradient(180deg, #2f69c4 0%, #1f4d97 100%);
  color: #f4f8ff;
  border-color: #163c79;
  box-shadow: inset 1px 1px 0 #7ea5e6, inset -1px -1px 0 #0f2f63;
}

html[data-ui-mode="retro95"] button:not(.secondary):not(.danger):hover {
  background: linear-gradient(180deg, #3a75cf 0%, #2456a8 100%);
}

html[data-ui-mode="retro95"] .entry-grid tbody td,
html[data-ui-mode="retro95"] .ledger-table tbody td,
html[data-ui-mode="retro95"] .report-table tbody td {
  border-bottom: 1px dotted #95a1b6;
}

html[data-ui-mode="retro95"] .entry-grid tbody tr:nth-child(2n) td,
html[data-ui-mode="retro95"] .ledger-table tbody tr:nth-child(2n) td {
  background-color: rgba(236, 241, 249, 0.55);
}

html[data-ui-mode="retro95"] .helper-text {
  color: #2e3c56;
}

html[data-ui-mode="retro95"] .status {
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}

html[data-ui-mode="retro95"] .toggle-group {
  border-color: #697791;
}

html[data-ui-mode="retro95"] .t-lines,
html[data-ui-mode="retro95"] .t-ledger {
  border-top-color: #42526f;
}

html[data-ui-mode="retro95"] .t-lines::after,
html[data-ui-mode="retro95"] .t-ledger::after {
  background: #42526f;
}

html[data-ui-mode="retro95"] .t-entry-row {
  border-bottom-color: #9aa6bb;
}

html[data-ui-mode="retro95"] :is(input, select, textarea, button, .tab-btn, .mode-link):focus-visible {
  outline: 2px dotted #1a3f7d;
  outline-offset: 1px;
}

@media (max-width: 1400px) {
  .header-inner,
  .layout {
    max-width: 1280px;
  }

  .entry-mode-grid {
    grid-template-columns: repeat(4, minmax(130px, 1fr));
  }

  .subledger-form,
  .internal-form,
  .receivable-form,
  #directory-form,
  .opening-form {
    grid-template-columns: repeat(3, minmax(190px, 1fr));
  }

  .classroom-form {
    grid-template-columns: minmax(220px, 1fr) 180px auto;
  }

  .classroom-seed-form {
    grid-template-columns: minmax(160px, 1fr) minmax(160px, 1fr) minmax(220px, 1fr) 130px auto;
  }

  .mission-form {
    grid-template-columns: minmax(170px, 1fr) minmax(170px, 1fr) 150px minmax(220px, 1fr) auto;
  }

  .typing-setup {
    grid-template-columns: minmax(180px, 1fr) minmax(220px, 1fr) minmax(190px, 1fr) auto;
  }

  .typing-profile-bar {
    grid-template-columns: repeat(2, minmax(220px, 1fr)) auto;
  }

  .typing-guidance-grid {
    grid-template-columns: 1fr;
  }

  .typing-generator-row {
    grid-template-columns: 1fr;
  }

  .typing-diagnostic-row {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 1200px) {
  .entry-meta {
    grid-template-columns: 1fr 190px;
  }

  .entry-mode-grid {
    grid-template-columns: repeat(3, minmax(130px, 1fr));
  }

  .ledger-toolbar,
  .saldo-toolbar {
    grid-template-columns: repeat(2, minmax(160px, 1fr));
  }

  .ledger-search,
  .saldo-search {
    grid-column: 1 / -1;
  }
}

@media (max-width: 850px) {
  .project-switcher {
    grid-template-columns: 1fr;
  }

  .entry-meta {
    grid-template-columns: 1fr;
  }

  .entry-mode-grid {
    grid-template-columns: 1fr;
  }

  .entry-date-field {
    max-width: none;
  }

  .app-tabs {
    gap: 6px;
  }

  .tab-btn {
    white-space: normal;
    text-align: center;
    min-height: 34px;
  }

  .tab-btn[data-priority="low"] {
    --tab-scale: 0.76;
  }

  .ledger-toolbar {
    grid-template-columns: 1fr;
  }

  .account-form {
    grid-template-columns: 1fr;
  }

  .subledger-form,
  .bank-statement-meta,
  .invoice-layout,
  .invoice-form,
  .issued-bridge,
  .internal-form,
  .receivable-form,
  .saldo-toolbar,
  #directory-form,
  .opening-form,
  .report-balance-layout,
  .mission-form,
  .typing-profile-bar,
  .typing-setup,
  .classroom-seed-form,
  .classroom-form {
    grid-template-columns: 1fr;
  }

  .classroom-grid {
    grid-template-columns: repeat(2, minmax(130px, 1fr));
  }

  .catalogs-form .actions {
    flex-direction: column;
    align-items: stretch;
  }

  .action-cell {
    width: 98px;
  }
}

@media (min-width: 1600px) {
  .header-inner,
  .layout {
    max-width: 1500px;
  }

  .card {
    padding: 22px;
  }

  .entry-grid {
    min-width: 980px;
  }

  .entry-mode-grid {
    grid-template-columns: repeat(7, minmax(140px, 1fr));
  }

  .taccounts-grid {
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 14px;
  }

  .invoice-layout {
    grid-template-columns: minmax(620px, 2fr) minmax(340px, 1fr);
  }

  .classroom-grid {
    grid-template-columns: repeat(var(--classroom-cols), minmax(130px, 1fr));
  }
}

@media (min-width: 1900px) {
  .header-inner,
  .layout {
    max-width: 1680px;
  }

  .entry-grid {
    min-width: 1080px;
  }

  .bank-lines-grid {
    min-width: 1480px;
  }
}

/* Laboratorní mise (C5): karta na první obrazovce, výsledek a zvýraznění dotčených T-kont. */
.lab-mission-card {
  display: grid;
  gap: 8px;
  margin: 0 0 16px;
  padding: 16px;
  border-radius: 18px;
  border: 1px solid rgba(143, 213, 194, 0.9);
  background: linear-gradient(135deg, #f8fffd 0%, #eef7ff 100%);
}

.lab-mission-card[hidden],
.lab-mission-result[hidden] {
  display: none;
}

.lab-mission-card[data-status="completed"] {
  border-color: #7bc47f;
  background: linear-gradient(135deg, #f4fff4 0%, #eef7ff 100%);
}

.lab-mission-kicker {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #0f766e;
}

.lab-mission-card h3 {
  margin: 0;
  font-size: clamp(1.05rem, 2vw, 1.28rem);
  line-height: 1.3;
}

.lab-mission-brief p,
.lab-mission-task,
.lab-mission-checks-title {
  margin: 0;
}

.lab-mission-task {
  font-weight: 700;
}

.lab-mission-actions {
  margin-top: 4px;
}

.lab-mission-result {
  display: grid;
  gap: 6px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  padding: 12px;
}

.lab-mission-result h4,
.lab-mission-result p {
  margin: 0;
}

.lab-mission-questions {
  display: grid;
  gap: 8px;
  margin: 8px 0;
}

.lab-mission-questions h4 {
  margin: 0;
}

.lab-mission-questions fieldset,
.lab-mission-counterexample fieldset {
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 8px 12px;
  margin: 0;
}

.lab-mission-questions legend,
.lab-mission-counterexample legend {
  font-weight: 700;
  padding: 0 4px;
}

.lab-mission-questions label,
.lab-mission-counterexample label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 4px 14px 4px 0;
}

.lab-mission-done {
  font-weight: 600;
}

.taccount.is-mission-target {
  outline: 3px solid #0f766e;
  outline-offset: 2px;
  box-shadow: 0 0 0 6px rgba(15, 118, 110, 0.12);
}

/* 119/1: druhý panel knihu nenačte; místo UI knihy jen jasné hlášení. */
.writer-lock-notice {
  margin: 1rem auto;
  max-width: 60rem;
  padding: 1rem 1.25rem;
  border: 2px solid #b45309;
  border-radius: 8px;
  background: #fffbeb;
  color: #78350f;
  font-weight: 600;
}

html[data-writer-lease="waiting"] main.layout,
html[data-writer-lease="waiting"] #project-form,
html[data-writer-lease="unavailable"] main.layout,
html[data-writer-lease="unavailable"] #project-form {
  display: none;
}

/* R1 (122): kniha nejde přečíst — nic se nenačte ani nezapíše, jen hlášení. */
html[data-book-load="blocked"] main.layout,
html[data-book-load="blocked"] #project-form {
  display: none;
}
