/* Shared primitives. Page layouts may refine dimensions but not semantic tokens. */
.brand{font-family:var(--font-display);font-weight:800;text-decoration:none;letter-spacing:-.05em;white-space:nowrap}
.brand .my,.brand-my{color:var(--color-external)}
.lang{display:inline-flex;border:1px solid var(--color-line);border-radius:var(--radius-pill);padding:3px;background:rgba(255,255,255,.55)}
.lang button{border:0;background:transparent;border-radius:var(--radius-pill);font-weight:800}
.lang button[aria-pressed="true"]{background:var(--color-ink);color:#fff}

.field{display:flex;flex-direction:column;gap:8px;min-width:0}
.field>span,.field-label,.contract-label,.period-label{font:750 .76rem var(--font-display);text-transform:uppercase;letter-spacing:.08em;color:var(--color-ink-soft)}
.field input,.field select{width:100%;min-height:54px;border:1px solid rgba(16,17,17,.17);border-radius:16px;background:var(--color-white);padding:14px 16px;font:500 1rem var(--font-body);color:var(--color-ink);outline:none;transition:border-color .18s var(--ease-brand),box-shadow .18s var(--ease-brand),background .18s var(--ease-brand)}
.field input:hover,.field select:hover{border-color:rgba(16,17,17,.32)}
.field input:focus-visible,.field select:focus-visible{border-color:var(--color-self);box-shadow:0 0 0 4px rgba(64,56,242,.12)}
.field input::placeholder{color:color-mix(in srgb,var(--color-muted) 82%,transparent)}

.month-year-control{display:grid;grid-template-columns:minmax(160px,1fr) minmax(120px,.65fr);gap:12px}
.compact-field input,.compact-field select{min-height:50px;padding:12px 14px}
.compact-field input[type=number]{appearance:textfield}
.compact-field input[type=number]::-webkit-inner-spin-button,.compact-field input[type=number]::-webkit-outer-spin-button{appearance:none;margin:0}

.app-primary,.app-secondary{appearance:none;min-height:48px;border-radius:var(--radius-pill);padding:13px 22px;font:800 .86rem var(--font-display);cursor:pointer;transition:transform .18s var(--ease-brand),opacity .18s var(--ease-brand),box-shadow .18s var(--ease-brand),background .18s var(--ease-brand);border:1px solid var(--color-ink);display:inline-flex;align-items:center;justify-content:center;gap:8px}
.app-primary{background:var(--color-ink);color:var(--color-paper)}
.app-secondary{background:transparent;color:var(--color-ink)}
.app-primary:hover:not(:disabled),.app-secondary:hover:not(:disabled){transform:translateY(-1px)}
.app-primary:focus-visible,.app-secondary:focus-visible{outline:3px solid color-mix(in srgb,var(--color-self) 34%,transparent);outline-offset:3px}
.app-primary:disabled,.app-secondary:disabled{opacity:.36;cursor:not-allowed;transform:none}
.as-link{text-decoration:none}

.form-error{color:var(--color-error);font-weight:650;margin-top:14px}
.form-note{font-weight:650;margin-top:14px}

.choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.choice-card{position:relative;display:block;min-width:0;cursor:pointer}
.choice-card input{position:absolute;inset:0;opacity:0;pointer-events:none}
.choice-card-body{min-height:58px;border:1px solid rgba(16,17,17,.13);border-radius:16px;background:rgba(255,255,255,.78);display:flex;align-items:center;padding:14px 16px;transition:border-color .18s var(--ease-brand),background .18s var(--ease-brand),box-shadow .18s var(--ease-brand),transform .18s var(--ease-brand)}
.choice-card-body strong{font:750 .87rem/1.25 var(--font-display)}
.choice-card:hover .choice-card-body{border-color:rgba(16,17,17,.32);transform:translateY(-1px)}
.choice-card input:focus-visible+.choice-card-body{outline:3px solid color-mix(in srgb,var(--color-self) 30%,transparent);outline-offset:3px}
.choice-card input:checked+.choice-card-body{background:var(--color-ink);color:var(--color-paper);border-color:var(--color-ink);box-shadow:0 12px 30px rgba(16,17,17,.12)}
.choice-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}

.segmented-control{display:inline-grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border:1px solid rgba(16,17,17,.12);border-radius:16px;background:rgba(255,255,255,.7)}
.segmented-control label{position:relative;cursor:pointer}
.segmented-control input{position:absolute;opacity:0;pointer-events:none}
.segmented-control span{min-width:84px;min-height:44px;padding:10px 18px;border-radius:12px;display:grid;place-items:center;font:800 .84rem var(--font-display);transition:background .18s var(--ease-brand),color .18s var(--ease-brand),box-shadow .18s var(--ease-brand)}
.segmented-control input:checked+span{background:var(--color-ink);color:var(--color-paper);box-shadow:0 8px 22px rgba(16,17,17,.12)}
.segmented-control input:focus-visible+span{outline:3px solid color-mix(in srgb,var(--color-self) 30%,transparent);outline-offset:2px}

.scale{background:var(--color-white);border:1px solid rgba(16,17,17,.09);border-radius:28px;padding:clamp(20px,3vw,30px);margin:0 0 28px;box-shadow:0 18px 70px rgba(16,17,17,.05)}
.scale-decision-anchors{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:28px}
.scale-anchor-card{appearance:none;border:1px solid rgba(16,17,17,.13);background:var(--color-paper-soft);border-radius:20px;padding:18px;text-align:left;color:var(--color-ink);display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;min-height:132px;transition:border-color .18s var(--ease-brand),box-shadow .18s var(--ease-brand),transform .18s var(--ease-brand),background .18s var(--ease-brand)}
.scale-anchor-card:last-child{text-align:right;grid-template-columns:1fr auto}
.scale-anchor-card:last-child .scale-anchor-value{order:2}
.scale-anchor-card:hover{border-color:rgba(16,17,17,.34);transform:translateY(-1px)}
.scale-anchor-card:focus-visible{outline:3px solid color-mix(in srgb,var(--color-self) 30%,transparent);outline-offset:3px}
.scale-anchor-value{width:36px;height:36px;border-radius:50%;background:var(--color-white);border:1px solid rgba(16,17,17,.1);display:grid;place-items:center;font:800 .82rem var(--font-display)}
.scale-anchor-copy{font:650 clamp(.94rem,1.3vw,1.06rem)/1.52 var(--font-body);max-width:34ch}
.scale-control-row{padding:12px 4px 8px}
.scale input[type=range]{width:100%;height:44px;margin:0;appearance:none;background:transparent;cursor:pointer;outline:none}
.scale input[type=range]::-webkit-slider-runnable-track{height:8px;border-radius:999px;background:var(--color-line)}
.scale input[type=range]::-moz-range-track{height:8px;border-radius:999px;background:var(--color-line)}
.scale input[type=range]::-webkit-slider-thumb{appearance:none;width:30px;height:30px;border-radius:50%;background:var(--color-self);border:5px solid var(--color-white);box-shadow:0 0 0 1px rgba(16,17,17,.12),0 8px 22px rgba(64,56,242,.22);margin-top:-11px;transition:transform .18s var(--ease-brand),opacity .18s var(--ease-brand)}
.scale input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--color-self);border:5px solid var(--color-white);box-shadow:0 0 0 1px rgba(16,17,17,.12),0 8px 22px rgba(64,56,242,.22);transition:transform .18s var(--ease-brand),opacity .18s var(--ease-brand)}
.scale input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px color-mix(in srgb,var(--color-self) 24%,transparent),0 8px 22px rgba(64,56,242,.22)}
.scale input[type=range]:focus-visible::-moz-range-thumb{box-shadow:0 0 0 4px color-mix(in srgb,var(--color-self) 24%,transparent),0 8px 22px rgba(64,56,242,.22)}
.scale[data-answered="false"] input[type=range]::-webkit-slider-thumb{background:var(--color-white);box-shadow:0 0 0 2px var(--color-line);opacity:.78}
.scale[data-answered="false"] input[type=range]::-moz-range-thumb{background:var(--color-white);box-shadow:0 0 0 2px var(--color-line);opacity:.78}
.scale[data-answered="false"] input[type=range]::-webkit-slider-runnable-track{background:color-mix(in srgb,var(--color-line) 72%,var(--color-white))}
.scale[data-answered="false"] input[type=range]::-moz-range-track{background:color-mix(in srgb,var(--color-line) 72%,var(--color-white))}
.scale-status{display:flex;align-items:baseline;justify-content:center;gap:10px;min-height:42px;margin-top:10px}
.scale-status-label{font:750 .72rem var(--font-display);text-transform:uppercase;letter-spacing:.08em;color:var(--color-muted)}
.scale-value{font:850 1.65rem var(--font-display);line-height:1;color:var(--color-ink)}
.unanswered{font:650 .82rem var(--font-body);color:var(--color-muted)}
.scale[data-answered="true"] .unanswered{display:none}
.scale[data-answered="false"] .scale-value{color:var(--color-muted)}

@media(max-width:760px){
  .month-year-control{grid-template-columns:minmax(0,1fr) 116px}
  .choice-grid,.choice-grid.compact{grid-template-columns:1fr 1fr}
  .scale-decision-anchors{grid-template-columns:1fr;gap:10px}
  .scale-anchor-card,.scale-anchor-card:last-child{text-align:left;grid-template-columns:auto 1fr;min-height:0;padding:16px}
  .scale-anchor-card:last-child .scale-anchor-value{order:0}
  .scale-anchor-copy{max-width:none}
  .app-primary,.app-secondary{min-height:52px}
}

@media(max-width:430px){
  .month-year-control{grid-template-columns:1fr 104px}
}

@media(prefers-reduced-motion:reduce){
  .field input,.field select,.app-primary,.app-secondary,.choice-card-body,.segmented-control span,.scale-anchor-card,.scale input[type=range]::-webkit-slider-thumb,.scale input[type=range]::-moz-range-thumb{transition:none}
}
/* Identity radar — approved profile-card language, exact server shares */
.identity-radar .radar-axis{stroke:rgba(16,17,17,.075);stroke-width:1}
.identity-radar .radar-grid{fill:none;vector-effect:non-scaling-stroke}
.identity-radar .radar-grid-inner{stroke:rgba(16,17,17,.095);stroke-width:1}
.identity-radar .radar-grid-100{stroke:rgba(16,17,17,.18);stroke-width:1.15}
.identity-radar .radar-scale-labels text{fill:rgba(16,17,17,.34);font:650 11px var(--font-body);letter-spacing:.01em}
.identity-radar .radar-shape{stroke-width:2.4;stroke-linejoin:round;stroke-linecap:round;fill-opacity:0;filter:drop-shadow(0 14px 28px rgba(16,17,17,.09));transition:fill-opacity .55s var(--ease-brand) .26s,fill .35s var(--ease-brand),stroke .35s var(--ease-brand)}
.identity-radar .radar-profile-edge{stroke-width:5.4;stroke-linecap:round;opacity:0;filter:drop-shadow(0 6px 12px rgba(16,17,17,.08));transition:opacity .38s var(--ease-brand),stroke .35s var(--ease-brand)}
.identity-radar .radar-value-node{opacity:0;stroke:rgba(255,255,255,.96);stroke-width:3.2;filter:drop-shadow(0 4px 8px rgba(16,17,17,.12));transition:opacity .28s ease}
.identity-radar .radar-node{r:6;opacity:0;stroke:rgba(255,255,255,.94);stroke-width:3;transition:opacity .22s ease}
.identity-radar.is-revealed .radar-node,.identity-radar.is-revealed .radar-value-node,.identity-radar.is-revealed .radar-profile-edge{opacity:1}
.identity-radar.is-revealed .radar-node:nth-of-type(1),.identity-radar.is-revealed .radar-value-node:nth-of-type(1){transition-delay:.02s}
.identity-radar.is-revealed .radar-node:nth-of-type(2),.identity-radar.is-revealed .radar-value-node:nth-of-type(2){transition-delay:.06s}
.identity-radar.is-revealed .radar-node:nth-of-type(3),.identity-radar.is-revealed .radar-value-node:nth-of-type(3){transition-delay:.10s}
.identity-radar.is-revealed .radar-node:nth-of-type(4),.identity-radar.is-revealed .radar-value-node:nth-of-type(4){transition-delay:.14s}
.identity-radar.is-revealed .radar-node:nth-of-type(5),.identity-radar.is-revealed .radar-value-node:nth-of-type(5){transition-delay:.18s}
.identity-radar.is-revealed .radar-shape{fill-opacity:1}
@media(prefers-reduced-motion:reduce){
  .identity-radar .radar-node,.identity-radar .radar-value-node,.identity-radar .radar-profile-edge{opacity:1;transition:none!important}
  .identity-radar .radar-shape{fill-opacity:1;transition:none!important}
}


.nav-lang{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;border:1px solid rgba(16,17,17,.18);border-radius:999px;color:var(--color-ink);text-decoration:none;font:800 .7rem var(--font-display)}.nav-lang:hover{border-color:var(--color-self);color:var(--color-self)}.nav-lang:focus-visible{outline:3px solid rgba(64,56,242,.22);outline-offset:2px}

/* Compatibility reference — raw 0–100 score contextualised by a synthetic calibration distribution. */
.compatibility-reference{width:min(760px,100%);margin:28px auto 0;padding:20px 22px;border:1px solid rgba(16,17,17,.1);border-radius:22px;background:rgba(255,255,255,.62);text-align:left}
.compatibility-reference-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.compatibility-reference-head>strong{font:800 1rem/1.1 var(--font-display);letter-spacing:-.02em}.compatibility-reference-head>span{display:inline-flex;align-items:center;min-height:28px;padding:5px 9px;border-radius:999px;background:color-mix(in srgb,var(--color-meet) 8%,#fff);color:var(--color-meet);font:800 .64rem/1 var(--font-display);letter-spacing:.07em;text-transform:uppercase;white-space:nowrap}
.compatibility-reference-track-wrap{display:grid;gap:5px}.compatibility-reference-endpoints{display:flex;justify-content:space-between;color:var(--color-muted);font:700 .65rem var(--font-display);font-variant-numeric:tabular-nums}.compatibility-reference-track{position:relative;height:14px;border-radius:999px;background:linear-gradient(90deg,rgba(16,17,17,.08),rgba(16,17,17,.035));overflow:visible}.compatibility-reference-corridor{position:absolute;top:0;bottom:0;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--color-meet) 12%,transparent),color-mix(in srgb,var(--color-self) 12%,transparent))}.compatibility-reference-tick{position:absolute;top:-5px;width:1px;height:24px;background:rgba(16,17,17,.3);transform:translateX(-.5px)}.compatibility-reference-tick.is-median{width:2px;background:rgba(16,17,17,.58);transform:translateX(-1px)}.compatibility-reference-score{position:absolute;top:50%;width:16px;height:16px;border-radius:50%;background:var(--color-ink);border:3px solid var(--color-paper);box-shadow:0 0 0 2px var(--color-meet),0 5px 14px rgba(16,17,17,.18);transform:translate(-50%,-50%);z-index:3}.compatibility-reference-score-bubble{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);padding:5px 8px;border-radius:999px;background:var(--color-ink);color:#fff;font:800 .7rem/1 var(--font-display);font-variant-numeric:tabular-nums;white-space:nowrap}
.compatibility-reference-markers{position:relative;height:36px;margin-top:4px}.compatibility-reference-markers>span{position:absolute;top:4px;transform:translateX(-50%);max-width:150px;text-align:center;color:var(--color-muted);font:700 .62rem/1.2 var(--font-display);white-space:nowrap}.compatibility-reference-markers>span.is-low{transform:translateX(-100%);text-align:right}.compatibility-reference-markers>span.is-mid{transform:translateX(-50%);text-align:center}.compatibility-reference-markers>span.is-high{transform:translateX(0);text-align:left}.compatibility-reference-zone-caption{margin:-2px 0 10px;text-align:center;color:var(--color-muted);font:650 .68rem/1.35 var(--font-display)}.compatibility-reference-reading{margin:2px 0 0;font:600 .9rem/1.42 var(--font-body);color:var(--color-ink)}.compatibility-reference-reading strong{font:850 .92rem/1.35 var(--font-display)}.compatibility-reference-help{margin:12px 0 0;border-top:1px solid rgba(16,17,17,.08);padding-top:10px}.compatibility-reference-help summary{width:max-content;max-width:100%;cursor:pointer;color:var(--color-ink);font:800 .75rem/1.2 var(--font-display);text-decoration:underline;text-decoration-color:rgba(16,17,17,.22);text-underline-offset:3px}.compatibility-reference-help summary::marker{color:var(--color-meet)}.compatibility-reference-help p{margin:8px 0 0;max-width:78ch;color:var(--color-muted);font-size:.76rem;line-height:1.55}.compatibility-reference-note{margin:8px 0 0;color:var(--color-muted);font-size:.68rem;line-height:1.5;max-width:76ch}.compatibility-reference.is-compact{width:100%;margin:10px 0 0;padding:14px 16px;border-radius:16px;background:rgba(255,255,255,.46)}.compatibility-reference.is-compact .compatibility-reference-head{margin-bottom:14px}.compatibility-reference.is-compact .compatibility-reference-head>span,.compatibility-reference.is-compact .compatibility-reference-note{display:none}.compatibility-reference.is-compact .compatibility-reference-reading{font-size:.78rem}.compatibility-reference.is-compact .compatibility-reference-markers>span{font-size:.58rem}.compatibility-reference.is-compact .compatibility-reference-zone-caption{font-size:.61rem;margin-bottom:7px}.compatibility-reference.is-compact .compatibility-reference-help{margin-top:9px;padding-top:8px}.compatibility-reference.is-compact .compatibility-reference-help summary{font-size:.68rem}.compatibility-reference.is-compact .compatibility-reference-help p{font-size:.7rem;line-height:1.5}

.compatibility-reference.is-detail{width:min(860px,100%);margin:24px auto 0;padding:20px 22px;border-radius:20px;background:rgba(255,255,255,.68);text-align:left}
.compatibility-result .compatibility-reference.is-detail .compatibility-reference-head{margin-bottom:16px}
.compatibility-result .compatibility-reference.is-detail .compatibility-reference-head>strong{display:block;color:var(--color-ink);font:800 1rem/1.15 var(--font-display);letter-spacing:-.02em;text-transform:none}
.compatibility-reference.is-detail .compatibility-reference-head>span{display:none}
.compatibility-result .compatibility-reference.is-detail .compatibility-reference-reading{margin:5px 0 0;color:var(--color-ink);font:650 .9rem/1.48 var(--font-body);text-align:left}
.compatibility-result .compatibility-reference.is-detail .compatibility-reference-reading strong{font:inherit;color:inherit}
.compatibility-reference.is-detail .compatibility-reference-zone-caption{margin:2px 0 10px;font-size:.66rem}
.compatibility-reference.is-detail .compatibility-reference-help{margin-top:12px;padding-top:10px}
.compatibility-reference.is-detail .compatibility-reference-help p{font-size:.74rem;line-height:1.55}
.compatibility-reference.is-detail .compatibility-reference-note{margin-top:8px;font-size:.68rem;line-height:1.5}

@media(max-width:640px){.compatibility-reference{padding:18px 16px}.compatibility-reference-head{align-items:flex-start;flex-direction:column;gap:8px}.compatibility-reference-markers{height:30px}.compatibility-reference-markers>span{width:auto;max-width:none;font-size:0;white-space:nowrap}.compatibility-reference-markers>span::after{content:attr(data-short);font:700 .58rem/1.2 var(--font-display)}.compatibility-reference-zone-caption{margin-top:0}.compatibility-reference-score-bubble{bottom:22px}}
