:root{font:16px/1.5 system-ui,sans-serif;color:#203c35;background:#f5f4ee;--green:#265446;--line:#c9d3cb;--surface:#fff;--accent:#e2eee7}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,.file-button{border:1px solid #668577;border-radius:9px;background:white;color:#234f41;padding:.6rem .9rem;cursor:pointer;min-height:44px}button:hover{background:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}.primary,button[aria-current]{background:var(--green);color:white}.prototype{padding:.65rem 4%;background:#f9e5ad;color:#463915}.prototype strong{margin-right:1rem}header{max-width:1450px;margin:auto;display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:2rem 4% 1rem}h1{font-size:clamp(1.7rem,4vw,2.6rem);margin:.4rem 0}h2{font-size:1.3rem;margin:.3rem 0 1rem}h3{font-size:1.1rem}p{margin:.5rem 0 1rem}.eyebrow{letter-spacing:.12em;font-size:.75rem;font-weight:700}a{color:#255944}.tools{display:flex;flex-wrap:wrap;gap:.7rem;align-items:end;max-width:1340px;margin:0 auto;padding:1rem}.tools label{margin:0}.tools input[type=file]{max-width:220px}.file-button input{display:block;font-size:.75rem;max-width:190px}.layout{display:grid;grid-template-columns:260px minmax(0,1fr);max-width:1370px;margin:auto;gap:2rem;padding:1rem}.workflow{align-self:start;position:sticky;top:1rem}.workflow nav{display:grid;gap:.5rem;margin-bottom:1rem}.workflow p,.help{font-size:.85rem;color:#556a61}.workflow nav button{text-align:left}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.field{padding:.6rem;border:1px solid transparent;border-radius:8px;min-width:0}.field:focus-within{background:#f4f8f5;border-color:var(--line)}label{display:grid;gap:.4rem;font-weight:600}input,select,textarea{width:100%;min-width:0;border:1px solid #82958b;background:#fff;border-radius:6px;padding:.55rem;color:#233c34}input[readonly]{background:#eef1ed}textarea{min-height:90px;resize:vertical}.field textarea{min-height:100px}.field .help{margin:.3rem 0}.proposal{font-size:.68rem;font-weight:600;display:inline-block;padding:.15rem .4rem;background:#fff0cf;color:#705006;border-radius:4px;margin-left:.4rem}.comment-field{font-size:.78rem;padding:.2rem .5rem;min-height:32px}.field-actions{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.section-title{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}main{min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:1.5rem}main:focus{outline:none}.record{border:1px solid var(--line);border-radius:10px;margin:1rem 0;padding:1rem;background:#fafcf9}.collection{border-top:1px solid var(--line);padding-top:1rem;margin-top:1.5rem}.collection>label{max-width:430px}.footer-actions{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:2rem;border-top:1px solid var(--line);padding-top:1rem}.issues{padding:1rem;background:#f9f4e8;border-radius:8px;margin:1rem 0}.issue{display:block;width:100%;text-align:left;margin:.4rem 0;white-space:normal}.error{border-left:5px solid #b6372e}.warning{border-left:5px solid #b67a16}.notice{border-left:5px solid #57877b}.review-row{display:grid;grid-template-columns:minmax(130px,1fr) minmax(0,2fr) auto;gap:.7rem;padding:.6rem 0;border-bottom:1px solid #e2e7e1;align-items:start}.review-row dt{font-weight:600}.review-row dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.preserved{font-size:.8rem;color:#766031}.map-demo{border:1px solid var(--line);border-radius:10px;padding:1rem;background:#edf3e8;margin:1rem 0}.map-surface{width:100%;height:170px;position:relative;background:repeating-linear-gradient(35deg,#dce8d3 0 30px,#e5ecdb 30px 60px);border:1px solid #698571;color:#264a32;touch-action:manipulation}.map-surface strong{background:white;padding:.4rem}.map-surface .pin{position:absolute;font-size:2rem;color:#943825;left:50%;top:40%;pointer-events:none}.photo-demo{max-width:140px;display:block;margin:.6rem 0}.floating{position:fixed;bottom:1rem;right:1rem;background:#244e41;color:white;box-shadow:0 3px 15px #0003;z-index:5}#feedback-panel{max-width:1340px;margin:2rem auto 6rem;padding:1.5rem;background:#e9eee7;border:1px solid var(--line);border-radius:15px}#feedback-panel .tools{padding:1rem 0}.comment-card{background:white;border:1px solid var(--line);padding:1rem;margin:1rem 0;border-radius:9px;overflow-wrap:anywhere}.comment-card p{white-space:pre-wrap}dialog{max-width:660px;width:calc(100% - 2rem);max-height:90dvh;border:1px solid var(--line);border-radius:14px;padding:1.5rem;color:inherit}dialog::backdrop{background:#142b23aa}dialog label{margin:1rem 0}dialog textarea{min-height:65px}.check{display:flex;align-items:center}.check input{width:auto}#screenshot-preview{max-width:100%;max-height:180px}#save-status,#notice{max-width:1340px;margin:.3rem auto;padding:0 1rem}#notice:not(:empty){background:#fff0cf;padding:.8rem}#build{font-size:.72rem}details{margin:1rem 0}summary{cursor:pointer;font-weight:600}.multi-options{display:flex;flex-wrap:wrap;gap:.6rem}.multi-options label{display:flex;align-items:center;font-size:.9rem}.multi-options input{width:auto}:focus-visible{outline:3px solid #1871ac;outline-offset:3px}[hidden]{display:none!important}@media(max-width:800px){header{align-items:start}.layout{grid-template-columns:1fr;gap:.6rem;padding:.6rem}.workflow{position:static}.workflow>p,.workflow>h2{display:none}.workflow nav{display:flex;overflow:auto;margin:.4rem 0;gap:.4rem}.workflow nav button{white-space:nowrap;font-size:.85rem}.field-grid{grid-template-columns:1fr}main{padding:1rem}.review-row{grid-template-columns:1fr auto}.review-row dt{grid-column:1/-1}#feedback-panel{margin:1rem .6rem 6rem;padding:1rem}.tools{padding:.6rem}.tools>button{flex:1}header{padding:1.2rem}.floating{font-size:.85rem}h1{line-height:1.2}}
.workflow{min-width:0}.tools>*{min-width:0;max-width:100%}.tools select{max-width:100%}.review-row button{overflow-wrap:anywhere}small{overflow-wrap:anywhere}
@media(max-width:800px){.tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.tools>label{grid-column:1/-1}.tools>button{width:100%;font-size:.9rem}.tools .file-button input{max-width:100%}.section-title .comment-field{max-width:100%}}
.osm-map{height:320px;width:100%;overflow:hidden;position:relative;background:#e6ece6;touch-action:none;cursor:crosshair;border:1px solid #82958b;border-radius:8px}.osm-tiles{position:absolute;inset:0;pointer-events:none}.osm-tiles img{position:absolute;width:256px;height:256px;max-width:none}.osm-pin{position:absolute;transform:translate(-50%,-100%);font-size:2rem;pointer-events:none}.map-demo .check input{width:auto}
.osm-enable{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:80%;max-width:320px;z-index:1}.osm-pin{font-size:2.4rem;filter:drop-shadow(0 2px 2px #0006)}[data-selected-point]{font-weight:600;overflow-wrap:anywhere}
.osm-window{position:relative;height:440px;isolation:isolate;border:1px solid #82958b;border-radius:12px;overflow:hidden;background:#e6ece6}.osm-window .osm-map{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:0}.osm-window .osm-map:focus-visible{outline-offset:-4px}.osm-zoom,.osm-actions,.osm-bottom-controls{position:absolute;z-index:2}.osm-zoom{top:12px;left:12px;display:grid;box-shadow:0 2px 8px #0003;border-radius:10px;overflow:hidden}.osm-zoom button{width:46px;height:46px;min-height:46px;padding:0;font-size:1.6rem;border-radius:0;border:0}.osm-zoom button+button{border-top:1px solid #ccd6d0}.osm-actions{top:12px;right:12px;display:grid;gap:6px}.osm-actions button{min-height:44px;padding:.45rem .65rem;background:#fff;box-shadow:0 1px 5px #0002;font-size:.85rem;text-align:left}.osm-actions button:disabled{background:#edf0ec;opacity:.8}.osm-bottom-controls{bottom:32px;left:12px;right:12px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px}.osm-bottom-controls>button{box-shadow:0 2px 8px #0003}.osm-gps-control{background:#fff;padding:.55rem .7rem;border:1px solid #668577;border-radius:9px;box-shadow:0 2px 8px #0002;font-size:.85rem;min-height:44px;margin:0;cursor:pointer}.osm-gps-control input{accent-color:#265446;min-width:20px;height:20px}.osm-attribution{position:absolute;bottom:0;right:0;background:#fffffff2;font-size:.7rem;padding:3px 7px;z-index:2}.osm-guide{position:absolute;left:74px;right:172px;top:13px;margin:0;text-align:center;font-size:.8rem;background:#ffffffe8;border-radius:6px;padding:.35rem;pointer-events:none;z-index:1}.osm-window .osm-enable{z-index:3;max-width:260px}.osm-window button{touch-action:manipulation}.osm-window button:hover{filter:brightness(.95)}@media(max-width:800px){.osm-window{height:470px}.osm-bottom-controls{display:grid;grid-template-columns:minmax(0,1fr)}.osm-bottom-controls>button,.osm-gps-control{width:100%;justify-content:center}.osm-guide{top:126px;left:12px;right:12px}.osm-window .osm-enable{top:46%;width:85%}}
.feedback-instructions{padding-left:1.4rem}.feedback-instructions li{margin:.9rem 0}#feedback-intro-note{padding:.9rem;background:#fff1ca;border-radius:8px}#feedback-intro{max-width:650px}#feedback-intro button{width:100%}
/* Grouping is visual only: no clinical fields are merged or discarded. */
.field-group{min-width:0;margin:1.1rem 0 0;padding:.55rem 0 .15rem;border:0;border-top:1px solid var(--line)}
.field-group legend{padding:0 .5rem 0 0;font-weight:700;font-size:.88rem;color:var(--muted,#556a61)}
.field-group .field-grid{gap:.4rem .8rem;align-items:start}
.field-grid .field-wide{grid-column:1/-1}
.field-group .field{padding:.35rem}
.field-group textarea{min-height:76px}
.field-group input,.field-group select{min-height:44px}
.field-actions label{overflow-wrap:anywhere}
.field{scroll-margin-block:1rem 9rem}
html{scroll-padding-bottom:9rem}
@media(min-width:600px){.count-fields .field-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:800px){
  .layout{gap:.75rem}
  .workflow #step-summary{display:block}
  .workflow>a{display:inline-block;font-size:.8rem;margin:.3rem 0}
  .field-group{margin-top:.8rem}
  .field-group .field-grid{gap:.2rem .4rem}
  .field-group .field{padding:.2rem}
  .field input,.field select,.field textarea{font-size:1rem}
  .field .comment-field{font-size:0;flex:0 0 44px;width:44px;min-height:44px;padding:0}
  .field .comment-field::after{content:'＋';font-size:1.1rem}
  .section-title>.comment-field{min-height:44px;font-size:.8rem}
  .field-actions{gap:.25rem;min-height:44px}
  .field-group .proposal{font-size:.65rem;margin:.1rem 0 .2rem}
  .field-group .help{font-size:.8rem;line-height:1.4}
  main>.footer-actions{gap:.4rem;padding-bottom:max(.7rem,env(safe-area-inset-bottom))}
  main>.footer-actions button{flex:1 1 calc(50% - .4rem);min-height:44px;font-size:.9rem;padding:.5rem}
  .floating{position:static;display:block;margin:1rem auto 2rem;max-width:calc(100% - 2rem)}
  .multi-options label{min-height:44px}
  .multi-options input{min-height:24px;width:24px;height:24px}
}
@media(min-width:360px) and (max-width:800px){
  .paired-fields .field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .age-fields .field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .age-fields .field:nth-child(n+3){grid-column:1/-1}
}
@media(max-width:520px){
  header{gap:.5rem}
  header h1{font-size:1.5rem}
  header .brand-copy>p{font-size:.85rem;margin-bottom:.25rem}
  .prototype{font-size:.8rem;padding:.45rem .8rem}
  .tools{gap:.5rem}
  .cluster{padding:.6rem;gap:.4rem}
  .tools .cluster .row{gap:.4rem}
  .tools .cluster .row>*{flex:1 1 125px;min-width:0}
  .tools .cluster .row .primary{flex:1 1 125px}
  .tools .cluster .row button{font-size:.85rem;padding:.45rem}
  .tools [aria-labelledby="cluster-prep"] .row{align-items:end}
  .record{padding:.6rem}
}
/* === Refresc visual: fitxes, clústers, estats de pas, barra d'accions i mode fosc === */
:root{--shadow-sm:0 1px 3px rgb(20 43 35/.08),0 4px 14px rgb(20 43 35/.06);--shadow-md:0 2px 6px rgb(20 43 35/.12),0 12px 30px rgb(20 43 35/.12);--radius:14px;--muted:#556a61;--ok:#2e7d5b;--warn:#b67a16;--err:#b6372e}
body{line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1{letter-spacing:-.015em;line-height:1.15}h2{letter-spacing:-.01em}
header{padding:1.6rem 4% .8rem}header a{font-size:.9rem}
.eyebrow{color:var(--muted)}
main{box-shadow:var(--shadow-sm)}dialog{box-shadow:var(--shadow-md)}.comment-card{box-shadow:var(--shadow-sm)}#feedback-panel{box-shadow:var(--shadow-sm)}
.tools{gap:.9rem;align-items:stretch}
.cluster{flex:1 1 300px;display:grid;gap:.6rem;align-content:start;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:.9rem;box-shadow:var(--shadow-sm)}
.cluster-title{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.cluster .row{display:flex;flex-wrap:wrap;gap:.55rem;align-items:stretch}
.cluster .row>*{flex:1 1 150px;margin:0}
.cluster .row .primary{flex:2 1 210px}
.workflow nav button{display:flex;align-items:center;gap:.55rem}
.workflow nav button::before{content:"";width:.55rem;height:.55rem;border-radius:50%;background:var(--line);flex:0 0 auto}
.workflow nav button[data-state="done"]::before{background:var(--ok)}
.workflow nav button[data-state="warn"]::before{background:var(--warn)}
.workflow nav button[data-state="error"]::before{background:var(--err)}
.workflow nav button[aria-current]{box-shadow:var(--shadow-sm)}
#step-summary{font-size:.8rem;font-weight:600;color:var(--muted);margin:.1rem 0 .7rem}
.comment-field{border-color:transparent;background:transparent;color:var(--muted);font-size:.72rem;padding:.15rem .45rem;min-height:28px;border-radius:7px}
.comment-field:hover,.comment-field:focus-visible{background:var(--accent);color:var(--green);border-color:var(--line)}
.footer-actions{position:sticky;bottom:0;z-index:4;margin:2rem -1.5rem -1.5rem;padding:.8rem 1.5rem;background:color-mix(in srgb,var(--surface) 90%,transparent);backdrop-filter:blur(8px);border-top:1px solid var(--line);border-radius:0 0 16px 16px;box-shadow:0 -4px 18px rgb(20 43 35/.08)}
.footer-actions button{flex:0 1 auto}
.floating{bottom:5.6rem}
@media(max-width:800px){.tools{grid-template-columns:1fr}.tools>.cluster{grid-column:1/-1}.footer-actions{margin:2rem -1rem -1rem;padding:.7rem 1rem}.floating{bottom:5.2rem}}
@media(prefers-color-scheme:dark){
:root{--green:#4d9a78;--line:#33463f;--surface:#18221e;--accent:#24382f;--muted:#9db4a8;color:#e4ece7;background:#101613}
a{color:#8fd0b2}button,.file-button{background:#1e2b26;color:#dfe9e3;border-color:#3c5148}button:hover{background:var(--accent)}
.primary,button[aria-current]{background:var(--green);color:#08120d}
.prototype{background:#4d3f14;color:#f4e3a1}
header .brand-logo{filter:brightness(1.85) saturate(.92)}
input,select,textarea{background:#141c18;color:#e4ece7;border-color:#3c5148}input[readonly]{background:#1b2622}
.field:focus-within{background:#1c2a24;border-color:#4a6156}
.record{background:#1b2621}.issues{background:#2a2417}
.error{border-left-color:#e0685c}.warning{border-left-color:#d99a3d}.notice{border-left-color:#7fb0a2}
.review-row{border-bottom-color:#2c3a34}.preserved{color:#d8b96a}
.map-demo{background:#1d2a22;border-color:#3c5148}.map-surface{background:repeating-linear-gradient(35deg,#243528 0 30px,#2a3b2e 30px 60px);border-color:#4a6156;color:#cfe0d4}.map-surface strong{background:#18221e}
.floating{background:#2f6a52}#feedback-panel{background:#1a241f}.comment-card{background:#1e2b26}
dialog{background:var(--surface)}dialog::backdrop{background:#000c}
#feedback-intro-note,#notice:not(:empty){background:#3a3115;color:#f4e3a1}
.proposal{background:#3a3115;color:#e8cf8a}
.osm-window{background:#16211c}.osm-attribution{background:#18221ef2;color:#9db4a8}.osm-guide{background:#18221ee8;color:#cfe0d4}
.osm-actions button,.osm-gps-control{background:#1e2b26;color:#dfe9e3}
}
