/* path: /assets/camera.css — Camera page styles: 2-column tools + preview,
   filter pills under preview, centered floating Camera/Gallery bar, rule-of-thirds overlay. */
:root{
  --fg:#111;--bg:#fff;--muted:#666;--pri:#0d6efd;--warn:#b54708;--br:16px;
  --aspect:9/16; /* camera.js may override via inline style */
}

/* Base */
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Helvetica,Arial,sans-serif;color:var(--fg);background:var(--bg)}
main{max-width:1100px;margin:0 auto;padding:12px 12px 120px}
.small{font-size:.875rem;color:#6c757d}
.hidden{display:none!important}

/* Inputs / buttons */
.form-control{width:100%;padding:.6rem .8rem;border:1px solid #dee2e6;border-radius:.6rem;font-size:1rem}
.btn{appearance:none;border:1px solid rgba(0,0,0,.5);border-radius:.75rem;padding:.6rem .8rem;font-size:1rem;line-height:1.1;display:inline-flex;align-items:center;gap:.4rem;cursor:pointer;background:#fff}
.btn:active{transform:scale(.98)}
.btn-pri{background:#0d6efd;color:#fff;border-color:#0d6efd}
.btn-success{background:#198754;color:#fff;border-color:#198754}
.btn-outline{background:#fff;color:#111}
.btn-sm{padding:.35rem .55rem;font-size:.9rem}
.btn-lg{padding:.8rem 1rem;font-size:1.05rem}
.d-grid{display:grid}

/* Status */
.statusbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.statuspill{font:600 12px/1.2 system-ui,ui-sans-serif,Segoe UI,Arial;padding:6px 10px;border:1px solid #ddd;border-radius:999px}

/* Layout: left tools + right preview */
.camgrid{display:grid;grid-template-columns:50px 1fr;gap:12px}
@media (max-width:640px){ .camgrid{grid-template-columns:40px 1fr} }

/* Left tool column */
.ctrl-col{display:flex;flex-direction:column;gap:.5rem;align-items:stretch}
.rbtn{width:100%;height:40px;border-radius:.6rem;border:1px solid rgba(0,0,0,.12);background:#fff;display:flex;align-items:center;justify-content:center;font-size:16px}
.rbtn.rbtn-toggled{outline:2px solid #0d6efd}
#aspectIcon{font-variant-numeric:tabular-nums;font-size:.9rem}

/* Preview frame honors aspect; wrap fills it */
.frame{width:100%;aspect-ratio:var(--aspect);background:#111;border-radius:1rem;overflow:hidden;position:relative}
#cropWrap{position:relative;width:100%;height:100%}
#cropCnv{display:block;width:100%;height:100%}

/* Rule-of-thirds overlay (toggle with .hide) */
#grid{
  position:absolute;inset:0;pointer-events:none;opacity:1;transition:opacity .2s;
  background:
    linear-gradient(to right, rgba(255,255,255,.18) 1px, transparent 1px) 0 0/33.333% 100%,
    linear-gradient(to bottom, rgba(255,255,255,.18) 1px, transparent 1px) 0 0/100% 33.333%;
}
#grid.hide{opacity:0}

/* Caption + refine inline */
.cap-row{margin-top:.6rem}
.cap-inline{display:grid;grid-template-columns:1fr auto;gap:.5rem;align-items:center}
#capBox{min-height:90px;border-radius:.5rem}
.btn-refine{width:44px;justify-content:center}

/* Filters (bigger, more tappable) */
#fbar{display:flex;flex-wrap:wrap;gap:.5rem;margin:.6rem 0}
#fbar .fbtn{
  font:600 13px/1.1 system-ui;
  padding:10px 14px;
  border:1px solid #ddd;
  border-radius:999px;
  background:#fff;
  box-shadow:0 1px 2px rgba(0,0,0,.05);
}
#fbar .fbtn.active{border-color:#000;box-shadow:0 1px 3px rgba(0,0,0,.08)}
@media (min-width:768px){
  #fbar .fbtn{font-size:14px;padding:12px 16px}
}

/* (Keep your old swatch styles in case of fallback UI) */
.fhead{margin-top:.35rem;margin-bottom:.25rem;font-size:.8rem;color:#6c757d}
.fswatch{border:1px solid rgba(0,0,0,.15);border-radius:.5rem;overflow:hidden;height:32px;padding:0;position:relative;background:#eee}
.fswatch span{display:block;width:100%;height:100%;background-size:cover;background-position:center;background-repeat:no-repeat}
.fswatch.active{outline:2px solid #0d6efd}
.f-none{filter:none}.f-clean{filter:contrast(1.15) saturate(1.15)}.f-warm{filter:sepia(.5) saturate(1.3)}
.f-cool{filter:saturate(.9) hue-rotate(10deg)}.f-bw{filter:grayscale(.9) contrast(1.15)}.f-sepia{filter:sepia(.7)}

/* Gate UI */
.alert{padding:.5rem .75rem;border-radius:.5rem;background:#fff3cd;border:1px solid #ffe58f;color:#664d03}
.badpill{display:inline-block;background:#dc3545;color:#fff;border-radius:999px;padding:.15rem .5rem;font-size:.75rem}
.d-none{display:none!important}

/* Toast + admin badge */
.toast{
  position:fixed;
  left:50%;
  bottom:80px;
  transform:translateX(-50%);
  background:rgba(0,0,0,.9);
  color:#fff;
  padding:.9rem 1.6rem;        /* bigger */
  border-radius:999px;         /* pill */
  font-size:1rem;              /* larger text */
  font-weight:500;
  opacity:0;
  transition:opacity .25s;
  z-index:9998;
  pointer-events:none;
}
.toast.show{opacity:1}

.toast.show{opacity:1}
.badge{display:none;background:#222;color:#fff;padding:.25rem .5rem;border-radius:1rem;font-size:1rem}

/* Icon-only camera/gallery labels in side column (keep as-is) */
.cam-btn,.gal-btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:0;width:48px;height:48px;line-height:1;font-size:24px;border-radius:12px
}

/* THEMEABLE FAB (responsive + animated) */
.fab{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;gap:12px;z-index:9999}
.fab .fab-btn{--bg:#fff;--fg:#111;--bd:#cfcfcf;--sh1:0 10px 28px rgba(0,0,0,.18),0 2px 6px rgba(0,0,0,.08);--sh2:0 14px 36px rgba(0,0,0,.22),0 3px 10px rgba(0,0,0,.1);--sh3:0 8px 22px rgba(0,0,0,.2);--bgH:var(--bg);--bdH:var(--bd);--bgA:var(--bg);display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;min-height:44px;border-radius:999px;border:1px solid var(--bd);background:var(--bg);color:var(--fg);box-shadow:var(--sh1);font:800 clamp(14px,3.6vw,16px)/1.1 system-ui;cursor:pointer;-webkit-tap-highlight-color:transparent;user-select:none;touch-action:manipulation;transition:transform .2s,box-shadow .2s,background-color .2s,border-color .2s,color .2s;animation:fabPulse 1.8s ease-in-out infinite}
.fab .fab-btn:hover{transform:translateY(-1px);box-shadow:var(--sh2);background:var(--bgH);border-color:var(--bdH)}
.fab .fab-btn:active{transform:translateY(0) scale(.98);box-shadow:var(--sh3);background:var(--bgA)}
.fab .fab-btn:focus-visible{outline:0;box-shadow:0 0 0 3px color-mix(in oklab,var(--fg) 35%,transparent),var(--sh1)}
/* DARK MODE BASE */
@media(prefers-color-scheme:dark){
  .fab .fab-btn{--bg:#0f0f10;--fg:#fafafa;--bd:#2a2a2a;--sh1:0 14px 40px rgba(0,0,0,.6),0 2px 8px rgba(0,0,0,.5);--sh2:0 18px 48px rgba(0,0,0,.7),0 3px 12px rgba(0,0,0,.55);--sh3:0 10px 26px rgba(0,0,0,.6)}
}
/* THEMES — Blue & Amber only */
.fab.theme-blue .fab-btn,.fab .fab-btn.theme-blue{--bg:#0d6efd;--fg:#fff;--bd:#0b5ed7;--bgH:#0b5ed7;--bdH:#0a58ca;--bgA:#0a58ca}
.fab.theme-amber .fab-btn,.fab .fab-btn.theme-amber{--bg:#ffc107;--fg:#111;--bd:#e0a800;--bgH:#e0a800;--bdH:#d39e00;--bgA:#d39e00}
/* Responsive sizing */
@media (max-width:360px){
  .fab{gap:10px}
  .fab .fab-btn{padding:10px 14px;font-size:14px}
}
@media (min-width:480px){
  .fab .fab-btn{padding:14px 18px;font-size:15px}
}
@media (min-width:768px){
  .fab .fab-btn{padding:20px 26px;font-size:17px}
}
/* Respect reduced motion */
@media(prefers-reduced-motion:reduce){.fab .fab-btn{animation:none}}
/* Pulse keyframes */
@keyframes fabPulse{
  0%,100%{transform:scale(1);box-shadow:var(--sh1)}
  50%{transform:scale(1.05);box-shadow:0 16px 40px rgba(0,0,0,.26),0 4px 12px rgba(0,0,0,.12)}
}


/* Bottom nav */
#nav{display:flex;gap:8px;margin-top:12px}
#nav a{flex:1;text-align:center;text-decoration:none;color:#111;background:#f6f6f6;padding:12px;border-radius:12px;font-size:14px;border:1px solid #eaeaea}
