.functional-followup{--ff-brand:#725631;--ff-line:#ded6ca;color:#29251f;font:16px/1.5 Arial,sans-serif;background:#fff;border:1px solid var(--ff-line);border-radius:12px;padding:20px;max-width:1100px;margin:0 auto}
.functional-followup *{box-sizing:border-box}.functional-followup h2{font-size:26px;margin:0}.functional-followup h3{font-size:18px;margin:0}.ff-heading,.ff-visit>header{display:flex;justify-content:space-between;align-items:center;gap:12px}.ff-eyebrow{margin:0 0 4px;color:#725631;font-size:14px;font-weight:700}.ff-intro,.ff-note{color:#655e53}.ff-note,.ff-badge{font-size:14px}.ff-milestones{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0}.ff-milestone{display:grid;gap:3px;border:1px solid var(--ff-line);border-radius:8px;padding:12px;background:#faf8f4}.ff-milestone--due{border-color:#aa731f;background:#fff4df}.ff-milestone--completed{border-color:#7e9c7b;background:#edf5eb}.ff-milestone span{font-size:14px}.ff-create,.ff-upload,.ff-privacy{margin:14px 0;padding:12px;background:#faf8f4;border:1px solid var(--ff-line);border-radius:8px}.functional-followup summary{cursor:pointer;font-weight:700}.functional-followup form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.functional-followup label{display:grid;gap:5px;font-size:14px;font-weight:700}.functional-followup input,.functional-followup select,.functional-followup textarea{width:100%;min-height:44px;padding:9px;border:1px solid #b6aa97;border-radius:7px;background:#fff;color:#29251f;font:16px/1.4 Arial,sans-serif}.ff-wide{grid-column:1/-1}.functional-followup button{min-height:42px;padding:9px 14px;border:1px solid #725631;border-radius:7px;background:#725631;color:#fff;font:700 14px/1.4 Arial,sans-serif;cursor:pointer}.functional-followup button:disabled{opacity:.55;cursor:wait}.functional-followup button:focus-visible,.functional-followup summary:focus-visible{outline:3px solid #9c7729;outline-offset:3px}.functional-followup .ff-secondary,.functional-followup .ff-link{background:#fff;color:#725631}.functional-followup .ff-link{border-color:transparent;text-decoration:underline;padding:7px}.ff-visits{display:grid;gap:18px;margin:20px 0}.ff-visit{border-top:1px solid var(--ff-line);padding-top:18px}.ff-visit time{font-size:14px;color:#655e53}.ff-badge{background:#f2ede4;border-radius:20px;padding:4px 10px}.ff-client-note{white-space:pre-wrap}.ff-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin:12px 0}.ff-photos figure{margin:0;min-width:0}.functional-followup .ff-photo-open{display:grid;place-items:center;width:100%;padding:0;background:#f3f0ea;border:1px solid var(--ff-line);overflow:hidden;color:#655e53}.ff-photos img{display:block;width:100%;height:230px;object-fit:contain}.ff-photos figcaption{font-size:14px;margin-top:6px}.ff-empty{padding:18px;background:#faf8f4;border-radius:8px}.ff-error{color:#9d271e}.functional-followup [data-ff-feedback]:not(:empty){margin:12px 0;padding:10px;border:1px solid var(--ff-line);border-radius:7px}.ff-lightbox{padding:12px;border:0;border-radius:10px;max-width:95vw;max-height:95vh}.ff-lightbox::backdrop{background:#000b}.ff-lightbox>img{display:block;max-width:85vw;max-height:78vh;object-fit:contain}.ff-lightbox>button{display:block;margin:0 0 10px auto}@media(max-width:600px){.functional-followup{padding:14px}.ff-milestones{grid-template-columns:1fr}.ff-milestone{grid-template-columns:80px 1fr;align-items:center}.ff-milestone span:last-child{grid-column:2}.functional-followup form{grid-template-columns:1fr}.ff-heading{align-items:flex-start}.ff-photos{grid-template-columns:repeat(2,minmax(0,1fr))}.ff-photos img{height:190px}.ff-visit>header{flex-wrap:wrap}}

.ff-photo-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.functional-followup .ff-photo-choice{display:inline-flex;position:relative;align-items:center;justify-content:center;min-height:44px;padding:10px 14px;border-radius:7px;border:1px solid #725631;background:#725631;color:#fff;font-weight:700;cursor:pointer}.functional-followup .ff-photo-choice:nth-child(2){background:#fff;color:#725631}.ff-photo-choice input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;pointer-events:none}.ff-photo-choice:focus-within{outline:3px solid #9c7729;outline-offset:3px}.ff-photo-selection{width:100%;font-size:13px;color:#655e53}

.ff-evolution{margin:20px 0;padding:16px;border-radius:16px;background:#fcfaf7;border:1px solid #ded6ca}.ff-zones{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.functional-followup .ff-zones button{background:#fff;color:#725631;border-radius:22px;min-height:39px}.functional-followup .ff-zones button.is-current{background:#725631;color:#fff}.ff-selectors{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}.ff-stage{position:relative;overflow:hidden;width:100%;max-height:520px;aspect-ratio:4/5;background:#e9e7e3;border-radius:12px}.ff-before{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.ff-after{position:absolute;top:0;bottom:0;left:0;width:50%;overflow:hidden}.ff-after img{display:block;width:var(--stage-width,100%);height:100%;max-width:none;object-fit:contain}.ff-line{position:absolute;top:0;bottom:0;left:50%;width:3px;background:white;box-shadow:0 0 8px #0008}.ff-label{position:absolute;bottom:12px;padding:5px 8px;background:#222b;color:white;border-radius:5px;font-size:12px;font-weight:800}.ff-label-before{left:10px}.ff-label-after{right:10px}.functional-followup input[data-compare-range]{width:100%;padding:0;border:0;accent-color:#725631}.ff-client .ff-visits .ff-photos{display:none}@media(max-width:600px){.ff-selectors{grid-template-columns:1fr}.ff-evolution{padding:12px}}

.ff-gallery-admin{margin:12px 0;border:1px solid #ded6ca;padding:12px;border-radius:10px}.ff-gallery-admin summary{cursor:pointer;font-weight:800}.functional-followup .ff-fullscreen-open{display:block;width:100%;margin:10px 0;background:#f5f0e9;color:#725631;border:1px solid #cdbca5}.ff-fullscreen{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:12px;border:0;box-sizing:border-box;background:#151515;color:#fff}.ff-fullscreen::backdrop{background:#000e}.ff-fullscreen-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.ff-fullscreen-toolbar button{padding:10px 14px;background:#fff;border:0;border-radius:8px;color:#171717;font-weight:800}.ff-fullscreen [data-ff-fullscreen-stage] .ff-stage{max-height:none;height:75dvh;aspect-ratio:auto;background:#222}.ff-fullscreen input[type=range]{display:block;width:100%;margin-top:12px;accent-color:#73b8f2}

.ff-stage[data-compare-stage]{cursor:zoom-in}

.ff-guide{padding:15px;margin:12px 0;background:#f2f8f2;border:1px solid #d9e9d9;border-radius:12px}.ff-guide strong{font-size:18px}.ff-guide p{margin:6px 0}.ff-guide a{color:#255c36;font-weight:800}.ff-staff .ff-visit{padding:14px;border:1px solid #dcd5ca;border-radius:12px}.ff-staff .ff-publish{background:#39744b;border-color:#39744b}.ff-staff .ff-create{border-left:4px solid #39744b}

/* Staff-only task-focused layout: management and visual comparison never compete for space. */
.ff-staff .ff-workspace[hidden]{display:none!important}.ff-staff-tabs{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:18px 0;padding:6px;background:#f4f1ec;border:1px solid #dfd6c9;border-radius:13px}.functional-followup .ff-staff-tabs button{min-height:48px;border:0;background:transparent;color:#65533e;border-radius:9px;font-size:15px}.functional-followup .ff-staff-tabs button[aria-pressed="true"]{background:#fff;color:#29251f;box-shadow:0 2px 9px #29251f1b}.ff-workspace{padding-top:4px}.ff-notification-details{margin:18px 0;padding:13px;border:1px solid #ddd5ca;border-radius:11px}.ff-notification-details summary{font-weight:750}.ff-staff .ff-guide{margin-top:4px}.ff-staff .ff-visits{gap:12px}.ff-staff .ff-visit{padding:14px;margin:0;background:#fff}.ff-staff .ff-gallery-admin{margin-top:12px}.ff-staff .ff-evolution{margin:0}.ff-staff .ff-upload{margin:12px 0}.ff-staff .ff-privacy{margin-top:22px}@media(max-width:600px){.ff-staff-tabs{gap:4px}.functional-followup .ff-staff-tabs button{font-size:13px;padding:10px 6px}}
