:root{--tt-bg: #f6f8fb;--tt-panel: #ffffff;--tt-ink: #1f2733;--tt-ink-soft: #51606f;--tt-line: #dbe2ea;--tt-accent: #0f6cbd;--tt-accent-ink: #ffffff;--tt-ok-bg: #e5f4e8;--tt-ok-ink: #1c7a35;--tt-warn-bg: #fff4e0;--tt-warn-ink: #8a5a00;--tt-error-bg: #fdecec;--tt-error-ink: #b3261e;--tt-muted-bg: #eef1f5;--tt-radius: 10px;--tt-shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .1);--tt-font: "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--tt-mono: "Cascadia Code", "Consolas", "Menlo", monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--tt-font);color:var(--tt-ink);background:var(--tt-bg);font-size:14px;line-height:1.45}#root{min-height:100vh}a{color:var(--tt-accent)}.tt-page,.tt-home{max-width:560px;margin:0 auto;padding:16px 14px 48px}.tt-back{margin-bottom:6px}.tt-back-link{font-size:13px;text-decoration:none}.tt-back-link:hover{text-decoration:underline}.tt-page-header{margin-bottom:14px}.tt-page-title{margin:0 0 4px;font-size:22px;letter-spacing:-.01em}.tt-page-desc{margin:0 0 8px;color:var(--tt-ink-soft)}.tt-status-note{margin:10px 0 0;padding:10px 12px;border-radius:var(--tt-radius);background:var(--tt-muted-bg);color:var(--tt-ink-soft);font-size:13px}.tt-stub-note{color:var(--tt-ink-soft);font-size:13px}.tt-home-header{padding:6px 2px 16px}.tt-brand{display:flex;align-items:center;gap:8px;margin:0;font-size:18px;font-weight:700;letter-spacing:-.01em}.tt-brand-mark{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;background:var(--tt-accent);color:#fff;font-weight:800}.tt-home-sub{margin:8px 0 0;color:var(--tt-ink-soft)}.tt-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}@media (max-width: 420px){.tt-card-grid{grid-template-columns:1fr}}.tt-tool-card{display:flex;flex-direction:column;gap:6px;padding:12px;border:1px solid var(--tt-line);border-radius:var(--tt-radius);background:var(--tt-panel);box-shadow:var(--tt-shadow);text-decoration:none;color:inherit;transition:border-color .12s ease,transform .12s ease}.tt-tool-card:hover{border-color:var(--tt-accent);transform:translateY(-1px)}.tt-tool-card-top{display:flex;align-items:center;justify-content:space-between;gap:6px}.tt-tool-name{margin:0;font-size:14px;font-weight:650}.tt-tool-desc{margin:0;flex:1;font-size:12px;color:var(--tt-ink-soft)}.tt-home-footer{margin-top:18px;font-size:12px;color:var(--tt-ink-soft);text-align:center}.tt-card{border:1px solid var(--tt-line);border-radius:var(--tt-radius);background:var(--tt-panel);box-shadow:var(--tt-shadow);padding:12px 14px;margin-bottom:12px}.tt-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.tt-card-title{margin:0 0 10px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--tt-ink-soft)}.tt-card-head .tt-card-title{margin-bottom:0}.tt-setting{margin-bottom:12px}.tt-setting-label{display:block;margin-bottom:4px;font-size:13px;font-weight:600}.tt-input{width:100%;padding:8px 10px;border:1px solid var(--tt-line);border-radius:8px;font:inherit;background:#fff;color:inherit}.tt-input:focus{outline:2px solid var(--tt-accent);outline-offset:1px;border-color:var(--tt-accent)}.tt-input-multiline{line-height:1.5;resize:vertical;min-height:64px}.tt-input[aria-invalid=true]{border-color:var(--tt-error-ink)}.tt-hint{margin:4px 0 0;font-size:12px;color:var(--tt-ink-soft)}.tt-toggles{display:grid;gap:8px;margin-top:4px}.tt-toggle{display:flex;align-items:flex-start;gap:10px;cursor:pointer}.tt-toggle-input{position:absolute;opacity:0;pointer-events:none}.tt-toggle-track{flex:none;width:34px;height:20px;margin-top:1px;border-radius:999px;background:#c6cfda;position:relative;transition:background .12s ease}.tt-toggle-track:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #10182840;transition:transform .12s ease}.tt-toggle-input:checked+.tt-toggle-track{background:var(--tt-accent)}.tt-toggle-input:checked+.tt-toggle-track:after{transform:translate(14px)}.tt-toggle-input:focus-visible+.tt-toggle-track{outline:2px solid var(--tt-accent);outline-offset:2px}.tt-toggle-text{display:grid;gap:1px}.tt-toggle-label{font-size:13px;font-weight:600}.tt-toggle-desc{font-size:12px;color:var(--tt-ink-soft)}.tt-columns{display:grid;gap:10px;margin-top:6px}.tt-column{border:1px solid var(--tt-line);border-radius:8px;padding:10px;background:#fbfcfe}.tt-column-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.tt-column-name{font-size:13px;font-weight:700}.tt-check{display:inline-flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}.tt-range-line{margin:8px 0;font-size:14px}.tt-range-empty{color:var(--tt-ink-soft)}.tt-range-dims{margin-left:6px;color:var(--tt-ink-soft);font-size:12px}.tt-range-manual{border-top:1px dashed var(--tt-line);padding-top:8px}.tt-range-manual-label{font-size:12px;font-weight:600;color:var(--tt-ink-soft)}.tt-range-manual-row{display:flex;gap:8px;margin-top:4px}.tt-range-manual-row .tt-input{flex:1}.tt-mono{font-family:var(--tt-mono);font-size:12.5px}.tt-button{font:inherit;font-weight:600;padding:8px 14px;border-radius:8px;border:1px solid transparent;cursor:pointer;transition:background .12s ease,border-color .12s ease}.tt-button:disabled{opacity:.45;cursor:not-allowed}.tt-button-primary{background:var(--tt-accent);color:var(--tt-accent-ink)}.tt-button-primary:hover:not(:disabled){background:#0c5aa0}.tt-button-apply{background:var(--tt-ok-ink);color:#fff}.tt-button-apply:hover:not(:disabled){background:#146028}.tt-button-ghost{background:transparent;border-color:var(--tt-line);color:var(--tt-ink)}.tt-button-ghost:hover:not(:disabled){border-color:var(--tt-accent);color:var(--tt-accent)}.tt-button-danger{background:var(--tt-error-ink);color:#fff}.tt-icon-button{border:none;background:transparent;font-size:16px;cursor:pointer;color:inherit;padding:2px 6px}.tt-actions{display:flex;gap:8px;align-items:center;margin:14px 0 4px}.tt-confirm{width:100%;margin-top:10px;padding:10px 12px;border-radius:var(--tt-radius);background:var(--tt-error-bg);color:var(--tt-error-ink);font-size:13px}.tt-confirm-actions{display:flex;gap:8px;margin-top:8px}.tt-flow-hint{font-size:12px;color:var(--tt-ink-soft);margin:6px 0 0}.tt-stats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.tt-stat{padding:4px 10px;border-radius:999px;font-weight:700;font-size:13px;background:var(--tt-muted-bg)}.tt-stat small{font-weight:500;color:var(--tt-ink-soft);margin-left:4px}.tt-stat-changed{background:var(--tt-ok-bg);color:var(--tt-ok-ink)}.tt-stat-failed{background:var(--tt-error-bg);color:var(--tt-error-ink)}.tt-preview-table{width:100%;border-collapse:collapse;font-size:12.5px}.tt-preview-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--tt-ink-soft);padding:4px 6px 6px;border-bottom:1px solid var(--tt-line)}.tt-preview-table td{padding:6px;border-bottom:1px solid var(--tt-line);vertical-align:top;word-break:break-word;white-space:pre-wrap}.tt-row-same td{color:var(--tt-ink-soft)}.tt-empty{color:#9aa7b4;font-style:normal}.tt-sample-note{margin-top:3px;font-size:11px;color:var(--tt-warn-ink)}.tt-warnings{margin:10px 0 0;padding:8px 12px 8px 26px;border-radius:8px;background:var(--tt-warn-bg);color:var(--tt-warn-ink);font-size:12.5px}.tt-warnings li{margin:2px 0}.tt-summary-grid{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;margin:0 0 10px}.tt-summary-grid dt{color:var(--tt-ink-soft);font-size:12.5px}.tt-summary-grid dd{margin:0;text-align:right;font-weight:600}.tt-strong{color:var(--tt-ok-ink)}.tt-danger{color:var(--tt-error-ink)}.tt-reasons{margin:0 0 10px;padding:0 0 0 20px;font-size:12.5px;color:var(--tt-ink-soft)}.tt-summary-badges{display:flex;gap:6px;flex-wrap:wrap}.tt-chip{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600}.tt-chip-ok{background:var(--tt-ok-bg);color:var(--tt-ok-ink)}.tt-chip-muted{background:var(--tt-muted-bg);color:var(--tt-ink-soft)}.tt-badge{align-self:flex-start;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.tt-badge-inplace{background:#e8f1fb;color:#0c5aa0}.tt-badge-result{background:#efe9fb;color:#5b3fb8}.tt-badge-structural{background:#fdeef4;color:#a8235f}.tt-banner{display:flex;align-items:flex-start;gap:8px;border-radius:var(--tt-radius);padding:10px 12px;margin-bottom:12px;font-size:13px}.tt-banner-error{background:var(--tt-error-bg);color:var(--tt-error-ink)}.tt-banner-body{flex:1}.tt-banner-title{margin:0 0 2px;font-weight:700}.tt-banner-message{margin:0;white-space:pre-wrap;word-break:break-word}.tt-issue{margin:8px 0 0;font-size:12.5px;color:var(--tt-error-ink)}
