/* ============================================================
   SOFIIN HQ, the partner portal. Everything here sits on top of the
   website's own stylesheet (sofiin.css) and only adds what the portal
   needs: the hero under the fixed header, the map lattice, the
   document rows, the sign in card, and the bar that sits over the maps.
   Same register as the site: hairlines, no fills, no shadows, no radius.
   ============================================================ */

/* the hero, a dark band under the fixed header like the inner pages */
.hq-hero{padding-top:calc(76px + clamp(44px,7vh,84px))}
.hq-hero h1{font-size:clamp(38px,5.2vw,68px)}
.hq-who{margin-top:34px;font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--on2)}

/* the map room: five cells in the lattice, the national map across the top */
.hq-maps{grid-template-columns:repeat(4,1fr);margin-top:44px}
.hq-map{display:flex;flex-direction:column;color:inherit}
.hq-national{grid-column:1/-1;padding-top:40px;padding-bottom:42px}
.hq-national h3{font-family:var(--fd);font-weight:400;font-size:clamp(28px,3vw,40px);letter-spacing:-.015em;line-height:1.08}
.hq-national p{max-width:52ch}
.hq-lbl{display:block;font-size:11.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--green);margin-bottom:18px}
.hq-map p{flex:1}
.hq-go{display:inline-flex;align-items:center;gap:8px;margin-top:22px;font-size:13.5px;font-weight:500;color:var(--ink)}
.hq-go .ar{transition:transform .2s}
.hq-map:hover .hq-go .ar{transform:translateX(3px)}

/* the pilots room: document rows drawn by hairlines */
.hq-cnt{color:var(--mute)}
.hq-docs{margin-top:44px}
.hq-grp{margin-top:36px}
.hq-grp:first-child{margin-top:0}
.hq-grp-h{font-size:11.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--green);padding-bottom:12px;border-bottom:1px solid var(--ink)}
.hq-doc{display:flex;gap:22px;align-items:center;padding:18px 0;border-bottom:1px solid var(--rule);color:inherit;transition:background-color .2s}
.hq-doc:hover{background:var(--white)}
.hq-kind{flex:none;width:52px;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);padding:6px 0;border:1px solid var(--rule);text-align:center}
.hq-tx{flex:1;min-width:0}
.hq-tt{display:block;font-weight:600;font-size:16.5px;color:var(--ink)}
.hq-nn{display:block;margin-top:3px;font-size:15px;line-height:1.5;color:var(--ink2);max-width:80ch}
.hq-doc .hq-go{margin-top:0;flex:none}
.hq-err{color:var(--red);padding:14px 0}

/* the public site plate */
.hq-site{display:flex;gap:28px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:32px;padding:30px 0 0;border-top:1px solid var(--ink)}
.hq-site p{color:var(--ink2);margin-top:6px}

/* the sign in card */
body.hq-login{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px}
.hq-card{width:100%;max-width:400px;background:var(--white);border:1px solid var(--rule);padding:40px 36px 36px}
.hq-card img{height:48px;width:auto;margin-bottom:30px}
.hq-card h1{font-size:30px;line-height:1.1;letter-spacing:-.015em;margin:0;max-width:none}
.hq-card .kicker{margin-top:14px;color:var(--ink2)}
.hq-card label{display:block;font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink2);margin:26px 0 8px}
.hq-card input{width:100%}
.hq-card .btn{width:100%;justify-content:center;margin-top:28px}
.hq-card .hq-err{margin-top:18px;padding:0;font-size:14.5px}
.hq-card small{display:block;margin-top:28px;font-size:12.5px;color:var(--mute);line-height:1.5}

@media (max-width:1080px){
  .hq-maps{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:560px){
  .hq-maps{grid-template-columns:1fr}
  .hq-doc{gap:14px;align-items:flex-start}
  .hq-doc .hq-go{display:none}
  .hq-card{padding:30px 24px 28px}
}

/* how to use this room, and the anatomy of a pack */
.hq-how{grid-template-columns:repeat(3,1fr);margin-top:44px}
.hq-pack{grid-template-columns:repeat(3,1fr);margin-top:40px;margin-bottom:8px}
.hq-pack .ben{padding:26px 26px 28px}
.hq-pack .hq-lbl{margin-bottom:12px}
.hq-pack p{color:var(--ink2);font-size:15px;line-height:1.55}
@media (max-width:1080px){.hq-how,.hq-pack{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.hq-how,.hq-pack{grid-template-columns:1fr}}

/* the Councils Room and the Minutes Room, 13 Oct 2026: working pages, tighter than the brochure sections */
.hq-work section.blk.hq-tight{padding:clamp(44px,6vh,72px) 0}
.hq-work section.blk.hq-hero.hq-tight{padding-top:calc(76px + clamp(44px,6vh,64px));padding-bottom:clamp(36px,5vh,56px)}
.hq-work .hq-hero h1{font-size:clamp(32px,4.2vw,54px)}
.hq-work .hq-hero .lead{margin-top:18px;font-size:17px}
.hq-sub{margin-top:44px;padding-top:24px;border-top:1px solid var(--ink);font-family:var(--fs);font-weight:600;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--green)}
.hq-form{display:grid;grid-template-columns:repeat(3,1fr);gap:18px 22px;margin-top:22px;align-items:end}
.hq-form label{display:block;font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink2)}
.hq-form input,.hq-form select,.hq-form textarea{margin-top:8px;font-size:15px;padding:12px 14px;text-transform:none;letter-spacing:0;font-weight:400}
.hq-form input[type=file]{padding:10px 12px;background:var(--white)}
.hq-form .full{grid-column:1/-1}
.hq-form .wide{grid-column:span 2}
.hq-form .btn{align-self:end;justify-self:start}
.hq-msg{font-size:14px;color:var(--ink2);min-height:1em}
.hq-status{display:inline-block;font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--green);border:1px solid var(--rule);padding:7px 11px;white-space:nowrap;background:var(--white)}
.hq-hero .hq-status{background:transparent;color:var(--sage);border-color:rgba(255,255,255,.3)}
.hq-lead{font-size:14px;color:var(--on2);margin-left:14px}
.hq-count{flex:none;font-size:13px;color:var(--mute);white-space:nowrap}
.hq-crow .hq-tt{font-family:var(--fd);font-weight:400;font-size:22px;letter-spacing:-.01em}
.hq-log{list-style:none;margin:30px 0 0;padding:0;border-top:1px solid var(--ink)}
.hq-log li{display:grid;grid-template-columns:150px 1fr auto;gap:22px;align-items:start;padding:16px 0;border-bottom:1px solid var(--rule)}
.hq-log .d{font-weight:600;font-size:13.5px;color:var(--ink);padding-top:2px}
.hq-log .t{font-size:15.5px;line-height:1.55;color:var(--ink)}
.hq-log .w{display:block;margin-top:4px;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.hq-log .hq-empty,.hq-empty{color:var(--mute);font-size:15px;padding:18px 0}
.hq-by{color:var(--mute)}
.hq-docline{display:flex;align-items:center;gap:14px}
.hq-docline .hq-doc{flex:1;min-width:0}
.hq-inline{display:inline}
.hq-x{font-family:var(--fs);font-size:11.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);background:transparent;border:1px solid var(--rule);padding:7px 10px;cursor:pointer}
.hq-x:hover{color:var(--red);border-color:var(--red)}
.hq-meta{margin-top:26px;font-size:13.5px;color:var(--mute)}
.hq-meta a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
@media (max-width:900px){.hq-form{grid-template-columns:1fr 1fr}.hq-form .wide{grid-column:1/-1}.hq-log li{grid-template-columns:110px 1fr auto;gap:14px}}
@media (max-width:560px){.hq-form{grid-template-columns:1fr}.hq-log li{grid-template-columns:1fr;gap:6px}.hq-count,.hq-crow .hq-status{display:none}.hq-docline{flex-direction:column;align-items:stretch}}
/* The full council list, 13 October 2026 evening: search, regions, compact rows, the land table */
.hq-search{display:block;width:100%;margin-top:26px;font-size:16px;padding:14px 16px;border:1px solid var(--ink);background:var(--white);font-family:var(--fs);color:var(--ink)}
.hq-qn{margin-top:10px;font-size:13.5px;color:var(--mute);min-height:1.4em}
.hq-status.quiet{color:var(--mute);border-color:transparent;background:transparent;padding-left:0;padding-right:0}
.hq-tbl{width:100%;max-width:760px;border-collapse:collapse;margin-top:28px;border-top:1px solid var(--ink);font-size:15px}
.hq-tbl td{padding:11px 0;border-bottom:1px solid var(--rule);vertical-align:top}
.hq-tbl td:first-child{font-weight:500;color:var(--ink)}
.hq-tbl td:nth-child(2){white-space:nowrap;padding-left:22px;font-variant-numeric:tabular-nums}
.hq-tbl td:last-child{padding-left:22px;color:var(--ink2)}
.hq-note{margin-top:16px;font-size:15px;line-height:1.55;max-width:80ch;color:var(--ink)}
.hq-note a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
@media (max-width:560px){.hq-tbl td:last-child{display:none}}
.grid.hq-four{grid-template-columns:1fr 1fr}
@media (max-width:700px){.grid.hq-four{grid-template-columns:1fr}}
/* the home page position strip, filled by the server from the rooms */
.hq-list{list-style:none;margin:0;padding:0;flex:1}
.hq-list li{padding:9px 0;border-top:1px solid var(--rule);font-size:14.5px;line-height:1.45}
.hq-list li:first-child{border-top:0;padding-top:0}
.hq-list li a{color:var(--ink);font-weight:500;text-decoration:none}
.hq-list li a:hover{text-decoration:underline;text-underline-offset:3px}
.hq-list li span{display:block;color:var(--mute);font-size:13px}
.hq-pos{margin-top:44px;max-width:72ch}
/* the council list as a table, 13 October late */
.hq-ctab{width:100%;border-collapse:collapse;margin-top:30px;font-size:15px}
.hq-ctab thead th{text-align:left;font-family:var(--fs);font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);padding:10px 14px 10px 0;border-bottom:1px solid var(--ink);white-space:nowrap}
.hq-ctab td{padding:10px 14px 10px 0;border-bottom:1px solid var(--rule);vertical-align:middle}
.hq-ctab td:last-child,.hq-ctab thead th:last-child{text-align:right;padding-right:0}
.hq-ctab .hq-gh th{text-align:left;font-family:var(--fd);font-size:22px;font-weight:400;letter-spacing:-.01em;text-transform:none;color:var(--ink);padding:38px 0 10px;border-bottom:1px solid var(--ink)}
.hq-ctab .hq-gh th span{font-family:var(--fs);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);margin-left:16px}
.hq-ctab .sub td:first-child{padding-left:28px}
.hq-ctab td a{color:var(--ink);font-weight:500;text-decoration:none}
.hq-ctab .sub td a{font-weight:400}
.hq-ctab td a:hover{text-decoration:underline;text-underline-offset:3px}
.hq-ctab td.k{color:var(--mute);font-size:13.5px;white-space:nowrap}
.hq-ctab .hq-row:hover td{background:var(--white)}
.hq-kvs{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:28px;border-top:1px solid var(--ink)}
.hq-kv{padding:16px 18px 16px 0;border-bottom:1px solid var(--rule)}
.hq-kv span{display:block;font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);margin-bottom:6px}
.hq-kv b{font-weight:500;font-size:17px;color:var(--ink);word-break:break-word}
.hq-kv b.none{color:var(--mute);font-weight:400;font-size:15px}
.hq-kv b a{color:var(--ink);text-decoration:none}
.hq-kv b a:hover{text-decoration:underline;text-underline-offset:3px}
.hq-roles{margin:22px 0 0;padding-left:22px;max-width:80ch}
.hq-roles li{padding:6px 0;font-size:15.5px;line-height:1.5}
.hq-people .t b{font-weight:600}
.hq-people .t a{color:var(--ink);text-decoration:underline;text-underline-offset:3px;margin-left:10px}
@media (max-width:900px){.hq-ctab td:nth-child(3),.hq-ctab thead th:nth-child(3),.hq-ctab td:nth-child(6),.hq-ctab thead th:nth-child(6),.hq-ctab td:nth-child(7),.hq-ctab thead th:nth-child(7){display:none}.hq-kvs{grid-template-columns:1fr}}
@media (max-width:560px){.hq-ctab td:nth-child(2),.hq-ctab thead th:nth-child(2),.hq-ctab td:nth-child(5),.hq-ctab thead th:nth-child(5){display:none}.hq-ctab .sub td:first-child{padding-left:16px}.hq-ctab .hq-status.quiet{display:none}}

/* the parks map, 14 October 2026: a panel on the left, the map filling the rest */
.hq-pk{display:grid;grid-template-columns:400px 1fr;margin-top:76px;height:min(calc(100vh - 76px),980px);min-height:600px;border-top:1px solid var(--rule)}
.hq-pk-panel{overflow:auto;padding:30px 28px 34px;border-right:1px solid var(--rule);background:var(--paper)}
.hq-pk-panel h1{font-family:var(--fd);font-weight:400;font-size:32px;line-height:1.08;letter-spacing:-.015em;margin:10px 0 12px}
.hq-pk-lead{font-size:15px;color:var(--ink2);margin:0 0 6px;line-height:1.5}
.hq-pk-panel .hq-search{margin-top:12px;padding:11px 14px;font-size:15px}
.hq-pk-list{list-style:none;margin:0 0 20px;padding:0;max-height:220px;overflow:auto;border:1px solid var(--ink);border-top:0;background:var(--white)}
.hq-pk-list li{display:flex;justify-content:space-between;gap:10px;padding:7px 14px;border-bottom:1px solid var(--hair);cursor:pointer;font-size:14px;line-height:1.35}
.hq-pk-list li:hover,.hq-pk-list li.on{background:var(--paper2)}
.hq-pk-list li span{color:var(--mute);font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums}
.hq-pk-info h2{font-family:var(--fd);font-weight:400;font-size:26px;line-height:1.1;letter-spacing:-.01em;margin:0 0 4px}
.hq-pk-info .hq-tbl{margin-top:14px;font-size:14px}
.hq-pk-info .hq-tbl td{padding:8px 0}
.hq-pk-info .hq-tbl td:nth-child(2),.hq-pk-info .hq-tbl td:last-child{padding-left:14px}
.hq-pk-info .hq-tbl i{display:inline-block;width:11px;height:11px;border-radius:2px;margin-right:8px;vertical-align:-1px}
.hq-pk-note{color:var(--mute);font-size:14px;margin:4px 0 0;line-height:1.5}
.hq-pk-info .hq-go{display:inline-flex;margin-top:14px}
.hq-pk-back{display:inline-block;margin:10px 0 0 18px;font-size:14px;color:var(--ink2)}
.hq-pk-key{list-style:none;margin:22px 0 10px;padding:0;font-size:13.5px;color:var(--ink2)}
.hq-pk-key li{display:flex;align-items:center;gap:10px;padding:3px 0}
.hq-pk-key i{width:16px;height:16px;border-radius:3px;display:inline-block;flex:none;opacity:.8}
#pk-map{height:100%;min-height:420px;background:#E9EBE6}
#pk-map .leaflet-popup-content{font-family:var(--fs);font-size:14px;line-height:1.45;margin:12px 16px}
#pk-map .leaflet-popup-content-wrapper{border-radius:4px}
#pk-map .pk-pm{color:var(--mute);font-size:13px}
#pk-map .leaflet-tooltip{font-family:var(--fs);font-size:13px;line-height:1.4}
@media (max-width:860px){.hq-pk{grid-template-columns:1fr;height:auto;min-height:0}.hq-pk-panel{border-right:0;border-bottom:1px solid var(--rule);padding:22px 16px 24px}.hq-pk-list{max-height:160px}#pk-map{height:70vh}}

@media (max-width:900px){.hq-kvs{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.hq-kvs{grid-template-columns:1fr}}
.hq-kv b{overflow-wrap:anywhere;font-size:16px}
.hq-pk-sub{font:600 11.5px/1 var(--fs);letter-spacing:.14em;text-transform:uppercase;color:var(--green);margin:0 0 8px}
.hq-pk-farms{max-height:110px}

/* the portfolio strip on the councils list, and the hectare columns */
.hq-port{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:30px;border-top:1px solid var(--ink)}
.hq-port-c{padding:18px 18px 18px 0;border-bottom:1px solid var(--rule)}
.hq-port-c b{display:block;font-family:var(--fd);font-weight:400;font-size:clamp(26px,2.6vw,34px);letter-spacing:-.015em;line-height:1.05;color:var(--ink)}
.hq-port-c span{display:block;margin-top:6px;font-size:14.5px;font-weight:500;color:var(--ink)}
.hq-port-c small{display:block;margin-top:3px;font-size:13px;color:var(--mute)}
.hq-ctab td.n,.hq-ctab thead th.n{text-align:right;padding-right:18px;font-variant-numeric:tabular-nums;white-space:nowrap}
.hq-ctab td.n .via{color:var(--mute);font-style:italic}
@media (max-width:900px){.hq-port{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.hq-port{grid-template-columns:1fr}}

/* the farm map: the same panel as the parks map, plus the add form and the status dots */
#fm-map{height:100%;min-height:420px;background:#E9EBE6}
#fm-map .leaflet-popup-content{font-family:var(--fs);font-size:14px;line-height:1.45;margin:12px 16px}
#fm-map .pk-pm{color:var(--mute);font-size:13px}
#fm-map .leaflet-tooltip{font-family:var(--fs);font-size:13px;line-height:1.4}
.hq-pk-list li .nm{color:var(--ink);font-size:14px;white-space:normal}
.hq-pk-list li i.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:9px;vertical-align:1px}
.hq-pk-form{grid-template-columns:1fr 1fr;gap:12px 14px;margin-top:10px}
.hq-pk-form input,.hq-pk-form select,.hq-pk-form textarea{width:100%;padding:9px 11px;font-size:14px;box-sizing:border-box}
.hq-pk-form textarea{font-family:var(--fs);resize:vertical}
.hq-pk-form .btn{justify-self:start}
.hq-pk-pin{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:13px;color:var(--mute)}
.hq-pk-pin .btn{padding:9px 14px;font-size:13.5px}
.hq-pk-inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:12px}
.hq-pk-inline select,.hq-pk-inline input{padding:8px 10px;font-size:13.5px;font-family:var(--fs);border:1px solid var(--rule);background:var(--white);color:var(--ink)}
.hq-pk-inline input{flex:1;min-width:120px}
.hq-pk-inline .btn{padding:8px 14px;font-size:13.5px}
.hq-pk-inline .hq-pk-back{margin:0 0 0 auto}
.hq-pk-msg{margin:10px 0 0;padding:10px 12px;border:1px solid var(--amber);color:var(--amber);font-size:14px}
.hq-pk-msg.ok{border-color:var(--green);color:var(--green)}
.hq-pk-by{font-size:12.5px}
@media (max-width:860px){#fm-map{height:70vh}}

/* the layer switch on the parks and farm maps */
#pk-map .leaflet-control-layers,#fm-map .leaflet-control-layers{border:1px solid var(--rule);border-radius:4px;box-shadow:none;font-family:var(--fs);font-size:13px;color:var(--ink);background:rgba(244,243,238,.96)}
#pk-map .leaflet-control-layers-expanded,#fm-map .leaflet-control-layers-expanded{padding:8px 12px 6px}
#pk-map .leaflet-control-layers label,#fm-map .leaflet-control-layers label{margin:3px 0;display:block}
#pk-map .leaflet-control-layers-base label,#fm-map .leaflet-control-layers-base label{display:flex;align-items:center;gap:8px;text-transform:none;letter-spacing:0;font-weight:400;font-size:13.5px;color:var(--ink);white-space:nowrap}
#pk-map .leaflet-control-layers input,#fm-map .leaflet-control-layers input{width:auto;margin:0;padding:0;border:0;background:none;accent-color:#1E4D38}
#pk-map .leaflet-control-layers span,#fm-map .leaflet-control-layers span{display:inline}
#pk-map .leaflet-control-layers input[type=radio],#fm-map .leaflet-control-layers input[type=radio]{-webkit-appearance:radio;appearance:auto;width:14px;height:14px;flex:none}
