/* Personal document list, with all answers and checkboxes kept in the page. */
.acl {
  --acl-ink: #071033;
  --acl-muted: #4b5563;
  --acl-blue: #2251ff;
  --acl-link: #1a42ca;
  --acl-line: #d8dfeb;
  padding-bottom: clamp(2rem, 5vw, 4rem);
  color: var(--acl-ink);
  overflow-wrap: anywhere;
}
.acl [hidden] { display: none !important; }
.acl-card, .acl-sources, .acl-related {
  width: min(58rem, calc(100% - 2rem));
  margin: clamp(1rem, 2.5vw, 1.6rem) auto 0;
  border: 1px solid var(--acl-line);
  border-radius: 1.25rem;
  background: white;
}
.acl-card, .acl-sources { padding: clamp(1rem, 3.3vw, 2.15rem); }
.acl-card { box-shadow: 0 12px 38px -25px #07103345; }
.acl-card h2, .acl-sources h2, .acl-related h2 {
  margin: .42rem 0 .65rem;
  color: var(--acl-ink);
  font: 700 clamp(1.38rem, 2.75vw, 1.95rem)/1.18 var(--display);
  letter-spacing: -.035em;
  scroll-margin-block-start: 6rem;
}
.acl-card h3 { margin: 0 0 .5rem; font: 680 1.15rem/1.24 var(--display); }
.acl-card p, .acl-sources p, .acl-related p, .acl-list label { line-height: 1.55; }
.acl-card p:not(.acl-kicker,.acl-error), .acl-sources p, .acl-related p { color: var(--acl-muted); }
.acl-card .acl-kicker {
  display:inline-block; margin:0; color:#294993;
  font:650 .76rem/1.4 var(--body);
}
.acl-progress {
  display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:clamp(.35rem,2vw,1rem);
  list-style:none; margin:0 0 clamp(1rem,2.3vw,1.5rem); padding:0;
  counter-reset:step;
}
.acl-progress li {
  display:flex; align-items:center; gap:.5rem; padding:0 0 .6rem; min-width:0;
  border-bottom:2px solid #dbe2ed; color:#536178; font:570 .81rem/1.25 var(--body);
}
.acl-progress span {
  display:grid; place-items:center; width:1.5rem; height:1.5rem; flex:none;
  border:1px solid #c8d0de; border-radius:50%; font-weight:670; font-variant-numeric:tabular-nums;
}
.acl-card[data-step="start"] .acl-progress li:first-child,
.acl-card[data-step="context"] .acl-progress li:nth-child(2),
.acl-card[data-step="result"] .acl-progress li:last-child { color:#183db8; border-bottom-color:var(--acl-blue); font-weight:680; }
.acl-card[data-step="start"] .acl-progress li:first-child span,
.acl-card[data-step="context"] .acl-progress li:nth-child(2) span,
.acl-card[data-step="result"] .acl-progress li:last-child span { color:white; background:var(--acl-blue); border-color:var(--acl-blue); }
.acl-choices {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.55rem;
  min-width:0; margin:1.15rem 0; padding:0; border:0;
}
.acl-choices legend, .acl-fields label { color:var(--acl-ink); font:630 .96rem/1.42 var(--body); }
.acl-choices legend { margin-bottom:.55rem; padding:0; }
.acl-choices label {
  display:flex; align-items:center; gap:.65rem; min-width:0; min-height:48px;
  padding:.66rem .85rem; border:1px solid #a8b5ca; border-radius:.8rem; background:#fff;
  font:540 .94rem/1.4 var(--body); cursor:pointer;
}
.acl-choices label:has(input:checked) { border-color:var(--acl-blue); color:#18388c; background:#eef2ff; box-shadow: inset 0 0 0 1px #2251ff; }
.acl-choices label:has(input:focus-visible) { outline:3px solid #2251ff; outline-offset:3px; }
.acl input[type="radio"], .acl input[type="checkbox"] { width:1.06rem; height:1.06rem; margin:0; flex:none; accent-color:var(--acl-blue); }
.acl :is(select,button,a,h2,summary):focus-visible { outline:3px solid var(--acl-blue); outline-offset:3px; }
.acl-choices.acl-benefits { grid-template-columns:1fr; }
.acl-error { color:#9a2929; font-weight:620; }
.acl-error:not(:empty) { margin-bottom:.8rem; }
.acl-actions { display:flex; align-items:center; flex-wrap:wrap; gap:.65rem; }
.acl :is(button,a).acl-primary, .acl :is(button,a).acl-secondary {
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem; min-height:48px;
  border:1px solid transparent; border-radius:99px; padding:.69rem 1.2rem;
  font:620 .94rem/1.3 var(--body); text-align:center; cursor:pointer; text-decoration:none;
}
.acl :is(button,a).acl-primary { background:linear-gradient(110deg,#071033,#0a1a4d); color:white; box-shadow:0 3px 9px #07103316; }
.acl :is(button,a).acl-secondary { border-color:#a8b5ca; background:white; color:var(--acl-ink); }
.acl :is(button,a).acl-primary:hover { background:#152755; }
.acl :is(button,a).acl-secondary:hover { border-color:#758bb6; background:#f4f7ff; }
.acl-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin:1.2rem 0; }
.acl-fields label { display:flex; flex-direction:column; justify-content:space-between; gap:.45rem; min-width:0; }
.acl-fields select { width:100%; min-width:0; min-height:48px; padding:.55rem .6rem; border:1px solid #92a0b7; border-radius:.65rem; color:var(--acl-ink); background:#fcfdff; font:450 1rem/1.4 var(--body); }
.acl-summary {
  margin:.75rem 0 1rem; padding:.8rem .95rem; border:1px solid #cbd7f5; border-radius:.85rem;
  background:#f0f4ff; font-weight:620;
}
.acl-card .acl-summary { color:#203d80; }
#acl-groups { display:grid; gap:1rem; }
#acl-groups section { padding:clamp(.95rem,2.25vw,1.35rem); border:1px solid var(--acl-line); border-radius:1rem; }
#acl-groups section > p { font-size:.87rem; }
.acl-list { padding:0; margin:.6rem 0 0; list-style:none; }
.acl-list li { border-top:1px solid #e1e6ef; }
.acl-list label { display:flex; align-items:flex-start; gap:.7rem; min-height:44px; padding:.68rem .1rem; color:#354159; font-size:.95rem; cursor:pointer; }
.acl-list input[type="checkbox"] { margin-top:.17rem; }
.acl-list label:has(input:checked) { color:#1f3b7c; background:#f2f5ff; }
.acl-doc-help { margin:0 0 .6rem 1.85rem; font-size:.91rem; }
.acl-doc-help summary { width:fit-content; max-width:100%; padding:.35rem 0; color:var(--acl-link); font-weight:625; cursor:pointer; }
.acl-doc-help[open] { padding:0 .8rem .8rem; border-left:2px solid #cbd7f5; background:#f5f8ff; }
.acl-doc-help strong { display:block; margin:.3rem 0; color:var(--acl-ink); }
.acl-doc-help p { margin:0 0 .45rem; }
.acl-doc-help a { text-decoration:underline; text-underline-offset:.13em; }
.acl-disclaimer { margin:1rem 0; }
#acl-portal { margin-top:1.15rem; padding:clamp(1rem,2vw,1.35rem); border-radius:1rem; background:#f3f6fc; }
#acl-portal .acl-actions { margin-top:.8rem; }
.acl-result-actions .acl-secondary { font-size:.87rem; }
.acl-basics p + p, .acl-sources p + p { margin-top:.75rem; }
.acl-related { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; padding:clamp(1rem,2.6vw,1.65rem); background:#f2f5fd; }
.acl-related h2 { font-size:1.18rem; margin:0 0 .3rem; }
.acl-related p { font-size:.9rem; }
.acl-sources ul { margin:.85rem 0 0; padding-left:1.2rem; }
.acl-sources li + li { margin-top:.5rem; }
@media (max-width:620px) {
  .acl-card, .acl-related, .acl-sources { width:calc(100% - 2rem); }
  .acl-fields { grid-template-columns:minmax(0,1fr); }
  .acl-actions > *, .acl #acl-next { width:100%; }
  .acl-choices label { padding:.62rem .65rem; gap:.48rem; }
  .acl-progress li { gap:.35rem; }
}
@media (max-width:370px) {
  .acl-progress li { font-size:.74rem; }
  .acl-choices label { font-size:.88rem; }
}
@media (forced-colors:active) {
  .acl-choices label:has(input:checked), .acl-list label:has(input:checked) { outline:2px solid Highlight; outline-offset:-2px; }
  .acl-card .acl-primary { border-color:ButtonText; }
}
@media print {
  @page { margin:16mm; }
  .devis-header, .footer, .consent, .skip, .breadcrumbs,
  .acl .page-intro, .acl-progress, #acl-start, #acl-context, #acl-portal, .acl-result-actions, .acl-related { display:none !important; }
  .acl { padding:0; font-size:10.5pt; }
  .acl-card, .acl-sources { width:100%; padding:0; margin:0; border:0; border-radius:0; background:white; box-shadow:none; }
  .acl-card .acl-kicker { font-size:9pt; color:black; }
  .acl-card h2, .acl-sources h2 { font-size:17pt; margin:0 0 5pt; }
  #acl-groups { display:block; }
  #acl-groups section { padding:0; margin:10pt 0; border:0; }
  .acl-summary { padding:4pt 0; border:0; background:none; }
  .acl-card h2, .acl-card h3, .acl-sources h2 { break-after:avoid; }
  .acl-list li { break-inside:avoid; }
  .acl-list label { min-height:0; color:black; padding:4pt 0; font-size:10pt; }
  .acl-list label:has(input:checked) { color:black; background:none; }
  .acl-list input { print-color-adjust:exact; }
  .acl-doc-help, .acl-doc-help[open] { margin:.15rem 0 .5rem 1.6rem; padding:0; border:0; background:none; font-size:9pt; }
  .acl-doc-help summary { display:none; }
  .acl-doc-help a::after { content:" (" attr(href) ")"; font-size:8pt; overflow-wrap:anywhere; }
  #acl-study-guide a::after { content:" (alocatie-germania.de" attr(href) ")"; font-size:8pt; overflow-wrap:anywhere; }
  .acl-sources { margin-top:12pt; }
}
