:root{--rac-primary: #1d5f8a;--rac-primary-dark: #14425f;--rac-gold: #d99a2b;--rac-gold-soft: #fdf3e0;--rac-sky: #eef6fb;--rac-surface: #ffffff;--rac-surface-muted: #f6f9fb;--rac-border: #dfe8ee;--rac-border-strong: #c4d4de;--rac-text-main: #14212b;--rac-text-muted: #5c7382;--rac-ok: #1f7a5c;--rac-shadow: 0 18px 44px rgba(20, 66, 95, 0.10);--rac-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--primary: var(--rac-primary);--primary-dark: var(--rac-primary-dark);--border: var(--rac-border);--surface: var(--rac-surface);--surface-muted: var(--rac-surface-muted);--shadow-soft: var(--rac-shadow);--text-main: var(--rac-text-main);--text-muted: var(--rac-text-muted);}
.rac-shell [hidden]{display: none !important;}
.rac-shell{background: var(--rac-surface);border: 1px solid var(--rac-border);border-radius: 1rem;box-shadow: var(--rac-shadow);overflow: hidden;margin-bottom: 2.5rem;}
.rac-byline{display: flex;flex-wrap: wrap;align-items: center;justify-content: space-between;gap: 0.5rem 1rem;padding: 0.75rem 1.25rem;font-size: 0.85rem;color: var(--rac-text-muted);background: var(--rac-surface-muted);border-bottom: 1px solid var(--rac-border);}
.rac-byline-author{font-weight: 600;color: var(--rac-text-main);}
.rac-byline .author-link{color: var(--rac-primary-dark);text-decoration: none;font-weight: 600;}
.rac-byline .author-link:hover{text-decoration: underline;}
.rac-setup{padding: 1.35rem 1.25rem;border-bottom: 1px solid var(--rac-border);}
.rac-label{display: block;font-size: 0.72rem;font-weight: 700;letter-spacing: 0.08em;text-transform: uppercase;color: var(--rac-text-muted);margin-bottom: 0.55rem;}
.rac-chips{display: flex;flex-wrap: wrap;gap: 0.45rem;margin-bottom: 1.35rem;}
.rac-chip{display: inline-flex;align-items: center;gap: 0.4rem;padding: 0.5rem 0.9rem;font-family: inherit;font-size: 0.88rem;font-weight: 600;color: var(--rac-text-muted);background: var(--rac-surface);border: 1px solid var(--rac-border-strong);border-radius: 999px;cursor: pointer;transition: color 0.18s, border-color 0.18s, background 0.18s, box-shadow 0.18s;}
.rac-chip:hover{border-color: var(--rac-primary);color: var(--rac-primary-dark);}
.rac-chip:focus-visible{outline: 2px solid var(--rac-primary);outline-offset: 2px;}
.rac-chip.is-active{color: #ffffff;background: var(--rac-primary);border-color: var(--rac-primary);box-shadow: 0 6px 16px rgba(29, 95, 138, 0.24);}
.rac-chip-count{font-size: 0.76rem;font-weight: 700;opacity: 0.7;}
.rac-grid{display: grid;grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);gap: 1.35rem;align-items: start;}
.rac-slider-row{display: flex;align-items: center;gap: 0.85rem;}
.rac-range{flex: 1;min-width: 0;height: 4px;appearance: none;-webkit-appearance: none;background: var(--rac-border-strong);border-radius: 999px;outline: none;cursor: pointer;}
.rac-range::-webkit-slider-thumb{appearance: none;-webkit-appearance: none;width: 1.15rem;height: 1.15rem;background: var(--rac-primary);border: 3px solid #ffffff;border-radius: 50%;box-shadow: 0 2px 8px rgba(20, 66, 95, 0.3);cursor: pointer;}
.rac-range::-moz-range-thumb{width: 1.15rem;height: 1.15rem;background: var(--rac-primary);border: 3px solid #ffffff;border-radius: 50%;box-shadow: 0 2px 8px rgba(20, 66, 95, 0.3);cursor: pointer;}
.rac-range:focus-visible{outline: 2px solid var(--rac-primary);outline-offset: 6px;}
.rac-count-value{min-width: 2.75rem;padding: 0.3rem 0.5rem;font-family: var(--rac-mono);font-size: 1rem;font-weight: 700;text-align: center;color: var(--rac-primary-dark);background: var(--rac-sky);border-radius: 0.45rem;}
.rac-select{width: 100%;padding: 0.65rem 0.8rem;font-family: inherit;font-size: 0.94rem;color: var(--rac-text-main);background: var(--rac-surface-muted);border: 1px solid var(--rac-border-strong);border-radius: 0.6rem;cursor: pointer;transition: border-color 0.18s, box-shadow 0.18s;}
.rac-select:focus{outline: none;border-color: var(--rac-primary);box-shadow: 0 0 0 3px rgba(29, 95, 138, 0.15);}
.rac-toggles{display: flex;flex-wrap: wrap;gap: 0.55rem;margin-top: 1.25rem;}
.rac-toggle{display: inline-flex;align-items: center;gap: 0.55rem;padding: 0.5rem 0.85rem 0.5rem 0.6rem;font-size: 0.88rem;font-weight: 600;color: var(--rac-text-muted);background: var(--rac-surface-muted);border: 1px solid var(--rac-border);border-radius: 999px;cursor: pointer;transition: color 0.18s, border-color 0.18s, background 0.18s;}
.rac-toggle input{position: absolute;opacity: 0;width: 0;height: 0;}
.rac-toggle-track{position: relative;flex-shrink: 0;width: 2.05rem;height: 1.15rem;background: var(--rac-border-strong);border-radius: 999px;transition: background 0.18s;}
.rac-toggle-track::after{content: '';position: absolute;top: 0.16rem;left: 0.16rem;width: 0.83rem;height: 0.83rem;background: #ffffff;border-radius: 50%;transition: transform 0.18s;}
.rac-toggle input:checked ~ .rac-toggle-track{background: var(--rac-primary);}
.rac-toggle input:checked ~ .rac-toggle-track::after{transform: translateX(0.9rem);}
.rac-toggle input:focus-visible ~ .rac-toggle-track{outline: 2px solid var(--rac-primary);outline-offset: 2px;}
.rac-toggle:has(input:checked){color: var(--rac-primary-dark);background: var(--rac-sky);border-color: var(--rac-border-strong);}
.rac-generate{display: inline-flex;align-items: center;justify-content: center;gap: 0.55rem;width: 100%;margin-top: 1.35rem;padding: 0.85rem 1.4rem;font-family: inherit;font-size: 1rem;font-weight: 700;color: #ffffff;background: var(--rac-primary);border: 0;border-radius: 0.65rem;cursor: pointer;transition: background 0.18s, box-shadow 0.18s, transform 0.12s;}
.rac-generate svg{width: 1.15rem;height: 1.15rem;}
.rac-generate:hover{background: var(--rac-primary-dark);box-shadow: 0 10px 24px rgba(20, 66, 95, 0.26);}
.rac-generate:active{transform: translateY(1px);}
.rac-generate:focus-visible{outline: 2px solid var(--rac-primary-dark);outline-offset: 3px;}
.rac-results{padding: 1.35rem 1.25rem 1.5rem;}
#racPanel{scroll-margin-top: 1rem;}
.rac-results-head{display: flex;flex-wrap: wrap;align-items: center;justify-content: space-between;gap: 0.75rem;margin-bottom: 1rem;}
.rac-results-title{margin: 0;font-size: 1.05rem;font-weight: 700;color: var(--rac-text-main);}
.rac-views{display: inline-flex;padding: 0.2rem;background: var(--rac-surface-muted);border: 1px solid var(--rac-border);border-radius: 0.6rem;}
.rac-view{padding: 0.4rem 0.85rem;font-family: inherit;font-size: 0.84rem;font-weight: 600;color: var(--rac-text-muted);background: transparent;border: 0;border-radius: 0.45rem;cursor: pointer;transition: color 0.18s, background 0.18s;}
.rac-view.is-active{color: var(--rac-primary-dark);background: var(--rac-surface);box-shadow: 0 1px 3px rgba(20, 66, 95, 0.12);}
.rac-view:focus-visible{outline: 2px solid var(--rac-primary);outline-offset: 2px;}
.rac-empty{display: flex;flex-direction: column;align-items: center;gap: 0.75rem;padding: 3rem 1.5rem;text-align: center;color: var(--rac-text-muted);background: var(--rac-surface-muted);border: 1px dashed var(--rac-border-strong);border-radius: 0.8rem;}
.rac-empty svg{width: 2.4rem;height: 2.4rem;color: var(--rac-border-strong);}
.rac-empty p{max-width: 34rem;margin: 0;font-size: 0.94rem;}
.rac-stats{display: grid;grid-template-columns: repeat(4, minmax(0, 1fr));gap: 0.6rem;margin-bottom: 1rem;}
.rac-stat{padding: 0.7rem 0.85rem;background: var(--rac-surface-muted);border: 1px solid var(--rac-border);border-radius: 0.65rem;}
.rac-stat-value{display: block;font-family: var(--rac-mono);font-size: 1.35rem;font-weight: 700;line-height: 1.1;color: var(--rac-primary-dark);}
.rac-stat-label{display: block;margin-top: 0.15rem;font-size: 0.74rem;font-weight: 600;letter-spacing: 0.05em;text-transform: uppercase;color: var(--rac-text-muted);}
.rac-list{display: grid;gap: 0.6rem;margin: 0;padding: 0;list-style: none;}
.rac-card{display: flex;align-items: flex-start;gap: 0.85rem;padding: 0.9rem 0.95rem;background: var(--rac-surface);border: 1px solid var(--rac-border);border-left: 3px solid var(--rac-gold);border-radius: 0.7rem;transition: border-color 0.18s, box-shadow 0.18s;}
.rac-card:hover{box-shadow: 0 8px 22px rgba(20, 66, 95, 0.09);}
.rac-card-index{flex-shrink: 0;width: 1.6rem;height: 1.6rem;display: flex;align-items: center;justify-content: center;font-family: var(--rac-mono);font-size: 0.78rem;font-weight: 700;color: var(--rac-primary-dark);background: var(--rac-sky);border-radius: 0.4rem;}
.rac-card-body{flex: 1;min-width: 0;}
.rac-card-street{margin: 0;font-size: 1rem;font-weight: 700;color: var(--rac-text-main);line-height: 1.35;}
.rac-card-unit{font-weight: 600;color: var(--rac-text-muted);}
.rac-card-city{margin: 0.1rem 0 0;font-size: 0.94rem;color: var(--rac-text-muted);}
.rac-card-meta{display: flex;flex-wrap: wrap;gap: 0.35rem;margin-top: 0.5rem;}
.rac-tag{padding: 0.2rem 0.5rem;font-size: 0.74rem;font-weight: 600;color: var(--rac-primary-dark);background: var(--rac-sky);border-radius: 0.35rem;}
.rac-tag-region{color: #8a5c0c;background: var(--rac-gold-soft);}
.rac-tag-geo{font-family: var(--rac-mono);color: var(--rac-text-muted);background: var(--rac-surface-muted);}
.rac-card-copy{flex-shrink: 0;display: inline-flex;align-items: center;justify-content: center;width: 2rem;height: 2rem;color: var(--rac-text-muted);background: var(--rac-surface-muted);border: 1px solid var(--rac-border);border-radius: 0.45rem;cursor: pointer;transition: color 0.18s, background 0.18s, border-color 0.18s;}
.rac-card-copy svg{width: 0.95rem;height: 0.95rem;}
.rac-card-copy:hover{color: var(--rac-primary-dark);border-color: var(--rac-primary);}
.rac-card-copy:focus-visible{outline: 2px solid var(--rac-primary);outline-offset: 2px;}
.rac-card-copy.is-done{color: #ffffff;background: var(--rac-ok);border-color: var(--rac-ok);}
.rac-raw{margin: 0;padding: 1rem;max-height: 30rem;overflow: auto;font-family: var(--rac-mono);font-size: 0.86rem;line-height: 1.6;color: var(--rac-text-main);background: var(--rac-surface-muted);border: 1px solid var(--rac-border);border-radius: 0.7rem;white-space: pre;}
.rac-actions{display: flex;flex-wrap: wrap;gap: 0.5rem;margin-top: 1rem;}
.rac-btn{display: inline-flex;align-items: center;gap: 0.45rem;padding: 0.55rem 0.95rem;font-family: inherit;font-size: 0.88rem;font-weight: 600;color: var(--rac-text-main);background: var(--rac-surface);border: 1px solid var(--rac-border-strong);border-radius: 0.55rem;cursor: pointer;transition: color 0.18s, background 0.18s, border-color 0.18s;}
.rac-btn svg{width: 0.95rem;height: 0.95rem;}
.rac-btn:hover{color: var(--rac-primary-dark);border-color: var(--rac-primary);}
.rac-btn:focus-visible{outline: 2px solid var(--rac-primary);outline-offset: 2px;}
.rac-btn.is-done{color: #ffffff;background: var(--rac-ok);border-color: var(--rac-ok);}
.rac-note{margin: 0.85rem 0 0;font-size: 0.82rem;color: var(--rac-text-muted);}
.rac-article{margin: 0 auto 2.5rem;color: var(--rac-text-main);line-height: 1.7;}
.rac-article h2{margin: 0 0 0.9rem;font-size: 1.55rem;font-weight: 700;line-height: 1.3;}
.rac-article h3{margin: 2rem 0 0.7rem;font-size: 1.18rem;font-weight: 700;}
.rac-article p{margin: 0 0 1rem;font-size: 1rem;color: var(--rac-text-muted);}
.rac-article strong{color: var(--rac-text-main);}
.rac-article a{color: var(--rac-primary-dark);text-decoration: underline;text-underline-offset: 2px;}
.rac-article ul{margin: 0 0 1.15rem;padding-left: 1.15rem;color: var(--rac-text-muted);}
.rac-article li{margin-bottom: 0.55rem;}
.rac-article code{padding: 0.1rem 0.35rem;font-family: var(--rac-mono);font-size: 0.88em;color: var(--rac-primary-dark);background: var(--rac-sky);border-radius: 0.25rem;}
.rac-tablewrap{margin: 0 0 1.25rem;overflow-x: auto;border: 1px solid var(--rac-border);border-radius: 0.7rem;}
.rac-table-data{width: 100%;min-width: 32rem;border-collapse: collapse;font-size: 0.92rem;}
.rac-table-data th{padding: 0.65rem 0.85rem;text-align: left;font-weight: 700;color: var(--rac-text-main);background: var(--rac-surface-muted);border-bottom: 1px solid var(--rac-border);}
.rac-table-data td{padding: 0.65rem 0.85rem;color: var(--rac-text-muted);border-bottom: 1px solid var(--rac-border);}
.rac-table-data tbody tr:last-child td{border-bottom: 0;}
.sr-only{position: absolute;width: 1px;height: 1px;padding: 0;margin: -1px;overflow: hidden;clip: rect(0, 0, 0, 0);white-space: nowrap;border: 0;}
@media (max-width: 767px){
.rac-grid{grid-template-columns: minmax(0, 1fr);gap: 1.1rem;}
.rac-stats{grid-template-columns: repeat(2, minmax(0, 1fr));}
.rac-results-head{align-items: flex-start;}
.rac-card{flex-wrap: wrap;}
.rac-btn{flex: 1;justify-content: center;}
}
@media (prefers-reduced-motion: reduce){
.rac-shell *, .rac-shell *::before, .rac-shell *::after{transition-duration: 0.01ms !important;animation-duration: 0.01ms !important;}
}