/* SellyHub everyday interface. Shared by every public, customer and operator page.
   Semantic colors live in sellyhub-theme.css, including lazy vendor widgets. */
html { scroll-padding-top:6rem; }
body { line-height:1.65; }
.sh-workspace-body, .sh-public { font-family:var(--sh-font); font-weight:400; -webkit-font-smoothing:antialiased; }
.sh-workspace-body :is(.title,.input,.btn), .sh-public :is(.sh-button,.input,.btn) { font-family:inherit; }
:is(.sh-workspace-body,.sh-public) :is(button,summary,select,[type="checkbox"],[type="radio"],a[href]) { cursor:pointer; }
:is(.sh-workspace-body,.sh-public) :is(button,input,textarea,select) { font:inherit; }
:is(.sh-workspace-body,.sh-public) :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible {
  outline:3px solid var(--c-punch); outline-offset:3px;
}
:is(.sh-workspace-body,.sh-public) :is(button,input,select,textarea):disabled { cursor:not-allowed; }
:is(.sh-workspace-body,.sh-public) [hidden] { display:none!important; }
::selection { background:color-mix(in srgb,var(--c-punch),transparent 78%); color:var(--c-ink); }

/* Shell: clear orientation, comfortably sized navigation, one page of work at a time. */
.admin-shell .admin-sidebar {
  background:var(--c-panel); color:var(--c-ink); border-right:1px solid var(--c-line);
  --c-panel:inherit; --c-panel2:inherit; --c-ink:inherit; --c-muted:inherit;
  --c-line:inherit; --c-punch:inherit; --c-onaccent:inherit; --c-hover:inherit;
}
.admin-shell .admin-sidebar { background:var(--sh-surface); color:var(--sh-ink); border-color:var(--sh-line); }
.admin-shell .admin-sidebar-brand { min-height:5.25rem; padding:1rem 1.2rem .75rem; }
.admin-shell .sh-workspace-brand-copy { gap:.55rem; }
.admin-shell .sh-workspace-brand-copy small { color:var(--sh-muted); font-size:.8rem; letter-spacing:0; }
.admin-shell .nav-drawer-scroll { gap:.4rem; padding:.5rem .85rem 1rem; }
.admin-shell .nav-drawer-scroll .nav-group { margin-top:0; padding-top:0; }
.admin-shell [data-portal-section] { font-size:.8rem; font-weight:600; color:var(--sh-muted); letter-spacing:0; padding-inline:.8rem; }
.admin-shell [data-portal-nav] { min-height:46px; font-size:.9375rem; font-weight:500; color:var(--sh-muted); gap:.75rem; border-radius:.65rem; padding:.65rem .85rem; }
.admin-shell [data-portal-nav]>.icon { width:1.2rem; height:1.2rem; flex-shrink:0; opacity:.85; }
.admin-shell [data-portal-nav]:hover { background:var(--sh-tint); color:var(--sh-ink); }
.admin-shell [data-portal-nav][aria-current="page"] { background:var(--c-panel2); color:var(--c-ink); font-weight:600; }
html.dark .admin-shell [data-portal-nav][aria-current="page"] { background:var(--c-panel2); color:var(--c-ink); }
.admin-shell [data-portal-nav][aria-current="page"]::before { display:none; }
.admin-shell .nav-drawer-footer { background:var(--sh-surface); border:0; border-top:1px solid var(--sh-line); padding:.9rem .4rem; margin:0 .85rem; }
.admin-shell .nav-drawer-footer :is(.btn,.chip) { color:var(--sh-ink); border-color:var(--sh-line); font-size:.8rem; }
.admin-shell .nav-drawer-footer .text-muted { color:var(--sh-muted); }
.admin-shell .nav-drawer-header { border-color:var(--sh-line); }
.sh-nav-search { display:flex; align-items:center; gap:.5rem; margin:.5rem 1rem .8rem; padding:0 .7rem; min-height:44px; border:1px solid var(--sh-line); border-radius:.65rem; color:var(--sh-muted); background:var(--sh-paper); }
.sh-nav-search input { width:100%; min-width:0; border:0; background:transparent; color:var(--sh-ink); font-size:.875rem; outline:0; min-height:44px; }
.sh-nav-search:focus-within { outline:2px solid var(--sh-ink); outline-offset:2px; }
.sh-nav-search .icon { flex-shrink:0; width:18px; }
.sh-nav-empty { padding:.75rem; font-size:.875rem; color:var(--sh-muted); }
.admin-shell .admin-header { min-height:calc(4.25rem + env(safe-area-inset-top)); background:var(--c-panel); gap:1rem; border-bottom:1px solid var(--c-line); }
.admin-shell .admin-header-title { font-size:1.05rem; font-weight:600; letter-spacing:0; }
.sh-header-context { display:flex; align-items:center; gap:.65rem; min-width:0; }
.sh-role-label { font-size:.75rem; color:var(--c-muted); background:var(--c-panel2); padding:.25rem .65rem; border-radius:2rem; white-space:nowrap; }
.admin-shell .admin-header-actions { gap:.5rem; }
.admin-shell .btn-punch { background:var(--c-danger); border-color:var(--c-danger); color:var(--c-onaccent); }
.admin-shell .admin-header-actions .chip { font-size:.875rem; min-height:40px; }
.admin-shell .admin-workspace { max-width:100rem; width:100%; margin-inline:auto; padding:1.75rem clamp(1rem,2.7vw,2.5rem) 2.5rem; }
.sh-breadcrumb { display:flex; align-items:center; flex-wrap:wrap; gap:.55rem; margin-bottom:1.25rem; font-size:.8125rem; color:var(--c-muted); }
.sh-breadcrumb a { display:inline-flex; align-items:center; min-height:32px; gap:.4rem; text-decoration:none; }
.sh-breadcrumb a:hover { color:var(--c-punch); text-decoration:underline; }
.sh-breadcrumb [aria-current] { color:var(--c-ink); }
.sh-mobile-nav { display:none; }

/* Content primitives cover every view, including fleet, finance, DNS and security. */
.shw-page, .operator-workspace, .operator-overview { gap:1.5rem; }
.shw-page-header { align-items:center; gap:1.25rem; padding:0 0 .4rem; }
.shw-page-heading h2, .shw-page-header h2.title { font-size:1.75rem; line-height:1.45; letter-spacing:-.025em; }
.shw-page-heading>p:last-child, .shw-page-intro { font-size:1rem; line-height:1.8; max-width:70ch; }
.shw-eyebrow, .shw-kicker { font-size:.8125rem; color:var(--c-punch); font-weight:600; margin-bottom:.35rem; }
.admin-shell .card { border-radius:.85rem; border:1px solid var(--c-line); box-shadow:none; }
.admin-shell :is(.label,.form-note,.settings-note,.shw-field-help,.shw-section-heading p,.shw-empty p,.shw-callout,.shw-note,.shw-step-list) { font-size:.9375rem; line-height:1.8; }
.admin-shell :is(.text-xs,.reference,.shw-stat-action,.shw-pagination,.shw-inline-steps,.shw-step-list:has(.is-current) li) { font-size:.8125rem; line-height:1.7; }
.admin-shell .text-sm { font-size:.9375rem; line-height:1.7; }
.admin-shell .label { margin-bottom:.5rem; }
.admin-shell .btn { min-height:46px; font-size:.9375rem; padding:.7rem 1rem; border-radius:.65rem; gap:.5rem; }
.admin-shell .btn-sm { min-height:44px; font-size:.875rem; padding:.55rem .85rem; }
.admin-shell .btn-primary { box-shadow:0 2px 3px var(--c-shadow); }
.admin-shell .btn-ghost:hover { border-color:var(--c-muted); }
.admin-shell .btn-danger:hover { color:var(--c-onaccent); background:var(--c-danger); border-color:var(--c-danger); }
.admin-shell :is(.input,select.input) { min-height:48px; font-size:1rem; padding:.7rem .85rem; border-radius:.65rem; }
.admin-shell textarea.input { min-height:7rem; resize:vertical; }
.admin-shell .input[readonly] { background:var(--c-panel2); color:var(--c-muted); }
.admin-shell :is(.input,[type="checkbox"],[type="radio"]) { accent-color:var(--c-punch); }
.admin-shell :is(.chip,.status) { font-size:.8125rem; line-height:1.5; padding:.35rem .7rem; }
.admin-shell .status { display:inline-flex; align-items:center; gap:.45rem; border:1px solid var(--c-line); white-space:normal; }
.admin-shell .status::before { content:''; width:.4rem; height:.4rem; flex-shrink:0; border-radius:50%; background:currentColor; }
.admin-shell .status:is(.pending,.provisioning,.running,.needs_review,.queued,.retrying) { background:color-mix(in srgb,var(--c-warn),var(--c-panel) 93%); color:var(--c-warn); }
.admin-shell .status:is(.ready,.succeeded,.credited,.active) { color:var(--c-ok); background:color-mix(in srgb,var(--c-ok),var(--c-panel) 92%); }
.admin-shell .status:is(.failed,.rejected,.suspended,.closed) { color:var(--c-danger); }
.admin-shell :is(.notice,.form-error) { font-size:.9375rem; line-height:1.8; padding:1rem 1.15rem; border-radius:.75rem; }
.admin-shell .form-feedback { border-left:4px solid var(--c-ok); background:color-mix(in srgb,var(--c-ok),var(--c-panel) 95%); }
.admin-shell .form-error { background:color-mix(in srgb,var(--c-danger),var(--c-panel) 95%); border-left:4px solid var(--c-danger); }
.admin-shell :is(.shw-section,.card.p-5) { padding:1.5rem; }
.admin-shell .shw-section-heading :is(h2,h3) { font-size:1.125rem; }
.admin-shell .shw-section-heading { margin-bottom:1rem; }
.admin-shell .shw-form-grid { gap:1.25rem; }
.admin-shell .shw-form-footer { padding-top:1.25rem; gap:.75rem; }
.admin-shell .shw-form-footer .btn-primary { min-width:10rem; }
.admin-shell .shw-filter-panel { background:var(--c-panel2); padding:1.1rem; gap:1rem; }
.admin-shell :is(.shw-related-links>a,.operator-section-tabs>a) { font-size:.9375rem; min-height:44px; border-radius:.65rem; }
.admin-shell .shw-related-links a:target { color:var(--c-punch); }
.admin-shell :is(section,details)[id] { scroll-margin-top:6rem; }
.admin-shell .shw-stat-card { position:relative; padding:1.35rem; gap:.65rem; border-top:3px solid color-mix(in srgb,var(--c-punch),var(--c-panel) 50%); }
.admin-shell .shw-stat-card>strong { font-size:2.25rem; font-variant-numeric:tabular-nums; }
.admin-shell :is(.portal-summary dd,.wallet-total,.operator-traffic-summary dd) { font-variant-numeric:tabular-nums; }
.admin-shell .dash-metrics dl.portal-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:1.35rem 1.5rem; gap:1rem; }
.admin-shell .dash-metrics dl.portal-summary>div { border:0; border-radius:.75rem; background:var(--c-panel2); padding:1.1rem; min-width:0; }
.admin-shell .dash-metrics dl.portal-summary dt { font-size:.9375rem; }
.admin-shell .dash-metrics dl.portal-summary dd { font-size:2rem; }
.admin-shell .shw-empty { min-height:12rem; padding:2.5rem 1.5rem; }
.admin-shell .shw-empty-symbol { background:color-mix(in srgb,var(--c-punch),var(--c-panel) 92%); }
.admin-shell :is(.shw-danger-panel,.shw-lifecycle-panel) { margin-top:1rem; }
.admin-shell .shw-danger-panel { background:color-mix(in srgb,var(--c-danger),var(--c-panel) 97%); }
.admin-shell .shw-checkout-summary, .admin-shell .payment-balance { border-top:3px solid var(--c-punch); }
.admin-shell .shw-checkout-summary { top:6rem; }
.admin-shell .settings-page>.form-section { padding:1.5rem; border:1px solid var(--c-line); border-radius:1rem; background:var(--c-panel); margin-top:1.5rem; }
.admin-shell .shw-plan-choice { padding:1.35rem; gap:.75rem; }
.admin-shell .shw-plan-choice:has(input:focus-visible) { outline:3px solid var(--c-punch); outline-offset:3px; }
.admin-shell .shw-plan-choice:has(input:disabled) { opacity:1; background:var(--c-panel2); color:var(--c-muted); }
.sh-section-switch { position:relative; width:100%; padding:.8rem 1rem; border:1px solid var(--c-line); border-radius:.8rem; background:var(--c-panel); }
.sh-section-switch>summary { min-height:36px; font-size:.9375rem; font-weight:600; }
.sh-section-switch>summary span { color:var(--c-muted); font-weight:400; margin-left:.5rem; }
.sh-section-switch .operator-section-tabs { display:flex; flex-wrap:wrap; gap:.5rem; border:0; padding:.9rem 0 .2rem; margin:0; overflow:visible; }
.sh-section-switch .operator-section-tabs a { padding:.6rem 1rem; border:1px solid var(--c-line); background:var(--c-panel); box-shadow:none; }
.sh-section-switch .operator-section-tabs a[aria-current] { color:var(--c-punch); border-color:var(--c-punch); background:color-mix(in srgb,var(--c-punch),var(--c-panel) 95%); }

/* Tables retain native semantics; labelled rows become cards on narrow screens. */
.admin-shell :is(.shw-table,.admin-category-table,.table-wrap table) { font-size:.9375rem; }
.admin-shell :is(.shw-table,.admin-category-table,.table-wrap table) :is(th,td) { padding:1rem 1.15rem; line-height:1.7; }
.admin-shell :is(.shw-table,.admin-category-table,.table-wrap table) th { color:var(--c-muted); font-size:.8125rem; font-weight:600; background:var(--c-panel2); }
.admin-shell :is(.shw-table-wrap,.table-wrap,.admin-table-wrap) { overscroll-behavior-inline:contain; scrollbar-width:thin; scrollbar-color:var(--c-muted) var(--c-panel2); }
.admin-shell td :is(.admin-category-controls,.operator-actions) { gap:.5rem; }
.admin-shell :is(.reference,code,pre) { overflow-wrap:anywhere; }
.admin-shell .review-summary { min-width:0; max-width:100%; overflow-wrap:anywhere; }
.admin-shell pre { white-space:pre-wrap; }
.admin-shell :is(.operator-list-grid,.settings-directory-list,.operator-shortcuts) { gap:1rem; }
.admin-shell .operator-row { border:1px solid var(--c-line); border-radius:.85rem; box-shadow:none; }
.admin-shell .operator-row>summary { padding:1.15rem; min-height:64px; }
.admin-shell .operator-row[open] { border-color:var(--c-muted); }
.admin-shell .operator-row-body { padding:1.25rem; background:var(--c-panel); }
.admin-shell .display-popover { background:var(--c-panel); padding:1.25rem; border:1px solid var(--c-line); box-shadow:0 12px 40px var(--c-shadow); max-height:calc(100dvh - 7rem); overflow:auto; }

/* Password visibility is presentation-only: original controls and names stay intact. */
.sh-password-field { display:flex; align-items:stretch; position:relative; width:100%; min-width:0; }
.sh-password-field>.input { width:100%; padding-right:4.8rem!important; margin-top:0!important; }
.sh-password-toggle { position:absolute; inset:.25rem .3rem .25rem auto; min-height:40px; min-width:3.8rem; border:0; border-radius:.45rem; padding:.3rem .55rem; font-size:.8125rem!important; font-weight:600!important; background:transparent; color:var(--c-punch); }
.sh-password-toggle:hover { background:var(--c-panel2); }

/* Public pages and all four authentication modes use the same everyday scale. */
.sh-public { background:var(--c-base); color:var(--c-ink); }
.sh-public .sh-header { background:var(--c-panel); border-bottom:1px solid var(--c-line); }
.sh-public :is(.sh-button,.sh-theme-button,.sh-menu-button,.sh-logout,.sh-language-trigger) { border-radius:.65rem; min-height:44px; }
.sh-public .sh-desktop-nav a { font-size:.9375rem; min-height:44px; display:inline-flex; align-items:center; }
.sh-public :is(.sh-section-lead,.sh-hero-copy>p,.sh-plan p,.sh-faq-list p,.sh-blog-card p,.sh-auth-panel-heading>p:last-child) { font-size:1rem; line-height:1.85; }
.sh-public :is(.sh-kicker,.sh-auth-eyebrow) { font-size:.8125rem; letter-spacing:.025em; }
.sh-public :is(.sh-step,.sh-plan,.sh-blog-card,.sh-faq-list details) { border-radius:1rem; }
.sh-public .sh-hero-art { border-radius:1.5rem; }
.sh-public .sh-hero-copy h1 { letter-spacing:-.035em; }
.sh-public .sh-article-body { font-size:1.0625rem; line-height:1.95; }
.sh-public .sh-article-body :is(p,li) { max-width:70ch; }
.sh-auth { width:min(calc(100% - 3rem),68rem); margin:2.5rem auto; box-shadow:0 10px 35px var(--c-shadow); }
.sh-auth .sh-auth-panel { padding:clamp(1.5rem,3.5vw,3.5rem); }
.sh-auth :is(.label,.sh-auth-mfa summary,.sh-auth-link,.sh-auth-field-note,.sh-auth-bottom) { font-size:.9375rem; line-height:1.75; }
.sh-auth .input { min-height:50px; font-size:1rem; }
.sh-auth .sh-auth-submit { min-height:50px; font-size:1rem; border-radius:.65rem; }
.sh-auth .sh-auth-story { background:var(--c-panel2); gap:1.75rem; padding:2.25rem; }
.sh-auth .sh-auth-story-copy h2 { font-size:clamp(1.8rem,2.8vw,2.6rem); line-height:1.35; }
.sh-auth .sh-auth-store { max-width:23rem; margin-inline:auto; }
.sh-auth .sh-auth-store-products svg { width:3rem; }
.sh-auth .sh-auth-story-foot { padding-top:.5rem; }
.sh-auth .sh-auth-panel { align-self:start; }
.sh-auth .sh-auth-story-copy h2 span { color:var(--c-ink); }
.sh-auth .sh-auth-store { transform:none; box-shadow:0 10px 30px #00000018; }
.sh-auth .sh-auth-store-label { transform:none; right:.75rem; }

/* Task-first screens: direct actions, compact summaries and optional detail. */
.sh-store-count { display:inline-flex; align-items:center; justify-content:center; min-width:1.8rem; height:1.8rem; margin-inline-start:.4rem; padding:0 .4rem; border-radius:.45rem; background:var(--c-panel2); color:var(--c-muted); font-size:1rem; vertical-align:middle; }
.shw-page-heading .sh-store-summary { font-size:.875rem; margin-top:.25rem; }
.sh-store-toolbar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.75rem; padding:1rem 1.25rem; }
.sh-store-search { display:flex; align-items:center; gap:.6rem; width:min(100%,23rem); min-height:44px; padding:.4rem .7rem; background:var(--c-base); border:1px solid var(--c-line); border-radius:.6rem; color:var(--c-muted); }
.sh-store-search>span { display:flex; }
.sh-store-search .icon { width:1.15rem; height:1.15rem; }
.sh-store-search input { min-width:0; width:100%; border:0; background:transparent; color:var(--c-ink); outline:none; font-size:1rem; }
.sh-store-search:focus-within { outline:2px solid var(--c-punch); outline-offset:2px; }
.admin-shell .sh-store-table { table-layout:auto; }
.admin-shell .sh-store-table th:first-child { width:40%; }
.admin-shell .sh-store-table th:last-child { width:15rem; }
.admin-shell .sh-store-table .admin-category-controls { min-width:11rem; }
.admin-shell .sh-store-table .btn { white-space:nowrap; }
.admin-shell .sh-store-table .admin-category-identity { gap:.85rem; align-items:center; }
.sh-store-symbol { display:grid; place-items:center; flex-shrink:0; width:2.75rem; height:2.75rem; border:1px solid var(--c-line); border-radius:.65rem; background:var(--c-panel2); color:var(--c-muted); }
.sh-store-symbol .icon { width:1.3rem; height:1.3rem; }
.sh-store-no-results { padding:2rem 1.25rem; text-align:center; color:var(--c-muted); }
.admin-shell .sh-support-disclosure { padding:.25rem 0; max-width:42rem; }
.sh-support-disclosure[open] { padding-bottom:1rem; }
.admin-shell .sh-create-form { align-items:start; gap:1.25rem; }
.admin-shell .sh-create-form .shw-plan-choice { flex-direction:row; align-items:start; padding:1rem; gap:.8rem; }
.sh-create-form .shw-plan-choice input { margin-top:.3rem; width:1rem; height:1rem; flex-shrink:0; }
.sh-plan-option { min-width:0; }
.sh-create-form .shw-help-panel { padding:.25rem 0 0; border-top:1px solid var(--c-line); }
.sh-create-form .admin-product-actions { margin:0; padding-top:1rem; border-top:1px solid var(--c-line); }
.sh-rental-nav { display:flex; flex-wrap:wrap; gap:.25rem 1.25rem; border-bottom:1px solid var(--c-line); padding-bottom:.4rem; }
.sh-rental-nav a { display:inline-flex; align-items:center; min-height:44px; font-size:.9375rem; color:var(--c-muted); text-decoration:none; }
.sh-rental-nav a:hover { color:var(--c-punch); }
.rental-overview .shw-primary-actions { margin-top:1.2rem; }
.rental-overview .shw-help-panel { padding:.25rem 0; }
.shw-operation-history>summary { min-height:44px; align-content:center; }
.shw-operation-history .operation-list { margin-top:.5rem; }
.sh-operator-section-switch { display:none; }
.operator-filters:has(.sh-filter-primary) { display:block; }
.sh-filter-primary { display:flex; align-items:end; flex-wrap:wrap; gap:.75rem; }
.sh-filter-primary>label { flex:1 1 12rem; }
.sh-filter-primary>label:first-child { flex:2 1 18rem; }
.sh-filter-primary .operator-filter-actions { display:flex; gap:.5rem; }
.sh-filter-more { margin-top:.75rem; border-top:1px solid var(--c-line); }
.sh-filter-more>summary, .sh-help-disclosure>summary { min-height:44px; align-content:center; font-size:.875rem; color:var(--c-muted); }
.sh-filter-fields { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr)); gap:.75rem; padding:.5rem 0; }
.sh-filter-fields>.label { min-width:0; }
.sh-operator-caution { margin:.75rem 0 1.25rem; font-size:.875rem; line-height:1.75; color:var(--c-muted); max-width:75ch; }
.operator-counters.sh-operator-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; border-block:1px solid var(--c-line); }
.sh-operator-summary .operator-counter { display:flex; flex-direction:column; gap:.3rem; padding:1.1rem 1rem; border-radius:0; border:0; background:transparent; color:var(--c-ink); text-decoration:none; }
.sh-operator-summary .operator-counter:hover { background:var(--c-panel2); }
.sh-operator-summary .operator-counter>strong { font-size:1.8rem; font-weight:600; line-height:1.4; font-variant-numeric:tabular-nums; }
.operator-chart-controls>[data-operator-refresh] { align-self:flex-end; }
.admin-shell .operator-chart-controls>.label { margin-bottom:0; }
.sh-operator-links { display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; }
.sh-operator-links>a { display:inline-flex; align-items:center; gap:.75rem; min-height:44px; color:var(--c-muted); font-size:.9375rem; }
.sh-operator-links>a:hover { color:var(--c-punch); }
.sh-guide-list { list-style:none; margin:0; padding:0; border-top:1px solid var(--sh-line); }
.sh-guide-list a { display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:56px; padding:1rem 0; border-bottom:1px solid var(--sh-line); }
.sh-guide-list a:hover { color:var(--c-punch); }
.sh-guide-list small { flex-shrink:0; color:var(--sh-muted); font-size:.8125rem; }
.sh-public:has(.sh-home-guides) .sh-section { padding-block:4rem; }
.sh-public:has(.sh-home-guides) .sh-how-section { padding-block:3rem; }
.sh-public:has(.sh-home-guides) .sh-section-heading { margin-bottom:2rem; }
@media(max-width:1100px) {
  .admin-shell .sh-store-table .admin-category-controls { flex-wrap:wrap; }
  .operator-counters.sh-operator-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:767px) {
  .sh-operator-section-switch { display:block; }
  .sh-store-toolbar { padding:.75rem; }
  .sh-store-search { width:100%; }
  .sh-store-toolbar>[data-store-results] { display:none; }
  .admin-shell .sh-store-directory .sh-store-table td[data-label] { display:grid; grid-template-columns:5.5rem minmax(0,1fr); align-items:center; gap:.5rem; padding:.45rem .25rem; }
  .admin-shell .sh-store-directory .sh-store-table td[data-label="เว็บไซต์"] { display:block; padding-bottom:.8rem; }
  .admin-shell .sh-store-directory .sh-store-table.admin-category-table td[data-label="เว็บไซต์"]::before { content:none; display:none; }
  .admin-shell .sh-store-table .admin-category-identity-copy { overflow-wrap:anywhere; }
  .admin-shell .sh-store-table .admin-category-controls { width:100%; }
  .admin-shell .sh-store-directory .sh-store-table.admin-category-table td[data-label="จัดการ"]::before { content:none; display:none; }
  .admin-shell .sh-store-directory .sh-store-table td[data-label="จัดการ"] { display:block; margin-top:.5rem; }
  .admin-shell .sh-store-directory .sh-store-table.admin-category-table tbody tr { display:block; }
  .sh-store-directory .status { justify-self:start; }
  .admin-shell .operator-table tbody tr>td:first-child { grid-column:1/-1; text-align:left; }
  .sh-filter-primary { align-items:stretch; }
  .sh-filter-primary>label, .sh-filter-primary>label:first-child { flex:1 1 100%; }
  .sh-guide-list a { align-items:start; flex-direction:column; gap:.3rem; }
  .sh-public:has(.sh-home-guides) .sh-section { padding-block:2.5rem; }
  .sh-public:has(.sh-home-guides) .sh-how-section { padding-block:2.5rem; }
}
@media(max-width:400px) {
  .sh-operator-summary .operator-counter { padding:.85rem .65rem; }
  html[data-text-size="larger"] .operator-counters.sh-operator-summary { grid-template-columns:minmax(0,1fr); }
}

/* Lazy vendor styles load after the shell. Specific selectors keep theme colors stable. */
body .swal2-container { z-index:1500; padding:1rem; font-family:var(--sh-font,"Sarabun",Tahoma,sans-serif); }
body .swal2-popup { background:var(--c-panel); color:var(--c-ink); border:1px solid var(--c-line); border-radius:1.1rem; box-shadow:0 24px 80px #00000035; width:32rem; max-width:100%; padding:1.25rem; font:inherit; }
body .swal2-title { font-size:1.45rem; line-height:1.5; padding:.75rem 1rem 0; }
body .swal2-html-container { color:var(--c-muted); font-size:1rem; line-height:1.8; overflow-wrap:anywhere; }
body .swal2-actions { gap:.75rem; width:100%; }
body .swal2-styled { min-height:46px; margin:0; padding:.7rem 1.2rem; font:inherit; border-radius:.65rem; box-shadow:none; }
body .swal2-styled.swal2-confirm { background:var(--c-punch); color:var(--c-onaccent); }
body .swal2-styled.swal2-cancel { background:var(--c-panel2); color:var(--c-ink); border:1px solid var(--c-line); }
body .swal2-styled:focus-visible { outline:3px solid var(--c-punch); outline-offset:3px; box-shadow:none; }
body .swal2-close { color:var(--c-muted); width:44px; height:44px; }
body .swal2-popup.swal2-toast { background:var(--c-panel); color:var(--c-ink); padding:1rem; }
body .swal2-input, body .swal2-textarea { background:var(--c-panel); color:var(--c-ink); border:1px solid var(--c-line); border-radius:.6rem; font-size:1rem; }
body .flatpickr-calendar { background:var(--c-panel); color:var(--c-ink); border:1px solid var(--c-line); border-radius:.85rem; box-shadow:0 12px 40px #00000025; font-family:var(--sh-font,"Sarabun",Tahoma,sans-serif); z-index:1400; }
body .flatpickr-months, body .flatpickr-innerContainer, body .flatpickr-rContainer, body .flatpickr-weekdays { background:var(--c-panel); border-radius:inherit; }
body .flatpickr-months .flatpickr-month, body span.flatpickr-weekday, body .flatpickr-current-month .flatpickr-monthDropdown-months { background:var(--c-panel); color:var(--c-ink); fill:var(--c-ink); }
body span.flatpickr-weekday { color:var(--c-muted); }
body .flatpickr-day { color:var(--c-ink); border-radius:.5rem; }
body .flatpickr-day:is(.prevMonthDay,.nextMonthDay,.flatpickr-disabled) { color:var(--c-muted); }
body .flatpickr-day.flatpickr-disabled { text-decoration:line-through; opacity:.65; }
body .flatpickr-day:is(:hover,:focus) { background:var(--c-panel2); border-color:var(--c-line); }
body .flatpickr-day:is(.selected,.startRange,.endRange,.selected:hover) { background:var(--c-punch); border-color:var(--c-punch); color:var(--c-onaccent); }
body .flatpickr-day.today { border-color:var(--c-punch); }
body .flatpickr-months :is(.flatpickr-prev-month,.flatpickr-next-month) { color:var(--c-ink); fill:var(--c-ink); min-width:40px; }
body .flatpickr-current-month :is(input.cur-year,.flatpickr-monthDropdown-months) { color:var(--c-ink); font-size:1rem; }
body .flatpickr-time { border-color:var(--c-line); }
body .flatpickr-time :is(input,.flatpickr-am-pm) { background:var(--c-panel); color:var(--c-ink); }
body .flatpickr-time .flatpickr-time-separator { color:var(--c-ink); }
body .flatpickr-time input:is(:hover,:focus), body .flatpickr-calendar .numInputWrapper:hover { background:var(--c-panel2); }
body .flatpickr-calendar .numInputWrapper span { border-color:var(--c-line); }
body .flatpickr-calendar .numInputWrapper span.arrowUp::after { border-bottom-color:var(--c-ink); }
body .flatpickr-calendar .numInputWrapper span.arrowDown::after { border-top-color:var(--c-ink); }
body .flatpickr-calendar.arrowTop::after { border-bottom-color:var(--c-panel); }
body .flatpickr-calendar.arrowBottom::after { border-top-color:var(--c-panel); }
body .dt-container { color:var(--c-ink); font-size:.9375rem; }
body .dt-container :is(.dt-input,.dt-paging-button) { color:var(--c-ink)!important; background:var(--c-panel)!important; border:1px solid var(--c-line)!important; border-radius:.5rem; min-height:44px; }
body .dt-container .dt-paging-button.current { color:var(--c-onaccent)!important; background:var(--c-punch)!important; }

@media(min-width:1024px) { .sh-workspace-body .admin-sidebar { width:15.5rem!important; } }
@media(max-width:1100px) { .admin-shell .sh-role-label { display:none; } }
@media(max-width:767px) {
  .admin-shell .admin-workspace { padding:1.1rem 1rem 1.75rem; }
  .admin-shell .admin-header { min-height:calc(4.25rem + env(safe-area-inset-top)); padding-inline:.85rem; gap:.5rem; }
  .admin-shell .admin-header-title { font-size:1rem; }
  .admin-shell .sh-header-context { flex:1; overflow:hidden; }
  .admin-shell .admin-header-actions { flex-shrink:0; }
  .sh-breadcrumb { margin-bottom:1rem; font-size:.8125rem; }
  .shw-page-header { align-items:start; }
  .shw-page-actions { display:flex; width:100%; }
  .shw-page-actions .btn { flex:1 1 auto; }
  .admin-shell :is(.shw-section,.card.p-5) { padding:1.15rem; }
  .admin-shell .dash-metrics dl.portal-summary { padding:1rem; gap:.65rem; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .admin-shell .dash-metrics dl.portal-summary>div:last-child { grid-column:1/-1; }
  .admin-shell .dash-metrics dl.portal-summary dd { font-size:1.75rem; }
  .sh-section-switch .operator-section-tabs { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .sh-section-switch .operator-section-tabs a { white-space:normal; }
  .sh-section-switch>summary span { display:none; }
  .admin-shell .shw-stat-grid { gap:.75rem; }
  .admin-shell .shw-stat-card { padding:1rem; }
  .admin-shell .shw-stat-card>strong { font-size:1.85rem; }
  .admin-shell .shw-checkout-layout { display:flex; flex-direction:column; }
  .admin-shell .shw-checkout-summary { position:static; width:100%; }
  .admin-shell .shw-checkout-form { width:100%; }
  .admin-shell :is(.shw-table,.admin-category-table,.table-wrap table):has(td[data-label]) td[data-label]::before { font-size:.8125rem; font-weight:600; }
  .admin-shell :is(.shw-table,.admin-category-table,.table-wrap table):has(td[data-label]) tr { border-radius:.65rem; margin:.75rem; padding:.75rem; border:1px solid var(--c-line); }
  .admin-shell :is(.shw-table,.admin-category-table,.table-wrap table):has(td[data-label]) td { padding:.5rem .25rem; }
  .admin-shell :is(.shw-table,.admin-category-table,.table-wrap table):has(td[data-label]) td[data-label="จัดการ"] .btn { flex:1 1 auto; }
  .sh-workspace-body:has(.sh-mobile-nav) { padding-bottom:calc(4.5rem + env(safe-area-inset-bottom)); }
  .sh-mobile-nav { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); position:fixed; inset:auto 0 0; z-index:35; padding:.4rem .5rem calc(.4rem + env(safe-area-inset-bottom)); gap:.3rem; background:var(--c-panel); border-top:1px solid var(--c-line); }
  .sh-mobile-nav a { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.2rem; min-height:52px; border-radius:.65rem; font-size:.75rem; text-decoration:none; color:var(--c-muted); }
  .sh-mobile-nav a[aria-current] { background:color-mix(in srgb,var(--c-punch),var(--c-panel) 90%); color:var(--c-punch); font-weight:700; }
  .sh-mobile-nav a:active { background:var(--c-panel2); }
  .sh-auth { width:calc(100% - 1.5rem); margin:1.25rem auto; border-radius:1rem; }
  .sh-public .sh-wrap { padding-inline:1.1rem; }
  .sh-public .sh-brand .sh-logo-pair { width:min(8rem,30vw); }
  .sh-public .sh-hero-copy h1 { font-size:clamp(2rem,9vw,3rem); }
  body .swal2-actions { flex-wrap:wrap; }
  body .swal2-styled { flex:1 1 8rem; }
  body .flatpickr-calendar { max-width:calc(100vw - 1rem); }
}
@media(max-width:400px) {
  .admin-shell .admin-header-title { font-size:.9375rem; }
  .admin-shell .admin-header-actions { gap:.25rem; }
  .sh-section-switch .operator-section-tabs { grid-template-columns:minmax(0,1fr); }
  .admin-shell .shw-stat-grid { grid-template-columns:minmax(0,1fr); }
  .admin-shell .shw-form-footer .btn { width:100%; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto!important; } body *, body *::before, body *::after { animation:none!important; transition:none!important; } }
html[data-motion="reduce"] *, html[data-motion="reduce"] *::before, html[data-motion="reduce"] *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
/* The older shell uses .01ms durations. SweetAlert waits for animationend when
   duration > 0, even if animation-name is none; use a real zero for popup cleanup. */
@media(prefers-reduced-motion:reduce) {
  html:root body :is(.swal2-popup,.swal2-container) { animation-duration:0s!important; transition-duration:0s!important; }
}
html[data-motion="reduce"] body :is(.swal2-popup,.swal2-container) { animation-duration:0s!important; transition-duration:0s!important; }

/* Store lifecycle: explicit text and semantic colors in both themes. */
.shw-tone-open { --life-ink:#166534; --life-fill:#f0fdf4; --life-border:#86efac; --life-button:#15803d; }
.shw-tone-paused,.shw-tone-pending { --life-ink:#92400e; --life-fill:#fffbeb; --life-border:#fcd34d; --life-button:#92400e; }
.shw-tone-maintenance { --life-ink:#1e40af; --life-fill:#eff6ff; --life-border:#93c5fd; --life-button:#1d4ed8; }
.shw-tone-blocked { --life-ink:#991b1b; --life-fill:#fef2f2; --life-border:#fca5a5; --life-button:#b91c1c; }
html.dark .shw-tone-open { --life-ink:#86efac; --life-fill:#10291c; --life-border:#285c3d; }
html.dark :is(.shw-tone-paused,.shw-tone-pending) { --life-ink:#fcd34d; --life-fill:#302311; --life-border:#78551a; }
html.dark .shw-tone-maintenance { --life-ink:#93c5fd; --life-fill:#12233e; --life-border:#31588a; }
html.dark .shw-tone-blocked { --life-ink:#fca5a5; --life-fill:#32191b; --life-border:#874247; }
.admin-shell .shw-lifecycle-panel { margin:0 0 1.5rem; }
.shw-store-state { display:flex; align-items:center; gap:1rem; padding:1.25rem; margin-bottom:1.25rem; border:1px solid var(--life-border); border-left:5px solid var(--life-ink); border-radius:.75rem; background:var(--life-fill); color:var(--life-ink); }
.shw-state-symbol { display:grid; place-items:center; flex:0 0 2.75rem; height:2.75rem; border:2px solid currentColor; border-radius:50%; font-size:1.4rem; font-weight:700; }
.shw-state-eyebrow { display:block; font-size:.8rem; margin-bottom:.2rem; }
.shw-store-state strong { display:block; font-size:1.3rem; line-height:1.5; }
.shw-store-state p { margin:.4rem 0 0; font-size:.9rem; line-height:1.65; }
.shw-lifecycle-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.admin-shell .shw-lifecycle-choice { border:1px solid var(--life-border); border-top:4px solid var(--life-ink); background:var(--life-fill); padding:1.25rem; display:flex; flex-direction:column; min-width:0; }
.shw-lifecycle-choice form { flex:1; }
.shw-lifecycle-choice form > :last-child { margin-top:auto; padding-top:.5rem; }
.shw-action-tag { display:block; color:var(--life-ink); font-size:.8rem; font-weight:600; margin-bottom:.65rem; }
.admin-shell .shw-lifecycle-button { width:100%; min-height:48px; background:var(--life-button); border-color:var(--life-button); color:#fff; font-size:1rem; font-weight:600; }
.admin-shell .shw-lifecycle-button:hover { filter:brightness(1.12); }
.shw-lifecycle-panel :is(button,a,summary):focus-visible { outline:3px solid var(--c-ink); outline-offset:4px; }
.admin-shell .shw-lifecycle-close { background:var(--life-fill); border-color:var(--life-border); color:var(--life-ink); }
.shw-lifecycle-close summary span { display:inline-block; margin-left:.5rem; font-size:.8rem; font-weight:500; }
@media(max-width:640px) { .shw-lifecycle-grid { grid-template-columns:1fr; } .shw-store-state { align-items:flex-start; padding:1rem; gap:.75rem; } .shw-store-state strong { font-size:1.15rem; } }

.shw-status-checks { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; margin:1rem 0 1.25rem; }
.shw-status-check { display:flex; gap:.65rem; align-items:center; border:1px solid var(--c-line); border-radius:.7rem; padding:1rem; min-width:0; }
.shw-status-check span:not(.shw-check-icon) { display:block; font-size:.8rem; color:var(--c-muted); }
.shw-status-check strong { display:block; font-size:.9rem; }
.shw-check-icon { width:1.6rem; height:1.6rem; flex:0 0 1.6rem; display:grid; place-items:center; border:1px solid currentColor; border-radius:50%; font-weight:700; }
.shw-status-check.is-clear .shw-check-icon { color:#15803d; }
.shw-status-check.is-blocked .shw-check-icon { color:#b45309; }
html.dark .shw-status-check.is-clear .shw-check-icon { color:#86efac; }
html.dark .shw-status-check.is-blocked .shw-check-icon { color:#fcd34d; }
.shw-next-step { padding:1rem 1.25rem; margin:1rem 0; border:1px solid var(--c-line); border-radius:.75rem; }
.shw-next-step ol { list-style:decimal; margin:.5rem 0 .5rem 1.25rem; }
.shw-next-step li { padding:.2rem 0; }
.shw-next-step p { font-size:.85rem; color:var(--c-muted); }
.admin-shell .shw-action-disclosures .shw-lifecycle-choice { display:block; padding:0; overflow:hidden; }
.shw-action-disclosures summary { display:block; padding:1.2rem; list-style:none; cursor:pointer; }
.shw-action-disclosures summary::-webkit-details-marker { display:none; }
.shw-action-disclosures summary>strong { display:block; font-size:1.05rem; }
.shw-action-hint { display:block; color:var(--c-muted); font-size:.85rem; margin:.4rem 0 1rem; }
.shw-disclosure-cta { display:flex; align-items:center; justify-content:space-between; min-height:44px; padding:.6rem .9rem; border-radius:.5rem; background:var(--life-button); color:white; font-weight:600; }
.shw-action-disclosures details[open] .shw-disclosure-cta { display:none; }
.shw-action-disclosures form { padding:0 1.2rem 1.2rem; }
.shw-action-disclosures summary:hover .shw-disclosure-cta { filter:brightness(1.1); }
@media(max-width:640px) { .shw-status-checks { grid-template-columns:1fr; gap:.5rem; } .shw-status-check { padding:.7rem .9rem; } }
