
  .tnx-ov { align-items: center; justify-content: center; }
  .tnx-box { --ac: #0284c7; --ac-bg: #f0f9ff; --ac-bd: #bae6fd; background: #fff; border-radius: 18px; width: 92%; max-width: 440px; margin: 0 auto; overflow: hidden;
    box-shadow: 0 24px 60px rgba(15,23,42,.28); display: flex; flex-direction: column; text-align: left; box-sizing: border-box;
    font-family: var(--tsp-ff, Inter), -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; animation: tnxIn .16s ease-out; }
  .tnx-box.tnx-note { --ac: #d97706; --ac-bg: #fffbeb; --ac-bd: #fde68a; }
  @keyframes tnxIn { from { transform: translateY(10px); opacity: .4; } to { transform: none; opacity: 1; } }
  .tnx-head { display: flex; align-items: center; gap: 12px; padding: 16px 18px 14px; border-bottom: 1px solid #eef2f7; position: relative; }
  .tnx-head::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 4px; }
  #symptom-modal .tnx-head::before { background: #0284c7; } #tech-note-modal .tnx-head::before { background: #d97706; }
  .tnx-ic { width: 38px; height: 38px; border-radius: 11px; background: var(--ac-bg); border: 1px solid var(--ac-bd); display: flex; align-items: center; justify-content: center; flex: 0 0 auto; }
  .tnx-ic svg { width: 20px; height: 20px; }
  #symptom-modal .tnx-ic svg { fill: #0284c7; } #tech-note-modal .tnx-ic svg { fill: #d97706; }
  .tnx-tt { flex: 1 1 auto; min-width: 0; }
  .tnx-t { font-family: var(--tsp-ff, Inter, sans-serif); font-size: 18px; font-weight: 700; color: #111; letter-spacing: -.3px; line-height: 1.2; }   
  .tnx-sub { font-family: var(--tsp-ff, Inter, sans-serif); font-size: 11.5px; font-weight: 500; letter-spacing: .1px; color: #6e6e73; margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .tnx-steps { display: flex; gap: 4px; flex: 0 0 auto; }
  .tnx-steps i { width: 22px; height: 6px; border-radius: 3px; background: #e2e8f0; }
  #symptom-modal .tnx-steps i.on { background: #0284c7 !important; } #tech-note-modal .tnx-steps i.on { background: #d97706 !important; }
  .tnx-steps.solo { display: none; }
  .tnx-body { padding: 14px 18px 4px; }
  .tnx-lbl { display: flex; align-items: baseline; gap: 8px; font-size: 11px; font-weight: 800; letter-spacing: .5px; text-transform: uppercase; margin-bottom: 6px; }
  #symptom-modal .tnx-lbl { color: #0284c7; } #tech-note-modal .tnx-lbl { color: #b45309; }
  .tnx-lbl span { font-size: 11.5px; font-weight: 600; letter-spacing: 0; text-transform: none; color: #94a3b8; }
  #symptom-modal .tnx-in, #tech-note-modal .tnx-in { width: 100%; box-sizing: border-box; border: 1.5px solid #cbd5e1 !important; background: #fff !important; border-radius: 12px !important;
    font-size: 16px !important; font-weight: 600 !important; color: #0f172a !important; padding: 13px 14px !important; outline: none !important; font-family: inherit; transition: border-color .15s, box-shadow .15s; }
  #tech-note-modal .tnx-in { min-height: calc(3 * 1.45em + 26px); height: calc(3 * 1.45em + 26px); resize: vertical; font-weight: 500 !important; line-height: 1.45; }   
  #symptom-modal textarea.tnx-in { display: block; resize: none; overflow: hidden; min-height: 0; line-height: 1.35; font-family: inherit; }
  #symptom-modal .tnx-in:focus { border-color: #0284c7 !important; box-shadow: 0 0 0 4px rgba(2,132,199,.14) !important; }
  #tech-note-modal .tnx-in:focus { border-color: #d97706 !important; box-shadow: 0 0 0 4px rgba(217,119,6,.14) !important; }
  html body .tnx-box.warn .tnx-in { border-color: #f97316 !important; }
  .tnx-warn { display: none; align-items: flex-start; gap: 8px; margin-top: 10px; padding: 9px 12px; border-radius: 10px; background: #fff7ed; border: 1px solid #fed7aa; color: #9a3412; font-size: 12.5px; font-weight: 600; line-height: 1.4; }
  .tnx-warn b { font-weight: 800; }
  .tnx-box.warn .tnx-warn { display: flex; animation: tnxShake .3s; }
  @keyframes tnxShake { 25% { transform: translateX(-4px); } 75% { transform: translateX(4px); } }
  .tnx-chips { display: none; flex-wrap: wrap; gap: 6px; max-height: 150px; overflow-y: auto; padding: 10px 2px 2px; scrollbar-width: thin; }
  .tnx-chips .sym-chip-item, .tnx-chips .tn-chip-item { background: var(--ac-bg); border: 1px solid var(--ac-bd); color: #0f172a; padding: 6px 12px; border-radius: 16px; font-size: 13px; font-weight: 700; cursor: pointer; transition: background .12s, transform .1s; }
  .tnx-chips .sym-chip-item span { color: #0284c7 !important; } .tnx-chips .tn-chip-item span { color: #b45309 !important; }
  .tnx-chips .sym-chip-item:active, .tnx-chips .tn-chip-item:active { transform: scale(.95); }
  .tnx-ai { display: flex; align-items: center; gap: 6px; margin: 12px 0 0; font-size: 11.5px; font-weight: 600; color: #64748b; }
  .tnx-ai svg { width: 14px; height: 14px; fill: #8b5cf6; flex: 0 0 auto; }
  .tnx-acts { display: flex; gap: 10px; padding: 14px 18px 16px; }
  .tnx-box { max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); }
  .tnx-body { overflow-y: auto; flex: 1 1 auto; min-height: 0; }
  .tnx-head, .tnx-acts { flex: 0 0 auto; }
  .tnx-acts button { flex: 1; height: 48px; border-radius: 12px; font-size: 15px; font-weight: 800; cursor: pointer; font-family: inherit; }
  .tnx-acts button:last-child { flex: 1.4; }
  @media (max-width: 640px) {
    html body #symptom-modal.tnx-ov, html body #tech-note-modal.tnx-ov { justify-content: flex-start !important; align-items: stretch !important; padding: 0 !important; }   
    html body #symptom-modal.tnx-ov, html body #tech-note-modal.tnx-ov { top: var(--vvt, 0px) !important; bottom: auto !important; height: var(--vvh, 100vh) !important; overflow: hidden !important; z-index: 60500 !important; }   
    .tnx-box { max-height: var(--vvh, 100vh); display: flex; flex-direction: column; }
    .tnx-body { overflow-y: auto; flex: 1 1 auto; min-height: 0; }
    .tnx-head, .tnx-acts { flex: 0 0 auto; }
    #tech-note-modal .tnx-in { min-height: calc(3 * 1.45em + 26px); }
    .tnx-box { width: 100%; max-width: none; border-radius: 0 0 20px 20px; padding-top: env(safe-area-inset-top); animation: tnxDown .2s ease-out; box-shadow: 0 16px 40px rgba(15,23,42,.35); }
    @keyframes tnxDown { from { transform: translateY(-40px); } to { transform: none; } }
  }
  html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-box { max-width: 520px; background: #f4f6f9; border-radius: 18px; }
  @media (min-width: 641px) { html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-box { zoom: .9; } }
  html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-head { background: #fff; border-bottom: 1px solid #e5e9f0; padding: 14px 18px 12px; }
  html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-head::before, html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-ic { display: none; }
  html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-t { font-size: 17px; font-weight: 800; color: #1e293b; letter-spacing: -.2px; }
  html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-sub { font-size: 12px; color: #64748b; }
  html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-body { margin: 0; padding: 0 14px 14px; background: transparent; border: 0; }   
  html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-card { padding: 10px 12px 12px; background: #fff; border: 1px solid #e5e9f0; border-radius: 14px; }
  html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-body > .rv-info { margin-top: 2px; }
  html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-tabs { display: flex; margin: 12px 14px 10px; border: 1px solid #e2e8f0; border-radius: 12px; background: #fff; overflow: hidden; }
  html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-tabs.solo { display: flex; }
  html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-tab { flex: 1 1 0; min-width: 0; display: inline-flex; align-items: center; justify-content: center; gap: 7px; height: 38px; border: 0; background: transparent; color: #0f172a; font-family: var(--tsp-ff, Inter, sans-serif); font-size: 13.5px; font-weight: 700; cursor: pointer; white-space: nowrap; padding: 0 8px; }
  html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-tab + .tnx-tab { border-left: 1px solid #e2e8f0; }
  html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-tab i { width: 8px !important; height: 8px !important; border-radius: 50% !important; flex: 0 0 auto; display: inline-block; }
  html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-tab.sym i { background: #0284c7; } html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-tab.note i { background: #f59e0b; } html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-tab.rv i { background: #7c3aed; }
  html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-tab.on { background: #1e2a44; color: #fff; }
  html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-tab[disabled] { cursor: default; }
  html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-ear:empty { display: none; }
  html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-ear { margin-top: 12px; }
  html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-ear-t { font-size: 10.5px; font-weight: 800; letter-spacing: .08em; color: #64748b; margin: 0 2px 6px; }
  html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-ear-v { background: #fff; border: 1px solid #e5e9f0; border-radius: 12px; padding: 8px 12px; margin-bottom: 6px; display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }   
  html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-ear-h { flex: none; margin-bottom: 0 !important; }
  html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-ear-x { flex: 1 1 auto; min-width: 0; }
  html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-ear-h { font-size: 11.5px; font-weight: 600; color: #64748b; margin-bottom: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-ear-h b { color: #1e2a44; font-weight: 800; }
  html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-ear-x { font-size: 13px; font-weight: 500; color: #0f172a; line-height: 1.4; white-space: pre-wrap; overflow-wrap: anywhere; }
  html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-lbl { font-size: 10.5px; color: #64748b !important; letter-spacing: .06em; }
  html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-in { border: 1px solid #dde3ea !important; border-radius: 10px !important; font-size: 14px !important; padding: 10px 12px !important; }
  html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-in:focus { border-color: #6366f1 !important; box-shadow: 0 0 0 3px rgba(99,102,241,.12) !important; }
  html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-chips .sym-chip-item, html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-chips .tn-chip-item { background: #fff; border: 1px solid #dde3ea; color: #334155; font-size: 12px; font-weight: 600; padding: 5px 11px; }
  html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-ai { color: #7c3aed; } html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-ai svg { fill: #7c3aed; }
  html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-acts { background: #fff; border-top: 1px solid #e5e9f0; padding: 12px 14px 14px; }
  html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-steps i { width: 18px; height: 5px; }
  html body:not(#nx1):not(#nx2) :is(#symptom-modal, #tech-note-modal) .tnx-tabs > i { display: none; }
  .tnx-lbl { position: relative; }
  .tnx-micw { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; text-transform: none; letter-spacing: 0; }
  .tnx-micw[hidden] { display: none; }
  .tnx-micl { height: 24px; border: 1px solid #e2e8f0; border-radius: 7px; background: #fff; color: #475569; font: 600 11px Inter, sans-serif; padding: 0 4px; }
  .tnx-mic { display: inline-flex; align-items: center; gap: 5px; height: 26px; padding: 0 9px 0 7px; border-radius: 8px; border: 1px solid #cbd5e1; background: #fff; color: #0f172a; font: 700 11.5px Inter, sans-serif; cursor: pointer; }
  .tnx-mic svg { width: 14px; height: 14px; fill: currentColor; } .tnx-mic i { font-style: normal; }
  .tnx-mic.on { background: #fee2e2; border-color: #fca5a5; color: #b91c1c; } .tnx-mic.on svg { animation: tnxMic 1s ease-in-out infinite; }
  @keyframes tnxMic { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
  #tnx-voice { position: fixed; left: 0; right: 0; top: var(--vvt, 0px); height: var(--vvh, 100vh); z-index: 60600; background: rgba(15, 23, 42, .45); display: flex; align-items: flex-end; justify-content: center; padding: 0; box-sizing: border-box; font-family: Inter, -apple-system, 'Segoe UI', Roboto, sans-serif; }
  #tnx-voice[hidden] { display: none; }
  .tvx-card { width: 100%; max-width: 560px; background: #fff; color: #0f172a; border-radius: 24px 24px 0 0; padding: 12px 18px 18px; box-shadow: 0 -12px 40px rgba(0, 0, 0, .25); box-sizing: border-box; max-height: 100%; overflow: auto; }
  @media (min-width: 700px) { #tnx-voice { align-items: center; } .tvx-card { border-radius: 24px; } }
  .tvx-grab { width: 40px; height: 4px; border-radius: 2px; background: #e2e8f0; margin: 0 auto 10px; }
  @media (min-width: 700px) { .tvx-grab { display: none; } }
  .tvx-top { display: flex; align-items: center; gap: 9px; font-weight: 800; font-size: 15px; }
  .tvx-dot { width: 10px; height: 10px; border-radius: 50%; background: #f43f5e; box-shadow: 0 0 0 4px rgba(244, 63, 94, .2); animation: tnxMic 1.1s ease-in-out infinite; }
  .tvx-time { margin-left: auto; color: #64748b; font-weight: 600; font-variant-numeric: tabular-nums; }
  .tvx-ring { position: relative; width: 132px; height: 132px; margin: 12px auto 4px; }
  .tvx-ring canvas { position: absolute; inset: 0; width: 132px; height: 132px; }
  .tvx-micb { position: absolute; left: 31px; top: 31px; width: 70px; height: 70px; border-radius: 50%; background: #f43f5e; display: flex; align-items: center; justify-content: center; box-shadow: 0 8px 20px rgba(244, 63, 94, .35); border: 0; padding: 0; cursor: pointer; }
  .tvx-micb svg { width: 30px; height: 30px; fill: #fff; }
  .tvx-micb.paused { background: #94a3b8; box-shadow: 0 8px 20px rgba(100, 116, 139, .3); }
  .tvx-dot.paused { background: #94a3b8; box-shadow: 0 0 0 4px rgba(148, 163, 184, .25); animation: none; }
  .tvx-tools { display: flex; justify-content: center; margin-top: 6px; }
  .tvx-again { height: 30px; padding: 0 12px; border-radius: 999px; border: 1px solid #e2e8f0; background: #fff; color: #475569; font: 700 12px Inter, -apple-system, sans-serif; cursor: pointer; }
  .tvx-said { font-size: 15px; color: #475569; line-height: 1.45; min-height: 42px; max-height: 88px; overflow: auto; text-align: center; word-break: break-word; }
  .tvx-said em { font-style: normal; color: #94a3b8; }
  .tvx-k { font-size: 10.5px; font-weight: 800; letter-spacing: .7px; text-transform: uppercase; color: #94a3b8; margin: 10px 0 4px; }
  .tvx-en { display: block; width: 100%; box-sizing: border-box; background: #fff; border: 1.5px solid #1e2a44; color: #0f172a; border-radius: 12px; padding: 11px 12px; font: 600 16.5px/1.4 Inter, -apple-system, sans-serif; min-height: 48px; max-height: 120px; resize: none; outline: none; }
  .tvx-en:focus { box-shadow: 0 0 0 3px rgba(30, 42, 68, .12); }
  .tvx-en::placeholder { color: #94a3b8; font-weight: 500; }
  .tvx-hint { font-size: 11.5px; color: #94a3b8; margin-top: 6px; min-height: 14px; }
  .tvx-fo { display: flex; gap: 10px; margin-top: 14px; }
  .tvx-b { flex: 1; height: 46px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font: 800 15.5px Inter, -apple-system, sans-serif; border: 1.5px solid #cbd5e1; background: #fff; color: #0f172a; cursor: pointer; }
  .tvx-b.d { background: #1e2a44; border-color: #1e2a44; color: #fff; }
  .tvx-b:disabled { opacity: .5; }
