:root{
  --bg:#F2F6FC; --surface:#FFFFFF; --surface-2:#F7FAFE; --surface-3:#EAF1FA;
  --ink:#102A43; --ink-muted:#627D98; --ink-faint:#8BA0B6;
  --border:#D7E3F0; --border-strong:#B9CBE0;
  --accent:#1677E8; --accent-ink:#FFFFFF; --accent-soft:#E2F0FF;
  --good:#1EAE70; --good-soft:#DCF7EA; --good-ink:#087443;
  --warn:#F59E0B; --warn-soft:#FFF3D8; --warn-ink:#A35B00;
  --crit:#E5484D; --crit-soft:#FFE5E6; --crit-ink:#B4232A;
  --violet:#7657D9; --violet-soft:#EEE9FF; --violet-ink:#5942B0;
  --radius:10px;
  --shadow:0 1px 2px rgba(16,42,67,.04), 0 9px 24px -15px rgba(16,42,67,.22);
}
[data-theme="dark"]{
  --bg:#071A30; --surface:#102A43; --surface-2:#163554; --surface-3:#1B4166;
  --ink:#EDF5FF; --ink-muted:#B5CAE0; --ink-faint:#7694B1;
  --border:#244969; --border-strong:#376183;
  --accent:#4DA2FF; --accent-ink:#071A30; --accent-soft:#123D68;
  --good:#55D999; --good-soft:#103D32; --good-ink:#AEF4CC;
  --warn:#FFC55D; --warn-soft:#46330B; --warn-ink:#FFDE9A;
  --crit:#FF7B7F; --crit-soft:#4B2029; --crit-ink:#FFBAC0;
  --violet:#B7A3FF; --violet-soft:#31275B; --violet-ink:#E0D8FF;
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 6px 20px -10px rgba(0,0,0,.6);
}
*{box-sizing:border-box;}
[x-cloak]{display:none !important;}
.file-preview-overlay{
  position:fixed; inset:0; background:rgba(30,26,20,.55); z-index:1000;
  display:flex; align-items:center; justify-content:center; padding:28px;
}
.file-preview-panel{
  background:var(--surface); border:1px solid var(--border); border-radius:10px;
  width:min(920px, 100%); height:min(88vh, 100%);
  display:flex; flex-direction:column; box-shadow:0 16px 48px rgba(0,0,0,.35);
  overflow:hidden;
}
.file-preview-head{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:10px 14px; border-bottom:1px solid var(--border); background:var(--surface-2);
}
.file-preview-frame{
  flex:1; width:100%; border:0; background:var(--surface-3);
}

/* Karta IMEI modal -- opened by clicking an IMEI/🕘 link from a list
   instead of navigating away (shops, VAT Marża/23%) */
.imei-modal-overlay{
  position:fixed; inset:0; background:rgba(3,17,34,.62); z-index:1000;
  display:flex; align-items:center; justify-content:center; padding:24px; overflow-y:auto;
}
/* [hidden] is an author-stylesheet override here, not a UA-default rule --
   without this the plain HTML `hidden` attribute has NO effect (equal
   specificity, same origin, and this class's display:flex comes later in
   the cascade), leaving a full-viewport click-blocking overlay sitting over
   the entire app at all times, even when "closed". */
.imei-modal-overlay[hidden]{
  display:none;
}
.imei-modal-panel{
  background:var(--surface); border:1px solid var(--border); border-radius:14px;
  width:min(1100px, 100%); height:min(900px, calc(100dvh - 48px)); max-height:calc(100dvh - 48px);
  display:flex; flex-direction:column; box-shadow:0 16px 48px rgba(0,0,0,.35);
  overflow:hidden; min-height:0;
}
/* #imei-modal-body (base.html) is what htmx actually swaps content into --
   .imei-modal-head/.imei-modal-scroll live one level down, inside whatever
   the swap injects. display:contents takes the wrapper out of the box model
   so its children become direct flex items of .imei-modal-panel again;
   without it #imei-modal-body sizes to its own content instead of the
   panel's available height, .imei-modal-scroll never gets a bounded height
   to scroll within, and the panel's overflow:hidden clips everything past
   the fold instead of scrolling to it. */
#imei-modal-body{display:contents;}
.imei-modal-head{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:13px 18px; border-bottom:1px solid var(--border); background:#0B2540; color:#EFF7FF;
  flex-shrink:0;
}
.imei-modal-head .mono{color:#EFF7FF !important;}
.imei-modal-head .btn.ghost{background:rgba(255,255,255,.1); color:#EFF7FF;}
.imei-modal-head .icon-btn{color:#EFF7FF; border-color:rgba(255,255,255,.23);}
.imei-modal-scroll{
  overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; -webkit-overflow-scrolling:touch;
  padding:18px; flex:1 1 auto; min-height:0;
}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:"Segoe UI", -apple-system, "IBM Plex Sans", ui-sans-serif, sans-serif;
  font-size:15px; line-height:1.55;
}
a{color:var(--accent); text-decoration:none;}
h1{font-size:24px; font-weight:800; margin:0 0 4px;}
h2{font-size:17px; font-weight:700; margin:0 0 12px;}
.muted{color:var(--ink-muted);}
.small{font-size:12.5px;}
.mono{font-family:"Consolas","IBM Plex Mono",ui-monospace,monospace; font-variant-numeric:tabular-nums;}

/* topbar */
.topbar{background:var(--surface); border-bottom:1px solid var(--border); position:sticky; top:0; z-index:30;}
.topbar-inner{max-width:2200px; margin:0 auto; padding:10px 18px; min-height:56px; display:flex; align-items:center; gap:14px;}
.brand{display:flex; align-items:center; gap:9px; font-weight:800; color:var(--ink); font-size:15px; flex-shrink:0;}
.brand .dot{width:9px; height:9px; border-radius:2px; background:var(--accent); display:inline-block;}
.logout-form{margin:0; flex-shrink:0;}
.theme-toggle-btn .theme-icon-dark{display:none;}
[data-theme="dark"] .theme-toggle-btn .theme-icon-dark{display:inline;}
[data-theme="dark"] .theme-toggle-btn .theme-icon-light{display:none;}
.sidebar-toggle-btn{flex-shrink:0;}

/* global IMEI search -- always in the topbar, on every page */
.global-imei-search{flex:0 1 520px; max-width:520px; margin:0 4px; display:flex; gap:7px; align-items:stretch;}
.topbar-spacer{flex:1; min-width:8px;}
.global-imei-search input{
  flex:1; min-width:0; min-height:40px; font-family:inherit; font-size:14px; padding:9px 13px; border-radius:8px;
  border:1px solid var(--border-strong); background:var(--surface-2); color:var(--ink);
}
.global-imei-search input::placeholder{color:var(--ink-faint);}
.global-imei-search input:focus{outline:2px solid var(--accent); outline-offset:-1px; background:var(--surface);}
.global-search-btn{flex:0 0 auto; min-height:40px; border:1px solid var(--accent); border-radius:8px; padding:0 13px; background:var(--accent); color:var(--accent-ink); display:inline-flex; align-items:center; justify-content:center; gap:6px; cursor:pointer; font:inherit; font-size:13px;}.global-search-btn:hover{filter:brightness(1.06);}.global-search-btn span{font-size:15px;}.current-user-chip{display:flex;align-items:baseline;gap:5px;white-space:nowrap;padding:7px 10px;border-radius:8px;background:var(--surface-2);border:1px solid var(--border);font-size:12px;color:var(--ink-muted);}.current-user-chip b{font-size:12.5px;color:var(--ink);}.current-user-chip small{font-size:11.5px;color:var(--ink-muted);}

/* notification bell -- topbar dropdown, htmx-polled every 60s (base.html) */
.notification-bell{position:relative; flex-shrink:0;}
.notification-bell .icon-btn{position:relative;}
#notification-badge:empty{display:none;}
.badge-count{
  position:absolute; top:1px; right:1px; min-width:16px; height:16px; padding:0 3px; border-radius:999px;
  background:var(--crit-ink, #B3261E); color:#fff; font-size:10px; font-weight:800; line-height:16px; text-align:center;
}
.notification-dropdown{
  position:absolute; top:calc(100% + 8px); right:0; width:340px; max-height:70vh; overflow-y:auto;
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow);
  padding:10px; z-index:40;
}
.notification-dropdown .notification-list{margin-bottom:8px;}
.notification-dropdown-footer{display:block; text-align:center; font-size:12.5px; padding-top:6px; border-top:1px solid var(--border);}

/* vertical sidebar, collapsible via data-sidebar="collapsed" on <html> */
.app-body{display:flex; align-items:stretch;}
.sidebar{
  width:230px; flex-shrink:0; background:#0A2542; border-right:1px solid #10385F;
  padding:18px 10px; position:sticky; top:56px; align-self:flex-start;
  height:calc(100vh - 56px); overflow-y:auto;
  /* The navigation remains scrollable with wheel/touch, but the native bar
     need not compete visually with the dark sidebar. */
  -ms-overflow-style:none; scrollbar-width:none;
}
.sidebar::-webkit-scrollbar{width:0;height:0;display:none;}
.sidebar-group{margin-bottom:20px;}
.sidebar-group-title{
  font-size:10.5px; text-transform:uppercase; letter-spacing:.06em; color:#7192B4;
  font-weight:700; padding:0 10px; margin-bottom:6px; white-space:nowrap; overflow:hidden;
}
.sidebar-group-toggle{width:100%; border:0; background:transparent; text-align:left; display:flex; justify-content:space-between; align-items:center; cursor:pointer;}
.sidebar-group-toggle span{font-size:12px; transition:transform .16s ease;}.sidebar-group.collapsed .sidebar-group-toggle span{transform:rotate(-90deg);}
.sidebar-group.collapsed .sidebar-link{display:none;}
.sidebar-link{
  display:flex; align-items:center; gap:11px; padding:9px 10px; border-radius:8px;
  color:#B8CAE0; font-size:14px; font-weight:600; white-space:nowrap; overflow:hidden;
}
.sidebar-link:hover{background:#133B63; color:#FFFFFF;}
.sidebar-link.active{background:#1677E8; color:#FFFFFF; box-shadow:0 5px 12px -8px #000;}
.sidebar-link .icon{width:20px; text-align:center; flex-shrink:0; font-size:15px;}
:root[data-sidebar="collapsed"] .sidebar{width:60px;}
:root[data-sidebar="collapsed"] .sidebar-group-title{display:none;}
:root[data-sidebar="collapsed"] .sidebar-link .label{display:none;}
:root[data-sidebar="collapsed"] .sidebar-link{justify-content:center;}

.page{flex:1; min-width:0; max-width:2000px; padding:28px 24px 80px;}
.page-head{display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin-bottom:20px;}
.back-link{
  font-size:13.5px; font-weight:700; color:var(--ink); display:inline-flex; align-items:center; gap:4px;
  margin-bottom:12px; padding:7px 14px 7px 10px; border-radius:7px; background:var(--surface-3);
  border:1px solid var(--border-strong);
}
.back-link:hover{background:var(--accent-soft); color:var(--accent); border-color:var(--accent);}
.delivery-meta{display:flex; gap:14px; align-items:center; flex-wrap:wrap; margin-top:6px; font-size:13.5px; color:var(--ink-muted);}
.section-title{font-size:13px; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-faint); font-weight:700; margin-bottom:10px;}

/* buttons */
.btn{
  font-family:inherit; font-size:13.5px; font-weight:600; padding:9px 16px; border-radius:7px;
  border:1px solid var(--border-strong); background:var(--surface); color:var(--ink); cursor:pointer;
  display:inline-flex; align-items:center; gap:6px;
}
.btn:hover{background:var(--surface-2);}
.btn.primary{background:var(--accent); color:var(--accent-ink); border-color:var(--accent);}
.btn.primary:hover{filter:brightness(1.08);}
.btn.ghost{border-color:transparent; background:var(--surface-3);}
.btn.danger{background:var(--crit); color:#fff; border-color:var(--crit); font-weight:700;}
.btn.danger:hover{filter:brightness(1.1);}
.btn.small{padding:5px 10px; font-size:12.5px;}
.link-btn{
  font:inherit; background:none; border:0; padding:0; margin:0; cursor:pointer;
  color:var(--accent); text-decoration:none;
}
.link-btn:hover{text-decoration:underline;}

/* forms */
label{display:flex; flex-direction:column; gap:4px; font-size:12.5px; font-weight:600; color:var(--ink-muted); margin-bottom:12px;}
input[type=text], input[type=password], input[type=number], select, textarea{
  font-family:inherit; font-size:14px; padding:8px 10px; border:1px solid var(--border-strong);
  border-radius:6px; background:var(--surface); color:var(--ink);
}
textarea{resize:vertical;}
.checkbox-label{flex-direction:row; align-items:center; gap:6px; font-weight:500;}
.form-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:0 16px;}
@media (max-width:820px){.form-grid{grid-template-columns:repeat(2,1fr);}}

/* cards */
.card{background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:20px; box-shadow:var(--shadow);}

/* login */
.login-wrap{display:flex; justify-content:center; padding-top:10vh;}
.login-card{width:340px;}

/* banners */
.banner{padding:10px 14px; border-radius:7px; font-size:13.5px; margin-bottom:16px;}
.banner.error{background:var(--crit-soft); color:var(--crit-ink);}
.banner.info{background:var(--accent-soft); color:var(--ink);}
.banner.good{background:var(--good-soft); color:var(--good-ink);}
.banner.warn{background:var(--warn-soft); color:var(--warn-ink);}
.banner.urgent{
  background:var(--crit); color:#fff; display:flex; align-items:flex-start; gap:10px;
  box-shadow:var(--shadow);
}
.banner.urgent a{color:#fff; text-decoration:underline;}

/* badges */
.badge{font-size:11px; letter-spacing:.02em; padding:3px 8px; border-radius:5px; font-weight:700; text-transform:uppercase;}
.badge.open{background:var(--warn-soft); color:var(--warn-ink);}
.badge.closed{background:var(--good-soft); color:var(--good-ink);}
.badge.good{background:var(--good-soft); color:var(--good-ink);}
.badge.warn{background:var(--warn-soft); color:var(--warn-ink);}
.badge.crit{background:var(--crit-soft); color:var(--crit-ink);}
.badge.violet{background:var(--violet-soft); color:var(--violet-ink);}
.badge.small{font-size:10px; padding:2px 6px;}
button.badge{border:none; cursor:pointer; font-family:inherit;}
button.badge:hover{filter:brightness(0.96);}
.rolechip{font-size:12px; padding:3px 9px; border-radius:6px; background:var(--surface-3); border:1px solid var(--border);}

/* imei history ("karta IMEI") */
.imei-timeline{display:flex; flex-direction:column; gap:14px;}
.imei-entry{padding:16px 20px; border-left:3px solid var(--accent);}
.imei-entry-head{display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin-bottom:12px; flex-wrap:wrap;}
.imei-entry-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:10px 16px; font-size:13.5px; margin-bottom:10px;}
@media (max-width:820px){.imei-entry-grid{grid-template-columns:repeat(2,1fr);}}
.imei-entry-badges{display:flex; gap:6px; flex-wrap:wrap;}
.imei-entry-comments{margin-top:12px; padding-top:12px; border-top:1px solid var(--border); display:flex; flex-direction:column; gap:8px;}
.comment-line{font-size:13.5px; display:flex; align-items:baseline; gap:8px; flex-wrap:wrap;}

/* operational IMEI card */
.imei-entry{border-left-width:4px; padding:16px; overflow:hidden;}
.imei-card-status-available{border-left-color:var(--good);}
.imei-card-status-reserved{border-left-color:var(--warn);}
.imei-card-status-service,.imei-card-status-blocked{border-left-color:var(--crit);}
.imei-card-status-in_transit{border-left-color:var(--accent);}
.imei-card-status-customer_return{border-left-color:var(--violet);}
.imei-card-layout{display:grid; grid-template-columns:176px minmax(0,1fr); gap:18px; align-items:stretch;}
.imei-device-visual{border-radius:9px; min-height:170px; background:linear-gradient(145deg,#071F39,#0E3B67); color:#DCEEFF; padding:12px; display:flex; flex-direction:column; align-items:center; justify-content:space-between; box-shadow:inset 0 1px 0 rgba(255,255,255,.09);}
.device-visual-label{font-size:9px; letter-spacing:.1em; font-weight:800; color:#93BFEA;}
.device-silhouette{width:58px; height:96px; border-radius:11px; border:3px solid #A9D6FF; position:relative; box-shadow:0 7px 18px rgba(0,0,0,.25), inset 0 0 0 3px #0E3B67;}
.device-silhouette::after{content:""; position:absolute; width:22px; height:4px; border-radius:8px; background:#A9D6FF; top:5px; left:50%; transform:translateX(-50%);}
.device-silhouette span{position:absolute; width:16px; height:16px; border:2px solid #A9D6FF; border-radius:50%; left:7px; top:20px;}
.device-imei{font-size:10px; letter-spacing:.02em; color:#FFFFFF; max-width:100%; overflow:hidden; text-overflow:ellipsis;}
.imei-summary-content{min-width:0; display:flex; flex-direction:column; justify-content:center;}
.imei-device-title{font-size:17px; font-weight:800; letter-spacing:-.015em; color:var(--ink);}
/* A small color swatch/chip, not just tinted text -- plain colored text on
   the dark theme's own dark ground read poorly no matter the hue chosen, a
   solid background is legible against both themes' page ground by
   construction. Base rule is the fallback look for a color name not yet in
   the list below (a future catalog addition); each .color-* sets its own
   background to something close to the real product color, and a text
   color chosen for contrast against THAT background specifically -- not
   swapped per theme, since the chip's own fill is now what needs to read,
   not the page behind it. Class name is the color, lowercased with spaces
   turned to hyphens (see the |lower|replace(' ','-') filter wherever
   phone.color is rendered). */
.color-name{
  display:inline-flex; align-items:center; padding:1px 9px; border-radius:999px;
  font-weight:700; font-size:11.5px; letter-spacing:.01em; line-height:1.7;
  background:var(--surface-3); color:var(--ink-muted); border:1px solid rgba(0,0,0,.14);
}
.color-black{background:#1d1d1f; color:#f2f2f0;}
.color-black-titanium{background:#4a4642; color:#f2f2f0;}
.color-white{background:#f4f1ea; color:#3a3630;}
.color-white-titanium{background:#ede8de; color:#3a3630;}
.color-natural-titanium{background:#8a8172; color:#fff;}
.color-desert-titanium{background:#c9a876; color:#3a2e18;}
.color-silver{background:#d7dade; color:#33363a;}
.color-blue{background:#2f6690; color:#fff;}
.color-blue-titanium{background:#45657f; color:#fff;}
.color-deep-blue{background:#2c4a70; color:#fff;}
.color-mist-blue{background:#a9cbdd; color:#1c3644;}
.color-ultramarine{background:#4a55c9; color:#fff;}
.color-teal{background:#17797a; color:#fff;}
.color-sage{background:#a3b48c; color:#2c3320;}
.color-green{background:#5c8a5f; color:#fff;}
.color-lavender{background:#c9bfe0; color:#3a3050;}
.color-pink{background:#eec3d1; color:#6b2f40;}
.color-yellow{background:#e8cf5a; color:#4a3d08;}
.color-cosmic-orange{background:#c1560e; color:#fff;}
.status-pill{font-size:10px; letter-spacing:.04em; text-transform:uppercase; font-weight:800; padding:3px 7px; border-radius:999px; display:inline-flex; align-items:center; white-space:nowrap;}
.status-pill.available{background:var(--good-soft); color:var(--good-ink);}
.status-pill.reserved{background:var(--warn-soft); color:var(--warn-ink);}
.status-pill.service,.status-pill.blocked{background:var(--crit-soft); color:var(--crit-ink);}
.status-pill.in_transit{background:var(--accent-soft); color:var(--accent);}
.status-pill.customer_return{background:var(--violet-soft); color:var(--violet-ink);}
.text-good{color:var(--good-ink); font-weight:700;}
.text-warn{color:var(--warn-ink); font-weight:700;}
.imei-callout{margin:12px 0; padding:9px 11px; border-radius:7px; font-size:13px;}
.imei-callout.reserved{background:var(--warn-soft); color:var(--warn-ink);}
.imei-callout.service,.imei-callout.issue{background:var(--crit-soft); color:var(--crit-ink);}
.photo-strip{display:flex; flex-wrap:wrap; gap:6px; margin:12px 0;}
.photo-link{font-size:12px; padding:4px 8px; border-radius:6px; background:var(--surface-3); border:1px solid var(--border);}
.imei-actions{margin:16px 0 8px; border:1px solid var(--border); border-radius:8px; background:var(--surface-2);}
/* ">" everywhere here -- .imei-action (singular) disclosures nest inside
   this, and without the direct-child combinator these rules leak onto
   their summaries too (same specificity, so whichever comes later in the
   stylesheet would silently win). */
.imei-actions > summary{cursor:pointer; padding:10px 12px; font-weight:800; font-size:13px; color:var(--accent); list-style:none; display:flex; align-items:center; gap:8px;}
.imei-actions-open{padding:0; background:transparent; border:0; margin:16px 0 8px;}
.imei-actions-label{font-size:12px; font-weight:800; color:var(--ink-muted); text-transform:uppercase; letter-spacing:.05em; margin:0 0 8px 2px;}
.imei-actions > summary::before{content:"⚙"; font-size:14px;}.imei-actions > summary::after{content:"Rozwiń"; margin-left:auto; color:var(--ink-muted); font-size:11px; font-weight:600;}.imei-actions[open] > summary::after{content:"Zwiń";}
.imei-action-list{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding:2px 0 2px;}
/* Each operation (edit details, change status, add a photo, sell) is its
   own collapsed-by-default disclosure instead of one big grid of forms --
   only the one thing you're doing is open at a time. */
.imei-action{border:1px solid var(--border); border-radius:7px; background:var(--surface); overflow:hidden;}
.imei-action summary{cursor:pointer; padding:9px 12px; font-weight:700; font-size:12.5px; color:var(--ink); list-style:none; display:flex; align-items:center; gap:8px;}
.imei-action summary::-webkit-details-marker{display:none;}
.imei-action summary::after{content:"▾"; margin-left:auto; color:var(--ink-faint); font-size:11px; transition:transform .15s;}
.imei-action[open] summary::after{transform:rotate(180deg);}
.imei-action.sale summary{color:var(--accent);}
.action-form{padding:12px; border-top:1px solid var(--border); background:var(--surface-2);}
.action-form label{font-size:11.5px; margin-bottom:7px;}
.action-form input,.action-form select,.action-form textarea{font-size:12.5px; padding:6px 8px; width:100%;}
.compact-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 8px;}
.timeline-line,.audit-line{font-size:12.5px; margin-top:9px; padding-top:9px; border-top:1px solid var(--border); display:flex; align-items:center; flex-wrap:wrap; gap:5px;}
.timeline-line.sold{color:var(--good-ink);}
.timeline-dot{width:7px; height:7px; border-radius:50%; background:var(--accent); display:inline-block; flex:0 0 auto;}
.timeline-line.sold .timeline-dot{background:var(--good);}
.audit-line{color:var(--ink-muted); font-size:11.5px;}
.audit-line > span:first-child{font-size:9px; text-transform:uppercase; letter-spacing:.05em; font-weight:800; color:var(--ink-faint);}
.inline-form{display:inline; margin-left:4px;}
@media (max-width:760px){
  .imei-modal-overlay{padding:0; align-items:stretch;}
  .imei-modal-panel{width:100%; height:100dvh; max-height:100dvh; border-radius:0;}
  .imei-modal-scroll{padding:12px;}
  .imei-entry-grid{grid-template-columns:repeat(2,1fr);}
  .compact-grid{grid-template-columns:1fr;}
  .imei-action-list{grid-template-columns:1fr;}
  .imei-card-layout{grid-template-columns:1fr; gap:12px;}
  .imei-device-visual{min-height:118px; flex-direction:row; padding:14px 18px;}
  .device-silhouette{width:42px; height:72px; border-radius:8px;}
  .device-silhouette::after{width:16px; height:3px; top:4px;}.device-silhouette span{width:12px; height:12px; left:5px; top:15px;}
}

/* incoming shop delivery -- kept visually separate from confirmed stock */
.incoming-delivery{
  margin-top:16px; border:1px dashed var(--warn); border-radius:8px;
  background:var(--warn-soft); padding:12px;
}
.incoming-delivery-title{font-weight:800; font-size:13px; color:var(--warn-ink); margin-bottom:10px;}
.incoming-bulk-action{margin:0 0 10px; display:flex; justify-content:flex-end;}
.incoming-delivery .simple-table{background:var(--surface);}

/* cennik series tiles */
.cennik-tiles{display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:16px;}
.cennik-tile{min-width:0;}
.cennik-tile table{width:100%;}
.cennik-tile th,.cennik-tile td{padding:8px 6px; white-space:nowrap;}
/* Model/Kolor hold real text ("iPhone 17 Pro Max", "wszystkie kolory") and
   need room to wrap at word boundaries -- everything else (Pamięć, SIM,
   CENA, the tier columns) is short and reads better on one line, sized by
   automatic table layout off its own content (see .current-price-cell /
   .price-cell min-widths below for those). Column count here isn't fixed
   (varies with however many battery tiers are configured), so nth-child is
   only used for these two always-first/fourth structural columns, never
   for a percentage split across every column like the old 4-column layout
   did -- that's what silently zeroed out CENA once more columns were added. */
.cennik-tile th:nth-child(1),.cennik-tile td:nth-child(1),
.cennik-tile th:nth-child(4),.cennik-tile td:nth-child(4){min-width:130px; white-space:normal;}
.cennik-tile input.cell-input{max-width:100%;}
@media (max-width:1320px){.cennik-tiles{grid-template-columns:repeat(2, minmax(0, 1fr));}}@media (max-width:760px){.cennik-tiles{grid-template-columns:1fr;}.cennik-tile{padding:12px;}.cennik-tile th,.cennik-tile td{font-size:11.5px;padding:7px 3px;}}

/* suppliers */
.supplier-list{display:flex; flex-direction:column; gap:14px; margin-bottom:24px;}
.supplier-card{padding:18px 20px;}
.supplier-stats{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:16px;}
.stat-chip{
  background:var(--surface-2); border-radius:8px; padding:8px 12px; display:flex; flex-direction:column; gap:2px;
  min-width:88px;
}
.stat-chip b{font-size:16px; font-family:"Consolas","IBM Plex Mono",ui-monospace,monospace;}
.stat-chip span{font-size:11px; color:var(--ink-muted);}
.stat-chip.warn-chip{background:var(--warn-soft);}
.stat-chip.warn-chip b{color:var(--warn-ink);}
.stat-chip.crit-chip{background:var(--crit-soft);}
.stat-chip.crit-chip b{color:var(--crit-ink);}
.supplier-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:0 16px; align-items:end;}
@media (max-width:820px){.supplier-grid{grid-template-columns:1fr;}}
.notification-center{background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:16px; box-shadow:var(--shadow);}
.notification-head{display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:10px;}
.notification-count{min-width:25px; height:25px; border-radius:999px; display:grid; place-items:center; font-size:12px; font-weight:800; background:var(--surface-3); color:var(--ink-muted);}
.notification-list{display:flex; flex-direction:column; gap:5px;}
.notification-row{display:flex; align-items:center; gap:10px; padding:9px 10px; border-radius:7px; color:var(--ink); background:var(--surface-2); border:1px solid transparent;}
.notification-row:hover{border-color:var(--border-strong); background:var(--surface);}
.notification-row.crit{background:var(--crit-soft); color:var(--crit-ink);}
.notification-row.warn{background:var(--warn-soft); color:var(--warn-ink);}
.notification-row span:nth-child(2){display:flex; flex-direction:column; min-width:0; flex:1; font-size:12.5px;}
.notification-row small{overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:inherit; opacity:.8;}
.notification-icon{font-size:18px; font-weight:900; line-height:1; width:15px; text-align:center;}
.notification-arrow{font-weight:800; opacity:.65;}
.notification-empty{padding:11px; border-radius:7px; background:var(--good-soft); color:var(--good-ink); font-size:13px; font-weight:600;}
.transfer-board{display:grid; grid-template-columns:repeat(4,minmax(220px,1fr)); gap:14px; overflow-x:auto; align-items:start;}
.transfer-column{background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius); padding:12px; min-height:180px;}.transfer-column h2{font-size:13px; margin:0 0 10px; color:var(--ink-muted);}
.transfer-card{background:var(--surface); border:1px solid var(--border); border-radius:8px; padding:10px; margin-bottom:8px; display:flex; flex-direction:column; gap:4px; box-shadow:var(--shadow); font-size:12.5px;}.transfer-card small{color:var(--ink-muted);}.transfer-actions{display:flex; flex-wrap:wrap; gap:5px; margin-top:4px;}.transfer-actions form{display:flex; gap:4px; margin:0;}.transfer-actions input{width:112px; padding:4px 6px; font-size:11px;}
.transfer-card-device{text-align:left; display:flex; flex-direction:column; gap:2px; color:var(--ink);}.transfer-card-device:hover b{color:var(--accent);}.shop-shipment-standalone{margin:0;}.shipment-imei-field{flex:1 1 300px;}.shipment-imei-field input{font-family:var(--mono,ui-monospace,monospace); font-size:16px;}
@media (max-width:900px){.transfer-board{grid-template-columns:repeat(4,240px);}}
.field-label{display:block; font-size:12.5px; font-weight:600; color:var(--ink-muted); margin-bottom:6px;}

/* search + pagination */
.search-bar{display:flex; gap:10px; margin-bottom:14px;}
.search-bar input[type=text]{flex:1; padding:10px 14px; font-size:14.5px;}
.vat-stock-search{
  max-width:1080px; align-items:center; gap:12px; margin:2px 0 20px;
  padding:8px; border:1px solid color-mix(in srgb, var(--accent) 28%, var(--border));
  border-radius:13px; background:linear-gradient(105deg, var(--surface), var(--accent-soft));
  box-shadow:0 8px 22px color-mix(in srgb, var(--accent) 10%, transparent);
}
.vat-stock-search-icon{
  width:42px; height:42px; flex:0 0 42px; display:grid; place-items:center;
  border-radius:9px; background:var(--accent); color:#fff; font-size:29px; font-weight:300; line-height:1;
}
.vat-stock-search input[name="stock_query"]{
  flex:1 1 560px; width:100%; min-width:260px; min-height:48px; padding:12px 14px; border:1px solid var(--border-strong);
  border-radius:9px; background:var(--surface); font-size:16px; font-weight:500;
  box-shadow:inset 0 1px 1px color-mix(in srgb, var(--ink) 5%, transparent);
}
.vat-stock-search input[name="stock_query"]:focus{border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft);}
.vat-stock-search .btn{min-height:48px; padding-inline:19px; border-radius:9px; font-weight:750; white-space:nowrap;}
@media (max-width:650px){
  .vat-stock-search{gap:8px; padding:7px; flex-wrap:wrap;}
  .vat-stock-search-icon{width:36px; height:36px; flex-basis:36px; font-size:25px;}
  .vat-stock-search input[name="stock_query"]{flex-basis:calc(100% - 44px); min-width:0; min-height:42px; font-size:14px;}
  .vat-stock-search .btn{flex:1; min-height:42px;}
}
.price-world-tabs{display:flex;gap:9px;margin:14px 0 16px;}.price-world-tabs a{min-width:220px;display:flex;flex-direction:column;gap:2px;padding:11px 14px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--ink-muted);}.price-world-tabs a small{font-size:11.5px;}.price-world-tabs a.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);}.price-catalog-builder{display:grid;grid-template-columns:1.7fr 1fr;gap:14px;margin-bottom:14px;}.price-catalog-builder details{margin:0;}.price-catalog-builder summary{cursor:pointer;display:flex;flex-direction:column;gap:2px;list-style:none;}.price-catalog-builder summary small{color:var(--ink-muted);font-size:12px;font-weight:400;}.price-builder-form,.price-tier-form{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin-top:14px;}.price-builder-form label,.price-tier-form label{margin:0;min-width:115px;flex:1 1 115px;}.price-builder-form input,.price-builder-form select,.price-tier-form input{width:100%;padding:7px 9px;}.price-builder-form .price-note-field{flex-basis:220px;}.price-tier-list{display:grid;gap:6px;margin-top:14px;}.price-tier-list>div{display:flex;align-items:baseline;gap:8px;padding:7px 0;border-bottom:1px solid var(--border);}.price-tier-list>div:last-child{border-bottom:0;}.price-tier-list span,.price-tier-list small{color:var(--ink-muted);font-size:11.5px;}.price-catalog-explain{display:flex;gap:12px;align-items:baseline;margin-bottom:14px;background:var(--surface-2);font-size:13px;}.price-catalog-explain span{color:var(--ink-muted);}.price-catalog-tile{margin-bottom:14px;}.cennik-tile-head{display:flex;justify-content:space-between;align-items:start;}.cennik-tile-head h2{margin:0 0 3px;}.cennik-tile-head p{margin:0;}.price-cell{min-width:116px;}.price-cell input{width:94px;}.price-cell small,.current-price-cell small{display:block;font-size:10.5px;color:var(--ink-muted);max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.current-price-cell{min-width:128px;background:color-mix(in srgb,var(--accent-soft) 48%,var(--surface));}.current-price-cell b{display:block;color:var(--accent);font-size:14px;white-space:nowrap;}.price-exception-row td{background:color-mix(in srgb,var(--violet-soft) 45%,var(--surface));}.price-exception-row .current-price-cell{background:color-mix(in srgb,var(--violet-soft) 65%,var(--surface));}@media(max-width:980px){.price-catalog-builder{grid-template-columns:1fr;}.current-user-chip{display:none;}}@media(max-width:720px){.price-world-tabs a{min-width:0;flex:1;}.global-search-btn b{display:none;}.global-search-btn{padding:0 10px;}.topbar-inner{gap:8px;padding-inline:10px;}.global-imei-search{flex:1 1 220px;}}
.current-price-cell .current-price-input{width:112px;border-color:var(--accent);background:var(--surface);font-weight:800;color:var(--accent);}
/* Cennik row is swapped in place (htmx outerHTML) after a price edit instead
   of reloading the page -- this is the save confirmation, self-clearing via
   CSS so no JS timer is needed to remove it after the element gets replaced. */
@keyframes cennik-saved-flash{from{background:var(--good-soft);}to{background:transparent;}}
.cennik-just-saved{animation:cennik-saved-flash 1.4s ease;}
.price-kind{display:inline-flex;align-items:center;padding:1px 5px;border-radius:999px;font-family:inherit;font-size:10px;font-weight:800;line-height:1.4;white-space:nowrap;}.price-kind.promotion{background:var(--good-soft);color:var(--good-ink);}.price-kind.premium{background:var(--warn-soft);color:var(--warn-ink);}.price-kind.custom{background:var(--violet-soft);color:var(--violet-ink);}.price-exception-note{display:inline-block;max-width:104px;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;white-space:nowrap;color:var(--ink-muted);font-family:inherit;font-size:10.5px;}
.filter-details{margin-bottom:24px;}
.filter-summary{
  cursor:pointer; font-size:13.5px; font-weight:600; color:var(--ink-muted); padding:6px 2px;
  list-style:none; display:inline-flex; align-items:center; gap:4px; user-select:none;
}
.filter-summary::-webkit-details-marker{display:none;}
.filter-details[open] .filter-summary{color:var(--ink);}
.filter-bar{display:flex; gap:14px; align-items:end; flex-wrap:wrap; margin-top:8px; padding:12px 14px; background:var(--surface-2); border-radius:var(--radius);}
.bulk-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 10px;padding:10px 12px;background:var(--accent-soft);border:1px solid var(--border);border-radius:var(--radius);}.bulk-toolbar select{padding:6px 8px;font:inherit;font-size:12.5px;}
.filter-bar label{margin-bottom:0;}
.filter-bar select, .filter-bar input{padding:6px 9px; font-size:13px;}
.pagination{display:flex; align-items:center; justify-content:center; gap:14px; margin-top:18px;}
.btn.disabled{opacity:.45; cursor:default; pointer-events:none;}

/* delivery list rows */
.delivery-row{
  display:flex; align-items:center; gap:14px; padding:14px 16px; background:var(--surface);
  border:1px solid var(--border); border-radius:var(--radius); margin-bottom:8px; color:inherit;
}
.delivery-row:hover{background:var(--surface-2); border-color:var(--border-strong);}
.delivery-row .supplier{font-weight:700;}
.delivery-row .inv{color:var(--ink-muted); font-size:13px;}
.delivery-row .spacer{flex:1;}
.delivery-row .count{font-size:13px; color:var(--ink-muted);}
.badge.planned{background:var(--accent-soft); color:var(--accent);}

/* deliveries list -- one tile per delivery */
.delivery-tiles{display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:12px; margin-bottom:8px;}
.delivery-tile{
  position:relative; display:flex; flex-direction:column; gap:6px; padding:14px 16px; background:var(--surface);
  border:1px solid var(--border); border-radius:var(--radius); color:inherit; box-shadow:var(--shadow);
}
.delivery-tile{border-left-width:6px;}.delivery-tile-planned{border-left-color:var(--accent);}.delivery-tile-received{border-left-color:var(--warn);}.delivery-tile-closed{border-left-color:var(--good);}.delivery-tile:hover{background:var(--surface-2); border-color:var(--border-strong);}.delivery-tile-planned:hover{border-left-color:var(--accent);}.delivery-tile-received:hover{border-left-color:var(--warn);}.delivery-tile-closed:hover{border-left-color:var(--good);}
.delivery-tile-head{display:flex; justify-content:space-between; align-items:center; gap:8px;}
.delivery-number{font-weight:800; font-size:13px; color:var(--ink-faint); letter-spacing:.02em;}
.delivery-tile-status{display:flex;align-items:center;gap:8px;margin:1px 0 4px;padding:8px 9px;border-radius:8px;background:var(--surface-2);line-height:1.05;}.delivery-tile-status-icon{width:28px;height:28px;display:grid;place-items:center;border-radius:7px;background:var(--surface);font-size:17px;font-weight:900;}.delivery-tile-status span:last-child{display:grid;gap:2px;}.delivery-tile-status small{font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-faint);}.delivery-tile-status b{font-size:13px;letter-spacing:.045em;color:var(--ink);}.delivery-tile-status em{font-size:10.5px;font-style:normal;color:var(--ink-muted);}.delivery-tile-planned .delivery-tile-status{background:var(--accent-soft);}.delivery-tile-planned .delivery-tile-status-icon{color:var(--accent);}.delivery-tile-received .delivery-tile-status{background:var(--warn-soft);}.delivery-tile-received .delivery-tile-status-icon{color:var(--warn-ink);}.delivery-tile-closed .delivery-tile-status{background:var(--good-soft);}.delivery-tile-closed .delivery-tile-status-icon{color:var(--good-ink);}.delivery-row-status{display:inline-flex;align-items:center;justify-content:center;padding:4px 7px;border-radius:6px;font-size:10px;font-weight:850;letter-spacing:.03em;white-space:nowrap;}.delivery-row-status.status-planned{background:var(--accent-soft);color:var(--accent);}.delivery-row-status.status-received{background:var(--warn-soft);color:var(--warn-ink);}.delivery-row-status.status-closed{background:var(--good-soft);color:var(--good-ink);}
.delivery-tile-supplier{font-weight:700; font-size:15px;}
.delivery-tile-inv{color:var(--ink-muted); font-size:12.5px;}
.delivery-tile-foot{font-size:12.5px; color:var(--ink-muted); margin-top:auto; padding-top:6px;}
/* Whole tile navigates to the delivery via a stretched link (position:absolute,
   inset:0) so it stays clickable anywhere -- the Subiekt shortcut sits above it
   (z-index) instead of nesting a second <a>, which browsers handle inconsistently. */
.tile-stretched-link{position:absolute; inset:0; z-index:1;}
.tile-action{position:relative; z-index:2; align-self:flex-start;}

/* radio pair, e.g. Odbiór osobisty / Wysyłka on Karta IMEI's order form */
.radio-row{display:flex; gap:14px; margin:4px 0 8px; font-size:13px;}
.radio-row label{display:flex; align-items:center; gap:5px; font-weight:400;}

/* dialog */
dialog.dialog{border:none; border-radius:var(--radius); padding:22px; box-shadow:var(--shadow); max-width:420px; width:90%;}
dialog.dialog::backdrop{background:rgba(20,18,15,.35);}
.dialog-actions{display:flex; justify-content:flex-end; gap:8px; margin-top:8px;}

/* simple table (users/suppliers) */
.simple-table{width:100%; border-collapse:collapse; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden;}
.simple-table th, .simple-table td{padding:10px 14px; text-align:left; border-bottom:1px solid var(--border); font-size:13.5px;}
.simple-table th{background:var(--surface-2); font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:var(--ink-faint);}
.simple-table tr:last-child td{border-bottom:none;}
.simple-table th.num, .simple-table td.num{text-align:right; font-variant-numeric:tabular-nums;}
.grid-2col{display:grid; grid-template-columns:1fr 1fr; gap:28px; align-items:start;}
.grid-3col{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start;}.grid-3col .card b{font-size:28px;font-family:Consolas,monospace;color:var(--accent);}
@media (max-width:820px){.grid-2col{grid-template-columns:1fr;}}
@media (max-width:820px){.grid-3col{grid-template-columns:1fr;}}

/* tabs */
.tabs{display:flex; gap:2px; border-bottom:1px solid var(--border); margin-bottom:16px;}
.tab-btn{font-family:inherit; font-size:13px; background:none; border:none; cursor:pointer; color:var(--ink-muted); padding:9px 4px; margin-right:20px; border-bottom:2px solid transparent;}
.tab-btn.active{color:var(--accent); border-bottom-color:var(--accent); font-weight:700;}

.phone-form{padding-top:4px;}

/* delivery group / accordion */
.group-card{border:1px solid var(--border); border-radius:var(--radius); background:var(--surface); margin-bottom:10px; overflow:hidden;}
.group-head{
  display:flex; align-items:center; gap:12px; width:100%; text-align:left; font:inherit; color:inherit;
  background:none; border:none; cursor:pointer; padding:13px 16px;
}
.group-head:hover{background:var(--surface-2);}
.group-head .chev{color:var(--ink-faint); transition:transform .12s ease; display:inline-block;}
.group-head .chev.rot{transform:rotate(90deg);}
.group-title{font-weight:700; font-size:14.5px;}
.group-count{font-size:12.5px; color:var(--ink-muted);}

.phones-table{width:100%; border-collapse:collapse; font-size:13.5px; border-top:1px solid var(--border);}
.phones-table th{text-align:left; font-size:10.5px; text-transform:uppercase; letter-spacing:.04em; color:var(--ink-faint); font-weight:600; padding:8px 14px; background:var(--surface-2);}
.phones-table td{padding:9px 14px; border-top:1px solid var(--border); vertical-align:middle;}
.phone-row.flagged{background:var(--crit-soft);}
.simple-table tr.flagged{background:var(--crit-soft);}
.phone-row.grade-b-row{background:var(--violet-soft);}
.phone-row .imei{white-space:nowrap;}

.checklist-cell{display:flex; align-items:center; flex-wrap:wrap; gap:3px; max-width:220px;}
.checklist-cell input[type=checkbox]{width:14px; height:14px; margin:0; cursor:pointer;}
.checklist-count{font-size:11px; color:var(--ink-faint); margin-left:4px; font-family:"Consolas",monospace;}
.checklist-count.done{color:var(--good-ink); font-weight:700;}

.row-actions{text-align:left; width:150px;}
.row-btns{display:flex; gap:4px;}
.icon-btn{
  position:relative; background:none; border:1px solid var(--border); border-radius:6px; width:28px; height:28px;
  color:var(--ink-faint); cursor:pointer; display:inline-flex; align-items:center; justify-content:center;
  font-size:13.5px; text-decoration:none; line-height:1;
}
.icon-btn:hover{background:var(--surface-2); color:var(--ink);}
.icon-btn.danger:hover{background:var(--crit-soft); color:var(--crit-ink); border-color:transparent;}
.icon-btn.htmx-request{opacity:.45; pointer-events:none;}
.icon-btn .btn-count{
  position:absolute; top:-5px; right:-5px; background:var(--accent); color:var(--accent-ink);
  font-size:9.5px; font-weight:700; line-height:1; border-radius:999px; min-width:14px; height:14px;
  display:flex; align-items:center; justify-content:center; padding:0 2px;
}

.comments-row td, .checklist-row td{background:var(--surface-2);}
.comments-panel{padding:6px 4px;}
.comment{padding:8px 10px; border-bottom:1px solid var(--border); font-size:13px;}
.comment:last-child{border-bottom:none;}
.comment.flag{background:var(--crit-soft);}
.comment.flag-b{background:var(--violet-soft);}
.comment-meta{display:flex; gap:8px; align-items:center; margin-bottom:2px;}
.comment-actions{margin-left:auto; display:flex; gap:2px;}
.comment-action-btn{
  background:none; border:none; border-radius:5px; width:22px; height:22px; padding:0;
  color:var(--ink-faint); cursor:pointer; font-size:12px; line-height:1;
}
.comment-action-btn:hover{background:var(--surface-3); color:var(--ink);}
.comment-edit-form{margin-top:6px; display:flex; flex-direction:column; gap:6px;}
.comment-edit-form textarea{width:100%;}
.comment-edit-actions{display:flex; justify-content:flex-end; gap:6px;}
.add-comment-form{margin-top:8px; display:flex; flex-direction:column; gap:6px;}
.add-comment-form textarea{width:100%;}
.add-comment-actions{display:flex; justify-content:space-between; align-items:center;}
.comment-flag-prompt{font-size:12px; font-weight:600; padding:6px 9px; border-radius:6px; background:var(--warn-soft); color:var(--warn-ink);}

/* checklist: compact summary button in the main row */
.checklist-toggle-btn{
  font-family:"Consolas",monospace; font-size:12.5px; background:var(--surface-2); border:1px solid var(--border);
  border-radius:6px; padding:5px 9px; cursor:pointer; color:var(--ink-muted); display:inline-flex; align-items:center; gap:5px;
}
.checklist-toggle-btn.done{background:var(--good-soft); color:var(--good-ink); border-color:transparent; font-weight:700;}
.checklist-toggle-btn .chev{font-size:10px; transition:transform .12s ease;}
.checklist-toggle-btn .chev.rot{transform:rotate(90deg);}

/* checklist: expanded panel with full labels, readable grid */
.checklist-panel{padding:10px 6px 14px;}
.checklist-panel-actions{display:flex; gap:8px; margin-bottom:12px;}
.checklist-grid{display:grid; grid-template-columns:repeat(3, minmax(140px,1fr)); gap:8px 16px;}
@media (max-width:760px){.checklist-grid{grid-template-columns:repeat(2, 1fr);}}
.checklist-item{
  display:flex; align-items:center; gap:8px; font-size:13.5px; padding:6px 8px; border-radius:6px;
  background:var(--surface); border:1px solid var(--border); cursor:pointer;
}
.checklist-item.on{background:var(--good-soft); border-color:transparent; color:var(--good-ink); font-weight:600;}
.checklist-item input{width:16px; height:16px; margin:0; cursor:pointer;}

/* add-phones form: repeatable IMEI rows */
.imei-rows-label{font-size:12.5px; font-weight:600; color:var(--ink-muted); margin:6px 0 6px;}
.imei-rows{display:flex; flex-direction:column; gap:6px; max-width:360px;}
.imei-row{display:flex; align-items:center; gap:6px;}
.imei-row .imei-input{flex:1;}
.imei-remove{
  width:26px; height:26px; border-radius:6px; border:1px solid var(--border); background:var(--surface);
  color:var(--ink-faint); cursor:pointer; font-size:15px; line-height:1;
}
.imei-remove:hover{background:var(--crit-soft); color:var(--crit-ink); border-color:transparent;}

/* delivery header (editable, spreadsheet-style autosave) */
.delivery-stage-banner{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(220px,auto);gap:14px;align-items:center;margin:0 0 16px;padding:16px 18px;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:0 8px 24px color-mix(in srgb,var(--ink) 8%,transparent);}.delivery-stage-banner.stage-planned{border-color:color-mix(in srgb,var(--accent) 62%,var(--border));background:linear-gradient(105deg,color-mix(in srgb,var(--accent-soft) 76%,var(--surface)),var(--surface));}.delivery-stage-banner.stage-received{border-color:color-mix(in srgb,var(--warn) 74%,var(--border));background:linear-gradient(105deg,color-mix(in srgb,var(--warn-soft) 78%,var(--surface)),var(--surface));}.delivery-stage-banner.stage-closed{border-color:color-mix(in srgb,var(--good) 72%,var(--border));background:linear-gradient(105deg,color-mix(in srgb,var(--good-soft) 78%,var(--surface)),var(--surface));}.delivery-stage-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:12px;background:var(--surface);border:1px solid color-mix(in srgb,currentColor 20%,var(--border));font-size:27px;font-weight:900;line-height:1;}.stage-planned .delivery-stage-icon{color:var(--accent);}.stage-received .delivery-stage-icon{color:var(--warn-ink);}.stage-closed .delivery-stage-icon{color:var(--good-ink);}.delivery-stage-copy{display:grid;gap:3px;min-width:0;}.delivery-stage-eyebrow{font-size:10px;font-weight:850;letter-spacing:.085em;color:var(--ink-muted);}.delivery-stage-copy strong{font-size:23px;line-height:1.08;letter-spacing:.025em;color:var(--ink);}.delivery-stage-copy>span:last-child{font-size:13px;color:var(--ink-muted);}.delivery-stage-progress{display:grid;gap:3px;min-width:220px;padding:9px 12px;border-left:1px solid color-mix(in srgb,var(--ink) 13%,transparent);}.delivery-stage-progress span{font-size:10px;text-transform:uppercase;letter-spacing:.06em;font-weight:800;color:var(--ink-faint);}.delivery-stage-progress b{font-size:13px;color:var(--ink);}.delivery-stage-progress small{font-size:11px;line-height:1.32;color:var(--ink-muted);}.supplier-subiekt-code{display:inline-flex;vertical-align:middle;align-items:center;margin:0 0 2px 9px;padding:4px 8px;border:1px solid var(--border);border-radius:999px;background:var(--surface-2);font-size:11px;font-weight:750;letter-spacing:0;color:var(--ink-muted);white-space:nowrap;}@media(max-width:760px){.delivery-stage-banner{grid-template-columns:auto minmax(0,1fr);padding:14px;}.delivery-stage-progress{grid-column:1/-1;min-width:0;border-left:0;border-top:1px solid color-mix(in srgb,var(--ink) 13%,transparent);padding:10px 0 0;}.delivery-stage-copy strong{font-size:19px;}.supplier-subiekt-code{margin:7px 0 0;}}
.delivery-header-card{margin-bottom:20px;}
.delivery-header-grid{display:grid; gap:0 16px; align-items:start;}
.delivery-header-grid.cols-2{grid-template-columns:repeat(2,1fr);}
.delivery-header-grid.cols-3{grid-template-columns:repeat(3,1fr);}
@media (max-width:900px){.delivery-header-grid.cols-2, .delivery-header-grid.cols-3{grid-template-columns:1fr;}}
.delivery-status-block{grid-column:1 / -1; display:flex; align-items:center; gap:12px; margin-top:6px;}
.delivery-readiness{margin-top:14px; border:1px solid var(--border); border-radius:var(--radius); padding:14px 16px; background:var(--surface);}
.delivery-readiness.ready{border-color:var(--good); background:var(--good-soft); color:var(--good-ink);}
.delivery-readiness.blocked{border-color:var(--warn); background:var(--warn-soft); color:var(--warn-ink);}
.delivery-readiness.ready .muted,.delivery-readiness.blocked .muted{color:color-mix(in srgb,currentColor 78%,var(--ink-muted));}
.delivery-readiness-title{display:flex; align-items:center; justify-content:space-between; gap:12px; font-weight:750;}
.readiness-list{margin:9px 0 0; padding-left:20px; font-size:.9rem;}
.readiness-list.blockers{color:#a33b2a;}.readiness-list.warnings{color:#87610b;}
.readiness-intro{margin:7px 0 0;}.readiness-details{margin-top:10px; border-top:1px solid color-mix(in srgb,currentColor 25%,transparent); padding-top:10px;}
.readiness-details summary{cursor:pointer; font-weight:700; display:flex; align-items:center; gap:7px; width:max-content;}.readiness-issues{list-style:none; margin:8px 0 0; padding:0; display:grid; gap:6px; font-size:.88rem;}
.readiness-issues li{display:flex; flex-wrap:wrap; align-items:baseline; gap:7px; padding:7px 9px; border-radius:8px; background:color-mix(in srgb,var(--surface) 76%,transparent);}.readiness-issues.blockers li{border-left:3px solid var(--crit);}.readiness-issues.warnings li{border-left:3px solid var(--warn);}.readiness-issues a{font-weight:750; color:inherit; text-decoration:underline;}.readiness-category{font-size:.75rem; font-weight:700; padding:1px 6px; border-radius:999px; background:var(--surface); color:var(--ink-muted);}
.readiness-message{margin:9px 0 0; font-size:.9rem;}.readiness-message.error{color:#b63329; font-weight:650;}
@media (max-width:600px){.delivery-readiness-title{align-items:flex-start;flex-direction:column;}}
.active-shipment{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--accent) 32%,var(--border));border-radius:8px;background:var(--accent-soft);font-size:13px;}
@media (max-width:600px){.active-shipment{align-items:flex-start;flex-direction:column;}}

.danger-zone{
  margin-top:32px; padding:16px 18px; border:1.5px solid var(--crit); border-radius:var(--radius);
  background:var(--crit-soft); display:flex; align-items:center; justify-content:space-between; gap:16px;
}
.danger-zone h2{margin:0 0 4px; font-size:14.5px; color:var(--crit-ink);}
.danger-zone p{margin:0;}
.danger-zone .btn.danger{flex-shrink:0;}

/* spreadsheet-style cell inputs: blend into the table until focused.
   NOTE: specificity matters here -- the generic input-styling rule higher up
   this file (input type=text etc.) is an attribute+type selector, which
   outranks a bare .cell-input class selector regardless of source order.
   Prefixing with the "input" tag brings these to the same specificity,
   where source order (these rules come later in the file) then correctly
   wins. Without this prefix every cell silently fell back to the generic
   bordered/boxed input look -- the "looks like a form, not a spreadsheet" bug. */
input.cell-input, select.cell-input, textarea.cell-input{
  width:100%; border:1px solid transparent; background:transparent; padding:5px 6px; border-radius:5px;
  font-family:inherit; font-size:13.5px; color:var(--ink);
}
input.cell-input:hover, select.cell-input:hover, textarea.cell-input:hover{border-color:var(--border);}
input.cell-input:focus, select.cell-input:focus, textarea.cell-input:focus{outline:none; border-color:var(--accent); background:var(--surface);}
input.cell-input.bordered, textarea.cell-input.bordered{border-color:var(--border-strong); background:var(--surface);}
input.cell-input-num{width:100%; text-align:right;}
input.cell-input.saved-flash{background:var(--good-soft); transition:background .15s ease;}
.cell-error{font-size:11.5px; color:var(--crit); margin-top:2px;}
.cell-warning{font-size:11.5px; color:var(--warn-ink); margin-top:2px;}

/* the delivery sheet itself -- explicit, predictable column widths
   (table-layout:fixed + <colgroup> in detail.html) instead of letting the
   browser's auto-layout guess and clip text inputs down to a few characters. */
.sheet-wrap{overflow-x:auto; border:1px solid var(--border); border-radius:var(--radius); background:var(--surface); box-shadow:var(--shadow);}
.sheet-table{width:100%; table-layout:fixed; border-collapse:collapse; font-size:13.5px;}
.sheet-table th{
  text-align:left; font-size:10.5px; text-transform:uppercase; letter-spacing:.04em; color:var(--ink-faint);
  font-weight:600; padding:9px 10px; border-bottom:1px solid var(--border); background:var(--surface-2); position:sticky; top:0;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.sheet-table td{padding:3px 6px; border-bottom:1px solid var(--border); vertical-align:middle; overflow:hidden;}
.sheet-table td.mono.imei{padding:3px 10px; overflow:visible;}
.sheet-table tr.new-row td{background:var(--accent-soft);}
.sheet-table tr.new-row input.cell-input{background:var(--surface);}
.sheet-table th.num, .sheet-table td.num{text-align:right;}

/* Warehouse intake is intentionally dense: all 16 fields remain visible
   without a horizontal scroll bar at a normal desktop width. The currently
   edited record gets a complete, calm blue row highlight, not merely an
   easily missed input outline. */
.delivery-sheet-wrap{overflow-x:hidden;}
.delivery-sheet{font-size:12px;}
.delivery-sheet th{padding:7px 4px;font-size:9.5px;letter-spacing:.02em;}
.delivery-sheet td{padding:2px 3px;}
.delivery-sheet input.cell-input,.delivery-sheet select.cell-input{padding:4px 4px;font-size:12px;min-width:0;}
.delivery-sheet .row-actions{width:auto;}
.delivery-sheet .row-btns{gap:2px;flex-wrap:nowrap;}
.delivery-sheet .icon-btn{min-width:25px;padding:3px 4px;}
.delivery-sheet tr.phone-row,.delivery-sheet tr.new-row{transition:background-color .14s ease,box-shadow .14s ease;}
.delivery-sheet tr.is-active-row td{background:color-mix(in srgb,var(--accent-soft) 72%,var(--surface))!important;box-shadow:inset 0 1px 0 color-mix(in srgb,var(--accent) 46%,transparent),inset 0 -1px 0 color-mix(in srgb,var(--accent) 46%,transparent);}
.delivery-sheet tr.is-active-row td:first-child{box-shadow:inset 3px 0 0 var(--accent),inset 0 1px 0 color-mix(in srgb,var(--accent) 46%,transparent),inset 0 -1px 0 color-mix(in srgb,var(--accent) 46%,transparent);}
.delivery-sheet tr.is-active-row input.cell-input,.delivery-sheet tr.is-active-row select.cell-input{background:color-mix(in srgb,var(--surface) 88%,var(--accent-soft))!important;}
@media(max-width:1180px){.delivery-sheet{font-size:11px;}.delivery-sheet th{font-size:8.5px;padding-inline:2px;}.delivery-sheet input.cell-input,.delivery-sheet select.cell-input{font-size:11px;padding-inline:2px;}.delivery-sheet .row-btns .icon-btn:nth-child(2){display:none;}}

/* Delivery intake summary: headline counts stay compact; colour detail is on demand. */
.delivery-model-summary{margin:14px 0;color:var(--ink);}.delivery-model-summary .section-head{margin-bottom:10px;}.delivery-model-summary h2{margin:0 0 3px;font-size:16px;color:var(--ink);}.delivery-model-summary .section-head p{margin:0;font-size:12px;color:var(--ink-muted);}.delivery-summary-total{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:4px 9px;border:1px solid color-mix(in srgb,var(--accent) 38%,var(--border));border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:850;white-space:nowrap;}.delivery-model-chips{display:flex;flex-wrap:wrap;gap:8px;}.delivery-model-chip{position:relative;min-width:205px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2);color:var(--ink);}.delivery-model-chip summary{display:flex;align-items:center;gap:8px;min-height:38px;padding:8px 10px;cursor:pointer;list-style:none;font-size:12px;font-weight:800;color:var(--ink);}.delivery-model-chip summary::-webkit-details-marker{display:none;}.delivery-model-chip summary>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.delivery-model-chip summary>b{display:grid;place-items:center;min-width:22px;height:22px;margin-left:auto;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-size:11px;}.delivery-summary-chevron{color:var(--ink-muted);font-size:13px;}.delivery-model-colors{position:absolute;z-index:4;left:-1px;right:-1px;top:calc(100% - 1px);padding:9px 10px;border:1px solid var(--border-strong);border-radius:0 0 9px 9px;background:var(--surface);box-shadow:var(--shadow);color:var(--ink);}.delivery-memory-row{display:grid;grid-template-columns:auto auto 1fr;gap:6px;align-items:start;padding:6px 0;border-top:1px solid var(--border);font-size:11px;color:var(--ink);}.delivery-memory-row:first-child{border-top:0;padding-top:0;}.delivery-memory-row>div{display:flex;gap:5px;flex-wrap:wrap;}.delivery-memory-count{display:inline-flex;align-items:center;padding:2px 5px;border-radius:5px;background:var(--surface-3);color:var(--ink);font-size:10px;font-weight:800;white-space:nowrap;}.delivery-color-count{padding:2px 5px;border-radius:999px;font-size:10.5px;}.delivery-color-count b{margin-left:2px;}@media(max-width:640px){.delivery-model-chip{min-width:100%;}.delivery-memory-row{grid-template-columns:auto auto;}.delivery-memory-row>div{grid-column:1/-1;}}

/* calendar */
.calendar-nav{display:flex; align-items:center; gap:16px; margin-bottom:16px;}
.calendar-title{font-family:"Archivo","Segoe UI",sans-serif; font-weight:800; font-size:16px;}
.calendar-grid{display:grid; grid-template-columns:repeat(7, 1fr); gap:1px; background:var(--border); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden;}
.calendar-weekday{background:var(--surface-2); padding:8px; text-align:center; font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:var(--ink-faint); font-weight:600;}
.calendar-cell{background:var(--surface); min-height:96px; padding:6px; position:relative; display:flex; flex-direction:column; gap:4px;}
.calendar-cell.empty{background:var(--surface-2);}
.calendar-cell.is-today{background:var(--accent-soft);}
.calendar-cell.is-today .calendar-daynum{color:var(--accent); font-weight:800;}
.calendar-daynum{font-size:12.5px; color:var(--ink-muted); font-weight:600;}
.calendar-pill{
  display:block; font-size:11.5px; padding:3px 6px; border-radius:5px; background:var(--warn-soft); color:var(--warn-ink);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.calendar-pill:hover{filter:brightness(0.96);}
.calendar-pill.arrived{background:var(--good-soft); color:var(--good-ink);}
.forecast-head{align-items:start;}.forecast-window{margin:0;}.forecast-window select{min-width:150px;}.forecast-goal{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:14px;}.forecast-goal h2{margin:0 0 4px;font-size:17px;}.forecast-goal p{margin:0;max-width:650px;}.forecast-goal-form{display:flex;gap:9px;align-items:end;flex-wrap:wrap;margin:0;}.forecast-goal-form label{margin:0;min-width:125px;}.forecast-goal-form input{padding:8px 10px;}.forecast-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 16px;}.forecast-stats .stat-chip{min-height:92px;display:flex;flex-direction:column;justify-content:center;}.forecast-stats small{color:var(--ink-muted);margin-top:2px;}.forecast-table{min-width:870px;}.forecast-order td{background:color-mix(in srgb,var(--good-soft) 38%,var(--surface));}.forecast-lower{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px;}.forecast-lower h2{font-size:16px;margin-top:0;}.forecast-ranking{list-style:none;padding:0;margin:0;display:grid;gap:4px;}.forecast-ranking li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--border);}.forecast-ranking li:last-child{border-bottom:0;}.forecast-ranking span{display:flex;flex-direction:column;gap:2px;}.forecast-ranking small{color:var(--ink-muted);font-size:11px;}@media(max-width:800px){.forecast-goal{align-items:start;flex-direction:column;}.forecast-stats{grid-template-columns:repeat(2,minmax(0,1fr));}.forecast-lower{grid-template-columns:1fr;}}
.calendar-add{
  position:absolute; top:4px; right:4px; width:18px; height:18px; border-radius:4px; border:1px solid var(--border);
  background:var(--surface); color:var(--ink-faint); font-size:12px; line-height:1; cursor:pointer; opacity:0;
  transition:opacity .1s ease;
}
.calendar-cell:hover .calendar-add{opacity:1;}
.calendar-holiday{
  font-size:10.5px; font-weight:700; color:var(--crit-ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.calendar-pill.event{
  display:flex; align-items:center; justify-content:space-between; gap:4px;
  background:var(--violet-soft); color:var(--violet-ink); white-space:nowrap;
}
.calendar-pill.event span{overflow:hidden; text-overflow:ellipsis;}
.calendar-pill.event form{display:inline; margin:0; line-height:0;}
.pill-delete{
  background:none; border:none; color:inherit; opacity:.55; cursor:pointer; font-size:13px; line-height:1; padding:0 0 0 2px;
}
.pill-delete:hover{opacity:1;}

/* dashboard "this week" strip */
.week-strip{
  display:grid; grid-template-columns:repeat(7, 1fr); gap:1px; background:var(--border);
  border:1px solid var(--border); border-radius:var(--radius); overflow:hidden;
}
.week-cell{background:var(--surface); min-height:150px; padding:8px; display:flex; flex-direction:column; gap:5px;}
.week-cell.is-today{background:var(--accent-soft);}
.week-cell-head{display:flex; align-items:baseline; justify-content:space-between;}
.week-daylabel{font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:var(--ink-faint); font-weight:700;}
.week-daynum{font-size:12.5px; color:var(--ink-muted); font-weight:600;}
.week-cell.is-today .week-daylabel, .week-cell.is-today .week-daynum{color:var(--accent);}

/* compact operational boards */
.task-layout{align-items:start;}.task-list{display:flex;flex-direction:column;gap:8px}.task-row{display:flex;gap:14px;justify-content:space-between;align-items:flex-start;padding:11px 0;border-bottom:1px solid var(--border)}.task-row:last-child{border-bottom:0}.task-row p{margin:4px 0;font-size:13px;color:var(--ink-muted)}.task-row.overdue b,.task-row.overdue small{color:var(--crit-ink)}.quality-list{display:grid;gap:14px}.quality-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}.quality-head .btn{margin-left:auto}

/* file attachments (proforma / faktura PDFs) */
.file-controls{display:flex; gap:6px; margin:-6px 0 12px;}
.file-upload-label{cursor:pointer; margin:0;}

/* competitor price comparison */
.competitor-head{align-items:flex-start; margin-bottom:14px;}
.competitor-head h1{margin-bottom:4px;}.competitor-head p{margin:0;}
.competitor-head-actions{display:flex; align-items:center; gap:9px; flex-wrap:wrap; justify-content:flex-end;}.competitor-head-actions form{margin:0;}
.competitor-summary-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:16px 0;}
.competitor-summary{background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:14px 16px; box-shadow:var(--shadow); display:flex; flex-direction:column; gap:3px;}
.competitor-summary span{font-size:11px; color:var(--ink-muted); text-transform:uppercase; font-weight:700; letter-spacing:.035em;}.competitor-summary b{font-size:24px; line-height:1.08; font-family:"Consolas","IBM Plex Mono",ui-monospace,monospace;}.competitor-summary.risk{background:var(--crit-soft); border-color:color-mix(in srgb,var(--crit) 28%,var(--border));}.competitor-summary.risk b{color:var(--crit-ink);}.competitor-summary.warn{background:var(--warn-soft); border-color:color-mix(in srgb,var(--warn) 28%,var(--border));}.competitor-summary.warn b{color:var(--warn-ink);}
.section-head{display:flex; justify-content:space-between; gap:16px; align-items:start; margin-bottom:14px;}.section-head h2{margin:0 0 4px; font-size:17px;}.section-head p{margin:0; font-size:13px;}
.competitor-comparison{margin-top:16px;}.competitor-filters{display:flex; align-items:end; gap:12px; flex-wrap:wrap; padding:13px 14px; background:var(--surface-2); border:1px solid var(--border); border-radius:9px; margin-bottom:14px;}.competitor-filters fieldset{border:0; padding:0; margin:0; display:flex; flex-direction:column; gap:4px;}.competitor-filters legend{font-size:11px; text-transform:uppercase; letter-spacing:.04em; font-weight:750; color:var(--ink-faint); margin-bottom:3px;}.competitor-filters label{display:inline-flex; align-items:center; gap:5px; font-size:12px; color:var(--ink-muted); margin:0;}.competitor-filters .seller-filter{max-width:450px; flex-direction:row; flex-wrap:wrap; column-gap:9px;}.competitor-filters .seller-filter legend{width:100%;}.competitor-filters .btn{margin-left:auto;}
.competitor-filters .competitor-search{min-width:300px;flex:1 1 360px}.competitor-search input{width:100%;min-height:40px;padding:9px 12px;border:1px solid var(--border-strong);border-radius:7px;background:var(--surface);font:inherit}.competitor-search small{font-size:11px;color:var(--ink-faint)}
.competitor-seller-list{display:flex; flex-direction:column; gap:9px;}.competitor-seller{border:1px solid var(--border); border-radius:10px; background:var(--surface); overflow:hidden;}.competitor-seller summary{display:flex; align-items:center; gap:9px; min-height:52px; padding:10px 14px; cursor:pointer; list-style:none;}.competitor-seller summary::-webkit-details-marker{display:none;}.competitor-seller summary:hover{background:var(--surface-2);}.competitor-seller-name{font-size:15px; font-weight:800; color:var(--ink);}.competitor-seller-meta{font-size:12px; color:var(--ink-muted);}.competitor-seller-arrow{margin-left:auto; color:var(--ink-faint); transition:transform .15s ease;}.competitor-seller[open] .competitor-seller-arrow{transform:rotate(180deg);}.competitor-seller-body{border-top:1px solid var(--border); padding:12px 14px 14px; background:color-mix(in srgb,var(--surface-2) 55%,var(--surface));}.seller-grade-scale{margin:0 0 9px;}.table-wrap{overflow-x:auto; border:1px solid var(--border); border-radius:8px; background:var(--surface);}.competitor-table{min-width:960px;}.competitor-table tr.flagged td{background:color-mix(in srgb,var(--crit-soft) 62%,var(--surface));}.text-crit{color:var(--crit-ink); font-weight:800;}.competitor-our-only{margin-top:12px; border:1px dashed var(--border-strong); border-radius:8px; padding:10px 12px;}.competitor-our-only summary{cursor:pointer; font-weight:700; font-size:13px;}.competitor-our-only p{margin:9px 0 0;}
.competitor-history{margin-top:16px;}.history-controls{display:flex; gap:12px; align-items:end; flex-wrap:wrap; margin-bottom:10px;}.history-controls label{display:flex; flex-direction:column; gap:5px; font-size:12px; font-weight:700; color:var(--ink-muted);}.history-controls select{min-width:170px; padding:8px 10px; background:var(--surface); border:1px solid var(--border-strong); border-radius:7px; color:var(--ink); font:inherit;}.history-sites{display:flex; flex-wrap:wrap; align-items:center; gap:7px 12px; padding:9px 11px; border-radius:8px; background:var(--surface-2); margin:10px 0;}.history-sites label{font-size:12px; color:var(--ink-muted); display:inline-flex; align-items:center; gap:4px;}.history-chart{height:350px; position:relative; margin:12px 0; padding:8px; border:1px solid var(--border); border-radius:9px; background:var(--surface);}.history-chart canvas{width:100% !important; height:100% !important;}.history-loading,.history-empty{padding:22px; text-align:center; color:var(--ink-muted); background:var(--surface-2); border-radius:8px; margin:10px 0;}
.history-sites{gap:8px;padding:10px 12px}.history-sites label{padding:6px 9px;border:1px solid var(--border);border-radius:999px;background:var(--surface);font-weight:650}.history-sites input{accent-color:var(--accent)}
.competitor-admin{margin-top:16px; padding:0; overflow:hidden;}.competitor-admin>summary{cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:12px; padding:15px 17px; font-weight:800; list-style:none;}.competitor-admin>summary::-webkit-details-marker{display:none;}.competitor-admin>summary:hover{background:var(--surface-2);}.competitor-admin-body{border-top:1px solid var(--border); padding:16px;}.competitor-admin h3{font-size:14px; margin:0 0 9px;}.competitor-admin-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:18px 0;}.compact-table{max-height:390px; overflow:auto;}.compact-table thead th{position:sticky; top:0; z-index:1;}.competitor-admin .btn{margin-top:2px;}
@media (max-width:1050px){.competitor-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.competitor-filters .btn{margin-left:0;}.competitor-admin-grid{grid-template-columns:1fr;}}
@media (max-width:680px){.competitor-head{display:block;}.competitor-head-actions{justify-content:flex-start; margin-top:10px;}.competitor-summary-grid{grid-template-columns:1fr 1fr; gap:8px;}.competitor-summary{padding:12px;}.competitor-summary b{font-size:20px;}.competitor-filters{display:grid; grid-template-columns:1fr;}.competitor-filters .seller-filter{max-width:none;}.competitor-filters .btn{width:100%;}.competitor-seller summary{flex-wrap:wrap; gap:6px 8px;}.competitor-seller-arrow{position:absolute; right:15px;}.competitor-seller{position:relative;}.history-chart{height:300px; padding:3px;}.competitor-admin>summary{align-items:flex-start; flex-direction:column;}}

/* user access centre */
.permission-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:0 0 16px;padding:12px 15px;background:linear-gradient(110deg,var(--accent-soft),var(--surface));}.permission-legend span{font-size:12px;color:var(--ink-muted);padding-left:14px;border-left:1px solid var(--border);}.permission-legend b{color:var(--ink);}.user-access-list{display:grid;gap:14px;}.user-access-card{padding:0;overflow:hidden;}.user-access-card.is-inactive{opacity:.67;}.user-access-header{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:15px 18px;border-bottom:1px solid var(--border);background:var(--surface-2);}.user-access-header h2{font-size:16px;margin:0 0 3px;}.user-access-header p{margin:0;}.user-header-actions{display:flex;gap:8px;align-items:center;}.user-header-actions form{margin:0;}.access-profile-form,.new-user-form{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px;align-items:end;padding:15px 18px;}.access-profile-form label,.new-user-form label{display:grid;gap:5px;font-size:11px;font-weight:750;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.025em;}.access-profile-form select,.access-profile-form input,.new-user-form select,.new-user-form input{min-width:0;min-height:36px;background:var(--surface);}.access-profile-form .btn{height:36px;white-space:nowrap;}.shop-scope,.permission-editor{border-top:1px solid var(--border);}.shop-scope>summary,.permission-editor>summary{cursor:pointer;padding:13px 18px;font-size:13px;font-weight:750;list-style:none;}.shop-scope>summary::-webkit-details-marker,.permission-editor>summary::-webkit-details-marker{display:none;}.shop-scope[open]>summary,.permission-editor[open]>summary{background:var(--surface-2);border-bottom:1px solid var(--border);}.shop-scope>p,.permission-editor>p{margin:0;padding:12px 18px 0;}.shop-checkboxes{padding:12px 18px 16px;display:flex;flex-wrap:wrap;gap:8px 13px;align-items:center;}.check-option{font-size:12px;white-space:nowrap;}.permission-editor form{padding:12px 18px 16px;}.permission-group{border:1px solid var(--border);border-radius:8px;margin:8px 0;background:var(--surface);}.permission-group>summary{cursor:pointer;padding:10px 12px;font-size:13px;font-weight:750;list-style:none;}.permission-group>summary::-webkit-details-marker{display:none;}.permission-group[open]>summary{border-bottom:1px solid var(--border);background:var(--surface-2);}.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;padding:4px 12px 10px;}.permission-row{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent);font-size:12px;}.permission-row>span{display:grid;gap:2px;}.permission-row small{font-size:10px;color:var(--accent);font-weight:700;}.permission-row select{min-width:118px;padding:5px 7px;font-size:11px;background:var(--surface);}.permission-admin-note{padding:13px 18px;font-size:12px;color:var(--ink-muted);background:var(--good-soft);}.new-user-card{margin-top:20px;}.new-user-card h2{margin:0;padding:16px 18px 0;font-size:16px;}.new-user-form{grid-template-columns:repeat(6,minmax(120px,1fr));}.visually-hidden{display:none;}
@media (max-width:1100px){.access-profile-form,.new-user-form{grid-template-columns:repeat(3,minmax(0,1fr));}.permission-grid{grid-template-columns:1fr;}}
@media (max-width:650px){.user-access-header{align-items:flex-start;flex-direction:column;}.access-profile-form,.new-user-form{grid-template-columns:1fr;}.permission-legend{display:grid;gap:7px;}.permission-legend span{padding:0;border:0;}.permission-row{align-items:flex-start;flex-direction:column;}.permission-row select{width:100%;}.shop-checkboxes{display:grid;}.access-profile-form .btn{width:100%;}}

/* import/export centres */
.data-tile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:stretch;margin:16px 0 22px;}.data-tile{display:flex;flex-direction:column;align-items:flex-start;gap:9px;min-height:190px;padding:17px;}.data-tile.featured{background:linear-gradient(135deg,var(--accent-soft),var(--surface));border-color:color-mix(in srgb,var(--accent) 35%,var(--border));}.data-tile>span{font-size:23px;line-height:1;}.data-tile h2{font-size:15px;margin:0;}.data-tile p{font-size:12px;color:var(--ink-muted);margin:0;line-height:1.48;}.data-tile code{font-size:10px;word-break:break-word;}.data-tile form{margin-top:auto;display:flex;gap:7px;align-items:center;width:100%;flex-wrap:wrap;}.data-tile input[type=file]{font-size:11px;max-width:100%;}.data-tile .btn{margin-top:auto;}@media(max-width:1050px){.data-tile-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}@media(max-width:620px){.data-tile-grid{grid-template-columns:1fr;}.data-tile{min-height:0;}}
.phone-import-card{max-width:980px;padding:20px;}.phone-import-head h2{margin:3px 0 5px;font-size:18px;}.phone-import-head p{margin:0;font-size:13px;}.phone-import-form{display:grid;grid-template-columns:minmax(260px,1.2fr) minmax(250px,1fr) auto;gap:16px;align-items:end;margin-top:16px;padding:16px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;}.phone-import-form label{display:grid;gap:6px;font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-muted);}.phone-import-form input,.phone-import-form select{min-height:38px;background:var(--surface);}.phone-import-form p{margin:0;line-height:1.55;}.phone-import-form .btn{min-height:38px;white-space:nowrap;}.commit-form{border-top:0;margin-top:12px;grid-template-columns:minmax(150px,.7fr) minmax(220px,1fr) minmax(260px,1.1fr) auto;}.commit-form h3{font-size:15px;margin:3px 0 0;}@media(max-width:820px){.phone-import-form,.commit-form{grid-template-columns:1fr 1fr;}.phone-import-form .btn{width:100%;}.commit-form>div{grid-column:1/-1;}}@media(max-width:540px){.phone-import-card{padding:15px;}.phone-import-form,.commit-form{grid-template-columns:1fr;}.phone-import-form .btn{width:100%;}}
.quick-scan-card{margin-bottom:16px}.quick-scan-card .search-bar{margin:0}.quick-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:12px;font-size:12px;color:var(--ink-muted)}.quick-actions b{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:5px 8px;color:var(--ink)}.scan-camera{margin-top:12px;max-width:420px}.scan-camera video{display:block;width:100%;max-height:300px;object-fit:cover;border-radius:10px;background:#111;margin-bottom:8px}

/* VAT lists remain company-wide, while the signed-in shop is unmistakable. */
.vat-shop-card.is-own-shop{border-color:color-mix(in srgb,var(--accent) 58%,var(--border));box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 13%,transparent),var(--shadow)}.vat-shop-card.is-own-shop>div:first-child{padding:11px 12px;margin:-1px -1px 0;border-radius:inherit;border-bottom-left-radius:0;border-bottom-right-radius:0;background:linear-gradient(100deg,color-mix(in srgb,var(--accent-soft) 72%,var(--surface)),var(--surface))}.own-shop-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 7px;border:1px solid color-mix(in srgb,var(--accent) 42%,var(--border));border-radius:999px;background:var(--surface);color:var(--accent);font-size:10px;font-weight:850;letter-spacing:.025em;white-space:nowrap}

/* Input focus lives on the surrounding customer-return card; otherwise the
   browser's native black focus ring creates a second, distracting rectangle. */
.customer-return-field input,.customer-return-field textarea{outline:none!important}

/* Printable warehouse packing protocol and supplier replacement intake. */
.customer-return-new{margin-bottom:16px;padding:18px;background:linear-gradient(120deg,color-mix(in srgb,var(--accent-soft) 42%,var(--surface)),var(--surface))}.customer-return-form-head{display:flex;justify-content:space-between;gap:16px;align-items:start;margin-bottom:15px}.customer-return-new h2{font-size:17px;margin:0 0 4px}.customer-return-form-head p{margin:0;font-size:12px;color:var(--ink-muted)}.customer-return-form{display:grid;grid-template-columns:1.1fr 1.15fr .72fr .9fr 1.65fr auto;gap:11px;align-items:stretch}.customer-return-field{display:grid;gap:6px;min-width:0;padding:9px 10px 10px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.customer-return-field>span{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.045em;color:var(--ink-faint)}.customer-return-field input,.customer-return-field select,.customer-return-field textarea{width:100%;min-width:0;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;font:inherit;color:var(--ink)}.customer-return-field input,.customer-return-field select{height:25px}.customer-return-field textarea{resize:vertical;min-height:40px;line-height:1.35}.customer-return-field small{font-size:10px;line-height:1.3;color:var(--ink-muted)}.customer-return-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 13%,transparent)}.customer-return-field.imei-field{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:color-mix(in srgb,var(--accent-soft) 30%,var(--surface))}.customer-return-field.imei-field input{font-family:var(--mono,ui-monospace,monospace);font-size:14px;font-weight:800;letter-spacing:.025em}.customer-return-submit{align-self:stretch;min-height:64px;white-space:nowrap}.customer-return-resolve{display:grid;grid-template-columns:1.15fr 1fr 1fr auto;gap:6px;min-width:480px}.customer-return-resolve select,.customer-return-resolve input{min-width:0;background:var(--surface-2)}.sheet-table td small{display:block;font-size:10.5px;color:var(--ink-muted);margin-top:3px}@media(max-width:1120px){.customer-return-form{grid-template-columns:1fr 1fr 1fr}.customer-return-form .reason-field{grid-column:1/-1}.customer-return-submit{min-height:40px}}@media(max-width:700px){.customer-return-form{grid-template-columns:1fr 1fr}.customer-return-form .reason-field,.customer-return-submit{grid-column:1/-1}.customer-return-resolve{grid-template-columns:1fr 1fr;min-width:350px}}@media(max-width:600px){.customer-return-form{grid-template-columns:1fr}.customer-return-form .reason-field{grid-column:auto}.customer-return-form-head{display:block}.customer-return-form-head .badge{display:inline-flex;margin-top:10px}.customer-return-resolve{grid-template-columns:1fr;min-width:220px}.customer-return-resolve .btn{width:100%}}
.subiekt-transfer-import{margin-top:14px;padding:0;overflow:hidden}.subiekt-transfer-import>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;cursor:pointer;list-style:none}.subiekt-transfer-import>summary::-webkit-details-marker{display:none}.subiekt-transfer-import summary small{display:block;margin-top:3px;color:var(--ink-muted);font-size:11px}.subiekt-transfer-body{padding:14px 16px;border-top:1px solid var(--border);background:var(--surface-2)}.subiekt-transfer-form{display:grid;grid-template-columns:1fr 1fr 150px auto;gap:10px;align-items:end}.subiekt-transfer-form label{display:grid;gap:5px;font-size:11px;font-weight:750;color:var(--ink-muted)}.subiekt-transfer-form input,.subiekt-transfer-form textarea{background:var(--surface);min-width:0}.subiekt-paste-area{grid-column:1/-2}.subiekt-transfer-form .btn{min-height:38px}.subiekt-preview{margin-top:14px;padding:13px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.subiekt-preview-head{display:flex;justify-content:space-between;gap:12px;align-items:start;margin-bottom:10px}.subiekt-preview-head b,.subiekt-preview-head small{display:block}.subiekt-preview-head small{font-size:11px;color:var(--ink-muted);margin-top:3px}.subiekt-preview-table{min-width:900px}.subiekt-preview-table td small{display:block;font-size:10.5px;color:var(--ink-muted);margin-top:2px}.subiekt-commit-form{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:12px}@media(max-width:760px){.subiekt-transfer-form{grid-template-columns:1fr 1fr}.subiekt-paste-area{grid-column:1/-1}.subiekt-transfer-form .btn{grid-column:1/-1}.subiekt-commit-form{display:grid}.subiekt-commit-form .btn{width:100%}}

/* Live collaboration inside a warehouse delivery.  It stays deliberately
   compact so it communicates safety/status without stealing table space. */
.live-delivery-panel{display:flex;align-items:center;gap:8px;min-height:34px;margin:0 0 11px;padding:7px 10px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2);font-size:12px;font-weight:700;color:var(--ink-muted)}.live-delivery-dot{width:8px;height:8px;border-radius:50%;background:var(--ink-faint);flex:0 0 auto}.live-delivery-panel.is-connected .live-delivery-dot{background:var(--good);box-shadow:0 0 0 4px var(--good-soft)}.live-delivery-panel.has-pending-change{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:color-mix(in srgb,var(--accent-soft) 46%,var(--surface));color:var(--ink)}.live-delivery-panel.has-conflict{border-color:color-mix(in srgb,var(--crit) 48%,var(--border));background:var(--crit-soft);color:var(--crit-ink)}.live-delivery-panel .btn{margin-left:auto;white-space:nowrap}
.live-platform-toast{position:fixed;right:20px;bottom:20px;z-index:2200;display:flex;align-items:center;gap:8px;max-width:min(430px,calc(100vw - 32px));padding:10px 11px;border:1px solid color-mix(in srgb,var(--accent) 40%,var(--border));border-radius:10px;background:var(--surface);box-shadow:0 12px 32px color-mix(in srgb,#000 20%,transparent);font-size:12px;font-weight:750;color:var(--ink)}.live-platform-toast .live-delivery-dot{background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.live-platform-toast .btn{margin-left:auto;white-space:nowrap}.live-platform-toast.has-conflict{border-color:color-mix(in srgb,var(--crit) 48%,var(--border));background:var(--crit-soft);color:var(--crit-ink)}@media(max-width:620px){.live-platform-toast{right:10px;bottom:10px}}
.shipment-protocol{max-width:980px}.shipment-protocol h2{margin:2px 0 10px}.protocol-signatures{display:grid;grid-template-columns:1fr 1fr;gap:36px;margin-top:48px;font-size:13px}.replacement-row td{background:var(--surface-2);padding:10px!important}.replacement-form{display:grid;grid-template-columns:1.2fr 1fr .7fr 1fr .55fr .55fr .55fr auto;gap:7px;align-items:center}.replacement-form>b,.replacement-form>span{grid-column:1/-1}@media(max-width:900px){.replacement-form{grid-template-columns:repeat(2,minmax(0,1fr))}.replacement-form .btn{grid-column:1/-1}}@media print{.print-hide,.topbar,.sidebar{display:none!important}.main{margin:0!important;padding:0!important}.shipment-protocol{box-shadow:none!important;border:0!important;max-width:none!important}}

/* Compact user directory: the 40-person view stays readable until a row is opened. */
.user-directory-heading{display:flex;align-items:end;justify-content:space-between;gap:18px}.user-directory-search{display:flex;align-items:center;gap:9px;min-width:min(390px,100%);padding:0 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);box-shadow:var(--shadow)}.user-directory-search span{font-size:20px;color:var(--accent);font-weight:800}.user-directory-search input{width:100%;height:42px;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}.user-directory-row{display:grid;grid-template-columns:minmax(250px,1.2fr) minmax(180px,.8fr) auto}.user-identity{display:flex;align-items:center;gap:10px;min-width:0}.user-avatar{display:grid;place-items:center;width:33px;height:33px;border-radius:10px;background:var(--accent-soft);color:var(--accent);font-size:15px;font-weight:850;flex:0 0 auto}.user-directory-scope{display:flex;gap:5px;flex-wrap:wrap;align-items:center}.user-shop-chip,.exception-group-chip{display:inline-flex;align-items:center;padding:3px 7px;border:1px solid var(--border);border-radius:999px;background:var(--surface);font-size:10.5px;font-weight:750;color:var(--ink-muted);white-space:nowrap}.user-exception-strip,.user-default-strip,.user-scope-note{display:flex;gap:7px;flex-wrap:wrap;align-items:center;padding:9px 18px;border-bottom:1px solid var(--border);font-size:11px}.user-exception-strip{background:color-mix(in srgb,var(--warn-soft) 52%,var(--surface));color:var(--ink)}.exception-group-chip{border-color:color-mix(in srgb,var(--warn) 34%,var(--border));color:var(--warn-ink)}.user-default-strip,.user-scope-note{color:var(--ink-muted);background:var(--surface)}.user-directory-tools{background:var(--surface)}.user-profile-editor,.password-reset{border-top:1px solid var(--border)}.user-profile-editor>summary,.password-reset>summary{cursor:pointer;padding:13px 18px;font-size:13px;font-weight:750;list-style:none}.user-profile-editor>summary::-webkit-details-marker,.password-reset>summary::-webkit-details-marker{display:none}.user-profile-editor[open]>summary,.password-reset[open]>summary{background:var(--surface-2);border-bottom:1px solid var(--border)}.password-reset-form{display:grid;grid-template-columns:minmax(170px,1fr) minmax(170px,1fr) auto;gap:10px;align-items:end;padding:13px 18px}.password-reset-form label{display:grid;gap:5px;font-size:11px;font-weight:750;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.025em}.password-reset-form input{min-height:36px;background:var(--surface)}.permission-group.has-exception{border-color:color-mix(in srgb,var(--warn) 46%,var(--border))}.permission-group-marker{float:right;padding:2px 6px;border-radius:999px;background:var(--warn-soft);color:var(--warn-ink);font-size:10px;font-weight:800}
@media (max-width:1100px){.user-directory-row{grid-template-columns:1fr auto}.user-directory-scope{grid-column:1/-1}}@media (max-width:650px){.user-directory-heading{align-items:stretch;flex-direction:column}.user-directory-search{min-width:0}.user-directory-row{display:flex}.password-reset-form{grid-template-columns:1fr}}


/* Shop hub: contact card, team roster and compact operational previews. */
.shop-hub-hero{margin:0 0 14px;padding:18px}.shop-hub-hero-top{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:16px}.shop-hub-hero h2{margin:2px 0 4px;font-size:22px}.shop-hub-hero p{margin:0;font-size:13px}.shop-contact-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:12px}.shop-contact-grid>div{display:grid;gap:5px;align-content:start;padding:11px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:9px}.shop-contact-grid span{font-size:10.5px;font-weight:800;letter-spacing:.045em;text-transform:uppercase;color:var(--ink-faint)}.shop-contact-grid b{font-size:13px;line-height:1.4;min-height:20px}.shop-profile-input{width:100%;min-height:36px}.shop-contact-grid textarea.shop-profile-input{resize:vertical;min-height:54px}.shop-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin:0 0 14px}.shop-kpi{display:grid;gap:3px;padding:13px 14px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow)}.shop-kpi span,.shop-kpi small{font-size:11px;color:var(--ink-muted)}.shop-kpi span{text-transform:uppercase;font-weight:800;letter-spacing:.04em}.shop-kpi b{font:800 24px/1.05 Consolas,"IBM Plex Mono",monospace;color:var(--accent)}.shop-hub-grid,.shop-preview-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:14px;align-items:start;margin:0 0 14px}.shop-team-card{padding:17px}.shop-team-card .section-head{margin-bottom:8px}.shop-team-card .section-head p{font-size:12px}.shop-team-list{display:grid}.shop-team-row{display:grid;grid-template-columns:12px 1fr auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}.shop-team-row:last-child{border-bottom:0}.shop-team-row b{display:block;font-size:13px}.shop-team-row small{display:block;font-size:11px;color:var(--ink-muted);margin-top:2px}.duty-dot{width:9px;height:9px;border-radius:50%;background:var(--border-strong)}.duty-dot.on{background:var(--good);box-shadow:0 0 0 4px var(--good-soft)}.team-phone{font-size:12px;color:var(--ink-muted);white-space:nowrap}.shop-accordion{padding:0;overflow:hidden;margin:0 0 14px}.shop-accordion>summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;list-style:none}.shop-accordion>summary::-webkit-details-marker{display:none}.shop-accordion>summary:hover{background:var(--surface-2)}.shop-accordion>summary b,.shop-accordion>summary small{display:block}.shop-accordion>summary b{font-size:14px}.shop-accordion>summary small{font-size:11.5px;color:var(--ink-muted);margin-top:3px}.shop-accordion-body{border-top:1px solid var(--border);padding:13px 15px;background:color-mix(in srgb,var(--surface-2) 48%,var(--surface))}.schedule-list{display:grid;gap:6px}.schedule-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:8px 10px;border:1px solid var(--border);border-radius:7px;background:var(--surface)}.schedule-row.is-current{border-color:color-mix(in srgb,var(--good) 50%,var(--border));background:var(--good-soft)}.schedule-row b,.schedule-row small{display:block}.schedule-row b{font-size:12.5px}.schedule-row small{font-size:11px;color:var(--ink-muted);margin-top:2px}.schedule-row form{margin:0}.schedule-add-form{display:grid;grid-template-columns:1.3fr 1fr .75fr .75fr 1fr auto;gap:8px;align-items:end;margin-top:11px;padding-top:11px;border-top:1px solid var(--border)}.schedule-add-form label{display:grid;gap:4px;font-size:10.5px;text-transform:uppercase;letter-spacing:.035em;font-weight:800;color:var(--ink-faint)}.schedule-add-form input,.schedule-add-form select{min-height:34px;min-width:0;background:var(--surface)}.shop-preview-table{margin-bottom:10px}.shop-preview-table th,.shop-preview-table td{padding:7px 9px;font-size:12px}.shipment-phone-list{display:grid;grid-template-columns:auto 1fr;gap:5px 9px;margin-top:10px;font-size:12px}.shop-shipment-create{margin-top:14px}@media(max-width:980px){.shop-contact-grid,.shop-kpi-grid,.shop-hub-grid,.shop-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.shop-hub-grid>.shop-team-card{grid-column:1/-1}.schedule-add-form{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:620px){.shop-hub-hero-top{display:block}.shop-hub-hero-top>.badge{display:inline-flex;margin-top:9px}.shop-contact-grid,.shop-kpi-grid,.shop-hub-grid,.shop-preview-grid{grid-template-columns:1fr}.shop-team-row{grid-template-columns:10px 1fr}.team-phone{grid-column:2}.schedule-add-form{grid-template-columns:1fr 1fr}.schedule-add-form label:first-child,.schedule-add-form label:nth-child(5),.schedule-add-form .btn{grid-column:1/-1}.shop-accordion>summary{padding:13px}.shop-accordion-body{padding:11px}.shop-preview-table{min-width:570px}}
