/* Uzman sınıflandırma (GTİP motoru v5) — expert-ui.mjs */
.xp-steps{display:flex;gap:8px;margin:0 0 20px;padding:0;list-style:none;flex-wrap:wrap}
.xp-steps li{display:flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);font-size:12px;font-weight:600}
.xp-steps li span{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--soft);color:var(--ink);font-size:11px}
.xp-steps li.active{border-color:var(--accent);color:var(--ink)}
.xp-steps li.active span{background:var(--accent);color:#fff}
.xp-steps li.done{color:var(--accent)}
.xp-steps li.done span{background:var(--accent);color:#fff}
.xp-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:20px;align-items:start;margin-bottom:20px}
.xp-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px}
.xp-card-head h3{margin:0;font-size:16px}
.xp-form>.field{margin-top:14px}
.xp-form>.field small{font-size:12px}
.xp-photo{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:12px;align-items:start;margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}
.xp-photo img{width:96px;height:96px;object-fit:cover;border-radius:8px}
.xp-photo p{margin:6px 0 2px;font-size:13px}
.xp-photo small{font-size:12px;color:var(--muted)}
.xp-doc{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}
.xp-table table{font-size:13px}
.xp-table th{white-space:nowrap}
.xp-table td{vertical-align:top}
.xp-quote{color:var(--muted);font-size:12px;max-width:320px;overflow-wrap:anywhere}
.xp-num{font-variant-numeric:tabular-nums;white-space:nowrap}
.xp-missing{margin-top:8px}
.xp-facts h4{margin:16px 0 6px;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.xp-rules{margin:0;padding-left:18px;font-size:13px;line-height:1.5}
.xp-rules small{color:var(--muted)}
.xp-questions .field{margin-top:12px}
.xp-report{margin-top:4px}
.xp-hero{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(240px,1fr);gap:24px;align-items:start;padding-bottom:16px;border-bottom:1px solid var(--line)}
.xp-code{margin:4px 0 6px;font-size:34px;font-variant-numeric:tabular-nums;letter-spacing:.01em}
.xp-path{margin:0 0 8px;font-size:13px;color:var(--muted)}
.xp-tanim{margin:0;font-size:15px}
.xp-guven{padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}
.xp-guven-head{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;color:var(--muted)}
.xp-guven-head b{font-size:22px;color:var(--ink)}
.xp-guven-head b.ok{color:var(--accent)}
.xp-guven-head b.warn{color:#9a6b00}
.xp-guven-head b.danger{color:var(--danger)}
.xp-meter{height:8px;margin:8px 0 6px;border-radius:999px;background:var(--line);overflow:hidden}
.xp-meter span{display:block;height:100%;border-radius:999px;background:var(--accent)}
.xp-meter span.warn{background:#d9a300}
.xp-meter span.danger{background:var(--danger)}
.xp-guven small{display:block;font-size:12px;color:var(--muted)}
.xp-nedenler{margin:8px 0 0;padding-left:16px;font-size:12px;line-height:1.5}
.xp-denetim{border-color:var(--danger)}
.xp-oneri{margin:10px 0 0;padding:8px 10px;border-radius:8px;background:#fff;font-size:12px;border-left:3px solid var(--accent)}
.xp-oneri.warn{border-left-color:#d9a300}
.xp-oneri.danger{border-left-color:var(--danger)}
.xp-yol{margin:0;padding-left:0;list-style:none;counter-reset:yol}
.xp-yol li{position:relative;padding:8px 0 8px 28px;border-left:2px solid var(--line);margin-left:10px;font-size:13px}
.xp-yol li::before{counter-increment:yol;content:counter(yol);position:absolute;left:-11px;top:8px;width:20px;height:20px;border-radius:50%;background:var(--accent);color:#fff;font-size:11px;display:grid;place-items:center}
.xp-yol li b{font-size:14px}
.xp-yol li span{color:var(--muted)}
.xp-yol li small{color:var(--muted)}
.xp-haric{margin:0;padding-left:18px;font-size:13px;line-height:1.5}
.xp-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:16px}
.xp-report h3{margin:16px 0 8px;font-size:14px}
.xp-report h3 small{font-weight:400;color:var(--muted)}
.xp-chip{display:inline-block;margin:1px 2px 1px 0;padding:1px 7px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:11px;font-variant-numeric:tabular-nums;color:var(--ink);text-decoration:none;white-space:nowrap}
a.xp-chip:hover{border-color:var(--accent);color:var(--accent)}
.xp-evidence{margin-top:16px}
.xp-evidence summary{cursor:pointer;font-size:13px;font-weight:600}
.xp-evidence p{scroll-margin-top:16px;margin:10px 0;font-size:13px}
.xp-evidence p:target{background:var(--soft);border-radius:8px;padding:8px}
.xp-pre{white-space:pre-wrap}
.xp-foot{margin-top:12px}
.xp-actions{margin-top:12px;flex-wrap:wrap}
.xp-pages{margin-top:12px;padding:12px;border:1px dashed var(--line);border-radius:12px;background:var(--bg)}
.xp-pages .field small{font-weight:400;color:var(--muted)}
.xp-outline{margin-top:8px;font-size:12px}
.xp-outline ol{margin:8px 0 0;padding-left:28px;max-height:220px;overflow:auto;line-height:1.6}
.xp-outline li.hit{font-weight:700;color:var(--accent)}
.xp-feedback{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--line);font-size:13px}
.xp-feedback small{color:var(--muted);font-size:12px}
.xp-history{margin-top:20px}
.xp-history h3 small{font-weight:400;color:var(--muted)}
@media print{
  body.xp-printing .sidebar,body.xp-printing .topbar,body.xp-printing .gtip-tabs,body.xp-printing .demo-strip,body.xp-printing .xp-steps,body.xp-printing .xp-form,body.xp-printing .xp-actions,body.xp-printing .xp-feedback,body.xp-printing .xp-history,body.xp-printing .notice.xp-sources,body.xp-printing [data-form="expert-answers"]{display:none!important}
  body.xp-printing .app-shell,body.xp-printing .main-wrap,body.xp-printing main{display:block;margin:0;padding:0;background:#fff}
  body.xp-printing .xp-grid{display:block}
  body.xp-printing .card{border:none;box-shadow:none;padding:0 0 16px}
  body.xp-printing .xp-evidence{display:block}
  body.xp-printing .xp-evidence[open] summary,body.xp-printing .xp-evidence summary{display:none}
  body.xp-printing .xp-evidence>*{display:block}
  body.xp-printing a.xp-chip{text-decoration:none;color:#000;border-color:#999}
  body.xp-printing .xp-quote{max-width:none}
}
@media (max-width:900px){
  .xp-grid,.xp-hero,.xp-cols{grid-template-columns:minmax(0,1fr)}
  .xp-code{font-size:26px}
  .xp-photo{grid-template-columns:72px minmax(0,1fr)}
  .xp-photo img{width:72px;height:72px}
  .xp-photo .btn{grid-column:1/-1;justify-self:start}
  /* Dar ekranda metin alıntısı sütunu satırları aşırı uzatıyor; değer ve kaynak yeter. */
  .xp-facts .xp-table th:nth-child(4),.xp-facts .xp-table td:nth-child(4){display:none}
  .xp-facts .xp-table td{padding-top:8px;padding-bottom:8px}
}
/* Çoklu fotoğraf ve doküman, müşavir özeti, tarife yolu, menşe seçimi (GTİP motoru v6.2) */
.xp-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px;margin-top:12px}
.xp-photo-item{margin:0;padding:6px;border:1px solid var(--line);border-radius:10px;background:var(--bg);display:grid;gap:4px}
.xp-photo-item img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:6px}
.xp-photo-item figcaption{display:flex;justify-content:space-between;align-items:center;gap:4px;font-size:12px;color:var(--muted)}
.xp-doc-item+.xp-doc-item{border-top:1px dashed var(--line);margin-top:8px;padding-top:4px}
.xp-ozet{margin:16px 0;padding:14px 16px;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:12px;background:var(--bg)}
.xp-ozet h3{margin:0 0 6px}
.xp-ozet p{margin:6px 0;font-size:14px;line-height:1.6}
.xp-esya span{font-weight:600}
.xp-agac{margin:0 0 12px;padding:0;list-style:none;font-size:13px}
.xp-agac li{padding:4px 0 4px calc(var(--d,0) * 14px);border-bottom:1px solid var(--line)}
.xp-agac li span{color:var(--muted)}
.xp-mense{max-width:320px}
@media print{.xp-mense select{border:0;appearance:none}}
/* Analiz ilerleme ekranı (expert-ui ilerlemeHtml): aşamalar sırayla yanar, taranan kaynaklar ışıklanır, çubukta akan şerit. */
.xp-progress{margin:14px 0 4px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,rgba(23,100,81,.05),transparent)}
.xp-progress-head{display:flex;align-items:center;gap:10px}
.xp-progress-head b{font-size:20px;font-variant-numeric:tabular-nums}
.xp-progress-head .hint{margin:0 0 0 auto;font-variant-numeric:tabular-nums}
.xp-scan{position:relative;width:22px;height:22px;border-radius:50%;border:2px solid var(--accent);flex:none}
.xp-scan::after{content:"";position:absolute;inset:3px;border-radius:50%;border:2px solid transparent;border-top-color:var(--accent);animation:xp-don 1s linear infinite}
.xp-meter-live span{position:relative;overflow:hidden;transition:width .9s ease}
.xp-meter-live span::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);transform:translateX(-100%);animation:xp-serit 1.6s ease-in-out infinite}
.xp-asamalar{list-style:none;margin:10px 0 8px;padding:0;display:grid;gap:6px;font-size:13px}
.xp-asamalar li{display:flex;align-items:center;gap:8px;color:var(--muted);transition:color .3s}
.xp-asamalar .xp-dot{width:10px;height:10px;border-radius:50%;background:var(--line);flex:none;transition:background .3s}
.xp-asamalar li.ok{color:inherit}
.xp-asamalar li.ok .xp-dot{background:var(--accent)}
.xp-asamalar li.aktif{color:inherit;font-weight:600}
.xp-asamalar li.aktif .xp-dot{background:var(--accent);animation:xp-nabiz 1.2s ease-out infinite}
.xp-kaynaklar{list-style:none;margin:0 0 6px;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.xp-kaynaklar li{font-size:12px;padding:3px 9px;border-radius:999px;border:1px solid var(--line);color:var(--muted);transition:all .4s}
.xp-kaynaklar li.on{border-color:var(--accent);color:var(--accent);background:rgba(23,100,81,.08)}
@keyframes xp-don{to{transform:rotate(360deg)}}
@keyframes xp-serit{to{transform:translateX(100%)}}
@keyframes xp-nabiz{0%{box-shadow:0 0 0 0 rgba(23,100,81,.45)}100%{box-shadow:0 0 0 8px rgba(23,100,81,0)}}
@media (prefers-reduced-motion:reduce){.xp-scan::after,.xp-meter-live span::after,.xp-asamalar li.aktif .xp-dot{animation:none}.xp-meter-live span{transition:none}}
/* Sade rapor (GTİP motoru v7): özet kartı, emsal desteği, vergi ve alternatif kodlar, kontrol listesi; ayrıntı katlanmış.
   Açılış animasyonu yalnız .xp-anim varken oynar; --gecen negatif gecikmesi yeniden çizimde animasyonu baştan oynatmaz. */
.xp-sonuc{position:relative;overflow:hidden;padding:18px 20px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(135deg,rgba(23,100,81,.07),rgba(23,100,81,0) 60%),#fff}
.xp-sonuc.warn{background:linear-gradient(135deg,rgba(217,163,0,.09),rgba(217,163,0,0) 60%),#fff}
.xp-sonuc.danger{background:linear-gradient(135deg,rgba(190,40,40,.07),rgba(190,40,40,0) 60%),#fff}
.xp-sonuc-ust{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:start}
.xp-code .xp-kod-g{display:inline-block}
.xp-code .xp-kod-n{color:var(--muted);margin:0 1px}
.xp-rozet{min-width:118px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:#fff;text-align:center}
.xp-rozet>b{display:block;font-size:30px;line-height:1;font-variant-numeric:tabular-nums}
.xp-rozet.ok>b{color:var(--accent)}
.xp-rozet.warn>b{color:#9a6b00}
.xp-rozet.danger>b{color:var(--danger)}
.xp-rozet>small{display:block;margin-top:2px;font-size:11px;color:var(--muted)}
.xp-rozet .xp-meter{margin:8px 0 0}
.xp-guven-cumle{margin:12px 0 0;padding:8px 12px;border-radius:10px;background:var(--bg);font-size:14px;border-left:4px solid var(--accent)}
.xp-guven-cumle.warn{border-left-color:#d9a300}
.xp-guven-cumle.danger{border-left-color:var(--danger)}
.xp-kutular{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
.xp-kutu{display:block;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);text-decoration:none;transition:border-color .2s,transform .2s}
.xp-kutu:hover{border-color:var(--accent);transform:translateY(-1px)}
.xp-kutu small{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
.xp-kutu b{display:block;margin-top:3px;font-size:14px;line-height:1.35}
.xp-kutu.ok{border-top:3px solid var(--accent)}
.xp-kutu.warn{border-top:3px solid #d9a300}
.xp-kutu .danger,.xp-emsal-ozet .danger,.xp-emsal-kod small.danger{color:var(--danger)}
.xp-kutu .warn{color:#9a6b00}
.xp-yukleniyor{color:var(--muted);font-weight:400}
.xp-neden,.xp-yap,.xp-sonuc .xp-esya{margin:10px 0 0;font-size:14px;line-height:1.55}
.xp-yap{padding:8px 12px;border-radius:10px;background:var(--bg)}
.xp-bolum{margin-top:20px;scroll-margin-top:16px}
.xp-emsal-bar{display:flex;gap:3px;height:10px;margin:6px 0 8px;border-radius:999px;overflow:hidden;background:var(--line)}
.xp-emsal-bar span{flex:0 0 var(--w);height:100%}
.xp-emsal-bar .ok{background:var(--accent)}
.xp-emsal-bar .danger{background:var(--danger)}
.xp-emsal-bar .muted{background:#b8bfc7}
.xp-emsal-bar .ok-acik{background:#9fcdb9}
.xp-emsal-ozet .ok-acik{color:#3f7f69}
.xp-emsal-k.destekler.benzetme{border-left-color:#9fcdb9}
.xp-emsal-uyari{margin:-4px 0 10px}
.xp-emsal-ozet{margin:0 0 10px;font-size:13px;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline}
.xp-emsal-ozet .ok{color:var(--accent);font-weight:700}
.xp-emsal-ozet .danger{font-weight:700}
.xp-emsal-ozet .muted,.xp-emsal-ozet small{color:var(--muted)}
.xp-emsal-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin:0;padding:0;list-style:none}
.xp-emsal-k{padding:10px 12px;border:1px solid var(--line);border-left:4px solid #b8bfc7;border-radius:12px;background:#fff;font-size:13px}
.xp-emsal-k.destekler{border-left-color:var(--accent)}
.xp-emsal-k.celisir{border-left-color:var(--danger)}
.xp-emsal-ust{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.xp-emsal-ust small{color:var(--muted);font-size:11px}
.xp-emsal-ust .xp-chip{margin-left:auto}
.xp-emsal-kod{margin-top:6px}
.xp-emsal-kod b{font-size:15px}
.xp-emsal-kod small{font-size:11px;color:var(--muted)}
.xp-emsal-kod small.ok{color:var(--accent);font-weight:700}
.xp-emsal-k p{margin:4px 0 0;line-height:1.45}
.xp-emsal-not{display:block;margin-top:4px;color:var(--muted);font-size:12px}
.xp-secilen td{background:rgba(23,100,81,.06)}
.xp-check{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.xp-check li{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px dashed var(--line);border-radius:12px;font-size:13px}
.xp-kutucuk{flex:0 0 18px;height:18px;margin-top:1px;border:2px solid #d9a300;border-radius:5px}
.xp-check small.muted{color:var(--muted)}
.xp-detay{margin-top:22px;border:1px solid var(--line);border-radius:14px;padding:0 16px}
.xp-detay>summary{cursor:pointer;padding:14px 0;list-style:none}
.xp-detay>summary::-webkit-details-marker{display:none}
.xp-detay>summary b{display:block;font-size:15px}
.xp-detay>summary b::before{content:"▸ ";display:inline-block;transition:transform .2s}
.xp-detay[open]>summary b::before{transform:rotate(90deg)}
.xp-detay>summary small{display:block;margin-top:2px;color:var(--muted);font-size:12px}
.xp-detay[open]{padding-bottom:14px}
.xp-detay .xp-guven{margin:12px 0}
/* Açılış animasyonu */
.xp-anim .xp-in{animation:xp-gir .6s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--d,0ms) + var(--gecen,0ms))}
.xp-anim .xp-kod-g{animation:xp-kod .55s cubic-bezier(.2,.9,.25,1.25) both;animation-delay:calc(var(--d,0ms) + var(--gecen,0ms))}
.xp-anim .xp-rozet{animation:xp-damga .6s cubic-bezier(.2,.9,.3,1.4) both;animation-delay:calc(650ms + var(--gecen,0ms))}
.xp-anim .xp-rozet .xp-meter span{animation:xp-dol 1.3s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(800ms + var(--gecen,0ms))}
.xp-anim .xp-emsal-bar span{animation:xp-bar 1s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(500ms + var(--gecen,0ms))}
.xp-anim .xp-sonuc::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.75) 50%,transparent 65%);transform:translateX(-120%);animation:xp-parilti 1.4s ease-in-out both;animation-delay:calc(900ms + var(--gecen,0ms))}
@keyframes xp-gir{from{opacity:0;transform:translateY(14px)}}
@keyframes xp-kod{from{opacity:0;transform:translateY(.6em) scale(.85);filter:blur(5px)}}
@keyframes xp-damga{from{opacity:0;transform:scale(1.35) rotate(-4deg)}}
@keyframes xp-dol{from{width:0}}
@keyframes xp-bar{from{flex-basis:0}}
@keyframes xp-parilti{to{transform:translateX(120%)}}
@media (prefers-reduced-motion:reduce){.xp-anim *,.xp-anim .xp-sonuc::after{animation:none!important}.xp-kutu{transition:none}}
@media (max-width:640px){
  .xp-sonuc{padding:14px}
  .xp-sonuc-ust{grid-template-columns:minmax(0,1fr)}
  .xp-rozet{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:8px;text-align:left}
  .xp-rozet>small{margin:0}
  .xp-rozet .xp-meter{margin:0}
  .xp-kutular{grid-template-columns:minmax(0,1fr);gap:6px}
  .xp-kutu{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:8px 12px}
  .xp-kutu b{margin:0;text-align:right;font-size:13px}
  .xp-kutu.ok,.xp-kutu.warn{border-top-width:1px;border-left:3px solid var(--accent)}
  .xp-kutu.warn{border-left-color:#d9a300}
  /* Vergi tablosu dar ekranda kart: durum üstte, kod ve vergi altında. */
  #xp-vergi .xp-table thead{display:none}
  #xp-vergi .xp-table table,#xp-vergi .xp-table tbody{display:block;min-width:0}
  #xp-vergi .xp-table tr{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 12px;padding:8px 0;border-bottom:1px solid var(--line)}
  #xp-vergi .xp-table td{display:block;padding:0 8px;border:0}
  #xp-vergi .xp-table td:first-child{grid-column:1/-1;font-weight:600}
  #xp-vergi .xp-table td:last-child{text-align:right}
}
.xp-sonuc .xp-esya span{font-weight:500}
@media print{
  .xp-anim *,.xp-anim .xp-sonuc::after{animation:none!important}
  body.xp-printing .xp-detay{border:0;padding:0}
  body.xp-printing .xp-detay>summary small,body.xp-printing .xp-kutu{transform:none}
  body.xp-printing .xp-emsal-k,body.xp-printing .xp-check li{break-inside:avoid}
}
