diff --git a/shopping_app/static/css/split/02-util.css b/shopping_app/static/css/split/02-util.css
deleted file mode 100644
index 795368f..0000000
--- a/shopping_app/static/css/split/02-util.css
+++ /dev/null
@@ -1,46 +0,0 @@
-/* =========================================================
- Utilities & Sizes
-========================================================= */
-
-.large-checkbox {
- width: 1.5em;
- height: 1.5em;
-}
-
-.clickable-item {
- cursor: pointer;
-}
-
-.progress-thin {
- height: 12px;
-}
-
-.item-not-checked {
- background-color: var(--dark-500) !important;
- color: #fff !important;
-}
-
-#empty-placeholder {
- font-style: italic;
- pointer-events: none;
-}
-
-.fade-out {
- opacity: 0;
- transition: opacity 0.5s ease;
-}
-
-@media (pointer: fine) {
- .only-mobile {
- display: none !important;
- }
-}
-
-/* Bootstrap bg overrides via variables */
-.bg-success {
- background-color: var(--success) !important;
-}
-
-.bg-warning {
- background-color: var(--warning) !important;
-}
diff --git a/shopping_app/static/css/split/03-btn.css b/shopping_app/static/css/split/03-btn.css
deleted file mode 100644
index 20a879d..0000000
--- a/shopping_app/static/css/split/03-btn.css
+++ /dev/null
@@ -1,84 +0,0 @@
-/* =========================================================
- Buttons
-========================================================= */
-/* Primary */
-.btn-primary {
- background-color: var(--primary) !important;
- border-color: var(--primary-border) !important;
-}
-
-.btn-primary:hover,
-.btn-primary:focus,
-.btn-primary:active {
- background-color: #13315f !important;
- border-color: #10284f !important;
-}
-
-/* Success */
-.btn-success {
- background-color: var(--success) !important;
- border-color: var(--success-border) !important;
- color: #fff !important;
-}
-
-.btn-success:hover,
-.btn-success:focus,
-.btn-success:active {
- background-color: #155627 !important;
- border-color: #124521 !important;
- color: #fff !important;
-}
-
-/* Warning */
-.btn-warning {
- background-color: var(--warning) !important;
- border-color: var(--warning-border) !important;
- color: var(--warning-text) !important;
-}
-
-.btn-warning:hover,
-.btn-warning:focus,
-.btn-warning:active {
- background-color: #5c4c17 !important;
- border-color: #3e3610 !important;
- color: var(--warning-text) !important;
-}
-
-/* Outline */
-.btn-outline-success {
- color: var(--success) !important;
- border-color: var(--success) !important;
-}
-
-.btn-outline-success:hover,
-.btn-outline-success:focus,
-.btn-outline-success:active {
- background-color: var(--success) !important;
- border-color: var(--success-border) !important;
- color: #fff !important;
-}
-
-.btn-outline-warning {
- color: #d9c97a !important;
- border-color: var(--warning) !important;
-}
-
-.btn-outline-warning:hover,
-.btn-outline-warning:focus,
-.btn-outline-warning:active {
- background-color: var(--warning) !important;
- border-color: var(--warning-border) !important;
- color: var(--warning-text) !important;
-}
-
-/* File input button */
-input[type="file"]::file-selector-button {
- background-color: #1b4a29;
- color: #f0f0f0;
- border: none;
- padding: .5em 1em;
- border-radius: 4px;
- font-weight: bold;
- cursor: pointer;
- transition: background .2s;
-}
diff --git a/shopping_app/static/css/split/05-ui.css b/shopping_app/static/css/split/05-ui.css
deleted file mode 100644
index 0b6edb4..0000000
--- a/shopping_app/static/css/split/05-ui.css
+++ /dev/null
@@ -1,82 +0,0 @@
-/* =========================================================
- Alerts, Badges, Background helpers
-========================================================= */
-/* Alerts */
-.alert-success {
- background-color: #225d36 !important;
- color: var(--success-text) !important;
- border-color: #174428 !important;
-}
-
-.alert-danger {
- background-color: #7a1f23 !important;
- color: var(--danger-text) !important;
- border-color: #531417 !important;
-}
-
-.alert-info {
- background-color: var(--primary) !important;
- color: var(--primary-text) !important;
- border-color: var(--primary-border) !important;
-}
-
-.alert-warning {
- background-color: var(--warning) !important;
- color: var(--warning-text) !important;
- border-color: var(--warning-border) !important;
-}
-
-.alert-light {
- background-color: #3a3f44 !important;
- color: var(--text-strong) !important;
- border-color: var(--dark-480) !important;
-}
-
-/* Badges */
-.badge.bg-success,
-.badge.text-bg-success {
- background-color: #225d36 !important;
- color: var(--success-text) !important;
-}
-
-.badge.bg-danger,
-.badge.text-bg-danger {
- background-color: #7a1f23 !important;
- color: var(--danger-text) !important;
-}
-
-.badge.bg-info,
-.badge.text-bg-info {
- background-color: #1d3a4d !important;
- color: #eaf6ff !important;
-}
-
-.badge.bg-warning,
-.badge.text-bg-warning {
- background-color: var(--warning) !important;
- color: var(--warning-text) !important;
-}
-
-.badge.bg-secondary,
-.badge.text-bg-secondary {
- background-color: var(--dark-400) !important;
- color: #e2e3e5 !important;
-}
-
-.badge.bg-primary,
-.badge.text-bg-primary {
- background-color: var(--primary) !important;
- color: var(--primary-text) !important;
-}
-
-.badge.bg-light,
-.badge.text-bg-light {
- background-color: var(--dark-350) !important;
- color: #f1f3f5 !important;
-}
-
-.badge.bg-dark,
-.badge.text-bg-dark {
- background-color: var(--dark-900) !important;
- color: var(--text-strong) !important;
-}
diff --git a/shopping_app/static/css/split/06-progress.css b/shopping_app/static/css/split/06-progress.css
deleted file mode 100644
index be55332..0000000
--- a/shopping_app/static/css/split/06-progress.css
+++ /dev/null
@@ -1,56 +0,0 @@
-/* =========================================================
- Progress
-========================================================= */
-.progress-dark {
- background-color: var(--dark-700) !important;
- border-radius: 20px !important;
- overflow: hidden;
-}
-
-.progress {
- background-color: #2a2d31 !important;
- border-radius: 20px !important;
-}
-
-.progress-bar {
- border-radius: 0 !important;
- transition: width .4s ease, background-color .4s ease;
- background-color: var(--progress-default) !important;
-}
-
-.progress-bar:first-child {
- border-top-left-radius: 20px !important;
- border-bottom-left-radius: 20px !important;
-}
-
-.progress-bar:last-child {
- border-top-right-radius: 20px !important;
- border-bottom-right-radius: 20px !important;
-}
-
-.progress-bar.bg-success {
- background-color: var(--success) !important;
-}
-
-.progress-bar.bg-danger {
- background-color: var(--danger) !important;
-}
-
-.progress-bar.bg-warning {
- background-color: var(--warning) !important;
- color: #fff !important;
-}
-
-.progress-bar.bg-info {
- background-color: #16425a !important;
-}
-
-/* Label (parent must be position-relative) */
-.progress-label {
- position: absolute;
- top: 50%;
- left: 50%;
- transform: translate(-50%, -50%);
- pointer-events: none;
- white-space: nowrap;
-}
diff --git a/shopping_app/static/css/split/07-table.css b/shopping_app/static/css/split/07-table.css
deleted file mode 100644
index 12a48f9..0000000
--- a/shopping_app/static/css/split/07-table.css
+++ /dev/null
@@ -1,52 +0,0 @@
-/* =========================================================
- Cards & Tables
-========================================================= */
-.card {
- background-color: var(--dark-500) !important;
- border: 1px solid var(--dark-450) !important;
- color: var(--text) !important;
-}
-
-.card-header,
-.card-footer {
- background-color: var(--dark-650) !important;
- border-color: var(--dark-450) !important;
- color: #f1f3f5 !important;
-}
-
-.card .table {
- border-radius: 0 !important;
- overflow: hidden;
- margin-bottom: 0;
-}
-
-.table-responsive {
- overflow-x: auto;
- -webkit-overflow-scrolling: touch;
-}
-
-.table-responsive table {
- min-width: 1000px;
-}
-
-.table-dark.table-striped tbody tr:nth-of-type(odd) {
- background-color: rgba(255, 255, 255, .025);
-}
-
-.table-dark tbody tr:hover {
- background-color: rgba(255, 255, 255, .04);
-}
-
-.table-dark thead th {
- background-color: var(--dark-800);
- color: var(--text-dim);
- font-weight: 500;
- border-bottom: 1px solid var(--dark-450);
-}
-
-.table-dark td,
-.table-dark th {
- padding: .6rem .75rem;
- vertical-align: middle;
- border-top: 1px solid var(--dark-450);
-}
diff --git a/shopping_app/static/css/split/08-nav.css b/shopping_app/static/css/split/08-nav.css
deleted file mode 100644
index 6904e23..0000000
--- a/shopping_app/static/css/split/08-nav.css
+++ /dev/null
@@ -1,34 +0,0 @@
-/* =========================================================
- Navs & Pagination
-========================================================= */
-.nav-tabs .nav-link.active,
-.nav-tabs .nav-item.show .nav-link {
- background-color: var(--dark-500) !important;
- color: var(--text-strong) !important;
- border-color: var(--dark-450) var(--dark-450) var(--dark-500) !important;
-}
-
-.page-link {
- color: #e0e0e0 !important;
- background-color: var(--dark-750) !important;
- border: 1px solid var(--dark-450) !important;
-}
-
-.page-link:hover,
-.page-link:focus {
- color: #fff !important;
- background-color: var(--dark-400) !important;
- border-color: var(--dark-300) !important;
-}
-
-.page-item.active .page-link {
- color: #fff !important;
- background-color: var(--primary) !important;
- border-color: var(--primary-border) !important;
-}
-
-.page-item.disabled .page-link {
- color: var(--muted) !important;
- background-color: var(--dark-550) !important;
- border-color: var(--dark-450) !important;
-}
diff --git a/shopping_app/static/css/split/09-list.css b/shopping_app/static/css/split/09-list.css
deleted file mode 100644
index 1a24578..0000000
--- a/shopping_app/static/css/split/09-list.css
+++ /dev/null
@@ -1,49 +0,0 @@
-/* =========================================================
- Lists & Misc UI
-========================================================= */
-.list-group-item {
- display: flex;
- align-items: center;
- justify-content: space-between;
-}
-
-/* Zachowaj ostre krawędzie tylko dla list flush (np. w panelach edycji) */
-.list-group-flush > .list-group-item:first-child,
-.list-group-flush > .list-group-item:last-child {
- border-radius: 0 !important;
-}
-
-#items li.hide-purchased {
- display: none !important;
-}
-
-#mass-add-list li {
- transition: background .2s;
-}
-
-#mass-add-list li.active {
- background: #198754 !important;
- color: #fff !important;
- border: 1px solid #000 !important;
-}
-
-.quantity-input {
- width: 60px;
- background: var(--dark-400);
- color: #fff;
- border: 1px solid var(--dark-300);
- border-radius: 4px;
- text-align: center;
-}
-
-.add-btn {
- margin-left: 10px;
-}
-
-.quantity-controls {
- min-width: 120px;
- display: flex;
- align-items: center;
- justify-content: flex-end;
- gap: 4px;
-}
diff --git a/shopping_app/static/css/split/10-toast.css b/shopping_app/static/css/split/10-toast.css
deleted file mode 100644
index 63149cb..0000000
--- a/shopping_app/static/css/split/10-toast.css
+++ /dev/null
@@ -1,92 +0,0 @@
-/* =========================================================
- Toasts & Info Bar
-========================================================= */
-.toast {
- animation: fadeInUp .5s ease;
-}
-
-@keyframes fadeInUp {
- from {
- opacity: 0;
- transform: translateY(20px);
- }
-
- to {
- opacity: 1;
- transform: translateY(0);
- }
-}
-
-/* Base toast when not using text-bg-* */
-.toast:not([class*="text-bg-"]) {
- background-color: var(--dark-500) !important;
- color: #f1f1f1 !important;
- border: 1px solid var(--dark-450) !important;
- animation: fadeInUp .5s ease;
-}
-
-.toast .toast-body {
- color: inherit !important;
-}
-
-.toast .btn-close {
- filter: invert(1) grayscale(100%) brightness(200%);
-}
-
-/* Typed toasts (override Bootstrap text-bg-*) */
-.toast.text-bg-primary {
- background-color: var(--info) !important;
- color: var(--info-text) !important;
- border-color: var(--info-border) !important;
-}
-
-.toast.text-bg-info {
- background-color: var(--info) !important;
- color: var(--info-text) !important;
- border-color: var(--info-border) !important;
-}
-
-.toast.text-bg-success {
- background-color: var(--success) !important;
- color: var(--success-text) !important;
- border-color: var(--success-border) !important;
-}
-
-.toast.text-bg-warning {
- background-color: var(--warning) !important;
- color: var(--warning-text) !important;
- border-color: var(--warning-border) !important;
-}
-
-.toast.text-bg-danger {
- background-color: var(--danger) !important;
- color: var(--danger-text) !important;
- border-color: var(--danger-border) !important;
-}
-
-.toast-body {
- color: #fff !important;
- font-weight: 500 !important;
-}
-
-.info-bar-fixed {
- width: 100%;
- color: var(--text-strong);
- background-color: var(--dark-700);
- border-radius: 12px 12px 0 0;
- text-align: center;
- padding: 10px 10px;
- font-size: .95rem;
- box-sizing: border-box;
- margin-top: 2rem;
- box-shadow: 0 -1px 4px rgba(0, 0, 0, .25);
-}
-
-@media (max-width: 768px) {
- .info-bar-fixed {
- position: static;
- font-size: .85rem;
- padding: 8px 4px;
- border-radius: 0;
- }
-}
diff --git a/shopping_app/static/css/split/11-modal.css b/shopping_app/static/css/split/11-modal.css
deleted file mode 100644
index f01c209..0000000
--- a/shopping_app/static/css/split/11-modal.css
+++ /dev/null
@@ -1,39 +0,0 @@
-/* =========================================================
- Modals (incl. fullscreen chart modal)
-========================================================= */
-.modal-content {
- background-color: var(--dark-470) !important;
- color: #f1f1f1 !important;
- border: 1px solid var(--dark-450) !important;
-}
-
-.modal-header,
-.modal-footer {
- background-color: var(--dark-650) !important;
- border-color: var(--dark-450) !important;
-}
-
-/* Fullscreen chart modal */
-#chartFullscreenModal .modal-dialog {
- max-width: 100vw;
- width: 100vw;
- margin: 0;
-}
-
-#chartFullscreenModal .modal-content {
- height: 100vh;
- border-radius: 0;
-}
-
-#chartFullscreenModal .modal-body {
- display: flex;
- flex: 1 1 auto;
- padding: 0;
- overflow: hidden;
-}
-
-#chartFullscreenCanvas {
- display: block;
- width: 100%;
- height: 100%;
-}
diff --git a/shopping_app/static/css/split/13-compact-a.css b/shopping_app/static/css/split/13-compact-a.css
deleted file mode 100644
index 02d741e..0000000
--- a/shopping_app/static/css/split/13-compact-a.css
+++ /dev/null
@@ -1,1545 +0,0 @@
-/* =========================================================
- Compact minimalist pass
-========================================================= */
-:root {
- --app-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
- --app-radius: 14px;
-}
-
-body.app-body {
- font-size: 0.96rem;
- line-height: 1.4;
-}
-
-.app-header {
- padding: 0.35rem 0 0;
-}
-
-.app-navbar .container-xxl {
- min-height: 54px;
- border-radius: 18px;
- box-shadow: 0 8px 22px rgba(0,0,0,0.16);
-}
-
-.app-brand {
- gap: 0.6rem;
- font-size: 0.98rem;
-}
-
-.app-brand__icon {
- width: 2.1rem;
- height: 2.1rem;
- border-radius: 12px;
- font-size: 1rem;
-}
-
-.app-brand__title,
-.app-brand__accent {
- font-size: 0.98rem;
-}
-
-.app-user-chip {
- padding: 0.28rem 0.38rem 0.28rem 0.58rem;
- gap: 0.4rem;
-}
-
-.app-user-chip__label {
- font-size: 0.68rem;
- letter-spacing: 0.06em;
-}
-
-.app-main {
- padding: 0.65rem 0 1.4rem;
-}
-
-.app-content-frame {
- padding-top: 0.1rem;
-}
-
-.app-footer {
- margin-top: auto;
- padding: 0.5rem 0 calc(0.85rem + env(safe-area-inset-bottom, 0px));
-}
-
-.app-footer__inner {
- padding-top: 0.75rem;
-}
-
-h1, h2, h3, h4, h5, h6 {
- letter-spacing: -0.015em;
- line-height: 1.15;
-}
-
-h1, .h1 { font-size: clamp(1.45rem, 2vw, 1.9rem); }
-h2, .h2 { font-size: clamp(1.2rem, 1.8vw, 1.5rem); }
-h3, .h3 { font-size: clamp(1.02rem, 1.5vw, 1.2rem); }
-
-.card,
-.modal-content,
-.dropdown-menu,
-.list-group-item,
-.table,
-.alert,
-.pagination .page-link,
-.nav-tabs,
-.input-group-text,
-.form-control,
-.form-select,
-.btn,
-.progress,
-.toast {
- border-radius: 12px;
-}
-
-.card,
-.modal-content,
-.table-responsive,
-.alert,
-.list-group-item,
-.progress,
-.toast {
- box-shadow: 0 4px 14px rgba(0,0,0,0.12);
- backdrop-filter: blur(8px);
-}
-
-.card-header,
-.card-footer,
-.card-body,
-.modal-header,
-.modal-body,
-.modal-footer {
- padding: 0.75rem 0.85rem;
-}
-
-.table > :not(caption) > * > * {
- padding: 0.62rem 0.7rem;
-}
-
-.table-responsive table {
- min-width: 860px;
-}
-
-.list-group {
- gap: 0.5rem;
-}
-
-.list-group-item {
- padding: 0.72rem 0.8rem;
-}
-
-.alert {
- padding: 0.7rem 0.85rem;
- margin-bottom: 0.8rem;
-}
-
-.badge {
- font-weight: 600;
- padding: 0.38em 0.58em;
-}
-
-.btn {
- border-radius: 10px;
- font-weight: 600;
- padding: 0.52rem 0.8rem;
- min-height: 40px;
-}
-
-.btn-sm {
- padding: 0.4rem 0.64rem;
- min-height: 34px;
- border-radius: 9px;
-}
-
-.form-control,
-.form-select,
-.input-group-text {
- min-height: 40px;
- padding: 0.5rem 0.72rem;
-}
-
-textarea.form-control {
- min-height: 96px;
-}
-
-.progress {
- min-height: 0.8rem;
-}
-
-.progress-label {
- font-size: 0.72rem;
- font-weight: 600;
-}
-
-.nav-tabs {
- gap: 0.35rem;
- padding: 0.25rem;
-}
-
-.nav-tabs .nav-link {
- padding: 0.55rem 0.7rem;
- border-radius: 10px;
-}
-
-#items .list-group-item {
- border-radius: 12px !important;
- padding: 0.75rem 0.8rem;
-}
-
-#items .btn-group {
- gap: 0.25rem;
-}
-
-#items .btn-group .btn {
- border-radius: 9px !important;
-}
-
-input[type="checkbox"].form-check-input {
- width: 2.5rem;
- height: 1.35rem;
-}
-
-.large-checkbox {
- width: 1.2rem;
- height: 1.2rem;
-}
-
-.toast {
- padding: 0;
-}
-
-.endpoint-main_page .card h2,
-.endpoint-expenses .card h2,
-.endpoint-edit_my_list .card h2,
-.endpoint-login .card h2,
-.endpoint-system_auth .card h2,
-.endpoint-admin_panel .card h2,
-[class*="endpoint-admin_"] .card h2 {
- margin-bottom: 0.35rem;
-}
-
-.endpoint-main_page .card p,
-.endpoint-expenses .card p,
-.endpoint-edit_my_list .card p,
-.endpoint-login .card p,
-.endpoint-system_auth .card p,
-.endpoint-admin_panel .card p,
-[class*="endpoint-admin_"] .card p {
- margin-bottom: 0;
-}
-
-@media (max-width: 991.98px) {
- .app-navbar .container-xxl {
- border-radius: 16px;
- padding-top: 0.55rem;
- padding-bottom: 0.55rem;
- }
-}
-
-@media (max-width: 767.98px) {
- body.app-body {
- font-size: 0.93rem;
- }
-
- .app-header {
- padding-top: 0.25rem;
- }
-
- .app-main {
- padding-top: 0.45rem;
- }
-
- .app-navbar .container-xxl {
- min-height: 50px;
- border-radius: 14px;
- }
-
- .app-brand {
- gap: 0.45rem;
- font-size: 0.92rem;
- }
-
- .app-brand__icon {
- width: 1.9rem;
- height: 1.9rem;
- border-radius: 10px;
- }
-
- .app-user-chip {
- padding: 0.22rem 0.32rem 0.22rem 0.5rem;
- }
-
- .card-header,
- .card-footer,
- .card-body,
- .modal-header,
- .modal-body,
- .modal-footer,
- .list-group-item,
- .table > :not(caption) > * > * {
- padding-left: 0.68rem;
- padding-right: 0.68rem;
- }
-
- .list-group-item,
- #items .list-group-item {
- padding-top: 0.62rem;
- padding-bottom: 0.62rem;
- }
-
- .btn-group,
- .d-flex.gap-2,
- .d-flex.gap-3 {
- gap: 0.35rem !important;
- }
-
- .btn-group > .btn,
- .btn.w-100,
- .input-group > .btn,
- .btn,
- .form-control,
- .form-select,
- .input-group-text {
- min-height: 38px;
- }
-
- .input-group {
- gap: 0.4rem;
- }
-
- .table-responsive {
- border-radius: 12px;
- }
-
- .progress-label {
- font-size: 0.66rem;
- }
-
- .app-footer {
- padding-bottom: calc(0.8rem + env(safe-area-inset-bottom, 0px));
- }
-}
-
-/* === unified UI refresh: forms / tables / admin tools === */
-:root {
- --ui-surface-1: rgba(10, 14, 24, 0.78);
- --ui-surface-2: rgba(18, 25, 39, 0.92);
- --ui-surface-3: rgba(33, 44, 67, 0.88);
- --ui-border: rgba(255, 255, 255, 0.12);
- --ui-border-strong: rgba(255, 255, 255, 0.18);
- --ui-text-soft: rgba(255, 255, 255, 0.72);
- --ui-success-soft: rgba(25, 135, 84, 0.18);
- --ui-warning-soft: rgba(255, 193, 7, 0.16);
-}
-
-.card,
-.table-responsive,
-.modal-content,
-.dropdown-menu,
-.toast,
-.alert,
-.list-group-item {
- border: 1px solid var(--ui-border);
-}
-
-.card.bg-dark,
-.modal-content.bg-dark,
-.dropdown-menu-dark,
-.list-group-item.bg-dark,
-.table-dark {
- background: linear-gradient(180deg, var(--ui-surface-2), rgba(8, 12, 20, 0.96)) !important;
-}
-
-.card.bg-secondary.bg-opacity-10,
-.admin-shortcuts,
-#bulkBar .card {
- background: linear-gradient(180deg, rgba(22, 29, 45, 0.88), rgba(12, 18, 30, 0.88)) !important;
-}
-
-.form-label,
-label.form-label {
- display: inline-flex;
- align-items: center;
- gap: 0.35rem;
- margin-bottom: 0.45rem;
- font-size: 0.92rem;
- font-weight: 600;
- color: rgba(255,255,255,0.84);
-}
-
-.form-text,
-.text-secondary,
-.text-white-50 {
- color: var(--ui-text-soft) !important;
-}
-
-.form-control,
-.form-select,
-.input-group-text,
-textarea.form-control,
-.form-control-color {
- background: rgba(255,255,255,0.04) !important;
- border: 1px solid var(--ui-border-strong) !important;
- color: #fff !important;
- box-shadow: none;
- transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease, transform .18s ease;
-}
-
-.form-control::placeholder,
-textarea.form-control::placeholder {
- color: rgba(255,255,255,0.42);
-}
-
-.form-control:focus,
-.form-select:focus,
-textarea.form-control:focus,
-.form-check-input:focus,
-.btn:focus,
-.btn:focus-visible {
- border-color: rgba(25, 135, 84, 0.6) !important;
- box-shadow: 0 0 0 0.2rem rgba(25, 135, 84, 0.16) !important;
-}
-
-.input-group > .form-control,
-.input-group > .form-select,
-.input-group > .btn,
-.input-group > .input-group-text {
- min-height: 42px;
-}
-
-textarea.form-control {
- line-height: 1.45;
- resize: vertical;
-}
-
-.form-check {
- padding: 0.65rem 0.9rem 0.65rem 2.8rem;
- background: rgba(255,255,255,0.04);
- border: 1px solid var(--ui-border);
- border-radius: 12px;
-}
-
-.form-check.form-switch {
- min-height: 42px;
-}
-
-.form-check-input {
- background-color: rgba(255,255,255,0.14);
- border-color: rgba(255,255,255,0.22);
-}
-
-.btn {
- letter-spacing: 0.01em;
- transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease;
-}
-
-.btn:hover,
-.btn:focus-visible {
- transform: translateY(-1px);
-}
-
-.btn-success,
-.btn-outline-success,
-.btn-outline-light:hover,
-.btn-outline-light:focus-visible,
-.btn-outline-secondary:hover,
-.btn-outline-secondary:focus-visible {
- box-shadow: 0 10px 24px rgba(0,0,0,0.16);
-}
-
-.btn-outline-light,
-.btn-outline-secondary,
-.btn-outline-warning,
-.btn-outline-danger,
-.btn-outline-success {
- background: rgba(255,255,255,0.03);
-}
-
-.btn-outline-light:hover,
-.btn-outline-light:focus-visible {
- background: rgba(255,255,255,0.1);
-}
-
-.btn-outline-secondary:hover,
-.btn-outline-secondary:focus-visible {
- background: rgba(108, 117, 125, 0.18);
-}
-
-.btn-outline-warning:hover,
-.btn-outline-warning:focus-visible {
- background: var(--ui-warning-soft);
-}
-
-.btn-outline-danger:hover,
-.btn-outline-danger:focus-visible {
- background: rgba(220, 53, 69, 0.16);
-}
-
-.btn-outline-success:hover,
-.btn-outline-success:focus-visible {
- background: var(--ui-success-soft);
-}
-
-.btn-group-compact,
-.admin-shortcuts .d-flex,
-.stack-form,
-.page-actions {
- gap: 0.4rem;
-}
-
-.btn-group-compact .btn {
- padding: 0.3rem 0.55rem;
- font-size: 0.82rem;
-}
-
-.btn-group-compact .btn-text {
- font-size: 0.78rem;
-}
-
-.table-toolbar {
- display: flex;
- justify-content: space-between;
- align-items: center;
- flex-wrap: wrap;
- gap: 0.75rem;
- margin-bottom: 0.85rem;
-}
-
-.table-toolbar__search {
- max-width: 420px;
- width: 100%;
-}
-
-.table-toolbar__meta {
- min-width: 120px;
- text-align: right;
-}
-
-.table {
- --bs-table-bg: transparent;
- --bs-table-striped-bg: rgba(255,255,255,0.02);
- --bs-table-hover-bg: transparent;
- --bs-table-border-color: rgba(255,255,255,0.08);
- margin-bottom: 0;
-}
-
-.table > :not(caption) > * > * {
- border-bottom-width: 1px;
- vertical-align: middle;
-}
-
-.table thead th {
- position: sticky;
- top: 0;
- z-index: 1;
- background: rgba(11, 17, 28, 0.98) !important;
- text-transform: uppercase;
- letter-spacing: 0.05em;
- font-size: 0.74rem;
- color: rgba(255,255,255,0.72);
- border-bottom-color: rgba(255,255,255,0.14);
-}
-
-.table tbody tr {
- transition: background-color .15s ease, transform .15s ease;
-}
-
-.table tbody tr:hover > * {
- background: rgba(255,255,255,0.04) !important;
-}
-
-.table td code,
-.api-code-block code {
- display: inline-block;
- padding: 0.28rem 0.48rem;
- border-radius: 8px;
- background: rgba(255,255,255,0.08);
- color: #d6f5e6;
-}
-
-.api-code-block {
- display: flex;
- flex-wrap: wrap;
- gap: 0.5rem;
-}
-
-.pagination .page-link {
- background: rgba(255,255,255,0.03);
- border-color: var(--ui-border);
- color: #fff;
-}
-
-.pagination .page-item.active .page-link {
- background: rgba(25, 135, 84, 0.95);
- border-color: rgba(25, 135, 84, 0.95);
-}
-
-.dropdown-item {
- border-radius: 8px;
-}
-
-.dropdown-item:hover,
-.dropdown-item:focus {
- background: rgba(255,255,255,0.08);
-}
-
-form[data-unsaved-warning="true"].is-dirty {
- position: relative;
-}
-
-form[data-unsaved-warning="true"].is-dirty::after {
- content: 'Niezapisane zmiany';
- position: sticky;
- bottom: 0.75rem;
- left: 100%;
- display: inline-flex;
- margin-top: 1rem;
- padding: 0.38rem 0.68rem;
- border-radius: 999px;
- background: rgba(255, 193, 7, 0.18);
- border: 1px solid rgba(255, 193, 7, 0.36);
- color: #ffe08a;
- font-size: 0.76rem;
- font-weight: 700;
-}
-
-
-.ui-password-toggle.is-active {
- background: rgba(255,255,255,0.1);
-}
-
-.app-content-frame > h2 + .card,
-.app-content-frame > .card:first-of-type {
- margin-top: 0;
-}
-
-@media (max-width: 767.98px) {
- .table-toolbar {
- align-items: stretch;
- }
-
- .table-toolbar__meta {
- text-align: left;
- }
-
- .admin-shortcuts .btn {
- flex: 1 1 calc(50% - 0.55rem);
- }
-
- form[data-unsaved-warning="true"].is-dirty::after {
- left: auto;
- bottom: auto;
- position: static;
- margin-top: 0.75rem;
- }
-}
-
-
-.admin-page-head {
- display: flex;
- justify-content: space-between;
- align-items: flex-start;
- gap: 0.85rem;
- flex-wrap: wrap;
-}
-
-[data-admin-nav-body] {
- display: flex;
-}
-
-@media (max-width: 767.98px) {
- [data-admin-nav-body] {
- display: none;
- width: 100%;
- }
-
- [data-admin-nav-body].is-open {
- display: flex;
- }
-
- .admin-page-head > * {
- width: 100%;
- }
-
- .admin-page-head .btn {
- width: 100%;
- }
-
- .table-responsive table.table,
- .is-admin-area table.table {
- min-width: 100%;
- }
-
- .table-responsive table.table thead,
- .is-admin-area table.table thead {
- display: none;
- }
-
- .table-responsive table.table,
- .table-responsive table.table tbody,
- .table-responsive table.table tr,
- .table-responsive table.table td,
- .is-admin-area table.table,
- .is-admin-area table.table tbody,
- .is-admin-area table.table tr,
- .is-admin-area table.table td {
- display: block;
- width: 100%;
- }
-
- .table-responsive table.table tbody,
- .is-admin-area table.table tbody {
- display: grid;
- gap: 0.8rem;
- }
-
- .table-responsive table.table tr,
- .is-admin-area table.table tr {
- border: 1px solid rgba(255,255,255,0.08);
- border-radius: 16px;
- padding: 0.35rem 0.55rem;
- background: rgba(255,255,255,0.02);
- box-shadow: 0 8px 24px rgba(0,0,0,0.16);
- }
-
- .table-responsive table.table td,
- .is-admin-area table.table td {
- border: 0;
- padding: 0.5rem 0.35rem;
- }
-
- .table-responsive table.table td::before,
- .is-admin-area table.table td::before {
- content: attr(data-label);
- display: block;
- margin-bottom: 0.18rem;
- font-size: 0.72rem;
- text-transform: uppercase;
- letter-spacing: 0.04em;
- color: rgba(255,255,255,0.58);
- }
-
- .table-responsive table.table td:last-child,
- .is-admin-area table.table td:last-child {
- padding-bottom: 0.2rem;
- }
-
- .table-responsive table.table td .btn,
- .table-responsive table.table td .input-group,
- .table-responsive table.table td .form-select,
- .table-responsive table.table td .form-control,
- .is-admin-area table.table td .btn,
- .is-admin-area table.table td .input-group,
- .is-admin-area table.table td .form-select,
- .is-admin-area table.table td .form-control {
- width: 100%;
- }
-
- .table-responsive table.table td .d-flex,
- .table-responsive table.table td .btn-group,
- .is-admin-area table.table td .d-flex,
- .is-admin-area table.table td .btn-group {
- flex-wrap: wrap;
- }
-}
-
-
-.list-action-block .input-group .btn,
-.list-action-block .btn,
-.endpoint-shared_list .input-group .btn,
-.endpoint-shared_list .list-share-page .btn {
- min-height: 44px;
-}
-
-.endpoint-shared_list .input-group,
-.list-action-block .input-group {
- align-items: stretch;
-}
-
-@media (max-width: 767.98px) {
- .endpoint-admin_panel .table-responsive table thead {
- display: none;
- }
- .endpoint-admin_panel .table-responsive table,
- .endpoint-admin_panel .table-responsive tbody,
- .endpoint-admin_panel .table-responsive tr,
- .endpoint-admin_panel .table-responsive td {
- display: block;
- width: 100%;
- }
- .endpoint-admin_panel .table-responsive tr {
- border: 1px solid rgba(255,255,255,.08);
- border-radius: 16px;
- margin-bottom: 1rem;
- padding: .75rem;
- background: rgba(255,255,255,.02);
- }
- .endpoint-admin_panel .table-responsive td {
- border: 0;
- padding: .35rem 0;
- }
-}
-
-
-/* responsive fixes 2026-03 */
-.app-navbar .container-xxl {flex-wrap: nowrap; align-items: center;}
-.app-navbar__actions {display:flex; flex-wrap:wrap; gap:.5rem; justify-content:flex-end;}
-.app-navbar__actions .btn {white-space: nowrap;}
-.table-responsive {overflow-x: clip;}
-.table-responsive table {width:100%; min-width:0 !important;}
-@media (max-width: 991.98px) {
- .app-navbar .container-xxl {display:grid; grid-template-columns:auto 1fr auto; gap:.5rem; align-items:center;}
- .app-navbar__meta {display:none;}
- .app-brand {min-width:0;}
- .app-brand__title,.app-brand__accent {font-size:1rem;}
- .app-navbar__actions {max-width:100%; gap:.35rem;}
- .app-navbar__actions .btn {padding:.35rem .55rem; font-size:.78rem;}
-}
-@media (max-width: 430px) {
- .app-navbar .container-xxl {grid-template-columns:minmax(0,1fr) auto; }
- .app-brand {overflow:hidden;}
- .app-brand > span:last-child {overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
- .app-navbar__actions {grid-column:1 / -1; justify-content:stretch;}
- .app-navbar__actions .btn {flex:1 1 calc(50% - .35rem); text-align:center;}
-}
-@media (max-width: 767.98px) {
- .app-content-frame .table-responsive table.table,
- .app-content-frame table.table:not(.keep-horizontal) {display:block; width:100%;}
- .app-content-frame .table-responsive table.table thead,
- .app-content-frame table.table:not(.keep-horizontal) thead {display:none;}
- .app-content-frame .table-responsive table.table tbody,
- .app-content-frame .table-responsive table.table tr,
- .app-content-frame .table-responsive table.table td,
- .app-content-frame table.table:not(.keep-horizontal) tbody,
- .app-content-frame table.table:not(.keep-horizontal) tr,
- .app-content-frame table.table:not(.keep-horizontal) td {display:block; width:100%;}
- .app-content-frame .table-responsive table.table tr,
- .app-content-frame table.table:not(.keep-horizontal) tr {border:1px solid var(--dark-300); border-radius:1rem; margin-bottom:.85rem; padding:.35rem .25rem; background:var(--dark-700);}
- .app-content-frame .table-responsive table.table td,
- .app-content-frame table.table:not(.keep-horizontal) td {border:none; padding:.5rem .75rem; text-align:left !important;}
- .app-content-frame .table-responsive table.table td::before,
- .app-content-frame table.table:not(.keep-horizontal) td::before {content:attr(data-label); display:block; font-size:.72rem; color:#9ba3aa; margin-bottom:.2rem; text-transform:uppercase;}
- .app-content-frame .table-responsive {overflow:visible;}
-}
-
-/* fix: admin tables, api tokens, share page, navbar */
-.admin-table-responsive {
- overflow-x: auto !important;
- -webkit-overflow-scrolling: touch;
-}
-
-
-.admin-table-responsive--wide table {
- min-width: 1180px;
-}
-
-.admin-table-responsive--full table {
- width: 100% !important;
- min-width: 100% !important;
- table-layout: auto;
-}
-
-.endpoint-edit_categories .admin-table-responsive--full table th,
-.endpoint-edit_categories .admin-table-responsive--full table td,
-.endpoint-api_tokens .admin-table-responsive--full table th,
-.endpoint-api_tokens .admin-table-responsive--full table td {
- white-space: normal;
- vertical-align: middle;
-}
-
-.endpoint-edit_categories .admin-table-responsive--full table th:last-child,
-.endpoint-edit_categories .admin-table-responsive--full table td:last-child {
- width: 30%;
-}
-
-.is-admin-area .table-responsive td,
-.is-admin-area .table-responsive th {
- white-space: normal;
-}
-
-.api-chip {
- display: inline-block;
- max-width: 22rem;
- padding: .28rem .55rem;
- border-radius: .75rem;
- background: rgba(255,255,255,.08);
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- vertical-align: middle;
-}
-
-.api-chip--wrap {
- white-space: normal;
- overflow-wrap: anywhere;
- word-break: break-word;
-}
-
-.form-check-spaced {
- display: flex;
- align-items: flex-start;
- gap: .7rem;
- padding-left: 0;
- margin-bottom: .65rem;
-}
-
-.form-check-spaced .form-check-input {
- position: static;
- margin: .2rem 0 0;
- flex: 0 0 auto;
-}
-
-.form-check-spaced .form-check-label {
- margin: 0;
- line-height: 1.35;
-}
-
-.list-item-actions {
- gap: .4rem;
- flex-wrap: wrap;
- justify-content: flex-end;
-}
-
-.list-item-actions .btn {
- border-radius: .8rem !important;
- min-width: 2.6rem;
-}
-
-.share-submit-btn {
- min-width: 8rem;
- font-weight: 600;
-}
-
-.endpoint-list_share .input-group,
-.endpoint-shared_list .input-group {
- align-items: stretch;
-}
-
-.endpoint-list_share .input-group > .form-control,
-.endpoint-list_share .input-group > .btn,
-.endpoint-shared_list .input-group > .form-control,
-.endpoint-shared_list .input-group > .btn {
- min-height: 46px;
-}
-
-.endpoint-list_share .input-group > .btn,
-.endpoint-shared_list .input-group > .btn {
- border-top-left-radius: 0 !important;
- border-bottom-left-radius: 0 !important;
-}
-
-@media (max-width: 767.98px) {
- .table-responsive {
- overflow-x: auto !important;
- }
-
- .is-admin-area .table-responsive table.table.keep-horizontal,
- .endpoint-api_tokens .table-responsive table.table,
- .endpoint-admin_panel .table-responsive table.table,
- .endpoint-lists_access .table-responsive table.table,
- .endpoint-user_management .table-responsive table.table,
- .endpoint-edit_categories .table-responsive table.table {
- display: table;
- width: max-content;
- min-width: 980px !important;
- }
-
- .endpoint-api_tokens .admin-table-responsive--full table.table,
- .endpoint-edit_categories .admin-table-responsive--full table.table {
- width: 100%;
- min-width: 980px !important;
- }
-
- .is-admin-area .table-responsive table.table.keep-horizontal thead,
- .endpoint-api_tokens .table-responsive table.table thead,
- .endpoint-admin_panel .table-responsive table.table thead,
- .endpoint-lists_access .table-responsive table.table thead,
- .endpoint-user_management .table-responsive table.table thead {
- display: table-header-group;
- }
-
- .is-admin-area .table-responsive table.table.keep-horizontal tbody,
- .endpoint-api_tokens .table-responsive table.table tbody,
- .endpoint-admin_panel .table-responsive table.table tbody,
- .endpoint-lists_access .table-responsive table.table tbody,
- .endpoint-user_management .table-responsive table.table tbody {
- display: table-row-group;
- }
-
- .is-admin-area .table-responsive table.table.keep-horizontal tr,
- .endpoint-api_tokens .table-responsive table.table tr,
- .endpoint-admin_panel .table-responsive table.table tr,
- .endpoint-lists_access .table-responsive table.table tr,
- .endpoint-user_management .table-responsive table.table tr {
- display: table-row;
- border: 0;
- padding: 0;
- background: transparent;
- box-shadow: none;
- }
-
- .is-admin-area .table-responsive table.table.keep-horizontal td,
- .endpoint-api_tokens .table-responsive table.table td,
- .endpoint-admin_panel .table-responsive table.table td,
- .endpoint-lists_access .table-responsive table.table td,
- .endpoint-user_management .table-responsive table.table td {
- display: table-cell;
- width: auto;
- border-top: 1px solid var(--dark-450);
- padding: .65rem .75rem;
- }
-
- .endpoint-api_tokens .table-responsive table.table td::before,
- .endpoint-admin_panel .table-responsive table.table td::before,
- .endpoint-lists_access .table-responsive table.table td::before,
- .endpoint-user_management .table-responsive table.table td::before {
- display: none;
- content: none;
- }
-}
-
-@media (max-width: 575.98px) {
- .app-navbar .container-xxl {
- display: grid;
- grid-template-columns: minmax(0, 1fr) auto;
- align-items: center;
- }
-
- .app-navbar__meta {
- display: none;
- }
-
- .app-brand {
- min-width: 0;
- overflow: hidden;
- }
-
- .app-brand > span:last-child {
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- }
-
- .app-navbar__actions {
- grid-column: 1 / -1;
- display: grid;
- grid-template-columns: repeat(2, minmax(0, 1fr));
- gap: .45rem;
- width: 100%;
- }
-
- .app-navbar__actions .btn {
- width: 100%;
- padding: .45rem .5rem;
- font-size: .78rem;
- }
-
- .share-submit-btn {
- min-width: 6.75rem;
- }
-
- .list-item-actions {
- width: 100%;
- justify-content: flex-start;
- margin-top: .5rem;
- }
-}
-
-
-/* admin/settings consistency fixes */
-.form-switch-compact .form-check-input {
- width: 2.35rem;
- height: 1.2rem;
- margin-top: .1rem;
-}
-.form-switch-compact .form-check-label {
- padding-top: .02rem;
-}
-.form-check-spaced {
- gap: .45rem;
-}
-.access-editor .input-group > .form-control,
-.access-editor .input-group > .btn {
- min-height: 40px;
-}
-.endpoint-admin_edit_categories .table-responsive,
-.endpoint-admin_lists_access .table-responsive,
-.endpoint-admin_settings .table-responsive,
-.endpoint-list_products .table-responsive {
- overflow-x: auto !important;
-}
-.endpoint-admin_edit_categories .table-responsive table.table.keep-horizontal,
-.endpoint-admin_lists_access .table-responsive table.table.keep-horizontal,
-.endpoint-list_products .table-responsive table.table.keep-horizontal {
- min-width: 1000px !important;
-}
-.endpoint-admin_edit_categories .app-content-frame,
-.endpoint-admin_lists_access .app-content-frame,
-.endpoint-admin_settings .app-content-frame,
-.endpoint-list_products .app-content-frame {
- overflow: visible;
-}
-@media (max-width: 767.98px) {
- .form-switch-compact .form-check-input { width: 2rem; height: 1.05rem; }
-}
-
-
-/* v4.1 admin/table/share fixes */
-.admin-table-responsive table {
- width: 100%;
- min-width: 100%;
-}
-.admin-table-responsive--wide table,
-.table-responsive .keep-horizontal {
- width: max-content;
- min-width: 100%;
-}
-.endpoint-admin_panel .admin-table-responsive--wide table {
- width: 100%;
- min-width: 100%;
-}
-.endpoint-admin_panel .admin-panel-table th:last-child,
-.endpoint-admin_panel .admin-panel-table td:last-child {
- width: 1%;
- white-space: nowrap;
-}
-.endpoint-admin_lists_access .admin-table-responsive--wide table {
- min-width: 1120px;
-}
-.endpoint-admin_lists_access .access-editor .tokens {
- min-height: 2rem;
-}
-.endpoint-admin_lists_access .access-editor .token,
-.endpoint-admin_edit_my_list .access-editor .token {
- max-width: 100%;
-}
-.endpoint-admin_lists_access .access-editor .token span,
-.endpoint-admin_edit_my_list .access-editor .token span {
- pointer-events: none;
-}
-.endpoint-admin_lists_access .mono {
- white-space: nowrap;
-}
-.form-check-spaced {
- gap: .35rem;
-}
-.form-check-spaced .form-check-input,
-input[type="checkbox"].form-check-input,
-.table-select-checkbox {
- width: .95rem !important;
- height: .95rem !important;
- min-width: .95rem !important;
- min-height: .95rem !important;
- margin-top: .18rem;
-}
-.form-switch-compact .form-check-input {
- width: 1.8rem !important;
- height: .95rem !important;
-}
-.large-checkbox {
- transform: none;
- transform-origin: center;
-}
-
-.shopping-item-main > .large-checkbox {
- flex: 0 0 1.5em;
- align-self: center;
-}
-.list-item-actions {
- display: flex;
- align-items: center;
- gap: .45rem;
- flex-wrap: wrap;
-}
-.list-item-actions .btn {
- min-width: 2.25rem;
- padding: .42rem .62rem;
-}
-.endpoint-list_share .list-group-item,
-.endpoint-shared_list .list-group-item {
- gap: .75rem;
-}
-.endpoint-list_share .list-item-actions,
-.endpoint-shared_list .list-item-actions {
- margin-left: auto;
-}
-.endpoint-list_share .input-group,
-.endpoint-shared_list .input-group {
- flex-wrap: nowrap;
-}
-.endpoint-list_share .input-group > .form-control,
-.endpoint-shared_list .input-group > .form-control {
- min-width: 0;
-}
-.endpoint-list_share .share-submit-btn,
-.endpoint-shared_list .share-submit-btn {
- min-width: 7.25rem;
- border-radius: .9rem !important;
-}
-@media (max-width: 991.98px) {
- .endpoint-admin_panel .admin-panel-table {
- min-width: 1000px;
- }
-}
-@media (max-width: 767.98px) {
- .endpoint-admin_panel .admin-table-responsive--wide table,
- .endpoint-admin_lists_access .admin-table-responsive--wide table,
- .endpoint-api_tokens .admin-table-responsive--wide table {
- width: max-content;
- min-width: 980px !important;
- }
- .endpoint-list_share .input-group,
- .endpoint-shared_list .input-group {
- flex-wrap: wrap;
- }
- .endpoint-list_share .share-submit-btn,
- .endpoint-shared_list .share-submit-btn {
- width: 100%;
- }
-}
-@media (max-width: 430px) {
- .app-brand__icon {
- width: 2rem;
- height: 2rem;
- font-size: 1rem;
- }
- .app-brand__title, .app-brand__accent {
- font-size: 1rem;
- }
- .app-navbar__actions {
- grid-template-columns: repeat(2, minmax(0, 1fr));
- }
- .app-navbar__actions .btn {
- padding: .38rem .45rem;
- font-size: .74rem;
- }
-}
-
-.endpoint-admin_api_tokens .admin-table-responsive--wide table { width: 100%; min-width: 100%; }
-@media (max-width: 767.98px) { .endpoint-admin_api_tokens .admin-table-responsive--wide table { width:max-content; min-width: 980px !important; } }
-.table-responsive { overflow-x: auto; }
-
-
-/* v6 tweaks */
-.create-list-switch,
-.hide-purchased-switch {
- display: inline-flex;
- align-items: center;
- gap: .5rem;
- padding: .45rem .8rem .45rem 2.35rem;
- min-height: 0;
- width: auto;
- background: rgba(255,255,255,0.04);
- border: 1px solid var(--ui-border);
- border-radius: 12px;
-}
-.create-list-switch .form-check-input,
-.hide-purchased-switch .form-check-input {
- width: 2rem !important;
- height: 1rem !important;
- margin-top: 0;
-}
-.create-list-switch .form-check-label,
-.hide-purchased-switch .form-check-label {
- margin-left: .15rem;
-}
-.endpoint-admin_lists_access .card > .card-body > .table-responsive,
-.endpoint-admin_api_tokens .card > .card-body > .table-responsive {
- width: 100%;
-}
-.endpoint-admin_lists_access .table.keep-horizontal,
-.endpoint-admin_api_tokens .table.keep-horizontal {
- min-width: 100%;
-}
-
-
-/* v7.1 share/main fixes */
-.create-list-checkbox {
- align-items: center;
- gap: .55rem;
-}
-.create-list-checkbox .form-check-input {
- margin-top: 0;
-}
-.endpoint-list_share #items .list-group-item,
-.endpoint-shared_list #items .list-group-item {
- display: flex;
- justify-content: space-between;
- align-items: center;
- gap: .75rem;
-}
-.endpoint-list_share #items .list-group-item > .d-flex.flex-grow-1,
-.endpoint-shared_list #items .list-group-item > .d-flex.flex-grow-1 {
- min-width: 0;
- flex: 1 1 auto;
-}
-.endpoint-list_share .list-item-actions,
-.endpoint-shared_list .list-item-actions {
- flex: 0 0 auto;
- margin-left: auto;
- justify-content: flex-end;
-}
-.endpoint-list_share .list-item-actions .btn,
-.endpoint-shared_list .list-item-actions .btn {
- min-width: 2.5rem;
-}
-.endpoint-list_share .hide-purchased-switch,
-.endpoint-shared_list .hide-purchased-switch {
- align-items: center;
-}
-.endpoint-list_share .hide-purchased-switch .form-check-input,
-.endpoint-shared_list .hide-purchased-switch .form-check-input {
- margin-top: 0;
-}
-@media (max-width: 767.98px) {
- .endpoint-list_share #items .list-group-item,
- .endpoint-shared_list #items .list-group-item {
- align-items: flex-start;
- }
- .endpoint-list_share .list-item-actions,
- .endpoint-shared_list .list-item-actions {
- width: 100%;
- margin-left: 0;
- justify-content: flex-start;
- }
-}
-
-
-/* v9.1 switch and share consistency fixes */
-.create-list-input-group > .form-control {
- border-top-right-radius: 0 !important;
- border-bottom-right-radius: 0 !important;
-}
-.create-list-input-group > #tempToggle {
- min-width: 9.75rem;
- font-weight: 600;
- white-space: nowrap;
-}
-.hide-purchased-switch.form-check {
- display: inline-flex;
- align-items: center;
- gap: .7rem;
- padding: .55rem .95rem;
- padding-left: .95rem;
- border-radius: 14px;
- background: rgba(255,255,255,.04);
- border: 1px solid var(--ui-border);
-}
-.hide-purchased-switch .form-check-input {
- flex: 0 0 auto;
- float: none;
- width: 2.9em !important;
- height: 1.5em !important;
- margin: 0 !important;
- cursor: pointer;
-}
-.hide-purchased-switch .form-check-label {
- margin: 0 !important;
- white-space: nowrap;
- cursor: pointer;
-}
-
-.endpoint-list_share .list-item-actions,
-.endpoint-shared_list .list-item-actions {
- gap: .5rem;
-}
-
-.endpoint-list_share .list-item-actions .btn,
-.endpoint-shared_list .list-item-actions .btn {
- min-width: 2.75rem;
- min-height: 2.5rem;
- padding: .5rem .72rem;
-}
-
-.endpoint-list_share .app-navbar__actions .btn,
-.endpoint-shared_list .app-navbar__actions .btn {
- border-radius: .9rem !important;
-}
-
-/* unified bootstrap-like switches */
-.switch-grid {
- display: grid;
- grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
- gap: .8rem;
-}
-
-.form-check.form-switch.app-switch {
- display: inline-flex;
- align-items: center;
- gap: .75rem;
- min-height: auto;
- margin: 0;
- padding: .72rem .95rem;
- padding-left: .95rem;
- background: rgba(255,255,255,.04);
- border: 1px solid var(--ui-border);
- border-radius: 14px;
-}
-
-.form-check.form-switch.app-switch .form-check-input {
- float: none;
- flex: 0 0 auto;
- width: 2.9em !important;
- height: 1.55em !important;
- margin: 0 !important;
- cursor: pointer;
- background-color: var(--dark-400) !important;
- border-color: var(--dark-300) !important;
-}
-
-.form-check.form-switch.app-switch .form-check-input:checked {
- background-color: var(--primary) !important;
- border-color: var(--primary-border) !important;
-}
-
-.form-check.form-switch.app-switch .form-check-input:focus {
- box-shadow: 0 0 0 .18rem rgba(24, 64, 118, .22) !important;
-}
-
-.form-check.form-switch.app-switch .form-check-label {
- margin: 0 !important;
- line-height: 1.35;
- cursor: pointer;
-}
-
-.form-check.form-switch.app-switch.form-switch-compact {
- width: 100%;
- justify-content: flex-start;
-}
-
-.form-check.form-switch.app-switch.form-switch-compact .form-check-input {
- width: 2.9em !important;
- height: 1.55em !important;
-}
-
-.hide-purchased-switch.form-check.app-switch {
- width: auto;
-}
-
-.endpoint-edit_my_list .switch-grid .app-switch,
-.endpoint-admin_edit_list .switch-grid .app-switch {
- width: 100%;
-}
-
-/* consolidation pass 2026-03-30: merged safe duplicates and overlapping hotfixes */
-/* final UX polish 2026-03-14 */
-:root {
- --nav-btn-height: 2.8rem;
-}
-
-.app-navbar .container-xxl {
- display: flex;
- align-items: center;
- justify-content: space-between;
- gap: .8rem;
- row-gap: .55rem;
- flex-wrap: nowrap;
-}
-
-.app-navbar__actions {
- display: flex;
- align-items: stretch;
- justify-content: flex-end;
- gap: .5rem;
- flex-wrap: nowrap;
- min-width: 0;
-}
-
-.app-navbar__actions .btn,
-.app-nav-action {
- display: inline-flex;
- align-items: center;
- justify-content: center;
- min-width: 0;
- min-height: var(--nav-btn-height);
- padding: .6rem .95rem;
- white-space: nowrap;
- line-height: 1;
-}
-
-.app-navbar__actions .btn > span,
-.app-nav-action > span {
- display: inline-flex;
- align-items: center;
-}
-
-.form-check.form-switch.app-switch {
- min-height: 3.2rem;
- padding: .78rem 1rem;
- border-radius: 16px;
-}
-
-.form-check.form-switch.app-switch .form-check-input {
- width: 3.15em !important;
- height: 1.7em !important;
- background-position: left center;
-}
-
-.form-check.form-switch.app-switch .form-check-label {
- display: inline-flex;
- align-items: center;
- min-height: 1.7rem;
- font-weight: 500;
-}
-
-.hide-purchased-switch.form-check.app-switch {
- width: auto;
- max-width: 100%;
-}
-
-.endpoint-edit_my_list .switch-grid {
- grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
-}
-
-.endpoint-edit_my_list .switch-grid .app-switch,
-.endpoint-admin_edit_list .switch-grid .app-switch {
- width: 100%;
- min-height: 3.35rem;
-}
-
-/* boxed checks in api token form */
-.endpoint-admin_api_tokens .stack-form .form-check-spaced,
-.endpoint-api_tokens .stack-form .form-check-spaced {
- align-items: center;
- gap: .85rem;
- margin: 0 0 .72rem;
- padding: .75rem .9rem;
- border: 1px solid var(--ui-border);
- border-radius: 14px;
- background: rgba(255,255,255,.04);
-}
-
-.endpoint-admin_api_tokens .stack-form .form-check-spaced .form-check-input,
-.endpoint-api_tokens .stack-form .form-check-spaced .form-check-input {
- margin: 0;
-}
-
-.endpoint-admin_api_tokens .stack-form .form-check-spaced .form-check-label,
-.endpoint-api_tokens .stack-form .form-check-spaced .form-check-label {
- flex: 1 1 auto;
-}
-
-/* admin tables full width on desktop, scroll only on smaller screens */
-.endpoint-admin_panel .table-responsive,
-.endpoint-admin_lists_access .table-responsive {
- overflow-x: auto;
-}
-
-.endpoint-admin_panel .table-responsive > table.table,
-.endpoint-admin_lists_access .table-responsive > table.table {
- width: 100% !important;
- min-width: 100% !important;
- table-layout: auto;
-}
-
-.endpoint-admin_lists_access td:nth-child(6) {
- min-width: 19rem;
-}
-
-.endpoint-admin_lists_access td:nth-child(6) > .d-flex,
-.endpoint-admin_lists_access td:nth-child(6) > .text-warning {
- width: 100%;
-}
-
-.endpoint-admin_lists_access td:nth-child(6) > .text-warning {
- display: block;
-}
diff --git a/shopping_app/static/css/split/14-compact-b.css b/shopping_app/static/css/split/14-compact-b.css
deleted file mode 100644
index c1b5f3d..0000000
--- a/shopping_app/static/css/split/14-compact-b.css
+++ /dev/null
@@ -1,32 +0,0 @@
-/* =========================================================
- COMPACT: przyciski akcji na listach
- - Desktop: standard Bootstrap
- - <=576px: kompakt
-========================================================= */
-
-/* <=420px: tylko emoji */
-@media (max-width: 420px) {
- .btn-group-compact .btn-text {
- display: none !important;
- }
-
- .btn-group-compact .btn {
- padding: 0.22rem 0.45rem;
- min-width: auto;
- font-size: 0.9rem;
- line-height: 1.1;
- }
-}
-
-/* 421–576px: lekko ciaśniej, ale tekst zostaje */
-@media (min-width: 421px) and (max-width: 576px) {
- .btn-group-compact .btn {
- padding: 0.24rem 0.45rem;
- font-size: 0.82rem;
- line-height: 1.1;
- }
-
- .btn-group-compact .btn-text {
- font-size: 0.75rem;
- }
-}
diff --git a/shopping_app/static/css/split/15-share.css b/shopping_app/static/css/split/15-share.css
deleted file mode 100644
index a0ce63b..0000000
--- a/shopping_app/static/css/split/15-share.css
+++ /dev/null
@@ -1,926 +0,0 @@
-/* =========================================================
- Share page toolbar and shared-list header actions
-========================================================= */
-.share-page-toolbar {
- display: flex;
- align-items: center;
- justify-content: flex-end;
- gap: .75rem;
- width: 100%;
-}
-
-.share-page-toolbar__spacer {
- flex: 1 1 auto;
-}
-
-.share-page-toolbar .form-check {
- margin-bottom: 0;
-}
-
-.endpoint-list_share .app-navbar__actions,
-.endpoint-shared_list .app-navbar__actions {
- align-items: stretch;
-}
-
-.endpoint-list_share .app-navbar__actions .btn,
-.endpoint-shared_list .app-navbar__actions .btn {
- min-height: var(--nav-btn-height);
-}
-
-@media (max-width: 991.98px) {
- .app-navbar .container-xxl {
- display: grid;
- grid-template-columns: minmax(0, 1fr) auto;
- align-items: center;
- gap: .6rem;
- }
-
- .app-navbar__meta {
- display: none;
- }
-
- .app-brand {
- min-width: 0;
- overflow: hidden;
- }
-
- .app-brand > span:last-child {
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- }
-
- .app-navbar__actions {
- grid-column: 1 / -1;
- display: grid;
- grid-template-columns: repeat(2, minmax(0, 1fr));
- gap: .45rem;
- width: 100%;
- }
-
- .app-navbar__actions .btn,
- .app-nav-action {
- width: 100%;
- padding: .55rem .6rem;
- }
-
- .endpoint-admin_panel .table-responsive > table.table,
- .endpoint-admin_lists_access .table-responsive > table.table {
- width: max-content !important;
- min-width: 980px !important;
- }
-}
-
-@media (max-width: 767.98px) {
- .share-page-toolbar {
- justify-content: stretch;
- }
-
- .share-page-toolbar__spacer {
- display: none;
- }
-
- .hide-purchased-switch {
- padding-left: 2.95rem;
- }
-
- .hide-purchased-switch.form-check.app-switch {
- width: 100%;
- }
-
- .switch-grid,
- .endpoint-edit_my_list .switch-grid {
- grid-template-columns: 1fr;
- }
-}
-
-
-/* final polish v2 */
-:root {
- --nav-btn-height: 2.35rem;
-}
-
-.app-navbar__actions {
- gap: .4rem;
-}
-
-.app-navbar__actions .btn,
-.app-nav-action {
- min-height: var(--nav-btn-height);
- padding: .42rem .78rem;
- font-size: .92rem;
- border-radius: .9rem !important;
-}
-
-.form-check.form-switch.app-switch {
- min-height: 2.95rem;
- padding: .65rem .9rem;
-}
-
-.form-check.form-switch.app-switch .form-check-input {
- width: 2.75em !important;
- height: 1.45em !important;
- transition: background-position .18s ease-in-out, background-color .18s ease-in-out, border-color .18s ease-in-out, box-shadow .18s ease-in-out !important;
-}
-
-.form-check.form-switch.app-switch .form-check-label {
- min-height: 1.45rem;
-}
-
-.endpoint-admin_templates .table-responsive {
- overflow-x: auto;
-}
-
-.endpoint-admin_templates .table-responsive > table.table {
- width: 100% !important;
- min-width: 100% !important;
- table-layout: auto;
-}
-
-@media (max-width: 991.98px) {
- .app-navbar__actions .btn,
- .app-nav-action {
- font-size: .86rem;
- padding: .48rem .6rem;
- }
-
- .endpoint-admin_templates .table-responsive > table.table {
- width: max-content !important;
- min-width: 900px !important;
- }
-}
-
-
-/* responsive mobile category badges + smaller animated switches */
-.mobile-list-heading {
- width: 100%;
- min-width: 0;
- max-width: 100%;
- justify-content: flex-start;
-}
-
-.mobile-list-heading__title {
- min-width: 0;
-}
-
-.mobile-category-badges {
- display: inline-flex;
- align-items: center;
- gap: .3rem;
- min-width: 0;
- max-width: 100%;
-}
-
-.mobile-category-badge {
- display: inline-flex;
- align-items: center;
- justify-content: center;
- font-size: .68rem;
- line-height: 1;
- padding: .26rem .52rem;
- opacity: .95;
-}
-
-.mobile-category-badge__dot {
- display: none;
- width: .55rem;
- height: .55rem;
- border-radius: 999px;
- background: currentColor;
-}
-
-.mobile-category-badges.is-compact .mobile-category-badge {
- width: .9rem;
- min-width: .9rem;
- height: .9rem;
- padding: 0;
- border-radius: 999px;
-}
-
-.mobile-category-badges.is-compact .mobile-category-badge__text {
- display: none;
-}
-
-.mobile-category-badges.is-compact .mobile-category-badge__dot {
- display: block;
-}
-
-.form-check.form-switch.app-switch {
- min-height: 2.75rem;
- padding: .58rem .82rem;
-}
-
-.form-check.form-switch.app-switch .form-check-input,
-.hide-purchased-switch .form-check-input {
- width: 2.45em !important;
- height: 1.3em !important;
- background-position: left center !important;
- transition: background-position .18s ease-in-out, background-color .18s ease-in-out, border-color .18s ease-in-out, box-shadow .18s ease-in-out !important;
-}
-
-.form-check.form-switch.app-switch .form-check-input:checked,
-.hide-purchased-switch .form-check-input:checked {
- background-position: right center !important;
-}
-
-.form-check.form-switch.app-switch .form-check-label {
- min-height: 1.3rem;
-}
-
-.hide-purchased-switch.form-check.app-switch {
- padding: .5rem .82rem;
-}
-
-@media (max-width: 576px) {
- .mobile-list-heading {
- display: inline-flex;
- max-width: 100%;
- }
-
- .mobile-list-heading__title {
- max-width: 100%;
- }
-}
-
-
-.endpoint-main_page .list-group-item > .main-list-row {
- display: flex;
- align-items: center;
- justify-content: space-between;
- gap: 0.75rem;
- width: 100%;
- flex-wrap: nowrap;
-}
-
-.endpoint-main_page .list-main-meta {
- min-width: 0;
- flex: 1 1 auto;
-}
-
-.endpoint-main_page .list-main-title {
- display: flex;
- align-items: center;
- align-content: center;
- flex-wrap: wrap;
- gap: 0.15rem;
- min-width: 0;
- line-height: 1;
-}
-
-.endpoint-main_page .list-main-actions {
- flex: 0 0 auto;
- align-self: center;
-}
-
-@media (max-width: 575.98px) {
- .endpoint-main_page .list-group-item > .main-list-row {
- flex-direction: column;
- align-items: stretch;
- }
-
- .endpoint-main_page .list-main-actions {
- width: 100%;
- }
-}
-
-/* mobile UX fixes 2026-03-14 */
-.list-main-title__link {
- min-width: 0;
- display: inline-flex;
- align-items: center;
- align-content: center;
- flex-wrap: wrap;
- gap: .15rem;
- line-height: 1;
-}
-
-.shopping-item-row {
- gap: .75rem;
-}
-
-.shopping-item-main {
- min-width: 0;
- flex: 1 1 auto;
- flex-wrap: wrap;
-}
-
-.shopping-item-main span[id^="name-"] {
- min-width: 0;
-}
-
-.shopping-item-actions {
- flex: 0 0 auto;
- margin-left: auto;
- align-self: flex-start;
-}
-
-.shopping-compact-input-group {
- flex-wrap: nowrap !important;
- align-items: stretch;
-}
-
-.shopping-qty-input {
- flex: 0 0 4.5rem;
- max-width: 4.5rem;
-}
-
-.shopping-compact-submit {
- flex: 0 0 auto;
- width: auto;
- white-space: nowrap;
-}
-
-
-@media (max-width: 991.98px) {
- .app-navbar__actions {
- grid-template-columns: repeat(auto-fit, minmax(8.25rem, max-content));
- justify-content: end;
- }
-
- .app-navbar__actions .btn,
- .app-nav-action {
- width: auto;
- min-width: 8.25rem;
- justify-self: end;
- }
-}
-
-@media (max-width: 575.98px) {
- .endpoint-main_page .list-group-item > .main-list-row {
- flex-direction: row;
- align-items: center;
- }
-
- .endpoint-main_page .list-main-actions {
- width: auto;
- margin-left: auto;
- }
-
- .endpoint-main_page .list-main-actions .btn {
- padding: .38rem .52rem;
- min-width: 2.35rem;
- }
-
- .endpoint-main_page .list-main-title {
- display: flex;
- flex-wrap: wrap;
- gap: .15rem;
- }
-
- .endpoint-main_page .list-main-meta {
- flex: 1 1 auto;
- min-width: 0;
- }
-
- .endpoint-main_page .list-main-title__link {
- min-width: 0;
- max-width: 100%;
- }
-
- .shopping-item-row {
- align-items: flex-start !important;
- }
-
- .shopping-item-actions {
- width: auto;
- margin-top: 0;
- margin-left: auto;
- justify-content: flex-end;
- }
-
- .shopping-item-actions .btn {
- min-width: 2.35rem;
- padding: .38rem .52rem;
- }
-
- .shopping-compact-input-group {
- display: flex;
- }
-
- .shopping-compact-input-group > .form-control {
- min-width: 0;
- }
-
- .shopping-qty-input {
- flex-basis: 4rem;
- max-width: 4rem;
- }
-
- .shopping-compact-submit {
- min-width: auto;
- padding-left: .8rem;
- padding-right: .8rem;
- }
-
- .ui-password-group > .ui-password-toggle {
- min-width: 2.75rem;
- padding-left: .7rem;
- padding-right: .7rem;
- }
-}
-
-
-/* UX refactor 2026-03-14 b */
-.app-navbar-toggler {
- border-color: rgba(255,255,255,.28);
- padding: .3rem .55rem;
-}
-
-.app-navbar-toggler:focus {
- box-shadow: 0 0 0 .2rem rgba(255,255,255,.1);
-}
-
-.app-navbar-toggler .navbar-toggler-icon {
- filter: invert(1) grayscale(1);
-}
-
-#createListTempToggle,
-.create-list-temp-toggle {
- border-top-left-radius: 0 !important;
- border-bottom-left-radius: 0 !important;
-}
-
-.create-list-input-group > .form-control {
- border-top-right-radius: 0;
- border-bottom-right-radius: 0;
-}
-
-.create-list-input-group > .create-list-temp-toggle {
- background: transparent;
- white-space: nowrap;
-}
-
-.list-toolbar {
- width: 100%;
-}
-
-.list-toolbar--share {
- justify-content: flex-end;
-}
-
-.hide-purchased-switch--minimal {
- border: 0;
- background: transparent;
- padding: 0;
- margin-left: auto;
-}
-
-.shopping-item-row {
- padding: .8rem .95rem;
-}
-
-.shopping-item-main {
- display: flex;
- align-items: center;
- gap: .75rem;
- width: 100%;
-}
-
-.shopping-item-content {
- flex: 1 1 auto;
- min-width: 0;
-}
-
-.shopping-item-head {
- display: flex;
- align-items: flex-start;
- justify-content: space-between;
- gap: .75rem;
-}
-
-.shopping-item-text {
- min-width: 0;
- display: flex;
- align-items: center;
- gap: .35rem;
- flex-wrap: wrap;
-}
-
-.shopping-item-name {
- min-width: 0;
- overflow-wrap: break-word;
- word-break: normal;
-}
-
-.shopping-item-text .info-line {
- flex-basis: 100%;
- margin-top: .1rem;
- overflow-wrap: break-word;
- word-break: normal;
-}
-
-.shopping-item-actions {
- display: inline-flex;
- flex-wrap: nowrap;
- gap: .35rem;
-}
-
-.shopping-product-input-group > .shopping-product-name-input,
-.shopping-expense-input-group > .shopping-expense-amount-input {
- flex: 1 1 auto;
-}
-
-.shopping-product-input-group > .shopping-qty-input {
- flex: 0 0 4.5rem;
- max-width: 4.5rem;
- text-align: center;
-}
-
-.shopping-expense-input-group > .shopping-compact-submit,
-.shopping-product-input-group > .shopping-compact-submit {
- flex: 0 0 auto;
-}
-
-.endpoint-list .shopping-product-input-group > .shopping-compact-submit,
-.endpoint-list_share .shopping-product-input-group > .shopping-compact-submit,
-.endpoint-shared_list .shopping-product-input-group > .shopping-compact-submit,
-.endpoint-list .shopping-expense-input-group > .shopping-compact-submit,
-.endpoint-list_share .shopping-expense-input-group > .shopping-compact-submit,
-.endpoint-shared_list .shopping-expense-input-group > .shopping-compact-submit {
- border-top-left-radius: 0 !important;
- border-bottom-left-radius: 0 !important;
- border-top-right-radius: .9rem !important;
- border-bottom-right-radius: .9rem !important;
- margin-left: 0;
-}
-
-.endpoint-list .shopping-product-input-group,
-.endpoint-list_share .shopping-product-input-group,
-.endpoint-shared_list .shopping-product-input-group,
-.endpoint-list .shopping-expense-input-group,
-.endpoint-list_share .shopping-expense-input-group,
-.endpoint-shared_list .shopping-expense-input-group {
- flex-wrap: nowrap;
-}
-
-@media (max-width: 991.98px) {
- .navbar-collapse .app-navbar__actions {
- padding-top: .6rem;
- justify-content: flex-end;
- }
-}
-
-@media (max-width: 575.98px) {
- .app-navbar__actions {
- width: 100%;
- justify-content: flex-end;
- }
-
- .app-navbar__actions .btn,
- .app-nav-action {
- min-width: 0;
- width: auto;
- }
-
- .shopping-item-main {
- gap: .55rem;
- }
-
- .shopping-item-head {
- gap: .45rem;
- }
-
- .shopping-item-actions {
- margin-left: auto;
- align-self: flex-start;
- }
-
- .shopping-item-actions .btn {
- min-width: 2.2rem;
- padding: .34rem .48rem;
- }
-
- .shopping-product-input-group > .shopping-product-name-input,
- .shopping-expense-input-group > .shopping-expense-amount-input {
- flex: 0 0 60%;
- min-width: 0;
- }
-
- .shopping-product-input-group > .shopping-qty-input {
- flex: 0 0 15%;
- max-width: 15%;
- min-width: 0;
- }
-
- .shopping-product-input-group > .shopping-compact-submit {
- flex: 0 0 25%;
- width: 25%;
- min-width: 0;
- padding-left: .55rem;
- padding-right: .55rem;
- font-size: .95rem;
- }
-
- .shopping-expense-input-group > .shopping-compact-submit {
- padding-left: .7rem;
- padding-right: .7rem;
- }
-
- .list-toolbar {
- align-items: flex-start !important;
- }
-
- .list-toolbar__sort {
- flex: 0 0 auto;
- }
-
- .hide-purchased-switch--minimal {
- font-size: .95rem;
- }
-}
-
-
-/* UX tweak 2026-03-14 c: hamburger with full labels */
-@media (max-width: 991.98px) {
- .navbar-collapse .app-navbar__actions {
- width: 100%;
- display: flex;
- flex-direction: column;
- align-items: stretch;
- gap: .5rem;
- }
-
- .navbar-collapse .app-navbar__actions .btn,
- .navbar-collapse .app-nav-action {
- width: 100%;
- min-width: 0;
- justify-content: flex-start;
- text-align: left;
- padding-left: .9rem;
- padding-right: .9rem;
- }
-
- .navbar-collapse .app-navbar__actions .btn > span,
- .navbar-collapse .app-nav-action > span {
- display: inline !important;
- }
-}
-
-
-/* form input/button unification fix 2026-03-15 */
-.endpoint-list .shopping-product-input-group,
-.endpoint-list_share .shopping-product-input-group,
-.endpoint-shared_list .shopping-product-input-group,
-.endpoint-list .shopping-expense-input-group,
-.endpoint-list_share .shopping-expense-input-group,
-.endpoint-shared_list .shopping-expense-input-group {
- display: flex;
- flex-wrap: nowrap !important;
- align-items: stretch;
- gap: 0 !important;
-}
-
-.endpoint-list .shopping-product-input-group > .form-control,
-.endpoint-list_share .shopping-product-input-group > .form-control,
-.endpoint-shared_list .shopping-product-input-group > .form-control,
-.endpoint-list .shopping-expense-input-group > .form-control,
-.endpoint-list_share .shopping-expense-input-group > .form-control,
-.endpoint-shared_list .shopping-expense-input-group > .form-control,
-.endpoint-list .shopping-product-input-group > .btn,
-.endpoint-list_share .shopping-product-input-group > .btn,
-.endpoint-shared_list .shopping-product-input-group > .btn,
-.endpoint-list .shopping-expense-input-group > .btn,
-.endpoint-list_share .shopping-expense-input-group > .btn,
-.endpoint-shared_list .shopping-expense-input-group > .btn {
- position: relative;
- min-height: 46px;
- box-shadow: none;
-}
-
-.endpoint-list .shopping-product-input-group > .shopping-product-name-input,
-.endpoint-list_share .shopping-product-input-group > .shopping-product-name-input,
-.endpoint-shared_list .shopping-product-input-group > .shopping-product-name-input,
-.endpoint-list .shopping-expense-input-group > .shopping-expense-amount-input,
-.endpoint-list_share .shopping-expense-input-group > .shopping-expense-amount-input,
-.endpoint-shared_list .shopping-expense-input-group > .shopping-expense-amount-input {
- border-top-right-radius: 0 !important;
- border-bottom-right-radius: 0 !important;
-}
-
-.endpoint-list .shopping-product-input-group > .shopping-qty-input,
-.endpoint-list_share .shopping-product-input-group > .shopping-qty-input,
-.endpoint-shared_list .shopping-product-input-group > .shopping-qty-input {
- border-radius: 0 !important;
- border-left-width: 0 !important;
-}
-
-.endpoint-list .shopping-product-input-group > .shopping-compact-submit,
-.endpoint-list_share .shopping-product-input-group > .shopping-compact-submit,
-.endpoint-shared_list .shopping-product-input-group > .shopping-compact-submit,
-.endpoint-list .shopping-expense-input-group > .shopping-compact-submit,
-.endpoint-list_share .shopping-expense-input-group > .shopping-compact-submit,
-.endpoint-shared_list .shopping-expense-input-group > .shopping-compact-submit {
- display: inline-flex;
- align-items: center;
- justify-content: center;
- gap: .35rem;
- margin-left: 0 !important;
- border-top-left-radius: 0 !important;
- border-bottom-left-radius: 0 !important;
- border-top-right-radius: .9rem !important;
- border-bottom-right-radius: .9rem !important;
- border-left-width: 0 !important;
-}
-
-.endpoint-list .shopping-product-input-group > .shopping-compact-submit,
-.endpoint-list .shopping-expense-input-group > .shopping-compact-submit,
-.endpoint-list_share .shopping-product-input-group > .shopping-compact-submit,
-.endpoint-list_share .shopping-expense-input-group > .shopping-compact-submit,
-.endpoint-shared_list .shopping-product-input-group > .shopping-compact-submit,
-.endpoint-shared_list .shopping-expense-input-group > .shopping-compact-submit,
-.endpoint-list .share-submit-btn,
-.endpoint-list_share .share-submit-btn,
-.endpoint-shared_list .share-submit-btn {
- min-width: 7.25rem;
-}
-
-.shopping-btn-icon {
- line-height: 1;
-}
-
-.shopping-btn-label {
- line-height: 1;
-}
-
-@media (max-width: 767.98px) {
- .endpoint-list .shopping-product-input-group,
- .endpoint-list_share .shopping-product-input-group,
- .endpoint-shared_list .shopping-product-input-group,
- .endpoint-list .shopping-expense-input-group,
- .endpoint-list_share .shopping-expense-input-group,
- .endpoint-shared_list .shopping-expense-input-group {
- width: 100%;
- }
-
- .endpoint-list .shopping-product-input-group > .shopping-product-name-input,
- .endpoint-list_share .shopping-product-input-group > .shopping-product-name-input,
- .endpoint-shared_list .shopping-product-input-group > .shopping-product-name-input {
- flex: 0 0 60% !important;
- max-width: 60% !important;
- min-width: 0;
- }
-
- .endpoint-list .shopping-product-input-group > .shopping-qty-input,
- .endpoint-list_share .shopping-product-input-group > .shopping-qty-input,
- .endpoint-shared_list .shopping-product-input-group > .shopping-qty-input {
- flex: 0 0 15% !important;
- max-width: 15% !important;
- min-width: 0;
- padding-left: .35rem;
- padding-right: .35rem;
- }
-
- .endpoint-list .shopping-product-input-group > .shopping-compact-submit,
- .endpoint-list_share .shopping-product-input-group > .shopping-compact-submit,
- .endpoint-shared_list .shopping-product-input-group > .shopping-compact-submit {
- flex: 0 0 25% !important;
- width: 25% !important;
- min-width: 0 !important;
- padding-left: .4rem;
- padding-right: .4rem;
- }
-
- .endpoint-list .shopping-expense-input-group > .shopping-expense-amount-input,
- .endpoint-list_share .shopping-expense-input-group > .shopping-expense-amount-input,
- .endpoint-shared_list .shopping-expense-input-group > .shopping-expense-amount-input {
- flex: 1 1 auto !important;
- min-width: 0;
- }
-
- .endpoint-list .shopping-expense-input-group > .shopping-compact-submit,
- .endpoint-list_share .shopping-expense-input-group > .shopping-compact-submit,
- .endpoint-shared_list .shopping-expense-input-group > .shopping-compact-submit {
- flex: 0 0 5rem !important;
- width: 5rem !important;
- min-width: 5rem !important;
- padding-left: .35rem;
- padding-right: .35rem;
- }
-
- .endpoint-list .shopping-product-input-group > .shopping-compact-submit .shopping-btn-label,
- .endpoint-list_share .shopping-product-input-group > .shopping-compact-submit .shopping-btn-label,
- .endpoint-shared_list .shopping-product-input-group > .shopping-compact-submit .shopping-btn-label,
- .endpoint-list .shopping-expense-input-group > .shopping-compact-submit .shopping-btn-label,
- .endpoint-list_share .shopping-expense-input-group > .shopping-compact-submit .shopping-btn-label,
- .endpoint-shared_list .shopping-expense-input-group > .shopping-compact-submit .shopping-btn-label {
- display: none;
- }
-
- .endpoint-list .shopping-product-input-group > .shopping-compact-submit .shopping-btn-icon,
- .endpoint-list_share .shopping-product-input-group > .shopping-compact-submit .shopping-btn-icon,
- .endpoint-shared_list .shopping-product-input-group > .shopping-compact-submit .shopping-btn-icon,
- .endpoint-list .shopping-expense-input-group > .shopping-compact-submit .shopping-btn-icon,
- .endpoint-list_share .shopping-expense-input-group > .shopping-compact-submit .shopping-btn-icon,
- .endpoint-shared_list .shopping-expense-input-group > .shopping-compact-submit .shopping-btn-icon {
- margin: 0;
- font-size: 1rem;
- }
-}
-
-
-/* endpoint fix for /list route */
-.endpoint-view_list .shopping-product-input-group,
-.endpoint-view_list .shopping-expense-input-group {
- display: flex;
- flex-wrap: nowrap !important;
- align-items: stretch;
- gap: 0 !important;
- width: 100%;
-}
-
-.endpoint-view_list .shopping-product-input-group > .form-control,
-.endpoint-view_list .shopping-expense-input-group > .form-control,
-.endpoint-view_list .shopping-product-input-group > .btn,
-.endpoint-view_list .shopping-expense-input-group > .btn {
- position: relative;
- min-height: 46px;
- box-shadow: none;
-}
-
-.endpoint-view_list .shopping-product-input-group > .shopping-product-name-input,
-.endpoint-view_list .shopping-expense-input-group > .shopping-expense-amount-input {
- border-top-right-radius: 0 !important;
- border-bottom-right-radius: 0 !important;
-}
-
-.endpoint-view_list .shopping-product-input-group > .shopping-qty-input {
- border-radius: 0 !important;
- border-left-width: 0 !important;
-}
-
-.endpoint-view_list .shopping-product-input-group > .shopping-compact-submit,
-.endpoint-view_list .shopping-expense-input-group > .shopping-compact-submit,
-.endpoint-view_list .share-submit-btn {
- display: inline-flex;
- align-items: center;
- justify-content: center;
- gap: .35rem;
- margin-left: 0 !important;
- min-width: 7.25rem;
- border-top-left-radius: 0 !important;
- border-bottom-left-radius: 0 !important;
- border-top-right-radius: .9rem !important;
- border-bottom-right-radius: .9rem !important;
- border-left-width: 0 !important;
-}
-
-@media (max-width: 767.98px) {
- .endpoint-view_list .shopping-product-input-group > .shopping-product-name-input {
- flex: 0 0 60% !important;
- max-width: 60% !important;
- min-width: 0;
- }
-
- .endpoint-view_list .shopping-product-input-group > .shopping-qty-input {
- flex: 0 0 15% !important;
- max-width: 15% !important;
- min-width: 0;
- padding-left: .35rem;
- padding-right: .35rem;
- }
-
- .endpoint-view_list .shopping-product-input-group > .shopping-compact-submit {
- flex: 0 0 25% !important;
- width: 25% !important;
- min-width: 0 !important;
- padding-left: .4rem;
- padding-right: .4rem;
- }
-
- .endpoint-view_list .shopping-expense-input-group > .shopping-expense-amount-input {
- flex: 1 1 auto !important;
- min-width: 0;
- }
-
- .endpoint-view_list .shopping-expense-input-group > .shopping-compact-submit {
- flex: 0 0 5rem !important;
- width: 5rem !important;
- min-width: 5rem !important;
- padding-left: .35rem;
- padding-right: .35rem;
- }
-
- .endpoint-view_list .shopping-product-input-group > .shopping-compact-submit .shopping-btn-label,
- .endpoint-view_list .shopping-expense-input-group > .shopping-compact-submit .shopping-btn-label {
- display: none;
- }
-
- .endpoint-view_list .shopping-product-input-group > .shopping-compact-submit .shopping-btn-icon,
- .endpoint-view_list .shopping-expense-input-group > .shopping-compact-submit .shopping-btn-icon {
- margin: 0;
- font-size: 1rem;
- }
-}
-
-/* --- JS render + progress bar consistency patch --- */
-#progress-bar-purchased {
- background: linear-gradient(135deg, rgba(39,208,125,0.96), rgba(22,150,91,0.98)) !important;
-}
-
-#progress-bar-not-purchased {
- background: linear-gradient(135deg, rgba(246,196,83,0.96), rgba(224,164,26,0.98)) !important;
-}
-
-#progress-bar-remaining {
- background: rgba(255,255,255,0.08) !important;
-}
diff --git a/shopping_app/static/css/split/16-row.css b/shopping_app/static/css/split/16-row.css
deleted file mode 100644
index 510a9c5..0000000
--- a/shopping_app/static/css/split/16-row.css
+++ /dev/null
@@ -1,661 +0,0 @@
-/* =========================================================
- Shopping item rows: shared base alignment + mobile fixes
-========================================================= */
-/* v10.2 item row consistency and mobile share fixes */
-.shopping-item-text {
- line-height: 1.35;
-}
-
-.shopping-item-text .info-line {
- display: inline;
- flex-basis: auto;
- margin-top: 0;
- white-space: normal;
-}
-
-.shopping-item-text .info-line > span {
- display: inline;
-}
-
-.shopping-item-text .item-added-by-meta {
- color: currentColor;
- opacity: .72;
- font-size: .92em;
-}
-
-.shopping-item-text .item-added-by-meta b {
- font-weight: 600;
-}
-
-.shopping-item-name,
-.shopping-item-text .info-line {
- overflow-wrap: break-word;
- word-break: normal;
-}
-
-.shopping-item-actions {
- flex: 0 0 auto;
-}
-
-@media (max-width: 575.98px) {
- .shopping-item-head {
- flex-wrap: wrap;
- align-items: flex-start;
- }
-
- .shopping-item-text {
- flex: 1 1 100%;
- min-width: 0;
- }
-
- .shopping-item-actions {
- width: 100%;
- margin-left: 0;
- justify-content: flex-end;
- }
-}
-
-
-/* v10.3 alignment fixes for list/share */
-.hide-purchased-switch--right {
- display: inline-flex !important;
- align-items: center;
- justify-content: flex-end;
- gap: .6rem;
- width: auto;
- margin-left: auto;
- padding: 0 !important;
- border: 0 !important;
- background: transparent !important;
- box-shadow: none !important;
-}
-
-.hide-purchased-switch--right::before,
-.hide-purchased-switch--right::after {
- display: none !important;
-}
-
-.hide-purchased-switch--right .form-check-input {
- order: 1;
- margin: 0;
- float: none;
- flex: 0 0 auto;
-}
-
-.hide-purchased-switch--right .form-check-label {
- order: 0;
- margin: 0 !important;
- white-space: nowrap;
-}
-
-.list-action-row {
- display: flex;
- flex-wrap: nowrap;
- align-items: stretch;
- gap: .65rem;
-}
-
-.list-action-row__form {
- display: flex;
- flex: 1 1 50%;
-}
-
-.list-action-row__btn {
- width: 100%;
-}
-
-.list-action-row > .list-action-row__btn {
- flex: 1 1 50%;
-}
-
-.shopping-item-head {
- flex-wrap: nowrap;
- align-items: center;
-}
-
-.shopping-item-text {
- flex: 1 1 auto;
- min-width: 0;
-}
-
-.shopping-item-text .info-line {
- flex-basis: auto;
-}
-
-.shopping-item-actions {
- align-items: center;
- justify-content: flex-end;
- flex: 0 0 auto;
- white-space: nowrap;
-}
-
-.shopping-item-actions .btn {
- flex: 0 0 auto;
-}
-
-@media (max-width: 575.98px) {
- .shopping-item-main {
- align-items: center;
- }
-
- .shopping-item-head {
- flex-wrap: nowrap;
- align-items: center;
- gap: .4rem;
- }
-
- .shopping-item-text {
- flex: 1 1 auto;
- min-width: 0;
- gap: .25rem;
- }
-
- .shopping-item-actions {
- width: auto;
- margin-left: auto;
- gap: .25rem;
- }
-
- .shopping-item-actions .btn {
- min-width: 2rem;
- padding: .3rem .42rem;
- }
-
- .hide-purchased-switch--right {
- width: auto;
- max-width: 100%;
- }
-
- .list-action-row {
- gap: .5rem;
- }
-
- .list-action-row > .list-action-row__btn,
- .list-action-row__form {
- flex: 1 1 50%;
- min-width: 0;
- }
-
- .list-action-row__btn {
- padding-left: .55rem;
- padding-right: .55rem;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- }
-}
-
-
-/* layout polish 2026-03-15: toolbar, sorting and item alignment */
-.list-header-toolbar {
- width: 100%;
-}
-
-.list-header-toolbar > h2 {
- flex: 1 1 auto;
- min-width: 0;
-}
-
-.list-header-toolbar .list-toolbar {
- flex: 0 0 auto;
- width: auto;
- margin-left: auto;
-}
-
-.list-toolbar__sort.btn {
- display: inline-flex;
- align-items: center;
- justify-content: center;
- white-space: nowrap;
- border-width: 1px !important;
-}
-
-.drag-handle {
- display: none !important;
- cursor: grab;
-}
-
-body.sorting-active .drag-handle {
- display: inline-flex !important;
-}
-
-body.sorting-active .shopping-item-row {
- cursor: grab;
-}
-
-body.sorting-active .shopping-item-row:active,
-body.sorting-active .drag-handle:active {
- cursor: grabbing;
-}
-
-body.sorting-active .shopping-item-row .large-checkbox {
- pointer-events: none;
-}
-
-.endpoint-list_share .shopping-item-name,
-.endpoint-list_share .shopping-item-text .info-line,
-.endpoint-shared_list .shopping-item-name,
-.endpoint-shared_list .shopping-item-text .info-line {
- overflow-wrap: break-word;
- word-break: normal;
-}
-
-.endpoint-list_share input[type="checkbox"].large-checkbox::before,
-.endpoint-shared_list input[type="checkbox"].large-checkbox::before,
-.endpoint-view_list input[type="checkbox"].large-checkbox::before {
- font-size: 1.7em;
-}
-
-@media (max-width: 575.98px) {
- .endpoint-view_list .list-toolbar {
- display: grid !important;
- grid-template-columns: minmax(0, 1fr) auto;
- align-items: center !important;
- gap: .4rem !important;
- flex-wrap: nowrap !important;
- }
-
- .endpoint-view_list .list-toolbar__sort.btn {
- min-width: 0;
- padding: .35rem .55rem;
- font-size: .82rem;
- }
-
- .endpoint-view_list .hide-purchased-switch--right {
- min-width: 0;
- gap: .25rem;
- font-size: .82rem;
- }
-
- .endpoint-view_list .hide-purchased-switch--right .form-check-label {
- margin-left: .25rem !important;
- white-space: nowrap;
- }
-
- .endpoint-view_list .hide-purchased-switch--right .form-check-input {
- transform: scale(.92);
- transform-origin: center;
- }
-
- .list-header-toolbar {
- align-items: flex-start !important;
- }
-
- .list-header-toolbar .list-toolbar {
- width: 100%;
- justify-content: flex-end !important;
- }
-}
-
-/* hotfix 2026-03-15 v3: /share item layout parity with /list */
-/* hotfix 2026-03-15: /share item layout parity with /list */
-.endpoint-list_share .shopping-item-row,
-.endpoint-shared_list .shopping-item-row {
- overflow: hidden;
- padding: .8rem .95rem;
-}
-
-.endpoint-list_share .shopping-item-main,
-.endpoint-shared_list .shopping-item-main,
-.endpoint-view_list .shopping-item-main,
-.endpoint-list .shopping-item-main {
- display: flex;
- align-items: center;
- gap: .75rem;
- width: 100%;
-}
-
-.endpoint-list_share .shopping-item-content,
-.endpoint-shared_list .shopping-item-content,
-.endpoint-view_list .shopping-item-content,
-.endpoint-list .shopping-item-content {
- flex: 1 1 auto;
- min-width: 0;
- width: auto;
-}
-
-.endpoint-list_share .shopping-item-head,
-.endpoint-shared_list .shopping-item-head,
-.endpoint-view_list .shopping-item-head,
-.endpoint-list .shopping-item-head {
- display: flex;
- align-items: center;
- justify-content: space-between;
- gap: .75rem;
-}
-
-.endpoint-list_share .shopping-item-text,
-.endpoint-shared_list .shopping-item-text,
-.endpoint-view_list .shopping-item-text,
-.endpoint-list .shopping-item-text {
- flex: 1 1 auto;
- min-width: 0;
- display: flex;
- align-items: center;
- align-content: center;
- gap: .35rem;
- flex-wrap: wrap;
-}
-
-.endpoint-list_share .shopping-item-name,
-.endpoint-shared_list .shopping-item-name,
-.endpoint-view_list .shopping-item-name,
-.endpoint-list .shopping-item-name {
- display: inline;
- min-width: 0;
- max-width: 100%;
- white-space: normal;
- overflow-wrap: break-word;
- word-break: normal;
-}
-
-.endpoint-list_share .shopping-item-text .badge,
-.endpoint-shared_list .shopping-item-text .badge,
-.endpoint-view_list .shopping-item-text .badge,
-.endpoint-list .shopping-item-text .badge,
-.endpoint-list_share .shopping-item-text .info-line,
-.endpoint-shared_list .shopping-item-text .info-line,
-.endpoint-view_list .shopping-item-text .info-line,
-.endpoint-list .shopping-item-text .info-line {
- align-self: center;
-}
-
-.endpoint-list_share .shopping-item-text .info-line,
-.endpoint-shared_list .shopping-item-text .info-line,
-.endpoint-view_list .shopping-item-text .info-line,
-.endpoint-list .shopping-item-text .info-line {
- display: block;
- flex: 0 0 100%;
- width: 100%;
- margin-top: .1rem;
- white-space: normal;
- overflow-wrap: break-word;
- word-break: normal;
-}
-
-.endpoint-list_share .shopping-item-actions,
-.endpoint-shared_list .shopping-item-actions,
-.endpoint-view_list .shopping-item-actions,
-.endpoint-list .shopping-item-actions {
- display: inline-flex;
- flex: 0 0 auto;
- flex-wrap: nowrap;
- align-items: center;
- align-self: center;
- justify-content: flex-end;
- gap: .35rem;
- margin-left: 0;
- white-space: nowrap;
-}
-
-.endpoint-list_share .shopping-item-actions .btn,
-.endpoint-shared_list .shopping-item-actions .btn {
- display: inline-flex;
- align-items: center;
- justify-content: center;
- min-width: 2.25rem;
- padding: .34rem .48rem;
-}
-
-.endpoint-list_share .shopping-item-main > .large-checkbox,
-.endpoint-shared_list .shopping-item-main > .large-checkbox,
-.endpoint-view_list .shopping-item-main > .large-checkbox {
- flex: 0 0 auto;
- align-self: center;
-}
-
-@media (max-width: 575.98px) {
- .endpoint-list_share .shopping-item-main,
- .endpoint-shared_list .shopping-item-main,
- .endpoint-view_list .shopping-item-main,
- .endpoint-list .shopping-item-main {
- gap: .55rem;
- }
-
- .endpoint-list_share .shopping-item-head,
- .endpoint-shared_list .shopping-item-head,
- .endpoint-view_list .shopping-item-head,
- .endpoint-list .shopping-item-head {
- display: flex;
- align-items: center;
- justify-content: space-between;
- gap: .45rem;
- }
-
- .endpoint-list_share .shopping-item-text,
- .endpoint-shared_list .shopping-item-text,
- .endpoint-view_list .shopping-item-text,
- .endpoint-list .shopping-item-text {
- flex: 1 1 auto;
- min-width: 0;
- gap: .25rem;
- }
-
- .endpoint-list_share .shopping-item-actions,
- .endpoint-shared_list .shopping-item-actions,
- .endpoint-view_list .shopping-item-actions,
- .endpoint-list .shopping-item-actions {
- align-self: start;
- width: auto;
- margin-left: auto;
- gap: .25rem;
- }
-
- .endpoint-list_share .shopping-item-actions .btn,
- .endpoint-shared_list .shopping-item-actions .btn {
- min-width: 2rem;
- padding: .3rem .42rem;
- }
-}
-
-.endpoint-list_share input[type="checkbox"].large-checkbox::before,
-.endpoint-shared_list input[type="checkbox"].large-checkbox::before {
- font-size: 1.75em;
-}
-
-/* mobile menu simplification 2026-03-15 */
-.app-mobile-menu {
- display: flex;
- align-items: center;
-}
-
-.app-mobile-menu__toggle {
- display: inline-flex;
- align-items: center;
- justify-content: center;
- width: 3rem;
- height: 3rem;
- border-radius: 14px;
- background: rgba(255,255,255,0.04);
-}
-
-.app-mobile-menu__panel {
- min-width: 14rem;
- padding: .4rem;
- border-radius: 16px;
- background: linear-gradient(180deg, rgba(14,22,35,0.98), rgba(9,15,26,0.98)) !important;
- border: 1px solid rgba(255,255,255,0.1);
- box-shadow: 0 18px 36px rgba(0,0,0,0.28);
-}
-
-.app-mobile-menu__item {
- display: flex;
- align-items: center;
- gap: .55rem;
- min-height: 2.6rem;
- padding: .55rem .75rem;
- color: #fff;
- border-radius: 12px;
-}
-
-.app-mobile-menu__item:hover,
-.app-mobile-menu__item:focus {
- background: rgba(255,255,255,0.08);
- color: #fff;
-}
-
-@media (min-width: 992px) {
- .app-mobile-menu {
- display: none !important;
- }
-}
-
-
-/* v5.1 create-list temp toggle mobile/Desktop fix */
-.create-list-input-group {
- display: flex;
- flex-wrap: nowrap !important;
- align-items: stretch;
- gap: 0 !important;
-}
-
-.create-list-input-group > .form-control {
- flex: 1 1 auto !important;
- width: 1% !important;
- min-width: 0 !important;
- border-top-right-radius: 0 !important;
- border-bottom-right-radius: 0 !important;
-}
-
-.create-list-input-group > .create-list-temp-toggle,
-.create-list-input-group > #tempToggle {
- flex: 0 0 auto !important;
- width: auto !important;
- min-width: 10rem;
- margin-left: -1px;
- border-top-left-radius: 0 !important;
- border-bottom-left-radius: 0 !important;
- border-top-right-radius: 14px !important;
- border-bottom-right-radius: 14px !important;
- background: rgba(255,255,255,0.03) !important;
- border-color: var(--app-border) !important;
- color: var(--app-text) !important;
- transition: background-color .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease;
-}
-
-.create-list-input-group > .create-list-temp-toggle.is-active,
-.create-list-input-group > #tempToggle.is-active {
- background: rgba(41, 209, 125, 0.16) !important;
- border-color: rgba(41, 209, 125, 0.72) !important;
- color: #9bf0c1 !important;
- box-shadow: inset 0 0 0 1px rgba(41, 209, 125, 0.15);
-}
-
-.create-list-input-group > .create-list-temp-toggle:hover,
-.create-list-input-group > #tempToggle:hover,
-.create-list-input-group > .create-list-temp-toggle:focus,
-.create-list-input-group > #tempToggle:focus {
- background: rgba(255,255,255,0.06) !important;
- color: var(--app-text) !important;
-}
-
-.create-list-input-group > .create-list-temp-toggle.is-active:hover,
-.create-list-input-group > #tempToggle.is-active:hover,
-.create-list-input-group > .create-list-temp-toggle.is-active:focus,
-.create-list-input-group > #tempToggle.is-active:focus {
- background: rgba(41, 209, 125, 0.2) !important;
- color: #b7f7d2 !important;
-}
-
-@media (max-width: 767.98px) {
- .create-list-input-group {
- gap: 0 !important;
- }
-
- .create-list-input-group > .form-control {
- padding-left: .9rem;
- padding-right: .75rem;
- }
-
- .create-list-input-group > .create-list-temp-toggle,
- .create-list-input-group > #tempToggle {
- min-width: 8.75rem;
- padding-left: .85rem;
- padding-right: .85rem;
- font-size: .92rem;
- letter-spacing: 0;
- }
-}
-
-
-.endpoint-list_share .shopping-item-actions,
-.endpoint-shared_list .shopping-item-actions,
-.endpoint-view_list .shopping-item-actions,
-.endpoint-list .shopping-item-actions {
- gap: .35rem !important;
- min-height: 2.35rem !important;
-}
-
-.endpoint-list_share .shopping-action-btn,
-.endpoint-shared_list .shopping-action-btn,
-.endpoint-view_list .shopping-action-btn,
-.endpoint-list .shopping-action-btn {
- width: 2.35rem !important;
- height: 2.35rem !important;
- min-width: 2.35rem !important;
- min-height: 2.35rem !important;
- padding: 0 !important;
- border-radius: .7rem !important;
- font-size: 1rem !important;
- line-height: 1 !important;
-}
-
-.endpoint-list_share .shopping-action-btn--wide,
-.endpoint-shared_list .shopping-action-btn--wide,
-.endpoint-view_list .shopping-action-btn--wide,
-.endpoint-list .shopping-action-btn--wide {
- width: auto !important;
- min-width: 5.9rem !important;
- padding: 0 .8rem !important;
-}
-.endpoint-list_share .shopping-action-btn--countdown,
-.endpoint-shared_list .shopping-action-btn--countdown,
-.endpoint-view_list .shopping-action-btn--countdown,
-.endpoint-list .shopping-action-btn--countdown {
- width: auto !important;
- min-width: 3.2rem !important;
- padding: 0 .65rem !important;
-}
-
-
-.endpoint-list_share .shopping-action-btn > *,
-.endpoint-shared_list .shopping-action-btn > *,
-.endpoint-view_list .shopping-action-btn > *,
-.endpoint-list .shopping-action-btn > * {
- line-height: 1 !important;
-}
-
-@media (max-width: 575.98px) {
- .endpoint-list_share .shopping-action-btn,
- .endpoint-shared_list .shopping-action-btn,
- .endpoint-view_list .shopping-action-btn,
- .endpoint-list .shopping-action-btn {
- width: 2.15rem !important;
- height: 2.15rem !important;
- min-width: 2.15rem !important;
- min-height: 2.15rem !important;
- border-radius: .65rem !important;
- }
-
- .endpoint-list_share .shopping-action-btn--wide,
- .endpoint-shared_list .shopping-action-btn--wide,
- .endpoint-view_list .shopping-action-btn--wide,
- .endpoint-list .shopping-action-btn--wide {
- min-width: 5.4rem !important;
- padding: 0 .72rem !important;
- }
-}
-
-@media (max-width: 575.98px) {
- .endpoint-list_share .shopping-action-btn--countdown,
- .endpoint-shared_list .shopping-action-btn--countdown,
- .endpoint-view_list .shopping-action-btn--countdown,
- .endpoint-list .shopping-action-btn--countdown {
- min-width: 3rem !important;
- padding: 0 .55rem !important;
- }
-}
-
-body:not(.sorting-active) .drag-handle {
- display: none !important;
-}
diff --git a/shopping_app/static/css/split/17-control.css b/shopping_app/static/css/split/17-control.css
deleted file mode 100644
index 4bfeeab..0000000
--- a/shopping_app/static/css/split/17-control.css
+++ /dev/null
@@ -1,492 +0,0 @@
-/* =========================================================
- Consistent form controls + password toggle
-========================================================= */
-:root {
- --ui-control-height: 42px;
- --ui-control-radius: 14px;
- --ui-control-focus-ring: 0 0 0 .25rem rgba(24, 64, 118, .18);
-}
-
-.ui-consistent-input {
- min-height: var(--ui-control-height) !important;
- border-radius: var(--ui-control-radius) !important;
-}
-
-.ui-password-group {
- display: flex !important;
- flex-wrap: nowrap !important;
- align-items: stretch !important;
- width: 100% !important;
- gap: 0 !important;
- overflow: hidden !important;
- border: 1px solid var(--ui-border-strong) !important;
- border-radius: var(--ui-control-radius) !important;
- background: rgba(255,255,255,0.04) !important;
- background-image: none !important;
- box-shadow: none !important;
-}
-
-.ui-password-group:focus-within {
- border-color: rgba(25, 135, 84, 0.6) !important;
- box-shadow: 0 0 0 0.2rem rgba(25, 135, 84, 0.16) !important;
-}
-
-.ui-password-group > .form-control {
- flex: 1 1 auto !important;
- width: 1% !important;
- min-width: 0 !important;
- min-height: var(--ui-control-height) !important;
- border: 0 !important;
- border-radius: 0 !important;
- box-shadow: none !important;
- background: transparent !important;
- background-color: transparent !important;
- background-image: none !important;
- background-clip: padding-box !important;
-}
-
-.ui-password-group > .form-control:focus {
- box-shadow: none !important;
- background: transparent !important;
- background-color: transparent !important;
-}
-
-.ui-password-group > .ui-password-toggle {
- appearance: none !important;
- -webkit-appearance: none !important;
- display: inline-flex !important;
- align-items: center !important;
- justify-content: center !important;
- flex: 0 0 46px !important;
- width: 46px !important;
- min-width: 46px !important;
- min-height: var(--ui-control-height) !important;
- padding: 0 !important;
- margin: 0 !important;
- cursor: pointer !important;
- background: transparent !important;
- background-color: transparent !important;
- background-image: none !important;
- color: rgba(255,255,255,0.72) !important;
- border: 0 !important;
- border-left: 1px solid rgba(255, 255, 255, 0.10) !important;
- border-radius: 0 !important;
- box-shadow: none !important;
- line-height: 1 !important;
-}
-
-.ui-password-group > .ui-password-toggle:hover,
-.ui-password-group > .ui-password-toggle:focus,
-.ui-password-group > .ui-password-toggle:focus-visible {
- background: rgba(255,255,255,0.03) !important;
- background-color: rgba(255,255,255,0.03) !important;
- color: #fff !important;
- border-left-color: rgba(255,255,255,0.16) !important;
- box-shadow: none !important;
- outline: none !important;
-}
-
-.ui-password-group > .ui-password-toggle.is-active {
- background: rgba(255,255,255,0.05) !important;
- background-color: rgba(255,255,255,0.05) !important;
- color: #fff !important;
-}
-
-.ui-password-group > .ui-password-toggle > * {
- pointer-events: none !important;
-}
-
-.endpoint-login form .form-control:not(.form-control-sm),
-.endpoint-system_auth form .form-control:not(.form-control-sm),
-.endpoint-edit_my_list form .form-control:not(.form-control-sm):not(.form-control-plaintext),
-.endpoint-edit_list form .form-control:not(.form-control-sm):not(.form-control-plaintext),
-.endpoint-user_management form .form-control:not(.form-control-sm),
-.endpoint-user_management .modal .form-control:not(.form-control-sm),
-.endpoint-edit_my_list form .form-select,
-.endpoint-edit_list form .form-select,
-.endpoint-user_management form .form-select,
-.endpoint-user_management .modal .form-select {
- min-height: var(--ui-control-height) !important;
-}
-
-.endpoint-login form .form-control.ui-consistent-input,
-.endpoint-system_auth form .form-control.ui-consistent-input,
-.endpoint-edit_my_list form .ui-consistent-input,
-.endpoint-edit_list form .ui-consistent-input,
-.endpoint-user_management form .ui-consistent-input,
-.endpoint-user_management .modal .ui-consistent-input {
- border-radius: var(--ui-control-radius) !important;
-}
-
-/*
- Password fields use only the generic ui-password-group rules above.
- Keep endpoint-specific overrides out of login/system_auth/admin screens,
- otherwise future changes start fighting through selector specificity.
-*/
-.ui-password-group > .form-control.ui-consistent-input {
- border-radius: 0 !important;
-}
-
-.endpoint-edit_my_list .access-editor .access-input,
-.endpoint-edit_list .input-group.input-group-sm .form-control {
- min-height: var(--ui-control-height) !important;
-}
-
-@media (max-width: 575.98px) {
- .ui-password-group > .ui-password-toggle {
- flex-basis: 44px !important;
- width: 44px !important;
- min-width: 44px !important;
- }
-}
-
-/* wyróżnienie pola dodawania produktu */
-.endpoint-list .shopping-entry-card,
-.endpoint-list_share .shopping-entry-card,
-.endpoint-shared_list .shopping-entry-card,
-.endpoint-view_list .shopping-entry-card {
- background: linear-gradient(180deg, rgba(25, 135, 84, 0.16), rgba(13, 17, 23, 0.92));
- border: 1px solid rgba(25, 135, 84, 0.42);
- border-radius: 1rem;
- padding: .9rem;
- box-shadow: 0 .5rem 1.2rem rgba(0, 0, 0, 0.18);
-}
-
-.endpoint-list .shopping-entry-card__label,
-.endpoint-list_share .shopping-entry-card__label,
-.endpoint-shared_list .shopping-entry-card__label,
-.endpoint-view_list .shopping-entry-card__label {
- display: inline-flex;
- align-items: center;
- gap: .4rem;
- margin-bottom: .2rem;
- font-size: .95rem;
- font-weight: 700;
- color: #d1f7df;
-}
-
-.endpoint-list .shopping-entry-card__hint,
-.endpoint-list_share .shopping-entry-card__hint,
-.endpoint-shared_list .shopping-entry-card__hint,
-.endpoint-view_list .shopping-entry-card__hint {
- margin-bottom: .75rem;
- color: rgba(255, 255, 255, 0.72);
- font-size: .82rem;
- line-height: 1.35;
-}
-
-.endpoint-list .shopping-entry-card .shopping-product-input-group,
-.endpoint-list_share .shopping-entry-card .shopping-product-input-group,
-.endpoint-shared_list .shopping-entry-card .shopping-product-input-group,
-.endpoint-view_list .shopping-entry-card .shopping-product-input-group {
- margin-bottom: 0 !important;
-}
-
-.endpoint-list .shopping-entry-card .shopping-product-input-group > .form-control,
-.endpoint-list_share .shopping-entry-card .shopping-product-input-group > .form-control,
-.endpoint-shared_list .shopping-entry-card .shopping-product-input-group > .form-control,
-.endpoint-view_list .shopping-entry-card .shopping-product-input-group > .form-control {
- border-color: rgba(25, 135, 84, 0.55) !important;
- background: rgba(17, 24, 39, 0.95) !important;
-}
-
-.endpoint-list .shopping-entry-card .shopping-product-input-group > .form-control::placeholder,
-.endpoint-list_share .shopping-entry-card .shopping-product-input-group > .form-control::placeholder,
-.endpoint-shared_list .shopping-entry-card .shopping-product-input-group > .form-control::placeholder,
-.endpoint-view_list .shopping-entry-card .shopping-product-input-group > .form-control::placeholder {
- color: rgba(255, 255, 255, 0.62);
-}
-
-.endpoint-list .shopping-entry-card .shopping-product-input-group > .shopping-product-name-input:focus,
-.endpoint-list_share .shopping-entry-card .shopping-product-input-group > .shopping-product-name-input:focus,
-.endpoint-shared_list .shopping-entry-card .shopping-product-input-group > .shopping-product-name-input:focus,
-.endpoint-view_list .shopping-entry-card .shopping-product-input-group > .shopping-product-name-input:focus {
- box-shadow: inset 0 0 0 1px rgba(25, 135, 84, 0.25), 0 0 0 .2rem rgba(25, 135, 84, 0.18);
-}
-
-@media (max-width: 767.98px) {
- .endpoint-list .shopping-entry-card,
- .endpoint-list_share .shopping-entry-card,
- .endpoint-shared_list .shopping-entry-card,
- .endpoint-view_list .shopping-entry-card {
- padding: .8rem;
- border-radius: .95rem;
- }
-
- .endpoint-list .shopping-entry-card__label,
- .endpoint-list_share .shopping-entry-card__label,
- .endpoint-shared_list .shopping-entry-card__label,
- .endpoint-view_list .shopping-entry-card__label {
- font-size: .92rem;
- }
-
- .endpoint-list .shopping-entry-card__hint,
- .endpoint-list_share .shopping-entry-card__hint,
- .endpoint-shared_list .shopping-entry-card__hint,
- .endpoint-view_list .shopping-entry-card__hint {
- font-size: .78rem;
- margin-bottom: .65rem;
- }
-}
-
-/* ========== /expenses mobile fixes: separate range pickers + better wrapping ========== */
-.endpoint-expenses .expenses-range-toolbar {
- width: 100%;
-}
-
-.endpoint-expenses .expenses-range-group {
- flex-wrap: wrap;
- justify-content: center;
- width: 100%;
-}
-
-.endpoint-expenses .expenses-range-group > .btn {
- white-space: nowrap;
-}
-
-.endpoint-expenses .expenses-date-range {
- align-items: stretch;
-}
-
-@media (max-width: 767.98px) {
- .endpoint-expenses .expenses-range-toolbar {
- justify-content: stretch !important;
- overflow: visible;
- padding-bottom: 0;
- }
-
- .endpoint-expenses .expenses-range-group {
- display: grid !important;
- grid-template-columns: repeat(2, minmax(0, 1fr));
- gap: 0.55rem;
- width: 100%;
- min-width: 0;
- }
-
- .endpoint-expenses .expenses-table-toolbar .expenses-range-group {
- grid-template-columns: repeat(3, minmax(0, 1fr));
- }
-
- .endpoint-expenses .expenses-range-group > .btn {
- flex: initial !important;
- width: 100%;
- min-width: 0;
- padding-inline: 0.55rem;
- font-size: 0.95rem;
- }
-
- .endpoint-expenses .expenses-date-range {
- display: grid !important;
- grid-template-columns: 52px minmax(0, 1fr);
- gap: 0.55rem;
- width: 100%;
- max-width: 100% !important;
- flex-wrap: wrap !important;
- }
-
- .endpoint-expenses .expenses-date-range > .input-group-text,
- .endpoint-expenses .expenses-date-range > .form-control,
- .endpoint-expenses .expenses-date-range > .btn {
- width: 100% !important;
- min-width: 0 !important;
- flex: initial !important;
- border-radius: 0.85rem !important;
- }
-
- .endpoint-expenses .expenses-date-range > .btn {
- grid-column: 1 / -1;
- }
-}
-
-
-/* /share expense entry card aligned with product card */
-.endpoint-list .shopping-entry-card--expense,
-.endpoint-list_share .shopping-entry-card--expense,
-.endpoint-shared_list .shopping-entry-card--expense,
-.endpoint-view_list .shopping-entry-card--expense {
- background: linear-gradient(180deg, rgba(13, 110, 253, 0.16), rgba(13, 17, 23, 0.92));
- border-color: rgba(13, 110, 253, 0.42);
-}
-
-.endpoint-list .shopping-entry-card--expense .shopping-entry-card__label,
-.endpoint-list_share .shopping-entry-card--expense .shopping-entry-card__label,
-.endpoint-shared_list .shopping-entry-card--expense .shopping-entry-card__label,
-.endpoint-view_list .shopping-entry-card--expense .shopping-entry-card__label {
- color: #d7e9ff;
-}
-
-.endpoint-list .shopping-entry-card--expense .shopping-expense-input-group,
-.endpoint-list_share .shopping-entry-card--expense .shopping-expense-input-group,
-.endpoint-shared_list .shopping-entry-card--expense .shopping-expense-input-group,
-.endpoint-view_list .shopping-entry-card--expense .shopping-expense-input-group {
- margin-bottom: 0 !important;
-}
-
-.endpoint-list .shopping-entry-card--expense .shopping-expense-input-group > .form-control,
-.endpoint-list_share .shopping-entry-card--expense .shopping-expense-input-group > .form-control,
-.endpoint-shared_list .shopping-entry-card--expense .shopping-expense-input-group > .form-control,
-.endpoint-view_list .shopping-entry-card--expense .shopping-expense-input-group > .form-control {
- border-color: rgba(13, 110, 253, 0.55) !important;
- background: rgba(17, 24, 39, 0.95) !important;
-}
-
-.endpoint-list .shopping-entry-card--expense .shopping-expense-input-group > .form-control::placeholder,
-.endpoint-list_share .shopping-entry-card--expense .shopping-expense-input-group > .form-control::placeholder,
-.endpoint-shared_list .shopping-entry-card--expense .shopping-expense-input-group > .form-control::placeholder,
-.endpoint-view_list .shopping-entry-card--expense .shopping-expense-input-group > .form-control::placeholder {
- color: rgba(255, 255, 255, 0.62);
-}
-
-.endpoint-list .shopping-entry-card--expense .shopping-expense-input-group > .shopping-expense-amount-input:focus,
-.endpoint-list_share .shopping-entry-card--expense .shopping-expense-input-group > .shopping-expense-amount-input:focus,
-.endpoint-shared_list .shopping-entry-card--expense .shopping-expense-input-group > .shopping-expense-amount-input:focus,
-.endpoint-view_list .shopping-entry-card--expense .shopping-expense-input-group > .shopping-expense-amount-input:focus {
- box-shadow: inset 0 0 0 1px rgba(13, 110, 253, 0.25), 0 0 0 .2rem rgba(13, 110, 253, 0.18);
-}
-
-.endpoint-list .share-submit-btn--expense,
-.endpoint-list_share .share-submit-btn--expense,
-.endpoint-shared_list .share-submit-btn--expense,
-.endpoint-view_list .share-submit-btn--expense {
- color: #8ec5ff;
- border-color: rgba(13, 110, 253, 0.72) !important;
- background: rgba(13, 110, 253, 0.12);
-}
-
-.endpoint-list .share-submit-btn--expense:hover,
-.endpoint-list_share .share-submit-btn--expense:hover,
-.endpoint-shared_list .share-submit-btn--expense:hover,
-.endpoint-view_list .share-submit-btn--expense:hover,
-.endpoint-list .share-submit-btn--expense:focus,
-.endpoint-list_share .share-submit-btn--expense:focus,
-.endpoint-shared_list .share-submit-btn--expense:focus,
-.endpoint-view_list .share-submit-btn--expense:focus {
- color: #fff;
- border-color: rgba(13, 110, 253, 0.9) !important;
- background: rgba(13, 110, 253, 0.22);
- box-shadow: 0 0 0 .2rem rgba(13, 110, 253, 0.16);
-}
-
-/* UX polish 2026-03-19: list quick actions card */
-.list-quick-actions {
- display: grid;
- gap: .9rem;
- padding: 1rem;
- border: 1px solid rgba(255,255,255,.08);
- border-radius: 1rem;
- background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
- box-shadow: 0 .5rem 1.25rem rgba(0,0,0,.14);
-}
-
-.list-quick-actions__header {
- display: flex;
- align-items: flex-start;
- justify-content: space-between;
- gap: .75rem;
-}
-
-.list-quick-actions__eyebrow {
- font-size: .72rem;
- letter-spacing: .08em;
- text-transform: uppercase;
- color: rgba(255,255,255,.58);
- margin-bottom: .15rem;
-}
-
-.list-quick-actions__title {
- font-size: 1rem;
- font-weight: 700;
- color: #fff;
- line-height: 1.2;
-}
-
-.list-quick-actions__hint {
- font-size: .82rem;
- color: rgba(255,255,255,.62);
- text-align: right;
- max-width: 18rem;
-}
-
-.list-quick-actions__grid {
- display: grid;
- grid-template-columns: repeat(2, minmax(0, 1fr));
- gap: .75rem;
-}
-
-.list-quick-actions__form {
- display: block;
-}
-
-.list-quick-actions__action.btn {
- width: 100%;
- min-height: 78px;
- display: flex;
- align-items: flex-start;
- gap: .75rem;
- padding: .9rem 1rem;
- border-radius: .95rem;
- text-align: left;
- white-space: normal;
-}
-
-.list-quick-actions__action--primary.btn {
- border-color: rgba(255,255,255,.2);
- background: rgba(255,255,255,.03);
-}
-
-.list-quick-actions__action--secondary.btn {
- border-color: rgba(13,110,253,.5);
- background: rgba(13,110,253,.08);
-}
-
-.list-quick-actions__icon {
- flex: 0 0 auto;
- font-size: 1.05rem;
- line-height: 1;
- margin-top: .1rem;
-}
-
-.list-quick-actions__content {
- display: grid;
- gap: .2rem;
- min-width: 0;
-}
-
-.list-quick-actions__label {
- font-size: .95rem;
- font-weight: 600;
- color: #fff;
- line-height: 1.25;
-}
-
-.list-quick-actions__desc {
- font-size: .81rem;
- color: rgba(255,255,255,.66);
- line-height: 1.35;
-}
-
-@media (max-width: 767.98px) {
- .list-quick-actions {
- padding: .9rem;
- gap: .75rem;
- }
-
- .list-quick-actions__header {
- flex-direction: column;
- gap: .35rem;
- }
-
- .list-quick-actions__hint {
- max-width: none;
- text-align: left;
- }
-
- .list-quick-actions__grid {
- grid-template-columns: 1fr;
- }
-
- .list-quick-actions__action.btn {
- min-height: 72px;
- padding: .85rem .9rem;
- }
-}
diff --git a/shopping_app/static/css/split/18-mobile.css b/shopping_app/static/css/split/18-mobile.css
deleted file mode 100644
index f099452..0000000
--- a/shopping_app/static/css/split/18-mobile.css
+++ /dev/null
@@ -1,268 +0,0 @@
-/* =========================================================
- Mobile navbar and user chip
-========================================================= */
-.app-navbar__meta--mobile {
- display: none;
-}
-
-.app-user-chip--mobile {
- max-width: min(46vw, 15rem);
- min-width: 0;
- padding-left: .6rem;
- padding-right: .4rem;
-}
-
-.app-user-chip--mobile .badge {
- max-width: 100%;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
-}
-
-@media (max-width: 991.98px) {
- .app-navbar .container-xxl {
- grid-template-columns: minmax(0, 1fr) auto auto;
- }
-
- .app-navbar__meta--mobile {
- display: flex !important;
- width: auto;
- justify-content: flex-end;
- justify-self: end;
- grid-column: 2;
- min-width: 0;
- max-width: min(42vw, 12rem);
- }
-
- .app-user-chip--mobile {
- display: inline-flex;
- }
-
- .app-mobile-menu {
- grid-column: 3;
- justify-self: end;
- }
-}
-
-@media (max-width: 575.98px) {
- .app-brand__icon {
- width: 2.25rem;
- height: 2.25rem;
- }
-
- .app-user-chip--mobile {
- gap: .35rem;
- padding: .34rem .38rem .34rem .5rem;
- }
-
- .app-user-chip--mobile .app-user-chip__label {
- font-size: .62rem;
- letter-spacing: .05em;
- }
-
- .app-user-chip--mobile .badge {
- font-size: .72rem;
- max-width: 5.9rem;
- }
-}
-
-@media (max-width: 430px) {
- .app-navbar .container-xxl {
- grid-template-columns: minmax(0, 1fr) auto auto;
- gap: .45rem;
- }
-
- .app-user-chip--mobile {
- max-width: min(38vw, 8.5rem);
- }
-
- .app-user-chip--mobile .app-user-chip__label {
- display: none;
- }
-}
-
-/* --- Main page list progress consistency --- */
-.endpoint-main_page .list-group-item {
- display: flex;
- flex-direction: column;
- align-items: stretch;
- justify-content: flex-start;
-}
-
-.endpoint-main_page .main-list-progress-wrap {
- display: block;
- width: 100%;
- flex: 0 0 100%;
- margin-top: 0.8rem !important;
-}
-
-.endpoint-main_page .list-group-item > .main-list-row + .main-list-progress-wrap {
- align-self: stretch;
-}
-
-.endpoint-main_page .main-list-progress {
- width: 100%;
- height: 16px;
- margin-top: 0 !important;
- border: 1px solid rgba(255, 255, 255, 0.08);
- background:
- linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02)),
- var(--dark-700) !important;
- box-shadow:
- inset 0 1px 0 rgba(255, 255, 255, 0.05),
- 0 4px 10px rgba(0, 0, 0, 0.18);
-}
-
-.endpoint-main_page .main-list-progress .progress-bar.bg-success {
- background: linear-gradient(135deg, rgba(40, 199, 111, 0.98), rgba(22, 163, 74, 0.98)) !important;
-}
-
-.endpoint-main_page .main-list-progress .progress-bar.bg-warning {
- background: linear-gradient(135deg, rgba(245, 189, 65, 0.98), rgba(217, 119, 6, 0.98)) !important;
-}
-
-.endpoint-main_page .main-list-progress .progress-bar.bg-transparent {
- background: rgba(255, 255, 255, 0.08) !important;
-}
-
-.endpoint-main_page .main-list-progress__label {
- max-width: calc(100% - 0.85rem);
- padding: 0 0.45rem;
- overflow: hidden;
- text-overflow: ellipsis;
- text-align: center;
- text-shadow: 0 1px 2px rgba(0, 0, 0, 0.45);
- letter-spacing: 0.01em;
-}
-
-@media (max-width: 575.98px) {
- .endpoint-main_page .main-list-progress {
- height: 15px;
- }
-
- .endpoint-main_page .main-list-progress__label {
- font-size: 0.64rem;
- }
-}
-
-.endpoint-main_page #mainStatsCollapse.collapsing,
-.endpoint-main_page #mainStatsCollapse.show {
- overflow: visible;
-}
-
-.endpoint-main_page .main-summary-card {
- height: 100%;
- padding: 1rem 1rem 1.05rem;
- border-radius: 1rem;
- border: 1px solid rgba(255, 255, 255, 0.08);
- background: linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.02)), rgba(9, 16, 28, 0.88);
- box-shadow: 0 12px 28px rgba(0, 0, 0, 0.2);
-}
-
-.endpoint-main_page .main-summary-card__eyebrow {
- font-size: 0.72rem;
- text-transform: uppercase;
- letter-spacing: 0.08em;
- color: rgba(255, 255, 255, 0.65);
- margin-bottom: 0.2rem;
-}
-
-.endpoint-main_page .main-summary-card__title {
- font-size: 1.05rem;
-}
-
-.endpoint-main_page .main-summary-stats {
- display: grid;
- grid-template-columns: repeat(2, minmax(0, 1fr));
- gap: 0.7rem;
-}
-
-.endpoint-main_page .main-summary-stat {
- padding: 0.65rem 0.75rem;
- border-radius: 0.85rem;
- background: rgba(255, 255, 255, 0.04);
- border: 1px solid rgba(255, 255, 255, 0.06);
-}
-
-.endpoint-main_page .main-summary-stat__label {
- display: block;
- font-size: 0.73rem;
- color: rgba(255, 255, 255, 0.66);
- margin-bottom: 0.15rem;
-}
-
-
-@media (max-width: 575.98px) {
- .endpoint-main_page .main-summary-card {
- padding: 0.9rem;
- }
-
- .endpoint-main_page .main-summary-stats {
- grid-template-columns: 1fr;
- }
-}
-
-@media (max-width: 575.98px) {
- .endpoint-list_share .shopping-item-head,
- .endpoint-shared_list .shopping-item-head {
- display: grid;
- grid-template-columns: minmax(0, 1fr) auto;
- align-items: start;
- column-gap: .45rem;
- }
-
- .endpoint-list_share .shopping-item-actions,
- .endpoint-shared_list .shopping-item-actions {
- align-self: start;
- margin-left: 0;
- justify-self: end;
- }
-}
-
-@media (max-width: 575.98px) {
- .endpoint-list_share .shopping-item-main,
- .endpoint-shared_list .shopping-item-main {
- align-items: center;
- }
-
- .endpoint-list_share .shopping-item-text,
- .endpoint-shared_list .shopping-item-text,
- .endpoint-list_share .shopping-item-main > .large-checkbox,
- .endpoint-shared_list .shopping-item-main > .large-checkbox,
- .endpoint-list_share .shopping-item-actions,
- .endpoint-shared_list .shopping-item-actions {
- align-self: center;
- }
-
- .endpoint-list_share .shopping-item-actions,
- .endpoint-shared_list .shopping-item-actions {
- margin-left: auto;
- justify-self: auto;
- }
-}
-
-.endpoint-list #items,
-.endpoint-view_list #items,
-.endpoint-list_share #items,
-.endpoint-shared_list #items {
- display: flex;
- flex-direction: column;
-}
-
-.endpoint-list #items > .list-group-item,
-.endpoint-view_list #items > .list-group-item,
-.endpoint-list_share #items > .list-group-item,
-.endpoint-shared_list #items > .list-group-item {
- margin: 0 !important;
- border-width: 1px !important;
- box-shadow: 0 4px 14px rgba(0,0,0,0.12) !important;
- background-clip: padding-box;
-}
-
-.endpoint-list #items > .list-group-item + .list-group-item,
-.endpoint-view_list #items > .list-group-item + .list-group-item,
-.endpoint-list_share #items > .list-group-item + .list-group-item,
-.endpoint-shared_list #items > .list-group-item + .list-group-item {
- margin-top: 0 !important;
- border-top-width: 1px !important;
-}
diff --git a/shopping_app/static/css/split/19-preview.css b/shopping_app/static/css/split/19-preview.css
deleted file mode 100644
index f271e65..0000000
--- a/shopping_app/static/css/split/19-preview.css
+++ /dev/null
@@ -1,67 +0,0 @@
-/* =========================================================
- Preview product list
-========================================================= */
-
-.preview-product-list {
- display: flex;
- flex-direction: column;
- gap: 1rem;
-}
-
-.preview-product-summary {
- padding: 0 0 0.85rem;
- margin-bottom: 0.1rem;
- border-bottom: 1px solid rgba(255,255,255,0.08);
-}
-
-.preview-product-section {
- display: flex;
- flex-direction: column;
- gap: 0.65rem;
-}
-
-.preview-product-section-title {
- margin: 0;
- font-size: 1.05rem;
- font-weight: 700;
-}
-
-.preview-modal-items {
- display: flex;
- flex-direction: column;
- gap: 0.75rem;
-}
-
-#productPreviewModal .preview-modal-list-item {
- display: flex;
- align-items: center;
- justify-content: space-between;
- gap: 0.75rem;
- width: 100%;
- min-width: 0;
- padding: 0.9rem 1rem;
- margin: 0 !important;
- border-radius: 16px !important;
- border: 1px solid rgba(255,255,255,0.08) !important;
- background: linear-gradient(180deg, rgba(11,22,40,0.92) 0%, rgba(8,16,30,0.92) 100%) !important;
- box-shadow: inset 0 1px 0 rgba(255,255,255,0.03);
-}
-
-#productPreviewModal .preview-modal-list-item:first-child,
-#productPreviewModal .preview-modal-list-item:last-child,
-#productPreviewModal .list-group-flush > .list-group-item:first-child,
-#productPreviewModal .list-group-flush > .list-group-item:last-child {
- border-radius: 16px !important;
-}
-
-#productPreviewModal .preview-modal-list-item__name {
- min-width: 0;
- overflow-wrap: anywhere;
- flex: 1 1 auto;
-}
-
-#productPreviewModal .preview-modal-list-item .badge {
- flex-shrink: 0;
- min-width: 2.5rem;
- border-radius: 10px;
-}
diff --git a/shopping_app/static/css/split/20-receipt.css b/shopping_app/static/css/split/20-receipt.css
deleted file mode 100644
index 549c4ab..0000000
--- a/shopping_app/static/css/split/20-receipt.css
+++ /dev/null
@@ -1,111 +0,0 @@
-/* =========================================================
- Receipt disclosure (share view)
-========================================================= */
-.receipt-disclosure {
- width: 100%;
- cursor: pointer;
- border: 1px solid rgba(255, 255, 255, 0.08);
- border-radius: 20px;
- background: linear-gradient(135deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.02));
- box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
- transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
-}
-
-.receipt-disclosure:hover,
-.receipt-disclosure:focus-visible {
- transform: translateY(-1px);
- border-color: rgba(255, 255, 255, 0.18);
- box-shadow: 0 16px 36px rgba(0, 0, 0, 0.24);
- outline: none;
-}
-
-.receipt-disclosure.is-open {
- border-color: rgba(24, 64, 118, 0.9);
- background: linear-gradient(135deg, rgba(24, 64, 118, 0.22), rgba(255, 255, 255, 0.03));
-}
-
-.receipt-disclosure__content {
- display: flex;
- align-items: center;
- gap: 14px;
- padding: 16px 18px;
-}
-
-.receipt-disclosure__icon {
- display: grid;
- place-items: center;
- width: 48px;
- height: 48px;
- border-radius: 14px;
- background: rgba(255, 255, 255, 0.06);
- font-size: 1.25rem;
- flex-shrink: 0;
-}
-
-.receipt-disclosure__text {
- min-width: 0;
- flex: 1;
-}
-
-.receipt-disclosure__eyebrow {
- font-size: 0.72rem;
- letter-spacing: 0.08em;
- text-transform: uppercase;
- color: rgba(255, 255, 255, 0.52);
- margin-bottom: 2px;
-}
-
-.receipt-disclosure__title {
- font-size: 1rem;
- font-weight: 600;
- color: var(--text-strong);
-}
-
-.receipt-disclosure__meta {
- display: flex;
- align-items: center;
- gap: 12px;
- margin-left: auto;
- flex-shrink: 0;
-}
-
-.receipt-disclosure__count {
- min-width: 34px;
- padding: 6px 10px;
- border-radius: 999px;
- background: rgba(255, 255, 255, 0.08);
- color: var(--text-strong);
- font-size: 0.875rem;
- text-align: center;
-}
-
-.receipt-disclosure__chevron {
- font-size: 1.15rem;
- color: rgba(255, 255, 255, 0.7);
- transition: transform 0.2s ease;
-}
-
-.receipt-disclosure.is-open .receipt-disclosure__chevron {
- transform: rotate(180deg);
-}
-
-@media (max-width: 575.98px) {
- .receipt-disclosure__content {
- padding: 14px;
- gap: 12px;
- }
-
- .receipt-disclosure__icon {
- width: 42px;
- height: 42px;
- border-radius: 12px;
- }
-
- .receipt-disclosure__meta {
- gap: 10px;
- }
-
- .receipt-disclosure__title {
- font-size: 0.95rem;
- }
-}
diff --git a/shopping_app/static/css/split/21-fix.css b/shopping_app/static/css/split/21-fix.css
deleted file mode 100644
index 8d8374e..0000000
--- a/shopping_app/static/css/split/21-fix.css
+++ /dev/null
@@ -1,346 +0,0 @@
-/* =========================================================
- form-control normalization
-========================================================= */
-.endpoint-edit_my_list .stack-form > .mb-3 > .ui-consistent-input,
-.endpoint-edit_my_list .stack-form > .mb-4 > .ui-consistent-input,
-.endpoint-edit_my_list .stack-form .row .ui-consistent-input,
-.endpoint-edit_list form > .mb-3 > .ui-consistent-input,
-.endpoint-edit_list form > .mb-4 > .ui-consistent-input,
-.endpoint-edit_list form .row .ui-consistent-input,
-.endpoint-user_management .row > [class*="col-"] > .ui-consistent-input,
-.endpoint-user_management .modal .ui-consistent-input {
- border-radius: var(--ui-control-radius) !important;
-}
-
-.endpoint-edit_my_list .ts-wrapper.single .ts-control,
-.endpoint-edit_list .ts-wrapper.single .ts-control,
-.endpoint-edit_my_list .ts-wrapper.multi .ts-control,
-.endpoint-edit_list .ts-wrapper.multi .ts-control {
- min-height: var(--ui-control-height) !important;
- border-radius: var(--ui-control-radius) !important;
-}
-
-/* Share hub */
-.share-hub {
- border: 1px solid rgba(79, 142, 255, 0.18);
- background: linear-gradient(180deg, rgba(11, 24, 43, 0.98), rgba(8, 17, 31, 0.96)) !important;
-}
-
-.share-hub .card-body {
- padding: 1rem;
-}
-
-.share-hub__top {
- display: flex;
- align-items: flex-start;
- justify-content: space-between;
- gap: 0.9rem;
- margin-bottom: 0.85rem;
-}
-
-.share-hub__eyebrow,
-.share-sheet__eyebrow {
- font-size: 0.72rem;
- letter-spacing: 0.08em;
- text-transform: uppercase;
- color: rgba(186, 210, 240, 0.62);
- margin-bottom: 0.35rem;
-}
-
-.share-hub__title {
- font-size: 1.1rem;
- font-weight: 700;
-}
-
-.share-hub__status,
-.share-sheet__section-head {
- display: flex;
- flex-wrap: wrap;
- gap: 0.45rem;
- align-items: center;
-}
-
-.share-state-badge {
- display: inline-flex;
- align-items: center;
- gap: 0.3rem;
- min-height: 32px;
- padding: 0.45rem 0.72rem;
- font-size: 0.76rem;
- font-weight: 600;
- border: 1px solid rgba(255, 255, 255, 0.08);
-}
-
-.share-state-badge--public {
- background: rgba(41, 209, 125, 0.16);
- color: #dfffea;
-}
-
-.share-state-badge--private {
- background: rgba(255, 255, 255, 0.06);
- color: #edf5ff;
-}
-
-.share-state-badge--link {
- background: rgba(79, 142, 255, 0.14);
- color: #d7e7ff;
-}
-
-.share-state-badge--people {
- background: rgba(255, 255, 255, 0.08);
- color: #edf5ff;
-}
-
-.share-hub__note {
- color: rgba(210, 224, 244, 0.74);
- font-size: 0.92rem;
- line-height: 1.45;
-}
-
-.share-hub__linkbox {
- border: 1px solid rgba(255, 255, 255, 0.08);
- background: rgba(255, 255, 255, 0.035);
- border-radius: 16px;
- padding: 0.85rem 0.95rem;
-}
-
-.share-hub__linklabel {
- font-size: 0.72rem;
- text-transform: uppercase;
- letter-spacing: 0.07em;
- color: rgba(186, 210, 240, 0.58);
- margin-bottom: 0.3rem;
-}
-
-.share-hub__linkvalue {
- color: #f4f8ff;
- font-size: 0.95rem;
- line-height: 1.45;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
-}
-
-.share-hub__actions {
- display: grid;
- grid-template-columns: 1fr;
- gap: 0.65rem;
-}
-
-.share-hub__primary,
-.share-hub__secondary,
-.share-hub__manage,
-.share-sheet__toggle,
-.share-sheet__sticky-actions .btn,
-.share-sheet__linkstack .btn,
-
-
-.share-hub__manage {
- white-space: nowrap;
-}
-
-.share-sheet {
- height: auto !important;
- max-height: min(90vh, 760px);
- border-top-left-radius: 24px;
- border-top-right-radius: 24px;
- border: 1px solid rgba(255, 255, 255, 0.06);
- background: linear-gradient(180deg, rgba(8, 18, 33, 0.995), rgba(6, 13, 24, 0.99)) !important;
- box-shadow: 0 -24px 60px rgba(0, 0, 0, 0.42);
-}
-
-.share-sheet__header {
- align-items: flex-start;
- padding: 0.85rem 1rem 0.6rem;
-}
-
-.share-sheet__body {
- padding: 0 1rem calc(1rem + env(safe-area-inset-bottom));
- overflow-y: auto;
-}
-
-.share-sheet__grabber {
- width: 52px;
- height: 5px;
- border-radius: 999px;
- margin: 0 auto 0.8rem;
- background: rgba(255, 255, 255, 0.22);
-}
-
-.share-sheet__section {
- border: 1px solid rgba(255, 255, 255, 0.07);
- background: rgba(255, 255, 255, 0.035);
- border-radius: 18px;
- padding: 0.95rem;
- margin-bottom: 0.9rem;
-}
-
-.share-sheet__section-head {
- justify-content: space-between;
- margin-bottom: 0.7rem;
- font-weight: 600;
-}
-
-.share-sheet__linkstack,
-.share-access-panel__input {
- display: grid;
- grid-template-columns: 1fr;
- gap: 0.65rem;
-}
-
-.share-access-panel .tokens {
- min-height: 2rem;
-}
-
-.share-access-panel .token {
- background: rgba(255, 255, 255, 0.03);
-}
-
-.share-sheet__sticky-actions {
- position: sticky;
- bottom: 0;
- padding-top: 0.3rem;
- background: linear-gradient(180deg, rgba(6, 13, 24, 0), rgba(6, 13, 24, 0.96) 28%);
-}
-
-@media (min-width: 576px) {
- .share-hub .card-body,
- .share-sheet__header,
- .share-sheet__body {
- padding-left: 1.2rem;
- padding-right: 1.2rem;
- }
-
- .share-sheet__linkstack,
- .share-access-panel__input {
- grid-template-columns: 1fr auto;
- align-items: center;
- }
-}
-
-@media (min-width: 768px) {
- .share-hub .card-body {
- padding: 1.15rem 1.2rem;
- }
-
- .share-hub__actions {
- grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
- }
-
- .share-sheet {
- max-width: 760px;
- margin: 0 auto;
- left: 0;
- right: 0;
- }
-}
-
-
-/* v5.2 create-list unity + receipt collapse fix */
-.endpoint-main_page .create-list-input-group {
- display: flex;
- flex-wrap: nowrap !important;
- align-items: stretch;
- overflow: hidden;
- border-radius: 16px;
- border: 1px solid rgba(255, 255, 255, 0.12);
- background: rgba(7, 17, 31, 0.9);
- box-shadow: 0 10px 28px rgba(0, 0, 0, 0.18);
-}
-
-.endpoint-main_page .create-list-input-group > .create-list-title-input,
-.endpoint-main_page .create-list-input-group > .form-control {
- border: 0 !important;
- border-right: 1px solid rgba(255, 255, 255, 0.08) !important;
- border-radius: 0 !important;
- background: transparent !important;
- box-shadow: none !important;
-}
-
-.endpoint-main_page .create-list-input-group > .create-list-title-input:focus,
-.endpoint-main_page .create-list-input-group > .form-control:focus {
- background: rgba(255, 255, 255, 0.02) !important;
- box-shadow: none !important;
-}
-
-.endpoint-main_page .create-list-input-group > .create-list-temp-toggle,
-.endpoint-main_page .create-list-input-group > #tempToggle {
- min-width: 9.5rem;
- border: 0 !important;
- border-radius: 0 !important;
- background: rgba(255, 255, 255, 0.04) !important;
- box-shadow: none !important;
-}
-
-.endpoint-main_page .create-list-input-group > .create-list-temp-toggle.is-active,
-.endpoint-main_page .create-list-input-group > #tempToggle.is-active {
- background: rgba(41, 209, 125, 0.18) !important;
-}
-
-.endpoint-main_page .create-list-temp-toggle__label {
- display: inline-flex;
- align-items: center;
- justify-content: center;
- min-height: 100%;
-}
-
-.endpoint-main_page .create-list-input-group:focus-within {
- border-color: rgba(41, 209, 125, 0.55);
- box-shadow: 0 0 0 0.18rem rgba(41, 209, 125, 0.12), 0 10px 28px rgba(0, 0, 0, 0.18);
-}
-
-.receipt-disclosure {
- display: block;
- padding: 0;
- text-align: left;
-}
-
-.receipt-disclosure,
-.receipt-disclosure:hover,
-.receipt-disclosure:focus,
-.receipt-disclosure:active {
- width: 100%;
- appearance: none;
- -webkit-appearance: none;
-}
-
-.receipt-disclosure:focus-visible {
- outline: none;
-}
-
-.receipt-section--restoring {
- transition: none !important;
-}
-
-@media (max-width: 767.98px) {
- .endpoint-main_page .create-list-input-group {
- border-radius: 14px;
- }
-
- .endpoint-main_page .create-list-input-group > .create-list-temp-toggle,
- .endpoint-main_page .create-list-input-group > #tempToggle {
- min-width: 8.25rem;
- padding-left: .8rem;
- padding-right: .8rem;
- font-size: .9rem;
- }
-}
-
-@media (max-width: 575.98px) {
- .endpoint-main_page .create-list-input-group > .create-list-title-input,
- .endpoint-main_page .create-list-input-group > .form-control {
- padding-left: .85rem;
- padding-right: .7rem;
- font-size: .95rem;
- }
-
- .endpoint-main_page .create-list-input-group > .create-list-temp-toggle,
- .endpoint-main_page .create-list-input-group > #tempToggle {
- min-width: 7.6rem;
- font-size: .84rem;
- }
-
- .receipt-disclosure {
- border-radius: 16px;
- }
-}
diff --git a/shopping_app/static/css/split/buttons.css b/shopping_app/static/css/split/buttons.css
new file mode 100644
index 0000000..07d1593
--- /dev/null
+++ b/shopping_app/static/css/split/buttons.css
@@ -0,0 +1,195 @@
+.btn {
+ min-height: 40px;
+ padding: 0.52rem 0.8rem;
+ border-radius: 10px;
+ font-weight: 600;
+ letter-spacing: 0.01em;
+ box-shadow: none;
+ transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease;
+}
+
+.btn-sm {
+ min-height: 34px;
+ padding: 0.4rem 0.64rem;
+ border-radius: 9px;
+}
+
+.btn:focus,
+.btn:focus-visible {
+ border-color: rgba(25, 135, 84, 0.6) !important;
+ box-shadow: 0 0 0 0.2rem rgba(25, 135, 84, 0.16) !important;
+}
+
+.btn:hover,
+.btn:focus-visible {
+ transform: translateY(-1px);
+}
+
+.btn-primary {
+ background-color: var(--primary) !important;
+ border-color: var(--primary-border) !important;
+}
+
+.btn-primary:hover,
+.btn-primary:focus,
+.btn-primary:active {
+ background-color: #13315f !important;
+ border-color: #10284f !important;
+}
+
+.btn-success {
+ background: linear-gradient(135deg, #29d17d, #1ea860) !important;
+ border-color: rgba(41, 209, 125, 0.9) !important;
+ color: #fff !important;
+ box-shadow: 0 10px 24px rgba(0,0,0,0.16);
+}
+
+.btn-success:hover,
+.btn-success:focus,
+.btn-success:active {
+ color: #fff !important;
+}
+
+.btn-warning {
+ background-color: var(--warning) !important;
+ border-color: var(--warning-border) !important;
+ color: var(--warning-text) !important;
+}
+
+.btn-warning:hover,
+.btn-warning:focus,
+.btn-warning:active {
+ background-color: #5c4c17 !important;
+ border-color: #3e3610 !important;
+ color: var(--warning-text) !important;
+}
+
+.btn-outline-light,
+.btn-outline-secondary,
+.btn-outline-warning,
+.btn-outline-danger,
+.btn-outline-primary,
+.btn-outline-success,
+.btn-outline-info {
+ background: rgba(255,255,255,0.03);
+}
+
+.btn-outline-light {
+ color: #f8f9fa !important;
+ border-color: #f8f9fa !important;
+}
+
+.btn-outline-light:hover,
+.btn-outline-light:focus,
+.btn-outline-light:focus-visible {
+ background-color: rgba(255,255,255,0.1) !important;
+ color: #fff !important;
+ border-color: #6c757d !important;
+ box-shadow: 0 10px 24px rgba(0,0,0,0.16);
+}
+
+.btn-outline-light:active,
+.btn-outline-light.active,
+.show > .btn-outline-light.dropdown-toggle {
+ background-color: #5a6268 !important;
+ color: #fff !important;
+ border-color: #545b62 !important;
+}
+
+.btn-outline-secondary:hover,
+.btn-outline-secondary:focus,
+.btn-outline-secondary:focus-visible {
+ background: rgba(108, 117, 125, 0.18) !important;
+ box-shadow: 0 10px 24px rgba(0,0,0,0.16);
+}
+
+.btn-outline-success {
+ color: var(--success) !important;
+ border-color: var(--success) !important;
+}
+
+.btn-outline-success:hover,
+.btn-outline-success:focus,
+.btn-outline-success:active,
+.btn-outline-success:focus-visible {
+ background: var(--ui-success-soft) !important;
+ border-color: var(--success-border) !important;
+ color: #fff !important;
+ box-shadow: 0 10px 24px rgba(0,0,0,0.16);
+}
+
+.btn-outline-warning {
+ color: #d9c97a !important;
+ border-color: var(--warning) !important;
+}
+
+.btn-outline-warning:hover,
+.btn-outline-warning:focus,
+.btn-outline-warning:active,
+.btn-outline-warning:focus-visible {
+ background: var(--ui-warning-soft) !important;
+ border-color: var(--warning-border) !important;
+ color: var(--warning-text) !important;
+}
+
+.btn-outline-danger:hover,
+.btn-outline-danger:focus,
+.btn-outline-danger:focus-visible {
+ background: rgba(220, 53, 69, 0.16) !important;
+}
+
+.btn-outline-info {
+ color: var(--info) !important;
+ border-color: var(--info) !important;
+}
+
+.btn-outline-info:hover,
+.btn-outline-info:focus,
+.btn-outline-info:focus-visible {
+ background-color: #1d4d8c !important;
+ border-color: #1d4d8c !important;
+ color: var(--info-text) !important;
+}
+
+.btn-outline-info:active,
+.btn-outline-info.active,
+.show > .btn-outline-info.dropdown-toggle {
+ background-color: var(--info) !important;
+ border-color: var(--info-border) !important;
+ color: var(--info-text) !important;
+}
+
+#items .btn-group {
+ gap: 0.4rem;
+}
+
+#items .btn-group .btn {
+ border-radius: 12px !important;
+}
+
+.btn-group-compact,
+.admin-shortcuts .d-flex,
+.stack-form,
+.page-actions {
+ gap: 0.4rem;
+}
+
+.btn-group-compact .btn {
+ padding: 0.3rem 0.55rem;
+ font-size: 0.82rem;
+}
+
+.btn-group-compact .btn-text {
+ font-size: 0.78rem;
+}
+
+input[type="file"]::file-selector-button {
+ background-color: #1b4a29;
+ color: #f0f0f0;
+ border: none;
+ padding: .5em 1em;
+ border-radius: 4px;
+ font-weight: bold;
+ cursor: pointer;
+ transition: background .2s;
+}
diff --git a/shopping_app/static/css/split/12-drop.css b/shopping_app/static/css/split/components.css
similarity index 58%
rename from shopping_app/static/css/split/12-drop.css
rename to shopping_app/static/css/split/components.css
index 605cb80..d4fca88 100644
--- a/shopping_app/static/css/split/12-drop.css
+++ b/shopping_app/static/css/split/components.css
@@ -1,6 +1,543 @@
-/* =========================================================
- Dropdown (TS already above) — active
-========================================================= */
+.alert-success {
+ background-color: #225d36 !important;
+ color: var(--success-text) !important;
+ border-color: #174428 !important;
+}
+
+.alert-danger {
+ background-color: #7a1f23 !important;
+ color: var(--danger-text) !important;
+ border-color: #531417 !important;
+}
+
+.alert-info {
+ background-color: var(--primary) !important;
+ color: var(--primary-text) !important;
+ border-color: var(--primary-border) !important;
+}
+
+.alert-warning {
+ background-color: var(--warning) !important;
+ color: var(--warning-text) !important;
+ border-color: var(--warning-border) !important;
+}
+
+.alert-light {
+ background-color: #3a3f44 !important;
+ color: var(--text-strong) !important;
+ border-color: var(--dark-480) !important;
+}
+
+.badge.bg-success,
+.badge.text-bg-success {
+ background-color: #225d36 !important;
+ color: var(--success-text) !important;
+}
+
+.badge.bg-danger,
+.badge.text-bg-danger {
+ background-color: #7a1f23 !important;
+ color: var(--danger-text) !important;
+}
+
+.badge.bg-info,
+.badge.text-bg-info {
+ background-color: #1d3a4d !important;
+ color: #eaf6ff !important;
+}
+
+.badge.bg-warning,
+.badge.text-bg-warning {
+ background-color: var(--warning) !important;
+ color: var(--warning-text) !important;
+}
+
+.badge.bg-secondary,
+.badge.text-bg-secondary {
+ background-color: var(--dark-400) !important;
+ color: #e2e3e5 !important;
+}
+
+.badge.bg-primary,
+.badge.text-bg-primary {
+ background-color: var(--primary) !important;
+ color: var(--primary-text) !important;
+}
+
+.badge.bg-light,
+.badge.text-bg-light {
+ background-color: var(--dark-350) !important;
+ color: #f1f3f5 !important;
+}
+
+.badge.bg-dark,
+.badge.text-bg-dark {
+ background-color: var(--dark-900) !important;
+ color: var(--text-strong) !important;
+}
+
+.progress-dark {
+ background-color: var(--dark-700) !important;
+ border-radius: 20px !important;
+ overflow: hidden;
+}
+
+.progress {
+ background-color: #2a2d31 !important;
+ border-radius: 20px !important;
+}
+
+.progress-bar {
+ border-radius: 0 !important;
+ transition: width .4s ease, background-color .4s ease;
+ background-color: var(--progress-default) !important;
+}
+
+.progress-bar:first-child {
+ border-top-left-radius: 20px !important;
+ border-bottom-left-radius: 20px !important;
+}
+
+.progress-bar:last-child {
+ border-top-right-radius: 20px !important;
+ border-bottom-right-radius: 20px !important;
+}
+
+.progress-bar.bg-success {
+ background-color: var(--success) !important;
+}
+
+.progress-bar.bg-danger {
+ background-color: var(--danger) !important;
+}
+
+.progress-bar.bg-warning {
+ background-color: var(--warning) !important;
+ color: #fff !important;
+}
+
+.progress-bar.bg-info {
+ background-color: #16425a !important;
+}
+
+.progress-label {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ pointer-events: none;
+ white-space: nowrap;
+}
+
+.card {
+ background-color: var(--dark-500) !important;
+ border: 1px solid var(--dark-450) !important;
+ color: var(--text) !important;
+}
+
+.card-header,
+.card-footer {
+ background-color: var(--dark-650) !important;
+ border-color: var(--dark-450) !important;
+ color: #f1f3f5 !important;
+}
+
+.card .table {
+ border-radius: 0 !important;
+ overflow: hidden;
+ margin-bottom: 0;
+}
+
+.table-responsive {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+}
+
+.table-responsive table {
+ min-width: 1000px;
+}
+
+.table-dark.table-striped tbody tr:nth-of-type(odd) {
+ background-color: rgba(255, 255, 255, .025);
+}
+
+.table-dark tbody tr:hover {
+ background-color: rgba(255, 255, 255, .04);
+}
+
+.table-dark thead th {
+ background-color: var(--dark-800);
+ color: var(--text-dim);
+ font-weight: 500;
+ border-bottom: 1px solid var(--dark-450);
+}
+
+.table-dark td,
+.table-dark th {
+ padding: .6rem .75rem;
+ vertical-align: middle;
+ border-top: 1px solid var(--dark-450);
+}
+
+.nav-tabs .nav-link.active,
+.nav-tabs .nav-item.show .nav-link {
+ background-color: var(--dark-500) !important;
+ color: var(--text-strong) !important;
+ border-color: var(--dark-450) var(--dark-450) var(--dark-500) !important;
+}
+
+.page-link {
+ color: #e0e0e0 !important;
+ background-color: var(--dark-750) !important;
+ border: 1px solid var(--dark-450) !important;
+}
+
+.page-link:hover,
+.page-link:focus {
+ color: #fff !important;
+ background-color: var(--dark-400) !important;
+ border-color: var(--dark-300) !important;
+}
+
+.page-item.active .page-link {
+ color: #fff !important;
+ background-color: var(--primary) !important;
+ border-color: var(--primary-border) !important;
+}
+
+.page-item.disabled .page-link {
+ color: var(--muted) !important;
+ background-color: var(--dark-550) !important;
+ border-color: var(--dark-450) !important;
+}
+
+:root {
+ --nav-btn-height: 2.35rem;
+}
+
+.app-navbar {
+ background: transparent;
+}
+
+.app-navbar .container-xxl {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ gap: .8rem;
+ row-gap: .55rem;
+ flex-wrap: nowrap;
+ border: 1px solid var(--app-border);
+ background: rgba(6, 15, 27, 0.74);
+ backdrop-filter: blur(16px);
+ border-radius: 999px;
+ min-height: 68px;
+ box-shadow: var(--app-shadow);
+}
+
+.app-brand {
+ display: inline-flex;
+ align-items: center;
+ gap: .85rem;
+ min-width: 0;
+ font-weight: 800;
+ color: var(--app-text) !important;
+}
+
+.app-brand__icon {
+ display: inline-grid;
+ place-items: center;
+ width: 2.6rem;
+ height: 2.6rem;
+ border-radius: 16px;
+ background: linear-gradient(135deg, rgba(39,208,125,0.22), rgba(74,144,226,0.18));
+ box-shadow: inset 0 0 0 1px rgba(255,255,255,0.08);
+}
+
+.app-brand__title {
+ color: #fff;
+}
+
+.app-brand__accent {
+ color: #7ce4a8;
+ margin-left: .3rem;
+}
+
+.app-navbar__meta {
+ display: flex;
+ align-items: center;
+ gap: .5rem;
+ flex-wrap: wrap;
+}
+
+.app-navbar__actions {
+ display: flex;
+ align-items: stretch;
+ justify-content: flex-end;
+ gap: .4rem;
+ flex-wrap: nowrap;
+ min-width: 0;
+}
+
+.app-navbar__actions .btn,
+.app-nav-action {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ min-width: 0;
+ min-height: var(--nav-btn-height);
+ padding: .42rem .78rem;
+ font-size: .92rem;
+ line-height: 1;
+ white-space: nowrap;
+ border-radius: .9rem !important;
+}
+
+.app-navbar__actions .btn > span,
+.app-nav-action > span {
+ display: inline-flex;
+ align-items: center;
+}
+
+.app-user-chip {
+ display: inline-flex;
+ align-items: center;
+ gap: .5rem;
+ padding: .4rem .45rem .4rem .75rem;
+ border-radius: 999px;
+ background: rgba(255,255,255,0.05);
+ border: 1px solid rgba(255,255,255,0.08);
+}
+
+.app-user-chip__label {
+ font-size: .75rem;
+ color: var(--app-text-muted);
+ text-transform: uppercase;
+ letter-spacing: .08em;
+}
+
+.app-navbar-toggler {
+ border-color: rgba(255,255,255,.28);
+ padding: .3rem .55rem;
+}
+
+.app-navbar-toggler:focus {
+ box-shadow: 0 0 0 .2rem rgba(255,255,255,.1);
+}
+
+.app-navbar-toggler .navbar-toggler-icon {
+ filter: invert(1) grayscale(1);
+}
+
+.app-mobile-menu {
+ display: flex;
+ align-items: center;
+}
+
+.app-mobile-menu__toggle {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ width: 3rem;
+ height: 3rem;
+ border-radius: 14px;
+ background: rgba(255,255,255,0.04);
+}
+
+.app-mobile-menu__panel {
+ min-width: 14rem;
+ padding: .4rem;
+ border-radius: 16px;
+ background: linear-gradient(180deg, rgba(14,22,35,0.98), rgba(9,15,26,0.98)) !important;
+ border: 1px solid rgba(255,255,255,0.1);
+ box-shadow: 0 18px 36px rgba(0,0,0,0.28);
+}
+
+.app-mobile-menu__item {
+ display: flex;
+ align-items: center;
+ gap: .55rem;
+ min-height: 2.6rem;
+ padding: .55rem .75rem;
+ color: #fff;
+ border-radius: 12px;
+}
+
+.app-mobile-menu__item:hover,
+.app-mobile-menu__item:focus {
+ background: rgba(255,255,255,0.08);
+ color: #fff;
+}
+
+.list-group-item {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+}
+
+.list-group-flush > .list-group-item:first-child,
+.list-group-flush > .list-group-item:last-child {
+ border-radius: 0 !important;
+}
+
+#items li.hide-purchased {
+ display: none !important;
+}
+
+#mass-add-list li {
+ transition: background .2s;
+}
+
+#mass-add-list li.active {
+ background: #198754 !important;
+ color: #fff !important;
+ border: 1px solid #000 !important;
+}
+
+.quantity-input {
+ width: 60px;
+ background: var(--dark-400);
+ color: #fff;
+ border: 1px solid var(--dark-300);
+ border-radius: 4px;
+ text-align: center;
+}
+
+.add-btn {
+ margin-left: 10px;
+}
+
+.quantity-controls {
+ min-width: 120px;
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+ gap: 4px;
+}
+
+.toast {
+ animation: fadeInUp .5s ease;
+}
+
+@keyframes fadeInUp {
+ from {
+ opacity: 0;
+ transform: translateY(20px);
+ }
+
+ to {
+ opacity: 1;
+ transform: translateY(0);
+ }
+}
+
+.toast:not([class*="text-bg-"]) {
+ background-color: var(--dark-500) !important;
+ color: #f1f1f1 !important;
+ border: 1px solid var(--dark-450) !important;
+ animation: fadeInUp .5s ease;
+}
+
+.toast .toast-body {
+ color: inherit !important;
+}
+
+.toast .btn-close {
+ filter: invert(1) grayscale(100%) brightness(200%);
+}
+
+.toast.text-bg-primary {
+ background-color: var(--info) !important;
+ color: var(--info-text) !important;
+ border-color: var(--info-border) !important;
+}
+
+.toast.text-bg-info {
+ background-color: var(--info) !important;
+ color: var(--info-text) !important;
+ border-color: var(--info-border) !important;
+}
+
+.toast.text-bg-success {
+ background-color: var(--success) !important;
+ color: var(--success-text) !important;
+ border-color: var(--success-border) !important;
+}
+
+.toast.text-bg-warning {
+ background-color: var(--warning) !important;
+ color: var(--warning-text) !important;
+ border-color: var(--warning-border) !important;
+}
+
+.toast.text-bg-danger {
+ background-color: var(--danger) !important;
+ color: var(--danger-text) !important;
+ border-color: var(--danger-border) !important;
+}
+
+.toast-body {
+ color: #fff !important;
+ font-weight: 500 !important;
+}
+
+.info-bar-fixed {
+ width: 100%;
+ color: var(--text-strong);
+ background-color: var(--dark-700);
+ border-radius: 12px 12px 0 0;
+ text-align: center;
+ padding: 10px 10px;
+ font-size: .95rem;
+ box-sizing: border-box;
+ margin-top: 2rem;
+ box-shadow: 0 -1px 4px rgba(0, 0, 0, .25);
+}
+
+@media (max-width: 768px) {
+ .info-bar-fixed {
+ position: static;
+ font-size: .85rem;
+ padding: 8px 4px;
+ border-radius: 0;
+ }
+}
+
+.modal-content {
+ background-color: var(--dark-470) !important;
+ color: #f1f1f1 !important;
+ border: 1px solid var(--dark-450) !important;
+}
+
+.modal-header,
+.modal-footer {
+ background-color: var(--dark-650) !important;
+ border-color: var(--dark-450) !important;
+}
+
+#chartFullscreenModal .modal-dialog {
+ max-width: 100vw;
+ width: 100vw;
+ margin: 0;
+}
+
+#chartFullscreenModal .modal-content {
+ height: 100vh;
+ border-radius: 0;
+}
+
+#chartFullscreenModal .modal-body {
+ display: flex;
+ flex: 1 1 auto;
+ padding: 0;
+ overflow: hidden;
+}
+
+#chartFullscreenCanvas {
+ display: block;
+ width: 100%;
+ height: 100%;
+}
+
.ts-dropdown .active {
background-color: var(--dark-300) !important;
}
@@ -19,52 +556,6 @@
--bs-bg-opacity: 1 !important;
}
-.btn-outline-light {
- color: #f8f9fa !important;
- border-color: #f8f9fa !important;
- background-color: transparent !important;
- /* brak białego tła domyślnie */
-}
-
-.btn-outline-light:hover,
-.btn-outline-light:focus {
- background-color: #6c757d !important;
- /* szare, jak wcześniej */
- color: #fff !important;
- border-color: #6c757d !important;
-}
-
-.btn-outline-light:active,
-.btn-outline-light.active,
-.show>.btn-outline-light.dropdown-toggle {
- background-color: #5a6268 !important;
- /* ciemniejsze szare na active */
- color: #fff !important;
- border-color: #545b62 !important;
-}
-
-.btn-outline-info {
- color: var(--info) !important;
- border-color: var(--info) !important;
- background-color: transparent !important;
-}
-
-.btn-outline-info:hover,
-.btn-outline-info:focus {
- background-color: #1d4d8c !important;
- border-color: #1d4d8c !important;
- color: var(--info-text) !important;
-}
-
-.btn-outline-info:active,
-.btn-outline-info.active,
-.show>.btn-outline-info.dropdown-toggle {
- background-color: var(--info) !important;
- border-color: var(--info-border) !important;
- color: var(--info-text) !important;
-}
-
-/* Tekstowe kolory */
.text-success {
color: var(--success) !important;
}
@@ -81,7 +572,6 @@
color: var(--danger) !important;
}
-
.settings-category-card {
background: rgba(255,255,255,.03);
border: 1px solid rgba(255,255,255,.09);
@@ -142,13 +632,13 @@
margin-left: .5rem;
}
-@media (min-width: 992px) {
+@media (min-width: 992px){
.settings-category-name {
font-size: 1.08rem;
}
}
-@media (max-width: 767.98px) {
+@media (max-width: 767.98px){
.settings-category-card {
padding: .9rem;
}
@@ -173,7 +663,6 @@
}
}
-/* ========== Kolorowe wskaźniki pod pickerem ========== */
.color-indicators .indicator {
display: grid;
grid-template-columns: auto 1fr auto;
@@ -188,7 +677,6 @@
box-shadow: inset 0 0 0 1px rgba(0,0,0,.25);
}
-/* ========== Swatch + zapisy heksowe ========== */
.swatch {
width: 16px;
height: 16px;
@@ -203,59 +691,17 @@
letter-spacing: .2px;
}
-/* ========== OCR textarea ========== */
.settings-ocr-textarea {
font: inherit;
line-height: 1.45;
}
-/* ========== Odznaka poziomu czułości ========== */
.sens-badge { font-weight: 600; }
-.sens-low { background: rgba(108,117,125,.25); color: #ced4da; } /* szary */
-.sens-mid { background: rgba(13,110,253,.25); color: #9ec5fe; } /* niebieski */
-.sens-high { background: rgba(220,53,69,.25); color: #f1aeb5; } /* czerwony */
-
-/* =========================================================
- COMPACT: przyciski akcji na listach
- - Desktop: standard Bootstrap
- - <=576px: kompakt
-========================================================= */
-
-/* <=420px: tylko emoji */
-@media (max-width: 420px) {
- .btn-group-compact .btn-text {
- display: none !important;
- }
-
- .btn-group-compact .btn {
- padding: 0.22rem 0.45rem;
- min-width: auto;
- font-size: 0.9rem;
- line-height: 1.1;
- }
-}
-
-/* 421–576px: lekko ciaśniej, ale tekst zostaje */
-@media (min-width: 421px) and (max-width: 576px) {
- .btn-group-compact .btn {
- padding: 0.24rem 0.45rem;
- font-size: 0.82rem;
- line-height: 1.1;
- }
-
- .btn-group-compact .btn-text {
- font-size: 0.75rem;
- }
-}
-
-
-/* ================================================
- RESPONSIVE NAVBAR
- ================================================ */
-
-/* Wąskie ekrany (np. iPhone 11) */
-@media (max-width: 420px) {
+.sens-low { background: rgba(108,117,125,.25); color: #ced4da; }
+.sens-mid { background: rgba(13,110,253,.25); color: #9ec5fe; }
+.sens-high { background: rgba(220,53,69,.25); color: #f1aeb5; }
+@media (max-width: 420px){
.navbar .container-fluid {
gap: 4px;
}
@@ -293,9 +739,7 @@
}
}
-
-/* Małe ekrany (np. 421-576px) */
-@media (min-width: 421px) and (max-width: 576px) {
+@media (min-width: 421px) and (max-width: 576px){
.navbar .container-fluid {
gap: 8px;
}
@@ -325,12 +769,12 @@
}
}
-@media (max-width: 420px) {
+@media (max-width: 420px){
.user-label-desktop { display: none !important; }
.user-label-mobile { display: inline !important; }
}
-@media (min-width: 421px) {
+@media (min-width: 421px){
.user-label-desktop { display: inline !important; }
.user-label-mobile { display: none !important; }
}
@@ -359,14 +803,11 @@
content: none !important;
}
-
-/* Hover efekt */
.category-dot:hover {
transform: scale(1.3) !important;
box-shadow: 0 2px 6px rgba(0,0,0,0.4) !important;
}
-
.list-title {
white-space: nowrap !important;
overflow: hidden !important;
@@ -375,14 +816,12 @@
display: inline-block !important;
}
-/* Bardzo małe ekrany */
-@media (max-width: 420px) {
+@media (max-width: 420px){
.list-title {
max-width: 60% !important;
}
}
-/* ===== 2026 app refresh ===== */
:root {
--app-bg: #07111f;
--app-bg-soft: #0d1b2d;
@@ -427,8 +866,7 @@ body.app-body {
overflow-x: hidden;
}
-
-@supports (padding: env(safe-area-inset-top)) {
+@supports (padding: env(safe-area-inset-top)){
html, body {
min-height: calc(100% + env(safe-area-inset-top, 0px) + env(safe-area-inset-bottom, 0px));
}
@@ -447,65 +885,6 @@ body.app-body {
backdrop-filter: blur(12px);
}
-.app-navbar {
- background: transparent;
-}
-
-.app-navbar .container-xxl {
- border: 1px solid var(--app-border);
- background: rgba(6, 15, 27, 0.74);
- backdrop-filter: blur(16px);
- border-radius: 999px;
- min-height: 68px;
- box-shadow: var(--app-shadow);
-}
-
-.app-brand {
- display: inline-flex;
- align-items: center;
- gap: 0.85rem;
- font-weight: 800;
- color: var(--app-text) !important;
-}
-
-.app-brand__icon {
- display: inline-grid;
- place-items: center;
- width: 2.6rem;
- height: 2.6rem;
- border-radius: 16px;
- background: linear-gradient(135deg, rgba(39,208,125,0.22), rgba(74,144,226,0.18));
- box-shadow: inset 0 0 0 1px rgba(255,255,255,0.08);
-}
-
-.app-brand__title { color: #ffffff; }
-.app-brand__accent { color: #7ce4a8; margin-left: 0.3rem; }
-
-.app-navbar__actions,
-.app-navbar__meta {
- display: flex;
- align-items: center;
- gap: 0.5rem;
- flex-wrap: wrap;
-}
-
-.app-user-chip {
- display: inline-flex;
- align-items: center;
- gap: 0.5rem;
- padding: 0.4rem 0.45rem 0.4rem 0.75rem;
- border-radius: 999px;
- background: rgba(255,255,255,0.05);
- border: 1px solid rgba(255,255,255,0.08);
-}
-
-.app-user-chip__label {
- font-size: 0.75rem;
- color: var(--app-text-muted);
- text-transform: uppercase;
- letter-spacing: 0.08em;
-}
-
.app-main {
flex: 1 0 auto;
padding: 1rem 0 2.5rem;
@@ -632,37 +1011,6 @@ h1, h2, h3, h4, h5, h6 {
color: #1c1b17 !important;
}
-.btn {
- border-radius: 14px;
- font-weight: 600;
- padding: 0.7rem 1rem;
- box-shadow: none;
-}
-
-.btn-sm {
- padding: 0.55rem 0.85rem;
- border-radius: 12px;
-}
-
-.btn-success,
-.btn-outline-success:hover {
- background: linear-gradient(135deg, #29d17d, #1ea860);
- border-color: rgba(41,209,125,0.9);
-}
-
-.btn-outline-light,
-.btn-outline-secondary,
-.btn-outline-warning,
-.btn-outline-primary,
-.btn-outline-success {
- background: rgba(255,255,255,0.02);
-}
-
-.btn:hover,
-.btn:focus {
- transform: translateY(-1px);
-}
-
.form-control,
.form-select,
.input-group-text {
@@ -730,20 +1078,6 @@ h1, h2, h3, h4, h5, h6 {
padding: 1rem 1rem;
}
-#items .btn-group {
- gap: 0.4rem;
-}
-
-#items .btn-group .btn {
- border-radius: 12px !important;
-}
-
-.large-checkbox {
- width: 1.35rem;
- height: 1.35rem;
- accent-color: #29d17d;
-}
-
#share-card .badge,
#total-expense1,
#total-expense2,
@@ -789,26 +1123,13 @@ hr {
border-color: rgba(255,255,255,0.08);
}
-@media (max-width: 991.98px) {
+@media (max-width: 991.98px){
.app-header {
padding-top: 0.55rem;
}
-
- .app-navbar .container-xxl {
- border-radius: 26px;
- padding-top: 0.8rem;
- padding-bottom: 0.8rem;
- align-items: flex-start;
- }
-
- .app-navbar__actions,
- .app-navbar__meta {
- width: 100%;
- justify-content: flex-start;
- }
}
-@media (max-width: 767.98px) {
+@media (max-width: 767.98px){
.app-main {
padding-top: 0.7rem;
}
diff --git a/shopping_app/static/css/split/04-form.css b/shopping_app/static/css/split/forms.css
similarity index 85%
rename from shopping_app/static/css/split/04-form.css
rename to shopping_app/static/css/split/forms.css
index b2dcc56..0af09d9 100644
--- a/shopping_app/static/css/split/04-form.css
+++ b/shopping_app/static/css/split/forms.css
@@ -1,6 +1,3 @@
-/* =========================================================
- Forms
-========================================================= */
.form-select,
.form-control,
textarea.form-control {
@@ -25,7 +22,6 @@ textarea.form-control:disabled {
cursor: not-allowed;
}
-/* Switch */
.form-switch .form-check-input {
background-color: var(--dark-400) !important;
border-color: var(--dark-300) !important;
@@ -36,69 +32,12 @@ textarea.form-control:disabled {
border-color: var(--primary-border) !important;
}
-/* Placeholders */
.form-control::placeholder,
.bg-dark .form-control::placeholder {
color: #aaa !important;
opacity: 1 !important;
}
-/* Paired corners (utility) */
-#tempToggle {
- border-top-left-radius: 0;
- border-bottom-left-radius: 0;
-}
-
-.create-list-input-group > input.form-control {
- border-top-right-radius: 0;
- border-bottom-right-radius: 0;
-}
-
-/* XXL custom checkbox */
-input[type="checkbox"].large-checkbox {
- appearance: none;
- -webkit-appearance: none;
- -moz-appearance: none;
- width: 1.5em;
- height: 1.5em;
- margin: 0;
- padding: 0;
- outline: none;
- background: none;
- cursor: pointer;
- position: relative;
- vertical-align: middle;
-}
-
-input[type="checkbox"].large-checkbox::before {
- content: '✗';
- color: #dc3545;
- font-size: 1.6em;
- font-weight: 700;
- position: absolute;
- inset: 0;
- display: flex;
- align-items: center;
- justify-content: center;
- line-height: 1;
- transition: color .2s;
-}
-
-input[type="checkbox"].large-checkbox:checked::before {
- content: '✓';
- color: #fff;
-}
-
-input[type="checkbox"].large-checkbox:disabled::before {
- opacity: .5;
- cursor: not-allowed;
-}
-
-input[type="checkbox"].large-checkbox:disabled {
- cursor: not-allowed;
-}
-
-/* Tom-Select / TS */
.tom-dark .ts-control {
background-color: var(--dark-700) !important;
color: #fff !important;
@@ -137,3 +76,63 @@ td select.tom-dark {
max-width: 100%;
box-sizing: border-box;
}
+
+.large-checkbox,
+input[type="checkbox"].large-checkbox {
+ width: 1.2rem;
+ height: 1.2rem;
+}
+
+.large-checkbox {
+ accent-color: #29d17d;
+ transform: none;
+ transform-origin: center;
+}
+
+input[type="checkbox"].large-checkbox {
+ appearance: none;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ margin: 0;
+ padding: 0;
+ outline: none;
+ background: none;
+ cursor: pointer;
+ position: relative;
+ vertical-align: middle;
+}
+
+input[type="checkbox"].large-checkbox::before {
+ content: '✗';
+ color: #dc3545;
+ font-size: 1.6em;
+ font-weight: 700;
+ position: absolute;
+ inset: 0;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ line-height: 1;
+ transition: color .2s;
+}
+
+input[type="checkbox"].large-checkbox:checked::before {
+ content: '✓';
+ color: #fff;
+}
+
+input[type="checkbox"].large-checkbox:disabled::before {
+ opacity: .5;
+ cursor: not-allowed;
+}
+
+input[type="checkbox"].large-checkbox:disabled {
+ cursor: not-allowed;
+}
+
+#createListTempToggle,
+.create-list-temp-toggle,
+#tempToggle {
+ border-top-left-radius: 0 !important;
+ border-bottom-left-radius: 0 !important;
+}
diff --git a/shopping_app/static/css/split/layout.css b/shopping_app/static/css/split/layout.css
new file mode 100644
index 0000000..02a4c72
--- /dev/null
+++ b/shopping_app/static/css/split/layout.css
@@ -0,0 +1,2286 @@
+:root {
+ --app-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
+ --app-radius: 14px;
+}
+
+body.app-body {
+ font-size: 0.96rem;
+ line-height: 1.4;
+}
+
+.app-header {
+ padding: 0.35rem 0 0;
+}
+
+.app-navbar .container-xxl {
+ min-height: 54px;
+ border-radius: 18px;
+ box-shadow: 0 8px 22px rgba(0,0,0,0.16);
+}
+
+.app-brand {
+ gap: 0.6rem;
+ font-size: 0.98rem;
+}
+
+.app-brand__icon {
+ width: 2.1rem;
+ height: 2.1rem;
+ border-radius: 12px;
+ font-size: 1rem;
+}
+
+.app-brand__title,
+.app-brand__accent {
+ font-size: 0.98rem;
+}
+
+.app-user-chip {
+ padding: 0.28rem 0.38rem 0.28rem 0.58rem;
+ gap: 0.4rem;
+}
+
+.app-user-chip__label {
+ font-size: 0.68rem;
+ letter-spacing: 0.06em;
+}
+
+.app-main {
+ padding: 0.65rem 0 1.4rem;
+}
+
+.app-content-frame {
+ padding-top: 0.1rem;
+}
+
+.app-footer {
+ margin-top: auto;
+ padding: 0.5rem 0 calc(0.85rem + env(safe-area-inset-bottom, 0px));
+}
+
+.app-footer__inner {
+ padding-top: 0.75rem;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ letter-spacing: -0.015em;
+ line-height: 1.15;
+}
+
+h1, .h1 { font-size: clamp(1.45rem, 2vw, 1.9rem); }
+h2, .h2 { font-size: clamp(1.2rem, 1.8vw, 1.5rem); }
+h3, .h3 { font-size: clamp(1.02rem, 1.5vw, 1.2rem); }
+
+.card,
+.modal-content,
+.dropdown-menu,
+.list-group-item,
+.table,
+.alert,
+.pagination .page-link,
+.nav-tabs,
+.input-group-text,
+.form-control,
+.form-select,
+.btn,
+.progress,
+.toast {
+ border-radius: 12px;
+}
+
+.card,
+.modal-content,
+.table-responsive,
+.alert,
+.list-group-item,
+.progress,
+.toast {
+ box-shadow: 0 4px 14px rgba(0,0,0,0.12);
+ backdrop-filter: blur(8px);
+}
+
+.card-header,
+.card-footer,
+.card-body,
+.modal-header,
+.modal-body,
+.modal-footer {
+ padding: 0.75rem 0.85rem;
+}
+
+.table > :not(caption) > * > * {
+ padding: 0.62rem 0.7rem;
+}
+
+.table-responsive table {
+ min-width: 860px;
+}
+
+.list-group {
+ gap: 0.5rem;
+}
+
+.list-group-item {
+ padding: 0.72rem 0.8rem;
+}
+
+.alert {
+ padding: 0.7rem 0.85rem;
+ margin-bottom: 0.8rem;
+}
+
+.badge {
+ font-weight: 600;
+ padding: 0.38em 0.58em;
+}
+
+.form-control,
+.form-select,
+.input-group-text {
+ min-height: 40px;
+ padding: 0.5rem 0.72rem;
+}
+
+textarea.form-control {
+ min-height: 96px;
+}
+
+.progress {
+ min-height: 0.8rem;
+}
+
+.progress-label {
+ font-size: 0.72rem;
+ font-weight: 600;
+}
+
+.nav-tabs {
+ gap: 0.35rem;
+ padding: 0.25rem;
+}
+
+.nav-tabs .nav-link {
+ padding: 0.55rem 0.7rem;
+ border-radius: 10px;
+}
+
+#items .list-group-item {
+ border-radius: 12px !important;
+ padding: 0.75rem 0.8rem;
+}
+
+.toast {
+ padding: 0;
+}
+
+.endpoint-main_page .card h2,
+.endpoint-expenses .card h2,
+.endpoint-edit_my_list .card h2,
+.endpoint-login .card h2,
+.endpoint-system_auth .card h2,
+.endpoint-admin_panel .card h2,
+[class*="endpoint-admin_"] .card h2 {
+ margin-bottom: 0.35rem;
+}
+
+.endpoint-main_page .card p,
+.endpoint-expenses .card p,
+.endpoint-edit_my_list .card p,
+.endpoint-login .card p,
+.endpoint-system_auth .card p,
+.endpoint-admin_panel .card p,
+[class*="endpoint-admin_"] .card p {
+ margin-bottom: 0;
+}
+
+@media (max-width: 991.98px){
+ .app-navbar .container-xxl {
+ border-radius: 16px;
+ padding-top: 0.55rem;
+ padding-bottom: 0.55rem;
+ }
+}
+
+@media (max-width: 767.98px){
+ body.app-body {
+ font-size: 0.93rem;
+ }
+
+ .app-header {
+ padding-top: 0.25rem;
+ }
+
+ .app-main {
+ padding-top: 0.45rem;
+ }
+
+ .app-navbar .container-xxl {
+ min-height: 50px;
+ border-radius: 14px;
+ }
+
+ .app-brand {
+ gap: 0.45rem;
+ font-size: 0.92rem;
+ }
+
+ .app-brand__icon {
+ width: 1.9rem;
+ height: 1.9rem;
+ border-radius: 10px;
+ }
+
+ .app-user-chip {
+ padding: 0.22rem 0.32rem 0.22rem 0.5rem;
+ }
+
+ .card-header,
+ .card-footer,
+ .card-body,
+ .modal-header,
+ .modal-body,
+ .modal-footer,
+ .list-group-item,
+ .table > :not(caption) > * > * {
+ padding-left: 0.68rem;
+ padding-right: 0.68rem;
+ }
+
+ .list-group-item,
+ #items .list-group-item {
+ padding-top: 0.62rem;
+ padding-bottom: 0.62rem;
+ }
+
+ .btn-group,
+ .d-flex.gap-2,
+ .d-flex.gap-3 {
+ gap: 0.35rem !important;
+ }
+
+ .btn-group > .btn,
+ .btn.w-100,
+ .input-group > .btn,
+ .btn,
+ .form-control,
+ .form-select,
+ .input-group-text {
+ min-height: 38px;
+ }
+
+ .input-group {
+ gap: 0.4rem;
+ }
+
+ .table-responsive {
+ border-radius: 12px;
+ }
+
+ .progress-label {
+ font-size: 0.66rem;
+ }
+
+ .app-footer {
+ padding-bottom: calc(0.8rem + env(safe-area-inset-bottom, 0px));
+ }
+}
+
+:root {
+ --ui-surface-1: rgba(10, 14, 24, 0.78);
+ --ui-surface-2: rgba(18, 25, 39, 0.92);
+ --ui-surface-3: rgba(33, 44, 67, 0.88);
+ --ui-border: rgba(255, 255, 255, 0.12);
+ --ui-border-strong: rgba(255, 255, 255, 0.18);
+ --ui-text-soft: rgba(255, 255, 255, 0.72);
+ --ui-success-soft: rgba(25, 135, 84, 0.18);
+ --ui-warning-soft: rgba(255, 193, 7, 0.16);
+}
+
+.card,
+.table-responsive,
+.modal-content,
+.dropdown-menu,
+.toast,
+.alert,
+.list-group-item {
+ border: 1px solid var(--ui-border);
+}
+
+.card.bg-dark,
+.modal-content.bg-dark,
+.dropdown-menu-dark,
+.list-group-item.bg-dark,
+.table-dark {
+ background: linear-gradient(180deg, var(--ui-surface-2), rgba(8, 12, 20, 0.96)) !important;
+}
+
+.card.bg-secondary.bg-opacity-10,
+.admin-shortcuts,
+#bulkBar .card {
+ background: linear-gradient(180deg, rgba(22, 29, 45, 0.88), rgba(12, 18, 30, 0.88)) !important;
+}
+
+.form-label,
+label.form-label {
+ display: inline-flex;
+ align-items: center;
+ gap: 0.35rem;
+ margin-bottom: 0.45rem;
+ font-size: 0.92rem;
+ font-weight: 600;
+ color: rgba(255,255,255,0.84);
+}
+
+.form-text,
+.text-secondary,
+.text-white-50 {
+ color: var(--ui-text-soft) !important;
+}
+
+.form-control,
+.form-select,
+.input-group-text,
+textarea.form-control,
+.form-control-color {
+ background: rgba(255,255,255,0.04) !important;
+ border: 1px solid var(--ui-border-strong) !important;
+ color: #fff !important;
+ box-shadow: none;
+ transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease, transform .18s ease;
+}
+
+.form-control::placeholder,
+textarea.form-control::placeholder {
+ color: rgba(255,255,255,0.42);
+}
+
+.form-control:focus,
+.form-select:focus,
+textarea.form-control:focus,
+.form-check-input:focus,
+.btn:focus,
+.btn:focus-visible {
+ border-color: rgba(25, 135, 84, 0.6) !important;
+ box-shadow: 0 0 0 0.2rem rgba(25, 135, 84, 0.16) !important;
+}
+
+.input-group > .form-control,
+.input-group > .form-select,
+.input-group > .btn,
+.input-group > .input-group-text {
+ min-height: 42px;
+}
+
+textarea.form-control {
+ line-height: 1.45;
+ resize: vertical;
+}
+
+.form-check {
+ padding: 0.65rem 0.9rem 0.65rem 2.8rem;
+ background: rgba(255,255,255,0.04);
+ border: 1px solid var(--ui-border);
+ border-radius: 12px;
+}
+
+.form-check.form-switch {
+ min-height: 42px;
+}
+
+.form-check-input {
+ background-color: rgba(255,255,255,0.14);
+ border-color: rgba(255,255,255,0.22);
+}
+
+.table-toolbar {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ flex-wrap: wrap;
+ gap: 0.75rem;
+ margin-bottom: 0.85rem;
+}
+
+.table-toolbar__search {
+ max-width: 420px;
+ width: 100%;
+}
+
+.table-toolbar__meta {
+ min-width: 120px;
+ text-align: right;
+}
+
+.table {
+ --bs-table-bg: transparent;
+ --bs-table-striped-bg: rgba(255,255,255,0.02);
+ --bs-table-hover-bg: transparent;
+ --bs-table-border-color: rgba(255,255,255,0.08);
+ margin-bottom: 0;
+}
+
+.table > :not(caption) > * > * {
+ border-bottom-width: 1px;
+ vertical-align: middle;
+}
+
+.table thead th {
+ position: sticky;
+ top: 0;
+ z-index: 1;
+ background: rgba(11, 17, 28, 0.98) !important;
+ text-transform: uppercase;
+ letter-spacing: 0.05em;
+ font-size: 0.74rem;
+ color: rgba(255,255,255,0.72);
+ border-bottom-color: rgba(255,255,255,0.14);
+}
+
+.table tbody tr {
+ transition: background-color .15s ease, transform .15s ease;
+}
+
+.table tbody tr:hover > * {
+ background: rgba(255,255,255,0.04) !important;
+}
+
+.table td code,
+.api-code-block code {
+ display: inline-block;
+ padding: 0.28rem 0.48rem;
+ border-radius: 8px;
+ background: rgba(255,255,255,0.08);
+ color: #d6f5e6;
+}
+
+.api-code-block {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0.5rem;
+}
+
+.pagination .page-link {
+ background: rgba(255,255,255,0.03);
+ border-color: var(--ui-border);
+ color: #fff;
+}
+
+.pagination .page-item.active .page-link {
+ background: rgba(25, 135, 84, 0.95);
+ border-color: rgba(25, 135, 84, 0.95);
+}
+
+.dropdown-item {
+ border-radius: 8px;
+}
+
+.dropdown-item:hover,
+.dropdown-item:focus {
+ background: rgba(255,255,255,0.08);
+}
+
+form[data-unsaved-warning="true"].is-dirty {
+ position: relative;
+}
+
+form[data-unsaved-warning="true"].is-dirty::after {
+ content: "Niezapisane zmiany";
+ position: sticky;
+ bottom: 0.75rem;
+ left: 100%;
+ display: inline-flex;
+ margin-top: 1rem;
+ padding: 0.38rem 0.68rem;
+ border-radius: 999px;
+ background: rgba(255, 193, 7, 0.18);
+ border: 1px solid rgba(255, 193, 7, 0.36);
+ color: #ffe08a;
+ font-size: 0.76rem;
+ font-weight: 700;
+}
+
+.ui-password-toggle.is-active {
+ background: rgba(255,255,255,0.1);
+}
+
+.app-content-frame > h2 + .card,
+.app-content-frame > .card:first-of-type {
+ margin-top: 0;
+}
+
+@media (max-width: 767.98px){
+ .table-toolbar {
+ align-items: stretch;
+ }
+
+ .table-toolbar__meta {
+ text-align: left;
+ }
+
+ .admin-shortcuts .btn {
+ flex: 1 1 calc(50% - 0.55rem);
+ }
+
+ form[data-unsaved-warning="true"].is-dirty::after {
+ left: auto;
+ bottom: auto;
+ position: static;
+ margin-top: 0.75rem;
+ }
+}
+
+.admin-page-head {
+ display: flex;
+ justify-content: space-between;
+ align-items: flex-start;
+ gap: 0.85rem;
+ flex-wrap: wrap;
+}
+
+[data-admin-nav-body] {
+ display: flex;
+}
+
+@media (max-width: 767.98px){
+ [data-admin-nav-body] {
+ display: none;
+ width: 100%;
+ }
+
+ [data-admin-nav-body].is-open {
+ display: flex;
+ }
+
+ .admin-page-head > * {
+ width: 100%;
+ }
+
+ .admin-page-head .btn {
+ width: 100%;
+ }
+
+ .table-responsive table.table,
+ .is-admin-area table.table {
+ min-width: 100%;
+ }
+
+ .table-responsive table.table thead,
+ .is-admin-area table.table thead {
+ display: none;
+ }
+
+ .table-responsive table.table,
+ .table-responsive table.table tbody,
+ .table-responsive table.table tr,
+ .table-responsive table.table td,
+ .is-admin-area table.table,
+ .is-admin-area table.table tbody,
+ .is-admin-area table.table tr,
+ .is-admin-area table.table td {
+ display: block;
+ width: 100%;
+ }
+
+ .table-responsive table.table tbody,
+ .is-admin-area table.table tbody {
+ display: grid;
+ gap: 0.8rem;
+ }
+
+ .table-responsive table.table tr,
+ .is-admin-area table.table tr {
+ border: 1px solid rgba(255,255,255,0.08);
+ border-radius: 16px;
+ padding: 0.35rem 0.55rem;
+ background: rgba(255,255,255,0.02);
+ box-shadow: 0 8px 24px rgba(0,0,0,0.16);
+ }
+
+ .table-responsive table.table td,
+ .is-admin-area table.table td {
+ border: 0;
+ padding: 0.5rem 0.35rem;
+ }
+
+ .table-responsive table.table td::before,
+ .is-admin-area table.table td::before {
+ content: attr(data-label);
+ display: block;
+ margin-bottom: 0.18rem;
+ font-size: 0.72rem;
+ text-transform: uppercase;
+ letter-spacing: 0.04em;
+ color: rgba(255,255,255,0.58);
+ }
+
+ .table-responsive table.table td:last-child,
+ .is-admin-area table.table td:last-child {
+ padding-bottom: 0.2rem;
+ }
+
+ .table-responsive table.table td .btn,
+ .table-responsive table.table td .input-group,
+ .table-responsive table.table td .form-select,
+ .table-responsive table.table td .form-control,
+ .is-admin-area table.table td .btn,
+ .is-admin-area table.table td .input-group,
+ .is-admin-area table.table td .form-select,
+ .is-admin-area table.table td .form-control {
+ width: 100%;
+ }
+
+ .table-responsive table.table td .d-flex,
+ .table-responsive table.table td .btn-group,
+ .is-admin-area table.table td .d-flex,
+ .is-admin-area table.table td .btn-group {
+ flex-wrap: wrap;
+ }
+}
+
+.list-action-block .input-group .btn,
+.list-action-block .btn,
+.endpoint-shared_list .input-group .btn,
+.endpoint-shared_list .list-share-page .btn {
+ min-height: 44px;
+}
+
+.endpoint-shared_list .input-group,
+.list-action-block .input-group {
+ align-items: stretch;
+}
+
+@media (max-width: 767.98px){
+ .endpoint-admin_panel .table-responsive table thead {
+ display: none;
+ }
+ .endpoint-admin_panel .table-responsive table,
+ .endpoint-admin_panel .table-responsive tbody,
+ .endpoint-admin_panel .table-responsive tr,
+ .endpoint-admin_panel .table-responsive td {
+ display: block;
+ width: 100%;
+ }
+ .endpoint-admin_panel .table-responsive tr {
+ border: 1px solid rgba(255,255,255,.08);
+ border-radius: 16px;
+ margin-bottom: 1rem;
+ padding: .75rem;
+ background: rgba(255,255,255,.02);
+ }
+ .endpoint-admin_panel .table-responsive td {
+ border: 0;
+ padding: .35rem 0;
+ }
+}
+
+.table-responsive {overflow-x: clip;}
+.table-responsive table {width:100%; min-width:0 !important;}
+@media (max-width: 767.98px){
+ .app-content-frame .table-responsive table.table,
+ .app-content-frame table.table:not(.keep-horizontal) {display:block; width:100%;}
+ .app-content-frame .table-responsive table.table thead,
+ .app-content-frame table.table:not(.keep-horizontal) thead {display:none;}
+ .app-content-frame .table-responsive table.table tbody,
+ .app-content-frame .table-responsive table.table tr,
+ .app-content-frame .table-responsive table.table td,
+ .app-content-frame table.table:not(.keep-horizontal) tbody,
+ .app-content-frame table.table:not(.keep-horizontal) tr,
+ .app-content-frame table.table:not(.keep-horizontal) td {display:block; width:100%;}
+ .app-content-frame .table-responsive table.table tr,
+ .app-content-frame table.table:not(.keep-horizontal) tr {border:1px solid var(--dark-300); border-radius:1rem; margin-bottom:.85rem; padding:.35rem .25rem; background:var(--dark-700);}
+ .app-content-frame .table-responsive table.table td,
+ .app-content-frame table.table:not(.keep-horizontal) td {border:none; padding:.5rem .75rem; text-align:left !important;}
+ .app-content-frame .table-responsive table.table td::before,
+ .app-content-frame table.table:not(.keep-horizontal) td::before {content:attr(data-label); display:block; font-size:.72rem; color:#9ba3aa; margin-bottom:.2rem; text-transform:uppercase;}
+ .app-content-frame .table-responsive {overflow:visible;}
+}
+
+.admin-table-responsive {
+ overflow-x: auto !important;
+ -webkit-overflow-scrolling: touch;
+}
+
+.admin-table-responsive--wide table {
+ min-width: 1180px;
+}
+
+.admin-table-responsive--full table {
+ width: 100% !important;
+ min-width: 100% !important;
+ table-layout: auto;
+}
+
+.endpoint-edit_categories .admin-table-responsive--full table th,
+.endpoint-edit_categories .admin-table-responsive--full table td,
+.endpoint-api_tokens .admin-table-responsive--full table th,
+.endpoint-api_tokens .admin-table-responsive--full table td {
+ white-space: normal;
+ vertical-align: middle;
+}
+
+.endpoint-edit_categories .admin-table-responsive--full table th:last-child,
+.endpoint-edit_categories .admin-table-responsive--full table td:last-child {
+ width: 30%;
+}
+
+.is-admin-area .table-responsive td,
+.is-admin-area .table-responsive th {
+ white-space: normal;
+}
+
+.api-chip {
+ display: inline-block;
+ max-width: 22rem;
+ padding: .28rem .55rem;
+ border-radius: .75rem;
+ background: rgba(255,255,255,.08);
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ vertical-align: middle;
+}
+
+.api-chip--wrap {
+ white-space: normal;
+ overflow-wrap: anywhere;
+ word-break: break-word;
+}
+
+.form-check-spaced {
+ display: flex;
+ align-items: flex-start;
+ gap: .7rem;
+ padding-left: 0;
+ margin-bottom: .65rem;
+}
+
+.form-check-spaced .form-check-input {
+ position: static;
+ margin: .2rem 0 0;
+ flex: 0 0 auto;
+}
+
+.form-check-spaced .form-check-label {
+ margin: 0;
+ line-height: 1.35;
+}
+
+.list-item-actions {
+ gap: .4rem;
+ flex-wrap: wrap;
+ justify-content: flex-end;
+}
+
+.list-item-actions .btn {
+ border-radius: .8rem !important;
+ min-width: 2.6rem;
+}
+
+.share-submit-btn {
+ min-width: 8rem;
+ font-weight: 600;
+}
+
+.endpoint-list_share .input-group,
+.endpoint-shared_list .input-group {
+ align-items: stretch;
+}
+
+.endpoint-list_share .input-group > .form-control,
+.endpoint-list_share .input-group > .btn,
+.endpoint-shared_list .input-group > .form-control,
+.endpoint-shared_list .input-group > .btn {
+ min-height: 46px;
+}
+
+.endpoint-list_share .input-group > .btn,
+.endpoint-shared_list .input-group > .btn {
+ border-top-left-radius: 0 !important;
+ border-bottom-left-radius: 0 !important;
+}
+
+@media (max-width: 767.98px){
+ .table-responsive {
+ overflow-x: auto !important;
+ }
+
+ .is-admin-area .table-responsive table.table.keep-horizontal,
+ .endpoint-api_tokens .table-responsive table.table,
+ .endpoint-admin_panel .table-responsive table.table,
+ .endpoint-lists_access .table-responsive table.table,
+ .endpoint-user_management .table-responsive table.table,
+ .endpoint-edit_categories .table-responsive table.table {
+ display: table;
+ width: max-content;
+ min-width: 980px !important;
+ }
+
+ .endpoint-api_tokens .admin-table-responsive--full table.table,
+ .endpoint-edit_categories .admin-table-responsive--full table.table {
+ width: 100%;
+ min-width: 980px !important;
+ }
+
+ .is-admin-area .table-responsive table.table.keep-horizontal thead,
+ .endpoint-api_tokens .table-responsive table.table thead,
+ .endpoint-admin_panel .table-responsive table.table thead,
+ .endpoint-lists_access .table-responsive table.table thead,
+ .endpoint-user_management .table-responsive table.table thead {
+ display: table-header-group;
+ }
+
+ .is-admin-area .table-responsive table.table.keep-horizontal tbody,
+ .endpoint-api_tokens .table-responsive table.table tbody,
+ .endpoint-admin_panel .table-responsive table.table tbody,
+ .endpoint-lists_access .table-responsive table.table tbody,
+ .endpoint-user_management .table-responsive table.table tbody {
+ display: table-row-group;
+ }
+
+ .is-admin-area .table-responsive table.table.keep-horizontal tr,
+ .endpoint-api_tokens .table-responsive table.table tr,
+ .endpoint-admin_panel .table-responsive table.table tr,
+ .endpoint-lists_access .table-responsive table.table tr,
+ .endpoint-user_management .table-responsive table.table tr {
+ display: table-row;
+ border: 0;
+ padding: 0;
+ background: transparent;
+ box-shadow: none;
+ }
+
+ .is-admin-area .table-responsive table.table.keep-horizontal td,
+ .endpoint-api_tokens .table-responsive table.table td,
+ .endpoint-admin_panel .table-responsive table.table td,
+ .endpoint-lists_access .table-responsive table.table td,
+ .endpoint-user_management .table-responsive table.table td {
+ display: table-cell;
+ width: auto;
+ border-top: 1px solid var(--dark-450);
+ padding: .65rem .75rem;
+ }
+
+ .endpoint-api_tokens .table-responsive table.table td::before,
+ .endpoint-admin_panel .table-responsive table.table td::before,
+ .endpoint-lists_access .table-responsive table.table td::before,
+ .endpoint-user_management .table-responsive table.table td::before {
+ display: none;
+ content: none;
+ }
+}
+
+@media (max-width: 575.98px){
+ .share-submit-btn {
+ min-width: 6.75rem;
+ }
+
+ .list-item-actions {
+ width: 100%;
+ justify-content: flex-start;
+ margin-top: .5rem;
+ }
+}
+
+.form-switch-compact .form-check-input {
+ width: 2.35rem;
+ height: 1.2rem;
+ margin-top: .1rem;
+}
+.form-switch-compact .form-check-label {
+ padding-top: .02rem;
+}
+.form-check-spaced {
+ gap: .45rem;
+}
+.access-editor .input-group > .form-control,
+.access-editor .input-group > .btn {
+ min-height: 40px;
+}
+.endpoint-admin_edit_categories .table-responsive,
+.endpoint-admin_lists_access .table-responsive,
+.endpoint-admin_settings .table-responsive,
+.endpoint-list_products .table-responsive {
+ overflow-x: auto !important;
+}
+.endpoint-admin_edit_categories .table-responsive table.table.keep-horizontal,
+.endpoint-admin_lists_access .table-responsive table.table.keep-horizontal,
+.endpoint-list_products .table-responsive table.table.keep-horizontal {
+ min-width: 1000px !important;
+}
+.endpoint-admin_edit_categories .app-content-frame,
+.endpoint-admin_lists_access .app-content-frame,
+.endpoint-admin_settings .app-content-frame,
+.endpoint-list_products .app-content-frame {
+ overflow: visible;
+}
+@media (max-width: 767.98px){
+ .form-switch-compact .form-check-input { width: 2rem; height: 1.05rem; }
+}
+
+.admin-table-responsive table {
+ width: 100%;
+ min-width: 100%;
+}
+.admin-table-responsive--wide table,
+.table-responsive .keep-horizontal {
+ width: max-content;
+ min-width: 100%;
+}
+.endpoint-admin_panel .admin-table-responsive--wide table {
+ width: 100%;
+ min-width: 100%;
+}
+.endpoint-admin_panel .admin-panel-table th:last-child,
+.endpoint-admin_panel .admin-panel-table td:last-child {
+ width: 1%;
+ white-space: nowrap;
+}
+.endpoint-admin_lists_access .admin-table-responsive--wide table {
+ min-width: 1120px;
+}
+.endpoint-admin_lists_access .access-editor .tokens {
+ min-height: 2rem;
+}
+.endpoint-admin_lists_access .access-editor .token,
+.endpoint-admin_edit_my_list .access-editor .token {
+ max-width: 100%;
+}
+.endpoint-admin_lists_access .access-editor .token span,
+.endpoint-admin_edit_my_list .access-editor .token span {
+ pointer-events: none;
+}
+.endpoint-admin_lists_access .mono {
+ white-space: nowrap;
+}
+.form-check-spaced {
+ gap: .35rem;
+}
+.form-check-spaced .form-check-input,
+input[type="checkbox"].form-check-input,
+.table-select-checkbox {
+ width: .95rem !important;
+ height: .95rem !important;
+ min-width: .95rem !important;
+ min-height: .95rem !important;
+ margin-top: .18rem;
+}
+.form-switch-compact .form-check-input {
+ width: 1.8rem !important;
+ height: .95rem !important;
+}
+
+.shopping-item-main > .large-checkbox {
+ flex: 0 0 1.5em;
+ align-self: center;
+}
+.list-item-actions {
+ display: flex;
+ align-items: center;
+ gap: .45rem;
+ flex-wrap: wrap;
+}
+.list-item-actions .btn {
+ min-width: 2.25rem;
+ padding: .42rem .62rem;
+}
+.endpoint-list_share .list-group-item,
+.endpoint-shared_list .list-group-item {
+ gap: .75rem;
+}
+.endpoint-list_share .list-item-actions,
+.endpoint-shared_list .list-item-actions {
+ margin-left: auto;
+}
+.endpoint-list_share .input-group,
+.endpoint-shared_list .input-group {
+ flex-wrap: nowrap;
+}
+.endpoint-list_share .input-group > .form-control,
+.endpoint-shared_list .input-group > .form-control {
+ min-width: 0;
+}
+.endpoint-list_share .share-submit-btn,
+.endpoint-shared_list .share-submit-btn {
+ min-width: 7.25rem;
+ border-radius: .9rem !important;
+}
+@media (max-width: 991.98px){
+ .endpoint-admin_panel .admin-panel-table {
+ min-width: 1000px;
+ }
+}
+@media (max-width: 767.98px){
+ .endpoint-admin_panel .admin-table-responsive--wide table,
+ .endpoint-admin_lists_access .admin-table-responsive--wide table,
+ .endpoint-api_tokens .admin-table-responsive--wide table {
+ width: max-content;
+ min-width: 980px !important;
+ }
+ .endpoint-list_share .input-group,
+ .endpoint-shared_list .input-group {
+ flex-wrap: wrap;
+ }
+ .endpoint-list_share .share-submit-btn,
+ .endpoint-shared_list .share-submit-btn {
+ width: 100%;
+ }
+}
+
+.endpoint-admin_api_tokens .admin-table-responsive--wide table { width: 100%; min-width: 100%; }
+@media (max-width: 767.98px){ .endpoint-admin_api_tokens .admin-table-responsive--wide table { width:max-content; min-width: 980px !important; } }
+.table-responsive { overflow-x: auto; }
+
+.create-list-switch,
+.hide-purchased-switch {
+ display: inline-flex;
+ align-items: center;
+ gap: .5rem;
+ padding: .45rem .8rem .45rem 2.35rem;
+ min-height: 0;
+ width: auto;
+ background: rgba(255,255,255,0.04);
+ border: 1px solid var(--ui-border);
+ border-radius: 12px;
+}
+.create-list-switch .form-check-input,
+.hide-purchased-switch .form-check-input {
+ width: 2rem !important;
+ height: 1rem !important;
+ margin-top: 0;
+}
+.create-list-switch .form-check-label,
+.hide-purchased-switch .form-check-label {
+ margin-left: .15rem;
+}
+.endpoint-admin_lists_access .card > .card-body > .table-responsive,
+.endpoint-admin_api_tokens .card > .card-body > .table-responsive {
+ width: 100%;
+}
+.endpoint-admin_lists_access .table.keep-horizontal,
+.endpoint-admin_api_tokens .table.keep-horizontal {
+ min-width: 100%;
+}
+
+.create-list-checkbox {
+ align-items: center;
+ gap: .55rem;
+}
+.create-list-checkbox .form-check-input {
+ margin-top: 0;
+}
+.endpoint-list_share #items .list-group-item,
+.endpoint-shared_list #items .list-group-item {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ gap: .75rem;
+}
+.endpoint-list_share #items .list-group-item > .d-flex.flex-grow-1,
+.endpoint-shared_list #items .list-group-item > .d-flex.flex-grow-1 {
+ min-width: 0;
+ flex: 1 1 auto;
+}
+.endpoint-list_share .list-item-actions,
+.endpoint-shared_list .list-item-actions {
+ flex: 0 0 auto;
+ margin-left: auto;
+ justify-content: flex-end;
+}
+.endpoint-list_share .list-item-actions .btn,
+.endpoint-shared_list .list-item-actions .btn {
+ min-width: 2.5rem;
+}
+
+.endpoint-list_share .list-item-actions,
+.endpoint-shared_list .list-item-actions {
+ gap: .5rem;
+}
+
+.endpoint-list_share .list-item-actions .btn,
+.endpoint-shared_list .list-item-actions .btn {
+ min-width: 2.75rem;
+ min-height: 2.5rem;
+ padding: .5rem .72rem;
+}
+
+.endpoint-list_share .app-navbar__actions .btn,
+.endpoint-shared_list .app-navbar__actions .btn {
+ border-radius: .9rem !important;
+}
+
+.switch-grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
+ gap: .8rem;
+}
+
+.endpoint-edit_my_list .switch-grid .app-switch,
+.endpoint-admin_edit_list .switch-grid .app-switch {
+ width: 100%;
+}
+
+.endpoint-edit_my_list .switch-grid {
+ grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
+}
+
+.endpoint-edit_my_list .switch-grid .app-switch,
+.endpoint-admin_edit_list .switch-grid .app-switch {
+ width: 100%;
+ min-height: 3.35rem;
+}
+
+.endpoint-admin_api_tokens .stack-form .form-check-spaced,
+.endpoint-api_tokens .stack-form .form-check-spaced {
+ align-items: center;
+ gap: .85rem;
+ margin: 0 0 .72rem;
+ padding: .75rem .9rem;
+ border: 1px solid var(--ui-border);
+ border-radius: 14px;
+ background: rgba(255,255,255,.04);
+}
+
+.endpoint-admin_api_tokens .stack-form .form-check-spaced .form-check-input,
+.endpoint-api_tokens .stack-form .form-check-spaced .form-check-input {
+ margin: 0;
+}
+
+.endpoint-admin_api_tokens .stack-form .form-check-spaced .form-check-label,
+.endpoint-api_tokens .stack-form .form-check-spaced .form-check-label {
+ flex: 1 1 auto;
+}
+
+.endpoint-admin_panel .table-responsive,
+.endpoint-admin_lists_access .table-responsive {
+ overflow-x: auto;
+}
+
+.endpoint-admin_panel .table-responsive > table.table,
+.endpoint-admin_lists_access .table-responsive > table.table {
+ width: 100% !important;
+ min-width: 100% !important;
+ table-layout: auto;
+}
+
+.endpoint-admin_lists_access td:nth-child(6) {
+ min-width: 19rem;
+}
+
+.endpoint-admin_lists_access td:nth-child(6) > .d-flex,
+.endpoint-admin_lists_access td:nth-child(6) > .text-warning {
+ width: 100%;
+}
+
+.endpoint-admin_lists_access td:nth-child(6) > .text-warning {
+ display: block;
+}
+
+.share-page-toolbar {
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+ gap: .75rem;
+ width: 100%;
+}
+
+.share-page-toolbar__spacer {
+ flex: 1 1 auto;
+}
+
+.share-page-toolbar .form-check {
+ margin-bottom: 0;
+}
+
+.endpoint-list_share .app-navbar__actions,
+.endpoint-shared_list .app-navbar__actions {
+ align-items: stretch;
+}
+
+.endpoint-list_share .app-navbar__actions .btn,
+.endpoint-shared_list .app-navbar__actions .btn {
+ min-height: var(--nav-btn-height);
+}
+
+.endpoint-admin_templates .table-responsive {
+ overflow-x: auto;
+}
+
+.endpoint-admin_templates .table-responsive > table.table {
+ width: 100% !important;
+ min-width: 100% !important;
+ table-layout: auto;
+}
+
+.mobile-list-heading {
+ width: 100%;
+ min-width: 0;
+ max-width: 100%;
+ justify-content: flex-start;
+}
+
+.mobile-list-heading__title {
+ min-width: 0;
+}
+
+.mobile-category-badges {
+ display: inline-flex;
+ align-items: center;
+ gap: .3rem;
+ min-width: 0;
+ max-width: 100%;
+}
+
+.mobile-category-badge {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ font-size: .68rem;
+ line-height: 1;
+ padding: .26rem .52rem;
+ opacity: .95;
+}
+
+.mobile-category-badge__dot {
+ display: none;
+ width: .55rem;
+ height: .55rem;
+ border-radius: 999px;
+ background: currentColor;
+}
+
+.mobile-category-badges.is-compact .mobile-category-badge {
+ width: .9rem;
+ min-width: .9rem;
+ height: .9rem;
+ padding: 0;
+ border-radius: 999px;
+}
+
+.mobile-category-badges.is-compact .mobile-category-badge__text {
+ display: none;
+}
+
+.mobile-category-badges.is-compact .mobile-category-badge__dot {
+ display: block;
+}
+
+.endpoint-main_page .list-group-item > .main-list-row {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ gap: 0.75rem;
+ width: 100%;
+ flex-wrap: nowrap;
+}
+
+.endpoint-main_page .list-main-meta {
+ min-width: 0;
+ flex: 1 1 auto;
+}
+
+.endpoint-main_page .list-main-title {
+ display: flex;
+ align-items: center;
+ align-content: center;
+ flex-wrap: wrap;
+ gap: 0.15rem;
+ min-width: 0;
+ line-height: 1;
+}
+
+.endpoint-main_page .list-main-actions {
+ flex: 0 0 auto;
+ align-self: center;
+}
+
+.list-main-title__link {
+ min-width: 0;
+ display: inline-flex;
+ align-items: center;
+ align-content: center;
+ flex-wrap: wrap;
+ gap: .15rem;
+ line-height: 1;
+}
+
+.shopping-item-row {
+ gap: .75rem;
+}
+
+.shopping-item-main {
+ min-width: 0;
+ flex: 1 1 auto;
+ flex-wrap: wrap;
+}
+
+.shopping-item-main span[id^="name-"] {
+ min-width: 0;
+}
+
+.shopping-item-actions {
+ flex: 0 0 auto;
+ margin-left: auto;
+ align-self: flex-start;
+}
+
+.shopping-compact-input-group {
+ flex-wrap: nowrap !important;
+ align-items: stretch;
+}
+
+.shopping-qty-input {
+ flex: 0 0 4.5rem;
+ max-width: 4.5rem;
+}
+
+.shopping-compact-submit {
+ flex: 0 0 auto;
+ width: auto;
+ white-space: nowrap;
+}
+
+.list-toolbar {
+ width: 100%;
+}
+
+.list-toolbar--share {
+ justify-content: flex-end;
+}
+
+.shopping-item-row {
+ padding: .8rem .95rem;
+}
+
+.shopping-item-main {
+ display: flex;
+ align-items: center;
+ gap: .75rem;
+ width: 100%;
+}
+
+.shopping-item-content {
+ flex: 1 1 auto;
+ min-width: 0;
+}
+
+.shopping-item-head {
+ display: flex;
+ align-items: flex-start;
+ justify-content: space-between;
+ gap: .75rem;
+}
+
+.shopping-item-text {
+ min-width: 0;
+ display: flex;
+ align-items: center;
+ gap: .35rem;
+ flex-wrap: wrap;
+}
+
+.shopping-item-name {
+ min-width: 0;
+ overflow-wrap: break-word;
+ word-break: normal;
+}
+
+.shopping-item-text .info-line {
+ flex-basis: 100%;
+ margin-top: .1rem;
+ overflow-wrap: break-word;
+ word-break: normal;
+}
+
+.shopping-item-actions {
+ display: inline-flex;
+ flex-wrap: nowrap;
+ gap: .35rem;
+}
+
+.shopping-product-input-group > .shopping-product-name-input,
+.shopping-expense-input-group > .shopping-expense-amount-input {
+ flex: 1 1 auto;
+}
+
+.shopping-product-input-group > .shopping-qty-input {
+ flex: 0 0 4.5rem;
+ max-width: 4.5rem;
+ text-align: center;
+}
+
+.shopping-expense-input-group > .shopping-compact-submit,
+.shopping-product-input-group > .shopping-compact-submit {
+ flex: 0 0 auto;
+}
+
+.endpoint-list .shopping-product-input-group > .shopping-compact-submit,
+.endpoint-list_share .shopping-product-input-group > .shopping-compact-submit,
+.endpoint-shared_list .shopping-product-input-group > .shopping-compact-submit,
+.endpoint-list .shopping-expense-input-group > .shopping-compact-submit,
+.endpoint-list_share .shopping-expense-input-group > .shopping-compact-submit,
+.endpoint-shared_list .shopping-expense-input-group > .shopping-compact-submit {
+ border-top-left-radius: 0 !important;
+ border-bottom-left-radius: 0 !important;
+ border-top-right-radius: .9rem !important;
+ border-bottom-right-radius: .9rem !important;
+ margin-left: 0;
+}
+
+.endpoint-list .shopping-product-input-group,
+.endpoint-list_share .shopping-product-input-group,
+.endpoint-shared_list .shopping-product-input-group,
+.endpoint-list .shopping-expense-input-group,
+.endpoint-list_share .shopping-expense-input-group,
+.endpoint-shared_list .shopping-expense-input-group {
+ flex-wrap: nowrap;
+}
+
+.endpoint-list .shopping-product-input-group,
+.endpoint-list_share .shopping-product-input-group,
+.endpoint-shared_list .shopping-product-input-group,
+.endpoint-list .shopping-expense-input-group,
+.endpoint-list_share .shopping-expense-input-group,
+.endpoint-shared_list .shopping-expense-input-group {
+ display: flex;
+ flex-wrap: nowrap !important;
+ align-items: stretch;
+ gap: 0 !important;
+}
+
+.endpoint-list .shopping-product-input-group > .form-control,
+.endpoint-list_share .shopping-product-input-group > .form-control,
+.endpoint-shared_list .shopping-product-input-group > .form-control,
+.endpoint-list .shopping-expense-input-group > .form-control,
+.endpoint-list_share .shopping-expense-input-group > .form-control,
+.endpoint-shared_list .shopping-expense-input-group > .form-control,
+.endpoint-list .shopping-product-input-group > .btn,
+.endpoint-list_share .shopping-product-input-group > .btn,
+.endpoint-shared_list .shopping-product-input-group > .btn,
+.endpoint-list .shopping-expense-input-group > .btn,
+.endpoint-list_share .shopping-expense-input-group > .btn,
+.endpoint-shared_list .shopping-expense-input-group > .btn {
+ position: relative;
+ min-height: 46px;
+ box-shadow: none;
+}
+
+.endpoint-list .shopping-product-input-group > .shopping-product-name-input,
+.endpoint-list_share .shopping-product-input-group > .shopping-product-name-input,
+.endpoint-shared_list .shopping-product-input-group > .shopping-product-name-input,
+.endpoint-list .shopping-expense-input-group > .shopping-expense-amount-input,
+.endpoint-list_share .shopping-expense-input-group > .shopping-expense-amount-input,
+.endpoint-shared_list .shopping-expense-input-group > .shopping-expense-amount-input {
+ border-top-right-radius: 0 !important;
+ border-bottom-right-radius: 0 !important;
+}
+
+.endpoint-list .shopping-product-input-group > .shopping-qty-input,
+.endpoint-list_share .shopping-product-input-group > .shopping-qty-input,
+.endpoint-shared_list .shopping-product-input-group > .shopping-qty-input {
+ border-radius: 0 !important;
+ border-left-width: 0 !important;
+}
+
+.endpoint-list .shopping-product-input-group > .shopping-compact-submit,
+.endpoint-list_share .shopping-product-input-group > .shopping-compact-submit,
+.endpoint-shared_list .shopping-product-input-group > .shopping-compact-submit,
+.endpoint-list .shopping-expense-input-group > .shopping-compact-submit,
+.endpoint-list_share .shopping-expense-input-group > .shopping-compact-submit,
+.endpoint-shared_list .shopping-expense-input-group > .shopping-compact-submit {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ gap: .35rem;
+ margin-left: 0 !important;
+ border-top-left-radius: 0 !important;
+ border-bottom-left-radius: 0 !important;
+ border-top-right-radius: .9rem !important;
+ border-bottom-right-radius: .9rem !important;
+ border-left-width: 0 !important;
+}
+
+.endpoint-list .shopping-product-input-group > .shopping-compact-submit,
+.endpoint-list .shopping-expense-input-group > .shopping-compact-submit,
+.endpoint-list_share .shopping-product-input-group > .shopping-compact-submit,
+.endpoint-list_share .shopping-expense-input-group > .shopping-compact-submit,
+.endpoint-shared_list .shopping-product-input-group > .shopping-compact-submit,
+.endpoint-shared_list .shopping-expense-input-group > .shopping-compact-submit,
+.endpoint-list .share-submit-btn,
+.endpoint-list_share .share-submit-btn,
+.endpoint-shared_list .share-submit-btn {
+ min-width: 7.25rem;
+}
+
+.shopping-btn-icon {
+ line-height: 1;
+}
+
+.shopping-btn-label {
+ line-height: 1;
+}
+
+.endpoint-view_list .shopping-product-input-group,
+.endpoint-view_list .shopping-expense-input-group {
+ display: flex;
+ flex-wrap: nowrap !important;
+ align-items: stretch;
+ gap: 0 !important;
+ width: 100%;
+}
+
+.endpoint-view_list .shopping-product-input-group > .form-control,
+.endpoint-view_list .shopping-expense-input-group > .form-control,
+.endpoint-view_list .shopping-product-input-group > .btn,
+.endpoint-view_list .shopping-expense-input-group > .btn {
+ position: relative;
+ min-height: 46px;
+ box-shadow: none;
+}
+
+.endpoint-view_list .shopping-product-input-group > .shopping-product-name-input,
+.endpoint-view_list .shopping-expense-input-group > .shopping-expense-amount-input {
+ border-top-right-radius: 0 !important;
+ border-bottom-right-radius: 0 !important;
+}
+
+.endpoint-view_list .shopping-product-input-group > .shopping-qty-input {
+ border-radius: 0 !important;
+ border-left-width: 0 !important;
+}
+
+.endpoint-view_list .shopping-product-input-group > .shopping-compact-submit,
+.endpoint-view_list .shopping-expense-input-group > .shopping-compact-submit,
+.endpoint-view_list .share-submit-btn {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ gap: .35rem;
+ margin-left: 0 !important;
+ min-width: 7.25rem;
+ border-top-left-radius: 0 !important;
+ border-bottom-left-radius: 0 !important;
+ border-top-right-radius: .9rem !important;
+ border-bottom-right-radius: .9rem !important;
+ border-left-width: 0 !important;
+}
+
+#progress-bar-purchased {
+ background: linear-gradient(135deg, rgba(39,208,125,0.96), rgba(22,150,91,0.98)) !important;
+}
+
+#progress-bar-not-purchased {
+ background: linear-gradient(135deg, rgba(246,196,83,0.96), rgba(224,164,26,0.98)) !important;
+}
+
+#progress-bar-remaining {
+ background: rgba(255,255,255,0.08) !important;
+}
+
+.shopping-item-text {
+ line-height: 1.35;
+}
+
+.shopping-item-text .info-line {
+ display: inline;
+ flex-basis: auto;
+ margin-top: 0;
+ white-space: normal;
+}
+
+.shopping-item-text .info-line > span {
+ display: inline;
+}
+
+.shopping-item-text .item-added-by-meta {
+ color: currentColor;
+ opacity: .72;
+ font-size: .92em;
+}
+
+.shopping-item-text .item-added-by-meta b {
+ font-weight: 600;
+}
+
+.shopping-item-name,
+.shopping-item-text .info-line {
+ overflow-wrap: break-word;
+ word-break: normal;
+}
+
+.shopping-item-actions {
+ flex: 0 0 auto;
+}
+
+.hide-purchased-switch--right {
+ display: inline-flex !important;
+ align-items: center;
+ justify-content: flex-end;
+ gap: .6rem;
+ width: auto;
+ margin-left: auto;
+ padding: 0 !important;
+ border: 0 !important;
+ background: transparent !important;
+ box-shadow: none !important;
+}
+
+.hide-purchased-switch--right::before,
+.hide-purchased-switch--right::after {
+ display: none !important;
+}
+
+.hide-purchased-switch--right .form-check-input {
+ order: 1;
+ margin: 0;
+ float: none;
+ flex: 0 0 auto;
+}
+
+.hide-purchased-switch--right .form-check-label {
+ order: 0;
+ margin: 0 !important;
+ white-space: nowrap;
+}
+
+.list-action-row {
+ display: flex;
+ flex-wrap: nowrap;
+ align-items: stretch;
+ gap: .65rem;
+}
+
+.list-action-row__form {
+ display: flex;
+ flex: 1 1 50%;
+}
+
+.list-action-row__btn {
+ width: 100%;
+}
+
+.list-action-row > .list-action-row__btn {
+ flex: 1 1 50%;
+}
+
+.shopping-item-head {
+ flex-wrap: nowrap;
+ align-items: center;
+}
+
+.shopping-item-text {
+ flex: 1 1 auto;
+ min-width: 0;
+}
+
+.shopping-item-text .info-line {
+ flex-basis: auto;
+}
+
+.shopping-item-actions {
+ align-items: center;
+ justify-content: flex-end;
+ flex: 0 0 auto;
+ white-space: nowrap;
+}
+
+.shopping-item-actions .btn {
+ flex: 0 0 auto;
+}
+
+.list-header-toolbar {
+ width: 100%;
+}
+
+.list-header-toolbar > h2 {
+ flex: 1 1 auto;
+ min-width: 0;
+}
+
+.list-header-toolbar .list-toolbar {
+ flex: 0 0 auto;
+ width: auto;
+ margin-left: auto;
+}
+
+.list-toolbar__sort.btn {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ white-space: nowrap;
+ border-width: 1px !important;
+}
+
+.drag-handle {
+ display: none !important;
+ cursor: grab;
+}
+
+body.sorting-active .drag-handle {
+ display: inline-flex !important;
+}
+
+body.sorting-active .shopping-item-row {
+ cursor: grab;
+}
+
+body.sorting-active .shopping-item-row:active,
+body.sorting-active .drag-handle:active {
+ cursor: grabbing;
+}
+
+body.sorting-active .shopping-item-row .large-checkbox {
+ pointer-events: none;
+}
+
+.endpoint-list_share .shopping-item-name,
+.endpoint-list_share .shopping-item-text .info-line,
+.endpoint-shared_list .shopping-item-name,
+.endpoint-shared_list .shopping-item-text .info-line {
+ overflow-wrap: break-word;
+ word-break: normal;
+}
+
+.endpoint-list_share input[type="checkbox"].large-checkbox::before,
+.endpoint-shared_list input[type="checkbox"].large-checkbox::before,
+.endpoint-view_list input[type="checkbox"].large-checkbox::before {
+ font-size: 1.7em;
+}
+
+.endpoint-list_share .shopping-item-row,
+.endpoint-shared_list .shopping-item-row {
+ overflow: hidden;
+ padding: .8rem .95rem;
+}
+
+.endpoint-list_share .shopping-item-main,
+.endpoint-shared_list .shopping-item-main,
+.endpoint-view_list .shopping-item-main,
+.endpoint-list .shopping-item-main {
+ display: flex;
+ align-items: center;
+ gap: .75rem;
+ width: 100%;
+}
+
+.endpoint-list_share .shopping-item-content,
+.endpoint-shared_list .shopping-item-content,
+.endpoint-view_list .shopping-item-content,
+.endpoint-list .shopping-item-content {
+ flex: 1 1 auto;
+ min-width: 0;
+ width: auto;
+}
+
+.endpoint-list_share .shopping-item-head,
+.endpoint-shared_list .shopping-item-head,
+.endpoint-view_list .shopping-item-head,
+.endpoint-list .shopping-item-head {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ gap: .75rem;
+}
+
+.endpoint-list_share .shopping-item-text,
+.endpoint-shared_list .shopping-item-text,
+.endpoint-view_list .shopping-item-text,
+.endpoint-list .shopping-item-text {
+ flex: 1 1 auto;
+ min-width: 0;
+ display: flex;
+ align-items: center;
+ align-content: center;
+ gap: .35rem;
+ flex-wrap: wrap;
+}
+
+.endpoint-list_share .shopping-item-name,
+.endpoint-shared_list .shopping-item-name,
+.endpoint-view_list .shopping-item-name,
+.endpoint-list .shopping-item-name {
+ display: inline;
+ min-width: 0;
+ max-width: 100%;
+ white-space: normal;
+ overflow-wrap: break-word;
+ word-break: normal;
+}
+
+.endpoint-list_share .shopping-item-text .badge,
+.endpoint-shared_list .shopping-item-text .badge,
+.endpoint-view_list .shopping-item-text .badge,
+.endpoint-list .shopping-item-text .badge,
+.endpoint-list_share .shopping-item-text .info-line,
+.endpoint-shared_list .shopping-item-text .info-line,
+.endpoint-view_list .shopping-item-text .info-line,
+.endpoint-list .shopping-item-text .info-line {
+ align-self: center;
+}
+
+.endpoint-list_share .shopping-item-text .info-line,
+.endpoint-shared_list .shopping-item-text .info-line,
+.endpoint-view_list .shopping-item-text .info-line,
+.endpoint-list .shopping-item-text .info-line {
+ display: block;
+ flex: 0 0 100%;
+ width: 100%;
+ margin-top: .1rem;
+ white-space: normal;
+ overflow-wrap: break-word;
+ word-break: normal;
+}
+
+.endpoint-list_share .shopping-item-actions,
+.endpoint-shared_list .shopping-item-actions,
+.endpoint-view_list .shopping-item-actions,
+.endpoint-list .shopping-item-actions {
+ display: inline-flex;
+ flex: 0 0 auto;
+ flex-wrap: nowrap;
+ align-items: center;
+ align-self: center;
+ justify-content: flex-end;
+ gap: .35rem;
+ margin-left: 0;
+ white-space: nowrap;
+}
+
+.endpoint-list_share .shopping-item-actions .btn,
+.endpoint-shared_list .shopping-item-actions .btn {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ min-width: 2.25rem;
+ padding: .34rem .48rem;
+}
+
+.endpoint-list_share .shopping-item-main > .large-checkbox,
+.endpoint-shared_list .shopping-item-main > .large-checkbox,
+.endpoint-view_list .shopping-item-main > .large-checkbox {
+ flex: 0 0 auto;
+ align-self: center;
+}
+
+.endpoint-list_share input[type="checkbox"].large-checkbox::before,
+.endpoint-shared_list input[type="checkbox"].large-checkbox::before {
+ font-size: 1.75em;
+}
+
+.endpoint-list_share .shopping-item-actions,
+.endpoint-shared_list .shopping-item-actions,
+.endpoint-view_list .shopping-item-actions,
+.endpoint-list .shopping-item-actions {
+ gap: .35rem !important;
+ min-height: 2.35rem !important;
+}
+
+.endpoint-list_share .shopping-action-btn,
+.endpoint-shared_list .shopping-action-btn,
+.endpoint-view_list .shopping-action-btn,
+.endpoint-list .shopping-action-btn {
+ width: 2.35rem !important;
+ height: 2.35rem !important;
+ min-width: 2.35rem !important;
+ min-height: 2.35rem !important;
+ padding: 0 !important;
+ border-radius: .7rem !important;
+ font-size: 1rem !important;
+ line-height: 1 !important;
+}
+
+.endpoint-list_share .shopping-action-btn--wide,
+.endpoint-shared_list .shopping-action-btn--wide,
+.endpoint-view_list .shopping-action-btn--wide,
+.endpoint-list .shopping-action-btn--wide {
+ width: auto !important;
+ min-width: 5.9rem !important;
+ padding: 0 .8rem !important;
+}
+.endpoint-list_share .shopping-action-btn--countdown,
+.endpoint-shared_list .shopping-action-btn--countdown,
+.endpoint-view_list .shopping-action-btn--countdown,
+.endpoint-list .shopping-action-btn--countdown {
+ width: auto !important;
+ min-width: 3.2rem !important;
+ padding: 0 .65rem !important;
+}
+
+.endpoint-list_share .shopping-action-btn > *,
+.endpoint-shared_list .shopping-action-btn > *,
+.endpoint-view_list .shopping-action-btn > *,
+.endpoint-list .shopping-action-btn > * {
+ line-height: 1 !important;
+}
+
+body:not(.sorting-active) .drag-handle {
+ display: none !important;
+}
+
+:root {
+ --ui-control-height: 42px;
+ --ui-control-radius: 14px;
+ --ui-control-focus-ring: 0 0 0 .25rem rgba(24, 64, 118, .18);
+}
+
+.ui-consistent-input {
+ min-height: var(--ui-control-height) !important;
+ border-radius: var(--ui-control-radius) !important;
+}
+
+.ui-password-group {
+ display: flex !important;
+ flex-wrap: nowrap !important;
+ align-items: stretch !important;
+ width: 100% !important;
+ gap: 0 !important;
+ overflow: hidden !important;
+ border: 1px solid var(--ui-border-strong) !important;
+ border-radius: var(--ui-control-radius) !important;
+ background: rgba(255,255,255,0.04) !important;
+ background-image: none !important;
+ box-shadow: none !important;
+}
+
+.ui-password-group:focus-within {
+ border-color: rgba(25, 135, 84, 0.6) !important;
+ box-shadow: 0 0 0 0.2rem rgba(25, 135, 84, 0.16) !important;
+}
+
+.ui-password-group > .form-control {
+ flex: 1 1 auto !important;
+ width: 1% !important;
+ min-width: 0 !important;
+ min-height: var(--ui-control-height) !important;
+ border: 0 !important;
+ border-radius: 0 !important;
+ box-shadow: none !important;
+ background: transparent !important;
+ background-color: transparent !important;
+ background-image: none !important;
+ background-clip: padding-box !important;
+}
+
+.ui-password-group > .form-control:focus,
+.ui-password-group > .form-control.ui-consistent-input {
+ box-shadow: none !important;
+ background: transparent !important;
+ background-color: transparent !important;
+ border-radius: 0 !important;
+}
+
+.ui-password-group > .ui-password-toggle {
+ appearance: none !important;
+ -webkit-appearance: none !important;
+ display: inline-flex !important;
+ align-items: center !important;
+ justify-content: center !important;
+ flex: 0 0 46px !important;
+ width: 46px !important;
+ min-width: 46px !important;
+ min-height: var(--ui-control-height) !important;
+ padding: 0 !important;
+ margin: 0 !important;
+ cursor: pointer !important;
+ background: transparent !important;
+ background-color: transparent !important;
+ background-image: none !important;
+ color: rgba(255,255,255,0.72) !important;
+ border: 0 !important;
+ border-left: 1px solid rgba(255, 255, 255, 0.10) !important;
+ border-radius: 0 !important;
+ box-shadow: none !important;
+ line-height: 1 !important;
+}
+
+.ui-password-group > .ui-password-toggle:hover,
+.ui-password-group > .ui-password-toggle:focus,
+.ui-password-group > .ui-password-toggle:focus-visible {
+ background: rgba(255,255,255,0.03) !important;
+ background-color: rgba(255,255,255,0.03) !important;
+ color: #fff !important;
+ border-left-color: rgba(255,255,255,0.16) !important;
+ box-shadow: none !important;
+ outline: none !important;
+}
+
+.ui-password-group > .ui-password-toggle.is-active {
+ background: rgba(255,255,255,0.05) !important;
+ background-color: rgba(255,255,255,0.05) !important;
+ color: #fff !important;
+}
+
+.ui-password-group > .ui-password-toggle > * {
+ pointer-events: none !important;
+}
+
+.endpoint-login form .form-control:not(.form-control-sm),
+.endpoint-system_auth form .form-control:not(.form-control-sm),
+.endpoint-edit_my_list form .form-control:not(.form-control-sm):not(.form-control-plaintext),
+.endpoint-edit_list form .form-control:not(.form-control-sm):not(.form-control-plaintext),
+.endpoint-user_management form .form-control:not(.form-control-sm),
+.endpoint-user_management .modal .form-control:not(.form-control-sm),
+.endpoint-edit_my_list form .form-select,
+.endpoint-edit_list form .form-select,
+.endpoint-user_management form .form-select,
+.endpoint-user_management .modal .form-select {
+ min-height: var(--ui-control-height) !important;
+}
+
+.endpoint-login form .form-control.ui-consistent-input,
+.endpoint-system_auth form .form-control.ui-consistent-input,
+.endpoint-edit_my_list form .ui-consistent-input,
+.endpoint-edit_list form .ui-consistent-input,
+.endpoint-user_management form .ui-consistent-input,
+.endpoint-user_management .modal .ui-consistent-input {
+ border-radius: var(--ui-control-radius) !important;
+}
+
+.endpoint-edit_my_list .access-editor .access-input,
+.endpoint-edit_list .input-group.input-group-sm .form-control {
+ min-height: var(--ui-control-height) !important;
+}
+
+.endpoint-list .shopping-entry-card,
+.endpoint-list_share .shopping-entry-card,
+.endpoint-shared_list .shopping-entry-card,
+.endpoint-view_list .shopping-entry-card {
+ background: linear-gradient(180deg, rgba(25, 135, 84, 0.16), rgba(13, 17, 23, 0.92));
+ border: 1px solid rgba(25, 135, 84, 0.42);
+ border-radius: 1rem;
+ padding: .9rem;
+ box-shadow: 0 .5rem 1.2rem rgba(0, 0, 0, 0.18);
+}
+
+.endpoint-list .shopping-entry-card__label,
+.endpoint-list_share .shopping-entry-card__label,
+.endpoint-shared_list .shopping-entry-card__label,
+.endpoint-view_list .shopping-entry-card__label {
+ display: inline-flex;
+ align-items: center;
+ gap: .4rem;
+ margin-bottom: .2rem;
+ font-size: .95rem;
+ font-weight: 700;
+ color: #d1f7df;
+}
+
+.endpoint-list .shopping-entry-card__hint,
+.endpoint-list_share .shopping-entry-card__hint,
+.endpoint-shared_list .shopping-entry-card__hint,
+.endpoint-view_list .shopping-entry-card__hint {
+ margin-bottom: .75rem;
+ color: rgba(255, 255, 255, 0.72);
+ font-size: .82rem;
+ line-height: 1.35;
+}
+
+.endpoint-list .shopping-entry-card .shopping-product-input-group,
+.endpoint-list_share .shopping-entry-card .shopping-product-input-group,
+.endpoint-shared_list .shopping-entry-card .shopping-product-input-group,
+.endpoint-view_list .shopping-entry-card .shopping-product-input-group {
+ margin-bottom: 0 !important;
+}
+
+.endpoint-list .shopping-entry-card .shopping-product-input-group > .form-control,
+.endpoint-list_share .shopping-entry-card .shopping-product-input-group > .form-control,
+.endpoint-shared_list .shopping-entry-card .shopping-product-input-group > .form-control,
+.endpoint-view_list .shopping-entry-card .shopping-product-input-group > .form-control {
+ border-color: rgba(25, 135, 84, 0.55) !important;
+ background: rgba(17, 24, 39, 0.95) !important;
+}
+
+.endpoint-list .shopping-entry-card .shopping-product-input-group > .form-control::placeholder,
+.endpoint-list_share .shopping-entry-card .shopping-product-input-group > .form-control::placeholder,
+.endpoint-shared_list .shopping-entry-card .shopping-product-input-group > .form-control::placeholder,
+.endpoint-view_list .shopping-entry-card .shopping-product-input-group > .form-control::placeholder {
+ color: rgba(255, 255, 255, 0.62);
+}
+
+.endpoint-list .shopping-entry-card .shopping-product-input-group > .shopping-product-name-input:focus,
+.endpoint-list_share .shopping-entry-card .shopping-product-input-group > .shopping-product-name-input:focus,
+.endpoint-shared_list .shopping-entry-card .shopping-product-input-group > .shopping-product-name-input:focus,
+.endpoint-view_list .shopping-entry-card .shopping-product-input-group > .shopping-product-name-input:focus {
+ box-shadow: inset 0 0 0 1px rgba(25, 135, 84, 0.25), 0 0 0 .2rem rgba(25, 135, 84, 0.18);
+}
+
+.endpoint-expenses .expenses-range-toolbar {
+ width: 100%;
+}
+
+.endpoint-expenses .expenses-range-group {
+ flex-wrap: wrap;
+ justify-content: center;
+ width: 100%;
+}
+
+.endpoint-expenses .expenses-range-group > .btn {
+ white-space: nowrap;
+}
+
+.endpoint-expenses .expenses-date-range {
+ align-items: stretch;
+}
+
+.endpoint-list .shopping-entry-card--expense,
+.endpoint-list_share .shopping-entry-card--expense,
+.endpoint-shared_list .shopping-entry-card--expense,
+.endpoint-view_list .shopping-entry-card--expense {
+ background: linear-gradient(180deg, rgba(13, 110, 253, 0.16), rgba(13, 17, 23, 0.92));
+ border-color: rgba(13, 110, 253, 0.42);
+}
+
+.endpoint-list .shopping-entry-card--expense .shopping-entry-card__label,
+.endpoint-list_share .shopping-entry-card--expense .shopping-entry-card__label,
+.endpoint-shared_list .shopping-entry-card--expense .shopping-entry-card__label,
+.endpoint-view_list .shopping-entry-card--expense .shopping-entry-card__label {
+ color: #d7e9ff;
+}
+
+.endpoint-list .shopping-entry-card--expense .shopping-expense-input-group,
+.endpoint-list_share .shopping-entry-card--expense .shopping-expense-input-group,
+.endpoint-shared_list .shopping-entry-card--expense .shopping-expense-input-group,
+.endpoint-view_list .shopping-entry-card--expense .shopping-expense-input-group {
+ margin-bottom: 0 !important;
+}
+
+.endpoint-list .shopping-entry-card--expense .shopping-expense-input-group > .form-control,
+.endpoint-list_share .shopping-entry-card--expense .shopping-expense-input-group > .form-control,
+.endpoint-shared_list .shopping-entry-card--expense .shopping-expense-input-group > .form-control,
+.endpoint-view_list .shopping-entry-card--expense .shopping-expense-input-group > .form-control {
+ border-color: rgba(13, 110, 253, 0.55) !important;
+ background: rgba(17, 24, 39, 0.95) !important;
+}
+
+.endpoint-list .shopping-entry-card--expense .shopping-expense-input-group > .form-control::placeholder,
+.endpoint-list_share .shopping-entry-card--expense .shopping-expense-input-group > .form-control::placeholder,
+.endpoint-shared_list .shopping-entry-card--expense .shopping-expense-input-group > .form-control::placeholder,
+.endpoint-view_list .shopping-entry-card--expense .shopping-expense-input-group > .form-control::placeholder {
+ color: rgba(255, 255, 255, 0.62);
+}
+
+.endpoint-list .shopping-entry-card--expense .shopping-expense-input-group > .shopping-expense-amount-input:focus,
+.endpoint-list_share .shopping-entry-card--expense .shopping-expense-input-group > .shopping-expense-amount-input:focus,
+.endpoint-shared_list .shopping-entry-card--expense .shopping-expense-input-group > .shopping-expense-amount-input:focus,
+.endpoint-view_list .shopping-entry-card--expense .shopping-expense-input-group > .shopping-expense-amount-input:focus {
+ box-shadow: inset 0 0 0 1px rgba(13, 110, 253, 0.25), 0 0 0 .2rem rgba(13, 110, 253, 0.18);
+}
+
+.endpoint-list .share-submit-btn--expense,
+.endpoint-list_share .share-submit-btn--expense,
+.endpoint-shared_list .share-submit-btn--expense,
+.endpoint-view_list .share-submit-btn--expense {
+ color: #8ec5ff;
+ border-color: rgba(13, 110, 253, 0.72) !important;
+ background: rgba(13, 110, 253, 0.12);
+}
+
+.endpoint-list .share-submit-btn--expense:hover,
+.endpoint-list_share .share-submit-btn--expense:hover,
+.endpoint-shared_list .share-submit-btn--expense:hover,
+.endpoint-view_list .share-submit-btn--expense:hover,
+.endpoint-list .share-submit-btn--expense:focus,
+.endpoint-list_share .share-submit-btn--expense:focus,
+.endpoint-shared_list .share-submit-btn--expense:focus,
+.endpoint-view_list .share-submit-btn--expense:focus {
+ color: #fff;
+ border-color: rgba(13, 110, 253, 0.9) !important;
+ background: rgba(13, 110, 253, 0.22);
+ box-shadow: 0 0 0 .2rem rgba(13, 110, 253, 0.16);
+}
+
+.list-quick-actions {
+ display: grid;
+ gap: .9rem;
+ padding: 1rem;
+ border: 1px solid rgba(255,255,255,.08);
+ border-radius: 1rem;
+ background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
+ box-shadow: 0 .5rem 1.25rem rgba(0,0,0,.14);
+}
+
+.list-quick-actions__header {
+ display: flex;
+ align-items: flex-start;
+ justify-content: space-between;
+ gap: .75rem;
+}
+
+.list-quick-actions__eyebrow {
+ font-size: .72rem;
+ letter-spacing: .08em;
+ text-transform: uppercase;
+ color: rgba(255,255,255,.58);
+ margin-bottom: .15rem;
+}
+
+.list-quick-actions__title {
+ font-size: 1rem;
+ font-weight: 700;
+ color: #fff;
+ line-height: 1.2;
+}
+
+.list-quick-actions__hint {
+ font-size: .82rem;
+ color: rgba(255,255,255,.62);
+ text-align: right;
+ max-width: 18rem;
+}
+
+.list-quick-actions__grid {
+ display: grid;
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ gap: .75rem;
+}
+
+.list-quick-actions__form {
+ display: block;
+}
+
+.list-quick-actions__action.btn {
+ width: 100%;
+ min-height: 78px;
+ display: flex;
+ align-items: flex-start;
+ gap: .75rem;
+ padding: .9rem 1rem;
+ border-radius: .95rem;
+ text-align: left;
+ white-space: normal;
+}
+
+.list-quick-actions__action--primary.btn {
+ border-color: rgba(255,255,255,.2);
+ background: rgba(255,255,255,.03);
+}
+
+.list-quick-actions__action--secondary.btn {
+ border-color: rgba(13,110,253,.5);
+ background: rgba(13,110,253,.08);
+}
+
+.list-quick-actions__icon {
+ flex: 0 0 auto;
+ font-size: 1.05rem;
+ line-height: 1;
+ margin-top: .1rem;
+}
+
+.list-quick-actions__content {
+ display: grid;
+ gap: .2rem;
+ min-width: 0;
+}
+
+.list-quick-actions__label {
+ font-size: .95rem;
+ font-weight: 600;
+ color: #fff;
+ line-height: 1.25;
+}
+
+.list-quick-actions__desc {
+ font-size: .81rem;
+ color: rgba(255,255,255,.66);
+ line-height: 1.35;
+}
diff --git a/shopping_app/static/css/split/pages.css b/shopping_app/static/css/split/pages.css
new file mode 100644
index 0000000..adb07d4
--- /dev/null
+++ b/shopping_app/static/css/split/pages.css
@@ -0,0 +1,725 @@
+.preview-product-list {
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
+}
+
+.preview-product-summary {
+ padding: 0 0 0.85rem;
+ margin-bottom: 0.1rem;
+ border-bottom: 1px solid rgba(255,255,255,0.08);
+}
+
+.preview-product-section {
+ display: flex;
+ flex-direction: column;
+ gap: 0.65rem;
+}
+
+.preview-product-section-title {
+ margin: 0;
+ font-size: 1.05rem;
+ font-weight: 700;
+}
+
+.preview-modal-items {
+ display: flex;
+ flex-direction: column;
+ gap: 0.75rem;
+}
+
+#productPreviewModal .preview-modal-list-item {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ gap: 0.75rem;
+ width: 100%;
+ min-width: 0;
+ padding: 0.9rem 1rem;
+ margin: 0 !important;
+ border-radius: 16px !important;
+ border: 1px solid rgba(255,255,255,0.08) !important;
+ background: linear-gradient(180deg, rgba(11,22,40,0.92) 0%, rgba(8,16,30,0.92) 100%) !important;
+ box-shadow: inset 0 1px 0 rgba(255,255,255,0.03);
+}
+
+#productPreviewModal .preview-modal-list-item:first-child,
+#productPreviewModal .preview-modal-list-item:last-child,
+#productPreviewModal .list-group-flush > .list-group-item:first-child,
+#productPreviewModal .list-group-flush > .list-group-item:last-child {
+ border-radius: 16px !important;
+}
+
+#productPreviewModal .preview-modal-list-item__name {
+ min-width: 0;
+ overflow-wrap: anywhere;
+ flex: 1 1 auto;
+}
+
+#productPreviewModal .preview-modal-list-item .badge {
+ flex-shrink: 0;
+ min-width: 2.5rem;
+ border-radius: 10px;
+}
+
+.receipt-disclosure {
+ width: 100%;
+ cursor: pointer;
+ border: 1px solid rgba(255, 255, 255, 0.08);
+ border-radius: 20px;
+ background: linear-gradient(135deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.02));
+ box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
+ transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
+}
+
+.receipt-disclosure:hover,
+.receipt-disclosure:focus-visible {
+ transform: translateY(-1px);
+ border-color: rgba(255, 255, 255, 0.18);
+ box-shadow: 0 16px 36px rgba(0, 0, 0, 0.24);
+ outline: none;
+}
+
+.receipt-disclosure.is-open {
+ border-color: rgba(24, 64, 118, 0.9);
+ background: linear-gradient(135deg, rgba(24, 64, 118, 0.22), rgba(255, 255, 255, 0.03));
+}
+
+.receipt-disclosure__content {
+ display: flex;
+ align-items: center;
+ gap: 14px;
+ padding: 16px 18px;
+}
+
+.receipt-disclosure__icon {
+ display: grid;
+ place-items: center;
+ width: 48px;
+ height: 48px;
+ border-radius: 14px;
+ background: rgba(255, 255, 255, 0.06);
+ font-size: 1.25rem;
+ flex-shrink: 0;
+}
+
+.receipt-disclosure__text {
+ min-width: 0;
+ flex: 1;
+}
+
+.receipt-disclosure__eyebrow {
+ font-size: 0.72rem;
+ letter-spacing: 0.08em;
+ text-transform: uppercase;
+ color: rgba(255, 255, 255, 0.52);
+ margin-bottom: 2px;
+}
+
+.receipt-disclosure__title {
+ font-size: 1rem;
+ font-weight: 600;
+ color: var(--text-strong);
+}
+
+.receipt-disclosure__meta {
+ display: flex;
+ align-items: center;
+ gap: 12px;
+ margin-left: auto;
+ flex-shrink: 0;
+}
+
+.receipt-disclosure__count {
+ min-width: 34px;
+ padding: 6px 10px;
+ border-radius: 999px;
+ background: rgba(255, 255, 255, 0.08);
+ color: var(--text-strong);
+ font-size: 0.875rem;
+ text-align: center;
+}
+
+.receipt-disclosure__chevron {
+ font-size: 1.15rem;
+ color: rgba(255, 255, 255, 0.7);
+ transition: transform 0.2s ease;
+}
+
+.receipt-disclosure.is-open .receipt-disclosure__chevron {
+ transform: rotate(180deg);
+}
+
+@media (max-width: 575.98px) {
+ .receipt-disclosure__content {
+ padding: 14px;
+ gap: 12px;
+ }
+
+ .receipt-disclosure__icon {
+ width: 42px;
+ height: 42px;
+ border-radius: 12px;
+ }
+
+ .receipt-disclosure__meta {
+ gap: 10px;
+ }
+
+ .receipt-disclosure__title {
+ font-size: 0.95rem;
+ }
+}
+
+.endpoint-edit_my_list .stack-form > .mb-3 > .ui-consistent-input,
+.endpoint-edit_my_list .stack-form > .mb-4 > .ui-consistent-input,
+.endpoint-edit_my_list .stack-form .row .ui-consistent-input,
+.endpoint-edit_list form > .mb-3 > .ui-consistent-input,
+.endpoint-edit_list form > .mb-4 > .ui-consistent-input,
+.endpoint-edit_list form .row .ui-consistent-input,
+.endpoint-user_management .row > [class*="col-"] > .ui-consistent-input,
+.endpoint-user_management .modal .ui-consistent-input {
+ border-radius: var(--ui-control-radius) !important;
+}
+
+.endpoint-edit_my_list .ts-wrapper.single .ts-control,
+.endpoint-edit_list .ts-wrapper.single .ts-control,
+.endpoint-edit_my_list .ts-wrapper.multi .ts-control,
+.endpoint-edit_list .ts-wrapper.multi .ts-control {
+ min-height: var(--ui-control-height) !important;
+ border-radius: var(--ui-control-radius) !important;
+}
+
+.share-hub {
+ border: 1px solid rgba(79, 142, 255, 0.18);
+ background: linear-gradient(180deg, rgba(11, 24, 43, 0.98), rgba(8, 17, 31, 0.96)) !important;
+}
+
+.share-hub .card-body {
+ padding: 1rem;
+}
+
+.share-hub__top {
+ display: flex;
+ align-items: flex-start;
+ justify-content: space-between;
+ gap: 0.9rem;
+ margin-bottom: 0.85rem;
+}
+
+.share-hub__eyebrow,
+.share-sheet__eyebrow {
+ font-size: 0.72rem;
+ letter-spacing: 0.08em;
+ text-transform: uppercase;
+ color: rgba(186, 210, 240, 0.62);
+ margin-bottom: 0.35rem;
+}
+
+.share-hub__title {
+ font-size: 1.1rem;
+ font-weight: 700;
+}
+
+.share-hub__status,
+.share-sheet__section-head {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0.45rem;
+ align-items: center;
+}
+
+.share-state-badge {
+ display: inline-flex;
+ align-items: center;
+ gap: 0.3rem;
+ min-height: 32px;
+ padding: 0.45rem 0.72rem;
+ font-size: 0.76rem;
+ font-weight: 600;
+ border: 1px solid rgba(255, 255, 255, 0.08);
+}
+
+.share-state-badge--public {
+ background: rgba(41, 209, 125, 0.16);
+ color: #dfffea;
+}
+
+.share-state-badge--private {
+ background: rgba(255, 255, 255, 0.06);
+ color: #edf5ff;
+}
+
+.share-state-badge--link {
+ background: rgba(79, 142, 255, 0.14);
+ color: #d7e7ff;
+}
+
+.share-state-badge--people {
+ background: rgba(255, 255, 255, 0.08);
+ color: #edf5ff;
+}
+
+.share-hub__note {
+ color: rgba(210, 224, 244, 0.74);
+ font-size: 0.92rem;
+ line-height: 1.45;
+}
+
+.share-hub__linkbox {
+ border: 1px solid rgba(255, 255, 255, 0.08);
+ background: rgba(255, 255, 255, 0.035);
+ border-radius: 16px;
+ padding: 0.85rem 0.95rem;
+}
+
+.share-hub__linklabel {
+ font-size: 0.72rem;
+ text-transform: uppercase;
+ letter-spacing: 0.07em;
+ color: rgba(186, 210, 240, 0.58);
+ margin-bottom: 0.3rem;
+}
+
+.share-hub__linkvalue {
+ color: #f4f8ff;
+ font-size: 0.95rem;
+ line-height: 1.45;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+.share-hub__actions {
+ display: grid;
+ grid-template-columns: 1fr;
+ gap: 0.65rem;
+}
+
+.share-hub__primary,
+.share-hub__secondary,
+.share-hub__manage,
+.share-sheet__toggle,
+.share-sheet__sticky-actions .btn,
+.share-sheet__linkstack .btn,
+
+.share-hub__manage {
+ white-space: nowrap;
+}
+
+.share-sheet {
+ height: auto !important;
+ max-height: min(90vh, 760px);
+ border-top-left-radius: 24px;
+ border-top-right-radius: 24px;
+ border: 1px solid rgba(255, 255, 255, 0.06);
+ background: linear-gradient(180deg, rgba(8, 18, 33, 0.995), rgba(6, 13, 24, 0.99)) !important;
+ box-shadow: 0 -24px 60px rgba(0, 0, 0, 0.42);
+}
+
+.share-sheet__header {
+ align-items: flex-start;
+ padding: 0.85rem 1rem 0.6rem;
+}
+
+.share-sheet__body {
+ padding: 0 1rem calc(1rem + env(safe-area-inset-bottom));
+ overflow-y: auto;
+}
+
+.share-sheet__grabber {
+ width: 52px;
+ height: 5px;
+ border-radius: 999px;
+ margin: 0 auto 0.8rem;
+ background: rgba(255, 255, 255, 0.22);
+}
+
+.share-sheet__section {
+ border: 1px solid rgba(255, 255, 255, 0.07);
+ background: rgba(255, 255, 255, 0.035);
+ border-radius: 18px;
+ padding: 0.95rem;
+ margin-bottom: 0.9rem;
+}
+
+.share-sheet__section-head {
+ justify-content: space-between;
+ margin-bottom: 0.7rem;
+ font-weight: 600;
+}
+
+.share-sheet__linkstack,
+.share-access-panel__input {
+ display: grid;
+ grid-template-columns: 1fr;
+ gap: 0.65rem;
+}
+
+.share-access-panel .tokens {
+ min-height: 2rem;
+}
+
+.share-access-panel .token {
+ background: rgba(255, 255, 255, 0.03);
+}
+
+.share-sheet__sticky-actions {
+ position: sticky;
+ bottom: 0;
+ padding-top: 0.3rem;
+ background: linear-gradient(180deg, rgba(6, 13, 24, 0), rgba(6, 13, 24, 0.96) 28%);
+}
+
+@media (min-width: 576px) {
+ .share-hub .card-body,
+ .share-sheet__header,
+ .share-sheet__body {
+ padding-left: 1.2rem;
+ padding-right: 1.2rem;
+ }
+
+ .share-sheet__linkstack,
+ .share-access-panel__input {
+ grid-template-columns: 1fr auto;
+ align-items: center;
+ }
+}
+
+@media (min-width: 768px) {
+ .share-hub .card-body {
+ padding: 1.15rem 1.2rem;
+ }
+
+ .share-hub__actions {
+ grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
+ }
+
+ .share-sheet {
+ max-width: 760px;
+ margin: 0 auto;
+ left: 0;
+ right: 0;
+ }
+}
+
+.endpoint-main_page .create-list-input-group {
+ display: flex;
+ flex-wrap: nowrap !important;
+ align-items: stretch;
+ overflow: hidden;
+ border-radius: 16px;
+ border: 1px solid rgba(255, 255, 255, 0.12);
+ background: rgba(7, 17, 31, 0.9);
+ box-shadow: 0 10px 28px rgba(0, 0, 0, 0.18);
+}
+
+.endpoint-main_page .create-list-input-group > .create-list-title-input,
+.endpoint-main_page .create-list-input-group > .form-control {
+ border: 0 !important;
+ border-right: 1px solid rgba(255, 255, 255, 0.08) !important;
+ border-radius: 0 !important;
+ background: transparent !important;
+ box-shadow: none !important;
+}
+
+.endpoint-main_page .create-list-input-group > .create-list-title-input:focus,
+.endpoint-main_page .create-list-input-group > .form-control:focus {
+ background: rgba(255, 255, 255, 0.02) !important;
+ box-shadow: none !important;
+}
+
+.endpoint-main_page .create-list-input-group > .create-list-temp-toggle,
+.endpoint-main_page .create-list-input-group > #tempToggle {
+ min-width: 9.5rem;
+ border: 0 !important;
+ border-radius: 0 !important;
+ background: rgba(255, 255, 255, 0.04) !important;
+ box-shadow: none !important;
+}
+
+.endpoint-main_page .create-list-input-group > .create-list-temp-toggle.is-active,
+.endpoint-main_page .create-list-input-group > #tempToggle.is-active {
+ background: rgba(41, 209, 125, 0.18) !important;
+}
+
+.endpoint-main_page .create-list-temp-toggle__label {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ min-height: 100%;
+}
+
+.endpoint-main_page .create-list-input-group:focus-within {
+ border-color: rgba(41, 209, 125, 0.55);
+ box-shadow: 0 0 0 0.18rem rgba(41, 209, 125, 0.12), 0 10px 28px rgba(0, 0, 0, 0.18);
+}
+
+.receipt-disclosure {
+ display: block;
+ padding: 0;
+ text-align: left;
+}
+
+.receipt-disclosure,
+.receipt-disclosure:hover,
+.receipt-disclosure:focus,
+.receipt-disclosure:active {
+ width: 100%;
+ appearance: none;
+ -webkit-appearance: none;
+}
+
+.receipt-disclosure:focus-visible {
+ outline: none;
+}
+
+.receipt-section--restoring {
+ transition: none !important;
+}
+
+@media (max-width: 767.98px) {
+ .endpoint-main_page .create-list-input-group {
+ border-radius: 14px;
+ }
+
+ .endpoint-main_page .create-list-input-group > .create-list-temp-toggle,
+ .endpoint-main_page .create-list-input-group > #tempToggle {
+ min-width: 8.25rem;
+ padding-left: .8rem;
+ padding-right: .8rem;
+ font-size: .9rem;
+ }
+}
+
+@media (max-width: 575.98px) {
+ .endpoint-main_page .create-list-input-group > .create-list-title-input,
+ .endpoint-main_page .create-list-input-group > .form-control {
+ padding-left: .85rem;
+ padding-right: .7rem;
+ font-size: .95rem;
+ }
+
+ .endpoint-main_page .create-list-input-group > .create-list-temp-toggle,
+ .endpoint-main_page .create-list-input-group > #tempToggle {
+ min-width: 7.6rem;
+ font-size: .84rem;
+ }
+
+ .receipt-disclosure {
+ border-radius: 16px;
+ }
+}
+
+.form-check-spaced {
+ gap: .35rem;
+}
+
+.form-check-spaced .form-check-input,
+input[type="checkbox"].form-check-input,
+.table-select-checkbox {
+ width: .95rem !important;
+ height: .95rem !important;
+ min-width: .95rem !important;
+ min-height: .95rem !important;
+ margin-top: .18rem;
+}
+
+.form-switch-compact .form-check-input {
+ width: 1.8rem !important;
+ height: .95rem !important;
+}
+
+.switch-grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
+ gap: .8rem;
+}
+
+.form-check.form-switch.app-switch {
+ display: inline-flex;
+ align-items: center;
+ gap: .75rem;
+ min-height: 2.75rem;
+ margin: 0;
+ padding: .58rem .82rem;
+ background: rgba(255,255,255,.04);
+ border: 1px solid var(--ui-border);
+ border-radius: 16px;
+}
+
+.form-check.form-switch.app-switch .form-check-input {
+ float: none;
+ flex: 0 0 auto;
+ width: 2.45em !important;
+ height: 1.3em !important;
+ margin: 0 !important;
+ cursor: pointer;
+ background-color: var(--dark-400) !important;
+ border-color: var(--dark-300) !important;
+ background-position: left center !important;
+ transition: background-position .18s ease-in-out, background-color .18s ease-in-out, border-color .18s ease-in-out, box-shadow .18s ease-in-out !important;
+}
+
+.form-check.form-switch.app-switch .form-check-input:checked {
+ background-color: var(--primary) !important;
+ border-color: var(--primary-border) !important;
+ background-position: right center !important;
+}
+
+.form-check.form-switch.app-switch .form-check-input:focus {
+ box-shadow: 0 0 0 .18rem rgba(24, 64, 118, .22) !important;
+}
+
+.form-check.form-switch.app-switch .form-check-label {
+ display: inline-flex;
+ align-items: center;
+ min-height: 1.3rem;
+ margin: 0 !important;
+ line-height: 1.35;
+ cursor: pointer;
+}
+
+.form-check.form-switch.app-switch.form-switch-compact {
+ width: 100%;
+ justify-content: flex-start;
+}
+
+.form-check.form-switch.app-switch.form-switch-compact .form-check-input {
+ width: 2.45em !important;
+ height: 1.3em !important;
+}
+
+.hide-purchased-switch.form-check,
+.hide-purchased-switch.form-check.app-switch {
+ display: inline-flex;
+ align-items: center;
+ gap: .7rem;
+ width: auto;
+ max-width: 100%;
+ padding: .5rem .82rem;
+ border-radius: 14px;
+ background: rgba(255,255,255,.04);
+ border: 1px solid var(--ui-border);
+}
+
+.hide-purchased-switch .form-check-input {
+ flex: 0 0 auto;
+ float: none;
+ width: 2.45em !important;
+ height: 1.3em !important;
+ margin: 0 !important;
+ cursor: pointer;
+ background-position: left center !important;
+ transition: background-position .18s ease-in-out, background-color .18s ease-in-out, border-color .18s ease-in-out, box-shadow .18s ease-in-out !important;
+}
+
+.hide-purchased-switch .form-check-input:checked {
+ background-position: right center !important;
+}
+
+.hide-purchased-switch .form-check-label {
+ margin: 0 !important;
+ white-space: nowrap;
+ cursor: pointer;
+}
+
+.create-list-input-group {
+ display: flex;
+ flex-wrap: nowrap !important;
+ align-items: stretch;
+ gap: 0 !important;
+}
+
+.create-list-input-group > .form-control {
+ flex: 1 1 auto !important;
+ width: 1% !important;
+ min-width: 0 !important;
+ border-top-right-radius: 0 !important;
+ border-bottom-right-radius: 0 !important;
+}
+
+.create-list-input-group > .create-list-temp-toggle,
+.create-list-input-group > #tempToggle {
+ flex: 0 0 auto !important;
+ width: auto !important;
+ min-width: 10rem;
+ margin-left: -1px;
+ font-weight: 600;
+ white-space: nowrap;
+ border-top-left-radius: 0 !important;
+ border-bottom-left-radius: 0 !important;
+ border-top-right-radius: 14px !important;
+ border-bottom-right-radius: 14px !important;
+ background: rgba(255,255,255,0.03) !important;
+ border-color: var(--app-border) !important;
+ color: var(--app-text) !important;
+ transition: background-color .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease;
+}
+
+.create-list-input-group > .create-list-temp-toggle.is-active,
+.create-list-input-group > #tempToggle.is-active {
+ background: rgba(41, 209, 125, 0.16) !important;
+ border-color: rgba(41, 209, 125, 0.72) !important;
+ color: #9bf0c1 !important;
+ box-shadow: inset 0 0 0 1px rgba(41, 209, 125, 0.15);
+}
+
+.create-list-input-group > .create-list-temp-toggle:hover,
+.create-list-input-group > #tempToggle:hover,
+.create-list-input-group > .create-list-temp-toggle:focus,
+.create-list-input-group > #tempToggle:focus {
+ background: rgba(255,255,255,0.06) !important;
+ color: var(--app-text) !important;
+}
+
+.create-list-input-group > .create-list-temp-toggle.is-active:hover,
+.create-list-input-group > #tempToggle.is-active:hover,
+.create-list-input-group > .create-list-temp-toggle.is-active:focus,
+.create-list-input-group > #tempToggle.is-active:focus {
+ background: rgba(41, 209, 125, 0.2) !important;
+ color: #b7f7d2 !important;
+}
+
+.endpoint-edit_my_list .switch-grid {
+ grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
+}
+
+.endpoint-edit_my_list .switch-grid .app-switch,
+.endpoint-admin_edit_list .switch-grid .app-switch {
+ width: 100%;
+ min-height: 3.35rem;
+}
+
+@media (max-width: 767.98px) {
+ .hide-purchased-switch {
+ padding-left: 2.95rem;
+ }
+
+ .hide-purchased-switch.form-check.app-switch {
+ width: 100%;
+ }
+
+ .switch-grid,
+ .endpoint-edit_my_list .switch-grid {
+ grid-template-columns: 1fr;
+ }
+
+ .create-list-input-group {
+ gap: 0 !important;
+ }
+
+ .create-list-input-group > .form-control {
+ padding-left: .9rem;
+ padding-right: .75rem;
+ }
+
+ .create-list-input-group > .create-list-temp-toggle,
+ .create-list-input-group > #tempToggle {
+ min-width: 8.75rem;
+ padding-left: .85rem;
+ padding-right: .85rem;
+ font-size: .92rem;
+ letter-spacing: 0;
+ }
+}
diff --git a/shopping_app/static/css/split/responsive.css b/shopping_app/static/css/split/responsive.css
new file mode 100644
index 0000000..9c01677
--- /dev/null
+++ b/shopping_app/static/css/split/responsive.css
@@ -0,0 +1,895 @@
+.app-navbar__meta--mobile {
+ display: none;
+}
+
+.app-user-chip--mobile {
+ max-width: min(46vw, 15rem);
+ min-width: 0;
+ padding-left: .6rem;
+ padding-right: .4rem;
+}
+
+.app-user-chip--mobile .badge {
+ max-width: 100%;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+@media (max-width: 991.98px) {
+ .app-header {
+ padding-top: .55rem;
+ }
+
+ .app-navbar .container-xxl {
+ display: grid;
+ grid-template-columns: minmax(0, 1fr) auto auto;
+ align-items: center;
+ gap: .6rem;
+ border-radius: 26px;
+ padding-top: .8rem;
+ padding-bottom: .8rem;
+ }
+
+ .app-navbar__meta {
+ display: none;
+ }
+
+ .app-brand {
+ overflow: hidden;
+ }
+
+ .app-brand > span:last-child {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+
+ .app-brand__title,
+ .app-brand__accent {
+ font-size: 1rem;
+ }
+
+ .app-navbar__meta--mobile {
+ display: flex !important;
+ width: auto;
+ justify-content: flex-end;
+ justify-self: end;
+ grid-column: 2;
+ min-width: 0;
+ max-width: min(42vw, 12rem);
+ }
+
+ .app-user-chip--mobile {
+ display: inline-flex;
+ }
+
+ .app-mobile-menu {
+ grid-column: 3;
+ justify-self: end;
+ }
+}
+
+@media (max-width: 575.98px) {
+ .app-brand__icon {
+ width: 2.25rem;
+ height: 2.25rem;
+ }
+
+ .app-user-chip--mobile {
+ gap: .35rem;
+ padding: .34rem .38rem .34rem .5rem;
+ }
+
+ .app-user-chip--mobile .app-user-chip__label {
+ font-size: .62rem;
+ letter-spacing: .05em;
+ }
+
+ .app-user-chip--mobile .badge {
+ font-size: .72rem;
+ max-width: 5.9rem;
+ }
+}
+
+@media (max-width: 430px) {
+ .app-navbar .container-xxl {
+ grid-template-columns: minmax(0, 1fr) auto auto;
+ gap: .45rem;
+ }
+
+ .app-user-chip--mobile {
+ max-width: min(38vw, 8.5rem);
+ }
+
+ .app-user-chip--mobile .app-user-chip__label {
+ display: none;
+ }
+}
+
+.endpoint-main_page .list-group-item {
+ display: flex;
+ flex-direction: column;
+ align-items: stretch;
+ justify-content: flex-start;
+}
+
+.endpoint-main_page .main-list-progress-wrap {
+ display: block;
+ width: 100%;
+ flex: 0 0 100%;
+ margin-top: 0.8rem !important;
+}
+
+.endpoint-main_page .list-group-item > .main-list-row + .main-list-progress-wrap {
+ align-self: stretch;
+}
+
+.endpoint-main_page .main-list-progress {
+ width: 100%;
+ height: 16px;
+ margin-top: 0 !important;
+ border: 1px solid rgba(255, 255, 255, 0.08);
+ background:
+ linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02)),
+ var(--dark-700) !important;
+ box-shadow:
+ inset 0 1px 0 rgba(255, 255, 255, 0.05),
+ 0 4px 10px rgba(0, 0, 0, 0.18);
+}
+
+.endpoint-main_page .main-list-progress .progress-bar.bg-success {
+ background: linear-gradient(135deg, rgba(40, 199, 111, 0.98), rgba(22, 163, 74, 0.98)) !important;
+}
+
+.endpoint-main_page .main-list-progress .progress-bar.bg-warning {
+ background: linear-gradient(135deg, rgba(245, 189, 65, 0.98), rgba(217, 119, 6, 0.98)) !important;
+}
+
+.endpoint-main_page .main-list-progress .progress-bar.bg-transparent {
+ background: rgba(255, 255, 255, 0.08) !important;
+}
+
+.endpoint-main_page .main-list-progress__label {
+ max-width: calc(100% - 0.85rem);
+ padding: 0 0.45rem;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ text-align: center;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.45);
+ letter-spacing: 0.01em;
+}
+
+@media (max-width: 575.98px) {
+ .endpoint-main_page .main-list-progress {
+ height: 15px;
+ }
+
+ .endpoint-main_page .main-list-progress__label {
+ font-size: 0.64rem;
+ }
+}
+
+.endpoint-main_page #mainStatsCollapse.collapsing,
+.endpoint-main_page #mainStatsCollapse.show {
+ overflow: visible;
+}
+
+.endpoint-main_page .main-summary-card {
+ height: 100%;
+ padding: 1rem 1rem 1.05rem;
+ border-radius: 1rem;
+ border: 1px solid rgba(255, 255, 255, 0.08);
+ background: linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.02)), rgba(9, 16, 28, 0.88);
+ box-shadow: 0 12px 28px rgba(0, 0, 0, 0.2);
+}
+
+.endpoint-main_page .main-summary-card__eyebrow {
+ font-size: 0.72rem;
+ text-transform: uppercase;
+ letter-spacing: 0.08em;
+ color: rgba(255, 255, 255, 0.65);
+ margin-bottom: 0.2rem;
+}
+
+.endpoint-main_page .main-summary-card__title {
+ font-size: 1.05rem;
+}
+
+.endpoint-main_page .main-summary-stats {
+ display: grid;
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ gap: 0.7rem;
+}
+
+.endpoint-main_page .main-summary-stat {
+ padding: 0.65rem 0.75rem;
+ border-radius: 0.85rem;
+ background: rgba(255, 255, 255, 0.04);
+ border: 1px solid rgba(255, 255, 255, 0.06);
+}
+
+.endpoint-main_page .main-summary-stat__label {
+ display: block;
+ font-size: 0.73rem;
+ color: rgba(255, 255, 255, 0.66);
+ margin-bottom: 0.15rem;
+}
+
+@media (max-width: 575.98px) {
+ .endpoint-main_page .main-summary-card {
+ padding: 0.9rem;
+ }
+
+ .endpoint-main_page .main-summary-stats {
+ grid-template-columns: 1fr;
+ }
+}
+
+@media (max-width: 575.98px) {
+ .endpoint-list_share .shopping-item-head,
+ .endpoint-shared_list .shopping-item-head {
+ display: grid;
+ grid-template-columns: minmax(0, 1fr) auto;
+ align-items: start;
+ column-gap: .45rem;
+ }
+
+ .endpoint-list_share .shopping-item-actions,
+ .endpoint-shared_list .shopping-item-actions {
+ align-self: start;
+ margin-left: 0;
+ justify-self: end;
+ }
+}
+
+@media (max-width: 575.98px) {
+ .endpoint-list_share .shopping-item-main,
+ .endpoint-shared_list .shopping-item-main {
+ align-items: center;
+ }
+
+ .endpoint-list_share .shopping-item-text,
+ .endpoint-shared_list .shopping-item-text,
+ .endpoint-list_share .shopping-item-main > .large-checkbox,
+ .endpoint-shared_list .shopping-item-main > .large-checkbox,
+ .endpoint-list_share .shopping-item-actions,
+ .endpoint-shared_list .shopping-item-actions {
+ align-self: center;
+ }
+
+ .endpoint-list_share .shopping-item-actions,
+ .endpoint-shared_list .shopping-item-actions {
+ margin-left: auto;
+ justify-self: auto;
+ }
+}
+
+.endpoint-list #items,
+.endpoint-view_list #items,
+.endpoint-list_share #items,
+.endpoint-shared_list #items {
+ display: flex;
+ flex-direction: column;
+}
+
+.endpoint-list #items > .list-group-item,
+.endpoint-view_list #items > .list-group-item,
+.endpoint-list_share #items > .list-group-item,
+.endpoint-shared_list #items > .list-group-item {
+ margin: 0 !important;
+ border-width: 1px !important;
+ box-shadow: 0 4px 14px rgba(0,0,0,0.12) !important;
+ background-clip: padding-box;
+}
+
+.endpoint-list #items > .list-group-item + .list-group-item,
+.endpoint-view_list #items > .list-group-item + .list-group-item,
+.endpoint-list_share #items > .list-group-item + .list-group-item,
+.endpoint-shared_list #items > .list-group-item + .list-group-item {
+ margin-top: 0 !important;
+ border-top-width: 1px !important;
+}
+
+@media (max-width: 767.98px){
+ .endpoint-list_share #items .list-group-item,
+ .endpoint-shared_list #items .list-group-item {
+ align-items: flex-start;
+ }
+ .endpoint-list_share .list-item-actions,
+ .endpoint-shared_list .list-item-actions {
+ width: 100%;
+ margin-left: 0;
+ justify-content: flex-start;
+ }
+}
+
+@media (max-width: 767.98px){
+ .share-page-toolbar {
+ justify-content: stretch;
+ }
+
+ .share-page-toolbar__spacer {
+ display: none;
+ }
+
+ .switch-grid,
+ .endpoint-edit_my_list .switch-grid {
+ grid-template-columns: 1fr;
+ }
+}
+
+@media (max-width: 991.98px){
+ .endpoint-admin_templates .table-responsive > table.table {
+ width: max-content !important;
+ min-width: 900px !important;
+ }
+}
+
+@media (max-width: 576px){
+ .mobile-list-heading {
+ display: inline-flex;
+ max-width: 100%;
+ }
+
+ .mobile-list-heading__title {
+ max-width: 100%;
+ }
+}
+
+@media (max-width: 575.98px){
+ .endpoint-main_page .list-group-item > .main-list-row {
+ flex-direction: column;
+ align-items: stretch;
+ }
+
+ .endpoint-main_page .list-main-actions {
+ width: 100%;
+ }
+}
+
+@media (max-width: 575.98px){
+ .endpoint-main_page .list-group-item > .main-list-row {
+ flex-direction: row;
+ align-items: center;
+ }
+
+ .endpoint-main_page .list-main-actions {
+ width: auto;
+ margin-left: auto;
+ }
+
+ .endpoint-main_page .list-main-actions .btn {
+ padding: .38rem .52rem;
+ min-width: 2.35rem;
+ }
+
+ .endpoint-main_page .list-main-title {
+ display: flex;
+ flex-wrap: wrap;
+ gap: .15rem;
+ }
+
+ .endpoint-main_page .list-main-meta {
+ flex: 1 1 auto;
+ min-width: 0;
+ }
+
+ .endpoint-main_page .list-main-title__link {
+ min-width: 0;
+ max-width: 100%;
+ }
+
+ .shopping-item-row {
+ align-items: flex-start !important;
+ }
+
+ .shopping-item-actions {
+ width: auto;
+ margin-top: 0;
+ margin-left: auto;
+ justify-content: flex-end;
+ }
+
+ .shopping-item-actions .btn {
+ min-width: 2.35rem;
+ padding: .38rem .52rem;
+ }
+
+ .shopping-compact-input-group {
+ display: flex;
+ }
+
+ .shopping-compact-input-group > .form-control {
+ min-width: 0;
+ }
+
+ .shopping-qty-input {
+ flex-basis: 4rem;
+ max-width: 4rem;
+ }
+
+ .shopping-compact-submit {
+ min-width: auto;
+ padding-left: .8rem;
+ padding-right: .8rem;
+ }
+
+ .ui-password-group > .ui-password-toggle {
+ min-width: 2.75rem;
+ padding-left: .7rem;
+ padding-right: .7rem;
+ }
+}
+
+@media (max-width: 575.98px){
+ .shopping-item-main {
+ gap: .55rem;
+ }
+
+ .shopping-item-head {
+ gap: .45rem;
+ }
+
+ .shopping-item-actions {
+ margin-left: auto;
+ align-self: flex-start;
+ }
+
+ .shopping-item-actions .btn {
+ min-width: 2.2rem;
+ padding: .34rem .48rem;
+ }
+
+ .shopping-product-input-group > .shopping-product-name-input,
+ .shopping-expense-input-group > .shopping-expense-amount-input {
+ flex: 0 0 60%;
+ min-width: 0;
+ }
+
+ .shopping-product-input-group > .shopping-qty-input {
+ flex: 0 0 15%;
+ max-width: 15%;
+ min-width: 0;
+ }
+
+ .shopping-product-input-group > .shopping-compact-submit {
+ flex: 0 0 25%;
+ width: 25%;
+ min-width: 0;
+ padding-left: .55rem;
+ padding-right: .55rem;
+ font-size: .95rem;
+ }
+
+ .shopping-expense-input-group > .shopping-compact-submit {
+ padding-left: .7rem;
+ padding-right: .7rem;
+ }
+
+ .list-toolbar {
+ align-items: flex-start !important;
+ }
+
+ .list-toolbar__sort {
+ flex: 0 0 auto;
+ }
+}
+
+@media (max-width: 767.98px){
+ .endpoint-list .shopping-product-input-group,
+ .endpoint-list_share .shopping-product-input-group,
+ .endpoint-shared_list .shopping-product-input-group,
+ .endpoint-list .shopping-expense-input-group,
+ .endpoint-list_share .shopping-expense-input-group,
+ .endpoint-shared_list .shopping-expense-input-group {
+ width: 100%;
+ }
+
+ .endpoint-list .shopping-product-input-group > .shopping-product-name-input,
+ .endpoint-list_share .shopping-product-input-group > .shopping-product-name-input,
+ .endpoint-shared_list .shopping-product-input-group > .shopping-product-name-input {
+ flex: 0 0 60% !important;
+ max-width: 60% !important;
+ min-width: 0;
+ }
+
+ .endpoint-list .shopping-product-input-group > .shopping-qty-input,
+ .endpoint-list_share .shopping-product-input-group > .shopping-qty-input,
+ .endpoint-shared_list .shopping-product-input-group > .shopping-qty-input {
+ flex: 0 0 15% !important;
+ max-width: 15% !important;
+ min-width: 0;
+ padding-left: .35rem;
+ padding-right: .35rem;
+ }
+
+ .endpoint-list .shopping-product-input-group > .shopping-compact-submit,
+ .endpoint-list_share .shopping-product-input-group > .shopping-compact-submit,
+ .endpoint-shared_list .shopping-product-input-group > .shopping-compact-submit {
+ flex: 0 0 25% !important;
+ width: 25% !important;
+ min-width: 0 !important;
+ padding-left: .4rem;
+ padding-right: .4rem;
+ }
+
+ .endpoint-list .shopping-expense-input-group > .shopping-expense-amount-input,
+ .endpoint-list_share .shopping-expense-input-group > .shopping-expense-amount-input,
+ .endpoint-shared_list .shopping-expense-input-group > .shopping-expense-amount-input {
+ flex: 1 1 auto !important;
+ min-width: 0;
+ }
+
+ .endpoint-list .shopping-expense-input-group > .shopping-compact-submit,
+ .endpoint-list_share .shopping-expense-input-group > .shopping-compact-submit,
+ .endpoint-shared_list .shopping-expense-input-group > .shopping-compact-submit {
+ flex: 0 0 5rem !important;
+ width: 5rem !important;
+ min-width: 5rem !important;
+ padding-left: .35rem;
+ padding-right: .35rem;
+ }
+
+ .endpoint-list .shopping-product-input-group > .shopping-compact-submit .shopping-btn-label,
+ .endpoint-list_share .shopping-product-input-group > .shopping-compact-submit .shopping-btn-label,
+ .endpoint-shared_list .shopping-product-input-group > .shopping-compact-submit .shopping-btn-label,
+ .endpoint-list .shopping-expense-input-group > .shopping-compact-submit .shopping-btn-label,
+ .endpoint-list_share .shopping-expense-input-group > .shopping-compact-submit .shopping-btn-label,
+ .endpoint-shared_list .shopping-expense-input-group > .shopping-compact-submit .shopping-btn-label {
+ display: none;
+ }
+
+ .endpoint-list .shopping-product-input-group > .shopping-compact-submit .shopping-btn-icon,
+ .endpoint-list_share .shopping-product-input-group > .shopping-compact-submit .shopping-btn-icon,
+ .endpoint-shared_list .shopping-product-input-group > .shopping-compact-submit .shopping-btn-icon,
+ .endpoint-list .shopping-expense-input-group > .shopping-compact-submit .shopping-btn-icon,
+ .endpoint-list_share .shopping-expense-input-group > .shopping-compact-submit .shopping-btn-icon,
+ .endpoint-shared_list .shopping-expense-input-group > .shopping-compact-submit .shopping-btn-icon {
+ margin: 0;
+ font-size: 1rem;
+ }
+}
+
+@media (max-width: 767.98px){
+ .endpoint-view_list .shopping-product-input-group > .shopping-product-name-input {
+ flex: 0 0 60% !important;
+ max-width: 60% !important;
+ min-width: 0;
+ }
+
+ .endpoint-view_list .shopping-product-input-group > .shopping-qty-input {
+ flex: 0 0 15% !important;
+ max-width: 15% !important;
+ min-width: 0;
+ padding-left: .35rem;
+ padding-right: .35rem;
+ }
+
+ .endpoint-view_list .shopping-product-input-group > .shopping-compact-submit {
+ flex: 0 0 25% !important;
+ width: 25% !important;
+ min-width: 0 !important;
+ padding-left: .4rem;
+ padding-right: .4rem;
+ }
+
+ .endpoint-view_list .shopping-expense-input-group > .shopping-expense-amount-input {
+ flex: 1 1 auto !important;
+ min-width: 0;
+ }
+
+ .endpoint-view_list .shopping-expense-input-group > .shopping-compact-submit {
+ flex: 0 0 5rem !important;
+ width: 5rem !important;
+ min-width: 5rem !important;
+ padding-left: .35rem;
+ padding-right: .35rem;
+ }
+
+ .endpoint-view_list .shopping-product-input-group > .shopping-compact-submit .shopping-btn-label,
+ .endpoint-view_list .shopping-expense-input-group > .shopping-compact-submit .shopping-btn-label {
+ display: none;
+ }
+
+ .endpoint-view_list .shopping-product-input-group > .shopping-compact-submit .shopping-btn-icon,
+ .endpoint-view_list .shopping-expense-input-group > .shopping-compact-submit .shopping-btn-icon {
+ margin: 0;
+ font-size: 1rem;
+ }
+}
+
+@media (max-width: 575.98px){
+ .shopping-item-head {
+ flex-wrap: wrap;
+ align-items: flex-start;
+ }
+
+ .shopping-item-text {
+ flex: 1 1 100%;
+ min-width: 0;
+ }
+
+ .shopping-item-actions {
+ width: 100%;
+ margin-left: 0;
+ justify-content: flex-end;
+ }
+}
+
+@media (max-width: 575.98px){
+ .shopping-item-main {
+ align-items: center;
+ }
+
+ .shopping-item-head {
+ flex-wrap: nowrap;
+ align-items: center;
+ gap: .4rem;
+ }
+
+ .shopping-item-text {
+ flex: 1 1 auto;
+ min-width: 0;
+ gap: .25rem;
+ }
+
+ .shopping-item-actions {
+ width: auto;
+ margin-left: auto;
+ gap: .25rem;
+ }
+
+ .shopping-item-actions .btn {
+ min-width: 2rem;
+ padding: .3rem .42rem;
+ }
+
+ .hide-purchased-switch--right {
+ width: auto;
+ max-width: 100%;
+ }
+
+ .list-action-row {
+ gap: .5rem;
+ }
+
+ .list-action-row > .list-action-row__btn,
+ .list-action-row__form {
+ flex: 1 1 50%;
+ min-width: 0;
+ }
+
+ .list-action-row__btn {
+ padding-left: .55rem;
+ padding-right: .55rem;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+}
+
+@media (max-width: 575.98px){
+ .endpoint-view_list .list-toolbar {
+ display: grid !important;
+ grid-template-columns: minmax(0, 1fr) auto;
+ align-items: center !important;
+ gap: .4rem !important;
+ flex-wrap: nowrap !important;
+ }
+
+ .endpoint-view_list .list-toolbar__sort.btn {
+ min-width: 0;
+ padding: .35rem .55rem;
+ font-size: .82rem;
+ }
+
+ .endpoint-view_list .hide-purchased-switch--right {
+ min-width: 0;
+ gap: .25rem;
+ font-size: .82rem;
+ }
+
+ .endpoint-view_list .hide-purchased-switch--right .form-check-label {
+ margin-left: .25rem !important;
+ white-space: nowrap;
+ }
+
+ .endpoint-view_list .hide-purchased-switch--right .form-check-input {
+ transform: scale(.92);
+ transform-origin: center;
+ }
+
+ .list-header-toolbar {
+ align-items: flex-start !important;
+ }
+
+ .list-header-toolbar .list-toolbar {
+ width: 100%;
+ justify-content: flex-end !important;
+ }
+}
+
+@media (max-width: 575.98px){
+ .endpoint-list_share .shopping-item-main,
+ .endpoint-shared_list .shopping-item-main,
+ .endpoint-view_list .shopping-item-main,
+ .endpoint-list .shopping-item-main {
+ gap: .55rem;
+ }
+
+ .endpoint-list_share .shopping-item-head,
+ .endpoint-shared_list .shopping-item-head,
+ .endpoint-view_list .shopping-item-head,
+ .endpoint-list .shopping-item-head {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ gap: .45rem;
+ }
+
+ .endpoint-list_share .shopping-item-text,
+ .endpoint-shared_list .shopping-item-text,
+ .endpoint-view_list .shopping-item-text,
+ .endpoint-list .shopping-item-text {
+ flex: 1 1 auto;
+ min-width: 0;
+ gap: .25rem;
+ }
+
+ .endpoint-list_share .shopping-item-actions,
+ .endpoint-shared_list .shopping-item-actions,
+ .endpoint-view_list .shopping-item-actions,
+ .endpoint-list .shopping-item-actions {
+ align-self: start;
+ width: auto;
+ margin-left: auto;
+ gap: .25rem;
+ }
+
+ .endpoint-list_share .shopping-item-actions .btn,
+ .endpoint-shared_list .shopping-item-actions .btn {
+ min-width: 2rem;
+ padding: .3rem .42rem;
+ }
+}
+
+@media (max-width: 575.98px){
+ .endpoint-list_share .shopping-action-btn,
+ .endpoint-shared_list .shopping-action-btn,
+ .endpoint-view_list .shopping-action-btn,
+ .endpoint-list .shopping-action-btn {
+ width: 2.15rem !important;
+ height: 2.15rem !important;
+ min-width: 2.15rem !important;
+ min-height: 2.15rem !important;
+ border-radius: .65rem !important;
+ }
+
+ .endpoint-list_share .shopping-action-btn--wide,
+ .endpoint-shared_list .shopping-action-btn--wide,
+ .endpoint-view_list .shopping-action-btn--wide,
+ .endpoint-list .shopping-action-btn--wide {
+ min-width: 5.4rem !important;
+ padding: 0 .72rem !important;
+ }
+}
+
+@media (max-width: 575.98px){
+ .endpoint-list_share .shopping-action-btn--countdown,
+ .endpoint-shared_list .shopping-action-btn--countdown,
+ .endpoint-view_list .shopping-action-btn--countdown,
+ .endpoint-list .shopping-action-btn--countdown {
+ min-width: 3rem !important;
+ padding: 0 .55rem !important;
+ }
+}
+
+@media (max-width: 575.98px) {
+ .ui-password-group > .ui-password-toggle {
+ flex-basis: 44px !important;
+ width: 44px !important;
+ min-width: 44px !important;
+ }
+}
+
+@media (max-width: 767.98px) {
+ .endpoint-list .shopping-entry-card,
+ .endpoint-list_share .shopping-entry-card,
+ .endpoint-shared_list .shopping-entry-card,
+ .endpoint-view_list .shopping-entry-card {
+ padding: .8rem;
+ border-radius: .95rem;
+ }
+
+ .endpoint-list .shopping-entry-card__label,
+ .endpoint-list_share .shopping-entry-card__label,
+ .endpoint-shared_list .shopping-entry-card__label,
+ .endpoint-view_list .shopping-entry-card__label {
+ font-size: .92rem;
+ }
+
+ .endpoint-list .shopping-entry-card__hint,
+ .endpoint-list_share .shopping-entry-card__hint,
+ .endpoint-shared_list .shopping-entry-card__hint,
+ .endpoint-view_list .shopping-entry-card__hint {
+ font-size: .78rem;
+ margin-bottom: .65rem;
+ }
+}
+
+@media (max-width: 767.98px) {
+ .endpoint-expenses .expenses-range-toolbar {
+ justify-content: stretch !important;
+ overflow: visible;
+ padding-bottom: 0;
+ }
+
+ .endpoint-expenses .expenses-range-group {
+ display: grid !important;
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ gap: 0.55rem;
+ width: 100%;
+ min-width: 0;
+ }
+
+ .endpoint-expenses .expenses-table-toolbar .expenses-range-group {
+ grid-template-columns: repeat(3, minmax(0, 1fr));
+ }
+
+ .endpoint-expenses .expenses-range-group > .btn {
+ flex: initial !important;
+ width: 100%;
+ min-width: 0;
+ padding-inline: 0.55rem;
+ font-size: 0.95rem;
+ }
+
+ .endpoint-expenses .expenses-date-range {
+ display: grid !important;
+ grid-template-columns: 52px minmax(0, 1fr);
+ gap: 0.55rem;
+ width: 100%;
+ max-width: 100% !important;
+ flex-wrap: wrap !important;
+ }
+
+ .endpoint-expenses .expenses-date-range > .input-group-text,
+ .endpoint-expenses .expenses-date-range > .form-control,
+ .endpoint-expenses .expenses-date-range > .btn {
+ width: 100% !important;
+ min-width: 0 !important;
+ flex: initial !important;
+ border-radius: 0.85rem !important;
+ }
+
+ .endpoint-expenses .expenses-date-range > .btn {
+ grid-column: 1 / -1;
+ }
+}
+
+@media (max-width: 767.98px) {
+ .list-quick-actions {
+ padding: .9rem;
+ gap: .75rem;
+ }
+
+ .list-quick-actions__header {
+ flex-direction: column;
+ gap: .35rem;
+ }
+
+ .list-quick-actions__hint {
+ max-width: none;
+ text-align: left;
+ }
+
+ .list-quick-actions__grid {
+ grid-template-columns: 1fr;
+ }
+
+ .list-quick-actions__action.btn {
+ min-height: 72px;
+ padding: .85rem .9rem;
+ }
+}
diff --git a/shopping_app/static/css/split/split_all.zip b/shopping_app/static/css/split/split_all.zip
new file mode 100644
index 0000000..695e775
Binary files /dev/null and b/shopping_app/static/css/split/split_all.zip differ
diff --git a/shopping_app/static/css/split/01-base.css b/shopping_app/static/css/split/theme.css
similarity index 62%
rename from shopping_app/static/css/split/01-base.css
rename to shopping_app/static/css/split/theme.css
index 7035b26..8daab0f 100644
--- a/shopping_app/static/css/split/01-base.css
+++ b/shopping_app/static/css/split/theme.css
@@ -1,8 +1,4 @@
-/* =========================================================
- Variables (single source of truth)
-========================================================= */
:root {
- /* brand / info */
--primary: #184076;
--primary-border: #153866;
--primary-text: #e6f0ff;
@@ -11,22 +7,18 @@
--info-border: var(--primary-border);
--info-text: var(--primary-text);
- /* success */
--success: #1c6930;
--success-border: #165024;
--success-text: #eaffea;
- /* warning */
--warning: #665c1e;
--warning-border: #4d4415;
--warning-text: #fffbe5;
- /* danger */
--danger: #6e1a1e;
--danger-border: #531417;
--danger-text: #ffeaea;
- /* neutrals / dark */
--dark-900: #181a1b;
--dark-800: #1c1f22;
--dark-750: #1f2225;
@@ -47,6 +39,42 @@
--text-dim: #e1e1e1;
--muted: #6c757d;
- /* defaults */
--progress-default: #3d7bd6;
}
+
+.clickable-item {
+ cursor: pointer;
+}
+
+.progress-thin {
+ height: 12px;
+}
+
+.item-not-checked {
+ background-color: var(--dark-500) !important;
+ color: #fff !important;
+}
+
+#empty-placeholder {
+ font-style: italic;
+ pointer-events: none;
+}
+
+.fade-out {
+ opacity: 0;
+ transition: opacity 0.5s ease;
+}
+
+@media (pointer: fine){
+ .only-mobile {
+ display: none !important;
+ }
+}
+
+.bg-success {
+ background-color: var(--success) !important;
+}
+
+.bg-warning {
+ background-color: var(--warning) !important;
+}
diff --git a/shopping_app/static/css/style.css b/shopping_app/static/css/style.css
deleted file mode 100644
index 3d649c2..0000000
--- a/shopping_app/static/css/style.css
+++ /dev/null
@@ -1,6041 +0,0 @@
-/* =========================================================
- Variables (single source of truth)
-========================================================= */
-:root {
- /* brand / info */
- --primary: #184076;
- --primary-border: #153866;
- --primary-text: #e6f0ff;
-
- --info: var(--primary);
- --info-border: var(--primary-border);
- --info-text: var(--primary-text);
-
- /* success */
- --success: #1c6930;
- --success-border: #165024;
- --success-text: #eaffea;
-
- /* warning */
- --warning: #665c1e;
- --warning-border: #4d4415;
- --warning-text: #fffbe5;
-
- /* danger */
- --danger: #6e1a1e;
- --danger-border: #531417;
- --danger-text: #ffeaea;
-
- /* neutrals / dark */
- --dark-900: #181a1b;
- --dark-800: #1c1f22;
- --dark-750: #1f2225;
- --dark-700: #212529;
- --dark-650: #23272a;
- --dark-600: #2a2d31;
- --dark-550: #2b2f33;
- --dark-500: #2c2f33;
- --dark-480: #2c3034;
- --dark-470: #2a2d31;
- --dark-450: #3a3f44;
- --dark-400: #343a40;
- --dark-350: #3d4248;
- --dark-300: #495057;
-
- --text-strong: #f8f9fa;
- --text: #e2e3e5;
- --text-dim: #e1e1e1;
- --muted: #6c757d;
-
- /* defaults */
- --progress-default: #3d7bd6;
-}
-
-/* =========================================================
- Utilities & Sizes
-========================================================= */
-
-.large-checkbox {
- width: 1.5em;
- height: 1.5em;
-}
-
-.clickable-item {
- cursor: pointer;
-}
-
-.progress-thin {
- height: 12px;
-}
-
-.item-not-checked {
- background-color: var(--dark-500) !important;
- color: #fff !important;
-}
-
-#empty-placeholder {
- font-style: italic;
- pointer-events: none;
-}
-
-.fade-out {
- opacity: 0;
- transition: opacity 0.5s ease;
-}
-
-@media (pointer: fine) {
- .only-mobile {
- display: none !important;
- }
-}
-
-/* Bootstrap bg overrides via variables */
-.bg-success {
- background-color: var(--success) !important;
-}
-
-.bg-warning {
- background-color: var(--warning) !important;
-}
-
-/* =========================================================
- Buttons
-========================================================= */
-/* Primary */
-.btn-primary {
- background-color: var(--primary) !important;
- border-color: var(--primary-border) !important;
-}
-
-.btn-primary:hover,
-.btn-primary:focus,
-.btn-primary:active {
- background-color: #13315f !important;
- border-color: #10284f !important;
-}
-
-/* Success */
-.btn-success {
- background-color: var(--success) !important;
- border-color: var(--success-border) !important;
- color: #fff !important;
-}
-
-.btn-success:hover,
-.btn-success:focus,
-.btn-success:active {
- background-color: #155627 !important;
- border-color: #124521 !important;
- color: #fff !important;
-}
-
-/* Warning */
-.btn-warning {
- background-color: var(--warning) !important;
- border-color: var(--warning-border) !important;
- color: var(--warning-text) !important;
-}
-
-.btn-warning:hover,
-.btn-warning:focus,
-.btn-warning:active {
- background-color: #5c4c17 !important;
- border-color: #3e3610 !important;
- color: var(--warning-text) !important;
-}
-
-/* Outline */
-.btn-outline-success {
- color: var(--success) !important;
- border-color: var(--success) !important;
-}
-
-.btn-outline-success:hover,
-.btn-outline-success:focus,
-.btn-outline-success:active {
- background-color: var(--success) !important;
- border-color: var(--success-border) !important;
- color: #fff !important;
-}
-
-.btn-outline-warning {
- color: #d9c97a !important;
- border-color: var(--warning) !important;
-}
-
-.btn-outline-warning:hover,
-.btn-outline-warning:focus,
-.btn-outline-warning:active {
- background-color: var(--warning) !important;
- border-color: var(--warning-border) !important;
- color: var(--warning-text) !important;
-}
-
-/* File input button */
-input[type="file"]::file-selector-button {
- background-color: #1b4a29;
- color: #f0f0f0;
- border: none;
- padding: .5em 1em;
- border-radius: 4px;
- font-weight: bold;
- cursor: pointer;
- transition: background .2s;
-}
-
-/* =========================================================
- Forms
-========================================================= */
-.form-select,
-.form-control,
-textarea.form-control {
- background-color: var(--dark-700) !important;
- color: var(--text-strong) !important;
- border: 1px solid var(--dark-300) !important;
-}
-
-.form-select:focus,
-.form-control:focus,
-textarea.form-control:focus {
- background-color: var(--dark-800) !important;
- border-color: var(--primary) !important;
- color: #fff !important;
- box-shadow: 0 0 0 .25rem rgba(24, 64, 118, .35) !important;
-}
-
-.form-control:disabled,
-textarea.form-control:disabled {
- background-color: var(--dark-550) !important;
- color: var(--muted) !important;
- cursor: not-allowed;
-}
-
-/* Switch */
-.form-switch .form-check-input {
- background-color: var(--dark-400) !important;
- border-color: var(--dark-300) !important;
-}
-
-.form-switch .form-check-input:checked {
- background-color: var(--primary) !important;
- border-color: var(--primary-border) !important;
-}
-
-/* Placeholders */
-.form-control::placeholder,
-.bg-dark .form-control::placeholder {
- color: #aaa !important;
- opacity: 1 !important;
-}
-
-/* Paired corners (utility) */
-#tempToggle {
- border-top-left-radius: 0;
- border-bottom-left-radius: 0;
-}
-
-.create-list-input-group > input.form-control {
- border-top-right-radius: 0;
- border-bottom-right-radius: 0;
-}
-
-/* XXL custom checkbox */
-input[type="checkbox"].large-checkbox {
- appearance: none;
- -webkit-appearance: none;
- -moz-appearance: none;
- width: 1.5em;
- height: 1.5em;
- margin: 0;
- padding: 0;
- outline: none;
- background: none;
- cursor: pointer;
- position: relative;
- vertical-align: middle;
-}
-
-input[type="checkbox"].large-checkbox::before {
- content: '✗';
- color: #dc3545;
- font-size: 1.6em;
- font-weight: 700;
- position: absolute;
- inset: 0;
- display: flex;
- align-items: center;
- justify-content: center;
- line-height: 1;
- transition: color .2s;
-}
-
-input[type="checkbox"].large-checkbox:checked::before {
- content: '✓';
- color: #fff;
-}
-
-input[type="checkbox"].large-checkbox:disabled::before {
- opacity: .5;
- cursor: not-allowed;
-}
-
-input[type="checkbox"].large-checkbox:disabled {
- cursor: not-allowed;
-}
-
-/* Tom-Select / TS */
-.tom-dark .ts-control {
- background-color: var(--dark-700) !important;
- color: #fff !important;
- border: 1px solid var(--dark-300) !important;
- border-radius: .375rem;
- min-height: 38px;
- padding: .25rem .5rem;
- box-sizing: border-box;
-}
-
-.tom-dark .ts-control .item {
- background-color: var(--dark-400) !important;
- color: #fff !important;
- border-radius: .25rem;
- padding: 2px 8px;
- margin-right: 4px;
-}
-
-.ts-dropdown {
- background-color: var(--dark-700) !important;
- color: #fff !important;
- border: 1px solid var(--dark-300);
- border-radius: .375rem;
- z-index: 9999 !important;
- max-height: 300px;
- overflow-y: auto;
-}
-
-.ts-dropdown .active {
- background-color: var(--dark-300) !important;
- color: #fff !important;
-}
-
-td select.tom-dark {
- width: 100%;
- max-width: 100%;
- box-sizing: border-box;
-}
-
-/* =========================================================
- Alerts, Badges, Background helpers
-========================================================= */
-/* Alerts */
-.alert-success {
- background-color: #225d36 !important;
- color: var(--success-text) !important;
- border-color: #174428 !important;
-}
-
-.alert-danger {
- background-color: #7a1f23 !important;
- color: var(--danger-text) !important;
- border-color: #531417 !important;
-}
-
-.alert-info {
- background-color: var(--primary) !important;
- color: var(--primary-text) !important;
- border-color: var(--primary-border) !important;
-}
-
-.alert-warning {
- background-color: var(--warning) !important;
- color: var(--warning-text) !important;
- border-color: var(--warning-border) !important;
-}
-
-.alert-light {
- background-color: #3a3f44 !important;
- color: var(--text-strong) !important;
- border-color: var(--dark-480) !important;
-}
-
-/* Badges */
-.badge.bg-success,
-.badge.text-bg-success {
- background-color: #225d36 !important;
- color: var(--success-text) !important;
-}
-
-.badge.bg-danger,
-.badge.text-bg-danger {
- background-color: #7a1f23 !important;
- color: var(--danger-text) !important;
-}
-
-.badge.bg-info,
-.badge.text-bg-info {
- background-color: #1d3a4d !important;
- color: #eaf6ff !important;
-}
-
-.badge.bg-warning,
-.badge.text-bg-warning {
- background-color: var(--warning) !important;
- color: var(--warning-text) !important;
-}
-
-.badge.bg-secondary,
-.badge.text-bg-secondary {
- background-color: var(--dark-400) !important;
- color: #e2e3e5 !important;
-}
-
-.badge.bg-primary,
-.badge.text-bg-primary {
- background-color: var(--primary) !important;
- color: var(--primary-text) !important;
-}
-
-.badge.bg-light,
-.badge.text-bg-light {
- background-color: var(--dark-350) !important;
- color: #f1f3f5 !important;
-}
-
-.badge.bg-dark,
-.badge.text-bg-dark {
- background-color: var(--dark-900) !important;
- color: var(--text-strong) !important;
-}
-
-/* =========================================================
- Progress
-========================================================= */
-.progress-dark {
- background-color: var(--dark-700) !important;
- border-radius: 20px !important;
- overflow: hidden;
-}
-
-.progress {
- background-color: #2a2d31 !important;
- border-radius: 20px !important;
-}
-
-.progress-bar {
- border-radius: 0 !important;
- transition: width .4s ease, background-color .4s ease;
- background-color: var(--progress-default) !important;
-}
-
-.progress-bar:first-child {
- border-top-left-radius: 20px !important;
- border-bottom-left-radius: 20px !important;
-}
-
-.progress-bar:last-child {
- border-top-right-radius: 20px !important;
- border-bottom-right-radius: 20px !important;
-}
-
-.progress-bar.bg-success {
- background-color: var(--success) !important;
-}
-
-.progress-bar.bg-danger {
- background-color: var(--danger) !important;
-}
-
-.progress-bar.bg-warning {
- background-color: var(--warning) !important;
- color: #fff !important;
-}
-
-.progress-bar.bg-info {
- background-color: #16425a !important;
-}
-
-/* Label (parent must be position-relative) */
-.progress-label {
- position: absolute;
- top: 50%;
- left: 50%;
- transform: translate(-50%, -50%);
- pointer-events: none;
- white-space: nowrap;
-}
-
-/* =========================================================
- Cards & Tables
-========================================================= */
-.card {
- background-color: var(--dark-500) !important;
- border: 1px solid var(--dark-450) !important;
- color: var(--text) !important;
-}
-
-.card-header,
-.card-footer {
- background-color: var(--dark-650) !important;
- border-color: var(--dark-450) !important;
- color: #f1f3f5 !important;
-}
-
-.card .table {
- border-radius: 0 !important;
- overflow: hidden;
- margin-bottom: 0;
-}
-
-.table-responsive {
- overflow-x: auto;
- -webkit-overflow-scrolling: touch;
-}
-
-.table-responsive table {
- min-width: 1000px;
-}
-
-.table-dark.table-striped tbody tr:nth-of-type(odd) {
- background-color: rgba(255, 255, 255, .025);
-}
-
-.table-dark tbody tr:hover {
- background-color: rgba(255, 255, 255, .04);
-}
-
-.table-dark thead th {
- background-color: var(--dark-800);
- color: var(--text-dim);
- font-weight: 500;
- border-bottom: 1px solid var(--dark-450);
-}
-
-.table-dark td,
-.table-dark th {
- padding: .6rem .75rem;
- vertical-align: middle;
- border-top: 1px solid var(--dark-450);
-}
-
-/* =========================================================
- Navs & Pagination
-========================================================= */
-.nav-tabs .nav-link.active,
-.nav-tabs .nav-item.show .nav-link {
- background-color: var(--dark-500) !important;
- color: var(--text-strong) !important;
- border-color: var(--dark-450) var(--dark-450) var(--dark-500) !important;
-}
-
-.page-link {
- color: #e0e0e0 !important;
- background-color: var(--dark-750) !important;
- border: 1px solid var(--dark-450) !important;
-}
-
-.page-link:hover,
-.page-link:focus {
- color: #fff !important;
- background-color: var(--dark-400) !important;
- border-color: var(--dark-300) !important;
-}
-
-.page-item.active .page-link {
- color: #fff !important;
- background-color: var(--primary) !important;
- border-color: var(--primary-border) !important;
-}
-
-.page-item.disabled .page-link {
- color: var(--muted) !important;
- background-color: var(--dark-550) !important;
- border-color: var(--dark-450) !important;
-}
-
-/* =========================================================
- Lists & Misc UI
-========================================================= */
-.list-group-item {
- display: flex;
- align-items: center;
- justify-content: space-between;
-}
-
-/* Zachowaj ostre krawędzie tylko dla list flush (np. w panelach edycji) */
-.list-group-flush > .list-group-item:first-child,
-.list-group-flush > .list-group-item:last-child {
- border-radius: 0 !important;
-}
-
-#items li.hide-purchased {
- display: none !important;
-}
-
-#mass-add-list li {
- transition: background .2s;
-}
-
-#mass-add-list li.active {
- background: #198754 !important;
- color: #fff !important;
- border: 1px solid #000 !important;
-}
-
-.quantity-input {
- width: 60px;
- background: var(--dark-400);
- color: #fff;
- border: 1px solid var(--dark-300);
- border-radius: 4px;
- text-align: center;
-}
-
-.add-btn {
- margin-left: 10px;
-}
-
-.quantity-controls {
- min-width: 120px;
- display: flex;
- align-items: center;
- justify-content: flex-end;
- gap: 4px;
-}
-
-/* =========================================================
- Toasts & Info Bar
-========================================================= */
-.toast {
- animation: fadeInUp .5s ease;
-}
-
-@keyframes fadeInUp {
- from {
- opacity: 0;
- transform: translateY(20px);
- }
-
- to {
- opacity: 1;
- transform: translateY(0);
- }
-}
-
-/* Base toast when not using text-bg-* */
-.toast:not([class*="text-bg-"]) {
- background-color: var(--dark-500) !important;
- color: #f1f1f1 !important;
- border: 1px solid var(--dark-450) !important;
- animation: fadeInUp .5s ease;
-}
-
-.toast .toast-body {
- color: inherit !important;
-}
-
-.toast .btn-close {
- filter: invert(1) grayscale(100%) brightness(200%);
-}
-
-/* Typed toasts (override Bootstrap text-bg-*) */
-.toast.text-bg-primary {
- background-color: var(--info) !important;
- color: var(--info-text) !important;
- border-color: var(--info-border) !important;
-}
-
-.toast.text-bg-info {
- background-color: var(--info) !important;
- color: var(--info-text) !important;
- border-color: var(--info-border) !important;
-}
-
-.toast.text-bg-success {
- background-color: var(--success) !important;
- color: var(--success-text) !important;
- border-color: var(--success-border) !important;
-}
-
-.toast.text-bg-warning {
- background-color: var(--warning) !important;
- color: var(--warning-text) !important;
- border-color: var(--warning-border) !important;
-}
-
-.toast.text-bg-danger {
- background-color: var(--danger) !important;
- color: var(--danger-text) !important;
- border-color: var(--danger-border) !important;
-}
-
-.toast-body {
- color: #fff !important;
- font-weight: 500 !important;
-}
-
-.info-bar-fixed {
- width: 100%;
- color: var(--text-strong);
- background-color: var(--dark-700);
- border-radius: 12px 12px 0 0;
- text-align: center;
- padding: 10px 10px;
- font-size: .95rem;
- box-sizing: border-box;
- margin-top: 2rem;
- box-shadow: 0 -1px 4px rgba(0, 0, 0, .25);
-}
-
-@media (max-width: 768px) {
- .info-bar-fixed {
- position: static;
- font-size: .85rem;
- padding: 8px 4px;
- border-radius: 0;
- }
-}
-
-/* =========================================================
- Modals (incl. fullscreen chart modal)
-========================================================= */
-.modal-content {
- background-color: var(--dark-470) !important;
- color: #f1f1f1 !important;
- border: 1px solid var(--dark-450) !important;
-}
-
-.modal-header,
-.modal-footer {
- background-color: var(--dark-650) !important;
- border-color: var(--dark-450) !important;
-}
-
-/* Fullscreen chart modal */
-#chartFullscreenModal .modal-dialog {
- max-width: 100vw;
- width: 100vw;
- margin: 0;
-}
-
-#chartFullscreenModal .modal-content {
- height: 100vh;
- border-radius: 0;
-}
-
-#chartFullscreenModal .modal-body {
- display: flex;
- flex: 1 1 auto;
- padding: 0;
- overflow: hidden;
-}
-
-#chartFullscreenCanvas {
- display: block;
- width: 100%;
- height: 100%;
-}
-
-/* =========================================================
- Dropdown (TS already above) — active
-========================================================= */
-.ts-dropdown .active {
- background-color: var(--dark-300) !important;
-}
-
-.list-group-item.bg-success {
- background-color: var(--success) !important;
- border-color: var(--success-border) !important;
- color: var(--success-text) !important;
- --bs-bg-opacity: 1 !important;
-}
-
-.list-group-item.bg-warning {
- background-color: var(--warning) !important;
- border-color: var(--warning-border) !important;
- color: var(--warning-text) !important;
- --bs-bg-opacity: 1 !important;
-}
-
-.btn-outline-light {
- color: #f8f9fa !important;
- border-color: #f8f9fa !important;
- background-color: transparent !important;
- /* brak białego tła domyślnie */
-}
-
-.btn-outline-light:hover,
-.btn-outline-light:focus {
- background-color: #6c757d !important;
- /* szare, jak wcześniej */
- color: #fff !important;
- border-color: #6c757d !important;
-}
-
-.btn-outline-light:active,
-.btn-outline-light.active,
-.show>.btn-outline-light.dropdown-toggle {
- background-color: #5a6268 !important;
- /* ciemniejsze szare na active */
- color: #fff !important;
- border-color: #545b62 !important;
-}
-
-.btn-outline-info {
- color: var(--info) !important;
- border-color: var(--info) !important;
- background-color: transparent !important;
-}
-
-.btn-outline-info:hover,
-.btn-outline-info:focus {
- background-color: #1d4d8c !important;
- border-color: #1d4d8c !important;
- color: var(--info-text) !important;
-}
-
-.btn-outline-info:active,
-.btn-outline-info.active,
-.show>.btn-outline-info.dropdown-toggle {
- background-color: var(--info) !important;
- border-color: var(--info-border) !important;
- color: var(--info-text) !important;
-}
-
-/* Tekstowe kolory */
-.text-success {
- color: var(--success) !important;
-}
-
-.text-warning {
- color: var(--warning) !important;
-}
-
-.text-info {
- color: var(--info) !important;
-}
-
-.text-danger {
- color: var(--danger) !important;
-}
-
-
-.settings-category-card {
- background: rgba(255,255,255,.03);
- border: 1px solid rgba(255,255,255,.09);
- border-radius: 16px;
- padding: 1rem;
- height: 100%;
-}
-
-.settings-category-header {
- display: flex;
- align-items: center;
- justify-content: space-between;
- gap: .75rem;
-}
-
-.settings-category-name {
- font-size: 1rem;
- font-weight: 700;
- line-height: 1.2;
-}
-
-.settings-override-badge {
- white-space: nowrap;
-}
-
-.settings-color-controls {
- display: flex;
- align-items: stretch;
- gap: .75rem;
-}
-
-.settings-color-controls .category-color {
- width: 72px;
- min-width: 72px;
- height: auto;
- padding: .35rem;
- border-radius: 14px !important;
- border: 1px solid rgba(255,255,255,.14);
- background: rgba(255,255,255,.04);
-}
-
-.settings-color-actions {
- display: flex;
- flex: 1 1 auto;
-}
-
-.settings-color-actions .btn {
- flex: 1 1 0;
- min-height: 44px;
- border-radius: 14px !important;
- display: inline-flex;
- align-items: center;
- justify-content: center;
- text-align: center;
-}
-
-.settings-color-actions .btn + .btn {
- margin-left: .5rem;
-}
-
-@media (min-width: 992px) {
- .settings-category-name {
- font-size: 1.08rem;
- }
-}
-
-@media (max-width: 767.98px) {
- .settings-category-card {
- padding: .9rem;
- }
-
- .settings-color-controls {
- flex-direction: column;
- }
-
- .settings-color-controls .category-color {
- width: 100%;
- min-width: 0;
- height: 48px;
- }
-
- .settings-color-actions {
- flex-direction: column;
- }
-
- .settings-color-actions .btn + .btn {
- margin-left: 0;
- margin-top: .5rem;
- }
-}
-
-/* ========== Kolorowe wskaźniki pod pickerem ========== */
-.color-indicators .indicator {
- display: grid;
- grid-template-columns: auto 1fr auto;
- align-items: center;
- gap: .5rem;
-}
-
-.color-indicators .bar {
- height: 10px;
- border-radius: 6px;
- border: 1px solid rgba(255,255,255,.25);
- box-shadow: inset 0 0 0 1px rgba(0,0,0,.25);
-}
-
-/* ========== Swatch + zapisy heksowe ========== */
-.swatch {
- width: 16px;
- height: 16px;
- border-radius: 50%;
- display: inline-block;
- border: 1px solid rgba(0,0,0,.15);
-}
-
-.hex,
-.hex-label {
- font-variant-numeric: lining-nums;
- letter-spacing: .2px;
-}
-
-/* ========== OCR textarea ========== */
-.settings-ocr-textarea {
- font: inherit;
- line-height: 1.45;
-}
-
-/* ========== Odznaka poziomu czułości ========== */
-.sens-badge { font-weight: 600; }
-.sens-low { background: rgba(108,117,125,.25); color: #ced4da; } /* szary */
-.sens-mid { background: rgba(13,110,253,.25); color: #9ec5fe; } /* niebieski */
-.sens-high { background: rgba(220,53,69,.25); color: #f1aeb5; } /* czerwony */
-
-/* =========================================================
- COMPACT: przyciski akcji na listach
- - Desktop: standard Bootstrap
- - <=576px: kompakt
-========================================================= */
-
-/* <=420px: tylko emoji */
-@media (max-width: 420px) {
- .btn-group-compact .btn-text {
- display: none !important;
- }
-
- .btn-group-compact .btn {
- padding: 0.22rem 0.45rem;
- min-width: auto;
- font-size: 0.9rem;
- line-height: 1.1;
- }
-}
-
-/* 421–576px: lekko ciaśniej, ale tekst zostaje */
-@media (min-width: 421px) and (max-width: 576px) {
- .btn-group-compact .btn {
- padding: 0.24rem 0.45rem;
- font-size: 0.82rem;
- line-height: 1.1;
- }
-
- .btn-group-compact .btn-text {
- font-size: 0.75rem;
- }
-}
-
-
-/* ================================================
- RESPONSIVE NAVBAR
- ================================================ */
-
-/* Wąskie ekrany (np. iPhone 11) */
-@media (max-width: 420px) {
-
- .navbar .container-fluid {
- gap: 4px;
- }
-
- .navbar-brand-compact {
- font-size: 0.9rem !important;
- margin-right: 0.25rem;
- white-space: nowrap;
- }
- .navbar-brand-compact .navbar-brand-text {
- font-size: 0.95em;
- }
-
- .user-info-compact {
- font-size: 0.72rem !important;
- line-height: 0.9;
- white-space: nowrap;
- }
- .user-info-compact .badge {
- font-size: 0.68rem;
- padding: 0.2rem 0.45rem;
- }
-
- .nav-buttons-compact .nav-btn-text {
- display: none !important;
- }
- .nav-buttons-compact {
- gap: 0.35rem !important;
- flex-wrap: nowrap;
- }
- .nav-buttons-compact .btn {
- padding: 0.22rem 0.45rem;
- min-width: auto;
- line-height: 1.1;
- }
-}
-
-
-/* Małe ekrany (np. 421-576px) */
-@media (min-width: 421px) and (max-width: 576px) {
- .navbar .container-fluid {
- gap: 8px;
- }
-
- .navbar-brand-compact {
- font-size: 1.25rem !important;
- white-space: nowrap;
- }
-
- .user-info-compact {
- font-size: 0.8rem !important;
- white-space: nowrap;
- }
- .user-info-compact .badge {
- font-size: 0.75rem;
- }
-
- .nav-buttons-compact {
- flex-wrap: nowrap;
- }
- .nav-buttons-compact .btn {
- font-size: 0.8rem;
- padding: 0.25rem 0.45rem;
- }
- .nav-buttons-compact .nav-btn-text {
- font-size: 0.75rem;
- }
-}
-
-@media (max-width: 420px) {
- .user-label-desktop { display: none !important; }
- .user-label-mobile { display: inline !important; }
-}
-
-@media (min-width: 421px) {
- .user-label-desktop { display: inline !important; }
- .user-label-mobile { display: none !important; }
-}
-
-.category-dot-pure {
- width: 10px;
- height: 10px;
- display: inline-block;
- flex: 0 0 auto;
- border-radius: 50%;
- border: 2px solid rgba(255, 255, 255, 0.8);
- background-clip: padding-box;
- vertical-align: middle;
- margin-left: 0.35rem;
- opacity: 1;
- padding: 0;
- line-height: 1;
- font-size: 0;
- text-indent: -9999px;
- overflow: hidden;
- box-shadow: 0 1px 3px rgba(0,0,0,0.4);
-}
-
-.category-dot-pure::before,
-.category-dot-pure::after {
- content: none !important;
-}
-
-
-/* Hover efekt */
-.category-dot:hover {
- transform: scale(1.3) !important;
- box-shadow: 0 2px 6px rgba(0,0,0,0.4) !important;
-}
-
-
-.list-title {
- white-space: nowrap !important;
- overflow: hidden !important;
- text-overflow: ellipsis !important;
- max-width: 70% !important;
- display: inline-block !important;
-}
-
-/* Bardzo małe ekrany */
-@media (max-width: 420px) {
- .list-title {
- max-width: 60% !important;
- }
-}
-
-/* ===== 2026 app refresh ===== */
-:root {
- --app-bg: #07111f;
- --app-bg-soft: #0d1b2d;
- --app-surface: rgba(11, 23, 39, 0.88);
- --app-surface-strong: rgba(15, 28, 46, 0.98);
- --app-surface-muted: rgba(255, 255, 255, 0.04);
- --app-border: rgba(255, 255, 255, 0.1);
- --app-border-strong: rgba(255, 255, 255, 0.16);
- --app-text: #f3f8ff;
- --app-text-muted: #9fb0c8;
- --app-success: #27d07d;
- --app-warning: #f6c453;
- --app-danger: #ff6b7a;
- --app-shadow: 0 18px 50px rgba(0, 0, 0, 0.28);
- --app-radius: 22px;
-}
-
-html, body {
- min-height: 100%;
- background-color: var(--app-bg);
- background-image:
- radial-gradient(circle at top left, rgba(39, 208, 125, 0.18), transparent 24%),
- radial-gradient(circle at top right, rgba(74, 144, 226, 0.16), transparent 22%),
- linear-gradient(180deg, #09111d 0%, #08121f 38%, #060d18 100%);
- background-repeat: no-repeat;
- color: var(--app-text);
-}
-
-html {
- color-scheme: dark;
-}
-
-body.app-body {
- position: relative;
- min-height: 100vh;
- min-height: 100dvh;
- min-height: 100svh;
- display: flex;
- flex-direction: column;
- margin: 0;
- font-feature-settings: "ss01" on, "cv02" on;
- overflow-x: hidden;
-}
-
-
-@supports (padding: env(safe-area-inset-top)) {
- html, body {
- min-height: calc(100% + env(safe-area-inset-top, 0px) + env(safe-area-inset-bottom, 0px));
- }
-}
-
-.app-backdrop {
- position: fixed;
- inset: 0;
- pointer-events: none;
- background: linear-gradient(180deg, rgba(255,255,255,0.02), transparent 28%);
-}
-
-.app-header {
- z-index: 1035;
- padding: calc(0.75rem + env(safe-area-inset-top, 0px)) 0 0;
- backdrop-filter: blur(12px);
-}
-
-.app-navbar {
- background: transparent;
-}
-
-.app-navbar .container-xxl {
- border: 1px solid var(--app-border);
- background: rgba(6, 15, 27, 0.74);
- backdrop-filter: blur(16px);
- border-radius: 999px;
- min-height: 68px;
- box-shadow: var(--app-shadow);
-}
-
-.app-brand {
- display: inline-flex;
- align-items: center;
- gap: 0.85rem;
- font-weight: 800;
- color: var(--app-text) !important;
-}
-
-.app-brand__icon {
- display: inline-grid;
- place-items: center;
- width: 2.6rem;
- height: 2.6rem;
- border-radius: 16px;
- background: linear-gradient(135deg, rgba(39,208,125,0.22), rgba(74,144,226,0.18));
- box-shadow: inset 0 0 0 1px rgba(255,255,255,0.08);
-}
-
-.app-brand__title { color: #ffffff; }
-.app-brand__accent { color: #7ce4a8; margin-left: 0.3rem; }
-
-.app-navbar__actions,
-.app-navbar__meta {
- display: flex;
- align-items: center;
- gap: 0.5rem;
- flex-wrap: wrap;
-}
-
-.app-user-chip {
- display: inline-flex;
- align-items: center;
- gap: 0.5rem;
- padding: 0.4rem 0.45rem 0.4rem 0.75rem;
- border-radius: 999px;
- background: rgba(255,255,255,0.05);
- border: 1px solid rgba(255,255,255,0.08);
-}
-
-.app-user-chip__label {
- font-size: 0.75rem;
- color: var(--app-text-muted);
- text-transform: uppercase;
- letter-spacing: 0.08em;
-}
-
-.app-main {
- flex: 1 0 auto;
- padding: 1rem 0 2.5rem;
-}
-
-.app-content-frame {
- padding: 0.25rem 0 0;
-}
-
-.app-footer {
- margin-top: auto;
- padding: 1rem 0 calc(1.35rem + env(safe-area-inset-bottom, 0px));
-}
-
-.app-footer__inner {
- border-top: 1px solid rgba(255,255,255,0.08);
- padding-top: 1.25rem;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #ffffff;
- letter-spacing: -0.02em;
-}
-
-.card,
-.modal-content,
-.dropdown-menu,
-.list-group-item,
-.table,
-.alert,
-.pagination .page-link,
-.nav-tabs,
-.input-group-text,
-.form-control,
-.form-select,
-.btn,
-.progress,
-.toast {
- border-radius: 18px;
-}
-
-.card,
-.modal-content,
-.table-responsive,
-.alert,
-.list-group-item,
-.pagination .page-link,
-.nav-tabs,
-.input-group-text,
-.form-control,
-.form-select,
-.progress,
-.toast,
-.page-link,
-.table,
-.btn-group > .btn {
- border-color: var(--app-border) !important;
-}
-
-.card,
-.modal-content,
-.table-responsive,
-.alert,
-.list-group-item,
-.progress,
-.toast {
- background: var(--app-surface) !important;
- box-shadow: var(--app-shadow);
- backdrop-filter: blur(10px);
-}
-
-.card-body,
-.modal-body,
-.modal-header,
-.modal-footer {
- background: transparent;
-}
-
-.bg-dark,
-.table-dark,
-.list-group-item.bg-dark,
-.modal-content.bg-dark,
-.card.bg-dark,
-.card.bg-secondary,
-.list-group-item.item-not-checked {
- background: var(--app-surface) !important;
- color: var(--app-text) !important;
-}
-
-.card.bg-secondary.bg-opacity-10,
-#share-card {
- background: linear-gradient(180deg, rgba(16, 29, 49, 0.96), rgba(10, 20, 36, 0.94)) !important;
-}
-
-.table-dark {
- --bs-table-bg: transparent;
- --bs-table-striped-bg: rgba(255,255,255,0.03);
- --bs-table-hover-bg: rgba(255,255,255,0.05);
- --bs-table-color: var(--app-text);
- margin-bottom: 0;
-}
-
-.table > :not(caption) > * > * {
- padding: 0.9rem 1rem;
- border-bottom-color: rgba(255,255,255,0.08);
-}
-
-.list-group {
- gap: 0.8rem;
-}
-
-.list-group-item {
- margin-bottom: 0;
- padding: 1rem 1rem;
- color: var(--app-text) !important;
-}
-
-.list-group-item.bg-success {
- background: linear-gradient(135deg, rgba(39,208,125,0.92), rgba(22,150,91,0.96)) !important;
-}
-
-.list-group-item.bg-warning {
- background: linear-gradient(135deg, rgba(246,196,83,0.96), rgba(224,164,26,0.96)) !important;
- color: #1c1b17 !important;
-}
-
-.btn {
- border-radius: 14px;
- font-weight: 600;
- padding: 0.7rem 1rem;
- box-shadow: none;
-}
-
-.btn-sm {
- padding: 0.55rem 0.85rem;
- border-radius: 12px;
-}
-
-.btn-success,
-.btn-outline-success:hover {
- background: linear-gradient(135deg, #29d17d, #1ea860);
- border-color: rgba(41,209,125,0.9);
-}
-
-.btn-outline-light,
-.btn-outline-secondary,
-.btn-outline-warning,
-.btn-outline-primary,
-.btn-outline-success {
- background: rgba(255,255,255,0.02);
-}
-
-.btn:hover,
-.btn:focus {
- transform: translateY(-1px);
-}
-
-.form-control,
-.form-select,
-.input-group-text {
- min-height: 48px;
- background: rgba(5, 13, 23, 0.86) !important;
- color: var(--app-text) !important;
- box-shadow: none !important;
-}
-
-.form-control::placeholder { color: rgba(210, 224, 244, 0.45); }
-.form-control:focus,
-.form-select:focus {
- border-color: rgba(39,208,125,0.5) !important;
- box-shadow: 0 0 0 0.2rem rgba(39,208,125,0.15) !important;
-}
-
-.nav-tabs {
- gap: 0.5rem;
- border-bottom: none;
- background: rgba(255,255,255,0.03);
- padding: 0.4rem;
-}
-
-.nav-tabs .nav-link {
- border-radius: 14px;
- color: var(--app-text-muted);
- border: none;
- padding: 0.8rem 1rem;
-}
-
-.nav-tabs .nav-link.active {
- background: rgba(39,208,125,0.12);
- color: #fff;
-}
-
-.progress {
- overflow: hidden;
- background: rgba(255,255,255,0.06);
- min-height: 1rem;
-}
-
-.badge {
- border: 1px solid rgba(255,255,255,0.08);
-}
-
-.pagination .page-link {
- background: rgba(255,255,255,0.03);
- color: var(--app-text);
- margin: 0 0.15rem;
-}
-
-.pagination .page-item.active .page-link {
- background: rgba(39,208,125,0.18);
- color: #fff;
-}
-
-.modal-content {
- overflow: hidden;
-}
-
-.toast-container { z-index: 1200; }
-
-#items .list-group-item {
- border-radius: 18px !important;
- padding: 1rem 1rem;
-}
-
-#items .btn-group {
- gap: 0.4rem;
-}
-
-#items .btn-group .btn {
- border-radius: 12px !important;
-}
-
-.large-checkbox {
- width: 1.35rem;
- height: 1.35rem;
- accent-color: #29d17d;
-}
-
-#share-card .badge,
-#total-expense1,
-#total-expense2,
-#total-expense {
- background: transparent;
- color: #dfffea !important;
-}
-
-#share-card,
-.card,
-.table-responsive,
-.alert,
-.modal-content,
-#expenseChartWrapper,
-#categoryChartWrapper {
- border-radius: var(--app-radius) !important;
-}
-
-.endpoint-login .app-content-frame,
-.endpoint-system_auth .app-content-frame,
-.endpoint-page_not_found .app-content-frame,
-.endpoint-forbidden .app-content-frame {
- max-width: 560px;
- margin: 3rem auto 0;
-}
-
-.endpoint-main_page .list-group-item,
-.endpoint-expenses .card,
-.endpoint-admin_panel .card,
-.endpoint-view_list .card,
-.endpoint-shared_list .card,
-.endpoint-edit_my_list .card,
-[class*="endpoint-admin_"] .card {
- overflow: hidden;
-}
-
-input[type="checkbox"].form-check-input {
- width: 2.9rem;
- height: 1.5rem;
-}
-
-hr {
- border-color: rgba(255,255,255,0.08);
-}
-
-@media (max-width: 991.98px) {
- .app-header {
- padding-top: 0.55rem;
- }
-
- .app-navbar .container-xxl {
- border-radius: 26px;
- padding-top: 0.8rem;
- padding-bottom: 0.8rem;
- align-items: flex-start;
- }
-
- .app-navbar__actions,
- .app-navbar__meta {
- width: 100%;
- justify-content: flex-start;
- }
-}
-
-@media (max-width: 767.98px) {
- .app-main {
- padding-top: 0.7rem;
- }
-
- .card-body,
- .list-group-item,
- .modal-body,
- .modal-header,
- .modal-footer,
- .table > :not(caption) > * > * {
- padding-left: 0.85rem;
- padding-right: 0.85rem;
- }
-
- .btn-group,
- .d-flex.gap-2,
- .d-flex.gap-3 {
- gap: 0.45rem !important;
- }
-
- .btn-group > .btn,
- .btn.w-100,
- .input-group > .btn {
- min-height: 46px;
- }
-
- .input-group:not(.ui-password-group) {
- flex-wrap: wrap;
- gap: 0.55rem;
- }
-
- .input-group:not(.ui-password-group) > .form-control,
- .input-group:not(.ui-password-group) > .form-select,
- .input-group:not(.ui-password-group) > .btn,
- .input-group:not(.ui-password-group) > .input-group-text {
- width: 100% !important;
- flex: 1 1 100% !important;
- border-radius: 14px !important;
- max-width: 100% !important;
- }
-
- #items .d-flex.align-items-center.gap-2.flex-grow-1 {
- width: 100%;
- align-items: flex-start !important;
- }
-
- #items .btn-group {
- width: 100%;
- margin-top: 0.85rem;
- }
-
- #items .btn-group .btn {
- flex: 1 1 0;
- }
-
- .table-responsive {
- border-radius: 18px;
- }
-
- .pagination {
- flex-wrap: wrap;
- gap: 0.25rem;
- justify-content: center;
- }
-}
-
-/* =========================================================
- Compact minimalist pass
-========================================================= */
-:root {
- --app-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
- --app-radius: 14px;
-}
-
-body.app-body {
- font-size: 0.96rem;
- line-height: 1.4;
-}
-
-.app-header {
- padding: 0.35rem 0 0;
-}
-
-.app-navbar .container-xxl {
- min-height: 54px;
- border-radius: 18px;
- box-shadow: 0 8px 22px rgba(0,0,0,0.16);
-}
-
-.app-brand {
- gap: 0.6rem;
- font-size: 0.98rem;
-}
-
-.app-brand__icon {
- width: 2.1rem;
- height: 2.1rem;
- border-radius: 12px;
- font-size: 1rem;
-}
-
-.app-brand__title,
-.app-brand__accent {
- font-size: 0.98rem;
-}
-
-.app-user-chip {
- padding: 0.28rem 0.38rem 0.28rem 0.58rem;
- gap: 0.4rem;
-}
-
-.app-user-chip__label {
- font-size: 0.68rem;
- letter-spacing: 0.06em;
-}
-
-.app-main {
- padding: 0.65rem 0 1.4rem;
-}
-
-.app-content-frame {
- padding-top: 0.1rem;
-}
-
-.app-footer {
- margin-top: auto;
- padding: 0.5rem 0 calc(0.85rem + env(safe-area-inset-bottom, 0px));
-}
-
-.app-footer__inner {
- padding-top: 0.75rem;
-}
-
-h1, h2, h3, h4, h5, h6 {
- letter-spacing: -0.015em;
- line-height: 1.15;
-}
-
-h1, .h1 { font-size: clamp(1.45rem, 2vw, 1.9rem); }
-h2, .h2 { font-size: clamp(1.2rem, 1.8vw, 1.5rem); }
-h3, .h3 { font-size: clamp(1.02rem, 1.5vw, 1.2rem); }
-
-.card,
-.modal-content,
-.dropdown-menu,
-.list-group-item,
-.table,
-.alert,
-.pagination .page-link,
-.nav-tabs,
-.input-group-text,
-.form-control,
-.form-select,
-.btn,
-.progress,
-.toast {
- border-radius: 12px;
-}
-
-.card,
-.modal-content,
-.table-responsive,
-.alert,
-.list-group-item,
-.progress,
-.toast {
- box-shadow: 0 4px 14px rgba(0,0,0,0.12);
- backdrop-filter: blur(8px);
-}
-
-.card-header,
-.card-footer,
-.card-body,
-.modal-header,
-.modal-body,
-.modal-footer {
- padding: 0.75rem 0.85rem;
-}
-
-.table > :not(caption) > * > * {
- padding: 0.62rem 0.7rem;
-}
-
-.table-responsive table {
- min-width: 860px;
-}
-
-.list-group {
- gap: 0.5rem;
-}
-
-.list-group-item {
- padding: 0.72rem 0.8rem;
-}
-
-.alert {
- padding: 0.7rem 0.85rem;
- margin-bottom: 0.8rem;
-}
-
-.badge {
- font-weight: 600;
- padding: 0.38em 0.58em;
-}
-
-.btn {
- border-radius: 10px;
- font-weight: 600;
- padding: 0.52rem 0.8rem;
- min-height: 40px;
-}
-
-.btn-sm {
- padding: 0.4rem 0.64rem;
- min-height: 34px;
- border-radius: 9px;
-}
-
-.form-control,
-.form-select,
-.input-group-text {
- min-height: 40px;
- padding: 0.5rem 0.72rem;
-}
-
-textarea.form-control {
- min-height: 96px;
-}
-
-.progress {
- min-height: 0.8rem;
-}
-
-.progress-label {
- font-size: 0.72rem;
- font-weight: 600;
-}
-
-.nav-tabs {
- gap: 0.35rem;
- padding: 0.25rem;
-}
-
-.nav-tabs .nav-link {
- padding: 0.55rem 0.7rem;
- border-radius: 10px;
-}
-
-#items .list-group-item {
- border-radius: 12px !important;
- padding: 0.75rem 0.8rem;
-}
-
-#items .btn-group {
- gap: 0.25rem;
-}
-
-#items .btn-group .btn {
- border-radius: 9px !important;
-}
-
-input[type="checkbox"].form-check-input {
- width: 2.5rem;
- height: 1.35rem;
-}
-
-.large-checkbox {
- width: 1.2rem;
- height: 1.2rem;
-}
-
-.toast {
- padding: 0;
-}
-
-.endpoint-main_page .card h2,
-.endpoint-expenses .card h2,
-.endpoint-edit_my_list .card h2,
-.endpoint-login .card h2,
-.endpoint-system_auth .card h2,
-.endpoint-admin_panel .card h2,
-[class*="endpoint-admin_"] .card h2 {
- margin-bottom: 0.35rem;
-}
-
-.endpoint-main_page .card p,
-.endpoint-expenses .card p,
-.endpoint-edit_my_list .card p,
-.endpoint-login .card p,
-.endpoint-system_auth .card p,
-.endpoint-admin_panel .card p,
-[class*="endpoint-admin_"] .card p {
- margin-bottom: 0;
-}
-
-@media (max-width: 991.98px) {
- .app-navbar .container-xxl {
- border-radius: 16px;
- padding-top: 0.55rem;
- padding-bottom: 0.55rem;
- }
-}
-
-@media (max-width: 767.98px) {
- body.app-body {
- font-size: 0.93rem;
- }
-
- .app-header {
- padding-top: 0.25rem;
- }
-
- .app-main {
- padding-top: 0.45rem;
- }
-
- .app-navbar .container-xxl {
- min-height: 50px;
- border-radius: 14px;
- }
-
- .app-brand {
- gap: 0.45rem;
- font-size: 0.92rem;
- }
-
- .app-brand__icon {
- width: 1.9rem;
- height: 1.9rem;
- border-radius: 10px;
- }
-
- .app-user-chip {
- padding: 0.22rem 0.32rem 0.22rem 0.5rem;
- }
-
- .card-header,
- .card-footer,
- .card-body,
- .modal-header,
- .modal-body,
- .modal-footer,
- .list-group-item,
- .table > :not(caption) > * > * {
- padding-left: 0.68rem;
- padding-right: 0.68rem;
- }
-
- .list-group-item,
- #items .list-group-item {
- padding-top: 0.62rem;
- padding-bottom: 0.62rem;
- }
-
- .btn-group,
- .d-flex.gap-2,
- .d-flex.gap-3 {
- gap: 0.35rem !important;
- }
-
- .btn-group > .btn,
- .btn.w-100,
- .input-group > .btn,
- .btn,
- .form-control,
- .form-select,
- .input-group-text {
- min-height: 38px;
- }
-
- .input-group {
- gap: 0.4rem;
- }
-
- .table-responsive {
- border-radius: 12px;
- }
-
- .progress-label {
- font-size: 0.66rem;
- }
-
- .app-footer {
- padding-bottom: calc(0.8rem + env(safe-area-inset-bottom, 0px));
- }
-}
-
-/* === unified UI refresh: forms / tables / admin tools === */
-:root {
- --ui-surface-1: rgba(10, 14, 24, 0.78);
- --ui-surface-2: rgba(18, 25, 39, 0.92);
- --ui-surface-3: rgba(33, 44, 67, 0.88);
- --ui-border: rgba(255, 255, 255, 0.12);
- --ui-border-strong: rgba(255, 255, 255, 0.18);
- --ui-text-soft: rgba(255, 255, 255, 0.72);
- --ui-success-soft: rgba(25, 135, 84, 0.18);
- --ui-warning-soft: rgba(255, 193, 7, 0.16);
-}
-
-.card,
-.table-responsive,
-.modal-content,
-.dropdown-menu,
-.toast,
-.alert,
-.list-group-item {
- border: 1px solid var(--ui-border);
-}
-
-.card.bg-dark,
-.modal-content.bg-dark,
-.dropdown-menu-dark,
-.list-group-item.bg-dark,
-.table-dark {
- background: linear-gradient(180deg, var(--ui-surface-2), rgba(8, 12, 20, 0.96)) !important;
-}
-
-.card.bg-secondary.bg-opacity-10,
-.admin-shortcuts,
-#bulkBar .card {
- background: linear-gradient(180deg, rgba(22, 29, 45, 0.88), rgba(12, 18, 30, 0.88)) !important;
-}
-
-.form-label,
-label.form-label {
- display: inline-flex;
- align-items: center;
- gap: 0.35rem;
- margin-bottom: 0.45rem;
- font-size: 0.92rem;
- font-weight: 600;
- color: rgba(255,255,255,0.84);
-}
-
-.form-text,
-.text-secondary,
-.text-white-50 {
- color: var(--ui-text-soft) !important;
-}
-
-.form-control,
-.form-select,
-.input-group-text,
-textarea.form-control,
-.form-control-color {
- background: rgba(255,255,255,0.04) !important;
- border: 1px solid var(--ui-border-strong) !important;
- color: #fff !important;
- box-shadow: none;
- transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease, transform .18s ease;
-}
-
-.form-control::placeholder,
-textarea.form-control::placeholder {
- color: rgba(255,255,255,0.42);
-}
-
-.form-control:focus,
-.form-select:focus,
-textarea.form-control:focus,
-.form-check-input:focus,
-.btn:focus,
-.btn:focus-visible {
- border-color: rgba(25, 135, 84, 0.6) !important;
- box-shadow: 0 0 0 0.2rem rgba(25, 135, 84, 0.16) !important;
-}
-
-.input-group > .form-control,
-.input-group > .form-select,
-.input-group > .btn,
-.input-group > .input-group-text {
- min-height: 42px;
-}
-
-textarea.form-control {
- line-height: 1.45;
- resize: vertical;
-}
-
-.form-check {
- padding: 0.65rem 0.9rem 0.65rem 2.8rem;
- background: rgba(255,255,255,0.04);
- border: 1px solid var(--ui-border);
- border-radius: 12px;
-}
-
-.form-check.form-switch {
- min-height: 42px;
-}
-
-.form-check-input {
- background-color: rgba(255,255,255,0.14);
- border-color: rgba(255,255,255,0.22);
-}
-
-.btn {
- letter-spacing: 0.01em;
- transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease;
-}
-
-.btn:hover,
-.btn:focus-visible {
- transform: translateY(-1px);
-}
-
-.btn-success,
-.btn-outline-success,
-.btn-outline-light:hover,
-.btn-outline-light:focus-visible,
-.btn-outline-secondary:hover,
-.btn-outline-secondary:focus-visible {
- box-shadow: 0 10px 24px rgba(0,0,0,0.16);
-}
-
-.btn-outline-light,
-.btn-outline-secondary,
-.btn-outline-warning,
-.btn-outline-danger,
-.btn-outline-success {
- background: rgba(255,255,255,0.03);
-}
-
-.btn-outline-light:hover,
-.btn-outline-light:focus-visible {
- background: rgba(255,255,255,0.1);
-}
-
-.btn-outline-secondary:hover,
-.btn-outline-secondary:focus-visible {
- background: rgba(108, 117, 125, 0.18);
-}
-
-.btn-outline-warning:hover,
-.btn-outline-warning:focus-visible {
- background: var(--ui-warning-soft);
-}
-
-.btn-outline-danger:hover,
-.btn-outline-danger:focus-visible {
- background: rgba(220, 53, 69, 0.16);
-}
-
-.btn-outline-success:hover,
-.btn-outline-success:focus-visible {
- background: var(--ui-success-soft);
-}
-
-.btn-group-compact,
-.admin-shortcuts .d-flex,
-.stack-form,
-.page-actions {
- gap: 0.4rem;
-}
-
-.btn-group-compact .btn {
- padding: 0.3rem 0.55rem;
- font-size: 0.82rem;
-}
-
-.btn-group-compact .btn-text {
- font-size: 0.78rem;
-}
-
-.table-toolbar {
- display: flex;
- justify-content: space-between;
- align-items: center;
- flex-wrap: wrap;
- gap: 0.75rem;
- margin-bottom: 0.85rem;
-}
-
-.table-toolbar__search {
- max-width: 420px;
- width: 100%;
-}
-
-.table-toolbar__meta {
- min-width: 120px;
- text-align: right;
-}
-
-.table {
- --bs-table-bg: transparent;
- --bs-table-striped-bg: rgba(255,255,255,0.02);
- --bs-table-hover-bg: transparent;
- --bs-table-border-color: rgba(255,255,255,0.08);
- margin-bottom: 0;
-}
-
-.table > :not(caption) > * > * {
- border-bottom-width: 1px;
- vertical-align: middle;
-}
-
-.table thead th {
- position: sticky;
- top: 0;
- z-index: 1;
- background: rgba(11, 17, 28, 0.98) !important;
- text-transform: uppercase;
- letter-spacing: 0.05em;
- font-size: 0.74rem;
- color: rgba(255,255,255,0.72);
- border-bottom-color: rgba(255,255,255,0.14);
-}
-
-.table tbody tr {
- transition: background-color .15s ease, transform .15s ease;
-}
-
-.table tbody tr:hover > * {
- background: rgba(255,255,255,0.04) !important;
-}
-
-.table td code,
-.api-code-block code {
- display: inline-block;
- padding: 0.28rem 0.48rem;
- border-radius: 8px;
- background: rgba(255,255,255,0.08);
- color: #d6f5e6;
-}
-
-.api-code-block {
- display: flex;
- flex-wrap: wrap;
- gap: 0.5rem;
-}
-
-.pagination .page-link {
- background: rgba(255,255,255,0.03);
- border-color: var(--ui-border);
- color: #fff;
-}
-
-.pagination .page-item.active .page-link {
- background: rgba(25, 135, 84, 0.95);
- border-color: rgba(25, 135, 84, 0.95);
-}
-
-.dropdown-item {
- border-radius: 8px;
-}
-
-.dropdown-item:hover,
-.dropdown-item:focus {
- background: rgba(255,255,255,0.08);
-}
-
-form[data-unsaved-warning="true"].is-dirty {
- position: relative;
-}
-
-form[data-unsaved-warning="true"].is-dirty::after {
- content: 'Niezapisane zmiany';
- position: sticky;
- bottom: 0.75rem;
- left: 100%;
- display: inline-flex;
- margin-top: 1rem;
- padding: 0.38rem 0.68rem;
- border-radius: 999px;
- background: rgba(255, 193, 7, 0.18);
- border: 1px solid rgba(255, 193, 7, 0.36);
- color: #ffe08a;
- font-size: 0.76rem;
- font-weight: 700;
-}
-
-
-.ui-password-toggle.is-active {
- background: rgba(255,255,255,0.1);
-}
-
-.app-content-frame > h2 + .card,
-.app-content-frame > .card:first-of-type {
- margin-top: 0;
-}
-
-@media (max-width: 767.98px) {
- .table-toolbar {
- align-items: stretch;
- }
-
- .table-toolbar__meta {
- text-align: left;
- }
-
- .admin-shortcuts .btn {
- flex: 1 1 calc(50% - 0.55rem);
- }
-
- form[data-unsaved-warning="true"].is-dirty::after {
- left: auto;
- bottom: auto;
- position: static;
- margin-top: 0.75rem;
- }
-}
-
-
-.admin-page-head {
- display: flex;
- justify-content: space-between;
- align-items: flex-start;
- gap: 0.85rem;
- flex-wrap: wrap;
-}
-
-[data-admin-nav-body] {
- display: flex;
-}
-
-@media (max-width: 767.98px) {
- [data-admin-nav-body] {
- display: none;
- width: 100%;
- }
-
- [data-admin-nav-body].is-open {
- display: flex;
- }
-
- .admin-page-head > * {
- width: 100%;
- }
-
- .admin-page-head .btn {
- width: 100%;
- }
-
- .table-responsive table.table,
- .is-admin-area table.table {
- min-width: 100%;
- }
-
- .table-responsive table.table thead,
- .is-admin-area table.table thead {
- display: none;
- }
-
- .table-responsive table.table,
- .table-responsive table.table tbody,
- .table-responsive table.table tr,
- .table-responsive table.table td,
- .is-admin-area table.table,
- .is-admin-area table.table tbody,
- .is-admin-area table.table tr,
- .is-admin-area table.table td {
- display: block;
- width: 100%;
- }
-
- .table-responsive table.table tbody,
- .is-admin-area table.table tbody {
- display: grid;
- gap: 0.8rem;
- }
-
- .table-responsive table.table tr,
- .is-admin-area table.table tr {
- border: 1px solid rgba(255,255,255,0.08);
- border-radius: 16px;
- padding: 0.35rem 0.55rem;
- background: rgba(255,255,255,0.02);
- box-shadow: 0 8px 24px rgba(0,0,0,0.16);
- }
-
- .table-responsive table.table td,
- .is-admin-area table.table td {
- border: 0;
- padding: 0.5rem 0.35rem;
- }
-
- .table-responsive table.table td::before,
- .is-admin-area table.table td::before {
- content: attr(data-label);
- display: block;
- margin-bottom: 0.18rem;
- font-size: 0.72rem;
- text-transform: uppercase;
- letter-spacing: 0.04em;
- color: rgba(255,255,255,0.58);
- }
-
- .table-responsive table.table td:last-child,
- .is-admin-area table.table td:last-child {
- padding-bottom: 0.2rem;
- }
-
- .table-responsive table.table td .btn,
- .table-responsive table.table td .input-group,
- .table-responsive table.table td .form-select,
- .table-responsive table.table td .form-control,
- .is-admin-area table.table td .btn,
- .is-admin-area table.table td .input-group,
- .is-admin-area table.table td .form-select,
- .is-admin-area table.table td .form-control {
- width: 100%;
- }
-
- .table-responsive table.table td .d-flex,
- .table-responsive table.table td .btn-group,
- .is-admin-area table.table td .d-flex,
- .is-admin-area table.table td .btn-group {
- flex-wrap: wrap;
- }
-}
-
-
-.list-action-block .input-group .btn,
-.list-action-block .btn,
-.endpoint-shared_list .input-group .btn,
-.endpoint-shared_list .list-share-page .btn {
- min-height: 44px;
-}
-
-.endpoint-shared_list .input-group,
-.list-action-block .input-group {
- align-items: stretch;
-}
-
-@media (max-width: 767.98px) {
- .endpoint-admin_panel .table-responsive table thead {
- display: none;
- }
- .endpoint-admin_panel .table-responsive table,
- .endpoint-admin_panel .table-responsive tbody,
- .endpoint-admin_panel .table-responsive tr,
- .endpoint-admin_panel .table-responsive td {
- display: block;
- width: 100%;
- }
- .endpoint-admin_panel .table-responsive tr {
- border: 1px solid rgba(255,255,255,.08);
- border-radius: 16px;
- margin-bottom: 1rem;
- padding: .75rem;
- background: rgba(255,255,255,.02);
- }
- .endpoint-admin_panel .table-responsive td {
- border: 0;
- padding: .35rem 0;
- }
-}
-
-
-/* responsive fixes 2026-03 */
-.app-navbar .container-xxl {flex-wrap: nowrap; align-items: center;}
-.app-navbar__actions {display:flex; flex-wrap:wrap; gap:.5rem; justify-content:flex-end;}
-.app-navbar__actions .btn {white-space: nowrap;}
-.table-responsive {overflow-x: clip;}
-.table-responsive table {width:100%; min-width:0 !important;}
-@media (max-width: 991.98px) {
- .app-navbar .container-xxl {display:grid; grid-template-columns:auto 1fr auto; gap:.5rem; align-items:center;}
- .app-navbar__meta {display:none;}
- .app-brand {min-width:0;}
- .app-brand__title,.app-brand__accent {font-size:1rem;}
- .app-navbar__actions {max-width:100%; gap:.35rem;}
- .app-navbar__actions .btn {padding:.35rem .55rem; font-size:.78rem;}
-}
-@media (max-width: 430px) {
- .app-navbar .container-xxl {grid-template-columns:minmax(0,1fr) auto; }
- .app-brand {overflow:hidden;}
- .app-brand > span:last-child {overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
- .app-navbar__actions {grid-column:1 / -1; justify-content:stretch;}
- .app-navbar__actions .btn {flex:1 1 calc(50% - .35rem); text-align:center;}
-}
-@media (max-width: 767.98px) {
- .app-content-frame .table-responsive table.table,
- .app-content-frame table.table:not(.keep-horizontal) {display:block; width:100%;}
- .app-content-frame .table-responsive table.table thead,
- .app-content-frame table.table:not(.keep-horizontal) thead {display:none;}
- .app-content-frame .table-responsive table.table tbody,
- .app-content-frame .table-responsive table.table tr,
- .app-content-frame .table-responsive table.table td,
- .app-content-frame table.table:not(.keep-horizontal) tbody,
- .app-content-frame table.table:not(.keep-horizontal) tr,
- .app-content-frame table.table:not(.keep-horizontal) td {display:block; width:100%;}
- .app-content-frame .table-responsive table.table tr,
- .app-content-frame table.table:not(.keep-horizontal) tr {border:1px solid var(--dark-300); border-radius:1rem; margin-bottom:.85rem; padding:.35rem .25rem; background:var(--dark-700);}
- .app-content-frame .table-responsive table.table td,
- .app-content-frame table.table:not(.keep-horizontal) td {border:none; padding:.5rem .75rem; text-align:left !important;}
- .app-content-frame .table-responsive table.table td::before,
- .app-content-frame table.table:not(.keep-horizontal) td::before {content:attr(data-label); display:block; font-size:.72rem; color:#9ba3aa; margin-bottom:.2rem; text-transform:uppercase;}
- .app-content-frame .table-responsive {overflow:visible;}
-}
-
-/* fix: admin tables, api tokens, share page, navbar */
-.admin-table-responsive {
- overflow-x: auto !important;
- -webkit-overflow-scrolling: touch;
-}
-
-
-.admin-table-responsive--wide table {
- min-width: 1180px;
-}
-
-.admin-table-responsive--full table {
- width: 100% !important;
- min-width: 100% !important;
- table-layout: auto;
-}
-
-.endpoint-edit_categories .admin-table-responsive--full table th,
-.endpoint-edit_categories .admin-table-responsive--full table td,
-.endpoint-api_tokens .admin-table-responsive--full table th,
-.endpoint-api_tokens .admin-table-responsive--full table td {
- white-space: normal;
- vertical-align: middle;
-}
-
-.endpoint-edit_categories .admin-table-responsive--full table th:last-child,
-.endpoint-edit_categories .admin-table-responsive--full table td:last-child {
- width: 30%;
-}
-
-.is-admin-area .table-responsive td,
-.is-admin-area .table-responsive th {
- white-space: normal;
-}
-
-.api-chip {
- display: inline-block;
- max-width: 22rem;
- padding: .28rem .55rem;
- border-radius: .75rem;
- background: rgba(255,255,255,.08);
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- vertical-align: middle;
-}
-
-.api-chip--wrap {
- white-space: normal;
- overflow-wrap: anywhere;
- word-break: break-word;
-}
-
-.form-check-spaced {
- display: flex;
- align-items: flex-start;
- gap: .7rem;
- padding-left: 0;
- margin-bottom: .65rem;
-}
-
-.form-check-spaced .form-check-input {
- position: static;
- margin: .2rem 0 0;
- flex: 0 0 auto;
-}
-
-.form-check-spaced .form-check-label {
- margin: 0;
- line-height: 1.35;
-}
-
-.list-item-actions {
- gap: .4rem;
- flex-wrap: wrap;
- justify-content: flex-end;
-}
-
-.list-item-actions .btn {
- border-radius: .8rem !important;
- min-width: 2.6rem;
-}
-
-.share-submit-btn {
- min-width: 8rem;
- font-weight: 600;
-}
-
-.endpoint-list_share .input-group,
-.endpoint-shared_list .input-group {
- align-items: stretch;
-}
-
-.endpoint-list_share .input-group > .form-control,
-.endpoint-list_share .input-group > .btn,
-.endpoint-shared_list .input-group > .form-control,
-.endpoint-shared_list .input-group > .btn {
- min-height: 46px;
-}
-
-.endpoint-list_share .input-group > .btn,
-.endpoint-shared_list .input-group > .btn {
- border-top-left-radius: 0 !important;
- border-bottom-left-radius: 0 !important;
-}
-
-@media (max-width: 767.98px) {
- .table-responsive {
- overflow-x: auto !important;
- }
-
- .is-admin-area .table-responsive table.table.keep-horizontal,
- .endpoint-api_tokens .table-responsive table.table,
- .endpoint-admin_panel .table-responsive table.table,
- .endpoint-lists_access .table-responsive table.table,
- .endpoint-user_management .table-responsive table.table,
- .endpoint-edit_categories .table-responsive table.table {
- display: table;
- width: max-content;
- min-width: 980px !important;
- }
-
- .endpoint-api_tokens .admin-table-responsive--full table.table,
- .endpoint-edit_categories .admin-table-responsive--full table.table {
- width: 100%;
- min-width: 980px !important;
- }
-
- .is-admin-area .table-responsive table.table.keep-horizontal thead,
- .endpoint-api_tokens .table-responsive table.table thead,
- .endpoint-admin_panel .table-responsive table.table thead,
- .endpoint-lists_access .table-responsive table.table thead,
- .endpoint-user_management .table-responsive table.table thead {
- display: table-header-group;
- }
-
- .is-admin-area .table-responsive table.table.keep-horizontal tbody,
- .endpoint-api_tokens .table-responsive table.table tbody,
- .endpoint-admin_panel .table-responsive table.table tbody,
- .endpoint-lists_access .table-responsive table.table tbody,
- .endpoint-user_management .table-responsive table.table tbody {
- display: table-row-group;
- }
-
- .is-admin-area .table-responsive table.table.keep-horizontal tr,
- .endpoint-api_tokens .table-responsive table.table tr,
- .endpoint-admin_panel .table-responsive table.table tr,
- .endpoint-lists_access .table-responsive table.table tr,
- .endpoint-user_management .table-responsive table.table tr {
- display: table-row;
- border: 0;
- padding: 0;
- background: transparent;
- box-shadow: none;
- }
-
- .is-admin-area .table-responsive table.table.keep-horizontal td,
- .endpoint-api_tokens .table-responsive table.table td,
- .endpoint-admin_panel .table-responsive table.table td,
- .endpoint-lists_access .table-responsive table.table td,
- .endpoint-user_management .table-responsive table.table td {
- display: table-cell;
- width: auto;
- border-top: 1px solid var(--dark-450);
- padding: .65rem .75rem;
- }
-
- .endpoint-api_tokens .table-responsive table.table td::before,
- .endpoint-admin_panel .table-responsive table.table td::before,
- .endpoint-lists_access .table-responsive table.table td::before,
- .endpoint-user_management .table-responsive table.table td::before {
- display: none;
- content: none;
- }
-}
-
-@media (max-width: 575.98px) {
- .app-navbar .container-xxl {
- display: grid;
- grid-template-columns: minmax(0, 1fr) auto;
- align-items: center;
- }
-
- .app-navbar__meta {
- display: none;
- }
-
- .app-brand {
- min-width: 0;
- overflow: hidden;
- }
-
- .app-brand > span:last-child {
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- }
-
- .app-navbar__actions {
- grid-column: 1 / -1;
- display: grid;
- grid-template-columns: repeat(2, minmax(0, 1fr));
- gap: .45rem;
- width: 100%;
- }
-
- .app-navbar__actions .btn {
- width: 100%;
- padding: .45rem .5rem;
- font-size: .78rem;
- }
-
- .share-submit-btn {
- min-width: 6.75rem;
- }
-
- .list-item-actions {
- width: 100%;
- justify-content: flex-start;
- margin-top: .5rem;
- }
-}
-
-
-/* admin/settings consistency fixes */
-.form-switch-compact .form-check-input {
- width: 2.35rem;
- height: 1.2rem;
- margin-top: .1rem;
-}
-.form-switch-compact .form-check-label {
- padding-top: .02rem;
-}
-.form-check-spaced {
- gap: .45rem;
-}
-.access-editor .input-group > .form-control,
-.access-editor .input-group > .btn {
- min-height: 40px;
-}
-.endpoint-admin_edit_categories .table-responsive,
-.endpoint-admin_lists_access .table-responsive,
-.endpoint-admin_settings .table-responsive,
-.endpoint-list_products .table-responsive {
- overflow-x: auto !important;
-}
-.endpoint-admin_edit_categories .table-responsive table.table.keep-horizontal,
-.endpoint-admin_lists_access .table-responsive table.table.keep-horizontal,
-.endpoint-list_products .table-responsive table.table.keep-horizontal {
- min-width: 1000px !important;
-}
-.endpoint-admin_edit_categories .app-content-frame,
-.endpoint-admin_lists_access .app-content-frame,
-.endpoint-admin_settings .app-content-frame,
-.endpoint-list_products .app-content-frame {
- overflow: visible;
-}
-@media (max-width: 767.98px) {
- .form-switch-compact .form-check-input { width: 2rem; height: 1.05rem; }
-}
-
-
-/* v4.1 admin/table/share fixes */
-.admin-table-responsive table {
- width: 100%;
- min-width: 100%;
-}
-.admin-table-responsive--wide table,
-.table-responsive .keep-horizontal {
- width: max-content;
- min-width: 100%;
-}
-.endpoint-admin_panel .admin-table-responsive--wide table {
- width: 100%;
- min-width: 100%;
-}
-.endpoint-admin_panel .admin-panel-table th:last-child,
-.endpoint-admin_panel .admin-panel-table td:last-child {
- width: 1%;
- white-space: nowrap;
-}
-.endpoint-admin_lists_access .admin-table-responsive--wide table {
- min-width: 1120px;
-}
-.endpoint-admin_lists_access .access-editor .tokens {
- min-height: 2rem;
-}
-.endpoint-admin_lists_access .access-editor .token,
-.endpoint-admin_edit_my_list .access-editor .token {
- max-width: 100%;
-}
-.endpoint-admin_lists_access .access-editor .token span,
-.endpoint-admin_edit_my_list .access-editor .token span {
- pointer-events: none;
-}
-.endpoint-admin_lists_access .mono {
- white-space: nowrap;
-}
-.form-check-spaced {
- gap: .35rem;
-}
-.form-check-spaced .form-check-input,
-input[type="checkbox"].form-check-input,
-.table-select-checkbox {
- width: .95rem !important;
- height: .95rem !important;
- min-width: .95rem !important;
- min-height: .95rem !important;
- margin-top: .18rem;
-}
-.form-switch-compact .form-check-input {
- width: 1.8rem !important;
- height: .95rem !important;
-}
-.large-checkbox {
- transform: none;
- transform-origin: center;
-}
-
-.shopping-item-main > .large-checkbox {
- flex: 0 0 1.5em;
- align-self: center;
-}
-.list-item-actions {
- display: flex;
- align-items: center;
- gap: .45rem;
- flex-wrap: wrap;
-}
-.list-item-actions .btn {
- min-width: 2.25rem;
- padding: .42rem .62rem;
-}
-.endpoint-list_share .list-group-item,
-.endpoint-shared_list .list-group-item {
- gap: .75rem;
-}
-.endpoint-list_share .list-item-actions,
-.endpoint-shared_list .list-item-actions {
- margin-left: auto;
-}
-.endpoint-list_share .input-group,
-.endpoint-shared_list .input-group {
- flex-wrap: nowrap;
-}
-.endpoint-list_share .input-group > .form-control,
-.endpoint-shared_list .input-group > .form-control {
- min-width: 0;
-}
-.endpoint-list_share .share-submit-btn,
-.endpoint-shared_list .share-submit-btn {
- min-width: 7.25rem;
- border-radius: .9rem !important;
-}
-@media (max-width: 991.98px) {
- .endpoint-admin_panel .admin-panel-table {
- min-width: 1000px;
- }
-}
-@media (max-width: 767.98px) {
- .endpoint-admin_panel .admin-table-responsive--wide table,
- .endpoint-admin_lists_access .admin-table-responsive--wide table,
- .endpoint-api_tokens .admin-table-responsive--wide table {
- width: max-content;
- min-width: 980px !important;
- }
- .endpoint-list_share .input-group,
- .endpoint-shared_list .input-group {
- flex-wrap: wrap;
- }
- .endpoint-list_share .share-submit-btn,
- .endpoint-shared_list .share-submit-btn {
- width: 100%;
- }
-}
-@media (max-width: 430px) {
- .app-brand__icon {
- width: 2rem;
- height: 2rem;
- font-size: 1rem;
- }
- .app-brand__title, .app-brand__accent {
- font-size: 1rem;
- }
- .app-navbar__actions {
- grid-template-columns: repeat(2, minmax(0, 1fr));
- }
- .app-navbar__actions .btn {
- padding: .38rem .45rem;
- font-size: .74rem;
- }
-}
-
-.endpoint-admin_api_tokens .admin-table-responsive--wide table { width: 100%; min-width: 100%; }
-@media (max-width: 767.98px) { .endpoint-admin_api_tokens .admin-table-responsive--wide table { width:max-content; min-width: 980px !important; } }
-.table-responsive { overflow-x: auto; }
-
-
-/* v6 tweaks */
-.create-list-switch,
-.hide-purchased-switch {
- display: inline-flex;
- align-items: center;
- gap: .5rem;
- padding: .45rem .8rem .45rem 2.35rem;
- min-height: 0;
- width: auto;
- background: rgba(255,255,255,0.04);
- border: 1px solid var(--ui-border);
- border-radius: 12px;
-}
-.create-list-switch .form-check-input,
-.hide-purchased-switch .form-check-input {
- width: 2rem !important;
- height: 1rem !important;
- margin-top: 0;
-}
-.create-list-switch .form-check-label,
-.hide-purchased-switch .form-check-label {
- margin-left: .15rem;
-}
-.endpoint-admin_lists_access .card > .card-body > .table-responsive,
-.endpoint-admin_api_tokens .card > .card-body > .table-responsive {
- width: 100%;
-}
-.endpoint-admin_lists_access .table.keep-horizontal,
-.endpoint-admin_api_tokens .table.keep-horizontal {
- min-width: 100%;
-}
-
-
-/* v7.1 share/main fixes */
-.create-list-checkbox {
- align-items: center;
- gap: .55rem;
-}
-.create-list-checkbox .form-check-input {
- margin-top: 0;
-}
-.endpoint-list_share #items .list-group-item,
-.endpoint-shared_list #items .list-group-item {
- display: flex;
- justify-content: space-between;
- align-items: center;
- gap: .75rem;
-}
-.endpoint-list_share #items .list-group-item > .d-flex.flex-grow-1,
-.endpoint-shared_list #items .list-group-item > .d-flex.flex-grow-1 {
- min-width: 0;
- flex: 1 1 auto;
-}
-.endpoint-list_share .list-item-actions,
-.endpoint-shared_list .list-item-actions {
- flex: 0 0 auto;
- margin-left: auto;
- justify-content: flex-end;
-}
-.endpoint-list_share .list-item-actions .btn,
-.endpoint-shared_list .list-item-actions .btn {
- min-width: 2.5rem;
-}
-.endpoint-list_share .hide-purchased-switch,
-.endpoint-shared_list .hide-purchased-switch {
- align-items: center;
-}
-.endpoint-list_share .hide-purchased-switch .form-check-input,
-.endpoint-shared_list .hide-purchased-switch .form-check-input {
- margin-top: 0;
-}
-@media (max-width: 767.98px) {
- .endpoint-list_share #items .list-group-item,
- .endpoint-shared_list #items .list-group-item {
- align-items: flex-start;
- }
- .endpoint-list_share .list-item-actions,
- .endpoint-shared_list .list-item-actions {
- width: 100%;
- margin-left: 0;
- justify-content: flex-start;
- }
-}
-
-
-/* v9.1 switch and share consistency fixes */
-.create-list-input-group > .form-control {
- border-top-right-radius: 0 !important;
- border-bottom-right-radius: 0 !important;
-}
-.create-list-input-group > #tempToggle {
- min-width: 9.75rem;
- font-weight: 600;
- white-space: nowrap;
-}
-.hide-purchased-switch.form-check {
- display: inline-flex;
- align-items: center;
- gap: .7rem;
- padding: .55rem .95rem;
- padding-left: .95rem;
- border-radius: 14px;
- background: rgba(255,255,255,.04);
- border: 1px solid var(--ui-border);
-}
-.hide-purchased-switch .form-check-input {
- flex: 0 0 auto;
- float: none;
- width: 2.9em !important;
- height: 1.5em !important;
- margin: 0 !important;
- cursor: pointer;
-}
-.hide-purchased-switch .form-check-label {
- margin: 0 !important;
- white-space: nowrap;
- cursor: pointer;
-}
-
-.endpoint-list_share .list-item-actions,
-.endpoint-shared_list .list-item-actions {
- gap: .5rem;
-}
-
-.endpoint-list_share .list-item-actions .btn,
-.endpoint-shared_list .list-item-actions .btn {
- min-width: 2.75rem;
- min-height: 2.5rem;
- padding: .5rem .72rem;
-}
-
-.endpoint-list_share .app-navbar__actions .btn,
-.endpoint-shared_list .app-navbar__actions .btn {
- border-radius: .9rem !important;
-}
-
-/* unified bootstrap-like switches */
-.switch-grid {
- display: grid;
- grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
- gap: .8rem;
-}
-
-.form-check.form-switch.app-switch {
- display: inline-flex;
- align-items: center;
- gap: .75rem;
- min-height: auto;
- margin: 0;
- padding: .72rem .95rem;
- padding-left: .95rem;
- background: rgba(255,255,255,.04);
- border: 1px solid var(--ui-border);
- border-radius: 14px;
-}
-
-.form-check.form-switch.app-switch .form-check-input {
- float: none;
- flex: 0 0 auto;
- width: 2.9em !important;
- height: 1.55em !important;
- margin: 0 !important;
- cursor: pointer;
- background-color: var(--dark-400) !important;
- border-color: var(--dark-300) !important;
-}
-
-.form-check.form-switch.app-switch .form-check-input:checked {
- background-color: var(--primary) !important;
- border-color: var(--primary-border) !important;
-}
-
-.form-check.form-switch.app-switch .form-check-input:focus {
- box-shadow: 0 0 0 .18rem rgba(24, 64, 118, .22) !important;
-}
-
-.form-check.form-switch.app-switch .form-check-label {
- margin: 0 !important;
- line-height: 1.35;
- cursor: pointer;
-}
-
-.form-check.form-switch.app-switch.form-switch-compact {
- width: 100%;
- justify-content: flex-start;
-}
-
-.form-check.form-switch.app-switch.form-switch-compact .form-check-input {
- width: 2.9em !important;
- height: 1.55em !important;
-}
-
-.hide-purchased-switch.form-check.app-switch {
- width: auto;
-}
-
-.endpoint-edit_my_list .switch-grid .app-switch,
-.endpoint-admin_edit_list .switch-grid .app-switch {
- width: 100%;
-}
-
-/* consolidation pass 2026-03-30: merged safe duplicates and overlapping hotfixes */
-/* final UX polish 2026-03-14 */
-:root {
- --nav-btn-height: 2.8rem;
-}
-
-.app-navbar .container-xxl {
- display: flex;
- align-items: center;
- justify-content: space-between;
- gap: .8rem;
- row-gap: .55rem;
- flex-wrap: nowrap;
-}
-
-.app-navbar__actions {
- display: flex;
- align-items: stretch;
- justify-content: flex-end;
- gap: .5rem;
- flex-wrap: nowrap;
- min-width: 0;
-}
-
-.app-navbar__actions .btn,
-.app-nav-action {
- display: inline-flex;
- align-items: center;
- justify-content: center;
- min-width: 0;
- min-height: var(--nav-btn-height);
- padding: .6rem .95rem;
- white-space: nowrap;
- line-height: 1;
-}
-
-.app-navbar__actions .btn > span,
-.app-nav-action > span {
- display: inline-flex;
- align-items: center;
-}
-
-.form-check.form-switch.app-switch {
- min-height: 3.2rem;
- padding: .78rem 1rem;
- border-radius: 16px;
-}
-
-.form-check.form-switch.app-switch .form-check-input {
- width: 3.15em !important;
- height: 1.7em !important;
- background-position: left center;
-}
-
-.form-check.form-switch.app-switch .form-check-label {
- display: inline-flex;
- align-items: center;
- min-height: 1.7rem;
- font-weight: 500;
-}
-
-.hide-purchased-switch.form-check.app-switch {
- width: auto;
- max-width: 100%;
-}
-
-.endpoint-edit_my_list .switch-grid {
- grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
-}
-
-.endpoint-edit_my_list .switch-grid .app-switch,
-.endpoint-admin_edit_list .switch-grid .app-switch {
- width: 100%;
- min-height: 3.35rem;
-}
-
-/* boxed checks in api token form */
-.endpoint-admin_api_tokens .stack-form .form-check-spaced,
-.endpoint-api_tokens .stack-form .form-check-spaced {
- align-items: center;
- gap: .85rem;
- margin: 0 0 .72rem;
- padding: .75rem .9rem;
- border: 1px solid var(--ui-border);
- border-radius: 14px;
- background: rgba(255,255,255,.04);
-}
-
-.endpoint-admin_api_tokens .stack-form .form-check-spaced .form-check-input,
-.endpoint-api_tokens .stack-form .form-check-spaced .form-check-input {
- margin: 0;
-}
-
-.endpoint-admin_api_tokens .stack-form .form-check-spaced .form-check-label,
-.endpoint-api_tokens .stack-form .form-check-spaced .form-check-label {
- flex: 1 1 auto;
-}
-
-/* admin tables full width on desktop, scroll only on smaller screens */
-.endpoint-admin_panel .table-responsive,
-.endpoint-admin_lists_access .table-responsive {
- overflow-x: auto;
-}
-
-.endpoint-admin_panel .table-responsive > table.table,
-.endpoint-admin_lists_access .table-responsive > table.table {
- width: 100% !important;
- min-width: 100% !important;
- table-layout: auto;
-}
-
-.endpoint-admin_lists_access td:nth-child(6) {
- min-width: 19rem;
-}
-
-.endpoint-admin_lists_access td:nth-child(6) > .d-flex,
-.endpoint-admin_lists_access td:nth-child(6) > .text-warning {
- width: 100%;
-}
-
-.endpoint-admin_lists_access td:nth-child(6) > .text-warning {
- display: block;
-}
-
-/* =========================================================
- Share page toolbar and shared-list header actions
-========================================================= */
-.share-page-toolbar {
- display: flex;
- align-items: center;
- justify-content: flex-end;
- gap: .75rem;
- width: 100%;
-}
-
-.share-page-toolbar__spacer {
- flex: 1 1 auto;
-}
-
-.share-page-toolbar .form-check {
- margin-bottom: 0;
-}
-
-.endpoint-list_share .app-navbar__actions,
-.endpoint-shared_list .app-navbar__actions {
- align-items: stretch;
-}
-
-.endpoint-list_share .app-navbar__actions .btn,
-.endpoint-shared_list .app-navbar__actions .btn {
- min-height: var(--nav-btn-height);
-}
-
-@media (max-width: 991.98px) {
- .app-navbar .container-xxl {
- display: grid;
- grid-template-columns: minmax(0, 1fr) auto;
- align-items: center;
- gap: .6rem;
- }
-
- .app-navbar__meta {
- display: none;
- }
-
- .app-brand {
- min-width: 0;
- overflow: hidden;
- }
-
- .app-brand > span:last-child {
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- }
-
- .app-navbar__actions {
- grid-column: 1 / -1;
- display: grid;
- grid-template-columns: repeat(2, minmax(0, 1fr));
- gap: .45rem;
- width: 100%;
- }
-
- .app-navbar__actions .btn,
- .app-nav-action {
- width: 100%;
- padding: .55rem .6rem;
- }
-
- .endpoint-admin_panel .table-responsive > table.table,
- .endpoint-admin_lists_access .table-responsive > table.table {
- width: max-content !important;
- min-width: 980px !important;
- }
-}
-
-@media (max-width: 767.98px) {
- .share-page-toolbar {
- justify-content: stretch;
- }
-
- .share-page-toolbar__spacer {
- display: none;
- }
-
- .hide-purchased-switch {
- padding-left: 2.95rem;
- }
-
- .hide-purchased-switch.form-check.app-switch {
- width: 100%;
- }
-
- .switch-grid,
- .endpoint-edit_my_list .switch-grid {
- grid-template-columns: 1fr;
- }
-}
-
-
-/* final polish v2 */
-:root {
- --nav-btn-height: 2.35rem;
-}
-
-.app-navbar__actions {
- gap: .4rem;
-}
-
-.app-navbar__actions .btn,
-.app-nav-action {
- min-height: var(--nav-btn-height);
- padding: .42rem .78rem;
- font-size: .92rem;
- border-radius: .9rem !important;
-}
-
-.form-check.form-switch.app-switch {
- min-height: 2.95rem;
- padding: .65rem .9rem;
-}
-
-.form-check.form-switch.app-switch .form-check-input {
- width: 2.75em !important;
- height: 1.45em !important;
- transition: background-position .18s ease-in-out, background-color .18s ease-in-out, border-color .18s ease-in-out, box-shadow .18s ease-in-out !important;
-}
-
-.form-check.form-switch.app-switch .form-check-label {
- min-height: 1.45rem;
-}
-
-.endpoint-admin_templates .table-responsive {
- overflow-x: auto;
-}
-
-.endpoint-admin_templates .table-responsive > table.table {
- width: 100% !important;
- min-width: 100% !important;
- table-layout: auto;
-}
-
-@media (max-width: 991.98px) {
- .app-navbar__actions .btn,
- .app-nav-action {
- font-size: .86rem;
- padding: .48rem .6rem;
- }
-
- .endpoint-admin_templates .table-responsive > table.table {
- width: max-content !important;
- min-width: 900px !important;
- }
-}
-
-
-/* responsive mobile category badges + smaller animated switches */
-.mobile-list-heading {
- width: 100%;
- min-width: 0;
- max-width: 100%;
- justify-content: flex-start;
-}
-
-.mobile-list-heading__title {
- min-width: 0;
-}
-
-.mobile-category-badges {
- display: inline-flex;
- align-items: center;
- gap: .3rem;
- min-width: 0;
- max-width: 100%;
-}
-
-.mobile-category-badge {
- display: inline-flex;
- align-items: center;
- justify-content: center;
- font-size: .68rem;
- line-height: 1;
- padding: .26rem .52rem;
- opacity: .95;
-}
-
-.mobile-category-badge__dot {
- display: none;
- width: .55rem;
- height: .55rem;
- border-radius: 999px;
- background: currentColor;
-}
-
-.mobile-category-badges.is-compact .mobile-category-badge {
- width: .9rem;
- min-width: .9rem;
- height: .9rem;
- padding: 0;
- border-radius: 999px;
-}
-
-.mobile-category-badges.is-compact .mobile-category-badge__text {
- display: none;
-}
-
-.mobile-category-badges.is-compact .mobile-category-badge__dot {
- display: block;
-}
-
-.form-check.form-switch.app-switch {
- min-height: 2.75rem;
- padding: .58rem .82rem;
-}
-
-.form-check.form-switch.app-switch .form-check-input,
-.hide-purchased-switch .form-check-input {
- width: 2.45em !important;
- height: 1.3em !important;
- background-position: left center !important;
- transition: background-position .18s ease-in-out, background-color .18s ease-in-out, border-color .18s ease-in-out, box-shadow .18s ease-in-out !important;
-}
-
-.form-check.form-switch.app-switch .form-check-input:checked,
-.hide-purchased-switch .form-check-input:checked {
- background-position: right center !important;
-}
-
-.form-check.form-switch.app-switch .form-check-label {
- min-height: 1.3rem;
-}
-
-.hide-purchased-switch.form-check.app-switch {
- padding: .5rem .82rem;
-}
-
-@media (max-width: 576px) {
- .mobile-list-heading {
- display: inline-flex;
- max-width: 100%;
- }
-
- .mobile-list-heading__title {
- max-width: 100%;
- }
-}
-
-
-.endpoint-main_page .list-group-item > .main-list-row {
- display: flex;
- align-items: center;
- justify-content: space-between;
- gap: 0.75rem;
- width: 100%;
- flex-wrap: nowrap;
-}
-
-.endpoint-main_page .list-main-meta {
- min-width: 0;
- flex: 1 1 auto;
-}
-
-.endpoint-main_page .list-main-title {
- display: flex;
- align-items: center;
- align-content: center;
- flex-wrap: wrap;
- gap: 0.15rem;
- min-width: 0;
- line-height: 1;
-}
-
-.endpoint-main_page .list-main-actions {
- flex: 0 0 auto;
- align-self: center;
-}
-
-@media (max-width: 575.98px) {
- .endpoint-main_page .list-group-item > .main-list-row {
- flex-direction: column;
- align-items: stretch;
- }
-
- .endpoint-main_page .list-main-actions {
- width: 100%;
- }
-}
-
-/* mobile UX fixes 2026-03-14 */
-.list-main-title__link {
- min-width: 0;
- display: inline-flex;
- align-items: center;
- align-content: center;
- flex-wrap: wrap;
- gap: .15rem;
- line-height: 1;
-}
-
-.shopping-item-row {
- gap: .75rem;
-}
-
-.shopping-item-main {
- min-width: 0;
- flex: 1 1 auto;
- flex-wrap: wrap;
-}
-
-.shopping-item-main span[id^="name-"] {
- min-width: 0;
-}
-
-.shopping-item-actions {
- flex: 0 0 auto;
- margin-left: auto;
- align-self: flex-start;
-}
-
-.shopping-compact-input-group {
- flex-wrap: nowrap !important;
- align-items: stretch;
-}
-
-.shopping-qty-input {
- flex: 0 0 4.5rem;
- max-width: 4.5rem;
-}
-
-.shopping-compact-submit {
- flex: 0 0 auto;
- width: auto;
- white-space: nowrap;
-}
-
-
-@media (max-width: 991.98px) {
- .app-navbar__actions {
- grid-template-columns: repeat(auto-fit, minmax(8.25rem, max-content));
- justify-content: end;
- }
-
- .app-navbar__actions .btn,
- .app-nav-action {
- width: auto;
- min-width: 8.25rem;
- justify-self: end;
- }
-}
-
-@media (max-width: 575.98px) {
- .endpoint-main_page .list-group-item > .main-list-row {
- flex-direction: row;
- align-items: center;
- }
-
- .endpoint-main_page .list-main-actions {
- width: auto;
- margin-left: auto;
- }
-
- .endpoint-main_page .list-main-actions .btn {
- padding: .38rem .52rem;
- min-width: 2.35rem;
- }
-
- .endpoint-main_page .list-main-title {
- display: flex;
- flex-wrap: wrap;
- gap: .15rem;
- }
-
- .endpoint-main_page .list-main-meta {
- flex: 1 1 auto;
- min-width: 0;
- }
-
- .endpoint-main_page .list-main-title__link {
- min-width: 0;
- max-width: 100%;
- }
-
- .shopping-item-row {
- align-items: flex-start !important;
- }
-
- .shopping-item-actions {
- width: auto;
- margin-top: 0;
- margin-left: auto;
- justify-content: flex-end;
- }
-
- .shopping-item-actions .btn {
- min-width: 2.35rem;
- padding: .38rem .52rem;
- }
-
- .shopping-compact-input-group {
- display: flex;
- }
-
- .shopping-compact-input-group > .form-control {
- min-width: 0;
- }
-
- .shopping-qty-input {
- flex-basis: 4rem;
- max-width: 4rem;
- }
-
- .shopping-compact-submit {
- min-width: auto;
- padding-left: .8rem;
- padding-right: .8rem;
- }
-
- .ui-password-group > .ui-password-toggle {
- min-width: 2.75rem;
- padding-left: .7rem;
- padding-right: .7rem;
- }
-}
-
-
-/* UX refactor 2026-03-14 b */
-.app-navbar-toggler {
- border-color: rgba(255,255,255,.28);
- padding: .3rem .55rem;
-}
-
-.app-navbar-toggler:focus {
- box-shadow: 0 0 0 .2rem rgba(255,255,255,.1);
-}
-
-.app-navbar-toggler .navbar-toggler-icon {
- filter: invert(1) grayscale(1);
-}
-
-#createListTempToggle,
-.create-list-temp-toggle {
- border-top-left-radius: 0 !important;
- border-bottom-left-radius: 0 !important;
-}
-
-.create-list-input-group > .form-control {
- border-top-right-radius: 0;
- border-bottom-right-radius: 0;
-}
-
-.create-list-input-group > .create-list-temp-toggle {
- background: transparent;
- white-space: nowrap;
-}
-
-.list-toolbar {
- width: 100%;
-}
-
-.list-toolbar--share {
- justify-content: flex-end;
-}
-
-.hide-purchased-switch--minimal {
- border: 0;
- background: transparent;
- padding: 0;
- margin-left: auto;
-}
-
-.shopping-item-row {
- padding: .8rem .95rem;
-}
-
-.shopping-item-main {
- display: flex;
- align-items: center;
- gap: .75rem;
- width: 100%;
-}
-
-.shopping-item-content {
- flex: 1 1 auto;
- min-width: 0;
-}
-
-.shopping-item-head {
- display: flex;
- align-items: flex-start;
- justify-content: space-between;
- gap: .75rem;
-}
-
-.shopping-item-text {
- min-width: 0;
- display: flex;
- align-items: center;
- gap: .35rem;
- flex-wrap: wrap;
-}
-
-.shopping-item-name {
- min-width: 0;
- overflow-wrap: break-word;
- word-break: normal;
-}
-
-.shopping-item-text .info-line {
- flex-basis: 100%;
- margin-top: .1rem;
- overflow-wrap: break-word;
- word-break: normal;
-}
-
-.shopping-item-actions {
- display: inline-flex;
- flex-wrap: nowrap;
- gap: .35rem;
-}
-
-.shopping-product-input-group > .shopping-product-name-input,
-.shopping-expense-input-group > .shopping-expense-amount-input {
- flex: 1 1 auto;
-}
-
-.shopping-product-input-group > .shopping-qty-input {
- flex: 0 0 4.5rem;
- max-width: 4.5rem;
- text-align: center;
-}
-
-.shopping-expense-input-group > .shopping-compact-submit,
-.shopping-product-input-group > .shopping-compact-submit {
- flex: 0 0 auto;
-}
-
-.endpoint-list .shopping-product-input-group > .shopping-compact-submit,
-.endpoint-list_share .shopping-product-input-group > .shopping-compact-submit,
-.endpoint-shared_list .shopping-product-input-group > .shopping-compact-submit,
-.endpoint-list .shopping-expense-input-group > .shopping-compact-submit,
-.endpoint-list_share .shopping-expense-input-group > .shopping-compact-submit,
-.endpoint-shared_list .shopping-expense-input-group > .shopping-compact-submit {
- border-top-left-radius: 0 !important;
- border-bottom-left-radius: 0 !important;
- border-top-right-radius: .9rem !important;
- border-bottom-right-radius: .9rem !important;
- margin-left: 0;
-}
-
-.endpoint-list .shopping-product-input-group,
-.endpoint-list_share .shopping-product-input-group,
-.endpoint-shared_list .shopping-product-input-group,
-.endpoint-list .shopping-expense-input-group,
-.endpoint-list_share .shopping-expense-input-group,
-.endpoint-shared_list .shopping-expense-input-group {
- flex-wrap: nowrap;
-}
-
-@media (max-width: 991.98px) {
- .navbar-collapse .app-navbar__actions {
- padding-top: .6rem;
- justify-content: flex-end;
- }
-}
-
-@media (max-width: 575.98px) {
- .app-navbar__actions {
- width: 100%;
- justify-content: flex-end;
- }
-
- .app-navbar__actions .btn,
- .app-nav-action {
- min-width: 0;
- width: auto;
- }
-
- .shopping-item-main {
- gap: .55rem;
- }
-
- .shopping-item-head {
- gap: .45rem;
- }
-
- .shopping-item-actions {
- margin-left: auto;
- align-self: flex-start;
- }
-
- .shopping-item-actions .btn {
- min-width: 2.2rem;
- padding: .34rem .48rem;
- }
-
- .shopping-product-input-group > .shopping-product-name-input,
- .shopping-expense-input-group > .shopping-expense-amount-input {
- flex: 0 0 60%;
- min-width: 0;
- }
-
- .shopping-product-input-group > .shopping-qty-input {
- flex: 0 0 15%;
- max-width: 15%;
- min-width: 0;
- }
-
- .shopping-product-input-group > .shopping-compact-submit {
- flex: 0 0 25%;
- width: 25%;
- min-width: 0;
- padding-left: .55rem;
- padding-right: .55rem;
- font-size: .95rem;
- }
-
- .shopping-expense-input-group > .shopping-compact-submit {
- padding-left: .7rem;
- padding-right: .7rem;
- }
-
- .list-toolbar {
- align-items: flex-start !important;
- }
-
- .list-toolbar__sort {
- flex: 0 0 auto;
- }
-
- .hide-purchased-switch--minimal {
- font-size: .95rem;
- }
-}
-
-
-/* UX tweak 2026-03-14 c: hamburger with full labels */
-@media (max-width: 991.98px) {
- .navbar-collapse .app-navbar__actions {
- width: 100%;
- display: flex;
- flex-direction: column;
- align-items: stretch;
- gap: .5rem;
- }
-
- .navbar-collapse .app-navbar__actions .btn,
- .navbar-collapse .app-nav-action {
- width: 100%;
- min-width: 0;
- justify-content: flex-start;
- text-align: left;
- padding-left: .9rem;
- padding-right: .9rem;
- }
-
- .navbar-collapse .app-navbar__actions .btn > span,
- .navbar-collapse .app-nav-action > span {
- display: inline !important;
- }
-}
-
-
-/* form input/button unification fix 2026-03-15 */
-.endpoint-list .shopping-product-input-group,
-.endpoint-list_share .shopping-product-input-group,
-.endpoint-shared_list .shopping-product-input-group,
-.endpoint-list .shopping-expense-input-group,
-.endpoint-list_share .shopping-expense-input-group,
-.endpoint-shared_list .shopping-expense-input-group {
- display: flex;
- flex-wrap: nowrap !important;
- align-items: stretch;
- gap: 0 !important;
-}
-
-.endpoint-list .shopping-product-input-group > .form-control,
-.endpoint-list_share .shopping-product-input-group > .form-control,
-.endpoint-shared_list .shopping-product-input-group > .form-control,
-.endpoint-list .shopping-expense-input-group > .form-control,
-.endpoint-list_share .shopping-expense-input-group > .form-control,
-.endpoint-shared_list .shopping-expense-input-group > .form-control,
-.endpoint-list .shopping-product-input-group > .btn,
-.endpoint-list_share .shopping-product-input-group > .btn,
-.endpoint-shared_list .shopping-product-input-group > .btn,
-.endpoint-list .shopping-expense-input-group > .btn,
-.endpoint-list_share .shopping-expense-input-group > .btn,
-.endpoint-shared_list .shopping-expense-input-group > .btn {
- position: relative;
- min-height: 46px;
- box-shadow: none;
-}
-
-.endpoint-list .shopping-product-input-group > .shopping-product-name-input,
-.endpoint-list_share .shopping-product-input-group > .shopping-product-name-input,
-.endpoint-shared_list .shopping-product-input-group > .shopping-product-name-input,
-.endpoint-list .shopping-expense-input-group > .shopping-expense-amount-input,
-.endpoint-list_share .shopping-expense-input-group > .shopping-expense-amount-input,
-.endpoint-shared_list .shopping-expense-input-group > .shopping-expense-amount-input {
- border-top-right-radius: 0 !important;
- border-bottom-right-radius: 0 !important;
-}
-
-.endpoint-list .shopping-product-input-group > .shopping-qty-input,
-.endpoint-list_share .shopping-product-input-group > .shopping-qty-input,
-.endpoint-shared_list .shopping-product-input-group > .shopping-qty-input {
- border-radius: 0 !important;
- border-left-width: 0 !important;
-}
-
-.endpoint-list .shopping-product-input-group > .shopping-compact-submit,
-.endpoint-list_share .shopping-product-input-group > .shopping-compact-submit,
-.endpoint-shared_list .shopping-product-input-group > .shopping-compact-submit,
-.endpoint-list .shopping-expense-input-group > .shopping-compact-submit,
-.endpoint-list_share .shopping-expense-input-group > .shopping-compact-submit,
-.endpoint-shared_list .shopping-expense-input-group > .shopping-compact-submit {
- display: inline-flex;
- align-items: center;
- justify-content: center;
- gap: .35rem;
- margin-left: 0 !important;
- border-top-left-radius: 0 !important;
- border-bottom-left-radius: 0 !important;
- border-top-right-radius: .9rem !important;
- border-bottom-right-radius: .9rem !important;
- border-left-width: 0 !important;
-}
-
-.endpoint-list .shopping-product-input-group > .shopping-compact-submit,
-.endpoint-list .shopping-expense-input-group > .shopping-compact-submit,
-.endpoint-list_share .shopping-product-input-group > .shopping-compact-submit,
-.endpoint-list_share .shopping-expense-input-group > .shopping-compact-submit,
-.endpoint-shared_list .shopping-product-input-group > .shopping-compact-submit,
-.endpoint-shared_list .shopping-expense-input-group > .shopping-compact-submit,
-.endpoint-list .share-submit-btn,
-.endpoint-list_share .share-submit-btn,
-.endpoint-shared_list .share-submit-btn {
- min-width: 7.25rem;
-}
-
-.shopping-btn-icon {
- line-height: 1;
-}
-
-.shopping-btn-label {
- line-height: 1;
-}
-
-@media (max-width: 767.98px) {
- .endpoint-list .shopping-product-input-group,
- .endpoint-list_share .shopping-product-input-group,
- .endpoint-shared_list .shopping-product-input-group,
- .endpoint-list .shopping-expense-input-group,
- .endpoint-list_share .shopping-expense-input-group,
- .endpoint-shared_list .shopping-expense-input-group {
- width: 100%;
- }
-
- .endpoint-list .shopping-product-input-group > .shopping-product-name-input,
- .endpoint-list_share .shopping-product-input-group > .shopping-product-name-input,
- .endpoint-shared_list .shopping-product-input-group > .shopping-product-name-input {
- flex: 0 0 60% !important;
- max-width: 60% !important;
- min-width: 0;
- }
-
- .endpoint-list .shopping-product-input-group > .shopping-qty-input,
- .endpoint-list_share .shopping-product-input-group > .shopping-qty-input,
- .endpoint-shared_list .shopping-product-input-group > .shopping-qty-input {
- flex: 0 0 15% !important;
- max-width: 15% !important;
- min-width: 0;
- padding-left: .35rem;
- padding-right: .35rem;
- }
-
- .endpoint-list .shopping-product-input-group > .shopping-compact-submit,
- .endpoint-list_share .shopping-product-input-group > .shopping-compact-submit,
- .endpoint-shared_list .shopping-product-input-group > .shopping-compact-submit {
- flex: 0 0 25% !important;
- width: 25% !important;
- min-width: 0 !important;
- padding-left: .4rem;
- padding-right: .4rem;
- }
-
- .endpoint-list .shopping-expense-input-group > .shopping-expense-amount-input,
- .endpoint-list_share .shopping-expense-input-group > .shopping-expense-amount-input,
- .endpoint-shared_list .shopping-expense-input-group > .shopping-expense-amount-input {
- flex: 1 1 auto !important;
- min-width: 0;
- }
-
- .endpoint-list .shopping-expense-input-group > .shopping-compact-submit,
- .endpoint-list_share .shopping-expense-input-group > .shopping-compact-submit,
- .endpoint-shared_list .shopping-expense-input-group > .shopping-compact-submit {
- flex: 0 0 5rem !important;
- width: 5rem !important;
- min-width: 5rem !important;
- padding-left: .35rem;
- padding-right: .35rem;
- }
-
- .endpoint-list .shopping-product-input-group > .shopping-compact-submit .shopping-btn-label,
- .endpoint-list_share .shopping-product-input-group > .shopping-compact-submit .shopping-btn-label,
- .endpoint-shared_list .shopping-product-input-group > .shopping-compact-submit .shopping-btn-label,
- .endpoint-list .shopping-expense-input-group > .shopping-compact-submit .shopping-btn-label,
- .endpoint-list_share .shopping-expense-input-group > .shopping-compact-submit .shopping-btn-label,
- .endpoint-shared_list .shopping-expense-input-group > .shopping-compact-submit .shopping-btn-label {
- display: none;
- }
-
- .endpoint-list .shopping-product-input-group > .shopping-compact-submit .shopping-btn-icon,
- .endpoint-list_share .shopping-product-input-group > .shopping-compact-submit .shopping-btn-icon,
- .endpoint-shared_list .shopping-product-input-group > .shopping-compact-submit .shopping-btn-icon,
- .endpoint-list .shopping-expense-input-group > .shopping-compact-submit .shopping-btn-icon,
- .endpoint-list_share .shopping-expense-input-group > .shopping-compact-submit .shopping-btn-icon,
- .endpoint-shared_list .shopping-expense-input-group > .shopping-compact-submit .shopping-btn-icon {
- margin: 0;
- font-size: 1rem;
- }
-}
-
-
-/* endpoint fix for /list route */
-.endpoint-view_list .shopping-product-input-group,
-.endpoint-view_list .shopping-expense-input-group {
- display: flex;
- flex-wrap: nowrap !important;
- align-items: stretch;
- gap: 0 !important;
- width: 100%;
-}
-
-.endpoint-view_list .shopping-product-input-group > .form-control,
-.endpoint-view_list .shopping-expense-input-group > .form-control,
-.endpoint-view_list .shopping-product-input-group > .btn,
-.endpoint-view_list .shopping-expense-input-group > .btn {
- position: relative;
- min-height: 46px;
- box-shadow: none;
-}
-
-.endpoint-view_list .shopping-product-input-group > .shopping-product-name-input,
-.endpoint-view_list .shopping-expense-input-group > .shopping-expense-amount-input {
- border-top-right-radius: 0 !important;
- border-bottom-right-radius: 0 !important;
-}
-
-.endpoint-view_list .shopping-product-input-group > .shopping-qty-input {
- border-radius: 0 !important;
- border-left-width: 0 !important;
-}
-
-.endpoint-view_list .shopping-product-input-group > .shopping-compact-submit,
-.endpoint-view_list .shopping-expense-input-group > .shopping-compact-submit,
-.endpoint-view_list .share-submit-btn {
- display: inline-flex;
- align-items: center;
- justify-content: center;
- gap: .35rem;
- margin-left: 0 !important;
- min-width: 7.25rem;
- border-top-left-radius: 0 !important;
- border-bottom-left-radius: 0 !important;
- border-top-right-radius: .9rem !important;
- border-bottom-right-radius: .9rem !important;
- border-left-width: 0 !important;
-}
-
-@media (max-width: 767.98px) {
- .endpoint-view_list .shopping-product-input-group > .shopping-product-name-input {
- flex: 0 0 60% !important;
- max-width: 60% !important;
- min-width: 0;
- }
-
- .endpoint-view_list .shopping-product-input-group > .shopping-qty-input {
- flex: 0 0 15% !important;
- max-width: 15% !important;
- min-width: 0;
- padding-left: .35rem;
- padding-right: .35rem;
- }
-
- .endpoint-view_list .shopping-product-input-group > .shopping-compact-submit {
- flex: 0 0 25% !important;
- width: 25% !important;
- min-width: 0 !important;
- padding-left: .4rem;
- padding-right: .4rem;
- }
-
- .endpoint-view_list .shopping-expense-input-group > .shopping-expense-amount-input {
- flex: 1 1 auto !important;
- min-width: 0;
- }
-
- .endpoint-view_list .shopping-expense-input-group > .shopping-compact-submit {
- flex: 0 0 5rem !important;
- width: 5rem !important;
- min-width: 5rem !important;
- padding-left: .35rem;
- padding-right: .35rem;
- }
-
- .endpoint-view_list .shopping-product-input-group > .shopping-compact-submit .shopping-btn-label,
- .endpoint-view_list .shopping-expense-input-group > .shopping-compact-submit .shopping-btn-label {
- display: none;
- }
-
- .endpoint-view_list .shopping-product-input-group > .shopping-compact-submit .shopping-btn-icon,
- .endpoint-view_list .shopping-expense-input-group > .shopping-compact-submit .shopping-btn-icon {
- margin: 0;
- font-size: 1rem;
- }
-}
-
-/* --- JS render + progress bar consistency patch --- */
-#progress-bar-purchased {
- background: linear-gradient(135deg, rgba(39,208,125,0.96), rgba(22,150,91,0.98)) !important;
-}
-
-#progress-bar-not-purchased {
- background: linear-gradient(135deg, rgba(246,196,83,0.96), rgba(224,164,26,0.98)) !important;
-}
-
-#progress-bar-remaining {
- background: rgba(255,255,255,0.08) !important;
-}
-
-
-/* =========================================================
- Shopping item rows: shared base alignment + mobile fixes
-========================================================= */
-/* v10.2 item row consistency and mobile share fixes */
-.shopping-item-text {
- line-height: 1.35;
-}
-
-.shopping-item-text .info-line {
- display: inline;
- flex-basis: auto;
- margin-top: 0;
- white-space: normal;
-}
-
-.shopping-item-text .info-line > span {
- display: inline;
-}
-
-.shopping-item-text .item-added-by-meta {
- color: currentColor;
- opacity: .72;
- font-size: .92em;
-}
-
-.shopping-item-text .item-added-by-meta b {
- font-weight: 600;
-}
-
-.shopping-item-name,
-.shopping-item-text .info-line {
- overflow-wrap: break-word;
- word-break: normal;
-}
-
-.shopping-item-actions {
- flex: 0 0 auto;
-}
-
-@media (max-width: 575.98px) {
- .shopping-item-head {
- flex-wrap: wrap;
- align-items: flex-start;
- }
-
- .shopping-item-text {
- flex: 1 1 100%;
- min-width: 0;
- }
-
- .shopping-item-actions {
- width: 100%;
- margin-left: 0;
- justify-content: flex-end;
- }
-}
-
-
-/* v10.3 alignment fixes for list/share */
-.hide-purchased-switch--right {
- display: inline-flex !important;
- align-items: center;
- justify-content: flex-end;
- gap: .6rem;
- width: auto;
- margin-left: auto;
- padding: 0 !important;
- border: 0 !important;
- background: transparent !important;
- box-shadow: none !important;
-}
-
-.hide-purchased-switch--right::before,
-.hide-purchased-switch--right::after {
- display: none !important;
-}
-
-.hide-purchased-switch--right .form-check-input {
- order: 1;
- margin: 0;
- float: none;
- flex: 0 0 auto;
-}
-
-.hide-purchased-switch--right .form-check-label {
- order: 0;
- margin: 0 !important;
- white-space: nowrap;
-}
-
-.list-action-row {
- display: flex;
- flex-wrap: nowrap;
- align-items: stretch;
- gap: .65rem;
-}
-
-.list-action-row__form {
- display: flex;
- flex: 1 1 50%;
-}
-
-.list-action-row__btn {
- width: 100%;
-}
-
-.list-action-row > .list-action-row__btn {
- flex: 1 1 50%;
-}
-
-.shopping-item-head {
- flex-wrap: nowrap;
- align-items: center;
-}
-
-.shopping-item-text {
- flex: 1 1 auto;
- min-width: 0;
-}
-
-.shopping-item-text .info-line {
- flex-basis: auto;
-}
-
-.shopping-item-actions {
- align-items: center;
- justify-content: flex-end;
- flex: 0 0 auto;
- white-space: nowrap;
-}
-
-.shopping-item-actions .btn {
- flex: 0 0 auto;
-}
-
-@media (max-width: 575.98px) {
- .shopping-item-main {
- align-items: center;
- }
-
- .shopping-item-head {
- flex-wrap: nowrap;
- align-items: center;
- gap: .4rem;
- }
-
- .shopping-item-text {
- flex: 1 1 auto;
- min-width: 0;
- gap: .25rem;
- }
-
- .shopping-item-actions {
- width: auto;
- margin-left: auto;
- gap: .25rem;
- }
-
- .shopping-item-actions .btn {
- min-width: 2rem;
- padding: .3rem .42rem;
- }
-
- .hide-purchased-switch--right {
- width: auto;
- max-width: 100%;
- }
-
- .list-action-row {
- gap: .5rem;
- }
-
- .list-action-row > .list-action-row__btn,
- .list-action-row__form {
- flex: 1 1 50%;
- min-width: 0;
- }
-
- .list-action-row__btn {
- padding-left: .55rem;
- padding-right: .55rem;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- }
-}
-
-
-/* layout polish 2026-03-15: toolbar, sorting and item alignment */
-.list-header-toolbar {
- width: 100%;
-}
-
-.list-header-toolbar > h2 {
- flex: 1 1 auto;
- min-width: 0;
-}
-
-.list-header-toolbar .list-toolbar {
- flex: 0 0 auto;
- width: auto;
- margin-left: auto;
-}
-
-.list-toolbar__sort.btn {
- display: inline-flex;
- align-items: center;
- justify-content: center;
- white-space: nowrap;
- border-width: 1px !important;
-}
-
-.drag-handle {
- display: none !important;
- cursor: grab;
-}
-
-body.sorting-active .drag-handle {
- display: inline-flex !important;
-}
-
-body.sorting-active .shopping-item-row {
- cursor: grab;
-}
-
-body.sorting-active .shopping-item-row:active,
-body.sorting-active .drag-handle:active {
- cursor: grabbing;
-}
-
-body.sorting-active .shopping-item-row .large-checkbox {
- pointer-events: none;
-}
-
-.endpoint-list_share .shopping-item-name,
-.endpoint-list_share .shopping-item-text .info-line,
-.endpoint-shared_list .shopping-item-name,
-.endpoint-shared_list .shopping-item-text .info-line {
- overflow-wrap: break-word;
- word-break: normal;
-}
-
-.endpoint-list_share input[type="checkbox"].large-checkbox::before,
-.endpoint-shared_list input[type="checkbox"].large-checkbox::before,
-.endpoint-view_list input[type="checkbox"].large-checkbox::before {
- font-size: 1.7em;
-}
-
-@media (max-width: 575.98px) {
- .endpoint-view_list .list-toolbar {
- display: grid !important;
- grid-template-columns: minmax(0, 1fr) auto;
- align-items: center !important;
- gap: .4rem !important;
- flex-wrap: nowrap !important;
- }
-
- .endpoint-view_list .list-toolbar__sort.btn {
- min-width: 0;
- padding: .35rem .55rem;
- font-size: .82rem;
- }
-
- .endpoint-view_list .hide-purchased-switch--right {
- min-width: 0;
- gap: .25rem;
- font-size: .82rem;
- }
-
- .endpoint-view_list .hide-purchased-switch--right .form-check-label {
- margin-left: .25rem !important;
- white-space: nowrap;
- }
-
- .endpoint-view_list .hide-purchased-switch--right .form-check-input {
- transform: scale(.92);
- transform-origin: center;
- }
-
- .list-header-toolbar {
- align-items: flex-start !important;
- }
-
- .list-header-toolbar .list-toolbar {
- width: 100%;
- justify-content: flex-end !important;
- }
-}
-
-/* hotfix 2026-03-15 v3: /share item layout parity with /list */
-/* hotfix 2026-03-15: /share item layout parity with /list */
-.endpoint-list_share .shopping-item-row,
-.endpoint-shared_list .shopping-item-row {
- overflow: hidden;
- padding: .8rem .95rem;
-}
-
-.endpoint-list_share .shopping-item-main,
-.endpoint-shared_list .shopping-item-main,
-.endpoint-view_list .shopping-item-main,
-.endpoint-list .shopping-item-main {
- display: flex;
- align-items: center;
- gap: .75rem;
- width: 100%;
-}
-
-.endpoint-list_share .shopping-item-content,
-.endpoint-shared_list .shopping-item-content,
-.endpoint-view_list .shopping-item-content,
-.endpoint-list .shopping-item-content {
- flex: 1 1 auto;
- min-width: 0;
- width: auto;
-}
-
-.endpoint-list_share .shopping-item-head,
-.endpoint-shared_list .shopping-item-head,
-.endpoint-view_list .shopping-item-head,
-.endpoint-list .shopping-item-head {
- display: flex;
- align-items: center;
- justify-content: space-between;
- gap: .75rem;
-}
-
-.endpoint-list_share .shopping-item-text,
-.endpoint-shared_list .shopping-item-text,
-.endpoint-view_list .shopping-item-text,
-.endpoint-list .shopping-item-text {
- flex: 1 1 auto;
- min-width: 0;
- display: flex;
- align-items: center;
- align-content: center;
- gap: .35rem;
- flex-wrap: wrap;
-}
-
-.endpoint-list_share .shopping-item-name,
-.endpoint-shared_list .shopping-item-name,
-.endpoint-view_list .shopping-item-name,
-.endpoint-list .shopping-item-name {
- display: inline;
- min-width: 0;
- max-width: 100%;
- white-space: normal;
- overflow-wrap: break-word;
- word-break: normal;
-}
-
-.endpoint-list_share .shopping-item-text .badge,
-.endpoint-shared_list .shopping-item-text .badge,
-.endpoint-view_list .shopping-item-text .badge,
-.endpoint-list .shopping-item-text .badge,
-.endpoint-list_share .shopping-item-text .info-line,
-.endpoint-shared_list .shopping-item-text .info-line,
-.endpoint-view_list .shopping-item-text .info-line,
-.endpoint-list .shopping-item-text .info-line {
- align-self: center;
-}
-
-.endpoint-list_share .shopping-item-text .info-line,
-.endpoint-shared_list .shopping-item-text .info-line,
-.endpoint-view_list .shopping-item-text .info-line,
-.endpoint-list .shopping-item-text .info-line {
- display: block;
- flex: 0 0 100%;
- width: 100%;
- margin-top: .1rem;
- white-space: normal;
- overflow-wrap: break-word;
- word-break: normal;
-}
-
-.endpoint-list_share .shopping-item-actions,
-.endpoint-shared_list .shopping-item-actions,
-.endpoint-view_list .shopping-item-actions,
-.endpoint-list .shopping-item-actions {
- display: inline-flex;
- flex: 0 0 auto;
- flex-wrap: nowrap;
- align-items: center;
- align-self: center;
- justify-content: flex-end;
- gap: .35rem;
- margin-left: 0;
- white-space: nowrap;
-}
-
-.endpoint-list_share .shopping-item-actions .btn,
-.endpoint-shared_list .shopping-item-actions .btn {
- display: inline-flex;
- align-items: center;
- justify-content: center;
- min-width: 2.25rem;
- padding: .34rem .48rem;
-}
-
-.endpoint-list_share .shopping-item-main > .large-checkbox,
-.endpoint-shared_list .shopping-item-main > .large-checkbox,
-.endpoint-view_list .shopping-item-main > .large-checkbox {
- flex: 0 0 auto;
- align-self: center;
-}
-
-@media (max-width: 575.98px) {
- .endpoint-list_share .shopping-item-main,
- .endpoint-shared_list .shopping-item-main,
- .endpoint-view_list .shopping-item-main,
- .endpoint-list .shopping-item-main {
- gap: .55rem;
- }
-
- .endpoint-list_share .shopping-item-head,
- .endpoint-shared_list .shopping-item-head,
- .endpoint-view_list .shopping-item-head,
- .endpoint-list .shopping-item-head {
- display: flex;
- align-items: center;
- justify-content: space-between;
- gap: .45rem;
- }
-
- .endpoint-list_share .shopping-item-text,
- .endpoint-shared_list .shopping-item-text,
- .endpoint-view_list .shopping-item-text,
- .endpoint-list .shopping-item-text {
- flex: 1 1 auto;
- min-width: 0;
- gap: .25rem;
- }
-
- .endpoint-list_share .shopping-item-actions,
- .endpoint-shared_list .shopping-item-actions,
- .endpoint-view_list .shopping-item-actions,
- .endpoint-list .shopping-item-actions {
- align-self: start;
- width: auto;
- margin-left: auto;
- gap: .25rem;
- }
-
- .endpoint-list_share .shopping-item-actions .btn,
- .endpoint-shared_list .shopping-item-actions .btn {
- min-width: 2rem;
- padding: .3rem .42rem;
- }
-}
-
-.endpoint-list_share input[type="checkbox"].large-checkbox::before,
-.endpoint-shared_list input[type="checkbox"].large-checkbox::before {
- font-size: 1.75em;
-}
-
-/* mobile menu simplification 2026-03-15 */
-.app-mobile-menu {
- display: flex;
- align-items: center;
-}
-
-.app-mobile-menu__toggle {
- display: inline-flex;
- align-items: center;
- justify-content: center;
- width: 3rem;
- height: 3rem;
- border-radius: 14px;
- background: rgba(255,255,255,0.04);
-}
-
-.app-mobile-menu__panel {
- min-width: 14rem;
- padding: .4rem;
- border-radius: 16px;
- background: linear-gradient(180deg, rgba(14,22,35,0.98), rgba(9,15,26,0.98)) !important;
- border: 1px solid rgba(255,255,255,0.1);
- box-shadow: 0 18px 36px rgba(0,0,0,0.28);
-}
-
-.app-mobile-menu__item {
- display: flex;
- align-items: center;
- gap: .55rem;
- min-height: 2.6rem;
- padding: .55rem .75rem;
- color: #fff;
- border-radius: 12px;
-}
-
-.app-mobile-menu__item:hover,
-.app-mobile-menu__item:focus {
- background: rgba(255,255,255,0.08);
- color: #fff;
-}
-
-@media (min-width: 992px) {
- .app-mobile-menu {
- display: none !important;
- }
-}
-
-
-/* v5.1 create-list temp toggle mobile/Desktop fix */
-.create-list-input-group {
- display: flex;
- flex-wrap: nowrap !important;
- align-items: stretch;
- gap: 0 !important;
-}
-
-.create-list-input-group > .form-control {
- flex: 1 1 auto !important;
- width: 1% !important;
- min-width: 0 !important;
- border-top-right-radius: 0 !important;
- border-bottom-right-radius: 0 !important;
-}
-
-.create-list-input-group > .create-list-temp-toggle,
-.create-list-input-group > #tempToggle {
- flex: 0 0 auto !important;
- width: auto !important;
- min-width: 10rem;
- margin-left: -1px;
- border-top-left-radius: 0 !important;
- border-bottom-left-radius: 0 !important;
- border-top-right-radius: 14px !important;
- border-bottom-right-radius: 14px !important;
- background: rgba(255,255,255,0.03) !important;
- border-color: var(--app-border) !important;
- color: var(--app-text) !important;
- transition: background-color .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease;
-}
-
-.create-list-input-group > .create-list-temp-toggle.is-active,
-.create-list-input-group > #tempToggle.is-active {
- background: rgba(41, 209, 125, 0.16) !important;
- border-color: rgba(41, 209, 125, 0.72) !important;
- color: #9bf0c1 !important;
- box-shadow: inset 0 0 0 1px rgba(41, 209, 125, 0.15);
-}
-
-.create-list-input-group > .create-list-temp-toggle:hover,
-.create-list-input-group > #tempToggle:hover,
-.create-list-input-group > .create-list-temp-toggle:focus,
-.create-list-input-group > #tempToggle:focus {
- background: rgba(255,255,255,0.06) !important;
- color: var(--app-text) !important;
-}
-
-.create-list-input-group > .create-list-temp-toggle.is-active:hover,
-.create-list-input-group > #tempToggle.is-active:hover,
-.create-list-input-group > .create-list-temp-toggle.is-active:focus,
-.create-list-input-group > #tempToggle.is-active:focus {
- background: rgba(41, 209, 125, 0.2) !important;
- color: #b7f7d2 !important;
-}
-
-@media (max-width: 767.98px) {
- .create-list-input-group {
- gap: 0 !important;
- }
-
- .create-list-input-group > .form-control {
- padding-left: .9rem;
- padding-right: .75rem;
- }
-
- .create-list-input-group > .create-list-temp-toggle,
- .create-list-input-group > #tempToggle {
- min-width: 8.75rem;
- padding-left: .85rem;
- padding-right: .85rem;
- font-size: .92rem;
- letter-spacing: 0;
- }
-}
-
-
-.endpoint-list_share .shopping-item-actions,
-.endpoint-shared_list .shopping-item-actions,
-.endpoint-view_list .shopping-item-actions,
-.endpoint-list .shopping-item-actions {
- gap: .35rem !important;
- min-height: 2.35rem !important;
-}
-
-.endpoint-list_share .shopping-action-btn,
-.endpoint-shared_list .shopping-action-btn,
-.endpoint-view_list .shopping-action-btn,
-.endpoint-list .shopping-action-btn {
- width: 2.35rem !important;
- height: 2.35rem !important;
- min-width: 2.35rem !important;
- min-height: 2.35rem !important;
- padding: 0 !important;
- border-radius: .7rem !important;
- font-size: 1rem !important;
- line-height: 1 !important;
-}
-
-.endpoint-list_share .shopping-action-btn--wide,
-.endpoint-shared_list .shopping-action-btn--wide,
-.endpoint-view_list .shopping-action-btn--wide,
-.endpoint-list .shopping-action-btn--wide {
- width: auto !important;
- min-width: 5.9rem !important;
- padding: 0 .8rem !important;
-}
-.endpoint-list_share .shopping-action-btn--countdown,
-.endpoint-shared_list .shopping-action-btn--countdown,
-.endpoint-view_list .shopping-action-btn--countdown,
-.endpoint-list .shopping-action-btn--countdown {
- width: auto !important;
- min-width: 3.2rem !important;
- padding: 0 .65rem !important;
-}
-
-
-.endpoint-list_share .shopping-action-btn > *,
-.endpoint-shared_list .shopping-action-btn > *,
-.endpoint-view_list .shopping-action-btn > *,
-.endpoint-list .shopping-action-btn > * {
- line-height: 1 !important;
-}
-
-@media (max-width: 575.98px) {
- .endpoint-list_share .shopping-action-btn,
- .endpoint-shared_list .shopping-action-btn,
- .endpoint-view_list .shopping-action-btn,
- .endpoint-list .shopping-action-btn {
- width: 2.15rem !important;
- height: 2.15rem !important;
- min-width: 2.15rem !important;
- min-height: 2.15rem !important;
- border-radius: .65rem !important;
- }
-
- .endpoint-list_share .shopping-action-btn--wide,
- .endpoint-shared_list .shopping-action-btn--wide,
- .endpoint-view_list .shopping-action-btn--wide,
- .endpoint-list .shopping-action-btn--wide {
- min-width: 5.4rem !important;
- padding: 0 .72rem !important;
- }
-}
-
-@media (max-width: 575.98px) {
- .endpoint-list_share .shopping-action-btn--countdown,
- .endpoint-shared_list .shopping-action-btn--countdown,
- .endpoint-view_list .shopping-action-btn--countdown,
- .endpoint-list .shopping-action-btn--countdown {
- min-width: 3rem !important;
- padding: 0 .55rem !important;
- }
-}
-
-body:not(.sorting-active) .drag-handle {
- display: none !important;
-}
-
-
-/* =========================================================
- Consistent form controls + password toggle
-========================================================= */
-:root {
- --ui-control-height: 42px;
- --ui-control-radius: 14px;
- --ui-control-focus-ring: 0 0 0 .25rem rgba(24, 64, 118, .18);
-}
-
-.ui-consistent-input {
- min-height: var(--ui-control-height) !important;
- border-radius: var(--ui-control-radius) !important;
-}
-
-.ui-password-group {
- display: flex !important;
- flex-wrap: nowrap !important;
- align-items: stretch !important;
- width: 100% !important;
- gap: 0 !important;
- overflow: hidden !important;
- border: 1px solid var(--ui-border-strong) !important;
- border-radius: var(--ui-control-radius) !important;
- background: rgba(255,255,255,0.04) !important;
- background-image: none !important;
- box-shadow: none !important;
-}
-
-.ui-password-group:focus-within {
- border-color: rgba(25, 135, 84, 0.6) !important;
- box-shadow: 0 0 0 0.2rem rgba(25, 135, 84, 0.16) !important;
-}
-
-.ui-password-group > .form-control {
- flex: 1 1 auto !important;
- width: 1% !important;
- min-width: 0 !important;
- min-height: var(--ui-control-height) !important;
- border: 0 !important;
- border-radius: 0 !important;
- box-shadow: none !important;
- background: transparent !important;
- background-color: transparent !important;
- background-image: none !important;
- background-clip: padding-box !important;
-}
-
-.ui-password-group > .form-control:focus {
- box-shadow: none !important;
- background: transparent !important;
- background-color: transparent !important;
-}
-
-.ui-password-group > .ui-password-toggle {
- appearance: none !important;
- -webkit-appearance: none !important;
- display: inline-flex !important;
- align-items: center !important;
- justify-content: center !important;
- flex: 0 0 46px !important;
- width: 46px !important;
- min-width: 46px !important;
- min-height: var(--ui-control-height) !important;
- padding: 0 !important;
- margin: 0 !important;
- cursor: pointer !important;
- background: transparent !important;
- background-color: transparent !important;
- background-image: none !important;
- color: rgba(255,255,255,0.72) !important;
- border: 0 !important;
- border-left: 1px solid rgba(255, 255, 255, 0.10) !important;
- border-radius: 0 !important;
- box-shadow: none !important;
- line-height: 1 !important;
-}
-
-.ui-password-group > .ui-password-toggle:hover,
-.ui-password-group > .ui-password-toggle:focus,
-.ui-password-group > .ui-password-toggle:focus-visible {
- background: rgba(255,255,255,0.03) !important;
- background-color: rgba(255,255,255,0.03) !important;
- color: #fff !important;
- border-left-color: rgba(255,255,255,0.16) !important;
- box-shadow: none !important;
- outline: none !important;
-}
-
-.ui-password-group > .ui-password-toggle.is-active {
- background: rgba(255,255,255,0.05) !important;
- background-color: rgba(255,255,255,0.05) !important;
- color: #fff !important;
-}
-
-.ui-password-group > .ui-password-toggle > * {
- pointer-events: none !important;
-}
-
-.endpoint-login form .form-control:not(.form-control-sm),
-.endpoint-system_auth form .form-control:not(.form-control-sm),
-.endpoint-edit_my_list form .form-control:not(.form-control-sm):not(.form-control-plaintext),
-.endpoint-edit_list form .form-control:not(.form-control-sm):not(.form-control-plaintext),
-.endpoint-user_management form .form-control:not(.form-control-sm),
-.endpoint-user_management .modal .form-control:not(.form-control-sm),
-.endpoint-edit_my_list form .form-select,
-.endpoint-edit_list form .form-select,
-.endpoint-user_management form .form-select,
-.endpoint-user_management .modal .form-select {
- min-height: var(--ui-control-height) !important;
-}
-
-.endpoint-login form .form-control.ui-consistent-input,
-.endpoint-system_auth form .form-control.ui-consistent-input,
-.endpoint-edit_my_list form .ui-consistent-input,
-.endpoint-edit_list form .ui-consistent-input,
-.endpoint-user_management form .ui-consistent-input,
-.endpoint-user_management .modal .ui-consistent-input {
- border-radius: var(--ui-control-radius) !important;
-}
-
-/*
- Password fields use only the generic ui-password-group rules above.
- Keep endpoint-specific overrides out of login/system_auth/admin screens,
- otherwise future changes start fighting through selector specificity.
-*/
-.ui-password-group > .form-control.ui-consistent-input {
- border-radius: 0 !important;
-}
-
-.endpoint-edit_my_list .access-editor .access-input,
-.endpoint-edit_list .input-group.input-group-sm .form-control {
- min-height: var(--ui-control-height) !important;
-}
-
-@media (max-width: 575.98px) {
- .ui-password-group > .ui-password-toggle {
- flex-basis: 44px !important;
- width: 44px !important;
- min-width: 44px !important;
- }
-}
-
-/* wyróżnienie pola dodawania produktu */
-.endpoint-list .shopping-entry-card,
-.endpoint-list_share .shopping-entry-card,
-.endpoint-shared_list .shopping-entry-card,
-.endpoint-view_list .shopping-entry-card {
- background: linear-gradient(180deg, rgba(25, 135, 84, 0.16), rgba(13, 17, 23, 0.92));
- border: 1px solid rgba(25, 135, 84, 0.42);
- border-radius: 1rem;
- padding: .9rem;
- box-shadow: 0 .5rem 1.2rem rgba(0, 0, 0, 0.18);
-}
-
-.endpoint-list .shopping-entry-card__label,
-.endpoint-list_share .shopping-entry-card__label,
-.endpoint-shared_list .shopping-entry-card__label,
-.endpoint-view_list .shopping-entry-card__label {
- display: inline-flex;
- align-items: center;
- gap: .4rem;
- margin-bottom: .2rem;
- font-size: .95rem;
- font-weight: 700;
- color: #d1f7df;
-}
-
-.endpoint-list .shopping-entry-card__hint,
-.endpoint-list_share .shopping-entry-card__hint,
-.endpoint-shared_list .shopping-entry-card__hint,
-.endpoint-view_list .shopping-entry-card__hint {
- margin-bottom: .75rem;
- color: rgba(255, 255, 255, 0.72);
- font-size: .82rem;
- line-height: 1.35;
-}
-
-.endpoint-list .shopping-entry-card .shopping-product-input-group,
-.endpoint-list_share .shopping-entry-card .shopping-product-input-group,
-.endpoint-shared_list .shopping-entry-card .shopping-product-input-group,
-.endpoint-view_list .shopping-entry-card .shopping-product-input-group {
- margin-bottom: 0 !important;
-}
-
-.endpoint-list .shopping-entry-card .shopping-product-input-group > .form-control,
-.endpoint-list_share .shopping-entry-card .shopping-product-input-group > .form-control,
-.endpoint-shared_list .shopping-entry-card .shopping-product-input-group > .form-control,
-.endpoint-view_list .shopping-entry-card .shopping-product-input-group > .form-control {
- border-color: rgba(25, 135, 84, 0.55) !important;
- background: rgba(17, 24, 39, 0.95) !important;
-}
-
-.endpoint-list .shopping-entry-card .shopping-product-input-group > .form-control::placeholder,
-.endpoint-list_share .shopping-entry-card .shopping-product-input-group > .form-control::placeholder,
-.endpoint-shared_list .shopping-entry-card .shopping-product-input-group > .form-control::placeholder,
-.endpoint-view_list .shopping-entry-card .shopping-product-input-group > .form-control::placeholder {
- color: rgba(255, 255, 255, 0.62);
-}
-
-.endpoint-list .shopping-entry-card .shopping-product-input-group > .shopping-product-name-input:focus,
-.endpoint-list_share .shopping-entry-card .shopping-product-input-group > .shopping-product-name-input:focus,
-.endpoint-shared_list .shopping-entry-card .shopping-product-input-group > .shopping-product-name-input:focus,
-.endpoint-view_list .shopping-entry-card .shopping-product-input-group > .shopping-product-name-input:focus {
- box-shadow: inset 0 0 0 1px rgba(25, 135, 84, 0.25), 0 0 0 .2rem rgba(25, 135, 84, 0.18);
-}
-
-@media (max-width: 767.98px) {
- .endpoint-list .shopping-entry-card,
- .endpoint-list_share .shopping-entry-card,
- .endpoint-shared_list .shopping-entry-card,
- .endpoint-view_list .shopping-entry-card {
- padding: .8rem;
- border-radius: .95rem;
- }
-
- .endpoint-list .shopping-entry-card__label,
- .endpoint-list_share .shopping-entry-card__label,
- .endpoint-shared_list .shopping-entry-card__label,
- .endpoint-view_list .shopping-entry-card__label {
- font-size: .92rem;
- }
-
- .endpoint-list .shopping-entry-card__hint,
- .endpoint-list_share .shopping-entry-card__hint,
- .endpoint-shared_list .shopping-entry-card__hint,
- .endpoint-view_list .shopping-entry-card__hint {
- font-size: .78rem;
- margin-bottom: .65rem;
- }
-}
-
-/* ========== /expenses mobile fixes: separate range pickers + better wrapping ========== */
-.endpoint-expenses .expenses-range-toolbar {
- width: 100%;
-}
-
-.endpoint-expenses .expenses-range-group {
- flex-wrap: wrap;
- justify-content: center;
- width: 100%;
-}
-
-.endpoint-expenses .expenses-range-group > .btn {
- white-space: nowrap;
-}
-
-.endpoint-expenses .expenses-date-range {
- align-items: stretch;
-}
-
-@media (max-width: 767.98px) {
- .endpoint-expenses .expenses-range-toolbar {
- justify-content: stretch !important;
- overflow: visible;
- padding-bottom: 0;
- }
-
- .endpoint-expenses .expenses-range-group {
- display: grid !important;
- grid-template-columns: repeat(2, minmax(0, 1fr));
- gap: 0.55rem;
- width: 100%;
- min-width: 0;
- }
-
- .endpoint-expenses .expenses-table-toolbar .expenses-range-group {
- grid-template-columns: repeat(3, minmax(0, 1fr));
- }
-
- .endpoint-expenses .expenses-range-group > .btn {
- flex: initial !important;
- width: 100%;
- min-width: 0;
- padding-inline: 0.55rem;
- font-size: 0.95rem;
- }
-
- .endpoint-expenses .expenses-date-range {
- display: grid !important;
- grid-template-columns: 52px minmax(0, 1fr);
- gap: 0.55rem;
- width: 100%;
- max-width: 100% !important;
- flex-wrap: wrap !important;
- }
-
- .endpoint-expenses .expenses-date-range > .input-group-text,
- .endpoint-expenses .expenses-date-range > .form-control,
- .endpoint-expenses .expenses-date-range > .btn {
- width: 100% !important;
- min-width: 0 !important;
- flex: initial !important;
- border-radius: 0.85rem !important;
- }
-
- .endpoint-expenses .expenses-date-range > .btn {
- grid-column: 1 / -1;
- }
-}
-
-
-/* /share expense entry card aligned with product card */
-.endpoint-list .shopping-entry-card--expense,
-.endpoint-list_share .shopping-entry-card--expense,
-.endpoint-shared_list .shopping-entry-card--expense,
-.endpoint-view_list .shopping-entry-card--expense {
- background: linear-gradient(180deg, rgba(13, 110, 253, 0.16), rgba(13, 17, 23, 0.92));
- border-color: rgba(13, 110, 253, 0.42);
-}
-
-.endpoint-list .shopping-entry-card--expense .shopping-entry-card__label,
-.endpoint-list_share .shopping-entry-card--expense .shopping-entry-card__label,
-.endpoint-shared_list .shopping-entry-card--expense .shopping-entry-card__label,
-.endpoint-view_list .shopping-entry-card--expense .shopping-entry-card__label {
- color: #d7e9ff;
-}
-
-.endpoint-list .shopping-entry-card--expense .shopping-expense-input-group,
-.endpoint-list_share .shopping-entry-card--expense .shopping-expense-input-group,
-.endpoint-shared_list .shopping-entry-card--expense .shopping-expense-input-group,
-.endpoint-view_list .shopping-entry-card--expense .shopping-expense-input-group {
- margin-bottom: 0 !important;
-}
-
-.endpoint-list .shopping-entry-card--expense .shopping-expense-input-group > .form-control,
-.endpoint-list_share .shopping-entry-card--expense .shopping-expense-input-group > .form-control,
-.endpoint-shared_list .shopping-entry-card--expense .shopping-expense-input-group > .form-control,
-.endpoint-view_list .shopping-entry-card--expense .shopping-expense-input-group > .form-control {
- border-color: rgba(13, 110, 253, 0.55) !important;
- background: rgba(17, 24, 39, 0.95) !important;
-}
-
-.endpoint-list .shopping-entry-card--expense .shopping-expense-input-group > .form-control::placeholder,
-.endpoint-list_share .shopping-entry-card--expense .shopping-expense-input-group > .form-control::placeholder,
-.endpoint-shared_list .shopping-entry-card--expense .shopping-expense-input-group > .form-control::placeholder,
-.endpoint-view_list .shopping-entry-card--expense .shopping-expense-input-group > .form-control::placeholder {
- color: rgba(255, 255, 255, 0.62);
-}
-
-.endpoint-list .shopping-entry-card--expense .shopping-expense-input-group > .shopping-expense-amount-input:focus,
-.endpoint-list_share .shopping-entry-card--expense .shopping-expense-input-group > .shopping-expense-amount-input:focus,
-.endpoint-shared_list .shopping-entry-card--expense .shopping-expense-input-group > .shopping-expense-amount-input:focus,
-.endpoint-view_list .shopping-entry-card--expense .shopping-expense-input-group > .shopping-expense-amount-input:focus {
- box-shadow: inset 0 0 0 1px rgba(13, 110, 253, 0.25), 0 0 0 .2rem rgba(13, 110, 253, 0.18);
-}
-
-.endpoint-list .share-submit-btn--expense,
-.endpoint-list_share .share-submit-btn--expense,
-.endpoint-shared_list .share-submit-btn--expense,
-.endpoint-view_list .share-submit-btn--expense {
- color: #8ec5ff;
- border-color: rgba(13, 110, 253, 0.72) !important;
- background: rgba(13, 110, 253, 0.12);
-}
-
-.endpoint-list .share-submit-btn--expense:hover,
-.endpoint-list_share .share-submit-btn--expense:hover,
-.endpoint-shared_list .share-submit-btn--expense:hover,
-.endpoint-view_list .share-submit-btn--expense:hover,
-.endpoint-list .share-submit-btn--expense:focus,
-.endpoint-list_share .share-submit-btn--expense:focus,
-.endpoint-shared_list .share-submit-btn--expense:focus,
-.endpoint-view_list .share-submit-btn--expense:focus {
- color: #fff;
- border-color: rgba(13, 110, 253, 0.9) !important;
- background: rgba(13, 110, 253, 0.22);
- box-shadow: 0 0 0 .2rem rgba(13, 110, 253, 0.16);
-}
-
-/* UX polish 2026-03-19: list quick actions card */
-.list-quick-actions {
- display: grid;
- gap: .9rem;
- padding: 1rem;
- border: 1px solid rgba(255,255,255,.08);
- border-radius: 1rem;
- background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
- box-shadow: 0 .5rem 1.25rem rgba(0,0,0,.14);
-}
-
-.list-quick-actions__header {
- display: flex;
- align-items: flex-start;
- justify-content: space-between;
- gap: .75rem;
-}
-
-.list-quick-actions__eyebrow {
- font-size: .72rem;
- letter-spacing: .08em;
- text-transform: uppercase;
- color: rgba(255,255,255,.58);
- margin-bottom: .15rem;
-}
-
-.list-quick-actions__title {
- font-size: 1rem;
- font-weight: 700;
- color: #fff;
- line-height: 1.2;
-}
-
-.list-quick-actions__hint {
- font-size: .82rem;
- color: rgba(255,255,255,.62);
- text-align: right;
- max-width: 18rem;
-}
-
-.list-quick-actions__grid {
- display: grid;
- grid-template-columns: repeat(2, minmax(0, 1fr));
- gap: .75rem;
-}
-
-.list-quick-actions__form {
- display: block;
-}
-
-.list-quick-actions__action.btn {
- width: 100%;
- min-height: 78px;
- display: flex;
- align-items: flex-start;
- gap: .75rem;
- padding: .9rem 1rem;
- border-radius: .95rem;
- text-align: left;
- white-space: normal;
-}
-
-.list-quick-actions__action--primary.btn {
- border-color: rgba(255,255,255,.2);
- background: rgba(255,255,255,.03);
-}
-
-.list-quick-actions__action--secondary.btn {
- border-color: rgba(13,110,253,.5);
- background: rgba(13,110,253,.08);
-}
-
-.list-quick-actions__icon {
- flex: 0 0 auto;
- font-size: 1.05rem;
- line-height: 1;
- margin-top: .1rem;
-}
-
-.list-quick-actions__content {
- display: grid;
- gap: .2rem;
- min-width: 0;
-}
-
-.list-quick-actions__label {
- font-size: .95rem;
- font-weight: 600;
- color: #fff;
- line-height: 1.25;
-}
-
-.list-quick-actions__desc {
- font-size: .81rem;
- color: rgba(255,255,255,.66);
- line-height: 1.35;
-}
-
-@media (max-width: 767.98px) {
- .list-quick-actions {
- padding: .9rem;
- gap: .75rem;
- }
-
- .list-quick-actions__header {
- flex-direction: column;
- gap: .35rem;
- }
-
- .list-quick-actions__hint {
- max-width: none;
- text-align: left;
- }
-
- .list-quick-actions__grid {
- grid-template-columns: 1fr;
- }
-
- .list-quick-actions__action.btn {
- min-height: 72px;
- padding: .85rem .9rem;
- }
-}
-
-
-/* =========================================================
- Mobile navbar and user chip
-========================================================= */
-.app-navbar__meta--mobile {
- display: none;
-}
-
-.app-user-chip--mobile {
- max-width: min(46vw, 15rem);
- min-width: 0;
- padding-left: .6rem;
- padding-right: .4rem;
-}
-
-.app-user-chip--mobile .badge {
- max-width: 100%;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
-}
-
-@media (max-width: 991.98px) {
- .app-navbar .container-xxl {
- grid-template-columns: minmax(0, 1fr) auto auto;
- }
-
- .app-navbar__meta--mobile {
- display: flex !important;
- width: auto;
- justify-content: flex-end;
- justify-self: end;
- grid-column: 2;
- min-width: 0;
- max-width: min(42vw, 12rem);
- }
-
- .app-user-chip--mobile {
- display: inline-flex;
- }
-
- .app-mobile-menu {
- grid-column: 3;
- justify-self: end;
- }
-}
-
-@media (max-width: 575.98px) {
- .app-brand__icon {
- width: 2.25rem;
- height: 2.25rem;
- }
-
- .app-user-chip--mobile {
- gap: .35rem;
- padding: .34rem .38rem .34rem .5rem;
- }
-
- .app-user-chip--mobile .app-user-chip__label {
- font-size: .62rem;
- letter-spacing: .05em;
- }
-
- .app-user-chip--mobile .badge {
- font-size: .72rem;
- max-width: 5.9rem;
- }
-}
-
-@media (max-width: 430px) {
- .app-navbar .container-xxl {
- grid-template-columns: minmax(0, 1fr) auto auto;
- gap: .45rem;
- }
-
- .app-user-chip--mobile {
- max-width: min(38vw, 8.5rem);
- }
-
- .app-user-chip--mobile .app-user-chip__label {
- display: none;
- }
-}
-
-/* --- Main page list progress consistency --- */
-.endpoint-main_page .list-group-item {
- display: flex;
- flex-direction: column;
- align-items: stretch;
- justify-content: flex-start;
-}
-
-.endpoint-main_page .main-list-progress-wrap {
- display: block;
- width: 100%;
- flex: 0 0 100%;
- margin-top: 0.8rem !important;
-}
-
-.endpoint-main_page .list-group-item > .main-list-row + .main-list-progress-wrap {
- align-self: stretch;
-}
-
-.endpoint-main_page .main-list-progress {
- width: 100%;
- height: 16px;
- margin-top: 0 !important;
- border: 1px solid rgba(255, 255, 255, 0.08);
- background:
- linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02)),
- var(--dark-700) !important;
- box-shadow:
- inset 0 1px 0 rgba(255, 255, 255, 0.05),
- 0 4px 10px rgba(0, 0, 0, 0.18);
-}
-
-.endpoint-main_page .main-list-progress .progress-bar.bg-success {
- background: linear-gradient(135deg, rgba(40, 199, 111, 0.98), rgba(22, 163, 74, 0.98)) !important;
-}
-
-.endpoint-main_page .main-list-progress .progress-bar.bg-warning {
- background: linear-gradient(135deg, rgba(245, 189, 65, 0.98), rgba(217, 119, 6, 0.98)) !important;
-}
-
-.endpoint-main_page .main-list-progress .progress-bar.bg-transparent {
- background: rgba(255, 255, 255, 0.08) !important;
-}
-
-.endpoint-main_page .main-list-progress__label {
- max-width: calc(100% - 0.85rem);
- padding: 0 0.45rem;
- overflow: hidden;
- text-overflow: ellipsis;
- text-align: center;
- text-shadow: 0 1px 2px rgba(0, 0, 0, 0.45);
- letter-spacing: 0.01em;
-}
-
-@media (max-width: 575.98px) {
- .endpoint-main_page .main-list-progress {
- height: 15px;
- }
-
- .endpoint-main_page .main-list-progress__label {
- font-size: 0.64rem;
- }
-}
-
-.endpoint-main_page #mainStatsCollapse.collapsing,
-.endpoint-main_page #mainStatsCollapse.show {
- overflow: visible;
-}
-
-.endpoint-main_page .main-summary-card {
- height: 100%;
- padding: 1rem 1rem 1.05rem;
- border-radius: 1rem;
- border: 1px solid rgba(255, 255, 255, 0.08);
- background: linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.02)), rgba(9, 16, 28, 0.88);
- box-shadow: 0 12px 28px rgba(0, 0, 0, 0.2);
-}
-
-.endpoint-main_page .main-summary-card__eyebrow {
- font-size: 0.72rem;
- text-transform: uppercase;
- letter-spacing: 0.08em;
- color: rgba(255, 255, 255, 0.65);
- margin-bottom: 0.2rem;
-}
-
-.endpoint-main_page .main-summary-card__title {
- font-size: 1.05rem;
-}
-
-.endpoint-main_page .main-summary-stats {
- display: grid;
- grid-template-columns: repeat(2, minmax(0, 1fr));
- gap: 0.7rem;
-}
-
-.endpoint-main_page .main-summary-stat {
- padding: 0.65rem 0.75rem;
- border-radius: 0.85rem;
- background: rgba(255, 255, 255, 0.04);
- border: 1px solid rgba(255, 255, 255, 0.06);
-}
-
-.endpoint-main_page .main-summary-stat__label {
- display: block;
- font-size: 0.73rem;
- color: rgba(255, 255, 255, 0.66);
- margin-bottom: 0.15rem;
-}
-
-
-@media (max-width: 575.98px) {
- .endpoint-main_page .main-summary-card {
- padding: 0.9rem;
- }
-
- .endpoint-main_page .main-summary-stats {
- grid-template-columns: 1fr;
- }
-}
-
-@media (max-width: 575.98px) {
- .endpoint-list_share .shopping-item-head,
- .endpoint-shared_list .shopping-item-head {
- display: grid;
- grid-template-columns: minmax(0, 1fr) auto;
- align-items: start;
- column-gap: .45rem;
- }
-
- .endpoint-list_share .shopping-item-actions,
- .endpoint-shared_list .shopping-item-actions {
- align-self: start;
- margin-left: 0;
- justify-self: end;
- }
-}
-
-@media (max-width: 575.98px) {
- .endpoint-list_share .shopping-item-main,
- .endpoint-shared_list .shopping-item-main {
- align-items: center;
- }
-
- .endpoint-list_share .shopping-item-text,
- .endpoint-shared_list .shopping-item-text,
- .endpoint-list_share .shopping-item-main > .large-checkbox,
- .endpoint-shared_list .shopping-item-main > .large-checkbox,
- .endpoint-list_share .shopping-item-actions,
- .endpoint-shared_list .shopping-item-actions {
- align-self: center;
- }
-
- .endpoint-list_share .shopping-item-actions,
- .endpoint-shared_list .shopping-item-actions {
- margin-left: auto;
- justify-self: auto;
- }
-}
-
-.endpoint-list #items,
-.endpoint-view_list #items,
-.endpoint-list_share #items,
-.endpoint-shared_list #items {
- display: flex;
- flex-direction: column;
-}
-
-.endpoint-list #items > .list-group-item,
-.endpoint-view_list #items > .list-group-item,
-.endpoint-list_share #items > .list-group-item,
-.endpoint-shared_list #items > .list-group-item {
- margin: 0 !important;
- border-width: 1px !important;
- box-shadow: 0 4px 14px rgba(0,0,0,0.12) !important;
- background-clip: padding-box;
-}
-
-.endpoint-list #items > .list-group-item + .list-group-item,
-.endpoint-view_list #items > .list-group-item + .list-group-item,
-.endpoint-list_share #items > .list-group-item + .list-group-item,
-.endpoint-shared_list #items > .list-group-item + .list-group-item {
- margin-top: 0 !important;
- border-top-width: 1px !important;
-}
-
-/* =========================================================
- Preview product list
-========================================================= */
-
-.preview-product-list {
- display: flex;
- flex-direction: column;
- gap: 1rem;
-}
-
-.preview-product-summary {
- padding: 0 0 0.85rem;
- margin-bottom: 0.1rem;
- border-bottom: 1px solid rgba(255,255,255,0.08);
-}
-
-.preview-product-section {
- display: flex;
- flex-direction: column;
- gap: 0.65rem;
-}
-
-.preview-product-section-title {
- margin: 0;
- font-size: 1.05rem;
- font-weight: 700;
-}
-
-.preview-modal-items {
- display: flex;
- flex-direction: column;
- gap: 0.75rem;
-}
-
-#productPreviewModal .preview-modal-list-item {
- display: flex;
- align-items: center;
- justify-content: space-between;
- gap: 0.75rem;
- width: 100%;
- min-width: 0;
- padding: 0.9rem 1rem;
- margin: 0 !important;
- border-radius: 16px !important;
- border: 1px solid rgba(255,255,255,0.08) !important;
- background: linear-gradient(180deg, rgba(11,22,40,0.92) 0%, rgba(8,16,30,0.92) 100%) !important;
- box-shadow: inset 0 1px 0 rgba(255,255,255,0.03);
-}
-
-#productPreviewModal .preview-modal-list-item:first-child,
-#productPreviewModal .preview-modal-list-item:last-child,
-#productPreviewModal .list-group-flush > .list-group-item:first-child,
-#productPreviewModal .list-group-flush > .list-group-item:last-child {
- border-radius: 16px !important;
-}
-
-#productPreviewModal .preview-modal-list-item__name {
- min-width: 0;
- overflow-wrap: anywhere;
- flex: 1 1 auto;
-}
-
-#productPreviewModal .preview-modal-list-item .badge {
- flex-shrink: 0;
- min-width: 2.5rem;
- border-radius: 10px;
-}
-
-
-/* =========================================================
- Receipt disclosure (share view)
-========================================================= */
-.receipt-disclosure {
- width: 100%;
- cursor: pointer;
- border: 1px solid rgba(255, 255, 255, 0.08);
- border-radius: 20px;
- background: linear-gradient(135deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.02));
- box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
- transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
-}
-
-.receipt-disclosure:hover,
-.receipt-disclosure:focus-visible {
- transform: translateY(-1px);
- border-color: rgba(255, 255, 255, 0.18);
- box-shadow: 0 16px 36px rgba(0, 0, 0, 0.24);
- outline: none;
-}
-
-.receipt-disclosure.is-open {
- border-color: rgba(24, 64, 118, 0.9);
- background: linear-gradient(135deg, rgba(24, 64, 118, 0.22), rgba(255, 255, 255, 0.03));
-}
-
-.receipt-disclosure__content {
- display: flex;
- align-items: center;
- gap: 14px;
- padding: 16px 18px;
-}
-
-.receipt-disclosure__icon {
- display: grid;
- place-items: center;
- width: 48px;
- height: 48px;
- border-radius: 14px;
- background: rgba(255, 255, 255, 0.06);
- font-size: 1.25rem;
- flex-shrink: 0;
-}
-
-.receipt-disclosure__text {
- min-width: 0;
- flex: 1;
-}
-
-.receipt-disclosure__eyebrow {
- font-size: 0.72rem;
- letter-spacing: 0.08em;
- text-transform: uppercase;
- color: rgba(255, 255, 255, 0.52);
- margin-bottom: 2px;
-}
-
-.receipt-disclosure__title {
- font-size: 1rem;
- font-weight: 600;
- color: var(--text-strong);
-}
-
-.receipt-disclosure__meta {
- display: flex;
- align-items: center;
- gap: 12px;
- margin-left: auto;
- flex-shrink: 0;
-}
-
-.receipt-disclosure__count {
- min-width: 34px;
- padding: 6px 10px;
- border-radius: 999px;
- background: rgba(255, 255, 255, 0.08);
- color: var(--text-strong);
- font-size: 0.875rem;
- text-align: center;
-}
-
-.receipt-disclosure__chevron {
- font-size: 1.15rem;
- color: rgba(255, 255, 255, 0.7);
- transition: transform 0.2s ease;
-}
-
-.receipt-disclosure.is-open .receipt-disclosure__chevron {
- transform: rotate(180deg);
-}
-
-@media (max-width: 575.98px) {
- .receipt-disclosure__content {
- padding: 14px;
- gap: 12px;
- }
-
- .receipt-disclosure__icon {
- width: 42px;
- height: 42px;
- border-radius: 12px;
- }
-
- .receipt-disclosure__meta {
- gap: 10px;
- }
-
- .receipt-disclosure__title {
- font-size: 0.95rem;
- }
-}
-
-
-/* =========================================================
- Final form-control normalization for edit/admin screens
-========================================================= */
-.endpoint-edit_my_list .stack-form > .mb-3 > .ui-consistent-input,
-.endpoint-edit_my_list .stack-form > .mb-4 > .ui-consistent-input,
-.endpoint-edit_my_list .stack-form .row .ui-consistent-input,
-.endpoint-edit_list form > .mb-3 > .ui-consistent-input,
-.endpoint-edit_list form > .mb-4 > .ui-consistent-input,
-.endpoint-edit_list form .row .ui-consistent-input,
-.endpoint-user_management .row > [class*="col-"] > .ui-consistent-input,
-.endpoint-user_management .modal .ui-consistent-input {
- border-radius: var(--ui-control-radius) !important;
-}
-
-.endpoint-edit_my_list .ts-wrapper.single .ts-control,
-.endpoint-edit_list .ts-wrapper.single .ts-control,
-.endpoint-edit_my_list .ts-wrapper.multi .ts-control,
-.endpoint-edit_list .ts-wrapper.multi .ts-control {
- min-height: var(--ui-control-height) !important;
- border-radius: var(--ui-control-radius) !important;
-}
-
-/* Share hub redesign (mobile-first) */
-.share-hub {
- border: 1px solid rgba(79, 142, 255, 0.18);
- background: linear-gradient(180deg, rgba(11, 24, 43, 0.98), rgba(8, 17, 31, 0.96)) !important;
-}
-
-.share-hub .card-body {
- padding: 1rem;
-}
-
-.share-hub__top {
- display: flex;
- align-items: flex-start;
- justify-content: space-between;
- gap: 0.9rem;
- margin-bottom: 0.85rem;
-}
-
-.share-hub__eyebrow,
-.share-sheet__eyebrow {
- font-size: 0.72rem;
- letter-spacing: 0.08em;
- text-transform: uppercase;
- color: rgba(186, 210, 240, 0.62);
- margin-bottom: 0.35rem;
-}
-
-.share-hub__title {
- font-size: 1.1rem;
- font-weight: 700;
-}
-
-.share-hub__status,
-.share-sheet__section-head {
- display: flex;
- flex-wrap: wrap;
- gap: 0.45rem;
- align-items: center;
-}
-
-.share-state-badge {
- display: inline-flex;
- align-items: center;
- gap: 0.3rem;
- min-height: 32px;
- padding: 0.45rem 0.72rem;
- font-size: 0.76rem;
- font-weight: 600;
- border: 1px solid rgba(255, 255, 255, 0.08);
-}
-
-.share-state-badge--public {
- background: rgba(41, 209, 125, 0.16);
- color: #dfffea;
-}
-
-.share-state-badge--private {
- background: rgba(255, 255, 255, 0.06);
- color: #edf5ff;
-}
-
-.share-state-badge--link {
- background: rgba(79, 142, 255, 0.14);
- color: #d7e7ff;
-}
-
-.share-state-badge--people {
- background: rgba(255, 255, 255, 0.08);
- color: #edf5ff;
-}
-
-.share-hub__note {
- color: rgba(210, 224, 244, 0.74);
- font-size: 0.92rem;
- line-height: 1.45;
-}
-
-.share-hub__linkbox {
- border: 1px solid rgba(255, 255, 255, 0.08);
- background: rgba(255, 255, 255, 0.035);
- border-radius: 16px;
- padding: 0.85rem 0.95rem;
-}
-
-.share-hub__linklabel {
- font-size: 0.72rem;
- text-transform: uppercase;
- letter-spacing: 0.07em;
- color: rgba(186, 210, 240, 0.58);
- margin-bottom: 0.3rem;
-}
-
-.share-hub__linkvalue {
- color: #f4f8ff;
- font-size: 0.95rem;
- line-height: 1.45;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
-}
-
-.share-hub__actions {
- display: grid;
- grid-template-columns: 1fr;
- gap: 0.65rem;
-}
-
-.share-hub__primary,
-.share-hub__secondary,
-.share-hub__manage,
-.share-sheet__toggle,
-.share-sheet__sticky-actions .btn,
-.share-sheet__linkstack .btn,
-
-
-.share-hub__manage {
- white-space: nowrap;
-}
-
-.share-sheet {
- height: auto !important;
- max-height: min(90vh, 760px);
- border-top-left-radius: 24px;
- border-top-right-radius: 24px;
- border: 1px solid rgba(255, 255, 255, 0.06);
- background: linear-gradient(180deg, rgba(8, 18, 33, 0.995), rgba(6, 13, 24, 0.99)) !important;
- box-shadow: 0 -24px 60px rgba(0, 0, 0, 0.42);
-}
-
-.share-sheet__header {
- align-items: flex-start;
- padding: 0.85rem 1rem 0.6rem;
-}
-
-.share-sheet__body {
- padding: 0 1rem calc(1rem + env(safe-area-inset-bottom));
- overflow-y: auto;
-}
-
-.share-sheet__grabber {
- width: 52px;
- height: 5px;
- border-radius: 999px;
- margin: 0 auto 0.8rem;
- background: rgba(255, 255, 255, 0.22);
-}
-
-.share-sheet__section {
- border: 1px solid rgba(255, 255, 255, 0.07);
- background: rgba(255, 255, 255, 0.035);
- border-radius: 18px;
- padding: 0.95rem;
- margin-bottom: 0.9rem;
-}
-
-.share-sheet__section-head {
- justify-content: space-between;
- margin-bottom: 0.7rem;
- font-weight: 600;
-}
-
-.share-sheet__linkstack,
-.share-access-panel__input {
- display: grid;
- grid-template-columns: 1fr;
- gap: 0.65rem;
-}
-
-.share-access-panel .tokens {
- min-height: 2rem;
-}
-
-.share-access-panel .token {
- background: rgba(255, 255, 255, 0.03);
-}
-
-.share-sheet__sticky-actions {
- position: sticky;
- bottom: 0;
- padding-top: 0.3rem;
- background: linear-gradient(180deg, rgba(6, 13, 24, 0), rgba(6, 13, 24, 0.96) 28%);
-}
-
-@media (min-width: 576px) {
- .share-hub .card-body,
- .share-sheet__header,
- .share-sheet__body {
- padding-left: 1.2rem;
- padding-right: 1.2rem;
- }
-
- .share-sheet__linkstack,
- .share-access-panel__input {
- grid-template-columns: 1fr auto;
- align-items: center;
- }
-}
-
-@media (min-width: 768px) {
- .share-hub .card-body {
- padding: 1.15rem 1.2rem;
- }
-
- .share-hub__actions {
- grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
- }
-
- .share-sheet {
- max-width: 760px;
- margin: 0 auto;
- left: 0;
- right: 0;
- }
-}
-
-
-/* v5.2 create-list unity + receipt collapse fix */
-.endpoint-main_page .create-list-input-group {
- display: flex;
- flex-wrap: nowrap !important;
- align-items: stretch;
- overflow: hidden;
- border-radius: 16px;
- border: 1px solid rgba(255, 255, 255, 0.12);
- background: rgba(7, 17, 31, 0.9);
- box-shadow: 0 10px 28px rgba(0, 0, 0, 0.18);
-}
-
-.endpoint-main_page .create-list-input-group > .create-list-title-input,
-.endpoint-main_page .create-list-input-group > .form-control {
- border: 0 !important;
- border-right: 1px solid rgba(255, 255, 255, 0.08) !important;
- border-radius: 0 !important;
- background: transparent !important;
- box-shadow: none !important;
-}
-
-.endpoint-main_page .create-list-input-group > .create-list-title-input:focus,
-.endpoint-main_page .create-list-input-group > .form-control:focus {
- background: rgba(255, 255, 255, 0.02) !important;
- box-shadow: none !important;
-}
-
-.endpoint-main_page .create-list-input-group > .create-list-temp-toggle,
-.endpoint-main_page .create-list-input-group > #tempToggle {
- min-width: 9.5rem;
- border: 0 !important;
- border-radius: 0 !important;
- background: rgba(255, 255, 255, 0.04) !important;
- box-shadow: none !important;
-}
-
-.endpoint-main_page .create-list-input-group > .create-list-temp-toggle.is-active,
-.endpoint-main_page .create-list-input-group > #tempToggle.is-active {
- background: rgba(41, 209, 125, 0.18) !important;
-}
-
-.endpoint-main_page .create-list-temp-toggle__label {
- display: inline-flex;
- align-items: center;
- justify-content: center;
- min-height: 100%;
-}
-
-.endpoint-main_page .create-list-input-group:focus-within {
- border-color: rgba(41, 209, 125, 0.55);
- box-shadow: 0 0 0 0.18rem rgba(41, 209, 125, 0.12), 0 10px 28px rgba(0, 0, 0, 0.18);
-}
-
-.receipt-disclosure {
- display: block;
- padding: 0;
- text-align: left;
-}
-
-.receipt-disclosure,
-.receipt-disclosure:hover,
-.receipt-disclosure:focus,
-.receipt-disclosure:active {
- width: 100%;
- appearance: none;
- -webkit-appearance: none;
-}
-
-.receipt-disclosure:focus-visible {
- outline: none;
-}
-
-.receipt-section--restoring {
- transition: none !important;
-}
-
-@media (max-width: 767.98px) {
- .endpoint-main_page .create-list-input-group {
- border-radius: 14px;
- }
-
- .endpoint-main_page .create-list-input-group > .create-list-temp-toggle,
- .endpoint-main_page .create-list-input-group > #tempToggle {
- min-width: 8.25rem;
- padding-left: .8rem;
- padding-right: .8rem;
- font-size: .9rem;
- }
-}
-
-@media (max-width: 575.98px) {
- .endpoint-main_page .create-list-input-group > .create-list-title-input,
- .endpoint-main_page .create-list-input-group > .form-control {
- padding-left: .85rem;
- padding-right: .7rem;
- font-size: .95rem;
- }
-
- .endpoint-main_page .create-list-input-group > .create-list-temp-toggle,
- .endpoint-main_page .create-list-input-group > #tempToggle {
- min-width: 7.6rem;
- font-size: .84rem;
- }
-
- .receipt-disclosure {
- border-radius: 16px;
- }
-}
diff --git a/shopping_app/static/css/style.zip b/shopping_app/static/css/style.zip
new file mode 100644
index 0000000..739d3bb
Binary files /dev/null and b/shopping_app/static/css/style.zip differ
diff --git a/shopping_app/templates/base.html b/shopping_app/templates/base.html
index 24714e0..9463165 100644
--- a/shopping_app/templates/base.html
+++ b/shopping_app/templates/base.html
@@ -10,27 +10,14 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
{% set hide_login_ui = request.path == '/system-auth' %}