/* PhotoSales Studio 4.3.25-3a.1 — Admin Experience Foundation
   Layout, spacing, typography, cards, controls and responsive safety only.
   Scoped to authenticated workspaces; no business logic or component positioning changes. */

.admin-shell:not(.admin-login-mode){
  --pss-space-1:8px;
  --pss-space-2:12px;
  --pss-space-3:16px;
  --pss-space-4:24px;
  --pss-space-5:32px;
  --pss-space-6:48px;
  --pss-content-max:1600px;
  --pss-card-radius:20px;
  --pss-control-radius:11px;
  --pss-control-height:44px;
  --pss-card-border:rgba(255,255,255,.10);
  --pss-card-bg:linear-gradient(145deg,rgba(255,255,255,.07),rgba(255,255,255,.035));
  --pss-focus-ring:0 0 0 3px rgba(59,130,246,.22);
}

/* Unified content width and reliable shrinking inside the grid. */
.admin-shell:not(.admin-login-mode) .admin-main{
  box-sizing:border-box;
  width:100%;
  max-width:var(--pss-content-max);
  min-width:0;
  margin-inline:auto;
  padding:var(--pss-space-5);
}
.admin-shell:not(.admin-login-mode) .admin-main > *{min-width:0;max-width:100%}
.admin-shell:not(.admin-login-mode) .admin-main section[id]{scroll-margin-top:24px}

/* Consistent vertical rhythm and typography. */
.admin-shell:not(.admin-login-mode) .admin-topbar{margin-bottom:var(--pss-space-4)}
.admin-shell:not(.admin-login-mode) .admin-topbar h1{
  font-size:clamp(1.75rem,2.2vw,2.2rem);
  line-height:1.15;
  letter-spacing:-.025em;
}
.admin-shell:not(.admin-login-mode) .admin-card h1,
.admin-shell:not(.admin-login-mode) .admin-card h2,
.admin-shell:not(.admin-login-mode) .admin-card h3{line-height:1.25;letter-spacing:-.012em}
.admin-shell:not(.admin-login-mode) .admin-card h2{font-size:clamp(1.2rem,1.6vw,1.42rem)}
.admin-shell:not(.admin-login-mode) .admin-card h3{font-size:1.05rem}
.admin-shell:not(.admin-login-mode) .card-head{margin-bottom:var(--pss-space-3)}
.admin-shell:not(.admin-login-mode) .card-head p,
.admin-shell:not(.admin-login-mode) .admin-topbar p{line-height:1.55}

/* Shared card foundation. Existing colors remain intact. */
.admin-shell:not(.admin-login-mode) .admin-card{
  box-sizing:border-box;
  min-width:0;
  max-width:100%;
  margin-bottom:var(--pss-space-4);
  padding:var(--pss-space-4);
  border-radius:var(--pss-card-radius);
  border-color:var(--pss-card-border);
  background:var(--pss-card-bg);
  overflow-wrap:anywhere;
}
.admin-shell:not(.admin-login-mode) .admin-card:last-child{margin-bottom:0}
.admin-shell:not(.admin-login-mode) .card-head.row{flex-wrap:wrap;align-items:flex-start}
.admin-shell:not(.admin-login-mode) .card-head.row > :first-child{min-width:0;flex:1 1 320px}

/* Forms: predictable widths, spacing and accessible focus. */
.admin-shell:not(.admin-login-mode) .form-grid{gap:var(--pss-space-3)}
.admin-shell:not(.admin-login-mode) .field{min-width:0;gap:7px}
.admin-shell:not(.admin-login-mode) .pro-form input:not([type=checkbox]):not([type=radio]),
.admin-shell:not(.admin-login-mode) .pro-form select,
.admin-shell:not(.admin-login-mode) .admin-table input:not([type=checkbox]):not([type=radio]),
.admin-shell:not(.admin-login-mode) .admin-table select{
  box-sizing:border-box;
  min-height:var(--pss-control-height);
  max-width:100%;
  border-radius:var(--pss-control-radius);
}
.admin-shell:not(.admin-login-mode) .pro-form textarea,
.admin-shell:not(.admin-login-mode) .admin-table textarea{
  box-sizing:border-box;
  max-width:100%;
  border-radius:var(--pss-control-radius);
  line-height:1.5;
}
.admin-shell:not(.admin-login-mode) :is(input,select,textarea,button,a):focus-visible{
  outline:2px solid #60a5fa;
  outline-offset:2px;
}
.admin-shell:not(.admin-login-mode) .pro-form :is(input,select,textarea):focus{
  box-shadow:var(--pss-focus-ring);
}

/* Unified action controls. Specific module colors and danger states remain authoritative. */
.admin-shell:not(.admin-login-mode) .btn,
.admin-shell:not(.admin-login-mode) button.btn,
.admin-shell:not(.admin-login-mode) a.btn{
  box-sizing:border-box;
  min-height:var(--pss-control-height);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:10px 16px;
  border-radius:var(--pss-control-radius);
  font-weight:800;
  line-height:1.2;
  text-align:center;
  white-space:normal;
}
.admin-shell:not(.admin-login-mode) .btn:disabled,
.admin-shell:not(.admin-login-mode) button:disabled{opacity:.58;cursor:not-allowed;filter:saturate(.65)}
.admin-shell:not(.admin-login-mode) .admin-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:var(--pss-space-2);
  margin-top:var(--pss-space-3);
}
.admin-shell:not(.admin-login-mode) .topbar-actions{display:flex;flex-wrap:wrap;gap:var(--pss-space-2)}

/* Overflow safety for media, tables and long technical values. */
.admin-shell:not(.admin-login-mode) img,
.admin-shell:not(.admin-login-mode) video,
.admin-shell:not(.admin-login-mode) canvas{max-width:100%;height:auto}
.admin-shell:not(.admin-login-mode) .admin-table-wrap,
.admin-shell:not(.admin-login-mode) .table-wrap{
  box-sizing:border-box;
  width:100%;
  max-width:100%;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  -webkit-overflow-scrolling:touch;
}
.admin-shell:not(.admin-login-mode) pre,
.admin-shell:not(.admin-login-mode) code{max-width:100%;overflow-wrap:anywhere}

@media (max-width:1100px){
  .admin-shell:not(.admin-login-mode) .admin-main{padding:var(--pss-space-4)}
}

@media (max-width:760px){
  .admin-shell:not(.admin-login-mode) .admin-main{padding:var(--pss-space-3)}
  .admin-shell:not(.admin-login-mode) .admin-topbar{
    align-items:flex-start;
    flex-direction:column;
    gap:var(--pss-space-3);
  }
  .admin-shell:not(.admin-login-mode) .admin-topbar > *,
  .admin-shell:not(.admin-login-mode) .topbar-actions{width:100%}
  .admin-shell:not(.admin-login-mode) .topbar-actions .btn{width:100%}
  .admin-shell:not(.admin-login-mode) .admin-card{
    padding:var(--pss-space-3);
    margin-bottom:var(--pss-space-3);
    border-radius:16px;
  }
  .admin-shell:not(.admin-login-mode) .card-head.row{display:grid;grid-template-columns:1fr;gap:var(--pss-space-3)}
  .admin-shell:not(.admin-login-mode) .card-head.row .btn{width:100%}
  .admin-shell:not(.admin-login-mode) .admin-actions{display:grid;grid-template-columns:1fr;width:100%}
  .admin-shell:not(.admin-login-mode) .admin-actions > *,
  .admin-shell:not(.admin-login-mode) .admin-actions form,
  .admin-shell:not(.admin-login-mode) .admin-actions .btn{width:100%;max-width:none}
  .admin-shell:not(.admin-login-mode) .form-grid.two,
  .admin-shell:not(.admin-login-mode) .form-grid.three,
  .admin-shell:not(.admin-login-mode) .admin-two-col,
  .admin-shell:not(.admin-login-mode) .admin-albums-grid{grid-template-columns:minmax(0,1fr)}
  .admin-shell:not(.admin-login-mode) input[type=file]{max-width:100%}
}

@media (max-width:420px){
  .admin-shell:not(.admin-login-mode) .admin-main{padding:12px}
  .admin-shell:not(.admin-login-mode) .admin-card{padding:14px}
}

/* 4.3.25-3a.2 — persistent admin navigation and responsive taxonomy editor. */
.admin-shell:not(.admin-login-mode) .admin-sidebar{
  overflow:hidden;
}
.admin-shell:not(.admin-login-mode) .admin-sidebar nav{
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-width:thin;
  padding-right:4px;
}
.admin-menu-toggle,
.admin-menu-close,
.admin-menu-overlay{display:none}

/* Taxonomy is an editor, not a conventional compact table. Give it safe widths first. */
.admin-shell:not(.admin-login-mode) .psp-taxonomy-card .admin-table-wrap{overflow:visible}
.admin-shell:not(.admin-login-mode) .categories-table{table-layout:auto;min-width:0}
.admin-shell:not(.admin-login-mode) .categories-table input:not([type=checkbox]):not([type=color]),
.admin-shell:not(.admin-login-mode) .categories-table select,
.admin-shell:not(.admin-login-mode) .categories-table textarea{
  min-width:150px;
  width:100%;
}
.admin-shell:not(.admin-login-mode) .categories-table .taxonomy-tree-cell{min-width:250px}
.admin-shell:not(.admin-login-mode) .categories-table td:nth-child(6),
.admin-shell:not(.admin-login-mode) .categories-table td:nth-child(7),
.admin-shell:not(.admin-login-mode) .categories-table td:nth-child(8){min-width:210px}

@media (max-width:1250px){
  .admin-shell:not(.admin-login-mode) .psp-taxonomy-card .admin-table-wrap{
    border:0;
    background:transparent;
    overflow:visible;
  }
  .admin-shell:not(.admin-login-mode) .categories-table,
  .admin-shell:not(.admin-login-mode) .categories-table tbody,
  .admin-shell:not(.admin-login-mode) .categories-table tr,
  .admin-shell:not(.admin-login-mode) .categories-table td{display:block;width:100%;min-width:0!important;box-sizing:border-box}
  .admin-shell:not(.admin-login-mode) .categories-table thead{display:none}
  .admin-shell:not(.admin-login-mode) .categories-table tr{
    margin:0 0 18px;
    border:1px solid #dbe3ef;
    border-radius:16px;
    overflow:hidden;
    background:#fff;
    box-shadow:0 8px 24px rgba(15,23,42,.08);
  }
  .admin-shell:not(.admin-login-mode) .categories-table td{
    position:relative;
    padding:42px 14px 14px!important;
    border:0!important;
    border-bottom:1px solid #e5e7eb!important;
    background:#fff!important;
    color:#111827!important;
    overflow-wrap:normal;
    word-break:normal;
  }
  .admin-shell:not(.admin-login-mode) .categories-table td:last-child{border-bottom:0!important}
  .admin-shell:not(.admin-login-mode) .categories-table td::before{
    position:absolute;
    top:12px;
    left:14px;
    right:14px;
    color:#64748b;
    font-size:11px;
    line-height:1.2;
    font-weight:900;
    letter-spacing:.06em;
    text-transform:uppercase;
    content:attr(data-label);
  }
  .admin-shell:not(.admin-login-mode) .categories-table input:not([type=checkbox]):not([type=color]),
  .admin-shell:not(.admin-login-mode) .categories-table select,
  .admin-shell:not(.admin-login-mode) .categories-table textarea{
    min-width:0!important;
    width:100%!important;
    max-width:none!important;
    font-size:16px;
  }
  .admin-shell:not(.admin-login-mode) .categories-table input[type=color]{width:64px;min-width:64px;height:44px}
  .admin-shell:not(.admin-login-mode) .categories-table .mini{max-width:140px!important}
  .admin-shell:not(.admin-login-mode) .taxonomy-tree-cell{padding-left:14px!important}
  .admin-shell:not(.admin-login-mode) .taxonomy-tree-cell:before{display:none!important}
  .admin-shell:not(.admin-login-mode) .taxonomy-add-row td{padding:16px!important;border-top:0!important}
  .admin-shell:not(.admin-login-mode) .taxonomy-add-row td::before{display:none}
  .admin-shell:not(.admin-login-mode) .taxonomy-add-row{background:#111827!important}
  .admin-shell:not(.admin-login-mode) .taxonomy-add-row td{background:#111827!important;color:#fff!important}
}

@media (max-width:1100px){
  .admin-shell:not(.admin-login-mode){display:block;padding-top:68px}
  .admin-shell:not(.admin-login-mode) .admin-sidebar{
    display:flex!important;
    position:fixed!important;
    z-index:10020;
    top:0;
    left:0;
    width:min(340px,88vw);
    height:100dvh!important;
    padding:20px;
    transform:translateX(-105%);
    transition:transform .22s ease;
    box-shadow:20px 0 60px rgba(0,0,0,.45);
  }
  body.admin-menu-open{overflow:hidden}
  body.admin-menu-open .admin-sidebar{transform:translateX(0)}
  .admin-menu-toggle{
    display:inline-flex;
    position:fixed;
    z-index:10010;
    top:12px;
    left:12px;
    min-height:46px;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:10px 15px;
    border:1px solid rgba(255,255,255,.16);
    border-radius:14px;
    background:#111827;
    color:#fff;
    box-shadow:0 10px 30px rgba(0,0,0,.32);
    font:800 15px/1 system-ui,sans-serif;
    cursor:pointer;
  }
  .admin-menu-close{
    display:grid;
    position:absolute;
    z-index:2;
    top:12px;
    right:12px;
    width:40px;
    height:40px;
    place-items:center;
    border:1px solid rgba(255,255,255,.14);
    border-radius:12px;
    background:rgba(255,255,255,.08);
    color:#fff;
    font-size:28px;
    line-height:1;
    cursor:pointer;
  }
  .admin-menu-overlay{
    display:block;
    position:fixed;
    z-index:10015;
    inset:0;
    background:rgba(2,6,23,.68);
    opacity:0;
    visibility:hidden;
    transition:opacity .2s ease,visibility .2s ease;
  }
  body.admin-menu-open .admin-menu-overlay{opacity:1;visibility:visible}
  .admin-shell:not(.admin-login-mode) .admin-logo{padding-right:48px}
}

@media (max-width:520px){
  .admin-menu-toggle span{display:none}
  .admin-menu-toggle{width:46px;padding:0}
  .admin-shell:not(.admin-login-mode) .psp-taxonomy-toolbar{display:grid;grid-template-columns:1fr}
  .admin-shell:not(.admin-login-mode) .psp-taxonomy-toolbar > *{width:100%;min-width:0}
  .admin-shell:not(.admin-login-mode) .psp-taxonomy-summary{display:grid;gap:8px}
}

/* 4.3.25-3a.3 — mobile admin drawer visibility hotfix.
   Keep the drawer above its backdrop on mobile browsers and provide
   reliable viewport-height fallbacks. */
@media (max-width:1100px){
  .admin-shell:not(.admin-login-mode) .admin-sidebar{
    z-index:2147483001!important;
    width:340px!important;
    max-width:88vw!important;
    height:100vh!important;
    min-height:100vh!important;
    visibility:hidden;
    opacity:0;
    pointer-events:none;
    transform:translate3d(-105%,0,0)!important;
    will-change:transform;
    background:linear-gradient(180deg,#0d1422,#090d14)!important;
    color:#f8fafc!important;
  }
  @supports (height:100dvh){
    .admin-shell:not(.admin-login-mode) .admin-sidebar{
      height:100dvh!important;
      min-height:100dvh!important;
    }
  }
  body.admin-menu-open .admin-shell:not(.admin-login-mode) .admin-sidebar{
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
    transform:translate3d(0,0,0)!important;
  }
  .admin-shell:not(.admin-login-mode) .admin-sidebar nav{
    display:grid!important;
    flex:1 1 auto;
    min-height:0;
    width:100%;
    overflow-y:auto!important;
    overflow-x:hidden!important;
  }
  .admin-shell:not(.admin-login-mode) .admin-sidebar nav a,
  .admin-shell:not(.admin-login-mode) .admin-sidebar nav span,
  .admin-shell:not(.admin-login-mode) .admin-logo,
  .admin-shell:not(.admin-login-mode) .admin-sidebar-footer{
    visibility:visible!important;
    opacity:1!important;
  }
  .admin-menu-overlay{
    z-index:2147483000!important;
  }
  .admin-menu-toggle{
    z-index:2147482999!important;
  }
  .admin-menu-close{
    z-index:2147483002!important;
  }
}

@media (max-width:520px){
  .admin-shell:not(.admin-login-mode) .admin-sidebar{
    width:88vw!important;
    max-width:340px!important;
    padding:18px 16px!important;
  }
  .admin-shell:not(.admin-login-mode) .admin-sidebar-footer{
    grid-template-columns:1fr!important;
  }
}

/* PhotoSales Studio 5.3.2-9.3a: prevent CRM and BI action labels from splitting. */
.admin-shell:not(.admin-login-mode) #customers .admin-table td:last-child > .btn,
.admin-shell:not(.admin-login-mode) .pss-gallery-analytics-actions .btn,
.admin-shell:not(.admin-login-mode) .pss-bi-report-tabs > a,
.admin-shell:not(.admin-login-mode) .pss-bi-report-tabs > button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:auto;
  min-width:max-content;
  max-width:none;
  white-space:nowrap;
  word-break:normal;
  overflow-wrap:normal;
  line-height:1.2;
}
.admin-shell:not(.admin-login-mode) #customers .admin-table td:last-child {
  min-width:150px;
  white-space:nowrap;
}
.admin-shell:not(.admin-login-mode) .pss-gallery-analytics-actions {
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:nowrap;
  min-width:max-content;
}
@media(max-width:760px){
  .admin-shell:not(.admin-login-mode) .pss-bi-report-tabs {
    overflow-x:auto;
    flex-wrap:nowrap;
    align-items:center;
    -webkit-overflow-scrolling:touch;
  }
  .admin-shell:not(.admin-login-mode) .pss-bi-report-tabs > a,
  .admin-shell:not(.admin-login-mode) .pss-bi-report-tabs > button {
    width:auto;
    min-width:max-content;
    margin-left:0;
  }
  .admin-shell:not(.admin-login-mode) .pss-bi-report-tabs > select {
    flex:0 0 190px;
    width:190px;
    margin-left:0;
  }
}


/* PhotoSales Studio 5.3.2-9.5.2 — sidebar primary group and invisible functional scrollbar. */
.admin-shell:not(.admin-login-mode) .admin-sidebar nav{
  scrollbar-width:none!important;
  -ms-overflow-style:none!important;
  padding-right:0!important;
}
.admin-shell:not(.admin-login-mode) .admin-sidebar nav::-webkit-scrollbar{
  width:0!important;
  height:0!important;
  display:none!important;
}
.workspace-administrator .admin-sidebar nav > .pss-admin-nav-primary{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:7px;
  width:100%;
  margin:0 0 14px;
  padding:8px;
  box-sizing:border-box;
  border:1px solid rgba(148,163,184,.20);
  border-radius:18px;
  background:rgba(255,255,255,.025);
  box-shadow:none;
  overflow:hidden;
}
.workspace-administrator .admin-sidebar nav > .pss-admin-nav-primary > a{
  width:100%;
  min-width:0;
  margin:0;
  box-sizing:border-box;
}
