/* Theme upgrade tool. Builds on studio-luxury.css tokens and guides.css layout. */
.tu-hero { padding-bottom: 32px; }
.tu-tool { padding: 36px 0 24px; border-bottom: 1px solid var(--border-dark); }
.tu { display: grid; gap: 24px; border: 1px solid var(--border-light); background: var(--bg-card); border-radius: 22px; padding: 28px; }
.tu-steps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.tu-step { display: grid; gap: 10px; align-content: start; padding: 20px; border: 1px dashed var(--border-light); border-radius: 16px; }
.tu-step h3 { margin: 0; font-size: 17px; }
.tu-step p { margin: 0; color: var(--text-muted); font-size: 14px; line-height: 1.6; }
.tu-step label { font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-dim); }
.tu-step input[type="file"] { width: 100%; padding: 12px; border: 1px solid var(--border-light); border-radius: 10px; background: #071714; color: var(--text-main); font: 500 14px var(--font-sans); }
.tu-step input[type="file"]:focus-visible { outline: 2px solid var(--emerald-accent); outline-offset: 1px; }
.tu-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
.tu-actions button { min-height: 48px; padding: 0 22px; border: 0; border-radius: 12px; background: var(--emerald-accent); color: #042019; font: 700 15px var(--font-sans); cursor: pointer; }
.tu-actions button:disabled { opacity: .5; cursor: not-allowed; }
.tu-status { margin: 0; color: var(--text-muted); font-size: 14px; }
.tu-status[data-kind="error"] { color: #ff9b8a; }
.tu-status[data-kind="ok"] { color: var(--emerald-accent); }
.tu-result { display: grid; gap: 12px; padding: 20px; border: 1px solid rgba(45, 226, 166, .35); border-radius: 16px; }
.tu-result[hidden] { display: none; }
.tu-result p { margin: 0; line-height: 1.6; }
.tu-result ul { margin: 4px 0 0; padding-left: 20px; }
.tu-result code { font-family: var(--font-mono); font-size: 13px; }
.tu-download { justify-self: start; display: inline-flex; align-items: center; min-height: 48px; padding: 0 22px; border-radius: 12px; background: var(--emerald-accent); color: #042019; font-weight: 700; text-decoration: none; }
.tu-privacy { margin: 0; color: var(--text-dim); font-size: 13px; }
@media (max-width: 760px) { .tu-steps { grid-template-columns: minmax(0, 1fr); } .tu { padding: 20px; } }
.tu-title { margin: 0; font-size: clamp(22px, 2.4vw, 30px); font-weight: 800; letter-spacing: -0.02em; color: #fff; }
.tu-notes { padding-block: 56px 88px; }
