/* board-run-my-numbers.css: styles for the Run my numbers button, notices and compute moment on nomad/board.html (23 Oct 2026). */
/* RUN MY NUMBERS (23 Oct 2026, Chief's order): one button runs the board, with a real compute moment. */
#runMyNumbersDock{position:sticky;bottom:12px;z-index:6;margin-top:18px;padding:14px;border-radius:16px;background:var(--card,#fffdfa);border:1px solid var(--border,rgba(0,0,0,.08));box-shadow:0 10px 30px rgba(29,25,22,.14)}
#runMyNumbersButton{display:block;width:100%;border:none;border-radius:12px;padding:15px 18px;font-size:16px;font-weight:800;letter-spacing:.01em;cursor:pointer;color:#fff;background:var(--accent,#c66a45);box-shadow:0 6px 18px rgba(198,106,69,.35);transition:transform .15s,box-shadow .15s}
#runMyNumbersButton:hover{transform:translateY(-1px);box-shadow:0 9px 22px rgba(198,106,69,.42)}
#runMyNumbersButton.boardRunNeedsPress{animation:boardRunPulse 1.6s ease-in-out infinite}
@keyframes boardRunPulse{0%,100%{box-shadow:0 6px 18px rgba(198,106,69,.35)}50%{box-shadow:0 6px 26px rgba(198,106,69,.75),0 0 0 4px rgba(198,106,69,.18)}}
#runMyNumbersNote{font-size:12.5px;color:var(--muted,#6c6258);margin-top:8px;line-height:1.45;text-align:center}
#runMyNumbersNote:empty{display:none}
.boardResultsHeldBack{opacity:.5;filter:saturate(.6);transition:opacity .3s,filter .3s}
.boardTopNotice{border-radius:14px;padding:13px 16px;margin-bottom:14px;font-size:13.5px;line-height:1.5}
.boardTopNotice b{font-weight:700}
#boardWorkedExampleBanner{background:#f3ece1;border:1px dashed #c9b49a;color:var(--text,#2b2622)}
#boardWorkedExampleBanner .boardExampleTag{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;background:#2b2622;color:#fff;border-radius:6px;padding:2px 8px;margin-right:8px}
#boardResultsOutOfDateNotice{background:#fbeee2;border:1px solid #e3b897;color:#7a3f1f}
#boardResultsOutOfDateNotice button{border:none;background:none;color:#7a3f1f;font-weight:800;text-decoration:underline;cursor:pointer;font-size:13.5px;padding:0}
/* the compute moment */
#buildsBody tr.boardRowRevealing{animation:boardCardReveal .55s cubic-bezier(.2,.8,.2,1) both}
@keyframes boardCardReveal{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion: reduce){ #runMyNumbersButton.boardRunNeedsPress,#buildsBody tr.boardRowRevealing{animation:none} }
/* We decide / You decide (23 Oct 2026): the ranking panel heading carries the Tax Monkey pick / Lowest tax switch,
   and each ranked row has its own Skip button now that the best-move cards are gone. */
.weDecideHeadingRow{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.weDecideHeadingRow h2{margin:0}
.weDecideRankModeToggle{display:inline-flex;border:1px solid var(--border);border-radius:999px;overflow:hidden;margin-left:auto}
.weDecideRankModeToggle .rankmode{border:none;background:transparent;color:var(--muted);font-size:11.5px;font-weight:600;padding:5px 12px;cursor:pointer;transition:.15s;white-space:nowrap}
.weDecideRankModeToggle .rankmode.on{background:var(--accent);color:var(--on-accent,#fff)}
.weDecideRankModeToggle .rankmode:not(.on):hover{color:var(--accent2)}
.buildRowSkipButton{font-size:10px;font-weight:700;letter-spacing:.2px;color:var(--muted);background:transparent;border:1px solid var(--border);border-radius:999px;padding:2px 8px;margin-right:8px;cursor:pointer;opacity:.75;vertical-align:middle}
.buildRowSkipButton:hover{opacity:1;color:var(--accent2);border-color:var(--accent2)}
/* Found 23 Oct: in Lowest tax mode a long buy-in name in the scenario card pushed the whole page sideways. Let it wrap. */
.readout{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
@media(max-width:560px){.readout{grid-template-columns:minmax(0,1fr)}}
.readout .metric{min-width:0}
.readout .metric .wys-eyebrow,.readout .metric .wys-eyebrow .cty{white-space:normal !important;overflow-wrap:anywhere}
/* Same fix, at the root: the results column may never grow wider than the screen. */
@media(min-width:981px){.grid{grid-template-columns:minmax(466px,510px) minmax(0,1fr)!important}}
.grid > *{min-width:0}
#buildsTable td:first-child{overflow-wrap:anywhere}
#buildsTable td:not(:first-child){white-space:nowrap}
@media(max-width:420px){#buildsTable th,#buildsTable td{padding-left:5px;padding-right:5px}}
#buildsTable .buyintag{white-space:normal;display:inline}
/* The You decide board grows a fourth box when a country is skipped; let its boxes shrink so it stays inside the page. */
.board .stage{min-width:0}
@media(min-width:861px){.board.has-quar{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr)}}
/* Before the first run (23 Oct 2026): preview rings and rows instead of a worked example, the Required tag on
   step 2, and the glow that points at a question the visitor still has to answer. */
.boardPreviewRingCentre b{color:var(--faint,#9b8f82)!important}
#buildsBody tr.boardPreviewRow td{color:var(--faint,#9b8f82);font-style:italic}
.boardRequiredTag{display:inline-block;font-family:var(--sans,inherit);font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#a24a2a;background:#fbeee2;border:1px solid #e3b897;border-radius:6px;padding:1px 7px;margin-left:8px;vertical-align:middle}
.gcard.boardQuestionNeedsAnswer{animation:boardQuestionGlow 1.8s ease-out 1}
@keyframes boardQuestionGlow{0%{box-shadow:0 0 0 0 rgba(198,106,69,.55)}40%{box-shadow:0 0 0 7px rgba(198,106,69,.25)}100%{box-shadow:0 0 0 0 rgba(198,106,69,0)}}
/* Regions as two plain on/off rows (23 Oct 2026): You prefer (green when on), You'd rather not (red when on). */
.regionChipRowLabel{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:10px 0 6px}
.regionChipRowLabel:first-child{margin-top:2px}
.regionChipRow{display:flex;flex-wrap:wrap;gap:6px}
.regionChip[data-region-row="avoid"][data-state="avoid"] .regionChipLabel{text-decoration:none}
/* Where have you stayed the last year: the list of countries and days (23 Oct 2026). */
.stayListTitle{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:12px 0 4px}
.stayListRow{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:7px 0;border-bottom:1px dashed var(--line-soft,#ece0cf);font-size:13.5px}
.stayListActions a{cursor:pointer;color:var(--accent2,#a24a2a);font-weight:600;font-size:12.5px;margin-left:10px;text-decoration:none}
.stayListHint{font-size:12px;color:var(--muted);margin-top:8px}
/* Adding more countries to "where have you stayed" (23 Oct 2026). */
.stayAddAnotherCountryButton{display:block;width:100%;margin-top:10px;padding:10px 12px;border-radius:12px;border:1.5px dashed var(--accent,#c66a45);background:transparent;color:var(--accent2,#a24a2a);font-weight:700;font-size:13.5px;cursor:pointer}
.stayAddAnotherCountryButton:hover{background:#fbeee2}
.stayListOverAYear{margin-top:8px;font-size:12.5px;color:#9b3d22;font-weight:600}
/* The home question in the days pop-up (23 Oct 2026): a home can make you resident whatever the days. */
.xpHadHomeQuestion{display:flex;gap:8px;align-items:flex-start;margin:12px 0 4px;font-size:13px;line-height:1.45;color:var(--text,#2b2622);cursor:pointer}
.xpHadHomeQuestion input{margin-top:3px}
/* Gentle board (24 Oct 2026): Where did you spend the last 12 months, as one calm question. Each chosen
   country is one row: flag and name, the days as a small button that reopens the days, and a cross. */
.stayQuestionLine{font-size:12.5px;color:var(--muted);margin:2px 0 10px;line-height:1.5}
#staySum:empty{display:none}
#staySum{margin:0 0 4px}
.stayListRow{flex-wrap:nowrap;padding:9px 12px;margin-bottom:6px;border:1px solid var(--line-soft,#ece0cf);border-radius:12px;background:#fffef9}
.stayListCountry{display:flex;align-items:center;gap:7px;flex-wrap:nowrap;min-width:0}
.stayListCountry>:first-child{flex:none}
.stayListCountry b{overflow-wrap:break-word}
.stayListHome{font-size:11.5px;color:var(--muted);font-weight:500}
.stayListActions{display:flex;align-items:center;gap:6px;flex:none}
.stayListDaysButton{border:1px solid var(--line,#e3d7c6);background:#fff;border-radius:999px;padding:5px 12px;font:inherit;font-size:13px;font-weight:700;color:var(--text,#2b2622);cursor:pointer;white-space:nowrap}
.stayListDaysButton:hover{border-color:var(--accent,#c66a45)}
.stayListRemoveButton{border:none;background:transparent;color:var(--muted);font-size:18px;line-height:1;padding:4px 6px;cursor:pointer}
.stayListRemoveButton:hover{color:#9b3d22}
.stayAddTaxedTodayLink{display:block;margin:4px 0 2px;padding:4px 0;border:none;background:transparent;color:var(--accent2,#a24a2a);font:inherit;font-size:13px;font-weight:600;cursor:pointer;text-align:left}
.gcard .stayWhyWeAsk{margin-top:10px}
@media (max-width:400px){.stayListRow{padding:8px 8px 8px 10px;gap:6px}.stayListDaysButton{padding:5px 9px;font-size:12.5px}.stayListRemoveButton{padding:4px 3px}}
