/* Role-oriented preparation, without a separate field checklist. */
.create-layout{display:block;max-width:1200px;margin:28px auto}.role-plan-form{padding:28px}.role-plan-form .panel-heading{margin-bottom:20px}.role-plan-form .account-section{border:0;padding:0}.role-plan-form .subheading{margin:20px 0 14px}.role-plan-form .shared-account{max-width:420px;margin:16px 0 20px}.role-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}.role-entry-card{border:1px solid #d9e3d9;border-radius:14px;background:#f9fbf7;padding:20px;display:flex;flex-direction:column;gap:17px;min-width:0}.role-entry-card[data-role-card=importer]{background:#f4f8fc;border-color:#d6e2eb}.role-entry-card[data-role-card=factory]{background:#fcfaf4;border-color:#e8e0cc}.role-entry-card>header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:7px}.role-account-summary{font-size:10px;color:var(--muted);overflow-wrap:anywhere}.role-entry-card label,.role-account-slot label{display:grid;gap:8px;font-size:12px}.role-entry-card input{background:white;min-height:44px;min-width:0;width:100%;font-size:13px}.role-entry-card .destination-section{border:0;padding:0;margin:0}.role-entry-card .country-label h3{font-size:12px;font-weight:500;margin-bottom:8px}.role-entry-card #country-hint{margin:5px 0 0;font-size:10px}.role-entry-card .currency-context{font-size:10px;margin:0;line-height:1.7}.role-entry-card .country-option{padding:9px 7px}.role-entry-card .country-option strong{font-size:12px}.role-entry-card .country-option small{font-size:10px}.role-entry-card .country-currency{padding:3px}.role-entry-card #country-search{font-size:12px}.role-code-hint{font-size:11px;color:var(--muted);line-height:1.8;margin:13px 0 0}.bank-accounts{border:1px solid var(--line);border-radius:9px;padding:14px;margin-top:16px}.bank-accounts summary,.auto-settings summary{cursor:pointer;font-size:12px;color:#58735e}.bank-accounts .form-grid{margin-top:14px}.role-plan-form .contract-field{grid-column:auto}.role-plan-form>.form-grid{grid-template-columns:1fr 1fr 1.3fr}.auto-settings{margin:20px 0 0}.auto-settings .auto-summary{margin-top:12px}.role-plan-form .mode-switch label{min-height:48px}.step-navigation{flex-wrap:wrap;gap:10px}.step-navigation>span{margin-right:auto;font-size:11px}.step-navigation button{white-space:normal}.member-top{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-left:auto;font-size:12px;flex-wrap:wrap}.member-top a{color:#3c6650;text-decoration:none}.member-top #member-button{background:#edf4e8;border:1px solid #d7e4d0;padding:9px 12px;border-radius:8px;overflow-wrap:anywhere;max-width:260px}.topbar{flex-wrap:wrap}.topbar nav{margin-left:auto}.topbar .brand{flex-shrink:0}
.account-layout,.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}.account-panel{padding:30px;min-width:0}.account-panel h2{font-size:25px;margin:16px 0;overflow-wrap:anywhere}.account-panel .primary{margin-top:14px}.member-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}.logout-button{display:block;margin-top:20px}.status-tag{display:inline-block;font-size:11px;padding:5px 9px;border-radius:20px}.status-tag.active{color:#286647;background:#e7f3e7}.status-tag.pending{color:#94651e;background:#fff2d8}.contact-card{padding:24px;border-radius:13px;border:1px solid #d3e2ce;background:#f2f8ef;min-width:0}.contact-free{display:inline-block;border-radius:5px;background:#dcebd7;color:#3e6b46;font-size:10px;padding:3px 7px;margin-bottom:10px}.contact-card h3{font-size:19px;line-height:1.6;margin-bottom:10px}.contact-row{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;font-size:12px;padding:10px 0;border-bottom:1px solid #dce6d7}.contact-row>span{color:var(--muted);min-width:30px}.contact-row strong{font-weight:500;overflow-wrap:anywhere}.contact-row button{margin-left:auto}.contact-name{font-size:12px;color:var(--muted);margin-bottom:10px}.contact-note{font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8;margin-top:14px}#member-dialog{width:min(480px,calc(100vw - 24px));margin:auto;padding:24px;max-height:90dvh;overflow:auto;box-shadow:0 18px 70px #173b2930}#member-dialog .primary{position:static}.member-dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.member-dialog-heading h2{font-size:22px}.member-dialog-heading button{font-size:12px}.member-form{display:grid;gap:15px;margin-top:20px}.member-form label{display:grid;gap:8px;font-size:12px}.member-form input,.member-form textarea{width:100%;min-width:0;font-size:14px;min-height:44px}.member-form label.check{display:flex;align-items:center;gap:8px}.member-form .check input{width:16px;min-height:16px}.member-form .error{font-size:12px}.auth-switch{display:block;margin:18px auto 0;font-size:12px}#member-dialog .contact-card{margin-top:18px}.form-message{min-height:18px;font-size:12px;line-height:1.7}.form-message.success{color:#2f704a}.member-form .primary{justify-self:start;min-width:130px}#member-dialog .member-form .primary{width:100%}.admin-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:20px}.stat-card{padding:24px;display:grid;gap:10px}.stat-card>span{font-size:12px;color:var(--muted)}.stat-card strong{font-size:34px;line-height:1.2;font-variant-numeric:tabular-nums;color:#2e5f48}.admin-panel{padding:24px;min-width:0;margin-bottom:20px}.admin-panel h2{font-size:17px;margin-bottom:14px}.admin-panel details>summary{font-size:12px;cursor:pointer}.registration-chart{display:flex;align-items:end;gap:6px;height:205px;overflow:auto;padding:12px 0 0}.chart-column{flex:1;min-width:18px;display:flex;flex-direction:column;justify-content:end;align-items:center;gap:6px;border-radius:4px}.chart-bar{width:100%;background:#79a68a;border-radius:4px 4px 0 0}.chart-column:hover .chart-bar,.chart-column:focus .chart-bar{background:#316848}.chart-column small,.bar-value{font-size:10px;color:#64776b}.bar-value{font-variant-numeric:tabular-nums}.code-batch textarea{margin:10px 0;width:100%;font-family:monospace;font-size:14px;line-height:1.8}.admin-search{display:flex;gap:10px;max-width:450px;margin:16px 0}.admin-search input{min-width:0;flex:1}.member-table-scroll{max-width:100%;overflow:auto}.member-table{width:100%;border-collapse:collapse;font-size:12px;text-align:left;white-space:nowrap}.member-table th{background:#f4f7f0;font-weight:500;color:#607163}.member-table th,.member-table td{padding:13px 12px;border-bottom:1px solid #e5eade}.member-table td:first-child{white-space:normal;overflow-wrap:anywhere;max-width:240px}.member-table .text-button{font-size:12px}.member-actions .secondary{display:inline-block}#admin-content[aria-busy=true]{opacity:.65;pointer-events:none}.member-top a:focus-visible,.chart-column:focus-visible{outline:2px solid #4b8866;outline-offset:3px}
@media(max-width:1000px){.role-cards{gap:10px}.role-entry-card{padding:14px}.topbar nav{order:3;flex-basis:100%;justify-content:flex-start}.role-entry-card #country-search{font-size:11px}.role-plan-form{padding:20px}.step-navigation>span{display:none}}
@media(max-width:700px){.role-cards,.account-layout,.admin-grid{grid-template-columns:minmax(0,1fr)}.role-plan-form>.form-grid{grid-template-columns:1fr 1fr}.role-plan-form .contract-field{grid-column:1/-1}.role-plan-form .shared-account{max-width:none}.role-entry-card{padding:18px}.role-entry-card #country-search{font-size:13px}.role-entry-card .currency-context{font-size:11px}.create-layout{margin:20px auto}.role-plan-form{padding:16px}.role-plan-form .panel-heading h2{font-size:22px}.role-plan-form .subheading{gap:10px}.role-code-hint{font-size:11px}.member-top{gap:8px;font-size:11px;max-width:58%}.member-top #member-button{padding:7px 9px}.topbar nav{overflow:auto;flex-wrap:nowrap;justify-content:flex-start}.topbar nav a{flex-shrink:0}.admin-stats{gap:8px}.stat-card{padding:14px 10px}.stat-card strong{font-size:28px}.stat-card>span{font-size:10px}.admin-panel,.account-panel{padding:18px}.registration-chart{gap:6px}.contact-card{padding:18px}.step-navigation button{font-size:11px;flex:1;padding:10px 7px}.step-navigation #step-next{flex-basis:100%}.member-dialog-heading h2{font-size:20px}}
.preparation-errors{background:#fff0ef;border:1px solid #e7a59d;border-radius:8px;padding:12px 15px;margin:15px 0;color:#a33125;font-size:13px;line-height:1.7}
#plan-form .input-invalid{border:2px solid #cb4234;background:#fff1f0;box-shadow:0 0 0 2px #cb423412}
#plan-form .input-invalid:focus{outline:2px solid #e7b0a8;outline-offset:2px}
.field-error-text{display:block;font-size:11px;line-height:1.6;color:#b12f24;font-weight:500;margin-top:4px}
.role-entry-card.has-errors{border-color:#d98b83}.role-entry-card{scroll-margin-top:20px}
.account-memory-note{font-size:11px;line-height:1.7;color:#3f7451;margin-top:auto;padding-top:7px;border-top:1px dashed #cddccd}
.advanced summary .optional-label{display:inline-block!important;font-size:11px;font-weight:400;color:#819080;margin-left:9px!important}
.contact-qr{display:block;width:min(100%,250px);height:auto;aspect-ratio:auto;object-fit:contain;background:white;border:1px solid #dce5d8;border-radius:8px;padding:9px;margin:18px auto 8px}
.qr-caption{font-size:12px;text-align:center;color:#507358;margin:0 0 14px}
.member-form input[type=file]{padding:10px;font-size:12px;background:#f7faf4;border:1px solid #d6e0ce;border-radius:8px}
.member-form label>small{font-size:11px;color:#75816f;line-height:1.7}
/* Compact, single-screen contact dialogs. */
#member-dialog.compact-dialog{width:min(500px,calc(100vw - 24px));padding:22px;max-height:calc(100dvh - 24px);overflow:visible}
.compact-dialog .member-dialog-heading{position:relative;justify-content:center;padding:0 38px;margin-bottom:16px;min-height:28px;text-align:center}
.compact-dialog .member-dialog-heading h2{font-size:20px;line-height:1.4;overflow-wrap:anywhere}
.compact-dialog .member-dialog-heading button{position:absolute;right:0;top:0;padding:5px 0;font-size:11px}
.compact-contact{display:flex;flex-direction:column;align-items:center;gap:12px;min-width:0}
.compact-contact-info{width:100%;min-width:0}.compact-contact-info:empty{display:none}
.compact-qr{display:block;width:clamp(92px,22dvh,160px);height:clamp(92px,22dvh,160px);object-fit:contain;background:white;border-radius:8px}
.compact-body{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.6;text-align:center;margin:0 0 10px}
.compact-contact .contact-name{text-align:center;margin:0 0 7px}.compact-contact .contact-row{display:grid;grid-template-columns:32px minmax(0,1fr) 30px;gap:7px;padding:7px 0;font-size:12px;line-height:1.4}
.compact-contact .contact-row button{padding:0;font-size:11px}.compact-contact .hint{text-align:center;margin:0;line-height:1.6;font-size:12px}
.activation-dialog .member-form{grid-template-columns:minmax(0,1fr) 94px;align-items:end;gap:8px;margin-top:18px}
#member-dialog.activation-dialog .member-form .primary{width:94px;min-width:0;min-height:44px;padding:9px}
.activation-dialog .member-form label{gap:5px}.activation-dialog .member-form .error{grid-column:1/-1;margin:0;line-height:1.5}
.auth-dialog .member-form{margin-top:0}.auth-dialog .error button{margin-left:12px;font-size:12px}
.assistance-button{font-size:12px;border:1px solid #e1b56d;background:#fff2d7;color:#81521c;border-radius:9px;padding:9px 13px;animation:assistance-breathe 3s ease-in-out infinite;white-space:nowrap}
@keyframes assistance-breathe{0%,100%{box-shadow:0 0 0 0 #d3993e12;background:#fff2d7}50%{box-shadow:0 0 0 5px #d3993e25;background:#ffe5b2}}
@media(prefers-reduced-motion:reduce){.assistance-button{animation:none}}
.support-preview{border:1px solid #d9e5d3;border-radius:12px;padding:20px;background:#f7faf4}.support-preview h3{text-align:center;font-size:19px;margin-bottom:16px}
@media(max-height:690px){#member-dialog.compact-dialog{padding:16px}.compact-dialog .member-dialog-heading{margin-bottom:12px}.compact-qr{width:110px;height:110px}.compact-contact{gap:8px}.compact-contact .contact-row{padding:5px 0}.compact-body{font-size:12px;line-height:1.45;margin-bottom:6px}.activation-dialog .member-form{margin-top:12px}}
@media(max-height:500px) and (min-width:550px){#member-dialog.compact-dialog{width:min(620px,calc(100vw - 24px))}.compact-contact:has(.compact-qr){flex-direction:row;align-items:center;gap:18px}.compact-qr{flex-shrink:0}.compact-dialog .member-dialog-heading h2{font-size:18px}}
@media(max-width:700px){.member-top{max-width:none}.member-top .assistance-button{font-size:11px;padding:7px 9px}}
.compact-contact .compact-body{white-space:normal}
#member-dialog.compact-dialog.dense-dialog{padding:14px}.dense-dialog .member-dialog-heading{margin-bottom:8px}.dense-dialog .member-dialog-heading h2{font-size:16px;line-height:1.3}.dense-dialog .compact-qr{width:88px;height:88px}.dense-dialog .compact-contact{gap:6px}.dense-dialog .compact-body,.dense-dialog .contact-name{font-size:11px;line-height:1.3;margin-bottom:4px}.dense-dialog .contact-row{font-size:11px;line-height:1.3;padding:4px 0}.dense-dialog .member-form{margin-top:10px;gap:6px}
#member-dialog.compact-dialog.dense-dialog-small{padding:10px}.dense-dialog-small .compact-qr{width:64px;height:64px}.dense-dialog-small .member-dialog-heading{margin-bottom:5px}.dense-dialog-small .member-dialog-heading h2{font-size:14px}.dense-dialog-small .compact-body,.dense-dialog-small .contact-name,.dense-dialog-small .contact-row{font-size:10px;line-height:1.2}.dense-dialog-small .contact-row{padding:2px 0}.dense-dialog-small .member-form{margin-top:6px}.dense-dialog-small .member-form label{gap:3px}
/* Give a lone QR image its own balanced contact layout. */
#member-dialog.compact-dialog:has(.qr-contact-only){width:min(400px,calc(100vw - 28px));padding:26px}
.compact-dialog:has(.qr-contact-only) .member-dialog-heading{margin-bottom:22px;padding:0 24px}
.compact-dialog:has(.qr-contact-only) .member-dialog-heading h2{font-size:19px}
.compact-contact.qr-contact-only{padding:0 0 4px;gap:14px}
.qr-contact-only .compact-qr{width:min(240px,100%);height:auto;max-height:34dvh;aspect-ratio:1;object-fit:contain;padding:12px;border:1px solid #e0e8dc;border-radius:16px;background:#fff;box-shadow:0 5px 20px #234b2d08}
.activation-dialog:has(.qr-contact-only) .member-form{margin-top:22px;padding-top:18px;border-top:1px solid #e9eee5}
.contact-card.qr-contact-only{text-align:center;padding:28px;background:linear-gradient(160deg,#f7faf4,#eff6eb)}
.contact-card.qr-contact-only .contact-qr{width:min(100%,260px);padding:14px;border-radius:16px;box-shadow:0 6px 24px #234b2d08;margin:20px auto 14px}
.contact-card.qr-contact-only .qr-caption{margin-bottom:0;color:#6c7b67}.contact-card.qr-contact-only .contact-note{text-align:center}
.support-preview:has(.qr-contact-only){padding:26px}.support-preview:has(.qr-contact-only) h3{margin-bottom:22px}
@media(max-width:440px){#member-dialog.compact-dialog:has(.qr-contact-only){padding:22px}.compact-dialog:has(.qr-contact-only) .member-dialog-heading{padding:0 22px}.compact-dialog:has(.qr-contact-only) .member-dialog-heading h2{font-size:18px}.qr-contact-only .compact-qr{width:min(220px,100%)}.contact-card.qr-contact-only{padding:22px}}
@media(max-height:500px){#member-dialog.compact-dialog:has(.qr-contact-only){padding:16px}.compact-dialog:has(.qr-contact-only) .member-dialog-heading{margin-bottom:12px}.compact-contact.qr-contact-only{justify-content:center}.qr-contact-only .compact-qr{width:min(160px,100%);max-height:36dvh;padding:8px;border-radius:12px}.activation-dialog:has(.qr-contact-only) .member-form{margin-top:12px;padding-top:12px}}
#member-dialog.compact-dialog.dense-dialog:has(.qr-contact-only){padding:14px}.dense-dialog:has(.qr-contact-only) .member-dialog-heading{margin-bottom:8px}.dense-dialog .qr-contact-only .compact-qr{width:88px;height:88px;padding:6px}.dense-dialog-small .qr-contact-only .compact-qr{width:64px;height:64px;padding:4px}.dense-dialog.activation-dialog:has(.qr-contact-only) .member-form{margin-top:10px;padding-top:10px}
