/* ============================================================
   Back Office — admin editor styles
   ============================================================ */
.ad-overlay{position:fixed;inset:0;z-index:600;background:rgba(20,18,15,.55);backdrop-filter:blur(4px);display:none;align-items:stretch;justify-content:center;}
.ad-overlay.open{display:flex;animation:adFade .2s;}
@keyframes adFade{from{opacity:0}to{opacity:1}}
.ad-shell{background:var(--bg);width:100%;max-width:1180px;margin:24px;border-radius:var(--r-lg);box-shadow:0 30px 80px rgba(0,0,0,.4);display:flex;flex-direction:column;overflow:hidden;}
@media(max-width:760px){.ad-shell{margin:0;border-radius:0;}}

/* top bar */
.ad-top{display:flex;align-items:center;gap:14px;padding:15px 22px;background:var(--surface);border-bottom:1px solid var(--line);border-top:3px solid var(--red);}
.ad-top svg{width:18px;height:18px;}
.ad-title{font-size:1.02rem;font-weight:700;letter-spacing:-.02em;color:var(--ink);display:flex;align-items:center;gap:10px;}
.ad-title .ad-lock{width:30px;height:30px;border-radius:8px;background:var(--red-lt);color:var(--red);display:flex;align-items:center;justify-content:center;}
.ad-badge{font-size:.58rem;font-family:'Asap Condensed',sans-serif;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gray);border:1px solid var(--line);border-radius:20px;padding:4px 10px;}
.ad-top-actions{margin-left:auto;display:flex;align-items:center;gap:8px;}
.ad-x{width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:var(--surface);cursor:pointer;color:var(--gray);display:flex;align-items:center;justify-content:center;transition:all .15s;}
.ad-x:hover{background:var(--red-lt);color:var(--red);border-color:var(--red);}

.ad-body{flex:1;display:flex;min-height:0;}
.ad-nav{width:210px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--line);padding:12px 10px;overflow-y:auto;}
@media(max-width:760px){.ad-nav{width:64px;}.ad-nav-lbl{display:none;}}
.ad-nav-item{display:flex;align-items:center;gap:11px;width:100%;text-align:left;border:none;background:none;cursor:pointer;padding:10px 12px;border-radius:9px;color:var(--gray);font-family:'Asap',sans-serif;font-size:.83rem;font-weight:500;margin-bottom:2px;transition:all .14s;}
.ad-nav-item svg{width:17px;height:17px;flex-shrink:0;}
.ad-nav-item:hover{background:var(--cream);color:var(--ink);}
.ad-nav-item.on{background:var(--red-lt);color:var(--red);font-weight:700;box-shadow:inset 3px 0 0 var(--red);}
.ad-nav-sep{height:1px;background:var(--line);margin:10px 8px;}

.ad-main{flex:1;overflow-y:auto;padding:24px 28px 40px;min-width:0;}
.ad-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:6px;flex-wrap:wrap;}
.ad-h{font-size:1.5rem;font-weight:700;letter-spacing:-.035em;color:var(--ink);}
.ad-sub{font-size:.8rem;color:var(--gray);font-family:'Asap Condensed',sans-serif;letter-spacing:.03em;margin-bottom:20px;max-width:70ch;line-height:1.5;}
.ad-add{display:inline-flex;align-items:center;gap:7px;background:var(--navy);color:#fff;border:none;cursor:pointer;font-family:'Asap',sans-serif;font-weight:700;font-size:.8rem;padding:10px 16px;border-radius:9px;transition:transform .15s,background .15s;}
.ad-add svg{width:15px;height:15px;}
.ad-add:hover{transform:translateY(-1px);background:#1a2a52;}

/* item card */
.ad-item{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r);margin-bottom:12px;box-shadow:var(--card-shadow);overflow:hidden;}
.ad-item-hd{display:flex;align-items:center;gap:12px;padding:13px 16px;cursor:pointer;}
.ad-item-hd:hover{background:var(--cream);}
.ad-item-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0;background:var(--navy);}
.ad-item-name{font-size:.9rem;font-weight:600;color:var(--ink);min-width:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ad-item-tag{font-size:.56rem;font-family:'Asap Condensed',sans-serif;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gray);background:var(--cream);border-radius:20px;padding:3px 9px;flex-shrink:0;}
.ad-item-tools{display:flex;align-items:center;gap:3px;flex-shrink:0;}
.ad-tool{width:28px;height:28px;border-radius:7px;border:none;background:none;cursor:pointer;color:var(--gray);display:flex;align-items:center;justify-content:center;transition:all .14s;}
.ad-tool svg{width:15px;height:15px;}
.ad-tool:hover{background:var(--paper);color:var(--ink);}
.ad-tool.del:hover{background:var(--red-lt);color:var(--red);}
.ad-caret{transition:transform .2s;color:var(--gray);}
.ad-item.open .ad-caret{transform:rotate(90deg);}
.ad-item-body{display:none;padding:6px 18px 20px;border-top:1px solid var(--hairline);}
.ad-item.open .ad-item-body{display:block;}

/* fields */
.ad-field{margin-top:15px;}
.ad-lbl{display:block;font-size:.62rem;font-weight:700;font-family:'Asap Condensed',sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--gray);margin-bottom:6px;}
.ad-in,.ad-area,.ad-sel{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface);font-family:'Asap',sans-serif;font-size:.86rem;color:var(--ink);transition:border-color .15s,box-shadow .15s;}
.ad-in:focus,.ad-area:focus,.ad-sel:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(33,52,99,.12);}
.ad-area{resize:vertical;min-height:64px;line-height:1.5;}
.ad-bi{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
@media(max-width:620px){.ad-bi{grid-template-columns:1fr;}}
.ad-bi-col .ad-flag{font-size:.56rem;font-weight:700;font-family:'Asap Condensed',sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#9C968B;margin-bottom:4px;display:block;}
.ad-row2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.ad-row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;}
@media(max-width:620px){.ad-row2,.ad-row3{grid-template-columns:1fr;}}
.ad-check{display:inline-flex;align-items:center;gap:9px;cursor:pointer;font-size:.85rem;color:var(--ink);font-weight:500;user-select:none;}
.ad-check input{width:18px;height:18px;accent-color:var(--red);}
.ad-sub-list{margin-top:8px;border-left:2px solid var(--line);padding-left:14px;}
.ad-sub-item{display:flex;gap:8px;align-items:flex-start;margin-bottom:8px;}
.ad-sub-item .ad-in{flex:1;}
.ad-mini-add{display:inline-flex;align-items:center;gap:6px;background:var(--cream);border:1px dashed var(--border-strong);color:var(--gray);cursor:pointer;font-family:'Asap Condensed',sans-serif;font-weight:700;font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;padding:8px 12px;border-radius:8px;margin-top:4px;transition:all .14s;}
.ad-mini-add:hover{border-color:var(--navy);color:var(--navy);}
.ad-group-block{background:var(--cream);border:1px solid var(--hairline);border-radius:var(--r);padding:14px 16px;margin-bottom:14px;}
.ad-group-hd{display:flex;align-items:center;gap:10px;margin-bottom:6px;}
.ad-group-hd .ad-h2{font-size:.95rem;font-weight:700;color:var(--ink);}

/* swatch select */
.ad-swatches{display:flex;flex-wrap:wrap;gap:7px;}
.ad-sw{width:30px;height:30px;border-radius:8px;border:2px solid transparent;cursor:pointer;transition:transform .12s;position:relative;}
.ad-sw:hover{transform:scale(1.1);}
.ad-sw.on{border-color:var(--ink);box-shadow:0 0 0 2px var(--surface) inset;}

/* login */
.ad-login{max-width:420px;margin:8vh auto;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-lg);box-shadow:var(--card-shadow-hover);padding:34px 32px;text-align:center;}
.ad-login-ico{width:58px;height:58px;border-radius:16px;background:var(--red-lt);color:var(--red);display:flex;align-items:center;justify-content:center;margin:0 auto 14px;}
.ad-login-ico svg{width:28px;height:28px;}
.ad-login h2{font-size:1.4rem;font-weight:700;letter-spacing:-.03em;color:var(--ink);}
.ad-login p{font-size:.84rem;color:var(--gray);margin:8px 0 22px;line-height:1.5;}
.ad-login .ad-in{text-align:center;margin-bottom:12px;}
.ad-login-btn{width:100%;background:var(--red);color:#fff;border:none;cursor:pointer;font-family:'Asap',sans-serif;font-weight:700;font-size:.9rem;padding:13px;border-radius:10px;box-shadow:0 8px 20px rgba(220,30,51,.22);transition:transform .15s;}
.ad-login-btn:hover{transform:translateY(-2px);}
.ad-err{color:var(--red);font-size:.8rem;font-weight:600;margin-bottom:12px;min-height:1em;}
.ad-google{display:flex;justify-content:center;margin-bottom:14px;min-height:44px;}
.ad-or{display:flex;align-items:center;text-align:center;gap:12px;margin:0 0 14px;color:var(--gray);font-family:'Asap Condensed',sans-serif;font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;}
.ad-or::before,.ad-or::after{content:'';flex:1;height:1px;background:var(--line);}
.ad-note{font-size:.7rem;color:var(--gray);font-family:'Asap Condensed',sans-serif;margin-top:16px;line-height:1.5;}

/* footer bar */
.ad-foot{display:flex;align-items:center;gap:10px;padding:13px 22px;background:var(--surface);border-top:1px solid var(--line);flex-wrap:wrap;}
.ad-fbtn{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--surface);cursor:pointer;font-family:'Asap',sans-serif;font-weight:600;font-size:.78rem;color:var(--ink);padding:9px 14px;border-radius:9px;transition:all .15s;}
.ad-fbtn svg{width:15px;height:15px;}
.ad-fbtn:hover{background:var(--cream);}
.ad-fbtn.warn:hover{background:var(--red-lt);color:var(--red);border-color:var(--red);}
.ad-publish{margin-left:auto;display:inline-flex;align-items:center;gap:8px;background:var(--green);color:#fff;border:none;cursor:pointer;font-family:'Asap',sans-serif;font-weight:700;font-size:.82rem;padding:11px 18px;border-radius:9px;transition:transform .15s;}
.ad-publish svg{width:16px;height:16px;}
.ad-publish:hover{transform:translateY(-2px);}
.ad-saved{font-size:.7rem;color:var(--green);font-family:'Asap Condensed',sans-serif;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:0;transition:opacity .2s;}
.ad-saved.show{opacity:1;}
.ad-empty{text-align:center;color:var(--gray);font-size:.85rem;padding:30px;font-family:'Asap Condensed',sans-serif;}

/* header launch button */
.hdr-admin{background:none;border:1px solid var(--line);border-radius:9px;cursor:pointer;color:var(--gray);padding:7px;display:flex;align-items:center;justify-content:center;transition:all .15s;}
.hdr-admin svg{width:17px;height:17px;display:block;}
.hdr-admin:hover{background:var(--red-lt);color:var(--red);border-color:var(--red);}

[data-theme="dark"] .ad-shell{background:var(--bg);}
[data-theme="dark"] .ad-top,[data-theme="dark"] .ad-nav,[data-theme="dark"] .ad-foot,
[data-theme="dark"] .ad-item,[data-theme="dark"] .ad-login{background:var(--surface);border-color:var(--border);}
[data-theme="dark"] .ad-title,[data-theme="dark"] .ad-h,[data-theme="dark"] .ad-item-name,
[data-theme="dark"] .ad-login h2,[data-theme="dark"] .ad-check{color:var(--text);}
[data-theme="dark"] .ad-in,[data-theme="dark"] .ad-area,[data-theme="dark"] .ad-sel{background:var(--surface2);border-color:var(--border);color:var(--text);}
[data-theme="dark"] .ad-group-block{background:var(--surface2);border-color:var(--border);}
[data-theme="dark"] .ad-item-hd:hover,[data-theme="dark"] .ad-fbtn:hover{background:var(--surface2);}
[data-theme="dark"] .ad-item-tag{background:var(--surface2);}
