diff --git a/app/Model/Sdf/SdfKufrikImporter.php b/app/Model/Sdf/SdfKufrikImporter.php
index 4c9bbb7..e14b6a3 100644
--- a/app/Model/Sdf/SdfKufrikImporter.php
+++ b/app/Model/Sdf/SdfKufrikImporter.php
@@ -118,7 +118,7 @@ class SdfKufrikImporter
'NAZEV' => $this->clip($nazev, 255),
'IC' => $this->clip($uzivatel['IC'] ?? null, 8),
'DIC' => $this->clip($uzivatel['DIC'] ?? null, 12),
- 'PLATCE_DPH' => !empty($uzivatel['DIC']) ? 1 : 0,
+ 'PLATCE_DPH' => 0,
'TELEFON' => $this->clip($uzivatel['TELEFON'] ?? null, 20),
'EMAIL' => $this->clip($uzivatel['EMAIL'] ?? null, 100),
'ULICE' => $this->clip($uzivatel['ULICE'] ?? null, 100),
diff --git a/app/UI/@layout.latte b/app/UI/@layout.latte
index f2ff34a..2926b92 100644
--- a/app/UI/@layout.latte
+++ b/app/UI/@layout.latte
@@ -17,7 +17,7 @@
{* naše vlastní styly *}
-
+
diff --git a/app/UI/Firma/FirmaPresenter.php b/app/UI/Firma/FirmaPresenter.php
index f05887b..c7d0521 100644
--- a/app/UI/Firma/FirmaPresenter.php
+++ b/app/UI/Firma/FirmaPresenter.php
@@ -38,7 +38,6 @@ class FirmaPresenter extends BasePresenter
'nazev' => $firma->NAZEV,
'ic' => $firma->IC,
'dic' => $firma->DIC,
- 'platce_dph' => (bool) $firma->PLATCE_DPH,
'telefon' => $firma->TELEFON,
'email' => $firma->EMAIL,
'ulice' => $firma->ULICE,
@@ -65,8 +64,6 @@ class FirmaPresenter extends BasePresenter
$form->addText('dic', 'DIČ:')
->setMaxLength(12);
- $form->addCheckbox('platce_dph', 'Jsem plátce DPH');
-
// Kontakty
$form->addText('telefon', 'Telefon:');
$form->addEmail('email', 'E-mail:');
@@ -100,7 +97,7 @@ class FirmaPresenter extends BasePresenter
'NAZEV' => $data->nazev,
'IC' => $data->ic,
'DIC' => $data->dic,
- 'PLATCE_DPH' => $data->platce_dph ? 1 : 0,
+ 'PLATCE_DPH' => 0,
'TELEFON' => $data->telefon,
'EMAIL' => $data->email,
'ULICE' => $data->ulice,
diff --git a/app/UI/Firma/edit.latte b/app/UI/Firma/edit.latte
index 318184a..1cbf839 100644
--- a/app/UI/Firma/edit.latte
+++ b/app/UI/Firma/edit.latte
@@ -36,11 +36,6 @@
-
-
-
-
-
Sídlo a kontakty
diff --git a/www/css/layout.css b/www/css/layout.css
index cc20bec..a25cca7 100644
--- a/www/css/layout.css
+++ b/www/css/layout.css
@@ -1,15 +1,26 @@
/* --- 1. GLOBÁLNÍ PROMĚNNÉ BARVY & BASE --- */
:root {
- --app-bg: #f8fafc; /* Jemný šedo-modrý podklad */
- --header-bg: #1e293b; /* Moderní tmavě břidlicová (Slate 800) místo sytě modré */
- --header-active: #334155; /* Světlejší břidlicová pro aktivní záložku */
- --primary-accent: #3b82f6; /* Moderní soft modrá */
- --text-main: #0f172a;
- --text-muted: #64748b;
- --border-color: #e2e8f0; /* Velmi velice jemná hraniční čára */
+ --app-bg: #eef3fa;
+ --header-bg: #1f4f8f;
+ --header-active: #163e73;
+ --primary-accent: #2f6fce;
+ --primary-accent-hover: #245db3;
+ --primary-soft: #e3eefc;
+ --primary-soft-border: #b7d0f3;
+ --text-main: #1c2b42;
+ --text-muted: #5c6e86;
+ --border-color: #dbe4f0;
--card-bg: #ffffff;
- --radius-sm: 0.375rem;
- --radius-md: 0.5rem;
+ --radius-sm: 0.5rem;
+ --radius-md: 0.75rem;
+ --success: #14915f;
+ --success-hover: #0f7a4f;
+ --success-soft: #d9f5e8;
+ --warning-soft: #ffe8bf;
+ --warning-text: #b86e00;
+ --danger: #e04b4b;
+ --danger-hover: #c93737;
+ --danger-soft: #fde2e2;
}
html, body {
@@ -46,7 +57,7 @@ body {
}
.app-header .nav-link {
- color: #94a3b8; /* Soft šedá pro neaktivní */
+ color: #c5d0de;
border: none !important;
padding: 0.45rem 0.85rem;
font-weight: 500;
@@ -74,13 +85,15 @@ body {
}
.user-panel .btn-outline-light {
- border-color: #475569;
- color: #cbd5e1;
+ border-color: #5d7390;
+ color: #e4ebf4;
+ border-radius: 999px;
+ padding-inline: 0.85rem;
}
.user-panel .btn-outline-light:hover {
- background-color: #334155;
- border-color: #334155;
+ background-color: rgba(255, 255, 255, 0.1);
+ border-color: #c5d4e6;
color: #fff;
}
@@ -136,26 +149,30 @@ body {
margin-bottom: 0.15rem;
}
-/* Speciální úpravy barev pro primární tlačítka ( soft tlačítka ) */
.btn-action.btn-success {
- background-color: #10b981; /* Emerald green místo zářivé zelené */
- border-color: #10b981;
+ background-color: var(--success);
+ border-color: var(--success);
color: #fff;
}
.btn-action.btn-success:hover {
- background-color: #059669;
- border-color: #059669;
+ background-color: var(--success-hover);
+ border-color: var(--success-hover);
+ color: #fff;
}
-.btn-action.btn-outline-primary {
- color: #2563eb;
- border-color: #bfdbfe;
- background-color: #eff6ff;
+.btn-action.btn-outline-primary,
+.btn-action.btn-primary,
+.btn-action.btn-primary.active {
+ color: #1f5eae;
+ border-color: var(--primary-soft-border);
+ background-color: var(--primary-soft);
}
-.btn-action.btn-outline-primary:hover {
- background-color: #2563eb;
- border-color: #2563eb;
- color: #fff;
+.btn-action.btn-outline-primary:hover,
+.btn-action.btn-primary:hover,
+.btn-action.btn-primary.active {
+ background-color: #d3e4fa;
+ border-color: #8eb4e8;
+ color: #184e94;
}
/* Oddělovač */
@@ -276,7 +293,7 @@ body {
.login-form .form-control:focus {
outline: none;
border-color: var(--primary-accent);
- box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);
+ box-shadow: 0 0 0 3px rgba(109, 144, 196, 0.22);
}
.login-form .btn-primary {
@@ -294,8 +311,8 @@ body {
}
.login-form .btn-primary:hover {
- background-color: #2563eb;
- border-color: #2563eb;
+ background-color: var(--primary-accent-hover);
+ border-color: var(--primary-accent-hover);
transform: translateY(-1px);
}
@@ -323,7 +340,262 @@ body {
color: #991b1b;
}
.alert-success {
- background-color: #ecfdf5;
- border: 1px solid #a7f3d0;
- color: #065f46;
+ background-color: var(--success-soft);
+ border: 1px solid #c9e6da;
+ color: #2f6b58;
+}
+
+/* --- 7. JEMNĚJŠÍ PALETA NAD BOOTSTRAPEM --- */
+a {
+ color: #1f62c0;
+}
+a:hover {
+ color: #184e9c;
+}
+
+.text-primary { color: #1f62c0 !important; }
+.text-success { color: #0e8a56 !important; }
+.text-warning { color: var(--warning-text) !important; }
+.text-danger { color: #d63c3c !important; }
+.text-info { color: #0e7ea8 !important; }
+
+.bg-primary { background-color: #7fa0cb !important; }
+.border-primary { border-color: #8aabd4 !important; }
+.border-success { border-color: #b7dccb !important; }
+.border-warning { border-color: #ead7b0 !important; }
+.border-danger { border-color: #e4c4c4 !important; }
+
+/* Souhrnné karty — sytý podklad, ať nepůsobí vybledle */
+.card.border-start {
+ border-width: 1px 1px 1px 6px !important;
+ border-style: solid !important;
+ box-shadow: 0 1px 3px rgba(20, 50, 100, 0.08);
+}
+.card.border-start.border-primary {
+ border-color: #c5daf6 !important;
+ border-left-color: #1f62c9 !important;
+ background-color: #d7e7fb !important;
+}
+.card.border-start.border-warning {
+ border-color: #f6ddaa !important;
+ border-left-color: #e39b00 !important;
+ background-color: #ffe7b8 !important;
+}
+.card.border-start.border-danger {
+ border-color: #f6c9c9 !important;
+ border-left-color: #e04545 !important;
+ background-color: #fcd6d6 !important;
+}
+.card.border-start.border-success {
+ border-color: #b7e8d0 !important;
+ border-left-color: #12945f !important;
+ background-color: #d4f3e4 !important;
+}
+.card.border-start .text-primary { color: #154eaa !important; }
+.card.border-start .text-warning { color: #9a5c00 !important; }
+.card.border-start .text-danger { color: #c42828 !important; }
+.card.border-start .text-success { color: #0c7a4c !important; }
+.border-info { border-color: #c5dceb !important; }
+.border-secondary { border-color: #d5dee8 !important; }
+
+.bg-success-subtle { background-color: var(--success-soft) !important; }
+.bg-secondary-subtle { background-color: #f1f4f8 !important; }
+
+.form-control:focus,
+.form-select:focus {
+ border-color: #a9c0df;
+ box-shadow: 0 0 0 0.2rem rgba(109, 144, 196, 0.18);
+}
+
+/* Tlačítka */
+.btn {
+ --bs-btn-border-radius: 0.5rem;
+ font-weight: 500;
+ letter-spacing: 0.01em;
+ box-shadow: none;
+ transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
+}
+
+.btn:focus-visible {
+ box-shadow: 0 0 0 0.2rem rgba(109, 144, 196, 0.28);
+}
+
+.btn-primary {
+ --bs-btn-color: #fff;
+ --bs-btn-bg: var(--primary-accent);
+ --bs-btn-border-color: var(--primary-accent);
+ --bs-btn-hover-color: #fff;
+ --bs-btn-hover-bg: var(--primary-accent-hover);
+ --bs-btn-hover-border-color: var(--primary-accent-hover);
+ --bs-btn-active-color: #fff;
+ --bs-btn-active-bg: #1d4f96;
+ --bs-btn-active-border-color: #1d4f96;
+ --bs-btn-disabled-bg: #b7c8e0;
+ --bs-btn-disabled-border-color: #b7c8e0;
+}
+
+.btn-outline-primary {
+ --bs-btn-color: #1f5eae;
+ --bs-btn-border-color: #b7d0f3;
+ --bs-btn-bg: var(--primary-soft);
+ --bs-btn-hover-color: #184e94;
+ --bs-btn-hover-bg: #d3e4fa;
+ --bs-btn-hover-border-color: #8eb4e8;
+ --bs-btn-active-color: #184e94;
+ --bs-btn-active-bg: #c5daf6;
+ --bs-btn-active-border-color: #8eb4e8;
+}
+
+.btn-success {
+ --bs-btn-color: #fff;
+ --bs-btn-bg: var(--success);
+ --bs-btn-border-color: var(--success);
+ --bs-btn-hover-color: #fff;
+ --bs-btn-hover-bg: var(--success-hover);
+ --bs-btn-hover-border-color: var(--success-hover);
+ --bs-btn-active-color: #fff;
+ --bs-btn-active-bg: #437c68;
+ --bs-btn-active-border-color: #437c68;
+}
+
+.btn-outline-success {
+ --bs-btn-color: #0c7a4c;
+ --bs-btn-border-color: #9ed9bc;
+ --bs-btn-bg: var(--success-soft);
+ --bs-btn-hover-color: #08663e;
+ --bs-btn-hover-bg: #c3edd8;
+ --bs-btn-hover-border-color: #6ec99e;
+ --bs-btn-active-color: #08663e;
+ --bs-btn-active-bg: #b4e6ce;
+ --bs-btn-active-border-color: #6ec99e;
+}
+
+.btn-outline-secondary {
+ --bs-btn-color: #5c6d82;
+ --bs-btn-border-color: #d7e0ea;
+ --bs-btn-bg: #fff;
+ --bs-btn-hover-color: #3e5168;
+ --bs-btn-hover-bg: #f4f7fb;
+ --bs-btn-hover-border-color: #c5d1de;
+ --bs-btn-active-color: #3e5168;
+ --bs-btn-active-bg: #eaf0f6;
+ --bs-btn-active-border-color: #c5d1de;
+}
+
+.btn-outline-danger {
+ --bs-btn-color: #c43737;
+ --bs-btn-border-color: #f0b8b8;
+ --bs-btn-bg: #fff;
+ --bs-btn-hover-color: #a82828;
+ --bs-btn-hover-bg: var(--danger-soft);
+ --bs-btn-hover-border-color: #e89090;
+ --bs-btn-active-color: #a82828;
+ --bs-btn-active-bg: #f8d0d0;
+ --bs-btn-active-border-color: #e89090;
+}
+
+.btn-outline-dark {
+ --bs-btn-color: #4a5b70;
+ --bs-btn-border-color: #d5dee8;
+ --bs-btn-hover-bg: #f3f6fa;
+ --bs-btn-hover-color: #2c3d55;
+ --bs-btn-hover-border-color: #c3d0de;
+ --bs-btn-active-bg: #e8eef5;
+ --bs-btn-active-color: #2c3d55;
+}
+
+.btn-outline-info {
+ --bs-btn-color: #4d7a9a;
+ --bs-btn-border-color: #cfe0ec;
+ --bs-btn-bg: #f4f9fc;
+ --bs-btn-hover-color: #3d6784;
+ --bs-btn-hover-bg: #e7f2f8;
+ --bs-btn-hover-border-color: #bdd4e4;
+ --bs-btn-active-color: #3d6784;
+ --bs-btn-active-bg: #dceaf3;
+}
+
+.btn-danger {
+ --bs-btn-color: #fff;
+ --bs-btn-bg: var(--danger);
+ --bs-btn-border-color: var(--danger);
+ --bs-btn-hover-color: #fff;
+ --bs-btn-hover-bg: var(--danger-hover);
+ --bs-btn-hover-border-color: var(--danger-hover);
+}
+
+/* Ikonová tlačítka v tabulkách */
+.btn-group-sm > .btn,
+.btn-sm {
+ --bs-btn-border-radius: 0.45rem;
+}
+
+/* Odznaky — jemný podklad místo syté výplně */
+.badge {
+ font-weight: 600;
+ letter-spacing: 0.015em;
+ border-radius: 999px;
+ padding: 0.4em 0.72em;
+ border: 1px solid transparent;
+}
+
+.badge.bg-success {
+ background-color: #c8f0dc !important;
+ color: #087248 !important;
+ border-color: #7dcea8;
+}
+
+.badge.bg-warning {
+ background-color: #ffd98a !important;
+ color: #8a5200 !important;
+ border-color: #f0b84a;
+}
+
+.badge.bg-info {
+ background-color: #c9ecf8 !important;
+ color: #0b6e96 !important;
+ border-color: #7ecae4;
+}
+
+.badge.bg-primary {
+ background-color: #d4e6fb !important;
+ color: #1a56ad !important;
+ border-color: #9ec2f0;
+}
+
+.badge.bg-danger {
+ background-color: var(--danger-soft) !important;
+ color: #8f4f4f !important;
+ border-color: #ead4d4;
+}
+
+.badge.bg-secondary {
+ background-color: #eef2f6 !important;
+ color: #5c6d82 !important;
+ border-color: #d7e0ea;
+}
+
+.badge.bg-dark {
+ background-color: #e7edf4 !important;
+ color: #3d5270 !important;
+ border-color: #cdd8e6;
+}
+
+.badge.bg-light {
+ background-color: #f7f9fc !important;
+ color: #5c6d82 !important;
+ border-color: #e1e8f0;
+}
+
+.table {
+ --bs-table-hover-bg: #f6f9fc;
+}
+
+.table thead th {
+ color: #5c6d82;
+ font-weight: 600;
+ font-size: 0.78rem;
+ letter-spacing: 0.02em;
+ text-transform: uppercase;
+ border-bottom-color: var(--border-color);
}
\ No newline at end of file