/* V149 — Admin visual accessibility refresh for easier scanning and form navigation. */
:root{
  --a149-ink:#182235;
  --a149-muted:#5c6b7d;
  --a149-blue:#2878e8;
  --a149-blue-soft:#edf5ff;
  --a149-green:#24855f;
  --a149-green-soft:#edf9f3;
  --a149-purple:#7557c9;
  --a149-purple-soft:#f4efff;
  --a149-orange:#c76822;
  --a149-orange-soft:#fff3e8;
  --a149-teal:#147e89;
  --a149-teal-soft:#eaf8f9;
  --a149-pink:#b54f7b;
  --a149-pink-soft:#fff0f6;
  --a149-gold:#9a7110;
  --a149-gold-soft:#fff8df;
  --a149-red:#b4232f;
  --a149-red-soft:#fff0f1;
  --a149-border:#d8e1eb;
}

body.admin-body,
body:has(.admin-header),
body:has(.admin-login-shell){
  color:var(--a149-ink);
  background:
    radial-gradient(circle at 0 0,rgba(40,120,232,.07),transparent 26rem),
    radial-gradient(circle at 100% 12rem,rgba(117,87,201,.055),transparent 24rem),
    #f4f7fb;
}

.admin-header{
  background:linear-gradient(90deg,#13223a 0%,#1b3153 55%,#223b62 100%)!important;
  border-bottom:0!important;
  box-shadow:0 5px 18px rgba(21,38,66,.18);
}
.admin-header .admin-brand,.admin-header .admin-brand span,.admin-header .admin-link{color:#fff!important}
.admin-header .admin-brand span{opacity:.78}
.admin-header .admin-menu-trigger{background:#fff!important;border-color:#fff!important;color:#16345d!important;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.admin-header .admin-link:hover{background:rgba(255,255,255,.12);border-radius:9px}

.admin-main{max-width:1440px}
.admin-page-title{
  background:linear-gradient(135deg,#ffffff 0%,#eef5ff 100%);
  border:1px solid #cfdff2;
  border-left:7px solid var(--a149-blue);
  padding:20px 22px;
  border-radius:18px;
  box-shadow:0 8px 24px rgba(40,70,110,.08);
}
.admin-page-title h1{color:#173b6d!important;text-shadow:0 1px 0 #fff}
.admin-page-title .admin-muted{color:#506781!important}
.eyebrow{color:#52647a!important;font-weight:950!important;letter-spacing:.09em!important}

.admin-panel,.v2-card,.variant-panel,.color-library-panel,.copy-listing-panel{
  position:relative;
  border-color:var(--a149-border)!important;
  box-shadow:0 10px 26px rgba(40,56,82,.075)!important;
}
.admin-panel{overflow:visible}

/* Color-coded major sections. JS assigns data-admin-color semantically where possible. */
[data-admin-color]{border-left:6px solid var(--section-accent)!important;background:linear-gradient(135deg,var(--section-soft) 0%,#fff 38%,#fff 100%)!important}
[data-admin-color="blue"]{--section-accent:var(--a149-blue);--section-soft:var(--a149-blue-soft)}
[data-admin-color="green"]{--section-accent:var(--a149-green);--section-soft:var(--a149-green-soft)}
[data-admin-color="purple"]{--section-accent:var(--a149-purple);--section-soft:var(--a149-purple-soft)}
[data-admin-color="orange"]{--section-accent:var(--a149-orange);--section-soft:var(--a149-orange-soft)}
[data-admin-color="teal"]{--section-accent:var(--a149-teal);--section-soft:var(--a149-teal-soft)}
[data-admin-color="pink"]{--section-accent:var(--a149-pink);--section-soft:var(--a149-pink-soft)}
[data-admin-color="gold"]{--section-accent:var(--a149-gold);--section-soft:var(--a149-gold-soft)}

.form-section{
  border:1px solid var(--a149-border)!important;
  border-left:6px solid var(--section-accent,var(--a149-blue))!important;
  border-radius:16px;
  padding:18px!important;
  background:linear-gradient(135deg,var(--section-soft,var(--a149-blue-soft)) 0%,#fff 34%,#fff 100%);
  gap:17px!important;
}
.form-section h3,.admin-panel h2,.admin-panel h3,.v2-card h3{
  color:var(--section-accent,#234f87);
  line-height:1.25;
}
.form-section h3{
  display:flex;align-items:center;gap:9px;
  font-size:1.14rem!important;
  padding-bottom:9px;
  border-bottom:2px solid color-mix(in srgb,var(--section-accent,var(--a149-blue)) 20%,transparent);
}
.form-section h3::before{content:"";width:11px;height:11px;border-radius:50%;background:var(--section-accent,var(--a149-blue));box-shadow:0 0 0 4px color-mix(in srgb,var(--section-accent,var(--a149-blue)) 13%,transparent)}

.admin-muted,.muted,.photo-help,.copy-source-sub,.color-library-empty{color:var(--a149-muted)!important;line-height:1.5}
.admin-form label,.listing-form label,.admin-form-grid label{color:#263852!important;font-weight:900!important;line-height:1.35}
small,.help-text,.field-help{color:#607187}

.admin-form input,.listing-form input,.listing-form textarea,.listing-form select,.inventory-filters select,.v2-input,.v2-table input,.v2-table select,.v2-table textarea,.admin-form-grid input,.admin-form-grid textarea{
  border:2px solid #c9d5e2!important;
  background:#fff!important;
  color:#162236!important;
  line-height:1.45!important;
  transition:border-color .14s,box-shadow .14s,background .14s;
}
.admin-form input:focus,.listing-form input:focus,.listing-form textarea:focus,.listing-form select:focus,.v2-input:focus,.admin-form-grid input:focus,.admin-form-grid textarea:focus{
  border-color:var(--a149-blue)!important;
  box-shadow:0 0 0 4px rgba(40,120,232,.17)!important;
  background:#fbfdff!important;
}
select{background-color:#fff!important}

/* Error highlighting: only after JS marks a field touched/submitted, plus explicit aria-invalid. */
.is-invalid,[aria-invalid="true"],.field-error input,.field-error select,.field-error textarea{
  border-color:var(--a149-red)!important;
  background:var(--a149-red-soft)!important;
  box-shadow:0 0 0 3px rgba(180,35,47,.13)!important;
}
label:has(.is-invalid),label:has([aria-invalid="true"]),.field-error{color:var(--a149-red)!important}
.admin-field-error{
  display:block;
  margin-top:5px;
  padding:6px 9px;
  border-radius:8px;
  background:var(--a149-red-soft);
  color:var(--a149-red);
  font-size:.78rem;
  font-weight:900;
  line-height:1.35;
}
.admin-message.error,.login-status,.error-message,.validation-error{color:var(--a149-red)!important;background:var(--a149-red-soft);border-left:4px solid var(--a149-red);padding:9px 11px;border-radius:8px}
.admin-message:not(.error):not(:empty){background:#edf9f3;color:#176d4d!important;border-left:4px solid var(--a149-green);padding:9px 11px;border-radius:8px}

.admin-primary{
  background:linear-gradient(180deg,#3288f5,#1f6fd9)!important;
  color:#fff!important;
  box-shadow:0 4px 0 #1557ae,0 7px 13px rgba(33,103,204,.16)!important;
}
.admin-primary:hover{filter:brightness(1.05);transform:translateY(-1px)}
.admin-secondary{background:#edf3fa!important;color:#274a74!important;border:1px solid #cbd9e7!important}
.admin-secondary:hover{background:#e2edf8!important}
.danger-button{background:var(--a149-red-soft)!important;color:var(--a149-red)!important;border:1px solid #f0c5ca!important}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #f0a526!important;outline-offset:3px!important}

/* Cards, tables and lists are easier to scan in rows. */
.v2-card,.admin-data-card,.inventory-row,.copy-source-card{transition:transform .12s,box-shadow .12s,border-color .12s}
.v2-card:hover,.admin-data-card:hover,.copy-source-card:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(40,60,90,.10)!important}
.v2-table thead th{background:#eaf2fb;color:#23466e;font-weight:950}
.v2-table tbody tr:nth-child(even){background:#f8fbfe}
.inventory-row:nth-child(even){background:#f8fbfe}

/* Navigation uses color grouping without becoming a rainbow wall. */
.admin-menu-group:nth-of-type(4n+1){border-left:4px solid var(--a149-blue);padding-left:10px}
.admin-menu-group:nth-of-type(4n+2){border-left:4px solid var(--a149-green);padding-left:10px}
.admin-menu-group:nth-of-type(4n+3){border-left:4px solid var(--a149-purple);padding-left:10px}
.admin-menu-group:nth-of-type(4n){border-left:4px solid var(--a149-orange);padding-left:10px}
.admin-menu-group b{color:#41556d!important}
.admin-menu-group a:hover{background:#edf5ff!important}

.status-active,.success,.paid{background:#dff5e9!important;color:#176a49!important}
.status-draft,.pending{background:#fff3cf!important;color:#815e09!important}
.status-sold,.failed,.cancelled{background:#ffe8ea!important;color:#9d2530!important}

@media(max-width:760px){
  .admin-main{padding-top:22px!important}
  .admin-panel{padding:19px!important;border-radius:16px!important}
  .admin-page-title{padding:17px!important}
  .form-section{padding:15px!important}
  .admin-form label,.listing-form label{font-size:.92rem!important}
  .admin-primary,.admin-secondary,.danger-button{min-height:46px}
}

@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
