diff --git a/.claude/agent_credentials.md b/.claude/agent_credentials.md new file mode 100644 index 0000000..8c49f72 --- /dev/null +++ b/.claude/agent_credentials.md @@ -0,0 +1,6 @@ +## Konto techniczne Claude Agent + +- URL: https://orderpro.projectpro.pl/login +- Email: agent@orderpro.local +- Haslo: ClaudeAgent2026! +- User ID: 2 diff --git a/.claude/screenshots/screenshot_after_login.png b/.claude/screenshots/screenshot_after_login.png new file mode 100644 index 0000000..353a149 Binary files /dev/null and b/.claude/screenshots/screenshot_after_login.png differ diff --git a/.claude/screenshots/screenshot_inpost.png b/.claude/screenshots/screenshot_inpost.png new file mode 100644 index 0000000..49ed6ae Binary files /dev/null and b/.claude/screenshots/screenshot_inpost.png differ diff --git a/.claude/screenshots/screenshot_inpost_v2.png b/.claude/screenshots/screenshot_inpost_v2.png new file mode 100644 index 0000000..c778bc2 Binary files /dev/null and b/.claude/screenshots/screenshot_inpost_v2.png differ diff --git a/.claude/screenshots/screenshot_section_titles.png b/.claude/screenshots/screenshot_section_titles.png new file mode 100644 index 0000000..cb141b2 Binary files /dev/null and b/.claude/screenshots/screenshot_section_titles.png differ diff --git a/.claude/screenshots/screenshot_titles_v2.png b/.claude/screenshots/screenshot_titles_v2.png new file mode 100644 index 0000000..52b635b Binary files /dev/null and b/.claude/screenshots/screenshot_titles_v2.png differ diff --git a/.mcp.json b/.mcp.json new file mode 100644 index 0000000..48b3e6a --- /dev/null +++ b/.mcp.json @@ -0,0 +1,19 @@ +{ + "mcpServers": { + "serena": { + "type": "stdio", + "command": "C:\\Users\\jacek\\.local\\bin\\uvx.exe", + "args": [ + "--from", + "git+https://github.com/oraios/serena", + "serena", + "start-mcp-server", + "--context", + "claude-code", + "--project", + "C:/visual studio code/projekty/orderPRO" + ], + "env": {} + } + } +} \ No newline at end of file diff --git a/.paul/STATE.md b/.paul/STATE.md index 2108ba6..6659c00 100644 --- a/.paul/STATE.md +++ b/.paul/STATE.md @@ -112,7 +112,7 @@ PLAN ──▶ APPLY ──▶ UNIFY - **Delivery mapping "Szukaj..." layout** — JS `attachSelectFilter()` w allegro.php tworzy input search dla InPost/Apaczka selectów, wizualnie wygląda jakby należał do wiersza powyżej. Pre-existing bug, do naprawy osobno. ### Git State -Last commit: fbb3020 (docs: close loop 06-05 — UNIFY complete) +Last commit: 5ab87a5 (feat(07-pre-expansion-fixes): complete phase 07 — milestone v0.2 done) Branch: main Feature branches merged: none diff --git a/.serena/project.yml b/.serena/project.yml index 8f85441..362a46e 100644 --- a/.serena/project.yml +++ b/.serena/project.yml @@ -124,3 +124,12 @@ initial_prompt: "" # This overrides the corresponding setting in the global configuration; see the documentation there. # If null or missing, use the setting from the global configuration. symbol_info_budget: + +# line ending convention to use when writing source files. +# Possible values: unset (use global setting), "lf", "crlf", or "native" (platform default) +# This does not affect Serena's own files (e.g. memories and configuration files), which always use native line endings. +line_ending: + +# list of regex patterns which, when matched, mark a memory entry as read‑only. +# Extends the list from the global configuration, merging the two lists. +read_only_memory_patterns: [] diff --git a/public/assets/css/app.css b/public/assets/css/app.css index ccdc57d..9bceac3 100644 --- a/public/assets/css/app.css +++ b/public/assets/css/app.css @@ -1 +1,2465 @@ -:root{--c-primary: #6690f4;--c-primary-dark: #3164db;--c-bg: #f4f6f9;--c-surface: #ffffff;--c-text: #4e5e6a;--c-text-strong: #2d3748;--c-muted: #718096;--c-border: #b0bec5;--c-danger: #cc0000;--focus-ring: 0 0 0 3px rgba(102, 144, 244, 0.15);--shadow-card: 0 1px 4px rgba(0, 0, 0, 0.06)}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:6px 12px;border:1px solid rgba(0,0,0,0);border-radius:8px;font:inherit;font-weight:600;text-decoration:none;cursor:pointer;transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .1s ease}.btn--primary{color:#fff;background:var(--c-primary)}.btn--primary:hover{background:var(--c-primary-dark)}.btn--secondary{color:var(--c-text-strong);border-color:var(--c-border);background:var(--c-surface)}.btn--secondary:hover{border-color:#cbd5e0;background:#f8fafc}.btn--danger{color:#fff;border-color:#b91c1c;background:#dc2626}.btn--danger:hover{border-color:#991b1b;background:#b91c1c}.btn--sm{min-height:28px;padding:3px 10px;font-size:12px}.btn--block{width:100%}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:none;box-shadow:var(--focus-ring);border-color:var(--c-primary)}.form-control{width:100%;min-height:34px;border:1px solid var(--c-border);border-radius:8px;padding:5px 10px;font:inherit;color:var(--c-text-strong);background:#fff;transition:border-color .2s ease,box-shadow .2s ease}.form-control:focus{outline:none;border-color:var(--c-primary);box-shadow:var(--focus-ring)}.input{min-height:34px;border:1px solid var(--c-border);border-radius:8px;padding:5px 10px;font:inherit;color:var(--c-text-strong);background:#fff}.input--sm{min-height:28px;padding:3px 8px;font-size:12px}.flash{padding:8px 12px;border-radius:6px;font-size:13px}.flash--success{border:1px solid #b7ebcf;background:#f0fff6;color:#0f6b39}.flash--error{border:1px solid #fed7d7;background:#fff5f5;color:var(--c-danger)}.alert{padding:12px 14px;border-radius:8px;border:1px solid rgba(0,0,0,0);font-size:13px;min-height:44px}.alert--danger{border-color:#fed7d7;background:#fff5f5;color:var(--c-danger)}.alert--success{border-color:#b7ebcf;background:#f0fff6;color:#0f6b39}.alert--warning{border-color:#f7dd8b;background:#fff8e8;color:#815500}.form-field{display:grid;gap:5px}.field-label{color:var(--c-text-strong);font-size:13px;font-weight:600}.table-wrap{width:100%;overflow-x:auto}.table-wrap--visible{overflow:visible !important;overflow-x:visible !important}.table{width:100%;border-collapse:collapse;background:var(--c-surface)}.table th,.table td{padding:10px 12px;border-bottom:1px solid var(--c-border);text-align:left}.table th{color:var(--c-text-strong);font-weight:700;background:#f8fafc}.table--details th{white-space:nowrap}.table--details th:first-child,.table--details td:first-child{width:36px;text-align:center}.pagination{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.pagination__item{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 10px;border-radius:8px;border:1px solid var(--c-border);color:var(--c-text-strong);background:var(--c-surface);text-decoration:none;font-weight:600}.pagination__item:hover{border-color:#cbd5e0;background:#f8fafc}.pagination__item.is-active{border-color:var(--c-primary);color:var(--c-primary);background:#edf2ff}*{box-sizing:border-box}html,body{min-height:100%}body{margin:0;font-family:"Roboto","Segoe UI",sans-serif;font-size:13px;color:var(--c-text);background:var(--c-bg)}a{color:var(--c-primary)}.app-shell{min-height:100vh;display:flex}.sidebar{width:260px;min-width:260px;flex-shrink:0;overflow:hidden;transition:width .22s ease,min-width .22s ease;border-right:1px solid #243041;background:#111a28;padding:18px 10px;display:flex;flex-direction:column}.sidebar.is-collapsed{width:52px;min-width:52px}.sidebar__brand{display:flex;align-items:center;justify-content:space-between;margin:4px 4px 16px;gap:6px;min-width:0}.sidebar__brand-text{color:#e9f0ff;font-size:24px;font-weight:300;letter-spacing:-0.02em;white-space:nowrap;overflow:hidden;flex:1;min-width:0}.sidebar__brand-text strong{font-weight:700}.sidebar__collapse-btn{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0);border:1px solid #2a3a54;border-radius:6px;color:#64748b;cursor:pointer;padding:0;transition:background .15s,color .15s}.sidebar__collapse-btn:hover{background:#1b2a3f;color:#cbd5e1}.sidebar__collapse-icon{display:block;transition:transform .22s ease;flex-shrink:0}.sidebar.is-collapsed .sidebar__collapse-icon{transform:rotate(180deg)}.sidebar__nav{display:grid;gap:4px}.sidebar__link{border-radius:8px;padding:10px 12px;text-decoration:none;color:#cbd5e1;font-weight:600}.sidebar__link:hover{color:#f8fafc;background:#1b2a3f}.sidebar__link.is-active{color:#fff;background:#2e4f93}.sidebar__group{display:grid;gap:2px}.sidebar__group-toggle{list-style:none;border-radius:8px;padding:9px 10px;color:#cbd5e1;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:9px;white-space:nowrap;user-select:none}.sidebar__group-toggle::-webkit-details-marker{display:none}.sidebar__group:hover .sidebar__group-toggle,.sidebar__group-toggle:hover{color:#f8fafc;background:#1b2a3f}.sidebar__group.is-active .sidebar__group-toggle{color:#fff;background:#2e4f93}.sidebar__icon{flex-shrink:0;width:18px;height:18px;display:flex;align-items:center;justify-content:center;opacity:.85}.sidebar__label{flex:1;min-width:0;overflow:hidden}.sidebar__toggle-arrow{flex-shrink:0;margin-left:auto;opacity:.5;transition:transform .18s ease}details[open]>.sidebar__group-toggle .sidebar__toggle-arrow{transform:rotate(180deg)}.sidebar__group-links{display:grid;gap:2px;padding-left:12px;overflow:hidden}.sidebar__sublink{border-radius:6px;padding:7px 10px 7px 8px;text-decoration:none;color:#94a3b8;font-size:12.5px;font-weight:500;display:flex;align-items:center;gap:8px;white-space:nowrap}.sidebar__sublink::before{content:"";flex-shrink:0;width:5px;height:5px;border-radius:50%;background:rgba(148,163,184,.3);transition:background .15s}.sidebar__sublink:hover{color:#e2e8f0;background:#1b2a3f}.sidebar__sublink:hover::before{background:rgba(148,163,184,.65)}.sidebar__sublink.is-active{color:#fff;background:rgba(46,79,147,.55)}.sidebar__sublink.is-active::before{background:#93c5fd}.app-main{flex:1;min-width:0}.topbar{height:50px;border-bottom:1px solid var(--c-border);background:var(--c-surface);display:flex;align-items:center;justify-content:space-between;padding:0 20px;position:sticky;top:0;z-index:100}.brand{font-size:22px;font-weight:300;letter-spacing:-0.02em;color:var(--c-text-strong)}.brand strong{font-weight:700}.container{max-width:none;width:calc(100% - 20px);margin:12px 10px;padding:0 4px 14px}.card{background:var(--c-surface);border-radius:10px;box-shadow:var(--shadow-card);padding:14px}.card h1{margin:0 0 10px;color:var(--c-text-strong);font-size:24px;font-weight:700}.muted{color:var(--c-muted)}.accent{color:var(--c-primary);font-weight:600}.users-form{display:grid;gap:14px;max-width:460px}.section-title{margin:0;color:var(--c-text-strong);font-size:18px;font-weight:700}h2.section-title,h3.section-title,h4.section-title{display:flex;align-items:center;gap:8px;font-weight:400;padding:5px 10px;border-left:3px solid var(--c-primary);border-radius:7px;background:linear-gradient(180deg, #f4f8ff 0%, #edf3ff 100%);color:#1e3a8a;box-shadow:inset 0 0 0 1px #dbe7fb}.mt-0{margin-top:0}.mt-4{margin-top:4px}.mt-12{margin-top:8px}.mt-16{margin-top:12px}.settings-grid{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:12px}.settings-nav{display:flex;gap:8px;flex-wrap:wrap}.settings-nav__link{text-decoration:none;border:1px solid var(--c-border);border-radius:8px;padding:8px 12px;color:var(--c-text-strong);font-weight:600}.settings-nav__link:hover{background:#f8fafc}.settings-nav__link.is-active{border-color:var(--c-primary);color:var(--c-primary);background:#edf2ff}.settings-stat{border:1px solid var(--c-border);border-radius:8px;padding:12px;background:#f8fafc}.settings-stat__label{display:block;color:var(--c-muted);font-size:12px;margin-bottom:4px}.settings-stat__value{color:var(--c-text-strong);font-size:20px}.settings-logs{margin:0;padding:12px;border-radius:8px;border:1px solid var(--c-border);background:#0b1220;color:#d1d5db;font-size:12px;line-height:1.5;overflow:auto}.settings-allegro-callback{display:block;width:100%;padding:8px 10px;border:1px solid var(--c-border);border-radius:8px;background:#f8fafc;color:var(--c-text-strong);font-size:12px;line-height:1.45;word-break:break-all}.page-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.filters-grid{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:12px}.filters-actions{display:flex;align-items:end;gap:8px}.product-form .form-control{width:100%}.form-grid{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:12px}.form-grid-2{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:12px}.form-grid-3{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:12px}.form-grid-4{display:grid;grid-template-columns:repeat(4, minmax(0, 1fr));gap:12px}.form-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start}.form-actions .btn{align-self:flex-start}.statuses-form{display:grid;gap:8px;grid-template-columns:repeat(2, minmax(0, 1fr))}.statuses-form .form-actions{grid-column:1/-1}.statuses-color-input{min-height:32px;padding:2px}.statuses-hint{grid-column:1/-1;margin:0}.statuses-group-block{border:1px solid var(--c-border);border-radius:10px;padding:8px;background:#fbfdff}.statuses-group-block__head{display:flex;align-items:center;justify-content:space-between;gap:6px;flex-wrap:wrap}.statuses-group-block__title{margin:0;display:inline-flex;align-items:center;gap:6px;color:var(--c-text-strong);font-size:14px}.statuses-color-dot{width:12px;height:12px;border-radius:999px;border:1px solid rgba(15,23,42,.15)}.statuses-dnd-list{margin:6px 0 0;padding:0;list-style:none;display:grid;gap:6px}.statuses-dnd-item{display:grid;grid-template-columns:24px 1fr;gap:6px;border:1px solid #dce4f0;border-radius:8px;background:#fff;padding:6px}.statuses-dnd-item__content{display:flex;align-items:center;gap:6px;min-width:0}.statuses-dnd-item.is-dragging{opacity:.6}.statuses-dnd-item__drag{display:inline-flex;align-items:center;justify-content:center;border:1px dashed #cbd5e1;border-radius:6px;color:#64748b;cursor:grab;user-select:none;font-weight:700;font-size:12px}.statuses-dnd-item__drag:active{cursor:grabbing}.statuses-inline-form{display:grid;gap:6px}.statuses-inline-form--row{grid-template-columns:minmax(180px, 1.4fr) minmax(150px, 1fr) auto auto auto;align-items:center;flex:1 1 auto;min-width:0}.statuses-inline-form--row-group{grid-template-columns:minmax(180px, 1.5fr) 56px auto auto auto;align-items:center;flex:1 1 auto;min-width:0}.statuses-inline-form--row .form-control,.statuses-inline-form--row-group .form-control{min-height:30px;padding:4px 8px}.statuses-inline-form--row .btn,.statuses-inline-form--row-group .btn,.statuses-inline-delete .btn{min-height:30px;padding:4px 10px;font-size:12px}.statuses-inline-check{margin-top:0;white-space:nowrap;font-size:12px}.statuses-inline-delete{margin:0;flex:0 0 auto}.statuses-code-label{font-size:12px;color:var(--c-muted)}.statuses-code-readonly{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-size:12px}.statuses-code-readonly code{background:#eef2f7;border-radius:6px;padding:1px 6px;color:#1f2937;font-size:12px}.field-inline{display:flex;align-items:center;gap:8px;margin-top:2px}.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.5);display:flex;align-items:center;justify-content:center;padding:16px;z-index:200}.modal-backdrop[hidden]{display:none}.modal{width:min(560px,100%);background:#fff;border-radius:10px;box-shadow:0 20px 40px rgba(15,23,42,.35);overflow:hidden}.modal__header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 18px;border-bottom:1px solid var(--c-border)}.modal__header h3{margin:0;font-size:18px;color:var(--c-text-strong)}.modal__body{padding:16px 18px 18px}.status-pill{display:inline-flex;align-items:center;justify-content:center;border:1px solid #fed7d7;background:#fff5f5;color:#9b2c2c;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600}.status-pill.is-active{border-color:#b7ebcf;background:#f0fff6;color:#0f6b39}.table-row-actions{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.table-row-actions form{margin:0}.table-list{display:grid;gap:14px}.table-list__header{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.table-list__left{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.table-list-header-actions{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}.js-filter-toggle-btn.is-active{border-color:#cbd5e0;background:#edf2ff;color:var(--c-primary-dark)}.table-filter-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;color:#fff;background:var(--c-primary);border-radius:999px}.table-filters-wrapper{display:none}.table-filters-wrapper.is-open{display:block}.table-list-filters{display:grid;gap:12px;grid-template-columns:repeat(auto-fit, minmax(170px, 1fr))}.table-col-toggle-wrapper{position:relative}.table-col-toggle-dropdown{display:none;position:absolute;right:0;top:calc(100% + 6px);z-index:30;width:260px;max-height:360px;overflow:auto;border:1px solid var(--c-border);border-radius:10px;background:#fff;box-shadow:0 10px 25px rgba(15,23,42,.12)}.table-col-toggle-dropdown.is-open{display:block}.table-col-toggle-header{padding:10px 12px;border-bottom:1px solid var(--c-border);font-size:12px;font-weight:700;color:var(--c-muted)}.table-col-toggle-item{display:flex;align-items:center;gap:10px;padding:8px 12px;font-size:13px;color:var(--c-text-strong)}.table-col-toggle-item:hover{background:#f8fafc}.table-col-toggle-footer{border-top:1px solid var(--c-border);padding:8px 12px}.table-col-hidden{display:none}.table-col-switch{position:relative;display:inline-block;width:34px;min-width:34px;height:18px}.table-col-switch input{opacity:0;width:0;height:0;position:absolute}.table-col-switch-slider{position:absolute;top:0;left:0;right:0;bottom:0;background:#cbd5e1;border-radius:999px;transition:background-color .2s ease}.table-col-switch-slider::before{content:"";position:absolute;height:14px;width:14px;left:2px;bottom:2px;background:#fff;border-radius:50%;transition:transform .2s ease}.table-col-switch input:checked+.table-col-switch-slider{background:#16a34a}.table-col-switch input:checked+.table-col-switch-slider::before{transform:translateX(16px)}.table-sort-link{display:inline-flex;align-items:center;gap:6px;color:var(--c-text-strong);text-decoration:none}.table-sort-link:hover{color:var(--c-primary-dark)}.table-sort-icon.is-muted{color:#a0aec0}.table-list__footer{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.table-list-per-page-form{display:inline-flex;align-items:center;gap:8px}.table-list-per-page-form .form-control{min-width:90px}.table-select-col{width:44px;text-align:center}.table-select-toggle{display:inline-flex;align-items:center;justify-content:center}.table-select-toggle input[type=checkbox]{width:16px;height:16px}.orders-page .orders-head{background:linear-gradient(120deg, #f8fbff 0%, #eef5ff 100%);border:1px solid #dbe7fb}.orders-page .table-list{border:1px solid #dde5f2;border-radius:12px;box-shadow:0 6px 16px rgba(20,44,86,.08)}.orders-page .table-list__header{padding:10px 6px 2px}.orders-page .table-list-filters{padding:6px 6px 2px;border-top:1px solid #ebf0f7;border-bottom:1px solid #ebf0f7;background:#f9fbff}.orders-page .table-wrap{border-radius:10px;overflow:hidden;border:1px solid #e7edf6}.orders-page .table thead th{background:#f3f7fd;color:#30435f;font-size:12px;text-transform:uppercase;letter-spacing:.03em}.orders-page .table tbody td{vertical-align:middle;padding-top:10px;padding-bottom:10px;border-bottom-color:#edf2f8}.orders-page .table tbody tr:hover td{background:#f9fcff}.orders-list-page{padding:10px;margin-bottom:10px}.orders-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.orders-stats{display:inline-grid;grid-template-columns:repeat(3, minmax(86px, auto));gap:8px}.orders-stat{border:1px solid #d8e2f0;background:#f8fbff;border-radius:8px;padding:6px 8px;line-height:1.15}.orders-stat__label{display:block;color:#5f6f83;font-size:11px;margin-bottom:2px}.orders-stat__value{color:#12233a;font-size:16px;font-weight:700}.orders-ref{display:grid;gap:2px;min-width:170px}.orders-ref__main{font-weight:700;color:#0f1f35;font-size:14px}.orders-ref__meta{display:inline-flex;flex-wrap:wrap;gap:4px 10px;color:#64748b;font-size:12px}.orders-buyer{display:grid;gap:2px}.orders-buyer__name{color:#0f172a;font-weight:600;font-size:14px}.orders-buyer__meta{display:inline-flex;flex-wrap:wrap;gap:4px 10px;color:#64748b;font-size:12px}.orders-status-wrap{display:inline-flex;align-items:center;gap:5px;flex-wrap:wrap}.order-tag{display:inline-flex;align-items:center;justify-content:center;border:1px solid #d8e1ef;background:#f8fafc;color:#334155;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:700;line-height:1.1}.order-tag.is-info{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.order-tag.is-success{border-color:#bbf7d0;background:#f0fdf4;color:#166534}.order-tag.is-danger{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.order-tag.is-warn{border-color:#fde68a;background:#fffbeb;color:#92400e}.order-tag.is-cod{border-color:#f9a8d4;background:#fdf2f8;color:#9d174d}.order-tag.is-unpaid{border-color:#fca5a5;background:#fef2f2;color:#b91c1c}.orders-mini{font-size:14px;color:#223247;line-height:1.25}.orders-mini__delivery{font-size:12px;color:#64748b;margin-bottom:2px;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.orders-products{display:grid;gap:4px;min-width:240px}.orders-products__meta,.orders-products__more{font-size:12px;color:#64748b}.orders-product{display:grid;grid-template-columns:48px 1fr;gap:6px;align-items:center}.orders-product__thumb{width:48px;height:48px;border-radius:4px;border:1px solid #dbe3ef;object-fit:cover;background:#fff}.orders-product__thumb--empty{display:inline-block;background:#eef2f7;border-style:dashed}.orders-product__txt{min-width:0;display:grid;gap:1px}.orders-product__name{font-size:14px;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.orders-product__qty{font-size:12px;color:#64748b}.orders-image-hover-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center;cursor:zoom-in}.orders-image-hover-popup{display:none;position:fixed;left:auto;top:auto;width:350px;max-height:350px;object-fit:contain;border-radius:8px;background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.18);border:1px solid #dfe3ea;z-index:100;pointer-events:none}.orders-image-hover-wrap:hover .orders-image-hover-popup{display:block}.activity-type-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:500;white-space:nowrap;background:#e2e8f0;color:#334155}.activity-type-badge--status_change{background:#dbeafe;color:#1e40af}.activity-type-badge--payment{background:#dcfce7;color:#166534}.activity-type-badge--invoice{background:#fef3c7;color:#92400e}.activity-type-badge--shipment{background:#e0e7ff;color:#3730a3}.activity-type-badge--message{background:#f3e8ff;color:#6b21a8}.activity-type-badge--document{background:#fce7f3;color:#9d174d}.activity-type-badge--import{background:#f1f5f9;color:#475569}.activity-type-badge--note{background:#ecfdf5;color:#065f46}.text-nowrap{white-space:nowrap}.orders-money{display:grid;gap:2px}.orders-money__main{color:#0f172a;font-weight:700;font-size:14px}.orders-money__meta{color:#64748b;font-size:12px}.table-list[data-table-list-id=orders]{gap:8px}.table-list[data-table-list-id=orders] .table-list__header{padding:2px 0 0}.table-list[data-table-list-id=orders] .table-list-filters{gap:8px;grid-template-columns:repeat(auto-fit, minmax(150px, 1fr))}.table-list[data-table-list-id=orders] .table th,.table-list[data-table-list-id=orders] .table td{padding:6px 8px}.table-list[data-table-list-id=orders] .table thead th{font-size:12px;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap}.table-list[data-table-list-id=orders] .table tbody td{vertical-align:top;font-size:14px;line-height:1.25}.order-show-layout{display:grid;grid-template-columns:220px minmax(0, 1fr);gap:12px;align-items:start}.order-statuses-side{position:sticky;top:60px;padding:10px}.order-statuses-side__title{font-size:13px;font-weight:700;color:#0f172a;margin-bottom:8px}.order-status-group{margin-bottom:10px}.order-status-group__name{font-size:12px;color:#475569;font-weight:700;margin-bottom:5px}.order-status-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 6px;border-radius:6px;color:#334155;font-size:12px;text-decoration:none}.order-status-row__count{min-width:24px;text-align:center;border-radius:999px;background:var(--status-color, #64748b);padding:1px 6px;font-weight:700;font-size:11px;color:#fff}.order-status-row:hover{background:#f1f5f9}.order-status-row.is-active{background:rgba(15,23,42,.06);color:#0f172a;font-weight:700}.order-show-main{min-width:0}.order-details-actions{display:inline-flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.order-details-page{padding:12px}.order-details-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.order-back-link{color:#475569;text-decoration:none;font-weight:600}.order-back-link:hover{color:#1d4ed8}.order-details-sub{display:inline-flex;gap:10px;flex-wrap:wrap;color:#64748b;font-size:12px}.order-details-pill{border-radius:999px;padding:5px 10px;background:#eef6ff;border:1px solid #cfe2ff;color:#1d4ed8;font-size:12px;font-weight:700}.order-status-change{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.order-status-change__form{display:flex;align-items:center;gap:6px}.order-status-change__select{min-width:180px}.order-details-tabs{display:flex;gap:6px;flex-wrap:wrap}.order-details-tab{border:1px solid #d6deea;border-radius:8px;padding:5px 10px;color:#475569;font-size:12px;background:#f8fafc;cursor:pointer}.order-details-tab.is-active{border-color:#bfdbfe;color:#1d4ed8;background:#eff6ff;font-weight:700}.order-item-cell{display:grid;grid-template-columns:44px 1fr;gap:8px;align-items:center;min-width:260px}.order-item-thumb{width:44px;height:44px;border-radius:6px;border:1px solid #dbe3ef;object-fit:cover}.order-item-thumb--empty{display:inline-block;background:#eef2f7;border-style:dashed}.order-item-name{font-weight:600;color:#0f172a}.order-grid-2{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:12px}.order-grid-3{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:12px}.order-kv{margin:0;display:grid;grid-template-columns:150px 1fr;gap:6px 10px;font-size:12px}.payment-summary{display:grid;gap:6px;max-width:420px}.payment-summary__row{display:flex;align-items:center;gap:10px;font-size:12px}.payment-summary__label{width:150px;flex-shrink:0;color:#64748b}.payment-summary__value{font-weight:600;color:#0f172a}.order-kv dt{color:#64748b}.order-kv dd{margin:0;color:#0f172a;font-weight:600}.order-address{display:grid;gap:3px;font-size:12px;color:#0f172a}.order-events{display:grid;gap:8px}.order-event{border:1px solid #e2e8f0;border-radius:8px;padding:8px;background:#fbfdff}.order-event__head{color:#64748b;font-size:11px}.order-event__body{margin-top:4px;color:#0f172a;font-size:12px}.order-tab-panel{display:none}.order-tab-panel.is-active{display:block}.order-empty-placeholder{border:1px dashed #cbd5e1;border-radius:8px;min-height:180px;background:#f8fafc}.order-status-badge{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid #cbd5e1;color:#334155;background:#f8fafc}.order-status-badge.is-info{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.order-status-badge.is-success{border-color:#bbf7d0;background:#f0fdf4;color:#166534}.order-status-badge.is-danger{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.order-status-badge.is-warn{border-color:#fde68a;background:#fffbeb;color:#92400e}.order-status-badge.is-empty{color:#94a3b8}.order-buyer{display:grid;gap:2px}.order-buyer__name{color:#0f172a;font-weight:600}.order-buyer__email{color:#64748b;font-size:12px}.table-inline-action{display:inline-block;margin-right:6px}.product-name-cell{display:inline-flex;align-items:center;gap:10px}.product-name-thumb{width:60px;height:60px;border-radius:6px;object-fit:cover;border:1px solid var(--c-border);background:#f8fafc}.product-name-thumb--empty{display:inline-block;width:60px;height:60px;border-radius:6px;border:1px dashed #cbd5e0;background:#f8fafc}.product-name-thumb-btn{border:0;padding:0;background:rgba(0,0,0,0);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.product-name-thumb-btn:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:8px}.modal--image-preview{width:min(760px,100%)}.product-image-preview__img{display:block;width:100%;max-height:70vh;object-fit:contain;border-radius:8px;background:#f8fafc}.product-images-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));gap:12px}.product-image-card{border:1px solid #dfe3ea;border-radius:10px;padding:10px;background:#fff}.product-image-card__thumb-wrap{position:relative;border-radius:8px;overflow:hidden;background:#f2f5f8}.product-image-card__thumb{width:100%;height:160px;object-fit:cover;display:block}.product-image-card__thumb.is-empty{height:160px;display:grid;place-items:center;color:#6b7785;font-size:12px}.product-image-card__badge{display:none;position:absolute;top:8px;left:8px;background:#1f7a43;color:#fff;padding:3px 8px;border-radius:999px;font-size:11px}.product-image-card.is-main .product-image-card__badge{display:inline-block}.product-image-card__meta{margin-top:8px;font-size:11px;line-height:1.25;color:#5f6b79;overflow-wrap:anywhere}.product-image-card__actions{margin-top:10px;display:grid;grid-template-columns:1fr;gap:8px}.product-image-card__actions .btn{min-height:34px;font-size:12px;line-height:1.2;padding:6px 10px}.product-links-search-form{display:grid;gap:12px;grid-template-columns:minmax(220px, 320px) minmax(220px, 1fr) auto;align-items:end}.product-links-head{display:grid;gap:8px;grid-template-columns:repeat(3, minmax(0, 1fr))}.product-tabs-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.product-links-inline-form{display:grid;gap:8px;grid-template-columns:minmax(140px, 1fr) minmax(140px, 1fr) auto;align-items:center}.product-links-actions-row{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}.product-links-actions-row .product-links-relink-form{flex:1 1 auto}.product-links-unlink-form{margin:0;flex:0 0 auto}.product-link-status-cell{display:inline-flex;align-items:center;gap:6px}.product-link-alert-indicator{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:999px;border:1px solid #f59e0b;background:#fffbeb;color:#b45309;font-size:12px;font-weight:700;cursor:help}.product-link-events-list{margin:0;padding:0;list-style:none;display:grid;gap:4px}.product-link-events-list li{display:grid;gap:2px}.product-link-events-type{font-weight:600;color:var(--c-text-strong)}.product-link-events-date{color:var(--c-muted);font-size:12px}.product-show-images-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));gap:12px}.product-show-image-card{border:1px solid var(--c-border);border-radius:10px;background:#fff;padding:10px;overflow:hidden}.product-show-image-card__meta{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-width:0}.product-show-image-path{font-size:12px;min-width:0;overflow:hidden}.product-show-image-path summary{cursor:pointer;color:var(--c-muted, #888);list-style:none;user-select:none;white-space:nowrap}.product-show-image-path summary::-webkit-details-marker{display:none}.product-show-image-path summary::after{content:" ▾"}.product-show-image-path[open] summary::after{content:" ▴"}.product-show-image-path__url{margin-top:4px;word-break:break-all;overflow-wrap:break-word;font-size:11px}.product-show-image{width:100%;max-height:260px;object-fit:cover;border-radius:8px;border:1px solid #d9e0ea}.shipment-grid{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:12px}.searchable-select{position:relative}.searchable-select__trigger{display:flex;align-items:center;justify-content:space-between;cursor:pointer;user-select:none;min-height:34px}.searchable-select__trigger::after{content:"";width:0;height:0;border-left:4px solid rgba(0,0,0,0);border-right:4px solid rgba(0,0,0,0);border-top:5px solid var(--c-text-muted, #6b7280);margin-left:8px;flex-shrink:0}.searchable-select__trigger--placeholder{color:var(--c-text-muted, #6b7280)}.searchable-select__dropdown{display:none;position:absolute;left:0;right:0;top:100%;z-index:50;max-height:280px;overflow:auto;background:#fff;border:1px solid var(--c-border);border-top:0;border-radius:0 0 8px 8px;box-shadow:0 8px 20px rgba(15,23,42,.12)}.searchable-select__dropdown.is-open{display:block}.searchable-select__search{position:sticky;top:0;border:none !important;border-bottom:1px solid var(--c-border) !important;border-radius:0 !important;box-shadow:none !important;font-size:13px;background:#fff;z-index:1}.searchable-select__option{padding:7px 10px;font-size:13px;cursor:pointer;color:var(--c-text-strong)}.searchable-select__option:hover{background:#f1f5f9}.searchable-select__option.is-selected{background:#edf2ff;font-weight:600}.flash{padding:10px 14px;border-radius:8px;font-size:13px;font-weight:500}.flash--success{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}.flash--error{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c}.content-tabs-card{margin-top:0}.content-tabs-nav{display:flex;gap:4px;border-bottom:2px solid var(--c-border);margin-bottom:16px;flex-wrap:wrap}.content-tab-btn{padding:8px 16px;border:none;background:none;cursor:pointer;font-size:14px;font-weight:500;color:var(--c-text-muted, #6b7280);border-bottom:2px solid rgba(0,0,0,0);margin-bottom:-2px;border-radius:4px 4px 0 0;transition:color .15s,border-color .15s}.content-tab-btn:hover{color:var(--c-text-strong, #111827)}.content-tab-btn.is-active{color:var(--c-primary, #2563eb);border-bottom-color:var(--c-primary, #2563eb)}.content-tab-panel{display:none}.content-tab-panel.is-active{display:block}.shoppro-tabs-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-bottom:10px;flex-wrap:wrap}.shoppro-tabs-toolbar__field{margin:0;min-width:260px;max-width:420px;flex:1 1 320px}.shoppro-tabs-toolbar__field .form-control{width:100%}.shoppro-tabs-toolbar__actions{display:inline-flex;align-items:center;gap:8px}.dm-carrier-select{min-width:140px}.dm-service-wrap{min-width:200px}.dm-service-wrap .dm-inpost-panel .form-control,.dm-service-wrap .dm-apaczka-panel .form-control{width:100%}.integration-settings-group{grid-column:1/-1;border:1px solid var(--c-border);border-radius:10px;background:#f8fbff;padding:10px}.integration-settings-group__head{margin-bottom:8px;padding:4px 8px;border-left:3px solid var(--c-primary, #2563eb);background:#eef4ff;border-radius:6px}.integration-settings-group__title{margin:0;font-size:14px;font-weight:700;letter-spacing:.01em;color:#1e3a8a}.integration-settings-group__desc{margin:4px 0 0;color:#4b5563}.integration-settings-group__grid{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:10px 12px;align-items:start}.integration-settings-group__full{grid-column:1/-1}.integration-settings-group__grid .form-field{margin:0;align-self:start}.integration-settings-group__grid .form-control{min-height:34px;height:34px}.integration-settings-group__grid input[type=date].form-control{line-height:1.2}.integration-settings-checkboxes{border:0;padding:0;margin:0}.integration-settings-checkboxes .field-label{display:block;margin-bottom:2px}.integration-settings-checkboxes__list{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:6px 12px}.integration-settings-checkboxes__item{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#334155}@media(max-width: 768px){.app-shell{flex-direction:column}.sidebar{width:100% !important;min-width:0 !important;border-right:0;border-bottom:1px solid #243041;padding:14px;overflow-x:auto}.sidebar__brand{margin:0 0 10px;font-size:22px}.sidebar__collapse-btn{display:none}.sidebar__nav{display:flex;gap:8px;overflow-x:auto}.sidebar__link{white-space:nowrap}.topbar{padding:0 14px}.container{margin-top:16px;width:calc(100% - 16px);margin-left:8px;margin-right:8px;padding:0 3px 12px}.settings-grid{grid-template-columns:1fr}.page-head{flex-direction:column;align-items:flex-start}.orders-stats{grid-template-columns:1fr;width:100%}.order-show-layout{grid-template-columns:1fr}.order-statuses-side{position:static;top:auto}.order-details-actions{justify-content:flex-start}.order-grid-2,.order-grid-3{grid-template-columns:1fr}.order-kv{grid-template-columns:1fr;gap:2px}.filters-grid,.form-grid,.form-grid-2,.form-grid-3,.form-grid-4,.shipment-grid,.statuses-form,.statuses-inline-form,.table-list-filters,.product-links-search-form,.product-links-inline-form{grid-template-columns:1fr}.statuses-dnd-item__content{display:block}.statuses-inline-delete{margin-top:6px}.filters-actions{align-items:center}.table-list__header,.table-list__footer{align-items:flex-start}.product-links-head{grid-template-columns:1fr}.integration-settings-group__grid{grid-template-columns:1fr}.integration-settings-checkboxes__list{grid-template-columns:1fr}.card{padding:12px}.modal--image-preview{width:min(92vw,100%)}} +@charset "UTF-8"; +:root { + --c-primary: #6690f4; + --c-primary-dark: #3164db; + --c-bg: #f4f6f9; + --c-surface: #ffffff; + --c-text: #4e5e6a; + --c-text-strong: #2d3748; + --c-muted: #718096; + --c-border: #b0bec5; + --c-danger: #cc0000; + --focus-ring: 0 0 0 3px rgba(102, 144, 244, 0.15); + --shadow-card: 0 1px 4px rgba(0, 0, 0, 0.06); +} + +.btn { + display: inline-flex; + align-items: center; + justify-content: center; + min-height: 34px; + padding: 6px 12px; + border: 1px solid transparent; + border-radius: 8px; + font: inherit; + font-weight: 600; + text-decoration: none; + cursor: pointer; + transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.1s ease; +} + +.btn--primary { + color: #ffffff; + background: var(--c-primary); +} + +.btn--primary:hover { + background: var(--c-primary-dark); +} + +.btn--secondary { + color: var(--c-text-strong); + border-color: var(--c-border); + background: var(--c-surface); +} + +.btn--secondary:hover { + border-color: #cbd5e0; + background: #f8fafc; +} + +.btn--danger { + color: #ffffff; + border-color: #b91c1c; + background: #dc2626; +} + +.btn--danger:hover { + border-color: #991b1b; + background: #b91c1c; +} + +.btn--sm { + min-height: 28px; + padding: 3px 10px; + font-size: 12px; +} + +.btn--block { + width: 100%; +} + +.btn:active { + transform: translateY(1px); +} + +.btn:focus-visible { + outline: none; + box-shadow: var(--focus-ring); + border-color: var(--c-primary); +} + +.form-control { + width: 100%; + min-height: 34px; + border: 1px solid var(--c-border); + border-radius: 8px; + padding: 5px 10px; + font: inherit; + color: var(--c-text-strong); + background: #ffffff; + transition: border-color 0.2s ease, box-shadow 0.2s ease; +} + +.form-control:focus { + outline: none; + border-color: var(--c-primary); + box-shadow: var(--focus-ring); +} + +.input { + min-height: 34px; + border: 1px solid var(--c-border); + border-radius: 8px; + padding: 5px 10px; + font: inherit; + color: var(--c-text-strong); + background: #ffffff; +} + +.input--sm { + min-height: 28px; + padding: 3px 8px; + font-size: 12px; +} + +.flash { + padding: 8px 12px; + border-radius: 6px; + font-size: 13px; +} + +.flash--success { + border: 1px solid #b7ebcf; + background: #f0fff6; + color: #0f6b39; +} + +.flash--error { + border: 1px solid #fed7d7; + background: #fff5f5; + color: var(--c-danger); +} + +.alert { + padding: 12px 14px; + border-radius: 8px; + border: 1px solid transparent; + font-size: 13px; + min-height: 44px; +} + +.alert--danger { + border-color: #fed7d7; + background: #fff5f5; + color: var(--c-danger); +} + +.alert--success { + border-color: #b7ebcf; + background: #f0fff6; + color: #0f6b39; +} + +.alert--warning { + border-color: #f7dd8b; + background: #fff8e8; + color: #815500; +} + +.form-field { + display: grid; + gap: 5px; +} + +.field-label { + color: var(--c-text-strong); + font-size: 13px; + font-weight: 600; +} + +.table-wrap { + width: 100%; + overflow-x: auto; +} +.table-wrap--visible { + overflow: visible !important; + overflow-x: visible !important; +} + +.table { + width: 100%; + border-collapse: collapse; + background: var(--c-surface); +} + +.table th, +.table td { + padding: 10px 12px; + border-bottom: 1px solid var(--c-border); + text-align: left; +} + +.table th { + color: var(--c-text-strong); + font-weight: 700; + background: #f8fafc; +} + +.table--details th { + white-space: nowrap; +} + +.table--details th:first-child, +.table--details td:first-child { + width: 36px; + text-align: center; +} + +.pagination { + display: flex; + align-items: center; + flex-wrap: wrap; + gap: 8px; +} + +.pagination__item { + display: inline-flex; + align-items: center; + justify-content: center; + min-width: 36px; + height: 36px; + padding: 0 10px; + border-radius: 8px; + border: 1px solid var(--c-border); + color: var(--c-text-strong); + background: var(--c-surface); + text-decoration: none; + font-weight: 600; +} + +.pagination__item:hover { + border-color: #cbd5e0; + background: #f8fafc; +} + +.pagination__item.is-active { + border-color: var(--c-primary); + color: var(--c-primary); + background: #edf2ff; +} + +* { + box-sizing: border-box; +} + +html, +body { + min-height: 100%; +} + +body { + margin: 0; + font-family: "Roboto", "Segoe UI", sans-serif; + font-size: 13px; + color: var(--c-text); + background: var(--c-bg); +} + +a { + color: var(--c-primary); +} + +.app-shell { + min-height: 100vh; + display: flex; +} + +.sidebar { + width: 260px; + min-width: 260px; + flex-shrink: 0; + overflow: hidden; + transition: width 0.22s ease, min-width 0.22s ease; + border-right: 1px solid #243041; + background: #111a28; + padding: 18px 10px; + display: flex; + flex-direction: column; +} + +.sidebar.is-collapsed { + width: 52px; + min-width: 52px; +} + +.sidebar__brand { + display: flex; + align-items: center; + justify-content: space-between; + margin: 4px 4px 16px; + gap: 6px; + min-width: 0; +} + +.sidebar__brand-text { + color: #e9f0ff; + font-size: 24px; + font-weight: 300; + letter-spacing: -0.02em; + white-space: nowrap; + overflow: hidden; + flex: 1; + min-width: 0; +} +.sidebar__brand-text strong { + font-weight: 700; +} + +.sidebar__collapse-btn { + flex-shrink: 0; + width: 28px; + height: 28px; + display: flex; + align-items: center; + justify-content: center; + background: transparent; + border: 1px solid #2a3a54; + border-radius: 6px; + color: #64748b; + cursor: pointer; + padding: 0; + transition: background 0.15s, color 0.15s; +} +.sidebar__collapse-btn:hover { + background: #1b2a3f; + color: #cbd5e1; +} + +.sidebar__collapse-icon { + display: block; + transition: transform 0.22s ease; + flex-shrink: 0; +} + +.sidebar.is-collapsed .sidebar__collapse-icon { + transform: rotate(180deg); +} + +.sidebar__nav { + display: grid; + gap: 4px; +} + +.sidebar__link { + border-radius: 8px; + padding: 10px 12px; + text-decoration: none; + color: #cbd5e1; + font-weight: 600; +} + +.sidebar__link:hover { + color: #f8fafc; + background: #1b2a3f; +} + +.sidebar__link.is-active { + color: #ffffff; + background: #2e4f93; +} + +.sidebar__group { + display: grid; + gap: 2px; +} + +.sidebar__group-toggle { + list-style: none; + border-radius: 8px; + padding: 9px 10px; + color: #cbd5e1; + font-weight: 600; + cursor: pointer; + display: flex; + align-items: center; + gap: 9px; + white-space: nowrap; + user-select: none; +} + +.sidebar__group-toggle::-webkit-details-marker { + display: none; +} + +.sidebar__group:hover .sidebar__group-toggle, +.sidebar__group-toggle:hover { + color: #f8fafc; + background: #1b2a3f; +} + +.sidebar__group.is-active .sidebar__group-toggle { + color: #ffffff; + background: #2e4f93; +} + +.sidebar__icon { + flex-shrink: 0; + width: 18px; + height: 18px; + display: flex; + align-items: center; + justify-content: center; + opacity: 0.85; +} + +.sidebar__label { + flex: 1; + min-width: 0; + overflow: hidden; +} + +.sidebar__toggle-arrow { + flex-shrink: 0; + margin-left: auto; + opacity: 0.5; + transition: transform 0.18s ease; +} + +details[open] > .sidebar__group-toggle .sidebar__toggle-arrow { + transform: rotate(180deg); +} + +.sidebar__group-links { + display: grid; + gap: 2px; + padding-left: 12px; + overflow: hidden; +} + +.sidebar__sublink { + border-radius: 6px; + padding: 7px 10px 7px 8px; + text-decoration: none; + color: #94a3b8; + font-size: 12.5px; + font-weight: 500; + display: flex; + align-items: center; + gap: 8px; + white-space: nowrap; +} +.sidebar__sublink::before { + content: ""; + flex-shrink: 0; + width: 5px; + height: 5px; + border-radius: 50%; + background: rgba(148, 163, 184, 0.3); + transition: background 0.15s; +} +.sidebar__sublink:hover { + color: #e2e8f0; + background: #1b2a3f; +} +.sidebar__sublink:hover::before { + background: rgba(148, 163, 184, 0.65); +} +.sidebar__sublink.is-active { + color: #ffffff; + background: rgba(46, 79, 147, 0.55); +} +.sidebar__sublink.is-active::before { + background: #93c5fd; +} + +.app-main { + flex: 1; + min-width: 0; +} + +.topbar { + height: 50px; + border-bottom: 1px solid var(--c-border); + background: var(--c-surface); + display: flex; + align-items: center; + justify-content: space-between; + padding: 0 20px; + position: sticky; + top: 0; + z-index: 100; +} + +.brand { + font-size: 22px; + font-weight: 300; + letter-spacing: -0.02em; + color: var(--c-text-strong); +} + +.brand strong { + font-weight: 700; +} + +.container { + max-width: none; + width: calc(100% - 20px); + margin: 12px 10px; + padding: 0 4px 14px; +} + +.card { + background: var(--c-surface); + border-radius: 10px; + box-shadow: var(--shadow-card); + padding: 14px; +} + +.card h1 { + margin: 0 0 10px; + color: var(--c-text-strong); + font-size: 24px; + font-weight: 700; +} + +.muted { + color: var(--c-muted); +} + +.accent { + color: var(--c-primary); + font-weight: 600; +} + +.users-form { + display: grid; + gap: 14px; + max-width: 460px; +} + +.form-field { + margin-bottom: 12px; +} + +.section-title { + margin: 0; + color: var(--c-text-strong); + font-size: 18px; + font-weight: 700; +} + +h2.section-title, +h3.section-title, +h4.section-title { + display: flex; + align-items: center; + gap: 6px; + font-weight: 600; + padding: 6px 0; + border-bottom: 1px solid #e2e8f0; + color: var(--c-primary, #2563eb); +} +h2.section-title::before, +h3.section-title::before, +h4.section-title::before { + content: "■"; + font-size: 0.55em; + opacity: 0.5; +} + +h3.section-title, +h4.section-title { + font-size: 15px; +} +h3.section-title::before, +h4.section-title::before { + content: "◆"; + font-size: 0.5em; +} + +.mt-0 { + margin-top: 0; +} + +.mt-4 { + margin-top: 4px; +} + +.mt-12 { + margin-top: 8px; +} + +.mt-16 { + margin-top: 12px; +} + +.settings-grid { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 12px; +} + +.settings-nav { + display: flex; + gap: 8px; + flex-wrap: wrap; +} + +.settings-nav__link { + text-decoration: none; + border: 1px solid var(--c-border); + border-radius: 8px; + padding: 8px 12px; + color: var(--c-text-strong); + font-weight: 600; +} + +.settings-nav__link:hover { + background: #f8fafc; +} + +.settings-nav__link.is-active { + border-color: var(--c-primary); + color: var(--c-primary); + background: #edf2ff; +} + +.settings-stat { + border: 1px solid var(--c-border); + border-radius: 8px; + padding: 12px; + background: #f8fafc; +} + +.settings-stat__label { + display: block; + color: var(--c-muted); + font-size: 12px; + margin-bottom: 4px; +} + +.settings-stat__value { + color: var(--c-text-strong); + font-size: 20px; +} + +.settings-logs { + margin: 0; + padding: 12px; + border-radius: 8px; + border: 1px solid var(--c-border); + background: #0b1220; + color: #d1d5db; + font-size: 12px; + line-height: 1.5; + overflow: auto; +} + +.settings-allegro-callback { + display: block; + width: 100%; + padding: 8px 10px; + border: 1px solid var(--c-border); + border-radius: 8px; + background: #f8fafc; + color: var(--c-text-strong); + font-size: 12px; + line-height: 1.45; + word-break: break-all; +} + +.page-head { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; +} + +.filters-grid { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 12px; +} + +.filters-actions { + display: flex; + align-items: end; + gap: 8px; +} + +.product-form .form-control { + width: 100%; +} + +.form-grid { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 12px; +} + +.form-grid-2 { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 12px; +} + +.form-grid-3 { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 12px; +} + +.form-grid-4 { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + gap: 12px; +} + +.form-actions { + display: flex; + gap: 8px; + flex-wrap: wrap; + align-items: flex-start; +} + +.form-actions .btn { + align-self: flex-start; +} + +.statuses-form { + display: grid; + gap: 8px; + grid-template-columns: repeat(2, minmax(0, 1fr)); +} + +.statuses-form .form-actions { + grid-column: 1/-1; +} + +.statuses-color-input { + min-height: 32px; + padding: 2px; +} + +.statuses-hint { + grid-column: 1/-1; + margin: 0; +} + +.statuses-group-block { + border: 1px solid var(--c-border); + border-radius: 10px; + padding: 8px; + background: #fbfdff; +} + +.statuses-group-block__head { + display: flex; + align-items: center; + justify-content: space-between; + gap: 6px; + flex-wrap: wrap; +} + +.statuses-group-block__title { + margin: 0; + display: inline-flex; + align-items: center; + gap: 6px; + color: var(--c-text-strong); + font-size: 14px; +} + +.statuses-color-dot { + width: 12px; + height: 12px; + border-radius: 999px; + border: 1px solid rgba(15, 23, 42, 0.15); +} + +.statuses-dnd-list { + margin: 6px 0 0; + padding: 0; + list-style: none; + display: grid; + gap: 6px; +} + +.statuses-dnd-item { + display: grid; + grid-template-columns: 24px 1fr; + gap: 6px; + border: 1px solid #dce4f0; + border-radius: 8px; + background: #fff; + padding: 6px; +} + +.statuses-dnd-item__content { + display: flex; + align-items: center; + gap: 6px; + min-width: 0; +} + +.statuses-dnd-item.is-dragging { + opacity: 0.6; +} + +.statuses-dnd-item__drag { + display: inline-flex; + align-items: center; + justify-content: center; + border: 1px dashed #cbd5e1; + border-radius: 6px; + color: #64748b; + cursor: grab; + user-select: none; + font-weight: 700; + font-size: 12px; +} + +.statuses-dnd-item__drag:active { + cursor: grabbing; +} + +.statuses-inline-form { + display: grid; + gap: 6px; +} + +.statuses-inline-form--row { + grid-template-columns: minmax(180px, 1.4fr) minmax(150px, 1fr) auto auto auto; + align-items: center; + flex: 1 1 auto; + min-width: 0; +} + +.statuses-inline-form--row-group { + grid-template-columns: minmax(180px, 1.5fr) 56px auto auto auto; + align-items: center; + flex: 1 1 auto; + min-width: 0; +} + +.statuses-inline-form--row .form-control, +.statuses-inline-form--row-group .form-control { + min-height: 30px; + padding: 4px 8px; +} + +.statuses-inline-form--row .btn, +.statuses-inline-form--row-group .btn, +.statuses-inline-delete .btn { + min-height: 30px; + padding: 4px 10px; + font-size: 12px; +} + +.statuses-inline-check { + margin-top: 0; + white-space: nowrap; + font-size: 12px; +} + +.statuses-inline-delete { + margin: 0; + flex: 0 0 auto; +} + +.statuses-code-label { + font-size: 12px; + color: var(--c-muted); +} + +.statuses-code-readonly { + display: inline-flex; + align-items: center; + gap: 6px; + white-space: nowrap; + font-size: 12px; +} + +.statuses-code-readonly code { + background: #eef2f7; + border-radius: 6px; + padding: 1px 6px; + color: #1f2937; + font-size: 12px; +} + +.field-inline { + display: flex; + align-items: center; + gap: 8px; + margin-top: 2px; +} + +.modal-backdrop { + position: fixed; + inset: 0; + background: rgba(15, 23, 42, 0.5); + display: flex; + align-items: center; + justify-content: center; + padding: 16px; + z-index: 200; +} + +.modal-backdrop[hidden] { + display: none; +} + +.modal { + width: min(560px, 100%); + background: #fff; + border-radius: 10px; + box-shadow: 0 20px 40px rgba(15, 23, 42, 0.35); + overflow: hidden; +} + +.modal__header { + display: flex; + align-items: center; + justify-content: space-between; + gap: 10px; + padding: 16px 18px; + border-bottom: 1px solid var(--c-border); +} + +.modal__header h3 { + margin: 0; + font-size: 18px; + color: var(--c-text-strong); +} + +.modal__body { + padding: 16px 18px 18px; +} + +.status-pill { + display: inline-flex; + align-items: center; + justify-content: center; + border: 1px solid #fed7d7; + background: #fff5f5; + color: #9b2c2c; + padding: 2px 8px; + border-radius: 999px; + font-size: 12px; + font-weight: 600; +} + +.status-pill.is-active { + border-color: #b7ebcf; + background: #f0fff6; + color: #0f6b39; +} + +.table-row-actions { + display: inline-flex; + align-items: center; + gap: 6px; + flex-wrap: wrap; +} + +.table-row-actions form { + margin: 0; +} + +.table-list { + display: grid; + gap: 14px; +} + +.table-list__header { + display: flex; + justify-content: space-between; + align-items: center; + gap: 12px; + flex-wrap: wrap; +} + +.table-list__left { + display: inline-flex; + align-items: center; + gap: 8px; + flex-wrap: wrap; +} + +.table-list-header-actions { + display: inline-flex; + align-items: center; + gap: 10px; + flex-wrap: wrap; +} + +.js-filter-toggle-btn.is-active { + border-color: #cbd5e0; + background: #edf2ff; + color: var(--c-primary-dark); +} + +.table-filter-badge { + display: inline-flex; + align-items: center; + justify-content: center; + min-width: 18px; + height: 18px; + padding: 0 5px; + font-size: 11px; + font-weight: 700; + color: #fff; + background: var(--c-primary); + border-radius: 999px; +} + +.table-filters-wrapper { + display: none; +} + +.table-filters-wrapper.is-open { + display: block; +} + +.table-list-filters { + display: grid; + gap: 12px; + grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); +} + +.table-col-toggle-wrapper { + position: relative; +} + +.table-col-toggle-dropdown { + display: none; + position: absolute; + right: 0; + top: calc(100% + 6px); + z-index: 30; + width: 260px; + max-height: 360px; + overflow: auto; + border: 1px solid var(--c-border); + border-radius: 10px; + background: #fff; + box-shadow: 0 10px 25px rgba(15, 23, 42, 0.12); +} + +.table-col-toggle-dropdown.is-open { + display: block; +} + +.table-col-toggle-header { + padding: 10px 12px; + border-bottom: 1px solid var(--c-border); + font-size: 12px; + font-weight: 700; + color: var(--c-muted); +} + +.table-col-toggle-item { + display: flex; + align-items: center; + gap: 10px; + padding: 8px 12px; + font-size: 13px; + color: var(--c-text-strong); +} + +.table-col-toggle-item:hover { + background: #f8fafc; +} + +.table-col-toggle-footer { + border-top: 1px solid var(--c-border); + padding: 8px 12px; +} + +.table-col-hidden { + display: none; +} + +.table-col-switch { + position: relative; + display: inline-block; + width: 34px; + min-width: 34px; + height: 18px; +} + +.table-col-switch input { + opacity: 0; + width: 0; + height: 0; + position: absolute; +} + +.table-col-switch-slider { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: #cbd5e1; + border-radius: 999px; + transition: background-color 0.2s ease; +} + +.table-col-switch-slider::before { + content: ""; + position: absolute; + height: 14px; + width: 14px; + left: 2px; + bottom: 2px; + background: #fff; + border-radius: 50%; + transition: transform 0.2s ease; +} + +.table-col-switch input:checked + .table-col-switch-slider { + background: #16a34a; +} + +.table-col-switch input:checked + .table-col-switch-slider::before { + transform: translateX(16px); +} + +.table-sort-link { + display: inline-flex; + align-items: center; + gap: 6px; + color: var(--c-text-strong); + text-decoration: none; +} + +.table-sort-link:hover { + color: var(--c-primary-dark); +} + +.table-sort-icon.is-muted { + color: #a0aec0; +} + +.table-list__footer { + display: flex; + align-items: center; + justify-content: space-between; + gap: 10px; + flex-wrap: wrap; +} + +.table-list-per-page-form { + display: inline-flex; + align-items: center; + gap: 8px; +} + +.table-list-per-page-form .form-control { + min-width: 90px; +} + +.table-select-col { + width: 44px; + text-align: center; +} + +.table-select-toggle { + display: inline-flex; + align-items: center; + justify-content: center; +} + +.table-select-toggle input[type=checkbox] { + width: 16px; + height: 16px; +} + +.orders-page .orders-head { + background: linear-gradient(120deg, #f8fbff 0%, #eef5ff 100%); + border: 1px solid #dbe7fb; +} +.orders-page .table-list { + border: 1px solid #dde5f2; + border-radius: 12px; + box-shadow: 0 6px 16px rgba(20, 44, 86, 0.08); +} +.orders-page .table-list__header { + padding: 10px 6px 2px; +} +.orders-page .table-list-filters { + padding: 6px 6px 2px; + border-top: 1px solid #ebf0f7; + border-bottom: 1px solid #ebf0f7; + background: #f9fbff; +} +.orders-page .table-wrap { + border-radius: 10px; + overflow: hidden; + border: 1px solid #e7edf6; +} +.orders-page .table thead th { + background: #f3f7fd; + color: #30435f; + font-size: 12px; + text-transform: uppercase; + letter-spacing: 0.03em; +} +.orders-page .table tbody td { + vertical-align: middle; + padding-top: 10px; + padding-bottom: 10px; + border-bottom-color: #edf2f8; +} +.orders-page .table tbody tr:hover td { + background: #f9fcff; +} + +.orders-list-page { + padding: 10px; + margin-bottom: 10px; +} + +.orders-head { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 12px; + flex-wrap: wrap; +} + +.orders-stats { + display: inline-grid; + grid-template-columns: repeat(3, minmax(86px, auto)); + gap: 8px; +} + +.orders-stat { + border: 1px solid #d8e2f0; + background: #f8fbff; + border-radius: 8px; + padding: 6px 8px; + line-height: 1.15; +} +.orders-stat__label { + display: block; + color: #5f6f83; + font-size: 11px; + margin-bottom: 2px; +} +.orders-stat__value { + color: #12233a; + font-size: 16px; + font-weight: 700; +} + +.orders-ref { + display: grid; + gap: 2px; + min-width: 170px; +} +.orders-ref__main { + font-weight: 700; + color: #0f1f35; + font-size: 14px; +} +.orders-ref__meta { + display: inline-flex; + flex-wrap: wrap; + gap: 4px 10px; + color: #64748b; + font-size: 12px; +} + +.orders-buyer { + display: grid; + gap: 2px; +} +.orders-buyer__name { + color: #0f172a; + font-weight: 600; + font-size: 14px; +} +.orders-buyer__meta { + display: inline-flex; + flex-wrap: wrap; + gap: 4px 10px; + color: #64748b; + font-size: 12px; +} + +.orders-status-wrap { + display: inline-flex; + align-items: center; + gap: 5px; + flex-wrap: wrap; +} + +.order-tag { + display: inline-flex; + align-items: center; + justify-content: center; + border: 1px solid #d8e1ef; + background: #f8fafc; + color: #334155; + border-radius: 999px; + padding: 2px 8px; + font-size: 12px; + font-weight: 700; + line-height: 1.1; +} +.order-tag.is-info { + border-color: #bfdbfe; + background: #eff6ff; + color: #1d4ed8; +} +.order-tag.is-success { + border-color: #bbf7d0; + background: #f0fdf4; + color: #166534; +} +.order-tag.is-danger { + border-color: #fecaca; + background: #fef2f2; + color: #b91c1c; +} +.order-tag.is-warn { + border-color: #fde68a; + background: #fffbeb; + color: #92400e; +} +.order-tag.is-cod { + border-color: #f9a8d4; + background: #fdf2f8; + color: #9d174d; +} +.order-tag.is-unpaid { + border-color: #fca5a5; + background: #fef2f2; + color: #b91c1c; +} + +.orders-mini { + font-size: 14px; + color: #223247; + line-height: 1.25; +} +.orders-mini__delivery { + font-size: 12px; + color: #64748b; + margin-bottom: 2px; + max-width: 160px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.orders-products { + display: grid; + gap: 4px; + min-width: 240px; +} +.orders-products__meta, .orders-products__more { + font-size: 12px; + color: #64748b; +} + +.orders-product { + display: grid; + grid-template-columns: 48px 1fr; + gap: 6px; + align-items: center; +} +.orders-product__thumb { + width: 48px; + height: 48px; + border-radius: 4px; + border: 1px solid #dbe3ef; + object-fit: cover; + background: #fff; +} +.orders-product__thumb--empty { + display: inline-block; + background: #eef2f7; + border-style: dashed; +} +.orders-product__txt { + min-width: 0; + display: grid; + gap: 1px; +} +.orders-product__name { + font-size: 14px; + color: #0f172a; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.orders-product__qty { + font-size: 12px; + color: #64748b; +} + +.orders-image-hover-wrap { + position: relative; + display: inline-flex; + align-items: center; + justify-content: center; + cursor: zoom-in; +} + +.orders-image-hover-popup { + display: none; + position: fixed; + left: auto; + top: auto; + width: 350px; + max-height: 350px; + object-fit: contain; + border-radius: 8px; + background: #fff; + box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18); + border: 1px solid #dfe3ea; + z-index: 100; + pointer-events: none; +} + +.orders-image-hover-wrap:hover .orders-image-hover-popup { + display: block; +} + +.activity-type-badge { + display: inline-block; + padding: 2px 8px; + border-radius: 4px; + font-size: 12px; + font-weight: 500; + white-space: nowrap; + background: #e2e8f0; + color: #334155; +} +.activity-type-badge--status_change { + background: #dbeafe; + color: #1e40af; +} +.activity-type-badge--payment { + background: #dcfce7; + color: #166534; +} +.activity-type-badge--invoice { + background: #fef3c7; + color: #92400e; +} +.activity-type-badge--shipment { + background: #e0e7ff; + color: #3730a3; +} +.activity-type-badge--message { + background: #f3e8ff; + color: #6b21a8; +} +.activity-type-badge--document { + background: #fce7f3; + color: #9d174d; +} +.activity-type-badge--import { + background: #f1f5f9; + color: #475569; +} +.activity-type-badge--note { + background: #ecfdf5; + color: #065f46; +} + +.text-nowrap { + white-space: nowrap; +} + +.orders-money { + display: grid; + gap: 2px; +} +.orders-money__main { + color: #0f172a; + font-weight: 700; + font-size: 14px; +} +.orders-money__meta { + color: #64748b; + font-size: 12px; +} + +.table-list[data-table-list-id=orders] { + gap: 8px; +} +.table-list[data-table-list-id=orders] .table-list__header { + padding: 2px 0 0; +} +.table-list[data-table-list-id=orders] .table-list-filters { + gap: 8px; + grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); +} +.table-list[data-table-list-id=orders] .table th, +.table-list[data-table-list-id=orders] .table td { + padding: 6px 8px; +} +.table-list[data-table-list-id=orders] .table thead th { + font-size: 12px; + text-transform: uppercase; + letter-spacing: 0.02em; + white-space: nowrap; +} +.table-list[data-table-list-id=orders] .table tbody td { + vertical-align: top; + font-size: 14px; + line-height: 1.25; +} + +.order-show-layout { + display: grid; + grid-template-columns: 220px minmax(0, 1fr); + gap: 12px; + align-items: start; +} + +.order-statuses-side { + position: sticky; + top: 60px; + padding: 10px; +} +.order-statuses-side__title { + font-size: 13px; + font-weight: 700; + color: #0f172a; + margin-bottom: 8px; +} + +.order-status-group { + margin-bottom: 10px; +} +.order-status-group__name { + font-size: 12px; + color: #475569; + font-weight: 700; + margin-bottom: 5px; +} + +.order-status-row { + display: flex; + align-items: center; + justify-content: space-between; + gap: 8px; + padding: 4px 6px; + border-radius: 6px; + color: #334155; + font-size: 12px; + text-decoration: none; +} +.order-status-row__count { + min-width: 24px; + text-align: center; + border-radius: 999px; + background: var(--status-color, #64748b); + padding: 1px 6px; + font-weight: 700; + font-size: 11px; + color: #ffffff; +} + +.order-status-row:hover { + background: #f1f5f9; +} + +.order-status-row.is-active { + background: rgba(15, 23, 42, 0.06); + color: #0f172a; + font-weight: 700; +} + +.order-show-main { + min-width: 0; +} + +.order-details-actions { + display: inline-flex; + flex-wrap: wrap; + justify-content: flex-end; + gap: 6px; +} + +.order-details-page { + padding: 12px; +} + +.order-details-head { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 12px; + flex-wrap: wrap; +} + +.order-back-link { + color: #475569; + text-decoration: none; + font-weight: 600; +} + +.order-back-link:hover { + color: #1d4ed8; +} + +.order-details-sub { + display: inline-flex; + gap: 10px; + flex-wrap: wrap; + color: #64748b; + font-size: 12px; +} + +.order-details-pill { + border-radius: 999px; + padding: 5px 10px; + background: #eef6ff; + border: 1px solid #cfe2ff; + color: #1d4ed8; + font-size: 12px; + font-weight: 700; +} + +.order-status-change { + display: flex; + align-items: center; + gap: 10px; + flex-wrap: wrap; +} + +.order-status-change__form { + display: flex; + align-items: center; + gap: 6px; +} + +.order-status-change__select { + min-width: 180px; +} + +.order-details-tabs { + display: flex; + gap: 6px; + flex-wrap: wrap; +} + +.order-details-tab { + border: 1px solid #d6deea; + border-radius: 8px; + padding: 5px 10px; + color: #475569; + font-size: 12px; + background: #f8fafc; + cursor: pointer; +} + +.order-details-tab.is-active { + border-color: #bfdbfe; + color: #1d4ed8; + background: #eff6ff; + font-weight: 700; +} + +.order-item-cell { + display: grid; + grid-template-columns: 44px 1fr; + gap: 8px; + align-items: center; + min-width: 260px; +} + +.order-item-thumb { + width: 44px; + height: 44px; + border-radius: 6px; + border: 1px solid #dbe3ef; + object-fit: cover; +} + +.order-item-thumb--empty { + display: inline-block; + background: #eef2f7; + border-style: dashed; +} + +.order-item-name { + font-weight: 600; + color: #0f172a; +} + +.order-grid-2 { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 12px; +} + +.order-grid-3 { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 12px; +} + +.order-kv { + margin: 0; + display: grid; + grid-template-columns: 150px 1fr; + gap: 6px 10px; + font-size: 12px; +} + +.payment-summary { + display: grid; + gap: 6px; + max-width: 420px; +} + +.payment-summary__row { + display: flex; + align-items: center; + gap: 10px; + font-size: 12px; +} + +.payment-summary__label { + width: 150px; + flex-shrink: 0; + color: #64748b; +} + +.payment-summary__value { + font-weight: 600; + color: #0f172a; +} + +.order-kv dt { + color: #64748b; +} + +.order-kv dd { + margin: 0; + color: #0f172a; + font-weight: 600; +} + +.order-address { + display: grid; + gap: 3px; + font-size: 12px; + color: #0f172a; +} + +.order-events { + display: grid; + gap: 8px; +} + +.order-event { + border: 1px solid #e2e8f0; + border-radius: 8px; + padding: 8px; + background: #fbfdff; +} + +.order-event__head { + color: #64748b; + font-size: 11px; +} + +.order-event__body { + margin-top: 4px; + color: #0f172a; + font-size: 12px; +} + +.order-tab-panel { + display: none; +} + +.order-tab-panel.is-active { + display: block; +} + +.order-empty-placeholder { + border: 1px dashed #cbd5e1; + border-radius: 8px; + min-height: 180px; + background: #f8fafc; +} + +.order-status-badge { + display: inline-flex; + align-items: center; + justify-content: center; + padding: 4px 10px; + border-radius: 999px; + font-size: 12px; + font-weight: 700; + border: 1px solid #cbd5e1; + color: #334155; + background: #f8fafc; +} +.order-status-badge.is-info { + border-color: #bfdbfe; + background: #eff6ff; + color: #1d4ed8; +} +.order-status-badge.is-success { + border-color: #bbf7d0; + background: #f0fdf4; + color: #166534; +} +.order-status-badge.is-danger { + border-color: #fecaca; + background: #fef2f2; + color: #b91c1c; +} +.order-status-badge.is-warn { + border-color: #fde68a; + background: #fffbeb; + color: #92400e; +} +.order-status-badge.is-empty { + color: #94a3b8; +} + +.order-buyer { + display: grid; + gap: 2px; +} +.order-buyer__name { + color: #0f172a; + font-weight: 600; +} +.order-buyer__email { + color: #64748b; + font-size: 12px; +} + +.table-inline-action { + display: inline-block; + margin-right: 6px; +} + +.product-name-cell { + display: inline-flex; + align-items: center; + gap: 10px; +} + +.product-name-thumb { + width: 60px; + height: 60px; + border-radius: 6px; + object-fit: cover; + border: 1px solid var(--c-border); + background: #f8fafc; +} + +.product-name-thumb--empty { + display: inline-block; + width: 60px; + height: 60px; + border-radius: 6px; + border: 1px dashed #cbd5e0; + background: #f8fafc; +} + +.product-name-thumb-btn { + border: 0; + padding: 0; + background: transparent; + cursor: pointer; + display: inline-flex; + align-items: center; + justify-content: center; +} + +.product-name-thumb-btn:focus-visible { + outline: none; + box-shadow: var(--focus-ring); + border-radius: 8px; +} + +.modal--image-preview { + width: min(760px, 100%); +} + +.product-image-preview__img { + display: block; + width: 100%; + max-height: 70vh; + object-fit: contain; + border-radius: 8px; + background: #f8fafc; +} + +.product-images-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); + gap: 12px; +} + +.product-image-card { + border: 1px solid #dfe3ea; + border-radius: 10px; + padding: 10px; + background: #fff; +} + +.product-image-card__thumb-wrap { + position: relative; + border-radius: 8px; + overflow: hidden; + background: #f2f5f8; +} + +.product-image-card__thumb { + width: 100%; + height: 160px; + object-fit: cover; + display: block; +} + +.product-image-card__thumb.is-empty { + height: 160px; + display: grid; + place-items: center; + color: #6b7785; + font-size: 12px; +} + +.product-image-card__badge { + display: none; + position: absolute; + top: 8px; + left: 8px; + background: #1f7a43; + color: #fff; + padding: 3px 8px; + border-radius: 999px; + font-size: 11px; +} + +.product-image-card.is-main .product-image-card__badge { + display: inline-block; +} + +.product-image-card__meta { + margin-top: 8px; + font-size: 11px; + line-height: 1.25; + color: #5f6b79; + overflow-wrap: anywhere; +} + +.product-image-card__actions { + margin-top: 10px; + display: grid; + grid-template-columns: 1fr; + gap: 8px; +} + +.product-image-card__actions .btn { + min-height: 34px; + font-size: 12px; + line-height: 1.2; + padding: 6px 10px; +} + +.product-links-search-form { + display: grid; + gap: 12px; + grid-template-columns: minmax(220px, 320px) minmax(220px, 1fr) auto; + align-items: end; +} + +.product-links-head { + display: grid; + gap: 8px; + grid-template-columns: repeat(3, minmax(0, 1fr)); +} + +.product-tabs-nav { + display: flex; + align-items: center; + gap: 8px; + flex-wrap: wrap; +} + +.product-links-inline-form { + display: grid; + gap: 8px; + grid-template-columns: minmax(140px, 1fr) minmax(140px, 1fr) auto; + align-items: center; +} + +.product-links-actions-row { + display: flex; + align-items: center; + gap: 8px; + flex-wrap: nowrap; +} + +.product-links-actions-row .product-links-relink-form { + flex: 1 1 auto; +} + +.product-links-unlink-form { + margin: 0; + flex: 0 0 auto; +} + +.product-link-status-cell { + display: inline-flex; + align-items: center; + gap: 6px; +} + +.product-link-alert-indicator { + display: inline-flex; + align-items: center; + justify-content: center; + width: 18px; + height: 18px; + border-radius: 999px; + border: 1px solid #f59e0b; + background: #fffbeb; + color: #b45309; + font-size: 12px; + font-weight: 700; + cursor: help; +} + +.product-link-events-list { + margin: 0; + padding: 0; + list-style: none; + display: grid; + gap: 4px; +} + +.product-link-events-list li { + display: grid; + gap: 2px; +} + +.product-link-events-type { + font-weight: 600; + color: var(--c-text-strong); +} + +.product-link-events-date { + color: var(--c-muted); + font-size: 12px; +} + +.product-show-images-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); + gap: 12px; +} + +.product-show-image-card { + border: 1px solid var(--c-border); + border-radius: 10px; + background: #fff; + padding: 10px; + overflow: hidden; +} +.product-show-image-card__meta { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 8px; + min-width: 0; +} + +.product-show-image-path { + font-size: 12px; + min-width: 0; + overflow: hidden; +} +.product-show-image-path summary { + cursor: pointer; + color: var(--c-muted, #888); + list-style: none; + user-select: none; + white-space: nowrap; +} +.product-show-image-path summary::-webkit-details-marker { + display: none; +} +.product-show-image-path summary::after { + content: " ▾"; +} +.product-show-image-path[open] summary::after { + content: " ▴"; +} +.product-show-image-path__url { + margin-top: 4px; + word-break: break-all; + overflow-wrap: break-word; + font-size: 11px; +} + +.product-show-image { + width: 100%; + max-height: 260px; + object-fit: cover; + border-radius: 8px; + border: 1px solid #d9e0ea; +} + +.shipment-grid { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 12px; +} + +.searchable-select { + position: relative; +} +.searchable-select__trigger { + display: flex; + align-items: center; + justify-content: space-between; + cursor: pointer; + user-select: none; + min-height: 34px; +} +.searchable-select__trigger::after { + content: ""; + width: 0; + height: 0; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 5px solid var(--c-text-muted, #6b7280); + margin-left: 8px; + flex-shrink: 0; +} +.searchable-select__trigger--placeholder { + color: var(--c-text-muted, #6b7280); +} +.searchable-select__dropdown { + display: none; + position: absolute; + left: 0; + right: 0; + top: 100%; + z-index: 50; + max-height: 280px; + overflow: auto; + background: #fff; + border: 1px solid var(--c-border); + border-top: 0; + border-radius: 0 0 8px 8px; + box-shadow: 0 8px 20px rgba(15, 23, 42, 0.12); +} +.searchable-select__dropdown.is-open { + display: block; +} +.searchable-select__search { + position: sticky; + top: 0; + border: none !important; + border-bottom: 1px solid var(--c-border) !important; + border-radius: 0 !important; + box-shadow: none !important; + font-size: 13px; + background: #fff; + z-index: 1; +} +.searchable-select__option { + padding: 7px 10px; + font-size: 13px; + cursor: pointer; + color: var(--c-text-strong); +} +.searchable-select__option:hover { + background: #f1f5f9; +} +.searchable-select__option.is-selected { + background: #edf2ff; + font-weight: 600; +} + +.flash { + padding: 10px 14px; + border-radius: 8px; + font-size: 13px; + font-weight: 500; +} +.flash--success { + background: #f0fdf4; + border: 1px solid #bbf7d0; + color: #166534; +} +.flash--error { + background: #fef2f2; + border: 1px solid #fecaca; + color: #b91c1c; +} + +.content-tabs-card { + margin-top: 0; +} + +.content-tabs-nav { + display: flex; + gap: 4px; + border-bottom: 2px solid var(--c-border); + margin-bottom: 16px; + flex-wrap: wrap; +} + +.content-tab-btn { + padding: 8px 16px; + border: none; + background: none; + cursor: pointer; + font-size: 14px; + font-weight: 500; + color: var(--c-text-muted, #6b7280); + border-bottom: 2px solid transparent; + margin-bottom: -2px; + border-radius: 4px 4px 0 0; + transition: color 0.15s, border-color 0.15s; +} +.content-tab-btn:hover { + color: var(--c-text-strong, #111827); +} +.content-tab-btn.is-active { + color: var(--c-primary, #2563eb); + border-bottom-color: var(--c-primary, #2563eb); +} + +.content-tab-panel { + display: none; +} +.content-tab-panel.is-active { + display: block; +} + +.shoppro-tabs-toolbar { + display: flex; + align-items: flex-end; + justify-content: space-between; + gap: 10px; + margin-bottom: 10px; + flex-wrap: wrap; +} + +.shoppro-tabs-toolbar__field { + margin: 0; + min-width: 260px; + max-width: 420px; + flex: 1 1 320px; +} + +.shoppro-tabs-toolbar__field .form-control { + width: 100%; +} + +.shoppro-tabs-toolbar__actions { + display: inline-flex; + align-items: center; + gap: 8px; +} + +.dm-carrier-select { + min-width: 140px; +} + +.dm-service-wrap { + min-width: 200px; +} +.dm-service-wrap .dm-inpost-panel .form-control, +.dm-service-wrap .dm-apaczka-panel .form-control { + width: 100%; +} + +.integration-settings-group { + grid-column: 1/-1; + border: 1px solid var(--c-border); + border-radius: 10px; + background: #f8fbff; + padding: 10px; +} + +.integration-settings-group__head { + margin-bottom: 8px; + padding: 4px 0; + border-bottom: 1px solid #e2e8f0; +} + +.integration-settings-group__title { + margin: 0; + font-size: 14px; + font-weight: 600; + letter-spacing: 0.01em; + color: var(--c-text-strong, #1e293b); +} + +.integration-settings-group__desc { + margin: 4px 0 0; + color: #4b5563; +} + +.integration-settings-group__grid { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 10px 12px; + align-items: start; +} + +.integration-settings-group__full { + grid-column: 1/-1; +} + +.integration-settings-group__grid .form-field { + margin: 0; + align-self: start; +} + +.integration-settings-group__grid .form-control { + min-height: 34px; + height: 34px; +} + +.integration-settings-group__grid input[type=date].form-control { + line-height: 1.2; +} + +.integration-settings-checkboxes { + border: 0; + padding: 0; + margin: 0; +} + +.integration-settings-checkboxes .field-label { + display: block; + margin-bottom: 2px; +} + +.integration-settings-checkboxes__list { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 6px 12px; +} + +.integration-settings-checkboxes__item { + display: inline-flex; + align-items: center; + gap: 6px; + font-size: 13px; + color: #334155; +} + +@media (max-width: 768px) { + .app-shell { + flex-direction: column; + } + .sidebar { + width: 100% !important; + min-width: 0 !important; + border-right: 0; + border-bottom: 1px solid #243041; + padding: 14px; + overflow-x: auto; + } + .sidebar__brand { + margin: 0 0 10px; + font-size: 22px; + } + .sidebar__collapse-btn { + display: none; + } + .sidebar__nav { + display: flex; + gap: 8px; + overflow-x: auto; + } + .sidebar__link { + white-space: nowrap; + } + .topbar { + padding: 0 14px; + } + .container { + margin-top: 16px; + width: calc(100% - 16px); + margin-left: 8px; + margin-right: 8px; + padding: 0 3px 12px; + } + .settings-grid { + grid-template-columns: 1fr; + } + .page-head { + flex-direction: column; + align-items: flex-start; + } + .orders-stats { + grid-template-columns: 1fr; + width: 100%; + } + .order-show-layout { + grid-template-columns: 1fr; + } + .order-statuses-side { + position: static; + top: auto; + } + .order-details-actions { + justify-content: flex-start; + } + .order-grid-2, + .order-grid-3 { + grid-template-columns: 1fr; + } + .order-kv { + grid-template-columns: 1fr; + gap: 2px; + } + .filters-grid, + .form-grid, + .form-grid-2, + .form-grid-3, + .form-grid-4, + .shipment-grid, + .statuses-form, + .statuses-inline-form, + .table-list-filters, + .product-links-search-form, + .product-links-inline-form { + grid-template-columns: 1fr; + } + .statuses-dnd-item__content { + display: block; + } + .statuses-inline-delete { + margin-top: 6px; + } + .filters-actions { + align-items: center; + } + .table-list__header, + .table-list__footer { + align-items: flex-start; + } + .product-links-head { + grid-template-columns: 1fr; + } + .integration-settings-group__grid { + grid-template-columns: 1fr; + } + .integration-settings-checkboxes__list { + grid-template-columns: 1fr; + } + .card { + padding: 12px; + } + .modal--image-preview { + width: min(92vw, 100%); + } +} diff --git a/resources/modules/jquery-alerts/jquery-alerts.css b/resources/modules/jquery-alerts/jquery-alerts.css new file mode 100644 index 0000000..1a938a1 --- /dev/null +++ b/resources/modules/jquery-alerts/jquery-alerts.css @@ -0,0 +1,117 @@ +.jq-alert-host { + position: fixed; + top: 16px; + right: 16px; + z-index: 300; + width: min(420px, 100vw - 32px); +} + +.jq-alert { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; + margin-top: 12px; + padding: 12px 14px; + border: 1px solid transparent; + border-radius: 8px; + font-size: 14px; + opacity: 0; + transform: translateY(4px); + transition: opacity 0.18s ease, transform 0.18s ease; +} + +.jq-alert.is-visible { + opacity: 1; + transform: translateY(0); +} + +.jq-alert--info { + color: #1e3a8a; + background: #eff6ff; + border-color: #bfdbfe; +} + +.jq-alert--success { + color: #065f46; + background: #ecfdf5; + border-color: #a7f3d0; +} + +.jq-alert--warning { + color: #92400e; + background: #fffbeb; + border-color: #fde68a; +} + +.jq-alert--error { + color: #991b1b; + background: #fef2f2; + border-color: #fecaca; +} + +.jq-alert__content { + flex: 1; +} + +.jq-alert__close { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border: 0; + padding: 0; + line-height: 1; + font-size: 18px; + cursor: pointer; + color: inherit; + background: transparent; +} + +.jq-alert-modal-backdrop { + position: fixed; + inset: 0; + z-index: 310; + display: flex; + align-items: center; + justify-content: center; + padding: 16px; + background: rgba(15, 23, 42, 0.5); + opacity: 0; + transition: opacity 0.18s ease; +} + +.jq-alert-modal-backdrop.is-visible { + opacity: 1; +} + +.jq-alert-modal { + width: min(520px, 100%); + border-radius: 10px; + border: 1px solid #dbe3ee; + background: #ffffff; + box-shadow: 0 18px 42px rgba(15, 23, 42, 0.3); +} + +.jq-alert-modal__header { + padding: 14px 16px; + border-bottom: 1px solid #e2e8f0; +} + +.jq-alert-modal__header h3 { + margin: 0; + color: #2d3748; + font-size: 18px; +} + +.jq-alert-modal__body { + padding: 14px 16px; + color: #4e5e6a; + line-height: 1.45; +} + +.jq-alert-modal__footer { + display: flex; + justify-content: flex-end; + gap: 8px; + padding: 0 16px 14px; +}/*# sourceMappingURL=jquery-alerts.css.map */ \ No newline at end of file diff --git a/resources/modules/jquery-alerts/jquery-alerts.css.map b/resources/modules/jquery-alerts/jquery-alerts.css.map new file mode 100644 index 0000000..e9cb933 --- /dev/null +++ b/resources/modules/jquery-alerts/jquery-alerts.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["jquery-alerts.scss","jquery-alerts.css"],"names":[],"mappings":"AAAA;EACE,eAAA;EACA,SAAA;EACA,WAAA;EACA,YAAA;EACA,+BAAA;ACCF;;ADEA;EACE,aAAA;EACA,mBAAA;EACA,8BAAA;EACA,SAAA;EACA,gBAAA;EACA,kBAAA;EACA,6BAAA;EACA,kBAAA;EACA,eAAA;EACA,UAAA;EACA,0BAAA;EACA,oDAAA;ACCF;;ADEA;EACE,UAAA;EACA,wBAAA;ACCF;;ADEA;EACE,cAAA;EACA,mBAAA;EACA,qBAAA;ACCF;;ADEA;EACE,cAAA;EACA,mBAAA;EACA,qBAAA;ACCF;;ADEA;EACE,cAAA;EACA,mBAAA;EACA,qBAAA;ACCF;;ADEA;EACE,cAAA;EACA,mBAAA;EACA,qBAAA;ACCF;;ADEA;EACE,OAAA;ACCF;;ADEA;EACE,wBAAA;KAAA,qBAAA;UAAA,gBAAA;EACA,SAAA;EACA,UAAA;EACA,cAAA;EACA,eAAA;EACA,eAAA;EACA,cAAA;EACA,uBAAA;ACCF;;ADEA;EACE,eAAA;EACA,QAAA;EACA,YAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,aAAA;EACA,iCAAA;EACA,UAAA;EACA,8BAAA;ACCF;;ADEA;EACE,UAAA;ACCF;;ADEA;EACE,uBAAA;EACA,mBAAA;EACA,yBAAA;EACA,mBAAA;EACA,6CAAA;ACCF;;ADEA;EACE,kBAAA;EACA,gCAAA;ACCF;;ADEA;EACE,SAAA;EACA,cAAA;EACA,eAAA;ACCF;;ADEA;EACE,kBAAA;EACA,cAAA;EACA,iBAAA;ACCF;;ADEA;EACE,aAAA;EACA,yBAAA;EACA,QAAA;EACA,oBAAA;ACCF","file":"jquery-alerts.css","sourcesContent":[".jq-alert-host {\n position: fixed;\n top: 16px;\n right: 16px;\n z-index: 300;\n width: min(420px, calc(100vw - 32px));\n}\n\n.jq-alert {\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: 12px;\r\n margin-top: 12px;\r\n padding: 12px 14px;\r\n border: 1px solid transparent;\r\n border-radius: 8px;\r\n font-size: 14px;\r\n opacity: 0;\r\n transform: translateY(4px);\r\n transition: opacity 0.18s ease, transform 0.18s ease;\r\n}\r\n\r\n.jq-alert.is-visible {\r\n opacity: 1;\r\n transform: translateY(0);\r\n}\r\n\r\n.jq-alert--info {\r\n color: #1e3a8a;\r\n background: #eff6ff;\r\n border-color: #bfdbfe;\r\n}\r\n\r\n.jq-alert--success {\r\n color: #065f46;\r\n background: #ecfdf5;\r\n border-color: #a7f3d0;\r\n}\r\n\r\n.jq-alert--warning {\r\n color: #92400e;\r\n background: #fffbeb;\r\n border-color: #fde68a;\r\n}\r\n\r\n.jq-alert--error {\r\n color: #991b1b;\r\n background: #fef2f2;\r\n border-color: #fecaca;\r\n}\r\n\r\n.jq-alert__content {\r\n flex: 1;\r\n}\r\n\r\n.jq-alert__close {\n appearance: none;\r\n border: 0;\r\n padding: 0;\r\n line-height: 1;\r\n font-size: 18px;\r\n cursor: pointer;\r\n color: inherit;\r\n background: transparent;\n}\n\n.jq-alert-modal-backdrop {\n position: fixed;\n inset: 0;\n z-index: 310;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 16px;\n background: rgba(15, 23, 42, 0.5);\n opacity: 0;\n transition: opacity 0.18s ease;\n}\n\n.jq-alert-modal-backdrop.is-visible {\n opacity: 1;\n}\n\n.jq-alert-modal {\n width: min(520px, 100%);\n border-radius: 10px;\n border: 1px solid #dbe3ee;\n background: #ffffff;\n box-shadow: 0 18px 42px rgba(15, 23, 42, 0.3);\n}\n\n.jq-alert-modal__header {\n padding: 14px 16px;\n border-bottom: 1px solid #e2e8f0;\n}\n\n.jq-alert-modal__header h3 {\n margin: 0;\n color: #2d3748;\n font-size: 18px;\n}\n\n.jq-alert-modal__body {\n padding: 14px 16px;\n color: #4e5e6a;\n line-height: 1.45;\n}\n\n.jq-alert-modal__footer {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n padding: 0 16px 14px;\n}\n",".jq-alert-host {\n position: fixed;\n top: 16px;\n right: 16px;\n z-index: 300;\n width: min(420px, 100vw - 32px);\n}\n\n.jq-alert {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n margin-top: 12px;\n padding: 12px 14px;\n border: 1px solid transparent;\n border-radius: 8px;\n font-size: 14px;\n opacity: 0;\n transform: translateY(4px);\n transition: opacity 0.18s ease, transform 0.18s ease;\n}\n\n.jq-alert.is-visible {\n opacity: 1;\n transform: translateY(0);\n}\n\n.jq-alert--info {\n color: #1e3a8a;\n background: #eff6ff;\n border-color: #bfdbfe;\n}\n\n.jq-alert--success {\n color: #065f46;\n background: #ecfdf5;\n border-color: #a7f3d0;\n}\n\n.jq-alert--warning {\n color: #92400e;\n background: #fffbeb;\n border-color: #fde68a;\n}\n\n.jq-alert--error {\n color: #991b1b;\n background: #fef2f2;\n border-color: #fecaca;\n}\n\n.jq-alert__content {\n flex: 1;\n}\n\n.jq-alert__close {\n appearance: none;\n border: 0;\n padding: 0;\n line-height: 1;\n font-size: 18px;\n cursor: pointer;\n color: inherit;\n background: transparent;\n}\n\n.jq-alert-modal-backdrop {\n position: fixed;\n inset: 0;\n z-index: 310;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 16px;\n background: rgba(15, 23, 42, 0.5);\n opacity: 0;\n transition: opacity 0.18s ease;\n}\n\n.jq-alert-modal-backdrop.is-visible {\n opacity: 1;\n}\n\n.jq-alert-modal {\n width: min(520px, 100%);\n border-radius: 10px;\n border: 1px solid #dbe3ee;\n background: #ffffff;\n box-shadow: 0 18px 42px rgba(15, 23, 42, 0.3);\n}\n\n.jq-alert-modal__header {\n padding: 14px 16px;\n border-bottom: 1px solid #e2e8f0;\n}\n\n.jq-alert-modal__header h3 {\n margin: 0;\n color: #2d3748;\n font-size: 18px;\n}\n\n.jq-alert-modal__body {\n padding: 14px 16px;\n color: #4e5e6a;\n line-height: 1.45;\n}\n\n.jq-alert-modal__footer {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n padding: 0 16px 14px;\n}"]} \ No newline at end of file diff --git a/resources/scss/app.css b/resources/scss/app.css new file mode 100644 index 0000000..9bceac3 --- /dev/null +++ b/resources/scss/app.css @@ -0,0 +1,2465 @@ +@charset "UTF-8"; +:root { + --c-primary: #6690f4; + --c-primary-dark: #3164db; + --c-bg: #f4f6f9; + --c-surface: #ffffff; + --c-text: #4e5e6a; + --c-text-strong: #2d3748; + --c-muted: #718096; + --c-border: #b0bec5; + --c-danger: #cc0000; + --focus-ring: 0 0 0 3px rgba(102, 144, 244, 0.15); + --shadow-card: 0 1px 4px rgba(0, 0, 0, 0.06); +} + +.btn { + display: inline-flex; + align-items: center; + justify-content: center; + min-height: 34px; + padding: 6px 12px; + border: 1px solid transparent; + border-radius: 8px; + font: inherit; + font-weight: 600; + text-decoration: none; + cursor: pointer; + transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.1s ease; +} + +.btn--primary { + color: #ffffff; + background: var(--c-primary); +} + +.btn--primary:hover { + background: var(--c-primary-dark); +} + +.btn--secondary { + color: var(--c-text-strong); + border-color: var(--c-border); + background: var(--c-surface); +} + +.btn--secondary:hover { + border-color: #cbd5e0; + background: #f8fafc; +} + +.btn--danger { + color: #ffffff; + border-color: #b91c1c; + background: #dc2626; +} + +.btn--danger:hover { + border-color: #991b1b; + background: #b91c1c; +} + +.btn--sm { + min-height: 28px; + padding: 3px 10px; + font-size: 12px; +} + +.btn--block { + width: 100%; +} + +.btn:active { + transform: translateY(1px); +} + +.btn:focus-visible { + outline: none; + box-shadow: var(--focus-ring); + border-color: var(--c-primary); +} + +.form-control { + width: 100%; + min-height: 34px; + border: 1px solid var(--c-border); + border-radius: 8px; + padding: 5px 10px; + font: inherit; + color: var(--c-text-strong); + background: #ffffff; + transition: border-color 0.2s ease, box-shadow 0.2s ease; +} + +.form-control:focus { + outline: none; + border-color: var(--c-primary); + box-shadow: var(--focus-ring); +} + +.input { + min-height: 34px; + border: 1px solid var(--c-border); + border-radius: 8px; + padding: 5px 10px; + font: inherit; + color: var(--c-text-strong); + background: #ffffff; +} + +.input--sm { + min-height: 28px; + padding: 3px 8px; + font-size: 12px; +} + +.flash { + padding: 8px 12px; + border-radius: 6px; + font-size: 13px; +} + +.flash--success { + border: 1px solid #b7ebcf; + background: #f0fff6; + color: #0f6b39; +} + +.flash--error { + border: 1px solid #fed7d7; + background: #fff5f5; + color: var(--c-danger); +} + +.alert { + padding: 12px 14px; + border-radius: 8px; + border: 1px solid transparent; + font-size: 13px; + min-height: 44px; +} + +.alert--danger { + border-color: #fed7d7; + background: #fff5f5; + color: var(--c-danger); +} + +.alert--success { + border-color: #b7ebcf; + background: #f0fff6; + color: #0f6b39; +} + +.alert--warning { + border-color: #f7dd8b; + background: #fff8e8; + color: #815500; +} + +.form-field { + display: grid; + gap: 5px; +} + +.field-label { + color: var(--c-text-strong); + font-size: 13px; + font-weight: 600; +} + +.table-wrap { + width: 100%; + overflow-x: auto; +} +.table-wrap--visible { + overflow: visible !important; + overflow-x: visible !important; +} + +.table { + width: 100%; + border-collapse: collapse; + background: var(--c-surface); +} + +.table th, +.table td { + padding: 10px 12px; + border-bottom: 1px solid var(--c-border); + text-align: left; +} + +.table th { + color: var(--c-text-strong); + font-weight: 700; + background: #f8fafc; +} + +.table--details th { + white-space: nowrap; +} + +.table--details th:first-child, +.table--details td:first-child { + width: 36px; + text-align: center; +} + +.pagination { + display: flex; + align-items: center; + flex-wrap: wrap; + gap: 8px; +} + +.pagination__item { + display: inline-flex; + align-items: center; + justify-content: center; + min-width: 36px; + height: 36px; + padding: 0 10px; + border-radius: 8px; + border: 1px solid var(--c-border); + color: var(--c-text-strong); + background: var(--c-surface); + text-decoration: none; + font-weight: 600; +} + +.pagination__item:hover { + border-color: #cbd5e0; + background: #f8fafc; +} + +.pagination__item.is-active { + border-color: var(--c-primary); + color: var(--c-primary); + background: #edf2ff; +} + +* { + box-sizing: border-box; +} + +html, +body { + min-height: 100%; +} + +body { + margin: 0; + font-family: "Roboto", "Segoe UI", sans-serif; + font-size: 13px; + color: var(--c-text); + background: var(--c-bg); +} + +a { + color: var(--c-primary); +} + +.app-shell { + min-height: 100vh; + display: flex; +} + +.sidebar { + width: 260px; + min-width: 260px; + flex-shrink: 0; + overflow: hidden; + transition: width 0.22s ease, min-width 0.22s ease; + border-right: 1px solid #243041; + background: #111a28; + padding: 18px 10px; + display: flex; + flex-direction: column; +} + +.sidebar.is-collapsed { + width: 52px; + min-width: 52px; +} + +.sidebar__brand { + display: flex; + align-items: center; + justify-content: space-between; + margin: 4px 4px 16px; + gap: 6px; + min-width: 0; +} + +.sidebar__brand-text { + color: #e9f0ff; + font-size: 24px; + font-weight: 300; + letter-spacing: -0.02em; + white-space: nowrap; + overflow: hidden; + flex: 1; + min-width: 0; +} +.sidebar__brand-text strong { + font-weight: 700; +} + +.sidebar__collapse-btn { + flex-shrink: 0; + width: 28px; + height: 28px; + display: flex; + align-items: center; + justify-content: center; + background: transparent; + border: 1px solid #2a3a54; + border-radius: 6px; + color: #64748b; + cursor: pointer; + padding: 0; + transition: background 0.15s, color 0.15s; +} +.sidebar__collapse-btn:hover { + background: #1b2a3f; + color: #cbd5e1; +} + +.sidebar__collapse-icon { + display: block; + transition: transform 0.22s ease; + flex-shrink: 0; +} + +.sidebar.is-collapsed .sidebar__collapse-icon { + transform: rotate(180deg); +} + +.sidebar__nav { + display: grid; + gap: 4px; +} + +.sidebar__link { + border-radius: 8px; + padding: 10px 12px; + text-decoration: none; + color: #cbd5e1; + font-weight: 600; +} + +.sidebar__link:hover { + color: #f8fafc; + background: #1b2a3f; +} + +.sidebar__link.is-active { + color: #ffffff; + background: #2e4f93; +} + +.sidebar__group { + display: grid; + gap: 2px; +} + +.sidebar__group-toggle { + list-style: none; + border-radius: 8px; + padding: 9px 10px; + color: #cbd5e1; + font-weight: 600; + cursor: pointer; + display: flex; + align-items: center; + gap: 9px; + white-space: nowrap; + user-select: none; +} + +.sidebar__group-toggle::-webkit-details-marker { + display: none; +} + +.sidebar__group:hover .sidebar__group-toggle, +.sidebar__group-toggle:hover { + color: #f8fafc; + background: #1b2a3f; +} + +.sidebar__group.is-active .sidebar__group-toggle { + color: #ffffff; + background: #2e4f93; +} + +.sidebar__icon { + flex-shrink: 0; + width: 18px; + height: 18px; + display: flex; + align-items: center; + justify-content: center; + opacity: 0.85; +} + +.sidebar__label { + flex: 1; + min-width: 0; + overflow: hidden; +} + +.sidebar__toggle-arrow { + flex-shrink: 0; + margin-left: auto; + opacity: 0.5; + transition: transform 0.18s ease; +} + +details[open] > .sidebar__group-toggle .sidebar__toggle-arrow { + transform: rotate(180deg); +} + +.sidebar__group-links { + display: grid; + gap: 2px; + padding-left: 12px; + overflow: hidden; +} + +.sidebar__sublink { + border-radius: 6px; + padding: 7px 10px 7px 8px; + text-decoration: none; + color: #94a3b8; + font-size: 12.5px; + font-weight: 500; + display: flex; + align-items: center; + gap: 8px; + white-space: nowrap; +} +.sidebar__sublink::before { + content: ""; + flex-shrink: 0; + width: 5px; + height: 5px; + border-radius: 50%; + background: rgba(148, 163, 184, 0.3); + transition: background 0.15s; +} +.sidebar__sublink:hover { + color: #e2e8f0; + background: #1b2a3f; +} +.sidebar__sublink:hover::before { + background: rgba(148, 163, 184, 0.65); +} +.sidebar__sublink.is-active { + color: #ffffff; + background: rgba(46, 79, 147, 0.55); +} +.sidebar__sublink.is-active::before { + background: #93c5fd; +} + +.app-main { + flex: 1; + min-width: 0; +} + +.topbar { + height: 50px; + border-bottom: 1px solid var(--c-border); + background: var(--c-surface); + display: flex; + align-items: center; + justify-content: space-between; + padding: 0 20px; + position: sticky; + top: 0; + z-index: 100; +} + +.brand { + font-size: 22px; + font-weight: 300; + letter-spacing: -0.02em; + color: var(--c-text-strong); +} + +.brand strong { + font-weight: 700; +} + +.container { + max-width: none; + width: calc(100% - 20px); + margin: 12px 10px; + padding: 0 4px 14px; +} + +.card { + background: var(--c-surface); + border-radius: 10px; + box-shadow: var(--shadow-card); + padding: 14px; +} + +.card h1 { + margin: 0 0 10px; + color: var(--c-text-strong); + font-size: 24px; + font-weight: 700; +} + +.muted { + color: var(--c-muted); +} + +.accent { + color: var(--c-primary); + font-weight: 600; +} + +.users-form { + display: grid; + gap: 14px; + max-width: 460px; +} + +.form-field { + margin-bottom: 12px; +} + +.section-title { + margin: 0; + color: var(--c-text-strong); + font-size: 18px; + font-weight: 700; +} + +h2.section-title, +h3.section-title, +h4.section-title { + display: flex; + align-items: center; + gap: 6px; + font-weight: 600; + padding: 6px 0; + border-bottom: 1px solid #e2e8f0; + color: var(--c-primary, #2563eb); +} +h2.section-title::before, +h3.section-title::before, +h4.section-title::before { + content: "■"; + font-size: 0.55em; + opacity: 0.5; +} + +h3.section-title, +h4.section-title { + font-size: 15px; +} +h3.section-title::before, +h4.section-title::before { + content: "◆"; + font-size: 0.5em; +} + +.mt-0 { + margin-top: 0; +} + +.mt-4 { + margin-top: 4px; +} + +.mt-12 { + margin-top: 8px; +} + +.mt-16 { + margin-top: 12px; +} + +.settings-grid { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 12px; +} + +.settings-nav { + display: flex; + gap: 8px; + flex-wrap: wrap; +} + +.settings-nav__link { + text-decoration: none; + border: 1px solid var(--c-border); + border-radius: 8px; + padding: 8px 12px; + color: var(--c-text-strong); + font-weight: 600; +} + +.settings-nav__link:hover { + background: #f8fafc; +} + +.settings-nav__link.is-active { + border-color: var(--c-primary); + color: var(--c-primary); + background: #edf2ff; +} + +.settings-stat { + border: 1px solid var(--c-border); + border-radius: 8px; + padding: 12px; + background: #f8fafc; +} + +.settings-stat__label { + display: block; + color: var(--c-muted); + font-size: 12px; + margin-bottom: 4px; +} + +.settings-stat__value { + color: var(--c-text-strong); + font-size: 20px; +} + +.settings-logs { + margin: 0; + padding: 12px; + border-radius: 8px; + border: 1px solid var(--c-border); + background: #0b1220; + color: #d1d5db; + font-size: 12px; + line-height: 1.5; + overflow: auto; +} + +.settings-allegro-callback { + display: block; + width: 100%; + padding: 8px 10px; + border: 1px solid var(--c-border); + border-radius: 8px; + background: #f8fafc; + color: var(--c-text-strong); + font-size: 12px; + line-height: 1.45; + word-break: break-all; +} + +.page-head { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; +} + +.filters-grid { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 12px; +} + +.filters-actions { + display: flex; + align-items: end; + gap: 8px; +} + +.product-form .form-control { + width: 100%; +} + +.form-grid { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 12px; +} + +.form-grid-2 { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 12px; +} + +.form-grid-3 { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 12px; +} + +.form-grid-4 { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + gap: 12px; +} + +.form-actions { + display: flex; + gap: 8px; + flex-wrap: wrap; + align-items: flex-start; +} + +.form-actions .btn { + align-self: flex-start; +} + +.statuses-form { + display: grid; + gap: 8px; + grid-template-columns: repeat(2, minmax(0, 1fr)); +} + +.statuses-form .form-actions { + grid-column: 1/-1; +} + +.statuses-color-input { + min-height: 32px; + padding: 2px; +} + +.statuses-hint { + grid-column: 1/-1; + margin: 0; +} + +.statuses-group-block { + border: 1px solid var(--c-border); + border-radius: 10px; + padding: 8px; + background: #fbfdff; +} + +.statuses-group-block__head { + display: flex; + align-items: center; + justify-content: space-between; + gap: 6px; + flex-wrap: wrap; +} + +.statuses-group-block__title { + margin: 0; + display: inline-flex; + align-items: center; + gap: 6px; + color: var(--c-text-strong); + font-size: 14px; +} + +.statuses-color-dot { + width: 12px; + height: 12px; + border-radius: 999px; + border: 1px solid rgba(15, 23, 42, 0.15); +} + +.statuses-dnd-list { + margin: 6px 0 0; + padding: 0; + list-style: none; + display: grid; + gap: 6px; +} + +.statuses-dnd-item { + display: grid; + grid-template-columns: 24px 1fr; + gap: 6px; + border: 1px solid #dce4f0; + border-radius: 8px; + background: #fff; + padding: 6px; +} + +.statuses-dnd-item__content { + display: flex; + align-items: center; + gap: 6px; + min-width: 0; +} + +.statuses-dnd-item.is-dragging { + opacity: 0.6; +} + +.statuses-dnd-item__drag { + display: inline-flex; + align-items: center; + justify-content: center; + border: 1px dashed #cbd5e1; + border-radius: 6px; + color: #64748b; + cursor: grab; + user-select: none; + font-weight: 700; + font-size: 12px; +} + +.statuses-dnd-item__drag:active { + cursor: grabbing; +} + +.statuses-inline-form { + display: grid; + gap: 6px; +} + +.statuses-inline-form--row { + grid-template-columns: minmax(180px, 1.4fr) minmax(150px, 1fr) auto auto auto; + align-items: center; + flex: 1 1 auto; + min-width: 0; +} + +.statuses-inline-form--row-group { + grid-template-columns: minmax(180px, 1.5fr) 56px auto auto auto; + align-items: center; + flex: 1 1 auto; + min-width: 0; +} + +.statuses-inline-form--row .form-control, +.statuses-inline-form--row-group .form-control { + min-height: 30px; + padding: 4px 8px; +} + +.statuses-inline-form--row .btn, +.statuses-inline-form--row-group .btn, +.statuses-inline-delete .btn { + min-height: 30px; + padding: 4px 10px; + font-size: 12px; +} + +.statuses-inline-check { + margin-top: 0; + white-space: nowrap; + font-size: 12px; +} + +.statuses-inline-delete { + margin: 0; + flex: 0 0 auto; +} + +.statuses-code-label { + font-size: 12px; + color: var(--c-muted); +} + +.statuses-code-readonly { + display: inline-flex; + align-items: center; + gap: 6px; + white-space: nowrap; + font-size: 12px; +} + +.statuses-code-readonly code { + background: #eef2f7; + border-radius: 6px; + padding: 1px 6px; + color: #1f2937; + font-size: 12px; +} + +.field-inline { + display: flex; + align-items: center; + gap: 8px; + margin-top: 2px; +} + +.modal-backdrop { + position: fixed; + inset: 0; + background: rgba(15, 23, 42, 0.5); + display: flex; + align-items: center; + justify-content: center; + padding: 16px; + z-index: 200; +} + +.modal-backdrop[hidden] { + display: none; +} + +.modal { + width: min(560px, 100%); + background: #fff; + border-radius: 10px; + box-shadow: 0 20px 40px rgba(15, 23, 42, 0.35); + overflow: hidden; +} + +.modal__header { + display: flex; + align-items: center; + justify-content: space-between; + gap: 10px; + padding: 16px 18px; + border-bottom: 1px solid var(--c-border); +} + +.modal__header h3 { + margin: 0; + font-size: 18px; + color: var(--c-text-strong); +} + +.modal__body { + padding: 16px 18px 18px; +} + +.status-pill { + display: inline-flex; + align-items: center; + justify-content: center; + border: 1px solid #fed7d7; + background: #fff5f5; + color: #9b2c2c; + padding: 2px 8px; + border-radius: 999px; + font-size: 12px; + font-weight: 600; +} + +.status-pill.is-active { + border-color: #b7ebcf; + background: #f0fff6; + color: #0f6b39; +} + +.table-row-actions { + display: inline-flex; + align-items: center; + gap: 6px; + flex-wrap: wrap; +} + +.table-row-actions form { + margin: 0; +} + +.table-list { + display: grid; + gap: 14px; +} + +.table-list__header { + display: flex; + justify-content: space-between; + align-items: center; + gap: 12px; + flex-wrap: wrap; +} + +.table-list__left { + display: inline-flex; + align-items: center; + gap: 8px; + flex-wrap: wrap; +} + +.table-list-header-actions { + display: inline-flex; + align-items: center; + gap: 10px; + flex-wrap: wrap; +} + +.js-filter-toggle-btn.is-active { + border-color: #cbd5e0; + background: #edf2ff; + color: var(--c-primary-dark); +} + +.table-filter-badge { + display: inline-flex; + align-items: center; + justify-content: center; + min-width: 18px; + height: 18px; + padding: 0 5px; + font-size: 11px; + font-weight: 700; + color: #fff; + background: var(--c-primary); + border-radius: 999px; +} + +.table-filters-wrapper { + display: none; +} + +.table-filters-wrapper.is-open { + display: block; +} + +.table-list-filters { + display: grid; + gap: 12px; + grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); +} + +.table-col-toggle-wrapper { + position: relative; +} + +.table-col-toggle-dropdown { + display: none; + position: absolute; + right: 0; + top: calc(100% + 6px); + z-index: 30; + width: 260px; + max-height: 360px; + overflow: auto; + border: 1px solid var(--c-border); + border-radius: 10px; + background: #fff; + box-shadow: 0 10px 25px rgba(15, 23, 42, 0.12); +} + +.table-col-toggle-dropdown.is-open { + display: block; +} + +.table-col-toggle-header { + padding: 10px 12px; + border-bottom: 1px solid var(--c-border); + font-size: 12px; + font-weight: 700; + color: var(--c-muted); +} + +.table-col-toggle-item { + display: flex; + align-items: center; + gap: 10px; + padding: 8px 12px; + font-size: 13px; + color: var(--c-text-strong); +} + +.table-col-toggle-item:hover { + background: #f8fafc; +} + +.table-col-toggle-footer { + border-top: 1px solid var(--c-border); + padding: 8px 12px; +} + +.table-col-hidden { + display: none; +} + +.table-col-switch { + position: relative; + display: inline-block; + width: 34px; + min-width: 34px; + height: 18px; +} + +.table-col-switch input { + opacity: 0; + width: 0; + height: 0; + position: absolute; +} + +.table-col-switch-slider { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: #cbd5e1; + border-radius: 999px; + transition: background-color 0.2s ease; +} + +.table-col-switch-slider::before { + content: ""; + position: absolute; + height: 14px; + width: 14px; + left: 2px; + bottom: 2px; + background: #fff; + border-radius: 50%; + transition: transform 0.2s ease; +} + +.table-col-switch input:checked + .table-col-switch-slider { + background: #16a34a; +} + +.table-col-switch input:checked + .table-col-switch-slider::before { + transform: translateX(16px); +} + +.table-sort-link { + display: inline-flex; + align-items: center; + gap: 6px; + color: var(--c-text-strong); + text-decoration: none; +} + +.table-sort-link:hover { + color: var(--c-primary-dark); +} + +.table-sort-icon.is-muted { + color: #a0aec0; +} + +.table-list__footer { + display: flex; + align-items: center; + justify-content: space-between; + gap: 10px; + flex-wrap: wrap; +} + +.table-list-per-page-form { + display: inline-flex; + align-items: center; + gap: 8px; +} + +.table-list-per-page-form .form-control { + min-width: 90px; +} + +.table-select-col { + width: 44px; + text-align: center; +} + +.table-select-toggle { + display: inline-flex; + align-items: center; + justify-content: center; +} + +.table-select-toggle input[type=checkbox] { + width: 16px; + height: 16px; +} + +.orders-page .orders-head { + background: linear-gradient(120deg, #f8fbff 0%, #eef5ff 100%); + border: 1px solid #dbe7fb; +} +.orders-page .table-list { + border: 1px solid #dde5f2; + border-radius: 12px; + box-shadow: 0 6px 16px rgba(20, 44, 86, 0.08); +} +.orders-page .table-list__header { + padding: 10px 6px 2px; +} +.orders-page .table-list-filters { + padding: 6px 6px 2px; + border-top: 1px solid #ebf0f7; + border-bottom: 1px solid #ebf0f7; + background: #f9fbff; +} +.orders-page .table-wrap { + border-radius: 10px; + overflow: hidden; + border: 1px solid #e7edf6; +} +.orders-page .table thead th { + background: #f3f7fd; + color: #30435f; + font-size: 12px; + text-transform: uppercase; + letter-spacing: 0.03em; +} +.orders-page .table tbody td { + vertical-align: middle; + padding-top: 10px; + padding-bottom: 10px; + border-bottom-color: #edf2f8; +} +.orders-page .table tbody tr:hover td { + background: #f9fcff; +} + +.orders-list-page { + padding: 10px; + margin-bottom: 10px; +} + +.orders-head { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 12px; + flex-wrap: wrap; +} + +.orders-stats { + display: inline-grid; + grid-template-columns: repeat(3, minmax(86px, auto)); + gap: 8px; +} + +.orders-stat { + border: 1px solid #d8e2f0; + background: #f8fbff; + border-radius: 8px; + padding: 6px 8px; + line-height: 1.15; +} +.orders-stat__label { + display: block; + color: #5f6f83; + font-size: 11px; + margin-bottom: 2px; +} +.orders-stat__value { + color: #12233a; + font-size: 16px; + font-weight: 700; +} + +.orders-ref { + display: grid; + gap: 2px; + min-width: 170px; +} +.orders-ref__main { + font-weight: 700; + color: #0f1f35; + font-size: 14px; +} +.orders-ref__meta { + display: inline-flex; + flex-wrap: wrap; + gap: 4px 10px; + color: #64748b; + font-size: 12px; +} + +.orders-buyer { + display: grid; + gap: 2px; +} +.orders-buyer__name { + color: #0f172a; + font-weight: 600; + font-size: 14px; +} +.orders-buyer__meta { + display: inline-flex; + flex-wrap: wrap; + gap: 4px 10px; + color: #64748b; + font-size: 12px; +} + +.orders-status-wrap { + display: inline-flex; + align-items: center; + gap: 5px; + flex-wrap: wrap; +} + +.order-tag { + display: inline-flex; + align-items: center; + justify-content: center; + border: 1px solid #d8e1ef; + background: #f8fafc; + color: #334155; + border-radius: 999px; + padding: 2px 8px; + font-size: 12px; + font-weight: 700; + line-height: 1.1; +} +.order-tag.is-info { + border-color: #bfdbfe; + background: #eff6ff; + color: #1d4ed8; +} +.order-tag.is-success { + border-color: #bbf7d0; + background: #f0fdf4; + color: #166534; +} +.order-tag.is-danger { + border-color: #fecaca; + background: #fef2f2; + color: #b91c1c; +} +.order-tag.is-warn { + border-color: #fde68a; + background: #fffbeb; + color: #92400e; +} +.order-tag.is-cod { + border-color: #f9a8d4; + background: #fdf2f8; + color: #9d174d; +} +.order-tag.is-unpaid { + border-color: #fca5a5; + background: #fef2f2; + color: #b91c1c; +} + +.orders-mini { + font-size: 14px; + color: #223247; + line-height: 1.25; +} +.orders-mini__delivery { + font-size: 12px; + color: #64748b; + margin-bottom: 2px; + max-width: 160px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.orders-products { + display: grid; + gap: 4px; + min-width: 240px; +} +.orders-products__meta, .orders-products__more { + font-size: 12px; + color: #64748b; +} + +.orders-product { + display: grid; + grid-template-columns: 48px 1fr; + gap: 6px; + align-items: center; +} +.orders-product__thumb { + width: 48px; + height: 48px; + border-radius: 4px; + border: 1px solid #dbe3ef; + object-fit: cover; + background: #fff; +} +.orders-product__thumb--empty { + display: inline-block; + background: #eef2f7; + border-style: dashed; +} +.orders-product__txt { + min-width: 0; + display: grid; + gap: 1px; +} +.orders-product__name { + font-size: 14px; + color: #0f172a; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.orders-product__qty { + font-size: 12px; + color: #64748b; +} + +.orders-image-hover-wrap { + position: relative; + display: inline-flex; + align-items: center; + justify-content: center; + cursor: zoom-in; +} + +.orders-image-hover-popup { + display: none; + position: fixed; + left: auto; + top: auto; + width: 350px; + max-height: 350px; + object-fit: contain; + border-radius: 8px; + background: #fff; + box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18); + border: 1px solid #dfe3ea; + z-index: 100; + pointer-events: none; +} + +.orders-image-hover-wrap:hover .orders-image-hover-popup { + display: block; +} + +.activity-type-badge { + display: inline-block; + padding: 2px 8px; + border-radius: 4px; + font-size: 12px; + font-weight: 500; + white-space: nowrap; + background: #e2e8f0; + color: #334155; +} +.activity-type-badge--status_change { + background: #dbeafe; + color: #1e40af; +} +.activity-type-badge--payment { + background: #dcfce7; + color: #166534; +} +.activity-type-badge--invoice { + background: #fef3c7; + color: #92400e; +} +.activity-type-badge--shipment { + background: #e0e7ff; + color: #3730a3; +} +.activity-type-badge--message { + background: #f3e8ff; + color: #6b21a8; +} +.activity-type-badge--document { + background: #fce7f3; + color: #9d174d; +} +.activity-type-badge--import { + background: #f1f5f9; + color: #475569; +} +.activity-type-badge--note { + background: #ecfdf5; + color: #065f46; +} + +.text-nowrap { + white-space: nowrap; +} + +.orders-money { + display: grid; + gap: 2px; +} +.orders-money__main { + color: #0f172a; + font-weight: 700; + font-size: 14px; +} +.orders-money__meta { + color: #64748b; + font-size: 12px; +} + +.table-list[data-table-list-id=orders] { + gap: 8px; +} +.table-list[data-table-list-id=orders] .table-list__header { + padding: 2px 0 0; +} +.table-list[data-table-list-id=orders] .table-list-filters { + gap: 8px; + grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); +} +.table-list[data-table-list-id=orders] .table th, +.table-list[data-table-list-id=orders] .table td { + padding: 6px 8px; +} +.table-list[data-table-list-id=orders] .table thead th { + font-size: 12px; + text-transform: uppercase; + letter-spacing: 0.02em; + white-space: nowrap; +} +.table-list[data-table-list-id=orders] .table tbody td { + vertical-align: top; + font-size: 14px; + line-height: 1.25; +} + +.order-show-layout { + display: grid; + grid-template-columns: 220px minmax(0, 1fr); + gap: 12px; + align-items: start; +} + +.order-statuses-side { + position: sticky; + top: 60px; + padding: 10px; +} +.order-statuses-side__title { + font-size: 13px; + font-weight: 700; + color: #0f172a; + margin-bottom: 8px; +} + +.order-status-group { + margin-bottom: 10px; +} +.order-status-group__name { + font-size: 12px; + color: #475569; + font-weight: 700; + margin-bottom: 5px; +} + +.order-status-row { + display: flex; + align-items: center; + justify-content: space-between; + gap: 8px; + padding: 4px 6px; + border-radius: 6px; + color: #334155; + font-size: 12px; + text-decoration: none; +} +.order-status-row__count { + min-width: 24px; + text-align: center; + border-radius: 999px; + background: var(--status-color, #64748b); + padding: 1px 6px; + font-weight: 700; + font-size: 11px; + color: #ffffff; +} + +.order-status-row:hover { + background: #f1f5f9; +} + +.order-status-row.is-active { + background: rgba(15, 23, 42, 0.06); + color: #0f172a; + font-weight: 700; +} + +.order-show-main { + min-width: 0; +} + +.order-details-actions { + display: inline-flex; + flex-wrap: wrap; + justify-content: flex-end; + gap: 6px; +} + +.order-details-page { + padding: 12px; +} + +.order-details-head { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 12px; + flex-wrap: wrap; +} + +.order-back-link { + color: #475569; + text-decoration: none; + font-weight: 600; +} + +.order-back-link:hover { + color: #1d4ed8; +} + +.order-details-sub { + display: inline-flex; + gap: 10px; + flex-wrap: wrap; + color: #64748b; + font-size: 12px; +} + +.order-details-pill { + border-radius: 999px; + padding: 5px 10px; + background: #eef6ff; + border: 1px solid #cfe2ff; + color: #1d4ed8; + font-size: 12px; + font-weight: 700; +} + +.order-status-change { + display: flex; + align-items: center; + gap: 10px; + flex-wrap: wrap; +} + +.order-status-change__form { + display: flex; + align-items: center; + gap: 6px; +} + +.order-status-change__select { + min-width: 180px; +} + +.order-details-tabs { + display: flex; + gap: 6px; + flex-wrap: wrap; +} + +.order-details-tab { + border: 1px solid #d6deea; + border-radius: 8px; + padding: 5px 10px; + color: #475569; + font-size: 12px; + background: #f8fafc; + cursor: pointer; +} + +.order-details-tab.is-active { + border-color: #bfdbfe; + color: #1d4ed8; + background: #eff6ff; + font-weight: 700; +} + +.order-item-cell { + display: grid; + grid-template-columns: 44px 1fr; + gap: 8px; + align-items: center; + min-width: 260px; +} + +.order-item-thumb { + width: 44px; + height: 44px; + border-radius: 6px; + border: 1px solid #dbe3ef; + object-fit: cover; +} + +.order-item-thumb--empty { + display: inline-block; + background: #eef2f7; + border-style: dashed; +} + +.order-item-name { + font-weight: 600; + color: #0f172a; +} + +.order-grid-2 { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 12px; +} + +.order-grid-3 { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 12px; +} + +.order-kv { + margin: 0; + display: grid; + grid-template-columns: 150px 1fr; + gap: 6px 10px; + font-size: 12px; +} + +.payment-summary { + display: grid; + gap: 6px; + max-width: 420px; +} + +.payment-summary__row { + display: flex; + align-items: center; + gap: 10px; + font-size: 12px; +} + +.payment-summary__label { + width: 150px; + flex-shrink: 0; + color: #64748b; +} + +.payment-summary__value { + font-weight: 600; + color: #0f172a; +} + +.order-kv dt { + color: #64748b; +} + +.order-kv dd { + margin: 0; + color: #0f172a; + font-weight: 600; +} + +.order-address { + display: grid; + gap: 3px; + font-size: 12px; + color: #0f172a; +} + +.order-events { + display: grid; + gap: 8px; +} + +.order-event { + border: 1px solid #e2e8f0; + border-radius: 8px; + padding: 8px; + background: #fbfdff; +} + +.order-event__head { + color: #64748b; + font-size: 11px; +} + +.order-event__body { + margin-top: 4px; + color: #0f172a; + font-size: 12px; +} + +.order-tab-panel { + display: none; +} + +.order-tab-panel.is-active { + display: block; +} + +.order-empty-placeholder { + border: 1px dashed #cbd5e1; + border-radius: 8px; + min-height: 180px; + background: #f8fafc; +} + +.order-status-badge { + display: inline-flex; + align-items: center; + justify-content: center; + padding: 4px 10px; + border-radius: 999px; + font-size: 12px; + font-weight: 700; + border: 1px solid #cbd5e1; + color: #334155; + background: #f8fafc; +} +.order-status-badge.is-info { + border-color: #bfdbfe; + background: #eff6ff; + color: #1d4ed8; +} +.order-status-badge.is-success { + border-color: #bbf7d0; + background: #f0fdf4; + color: #166534; +} +.order-status-badge.is-danger { + border-color: #fecaca; + background: #fef2f2; + color: #b91c1c; +} +.order-status-badge.is-warn { + border-color: #fde68a; + background: #fffbeb; + color: #92400e; +} +.order-status-badge.is-empty { + color: #94a3b8; +} + +.order-buyer { + display: grid; + gap: 2px; +} +.order-buyer__name { + color: #0f172a; + font-weight: 600; +} +.order-buyer__email { + color: #64748b; + font-size: 12px; +} + +.table-inline-action { + display: inline-block; + margin-right: 6px; +} + +.product-name-cell { + display: inline-flex; + align-items: center; + gap: 10px; +} + +.product-name-thumb { + width: 60px; + height: 60px; + border-radius: 6px; + object-fit: cover; + border: 1px solid var(--c-border); + background: #f8fafc; +} + +.product-name-thumb--empty { + display: inline-block; + width: 60px; + height: 60px; + border-radius: 6px; + border: 1px dashed #cbd5e0; + background: #f8fafc; +} + +.product-name-thumb-btn { + border: 0; + padding: 0; + background: transparent; + cursor: pointer; + display: inline-flex; + align-items: center; + justify-content: center; +} + +.product-name-thumb-btn:focus-visible { + outline: none; + box-shadow: var(--focus-ring); + border-radius: 8px; +} + +.modal--image-preview { + width: min(760px, 100%); +} + +.product-image-preview__img { + display: block; + width: 100%; + max-height: 70vh; + object-fit: contain; + border-radius: 8px; + background: #f8fafc; +} + +.product-images-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); + gap: 12px; +} + +.product-image-card { + border: 1px solid #dfe3ea; + border-radius: 10px; + padding: 10px; + background: #fff; +} + +.product-image-card__thumb-wrap { + position: relative; + border-radius: 8px; + overflow: hidden; + background: #f2f5f8; +} + +.product-image-card__thumb { + width: 100%; + height: 160px; + object-fit: cover; + display: block; +} + +.product-image-card__thumb.is-empty { + height: 160px; + display: grid; + place-items: center; + color: #6b7785; + font-size: 12px; +} + +.product-image-card__badge { + display: none; + position: absolute; + top: 8px; + left: 8px; + background: #1f7a43; + color: #fff; + padding: 3px 8px; + border-radius: 999px; + font-size: 11px; +} + +.product-image-card.is-main .product-image-card__badge { + display: inline-block; +} + +.product-image-card__meta { + margin-top: 8px; + font-size: 11px; + line-height: 1.25; + color: #5f6b79; + overflow-wrap: anywhere; +} + +.product-image-card__actions { + margin-top: 10px; + display: grid; + grid-template-columns: 1fr; + gap: 8px; +} + +.product-image-card__actions .btn { + min-height: 34px; + font-size: 12px; + line-height: 1.2; + padding: 6px 10px; +} + +.product-links-search-form { + display: grid; + gap: 12px; + grid-template-columns: minmax(220px, 320px) minmax(220px, 1fr) auto; + align-items: end; +} + +.product-links-head { + display: grid; + gap: 8px; + grid-template-columns: repeat(3, minmax(0, 1fr)); +} + +.product-tabs-nav { + display: flex; + align-items: center; + gap: 8px; + flex-wrap: wrap; +} + +.product-links-inline-form { + display: grid; + gap: 8px; + grid-template-columns: minmax(140px, 1fr) minmax(140px, 1fr) auto; + align-items: center; +} + +.product-links-actions-row { + display: flex; + align-items: center; + gap: 8px; + flex-wrap: nowrap; +} + +.product-links-actions-row .product-links-relink-form { + flex: 1 1 auto; +} + +.product-links-unlink-form { + margin: 0; + flex: 0 0 auto; +} + +.product-link-status-cell { + display: inline-flex; + align-items: center; + gap: 6px; +} + +.product-link-alert-indicator { + display: inline-flex; + align-items: center; + justify-content: center; + width: 18px; + height: 18px; + border-radius: 999px; + border: 1px solid #f59e0b; + background: #fffbeb; + color: #b45309; + font-size: 12px; + font-weight: 700; + cursor: help; +} + +.product-link-events-list { + margin: 0; + padding: 0; + list-style: none; + display: grid; + gap: 4px; +} + +.product-link-events-list li { + display: grid; + gap: 2px; +} + +.product-link-events-type { + font-weight: 600; + color: var(--c-text-strong); +} + +.product-link-events-date { + color: var(--c-muted); + font-size: 12px; +} + +.product-show-images-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); + gap: 12px; +} + +.product-show-image-card { + border: 1px solid var(--c-border); + border-radius: 10px; + background: #fff; + padding: 10px; + overflow: hidden; +} +.product-show-image-card__meta { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 8px; + min-width: 0; +} + +.product-show-image-path { + font-size: 12px; + min-width: 0; + overflow: hidden; +} +.product-show-image-path summary { + cursor: pointer; + color: var(--c-muted, #888); + list-style: none; + user-select: none; + white-space: nowrap; +} +.product-show-image-path summary::-webkit-details-marker { + display: none; +} +.product-show-image-path summary::after { + content: " ▾"; +} +.product-show-image-path[open] summary::after { + content: " ▴"; +} +.product-show-image-path__url { + margin-top: 4px; + word-break: break-all; + overflow-wrap: break-word; + font-size: 11px; +} + +.product-show-image { + width: 100%; + max-height: 260px; + object-fit: cover; + border-radius: 8px; + border: 1px solid #d9e0ea; +} + +.shipment-grid { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 12px; +} + +.searchable-select { + position: relative; +} +.searchable-select__trigger { + display: flex; + align-items: center; + justify-content: space-between; + cursor: pointer; + user-select: none; + min-height: 34px; +} +.searchable-select__trigger::after { + content: ""; + width: 0; + height: 0; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 5px solid var(--c-text-muted, #6b7280); + margin-left: 8px; + flex-shrink: 0; +} +.searchable-select__trigger--placeholder { + color: var(--c-text-muted, #6b7280); +} +.searchable-select__dropdown { + display: none; + position: absolute; + left: 0; + right: 0; + top: 100%; + z-index: 50; + max-height: 280px; + overflow: auto; + background: #fff; + border: 1px solid var(--c-border); + border-top: 0; + border-radius: 0 0 8px 8px; + box-shadow: 0 8px 20px rgba(15, 23, 42, 0.12); +} +.searchable-select__dropdown.is-open { + display: block; +} +.searchable-select__search { + position: sticky; + top: 0; + border: none !important; + border-bottom: 1px solid var(--c-border) !important; + border-radius: 0 !important; + box-shadow: none !important; + font-size: 13px; + background: #fff; + z-index: 1; +} +.searchable-select__option { + padding: 7px 10px; + font-size: 13px; + cursor: pointer; + color: var(--c-text-strong); +} +.searchable-select__option:hover { + background: #f1f5f9; +} +.searchable-select__option.is-selected { + background: #edf2ff; + font-weight: 600; +} + +.flash { + padding: 10px 14px; + border-radius: 8px; + font-size: 13px; + font-weight: 500; +} +.flash--success { + background: #f0fdf4; + border: 1px solid #bbf7d0; + color: #166534; +} +.flash--error { + background: #fef2f2; + border: 1px solid #fecaca; + color: #b91c1c; +} + +.content-tabs-card { + margin-top: 0; +} + +.content-tabs-nav { + display: flex; + gap: 4px; + border-bottom: 2px solid var(--c-border); + margin-bottom: 16px; + flex-wrap: wrap; +} + +.content-tab-btn { + padding: 8px 16px; + border: none; + background: none; + cursor: pointer; + font-size: 14px; + font-weight: 500; + color: var(--c-text-muted, #6b7280); + border-bottom: 2px solid transparent; + margin-bottom: -2px; + border-radius: 4px 4px 0 0; + transition: color 0.15s, border-color 0.15s; +} +.content-tab-btn:hover { + color: var(--c-text-strong, #111827); +} +.content-tab-btn.is-active { + color: var(--c-primary, #2563eb); + border-bottom-color: var(--c-primary, #2563eb); +} + +.content-tab-panel { + display: none; +} +.content-tab-panel.is-active { + display: block; +} + +.shoppro-tabs-toolbar { + display: flex; + align-items: flex-end; + justify-content: space-between; + gap: 10px; + margin-bottom: 10px; + flex-wrap: wrap; +} + +.shoppro-tabs-toolbar__field { + margin: 0; + min-width: 260px; + max-width: 420px; + flex: 1 1 320px; +} + +.shoppro-tabs-toolbar__field .form-control { + width: 100%; +} + +.shoppro-tabs-toolbar__actions { + display: inline-flex; + align-items: center; + gap: 8px; +} + +.dm-carrier-select { + min-width: 140px; +} + +.dm-service-wrap { + min-width: 200px; +} +.dm-service-wrap .dm-inpost-panel .form-control, +.dm-service-wrap .dm-apaczka-panel .form-control { + width: 100%; +} + +.integration-settings-group { + grid-column: 1/-1; + border: 1px solid var(--c-border); + border-radius: 10px; + background: #f8fbff; + padding: 10px; +} + +.integration-settings-group__head { + margin-bottom: 8px; + padding: 4px 0; + border-bottom: 1px solid #e2e8f0; +} + +.integration-settings-group__title { + margin: 0; + font-size: 14px; + font-weight: 600; + letter-spacing: 0.01em; + color: var(--c-text-strong, #1e293b); +} + +.integration-settings-group__desc { + margin: 4px 0 0; + color: #4b5563; +} + +.integration-settings-group__grid { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 10px 12px; + align-items: start; +} + +.integration-settings-group__full { + grid-column: 1/-1; +} + +.integration-settings-group__grid .form-field { + margin: 0; + align-self: start; +} + +.integration-settings-group__grid .form-control { + min-height: 34px; + height: 34px; +} + +.integration-settings-group__grid input[type=date].form-control { + line-height: 1.2; +} + +.integration-settings-checkboxes { + border: 0; + padding: 0; + margin: 0; +} + +.integration-settings-checkboxes .field-label { + display: block; + margin-bottom: 2px; +} + +.integration-settings-checkboxes__list { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 6px 12px; +} + +.integration-settings-checkboxes__item { + display: inline-flex; + align-items: center; + gap: 6px; + font-size: 13px; + color: #334155; +} + +@media (max-width: 768px) { + .app-shell { + flex-direction: column; + } + .sidebar { + width: 100% !important; + min-width: 0 !important; + border-right: 0; + border-bottom: 1px solid #243041; + padding: 14px; + overflow-x: auto; + } + .sidebar__brand { + margin: 0 0 10px; + font-size: 22px; + } + .sidebar__collapse-btn { + display: none; + } + .sidebar__nav { + display: flex; + gap: 8px; + overflow-x: auto; + } + .sidebar__link { + white-space: nowrap; + } + .topbar { + padding: 0 14px; + } + .container { + margin-top: 16px; + width: calc(100% - 16px); + margin-left: 8px; + margin-right: 8px; + padding: 0 3px 12px; + } + .settings-grid { + grid-template-columns: 1fr; + } + .page-head { + flex-direction: column; + align-items: flex-start; + } + .orders-stats { + grid-template-columns: 1fr; + width: 100%; + } + .order-show-layout { + grid-template-columns: 1fr; + } + .order-statuses-side { + position: static; + top: auto; + } + .order-details-actions { + justify-content: flex-start; + } + .order-grid-2, + .order-grid-3 { + grid-template-columns: 1fr; + } + .order-kv { + grid-template-columns: 1fr; + gap: 2px; + } + .filters-grid, + .form-grid, + .form-grid-2, + .form-grid-3, + .form-grid-4, + .shipment-grid, + .statuses-form, + .statuses-inline-form, + .table-list-filters, + .product-links-search-form, + .product-links-inline-form { + grid-template-columns: 1fr; + } + .statuses-dnd-item__content { + display: block; + } + .statuses-inline-delete { + margin-top: 6px; + } + .filters-actions { + align-items: center; + } + .table-list__header, + .table-list__footer { + align-items: flex-start; + } + .product-links-head { + grid-template-columns: 1fr; + } + .integration-settings-group__grid { + grid-template-columns: 1fr; + } + .integration-settings-checkboxes__list { + grid-template-columns: 1fr; + } + .card { + padding: 12px; + } + .modal--image-preview { + width: min(92vw, 100%); + } +} diff --git a/resources/scss/app.css.map b/resources/scss/app.css.map new file mode 100644 index 0000000..df22a78 --- /dev/null +++ b/resources/scss/app.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["app.css","shared\\_ui-components.scss","app.scss"],"names":[],"mappings":"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","file":"app.css","sourcesContent":["@charset \"UTF-8\";\n:root {\n --c-primary: #6690f4;\n --c-primary-dark: #3164db;\n --c-bg: #f4f6f9;\n --c-surface: #ffffff;\n --c-text: #4e5e6a;\n --c-text-strong: #2d3748;\n --c-muted: #718096;\n --c-border: #b0bec5;\n --c-danger: #cc0000;\n --focus-ring: 0 0 0 3px rgba(102, 144, 244, 0.15);\n --shadow-card: 0 1px 4px rgba(0, 0, 0, 0.06);\n}\n\n.btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-height: 34px;\n padding: 6px 12px;\n border: 1px solid transparent;\n border-radius: 8px;\n font: inherit;\n font-weight: 600;\n text-decoration: none;\n cursor: pointer;\n transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.1s ease;\n}\n\n.btn--primary {\n color: #ffffff;\n background: var(--c-primary);\n}\n\n.btn--primary:hover {\n background: var(--c-primary-dark);\n}\n\n.btn--secondary {\n color: var(--c-text-strong);\n border-color: var(--c-border);\n background: var(--c-surface);\n}\n\n.btn--secondary:hover {\n border-color: #cbd5e0;\n background: #f8fafc;\n}\n\n.btn--danger {\n color: #ffffff;\n border-color: #b91c1c;\n background: #dc2626;\n}\n\n.btn--danger:hover {\n border-color: #991b1b;\n background: #b91c1c;\n}\n\n.btn--sm {\n min-height: 28px;\n padding: 3px 10px;\n font-size: 12px;\n}\n\n.btn--block {\n width: 100%;\n}\n\n.btn:active {\n transform: translateY(1px);\n}\n\n.btn:focus-visible {\n outline: none;\n box-shadow: var(--focus-ring);\n border-color: var(--c-primary);\n}\n\n.form-control {\n width: 100%;\n min-height: 34px;\n border: 1px solid var(--c-border);\n border-radius: 8px;\n padding: 5px 10px;\n font: inherit;\n color: var(--c-text-strong);\n background: #ffffff;\n transition: border-color 0.2s ease, box-shadow 0.2s ease;\n}\n\n.form-control:focus {\n outline: none;\n border-color: var(--c-primary);\n box-shadow: var(--focus-ring);\n}\n\n.input {\n min-height: 34px;\n border: 1px solid var(--c-border);\n border-radius: 8px;\n padding: 5px 10px;\n font: inherit;\n color: var(--c-text-strong);\n background: #ffffff;\n}\n\n.input--sm {\n min-height: 28px;\n padding: 3px 8px;\n font-size: 12px;\n}\n\n.flash {\n padding: 8px 12px;\n border-radius: 6px;\n font-size: 13px;\n}\n\n.flash--success {\n border: 1px solid #b7ebcf;\n background: #f0fff6;\n color: #0f6b39;\n}\n\n.flash--error {\n border: 1px solid #fed7d7;\n background: #fff5f5;\n color: var(--c-danger);\n}\n\n.alert {\n padding: 12px 14px;\n border-radius: 8px;\n border: 1px solid transparent;\n font-size: 13px;\n min-height: 44px;\n}\n\n.alert--danger {\n border-color: #fed7d7;\n background: #fff5f5;\n color: var(--c-danger);\n}\n\n.alert--success {\n border-color: #b7ebcf;\n background: #f0fff6;\n color: #0f6b39;\n}\n\n.alert--warning {\n border-color: #f7dd8b;\n background: #fff8e8;\n color: #815500;\n}\n\n.form-field {\n display: grid;\n gap: 5px;\n}\n\n.field-label {\n color: var(--c-text-strong);\n font-size: 13px;\n font-weight: 600;\n}\n\n.table-wrap {\n width: 100%;\n overflow-x: auto;\n}\n.table-wrap--visible {\n overflow: visible !important;\n overflow-x: visible !important;\n}\n\n.table {\n width: 100%;\n border-collapse: collapse;\n background: var(--c-surface);\n}\n\n.table th,\n.table td {\n padding: 10px 12px;\n border-bottom: 1px solid var(--c-border);\n text-align: left;\n}\n\n.table th {\n color: var(--c-text-strong);\n font-weight: 700;\n background: #f8fafc;\n}\n\n.table--details th {\n white-space: nowrap;\n}\n\n.table--details th:first-child,\n.table--details td:first-child {\n width: 36px;\n text-align: center;\n}\n\n.pagination {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.pagination__item {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 36px;\n height: 36px;\n padding: 0 10px;\n border-radius: 8px;\n border: 1px solid var(--c-border);\n color: var(--c-text-strong);\n background: var(--c-surface);\n text-decoration: none;\n font-weight: 600;\n}\n\n.pagination__item:hover {\n border-color: #cbd5e0;\n background: #f8fafc;\n}\n\n.pagination__item.is-active {\n border-color: var(--c-primary);\n color: var(--c-primary);\n background: #edf2ff;\n}\n\n* {\n box-sizing: border-box;\n}\n\nhtml,\nbody {\n min-height: 100%;\n}\n\nbody {\n margin: 0;\n font-family: \"Roboto\", \"Segoe UI\", sans-serif;\n font-size: 13px;\n color: var(--c-text);\n background: var(--c-bg);\n}\n\na {\n color: var(--c-primary);\n}\n\n.app-shell {\n min-height: 100vh;\n display: flex;\n}\n\n.sidebar {\n width: 260px;\n min-width: 260px;\n flex-shrink: 0;\n overflow: hidden;\n transition: width 0.22s ease, min-width 0.22s ease;\n border-right: 1px solid #243041;\n background: #111a28;\n padding: 18px 10px;\n display: flex;\n flex-direction: column;\n}\n\n.sidebar.is-collapsed {\n width: 52px;\n min-width: 52px;\n}\n\n.sidebar__brand {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 4px 4px 16px;\n gap: 6px;\n min-width: 0;\n}\n\n.sidebar__brand-text {\n color: #e9f0ff;\n font-size: 24px;\n font-weight: 300;\n letter-spacing: -0.02em;\n white-space: nowrap;\n overflow: hidden;\n flex: 1;\n min-width: 0;\n}\n.sidebar__brand-text strong {\n font-weight: 700;\n}\n\n.sidebar__collapse-btn {\n flex-shrink: 0;\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid #2a3a54;\n border-radius: 6px;\n color: #64748b;\n cursor: pointer;\n padding: 0;\n transition: background 0.15s, color 0.15s;\n}\n.sidebar__collapse-btn:hover {\n background: #1b2a3f;\n color: #cbd5e1;\n}\n\n.sidebar__collapse-icon {\n display: block;\n transition: transform 0.22s ease;\n flex-shrink: 0;\n}\n\n.sidebar.is-collapsed .sidebar__collapse-icon {\n transform: rotate(180deg);\n}\n\n.sidebar__nav {\n display: grid;\n gap: 4px;\n}\n\n.sidebar__link {\n border-radius: 8px;\n padding: 10px 12px;\n text-decoration: none;\n color: #cbd5e1;\n font-weight: 600;\n}\n\n.sidebar__link:hover {\n color: #f8fafc;\n background: #1b2a3f;\n}\n\n.sidebar__link.is-active {\n color: #ffffff;\n background: #2e4f93;\n}\n\n.sidebar__group {\n display: grid;\n gap: 2px;\n}\n\n.sidebar__group-toggle {\n list-style: none;\n border-radius: 8px;\n padding: 9px 10px;\n color: #cbd5e1;\n font-weight: 600;\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 9px;\n white-space: nowrap;\n user-select: none;\n}\n\n.sidebar__group-toggle::-webkit-details-marker {\n display: none;\n}\n\n.sidebar__group:hover .sidebar__group-toggle,\n.sidebar__group-toggle:hover {\n color: #f8fafc;\n background: #1b2a3f;\n}\n\n.sidebar__group.is-active .sidebar__group-toggle {\n color: #ffffff;\n background: #2e4f93;\n}\n\n.sidebar__icon {\n flex-shrink: 0;\n width: 18px;\n height: 18px;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0.85;\n}\n\n.sidebar__label {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n}\n\n.sidebar__toggle-arrow {\n flex-shrink: 0;\n margin-left: auto;\n opacity: 0.5;\n transition: transform 0.18s ease;\n}\n\ndetails[open] > .sidebar__group-toggle .sidebar__toggle-arrow {\n transform: rotate(180deg);\n}\n\n.sidebar__group-links {\n display: grid;\n gap: 2px;\n padding-left: 12px;\n overflow: hidden;\n}\n\n.sidebar__sublink {\n border-radius: 6px;\n padding: 7px 10px 7px 8px;\n text-decoration: none;\n color: #94a3b8;\n font-size: 12.5px;\n font-weight: 500;\n display: flex;\n align-items: center;\n gap: 8px;\n white-space: nowrap;\n}\n.sidebar__sublink::before {\n content: \"\";\n flex-shrink: 0;\n width: 5px;\n height: 5px;\n border-radius: 50%;\n background: rgba(148, 163, 184, 0.3);\n transition: background 0.15s;\n}\n.sidebar__sublink:hover {\n color: #e2e8f0;\n background: #1b2a3f;\n}\n.sidebar__sublink:hover::before {\n background: rgba(148, 163, 184, 0.65);\n}\n.sidebar__sublink.is-active {\n color: #ffffff;\n background: rgba(46, 79, 147, 0.55);\n}\n.sidebar__sublink.is-active::before {\n background: #93c5fd;\n}\n\n.app-main {\n flex: 1;\n min-width: 0;\n}\n\n.topbar {\n height: 50px;\n border-bottom: 1px solid var(--c-border);\n background: var(--c-surface);\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 20px;\n position: sticky;\n top: 0;\n z-index: 100;\n}\n\n.brand {\n font-size: 22px;\n font-weight: 300;\n letter-spacing: -0.02em;\n color: var(--c-text-strong);\n}\n\n.brand strong {\n font-weight: 700;\n}\n\n.container {\n max-width: none;\n width: calc(100% - 20px);\n margin: 12px 10px;\n padding: 0 4px 14px;\n}\n\n.card {\n background: var(--c-surface);\n border-radius: 10px;\n box-shadow: var(--shadow-card);\n padding: 14px;\n}\n\n.card h1 {\n margin: 0 0 10px;\n color: var(--c-text-strong);\n font-size: 24px;\n font-weight: 700;\n}\n\n.muted {\n color: var(--c-muted);\n}\n\n.accent {\n color: var(--c-primary);\n font-weight: 600;\n}\n\n.users-form {\n display: grid;\n gap: 14px;\n max-width: 460px;\n}\n\n.section-title {\n margin: 0;\n color: var(--c-text-strong);\n font-size: 18px;\n font-weight: 700;\n}\n\nh2.section-title,\nh3.section-title,\nh4.section-title {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 400;\n padding: 5px 10px;\n border-left: 3px solid var(--c-primary);\n border-radius: 7px;\n background: linear-gradient(180deg, #f4f8ff 0%, #edf3ff 100%);\n color: #1e3a8a;\n box-shadow: inset 0 0 0 1px #dbe7fb;\n}\n\n.mt-0 {\n margin-top: 0;\n}\n\n.mt-4 {\n margin-top: 4px;\n}\n\n.mt-12 {\n margin-top: 8px;\n}\n\n.mt-16 {\n margin-top: 12px;\n}\n\n.settings-grid {\n display: grid;\n grid-template-columns: repeat(3, minmax(0, 1fr));\n gap: 12px;\n}\n\n.settings-nav {\n display: flex;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n.settings-nav__link {\n text-decoration: none;\n border: 1px solid var(--c-border);\n border-radius: 8px;\n padding: 8px 12px;\n color: var(--c-text-strong);\n font-weight: 600;\n}\n\n.settings-nav__link:hover {\n background: #f8fafc;\n}\n\n.settings-nav__link.is-active {\n border-color: var(--c-primary);\n color: var(--c-primary);\n background: #edf2ff;\n}\n\n.settings-stat {\n border: 1px solid var(--c-border);\n border-radius: 8px;\n padding: 12px;\n background: #f8fafc;\n}\n\n.settings-stat__label {\n display: block;\n color: var(--c-muted);\n font-size: 12px;\n margin-bottom: 4px;\n}\n\n.settings-stat__value {\n color: var(--c-text-strong);\n font-size: 20px;\n}\n\n.settings-logs {\n margin: 0;\n padding: 12px;\n border-radius: 8px;\n border: 1px solid var(--c-border);\n background: #0b1220;\n color: #d1d5db;\n font-size: 12px;\n line-height: 1.5;\n overflow: auto;\n}\n\n.settings-allegro-callback {\n display: block;\n width: 100%;\n padding: 8px 10px;\n border: 1px solid var(--c-border);\n border-radius: 8px;\n background: #f8fafc;\n color: var(--c-text-strong);\n font-size: 12px;\n line-height: 1.45;\n word-break: break-all;\n}\n\n.page-head {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n}\n\n.filters-grid {\n display: grid;\n grid-template-columns: repeat(3, minmax(0, 1fr));\n gap: 12px;\n}\n\n.filters-actions {\n display: flex;\n align-items: end;\n gap: 8px;\n}\n\n.product-form .form-control {\n width: 100%;\n}\n\n.form-grid {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 12px;\n}\n\n.form-grid-2 {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 12px;\n}\n\n.form-grid-3 {\n display: grid;\n grid-template-columns: repeat(3, minmax(0, 1fr));\n gap: 12px;\n}\n\n.form-grid-4 {\n display: grid;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n gap: 12px;\n}\n\n.form-actions {\n display: flex;\n gap: 8px;\n flex-wrap: wrap;\n align-items: flex-start;\n}\n\n.form-actions .btn {\n align-self: flex-start;\n}\n\n.statuses-form {\n display: grid;\n gap: 8px;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n\n.statuses-form .form-actions {\n grid-column: 1/-1;\n}\n\n.statuses-color-input {\n min-height: 32px;\n padding: 2px;\n}\n\n.statuses-hint {\n grid-column: 1/-1;\n margin: 0;\n}\n\n.statuses-group-block {\n border: 1px solid var(--c-border);\n border-radius: 10px;\n padding: 8px;\n background: #fbfdff;\n}\n\n.statuses-group-block__head {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.statuses-group-block__title {\n margin: 0;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n color: var(--c-text-strong);\n font-size: 14px;\n}\n\n.statuses-color-dot {\n width: 12px;\n height: 12px;\n border-radius: 999px;\n border: 1px solid rgba(15, 23, 42, 0.15);\n}\n\n.statuses-dnd-list {\n margin: 6px 0 0;\n padding: 0;\n list-style: none;\n display: grid;\n gap: 6px;\n}\n\n.statuses-dnd-item {\n display: grid;\n grid-template-columns: 24px 1fr;\n gap: 6px;\n border: 1px solid #dce4f0;\n border-radius: 8px;\n background: #fff;\n padding: 6px;\n}\n\n.statuses-dnd-item__content {\n display: flex;\n align-items: center;\n gap: 6px;\n min-width: 0;\n}\n\n.statuses-dnd-item.is-dragging {\n opacity: 0.6;\n}\n\n.statuses-dnd-item__drag {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border: 1px dashed #cbd5e1;\n border-radius: 6px;\n color: #64748b;\n cursor: grab;\n user-select: none;\n font-weight: 700;\n font-size: 12px;\n}\n\n.statuses-dnd-item__drag:active {\n cursor: grabbing;\n}\n\n.statuses-inline-form {\n display: grid;\n gap: 6px;\n}\n\n.statuses-inline-form--row {\n grid-template-columns: minmax(180px, 1.4fr) minmax(150px, 1fr) auto auto auto;\n align-items: center;\n flex: 1 1 auto;\n min-width: 0;\n}\n\n.statuses-inline-form--row-group {\n grid-template-columns: minmax(180px, 1.5fr) 56px auto auto auto;\n align-items: center;\n flex: 1 1 auto;\n min-width: 0;\n}\n\n.statuses-inline-form--row .form-control,\n.statuses-inline-form--row-group .form-control {\n min-height: 30px;\n padding: 4px 8px;\n}\n\n.statuses-inline-form--row .btn,\n.statuses-inline-form--row-group .btn,\n.statuses-inline-delete .btn {\n min-height: 30px;\n padding: 4px 10px;\n font-size: 12px;\n}\n\n.statuses-inline-check {\n margin-top: 0;\n white-space: nowrap;\n font-size: 12px;\n}\n\n.statuses-inline-delete {\n margin: 0;\n flex: 0 0 auto;\n}\n\n.statuses-code-label {\n font-size: 12px;\n color: var(--c-muted);\n}\n\n.statuses-code-readonly {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n white-space: nowrap;\n font-size: 12px;\n}\n\n.statuses-code-readonly code {\n background: #eef2f7;\n border-radius: 6px;\n padding: 1px 6px;\n color: #1f2937;\n font-size: 12px;\n}\n\n.field-inline {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-top: 2px;\n}\n\n.modal-backdrop {\n position: fixed;\n inset: 0;\n background: rgba(15, 23, 42, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 16px;\n z-index: 200;\n}\n\n.modal-backdrop[hidden] {\n display: none;\n}\n\n.modal {\n width: min(560px, 100%);\n background: #fff;\n border-radius: 10px;\n box-shadow: 0 20px 40px rgba(15, 23, 42, 0.35);\n overflow: hidden;\n}\n\n.modal__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 10px;\n padding: 16px 18px;\n border-bottom: 1px solid var(--c-border);\n}\n\n.modal__header h3 {\n margin: 0;\n font-size: 18px;\n color: var(--c-text-strong);\n}\n\n.modal__body {\n padding: 16px 18px 18px;\n}\n\n.status-pill {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border: 1px solid #fed7d7;\n background: #fff5f5;\n color: #9b2c2c;\n padding: 2px 8px;\n border-radius: 999px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.status-pill.is-active {\n border-color: #b7ebcf;\n background: #f0fff6;\n color: #0f6b39;\n}\n\n.table-row-actions {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.table-row-actions form {\n margin: 0;\n}\n\n.table-list {\n display: grid;\n gap: 14px;\n}\n\n.table-list__header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n.table-list__left {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n.table-list-header-actions {\n display: inline-flex;\n align-items: center;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.js-filter-toggle-btn.is-active {\n border-color: #cbd5e0;\n background: #edf2ff;\n color: var(--c-primary-dark);\n}\n\n.table-filter-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 18px;\n height: 18px;\n padding: 0 5px;\n font-size: 11px;\n font-weight: 700;\n color: #fff;\n background: var(--c-primary);\n border-radius: 999px;\n}\n\n.table-filters-wrapper {\n display: none;\n}\n\n.table-filters-wrapper.is-open {\n display: block;\n}\n\n.table-list-filters {\n display: grid;\n gap: 12px;\n grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));\n}\n\n.table-col-toggle-wrapper {\n position: relative;\n}\n\n.table-col-toggle-dropdown {\n display: none;\n position: absolute;\n right: 0;\n top: calc(100% + 6px);\n z-index: 30;\n width: 260px;\n max-height: 360px;\n overflow: auto;\n border: 1px solid var(--c-border);\n border-radius: 10px;\n background: #fff;\n box-shadow: 0 10px 25px rgba(15, 23, 42, 0.12);\n}\n\n.table-col-toggle-dropdown.is-open {\n display: block;\n}\n\n.table-col-toggle-header {\n padding: 10px 12px;\n border-bottom: 1px solid var(--c-border);\n font-size: 12px;\n font-weight: 700;\n color: var(--c-muted);\n}\n\n.table-col-toggle-item {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 8px 12px;\n font-size: 13px;\n color: var(--c-text-strong);\n}\n\n.table-col-toggle-item:hover {\n background: #f8fafc;\n}\n\n.table-col-toggle-footer {\n border-top: 1px solid var(--c-border);\n padding: 8px 12px;\n}\n\n.table-col-hidden {\n display: none;\n}\n\n.table-col-switch {\n position: relative;\n display: inline-block;\n width: 34px;\n min-width: 34px;\n height: 18px;\n}\n\n.table-col-switch input {\n opacity: 0;\n width: 0;\n height: 0;\n position: absolute;\n}\n\n.table-col-switch-slider {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: #cbd5e1;\n border-radius: 999px;\n transition: background-color 0.2s ease;\n}\n\n.table-col-switch-slider::before {\n content: \"\";\n position: absolute;\n height: 14px;\n width: 14px;\n left: 2px;\n bottom: 2px;\n background: #fff;\n border-radius: 50%;\n transition: transform 0.2s ease;\n}\n\n.table-col-switch input:checked + .table-col-switch-slider {\n background: #16a34a;\n}\n\n.table-col-switch input:checked + .table-col-switch-slider::before {\n transform: translateX(16px);\n}\n\n.table-sort-link {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n color: var(--c-text-strong);\n text-decoration: none;\n}\n\n.table-sort-link:hover {\n color: var(--c-primary-dark);\n}\n\n.table-sort-icon.is-muted {\n color: #a0aec0;\n}\n\n.table-list__footer {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.table-list-per-page-form {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n}\n\n.table-list-per-page-form .form-control {\n min-width: 90px;\n}\n\n.table-select-col {\n width: 44px;\n text-align: center;\n}\n\n.table-select-toggle {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.table-select-toggle input[type=checkbox] {\n width: 16px;\n height: 16px;\n}\n\n.orders-page .orders-head {\n background: linear-gradient(120deg, #f8fbff 0%, #eef5ff 100%);\n border: 1px solid #dbe7fb;\n}\n.orders-page .table-list {\n border: 1px solid #dde5f2;\n border-radius: 12px;\n box-shadow: 0 6px 16px rgba(20, 44, 86, 0.08);\n}\n.orders-page .table-list__header {\n padding: 10px 6px 2px;\n}\n.orders-page .table-list-filters {\n padding: 6px 6px 2px;\n border-top: 1px solid #ebf0f7;\n border-bottom: 1px solid #ebf0f7;\n background: #f9fbff;\n}\n.orders-page .table-wrap {\n border-radius: 10px;\n overflow: hidden;\n border: 1px solid #e7edf6;\n}\n.orders-page .table thead th {\n background: #f3f7fd;\n color: #30435f;\n font-size: 12px;\n text-transform: uppercase;\n letter-spacing: 0.03em;\n}\n.orders-page .table tbody td {\n vertical-align: middle;\n padding-top: 10px;\n padding-bottom: 10px;\n border-bottom-color: #edf2f8;\n}\n.orders-page .table tbody tr:hover td {\n background: #f9fcff;\n}\n\n.orders-list-page {\n padding: 10px;\n margin-bottom: 10px;\n}\n\n.orders-head {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n.orders-stats {\n display: inline-grid;\n grid-template-columns: repeat(3, minmax(86px, auto));\n gap: 8px;\n}\n\n.orders-stat {\n border: 1px solid #d8e2f0;\n background: #f8fbff;\n border-radius: 8px;\n padding: 6px 8px;\n line-height: 1.15;\n}\n.orders-stat__label {\n display: block;\n color: #5f6f83;\n font-size: 11px;\n margin-bottom: 2px;\n}\n.orders-stat__value {\n color: #12233a;\n font-size: 16px;\n font-weight: 700;\n}\n\n.orders-ref {\n display: grid;\n gap: 2px;\n min-width: 170px;\n}\n.orders-ref__main {\n font-weight: 700;\n color: #0f1f35;\n font-size: 14px;\n}\n.orders-ref__meta {\n display: inline-flex;\n flex-wrap: wrap;\n gap: 4px 10px;\n color: #64748b;\n font-size: 12px;\n}\n\n.orders-buyer {\n display: grid;\n gap: 2px;\n}\n.orders-buyer__name {\n color: #0f172a;\n font-weight: 600;\n font-size: 14px;\n}\n.orders-buyer__meta {\n display: inline-flex;\n flex-wrap: wrap;\n gap: 4px 10px;\n color: #64748b;\n font-size: 12px;\n}\n\n.orders-status-wrap {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n flex-wrap: wrap;\n}\n\n.order-tag {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border: 1px solid #d8e1ef;\n background: #f8fafc;\n color: #334155;\n border-radius: 999px;\n padding: 2px 8px;\n font-size: 12px;\n font-weight: 700;\n line-height: 1.1;\n}\n.order-tag.is-info {\n border-color: #bfdbfe;\n background: #eff6ff;\n color: #1d4ed8;\n}\n.order-tag.is-success {\n border-color: #bbf7d0;\n background: #f0fdf4;\n color: #166534;\n}\n.order-tag.is-danger {\n border-color: #fecaca;\n background: #fef2f2;\n color: #b91c1c;\n}\n.order-tag.is-warn {\n border-color: #fde68a;\n background: #fffbeb;\n color: #92400e;\n}\n.order-tag.is-cod {\n border-color: #f9a8d4;\n background: #fdf2f8;\n color: #9d174d;\n}\n.order-tag.is-unpaid {\n border-color: #fca5a5;\n background: #fef2f2;\n color: #b91c1c;\n}\n\n.orders-mini {\n font-size: 14px;\n color: #223247;\n line-height: 1.25;\n}\n.orders-mini__delivery {\n font-size: 12px;\n color: #64748b;\n margin-bottom: 2px;\n max-width: 160px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.orders-products {\n display: grid;\n gap: 4px;\n min-width: 240px;\n}\n.orders-products__meta, .orders-products__more {\n font-size: 12px;\n color: #64748b;\n}\n\n.orders-product {\n display: grid;\n grid-template-columns: 48px 1fr;\n gap: 6px;\n align-items: center;\n}\n.orders-product__thumb {\n width: 48px;\n height: 48px;\n border-radius: 4px;\n border: 1px solid #dbe3ef;\n object-fit: cover;\n background: #fff;\n}\n.orders-product__thumb--empty {\n display: inline-block;\n background: #eef2f7;\n border-style: dashed;\n}\n.orders-product__txt {\n min-width: 0;\n display: grid;\n gap: 1px;\n}\n.orders-product__name {\n font-size: 14px;\n color: #0f172a;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.orders-product__qty {\n font-size: 12px;\n color: #64748b;\n}\n\n.orders-image-hover-wrap {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n cursor: zoom-in;\n}\n\n.orders-image-hover-popup {\n display: none;\n position: fixed;\n left: auto;\n top: auto;\n width: 350px;\n max-height: 350px;\n object-fit: contain;\n border-radius: 8px;\n background: #fff;\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);\n border: 1px solid #dfe3ea;\n z-index: 100;\n pointer-events: none;\n}\n\n.orders-image-hover-wrap:hover .orders-image-hover-popup {\n display: block;\n}\n\n.activity-type-badge {\n display: inline-block;\n padding: 2px 8px;\n border-radius: 4px;\n font-size: 12px;\n font-weight: 500;\n white-space: nowrap;\n background: #e2e8f0;\n color: #334155;\n}\n.activity-type-badge--status_change {\n background: #dbeafe;\n color: #1e40af;\n}\n.activity-type-badge--payment {\n background: #dcfce7;\n color: #166534;\n}\n.activity-type-badge--invoice {\n background: #fef3c7;\n color: #92400e;\n}\n.activity-type-badge--shipment {\n background: #e0e7ff;\n color: #3730a3;\n}\n.activity-type-badge--message {\n background: #f3e8ff;\n color: #6b21a8;\n}\n.activity-type-badge--document {\n background: #fce7f3;\n color: #9d174d;\n}\n.activity-type-badge--import {\n background: #f1f5f9;\n color: #475569;\n}\n.activity-type-badge--note {\n background: #ecfdf5;\n color: #065f46;\n}\n\n.text-nowrap {\n white-space: nowrap;\n}\n\n.orders-money {\n display: grid;\n gap: 2px;\n}\n.orders-money__main {\n color: #0f172a;\n font-weight: 700;\n font-size: 14px;\n}\n.orders-money__meta {\n color: #64748b;\n font-size: 12px;\n}\n\n.table-list[data-table-list-id=orders] {\n gap: 8px;\n}\n.table-list[data-table-list-id=orders] .table-list__header {\n padding: 2px 0 0;\n}\n.table-list[data-table-list-id=orders] .table-list-filters {\n gap: 8px;\n grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));\n}\n.table-list[data-table-list-id=orders] .table th,\n.table-list[data-table-list-id=orders] .table td {\n padding: 6px 8px;\n}\n.table-list[data-table-list-id=orders] .table thead th {\n font-size: 12px;\n text-transform: uppercase;\n letter-spacing: 0.02em;\n white-space: nowrap;\n}\n.table-list[data-table-list-id=orders] .table tbody td {\n vertical-align: top;\n font-size: 14px;\n line-height: 1.25;\n}\n\n.order-show-layout {\n display: grid;\n grid-template-columns: 220px minmax(0, 1fr);\n gap: 12px;\n align-items: start;\n}\n\n.order-statuses-side {\n position: sticky;\n top: 60px;\n padding: 10px;\n}\n.order-statuses-side__title {\n font-size: 13px;\n font-weight: 700;\n color: #0f172a;\n margin-bottom: 8px;\n}\n\n.order-status-group {\n margin-bottom: 10px;\n}\n.order-status-group__name {\n font-size: 12px;\n color: #475569;\n font-weight: 700;\n margin-bottom: 5px;\n}\n\n.order-status-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n padding: 4px 6px;\n border-radius: 6px;\n color: #334155;\n font-size: 12px;\n text-decoration: none;\n}\n.order-status-row__count {\n min-width: 24px;\n text-align: center;\n border-radius: 999px;\n background: var(--status-color, #64748b);\n padding: 1px 6px;\n font-weight: 700;\n font-size: 11px;\n color: #ffffff;\n}\n\n.order-status-row:hover {\n background: #f1f5f9;\n}\n\n.order-status-row.is-active {\n background: rgba(15, 23, 42, 0.06);\n color: #0f172a;\n font-weight: 700;\n}\n\n.order-show-main {\n min-width: 0;\n}\n\n.order-details-actions {\n display: inline-flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n gap: 6px;\n}\n\n.order-details-page {\n padding: 12px;\n}\n\n.order-details-head {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n.order-back-link {\n color: #475569;\n text-decoration: none;\n font-weight: 600;\n}\n\n.order-back-link:hover {\n color: #1d4ed8;\n}\n\n.order-details-sub {\n display: inline-flex;\n gap: 10px;\n flex-wrap: wrap;\n color: #64748b;\n font-size: 12px;\n}\n\n.order-details-pill {\n border-radius: 999px;\n padding: 5px 10px;\n background: #eef6ff;\n border: 1px solid #cfe2ff;\n color: #1d4ed8;\n font-size: 12px;\n font-weight: 700;\n}\n\n.order-status-change {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.order-status-change__form {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.order-status-change__select {\n min-width: 180px;\n}\n\n.order-details-tabs {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.order-details-tab {\n border: 1px solid #d6deea;\n border-radius: 8px;\n padding: 5px 10px;\n color: #475569;\n font-size: 12px;\n background: #f8fafc;\n cursor: pointer;\n}\n\n.order-details-tab.is-active {\n border-color: #bfdbfe;\n color: #1d4ed8;\n background: #eff6ff;\n font-weight: 700;\n}\n\n.order-item-cell {\n display: grid;\n grid-template-columns: 44px 1fr;\n gap: 8px;\n align-items: center;\n min-width: 260px;\n}\n\n.order-item-thumb {\n width: 44px;\n height: 44px;\n border-radius: 6px;\n border: 1px solid #dbe3ef;\n object-fit: cover;\n}\n\n.order-item-thumb--empty {\n display: inline-block;\n background: #eef2f7;\n border-style: dashed;\n}\n\n.order-item-name {\n font-weight: 600;\n color: #0f172a;\n}\n\n.order-grid-2 {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 12px;\n}\n\n.order-grid-3 {\n display: grid;\n grid-template-columns: repeat(3, minmax(0, 1fr));\n gap: 12px;\n}\n\n.order-kv {\n margin: 0;\n display: grid;\n grid-template-columns: 150px 1fr;\n gap: 6px 10px;\n font-size: 12px;\n}\n\n.payment-summary {\n display: grid;\n gap: 6px;\n max-width: 420px;\n}\n\n.payment-summary__row {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 12px;\n}\n\n.payment-summary__label {\n width: 150px;\n flex-shrink: 0;\n color: #64748b;\n}\n\n.payment-summary__value {\n font-weight: 600;\n color: #0f172a;\n}\n\n.order-kv dt {\n color: #64748b;\n}\n\n.order-kv dd {\n margin: 0;\n color: #0f172a;\n font-weight: 600;\n}\n\n.order-address {\n display: grid;\n gap: 3px;\n font-size: 12px;\n color: #0f172a;\n}\n\n.order-events {\n display: grid;\n gap: 8px;\n}\n\n.order-event {\n border: 1px solid #e2e8f0;\n border-radius: 8px;\n padding: 8px;\n background: #fbfdff;\n}\n\n.order-event__head {\n color: #64748b;\n font-size: 11px;\n}\n\n.order-event__body {\n margin-top: 4px;\n color: #0f172a;\n font-size: 12px;\n}\n\n.order-tab-panel {\n display: none;\n}\n\n.order-tab-panel.is-active {\n display: block;\n}\n\n.order-empty-placeholder {\n border: 1px dashed #cbd5e1;\n border-radius: 8px;\n min-height: 180px;\n background: #f8fafc;\n}\n\n.order-status-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 4px 10px;\n border-radius: 999px;\n font-size: 12px;\n font-weight: 700;\n border: 1px solid #cbd5e1;\n color: #334155;\n background: #f8fafc;\n}\n.order-status-badge.is-info {\n border-color: #bfdbfe;\n background: #eff6ff;\n color: #1d4ed8;\n}\n.order-status-badge.is-success {\n border-color: #bbf7d0;\n background: #f0fdf4;\n color: #166534;\n}\n.order-status-badge.is-danger {\n border-color: #fecaca;\n background: #fef2f2;\n color: #b91c1c;\n}\n.order-status-badge.is-warn {\n border-color: #fde68a;\n background: #fffbeb;\n color: #92400e;\n}\n.order-status-badge.is-empty {\n color: #94a3b8;\n}\n\n.order-buyer {\n display: grid;\n gap: 2px;\n}\n.order-buyer__name {\n color: #0f172a;\n font-weight: 600;\n}\n.order-buyer__email {\n color: #64748b;\n font-size: 12px;\n}\n\n.table-inline-action {\n display: inline-block;\n margin-right: 6px;\n}\n\n.product-name-cell {\n display: inline-flex;\n align-items: center;\n gap: 10px;\n}\n\n.product-name-thumb {\n width: 60px;\n height: 60px;\n border-radius: 6px;\n object-fit: cover;\n border: 1px solid var(--c-border);\n background: #f8fafc;\n}\n\n.product-name-thumb--empty {\n display: inline-block;\n width: 60px;\n height: 60px;\n border-radius: 6px;\n border: 1px dashed #cbd5e0;\n background: #f8fafc;\n}\n\n.product-name-thumb-btn {\n border: 0;\n padding: 0;\n background: transparent;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.product-name-thumb-btn:focus-visible {\n outline: none;\n box-shadow: var(--focus-ring);\n border-radius: 8px;\n}\n\n.modal--image-preview {\n width: min(760px, 100%);\n}\n\n.product-image-preview__img {\n display: block;\n width: 100%;\n max-height: 70vh;\n object-fit: contain;\n border-radius: 8px;\n background: #f8fafc;\n}\n\n.product-images-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));\n gap: 12px;\n}\n\n.product-image-card {\n border: 1px solid #dfe3ea;\n border-radius: 10px;\n padding: 10px;\n background: #fff;\n}\n\n.product-image-card__thumb-wrap {\n position: relative;\n border-radius: 8px;\n overflow: hidden;\n background: #f2f5f8;\n}\n\n.product-image-card__thumb {\n width: 100%;\n height: 160px;\n object-fit: cover;\n display: block;\n}\n\n.product-image-card__thumb.is-empty {\n height: 160px;\n display: grid;\n place-items: center;\n color: #6b7785;\n font-size: 12px;\n}\n\n.product-image-card__badge {\n display: none;\n position: absolute;\n top: 8px;\n left: 8px;\n background: #1f7a43;\n color: #fff;\n padding: 3px 8px;\n border-radius: 999px;\n font-size: 11px;\n}\n\n.product-image-card.is-main .product-image-card__badge {\n display: inline-block;\n}\n\n.product-image-card__meta {\n margin-top: 8px;\n font-size: 11px;\n line-height: 1.25;\n color: #5f6b79;\n overflow-wrap: anywhere;\n}\n\n.product-image-card__actions {\n margin-top: 10px;\n display: grid;\n grid-template-columns: 1fr;\n gap: 8px;\n}\n\n.product-image-card__actions .btn {\n min-height: 34px;\n font-size: 12px;\n line-height: 1.2;\n padding: 6px 10px;\n}\n\n.product-links-search-form {\n display: grid;\n gap: 12px;\n grid-template-columns: minmax(220px, 320px) minmax(220px, 1fr) auto;\n align-items: end;\n}\n\n.product-links-head {\n display: grid;\n gap: 8px;\n grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n\n.product-tabs-nav {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n.product-links-inline-form {\n display: grid;\n gap: 8px;\n grid-template-columns: minmax(140px, 1fr) minmax(140px, 1fr) auto;\n align-items: center;\n}\n\n.product-links-actions-row {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-wrap: nowrap;\n}\n\n.product-links-actions-row .product-links-relink-form {\n flex: 1 1 auto;\n}\n\n.product-links-unlink-form {\n margin: 0;\n flex: 0 0 auto;\n}\n\n.product-link-status-cell {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.product-link-alert-indicator {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 18px;\n height: 18px;\n border-radius: 999px;\n border: 1px solid #f59e0b;\n background: #fffbeb;\n color: #b45309;\n font-size: 12px;\n font-weight: 700;\n cursor: help;\n}\n\n.product-link-events-list {\n margin: 0;\n padding: 0;\n list-style: none;\n display: grid;\n gap: 4px;\n}\n\n.product-link-events-list li {\n display: grid;\n gap: 2px;\n}\n\n.product-link-events-type {\n font-weight: 600;\n color: var(--c-text-strong);\n}\n\n.product-link-events-date {\n color: var(--c-muted);\n font-size: 12px;\n}\n\n.product-show-images-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));\n gap: 12px;\n}\n\n.product-show-image-card {\n border: 1px solid var(--c-border);\n border-radius: 10px;\n background: #fff;\n padding: 10px;\n overflow: hidden;\n}\n.product-show-image-card__meta {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 8px;\n min-width: 0;\n}\n\n.product-show-image-path {\n font-size: 12px;\n min-width: 0;\n overflow: hidden;\n}\n.product-show-image-path summary {\n cursor: pointer;\n color: var(--c-muted, #888);\n list-style: none;\n user-select: none;\n white-space: nowrap;\n}\n.product-show-image-path summary::-webkit-details-marker {\n display: none;\n}\n.product-show-image-path summary::after {\n content: \" ▾\";\n}\n.product-show-image-path[open] summary::after {\n content: \" ▴\";\n}\n.product-show-image-path__url {\n margin-top: 4px;\n word-break: break-all;\n overflow-wrap: break-word;\n font-size: 11px;\n}\n\n.product-show-image {\n width: 100%;\n max-height: 260px;\n object-fit: cover;\n border-radius: 8px;\n border: 1px solid #d9e0ea;\n}\n\n.shipment-grid {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 12px;\n}\n\n.searchable-select {\n position: relative;\n}\n.searchable-select__trigger {\n display: flex;\n align-items: center;\n justify-content: space-between;\n cursor: pointer;\n user-select: none;\n min-height: 34px;\n}\n.searchable-select__trigger::after {\n content: \"\";\n width: 0;\n height: 0;\n border-left: 4px solid transparent;\n border-right: 4px solid transparent;\n border-top: 5px solid var(--c-text-muted, #6b7280);\n margin-left: 8px;\n flex-shrink: 0;\n}\n.searchable-select__trigger--placeholder {\n color: var(--c-text-muted, #6b7280);\n}\n.searchable-select__dropdown {\n display: none;\n position: absolute;\n left: 0;\n right: 0;\n top: 100%;\n z-index: 50;\n max-height: 280px;\n overflow: auto;\n background: #fff;\n border: 1px solid var(--c-border);\n border-top: 0;\n border-radius: 0 0 8px 8px;\n box-shadow: 0 8px 20px rgba(15, 23, 42, 0.12);\n}\n.searchable-select__dropdown.is-open {\n display: block;\n}\n.searchable-select__search {\n position: sticky;\n top: 0;\n border: none !important;\n border-bottom: 1px solid var(--c-border) !important;\n border-radius: 0 !important;\n box-shadow: none !important;\n font-size: 13px;\n background: #fff;\n z-index: 1;\n}\n.searchable-select__option {\n padding: 7px 10px;\n font-size: 13px;\n cursor: pointer;\n color: var(--c-text-strong);\n}\n.searchable-select__option:hover {\n background: #f1f5f9;\n}\n.searchable-select__option.is-selected {\n background: #edf2ff;\n font-weight: 600;\n}\n\n.flash {\n padding: 10px 14px;\n border-radius: 8px;\n font-size: 13px;\n font-weight: 500;\n}\n.flash--success {\n background: #f0fdf4;\n border: 1px solid #bbf7d0;\n color: #166534;\n}\n.flash--error {\n background: #fef2f2;\n border: 1px solid #fecaca;\n color: #b91c1c;\n}\n\n.content-tabs-card {\n margin-top: 0;\n}\n\n.content-tabs-nav {\n display: flex;\n gap: 4px;\n border-bottom: 2px solid var(--c-border);\n margin-bottom: 16px;\n flex-wrap: wrap;\n}\n\n.content-tab-btn {\n padding: 8px 16px;\n border: none;\n background: none;\n cursor: pointer;\n font-size: 14px;\n font-weight: 500;\n color: var(--c-text-muted, #6b7280);\n border-bottom: 2px solid transparent;\n margin-bottom: -2px;\n border-radius: 4px 4px 0 0;\n transition: color 0.15s, border-color 0.15s;\n}\n.content-tab-btn:hover {\n color: var(--c-text-strong, #111827);\n}\n.content-tab-btn.is-active {\n color: var(--c-primary, #2563eb);\n border-bottom-color: var(--c-primary, #2563eb);\n}\n\n.content-tab-panel {\n display: none;\n}\n.content-tab-panel.is-active {\n display: block;\n}\n\n.shoppro-tabs-toolbar {\n display: flex;\n align-items: flex-end;\n justify-content: space-between;\n gap: 10px;\n margin-bottom: 10px;\n flex-wrap: wrap;\n}\n\n.shoppro-tabs-toolbar__field {\n margin: 0;\n min-width: 260px;\n max-width: 420px;\n flex: 1 1 320px;\n}\n\n.shoppro-tabs-toolbar__field .form-control {\n width: 100%;\n}\n\n.shoppro-tabs-toolbar__actions {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n}\n\n.dm-carrier-select {\n min-width: 140px;\n}\n\n.dm-service-wrap {\n min-width: 200px;\n}\n.dm-service-wrap .dm-inpost-panel .form-control,\n.dm-service-wrap .dm-apaczka-panel .form-control {\n width: 100%;\n}\n\n.integration-settings-group {\n grid-column: 1/-1;\n border: 1px solid var(--c-border);\n border-radius: 10px;\n background: #f8fbff;\n padding: 10px;\n}\n\n.integration-settings-group__head {\n margin-bottom: 8px;\n padding: 4px 8px;\n border-left: 3px solid var(--c-primary, #2563eb);\n background: #eef4ff;\n border-radius: 6px;\n}\n\n.integration-settings-group__title {\n margin: 0;\n font-size: 14px;\n font-weight: 700;\n letter-spacing: 0.01em;\n color: #1e3a8a;\n}\n\n.integration-settings-group__desc {\n margin: 4px 0 0;\n color: #4b5563;\n}\n\n.integration-settings-group__grid {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 10px 12px;\n align-items: start;\n}\n\n.integration-settings-group__full {\n grid-column: 1/-1;\n}\n\n.integration-settings-group__grid .form-field {\n margin: 0;\n align-self: start;\n}\n\n.integration-settings-group__grid .form-control {\n min-height: 34px;\n height: 34px;\n}\n\n.integration-settings-group__grid input[type=date].form-control {\n line-height: 1.2;\n}\n\n.integration-settings-checkboxes {\n border: 0;\n padding: 0;\n margin: 0;\n}\n\n.integration-settings-checkboxes .field-label {\n display: block;\n margin-bottom: 2px;\n}\n\n.integration-settings-checkboxes__list {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 6px 12px;\n}\n\n.integration-settings-checkboxes__item {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n color: #334155;\n}\n\n@media (max-width: 768px) {\n .app-shell {\n flex-direction: column;\n }\n .sidebar {\n width: 100% !important;\n min-width: 0 !important;\n border-right: 0;\n border-bottom: 1px solid #243041;\n padding: 14px;\n overflow-x: auto;\n }\n .sidebar__brand {\n margin: 0 0 10px;\n font-size: 22px;\n }\n .sidebar__collapse-btn {\n display: none;\n }\n .sidebar__nav {\n display: flex;\n gap: 8px;\n overflow-x: auto;\n }\n .sidebar__link {\n white-space: nowrap;\n }\n .topbar {\n padding: 0 14px;\n }\n .container {\n margin-top: 16px;\n width: calc(100% - 16px);\n margin-left: 8px;\n margin-right: 8px;\n padding: 0 3px 12px;\n }\n .settings-grid {\n grid-template-columns: 1fr;\n }\n .page-head {\n flex-direction: column;\n align-items: flex-start;\n }\n .orders-stats {\n grid-template-columns: 1fr;\n width: 100%;\n }\n .order-show-layout {\n grid-template-columns: 1fr;\n }\n .order-statuses-side {\n position: static;\n top: auto;\n }\n .order-details-actions {\n justify-content: flex-start;\n }\n .order-grid-2,\n .order-grid-3 {\n grid-template-columns: 1fr;\n }\n .order-kv {\n grid-template-columns: 1fr;\n gap: 2px;\n }\n .filters-grid,\n .form-grid,\n .form-grid-2,\n .form-grid-3,\n .form-grid-4,\n .shipment-grid,\n .statuses-form,\n .statuses-inline-form,\n .table-list-filters,\n .product-links-search-form,\n .product-links-inline-form {\n grid-template-columns: 1fr;\n }\n .statuses-dnd-item__content {\n display: block;\n }\n .statuses-inline-delete {\n margin-top: 6px;\n }\n .filters-actions {\n align-items: center;\n }\n .table-list__header,\n .table-list__footer {\n align-items: flex-start;\n }\n .product-links-head {\n grid-template-columns: 1fr;\n }\n .integration-settings-group__grid {\n grid-template-columns: 1fr;\n }\n .integration-settings-checkboxes__list {\n grid-template-columns: 1fr;\n }\n .card {\n padding: 12px;\n }\n .modal--image-preview {\n width: min(92vw, 100%);\n }\n}",":root {\r\n --c-primary: #6690f4;\r\n --c-primary-dark: #3164db;\r\n --c-bg: #f4f6f9;\r\n --c-surface: #ffffff;\r\n --c-text: #4e5e6a;\r\n --c-text-strong: #2d3748;\r\n --c-muted: #718096;\r\n --c-border: #b0bec5;\r\n --c-danger: #cc0000;\r\n --focus-ring: 0 0 0 3px rgba(102, 144, 244, 0.15);\r\n --shadow-card: 0 1px 4px rgba(0, 0, 0, 0.06);\r\n}\r\n\r\n.btn {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n min-height: 34px;\r\n padding: 6px 12px;\r\n border: 1px solid transparent;\r\n border-radius: 8px;\r\n font: inherit;\r\n font-weight: 600;\r\n text-decoration: none;\r\n cursor: pointer;\r\n transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.1s ease;\r\n}\r\n\r\n.btn--primary {\r\n color: #ffffff;\r\n background: var(--c-primary);\r\n}\r\n\r\n.btn--primary:hover {\r\n background: var(--c-primary-dark);\r\n}\r\n\r\n.btn--secondary {\r\n color: var(--c-text-strong);\r\n border-color: var(--c-border);\r\n background: var(--c-surface);\r\n}\r\n\r\n.btn--secondary:hover {\r\n border-color: #cbd5e0;\r\n background: #f8fafc;\r\n}\r\n\r\n.btn--danger {\r\n color: #ffffff;\r\n border-color: #b91c1c;\r\n background: #dc2626;\r\n}\r\n\r\n.btn--danger:hover {\r\n border-color: #991b1b;\r\n background: #b91c1c;\r\n}\r\n\r\n.btn--sm {\r\n min-height: 28px;\r\n padding: 3px 10px;\r\n font-size: 12px;\r\n}\r\n\r\n.btn--block {\r\n width: 100%;\r\n}\r\n\r\n.btn:active {\r\n transform: translateY(1px);\r\n}\r\n\r\n.btn:focus-visible {\r\n outline: none;\r\n box-shadow: var(--focus-ring);\r\n border-color: var(--c-primary);\r\n}\r\n\r\n.form-control {\r\n width: 100%;\r\n min-height: 34px;\r\n border: 1px solid var(--c-border);\r\n border-radius: 8px;\r\n padding: 5px 10px;\r\n font: inherit;\r\n color: var(--c-text-strong);\r\n background: #ffffff;\r\n transition: border-color 0.2s ease, box-shadow 0.2s ease;\r\n}\r\n\r\n.form-control:focus {\r\n outline: none;\r\n border-color: var(--c-primary);\r\n box-shadow: var(--focus-ring);\r\n}\r\n\r\n.input {\r\n min-height: 34px;\r\n border: 1px solid var(--c-border);\r\n border-radius: 8px;\r\n padding: 5px 10px;\r\n font: inherit;\r\n color: var(--c-text-strong);\r\n background: #ffffff;\r\n}\r\n\r\n.input--sm {\r\n min-height: 28px;\r\n padding: 3px 8px;\r\n font-size: 12px;\r\n}\r\n\r\n.flash {\r\n padding: 8px 12px;\r\n border-radius: 6px;\r\n font-size: 13px;\r\n}\r\n\r\n.flash--success {\r\n border: 1px solid #b7ebcf;\r\n background: #f0fff6;\r\n color: #0f6b39;\r\n}\r\n\r\n.flash--error {\r\n border: 1px solid #fed7d7;\r\n background: #fff5f5;\r\n color: var(--c-danger);\r\n}\r\n\r\n.alert {\r\n padding: 12px 14px;\r\n border-radius: 8px;\r\n border: 1px solid transparent;\r\n font-size: 13px;\r\n min-height: 44px;\r\n}\r\n\r\n.alert--danger {\r\n border-color: #fed7d7;\r\n background: #fff5f5;\r\n color: var(--c-danger);\r\n}\r\n\r\n.alert--success {\r\n border-color: #b7ebcf;\r\n background: #f0fff6;\r\n color: #0f6b39;\r\n}\r\n\r\n.alert--warning {\r\n border-color: #f7dd8b;\r\n background: #fff8e8;\r\n color: #815500;\r\n}\r\n\r\n.form-field {\r\n display: grid;\r\n gap: 5px;\r\n}\r\n\r\n.field-label {\r\n color: var(--c-text-strong);\r\n font-size: 13px;\r\n font-weight: 600;\r\n}\r\n\r\n.table-wrap {\r\n width: 100%;\r\n overflow-x: auto;\r\n\r\n &--visible {\r\n overflow: visible !important;\r\n overflow-x: visible !important;\r\n }\r\n}\r\n\r\n.table {\r\n width: 100%;\r\n border-collapse: collapse;\r\n background: var(--c-surface);\r\n}\r\n\r\n.table th,\r\n.table td {\r\n padding: 10px 12px;\r\n border-bottom: 1px solid var(--c-border);\r\n text-align: left;\r\n}\r\n\r\n.table th {\r\n color: var(--c-text-strong);\r\n font-weight: 700;\r\n background: #f8fafc;\r\n}\r\n\r\n.table--details th {\r\n white-space: nowrap;\r\n}\r\n\r\n.table--details th:first-child,\r\n.table--details td:first-child {\r\n width: 36px;\r\n text-align: center;\r\n}\r\n\r\n.pagination {\r\n display: flex;\r\n align-items: center;\r\n flex-wrap: wrap;\r\n gap: 8px;\r\n}\r\n\r\n.pagination__item {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n min-width: 36px;\r\n height: 36px;\r\n padding: 0 10px;\r\n border-radius: 8px;\r\n border: 1px solid var(--c-border);\r\n color: var(--c-text-strong);\r\n background: var(--c-surface);\r\n text-decoration: none;\r\n font-weight: 600;\r\n}\r\n\r\n.pagination__item:hover {\r\n border-color: #cbd5e0;\r\n background: #f8fafc;\r\n}\r\n\r\n.pagination__item.is-active {\r\n border-color: var(--c-primary);\r\n color: var(--c-primary);\r\n background: #edf2ff;\r\n}\r\n","@use \"shared/ui-components\";\r\n\r\n* {\r\n box-sizing: border-box;\r\n}\r\n\r\nhtml,\r\nbody {\r\n min-height: 100%;\r\n}\r\n\r\nbody {\r\n margin: 0;\r\n font-family: \"Roboto\", \"Segoe UI\", sans-serif;\r\n font-size: 13px;\r\n color: var(--c-text);\r\n background: var(--c-bg);\r\n}\r\n\r\na {\r\n color: var(--c-primary);\r\n}\r\n\r\n.app-shell {\r\n min-height: 100vh;\r\n display: flex;\r\n}\r\n\r\n.sidebar {\r\n width: 260px;\r\n min-width: 260px;\r\n flex-shrink: 0;\r\n overflow: hidden;\r\n transition: width 0.22s ease, min-width 0.22s ease;\r\n border-right: 1px solid #243041;\r\n background: #111a28;\r\n padding: 18px 10px;\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n\r\n.sidebar.is-collapsed {\r\n width: 52px;\r\n min-width: 52px;\r\n}\r\n\r\n.sidebar__brand {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n margin: 4px 4px 16px;\r\n gap: 6px;\r\n min-width: 0;\r\n}\r\n\r\n.sidebar__brand-text {\r\n color: #e9f0ff;\r\n font-size: 24px;\r\n font-weight: 300;\r\n letter-spacing: -0.02em;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n flex: 1;\r\n min-width: 0;\r\n\r\n strong {\r\n font-weight: 700;\r\n }\r\n}\r\n\r\n.sidebar__collapse-btn {\r\n flex-shrink: 0;\r\n width: 28px;\r\n height: 28px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n background: transparent;\r\n border: 1px solid #2a3a54;\r\n border-radius: 6px;\r\n color: #64748b;\r\n cursor: pointer;\r\n padding: 0;\r\n transition: background 0.15s, color 0.15s;\r\n\r\n &:hover {\r\n background: #1b2a3f;\r\n color: #cbd5e1;\r\n }\r\n}\r\n\r\n.sidebar__collapse-icon {\r\n display: block;\r\n transition: transform 0.22s ease;\r\n flex-shrink: 0;\r\n}\r\n\r\n.sidebar.is-collapsed .sidebar__collapse-icon {\r\n transform: rotate(180deg);\r\n}\r\n\r\n.sidebar__nav {\r\n display: grid;\r\n gap: 4px;\r\n}\r\n\r\n.sidebar__link {\r\n border-radius: 8px;\r\n padding: 10px 12px;\r\n text-decoration: none;\r\n color: #cbd5e1;\r\n font-weight: 600;\r\n}\r\n\r\n.sidebar__link:hover {\r\n color: #f8fafc;\r\n background: #1b2a3f;\r\n}\r\n\r\n.sidebar__link.is-active {\r\n color: #ffffff;\r\n background: #2e4f93;\r\n}\r\n\r\n.sidebar__group {\r\n display: grid;\r\n gap: 2px;\r\n}\r\n\r\n.sidebar__group-toggle {\r\n list-style: none;\r\n border-radius: 8px;\r\n padding: 9px 10px;\r\n color: #cbd5e1;\r\n font-weight: 600;\r\n cursor: pointer;\r\n display: flex;\r\n align-items: center;\r\n gap: 9px;\r\n white-space: nowrap;\r\n user-select: none;\r\n}\r\n\r\n.sidebar__group-toggle::-webkit-details-marker {\r\n display: none;\r\n}\r\n\r\n.sidebar__group:hover .sidebar__group-toggle,\r\n.sidebar__group-toggle:hover {\r\n color: #f8fafc;\r\n background: #1b2a3f;\r\n}\r\n\r\n.sidebar__group.is-active .sidebar__group-toggle {\r\n color: #ffffff;\r\n background: #2e4f93;\r\n}\r\n\r\n.sidebar__icon {\r\n flex-shrink: 0;\r\n width: 18px;\r\n height: 18px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n opacity: 0.85;\r\n}\r\n\r\n.sidebar__label {\r\n flex: 1;\r\n min-width: 0;\r\n overflow: hidden;\r\n}\r\n\r\n.sidebar__toggle-arrow {\r\n flex-shrink: 0;\r\n margin-left: auto;\r\n opacity: 0.5;\r\n transition: transform 0.18s ease;\r\n}\r\n\r\ndetails[open] > .sidebar__group-toggle .sidebar__toggle-arrow {\r\n transform: rotate(180deg);\r\n}\r\n\r\n.sidebar__group-links {\r\n display: grid;\r\n gap: 2px;\r\n padding-left: 12px;\r\n overflow: hidden;\r\n}\r\n\r\n.sidebar__sublink {\r\n border-radius: 6px;\r\n padding: 7px 10px 7px 8px;\r\n text-decoration: none;\r\n color: #94a3b8;\r\n font-size: 12.5px;\r\n font-weight: 500;\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n white-space: nowrap;\r\n\r\n &::before {\r\n content: '';\r\n flex-shrink: 0;\r\n width: 5px;\r\n height: 5px;\r\n border-radius: 50%;\r\n background: rgba(148, 163, 184, 0.3);\r\n transition: background 0.15s;\r\n }\r\n\r\n &:hover {\r\n color: #e2e8f0;\r\n background: #1b2a3f;\r\n\r\n &::before {\r\n background: rgba(148, 163, 184, 0.65);\r\n }\r\n }\r\n\r\n &.is-active {\r\n color: #ffffff;\r\n background: rgba(46, 79, 147, 0.55);\r\n\r\n &::before {\r\n background: #93c5fd;\r\n }\r\n }\r\n}\r\n\r\n.app-main {\r\n flex: 1;\r\n min-width: 0;\r\n}\r\n\r\n.topbar {\r\n height: 50px;\r\n border-bottom: 1px solid var(--c-border);\r\n background: var(--c-surface);\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n padding: 0 20px;\r\n position: sticky;\r\n top: 0;\r\n z-index: 100;\r\n}\r\n\r\n.brand {\r\n font-size: 22px;\r\n font-weight: 300;\r\n letter-spacing: -0.02em;\r\n color: var(--c-text-strong);\r\n}\r\n\r\n.brand strong {\r\n font-weight: 700;\r\n}\r\n\r\n.container {\r\n max-width: none;\r\n width: calc(100% - 20px);\r\n margin: 12px 10px;\r\n padding: 0 4px 14px;\r\n}\r\n\r\n.card {\r\n background: var(--c-surface);\r\n border-radius: 10px;\r\n box-shadow: var(--shadow-card);\r\n padding: 14px;\r\n}\r\n\r\n.card h1 {\r\n margin: 0 0 10px;\r\n color: var(--c-text-strong);\r\n font-size: 24px;\r\n font-weight: 700;\r\n}\r\n\r\n.muted {\r\n color: var(--c-muted);\r\n}\r\n\r\n.accent {\r\n color: var(--c-primary);\r\n font-weight: 600;\r\n}\r\n\r\n.users-form {\r\n display: grid;\r\n gap: 14px;\r\n max-width: 460px;\r\n}\r\n\r\n.section-title {\n margin: 0;\n color: var(--c-text-strong);\n font-size: 18px;\n font-weight: 700;\n}\n\nh2.section-title,\nh3.section-title,\nh4.section-title {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 400;\n padding: 5px 10px;\n border-left: 3px solid var(--c-primary);\n border-radius: 7px;\n background: linear-gradient(180deg, #f4f8ff 0%, #edf3ff 100%);\n color: #1e3a8a;\n box-shadow: inset 0 0 0 1px #dbe7fb;\n}\n\r\n.mt-0 {\r\n margin-top: 0;\r\n}\r\n\r\n.mt-4 {\r\n margin-top: 4px;\r\n}\r\n\r\n.mt-12 {\r\n margin-top: 8px;\r\n}\r\n\r\n.mt-16 {\r\n margin-top: 12px;\r\n}\r\n\r\n.settings-grid {\r\n display: grid;\r\n grid-template-columns: repeat(3, minmax(0, 1fr));\r\n gap: 12px;\r\n}\r\n\r\n.settings-nav {\r\n display: flex;\r\n gap: 8px;\r\n flex-wrap: wrap;\r\n}\r\n\r\n.settings-nav__link {\r\n text-decoration: none;\r\n border: 1px solid var(--c-border);\r\n border-radius: 8px;\r\n padding: 8px 12px;\r\n color: var(--c-text-strong);\r\n font-weight: 600;\r\n}\r\n\r\n.settings-nav__link:hover {\r\n background: #f8fafc;\r\n}\r\n\r\n.settings-nav__link.is-active {\r\n border-color: var(--c-primary);\r\n color: var(--c-primary);\r\n background: #edf2ff;\r\n}\r\n\r\n.settings-stat {\r\n border: 1px solid var(--c-border);\r\n border-radius: 8px;\r\n padding: 12px;\r\n background: #f8fafc;\r\n}\r\n\r\n.settings-stat__label {\r\n display: block;\r\n color: var(--c-muted);\r\n font-size: 12px;\r\n margin-bottom: 4px;\r\n}\r\n\r\n.settings-stat__value {\r\n color: var(--c-text-strong);\r\n font-size: 20px;\r\n}\r\n\r\n.settings-logs {\r\n margin: 0;\r\n padding: 12px;\r\n border-radius: 8px;\r\n border: 1px solid var(--c-border);\r\n background: #0b1220;\r\n color: #d1d5db;\r\n font-size: 12px;\r\n line-height: 1.5;\r\n overflow: auto;\r\n}\r\n\r\n.settings-allegro-callback {\r\n display: block;\r\n width: 100%;\r\n padding: 8px 10px;\r\n border: 1px solid var(--c-border);\r\n border-radius: 8px;\r\n background: #f8fafc;\r\n color: var(--c-text-strong);\r\n font-size: 12px;\r\n line-height: 1.45;\r\n word-break: break-all;\r\n}\r\n\r\n.page-head {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: 12px;\r\n}\r\n\r\n.filters-grid {\r\n display: grid;\r\n grid-template-columns: repeat(3, minmax(0, 1fr));\r\n gap: 12px;\r\n}\r\n\r\n.filters-actions {\r\n display: flex;\r\n align-items: end;\r\n gap: 8px;\r\n}\r\n\r\n.product-form .form-control {\r\n width: 100%;\r\n}\r\n\r\n.form-grid {\r\n display: grid;\r\n grid-template-columns: repeat(2, minmax(0, 1fr));\r\n gap: 12px;\r\n}\r\n\r\n.form-grid-2 {\r\n display: grid;\r\n grid-template-columns: repeat(2, minmax(0, 1fr));\r\n gap: 12px;\r\n}\r\n\r\n.form-grid-3 {\r\n display: grid;\r\n grid-template-columns: repeat(3, minmax(0, 1fr));\r\n gap: 12px;\r\n}\r\n\r\n.form-grid-4 {\r\n display: grid;\r\n grid-template-columns: repeat(4, minmax(0, 1fr));\r\n gap: 12px;\r\n}\r\n\r\n.form-actions {\r\n display: flex;\r\n gap: 8px;\r\n flex-wrap: wrap;\r\n align-items: flex-start;\r\n}\r\n\r\n.form-actions .btn {\r\n align-self: flex-start;\r\n}\r\n\r\n.statuses-form {\r\n display: grid;\r\n gap: 8px;\r\n grid-template-columns: repeat(2, minmax(0, 1fr));\r\n}\r\n\r\n.statuses-form .form-actions {\r\n grid-column: 1 / -1;\r\n}\r\n\r\n.statuses-color-input {\r\n min-height: 32px;\r\n padding: 2px;\r\n}\r\n\r\n.statuses-hint {\r\n grid-column: 1 / -1;\r\n margin: 0;\r\n}\r\n\r\n.statuses-group-block {\r\n border: 1px solid var(--c-border);\r\n border-radius: 10px;\r\n padding: 8px;\r\n background: #fbfdff;\r\n}\r\n\r\n.statuses-group-block__head {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: 6px;\r\n flex-wrap: wrap;\r\n}\r\n\r\n.statuses-group-block__title {\r\n margin: 0;\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 6px;\r\n color: var(--c-text-strong);\r\n font-size: 14px;\r\n}\r\n\r\n.statuses-color-dot {\r\n width: 12px;\r\n height: 12px;\r\n border-radius: 999px;\r\n border: 1px solid rgba(15, 23, 42, 0.15);\r\n}\r\n\r\n.statuses-dnd-list {\r\n margin: 6px 0 0;\r\n padding: 0;\r\n list-style: none;\r\n display: grid;\r\n gap: 6px;\r\n}\r\n\r\n.statuses-dnd-item {\r\n display: grid;\r\n grid-template-columns: 24px 1fr;\r\n gap: 6px;\r\n border: 1px solid #dce4f0;\r\n border-radius: 8px;\r\n background: #fff;\r\n padding: 6px;\r\n}\r\n\r\n.statuses-dnd-item__content {\r\n display: flex;\r\n align-items: center;\r\n gap: 6px;\r\n min-width: 0;\r\n}\r\n\r\n.statuses-dnd-item.is-dragging {\r\n opacity: 0.6;\r\n}\r\n\r\n.statuses-dnd-item__drag {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n border: 1px dashed #cbd5e1;\r\n border-radius: 6px;\r\n color: #64748b;\r\n cursor: grab;\r\n user-select: none;\r\n font-weight: 700;\r\n font-size: 12px;\r\n}\r\n\r\n.statuses-dnd-item__drag:active {\r\n cursor: grabbing;\r\n}\r\n\r\n.statuses-inline-form {\r\n display: grid;\r\n gap: 6px;\r\n}\r\n\r\n.statuses-inline-form--row {\r\n grid-template-columns: minmax(180px, 1.4fr) minmax(150px, 1fr) auto auto auto;\r\n align-items: center;\r\n flex: 1 1 auto;\r\n min-width: 0;\r\n}\r\n\r\n.statuses-inline-form--row-group {\r\n grid-template-columns: minmax(180px, 1.5fr) 56px auto auto auto;\r\n align-items: center;\r\n flex: 1 1 auto;\r\n min-width: 0;\r\n}\r\n\r\n.statuses-inline-form--row .form-control,\r\n.statuses-inline-form--row-group .form-control {\r\n min-height: 30px;\r\n padding: 4px 8px;\r\n}\r\n\r\n.statuses-inline-form--row .btn,\r\n.statuses-inline-form--row-group .btn,\r\n.statuses-inline-delete .btn {\r\n min-height: 30px;\r\n padding: 4px 10px;\r\n font-size: 12px;\r\n}\r\n\r\n.statuses-inline-check {\r\n margin-top: 0;\r\n white-space: nowrap;\r\n font-size: 12px;\r\n}\r\n\r\n.statuses-inline-delete {\r\n margin: 0;\r\n flex: 0 0 auto;\r\n}\r\n\r\n.statuses-code-label {\r\n font-size: 12px;\r\n color: var(--c-muted);\r\n}\r\n\r\n.statuses-code-readonly {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 6px;\r\n white-space: nowrap;\r\n font-size: 12px;\r\n}\r\n\r\n.statuses-code-readonly code {\r\n background: #eef2f7;\r\n border-radius: 6px;\r\n padding: 1px 6px;\r\n color: #1f2937;\r\n font-size: 12px;\r\n}\r\n\r\n.field-inline {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n margin-top: 2px;\r\n}\r\n\r\n.modal-backdrop {\r\n position: fixed;\r\n inset: 0;\r\n background: rgba(15, 23, 42, 0.5);\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 16px;\r\n z-index: 200;\r\n}\r\n\r\n.modal-backdrop[hidden] {\r\n display: none;\r\n}\r\n\r\n.modal {\r\n width: min(560px, 100%);\r\n background: #fff;\r\n border-radius: 10px;\r\n box-shadow: 0 20px 40px rgba(15, 23, 42, 0.35);\r\n overflow: hidden;\r\n}\r\n\r\n.modal__header {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: 10px;\r\n padding: 16px 18px;\r\n border-bottom: 1px solid var(--c-border);\r\n}\r\n\r\n.modal__header h3 {\r\n margin: 0;\r\n font-size: 18px;\r\n color: var(--c-text-strong);\r\n}\r\n\r\n.modal__body {\r\n padding: 16px 18px 18px;\r\n}\r\n\r\n.status-pill {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n border: 1px solid #fed7d7;\r\n background: #fff5f5;\r\n color: #9b2c2c;\r\n padding: 2px 8px;\r\n border-radius: 999px;\r\n font-size: 12px;\r\n font-weight: 600;\r\n}\r\n\r\n.status-pill.is-active {\r\n border-color: #b7ebcf;\r\n background: #f0fff6;\r\n color: #0f6b39;\r\n}\r\n\r\n.table-row-actions {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 6px;\r\n flex-wrap: wrap;\r\n}\r\n\r\n.table-row-actions form {\r\n margin: 0;\r\n}\r\n\r\n.table-list {\r\n display: grid;\r\n gap: 14px;\r\n}\r\n\r\n.table-list__header {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n gap: 12px;\r\n flex-wrap: wrap;\r\n}\r\n\r\n.table-list__left {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 8px;\r\n flex-wrap: wrap;\r\n}\r\n\r\n.table-list-header-actions {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 10px;\r\n flex-wrap: wrap;\r\n}\r\n\r\n.js-filter-toggle-btn.is-active {\r\n border-color: #cbd5e0;\r\n background: #edf2ff;\r\n color: var(--c-primary-dark);\r\n}\r\n\r\n.table-filter-badge {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n min-width: 18px;\r\n height: 18px;\r\n padding: 0 5px;\r\n font-size: 11px;\r\n font-weight: 700;\r\n color: #fff;\r\n background: var(--c-primary);\r\n border-radius: 999px;\r\n}\r\n\r\n.table-filters-wrapper {\r\n display: none;\r\n}\r\n\r\n.table-filters-wrapper.is-open {\r\n display: block;\r\n}\r\n\r\n.table-list-filters {\r\n display: grid;\r\n gap: 12px;\r\n grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));\r\n}\r\n\r\n.table-col-toggle-wrapper {\r\n position: relative;\r\n}\r\n\r\n.table-col-toggle-dropdown {\r\n display: none;\r\n position: absolute;\r\n right: 0;\r\n top: calc(100% + 6px);\r\n z-index: 30;\r\n width: 260px;\r\n max-height: 360px;\r\n overflow: auto;\r\n border: 1px solid var(--c-border);\r\n border-radius: 10px;\r\n background: #fff;\r\n box-shadow: 0 10px 25px rgba(15, 23, 42, 0.12);\r\n}\r\n\r\n.table-col-toggle-dropdown.is-open {\r\n display: block;\r\n}\r\n\r\n.table-col-toggle-header {\r\n padding: 10px 12px;\r\n border-bottom: 1px solid var(--c-border);\r\n font-size: 12px;\r\n font-weight: 700;\r\n color: var(--c-muted);\r\n}\r\n\r\n.table-col-toggle-item {\r\n display: flex;\r\n align-items: center;\r\n gap: 10px;\r\n padding: 8px 12px;\r\n font-size: 13px;\r\n color: var(--c-text-strong);\r\n}\r\n\r\n.table-col-toggle-item:hover {\r\n background: #f8fafc;\r\n}\r\n\r\n.table-col-toggle-footer {\r\n border-top: 1px solid var(--c-border);\r\n padding: 8px 12px;\r\n}\r\n\r\n.table-col-hidden {\r\n display: none;\r\n}\r\n\r\n.table-col-switch {\r\n position: relative;\r\n display: inline-block;\r\n width: 34px;\r\n min-width: 34px;\r\n height: 18px;\r\n}\r\n\r\n.table-col-switch input {\r\n opacity: 0;\r\n width: 0;\r\n height: 0;\r\n position: absolute;\r\n}\r\n\r\n.table-col-switch-slider {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background: #cbd5e1;\r\n border-radius: 999px;\r\n transition: background-color 0.2s ease;\r\n}\r\n\r\n.table-col-switch-slider::before {\r\n content: \"\";\r\n position: absolute;\r\n height: 14px;\r\n width: 14px;\r\n left: 2px;\r\n bottom: 2px;\r\n background: #fff;\r\n border-radius: 50%;\r\n transition: transform 0.2s ease;\r\n}\r\n\r\n.table-col-switch input:checked + .table-col-switch-slider {\r\n background: #16a34a;\r\n}\r\n\r\n.table-col-switch input:checked + .table-col-switch-slider::before {\r\n transform: translateX(16px);\r\n}\r\n\r\n.table-sort-link {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 6px;\r\n color: var(--c-text-strong);\r\n text-decoration: none;\r\n}\r\n\r\n.table-sort-link:hover {\r\n color: var(--c-primary-dark);\r\n}\r\n\r\n.table-sort-icon.is-muted {\r\n color: #a0aec0;\r\n}\r\n\r\n.table-list__footer {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: 10px;\r\n flex-wrap: wrap;\r\n}\r\n\r\n.table-list-per-page-form {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 8px;\r\n}\r\n\r\n.table-list-per-page-form .form-control {\r\n min-width: 90px;\r\n}\r\n\r\n.table-select-col {\r\n width: 44px;\r\n text-align: center;\r\n}\r\n\r\n.table-select-toggle {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.table-select-toggle input[type=\"checkbox\"] {\r\n width: 16px;\r\n height: 16px;\r\n}\r\n\r\n.orders-page {\r\n .orders-head {\r\n background: linear-gradient(120deg, #f8fbff 0%, #eef5ff 100%);\r\n border: 1px solid #dbe7fb;\r\n }\r\n\r\n .table-list {\r\n border: 1px solid #dde5f2;\r\n border-radius: 12px;\r\n box-shadow: 0 6px 16px rgba(20, 44, 86, 0.08);\r\n }\r\n\r\n .table-list__header {\r\n padding: 10px 6px 2px;\r\n }\r\n\r\n .table-list-filters {\r\n padding: 6px 6px 2px;\r\n border-top: 1px solid #ebf0f7;\r\n border-bottom: 1px solid #ebf0f7;\r\n background: #f9fbff;\r\n }\r\n\r\n .table-wrap {\r\n border-radius: 10px;\r\n overflow: hidden;\r\n border: 1px solid #e7edf6;\r\n }\r\n\r\n .table thead th {\r\n background: #f3f7fd;\r\n color: #30435f;\r\n font-size: 12px;\r\n text-transform: uppercase;\r\n letter-spacing: 0.03em;\r\n }\r\n\r\n .table tbody td {\r\n vertical-align: middle;\r\n padding-top: 10px;\r\n padding-bottom: 10px;\r\n border-bottom-color: #edf2f8;\r\n }\r\n\r\n .table tbody tr:hover td {\r\n background: #f9fcff;\r\n }\r\n}\r\n\r\n.orders-list-page {\r\n padding: 10px;\r\n margin-bottom: 10px;\r\n}\r\n\r\n.orders-head {\r\n display: flex;\r\n align-items: flex-start;\r\n justify-content: space-between;\r\n gap: 12px;\r\n flex-wrap: wrap;\r\n}\r\n\r\n.orders-stats {\r\n display: inline-grid;\r\n grid-template-columns: repeat(3, minmax(86px, auto));\r\n gap: 8px;\r\n}\r\n\r\n.orders-stat {\r\n border: 1px solid #d8e2f0;\r\n background: #f8fbff;\r\n border-radius: 8px;\r\n padding: 6px 8px;\r\n line-height: 1.15;\r\n\r\n &__label {\r\n display: block;\r\n color: #5f6f83;\r\n font-size: 11px;\r\n margin-bottom: 2px;\r\n }\r\n\r\n &__value {\r\n color: #12233a;\r\n font-size: 16px;\r\n font-weight: 700;\r\n }\r\n}\r\n\r\n.orders-ref {\r\n display: grid;\r\n gap: 2px;\r\n min-width: 170px;\r\n\r\n &__main {\r\n font-weight: 700;\r\n color: #0f1f35;\r\n font-size: 14px;\r\n }\r\n\r\n &__meta {\r\n display: inline-flex;\r\n flex-wrap: wrap;\r\n gap: 4px 10px;\r\n color: #64748b;\r\n font-size: 12px;\r\n }\r\n}\r\n\r\n.orders-buyer {\r\n display: grid;\r\n gap: 2px;\r\n\r\n &__name {\r\n color: #0f172a;\r\n font-weight: 600;\r\n font-size: 14px;\r\n }\r\n\r\n &__meta {\r\n display: inline-flex;\r\n flex-wrap: wrap;\r\n gap: 4px 10px;\r\n color: #64748b;\r\n font-size: 12px;\r\n }\r\n}\r\n\r\n.orders-status-wrap {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 5px;\r\n flex-wrap: wrap;\r\n}\r\n\r\n.order-tag {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n border: 1px solid #d8e1ef;\r\n background: #f8fafc;\r\n color: #334155;\r\n border-radius: 999px;\r\n padding: 2px 8px;\r\n font-size: 12px;\r\n font-weight: 700;\r\n line-height: 1.1;\r\n\r\n &.is-info {\r\n border-color: #bfdbfe;\r\n background: #eff6ff;\r\n color: #1d4ed8;\r\n }\r\n\r\n &.is-success {\r\n border-color: #bbf7d0;\r\n background: #f0fdf4;\r\n color: #166534;\r\n }\r\n\r\n &.is-danger {\r\n border-color: #fecaca;\r\n background: #fef2f2;\r\n color: #b91c1c;\r\n }\r\n\r\n &.is-warn {\r\n border-color: #fde68a;\r\n background: #fffbeb;\r\n color: #92400e;\r\n }\r\n\r\n &.is-cod {\r\n border-color: #f9a8d4;\r\n background: #fdf2f8;\r\n color: #9d174d;\r\n }\r\n\r\n &.is-unpaid {\r\n border-color: #fca5a5;\r\n background: #fef2f2;\r\n color: #b91c1c;\r\n }\r\n}\r\n\r\n.orders-mini {\r\n font-size: 14px;\r\n color: #223247;\r\n line-height: 1.25;\r\n\r\n &__delivery {\r\n font-size: 12px;\r\n color: #64748b;\r\n margin-bottom: 2px;\r\n max-width: 160px;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n }\r\n}\r\n\r\n.orders-products {\r\n display: grid;\r\n gap: 4px;\r\n min-width: 240px;\r\n\r\n &__meta,\r\n &__more {\r\n font-size: 12px;\r\n color: #64748b;\r\n }\r\n}\r\n\r\n.orders-product {\r\n display: grid;\r\n grid-template-columns: 48px 1fr;\r\n gap: 6px;\r\n align-items: center;\r\n\r\n &__thumb {\r\n width: 48px;\r\n height: 48px;\r\n border-radius: 4px;\r\n border: 1px solid #dbe3ef;\r\n object-fit: cover;\r\n background: #fff;\r\n }\r\n\r\n &__thumb--empty {\r\n display: inline-block;\r\n background: #eef2f7;\r\n border-style: dashed;\r\n }\r\n\r\n &__txt {\r\n min-width: 0;\r\n display: grid;\r\n gap: 1px;\r\n }\r\n\r\n &__name {\r\n font-size: 14px;\r\n color: #0f172a;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n }\r\n\r\n &__qty {\r\n font-size: 12px;\r\n color: #64748b;\r\n }\r\n}\r\n\r\n.orders-image-hover-wrap {\r\n position: relative;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: zoom-in;\r\n}\r\n\r\n.orders-image-hover-popup {\r\n display: none;\r\n position: fixed;\r\n left: auto;\r\n top: auto;\r\n width: 350px;\r\n max-height: 350px;\r\n object-fit: contain;\r\n border-radius: 8px;\r\n background: #fff;\r\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);\r\n border: 1px solid #dfe3ea;\r\n z-index: 100;\r\n pointer-events: none;\r\n}\r\n\r\n.orders-image-hover-wrap:hover .orders-image-hover-popup {\r\n display: block;\r\n}\r\n\r\n.activity-type-badge {\r\n display: inline-block;\r\n padding: 2px 8px;\r\n border-radius: 4px;\r\n font-size: 12px;\r\n font-weight: 500;\r\n white-space: nowrap;\r\n background: #e2e8f0;\r\n color: #334155;\r\n\r\n &--status_change { background: #dbeafe; color: #1e40af; }\r\n &--payment { background: #dcfce7; color: #166534; }\r\n &--invoice { background: #fef3c7; color: #92400e; }\r\n &--shipment { background: #e0e7ff; color: #3730a3; }\r\n &--message { background: #f3e8ff; color: #6b21a8; }\r\n &--document { background: #fce7f3; color: #9d174d; }\r\n &--import { background: #f1f5f9; color: #475569; }\r\n &--note { background: #ecfdf5; color: #065f46; }\r\n}\r\n\r\n.text-nowrap {\r\n white-space: nowrap;\r\n}\r\n\r\n.orders-money {\r\n display: grid;\r\n gap: 2px;\r\n\r\n &__main {\r\n color: #0f172a;\r\n font-weight: 700;\r\n font-size: 14px;\r\n }\r\n\r\n &__meta {\r\n color: #64748b;\r\n font-size: 12px;\r\n }\r\n}\r\n\r\n.table-list[data-table-list-id=\"orders\"] {\r\n gap: 8px;\r\n\r\n .table-list__header {\r\n padding: 2px 0 0;\r\n }\r\n\r\n .table-list-filters {\r\n gap: 8px;\r\n grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));\r\n }\r\n\r\n .table th,\r\n .table td {\r\n padding: 6px 8px;\r\n }\r\n\r\n .table thead th {\r\n font-size: 12px;\r\n text-transform: uppercase;\r\n letter-spacing: 0.02em;\r\n white-space: nowrap;\r\n }\r\n\r\n .table tbody td {\r\n vertical-align: top;\r\n font-size: 14px;\r\n line-height: 1.25;\r\n }\r\n}\r\n\r\n.order-show-layout {\r\n display: grid;\r\n grid-template-columns: 220px minmax(0, 1fr);\r\n gap: 12px;\r\n align-items: start;\r\n}\r\n\r\n.order-statuses-side {\r\n position: sticky;\r\n top: 60px;\r\n padding: 10px;\r\n\r\n &__title {\r\n font-size: 13px;\r\n font-weight: 700;\r\n color: #0f172a;\r\n margin-bottom: 8px;\r\n }\r\n}\r\n\r\n.order-status-group {\r\n margin-bottom: 10px;\r\n\r\n &__name {\r\n font-size: 12px;\r\n color: #475569;\r\n font-weight: 700;\r\n margin-bottom: 5px;\r\n }\r\n}\r\n\r\n.order-status-row {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: 8px;\r\n padding: 4px 6px;\r\n border-radius: 6px;\r\n color: #334155;\r\n font-size: 12px;\r\n text-decoration: none;\r\n\r\n &__count {\r\n min-width: 24px;\r\n text-align: center;\r\n border-radius: 999px;\r\n background: var(--status-color, #64748b);\r\n padding: 1px 6px;\r\n font-weight: 700;\r\n font-size: 11px;\r\n color: #ffffff;\r\n }\r\n}\r\n\r\n.order-status-row:hover {\r\n background: #f1f5f9;\r\n}\r\n\r\n.order-status-row.is-active {\r\n background: rgba(15, 23, 42, 0.06);\r\n color: #0f172a;\r\n font-weight: 700;\r\n}\r\n\r\n.order-show-main {\r\n min-width: 0;\r\n}\r\n\r\n.order-details-actions {\r\n display: inline-flex;\r\n flex-wrap: wrap;\r\n justify-content: flex-end;\r\n gap: 6px;\r\n}\r\n\r\n.order-details-page {\r\n padding: 12px;\r\n}\r\n\r\n.order-details-head {\r\n display: flex;\r\n align-items: flex-start;\r\n justify-content: space-between;\r\n gap: 12px;\r\n flex-wrap: wrap;\r\n}\r\n\r\n.order-back-link {\r\n color: #475569;\r\n text-decoration: none;\r\n font-weight: 600;\r\n}\r\n\r\n.order-back-link:hover {\r\n color: #1d4ed8;\r\n}\r\n\r\n.order-details-sub {\r\n display: inline-flex;\r\n gap: 10px;\r\n flex-wrap: wrap;\r\n color: #64748b;\r\n font-size: 12px;\r\n}\r\n\r\n.order-details-pill {\r\n border-radius: 999px;\r\n padding: 5px 10px;\r\n background: #eef6ff;\r\n border: 1px solid #cfe2ff;\r\n color: #1d4ed8;\r\n font-size: 12px;\r\n font-weight: 700;\r\n}\r\n\r\n.order-status-change {\r\n display: flex;\r\n align-items: center;\r\n gap: 10px;\r\n flex-wrap: wrap;\r\n}\r\n\r\n.order-status-change__form {\r\n display: flex;\r\n align-items: center;\r\n gap: 6px;\r\n}\r\n\r\n.order-status-change__select {\r\n min-width: 180px;\r\n}\r\n\r\n.order-details-tabs {\r\n display: flex;\r\n gap: 6px;\r\n flex-wrap: wrap;\r\n}\r\n\r\n.order-details-tab {\r\n border: 1px solid #d6deea;\r\n border-radius: 8px;\r\n padding: 5px 10px;\r\n color: #475569;\r\n font-size: 12px;\r\n background: #f8fafc;\r\n cursor: pointer;\r\n}\r\n\r\n.order-details-tab.is-active {\r\n border-color: #bfdbfe;\r\n color: #1d4ed8;\r\n background: #eff6ff;\r\n font-weight: 700;\r\n}\r\n\r\n.order-item-cell {\r\n display: grid;\r\n grid-template-columns: 44px 1fr;\r\n gap: 8px;\r\n align-items: center;\r\n min-width: 260px;\r\n}\r\n\r\n.order-item-thumb {\r\n width: 44px;\r\n height: 44px;\r\n border-radius: 6px;\r\n border: 1px solid #dbe3ef;\r\n object-fit: cover;\r\n}\r\n\r\n.order-item-thumb--empty {\r\n display: inline-block;\r\n background: #eef2f7;\r\n border-style: dashed;\r\n}\r\n\r\n.order-item-name {\r\n font-weight: 600;\r\n color: #0f172a;\r\n}\r\n\r\n.order-grid-2 {\r\n display: grid;\r\n grid-template-columns: repeat(2, minmax(0, 1fr));\r\n gap: 12px;\r\n}\r\n\r\n.order-grid-3 {\r\n display: grid;\r\n grid-template-columns: repeat(3, minmax(0, 1fr));\r\n gap: 12px;\r\n}\r\n\r\n.order-kv {\r\n margin: 0;\r\n display: grid;\r\n grid-template-columns: 150px 1fr;\r\n gap: 6px 10px;\r\n font-size: 12px;\r\n}\r\n\r\n.payment-summary {\r\n display: grid;\r\n gap: 6px;\r\n max-width: 420px;\r\n}\r\n\r\n.payment-summary__row {\r\n display: flex;\r\n align-items: center;\r\n gap: 10px;\r\n font-size: 12px;\r\n}\r\n\r\n.payment-summary__label {\r\n width: 150px;\r\n flex-shrink: 0;\r\n color: #64748b;\r\n}\r\n\r\n.payment-summary__value {\r\n font-weight: 600;\r\n color: #0f172a;\r\n}\r\n\r\n.order-kv dt {\r\n color: #64748b;\r\n}\r\n\r\n.order-kv dd {\r\n margin: 0;\r\n color: #0f172a;\r\n font-weight: 600;\r\n}\r\n\r\n.order-address {\r\n display: grid;\r\n gap: 3px;\r\n font-size: 12px;\r\n color: #0f172a;\r\n}\r\n\r\n.order-events {\r\n display: grid;\r\n gap: 8px;\r\n}\r\n\r\n.order-event {\r\n border: 1px solid #e2e8f0;\r\n border-radius: 8px;\r\n padding: 8px;\r\n background: #fbfdff;\r\n}\r\n\r\n.order-event__head {\r\n color: #64748b;\r\n font-size: 11px;\r\n}\r\n\r\n.order-event__body {\r\n margin-top: 4px;\r\n color: #0f172a;\r\n font-size: 12px;\r\n}\r\n\r\n.order-tab-panel {\r\n display: none;\r\n}\r\n\r\n.order-tab-panel.is-active {\r\n display: block;\r\n}\r\n\r\n.order-empty-placeholder {\r\n border: 1px dashed #cbd5e1;\r\n border-radius: 8px;\r\n min-height: 180px;\r\n background: #f8fafc;\r\n}\r\n\r\n.order-status-badge {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 4px 10px;\r\n border-radius: 999px;\r\n font-size: 12px;\r\n font-weight: 700;\r\n border: 1px solid #cbd5e1;\r\n color: #334155;\r\n background: #f8fafc;\r\n\r\n &.is-info {\r\n border-color: #bfdbfe;\r\n background: #eff6ff;\r\n color: #1d4ed8;\r\n }\r\n\r\n &.is-success {\r\n border-color: #bbf7d0;\r\n background: #f0fdf4;\r\n color: #166534;\r\n }\r\n\r\n &.is-danger {\r\n border-color: #fecaca;\r\n background: #fef2f2;\r\n color: #b91c1c;\r\n }\r\n\r\n &.is-warn {\r\n border-color: #fde68a;\r\n background: #fffbeb;\r\n color: #92400e;\r\n }\r\n\r\n &.is-empty {\r\n color: #94a3b8;\r\n }\r\n}\r\n\r\n.order-buyer {\r\n display: grid;\r\n gap: 2px;\r\n\r\n &__name {\r\n color: #0f172a;\r\n font-weight: 600;\r\n }\r\n\r\n &__email {\r\n color: #64748b;\r\n font-size: 12px;\r\n }\r\n}\r\n.table-inline-action {\r\n display: inline-block;\r\n margin-right: 6px;\r\n}\r\n\r\n.product-name-cell {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 10px;\r\n}\r\n\r\n.product-name-thumb {\r\n width: 60px;\r\n height: 60px;\r\n border-radius: 6px;\r\n object-fit: cover;\r\n border: 1px solid var(--c-border);\r\n background: #f8fafc;\r\n}\r\n\r\n.product-name-thumb--empty {\r\n display: inline-block;\r\n width: 60px;\r\n height: 60px;\r\n border-radius: 6px;\r\n border: 1px dashed #cbd5e0;\r\n background: #f8fafc;\r\n}\r\n\r\n.product-name-thumb-btn {\r\n border: 0;\r\n padding: 0;\r\n background: transparent;\r\n cursor: pointer;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.product-name-thumb-btn:focus-visible {\r\n outline: none;\r\n box-shadow: var(--focus-ring);\r\n border-radius: 8px;\r\n}\r\n\r\n.modal--image-preview {\r\n width: min(760px, 100%);\r\n}\r\n\r\n.product-image-preview__img {\r\n display: block;\r\n width: 100%;\r\n max-height: 70vh;\r\n object-fit: contain;\r\n border-radius: 8px;\r\n background: #f8fafc;\r\n}\r\n\r\n.product-images-grid {\r\n display: grid;\r\n grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));\r\n gap: 12px;\r\n}\r\n\r\n.product-image-card {\r\n border: 1px solid #dfe3ea;\r\n border-radius: 10px;\r\n padding: 10px;\r\n background: #fff;\r\n}\r\n\r\n.product-image-card__thumb-wrap {\r\n position: relative;\r\n border-radius: 8px;\r\n overflow: hidden;\r\n background: #f2f5f8;\r\n}\r\n\r\n.product-image-card__thumb {\r\n width: 100%;\r\n height: 160px;\r\n object-fit: cover;\r\n display: block;\r\n}\r\n\r\n.product-image-card__thumb.is-empty {\r\n height: 160px;\r\n display: grid;\r\n place-items: center;\r\n color: #6b7785;\r\n font-size: 12px;\r\n}\r\n\r\n.product-image-card__badge {\r\n display: none;\r\n position: absolute;\r\n top: 8px;\r\n left: 8px;\r\n background: #1f7a43;\r\n color: #fff;\r\n padding: 3px 8px;\r\n border-radius: 999px;\r\n font-size: 11px;\r\n}\r\n\r\n.product-image-card.is-main .product-image-card__badge {\r\n display: inline-block;\r\n}\r\n\r\n.product-image-card__meta {\r\n margin-top: 8px;\r\n font-size: 11px;\r\n line-height: 1.25;\r\n color: #5f6b79;\r\n overflow-wrap: anywhere;\r\n}\r\n\r\n.product-image-card__actions {\r\n margin-top: 10px;\r\n display: grid;\r\n grid-template-columns: 1fr;\r\n gap: 8px;\r\n}\r\n\r\n.product-image-card__actions .btn {\r\n min-height: 34px;\r\n font-size: 12px;\r\n line-height: 1.2;\r\n padding: 6px 10px;\r\n}\r\n\r\n.product-links-search-form {\r\n display: grid;\r\n gap: 12px;\r\n grid-template-columns: minmax(220px, 320px) minmax(220px, 1fr) auto;\r\n align-items: end;\r\n}\r\n\r\n.product-links-head {\r\n display: grid;\r\n gap: 8px;\r\n grid-template-columns: repeat(3, minmax(0, 1fr));\r\n}\r\n\r\n.product-tabs-nav {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n flex-wrap: wrap;\r\n}\r\n\r\n.product-links-inline-form {\r\n display: grid;\r\n gap: 8px;\r\n grid-template-columns: minmax(140px, 1fr) minmax(140px, 1fr) auto;\r\n align-items: center;\r\n}\r\n\r\n.product-links-actions-row {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n flex-wrap: nowrap;\r\n}\r\n\r\n.product-links-actions-row .product-links-relink-form {\r\n flex: 1 1 auto;\r\n}\r\n\r\n.product-links-unlink-form {\r\n margin: 0;\r\n flex: 0 0 auto;\r\n}\r\n\r\n.product-link-status-cell {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 6px;\r\n}\r\n\r\n.product-link-alert-indicator {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 18px;\r\n height: 18px;\r\n border-radius: 999px;\r\n border: 1px solid #f59e0b;\r\n background: #fffbeb;\r\n color: #b45309;\r\n font-size: 12px;\r\n font-weight: 700;\r\n cursor: help;\r\n}\r\n\r\n.product-link-events-list {\r\n margin: 0;\r\n padding: 0;\r\n list-style: none;\r\n display: grid;\r\n gap: 4px;\r\n}\r\n\r\n.product-link-events-list li {\r\n display: grid;\r\n gap: 2px;\r\n}\r\n\r\n.product-link-events-type {\r\n font-weight: 600;\r\n color: var(--c-text-strong);\r\n}\r\n\r\n.product-link-events-date {\r\n color: var(--c-muted);\r\n font-size: 12px;\r\n}\r\n\r\n.product-show-images-grid {\r\n display: grid;\r\n grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));\r\n gap: 12px;\r\n}\r\n\r\n.product-show-image-card {\r\n border: 1px solid var(--c-border);\r\n border-radius: 10px;\r\n background: #fff;\r\n padding: 10px;\r\n overflow: hidden;\r\n\r\n &__meta {\r\n display: flex;\r\n align-items: flex-start;\r\n justify-content: space-between;\r\n gap: 8px;\r\n min-width: 0;\r\n }\r\n}\r\n\r\n.product-show-image-path {\r\n font-size: 12px;\r\n min-width: 0;\r\n overflow: hidden;\r\n\r\n summary {\r\n cursor: pointer;\r\n color: var(--c-muted, #888);\r\n list-style: none;\r\n user-select: none;\r\n white-space: nowrap;\r\n\r\n &::-webkit-details-marker {\r\n display: none;\r\n }\r\n\r\n &::after {\r\n content: ' ▾';\r\n }\r\n }\r\n\r\n &[open] summary::after {\r\n content: ' ▴';\r\n }\r\n\r\n &__url {\r\n margin-top: 4px;\r\n word-break: break-all;\r\n overflow-wrap: break-word;\r\n font-size: 11px;\r\n }\r\n}\r\n\r\n.product-show-image {\r\n width: 100%;\r\n max-height: 260px;\r\n object-fit: cover;\r\n border-radius: 8px;\r\n border: 1px solid #d9e0ea;\r\n}\r\n\r\n.shipment-grid {\r\n display: grid;\r\n grid-template-columns: repeat(2, minmax(0, 1fr));\r\n gap: 12px;\r\n}\r\n\r\n.searchable-select {\r\n position: relative;\r\n\r\n &__trigger {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n cursor: pointer;\r\n user-select: none;\r\n min-height: 34px;\r\n\r\n &::after {\r\n content: '';\r\n width: 0;\r\n height: 0;\r\n border-left: 4px solid transparent;\r\n border-right: 4px solid transparent;\r\n border-top: 5px solid var(--c-text-muted, #6b7280);\r\n margin-left: 8px;\r\n flex-shrink: 0;\r\n }\r\n\r\n &--placeholder {\r\n color: var(--c-text-muted, #6b7280);\r\n }\r\n }\r\n\r\n &__dropdown {\r\n display: none;\r\n position: absolute;\r\n left: 0;\r\n right: 0;\r\n top: 100%;\r\n z-index: 50;\r\n max-height: 280px;\r\n overflow: auto;\r\n background: #fff;\r\n border: 1px solid var(--c-border);\r\n border-top: 0;\r\n border-radius: 0 0 8px 8px;\r\n box-shadow: 0 8px 20px rgba(15, 23, 42, 0.12);\r\n\r\n &.is-open {\r\n display: block;\r\n }\r\n }\r\n\r\n &__search {\r\n position: sticky;\r\n top: 0;\r\n border: none !important;\r\n border-bottom: 1px solid var(--c-border) !important;\r\n border-radius: 0 !important;\r\n box-shadow: none !important;\r\n font-size: 13px;\r\n background: #fff;\r\n z-index: 1;\r\n }\r\n\r\n &__option {\r\n padding: 7px 10px;\r\n font-size: 13px;\r\n cursor: pointer;\r\n color: var(--c-text-strong);\r\n\r\n &:hover {\r\n background: #f1f5f9;\r\n }\r\n\r\n &.is-selected {\r\n background: #edf2ff;\r\n font-weight: 600;\r\n }\r\n }\r\n}\r\n\r\n.flash {\r\n padding: 10px 14px;\r\n border-radius: 8px;\r\n font-size: 13px;\r\n font-weight: 500;\r\n\r\n &--success {\r\n background: #f0fdf4;\r\n border: 1px solid #bbf7d0;\r\n color: #166534;\r\n }\r\n\r\n &--error {\r\n background: #fef2f2;\r\n border: 1px solid #fecaca;\r\n color: #b91c1c;\r\n }\r\n}\r\n\r\n.content-tabs-card {\r\n margin-top: 0;\r\n}\r\n\r\n.content-tabs-nav {\r\n display: flex;\r\n gap: 4px;\r\n border-bottom: 2px solid var(--c-border);\r\n margin-bottom: 16px;\r\n flex-wrap: wrap;\r\n}\r\n\r\n.content-tab-btn {\r\n padding: 8px 16px;\r\n border: none;\r\n background: none;\r\n cursor: pointer;\r\n font-size: 14px;\r\n font-weight: 500;\r\n color: var(--c-text-muted, #6b7280);\r\n border-bottom: 2px solid transparent;\r\n margin-bottom: -2px;\r\n border-radius: 4px 4px 0 0;\r\n transition: color 0.15s, border-color 0.15s;\r\n\r\n &:hover {\r\n color: var(--c-text-strong, #111827);\r\n }\r\n\r\n &.is-active {\r\n color: var(--c-primary, #2563eb);\r\n border-bottom-color: var(--c-primary, #2563eb);\r\n }\r\n}\r\n\r\n.content-tab-panel {\r\n display: none;\r\n\r\n &.is-active {\r\n display: block;\r\n }\r\n}\r\n\r\n.shoppro-tabs-toolbar {\r\n display: flex;\r\n align-items: flex-end;\r\n justify-content: space-between;\r\n gap: 10px;\r\n margin-bottom: 10px;\r\n flex-wrap: wrap;\r\n}\r\n\r\n.shoppro-tabs-toolbar__field {\r\n margin: 0;\r\n min-width: 260px;\r\n max-width: 420px;\r\n flex: 1 1 320px;\r\n}\r\n\r\n.shoppro-tabs-toolbar__field .form-control {\r\n width: 100%;\r\n}\r\n\r\n.shoppro-tabs-toolbar__actions {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 8px;\r\n}\r\n\r\n.dm-carrier-select {\r\n min-width: 140px;\r\n}\r\n\r\n.dm-service-wrap {\r\n min-width: 200px;\r\n\r\n .dm-inpost-panel,\r\n .dm-apaczka-panel {\r\n .form-control {\r\n width: 100%;\r\n }\r\n }\r\n}\r\n\r\n.integration-settings-group {\r\n grid-column: 1 / -1;\r\n border: 1px solid var(--c-border);\r\n border-radius: 10px;\r\n background: #f8fbff;\r\n padding: 10px;\r\n}\r\n\r\n.integration-settings-group__head {\r\n margin-bottom: 8px;\r\n padding: 4px 8px;\r\n border-left: 3px solid var(--c-primary, #2563eb);\r\n background: #eef4ff;\r\n border-radius: 6px;\r\n}\r\n\r\n.integration-settings-group__title {\r\n margin: 0;\r\n font-size: 14px;\r\n font-weight: 700;\r\n letter-spacing: 0.01em;\r\n color: #1e3a8a;\r\n}\r\n\r\n.integration-settings-group__desc {\r\n margin: 4px 0 0;\r\n color: #4b5563;\r\n}\r\n\r\n.integration-settings-group__grid {\r\n display: grid;\r\n grid-template-columns: repeat(2, minmax(0, 1fr));\r\n gap: 10px 12px;\r\n align-items: start;\r\n}\r\n\r\n.integration-settings-group__full {\r\n grid-column: 1 / -1;\r\n}\r\n\r\n.integration-settings-group__grid .form-field {\r\n margin: 0;\r\n align-self: start;\r\n}\r\n\r\n.integration-settings-group__grid .form-control {\r\n min-height: 34px;\r\n height: 34px;\r\n}\r\n\r\n.integration-settings-group__grid input[type='date'].form-control {\r\n line-height: 1.2;\r\n}\r\n\r\n.integration-settings-checkboxes {\r\n border: 0;\r\n padding: 0;\r\n margin: 0;\r\n}\r\n\r\n.integration-settings-checkboxes .field-label {\r\n display: block;\r\n margin-bottom: 2px;\r\n}\r\n\r\n.integration-settings-checkboxes__list {\r\n display: grid;\r\n grid-template-columns: repeat(2, minmax(0, 1fr));\r\n gap: 6px 12px;\r\n}\r\n\r\n.integration-settings-checkboxes__item {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 6px;\r\n font-size: 13px;\r\n color: #334155;\r\n}\r\n\r\n@media (max-width: 768px) {\r\n .app-shell {\r\n flex-direction: column;\r\n }\r\n\r\n .sidebar {\r\n width: 100% !important;\r\n min-width: 0 !important;\r\n border-right: 0;\r\n border-bottom: 1px solid #243041;\r\n padding: 14px;\r\n overflow-x: auto;\r\n }\r\n\r\n .sidebar__brand {\r\n margin: 0 0 10px;\r\n font-size: 22px;\r\n }\r\n\r\n .sidebar__collapse-btn {\r\n display: none;\r\n }\r\n\r\n .sidebar__nav {\r\n display: flex;\r\n gap: 8px;\r\n overflow-x: auto;\r\n }\r\n\r\n .sidebar__link {\r\n white-space: nowrap;\r\n }\r\n\r\n .topbar {\r\n padding: 0 14px;\r\n }\r\n\r\n .container {\r\n margin-top: 16px;\r\n width: calc(100% - 16px);\r\n margin-left: 8px;\r\n margin-right: 8px;\r\n padding: 0 3px 12px;\r\n }\r\n\r\n .settings-grid {\r\n grid-template-columns: 1fr;\r\n }\r\n\r\n .page-head {\r\n flex-direction: column;\r\n align-items: flex-start;\r\n }\r\n\r\n .orders-stats {\r\n grid-template-columns: 1fr;\r\n width: 100%;\r\n }\r\n\r\n .order-show-layout {\r\n grid-template-columns: 1fr;\r\n }\r\n\r\n .order-statuses-side {\r\n position: static;\r\n top: auto;\r\n }\r\n\r\n .order-details-actions {\r\n justify-content: flex-start;\r\n }\r\n\r\n .order-grid-2,\r\n .order-grid-3 {\r\n grid-template-columns: 1fr;\r\n }\r\n\r\n .order-kv {\r\n grid-template-columns: 1fr;\r\n gap: 2px;\r\n }\r\n\r\n .filters-grid,\r\n .form-grid,\r\n .form-grid-2,\r\n .form-grid-3,\r\n .form-grid-4,\r\n .shipment-grid,\r\n .statuses-form,\r\n .statuses-inline-form,\r\n .table-list-filters,\r\n .product-links-search-form,\r\n .product-links-inline-form {\r\n grid-template-columns: 1fr;\r\n }\r\n\r\n .statuses-dnd-item__content {\r\n display: block;\r\n }\r\n\r\n .statuses-inline-delete {\r\n margin-top: 6px;\r\n }\r\n\r\n .filters-actions {\r\n align-items: center;\r\n }\r\n\r\n .table-list__header,\r\n .table-list__footer {\r\n align-items: flex-start;\r\n }\r\n\r\n .product-links-head {\r\n grid-template-columns: 1fr;\r\n }\r\n\r\n .integration-settings-group__grid {\r\n grid-template-columns: 1fr;\r\n }\r\n\r\n .integration-settings-checkboxes__list {\r\n grid-template-columns: 1fr;\r\n }\r\n\r\n .card {\r\n padding: 12px;\r\n }\r\n\r\n .modal--image-preview {\r\n width: min(92vw, 100%);\r\n }\r\n}\r\n\r\n"]} \ No newline at end of file diff --git a/resources/scss/app.scss b/resources/scss/app.scss index b6bb8ae..e6ffac6 100644 --- a/resources/scss/app.scss +++ b/resources/scss/app.scss @@ -296,6 +296,10 @@ details[open] > .sidebar__group-toggle .sidebar__toggle-arrow { max-width: 460px; } +.form-field { + margin-bottom: 12px; +} + .section-title { margin: 0; color: var(--c-text-strong); @@ -308,14 +312,27 @@ h3.section-title, h4.section-title { display: flex; align-items: center; - gap: 8px; - font-weight: 400; - padding: 5px 10px; - border-left: 3px solid var(--c-primary); - border-radius: 7px; - background: linear-gradient(180deg, #f4f8ff 0%, #edf3ff 100%); - color: #1e3a8a; - box-shadow: inset 0 0 0 1px #dbe7fb; + gap: 6px; + font-weight: 600; + padding: 6px 0; + border-bottom: 1px solid #e2e8f0; + color: var(--c-primary, #2563eb); + + &::before { + content: '\25A0'; + font-size: 0.55em; + opacity: 0.5; + } +} + +h3.section-title, +h4.section-title { + font-size: 15px; + + &::before { + content: '\25C6'; + font-size: 0.5em; + } } .mt-0 { @@ -2083,18 +2100,16 @@ h4.section-title { .integration-settings-group__head { margin-bottom: 8px; - padding: 4px 8px; - border-left: 3px solid var(--c-primary, #2563eb); - background: #eef4ff; - border-radius: 6px; + padding: 4px 0; + border-bottom: 1px solid #e2e8f0; } .integration-settings-group__title { margin: 0; font-size: 14px; - font-weight: 700; + font-weight: 600; letter-spacing: 0.01em; - color: #1e3a8a; + color: var(--c-text-strong, #1e293b); } .integration-settings-group__desc { diff --git a/resources/scss/login.css b/resources/scss/login.css new file mode 100644 index 0000000..fdf2da4 --- /dev/null +++ b/resources/scss/login.css @@ -0,0 +1,402 @@ +:root { + --c-primary: #6690f4; + --c-primary-dark: #3164db; + --c-bg: #f4f6f9; + --c-surface: #ffffff; + --c-text: #4e5e6a; + --c-text-strong: #2d3748; + --c-muted: #718096; + --c-border: #b0bec5; + --c-danger: #cc0000; + --focus-ring: 0 0 0 3px rgba(102, 144, 244, 0.15); + --shadow-card: 0 1px 4px rgba(0, 0, 0, 0.06); +} + +.btn { + display: inline-flex; + align-items: center; + justify-content: center; + min-height: 34px; + padding: 6px 12px; + border: 1px solid transparent; + border-radius: 8px; + font: inherit; + font-weight: 600; + text-decoration: none; + cursor: pointer; + transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.1s ease; +} + +.btn--primary { + color: #ffffff; + background: var(--c-primary); +} + +.btn--primary:hover { + background: var(--c-primary-dark); +} + +.btn--secondary { + color: var(--c-text-strong); + border-color: var(--c-border); + background: var(--c-surface); +} + +.btn--secondary:hover { + border-color: #cbd5e0; + background: #f8fafc; +} + +.btn--danger { + color: #ffffff; + border-color: #b91c1c; + background: #dc2626; +} + +.btn--danger:hover { + border-color: #991b1b; + background: #b91c1c; +} + +.btn--sm { + min-height: 28px; + padding: 3px 10px; + font-size: 12px; +} + +.btn--block { + width: 100%; +} + +.btn:active { + transform: translateY(1px); +} + +.btn:focus-visible { + outline: none; + box-shadow: var(--focus-ring); + border-color: var(--c-primary); +} + +.form-control { + width: 100%; + min-height: 34px; + border: 1px solid var(--c-border); + border-radius: 8px; + padding: 5px 10px; + font: inherit; + color: var(--c-text-strong); + background: #ffffff; + transition: border-color 0.2s ease, box-shadow 0.2s ease; +} + +.form-control:focus { + outline: none; + border-color: var(--c-primary); + box-shadow: var(--focus-ring); +} + +.input { + min-height: 34px; + border: 1px solid var(--c-border); + border-radius: 8px; + padding: 5px 10px; + font: inherit; + color: var(--c-text-strong); + background: #ffffff; +} + +.input--sm { + min-height: 28px; + padding: 3px 8px; + font-size: 12px; +} + +.flash { + padding: 8px 12px; + border-radius: 6px; + font-size: 13px; +} + +.flash--success { + border: 1px solid #b7ebcf; + background: #f0fff6; + color: #0f6b39; +} + +.flash--error { + border: 1px solid #fed7d7; + background: #fff5f5; + color: var(--c-danger); +} + +.alert { + padding: 12px 14px; + border-radius: 8px; + border: 1px solid transparent; + font-size: 13px; + min-height: 44px; +} + +.alert--danger { + border-color: #fed7d7; + background: #fff5f5; + color: var(--c-danger); +} + +.alert--success { + border-color: #b7ebcf; + background: #f0fff6; + color: #0f6b39; +} + +.alert--warning { + border-color: #f7dd8b; + background: #fff8e8; + color: #815500; +} + +.form-field { + display: grid; + gap: 5px; +} + +.field-label { + color: var(--c-text-strong); + font-size: 13px; + font-weight: 600; +} + +.table-wrap { + width: 100%; + overflow-x: auto; +} +.table-wrap--visible { + overflow: visible !important; + overflow-x: visible !important; +} + +.table { + width: 100%; + border-collapse: collapse; + background: var(--c-surface); +} + +.table th, +.table td { + padding: 10px 12px; + border-bottom: 1px solid var(--c-border); + text-align: left; +} + +.table th { + color: var(--c-text-strong); + font-weight: 700; + background: #f8fafc; +} + +.table--details th { + white-space: nowrap; +} + +.table--details th:first-child, +.table--details td:first-child { + width: 36px; + text-align: center; +} + +.pagination { + display: flex; + align-items: center; + flex-wrap: wrap; + gap: 8px; +} + +.pagination__item { + display: inline-flex; + align-items: center; + justify-content: center; + min-width: 36px; + height: 36px; + padding: 0 10px; + border-radius: 8px; + border: 1px solid var(--c-border); + color: var(--c-text-strong); + background: var(--c-surface); + text-decoration: none; + font-weight: 600; +} + +.pagination__item:hover { + border-color: #cbd5e0; + background: #f8fafc; +} + +.pagination__item.is-active { + border-color: var(--c-primary); + color: var(--c-primary); + background: #edf2ff; +} + +:root { + --shadow-card: 0 20px 50px rgba(22, 34, 58, 0.14); +} + +* { + box-sizing: border-box; +} + +html, +body { + min-height: 100%; +} + +body { + margin: 0; + font-family: "Roboto", "Segoe UI", sans-serif; + color: var(--c-text); + background: var(--c-bg); + overflow-x: hidden; +} + +.bg-orb { + position: fixed; + width: 460px; + height: 460px; + border-radius: 999px; + filter: blur(28px); + z-index: 0; + opacity: 0.45; + pointer-events: none; +} + +.bg-orb-left { + top: -200px; + left: -180px; + background: radial-gradient(circle, rgba(102, 144, 244, 0.48) 0%, rgba(102, 144, 244, 0) 70%); +} + +.bg-orb-right { + right: -200px; + bottom: -220px; + background: radial-gradient(circle, rgba(30, 42, 58, 0.36) 0%, rgba(30, 42, 58, 0) 70%); +} + +.login-page { + min-height: 100vh; + display: grid; + place-items: center; + padding: 32px 20px; + position: relative; + z-index: 1; +} + +.login-card { + width: 100%; + max-width: 430px; + background: var(--c-surface); + border: 1px solid var(--c-border); + border-radius: 12px; + box-shadow: var(--shadow-card); + padding: 34px 30px 28px; + animation: card-enter 420ms ease-out; +} + +.login-header { + margin-bottom: 24px; +} + +.login-badge { + display: inline-block; + margin: 0 0 14px; + padding: 5px 12px; + border-radius: 999px; + border: 1px solid #d9e2ff; + background: #eef2ff; + color: #3f5faf; + font-size: 12px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.06em; +} + +h1 { + margin: 0; + color: var(--c-text-strong); + font-size: clamp(1.6rem, 2.5vw, 1.9rem); + line-height: 1.15; + font-weight: 700; +} + +.login-subtitle { + margin: 10px 0 0; + font-size: 15px; + line-height: 1.55; + color: var(--c-muted); +} + +.login-alert { + margin-bottom: 18px; +} + +.login-alert-placeholder { + opacity: 0.56; +} + +.login-form { + display: grid; + gap: 16px; +} + +.form-field { + display: grid; + gap: 7px; +} + +.field-label { + color: var(--c-text-strong); + font-size: 13px; + font-weight: 600; +} + +.login-form .form-control { + min-height: 46px; + padding: 0 14px; + border-width: 2px; +} + +.login-form .form-control::-moz-placeholder { + color: #cbd5e0; +} + +.login-form .form-control::placeholder { + color: #cbd5e0; +} + +.login-submit { + margin-top: 2px; + font-size: 15px; + min-height: 48px; +} + +@keyframes card-enter { + from { + opacity: 0; + transform: translateY(10px); + } + to { + opacity: 1; + transform: translateY(0); + } +} +@media (max-width: 640px) { + .login-page { + padding: 18px 14px; + } + .login-card { + padding: 24px 20px 20px; + } + h1 { + font-size: 1.55rem; + } +}/*# sourceMappingURL=login.css.map */ \ No newline at end of file diff --git a/resources/scss/login.css.map b/resources/scss/login.css.map new file mode 100644 index 0000000..ea065f4 --- /dev/null +++ b/resources/scss/login.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["shared\\_ui-components.scss","login.css","login.scss"],"names":[],"mappings":"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","file":"login.css","sourcesContent":[":root {\r\n --c-primary: #6690f4;\r\n --c-primary-dark: #3164db;\r\n --c-bg: #f4f6f9;\r\n --c-surface: #ffffff;\r\n --c-text: #4e5e6a;\r\n --c-text-strong: #2d3748;\r\n --c-muted: #718096;\r\n --c-border: #b0bec5;\r\n --c-danger: #cc0000;\r\n --focus-ring: 0 0 0 3px rgba(102, 144, 244, 0.15);\r\n --shadow-card: 0 1px 4px rgba(0, 0, 0, 0.06);\r\n}\r\n\r\n.btn {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n min-height: 34px;\r\n padding: 6px 12px;\r\n border: 1px solid transparent;\r\n border-radius: 8px;\r\n font: inherit;\r\n font-weight: 600;\r\n text-decoration: none;\r\n cursor: pointer;\r\n transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.1s ease;\r\n}\r\n\r\n.btn--primary {\r\n color: #ffffff;\r\n background: var(--c-primary);\r\n}\r\n\r\n.btn--primary:hover {\r\n background: var(--c-primary-dark);\r\n}\r\n\r\n.btn--secondary {\r\n color: var(--c-text-strong);\r\n border-color: var(--c-border);\r\n background: var(--c-surface);\r\n}\r\n\r\n.btn--secondary:hover {\r\n border-color: #cbd5e0;\r\n background: #f8fafc;\r\n}\r\n\r\n.btn--danger {\r\n color: #ffffff;\r\n border-color: #b91c1c;\r\n background: #dc2626;\r\n}\r\n\r\n.btn--danger:hover {\r\n border-color: #991b1b;\r\n background: #b91c1c;\r\n}\r\n\r\n.btn--sm {\r\n min-height: 28px;\r\n padding: 3px 10px;\r\n font-size: 12px;\r\n}\r\n\r\n.btn--block {\r\n width: 100%;\r\n}\r\n\r\n.btn:active {\r\n transform: translateY(1px);\r\n}\r\n\r\n.btn:focus-visible {\r\n outline: none;\r\n box-shadow: var(--focus-ring);\r\n border-color: var(--c-primary);\r\n}\r\n\r\n.form-control {\r\n width: 100%;\r\n min-height: 34px;\r\n border: 1px solid var(--c-border);\r\n border-radius: 8px;\r\n padding: 5px 10px;\r\n font: inherit;\r\n color: var(--c-text-strong);\r\n background: #ffffff;\r\n transition: border-color 0.2s ease, box-shadow 0.2s ease;\r\n}\r\n\r\n.form-control:focus {\r\n outline: none;\r\n border-color: var(--c-primary);\r\n box-shadow: var(--focus-ring);\r\n}\r\n\r\n.input {\r\n min-height: 34px;\r\n border: 1px solid var(--c-border);\r\n border-radius: 8px;\r\n padding: 5px 10px;\r\n font: inherit;\r\n color: var(--c-text-strong);\r\n background: #ffffff;\r\n}\r\n\r\n.input--sm {\r\n min-height: 28px;\r\n padding: 3px 8px;\r\n font-size: 12px;\r\n}\r\n\r\n.flash {\r\n padding: 8px 12px;\r\n border-radius: 6px;\r\n font-size: 13px;\r\n}\r\n\r\n.flash--success {\r\n border: 1px solid #b7ebcf;\r\n background: #f0fff6;\r\n color: #0f6b39;\r\n}\r\n\r\n.flash--error {\r\n border: 1px solid #fed7d7;\r\n background: #fff5f5;\r\n color: var(--c-danger);\r\n}\r\n\r\n.alert {\r\n padding: 12px 14px;\r\n border-radius: 8px;\r\n border: 1px solid transparent;\r\n font-size: 13px;\r\n min-height: 44px;\r\n}\r\n\r\n.alert--danger {\r\n border-color: #fed7d7;\r\n background: #fff5f5;\r\n color: var(--c-danger);\r\n}\r\n\r\n.alert--success {\r\n border-color: #b7ebcf;\r\n background: #f0fff6;\r\n color: #0f6b39;\r\n}\r\n\r\n.alert--warning {\r\n border-color: #f7dd8b;\r\n background: #fff8e8;\r\n color: #815500;\r\n}\r\n\r\n.form-field {\r\n display: grid;\r\n gap: 5px;\r\n}\r\n\r\n.field-label {\r\n color: var(--c-text-strong);\r\n font-size: 13px;\r\n font-weight: 600;\r\n}\r\n\r\n.table-wrap {\r\n width: 100%;\r\n overflow-x: auto;\r\n\r\n &--visible {\r\n overflow: visible !important;\r\n overflow-x: visible !important;\r\n }\r\n}\r\n\r\n.table {\r\n width: 100%;\r\n border-collapse: collapse;\r\n background: var(--c-surface);\r\n}\r\n\r\n.table th,\r\n.table td {\r\n padding: 10px 12px;\r\n border-bottom: 1px solid var(--c-border);\r\n text-align: left;\r\n}\r\n\r\n.table th {\r\n color: var(--c-text-strong);\r\n font-weight: 700;\r\n background: #f8fafc;\r\n}\r\n\r\n.table--details th {\r\n white-space: nowrap;\r\n}\r\n\r\n.table--details th:first-child,\r\n.table--details td:first-child {\r\n width: 36px;\r\n text-align: center;\r\n}\r\n\r\n.pagination {\r\n display: flex;\r\n align-items: center;\r\n flex-wrap: wrap;\r\n gap: 8px;\r\n}\r\n\r\n.pagination__item {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n min-width: 36px;\r\n height: 36px;\r\n padding: 0 10px;\r\n border-radius: 8px;\r\n border: 1px solid var(--c-border);\r\n color: var(--c-text-strong);\r\n background: var(--c-surface);\r\n text-decoration: none;\r\n font-weight: 600;\r\n}\r\n\r\n.pagination__item:hover {\r\n border-color: #cbd5e0;\r\n background: #f8fafc;\r\n}\r\n\r\n.pagination__item.is-active {\r\n border-color: var(--c-primary);\r\n color: var(--c-primary);\r\n background: #edf2ff;\r\n}\r\n",":root {\n --c-primary: #6690f4;\n --c-primary-dark: #3164db;\n --c-bg: #f4f6f9;\n --c-surface: #ffffff;\n --c-text: #4e5e6a;\n --c-text-strong: #2d3748;\n --c-muted: #718096;\n --c-border: #b0bec5;\n --c-danger: #cc0000;\n --focus-ring: 0 0 0 3px rgba(102, 144, 244, 0.15);\n --shadow-card: 0 1px 4px rgba(0, 0, 0, 0.06);\n}\n\n.btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-height: 34px;\n padding: 6px 12px;\n border: 1px solid transparent;\n border-radius: 8px;\n font: inherit;\n font-weight: 600;\n text-decoration: none;\n cursor: pointer;\n transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.1s ease;\n}\n\n.btn--primary {\n color: #ffffff;\n background: var(--c-primary);\n}\n\n.btn--primary:hover {\n background: var(--c-primary-dark);\n}\n\n.btn--secondary {\n color: var(--c-text-strong);\n border-color: var(--c-border);\n background: var(--c-surface);\n}\n\n.btn--secondary:hover {\n border-color: #cbd5e0;\n background: #f8fafc;\n}\n\n.btn--danger {\n color: #ffffff;\n border-color: #b91c1c;\n background: #dc2626;\n}\n\n.btn--danger:hover {\n border-color: #991b1b;\n background: #b91c1c;\n}\n\n.btn--sm {\n min-height: 28px;\n padding: 3px 10px;\n font-size: 12px;\n}\n\n.btn--block {\n width: 100%;\n}\n\n.btn:active {\n transform: translateY(1px);\n}\n\n.btn:focus-visible {\n outline: none;\n box-shadow: var(--focus-ring);\n border-color: var(--c-primary);\n}\n\n.form-control {\n width: 100%;\n min-height: 34px;\n border: 1px solid var(--c-border);\n border-radius: 8px;\n padding: 5px 10px;\n font: inherit;\n color: var(--c-text-strong);\n background: #ffffff;\n transition: border-color 0.2s ease, box-shadow 0.2s ease;\n}\n\n.form-control:focus {\n outline: none;\n border-color: var(--c-primary);\n box-shadow: var(--focus-ring);\n}\n\n.input {\n min-height: 34px;\n border: 1px solid var(--c-border);\n border-radius: 8px;\n padding: 5px 10px;\n font: inherit;\n color: var(--c-text-strong);\n background: #ffffff;\n}\n\n.input--sm {\n min-height: 28px;\n padding: 3px 8px;\n font-size: 12px;\n}\n\n.flash {\n padding: 8px 12px;\n border-radius: 6px;\n font-size: 13px;\n}\n\n.flash--success {\n border: 1px solid #b7ebcf;\n background: #f0fff6;\n color: #0f6b39;\n}\n\n.flash--error {\n border: 1px solid #fed7d7;\n background: #fff5f5;\n color: var(--c-danger);\n}\n\n.alert {\n padding: 12px 14px;\n border-radius: 8px;\n border: 1px solid transparent;\n font-size: 13px;\n min-height: 44px;\n}\n\n.alert--danger {\n border-color: #fed7d7;\n background: #fff5f5;\n color: var(--c-danger);\n}\n\n.alert--success {\n border-color: #b7ebcf;\n background: #f0fff6;\n color: #0f6b39;\n}\n\n.alert--warning {\n border-color: #f7dd8b;\n background: #fff8e8;\n color: #815500;\n}\n\n.form-field {\n display: grid;\n gap: 5px;\n}\n\n.field-label {\n color: var(--c-text-strong);\n font-size: 13px;\n font-weight: 600;\n}\n\n.table-wrap {\n width: 100%;\n overflow-x: auto;\n}\n.table-wrap--visible {\n overflow: visible !important;\n overflow-x: visible !important;\n}\n\n.table {\n width: 100%;\n border-collapse: collapse;\n background: var(--c-surface);\n}\n\n.table th,\n.table td {\n padding: 10px 12px;\n border-bottom: 1px solid var(--c-border);\n text-align: left;\n}\n\n.table th {\n color: var(--c-text-strong);\n font-weight: 700;\n background: #f8fafc;\n}\n\n.table--details th {\n white-space: nowrap;\n}\n\n.table--details th:first-child,\n.table--details td:first-child {\n width: 36px;\n text-align: center;\n}\n\n.pagination {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.pagination__item {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 36px;\n height: 36px;\n padding: 0 10px;\n border-radius: 8px;\n border: 1px solid var(--c-border);\n color: var(--c-text-strong);\n background: var(--c-surface);\n text-decoration: none;\n font-weight: 600;\n}\n\n.pagination__item:hover {\n border-color: #cbd5e0;\n background: #f8fafc;\n}\n\n.pagination__item.is-active {\n border-color: var(--c-primary);\n color: var(--c-primary);\n background: #edf2ff;\n}\n\n:root {\n --shadow-card: 0 20px 50px rgba(22, 34, 58, 0.14);\n}\n\n* {\n box-sizing: border-box;\n}\n\nhtml,\nbody {\n min-height: 100%;\n}\n\nbody {\n margin: 0;\n font-family: \"Roboto\", \"Segoe UI\", sans-serif;\n color: var(--c-text);\n background: var(--c-bg);\n overflow-x: hidden;\n}\n\n.bg-orb {\n position: fixed;\n width: 460px;\n height: 460px;\n border-radius: 999px;\n filter: blur(28px);\n z-index: 0;\n opacity: 0.45;\n pointer-events: none;\n}\n\n.bg-orb-left {\n top: -200px;\n left: -180px;\n background: radial-gradient(circle, rgba(102, 144, 244, 0.48) 0%, rgba(102, 144, 244, 0) 70%);\n}\n\n.bg-orb-right {\n right: -200px;\n bottom: -220px;\n background: radial-gradient(circle, rgba(30, 42, 58, 0.36) 0%, rgba(30, 42, 58, 0) 70%);\n}\n\n.login-page {\n min-height: 100vh;\n display: grid;\n place-items: center;\n padding: 32px 20px;\n position: relative;\n z-index: 1;\n}\n\n.login-card {\n width: 100%;\n max-width: 430px;\n background: var(--c-surface);\n border: 1px solid var(--c-border);\n border-radius: 12px;\n box-shadow: var(--shadow-card);\n padding: 34px 30px 28px;\n animation: card-enter 420ms ease-out;\n}\n\n.login-header {\n margin-bottom: 24px;\n}\n\n.login-badge {\n display: inline-block;\n margin: 0 0 14px;\n padding: 5px 12px;\n border-radius: 999px;\n border: 1px solid #d9e2ff;\n background: #eef2ff;\n color: #3f5faf;\n font-size: 12px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.06em;\n}\n\nh1 {\n margin: 0;\n color: var(--c-text-strong);\n font-size: clamp(1.6rem, 2.5vw, 1.9rem);\n line-height: 1.15;\n font-weight: 700;\n}\n\n.login-subtitle {\n margin: 10px 0 0;\n font-size: 15px;\n line-height: 1.55;\n color: var(--c-muted);\n}\n\n.login-alert {\n margin-bottom: 18px;\n}\n\n.login-alert-placeholder {\n opacity: 0.56;\n}\n\n.login-form {\n display: grid;\n gap: 16px;\n}\n\n.form-field {\n display: grid;\n gap: 7px;\n}\n\n.field-label {\n color: var(--c-text-strong);\n font-size: 13px;\n font-weight: 600;\n}\n\n.login-form .form-control {\n min-height: 46px;\n padding: 0 14px;\n border-width: 2px;\n}\n\n.login-form .form-control::placeholder {\n color: #cbd5e0;\n}\n\n.login-submit {\n margin-top: 2px;\n font-size: 15px;\n min-height: 48px;\n}\n\n@keyframes card-enter {\n from {\n opacity: 0;\n transform: translateY(10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n@media (max-width: 640px) {\n .login-page {\n padding: 18px 14px;\n }\n .login-card {\n padding: 24px 20px 20px;\n }\n h1 {\n font-size: 1.55rem;\n }\n}","@use \"shared/ui-components\";\r\n\r\n:root {\r\n --shadow-card: 0 20px 50px rgba(22, 34, 58, 0.14);\r\n}\r\n\r\n* {\r\n box-sizing: border-box;\r\n}\r\n\r\nhtml,\r\nbody {\r\n min-height: 100%;\r\n}\r\n\r\nbody {\r\n margin: 0;\r\n font-family: \"Roboto\", \"Segoe UI\", sans-serif;\r\n color: var(--c-text);\r\n background: var(--c-bg);\r\n overflow-x: hidden;\r\n}\r\n\r\n.bg-orb {\r\n position: fixed;\r\n width: 460px;\r\n height: 460px;\r\n border-radius: 999px;\r\n filter: blur(28px);\r\n z-index: 0;\r\n opacity: 0.45;\r\n pointer-events: none;\r\n}\r\n\r\n.bg-orb-left {\r\n top: -200px;\r\n left: -180px;\r\n background: radial-gradient(circle, rgba(102, 144, 244, 0.48) 0%, rgba(102, 144, 244, 0) 70%);\r\n}\r\n\r\n.bg-orb-right {\r\n right: -200px;\r\n bottom: -220px;\r\n background: radial-gradient(circle, rgba(30, 42, 58, 0.36) 0%, rgba(30, 42, 58, 0) 70%);\r\n}\r\n\r\n.login-page {\r\n min-height: 100vh;\r\n display: grid;\r\n place-items: center;\r\n padding: 32px 20px;\r\n position: relative;\r\n z-index: 1;\r\n}\r\n\r\n.login-card {\r\n width: 100%;\r\n max-width: 430px;\r\n background: var(--c-surface);\r\n border: 1px solid var(--c-border);\r\n border-radius: 12px;\r\n box-shadow: var(--shadow-card);\r\n padding: 34px 30px 28px;\r\n animation: card-enter 420ms ease-out;\r\n}\r\n\r\n.login-header {\r\n margin-bottom: 24px;\r\n}\r\n\r\n.login-badge {\r\n display: inline-block;\r\n margin: 0 0 14px;\r\n padding: 5px 12px;\r\n border-radius: 999px;\r\n border: 1px solid #d9e2ff;\r\n background: #eef2ff;\r\n color: #3f5faf;\r\n font-size: 12px;\r\n font-weight: 700;\r\n text-transform: uppercase;\r\n letter-spacing: 0.06em;\r\n}\r\n\r\nh1 {\r\n margin: 0;\r\n color: var(--c-text-strong);\r\n font-size: clamp(1.6rem, 2.5vw, 1.9rem);\r\n line-height: 1.15;\r\n font-weight: 700;\r\n}\r\n\r\n.login-subtitle {\r\n margin: 10px 0 0;\r\n font-size: 15px;\r\n line-height: 1.55;\r\n color: var(--c-muted);\r\n}\r\n\r\n.login-alert {\r\n margin-bottom: 18px;\r\n}\r\n\r\n.login-alert-placeholder {\r\n opacity: 0.56;\r\n}\r\n\r\n.login-form {\r\n display: grid;\r\n gap: 16px;\r\n}\r\n\r\n.form-field {\r\n display: grid;\r\n gap: 7px;\r\n}\r\n\r\n.field-label {\r\n color: var(--c-text-strong);\r\n font-size: 13px;\r\n font-weight: 600;\r\n}\r\n\r\n.login-form .form-control {\r\n min-height: 46px;\r\n padding: 0 14px;\r\n border-width: 2px;\r\n}\r\n\r\n.login-form .form-control::placeholder {\r\n color: #cbd5e0;\r\n}\r\n\r\n.login-submit {\r\n margin-top: 2px;\r\n font-size: 15px;\r\n min-height: 48px;\r\n}\r\n\r\n@keyframes card-enter {\r\n from {\r\n opacity: 0;\r\n transform: translateY(10px);\r\n }\r\n to {\r\n opacity: 1;\r\n transform: translateY(0);\r\n }\r\n}\r\n\r\n@media (max-width: 640px) {\r\n .login-page {\r\n padding: 18px 14px;\r\n }\r\n\r\n .login-card {\r\n padding: 24px 20px 20px;\r\n }\r\n\r\n h1 {\r\n font-size: 1.55rem;\r\n }\r\n}\r\n"]} \ No newline at end of file