/* Location Keyword Generator (uses the shared .irf-tool theme variables). */
.irf-tool.irf-lkw { --lkw-line: rgba(255, 255, 255, .1); --lkw-soft: rgba(255, 255, 255, .04); }
.irf-lkw .irf-tool__body { display: flex; flex-direction: column; gap: 22px; }
.irf-lkw__sec { border: 1px solid var(--lkw-line); border-radius: 14px; padding: 20px; background: rgba(11, 15, 18, .35); }
.irf-lkw__sec > h3 { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; font-size: 19px; color: #fff; }
.irf-lkw__num { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: rgba(0, 255, 133, .12); border: 1px solid rgba(0, 255, 133, .35); color: var(--irf-accent); font-size: 14px; font-weight: 700; }
.irf-lkw__label { display: block; font-size: 13px; font-weight: 600; color: #dfe7ec; margin-bottom: 6px; }
.irf-lkw__muted { color: var(--irf-muted); font-size: 12.5px; font-weight: 400; }
.irf-lkw__empty { color: var(--irf-muted); font-size: 14px; padding: 14px 6px; margin: 0; }
.irf-lkw .irf-help { margin: 8px 0 0; }
.irf-lkw code { font-size: 12.5px; background: rgba(255, 255, 255, .06); border-radius: 5px; padding: 1px 5px; color: #cfe8dc; }

/* locations: three columns */
.irf-lkw__loc { display: grid; grid-template-columns: 220px minmax(0, 1fr) 300px; gap: 16px; align-items: start; }
.irf-lkw__clist { list-style: none; margin: 8px 0 0; padding: 0; max-height: 470px; overflow-y: auto; border: 1px solid var(--lkw-line); border-radius: 10px; }
.irf-lkw__clist li { margin: 0; }
.irf-tool .irf-lkw__country { display: flex; align-items: center; gap: 8px; width: 100%; padding: 8px 10px; background: transparent; border: 0; border-bottom: 1px solid var(--lkw-line); border-radius: 0; color: var(--irf-text); font: 500 14px/1.3 Inter, sans-serif; text-align: left; text-transform: none; letter-spacing: 0; cursor: pointer; box-shadow: none; }
.irf-tool .irf-lkw__country:hover, .irf-tool .irf-lkw__country:focus { background: var(--lkw-soft); color: #fff; }
.irf-tool .irf-lkw__country.is-on, .irf-tool .irf-lkw__country.is-on:hover { background: rgba(0, 255, 133, .1); color: var(--irf-accent); }
.irf-lkw__cname { flex: 1 1 auto; min-width: 0; }
.irf-lkw__flag { font-size: 16px; line-height: 1; }
.irf-lkw__badge { min-width: 20px; padding: 0 6px; border-radius: 999px; background: var(--irf-accent); color: #0b0f12; font-size: 11.5px; font-weight: 700; text-align: center; }
.irf-lkw__browser { min-width: 0; }
.irf-lkw__crumbs { margin-bottom: 8px; font-size: 14.5px; color: #fff; }
.irf-lkw__tree { margin-top: 8px; max-height: 470px; overflow: auto; border: 1px solid var(--lkw-line); border-radius: 10px; padding: 4px; }
.irf-lkw__row { display: flex; align-items: center; gap: 6px; padding: 4px 6px; border-radius: 7px; min-width: 0; }
.irf-lkw__row:hover { background: var(--lkw-soft); }
.irf-lkw__row.is-excluded .irf-lkw__name { text-decoration: line-through; color: var(--irf-muted); }
.irf-tool .irf-lkw__tw { flex: 0 0 22px; width: 22px; height: 22px; padding: 0; background: transparent; border: 0; color: var(--irf-muted); font-size: 12px; cursor: pointer; box-shadow: none; }
.irf-tool .irf-lkw__tw:hover, .irf-tool .irf-lkw__tw:focus { background: transparent; color: var(--irf-accent); }
.irf-lkw__pick { display: inline-flex; align-items: center; gap: 7px; min-width: 0; margin: 0; cursor: pointer; font-size: 14px; color: var(--irf-text); }
.irf-lkw__pick input { accent-color: #00ff85; width: 16px; height: 16px; flex: 0 0 auto; }
.irf-lkw__name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.irf-lkw__lvl { flex: 0 0 auto; font-size: 10.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #9fb7c7; background: rgba(124, 196, 255, .1); border-radius: 5px; padding: 1px 6px; }
.irf-lkw__pop { flex: 0 0 auto; font-size: 12px; color: var(--irf-muted); font-variant-numeric: tabular-nums; }
.irf-lkw__sub { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.irf-tool .irf-lkw__ex { margin-left: auto; flex: 0 0 auto; width: 24px; height: 24px; padding: 0; background: transparent; border: 0; color: #6f7b85; font-size: 14px; cursor: pointer; box-shadow: none; }
.irf-tool .irf-lkw__ex:hover, .irf-tool .irf-lkw__ex:focus { background: transparent; color: #ff8a8a; }
.irf-lkw__kids { margin-left: 18px; padding-left: 8px; border-left: 1px solid var(--lkw-line); }
.irf-lkw__kids.is-root { margin-left: 8px; }
.irf-lkw__ghead { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 6px 4px; font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--irf-muted); }
.irf-lkw__gact { display: inline-flex; gap: 10px; text-transform: none; letter-spacing: 0; }
.irf-tool .irf-lkw__gact button, .irf-tool .irf-lkw__linkbtn { padding: 0; background: none; border: 0; color: var(--irf-accent-2); font: 600 12.5px/1.4 Inter, sans-serif; text-transform: none; letter-spacing: 0; cursor: pointer; box-shadow: none; text-decoration: underline; text-underline-offset: 2px; }
.irf-tool .irf-lkw__gact button:hover, .irf-tool .irf-lkw__linkbtn:hover, .irf-tool .irf-lkw__gact button:focus, .irf-tool .irf-lkw__linkbtn:focus { background: none; color: var(--irf-accent); }
.irf-tool .irf-lkw__lazybtn { display: block; width: 100%; padding: 6px; background: transparent; border: 0; color: #cfe8dc; font: 600 13.5px/1.3 Inter, sans-serif; text-align: left; text-transform: none; letter-spacing: 0; cursor: pointer; box-shadow: none; border-radius: 7px; }
.irf-tool .irf-lkw__lazybtn:hover, .irf-tool .irf-lkw__lazybtn:focus { background: var(--lkw-soft); color: #fff; }
.irf-lkw__gfilter { margin: 4px 0 6px; max-width: 320px; }
.irf-lkw__more { margin: 6px 0 4px 28px; }
.irf-lkw__loading { padding: 14px 8px; color: var(--irf-muted); font-size: 14px; }
.irf-lkw__cover { margin-top: 12px; padding: 12px 14px; border: 1px dashed var(--lkw-line); border-radius: 10px; }
.irf-lkw__cover h4 { margin: 0 0 8px; font-size: 13.5px; color: #fff; }
.irf-lkw__covlist { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 4px 16px; list-style: none; margin: 0; padding: 0; font-size: 13px; }
.irf-lkw__covlist li { display: flex; justify-content: space-between; gap: 8px; color: var(--irf-muted); margin: 0; }
.irf-lkw__covlist b { color: var(--irf-text); font-variant-numeric: tabular-nums; }
.irf-lkw__covlist em { color: #b9a37a; font-style: normal; font-weight: 500; }

/* selection */
.irf-lkw__picked { border: 1px solid var(--lkw-line); border-radius: 10px; padding: 10px; }
.irf-lkw__pickhead { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
.irf-lkw__pickhead .irf-lkw__label { margin: 0; }
.irf-lkw__pickhead .irf-lkw__linkbtn { margin-left: auto; }
.irf-lkw__sel { list-style: none; margin: 0; padding: 0; max-height: 430px; overflow-y: auto; }
.irf-lkw__item { margin: 0 0 8px; padding: 8px 10px; border-radius: 9px; background: var(--lkw-soft); border: 1px solid var(--lkw-line); }
.irf-lkw__itop { display: flex; align-items: center; gap: 6px; }
.irf-lkw__iname { flex: 1 1 auto; min-width: 0; font-weight: 600; font-size: 14px; color: #fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.irf-tool .irf-lkw__rm { width: 24px; height: 24px; padding: 0; background: transparent; border: 0; color: var(--irf-muted); font-size: 18px; line-height: 1; cursor: pointer; box-shadow: none; }
.irf-tool .irf-lkw__rm:hover, .irf-tool .irf-lkw__rm:focus { background: transparent; color: #ff8a8a; }
.irf-lkw__icrumbs { margin: 2px 0 6px; font-size: 12px; color: var(--irf-muted); }
.irf-lkw__iopts { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.irf-lkw__iopts select { width: auto; max-width: 100%; }
.irf-tool .irf-lkw__aliasbtn { padding: 0; background: none; border: 0; color: var(--irf-accent-2); font: 500 12.5px/1.4 Inter, sans-serif; text-align: left; text-transform: none; letter-spacing: 0; cursor: pointer; box-shadow: none; }
.irf-tool .irf-lkw__aliasbtn:hover, .irf-tool .irf-lkw__aliasbtn:focus { background: none; color: var(--irf-accent); }
.irf-lkw__excl h4 { margin: 10px 0 6px; font-size: 13px; color: #ffb4b4; }
.irf-lkw__excl ul { list-style: none; margin: 0; padding: 0; }
.irf-lkw__excl li { display: flex; justify-content: space-between; align-items: center; gap: 6px; font-size: 13px; color: var(--irf-muted); margin: 0 0 4px; }
.irf-tool .irf-lkw__excl button { padding: 0 4px; background: none; border: 0; color: var(--irf-accent-2); cursor: pointer; box-shadow: none; }
.irf-tool .irf-lkw__excl button:hover { background: none; color: var(--irf-accent); }

/* settings */
.irf-lkw__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; }
.irf-lkw fieldset { margin: 0; padding: 12px 14px; border: 1px solid var(--lkw-line); border-radius: 10px; min-width: 0; }
.irf-lkw legend { padding: 0 6px; font-size: 13px; font-weight: 700; color: #dfe7ec; }
.irf-lkw fieldset .irf-checkbox { display: flex; margin: 0 0 8px; }
.irf-lkw fieldset .irf-checkbox input[type=radio] { accent-color: #00ff85; width: 16px; height: 16px; margin: 3px 0 0; flex: 0 0 auto; }
.irf-lkw__pat span { display: flex; flex-direction: column; gap: 2px; }
.irf-lkw__pat strong { color: var(--irf-text); font-weight: 600; }
.irf-lkw__pat small { color: var(--irf-muted); font-size: 12px; }
.irf-lkw__pat code { align-self: flex-start; }
.irf-lkw__inline { display: flex; flex-direction: column; gap: 4px; margin: 2px 0 10px 24px; font-size: 12.5px; color: var(--irf-muted); }
.irf-lkw fieldset > .irf-lkw__inline:not(:first-child) { margin-left: 0; }
.irf-lkw .irf-input--sm { height: auto; padding: 7px 10px; font-size: 13.5px; }
.irf-lkw select.irf-input--sm { padding-right: 30px; }
.irf-lkw__custom { list-style: none; margin: 0 0 8px; padding: 0; }
.irf-lkw__custom li { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 0 0 6px; }
.irf-tool .irf-lkw__custom button { padding: 0 4px; background: none; border: 0; color: var(--irf-muted); font-size: 16px; cursor: pointer; box-shadow: none; }
.irf-tool .irf-lkw__custom button:hover { background: none; color: #ff8a8a; }

/* generate */
.irf-lkw__gensec { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.irf-tool .irf-lkw__genbtn { padding: 14px 26px; font-size: 16px; }
.irf-lkw__status { flex: 1 1 320px; font-size: 14.5px; color: var(--irf-text); }
.irf-lkw__status.is-warn { color: #ffd9a0; }
.irf-lkw__status.is-err { color: #ffb4b4; }
.irf-lkw__status.is-ok b { color: var(--irf-accent); }
.irf-lkw__status .irf-btn { margin-top: 6px; }
.irf-lkw__spin { display: inline-block; width: 14px; height: 14px; margin-right: 6px; vertical-align: -2px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, .2); border-top-color: var(--irf-accent); animation: irf-lkw-spin .8s linear infinite; }
@keyframes irf-lkw-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .irf-lkw__spin { animation-duration: 2.4s; } }

/* results */
.irf-lkw__stats { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 14px; }
.irf-lkw__stats div { padding: 8px 14px; border: 1px solid var(--lkw-line); border-radius: 10px; background: var(--lkw-soft); }
.irf-lkw__stats b { display: block; font-size: 20px; color: var(--irf-accent); font-variant-numeric: tabular-nums; }
.irf-lkw__stats span { font-size: 12px; color: var(--irf-muted); }
.irf-lkw__stats .is-warn b { color: #ffc857; }
.irf-lkw__rtools { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 10px; }
.irf-lkw__rtools .irf-input { width: auto; flex: 0 1 auto; }
.irf-lkw__rtools input[type=search] { flex: 1 1 220px; }
.irf-lkw__table { overflow-x: auto; border: 1px solid var(--lkw-line); border-radius: 10px; }
.irf-lkw__table table { width: 100%; border-collapse: collapse; font-size: 13.5px; margin: 0; }
.irf-lkw__table th { position: sticky; top: 0; padding: 10px; background: #161c21; color: var(--irf-muted); font-size: 11.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; text-align: left; white-space: nowrap; border: 0; border-bottom: 1px solid var(--lkw-line); }
.irf-lkw__table td { padding: 8px 10px; border: 0; border-bottom: 1px solid var(--lkw-line); color: #cdd6dc; vertical-align: top; background: transparent; }
.irf-lkw__table tr:last-child td { border-bottom: 0; }
.irf-lkw__table tr.is-sel td { background: rgba(0, 255, 133, .05); }
.irf-lkw__table .irf-lkw__kw { color: #fff; font-weight: 600; }
.irf-lkw__cb { width: 34px; }
.irf-lkw__cb input { accent-color: #00ff85; width: 15px; height: 15px; }
.irf-lkw__acts { white-space: nowrap; text-align: right; }
.irf-tool .irf-lkw__acts button { width: 26px; height: 26px; padding: 0; background: transparent; border: 1px solid transparent; border-radius: 6px; color: var(--irf-muted); cursor: pointer; box-shadow: none; }
.irf-tool .irf-lkw__acts button:hover, .irf-tool .irf-lkw__acts button:focus { background: var(--lkw-soft); border-color: var(--lkw-line); color: var(--irf-accent); }
.irf-lkw__pager { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 10px; font-size: 13.5px; color: var(--irf-muted); }
.irf-lkw__selinfo { margin-left: auto; }
.irf-tool .irf-lkw__selinfo button { padding: 0; background: none; border: 0; color: var(--irf-accent-2); font: 600 13px/1.4 Inter, sans-serif; text-decoration: underline; cursor: pointer; box-shadow: none; }
.irf-tool .irf-lkw__selinfo button:hover { background: none; color: var(--irf-accent); }
.irf-lkw__toast { position: fixed; left: 50%; bottom: 24px; z-index: 9999; transform: translate(-50%, 20px); padding: 10px 16px; border-radius: 10px; background: #1f2932; border: 1px solid rgba(255, 255, 255, .15); color: #fff; font-size: 14px; opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s; }
.irf-lkw__toast.is-on { opacity: 1; transform: translate(-50%, 0); }

@media (max-width: 1100px) {
	.irf-lkw__loc { grid-template-columns: 200px minmax(0, 1fr); }
	.irf-lkw__picked { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
	.irf-lkw__sec { padding: 14px; }
	.irf-lkw__loc { grid-template-columns: 1fr; }
	.irf-lkw__clist { max-height: 220px; }
	.irf-lkw__tree { max-height: 380px; }
	.irf-lkw__selinfo { margin-left: 0; }
	.irf-lkw__sub { display: none; }
	/* 16px stops iOS zooming into fields on focus */
	.irf-lkw input.irf-input, .irf-lkw select.irf-input, .irf-lkw textarea.irf-input, .irf-lkw select, .irf-lkw textarea { font-size: 16px; }
	/* keep rows one line high and let the table scroll sideways instead of squeezing every column */
	.irf-lkw__table td, .irf-lkw__table th { white-space: nowrap; }
	.irf-lkw__table td.irf-lkw__kw, .irf-lkw__table .irf-lkw__kw { white-space: normal; min-width: 190px; }
}

/* Custom template row: let the input shrink so the Add button stays inside the box */
.irf-lkw fieldset { min-width: 0; }
.irf-lkw .irf-row > .irf-input { min-width: 0; width: auto; flex: 1 1 0; }
.irf-lkw .irf-row > .irf-btn { flex: 0 0 auto; }
