.tm-configurator { --tm-config-border: #64748b; display: grid; gap: 1rem; max-width: 800px; padding: 1.5rem; border: 1px solid var(--tm-config-border); border-radius: 12px; color: #f8fafc; background: #151515; }
.tm-configurator :is(h3,p,legend,label,span,strong) { color: #f8fafc; }
.tm-configurator h3,.tm-configurator p { margin: 0; }
.tm-configurator fieldset { display: grid; gap: 1rem; min-width: 0; margin: 0; padding: 1rem; border: 1px solid var(--tm-config-border); border-radius: 8px; }
.tm-configurator legend { padding: 0 .5rem; font-weight: 700; }
.tm-configurator__component label { display: grid; gap: .5rem; }
.tm-configurator select { width: 100%; max-width: 100%; min-height: 44px; padding: .6rem; color: inherit; background-color: inherit; border: 1px solid var(--tm-config-border); border-radius: 6px; }
.tm-configurator select option { color: #111827; background: #fff; }
.tm-configurator__note { font-size: .9em; line-height: 1.5; }
.tm-configurator__total { font-size: 1.2em; }
.tm-configurator__submit { min-height: 44px; padding: .8rem 1rem; cursor: pointer; }
.tm-configurator :focus-visible { outline: 3px solid #38bdf8; outline-offset: 3px; }
.tm-kit .tm-kit__card { padding: .8rem; background: #202020; border: 1px solid #64748b; border-radius: 8px; }
.tm-kit .tm-kit__check { display: flex; align-items: center; gap: .8rem; cursor: pointer; }
.tm-kit input[type="checkbox"] { width: 20px; height: 20px; accent-color: #ffd400; flex-shrink: 0; }
.tm-kit .tm-kit__check strong { margin-left: auto; white-space: nowrap; }
.tm-kit .tm-kit__summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; background: #202020; border-radius: 8px; }
.tm-kit .tm-kit__summary strong { font-size: 1.4em; }
.tm-kit .tm-kit__actions { display: flex; flex-wrap: wrap; gap: .8rem; }
.tm-kit .tm-kit__actions button { flex: 1; min-height: 44px; padding: .8rem; background: #ffd400; color: #111; border: 1px solid #ffd400; border-radius: 6px; font-weight: 700; cursor: pointer; }
.tm-kit .tm-kit__actions button:first-child { background: #242424; color: #fff; border-color: #64748b; }
.tm-kit .tm-kit__error { color: #fecaca; }
.tm-kit [hidden] { display: none; }
@media(max-width: 480px) { .tm-configurator { padding: 1rem; } }
.tm-kit { --tm-config-border:#393939; gap:1.4rem; background:#111; border-color:#333; padding:1.5rem; }
.tm-kit h3 { font-size:clamp(26px,3vw,42px); line-height:1.15; letter-spacing:-.8px; }
.tm-kit fieldset { display:flex; flex-wrap:wrap; align-items:flex-start; gap:12px; border-width:1px 0 0; border-radius:0; padding:1.2rem 0 0; }
.tm-kit fieldset > label,.tm-kit fieldset > p,.tm-kit fieldset > .tm-kit__material-breakdown { width:100%; }
.tm-kit .tm-kit__card { width:calc(50% - 6px); padding:0; overflow:hidden; background:#1a1a1a; border-color:#393939; transition:border-color .15s; }
.tm-kit .tm-kit__card:has(input:checked),.tm-kit .tm-kit__card:has(select:focus) { border-color:#ffd400; }
.tm-kit .tm-kit__card label { padding:14px; }
.tm-kit .tm-kit__card label:not(.tm-kit__check) { display:grid; gap:10px; }
.tm-kit .tm-kit__check { flex-wrap:wrap; align-items:center; }
.tm-kit .tm-kit__check strong { width:100%; padding-left:32px; color:#ffd400; }
.tm-kit .tm-kit__part-image { width:100%; height:130px; object-fit:cover; display:block; }
.tm-kit .tm-kit__summary { padding:20px; border:1px solid #393939; }
.tm-kit .tm-kit__summary strong { color:#ffd400; }
.tm-kit__price-line { color:#bbb; font-size:13px; padding:4px 0; }
.tm-kit-page { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:48px; max-width:1380px; margin:0 auto; color:#fff; }
.tm-kit-page__gallery { position:sticky; top:24px; align-self:start; min-width:0; }
.tm-kit-page__hero { background:#171717; border:1px solid #333; aspect-ratio:1.25; display:grid; place-items:center; overflow:hidden; }
.tm-kit-page__hero img { width:100%; height:100%; object-fit:contain; }
.tm-kit-page__placeholder { padding:40px; color:#aaa; text-align:center; }
.tm-kit-page__thumbs { display:flex; gap:12px; flex-wrap:wrap; margin-top:12px; }
.tm-kit-page__thumbs button { padding:0; width:90px; height:75px; background:#171717; border:1px solid #444; cursor:pointer; }
.tm-kit-page__thumbs button[aria-pressed="true"] { border-color:#ffd400; }
.tm-kit-page__thumbs img { width:100%; height:100%; object-fit:cover; }
.tm-kit-page__details { border-top:1px solid #444; margin-top:24px; }
.tm-kit-page__details summary { padding:16px 0; cursor:pointer; }
.tm-kit-page__builder { min-width:0; }
.tm-kit-page .tm-kit { max-width:none; }
.tm-kit-page button:focus-visible { outline:3px solid #38bdf8; outline-offset:3px; }
@media(max-width:850px) { .tm-kit-page { grid-template-columns:1fr; gap:24px; }.tm-kit-page__gallery { position:static; } }
@media(max-width:420px) { .tm-kit .tm-kit__card { width:100%; }.tm-kit .tm-kit__summary { flex-wrap:wrap; } }
