/* The shared look of the staff forms (field-forms.js draws them). First built
   8 Oct 2026 for the lockout and service incident forms; every form on Report
   something has used it since 12 Nov 2026.
   13 Nov 2026 (Sheig: "very clean ... pleasing in the eye, something I would
   want to fill out"): a calmer page. Each section is its own white card on a
   soft background, numbered so people see how far through they are. Text is
   the phone's own font at a comfortable reading size and a lighter weight;
   bold is kept for questions only. Choices that stack are one tidy list, not
   a pile of boxes. Typing boxes start small and grow as you write. A green
   line along the bottom bar fills as the form does.
   Boxes people type in stay 16px or iPhones zoom in on them. */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{--g:#1a5c1a;--g2:#24702a;--gl:#eef5ec;--ink:#1c211d;--ink2:#4d554f;--mute:#7b837d;--line:#e4e7e1;--field:#d6dad3;--page:#f5f5f1;
  --red:#b42318;--redbg:#fdf0ee;--amb:#8a5300;--ambbg:#fdf6e3;--font:'Poppins',system-ui,sans-serif;
  --sys:-apple-system,BlinkMacSystemFont,'SF Pro Text',Roboto,'Segoe UI',system-ui,sans-serif;}
html{background:var(--page);}
body{font-family:var(--sys);color:var(--ink);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;}

/* the top of the page */
.ff-head{max-width:560px;margin:0 auto;padding:26px 22px 20px;}
.ff-brand{font-family:var(--font);font-size:12.5px;font-weight:600;color:var(--g);letter-spacing:.01em;}
.ff-head h1{font-family:var(--font);font-size:23px;line-height:1.2;font-weight:700;letter-spacing:-.015em;margin-top:8px;}
.ff-head p{color:var(--ink2);font-size:15px;line-height:1.5;margin-top:8px;max-width:48ch;}

/* sections: one card each, numbered */
.ff-sheet{max-width:560px;margin:0 auto 130px;padding:0 12px;counter-reset:step;}
.ff-step{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 18px 6px;margin-bottom:12px;counter-increment:step;box-shadow:0 1px 2px rgba(28,33,29,.04);}
.ff-step h2{display:flex;align-items:center;gap:10px;font-size:16.5px;line-height:1.3;font-weight:650;letter-spacing:-.005em;margin-bottom:4px;}
.ff-step h2::before{content:counter(step);flex:none;width:24px;height:24px;border-radius:50%;background:var(--gl);color:var(--g);font-size:12.5px;font-weight:700;display:flex;align-items:center;justify-content:center;}
.ff-step-hint{font-size:13.5px;color:var(--mute);margin:2px 0 4px;}

/* a question */
.ff-q{padding:12px 0 14px;scroll-margin:90px;}
.ff-q[hidden],.ff-step[hidden]{display:none;}
.ff-label{display:block;font-size:15px;line-height:1.4;font-weight:600;margin-bottom:7px;}
.ff-opt{font-weight:400;color:var(--mute);font-size:13px;}
.ff-hint{font-size:13.5px;line-height:1.45;color:var(--mute);margin:-3px 0 9px;max-width:54ch;}

/* boxes to type in */
input[type=text],input[type=email],input[type=date],input[type=time],textarea{display:block;width:100%;max-width:100%;min-width:0;font:inherit;font-size:16px;line-height:1.45;color:var(--ink);background:#fff;border:1px solid var(--field);border-radius:10px;padding:11px 13px;min-height:46px;-webkit-appearance:none;appearance:none;transition:border-color .15s,box-shadow .15s;}
input::placeholder,textarea::placeholder{color:#a3aaa4;}
textarea{resize:none;min-height:72px;overflow:hidden;}
.ff-num{max-width:130px;font-weight:600;}
input:focus,textarea:focus{outline:none;border-color:var(--g);box-shadow:0 0 0 3px rgba(26,92,26,.13);}
/* iPhones centre a date and let it spill out of its box unless told otherwise */
input[type=date],input[type=time]{text-align:left;}
input[type=date]::-webkit-date-and-time-value,input[type=time]::-webkit-date-and-time-value{text-align:left;}
/* a date and the time after it sit side by side */
.ff-t-date,.ff-t-time{display:inline-block;width:calc(50% - 5px);vertical-align:top;}
.ff-t-date+.ff-t-time{margin-left:6px;}
.ff-t-time .ff-opt{display:none;}
.ff-t-date:not(:has(+ .ff-t-time)){max-width:240px;}
@media (max-width:340px){.ff-t-date,.ff-t-time{width:100%;max-width:none;}.ff-t-date+.ff-t-time{margin-left:0;}}

/* choices */
.ff-opts{display:flex;gap:8px;}
.ff-wrap{flex-wrap:wrap;}
.ff-opt-btn{display:flex;align-items:center;gap:11px;font:inherit;font-size:15px;line-height:1.35;font-weight:500;color:var(--ink);background:#fff;border:1px solid var(--field);cursor:pointer;text-align:left;transition:background .12s,border-color .12s,color .12s;-webkit-tap-highlight-color:transparent;}
/* side by side: pills. The one picked is filled in. */
.ff-wrap .ff-opt-btn{border-radius:20px;padding:8px 15px;min-height:40px;}
.ff-wrap .ff-opt-btn[aria-checked=true]{background:var(--g);border-color:var(--g);color:#fff;}
/* one under another: a single list with lines between */
.ff-stack{flex-direction:column;gap:0;border:1px solid var(--field);border-radius:12px;overflow:hidden;background:#fff;}
.ff-stack .ff-opt-btn{border:none;border-top:1px solid var(--line);border-radius:0;padding:12px 14px;min-height:48px;width:100%;}
.ff-stack .ff-opt-btn:first-child{border-top:none;}
.ff-stack .ff-opt-btn[aria-checked=true]{background:var(--gl);color:#144a14;font-weight:600;}
.ff-opt-btn:focus-visible{outline:3px solid rgba(26,92,26,.3);outline-offset:-3px;}
.ff-dot,.ff-tick{width:20px;height:20px;flex:none;border:1.5px solid #b4bbb5;background:#fff;transition:border .12s,background .12s;}
.ff-dot{border-radius:50%;}
.ff-tick{border-radius:6px;}
.ff-wrap .ff-dot,.ff-wrap .ff-tick{display:none;}
[aria-checked=true] .ff-dot{border:6px solid var(--g);}
[aria-checked=true] .ff-tick{background:var(--g) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/12px no-repeat;border-color:var(--g);}

/* notes */
.ff-note{border-radius:12px;padding:12px 14px;font-size:14.5px;font-weight:500;line-height:1.5;}
.ff-note-warn{background:var(--ambbg);color:var(--amb);}
.ff-note-ok{background:var(--gl);color:#1d5a1d;}
.ff-note-danger{background:var(--redbg);color:var(--red);}
.ff-note b{font-weight:700;}
.ff-note a{color:inherit;}

/* still needed */
.ff-miss .ff-label{color:var(--red);}
.ff-err{margin:6px 0 0;font-size:13.5px;font-weight:500;color:var(--red);}
.ff-miss .ff-label::after{content:"  needed";font-weight:500;font-size:13px;}
.ff-miss input,.ff-miss textarea,.ff-miss .ff-wrap .ff-opt-btn,.ff-miss .ff-stack,.ff-miss .ff-sig{border-color:#e4a59e;}

/* staff names, and any other list that drops down */
.ff-ac{position:relative;}
.ff-ac-list{display:none;position:absolute;left:0;right:0;top:calc(100% + 5px);background:#fff;border:1px solid var(--field);border-radius:12px;box-shadow:0 10px 28px rgba(28,33,29,.13);z-index:20;overflow:hidden;}
.ff-ac-list button{display:block;width:100%;text-align:left;font:inherit;font-size:15px;font-weight:500;padding:12px 14px;background:#fff;border:none;border-top:1px solid var(--line);cursor:pointer;color:var(--ink);}
.ff-ac-list button:first-child{border-top:none;}
.ff-ac-list button:hover,.ff-ac-list button:focus{background:var(--gl);}

/* photos */
.ff-photo-btn{display:flex;align-items:center;justify-content:center;gap:9px;font-weight:600;font-size:15px;color:var(--g);border:1.5px dashed #b5cdb1;border-radius:12px;padding:13px 16px;min-height:52px;cursor:pointer;background:#fafcf9;}
.ff-photo-btn:focus-within{outline:3px solid rgba(26,92,26,.3);}
.ff-thumbs{display:flex;gap:10px;flex-wrap:wrap;}
.ff-thumbs:not(:empty){margin-top:12px;}
.ff-th{position:relative;}
.ff-th img{width:84px;height:84px;object-fit:cover;border-radius:12px;display:block;border:1px solid var(--line);}
.ff-th button{position:absolute;top:-7px;right:-7px;width:26px;height:26px;border-radius:50%;border:2px solid #fff;background:var(--ink);color:#fff;font-size:15px;line-height:1;cursor:pointer;}
.ff-th-file{display:flex;align-items:center;justify-content:center;width:84px;height:84px;padding:6px;border-radius:12px;border:1px solid var(--line);background:var(--page);font-size:12.5px;line-height:1.3;color:var(--ink2);text-align:center;overflow-wrap:anywhere;overflow:hidden;}
.ff-up{font-size:13.5px;color:var(--mute);margin-top:8px;}
.ff-up:empty{display:none;}

/* signature */
.ff-sig{position:relative;border:1px solid var(--field);border-radius:12px;background:#fcfcfa;touch-action:none;}
.ff-sig canvas{display:block;width:100%;height:160px;cursor:crosshair;}
.ff-sig-hint{position:absolute;left:14px;bottom:12px;color:#a3aaa4;font-size:13.5px;pointer-events:none;}
.ff-sig-clear{position:absolute;top:8px;right:8px;font:inherit;font-size:13px;font-weight:500;color:var(--ink2);background:#fff;border:1px solid var(--field);border-radius:8px;padding:5px 11px;cursor:pointer;}

/* the bar at the bottom: what's left, and Send. The green line fills as the form does. */
.ff-bar{position:fixed;left:0;right:0;bottom:0;background:rgba(255,255,255,.94);-webkit-backdrop-filter:saturate(1.6) blur(14px);backdrop-filter:saturate(1.6) blur(14px);border-top:1px solid var(--line);padding:11px 16px calc(11px + env(safe-area-inset-bottom));z-index:30;}
.ff-bar::before{content:"";position:absolute;left:0;top:-1px;height:3px;width:calc(var(--ff-done,0) * 1%);background:var(--g);border-radius:0 3px 3px 0;transition:width .3s ease;}
.ff-bar-in{max-width:536px;margin:0 auto;display:flex;align-items:center;gap:12px;}
.ff-left{flex:1;font-size:13.5px;font-weight:500;color:var(--ink2);}
.ff-send{font:inherit;font-size:16px;font-weight:600;border-radius:12px;padding:12px 24px;min-height:48px;border:1px solid var(--field);background:#fff;color:var(--ink);cursor:pointer;transition:background .15s,color .15s,border-color .15s;}
.ff-send.ff-ready{background:var(--g);border-color:var(--g);color:#fff;box-shadow:0 2px 8px rgba(26,92,26,.22);}
.ff-send:disabled{opacity:.6;cursor:default;}
.ff-send:focus-visible{outline:3px solid rgba(26,92,26,.3);outline-offset:2px;}

/* sent */
.ff-done{background:#fff;border:1px solid var(--line);border-radius:16px;padding:34px 22px 30px;outline:none;text-align:center;box-shadow:0 1px 2px rgba(28,33,29,.04);}
.ff-done-mark{width:54px;height:54px;border-radius:50%;background:var(--g);color:#fff;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;}
.ff-done h2{font-family:var(--font);font-size:20px;line-height:1.3;font-weight:700;letter-spacing:-.01em;margin-bottom:6px;}
.ff-done p{color:var(--ink2);font-size:15px;line-height:1.55;margin:10px auto 0;max-width:44ch;}
.ff-done a{color:var(--g);font-weight:600;}
/* buttons on a thank-you screen (client update: fix the category, send another) */
.ff-done .ff-kinds{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:12px 0 14px;}
.ff-done .ff-kinds button{border:1px solid var(--field);background:#fff;border-radius:999px;padding:8px 14px;font:500 14px var(--sys);color:var(--ink);cursor:pointer;}
.ff-done .ff-kinds button[aria-pressed=true]{background:var(--g);border-color:var(--g);color:#fff;}
.ff-again{background:none;border:none;color:var(--g);font:600 15px var(--sys);cursor:pointer;padding:10px;margin-top:6px;}

@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto !important;transition:none !important;}}
