.tc-shell{max-width:1500px;margin:0 auto;padding:34px clamp(22px,4vw,64px) 70px}.tc-hero{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:24px}.tc-hero h1{margin:4px 0 10px;font-size:clamp(2rem,4vw,3.25rem);color:#55205f;letter-spacing:-.03em}.tc-hero p{margin:0;max-width:760px;color:#5d6672;line-height:1.65}.tc-eyebrow{font-size:.78rem!important;font-weight:800!important;text-transform:uppercase;letter-spacing:.12em;color:#2994cc!important}.tc-badge{background:#69266f;color:#fff;padding:8px 12px;border-radius:999px;font-weight:800;font-size:.78rem}.tc-card{background:#fff;border:1px solid #dde3e8;border-radius:18px;box-shadow:0 12px 32px rgba(48,50,58,.07);padding:24px;margin-bottom:20px}.tc-notice{padding:13px 16px;border-radius:12px;margin:0 0 18px;font-weight:650}.tc-notice.info{background:#eef7fb;color:#245e77;border:1px solid #cae6f1}.tc-notice.error{background:#fff1f1;color:#8a2525;border:1px solid #efc2c2}.tc-notice.success{background:#eff9f2;color:#28643b;border:1px solid #c6e7cf}.tc-dropzone{display:flex;min-height:245px;align-items:center;justify-content:center;flex-direction:column;gap:9px;border:2px dashed #bfc9d2;border-radius:16px;background:#f8fafb;cursor:pointer;transition:.18s ease;padding:30px;text-align:center}.tc-dropzone:hover,.tc-dropzone:focus{border-color:#69266f;background:#fbf7fb;outline:none}.tc-dropzone.is-dragging{border-color:#2994cc;background:#eef8fc}.tc-dropzone span{color:#77808b}.tc-upload-icon{width:62px;height:62px;border-radius:15px;display:grid;place-items:center;background:#69266f;color:white;font-size:.9rem;font-weight:900;letter-spacing:.06em}.tc-file-info{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px;border:1px solid #dce3e8;border-radius:14px;background:#fafcfd}.tc-file-info div{display:flex;flex-direction:column;gap:5px}.tc-file-info span{font-size:.9rem;color:#737d87}.tc-actions{display:flex;justify-content:flex-end;margin-top:18px}.tc-button{border:0;border-radius:10px;padding:11px 16px;font-weight:800;cursor:pointer}.tc-button:disabled{opacity:.45;cursor:not-allowed}.tc-button.primary{background:#69266f;color:#fff}.tc-button.ghost{background:#f2f4f6;color:#3e4650;border:1px solid #d7dde2}.tc-progress-head,.tc-results-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.tc-progress-head h2,.tc-results-head h2{margin:0 0 5px;color:#3e2142}.tc-progress-head p,.tc-results-head p{margin:0;color:#737d87}.tc-progress{height:12px;border-radius:999px;background:#edf0f2;overflow:hidden;margin:22px 0}.tc-progress span{display:block;width:0;height:100%;background:linear-gradient(90deg,#69266f,#2994cc);transition:width .2s ease}.tc-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.tc-stats>div{padding:14px 16px;border:1px solid #e3e8ec;border-radius:12px;background:#fafbfc}.tc-stats span{display:block;color:#7b838d;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;font-weight:750}.tc-stats strong{display:block;margin-top:5px;font-size:1.25rem;color:#46254a}.tc-filter input{min-width:300px;padding:10px 12px;border:1px solid #ccd4da;border-radius:9px}.tc-table-wrap{overflow:auto;margin-top:18px;border:1px solid #e1e6ea;border-radius:12px}.tc-table{width:100%;border-collapse:collapse;min-width:980px}.tc-table th,.tc-table td{padding:12px 13px;text-align:left;vertical-align:top;border-bottom:1px solid #e8ecef;font-size:.9rem}.tc-table th{background:#f5f7f8;color:#59616b;font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;position:sticky;top:0}.tc-context{max-width:340px;white-space:normal;color:#636d77}.tc-suggestion{display:inline-block;margin:0 5px 5px 0;padding:3px 7px;border-radius:7px;background:#eef7fb;color:#25657d;font-weight:700}.tc-empty{text-align:center;padding:30px;color:#78818b}.tc-page-empty{color:#a06b1c}.tc-error-row td{background:#fff9f3}@media(max-width:800px){.tc-hero,.tc-progress-head,.tc-results-head,.tc-file-info{flex-direction:column}.tc-stats{grid-template-columns:1fr}.tc-filter input{min-width:0;width:100%}.tc-shell{padding-inline:16px}}