/* QDATALINE ortak arayüz omurgası — 248/66 px menü, marka ve SVG ikon dili. */
.svg-sprite{position:absolute;width:0;height:0;overflow:hidden}.side{width:248px;padding:0 12px 14px;transition:width .18s ease;position:sticky}.side:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#047857,var(--leaf),#a3e635)}.brand{gap:11px;padding:15px 4px 12px}.brand-toggle{cursor:pointer;position:relative}.brand-toggle:after{content:"‹‹";position:absolute;right:5px;top:18px;color:var(--muted);font-weight:800}.logo-mark{width:54px;height:32px;flex:0 0 auto}.logo-txt .n{font:500 16px/1 "Space Grotesk",Inter,sans-serif;letter-spacing:.5px}.logo-txt .n b{font-weight:700;background:linear-gradient(90deg,#10b981,#a3e635);background-clip:text;-webkit-background-clip:text;color:transparent}.brand small{text-transform:uppercase;white-space:nowrap}.side nav{overflow-y:auto;overflow-x:hidden}.nav,.nav-action{align-items:center}.nav .ico,.nav-action .ico{width:19px;height:19px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}body.nav-collapsed .side{width:66px;overflow:visible}body.nav-collapsed .side .logo-txt,body.nav-collapsed .side nav p,body.nav-collapsed .side .nav span,body.nav-collapsed .side .nav-action span,body.nav-collapsed .side .nav-count,body.nav-collapsed .side .emergency-button b{display:none}body.nav-collapsed .side .brand{justify-content:center;padding-left:0;padding-right:0}body.nav-collapsed .side .logo-mark{width:42px}body.nav-collapsed .brand-toggle:after{content:"››";left:0;right:0;top:auto;bottom:-4px;text-align:center}body.nav-collapsed .side .nav,body.nav-collapsed .side .nav-action{justify-content:center;padding:11px 0}.login-brand .logo-txt{text-align:left}
@media(max-width:900px){.side,body.nav-collapsed .side{width:248px}body.nav-collapsed .side .logo-txt,body.nav-collapsed .side nav p,body.nav-collapsed .side .nav span,body.nav-collapsed .side .nav-action span,body.nav-collapsed .side .nav-count,body.nav-collapsed .side .emergency-button b{display:revert}body.nav-collapsed .side .nav,body.nav-collapsed .side .nav-action{justify-content:flex-start;padding:10px 12px}}
.new-species-box{border:1px solid var(--border);border-radius:12px;padding:14px;background:color-mix(in srgb,var(--accent) 5%,transparent)}
.new-species-row{display:grid;grid-template-columns:2fr .65fr 1.5fr 1.25fr;gap:10px;margin-top:8px}
.catalog-check{display:flex!important;align-items:center;gap:8px;margin-top:10px;font-weight:600}
.catalog-check input{width:auto}
@media(max-width:900px){.new-species-row{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.new-species-row{grid-template-columns:1fr}}

/* Geniş QR kimlik, izleme, analiz ve kayıt ekranlarında görünür çift yönlü kaydırma. */
:root{--scroll-track:color-mix(in srgb,var(--card) 78%,var(--accent) 22%);--scroll-thumb:color-mix(in srgb,var(--accent) 72%,#0f172a 28%)}
.table-wrap,.modal,.side nav,.content{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) var(--scroll-track)}
.table-wrap{max-width:100%;max-height:68vh;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable both-edges}
.table-wrap table{min-width:max-content}
.modal{overscroll-behavior:contain;scrollbar-gutter:stable}
.table-wrap::-webkit-scrollbar,.modal::-webkit-scrollbar,.side nav::-webkit-scrollbar,.content::-webkit-scrollbar{width:11px;height:11px}
.table-wrap::-webkit-scrollbar-track,.modal::-webkit-scrollbar-track,.side nav::-webkit-scrollbar-track,.content::-webkit-scrollbar-track{background:var(--scroll-track);border-radius:10px}
.table-wrap::-webkit-scrollbar-thumb,.modal::-webkit-scrollbar-thumb,.side nav::-webkit-scrollbar-thumb,.content::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--accent),var(--scroll-thumb));border:2px solid var(--scroll-track);border-radius:10px}
.table-wrap::-webkit-scrollbar-corner,.modal::-webkit-scrollbar-corner{background:var(--scroll-track)}
.ai-species-output{margin:12px 0}.ai-candidate-list{display:grid;gap:8px;margin-bottom:8px}.ai-candidate{display:grid;gap:3px;text-align:left;width:100%;padding:11px;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:9px;background:var(--soft);color:var(--ink);cursor:pointer}.ai-candidate:hover{border-color:var(--accent)}.ai-candidate small,.ai-candidate span{color:var(--muted)}

/* QDATALINE ortak kabuk boyut/yapı standardı (248px menü) — IPM'in kendi yeşil (--leaf) marka rengiyle. */
.side{width:248px;padding:0;background:color-mix(in srgb,#fff 4%,var(--card));border-right:1px solid var(--line)}
.side:before{height:3px;background:linear-gradient(90deg,#047857,var(--leaf),#a3e635)}
.brand{padding:15px 15px 12px;margin:0;border-bottom:1px solid var(--line)}
.brand-toggle{border-radius:9px}.brand-toggle:hover{background:rgba(34,197,94,.08)}
.brand-toggle:after{top:8px;right:6px;font-size:13px}.logo-mark{width:54px;height:32px}
.logo-txt .n b{background:linear-gradient(90deg,var(--leaf),#a3e635);background-clip:text;-webkit-background-clip:text}
.brand small{font-size:9.5px;letter-spacing:.4px;margin-top:3px;color:var(--muted)}
.side nav{display:flex;flex-direction:column;gap:2px;padding:12px 12px 24px}
.side nav p{color:var(--muted);font-size:10px;font-weight:700;letter-spacing:1px;padding:12px 10px 6px;margin:0}
.nav,.nav-action{gap:11px;color:var(--muted);padding:9px 11px;border-radius:9px;font-size:13px;font-weight:600;margin-bottom:2px}
.nav.on .ico{color:var(--leaf)}
.sidebar-foot{margin-top:auto;padding:10px 15px 14px;border-top:1px solid var(--line)}
.lang-switch{display:flex;gap:4px}.lang-switch button{flex:1;font-size:11px;padding:4px 0;border-radius:6px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer}.lang-switch button.on{background:linear-gradient(120deg,var(--leaf),#a3e635);color:#052e2b;border-color:transparent;font-weight:800}
body.nav-collapsed .sidebar-foot .lang-switch{flex-direction:column}body.nav-collapsed .side{width:66px}body.nav-collapsed .side nav{padding:12px 8px 24px}body.nav-collapsed .brand{padding:15px 6px 12px}
.admin-layout{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:520px}.admin-datasets{padding:12px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:5px;max-height:70vh;overflow:auto}.admin-datasets button{border:0;border-radius:9px;padding:10px;text-align:left;background:transparent;color:var(--ink);cursor:pointer}.admin-datasets button:hover,.admin-datasets button.on{background:rgba(34,197,94,.1)}.admin-datasets small{display:block;color:var(--muted);margin-top:2px}.admin-data{min-width:0;padding:14px}.admin-json{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:14px;max-height:65vh;overflow:auto;color:var(--ink)}@media(max-width:800px){.admin-layout{grid-template-columns:1fr}.admin-datasets{max-height:220px;border-right:0;border-bottom:1px solid var(--line)}}
.emergency-pinned{margin:4px 0 10px;border:1px solid rgba(248,113,113,.28);background:rgba(153,27,27,.12)}.emergency-pinned:hover{background:rgba(153,27,27,.22);border-color:rgba(248,113,113,.48)}
/* QDL-NAV v1 (08.10.2026): standart sol menu — modul rengiyle yari saydam hover/aktif dolgu; pasif yazi tema degiskeni */
:root{--navitem-ink:#c9d8cf;--nav-line:var(--leaf)}
html[data-theme=light]{--navitem-ink:#2b3a31;--nav-line:#1a9647}
.nav,.nav-action{color:var(--navitem-ink)}
.nav:hover,.nav-action:hover{background:color-mix(in srgb,var(--leaf) 8%,transparent);color:var(--ink)}
.nav.on{background:color-mix(in srgb,var(--leaf) 16%,transparent);color:var(--ink);box-shadow:inset 3px 0 0 var(--nav-line,var(--leaf));font-weight:600}
.nav:focus-visible,.nav-action:focus-visible{outline:2px solid var(--nav-line,var(--leaf));outline-offset:-2px}
/* DÖF modülüyle aynı 248/66 px masaüstü menü davranışı. */
@media(min-width:901px){.side{width:248px;min-width:248px;flex:0 0 248px}body.nav-collapsed .side{width:66px;min-width:66px;flex-basis:66px}}
@media(max-width:900px){.side,body.nav-collapsed .side{width:248px;min-width:248px;flex:0 0 248px}body.nav-collapsed .sidebar-foot .lang-switch{flex-direction:row}body.nav-collapsed .side nav{padding:12px 12px 24px}body.nav-collapsed .brand-toggle:after{content:"×"}}
/* IPM sayfalarını Ekipman modülündeki gibi bağımsız açılıp kapanan gruplar halinde göster. */
.nav-group{position:relative;margin-bottom:4px}
.nav-group-head{display:flex;align-items:center;gap:8px;width:100%;padding:12px 10px 6px;border:0;background:transparent;color:var(--muted);font:700 10px/1.3 Inter,system-ui,sans-serif;letter-spacing:1px;text-align:left;cursor:pointer}
.nav-group-head:hover,.nav-group-head:focus-visible{color:var(--leaf)}
.nav-group-head:focus-visible{outline:2px solid var(--leaf);outline-offset:-2px;border-radius:6px}
.nav-group-head .grp-lbl{flex:1;text-transform:uppercase}
.nav-group-head .chev{font-size:11px;opacity:.8;transition:transform .18s}
.nav-group.collapsed .nav-group-head .chev{transform:rotate(-90deg)}
.nav-group-head .grp-ico{display:none;width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.nav-group-body{display:flex;flex-direction:column;gap:2px}
.nav-group.collapsed>.nav-group-body{display:none}
.nav-group-body .flyout-title{display:none}
@media(min-width:901px){
  body.nav-collapsed .side nav{overflow:visible}
  body.nav-collapsed .nav-group-head{justify-content:center;padding:10px 0;border-radius:9px}
  body.nav-collapsed .nav-group-head:hover{background:color-mix(in srgb,var(--leaf) 8%,transparent)}
  body.nav-collapsed .nav-group-head .grp-ico{display:block}
  body.nav-collapsed .nav-group-head .grp-lbl,body.nav-collapsed .nav-group-head .chev{display:none}
  body.nav-collapsed .nav-group-body{display:none;position:absolute;left:calc(100% + 8px);top:0;min-width:230px;max-height:80vh;overflow-y:auto;padding:8px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);z-index:60}
  body.nav-collapsed .nav-group:hover>.nav-group-body,body.nav-collapsed .nav-group.flyout-open>.nav-group-body{display:flex}
  body.nav-collapsed .nav-group-body .flyout-title{display:block;padding:5px 8px 9px;border-bottom:1px solid var(--line);color:var(--muted);font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase}
  body.nav-collapsed .nav-group-body .nav,body.nav-collapsed .nav-group-body .nav-action{justify-content:flex-start;padding:9px 11px}
  body.nav-collapsed .nav-group-body .nav span,body.nav-collapsed .nav-group-body .nav-action span{display:inline}
  body.nav-collapsed .nav-group-body .nav-count,body.nav-collapsed .nav-group-body .emergency-button b{display:inline-block}
}
