:root{
  --ink:#0A0B0D;
  --ink-2:#101216;
  --panel:#15181D;
  --panel-2:#1C2027;
  --line:rgba(255,255,255,.10);
  --line-strong:rgba(255,255,255,.20);
  --chrome:#C9CED6;
  --chrome-dim:#8C939C;
  --bone:#F2F4F7;
  --gold:#F0AF19;
  --gold-hi:#FFD24A;
  --red:#D81F26;
  --red-hi:#F03038;
  --ok:#4ADE80;
  --shell:min(1280px,94vw);
  --r-sm:4px;
  --r-md:10px;
  --ease-out:cubic-bezier(.23,1,.32,1);
  --f:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--ink-2);color:var(--bone);font-family:var(--f);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:2px}
h1,h2,h3{margin:0;font-weight:700;letter-spacing:-.01em;line-height:1.2}
p{margin:0 0 1rem}
.shell{width:var(--shell);margin-inline:auto}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;font-size:.92rem;font-weight:600;padding:.6rem 1.1rem;border:1px solid transparent;border-radius:var(--r-sm);cursor:pointer;transition:transform 140ms var(--ease-out),background-color 160ms ease,border-color 160ms ease,color 160ms ease}
.btn:active{transform:scale(.975)}
.btn--red{background:var(--red);color:#fff}
.btn--red:hover{background:var(--red-hi)}
.btn--gold{background:linear-gradient(170deg,var(--gold-hi),var(--gold));color:#180F00}
.btn--gold:hover{filter:brightness(1.07)}
.btn--ghost{border-color:var(--line-strong);background:transparent;color:var(--bone)}
.btn--ghost:hover{border-color:var(--gold);color:var(--gold)}
.btn--sm{padding:.4rem .75rem;font-size:.86rem}
.btn--danger{border-color:rgba(216,31,38,.5);color:#FF9A9E;background:transparent}
.btn--danger:hover{background:var(--red);color:#fff;border-color:var(--red)}
.btn[disabled]{opacity:.5;cursor:not-allowed}

/* top bar */
.abar{position:sticky;top:0;z-index:30;background:rgba(10,11,13,.95);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.abar__in{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;padding:.7rem 0}
.abar__brand{display:flex;align-items:center;gap:.6rem;margin-right:auto}
.abar__brand img{height:40px;width:auto}
.abar__brand b{font-size:.98rem;font-weight:700;display:block;line-height:1.15}
.abar__brand small{display:block;font-size:.74rem;color:var(--chrome-dim)}
.tag{font-size:.68rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#180F00;background:var(--gold);padding:.12rem .45rem;border-radius:3px;vertical-align:middle;margin-left:.35rem}

/* layout */
.alayout{display:grid;grid-template-columns:230px 1fr;gap:1.8rem;padding:1.6rem 0 4rem;align-items:start}
@media (max-width:900px){.alayout{grid-template-columns:1fr;gap:1rem}}
.anav{display:flex;flex-direction:column;gap:.15rem;position:sticky;top:76px}
@media (max-width:900px){.anav{position:static;flex-direction:row;flex-wrap:wrap;gap:.3rem}}
.anav a{display:flex;align-items:center;gap:.55rem;padding:.55rem .8rem;border-radius:var(--r-sm);color:var(--chrome-dim);font-size:.93rem;font-weight:500;border:1px solid transparent;transition:color 150ms ease,background-color 150ms ease}
.anav a:hover{color:var(--bone);background:rgba(255,255,255,.03)}
.anav a.is-on{background:var(--panel);color:#fff;border-color:var(--line);box-shadow:inset 3px 0 0 var(--gold)}
.anav svg{width:17px;height:17px;flex:none}
.anav__label{margin:1rem 0 .3rem;padding-left:.8rem;font-size:.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#5D646D}
@media (max-width:900px){.anav__label{display:none}}
.count{margin-left:auto;background:var(--red);color:#fff;font-size:.72rem;font-weight:700;border-radius:99px;padding:.05rem .42rem}

/* panels */
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);padding:clamp(1.1rem,2.6vw,1.7rem);margin-bottom:1.1rem}
.panel__head{margin-bottom:1.3rem}
.panel__head h1,.panel__head h2{font-size:1.3rem}
.panel__head p{color:var(--chrome-dim);font-size:.93rem;margin:.35rem 0 0;max-width:70ch}
.blocklabel{display:flex;align-items:center;gap:.6rem;margin:0 0 .8rem;font-size:.76rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--chrome-dim)}
.blocklabel::after{content:"";flex:1;height:1px;background:var(--line)}

/* forms */
.grid{display:grid;gap:.95rem}
@media (min-width:760px){.grid--2{grid-template-columns:1fr 1fr}}
@media (min-width:760px){.grid--3{grid-template-columns:repeat(3,1fr)}}
.field{display:grid;gap:.3rem;align-content:start}
.field--wide{grid-column:1/-1}
.field label{font-size:.8rem;font-weight:600;color:var(--chrome-dim)}
.field input[type=text],.field input[type=email],.field input[type=url],.field input[type=number],
.field input[type=date],.field input[type=password],.field select,.field textarea{
  background:var(--ink);border:1px solid var(--line-strong);border-radius:var(--r-sm);
  padding:.6rem .75rem;color:var(--bone);width:100%;
  transition:border-color 150ms ease,background-color 150ms ease}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold);outline:none;background:#0C0E12}
.field textarea{resize:vertical;min-height:72px}
.field .helptext{font-size:.8rem;color:#6E757E}
.field--check{display:flex;align-items:center;gap:.5rem}
.field--check label{font-size:.9rem;color:var(--bone);font-weight:500}
.field--check input{width:17px;height:17px;accent-color:var(--gold)}
.errorlist{list-style:none;margin:.2rem 0 0;padding:0;color:#FF8A8A;font-size:.84rem}
.field--error input,.field--error select,.field--error textarea{border-color:var(--red)}

/* repeating rows */
.rows{display:grid;gap:.85rem}
.row{border:1px solid var(--line);border-radius:var(--r-md);background:var(--ink-2);padding:1rem}
.row__head{display:flex;align-items:center;gap:.6rem;margin-bottom:.85rem}
.row__head b{font-size:.82rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--chrome-dim);margin-right:auto}
.row__del{display:flex;align-items:center;gap:.4rem;font-size:.84rem;color:var(--chrome-dim);cursor:pointer;user-select:none}
.row__del input{accent-color:var(--red);width:16px;height:16px}
.row.is-doomed{opacity:.45;border-color:rgba(216,31,38,.5)}
.thumb{width:100px;height:72px;object-fit:cover;border-radius:var(--r-sm);border:1px solid var(--line-strong);background:var(--ink)}
.thumb--contain{object-fit:contain;background:#000;padding:4px}
.imgrow{display:flex;gap:.8rem;align-items:flex-start;flex-wrap:wrap}
.imgrow > .field{flex:1;min-width:220px}
.empty{padding:1.6rem;text-align:center;color:var(--chrome-dim);border:1px dashed var(--line-strong);border-radius:var(--r-md);font-size:.93rem}

/* sticky save bar */
.savebar{position:sticky;bottom:0;z-index:20;display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;
  background:rgba(10,11,13,.95);backdrop-filter:blur(10px);border-top:1px solid var(--line);
  padding:.8rem 0;margin-top:.4rem}
.savebar span{color:var(--chrome-dim);font-size:.87rem;margin-right:auto}

/* dashboard home */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.9rem;margin-bottom:1.1rem}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);padding:1.1rem}
.stat b{display:block;font-size:1.9rem;font-weight:800;line-height:1.1;letter-spacing:-.02em}
.stat small{color:var(--chrome-dim);font-size:.84rem}
.stat--alert b{color:var(--gold)}

/* tables */
.table{width:100%;border-collapse:collapse;font-size:.92rem}
.table th{text-align:left;font-size:.74rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--chrome-dim);padding:.55rem .6rem;border-bottom:1px solid var(--line)}
.table td{padding:.7rem .6rem;border-bottom:1px solid var(--line);vertical-align:top}
.table tr:hover td{background:rgba(255,255,255,.02)}
.table a.rowlink{font-weight:600}
.table a.rowlink:hover{color:var(--gold)}
.pill{display:inline-block;font-size:.74rem;font-weight:600;padding:.1rem .5rem;border-radius:99px;border:1px solid var(--line-strong);color:var(--chrome-dim);white-space:nowrap}
.pill--new{background:rgba(240,175,25,.14);border-color:rgba(240,175,25,.5);color:var(--gold-hi)}
.pill--in_progress{background:rgba(74,158,222,.14);border-color:rgba(74,158,222,.45);color:#8CC6F5}
.pill--closed{opacity:.7}
.pill--booking{background:rgba(216,31,38,.14);border-color:rgba(216,31,38,.45);color:#FF9A9E}

/* filters */
.filters{display:flex;gap:.6rem;flex-wrap:wrap;align-items:flex-end;margin-bottom:1.1rem}
.filters .field{min-width:150px}

/* flash messages */
.flash{padding:.75rem 1rem;border-radius:var(--r-sm);border:1px solid var(--line-strong);border-left:3px solid var(--ok);background:var(--panel-2);margin-bottom:1rem;font-size:.93rem}
.flash--error{border-left-color:var(--red)}
.flash--warning{border-left-color:var(--gold)}

/* login */
.login{min-height:100vh;display:grid;place-items:center;padding:1.5rem}
.login__box{width:min(400px,100%);background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);padding:1.8rem}
.login__logo{height:70px;margin:0 auto 1.2rem}
.login__logo img{height:100%;width:auto;margin-inline:auto}
.login h1{font-size:1.2rem;text-align:center;margin-bottom:.3rem}
.login p.sub{text-align:center;color:var(--chrome-dim);font-size:.9rem;margin-bottom:1.4rem}
.login .grid{gap:.85rem}

.muted{color:var(--chrome-dim)}
.small{font-size:.86rem}
.stack{display:grid;gap:.4rem}
.inline{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}
}
