:root{color-scheme:dark;--bg:#08110f;--panel:#10201c;--line:#29463d;--text:#eef8f3;--muted:#9db7ad;--accent:#d6b865;--ok:#6fd5a5;--danger:#ff8d8d;font-family:Inter,ui-sans-serif,system-ui,sans-serif}
*{box-sizing:border-box}
body{margin:0;background:radial-gradient(circle at 80% -20%,#23483c 0,transparent 38%),var(--bg);color:var(--text);min-height:100vh}
.topbar{display:flex;justify-content:space-between;align-items:center;padding:2.3rem clamp(1rem,5vw,5rem);border-bottom:1px solid var(--line)}
h1{margin:.2rem 0;font-size:clamp(2rem,5vw,4rem);font-weight:500}
.eyebrow{color:var(--accent);letter-spacing:.18em;font-size:.75rem}
.topbar p,footer{color:var(--muted)}
.phase{padding:.65rem 1rem;border:1px solid var(--line);border-radius:2rem;color:var(--ok)}
main{width:min(1180px,94vw);margin:2rem auto 5rem}
.panel{background:color-mix(in srgb,var(--panel) 92%,transparent);border:1px solid var(--line);border-radius:1.2rem;padding:clamp(1rem,3vw,2.4rem);box-shadow:0 20px 70px #0005}
.narrow{max-width:520px;margin:8vh auto}
form{display:grid;gap:1rem}
label{display:grid;gap:.4rem;color:var(--muted)}
input,select,textarea,button{font:inherit;border-radius:.7rem;border:1px solid var(--line);padding:.85rem;background:#0b1714;color:var(--text)}
textarea{width:100%;resize:vertical}
button{cursor:pointer;background:var(--accent);color:#142018;font-weight:700;border:0}
button.quiet,nav button{background:transparent;color:var(--text);border:1px solid var(--line)}
button.standalone{width:100%;margin-top:1rem}
.actions{display:flex;flex-wrap:wrap;gap:.7rem}
.actions>*{flex:1 1 12rem}
nav{display:flex;flex-wrap:wrap;gap:.65rem;margin-bottom:1rem}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem}
.metric{border:1px solid var(--line);border-radius:.8rem;padding:1rem}
.metric strong{display:block;font-size:1.6rem;color:var(--accent);overflow-wrap:anywhere}
.person{display:grid;grid-template-columns:1fr auto;gap:.5rem;padding:1rem 0;border-bottom:1px solid var(--line)}
.person small{color:var(--muted)}
.person .verification-state{text-align:right}
.flow{display:flex;flex-wrap:wrap;gap:.6rem;margin:2rem 0}
.flow span{padding:.65rem 1rem;border:1px solid var(--line);border-radius:2rem}
.flow span+span:before{content:'→';margin-right:1rem;color:var(--accent)}
pre{white-space:pre-wrap;word-break:break-word;background:#07100e;padding:1rem;border-radius:.7rem;color:var(--ok)}
details{margin-top:1.2rem;border-top:1px solid var(--line);padding-top:1rem}
summary{cursor:pointer;color:var(--accent);margin-bottom:1rem}
.warning{color:var(--accent)}
#notice{min-height:1.5rem;margin:.6rem;color:var(--ok)}
.hidden{display:none!important}
.identity-banner{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-bottom:1.2rem}
.identity-banner>div{border:1px solid var(--line);border-radius:.8rem;padding:1rem}
.identity-banner small,.identity-banner strong{display:block}
.identity-banner strong{color:var(--accent);font-size:1.15rem;overflow-wrap:anywhere}
.steps{list-style:none;padding:0;display:grid;gap:.7rem}
.steps li{display:flex;align-items:center;gap:.8rem;color:var(--muted);padding:.8rem;border:1px solid var(--line);border-radius:.8rem}
.steps li span{display:grid;place-items:center;width:2rem;height:2rem;border:1px solid var(--line);border-radius:50%}
.steps li.complete{color:var(--ok)}
.steps li.current{color:var(--text);border-color:var(--accent)}
.steps li.current span{background:var(--accent);color:#142018}
.certificate{margin-top:2rem;padding:1.5rem;background:#f9fbf8;color:#123c31;border-radius:1rem}
.certificate h2,.certificate h3{text-align:center}
.certificate-signers{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem;margin:1.5rem 0}
.certificate-signers>div{display:grid;gap:.25rem;padding:.8rem;border:1px solid #cbd9d1;border-radius:.7rem;overflow-wrap:anywhere}
.certificate a{color:#1155cc}
.certificate button{background:#287a48;color:white}
hr{border:0;border-top:1px solid var(--line);margin:2.5rem 0}
footer{text-align:center;padding:2rem;border-top:1px solid var(--line)}
@media(max-width:760px){.certificate-signers{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.topbar{align-items:flex-start;gap:1rem;flex-direction:column}.flow span+span:before{display:none}.person{grid-template-columns:1fr}.person .verification-state{text-align:left}.certificate-signers{grid-template-columns:1fr}}
@media print{body{background:white;color:black}.topbar,nav,#notice,#identity-primary-action,#status-grid,#overview>hr,footer{display:none!important}main{width:100%;margin:0}.panel{border:0;box-shadow:none;padding:0}.certificate{display:block!important;margin:0}.certificate button{display:none}}


.module-grid{
  display:grid;
  grid-template-columns:
    repeat(auto-fit,minmax(220px,1fr));
  gap:1rem
}
.module-card,
.status-card,
.document-card,
.hash-result{
  border:1px solid var(--line);
  border-radius:.9rem;
  padding:1rem;
  overflow-wrap:anywhere
}
.module-card.complete{
  border-color:var(--ok)
}
.module-card.complete small,
.status-card strong{
  color:var(--ok)
}
.module-card.reserved{
  opacity:.72
}
.document-card{
  display:grid;
  grid-template-columns:1fr auto;
  gap:1rem;
  margin:.8rem 0
}
.document-card code,
.hash-result{
  display:block;
  color:var(--accent);
  word-break:break-all
}
#payment-method-area{
  display:grid;
  gap:1rem;
  margin:1rem 0
}
@media(max-width:600px){
  .document-card{
    grid-template-columns:1fr
  }
}

.certification-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;margin:1rem 0}
.certification-grid article{align-content:start}.certification-grid code{display:block;color:var(--accent);word-break:break-all}

/* WMO DASHBOARD PLANE INDICATOR */
.environment-banner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .75rem;
  padding: .8rem 1.25rem;
  border-bottom: 1px solid currentColor;
  font-size: .92rem;
  line-height: 1.4;
  text-align: center;
}
.environment-banner strong {
  flex: 0 0 auto;
  padding: .24rem .65rem;
  border: 1px solid currentColor;
  border-radius: 999px;
  letter-spacing: .08em;
  font-size: .78rem;
}
.environment-live {
  color: #a8ecd2;
  background: #0b3026;
}
.environment-test {
  color: #fff3bd;
  background: #5b4300;
}
body.plane-test #registration-open,
body.plane-test #registration-card {
  display: none !important;
}
body.plane-test .topbar {
  border-bottom-color: #8b6b16;
}
@media (max-width: 42rem) {
  .environment-banner {
    align-items: flex-start;
    flex-direction: column;
    text-align: left;
  }
}


.cashbook-scroll{overflow-x:auto}.cashbook-scroll table{width:100%;border-collapse:collapse}.cashbook-scroll th,.cashbook-scroll td{padding:.65rem;text-align:left;vertical-align:top}.cashbook-scroll small{display:block}.cashbook-scroll details{overflow-wrap:anywhere}

dialog[aria-label="WalletConnect verbinden"]{max-width:min(92vw,32rem);color:var(--text,#fff);background:var(--panel,#10271f);border:1px solid #37604f;border-radius:1rem;padding:1.5rem}dialog::backdrop{background:#000b}dialog img{max-width:100%;height:auto}dialog input{display:block;width:100%;margin-top:1rem}dialog a{display:block;margin:.75rem 0}

#payment-acceptance [hidden],#contribution-status[hidden]{display:none!important}
.payment-steps h3{margin-top:0}.payment-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:1rem}.payment-options button{white-space:normal;text-align:left;margin:0}.payment-options small{display:block;margin-top:.45rem;font-weight:400}.payment-summary{white-space:pre-line;overflow-wrap:anywhere;padding:1rem;border:1px solid var(--line);border-radius:.7rem}#payment-acceptance p{line-height:1.6;height:auto}#payment-acceptance button{margin:.4rem .4rem .4rem 0;white-space:normal}#payment-acceptance input,#payment-acceptance select{max-width:100%}

.managed-hash{overflow-wrap:anywhere}

/* V298: public intake phase; stored module records remain intact. */
.intake-info{display:none}.intake-only .intake-info{display:block}
.intake-only nav [data-view]:not([data-view="overview"]):not([data-view="people"]):not([data-view="profile"]),.intake-only nav a,.intake-only .module-card,.intake-only #journey-contribution{display:none!important}
#profile .will-text{line-height:1.65;max-width:75ch}#profile .will-history a{overflow-wrap:anywhere}#profile label{display:block;margin:1rem 0}#profile input[type=checkbox]{width:auto;margin-right:.5rem}#profile textarea{width:100%;min-height:6rem}.will-review{border:1px solid var(--line,#284e45);padding:1rem;border-radius:12px;margin:1rem 0}

/* V298-R6: established Online Büro title colour. */
body.plane-live .topbar h1{color:#dcc17d}

/* V298-R11: clear next steps in the existing green/gold office. */
.office-next{border:1px solid #65724a;border-radius:1rem;padding:clamp(1rem,2.4vw,1.6rem);background:linear-gradient(120deg,#18372c,#12251f);margin:1rem 0 1.5rem}
.office-next h3{font-size:clamp(1.3rem,3vw,1.7rem);margin:.35rem 0 .6rem}.office-next p{max-width:72ch;line-height:1.6}.office-next.complete{border-color:var(--ok)}.office-next.attention{border-color:var(--accent)}
.office-eyebrow{font-size:.8rem;color:var(--accent);font-weight:700;letter-spacing:.025em;margin:0 0 .35rem}.office-hint{color:var(--muted);font-size:.9rem;line-height:1.55}.office-feedback:empty{display:none}.office-feedback{line-height:1.5;overflow-wrap:anywhere}
.office-section{margin:2rem 0}.office-section>h3{font-size:1.3rem}.office-progress{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;list-style:none;padding:0;margin:1.5rem 0 0;counter-reset:office-step}.office-progress li{counter-increment:office-step;color:var(--muted);border-top:2px solid var(--line);padding:.7rem 0;font-size:.88rem}.office-progress li:before{content:counter(office-step) '. ';}.office-progress .current{border-color:var(--accent);color:var(--text)}.office-progress .done{border-color:var(--ok);color:var(--ok)}
.office-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.65rem;margin:1rem 0}.office-actions button{margin:0}.office-text-link{display:inline-block;font-weight:700;color:var(--accent);text-underline-offset:.2em;padding:.4rem 0;overflow-wrap:anywhere}.certificate .office-text-link{color:#135943}.office-state{font-weight:600;color:var(--muted)}.office-state.complete{color:var(--ok)}.office-state.attention{color:var(--accent)}
#profile label{display:grid;gap:.45rem;margin:1rem 0}#profile .office-check{display:flex;align-items:flex-start;gap:.65rem;line-height:1.5;color:var(--text)}#profile .office-check input{flex:0 0 auto;margin:.2rem 0 0;width:1.1rem;height:1.1rem}#profile input[type=text]{display:block;width:100%;min-width:0}#profile .will-text p{line-height:1.75}#profile .will-review h4{font-size:1.15rem;margin:.25rem 0 .6rem}#profile .will-review>p{line-height:1.55}#profile .will-review>button{margin:.5rem .5rem .2rem 0}#profile .will-history small{display:block;color:var(--muted);overflow-wrap:anywhere}#profile .will-history li{margin:.7rem 0}#profile .office-start{border:1px solid var(--accent);padding:1.1rem;border-radius:.8rem}.office-start>summary{font-weight:700}
button:disabled{opacity:.55;cursor:not-allowed}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:4px}nav [aria-current=page]{border-color:var(--accent);background:#27392a;color:#f1d995}.panel p{line-height:1.6}.panel input,.panel select{min-width:0;max-width:100%}.panel details{overflow-wrap:anywhere}
@media(max-width:620px){.office-progress{grid-template-columns:repeat(2,minmax(0,1fr))}.office-actions{align-items:stretch}.office-actions button{flex:1 1 100%}#profile .will-review{padding:1rem}.office-next{padding:1rem}.topbar{flex-direction:row;align-items:center}.phase{font-size:.8rem}.environment-banner{font-size:.72rem}nav{gap:.5rem}nav button{font-size:.85rem;padding:.75rem .8rem}}

/* V298-R13: account forms and 24-word recovery note. */
[hidden]{display:none!important}
#account-security>details{margin-top:1rem}
#account-security form{max-width:42rem;margin:1rem 0}
.recovery-words{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem 1.8rem;padding:1.2rem 1.2rem 1.2rem 2.8rem;border:1px solid var(--line);border-radius:.7rem;background:var(--bg);font-family:ui-monospace,monospace}
.recovery-words li{padding-left:.25rem;overflow-wrap:anywhere}
@media(max-width:480px){.recovery-words{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media print{.account-secret,#forgot-card{display:none!important}}

/* V298-R14: one visible process per tab, forms keep their existing DOM state. */
.process-tabs{display:flex;flex-wrap:wrap;gap:.45rem;padding:.5rem 0 1rem;margin-bottom:1rem;border-bottom:1px solid var(--line)}
.process-tabs .process-tab{background:var(--bg);color:var(--muted);border:1px solid var(--line);font-size:.9rem;font-weight:600;padding:.65rem .85rem;border-radius:.65rem}
.process-tabs .process-tab[aria-selected=true]{background:var(--accent);color:#142018;border-color:var(--accent)}
.process-tabs .process-tab:hover{color:var(--text);border-color:var(--accent)}
.process-tabs .process-tab[aria-selected=true]:hover{color:#142018}
.process-tabs .process-tab:focus-visible,[role=tabpanel]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
[role=tabpanel]{min-width:0}
#profile .process-panel>.office-section{margin-top:0;padding-top:0}
#profile-panel-password,#profile-panel-recovery{padding-top:.25rem}
#profile-panel-password form,#profile-panel-recovery form{max-width:42rem}
#profile-tools>details[role=tabpanel]{margin-top:0}
@media(max-width:620px){.process-tabs{gap:.4rem}.process-tabs .process-tab{font-size:.85rem;padding:.65rem .7rem}}
@media print{.process-tabs{display:none!important}}
