/* =============================================================
   ENS Immigration Advice — tools.css
   Styling for the shared guide-only tool engine (Visa Route Finder,
   and — Phase 7 — Framework Checker). Reuses ENS tokens. No pass/fail,
   no red/green, no score styling by design. Namespaced markup is
   emitted by immigration-tool-engine.js under .ens-tool with .tool-*
   region/element classes.
   ============================================================= */
.rf-tool{background:var(--cream);border:1px solid var(--line);border-radius:8px;padding:24px 26px;margin:18px 0;max-width:760px;}

.ens-tool{}

/* progress */
.tool-progress{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--brass);margin:0 0 14px;min-height:14px;}

/* question */
.tool-fieldset{border:0;margin:0;padding:0;}
.tool-legend{display:block;font-family:'Bai Jamjuree',sans-serif;font-size:17px;font-weight:600;color:var(--ink);line-height:1.35;padding:0;margin:0 0 6px;}
.tool-legend:focus-visible{outline:2px solid var(--brass);outline-offset:3px;}
.tool-help{font-size:12.5px;color:var(--slate-light);margin:0 0 14px;line-height:1.5;}
.tool-options{display:flex;flex-direction:column;gap:8px;}
.tool-option{display:flex;align-items:flex-start;gap:10px;width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--ink);font-family:'Bai Jamjuree',sans-serif;font-size:14px;line-height:1.4;cursor:pointer;transition:border-color .15s ease,background-color .15s ease;}
.tool-option:hover{border-color:var(--brass);background:var(--paper-dim);}
.tool-option input[type="radio"]{margin:2px 0 0;flex:0 0 auto;accent-color:var(--brass);}
.tool-option:has(input:checked){border-color:var(--brass);background:var(--paper-dim);box-shadow:inset 0 0 0 1px var(--brass);}
.tool-option:focus-within{outline:2px solid var(--brass);outline-offset:2px;}
.tool-option-label{flex:1 1 auto;}

/* actions */
.tool-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:18px;}
.tool-actions .btn{margin:0;}
.tool-restart-link{background:none;border:none;padding:4px 2px;margin-left:auto;font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--slate);cursor:pointer;text-transform:uppercase;letter-spacing:0.04em;}
.tool-restart-link:hover{color:var(--brass);}
.tool-restart-link:focus-visible{outline:2px solid var(--brass);outline-offset:2px;}

/* result — neutral, no verdict/colour coding */
.tool-result-region{margin-top:6px;}
.tool-result-region:focus-visible{outline:2px solid var(--brass);outline-offset:3px;}
.tool-result-group{margin:0 0 16px;}
.tool-result-heading{font-family:'IBM Plex Mono',monospace;font-size:11px;text-transform:uppercase;letter-spacing:0.05em;color:var(--brass);margin:0 0 8px;font-weight:600;}
.tool-result-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px;}
.tool-result-item{border-left:2px solid var(--brass);padding:2px 0 2px 12px;}
.tool-result-name{display:inline-block;font-family:'Bai Jamjuree',sans-serif;font-size:14.5px;font-weight:600;color:var(--ink);margin:0 0 3px;}
a.tool-result-name{color:var(--brass);text-decoration:none;}
a.tool-result-name:hover{text-decoration:underline;}
.tool-result-note{font-size:12.5px;color:var(--slate);margin:0;line-height:1.5;}
.tool-result-cards{margin:0;}
.tool-result-cards .info-card .link{margin-top:auto;}
.tool-result-cards .info-card .link-secondary{margin-top:6px;font-size:12.5px;color:var(--slate);font-weight:500;}
.tool-result-cards .info-card .link-secondary:hover{color:var(--brass);}
.tool-result-links{list-style:none;margin:0;padding:0;font-size:13px;line-height:1.9;}
.tool-result-links a{color:var(--brass);font-weight:600;}
.tool-issue-plain{color:var(--slate);}
.tool-issue-plain::before{content:"•";color:var(--brass);font-weight:700;margin-right:8px;}
.tool-result-plain{margin:0;padding-left:18px;}
.tool-result-plain li{font-size:13px;color:var(--slate);margin:0 0 4px;line-height:1.5;}
.tool-result-empty p{font-size:13.5px;color:var(--slate);margin:0;line-height:1.6;}
.tool-result-boundary{background:var(--paper-dim,#faf8f4);border:1px solid var(--line);border-radius:5px;padding:12px 14px;margin:2px 0 0;}
.tool-result-boundary p{font-size:12.5px;color:var(--slate);margin:0;line-height:1.55;}
.tool-disclaimer{font-size:11.5px;color:var(--slate-light);margin:16px 0 0;border-top:1px solid var(--line);padding-top:10px;line-height:1.55;}
.tool-config-error{font-size:13.5px;color:var(--slate);margin:0;line-height:1.6;}

/* "What your result means" list */
.rf-meaning{margin:14px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:10px;}
.rf-meaning li{font-size:14px;color:var(--slate);line-height:1.55;max-width:66ch;}

/* Framework Checker */
.fc-group{margin:0 0 14px;}
.fc-group-label{font-family:'IBM Plex Mono',monospace;font-size:11px;text-transform:uppercase;letter-spacing:0.05em;color:var(--brass);margin:0 0 8px;font-weight:600;}
.fc-result-head{border-left:2px solid var(--brass);padding:2px 0 2px 12px;margin:0 0 14px;}
.fc-kicker{font-family:'IBM Plex Mono',monospace;font-size:10.5px;text-transform:uppercase;letter-spacing:0.05em;color:var(--slate-light);margin:0;}
.fc-framework-name{font-family:'Bai Jamjuree',sans-serif;font-size:18px;font-weight:600;color:var(--ink);margin:0 0 8px;}
.fc-focus-name{font-family:'Bai Jamjuree',sans-serif;font-size:15px;font-weight:600;color:var(--brass);margin:0;}
.fc-lead{font-size:13.5px;color:var(--slate);line-height:1.55;margin:0 0 14px;max-width:66ch;}

@media (max-width:600px){
  .rf-tool{padding:18px 16px;}
  .tool-restart-link{margin-left:0;}
}

/* ============================================================
   Residence Absence Calculator (.rac-)
   ============================================================ */
.rac-form{margin:0;}
.rac-privacy{font-size:12.5px;color:var(--sage);background:var(--paper-dim);border:1px solid var(--line);border-radius:var(--radius);padding:8px 12px;margin:0 0 20px;line-height:1.5;}
.rac-field{margin:0 0 18px;}
.rac-label{display:block;font-family:'Bai Jamjuree',sans-serif;font-weight:600;font-size:14.5px;color:var(--ink);margin:0 0 4px;}
.rac-help{font-size:12.5px;color:var(--slate-light);margin:0 0 8px;line-height:1.5;max-width:70ch;}
.rac-input{width:100%;max-width:420px;box-sizing:border-box;font-family:inherit;font-size:15px;color:var(--slate);background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;line-height:1.3;}
.rac-input:focus-visible{outline:2px solid var(--brass);outline-offset:1px;border-color:var(--brass);}
select.rac-input{max-width:520px;cursor:pointer;}

.rac-trips{border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin:0 0 20px;}
.rac-trips legend{font-family:'Bai Jamjuree',sans-serif;font-weight:700;font-size:15px;color:var(--ink);padding:0 6px;}
.rac-hint{font-size:12.5px;color:var(--slate-light);margin:0 0 14px;line-height:1.5;}
.rac-empty{font-size:13px;color:var(--slate-light);font-style:italic;margin:0 0 12px;}
.rac-trip-list{display:flex;flex-direction:column;gap:14px;margin:0 0 12px;}
.rac-trip{border:1px solid var(--line);border-left:3px solid var(--sage);border-radius:var(--radius);padding:14px;background:var(--paper);}
.rac-trip-head{display:flex;justify-content:space-between;align-items:center;margin:0 0 10px;}
.rac-trip-n{font-family:'IBM Plex Mono',monospace;font-size:11px;text-transform:uppercase;letter-spacing:0.05em;color:var(--brass);font-weight:600;}
.rac-trip-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 10px;}
.rac-mini{display:flex;flex-direction:column;}
.rac-mini-label{font-size:12px;color:var(--slate);font-weight:600;margin:0 0 4px;}
.rac-inline{display:flex;align-items:flex-start;gap:8px;margin:0 0 10px;}
.rac-inline label{font-size:13px;color:var(--slate);line-height:1.4;}
.rac-check{margin-top:3px;width:16px;height:16px;flex:none;accent-color:var(--brass);}
.rac-trip-ctrls{display:flex;gap:16px;margin-top:6px;}
.rac-link{background:none;border:none;padding:0;font-family:inherit;font-size:12.5px;color:var(--sage);text-decoration:underline;cursor:pointer;}
.rac-link:hover{color:var(--ink);}
.rac-link-danger{color:var(--brass-dark);}

.rac-actions,.rac-cta{display:flex;flex-wrap:wrap;gap:12px;margin:6px 0 0;}
.rac-cta{margin-top:22px;}
.rac-btn{font-family:'Bai Jamjuree',sans-serif;font-weight:600;font-size:14.5px;border-radius:var(--radius);padding:11px 20px;cursor:pointer;border:1px solid transparent;text-decoration:none;display:inline-block;line-height:1.2;}
.rac-btn-primary{background:var(--brass);color:#fff;border-color:var(--brass);}
.rac-btn-primary:hover{background:var(--brass-dark);border-color:var(--brass-dark);}
.rac-btn-ghost{background:transparent;color:var(--ink);border-color:var(--line);}
.rac-btn-ghost:hover{border-color:var(--ink);}
.rac-btn-add{background:var(--paper-dim);color:var(--ink);border-color:var(--line);font-size:13.5px;padding:9px 16px;}
.rac-btn-add:hover{border-color:var(--sage);}
.rac-btn:focus-visible{outline:2px solid var(--brass);outline-offset:2px;}
.rac-err,.rac-config-error{font-size:14px;color:var(--slate);line-height:1.6;}

/* results */
.rac-results{margin:26px 0 0;scroll-margin-top:80px;}
.rac-results:focus{outline:none;}
.rac-summary{border:1px solid var(--line);border-top:4px solid var(--sage);border-radius:var(--radius);padding:20px;margin:0 0 22px;background:var(--cream);}
.rac-summary.rac-ok{border-top-color:var(--sage);}
.rac-summary.rac-warn{border-top-color:#C8912F;}
.rac-summary.rac-stop{border-top-color:var(--brass);}
.rac-summary.rac-review{border-top-color:#3E6DA3;}
.rac-summary.rac-info{border-top-color:var(--slate-light);}
.rac-summary-badge{display:inline-block;font-family:'Bai Jamjuree',sans-serif;font-weight:700;font-size:15px;letter-spacing:0.01em;padding:5px 12px;border-radius:var(--radius);margin:0 0 12px;}
.rac-ok .rac-summary-badge{background:#E6EFE9;color:#2E5A48;}
.rac-warn .rac-summary-badge{background:#FBF1DA;color:#8A6412;}
.rac-stop .rac-summary-badge{background:#F7E2DC;color:#9A3D2A;}
.rac-review .rac-summary-badge{background:#E3ECF6;color:#2C517D;}
.rac-info .rac-summary-badge{background:var(--paper-dim);color:var(--slate);}
.rac-summary-route,.rac-summary-window{font-size:14px;color:var(--slate);margin:0 0 6px;}
.rac-stats{display:flex;flex-wrap:wrap;gap:22px;margin:14px 0;}
.rac-stat{display:flex;flex-direction:column;}
.rac-stat-n{font-family:'Bai Jamjuree',sans-serif;font-weight:700;font-size:28px;color:var(--ink);line-height:1;}
.rac-stat-l{font-size:12px;color:var(--slate-light);margin-top:4px;max-width:16ch;}
.rac-guardrail{font-size:12.5px;color:var(--slate);background:var(--paper-dim);border-radius:var(--radius);padding:10px 12px;margin:12px 0 0;line-height:1.5;}

.rac-block{margin:0 0 22px;}
.rac-block-h{font-family:'Bai Jamjuree',sans-serif;font-size:16px;font-weight:700;color:var(--ink);margin:0 0 10px;padding-bottom:6px;border-bottom:1px solid var(--line);}
.rac-review-block .rac-block-h{color:#2C517D;border-bottom-color:#C8D7E8;}
.rac-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px;}
.rac-list li{font-size:13.5px;color:var(--slate);line-height:1.55;max-width:74ch;}
.rac-note{font-size:12.5px;color:var(--slate-light);font-style:italic;margin:10px 0 0;line-height:1.5;}
.rac-neg{color:var(--brass-dark);}
.rac-meta-line{font-size:12px;color:var(--slate-light);margin:0 0 10px;line-height:1.5;}
.rac-sources li{max-width:none;}

.rac-table{width:100%;border-collapse:collapse;font-size:13px;margin:0;}
.rac-table th,.rac-table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);color:var(--slate);vertical-align:top;}
.rac-table th{font-family:'IBM Plex Mono',monospace;font-size:10.5px;text-transform:uppercase;letter-spacing:0.04em;color:var(--slate-light);font-weight:600;}
.rac-row-breach td{background:#F9E7E1;}
.rac-row-invalid td{background:#FBF1DA;}
.rac-table-wrap{overflow-x:auto;}

@media (max-width:600px){
  .rac-trip-grid{grid-template-columns:1fr;}
  .rac-input,select.rac-input{max-width:none;}
  .rac-stats{gap:16px;}
  .rac-stat-n{font-size:24px;}
  .rac-table{font-size:12px;}
  .rac-table th,.rac-table td{padding:6px 7px;}
}

@media print{
  header,.breadcrumb,.trust-strip,.page-hero,.final-cta,footer,.back-to-top,.rac-form,.toc,.toc-mobile,.rac-cta{display:none !important;}
  .rac-results{margin:0;}
  .rac-summary,.rac-trip,.rac-block{break-inside:avoid;}
}

/* Financial Requirement calculator — conditional reveal blocks */
.frc-toggle{border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;margin:0 0 12px;background:var(--cream);}
.frc-block{margin:12px 0 2px;padding:12px 0 2px;border-top:1px dashed var(--line);}

/* ============ Citizenship Checker (/tools/citizenship-checker/) ============ */
.cz-head{margin:0 0 20px;}
.cz-progress{font:600 12px/1.2 'IBM Plex Mono',monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--slate-light);margin:0 0 8px;}
.cz-bar{height:5px;background:var(--line);border-radius:999px;overflow:hidden;}
.cz-bar-fill{display:block;height:100%;background:var(--brass);border-radius:999px;transition:width .3s ease;}
.cz-step{max-width:760px;}
.cz-q{font-size:21px;line-height:1.3;margin:0 0 8px;color:var(--ink);}
.cz-help{font-size:14px;line-height:1.6;color:var(--slate);margin:0 0 18px;max-width:70ch;}
.cz-choices{display:grid;gap:10px;margin:0 0 22px;}
.cz-choice{appearance:none;text-align:left;background:var(--cream);border:1px solid var(--line);border-radius:8px;padding:15px 18px;font:600 15px/1.35 inherit;color:var(--ink);cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s;}
.cz-choice:hover{border-color:var(--ink-softer);background:var(--paper);}
.cz-choice:focus-visible{outline:2px solid var(--brass);outline-offset:2px;}
.cz-choice.is-sel{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);}
.cz-nav{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px;}
.cz-sec{font-weight:400;color:var(--slate-light);font-size:.9em;}
@media(min-width:620px){.cz-choices{grid-template-columns:1fr 1fr;}.cz-choices:has(.cz-choice:nth-child(3)){grid-template-columns:1fr;max-width:520px;}}
