/*##############################################################################
# Script:        style.css               (frontend of legacybakers.py)
# Version:       1.02
# Created by:    Matthew Boucher
# Email:         mrboucher99@gmail.com
# Start date:    2026-10-01
# Location:      frontend/style.css
# Description:   The shared look for the Legacy Bakers login, password and loading pages. Palette
#                drawn from the Long Beach street scene (navy sign, hunter-green ironwork, subway
#                gold, warm sand), which also serves as the fixed page background. Theme-aware for
#                light and dark. The public brochure (index.html) carries its own styles inline.
# Reads:         frontend/longbeach-bg.jpg (the background image)
# Writes:        nothing
# Changelog (last 15):
#   1.02  2026-10-01  Wordmark set in a Helvetica-style sans (Arimo) to match the Long Beach painting's subway lettering.
#   1.01  2026-10-01  First versioned release: login/password/loading page styling, forms, buttons, admin table.
##############################################################################*/
:root{
  --paper:#f4eddf; --panel:#fbf7ee; --ink:#182838; --muted:#55606e;
  --gold:#c5811a; --gold-ink:#9a6210; --navy:#1e3a5f; --green:#2f4c3b;
  --line:rgba(24,40,56,.16); --danger:#b5451f; --ok:#2f6b43;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root{ --paper:#111b26; --panel:rgba(22,35,48,.94); --ink:#ece0c9; --muted:#aab7c5;
         --gold:#e4a637; --gold-ink:#edb24a; --navy:#9cc0dd; --green:#8fba9e;
         --line:rgba(255,255,255,.14); --danger:#e8805a; --ok:#7fc598; color-scheme:dark; }
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; color:var(--ink);
  font-family:"EB Garamond","Iowan Old Style",Georgia,serif; font-size:17px; line-height:1.6;
  background:#1e3a5f url("/assets/longbeach-bg.jpg") center top / cover fixed no-repeat;
  -webkit-font-smoothing:antialiased;
}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,rgba(16,28,44,.45),rgba(12,22,36,.72))}

a{color:var(--gold-ink)}
.wordmark{font-family:"Arimo","Helvetica Neue",Helvetica,Arial,sans-serif;line-height:1;color:var(--ink)}
.eyebrow{text-transform:uppercase;letter-spacing:.24em;font-size:.72rem;color:var(--gold-ink)}

/* ---- centered auth card ---- */
.auth-wrap{min-height:100%;display:grid;place-items:center;padding:clamp(18px,5vw,48px)}
.card{width:100%;max-width:440px;background:var(--panel);border:1px solid var(--line);border-radius:6px;
  box-shadow:0 30px 70px -34px rgba(8,16,28,.8);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  padding:clamp(1.6rem,4vw,2.4rem)}
.card h1{font-family:"Arimo","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:700;font-size:clamp(2.2rem,7vw,3rem);
  margin:.2rem 0 0;text-align:center;color:var(--ink)}
.card .sub{text-align:center;color:var(--muted);font-style:italic;font-family:"Cormorant Garamond",serif;
  font-size:1.1rem;margin:.1rem 0 1.4rem}

label{display:block;font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;color:var(--gold-ink);margin:.9rem 0 .3rem}
input[type=text],input[type=password],input[type=email],select{
  width:100%;padding:.7rem .8rem;font:inherit;color:var(--ink);background:var(--paper);
  border:1px solid var(--line);border-radius:3px}
input:focus,select:focus{outline:2px solid var(--gold);outline-offset:1px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;width:100%;margin-top:1.3rem;
  padding:.78rem 1.2rem;font:inherit;letter-spacing:.03em;cursor:pointer;border-radius:3px;
  border:1px solid var(--gold);background:var(--gold);color:#fbf5e9;transition:transform .12s ease,filter .2s}
.btn:hover{transform:translateY(-1px);filter:brightness(1.05)}
.btn.ghost{background:transparent;color:var(--ink);margin-top:.7rem}
.btn.small{width:auto;margin:0;padding:.4rem .8rem;font-size:.85rem}

.msg{margin-top:1rem;padding:.6rem .8rem;border-radius:3px;font-size:.95rem;display:none}
.msg.show{display:block}
.msg.err{background:color-mix(in srgb,var(--danger) 16%,transparent);color:var(--danger);border:1px solid var(--danger)}
.msg.ok{background:color-mix(in srgb,var(--ok) 16%,transparent);color:var(--ok);border:1px solid var(--ok)}
.hint{color:var(--muted);font-size:.86rem;margin-top:.5rem;line-height:1.5}
.back{display:block;text-align:center;margin-top:1.1rem;color:var(--muted);font-size:.9rem}

/* ---- loading / dashboard pages ---- */
.top{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:1rem;
  padding:.7rem clamp(16px,4vw,32px);background:color-mix(in srgb,var(--panel) 92%,transparent);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.top .wordmark{font-size:1.5rem}
.top .spacer{margin-left:auto}
.pill{font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;padding:.22rem .6rem;border-radius:999px;
  border:1px solid var(--gold);color:var(--gold-ink)}
.dash{max-width:1000px;margin:0 auto;padding:clamp(1.6rem,5vw,3rem) clamp(16px,4vw,32px)}
.panel-card{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:clamp(1.4rem,4vw,2.2rem);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 24px 60px -34px rgba(8,16,28,.7);margin-bottom:1.4rem}
.panel-card h2{font-family:"Cormorant Garamond",serif;font-weight:600;font-size:clamp(1.6rem,4vw,2.3rem);margin:0 0 .4rem;color:var(--ink)}
.panel-card p{color:var(--muted);margin:.3rem 0}

table{width:100%;border-collapse:collapse;margin-top:1rem;font-size:.95rem}
th,td{text-align:left;padding:.55rem .5rem;border-bottom:1px solid var(--line);vertical-align:middle}
th{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--gold-ink)}
td .row-actions{display:flex;gap:.4rem;flex-wrap:wrap}
.tag{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;padding:.15rem .5rem;border-radius:999px;border:1px solid var(--line);color:var(--muted)}
.tag.admin{border-color:var(--gold);color:var(--gold-ink)}
.tag.staff{border-color:var(--green);color:var(--green)}
.scroll-x{overflow-x:auto}

.addform{display:flex;gap:.6rem;flex-wrap:wrap;align-items:end;margin-top:1rem}
.addform .fld{flex:1 1 180px;min-width:0}
.addform label{margin-top:0}
.addform .btn{width:auto;margin-top:0}

:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
/*##############################################################################
# End of style.css  v1.01
##############################################################################*/
