/* ============================================================
   M1 — admin layer + promo banner styles (m1-admin.css)
   Loaded on every page next to m1.css; uses the same design
   tokens (HUD mono type, obsidian panels, lime accent).
   Everything is namespaced .m1a- and inert until injected.
   ============================================================ */

/* ---- promo marquee bar (visible to everyone while a promo is live) ---- */
.m1a-promo{position:fixed;top:0;left:0;right:0;z-index:60;overflow:hidden;cursor:pointer;
  background:linear-gradient(90deg,#0C1A04,#123005 50%,#0C1A04);
  border-bottom:1px solid rgba(95,222,30,.4);height:34px;display:flex;align-items:center}
.m1a-promo .m1a-promo-row{display:flex;width:max-content;align-items:center;
  animation:m1aPromoMove 28s linear infinite;will-change:transform}
.m1a-promo span{display:inline-flex;align-items:center;gap:.55em;white-space:nowrap;
  font-family:var(--mono);font-size:.6rem;letter-spacing:.16em;color:#fff;padding:0 1.6em}
.m1a-promo b{color:#fff;font-weight:700}
.m1a-promo i{font-style:normal;color:rgba(255,255,255,.55)}
.m1a-promo .m1a-promo-x{position:absolute;right:8px;top:50%;transform:translateY(-50%);z-index:2;
  width:22px;height:22px;display:grid;place-items:center;border:1px solid rgba(95,222,30,.35);
  border-radius:var(--r-sm);background:rgba(10,13,7,.8);color:var(--gold-2);cursor:pointer;font-size:.66rem}
.m1a-promo .m1a-promo-x:hover{color:var(--ink);border-color:var(--gold)}
@keyframes m1aPromoMove{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.m1a-promo .m1a-promo-row{animation:none}}
body.m1a-has-promo .nav{top:34px}

/* ---- admin toolbar (bottom-right pill, admin session only) ---- */
.m1a-fab{position:fixed;right:16px;bottom:16px;z-index:80;display:flex;align-items:center;gap:7px;
  padding:9px 11px;border:1px solid rgba(95,222,30,.4);border-radius:12px;
  background:linear-gradient(180deg,rgba(12,11,8,.94),rgba(9,8,6,.96));
  box-shadow:0 24px 54px -24px #000;backdrop-filter:blur(8px)}
.m1a-fab .m1a-fab-dot{width:7px;height:7px;border-radius:50%;background:var(--gold);
  box-shadow:0 0 10px rgba(95,222,30,.8);margin:0 2px 0 3px}
.m1a-fab .m1a-fab-lab{font-family:var(--mono);font-size:.55rem;letter-spacing:.2em;color:var(--faint);margin-right:4px}
.m1a-fab button{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;color:var(--muted);
  background:rgba(245,239,227,.04);border:1px solid var(--line);border-radius:var(--r-sm);
  padding:.55em .85em;cursor:pointer;transition:.16s var(--ease)}
.m1a-fab button:hover{color:var(--ink);border-color:var(--stone)}
.m1a-fab button.m1a-x{padding:.55em .7em;color:var(--faint)}
@media(max-width:640px){.m1a-fab{right:10px;bottom:88px;flex-wrap:wrap;max-width:calc(100vw - 20px)}}

/* ---- modal shell ---- */
.m1a-ov{position:fixed;inset:0;z-index:95;display:flex;align-items:flex-start;justify-content:center;
  padding:5vh 4vw;background:rgba(5,7,4,.82);backdrop-filter:blur(6px);
  opacity:0;pointer-events:none;transition:opacity .22s var(--ease);overflow-y:auto}
.m1a-ov.open{opacity:1;pointer-events:auto}
.m1a-panel{width:min(920px,100%);margin:auto 0;border:1px solid var(--line);border-radius:var(--r-lg);
  background:linear-gradient(180deg,rgba(14,13,10,.98),rgba(9,8,6,.99));
  box-shadow:0 60px 120px -40px #000,inset 0 0 0 1px rgba(245,239,227,.03)}
.m1a-panel.slim{width:min(420px,100%)}
.m1a-head{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:15px 18px;border-bottom:1px solid var(--line)}
.m1a-head .t{font-family:var(--mono);font-size:.62rem;letter-spacing:.22em;color:var(--gold-2)}
.m1a-head .t::before{content:"● ";color:var(--gold)}
.m1a-close{width:26px;height:26px;display:grid;place-items:center;border:1px solid var(--line);
  border-radius:var(--r-sm);background:none;color:var(--muted);cursor:pointer;font-size:.72rem}
.m1a-close:hover{color:var(--ink);border-color:var(--stone)}
.m1a-body{padding:18px}
.m1a-sec{margin-bottom:22px}
.m1a-sec:last-child{margin-bottom:4px}
.m1a-sec > .lab{font-family:var(--mono);font-size:.55rem;letter-spacing:.22em;color:var(--faint);
  margin-bottom:10px;display:flex;align-items:center;gap:.7em}
.m1a-sec > .lab::after{content:"";flex:1;height:1px;background:var(--line-soft)}
.m1a-note{font-family:var(--sans);font-size:.78rem;color:var(--faint);line-height:1.5;margin:8px 0 0}

/* ---- inputs / buttons (match the book form) ---- */
.m1a-in{width:100%;font-family:var(--sans);font-size:.88rem;color:var(--ink);background:rgba(245,239,227,.04);
  border:1px solid var(--line);border-radius:var(--r-sm);padding:.66em .8em;transition:border-color .18s var(--ease)}
.m1a-in::placeholder{color:var(--faint)}
.m1a-in:focus{outline:none;border-color:var(--gold)}
select.m1a-in{appearance:none}
.m1a-btn{font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;cursor:pointer;
  border-radius:var(--r-sm);padding:.7em 1.1em;transition:.16s var(--ease);border:1px solid var(--line);
  background:rgba(245,239,227,.04);color:var(--muted)}
.m1a-btn:hover{color:var(--ink);border-color:var(--stone)}
.m1a-btn.gold{background:var(--gold);border-color:var(--gold);color:#0C1A04;font-weight:700}
.m1a-btn.gold:hover{background:var(--gold-2);border-color:var(--gold-2);color:#0C1A04}
.m1a-btn.danger:hover{color:#ff9270;border-color:#ff9270}
.m1a-btn[disabled]{opacity:.5;cursor:default}
.m1a-msg{font-family:var(--sans);font-size:.78rem;color:var(--muted);min-height:1.2em;margin-top:9px}
.m1a-msg.ok{color:var(--gold-2)}
.m1a-msg.err{color:#ff9270}
.m1a-row{display:flex;gap:9px;flex-wrap:wrap;align-items:center}
.m1a-grid2{display:grid;grid-template-columns:1fr 1fr;gap:9px}
@media(max-width:560px){.m1a-grid2{grid-template-columns:1fr}}

/* ---- chips (time windows) ---- */
.m1a-chip{font-family:var(--mono);font-size:.62rem;letter-spacing:.04em;color:var(--muted);
  border-radius:var(--r-sm);background:rgba(245,239,227,.03);border:1px solid var(--line);
  padding:.5em .75em;cursor:pointer;transition:.16s var(--ease);user-select:none}
.m1a-chip:hover{border-color:var(--stone);color:var(--ink)}
.m1a-chip.sel{color:#0C1A04;background:var(--gold);border-color:var(--gold);font-weight:700}
.m1a-chip.add{color:var(--faint);border-style:dashed}
.m1a-chip .cx{margin-left:.55em;border:none;background:none;color:inherit;opacity:.55;
  cursor:pointer;font:inherit;font-size:.85em;padding:0;vertical-align:baseline}
.m1a-chip .cx:hover{opacity:1;color:#ff9270}
.m1a-chip.sel .cx:hover{color:#7a1d00}

/* ---- weekly template rows ---- */
.m1a-week{display:grid;gap:7px}
.m1a-wrow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid var(--line-soft);
  border-radius:var(--r-md);padding:9px 11px;background:rgba(245,239,227,.02)}
.m1a-wrow .d{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;color:var(--ink);width:36px}
.m1a-wrow.off .d{color:var(--faint)}
.m1a-tgl{font-family:var(--mono);font-size:.56rem;letter-spacing:.12em;padding:.45em .7em;cursor:pointer;
  border-radius:var(--r-sm);border:1px solid var(--line);background:none;color:var(--faint);transition:.16s var(--ease)}
.m1a-tgl.on{color:#0C1A04;background:var(--gold);border-color:var(--gold);font-weight:700}

/* ---- admin calendar (mirrors the book-page dispatch calendar) ---- */
.m1a-cal{border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;
  background:linear-gradient(180deg,rgba(12,11,8,.82),rgba(9,8,6,.8))}
.m1a-cal-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;
  border-bottom:1px solid var(--line);font-family:var(--mono);font-size:.58rem;letter-spacing:.14em;color:var(--muted)}
.m1a-cal-nav{width:22px;height:22px;display:grid;place-items:center;border:1px solid var(--line);
  border-radius:var(--r-sm);color:var(--muted);cursor:pointer;font-size:.72rem;background:none}
.m1a-cal-nav:hover{border-color:rgba(245,239,227,.28);color:var(--bone)}
.m1a-cal-in{padding:13px 14px}
.m1a-cal-week,.m1a-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.m1a-cal-week{margin-bottom:8px}
.m1a-cal-week span{font-family:var(--mono);font-size:.52rem;letter-spacing:.08em;color:var(--faint);text-align:center}
.m1a-cell{aspect-ratio:1;display:grid;place-items:center;position:relative;border-radius:var(--r-sm);
  font-family:var(--mono);font-size:.78rem;color:var(--muted);border:1px solid transparent;background:none;padding:0}
.m1a-cell.pad{visibility:hidden}
.m1a-cell.past{color:rgba(245,239,227,.18)}
.m1a-cell.closed{color:rgba(245,239,227,.34);border-color:var(--line-soft);cursor:pointer}
.m1a-cell.open{color:var(--ink);border-color:rgba(95,222,30,.45);cursor:pointer}
.m1a-cell.open::after{content:"";position:absolute;bottom:5px;width:4px;height:4px;border-radius:50%;background:var(--gold)}
.m1a-cell.closed:hover,.m1a-cell.open:hover{background:rgba(245,239,227,.06)}
.m1a-cell.ovr::before{content:"";position:absolute;top:5px;right:5px;width:5px;height:5px;
  border-radius:50%;background:var(--gold-2);box-shadow:0 0 6px rgba(155,241,90,.8)}
.m1a-cell.sel{background:var(--gold);color:#0C1A04;border-color:var(--gold);font-weight:700}
.m1a-cell.sel::after{background:#0C1A04}
.m1a-cell .bk{position:absolute;left:4px;top:3px;font-size:.5rem;color:#ffb38a}
.m1a-cal-legend{display:flex;gap:16px;flex-wrap:wrap;padding:0 14px 12px;
  font-family:var(--mono);font-size:.52rem;letter-spacing:.06em;color:var(--faint)}
.m1a-cal-legend i{display:inline-block;width:5px;height:5px;border-radius:50%;margin-right:5px;vertical-align:middle}
.m1a-cal-legend .lg-open i{background:var(--gold)}
.m1a-cal-legend .lg-ovr i{background:var(--gold-2)}
.m1a-cal-legend .lg-bk i{background:#ffb38a}

/* ---- day editor ---- */
.m1a-dayed{margin-top:12px;border:1px solid var(--line);border-radius:var(--r-md);padding:13px 14px;
  background:rgba(245,239,227,.02)}
.m1a-dayed .dt{font-family:var(--mono);font-size:.64rem;letter-spacing:.16em;color:var(--gold-2);margin-bottom:11px}

/* ---- lists (bookings / promos / photos) ---- */
.m1a-list{display:grid;gap:7px}
.m1a-item{display:flex;align-items:center;gap:11px;flex-wrap:wrap;border:1px solid var(--line-soft);
  border-radius:var(--r-md);padding:9px 11px;background:rgba(245,239,227,.02);
  font-family:var(--sans);font-size:.8rem;color:var(--muted)}
.m1a-item .mono{font-family:var(--mono);font-size:.6rem;letter-spacing:.08em;color:var(--gold-2)}
.m1a-item .grow{flex:1 1 auto;min-width:0}
.m1a-item b{color:var(--ink);font-weight:600}
.m1a-item.cancelled{opacity:.45}
.m1a-item .m1a-btn{padding:.45em .7em;font-size:.56rem}

/* ---- photos grid ---- */
.m1a-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:9px}
.m1a-ph{position:relative;border-radius:var(--r-sm);overflow:hidden;aspect-ratio:16/10;border:1px solid var(--line-soft)}
.m1a-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.m1a-ph .cap{position:absolute;left:0;right:0;bottom:0;padding:4px 7px;font-family:var(--mono);font-size:.5rem;
  letter-spacing:.06em;color:var(--muted);background:linear-gradient(0deg,rgba(5,7,4,.85),transparent)}
.m1a-ph .del{position:absolute;top:5px;right:5px;width:20px;height:20px;display:grid;place-items:center;
  border:1px solid rgba(255,146,112,.5);border-radius:var(--r-sm);background:rgba(9,8,6,.8);
  color:#ff9270;cursor:pointer;font-size:.6rem}

/* ---- delete button that appears on live gallery figures in admin mode ---- */
.resolve .m1a-figdel{position:absolute;top:8px;right:8px;z-index:3;width:24px;height:24px;display:grid;
  place-items:center;border:1px solid rgba(255,146,112,.55);border-radius:var(--r-sm);
  background:rgba(9,8,6,.85);color:#ff9270;cursor:pointer;font-size:.64rem}

/* ---- toast ---- */
.m1a-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,16px);z-index:99;opacity:0;
  pointer-events:none;transition:.25s var(--ease);font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;
  color:#0C1A04;background:var(--gold);border-radius:var(--r-sm);padding:.75em 1.2em;font-weight:700}
.m1a-toast.show{opacity:1;transform:translate(-50%,0)}
