/* ============================================================================
   Siberson Unified Console — panel.css
   Design system for the merged Veriket (Discovery + Classification) + Verikor (DLP)
   administration panel. Tokens mirror the corporate site (styles.css) so the
   console stays on Siberson's corporate line. Built dependency-free and
   componentised so each block maps cleanly to an ASP.NET Razor partial.
   ========================================================================== */

/* ----------------------------------------------------------------------------
   1. Design tokens
   -------------------------------------------------------------------------- */
:root{
  /* Corporate palette (from siberson.com styles.css) */
  --ink:#0A1020; --ink-2:#1D2637; --body:#48546A; --muted:#66738A;
  --line:#E6EBF2; --line-2:#EEF2F8;
  --bg:#FFFFFF; --bg-soft:#F5F8FD; --bg-tint:#EEF3FF;
  --brand:#1664fe; --brand-600:#0f4fd6; --brand-050:#EAF1FF; --brand-2:#4d93ff;
  --grad:linear-gradient(135deg,#1664fe 0%,#4d93ff 100%);
  --grad-soft:linear-gradient(135deg,#EAF1FF 0%,#EAF6FF 100%);

  /* Product sub-brands */
  --veriket:#c5482f; --veriket-050:#FBEDEA; --veriket-600:#a5391f;   /* Discovery + Classification */
  --verikor:#1664fe; --verikor-050:#EAF1FF; --verikor-600:#0f4fd6;   /* DLP */
  --verifim:#3e8c44; --verifim-050:#E7F4E9; --verifim-600:#2f6e34;   /* FIM (reserved slot) */

  /* Semantic */
  --success:#12915a; --success-050:#E6F5EE;
  --warning:#c67c15; --warning-050:#FBF0DD;
  --danger:#d33a3a;  --danger-050:#FBE9E9;
  --info:#1664fe;    --info-050:#EAF1FF;

  /* Severity (DLP incidents) */
  --sev-critical:#b3261e; --sev-critical-bg:#FBE7E5;
  --sev-high:#d33a3a;     --sev-high-bg:#FBEAEA;
  --sev-medium:#c67c15;   --sev-medium-bg:#FBF2E1;
  --sev-low:#12915a;      --sev-low-bg:#E9F5EF;

  /* Elevation & shape */
  --shadow-sm:0 1px 2px rgba(13,30,70,.06),0 1px 3px rgba(13,30,70,.05);
  --shadow-md:0 10px 30px rgba(15,45,120,.09);
  --shadow-lg:0 28px 64px rgba(15,45,120,.15);
  --r-xs:8px; --r-sm:10px; --r:14px; --r-lg:20px; --r-pill:999px;

  /* Layout metrics */
  --sidebar-w:264px; --sidebar-w-collapsed:72px; --topbar-h:60px;

  /* Fonts */
  /* Lisansa tabi hicbir yazi tipi kullanilmaz (sahip kurali): ekran isletim sisteminin
     kendi yazi tipiyle calisir, hicbir dosya disaridan yuklenmez. */
  --font-body:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --font-head:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;

  /* Active product accent — swapped per module scope via [data-scope] */
  --accent:var(--brand); --accent-050:var(--brand-050); --accent-600:var(--brand-600);
}

/* Module scope theming: page + sidebar tint by the product a screen belongs to */
[data-scope="veriket"]{ --accent:var(--veriket); --accent-050:var(--veriket-050); --accent-600:var(--veriket-600); }
[data-scope="verikor"]{ --accent:var(--verikor); --accent-050:var(--verikor-050); --accent-600:var(--verikor-600); }
[data-scope="shared"] { --accent:var(--brand);   --accent-050:var(--brand-050);   --accent-600:var(--brand-600); }

/* ----------------------------------------------------------------------------
   2. Dark theme
   -------------------------------------------------------------------------- */
[data-theme="dark"]{
  --ink:#F2F5FB; --ink-2:#DBE2EE; --body:#AEB9CC; --muted:#8592A8;
  --line:#243049; --line-2:#1B2438;
  --bg:#0C1220; --bg-soft:#111A2B; --bg-tint:#152036;
  --brand-050:#16233F;
  --veriket-050:#2A1712; --verikor-050:#16233F; --verifim-050:#12241A;
  --success-050:#0F2A20; --warning-050:#2A2210; --danger-050:#2A1414; --info-050:#16233F;
  --sev-critical-bg:#2A1512; --sev-high-bg:#2A1414; --sev-medium-bg:#2A2210; --sev-low-bg:#0F2A20;
  --shadow-sm:0 1px 2px rgba(0,0,0,.4); --shadow-md:0 10px 30px rgba(0,0,0,.45);
  --shadow-lg:0 28px 64px rgba(0,0,0,.55);
}

/* ----------------------------------------------------------------------------
   3. Base
   -------------------------------------------------------------------------- */
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; font-family:var(--font-body); color:var(--body);
  background:var(--bg-soft); line-height:1.5; font-size:14px;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
h1,h2,h3,h4,h5{font-family:var(--font-head); color:var(--ink); line-height:1.2; letter-spacing:-.015em; margin:0; font-weight:700}
a{color:var(--brand); text-decoration:none}
button{font-family:inherit}
svg{display:block}
::selection{background:rgba(22,100,254,.18)}
.muted{color:var(--muted)}
.mono{font-variant-numeric:tabular-nums; font-feature-settings:"tnum"}
[hidden]{display:none !important}

/* Scrollbars */
*{scrollbar-width:thin; scrollbar-color:var(--line) transparent}
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-thumb{background:var(--line); border-radius:99px; border:3px solid transparent; background-clip:content-box}
*::-webkit-scrollbar-thumb:hover{background:var(--muted)}

/* ----------------------------------------------------------------------------
   4. App shell — sidebar + topbar + main
   -------------------------------------------------------------------------- */
.app{
  display:grid;
  grid-template-columns:var(--sidebar-w) 1fr;
  grid-template-rows:var(--topbar-h) 1fr;
  grid-template-areas:"side top" "side main";
  height:100vh; overflow:hidden;
  transition:grid-template-columns .22s ease;
}
.app.is-collapsed{grid-template-columns:var(--sidebar-w-collapsed) 1fr}

/* ---- Sidebar ---- */
.side{
  grid-area:side; background:var(--bg); border-right:1px solid var(--line);
  display:flex; flex-direction:column; min-height:0; z-index:30;
}
.side-brand{
  height:var(--topbar-h); display:flex; align-items:center; gap:10px;
  padding:0 18px; border-bottom:1px solid var(--line-2); flex:0 0 auto;
}
.side-brand .logo{height:26px; width:auto}
.side-brand .mark{display:none; height:24px; border-radius:6px}
.side-brand .sub{font-family:var(--font-head); font-weight:800; font-size:12px; color:var(--muted);
  letter-spacing:.02em; white-space:nowrap; padding-left:9px; margin-left:2px; border-left:1px solid var(--line)}
.is-collapsed .side-brand{padding:0 0; justify-content:center}
.is-collapsed .side-brand .sub{display:none}
.is-collapsed .side-brand .wordmark{display:none}
.is-collapsed .side-brand .mark{display:block}

.side-scope{padding:12px 14px 6px; flex:0 0 auto}
.is-collapsed .side-scope{display:none}

.side-nav{flex:1 1 auto; overflow-y:auto; padding:6px 10px 20px}
.nav-group{margin-top:14px}
.nav-group:first-child{margin-top:2px}
.nav-group-label{
  display:flex; align-items:center; gap:7px; padding:6px 10px 4px;
  font-size:11px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--muted);
}
.nav-group-label span:last-child{white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.nav-group-label .dot{width:7px;height:7px;border-radius:50%; flex:0 0 auto; background:var(--muted)}
.nav-group[data-scope="veriket"] .dot{background:var(--veriket)}
.nav-group[data-scope="verikor"] .dot{background:var(--verikor)}
.nav-group[data-scope="shared"] .dot{background:var(--brand)}
.is-collapsed .nav-group-label span{display:none}
.is-collapsed .nav-group-label{justify-content:center; padding:6px 0 4px}

.nav-item{
  display:flex; align-items:center; gap:11px; width:100%; text-align:left;
  padding:9px 11px; border-radius:var(--r-sm); color:var(--body); border:0; background:transparent;
  cursor:pointer; font-size:13.5px; font-weight:500; position:relative; transition:background .14s,color .14s;
}
.nav-item .ico{width:19px;height:19px;flex:0 0 auto; color:var(--muted); transition:color .14s}
.nav-item .txt{white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.nav-item .tag{margin-left:auto; font-size:10.5px; font-weight:700; padding:1px 7px; border-radius:var(--r-pill);
  background:var(--bg-soft); color:var(--muted); border:1px solid var(--line)}
.nav-item:hover{background:var(--bg-soft); color:var(--ink)}
.nav-item:hover .ico{color:var(--ink-2)}
.nav-item.active{background:var(--accent-050); color:var(--accent-600); font-weight:600}
.nav-item.active .ico{color:var(--accent)}
.nav-item.active::before{content:""; position:absolute; left:-10px; top:8px; bottom:8px; width:3px;
  border-radius:0 3px 3px 0; background:var(--accent)}
.nav-item.is-locked{cursor:default; opacity:.72}
.nav-item.is-locked:hover{background:transparent; color:var(--body)}
.nav-item .lock{margin-left:auto; width:14px;height:14px;color:var(--muted)}
.is-collapsed .nav-item{justify-content:center; padding:10px 0}
.is-collapsed .nav-item .txt,.is-collapsed .nav-item .tag,.is-collapsed .nav-item .lock{display:none}
.is-collapsed .nav-item.active::before{display:none}

.side-foot{flex:0 0 auto; border-top:1px solid var(--line-2); padding:10px 14px; font-size:11px; color:var(--muted)}
.side-foot b{color:var(--body); font-weight:600}
.is-collapsed .side-foot{display:none}

/* ---- Topbar ---- */
.top{
  grid-area:top; background:var(--bg); border-bottom:1px solid var(--line);
  display:flex; align-items:center; gap:14px; padding:0 18px; z-index:20;
}
.icon-btn{
  width:36px;height:36px; display:grid; place-items:center; border-radius:var(--r-sm);
  border:1px solid transparent; background:transparent; color:var(--muted); cursor:pointer; transition:.14s;
}
.icon-btn:hover{background:var(--bg-soft); color:var(--ink)}
.icon-btn svg{width:19px;height:19px}

/* Scope switcher (segmented) */
.scope-switch{display:inline-flex; background:var(--bg-soft); border:1px solid var(--line); border-radius:var(--r-pill); padding:3px}
.scope-switch button{
  display:inline-flex; align-items:center; gap:6px; border:0; background:transparent; cursor:pointer;
  padding:6px 13px; border-radius:var(--r-pill); font-size:12.5px; font-weight:600; color:var(--muted); transition:.15s;
}
.scope-switch button .dot{width:7px;height:7px;border-radius:50%}
.scope-switch button[data-s="veriket"] .dot{background:var(--veriket)}
.scope-switch button[data-s="verikor"] .dot{background:var(--verikor)}
.scope-switch button[data-s="all"] .dot{background:linear-gradient(90deg,var(--veriket),var(--verikor))}
.scope-switch button.active{background:var(--bg); color:var(--ink); box-shadow:var(--shadow-sm)}

.top-search{flex:1 1 auto; max-width:380px; position:relative}
.top-search input{
  width:100%; height:38px; border:1px solid var(--line); background:var(--bg-soft); border-radius:var(--r-sm);
  padding:0 12px 0 38px; font-size:13.5px; color:var(--ink); transition:.16s;
}
.top-search input:focus{outline:none; border-color:var(--brand); background:var(--bg); box-shadow:0 0 0 4px rgba(22,100,254,.1)}
.top-search svg{position:absolute; left:12px; top:50%; transform:translateY(-50%); width:16px;height:16px;color:var(--muted)}
.top-spacer{flex:1 1 auto}

.chip{display:inline-flex; align-items:center; gap:8px; height:38px; padding:0 12px; border-radius:var(--r-sm);
  border:1px solid var(--line); background:var(--bg-soft); color:var(--body); font-size:13px; font-weight:600; cursor:pointer; transition:.14s}
.chip:hover{border-color:var(--brand); color:var(--ink)}
.chip svg{width:16px;height:16px;color:var(--muted)}
.chip .av{width:24px;height:24px;border-radius:50%; background:var(--grad); color:#fff; display:grid;place-items:center; font-size:11px; font-weight:700; font-family:var(--font-head)}

/* ---- Main ---- */
.main{grid-area:main; overflow-y:auto; min-height:0; scroll-behavior:smooth}
.page{max-width:1560px; margin:0 auto; padding:22px 20px 64px}

/* ----------------------------------------------------------------------------
   5. Page header + breadcrumb
   -------------------------------------------------------------------------- */
.breadcrumb{display:flex; align-items:center; gap:7px; font-size:12.5px; color:var(--muted); margin-bottom:10px}
.breadcrumb .sep{opacity:.5}
.breadcrumb .cur{color:var(--body); font-weight:600}
.page-head{display:flex; align-items:flex-end; gap:18px; margin-bottom:22px; flex-wrap:wrap}
.page-head .ph-l{min-width:0}
.page-title{display:flex; align-items:center; gap:11px; font-size:23px; font-weight:800}
.page-title .scope-pill{font-family:var(--font-body); font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  color:var(--accent-600); background:var(--accent-050); border:1px solid color-mix(in srgb,var(--accent) 22%,transparent);
  padding:3px 10px; border-radius:var(--r-pill)}
.page-sub{color:var(--muted); font-size:13.5px; margin-top:6px; max-width:70ch}
.page-head .ph-r{margin-left:auto; display:flex; align-items:center; gap:10px; flex-wrap:wrap}

/* ----------------------------------------------------------------------------
   6. Buttons
   -------------------------------------------------------------------------- */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; font-weight:600; font-size:13.5px;
  padding:9px 16px; border-radius:var(--r-sm); border:1px solid var(--line); background:var(--bg); color:var(--ink);
  cursor:pointer; white-space:nowrap; transition:.16s}
.btn svg{width:16px;height:16px}
.btn:hover{border-color:var(--muted); background:var(--bg-soft)}
.btn-primary{background:var(--accent); border-color:var(--accent); color:#fff; box-shadow:0 6px 16px color-mix(in srgb,var(--accent) 26%,transparent)}
.btn-primary:hover{background:var(--accent-600); border-color:var(--accent-600)}
.btn-danger{background:var(--danger); border-color:var(--danger); color:#fff}
.btn-danger:hover{filter:brightness(.94)}
.btn-ghost{background:transparent; border-color:transparent; color:var(--body)}
.btn-ghost:hover{background:var(--bg-soft); color:var(--ink)}
.btn-sm{padding:6px 11px; font-size:12.5px}
.btn-sm svg{width:15px;height:15px}

/* ----------------------------------------------------------------------------
   7. Cards / panels
   -------------------------------------------------------------------------- */
.card{background:var(--bg); border:1px solid var(--line); border-radius:var(--r); box-shadow:var(--shadow-sm)}
.card-head{display:flex; align-items:center; gap:12px; padding:15px 18px; border-bottom:1px solid var(--line-2)}
.card-head h3{font-size:15px; font-weight:700}
.card-head .card-ico{width:30px;height:30px;border-radius:var(--r-xs); display:grid;place-items:center;
  background:var(--accent-050); color:var(--accent); flex:0 0 auto}
.card-head .card-ico svg{width:17px;height:17px}
.card-head .ch-r{margin-left:auto; display:flex; align-items:center; gap:8px}
.card-body{padding:18px}
.card-pad{padding:18px}

.grid{display:grid; gap:16px}
.grid > *{min-width:0}   /* öğe içeriğinin en küçük genişliği ızgarayı taşırmasın (1024px'te yatay kaydırma) */
.g-2{grid-template-columns:repeat(2,1fr)}
.g-3{grid-template-columns:repeat(3,1fr)}
.g-4{grid-template-columns:repeat(4,1fr)}
.g-2-1{grid-template-columns:2fr 1fr}
@media(max-width:1080px){.g-4{grid-template-columns:repeat(2,1fr)} .g-3{grid-template-columns:repeat(2,1fr)} .g-2-1,.g-2{grid-template-columns:1fr}}
@media(max-width:680px){.g-4,.g-3,.g-2{grid-template-columns:1fr}}

/* ---- KPI stat cards ---- */
.stat{position:relative; background:var(--bg); border:1px solid var(--line); border-radius:var(--r);
  padding:16px 18px; box-shadow:var(--shadow-sm); overflow:hidden}
.stat::after{content:""; position:absolute; inset:0 auto 0 0; width:3px; background:var(--accent)}
.stat .st-top{display:flex; align-items:center; gap:10px; margin-bottom:12px}
.stat .st-ico{width:34px;height:34px;border-radius:var(--r-xs); display:grid;place-items:center;
  background:var(--accent-050); color:var(--accent); flex:0 0 auto}
.stat .st-ico svg{width:18px;height:18px}
.stat .st-label{font-size:12.5px; font-weight:600; color:var(--muted)}
.stat .st-val{font-family:var(--font-head); font-size:30px; font-weight:800; color:var(--ink); line-height:1}
.stat .st-foot{margin-top:9px; display:flex; align-items:center; gap:6px; font-size:12px; color:var(--muted)}
.trend{display:inline-flex; align-items:center; gap:3px; font-weight:700; font-size:11.5px; padding:1px 7px; border-radius:var(--r-pill)}
.trend.up{color:var(--success); background:var(--success-050)}
.trend.down{color:var(--danger); background:var(--danger-050)}
.trend svg{width:12px;height:12px}
.stat[data-p="veriket"]{--accent:var(--veriket);--accent-050:var(--veriket-050)}
.stat[data-p="verikor"]{--accent:var(--verikor);--accent-050:var(--verikor-050)}

/* ----------------------------------------------------------------------------
   8. Badges / pills
   -------------------------------------------------------------------------- */
.badge{display:inline-flex; align-items:center; gap:5px; font-size:11.5px; font-weight:700; padding:3px 9px;
  border-radius:var(--r-pill); background:var(--bg-soft); color:var(--body); border:1px solid var(--line); white-space:nowrap}
.badge .d{width:6px;height:6px;border-radius:50%}
.badge-blue{background:var(--brand-050); color:var(--brand-600); border-color:transparent}
.badge-red{background:var(--veriket-050); color:var(--veriket-600); border-color:transparent}
.badge-green{background:var(--success-050); color:var(--success); border-color:transparent}
.badge-amber{background:var(--warning-050); color:var(--warning); border-color:transparent}
.badge-danger{background:var(--danger-050); color:var(--danger); border-color:transparent}
.badge-soft{background:var(--bg-soft); color:var(--muted)}

/* Classification chips */
.cls{display:inline-flex; align-items:center; gap:6px; font-size:11.5px; font-weight:700; padding:3px 10px; border-radius:var(--r-xs); border:1px solid transparent}
.cls .d{width:8px;height:8px;border-radius:2px}
.cls-public{background:#EAF3EC; color:#2f6e34} .cls-public .d{background:#3e8c44}
.cls-internal{background:#EAF1FF; color:#0f4fd6} .cls-internal .d{background:#1664fe}
.cls-confidential{background:#FBF2E1; color:#a5680f} .cls-confidential .d{background:#e0910f}
.cls-secret{background:#FBEDEA; color:#a5391f} .cls-secret .d{background:#c5482f}
.cls-critical{background:#F6E4E3; color:#8f1f18} .cls-critical .d{background:#b3261e}
[data-theme="dark"] .cls-public{background:#12241A}[data-theme="dark"] .cls-internal{background:#16233F}
[data-theme="dark"] .cls-confidential{background:#2A2210}[data-theme="dark"] .cls-secret{background:#2A1712}[data-theme="dark"] .cls-critical{background:#2A1512}

/* Severity pill */
.sev{display:inline-flex; align-items:center; gap:6px; font-size:11.5px; font-weight:700; padding:3px 9px; border-radius:var(--r-pill)}
.sev .d{width:7px;height:7px;border-radius:50%}
.sev-critical{color:var(--sev-critical); background:var(--sev-critical-bg)} .sev-critical .d{background:var(--sev-critical)}
.sev-high{color:var(--sev-high); background:var(--sev-high-bg)} .sev-high .d{background:var(--sev-high)}
.sev-medium{color:var(--sev-medium); background:var(--sev-medium-bg)} .sev-medium .d{background:var(--sev-medium)}
.sev-low{color:var(--sev-low); background:var(--sev-low-bg)} .sev-low .d{background:var(--sev-low)}

/* Action pill (DLP) */
.act{font-size:11.5px; font-weight:700; padding:3px 9px; border-radius:var(--r-xs)}
.act-block{color:#fff; background:var(--danger)}
.act-warn{color:#8a5a06; background:var(--warning-050); border:1px solid color-mix(in srgb,var(--warning) 30%,transparent)}
.act-audit{color:var(--brand-600); background:var(--brand-050)}
.act-allow{color:var(--success); background:var(--success-050)}
.act-encrypt{color:#5a3ea8; background:#EEE9FA}
[data-theme="dark"] .act-encrypt{background:#1E1830; color:#b9a6ef}

/* ----------------------------------------------------------------------------
   9. Data grid (mirrors the Telerik/Kendo grid used in the current panels)
   -------------------------------------------------------------------------- */
.grid-toolbar{display:flex; align-items:center; gap:4px; flex-wrap:wrap; padding:10px 12px; border-bottom:1px solid var(--line-2)}
.grid-toolbar .tb{display:inline-flex; align-items:center; gap:6px; padding:6px 10px; border-radius:var(--r-xs);
  border:1px solid transparent; background:transparent; color:var(--body); font-size:12.5px; font-weight:600; cursor:pointer; transition:.14s}
.grid-toolbar .tb:hover{background:var(--bg-soft); color:var(--ink)}
.grid-toolbar .tb svg{width:15px;height:15px; color:var(--muted)}
.grid-toolbar .sp{flex:1 1 auto}
.tbl-wrap{overflow-x:auto}
table.tbl{width:100%; border-collapse:collapse; font-size:13px}
.tbl thead th{position:sticky; top:0; background:var(--bg); text-align:left; font-weight:700; color:var(--ink-2);
  font-size:12px; letter-spacing:.01em; padding:11px 14px; border-bottom:2px solid var(--line); white-space:nowrap; cursor:pointer}
.tbl thead th .ths{display:inline-flex; align-items:center; gap:6px}
.tbl thead th .sort{width:12px;height:12px;color:var(--muted); opacity:.55}
.tbl tbody td{padding:10px 14px; border-bottom:1px solid var(--line-2); color:var(--body); white-space:nowrap}
.tbl tbody tr:hover{background:var(--bg-soft)}
.tbl tbody tr.row-block{background:var(--sev-high-bg)}
.tbl tbody tr.row-block:hover{background:color-mix(in srgb,var(--sev-high-bg) 78%,var(--ink) 4%)}
.tbl tbody tr.row-warn{background:var(--sev-medium-bg)}
.tbl tbody tr.row-warn:hover{background:color-mix(in srgb,var(--sev-medium-bg) 80%,var(--ink) 4%)}
.tbl .lead{color:var(--ink); font-weight:600}
.tbl .t-link{color:var(--brand); font-weight:600; cursor:pointer}
.tbl .t-num{font-variant-numeric:tabular-nums; text-align:right}
.grid-foot{display:flex; align-items:center; gap:12px; padding:11px 14px; border-top:1px solid var(--line-2); font-size:12.5px; color:var(--muted)}
.pager{margin-left:auto; display:flex; align-items:center; gap:4px}
.pager button{min-width:30px;height:30px; padding:0 8px; border:1px solid var(--line); background:var(--bg); border-radius:var(--r-xs);
  font-size:12.5px; font-weight:600; color:var(--body); cursor:pointer}
.pager button.active{background:var(--accent); border-color:var(--accent); color:#fff}
.pager button:hover:not(.active){background:var(--bg-soft)}

/* ----------------------------------------------------------------------------
   10. Charts (dependency-free: CSS bars + SVG donut)
   -------------------------------------------------------------------------- */
.bars{display:flex; align-items:flex-end; gap:14px; height:200px; padding:8px 4px 0}
.bar-col{flex:1 1 0; display:flex; flex-direction:column; align-items:center; gap:8px; height:100%; justify-content:flex-end}
.bar{width:100%; max-width:56px; border-radius:6px 6px 0 0; position:relative; min-height:4px; transition:height .5s cubic-bezier(.2,.7,.3,1)}
.bar .v{position:absolute; top:-20px; left:50%; transform:translateX(-50%); font-size:11.5px; font-weight:700; color:var(--ink-2)}
.bar-lbl{font-size:11.5px; color:var(--muted); font-weight:600; white-space:nowrap}

.donut-wrap{display:flex; align-items:center; gap:22px; flex-wrap:wrap}
.donut{--val:0; width:150px;height:150px;flex:0 0 auto}
.legend{display:flex; flex-direction:column; gap:8px; min-width:130px}
.legend .lg{display:flex; align-items:center; gap:9px; font-size:12.5px; color:var(--body)}
.legend .lg .d{width:11px;height:11px;border-radius:3px;flex:0 0 auto}
.legend .lg b{margin-left:auto; color:var(--ink); font-variant-numeric:tabular-nums}

/* Progress / meter */
.meter{height:8px; background:var(--line-2); border-radius:99px; overflow:hidden}
.meter > i{display:block; height:100%; border-radius:99px; background:var(--accent)}

/* ----------------------------------------------------------------------------
   11. Tabs
   -------------------------------------------------------------------------- */
.tabs{display:flex; gap:2px; border-bottom:1px solid var(--line); margin-bottom:18px; overflow-x:auto}
.tabs button{border:0; background:transparent; padding:11px 15px; font-size:13.5px; font-weight:600; color:var(--muted);
  cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-1px; white-space:nowrap; transition:.14s}
.tabs button:hover{color:var(--ink)}
.tabs button.active{color:var(--accent-600); border-bottom-color:var(--accent)}

/* ----------------------------------------------------------------------------
   12. Forms
   -------------------------------------------------------------------------- */
.form-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:16px 20px}
.form-grid.one{grid-template-columns:1fr}
@media(max-width:680px){.form-grid{grid-template-columns:1fr}}
.fld{display:flex; flex-direction:column; gap:6px}
.fld label{font-size:12.5px; font-weight:600; color:var(--ink-2)}
.fld label .req{color:var(--danger)}
.fld input,.fld select,.fld textarea{
  width:100%; padding:9px 12px; border:1px solid var(--line); border-radius:var(--r-sm); background:var(--bg-soft);
  font-family:inherit; font-size:13.5px; color:var(--ink); transition:.16s}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none; border-color:var(--brand); background:var(--bg); box-shadow:0 0 0 4px rgba(22,100,254,.1)}
.fld .hint{font-size:11.5px; color:var(--muted)}

/* Toggle switch */
.switch{position:relative; display:inline-block; width:40px;height:22px; flex:0 0 auto}
.switch input{opacity:0; width:0;height:0}
.switch .sl{position:absolute; inset:0; background:var(--line); border-radius:99px; cursor:pointer; transition:.2s}
.switch .sl::before{content:""; position:absolute; width:16px;height:16px; left:3px; top:3px; background:#fff; border-radius:50%; transition:.2s; box-shadow:var(--shadow-sm)}
.switch input:checked + .sl{background:var(--accent)}
.switch input:checked + .sl::before{transform:translateX(18px)}
.row-toggle{display:flex; align-items:center; gap:12px; padding:12px 0; border-bottom:1px solid var(--line-2)}
.row-toggle:last-child{border-bottom:0}
.row-toggle .rt-txt{min-width:0}
.row-toggle .rt-txt b{display:block; color:var(--ink); font-size:13.5px; font-weight:600}
.row-toggle .rt-txt span{font-size:12px; color:var(--muted)}
.row-toggle .switch{margin-left:auto}

/* ----------------------------------------------------------------------------
   13. Modal
   -------------------------------------------------------------------------- */
.modal-back{position:fixed; inset:0; background:rgba(10,16,32,.5); backdrop-filter:blur(2px); display:grid; place-items:center; z-index:100; padding:20px}
.modal{background:var(--bg); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--shadow-lg); width:min(560px,100%); max-height:92vh; display:flex; flex-direction:column; overflow:hidden}
.modal-head{display:flex; align-items:center; gap:12px; padding:18px 22px; border-bottom:1px solid var(--line-2); flex:0 0 auto}
.modal-head h3{font-size:17px}
.modal-head .icon-btn{margin-left:auto}
.modal-body{padding:22px; overflow:auto; flex:1 1 auto}
.modal-foot{display:flex; align-items:center; gap:10px; justify-content:flex-end; padding:16px 22px; border-top:1px solid var(--line-2); flex:0 0 auto}

/* ----------------------------------------------------------------------------
   14. Locked-feature / empty states
   -------------------------------------------------------------------------- */
.locked-note{display:flex; align-items:center; gap:12px; padding:13px 16px; border:1px dashed var(--line); border-radius:var(--r);
  background:var(--bg-soft); color:var(--muted); font-size:13px}
.locked-note svg{width:18px;height:18px; color:var(--warning); flex:0 0 auto}
.empty{text-align:center; padding:56px 20px; color:var(--muted)}
.empty .em-ico{width:56px;height:56px;margin:0 auto 16px; border-radius:16px; background:var(--accent-050); color:var(--accent); display:grid; place-items:center}
.empty .em-ico svg{width:26px;height:26px}
.empty h3{color:var(--ink); font-size:17px; margin-bottom:6px}

/* Banner (posture / license) */
.banner{display:flex; align-items:center; gap:16px; padding:18px 22px; border-radius:var(--r-lg); color:#fff;
  background:var(--grad); box-shadow:var(--shadow-md); position:relative; overflow:hidden}
.banner::after{content:""; position:absolute; right:-40px; top:-60px; width:220px;height:220px; border-radius:50%;
  background:rgba(255,255,255,.09)}
.banner .bn-ico{width:46px;height:46px;border-radius:13px; background:rgba(255,255,255,.16); display:grid; place-items:center; flex:0 0 auto}
.banner .bn-ico svg{width:24px;height:24px; color:#fff}
.banner h3{color:#fff; font-size:17px}
.banner p{margin:3px 0 0; color:rgba(255,255,255,.9); font-size:13px}
.banner .bn-r{margin-left:auto; display:flex; align-items:center; gap:20px}
.banner .bn-stat b{font-family:var(--font-head); font-size:26px; font-weight:800; display:block; line-height:1}
.banner .bn-stat span{font-size:11.5px; color:rgba(255,255,255,.85)}

/* Utilities */
.flex{display:flex} .items-center{align-items:center} .gap-8{gap:8px} .gap-12{gap:12px} .gap-16{gap:16px}
.mt-8{margin-top:8px} .mt-16{margin-top:16px} .mt-24{margin-top:24px} .mb-0{margin-bottom:0}
.wrap{flex-wrap:wrap} .ml-auto{margin-left:auto} .w-full{width:100%}
.divider{height:1px; background:var(--line-2); margin:18px 0}
.list-clean{list-style:none; margin:0; padding:0}

/* Toast */
.toast-wrap{position:fixed; right:20px; bottom:20px; display:flex; flex-direction:column; gap:10px; z-index:200}
.toast{display:flex; align-items:center; gap:10px; background:var(--ink); color:#fff; padding:12px 16px; border-radius:var(--r);
  box-shadow:var(--shadow-lg); font-size:13px; font-weight:500; animation:toastIn .3s ease}
.toast svg{width:17px;height:17px; color:var(--brand-2)}
@keyframes toastIn{from{opacity:0; transform:translateY(10px)}to{opacity:1; transform:none}}

/* Responsive: collapse sidebar to overlay on small screens */
@media(max-width:820px){
  .app{grid-template-columns:0 1fr}
  .side{position:fixed; left:0; top:0; bottom:0; width:var(--sidebar-w); transform:translateX(-100%); transition:transform .22s ease}
  .app.nav-open .side{transform:none; box-shadow:var(--shadow-lg)}
  .top-search{max-width:none}
}
.scrim{display:none}
@media(max-width:820px){.app.nav-open .scrim{display:block; position:fixed; inset:0; background:rgba(10,16,32,.4); z-index:25}}

/* Fade for view transitions */
.view{animation:viewIn .28s ease}
@keyframes viewIn{from{opacity:0; transform:translateY(6px)}to{opacity:1; transform:none}}

/* ----------------------------------------------------------------------------
   15. Tenant selector, license meters, RBAC matrix, role preview
   -------------------------------------------------------------------------- */
.tenant-sel{height:38px; border:1px solid var(--line); background:var(--bg-soft) no-repeat right 10px center;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2366738A' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  border-radius:var(--r-sm); padding:0 30px 0 12px; font:600 13px/1 var(--font-body); color:var(--body); cursor:pointer;
  -webkit-appearance:none; appearance:none; max-width:190px}
.tenant-sel:focus{outline:none; border-color:var(--brand); box-shadow:0 0 0 4px rgba(22,100,254,.1)}

/* license usage row */
.lic-row{display:flex; align-items:center; gap:14px; padding:16px 4px; border-bottom:1px solid var(--line-2)}
.lic-row:last-of-type{border-bottom:0}
.lic-row .lic-ic{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;flex:0 0 auto}
.lic-row .lic-main{min-width:0; flex:1 1 auto}
.lic-row .lic-main b{display:block; color:var(--ink); font-size:14px; font-weight:700}
.lic-row .lic-main span{font-size:12px; color:var(--muted)}
.lic-usage{width:220px; flex:0 0 auto}
@media(max-width:680px){.lic-usage{display:none}}
.lic-usage .lu-top{display:flex; justify-content:space-between; font-size:11.5px; color:var(--muted); margin-bottom:5px}
.lic-usage .lu-top b{color:var(--ink); font-variant-numeric:tabular-nums}
.lic-basis{font-size:11px; font-weight:700; padding:3px 9px; border-radius:var(--r-pill); background:var(--bg-soft); color:var(--muted); border:1px solid var(--line); white-space:nowrap}

/* Ayarlar kabuğu — Administration Console'daki ayarlar ekranıyla aynı yapı ve aynı
   ölçüler (orada .res-shell / .res-rail / .res-main). Solda çerçeveli yapışkan ray:
   gruplar, her satırda simge + ad; ad bütündür, gerekirse ikinci satıra iner, asla
   kesilmez. Açık satırda sol kenarda 3 px vurgu çubuğu. Sağda tek kart: başlık,
   bir cümlelik açıklama, alanlar ve Kaydet. Dar ekranda ray yatay şeride döner. */
.res-shell{display:grid; grid-template-columns:272px minmax(0,1fr); gap:16px; align-items:start}
.res-rail{border:1px solid var(--line); border-radius:var(--r); box-shadow:var(--shadow-sm);
  padding:0 6px 6px; position:sticky; top:84px; background:var(--bg); overflow-x:hidden}
.res-rail-group + .res-rail-group{border-top:1px solid var(--line-2); margin-top:3px}
.res-rail-label{font-size:10.5px; line-height:13px; font-weight:700; letter-spacing:.07em;
  text-transform:uppercase; color:var(--body); padding:9px 10px 3px}
.res-rail-item{position:relative; display:flex; align-items:center; gap:8px; width:100%; min-height:30px;
  text-align:left; border:0; background:transparent; color:var(--body); font:inherit; font-size:13px;
  padding:5px 9px; border-radius:var(--r-sm); cursor:pointer; transition:.12s}
.res-rail-item:hover{background:var(--bg-soft); color:var(--ink)}
.res-rail-item:focus-visible{outline:2px solid var(--accent); outline-offset:-2px}
.res-rail-item.active{background:var(--accent-050); color:var(--accent); font-weight:700}
.res-rail-item.active::before{content:""; position:absolute; left:0; top:5px; bottom:5px; width:3px;
  border-radius:0 3px 3px 0; background:var(--accent)}
.res-rail-ico{width:16px; height:16px; flex:0 0 auto; display:grid; place-items:center}
.res-rail-ico .ico{width:16px; height:16px}
.res-rail-name{flex:1 1 auto; min-width:0; white-space:normal; overflow-wrap:break-word}
.res-main{background:var(--bg); border:1px solid var(--line); border-radius:var(--r);
  box-shadow:var(--shadow-sm); overflow:hidden; min-width:0}
.res-main-head{display:flex; align-items:center; gap:12px; padding:13px 18px; border-bottom:1px solid var(--line-2)}
.res-main-title{display:flex; flex-direction:column; gap:2px; min-width:0}
.res-main-title b{font-size:15px; color:var(--ink)}
.res-main-title .muted{font-size:12.5px; color:var(--muted); line-height:1.5}
.res-main-body{padding:18px}
.set-foot{display:flex; align-items:center; gap:8px; margin-top:20px; padding-top:16px; border-top:1px solid var(--line)}
@media (max-width:900px){
  .res-shell{grid-template-columns:1fr; gap:12px}
  .res-rail{position:static; display:flex; gap:6px; overflow-x:auto; padding:6px;
    border-radius:var(--r-sm); -webkit-overflow-scrolling:touch; scrollbar-width:none}
  .res-rail::-webkit-scrollbar{display:none}
  .res-rail-group{display:flex; gap:6px; border:0 !important; margin:0 !important}
  .res-rail-label{display:none}
  .res-rail-item{width:auto; white-space:nowrap; min-height:32px}
  .res-rail-item.active::before{display:none}
  .res-rail-name{white-space:nowrap}
  .res-main-body{padding:14px}
}

/* Rayın arama kutusu — konsoldaki `rail-find` ile aynı: kutu rayın tepesinde durur,
   kısayolu `/`, altında canlı özet. Eşleşen harfler adın içinde işaretlenir; bir
   kategori yalnız ALANI yüzünden eşleşiyorsa o alanların adları altında listelenir. */
.rail-find{position:sticky; top:0; z-index:2; background:var(--bg); padding:8px 4px 6px}
.rail-find-in{position:relative; display:flex; align-items:center; gap:6px; padding:0 8px;
  border:1px solid var(--line); border-radius:var(--r-sm); background:var(--bg-soft)}
.rail-find-in .ico{width:14px; height:14px; color:var(--muted); flex:0 0 auto}
.rail-q{flex:1 1 auto; min-width:0; border:0; background:transparent; font:inherit; font-size:12.5px;
  color:var(--ink); padding:7px 0; outline:0}
.rail-q::-webkit-search-cancel-button{display:none}
.rail-kbd{flex:0 0 auto; font:inherit; font-size:10.5px; line-height:14px; color:var(--muted);
  border:1px solid var(--line); border-radius:4px; padding:0 4px; background:var(--bg)}
.rail-q:focus ~ .rail-kbd{visibility:hidden}
.rail-x{flex:0 0 auto; display:none; border:0; background:transparent; color:var(--muted); cursor:pointer; padding:2px}
.rail-x .ico{width:13px; height:13px}
.rail-find-in:focus-within{border-color:var(--accent)}
.rail-filtered .rail-x{display:block}
.rail-sum{font-size:11px; color:var(--muted); padding:5px 9px 0; min-height:0}
.res-rail-name mark{background:var(--accent-050); color:inherit; border-radius:3px; padding:0 1px}
.rail-hits{display:flex; flex-wrap:wrap; gap:4px; padding:2px 9px 7px}
.rail-hit{font-size:11.5px; line-height:17px; color:var(--body); background:var(--bg-soft);
  border:1px solid var(--line-2); border-radius:999px; padding:0 8px}
.rail-hit-more{color:var(--muted)}
@media (max-width:900px){
  .rail-find{position:static; width:100%; padding:0 0 6px}
  .res-rail{flex-wrap:wrap}
  .rail-hits{display:none}
}

/* Üst şeritteki dil listesi. Yerleşim dilden bağımsızdır (sahip, 16 Eki):
   Arapça seçildiğinde ekran aynalanmaz, yalnız metinler değişir. */
.lang-menu{position:fixed; z-index:120; min-width:148px; background:var(--bg); border:1px solid var(--line);
  border-radius:var(--r-sm); box-shadow:var(--shadow-lg); padding:5px; display:flex; flex-direction:column; gap:2px}
.lang-opt{display:block; width:100%; text-align:left; border:0; background:transparent; color:var(--body);
  font:inherit; font-size:13px; padding:7px 10px; border-radius:var(--r-sm); cursor:pointer}
.lang-opt:hover{background:var(--bg-soft); color:var(--ink)}
.lang-opt.active{background:var(--accent-050); color:var(--accent); font-weight:700}

/* Parola alanı + Üret/Kopyala: düğmeler alanın yanında durur, dar ekranda altına iner. */
.pw-gen{display:flex; align-items:center; gap:6px}
.pw-gen input{flex:1 1 auto; min-width:0}
.pw-gen .btn{flex:0 0 auto; white-space:nowrap}
@media (max-width:560px){ .pw-gen{flex-wrap:wrap} .pw-gen input{flex:1 1 100%} }

/* KVKK/GDPR onay metni: okunacak metin, kaydırılabilir bir kutuda */
.cns-text{max-height:46vh; overflow:auto; padding:14px 16px; border:1px solid var(--line);
  border-radius:var(--r); background:var(--bg); font-size:13.5px; line-height:1.62; color:var(--body)}
.cns-text p{margin:0 0 10px}
.cns-text p:last-child{margin-bottom:0}

/* preview banner */
.preview-bar{display:flex; align-items:center; gap:11px; padding:11px 16px; border-radius:var(--r);
  background:linear-gradient(90deg,var(--warning-050),transparent); border:1px solid color-mix(in srgb,var(--warning) 34%,transparent);
  margin-bottom:18px; font-size:13px; color:var(--body)}
.preview-bar svg{width:17px;height:17px; color:var(--warning); flex:0 0 auto}
.preview-bar b{color:var(--ink)}
/* bir şey gerçekten çalışmıyorsa (örn. yedek alınamıyorsa) sarı değil, kırmızı */
.preview-bar.is-warn{background:linear-gradient(90deg,var(--danger-050),transparent);
  border-color:color-mix(in srgb,var(--danger) 40%,transparent)}
.preview-bar.is-warn svg{color:var(--danger)}

/* role chips + matrix */
.role-tabs{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:18px}
.role-chip{display:flex; flex-direction:column; gap:1px; padding:9px 15px; border:1px solid var(--line); border-radius:var(--r-sm);
  background:var(--bg); cursor:pointer; transition:.14s; text-align:left}
.role-chip:hover{border-color:var(--muted)}
.role-chip.active{border-color:var(--accent); background:var(--accent-050)}
.role-chip .rc-n{font-weight:700; color:var(--ink); font-size:13px}
.role-chip.active .rc-n{color:var(--accent-600)}
.role-chip .rc-u{font-size:11px; color:var(--muted)}
.matrix{width:100%; border-collapse:collapse; font-size:12.5px}
.matrix th,.matrix td{padding:9px 10px; border-bottom:1px solid var(--line-2); text-align:center; white-space:nowrap}
.matrix th:first-child,.matrix td:first-child{text-align:left; font-weight:600; color:var(--ink); min-width:150px}
.matrix thead th{color:var(--ink-2); font-weight:700; border-bottom:2px solid var(--line)}
.matrix .yes{color:var(--success)} .matrix .yes svg{width:17px;height:17px;margin:0 auto}
.matrix .no{color:var(--line-2)} .matrix .no svg{width:14px;height:14px;margin:0 auto}
.matrix tr.dis td:not(:first-child){opacity:.35}
.matrix tr.dis td:first-child{color:var(--muted)}
.pc-result{margin-top:16px; padding:16px; border-radius:var(--r); border:1px solid var(--line); background:var(--bg-soft)}
.pc-result.ok{border-color:color-mix(in srgb,var(--success) 40%,transparent); background:var(--success-050)}
.pc-result.no{border-color:color-mix(in srgb,var(--danger) 40%,transparent); background:var(--danger-050)}
.pc-result .pc-head{display:flex; align-items:center; gap:9px; font-weight:700; font-size:15px; color:var(--ink)}
.pc-result .pc-head svg{width:18px;height:18px}

/* ----------------------------------------------------------------------------
   16. Publish control + classification data (method badges)
   -------------------------------------------------------------------------- */
.pub-btn{position:relative}
.pub-badge{display:inline-grid; place-items:center; min-width:18px; height:18px; padding:0 5px; border-radius:99px;
  background:#fff; color:var(--brand-600); font-size:11px; font-weight:800; margin-left:3px; font-variant-numeric:tabular-nums}
.pub-ok{display:inline-flex; align-items:center; gap:6px; height:38px; padding:0 12px; border-radius:var(--r-sm);
  border:1px solid var(--line); background:var(--bg-soft); color:var(--success); font-size:12.5px; font-weight:600; white-space:nowrap}
.pub-ok svg{width:15px;height:15px}
.pending-item{display:flex; align-items:center; gap:11px; padding:11px 2px; border-bottom:1px solid var(--line-2)}
.pending-item:last-child{border-bottom:0}
.pending-item .pi-dot{width:8px;height:8px;border-radius:50%; background:var(--warning); flex:0 0 auto}
.pending-item .pi-main{min-width:0; flex:1 1 auto}
.pending-item .pi-main b{display:block; color:var(--ink); font-size:13px; font-weight:600}
.pending-item .pi-main span{font-size:12px; color:var(--muted)}
.pub-hist{font-size:12.5px}
.pub-hist .ph-row{display:flex; align-items:center; gap:10px; padding:9px 2px; border-bottom:1px solid var(--line-2); color:var(--muted)}
.pub-hist .ph-row:last-child{border-bottom:0}
.pub-hist .ph-ver{font-weight:700; color:var(--ink); font-variant-numeric:tabular-nums}
.pub-hist .ph-row .ml-auto{margin-left:auto}

.mth{font-size:11px; font-weight:700; padding:2px 9px; border-radius:var(--r-pill); white-space:nowrap}
.mth-manual{background:var(--bg-soft); color:var(--muted); border:1px solid var(--line)}
.mth-auto{background:var(--brand-050); color:var(--brand-600)}
.mth-ai{background:#EEE9FA; color:#5a3ea8}
[data-theme="dark"] .mth-ai{background:#1E1830; color:#b9a6ef}
.tags{display:inline-flex; gap:4px; flex-wrap:wrap}
.tag-pii{font-size:10.5px; font-weight:700; padding:1px 7px; border-radius:var(--r-xs); background:var(--veriket-050); color:var(--veriket-600)}
[data-theme="dark"] .tag-pii{background:#2A1712}

/* publish target selector */
.pub-modes{display:flex; flex-wrap:wrap; gap:6px; margin:2px 0 12px}
.pub-modes button{padding:6px 12px; border:1px solid var(--line); background:var(--bg); border-radius:var(--r-pill); font-size:12.5px; font-weight:600; color:var(--muted); cursor:pointer; transition:.14s}
.pub-modes button:hover{border-color:var(--muted); color:var(--ink)}
.pub-modes button.active{background:var(--brand); border-color:var(--brand); color:#fff}
.pub-opts{display:flex; flex-direction:column; gap:6px; max-height:190px; overflow:auto; margin-bottom:8px; padding-right:2px}
.pub-opt{display:flex; align-items:center; gap:11px; padding:9px 12px; border:1px solid var(--line); border-radius:var(--r-sm); cursor:pointer; font-size:13px; transition:.12s}
.pub-opt:hover{background:var(--bg-soft)}
.pub-opt input{width:16px; height:16px; accent-color:var(--brand); flex:0 0 auto}
.pub-opt .po-name{color:var(--ink); font-weight:600}
.pub-opt .po-count{margin-left:auto; font-size:12px; color:var(--muted); font-variant-numeric:tabular-nums}
.pub-count{display:flex; align-items:center; gap:7px; font-size:13px; font-weight:700; color:var(--brand-600); padding:6px 0 2px}
.pub-count svg{width:16px;height:16px; color:var(--brand)}

/* ----------------------------------------------------------------------------
   17. Policy designer (rule-groups + pattern + rule form + actions)
   -------------------------------------------------------------------------- */
.pol-pattern{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:12px; padding:12px 14px;
  background:var(--bg-soft); border:1px solid var(--line); border-radius:var(--r)}
.pol-pattern b{font-size:13px; color:var(--ink)}
.pol-pattern input{flex:1 1 200px; min-width:150px; height:34px; border:1px solid var(--line); background:var(--bg);
  border-radius:var(--r-sm); padding:0 12px; font-family:var(--font-body); font-size:13px; color:var(--ink)}
.pol-pattern input:disabled{opacity:.5; background:var(--bg-soft)}
.sev-row{display:flex; align-items:center; gap:8px; margin-bottom:6px}
.sev-row input{height:34px; width:90px; border:1px solid var(--line); background:var(--bg-soft); border-radius:var(--r-sm);
  padding:0 10px; font-family:var(--font-body); font-size:13px; color:var(--ink)}
.sev-row select{height:34px; border:1px solid var(--line); background:var(--bg-soft); border-radius:var(--r-sm);
  padding:0 10px; font-family:var(--font-body); font-size:13px; color:var(--ink)}
.sev-row .icon-btn{width:32px;height:32px}
.rule-form{border-top:1px solid var(--line-2); padding-top:8px}
.modal-back2{z-index:120; background:rgba(10,16,32,.35)}

/* ----------------------------------------------------------------------------
   Policy designer — structures panel + styled selects + actions grid
---------------------------------------------------------------------------- */
.pol-structures{border:1px solid var(--line); border-radius:var(--r); overflow:hidden; margin-top:18px; background:var(--bg); box-shadow:var(--shadow-sm)}
.pol-structures-head{display:flex; align-items:center; gap:8px; padding:11px 16px; background:var(--bg-soft);
  border-bottom:1px solid var(--line); font-size:12px; font-weight:700; color:var(--ink-2); letter-spacing:.03em; text-transform:uppercase}
.pol-structures-head svg{width:16px;height:16px; color:var(--accent)}
.pol-structures .pol-tabs{margin:0; padding:0 10px; border-bottom:1px solid var(--line); overflow-x:auto}
.pol-structures .pol-tabs button{padding:12px 14px}
.pol-tabbody{padding:16px}

/* Custom-styled selects used inside the designer (Actions, etc.) */
.pol-select{height:38px; border:1px solid var(--line); border-radius:var(--r-sm); padding:0 32px 0 12px;
  font-family:var(--font-body); font-size:13.5px; color:var(--ink); cursor:pointer; -webkit-appearance:none; appearance:none;
  background-color:var(--bg-soft);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2366738A' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 11px center; transition:border-color .14s, box-shadow .14s}
.pol-select:hover{border-color:var(--muted)}
.pol-select:focus{outline:none; border-color:var(--accent); box-shadow:0 0 0 4px var(--accent-050)}

/* Actions tab */
.act-top{display:flex; align-items:center; gap:11px; margin-bottom:14px; flex-wrap:wrap}
.act-head{display:flex; align-items:center; gap:11px; padding:0 15px 8px; font-size:11px; font-weight:700;
  letter-spacing:.06em; text-transform:uppercase; color:var(--muted)}
.act-head .ah-num{width:22px; flex:0 0 auto}
.act-head .ah-dot{width:11px; flex:0 0 auto}
.act-head .ah-sev{width:150px; flex:0 0 auto}
.act-head .ah-arrow{width:17px; flex:0 0 auto}
.act-head .ah-aa{flex:1 1 auto; min-width:130px}
.act-head .ah-sw{margin-left:auto; flex:0 0 auto; padding-right:44px}
.act-head .ah-del{width:0; flex:0 0 auto}
.act-list{display:flex; flex-direction:column; gap:9px}
.act-row{display:flex; align-items:center; gap:11px; padding:11px 14px; border:1px solid var(--line);
  border-radius:var(--r-sm); background:var(--bg); transition:border-color .14s, box-shadow .14s}
.act-row:hover{border-color:var(--muted); box-shadow:var(--shadow-sm)}
.act-row .act-num{width:22px; height:22px; flex:0 0 auto; display:grid; place-items:center; border-radius:var(--r-pill);
  background:var(--bg-soft); border:1px solid var(--line); font-size:11.5px; font-weight:700; color:var(--muted)}
.act-row .sev-dot{width:11px; height:11px; border-radius:50%; flex:0 0 auto; box-shadow:0 0 0 3px var(--bg-soft)}
.act-row .pf-act-sev{width:150px; flex:0 0 auto}
.act-row .act-arrow{width:17px; height:17px; color:var(--muted); flex:0 0 auto}
.act-row .pf-act-aa{flex:1 1 auto; min-width:130px}
.act-row .act-sw{margin-left:auto; flex:0 0 auto}
.act-row .icon-btn{width:32px; height:32px; flex:0 0 auto}
.sev-dot.sev-Low{background:var(--success)}
.sev-dot.sev-Medium{background:var(--warning)}
.sev-dot.sev-High{background:var(--danger)}
.sev-dot.sev-Critical{background:#9a1b1b}

/* Rule editor (nested modal) — compact best-practice form */
.rule-grid{gap:13px 20px}
.lm-inline{display:flex; align-items:center; gap:22px; flex-wrap:wrap; padding-top:3px}
.lm-inline .lm-sub{display:flex; align-items:center; gap:8px}
.lm-inline .lm-cap{font-size:12px; color:var(--muted); white-space:nowrap}
.lm-inline input{width:92px; padding:8px 10px; border:1px solid var(--line); border-radius:var(--r-sm);
  background:var(--bg-soft); font-family:inherit; font-size:13.5px; color:var(--ink); transition:.16s}
.lm-inline input:focus{outline:none; border-color:var(--brand); background:var(--bg); box-shadow:0 0 0 4px rgba(22,100,254,.1)}

/* ----------------------------------------------------------------------------
   Resource Library
---------------------------------------------------------------------------- */
/* Master-detail shell: category rail + list, with a detail drawer */
.res-shell{display:grid; grid-template-columns:276px 1fr; gap:16px; align-items:start}
@media(max-width:820px){.res-shell{grid-template-columns:1fr}}
.res-rail{background:var(--bg); border:1px solid var(--line); border-radius:var(--r); box-shadow:var(--shadow-sm);
  padding:8px; position:sticky; top:12px; max-height:calc(100vh - 130px); overflow:auto}
@media(max-width:820px){.res-rail{position:static; max-height:none; display:flex; gap:14px; overflow-x:auto}}
.res-rail-group{margin-bottom:10px}
.res-rail-label{font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); padding:8px 10px 5px}
.res-rail-item{display:flex; align-items:center; gap:10px; width:100%; text-align:left; border:0; background:transparent;
  padding:8px 10px; border-radius:var(--r-sm); cursor:pointer; color:var(--body); font-size:13.5px; font-weight:600;
  transition:background .12s, color .12s}
.res-rail-item:hover{background:var(--bg-soft); color:var(--ink)}
.res-rail-item.active{background:var(--brand-050); color:var(--brand-600)}
.res-rail-ico{width:18px; height:18px; flex:0 0 auto; display:grid; place-items:center}
.res-rail-ico svg{width:18px; height:18px}
.res-rail-name{flex:1 1 auto; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.res-rail-count{flex:0 0 auto; min-width:24px; text-align:center; font-size:11.5px; font-weight:700; color:var(--muted);
  background:var(--bg-soft); border:1px solid var(--line); border-radius:var(--r-pill); padding:1px 7px}
.res-rail-item.active .res-rail-count{background:var(--bg); border-color:transparent; color:var(--brand-600)}
.res-main{background:var(--bg); border:1px solid var(--line); border-radius:var(--r); box-shadow:var(--shadow-sm); overflow:hidden}
.res-main-head{display:flex; align-items:center; gap:12px; padding:13px 16px; border-bottom:1px solid var(--line-2); flex-wrap:wrap}
.res-main-title{display:flex; flex-direction:column; gap:1px; min-width:0}
.res-main-title b{font-family:var(--font-head); font-size:15px; color:var(--ink)}
.res-main-title .muted{font-size:12px}
.res-row{cursor:pointer; transition:background .1s}
.res-row:hover{background:var(--bg-soft)}
/* Standardized, ergonomic resource tables (scoped so other modules are untouched) */
.res-main .tbl{font-size:13.5px}
.res-main .tbl thead th{font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em;
  color:var(--muted); padding:9px 16px; border-bottom:1px solid var(--line); cursor:default}
.res-main .tbl tbody td{padding:9px 16px; height:46px; vertical-align:middle; color:var(--body); border-bottom:1px solid var(--line-2); white-space:normal; word-break:break-word}
.res-main .tbl tbody td.res-row-act{white-space:nowrap}
.res-main .tbl tbody td b{font-weight:650; color:var(--ink)}
.res-main .tbl .badge{font-size:11.5px}
.res-main .tbl td .icon-btn{display:inline-flex; align-items:center; justify-content:center; vertical-align:middle; width:30px; height:30px}
.res-row-act{width:78px; text-align:right; white-space:nowrap}

/* In-panel detail view (full width) */
.res-detail-head{display:flex; align-items:center; gap:12px; padding:12px 18px; border-bottom:1px solid var(--line-2); flex-wrap:wrap}
.res-detail-head .res-main-title b{font-size:16px}
.res-detail-grid{display:grid; grid-template-columns:minmax(260px,310px) 1fr}
@media(max-width:900px){.res-detail-grid{grid-template-columns:1fr}}
.res-meta-card{padding:18px 20px; border-right:1px solid var(--line-2)}
@media(max-width:900px){.res-meta-card{border-right:0; border-bottom:1px solid var(--line-2)}}
.res-sub-card{padding:16px 18px; min-width:0}
.res-sub-head{display:flex; align-items:center; gap:8px; margin-bottom:12px}
.res-sub-head b{font-family:var(--font-head); font-weight:700; font-size:14px; color:var(--ink)}
.res-sub-head svg{width:16px; height:16px; color:var(--accent)}
.res-sub-count{font-family:var(--font-body); font-size:11.5px; font-weight:700; color:var(--muted);
  background:var(--bg-soft); border:1px solid var(--line); border-radius:var(--r-pill); padding:1px 8px}
.res-dl-desc{background:var(--bg-soft); border:1px solid var(--line-2); border-radius:var(--r-sm); padding:11px 13px;
  font-size:13px; color:var(--body); line-height:1.5; margin-bottom:16px}
.res-dl{display:flex; flex-direction:column}
.res-dl-row{display:flex; align-items:baseline; gap:12px; padding:10px 2px; border-bottom:1px solid var(--line-2)}
.res-dl-row:last-child{border-bottom:0}
.res-dl-k{flex:0 0 42%; font-size:12.5px; font-weight:600; color:var(--muted)}
.res-dl-v{flex:1 1 auto; font-size:13.5px; color:var(--ink); word-break:break-word}
.btn-danger-soft{color:var(--danger); border-color:var(--line)}
.btn-danger-soft:hover{background:var(--danger-050); border-color:var(--danger)}
.res-work-ico{width:34px; height:34px; border-radius:var(--r-sm); display:grid; place-items:center; flex:0 0 auto}
.res-work-ico svg{width:17px; height:17px}
.res-search{position:relative; display:inline-flex; align-items:center}
.res-search svg{position:absolute; left:11px; width:15px; height:15px; color:var(--muted); pointer-events:none}
.res-search input{height:36px; width:220px; max-width:46vw; border:1px solid var(--line); background:var(--bg-soft);
  border-radius:var(--r-sm); padding:0 12px 0 33px; font-family:inherit; font-size:13px; color:var(--ink); transition:.15s}
.res-search input:focus{outline:none; border-color:var(--brand); background:var(--bg); box-shadow:0 0 0 4px rgba(22,100,254,.1)}
.res-swatch{display:inline-flex; align-items:center; gap:7px; font-size:12.5px; color:var(--body)}
.res-swatch i{width:13px; height:13px; border-radius:4px; border:1px solid rgba(0,0,0,.12)}

/* Data Inventory — source origin chip + filter bar */
.src-chip{display:inline-flex; align-items:center; gap:7px; padding:3px 10px; border-radius:var(--r-pill);
  background:var(--bg-soft); border:1px solid var(--line); font-size:12px; font-weight:600; color:var(--body);
  cursor:pointer; white-space:nowrap; transition:.14s}
.src-chip:hover{border-color:var(--accent); color:var(--accent-600); background:var(--accent-050)}
.src-chip .sd{width:7px; height:7px; border-radius:50%; flex:0 0 auto}
.src-chip .sd-st{background:#7a3ff2}
.src-chip .sd-un{background:#c5482f}
/* Standard data-grid framework: summary table (no h-scroll) + wide modal */
.tbl-std{table-layout:fixed; width:100%; font-size:13.5px}
.tbl-std thead th{font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--muted);
  padding:9px 14px; border-bottom:1px solid var(--line); cursor:default; white-space:normal}
.tbl-std tbody td{padding:9px 14px; min-height:46px; vertical-align:middle; color:var(--body);
  border-bottom:1px solid var(--line-2); white-space:normal; word-break:break-word; overflow-wrap:anywhere}
.tbl-std tbody td b{font-weight:650; color:var(--ink)}
.tbl-std .src-chip,.tbl-std .badge,.tbl-std .org-chip,.tbl-std .tag-pii{white-space:nowrap; max-width:100%; overflow:hidden; text-overflow:ellipsis}
/* Expanded (wide modal) grid keeps natural widths and scrolls inside the modal */
.tbl-x{table-layout:auto; width:max-content; min-width:100%}
.tbl-x tbody td{white-space:nowrap; word-break:normal; overflow-wrap:normal}

/* High-volume grids: one-line cells, quick search, pager */
.tbl-std tbody td{white-space:nowrap; overflow:hidden; text-overflow:ellipsis; word-break:normal}
.tbl-std .cell-1{display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.gtools{display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:10px 14px; border-bottom:1px solid var(--line-2)}
.gtools .sp{flex:1 1 auto}
.gsearch{position:relative; display:inline-flex; align-items:center}
.gsearch svg{position:absolute; left:11px; width:15px; height:15px; color:var(--muted); pointer-events:none}
.gsearch input{height:34px; width:260px; max-width:52vw; border:1px solid var(--line); background:var(--bg-soft);
  border-radius:var(--r-sm); padding:0 12px 0 33px; font-family:inherit; font-size:13px; color:var(--ink); transition:.15s}
.gsearch input:focus{outline:none; border-color:var(--brand); background:var(--bg); box-shadow:0 0 0 4px rgba(22,100,254,.1)}
.gpager{display:flex; align-items:center; gap:10px; flex-wrap:wrap}
.gpager .sp{flex:1 1 auto}
.grange{font-size:12.5px; color:var(--muted); font-variant-numeric:tabular-nums}
.grange b{color:var(--ink)}
.gsize{height:30px; font-size:12.5px; padding:0 28px 0 10px}
.gsize-l{font-size:12px}
.rec-f-wide{grid-column:1/-1}

/* Reports — catalogue cards + report viewer */
.rep-card{display:flex}
.rep-card .card-body{display:flex; flex-direction:column; width:100%}
.rep-top{display:flex; align-items:center; gap:9px; margin-bottom:10px; flex-wrap:wrap}
.rep-name{font-weight:700; color:var(--ink); font-size:14.5px; line-height:1.35}
.rep-stats{display:flex; gap:8px; margin-top:14px; flex-wrap:wrap}
.rep-st{flex:1 1 72px; padding:8px 10px; border:1px solid var(--line-2); border-radius:var(--r-sm); background:var(--bg-soft)}
.rep-st b{display:block; font-family:var(--font-head); font-size:18px; color:var(--ink); line-height:1.1}
.rep-st span{font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:var(--muted)}
.rep-acts{display:flex; gap:8px; margin-top:14px; padding-top:14px; border-top:1px solid var(--line-2)}
.rep-head{display:flex; align-items:center; gap:11px; flex-wrap:wrap; margin-bottom:16px; padding:12px 16px;
  background:var(--bg); border:1px solid var(--line); border-radius:var(--r); box-shadow:var(--shadow-sm)}
.rep-head .sp{flex:1 1 auto}

@media print{
  .side, .top, .rep-head, .nav-item, .scrim, .preview-bar{display:none !important}
  .app, .main, .page{display:block !important; overflow:visible !important; padding:0 !important; max-width:none !important}
  .card{break-inside:avoid; box-shadow:none}
  .tbl-wrap{overflow:visible !important}
  body{background:#fff}
}

/* Hit (match) drill-down */
.hit-btn{border:1px solid var(--line); background:var(--bg-soft); color:var(--brand-600); font-family:inherit;
  font-size:12.5px; font-weight:700; padding:2px 10px; border-radius:var(--r-pill); cursor:pointer;
  font-variant-numeric:tabular-nums; transition:.14s}
.hit-btn:hover{background:var(--brand-050); border-color:var(--brand); color:var(--brand-600)}
.hit-sum{display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:10px; margin-bottom:12px}
.hit-s{display:flex; flex-direction:column; gap:2px; padding:9px 12px; border:1px solid var(--line-2);
  border-radius:var(--r-sm); background:var(--bg-soft)}
.hit-s span{font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:var(--muted)}
.hit-s b{font-size:13.5px; color:var(--ink)}
.hit-note{display:flex; align-items:center; gap:9px; padding:9px 12px; border-radius:var(--r-sm);
  background:var(--warning-050); color:var(--warning); font-size:12.5px; margin-bottom:12px}
.hit-note svg{width:15px; height:15px; flex:0 0 auto}
.hit-tbl{max-height:46vh; overflow:auto}
.hit-tbl thead th{position:sticky; top:0; z-index:2; background:var(--bg)}
.hit-val{font-size:13px; color:var(--ink); letter-spacing:.04em}

/* Wide modals + record detail */
.modal.modal-lg{width:min(780px,100%)}
.modal.modal-xl{width:min(1560px,98vw); max-height:94vh}
.modal-body-flush{padding:0}
.grid-x{overflow:auto; max-height:calc(94vh - 210px)}
.grid-x .tbl-wrap{overflow:visible}
.grid-x .tbl thead th{position:sticky; top:0; z-index:2; background:var(--bg)}
.grid-x .tbl tbody td{white-space:nowrap}
.grid-hint{font-size:12px}
.rec-sec{margin-bottom:18px}
.rec-sec:last-child{margin-bottom:0}
.rec-sec-h{font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--muted);
  display:flex; align-items:center; gap:9px; margin-bottom:10px}
.rec-sec-h::after{content:""; flex:1 1 auto; height:1px; background:var(--line)}
.rec-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:10px 18px}
.rec-f{display:flex; flex-direction:column; gap:3px; min-width:0; padding:8px 11px; border:1px solid var(--line-2);
  border-radius:var(--r-sm); background:var(--bg-soft)}
.rec-k{font-size:11px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; color:var(--muted)}
.rec-v{font-size:13.5px; color:var(--ink); word-break:break-word}
.org-chip{display:inline-block; padding:2px 9px; border-radius:var(--r-pill); font-size:11px; font-weight:700; white-space:nowrap}
.org-disc{background:rgba(197,72,47,.12); color:#c5482f}
.org-cls{background:var(--brand-050); color:var(--brand-600)}
.badge.mech{font-size:10.5px; letter-spacing:.02em}
.inv-count{font-size:12px; color:var(--muted); font-weight:600; white-space:nowrap}
.inv-filter{display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:11px 14px; border-bottom:1px solid var(--line-2)}
.inv-filter .sp{flex:1 1 auto}
.inv-filter .muted{font-size:12.5px; font-weight:600}
.inv-filter .pol-select{height:34px; font-size:13px}

/* Scheduled discovery jobs */
.job-bar{display:inline-block; vertical-align:middle; width:110px; height:7px; border-radius:99px; background:var(--bg-soft); border:1px solid var(--line); overflow:hidden}
.job-bar-in{height:100%; background:linear-gradient(90deg,#c5482f,#e0764f)}
.job-pct{margin-left:9px; font-size:12px; font-weight:700; color:var(--muted); font-variant-numeric:tabular-nums}
td.job-progress{white-space:nowrap}
.icon-btn.job-ctl{width:30px; height:30px}
.icon-btn.job-ctl svg{width:15px; height:15px}
.job-sec{margin-top:18px; border-top:1px solid var(--line-2); padding-top:15px}
.job-sec-h{display:flex; align-items:center; gap:9px; margin-bottom:11px; flex-wrap:wrap}
.job-sec-h svg{width:16px; height:16px; color:var(--accent)}
.job-sec-h b{font-family:var(--font-head); font-size:13.5px; color:var(--ink)}
.job-sec-h .muted{font-size:12px}
.pick-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(228px,1fr)); gap:9px}
.pick{display:flex; align-items:center; gap:9px; padding:9px 12px; border:1px solid var(--line); border-radius:var(--r-sm);
  background:var(--bg); font-size:13px; color:var(--ink); cursor:pointer; transition:.14s}
.pick:hover{border-color:var(--muted); background:var(--bg-soft)}
.pick input{accent-color:var(--brand); flex:0 0 auto}
.pick .muted{margin-left:auto; font-size:11.5px; white-space:nowrap}
.pick.off{opacity:.5; cursor:not-allowed}

/* Management (system settings) — reuses .res-shell/.res-rail/.res-main */
.mg-form{padding:20px 20px 24px}
.mg-form.form-grid{gap:17px 24px}
.fld-full{grid-column:1/-1}
.mg-form textarea{resize:vertical; min-height:54px; line-height:1.5}
.mg-chip{font-size:10px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; padding:2px 8px;
  border-radius:var(--r-pill); flex:0 0 auto; white-space:nowrap}
.mg-chip-sh{background:var(--bg-soft); color:var(--muted); border:1px solid var(--line)}
.mg-chip-vk{background:rgba(197,72,47,.12); color:#c5482f}
.mg-chip-vr{background:var(--brand-050); color:var(--brand-600)}
.mg-chip-pp{background:rgba(122,63,242,.12); color:#7a3ff2}
/* per-product mode + family switcher */
.mg-mode{display:flex; align-items:center; gap:12px; flex-wrap:wrap; padding:14px 20px 0}
.mg-mode-l{font-size:12.5px; font-weight:600; color:var(--muted)}
.mg-seg{display:inline-flex; background:var(--bg-soft); border:1px solid var(--line); border-radius:var(--r-pill); padding:3px}
.mg-seg-b{border:0; background:transparent; padding:6px 14px; border-radius:var(--r-pill); font-size:12.5px; font-weight:600; color:var(--muted); cursor:pointer; transition:.14s}
.mg-seg-b:hover{color:var(--ink)}
.mg-seg-b.active{background:var(--bg); color:var(--brand-600); box-shadow:var(--shadow-sm)}
.mg-mode-hint{font-size:12px; color:var(--muted)}
.mg-fam-tabs{display:flex; gap:8px; padding:14px 20px 0}
.mg-fam{border:1px solid var(--line); background:var(--bg); color:var(--muted); padding:7px 18px; border-radius:var(--r-sm); font-size:13px; font-weight:600; cursor:pointer; transition:.14s}
.mg-fam:hover{color:var(--ink); border-color:var(--muted)}
.mg-fam.active{color:#fff; background:var(--fi); border-color:var(--fi)}
.res-rail-item .mg-chip{margin-left:auto}
.mg-pub-list{display:flex; flex-direction:column; gap:8px; margin-top:6px}
.mg-pub-item{display:flex; align-items:center; gap:10px; padding:10px 12px; border:1px solid var(--line);
  border-radius:var(--r-sm); font-size:13px; color:var(--body)}
.mg-pub-item svg{width:15px; height:15px; color:var(--success); flex:0 0 auto}

/* ---- Maintenance & Health ------------------------------------------------ */
.mt-body{padding:0 0 4px}
.mt-pad{padding:16px 20px 0}
.mt-sec{border-top:1px solid var(--line-2); margin-top:16px}
.mt-sec:first-child{border-top:0; margin-top:0}
.mt-sec-h{display:flex; align-items:center; gap:10px; padding:14px 20px 10px; font-size:12px; font-weight:700;
  letter-spacing:.05em; text-transform:uppercase; color:var(--muted)}
.mt-sec-h .sp{flex:1 1 auto}
.mt-actions{display:flex; justify-content:flex-end; gap:8px; padding:14px 20px 18px}
.mt-actions-l{justify-content:flex-start; flex-wrap:wrap}
/* status banner */
.mt-banner{display:flex; align-items:center; gap:14px; margin:16px 20px 0; padding:14px 16px; border-radius:var(--r-sm); border:1px solid}
.mt-banner svg{width:22px; height:22px; flex:0 0 auto}
.mt-banner div{display:flex; flex-direction:column; gap:2px; min-width:0}
.mt-banner b{font-size:14px}
.mt-banner span{font-size:12.5px; opacity:.85}
.mt-b-ok{background:var(--success-050); border-color:transparent; color:var(--success)}
.mt-b-warn{background:var(--warning-050); border-color:transparent; color:var(--warning)}
.mt-b-down{background:var(--danger-050); border-color:transparent; color:var(--danger)}
/* component cards */
.mt-hgrid{display:grid; grid-template-columns:repeat(auto-fill,minmax(268px,1fr)); gap:14px; padding:16px 20px 20px}
.mt-hcard{border:1px solid var(--line); border-radius:var(--r-sm); padding:13px 14px; display:flex; flex-direction:column; gap:9px;
  background:var(--bg); position:relative; overflow:hidden}
.mt-hcard::before{content:""; position:absolute; left:0; top:0; bottom:0; width:3px}
.mt-h-ok::before{background:var(--success)}
.mt-h-warn::before{background:var(--warning)}
.mt-h-down::before{background:var(--danger)}
.mt-hc-top{display:flex; align-items:center; gap:8px}
.mt-hc-top b{font-size:13.5px; color:var(--ink); flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.mt-hdot{width:8px; height:8px; border-radius:50%; flex:0 0 auto}
.mt-h-ok .mt-hdot{background:var(--success)}
.mt-h-warn .mt-hdot{background:var(--warning)}
.mt-h-down .mt-hdot{background:var(--danger)}
.mt-hc-msg{font-size:12.5px; color:var(--body); line-height:1.45; min-height:36px}
.mt-hc-meta{display:flex; flex-wrap:wrap; gap:12px; font-size:11.5px; color:var(--muted)}
.mt-hc-meta span{display:inline-flex; align-items:center; gap:5px}
.mt-hc-meta svg{width:13px; height:13px}
.mt-hc-foot{display:flex; align-items:center; gap:8px; margin-top:2px}
.mt-hc-foot .btn{margin-left:auto}
/* product tag */
.mt-tag{display:inline-flex; align-items:center; font-size:10.5px; font-weight:700; padding:2px 8px; border-radius:var(--r-pill);
  white-space:nowrap; flex:0 0 auto}
.mt-tag-sh{background:var(--bg-soft); color:var(--muted); border:1px solid var(--line)}
.mt-tag-vk{background:rgba(197,72,47,.12); color:#c5482f}
.mt-tag-vr{background:var(--brand-050); color:var(--brand-600)}
/* health-log severity */
.hsev{display:inline-flex; align-items:center; gap:5px; font-size:11.5px; font-weight:700; padding:3px 9px; border-radius:var(--r-pill); white-space:nowrap}
.hsev .d{width:6px; height:6px; border-radius:50%; background:currentColor}
.hs-info{background:var(--bg-soft); color:var(--muted)}
.hs-warn{background:var(--warning-050); color:var(--warning)}
.hs-error{background:var(--danger-050); color:var(--danger)}
.hs-crit{background:var(--danger); color:#fff}
/* thresholds */
.mt-thr{display:flex; align-items:flex-end; gap:16px; flex-wrap:wrap; margin:16px 20px 0; padding:14px 16px;
  background:var(--bg-soft); border:1px solid var(--line-2); border-radius:var(--r-sm)}
.mt-thr-l{display:flex; flex-direction:column; gap:3px; flex:1 1 260px; min-width:0}
.mt-thr-l b{font-size:13px; color:var(--ink)}
.mt-thr-l span{font-size:12px; color:var(--muted)}
.mt-thr .fld{width:130px; flex:0 0 auto}
/* version distribution */
.mt-vblock{padding:0 20px 14px}
.mt-vhead{display:flex; align-items:center; gap:10px; margin-bottom:8px; font-size:12.5px}
.mt-vrow{display:flex; align-items:center; gap:12px; padding:4px 0}
.mt-vver{width:150px; flex:0 0 auto; font-size:12.5px; font-weight:600; color:var(--ink)}
.mt-cur{font-size:10px; font-weight:700; color:var(--success); background:var(--success-050); padding:1px 6px; border-radius:var(--r-pill)}
.mt-vbar{flex:1 1 auto; height:9px; background:var(--bg-soft); border-radius:99px; overflow:hidden}
.mt-vbar-in{height:100%; background:var(--muted); border-radius:99px}
.mt-vbar-in.is-cur{background:var(--success)}
.mt-vnum{width:60px; text-align:right; flex:0 0 auto; font-size:12.5px; font-weight:700; color:var(--ink)}
/* notes */
.mt-note{display:flex; align-items:flex-start; gap:10px; margin:14px 20px 0; padding:11px 13px; background:var(--bg-soft);
  border:1px solid var(--line-2); border-radius:var(--r-sm); font-size:12.5px; color:var(--body); line-height:1.5}
.mt-note svg{width:15px; height:15px; flex:0 0 auto; color:var(--muted); margin-top:1px}
.mt-note-ok{background:var(--success-050); border-color:transparent}
.mt-note-ok svg{color:var(--success)}
/* tables */
/* Fixed layout + single-line cells: the panel column is ~780px wide, so an
   auto-layout table with 9 columns wrapped every cell and blew rows up to
   ~350px. Only the lead cell (name + description) is allowed to wrap. */
.tbl-mt{table-layout:fixed; width:100%}
.tbl-mt tbody td{white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.tbl-mt tbody td.lead{white-space:normal}
.tbl-mt th:first-child,.tbl-mt td:first-child{width:30%}
.tbl-mt th:last-child,.tbl-mt td.res-row-act{width:92px}
.mt-sub{display:block; font-size:11px; color:var(--muted); margin-top:1px; overflow:hidden; text-overflow:ellipsis}
/* .res-main .tbl tbody td forces wrapping (it is more specific than .tbl-std),
   which double-lined the health-log rows inside the rail shell. Restore the
   standard-grid single-line behaviour for grids rendered inside .res-main. */
.res-main .tbl-std tbody td{white-space:nowrap; word-break:normal; height:45px; padding:0 14px}
/* retention: inputs must not push the table past the panel */
.tbl-ret th:nth-child(1),.tbl-ret td:nth-child(1){width:30%}
.tbl-ret th:nth-child(2),.tbl-ret td:nth-child(2){width:13%}
.tbl-ret th:nth-child(3),.tbl-ret td:nth-child(3){width:11%}
.tbl-ret th:nth-child(4),.tbl-ret td:nth-child(4){width:23%}
.tbl-ret th:nth-child(5),.tbl-ret td:nth-child(5){width:14%}
.tbl-ret th:nth-child(6),.tbl-ret td:nth-child(6){width:9%}
/* number spinners add intrinsic width; hide them so the cell can shrink */
.mt-in::-webkit-outer-spin-button,.mt-in::-webkit-inner-spin-button{-webkit-appearance:none; margin:0}
.mt-in[type=number]{-moz-appearance:textfield}
.mt-hold{display:block; font-size:11px; font-weight:700; color:var(--warning); margin-top:3px}
.tbl-mt thead th{font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.tbl-mt tbody td{padding:10px 16px; vertical-align:middle; border-bottom:1px solid var(--line-2); font-size:13px}
.tbl-mt tbody td.res-row-act{white-space:nowrap; text-align:right}
.tbl-mt tbody td .icon-btn{display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px}
.tbl-mt td.lead b{display:block; font-weight:650; color:var(--ink)}
.mt-tdesc{display:block; font-size:11.5px; color:var(--muted); margin-top:2px; max-width:420px}
.mt-in{width:100%; min-width:0; padding:6px 9px; border:1px solid var(--line); border-radius:var(--r-xs);
  background:var(--bg-soft); color:var(--ink); font:inherit; font-size:12.5px}
.mt-in:focus{outline:none; border-color:var(--brand); background:var(--bg); box-shadow:0 0 0 3px rgba(22,100,254,.1)}
/* key/value blocks */
.mt-kvs{display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:12px 20px; padding:4px 20px 16px}
.mt-kv{display:flex; flex-direction:column; gap:3px; min-width:0}
.mt-kv span{font-size:11.5px; color:var(--muted)}
.mt-kv b{font-size:13px; color:var(--ink); word-break:break-word; display:flex; align-items:center; gap:8px; flex-wrap:wrap}
/* fragmentation */
.mt-frag{display:flex; align-items:center; gap:9px; min-width:130px}
.mt-frag-bar{flex:1 1 auto; height:8px; background:var(--bg-soft); border-radius:99px; overflow:hidden}
.mt-frag-in{height:100%; background:var(--success); border-radius:99px}
.mt-frag-in.is-hot{background:var(--warning)}
.mt-frag span{font-size:12px; font-weight:700; color:var(--ink); width:38px; text-align:right}
/* diagnostics picks */
.mt-picks{display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:8px; padding:0 20px}
/* release notes */
.mt-rn{margin:0 20px 14px; border:1px solid var(--line); border-radius:var(--r-sm); padding:13px 15px}
.mt-rn-h{display:flex; align-items:center; gap:10px; margin-bottom:8px}
.mt-rn-h b{font-family:var(--font-head); font-size:15px; color:var(--ink)}
.mt-rn-h .muted{margin-left:auto; font-size:12px}
.mt-rn-b{display:flex; gap:12px; padding:5px 0}
.mt-rn-l{flex:0 0 118px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; padding-top:2px}
.rn-add{color:var(--success)}
.rn-fix{color:var(--brand-600)}
.rn-known{color:var(--warning)}
.mt-rn-b ul{margin:0; padding-left:18px; font-size:12.5px; color:var(--body); line-height:1.6}
/* misc */
.rail-alert{background:var(--danger-050) !important; color:var(--danger) !important; border-color:transparent !important}
.mt-days-crit{color:var(--danger)}
.mt-days-warn{color:var(--warning)}
.mt-thr .btn{margin-bottom:1px}

/* ---- Audit trail + product-scoped authorization -------------------------- */
.hs-ok{background:var(--success-050); color:var(--success)}
/* action pill */
.aua{display:inline-flex; align-items:center; font-size:11px; font-weight:700; padding:3px 9px; border-radius:var(--r-pill); white-space:nowrap}
.au-create{background:var(--success-050); color:var(--success)}
.au-edit{background:var(--brand-050); color:var(--brand-600)}
.au-delete{background:var(--danger-050); color:var(--danger)}
.au-exec{background:rgba(122,63,242,.12); color:#7a3ff2}
.au-export{background:var(--warning-050); color:var(--warning)}
.au-view{background:var(--bg-soft); color:var(--muted)}
/* before/after diff */
.au-diff td{vertical-align:middle}
.au-from{display:inline-block; max-width:100%; padding:2px 8px; border-radius:var(--r-xs); background:var(--danger-050);
  color:var(--danger); text-decoration:line-through; font-size:12.5px; overflow:hidden; text-overflow:ellipsis}
.au-to{display:inline-block; max-width:100%; padding:2px 8px; border-radius:var(--r-xs); background:var(--success-050);
  color:var(--success); font-size:12.5px; overflow:hidden; text-overflow:ellipsis}
/* scope banner + lock affordances */
.mt-scope{display:flex; align-items:center; gap:10px; margin:16px 20px 0; padding:11px 14px; border-radius:var(--r-sm);
  background:rgba(122,63,242,.08); border:1px solid rgba(122,63,242,.22); font-size:12.5px; color:var(--body)}
.mt-scope svg{width:16px; height:16px; flex:0 0 auto; color:#7a3ff2}
.mt-scope b{color:var(--ink)}
.mt-lock{display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:var(--r-xs);
  color:var(--muted); background:var(--bg-soft); cursor:help; vertical-align:middle}
.mt-lock svg{width:14px; height:14px}
.mt-lock-t{display:inline-flex; align-items:center; gap:7px; font-size:12px; color:var(--muted); max-width:340px; line-height:1.4}
.mt-lock-t svg{width:14px; height:14px; flex:0 0 auto}
.tbl-mt tr.mt-ro td.lead b{color:var(--muted)}
.tbl-mt tr.mt-ro input:disabled,.tbl-mt tr.mt-ro .switch input:disabled + .sl{opacity:.55; cursor:not-allowed}
.tbl-std tbody tr.au-new td:first-child{box-shadow:inset 3px 0 0 var(--brand)}

/* ---- Classification taxonomy --------------------------------------------- */
.tax-sw{display:inline-block; width:26px; height:14px; border-radius:4px; border:1px solid var(--line)}
.tbl-tax td.lead b{display:block}
.tax-checks{display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:8px; padding:14px 20px 4px}
.tax-color{display:flex; align-items:center; gap:9px}
.tax-color input[type=color]{width:44px; height:32px; padding:2px; border:1px solid var(--line); border-radius:var(--r-xs); background:var(--bg-soft); cursor:pointer}
.tax-color code{font-size:12px; color:var(--muted)}
.pick-sm{padding:6px 10px; font-size:12.5px}
.wm-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:8px; padding:0 0 14px}
.wm-toks{display:flex; flex-wrap:wrap; gap:6px; margin-top:8px}
.wm-tok{border:1px solid var(--line); background:var(--bg-soft); color:var(--brand-600); font-size:11px; font-weight:600;
  padding:3px 9px; border-radius:var(--r-pill); cursor:pointer; transition:.14s; font-family:inherit}
.wm-tok:hover{background:var(--brand-050); border-color:var(--brand)}
.mt-body .form-grid.mg-form{padding:16px 20px 0}
.mt-body .mt-sec .mt-pad .wm-grid{padding-top:6px}
.tbl-tax th:last-child,.tbl-tax td.res-row-act{width:86px}

/* ---- Grid framework: sorting, column chooser, column filters, grouping ---- */
.gsortable{cursor:pointer; user-select:none; white-space:nowrap}
.gsortable:hover{color:var(--brand-600)}
.gsort{margin-left:5px; font-size:10px; opacity:.9}
.gsort-off{opacity:.25}
th.is-sorted{color:var(--brand-600)}
.gcfrow th{padding:5px 8px !important; background:var(--bg-soft)}
.gcf{width:100%; min-width:0; padding:4px 7px; border:1px solid var(--line); border-radius:var(--r-xs);
  background:var(--bg); color:var(--ink); font:inherit; font-size:11.5px; font-weight:400; text-transform:none; letter-spacing:0}
.gcf:focus{outline:none; border-color:var(--brand); box-shadow:0 0 0 2px rgba(22,100,254,.12)}
.gbadge{display:inline-block; margin-left:5px; font-size:10.5px; font-weight:700; padding:1px 6px;
  border-radius:var(--r-pill); background:var(--bg-soft); color:var(--muted)}
.btn-on{border-color:var(--brand); color:var(--brand-600); background:var(--brand-050)}
.btn-on .gbadge{background:var(--bg); color:var(--brand-600)}
/* column chooser popover */
.gtools{position:relative; flex-wrap:wrap}
.gcols-pop{position:absolute; top:100%; right:12px; z-index:40; margin-top:6px; width:min(340px,90vw);
  background:var(--bg); border:1px solid var(--line); border-radius:var(--r-sm);
  box-shadow:0 12px 32px rgba(0,0,0,.16); padding:10px}
.gcols-h{display:flex; align-items:center; gap:10px; font-size:11px; font-weight:700; text-transform:uppercase;
  letter-spacing:.05em; color:var(--muted); padding:2px 4px 8px; border-bottom:1px solid var(--line-2); margin-bottom:8px}
.gcols-h .btn{margin-left:auto}
.gcols-list{display:grid; gap:4px; max-height:320px; overflow:auto}
/* active filter chips */
.gchips{display:flex; flex-wrap:wrap; align-items:center; gap:7px; padding:0 14px 10px}
.gchip{display:inline-flex; align-items:center; gap:6px; font-size:12px; padding:3px 4px 3px 10px;
  border-radius:var(--r-pill); background:var(--brand-050); color:var(--brand-600)}
.gchip b{font-weight:700}
.gchip button{border:0; background:transparent; color:inherit; cursor:pointer; display:inline-flex; padding:2px; border-radius:50%}
.gchip button:hover{background:rgba(0,0,0,.08)}
.gchip svg{width:12px; height:12px}
/* grouping rows */
tr.ggrp td{background:var(--bg-soft); padding:0 !important; height:auto !important; white-space:normal}
.ggrp-b{display:flex; align-items:center; gap:8px; width:100%; border:0; background:transparent; cursor:pointer;
  padding:8px 14px; font:inherit; font-size:12.5px; color:var(--ink); text-align:left}
.ggrp-b:hover{background:var(--line-2)}
.ggrp-b svg{width:14px; height:14px; color:var(--muted); flex:0 0 auto}
.ggrp-b b{font-weight:700; color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.04em}
.ggrp-n{margin-left:auto; font-size:11.5px; font-weight:700; color:var(--muted); background:var(--bg);
  border:1px solid var(--line); border-radius:var(--r-pill); padding:1px 8px}

/* ---- Policy: end-user message, per-product actions, advanced rule ---------- */
.pol-msg{margin-top:14px; padding:13px 15px; border:1px solid var(--line); border-radius:var(--r-sm); background:var(--bg-soft)}
.pol-msg-h{display:flex; align-items:center; gap:9px; margin-bottom:10px}
.pol-msg-h svg{width:16px; height:16px; color:var(--muted)}
.pol-msg-h b{font-size:13px; color:var(--ink)}
.pol-msg .hint{display:block; margin-top:8px; font-size:11.5px; color:var(--muted); line-height:1.5}
/* classification action model */
.cls-act{display:flex; flex-direction:column; gap:10px}
.cls-act-row{display:flex; align-items:center; gap:14px; flex-wrap:wrap; padding:10px 12px;
  border:1px solid var(--line); border-radius:var(--r-sm); background:var(--bg)}
.cls-act-row > .pick{flex:0 0 auto; margin:0}
.ca-f{display:flex; align-items:center; gap:8px; min-width:0}
.ca-f label{font-size:11.5px; color:var(--muted); white-space:nowrap}
.ca-f .pol-select{min-width:150px}
/* both-product sections */
.pol-sect{margin-bottom:16px}
.pol-sect-h{display:flex; align-items:center; gap:9px; font-size:11px; font-weight:700; text-transform:uppercase;
  letter-spacing:.05em; color:var(--muted); padding-bottom:8px; margin-bottom:10px; border-bottom:1px solid var(--line-2)}
/* advanced rule block */
.rule-adv{border:1px solid var(--line); border-radius:var(--r-sm); background:var(--bg-soft); padding:0 12px}
.rule-adv summary{display:flex; align-items:center; gap:8px; cursor:pointer; padding:10px 0; font-size:12.5px;
  font-weight:600; color:var(--ink-2); list-style:none}
.rule-adv summary::-webkit-details-marker{display:none}
.rule-adv summary svg{width:15px; height:15px; color:var(--muted)}
.rule-adv[open] summary{border-bottom:1px solid var(--line-2)}
.rule-adv .form-grid{padding-bottom:12px}
.rule-flags{display:inline-block; margin-left:7px; font-size:10.5px; font-weight:700; color:var(--brand-600);
  background:var(--brand-050); border-radius:var(--r-pill); padding:1px 7px; vertical-align:middle}

/* ---- Management: sectioned settings screens ------------------------------ */
.mg-sec{border-top:1px solid var(--line-2)}
.mg-sec:first-child{border-top:0}
.mg-sec-h{padding:16px 20px 2px; font-size:11px; font-weight:700; text-transform:uppercase;
  letter-spacing:.05em; color:var(--muted)}
.mg-sec .mg-form{padding-top:10px}
.ovr-edit{border-top:1px solid var(--line-2); margin-top:4px}
.tbl-mt tbody tr.is-open{background:var(--brand-050)}
.tbl-mt tbody tr.res-row{cursor:pointer}

/* ---- inline percentage bar (client telemetry) ---------------------------- */
.pctbar{display:inline-flex; align-items:center; gap:7px; min-width:86px}
.pctbar-in{display:block; height:6px; border-radius:99px; background:var(--brand); min-width:2px; max-width:60px}
.pctbar-in.is-hot{background:var(--danger)}
.pctbar b{font-size:11.5px; font-weight:700; color:var(--ink)}

/* "Bu kullanıcı gibi gör" şeridi (sahip, 16 Eki 2026).
   Ekranın altına sabitlenir: yerleşime dokunmaz ama gözden kaçmaz. Kimin gibi
   görüldüğü, kipliğin salt okunur olduğu ve çıkış aynı şeritte durur. */
.imp-bar{position:fixed; left:0; right:0; bottom:0; z-index:80; display:flex; align-items:center;
  gap:10px; padding:9px 16px; background:#78350f; color:#fffbeb; font-size:13px; font-weight:650;
  box-shadow:0 -8px 22px rgba(0,0,0,.22)}
.imp-bar svg{width:18px; height:18px; flex:0 0 auto}
.imp-bar b{font-weight:800}
.imp-bar .imp-ro{padding:2px 8px; border-radius:999px; background:rgba(255,255,255,.18);
  font-size:11px; font-weight:800; letter-spacing:.04em; text-transform:uppercase}
.imp-bar .imp-sp{flex:1 1 auto}
.imp-bar .imp-who{font-size:12px; font-weight:600; opacity:.85}
.imp-bar .btn{background:#fffbeb; color:#78350f; border-color:#fffbeb; font-weight:800}
.imp-bar .btn:hover{background:#fff; border-color:#fff}
body.is-imp .main{padding-bottom:54px}
@media(max-width:680px){.imp-bar .imp-who{display:none}}

.imp-bar .imp-pd{padding:2px 8px; border-radius:999px; background:rgba(0,0,0,.22); font-size:11px;
  font-weight:700; opacity:.95}
@media(max-width:900px){.imp-bar .imp-pd{display:none}}

/* Kanal performansı özeti (gösterge paneli, 16 Eki 2026) */
.chk-row{display:grid; grid-template-columns:repeat(6,1fr); gap:12px; padding:0 16px 16px}
.chk{border:1px solid var(--line); border-radius:12px; padding:12px 14px; background:var(--bg)}
.chk-l{font-size:11px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:var(--muted)}
.chk-v{font-size:26px; font-weight:800; line-height:1.15; margin:4px 0 2px}
.chk-f{font-size:11px; color:var(--muted)}
.ch-split{display:grid; grid-template-columns:minmax(260px,1fr) minmax(320px,1.4fr); gap:20px; padding:0 16px 16px}
.fnl{display:flex; flex-direction:column; gap:7px}
.fnl-row{display:flex; align-items:center; gap:9px; padding:2px 4px; border-radius:8px}
.fnl-row[data-stage]{cursor:pointer}
.fnl-row:hover{background:var(--bg-soft)}
.fnl-row.is-zero{opacity:.55}
.fnl-n{width:18px; height:18px; border-radius:6px; background:var(--brand); color:#fff; font-size:11px;
  font-weight:800; display:flex; align-items:center; justify-content:center; flex:0 0 auto}
.fnl-name{font-size:12.5px; font-weight:600; flex:0 0 150px}
.fnl-bar{flex:1 1 auto; height:8px; border-radius:999px; background:var(--bg-soft); overflow:hidden}
.fnl-bar i{display:block; height:100%; border-radius:999px; background:var(--brand)}
.fnl-c{font-size:12.5px; font-weight:800; width:28px; text-align:right}
.wm{border:1px solid var(--line); border-radius:12px; overflow:hidden; background:#f6f9ff}
.wm svg{display:block; width:100%; height:auto}
.wm svg path{fill:#e3e9f3; stroke:#c9d3e6; stroke-width:.6; stroke-linejoin:round}
.wm svg circle{fill:#e3e9f3; stroke:#c9d3e6; stroke-width:.6}
.wm svg .wm-on{stroke:#fff; stroke-width:.7}
.wm svg .wm-l1{fill:#c9d8f5}
.wm svg .wm-l2{fill:#5a95fd}
.wm svg .wm-l3{fill:#1664fe}
/* tablo hücresinde ikinci satır (ör. kanalın türü): .gs-sub arama açılırında satır içidir */
.tbl .gs-sub{display:block; font-size:11px; color:var(--muted); font-weight:600; margin-top:2px}
.wm-legend{display:flex; align-items:center; gap:14px; flex-wrap:wrap; font-size:11.5px;
  color:var(--muted); margin-top:8px}
.wm-legend .wm-k{display:inline-flex; align-items:center; gap:6px}
.wm-legend .wm-k b{color:var(--ink); font-variant-numeric:tabular-nums}
.wm-ci i.wm-sw{flex:0 0 auto}
.wm-sw{width:12px; height:12px; border-radius:3px; display:inline-block}
.wm-sw.wm-l1{background:#9ec1ff}.wm-sw.wm-l2{background:#5a95fd}.wm-sw.wm-l3{background:#1664fe}
[data-theme="dark"] .wm{background:#0d1626}
/* Nötr kara YALNIZ vurgulanmayan ülkelerdir. `:not(.wm-on)` olmadan bu kural, sınıf
   sayısı fazla olduğu için vurgu renklerini eziyordu: koyu temada boyalı ülkeler
   görünmüyordu (17 Eki 2026). */
[data-theme="dark"] .wm svg path:not(.wm-on),
[data-theme="dark"] .wm svg circle:not(.wm-on){fill:#1b2740; stroke:#27334d}
[data-theme="dark"] .wm svg .wm-on{stroke:#0d1626}
/* Koyu temada sıralama tersine dönmesin: aydınlık tonlar koyu zeminde en çok
   bağıran renktir. Aşama ilerledikçe renk GÜÇLENİR, burada da öyle olmalı. */
[data-theme="dark"] .wm svg .wm-l1{fill:#35507e}
[data-theme="dark"] .wm svg .wm-l2{fill:#2f6fd0}
[data-theme="dark"] .wm svg .wm-l3{fill:#4d93ff}
[data-theme="dark"] .wm-sw.wm-l1{background:#35507e}
[data-theme="dark"] .wm-sw.wm-l2{background:#2f6fd0}
[data-theme="dark"] .wm-sw.wm-l3{background:#4d93ff}
@media(max-width:1180px){.chk-row{grid-template-columns:repeat(3,1fr)} .ch-split{grid-template-columns:1fr}}
@media(max-width:680px){.chk-row{grid-template-columns:repeat(2,1fr)} .fnl-name{flex-basis:110px}}

/* Haritanın büyük hâli (sahip, 16 Eki 2026) */
.pm-group-title.wm-title{display:flex; align-items:center; gap:10px}
.pm-group-title.wm-title .btn{margin-left:auto; text-transform:none; letter-spacing:0}
.wm-click{cursor:zoom-in}
.wm-big svg{max-height:62vh}
.wm-cols{columns:4; column-gap:18px}
.wm-ci{display:flex; align-items:center; gap:8px; font-size:12.5px; padding:3px 0;
  break-inside:avoid; border-bottom:1px solid var(--line-2)}
.wm-ci b{margin-left:auto; font-variant-numeric:tabular-nums}
@media(max-width:900px){.wm-cols{columns:2}}

/* Doğrulama hatası olan alan (16 Eki 2026): metin nereye bakacağını söylemeli */
.fld.is-bad > label{color:var(--danger)}
.fld.is-bad input,.fld.is-bad select,.fld.is-bad textarea,.fld.is-bad .msdd-btn,.fld.is-bad .ss-btn{
  border-color:var(--danger); background:var(--danger-050)}
.fld.is-bad .hint{color:var(--danger)}

/* Başvuru künyesi (okunur alanlar) */
.ap-read{display:grid; grid-template-columns:repeat(2,1fr); gap:2px 20px; margin-bottom:6px}
.ap-read .ap-r{display:flex; gap:10px; align-items:baseline; padding:5px 0;
  border-bottom:1px solid var(--line-2); font-size:13px}
.ap-read .ap-r span{color:var(--muted); flex:0 0 42%}
.ap-read .ap-r b{font-weight:650; min-width:0; overflow-wrap:anywhere}
@media(max-width:680px){.ap-read{grid-template-columns:1fr}}
