/* COOPMAN D3 — forms. Visual only: no fields, names or validation rules are changed.
   Public auth/onboarding pages (body.d3-public) and dashboard forms (body.d3-app, never inside Document Studio). */

/* ---------- shared field styling ---------- */
:is(body.d3-public,body.d3-app:not(.d3-studio)) form :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]):not([type=range]):not([type=color]),select,textarea){
  font:400 15px/1.4 var(--d3-font)!important;color:var(--d3-ink)!important;background:#fff!important;
  border:1px solid var(--d3-line-2)!important;border-radius:9px!important;padding:10px 12px!important;min-height:44px;width:100%;box-shadow:none!important;transition:border-color .15s,box-shadow .15s}
:is(body.d3-public,body.d3-app:not(.d3-studio)) form textarea{min-height:96px;resize:vertical}
:is(body.d3-public,body.d3-app:not(.d3-studio)) form :is(input,select,textarea):hover:not(:disabled){border-color:#9fb0c6!important}
:is(body.d3-public,body.d3-app:not(.d3-studio)) form :is(input,select,textarea):focus{outline:none!important;border-color:var(--d3-green)!important;box-shadow:var(--d3-focus)!important}
:is(body.d3-public,body.d3-app:not(.d3-studio)) form :is(input,select,textarea):disabled{background:#f2f4f7!important;color:var(--d3-faint)!important}
:is(body.d3-public,body.d3-app:not(.d3-studio)) form :is(input,select,textarea).d3-touched:invalid{border-color:var(--d3-bad)!important;background:#fffafa!important}
:is(body.d3-public,body.d3-app:not(.d3-studio)) form :is(input,select,textarea).d3-touched:invalid:focus{box-shadow:0 0 0 3px rgba(163,38,27,.18)!important}
:is(body.d3-public,body.d3-app:not(.d3-studio)) form input[type=file]{font:14px var(--d3-font);padding:8px;border:1px dashed var(--d3-line-2);border-radius:9px;background:#fbfcfd;width:100%}
:is(body.d3-public,body.d3-app:not(.d3-studio)) form :is(input[type=checkbox],input[type=radio]){accent-color:var(--d3-green);width:18px;height:18px}
:is(body.d3-public,body.d3-app:not(.d3-studio)) form label{font:600 13.5px/1.35 var(--d3-font);color:var(--d3-ink);letter-spacing:0}
:is(body.d3-public,body.d3-app:not(.d3-studio)) form .d3-req{color:var(--d3-bad);font-weight:700}
:is(body.d3-public,body.d3-app:not(.d3-studio)) form label:has(>input:not([type=checkbox]):not([type=radio]),>select,>textarea){display:flex;flex-direction:column;gap:6px}
:is(body.d3-public,body.d3-app:not(.d3-studio)) form .optional{font-weight:500;color:var(--d3-faint);font-size:12px}
:is(body.d3-public,body.d3-app:not(.d3-studio)) form .help,:is(body.d3-public,body.d3-app:not(.d3-studio)) form .field-help{font-size:12.5px;color:var(--d3-muted);margin-top:4px}
:is(body.d3-public,body.d3-app:not(.d3-studio)) form fieldset{border:1px solid var(--d3-line);border-radius:12px;padding:14px 16px 16px;margin:16px 0}
:is(body.d3-public,body.d3-app:not(.d3-studio)) form legend{font:700 14px var(--d3-font);color:var(--d3-navy);padding:0 6px}
:is(body.d3-public,body.d3-app:not(.d3-studio)) form .field-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px 16px}
:is(body.d3-public,body.d3-app:not(.d3-studio)) form .field-row>div{display:flex;flex-direction:column;gap:6px;min-width:0}
:is(body.d3-public,body.d3-app:not(.d3-studio)) form button[disabled]{opacity:.7;cursor:progress}

/* ---------- sign in / register / list a society ---------- */
body.d3-public .v6-auth-shell{background:linear-gradient(180deg,#eef3f9 0,#f5f7fa 100%)!important;padding:40px 20px 56px!important;min-height:auto!important}
body.d3-public .v6-auth-card{max-width:1080px!important;margin:0 auto!important;display:grid!important;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)!important;background:#fff!important;border:1px solid var(--d3-line)!important;border-radius:16px!important;overflow:hidden;box-shadow:var(--d3-shadow-2)!important}
body.d3-public .v6-auth-story{background:#0A2350!important;color:#dbe5f3!important;padding:40px 36px!important;position:relative;display:flex;flex-direction:column;gap:14px;background-image:radial-gradient(120% 70% at 100% 100%,rgba(20,147,122,.28),transparent 60%)!important}
body.d3-public .v6-auth-story .eyebrow{align-self:flex-start;background:rgba(127,209,189,.14)!important;color:#7fd1bd!important;border-radius:999px;padding:5px 12px;font:700 11.5px var(--d3-font);letter-spacing:.1em;text-transform:uppercase}
body.d3-public .v6-auth-story h1{font:700 30px/1.15 var(--d3-font)!important;color:#fff!important;letter-spacing:-.02em;margin:0!important}
body.d3-public .v6-auth-story p{font-size:15px;line-height:1.6;color:#c4d1e4!important;margin:0}
body.d3-public .v6-auth-story ol{list-style:none;margin:8px 0 0!important;padding:0!important;display:grid;gap:10px}
body.d3-public .v6-auth-story li{position:relative;padding-left:28px;font-size:14px;color:#e8eef8}
body.d3-public .v6-auth-story li::before{content:"";position:absolute;left:0;top:2px;width:18px;height:18px;border-radius:50%;background:rgba(127,209,189,.18) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237fd1bd' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/11px no-repeat}
body.d3-public .v6-auth-form{padding:36px 40px 32px!important;background:#fff!important}
body.d3-public .v6-auth-form .auth-intro h2{font:700 24px/1.2 var(--d3-font)!important;color:var(--d3-navy)!important;margin:0 0 4px!important;letter-spacing:-.015em}
body.d3-public .v6-auth-form .auth-intro p{color:var(--d3-muted)!important;font-size:14px;margin:0 0 20px}
body.d3-public .v6-auth-form form{display:flex;flex-direction:column;gap:8px}
body.d3-public .v6-auth-form form>label{margin-top:8px}
body.d3-public .v6-password{display:flex!important;gap:0;position:relative}
body.d3-public .v6-password input{padding-right:72px!important}
body.d3-public .v6-password button{position:absolute!important;right:6px;top:50%;transform:translateY(-50%);height:32px;padding:0 12px!important;border:0!important;border-radius:7px!important;background:var(--d3-navy-tint)!important;color:var(--d3-navy)!important;font:600 13px var(--d3-font)!important;cursor:pointer}
body.d3-public .v6-intents{display:grid!important;grid-template-columns:1fr 1fr;gap:10px!important;border:0!important;padding:0!important;margin:14px 0 6px!important}
body.d3-public .v6-intents legend{grid-column:1/-1;padding:0!important;margin-bottom:8px;font:700 14px var(--d3-font)!important;color:var(--d3-navy)!important}
body.d3-public .v6-intent{display:flex!important;align-items:flex-start;gap:10px;padding:11px 12px!important;border:1px solid var(--d3-line)!important;border-radius:10px!important;background:#fff!important;cursor:pointer;margin:0!important;font-weight:500!important;transition:border-color .15s,background .15s}
body.d3-public .v6-intent:hover{border-color:#9fb0c6!important}
body.d3-public .v6-intent:has(input:checked){border-color:var(--d3-green)!important;background:var(--d3-green-tint)!important;box-shadow:inset 0 0 0 1px var(--d3-green)}
body.d3-public .v6-intent:has(input:focus-visible){box-shadow:var(--d3-focus)!important}
body.d3-public .v6-intent input{margin-top:2px}
body.d3-public .v6-intent-icon{display:none!important}
body.d3-public .v6-intent b{display:block;font:600 14px/1.3 var(--d3-font);color:var(--d3-ink)}
body.d3-public .v6-intent small{display:block;font-size:12.5px;line-height:1.4;color:var(--d3-muted);margin-top:2px}
body.d3-public .v6-auth-form .btn.v6-full,body.d3-public .v6-auth-form form>button:not([type=button]){width:100%;min-height:48px;margin-top:12px;background:var(--d3-green)!important;background-image:none!important;border:0!important;border-radius:10px!important;color:#fff!important;font:600 15.5px var(--d3-font)!important;box-shadow:none!important}
body.d3-public .v6-auth-form .btn.v6-full:hover{background:var(--d3-green-hover)!important}
body.d3-public .auth-switch{text-align:center;font-size:14px;color:var(--d3-muted);margin:10px 0 0}
body.d3-public .auth-switch a,body.d3-public .auth-links a{color:var(--d3-green);font-weight:600}
body.d3-public .auth-links{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;margin-top:12px;font-size:13.5px}
body.d3-public .v6-auth-form .alert{border-radius:10px!important;font-size:13.5px;margin:8px 0 0}
body.d3-public .help[data-username-suggestions] button,body.d3-public [data-username-suggestions] a{border-radius:999px!important}

/* other public form pages (help, forgot password, claim) */
body.d3-public main form .btn,body.d3-public .card form .btn{border-radius:10px!important}

/* ---------- dashboard forms ---------- */
body.d3-app:not(.d3-studio) .dash-main form>label,body.d3-app:not(.d3-studio) .dash-main form .field-row label{display:block;margin:0 0 6px}
body.d3-app:not(.d3-studio) .dash-main form>label+:is(input,select,textarea){margin-bottom:14px}
body.d3-app:not(.d3-studio) .dash-main .card.panel>form,body.d3-app:not(.d3-studio) .dash-main .form-card{max-width:none}
body.d3-app:not(.d3-studio) .dash-main form .actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:14px}

@media (max-width:900px){
  body.d3-public .v6-auth-shell{padding:16px 12px 32px!important}
  body.d3-public .v6-auth-card{grid-template-columns:1fr!important;border-radius:14px!important}
  body.d3-public .v6-auth-story{padding:22px 20px!important;gap:8px}
  body.d3-public .v6-auth-story h1{font-size:22px!important}
  body.d3-public .v6-auth-story p{font-size:14px}
  body.d3-public .v6-auth-story ol{gap:6px;margin-top:4px!important}
  body.d3-public .v6-auth-story li{font-size:13px}
  body.d3-public .v6-auth-form{padding:22px 18px 24px!important}
  body.d3-public .v6-intents{grid-template-columns:1fr}
  :is(body.d3-public,body.d3-app:not(.d3-studio)) form :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea){font-size:16px!important}
}
@media (prefers-reduced-motion:reduce){:is(body.d3-public,body.d3-app) form :is(input,select,textarea),.v6-intent{transition:none!important}}
body.d3-public .auth-intro::before{display:none!important}

/* building view and map position panel (Society Details) */
body.d3-app .d3-bp .panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
body.d3-app .d3-bp-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,1fr);gap:24px;align-items:start;margin-top:12px}
body.d3-app .d3-bp-form fieldset{margin:0 0 14px!important}
body.d3-app .d3-bp-form label{display:flex;flex-direction:column;gap:6px;margin:0 0 10px}
body.d3-app .d3-grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
body.d3-app .d3-grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 14px}
body.d3-app .d3-help{font-size:12.5px;color:var(--d3-muted);margin:0 0 8px}
body.d3-app .d3-help code{background:#f2f4f7;border-radius:5px;padding:1px 5px;font-size:12px}
body.d3-app .d3-checks{display:flex;flex-wrap:wrap;gap:8px 18px;margin-bottom:10px}
body.d3-app .d3-checks label,body.d3-app .d3-bp-form label.d3-switch{flex-direction:row!important;align-items:center;gap:8px;font-weight:500;margin:0}
body.d3-app .d3-bp-form label.d3-switch{margin:4px 0 6px}
body.d3-app .d3-bp-preview{position:sticky;top:76px;margin:0;border:1px solid var(--d3-line);border-radius:12px;background:#f7f9fb;padding:10px}
body.d3-app .d3-bp-preview svg{display:block;width:100%;height:auto;border-radius:8px}
body.d3-app .d3-bp-preview figcaption{font-size:12.5px;color:var(--d3-muted);margin-top:8px;text-align:center}
@media (max-width:1100px){body.d3-app .d3-bp-grid{grid-template-columns:1fr}body.d3-app .d3-bp-preview{position:static;max-width:560px}}
@media (max-width:600px){body.d3-app .d3-grid2,body.d3-app .d3-grid3{grid-template-columns:1fr}}
body.d3-app .d3-grid2,body.d3-app .d3-grid3{align-items:end}

/* D4 building view: three steps, preset cards, façade and colour choices */
body.d3-app .d3-bp-steps{display:grid;gap:14px;min-width:0}
body.d3-app .d3-bp-step{margin:0!important;padding:16px 18px 18px!important;border:1px solid var(--d3-line)!important;border-radius:14px!important;background:#fff}
body.d3-app .d3-bp-step legend{display:flex;align-items:center;gap:10px;font:700 15.5px var(--d3-font)!important;color:var(--d3-navy)!important;padding:0 6px!important}
body.d3-app .d3-bp-step legend span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--d3-navy);color:#fff;font-size:13px}
body.d3-app .d3-preset-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:6px}
body.d3-app .d3-preset{position:relative;display:flex!important;flex-direction:column!important;gap:2px!important;padding:8px!important;margin:0!important;border:1.5px solid var(--d3-line);border-radius:12px;cursor:pointer;background:#fff;transition:border-color .15s,box-shadow .15s}
body.d3-app .d3-preset input{position:absolute;opacity:0;pointer-events:none}
body.d3-app .d3-preset-art{display:block;aspect-ratio:1.6;border-radius:8px;overflow:hidden;background:#eef4f9;margin-bottom:6px}
body.d3-app .d3-preset-art svg{display:block;width:100%;height:100%}
body.d3-app .d3-preset-auto-art{display:grid;place-items:center;color:var(--d3-navy)}
body.d3-app .d3-preset b{font:700 13.5px var(--d3-font);color:var(--d3-navy)} body.d3-app .d3-preset small{font-size:12px;color:var(--d3-muted);font-weight:500}
body.d3-app .d3-preset:has(input:checked),body.d3-app .d3-choice:has(input:checked){border-color:var(--d3-green);box-shadow:0 0 0 3px rgba(20,147,122,.18);background:#f6fcfa}
body.d3-app .d3-preset:has(input:focus-visible),body.d3-app .d3-choice:has(input:focus-visible),body.d3-app .d3-swatch:has(input:focus-visible) span,body.d3-app .d3-chipbox:has(input:focus-visible) span{box-shadow:var(--d3-focus)}
body.d3-app .d3-bp-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;align-items:end}
body.d3-app .d3-bp-label{margin:14px 0 6px;font:700 13.5px var(--d3-font);color:var(--d3-ink)}
body.d3-app .d3-choice-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
body.d3-app .d3-choice{position:relative;display:flex!important;flex-direction:column!important;align-items:center;gap:4px!important;padding:6px!important;margin:0!important;border:1.5px solid var(--d3-line);border-radius:10px;cursor:pointer;text-align:center;font-weight:500!important;font-size:12px!important;line-height:1.25!important}
body.d3-app .d3-choice input{position:absolute;opacity:0;pointer-events:none}
body.d3-app .d3-choice svg{width:100%;height:auto;border-radius:6px}
body.d3-app .d3-swatches{display:flex;flex-wrap:wrap;gap:10px}
body.d3-app .d3-swatch{position:relative;display:flex!important;flex-direction:column!important;align-items:center;gap:4px!important;margin:0!important;cursor:pointer;font-size:12px!important;font-weight:500!important}
body.d3-app .d3-swatch input{position:absolute;opacity:0;pointer-events:none}
body.d3-app .d3-swatch span{width:44px;height:44px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--d3-line-2)}
body.d3-app .d3-swatch:has(input:checked) span{box-shadow:0 0 0 3px var(--d3-green)}
body.d3-app .d3-chipset{display:flex;flex-wrap:wrap;gap:8px}
body.d3-app .d3-chipbox{position:relative;margin:0!important;cursor:pointer}
body.d3-app .d3-chipbox input{position:absolute;opacity:0;pointer-events:none}
body.d3-app .d3-chipbox span{display:inline-block;padding:9px 16px;border-radius:999px;border:1.5px solid var(--d3-line-2);font:600 13.5px var(--d3-font);color:var(--d3-navy);background:#fff}
body.d3-app .d3-chipbox:has(input:checked) span{background:var(--d3-navy);border-color:var(--d3-navy);color:#fff}
body.d3-app .d3-bp-adv{margin-top:14px;border:1px dashed var(--d3-line-2);border-radius:12px;padding:10px 14px}
body.d3-app .d3-bp-adv summary{cursor:pointer;font:600 14px var(--d3-font);color:var(--d3-green)}
body.d3-app .d3-bp-adv[open] summary{margin-bottom:10px}
body.d3-app .d3-inline-check{flex-direction:row!important;align-items:center;gap:8px;align-self:end;padding-bottom:12px}
body.d3-app [data-d3-bp-preview][aria-busy]{opacity:.6;transition:opacity .2s}
@media (max-width:1300px){body.d3-app .d3-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:700px){body.d3-app .d3-preset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}body.d3-app .d3-bp-row{grid-template-columns:1fr}body.d3-app .d3-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}body.d3-app .d3-bp-preview{order:-1}}
body.d3-app .d3-preset-auto-art .d3-icon{width:34px;height:34px}

/* D5 building view: exact frontage, sides, roads/gate, preview status and the three drawings */
body.d3-app .d3-bp-row-3{grid-template-columns:repeat(3,minmax(0,1fr))}
body.d3-app .d3-choice-grid-sm{grid-template-columns:repeat(4,minmax(0,1fr))}
body.d3-app .d3-choice span{font-size:12px;text-align:center;line-height:1.25}
body.d3-app .d3-grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
body.d3-app .d3-grid4 label.is-off{opacity:.45}
body.d3-app .d3-bp-more{margin-top:10px} body.d3-app .d3-bp-more summary{cursor:pointer;font:600 13.5px var(--d3-font);color:var(--d3-green);margin-bottom:8px}
body.d3-app .d3-bp-status{margin:0 0 8px;min-height:26px}
body.d3-app .d3-pill{display:inline-block;padding:4px 10px;border-radius:999px;font:600 12.5px var(--d3-font);background:#eef2f7;color:var(--d3-navy)}
body.d3-app .d3-pill-saved{background:#e3f4ee;color:#0F7A63} body.d3-app .d3-pill-draft{background:#fff4dc;color:#7a5a12} body.d3-app .d3-pill-error{background:#fde8e6;color:#9b2c1f}
body.d3-app .d3-bp-views{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
body.d3-app .d3-bp-views>div>b{display:block;font:700 12.5px var(--d3-font);color:var(--d3-ink);margin:0 0 4px}
body.d3-app .d3-bp-views svg{display:block;width:100%;height:auto;max-height:260px;border-radius:8px;border:1px solid var(--d3-line);background:#fff}
@media (max-width:700px){body.d3-app .d3-bp-row-3,body.d3-app .d3-grid4{grid-template-columns:1fr 1fr}body.d3-app .d3-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr))}body.d3-app .d3-choice-grid-sm{grid-template-columns:repeat(2,minmax(0,1fr))}body.d3-app .d3-bp-views{grid-template-columns:1fr}}
body.d3-app .d3-help-note{background:#fff8e6;border-radius:8px;padding:8px 10px;color:#6b5512}
/* D6 — one row per building */
body.d3-app .d3-blocks{margin:6px 0 4px}
body.d3-app .d3-block-table{width:100%;border-collapse:collapse;font-size:13.5px}
body.d3-app .d3-block-table th{text-align:left;font:600 12.5px var(--d3-font);color:var(--d3-muted);padding:4px 6px}
body.d3-app .d3-block-table td{padding:4px 6px;vertical-align:middle}
body.d3-app .d3-block-table input,body.d3-app .d3-block-table select{width:100%;min-width:0;min-height:38px}
body.d3-app .d3-block-table td:nth-child(2){width:84px}
@media (max-width:700px){body.d3-app .d3-block-table thead{display:none}body.d3-app .d3-block-table tr{display:grid;grid-template-columns:1fr 84px;gap:6px;padding:8px 0;border-top:1px solid var(--d3-line)}body.d3-app .d3-block-table td{padding:0}}
