/* Front Office (management) — dark theme, standalone (no public nav). */
.fo-body { padding-top:0; background:#0f1f0f; }
.fo-top { background:var(--dg,#1a3a1a); border-bottom:2px solid var(--gold,#c8a84b); position:sticky; top:0; z-index:50; }
.fo-top-inner { max-width:1280px; margin:0 auto; padding:12px 20px; display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.fo-brand { font-family:'Oswald',sans-serif; font-size:1.05rem; color:#fff; }
.fo-brand strong { color:var(--yel,#f5c518); }
.fo-logo { font-size:1.2rem; }
.fo-me { font-size:.75rem; color:rgba(255,255,255,.55); }
.fo-me code { color:#a5d6a7; }

.fo-main { max-width:1280px; margin:0 auto; padding:22px 20px 60px; }

.fo-stats { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; margin-bottom:20px; }
.fo-stat { background:rgba(0,0,0,.3); border:1px solid rgba(255,255,255,.1); border-radius:8px; padding:16px; text-align:center; }
.fo-stat-n { font-family:'Oswald',sans-serif; font-size:1.6rem; font-weight:700; color:var(--yel,#f5c518); }
.fo-stat-l { font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.5); margin-top:4px; }

.fo-filters { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:16px; }
.fo-filters a { font-size:.78rem; padding:6px 12px; border-radius:20px; background:rgba(0,0,0,.25); color:rgba(255,255,255,.7); border:1px solid rgba(255,255,255,.1); }
.fo-filters a:hover { color:#fff; text-decoration:none; }
.fo-filters a.on { background:var(--gold,#c8a84b); color:#1a1a1a; border-color:var(--gold,#c8a84b); font-weight:700; }

.fo-empty { color:rgba(255,255,255,.55); padding:30px; text-align:center; background:rgba(0,0,0,.2); border-radius:8px; }

.fo-table-wrap { overflow-x:auto; border:1px solid rgba(255,255,255,.1); border-radius:8px; }
.fo-table { width:100%; border-collapse:collapse; font-size:.8rem; min-width:1050px; }
.fo-table th { background:var(--dg,#1a3a1a); color:var(--gold,#c8a84b); font-family:'Oswald',sans-serif; text-align:left; padding:10px; position:sticky; top:0; }
.fo-table td { padding:9px 10px; border-top:1px solid rgba(255,255,255,.08); color:rgba(255,255,255,.85); vertical-align:top; }
.fo-table tr.fo-upcoming td { background:rgba(46,125,50,.10); }
.fo-dim { color:rgba(255,255,255,.5); font-size:.74rem; }
.fo-route { max-width:280px; }
.fo-route .fo-arr { color:var(--gold,#c8a84b); margin:0 5px; }
.fo-note { margin-top:5px; color:rgba(255,255,255,.6); font-size:.72rem; font-style:italic; }
.fo-ip { color:#a5d6a7; background:rgba(0,0,0,.3); padding:1px 5px; border-radius:3px; font-size:.72rem; }

.fo-badge { display:inline-block; padding:2px 9px; border-radius:12px; font-size:.7rem; font-weight:700; text-transform:capitalize; }
.bk-pending   { background:#5d4d1f; color:#ffe082; }
.bk-confirmed { background:#1f4d5d; color:#80deea; }
.bk-completed { background:#1f5d2e; color:#a5d6a7; }
.bk-cancelled { background:#5d1f1f; color:#ef9a9a; }
.bk-no_show   { background:#3a3a3a; color:#bbb; }

.fo-actions select { background:#0f1f0f; color:#fff; border:1px solid rgba(255,255,255,.2); border-radius:5px; padding:5px 6px; font-size:.75rem; }
.fo-foot { margin-top:20px; font-size:.74rem; color:rgba(255,255,255,.4); }

@media(max-width:820px){
  .fo-stats { grid-template-columns:repeat(2,1fr); }
}

/* Google Calendar connect page */
.fo-gcal-card { background:rgba(0,0,0,.3); border:1px solid rgba(255,255,255,.1); border-radius:10px; padding:24px 26px; }
.fo-gcal-card.ok { border-color:#2e7d32; }
.fo-gcal-card h2 { font-family:'Oswald',sans-serif; color:var(--yel,#f5c518); margin:0 0 10px; }
.fo-gcal-card p { color:rgba(255,255,255,.8); line-height:1.5; margin:0 0 6px; }
.fo-gcal-card code { background:rgba(0,0,0,.4); padding:2px 6px; border-radius:4px; color:#a5d6a7; font-size:.82rem; word-break:break-all; }
.fo-gcal-msg { padding:12px 16px; border-radius:8px; margin-bottom:16px; font-weight:600; }
.fo-gcal-msg.ok { background:rgba(46,125,50,.2); border:1px solid #2e7d32; color:#a5d6a7; }
.fo-gcal-msg.err { background:rgba(198,40,40,.2); border:1px solid #8b0000; color:#ef9a9a; }
.fo-btn { display:inline-block; background:#1a73e8; color:#fff !important; font-weight:700; padding:10px 18px; border-radius:6px; text-decoration:none; margin:4px 6px 4px 0; }
.fo-btn:hover { filter:brightness(1.1); text-decoration:none; }
.fo-btn.ghost { background:rgba(255,255,255,.12); }
.fo-btn.danger { background:#7a1f1f; }

/* Admin settings panels */
.fo-grid2 { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
@media(max-width:760px){ .fo-grid2 { grid-template-columns:1fr; } }
.fo-panel { background:rgba(0,0,0,.3); border:1px solid rgba(255,255,255,.1); border-radius:10px; padding:20px 22px; }
.fo-panel h2 { font-family:'Oswald',sans-serif; color:var(--yel,#f5c518); margin:0 0 12px; font-size:1.1rem; }
.fo-hint { font-size:.76rem; color:rgba(255,255,255,.5); margin:0 0 12px; }
.fo-panel label { display:block; font-size:.8rem; color:rgba(255,255,255,.8); margin:0 0 10px; }
.fo-panel label span { color:rgba(255,255,255,.4); font-size:.72rem; }
.fo-panel input, .fo-panel select { width:100%; margin-top:3px; background:#0f1f0f; color:#fff; border:1px solid rgba(255,255,255,.2); border-radius:5px; padding:7px 9px; font-size:.85rem; }
.fo-coupon-add { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.fo-coupon-add input, .fo-coupon-add select { width:auto; background:#0f1f0f; color:#fff; border:1px solid rgba(255,255,255,.2); border-radius:5px; padding:7px 9px; font-size:.85rem; }

/* Bug reports */
.fo-bug { background:rgba(0,0,0,.3); border:1px solid rgba(255,255,255,.1); border-left:4px solid #b71c1c; border-radius:8px; padding:14px 16px; margin-bottom:12px; }
.fo-bug.done { border-left-color:#2e7d32; opacity:.75; }
.fo-bug-head { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:8px; }
.fo-bug-msg { color:#fff; font-size:.9rem; line-height:1.5; margin:0 0 6px; white-space:pre-wrap; }
.fo-bug code { color:#a5d6a7; font-size:.78rem; word-break:break-all; }
