/* ==========================================================================
   Imcentra YÖKAK — arayüz tasarım sistemi (TEMPLATE_LOCK.md ile kilitli)
   Tema: "Değerlendirme dosyası" — petrol mürekkebi, serin kâğıt, olgunluk merdiveni.
   ========================================================================== */

@font-face { font-family: "Plex"; font-weight: 400; font-display: swap; src: url("../fonts/ibm-plex-sans-latin-ext-400-normal.woff2") format("woff2"); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+20A0-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Plex"; font-weight: 400; font-display: swap; src: url("../fonts/ibm-plex-sans-latin-400-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Plex"; font-weight: 500; font-display: swap; src: url("../fonts/ibm-plex-sans-latin-ext-500-normal.woff2") format("woff2"); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+20A0-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Plex"; font-weight: 500; font-display: swap; src: url("../fonts/ibm-plex-sans-latin-500-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Plex"; font-weight: 600; font-display: swap; src: url("../fonts/ibm-plex-sans-latin-ext-600-normal.woff2") format("woff2"); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+20A0-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Plex"; font-weight: 600; font-display: swap; src: url("../fonts/ibm-plex-sans-latin-600-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Serif4"; font-weight: 400; font-display: swap; src: url("../fonts/source-serif-4-latin-ext-400-normal.woff2") format("woff2"); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+20A0-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Serif4"; font-weight: 400; font-display: swap; src: url("../fonts/source-serif-4-latin-400-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Serif4"; font-style: italic; font-weight: 400; font-display: swap; src: url("../fonts/source-serif-4-latin-ext-400-italic.woff2") format("woff2"); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+20A0-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Serif4"; font-style: italic; font-weight: 400; font-display: swap; src: url("../fonts/source-serif-4-latin-400-italic.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Serif4"; font-weight: 600; font-display: swap; src: url("../fonts/source-serif-4-latin-ext-600-normal.woff2") format("woff2"); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+20A0-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Serif4"; font-weight: 600; font-display: swap; src: url("../fonts/source-serif-4-latin-600-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
    /* Renk belirteçleri */
    --paper: #eef1f0;          /* çalışma zemini (serin kâğıt) */
    --sheet: #ffffff;          /* belge / panel yüzeyi */
    --ink: #17262b;            /* ana metin, kenar çubuğu */
    --ink-2: #52636a;          /* ikincil metin */
    --ink-3: #82939a;          /* üçüncül metin, ipuçları */
    --rule: #d3dbda;           /* çizgiler, kenarlıklar */
    --rule-soft: #e4e9e8;
    --petrol: #0f5c66;         /* birincil eylem, seçim */
    --petrol-deep: #0a434b;
    --petrol-wash: #e3eff0;
    --ok: #2f7d4f;  --ok-wash: #e4f2e9;
    --warn: #9a5f0c; --warn-wash: #fbf0dc;
    --bad: #b3261e; --bad-wash: #fbe7e5;
    /* Olgunluk merdiveni (sıralı tek ton) */
    --lv1: #c9dfe1; --lv2: #94c2c7; --lv3: #4f9aa3; --lv4: #1f7480; --lv5: #0a434b;

    --sans: "Plex", "Segoe UI", system-ui, -apple-system, sans-serif;
    --serif: "Serif4", "Iowan Old Style", "Palatino Linotype", Georgia, serif;

    --r-sm: 5px; --r-md: 8px; --r-lg: 12px;
    --shadow-lift: 0 1px 0 rgba(23, 38, 43, .04), 0 8px 24px -12px rgba(23, 38, 43, .18);
    --sidebar-w: 248px;
    --focus: 0 0 0 3px rgba(15, 92, 102, .28);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
    margin: 0; background: var(--paper); color: var(--ink);
    font: 400 14.5px/1.5 var(--sans); font-feature-settings: "tnum" 0;
    -webkit-font-smoothing: antialiased;
}
a { color: var(--petrol); text-decoration-thickness: 1px; text-underline-offset: 2px; }
a:hover { color: var(--petrol-deep); }
h1, h2, h3, h4 { margin: 0; font-weight: 600; line-height: 1.25; }
p { margin: 0 0 .75em; }
:focus-visible { outline: none; box-shadow: var(--focus); border-radius: var(--r-sm); }
.ic { width: 18px; height: 18px; flex: none; vertical-align: -3px; }
.ic-sm { width: 15px; height: 15px; flex: none; vertical-align: -2px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.num { font-variant-numeric: tabular-nums; }
.muted { color: var(--ink-2); }
.faint { color: var(--ink-3); }
.small { font-size: 13px; }
[hidden] { display: none !important; }

/* ---------- Kabuk ---------- */
.shell { display: grid; grid-template-columns: var(--sidebar-w) 1fr; min-height: 100vh; background: linear-gradient(to right, var(--ink) var(--sidebar-w), var(--paper) 0); }
/* KİDR çalışma alanında ana menü ikon şeridine daralır; belgeye yer açılır */
.page-kidr { --sidebar-w: 64px; }
.page-kidr .brand { padding: 18px 17px; }
.page-kidr .brand-name, .page-kidr .nav-section-title, .page-kidr .nav a span, .page-kidr .sidebar-foot { display: none; }
.page-kidr .nav { padding: 4px 10px; }
.page-kidr .nav a { justify-content: center; padding: 10px 0; }
.page-kidr .nav-section { margin-top: 10px; padding-top: 10px; border-top: 1px solid #263a40; }
.page-kidr .nav-section:first-child { border-top: 0; padding-top: 0; }
.sidebar {
    background: var(--ink); color: #d9e3e3; position: sticky; top: 0; height: 100vh;
    display: flex; flex-direction: column; overflow-y: auto;
}
.brand { display: flex; align-items: center; gap: 10px; padding: 20px 20px 18px; color: #fff; text-decoration: none; }
.brand:hover { color: #fff; }
.brand-mark { width: 30px; height: 30px; flex: none; }
.brand-name { font-weight: 600; font-size: 16px; letter-spacing: -.01em; line-height: 1.1; }
.brand-sub { display: block; font-weight: 400; font-size: 12px; color: #9fb3b5; }
.nav { padding: 4px 12px 16px; flex: 1; }
.nav-section { margin-top: 18px; }
.nav-section-title { padding: 0 10px 6px; font-size: 12px; color: #8ea4a7; }
.nav a {
    display: flex; align-items: center; gap: 11px; padding: 8px 10px; border-radius: var(--r-sm);
    color: #d9e3e3; text-decoration: none; font-size: 14px;
}
.nav a:hover { background: rgba(255, 255, 255, .06); color: #fff; }
.nav a[aria-current="page"] { background: #24393f; color: #fff; box-shadow: inset 3px 0 0 #6fb6be; }
.nav a .ic { color: #8fb2b6; }
.nav a[aria-current="page"] .ic { color: #bfe3e6; }
.sidebar-foot { padding: 14px 20px 18px; border-top: 1px solid #263a40; font-size: 12px; color: #8ea4a7; }

.main { min-width: 0; display: flex; flex-direction: column; }
.topbar {
    position: sticky; top: 0; z-index: 20; display: flex; align-items: center; gap: 14px;
    padding: 10px 28px; background: rgba(238, 241, 240, .92); backdrop-filter: blur(6px);
    border-bottom: 1px solid var(--rule);
}
.topbar-title { font-size: 15px; font-weight: 500; flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.topbar .menu-toggle { display: none; }
.usermenu { position: relative; }
.usermenu > button {
    display: flex; align-items: center; gap: 10px; background: none; border: 0; padding: 4px 6px; border-radius: var(--r-md);
    font: inherit; color: var(--ink); cursor: pointer;
}
.usermenu > button:hover { background: var(--rule-soft); }
.avatar {
    width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; flex: none;
    background: var(--petrol-wash); color: var(--petrol-deep); font-weight: 600; font-size: 12px;
}
.usermenu-panel {
    position: absolute; right: 0; top: calc(100% + 6px); min-width: 230px; background: var(--sheet);
    border: 1px solid var(--rule); border-radius: var(--r-md); box-shadow: var(--shadow-lift); padding: 6px; z-index: 30;
}
.usermenu-panel .who { padding: 8px 10px 10px; border-bottom: 1px solid var(--rule-soft); margin-bottom: 4px; }
.usermenu-panel a, .usermenu-panel button {
    display: flex; width: 100%; align-items: center; gap: 10px; padding: 8px 10px; border: 0; background: none;
    font: inherit; color: var(--ink); text-decoration: none; border-radius: var(--r-sm); cursor: pointer; text-align: left;
}
.usermenu-panel a:hover, .usermenu-panel button:hover { background: var(--paper); }

.content { padding: 26px 28px 48px; width: 100%; max-width: 1280px; }
.page-kidr .content { max-width: none; padding: 18px 20px 32px; }
.page-head { display: flex; align-items: flex-end; gap: 16px; margin-bottom: 20px; flex-wrap: wrap; }
.page-head h1 { font-family: var(--serif); font-size: 28px; font-weight: 600; letter-spacing: -.01em; }
.page-head p { margin: 4px 0 0; color: var(--ink-2); max-width: 70ch; }
.page-head .actions { margin-left: auto; display: flex; gap: 8px; flex-wrap: wrap; }

/* ---------- Panel / belge yüzeyi ---------- */
.panel { background: var(--sheet); border: 1px solid var(--rule); border-radius: var(--r-lg); }
.panel + .panel { margin-top: 16px; }
.panel-head { display: flex; align-items: center; gap: 12px; padding: 14px 18px; border-bottom: 1px solid var(--rule-soft); }
.panel-head h2 { font-size: 15px; font-weight: 600; }
.panel-head .actions { margin-left: auto; display: flex; gap: 8px; }
.panel-body { padding: 18px; }
.panel-foot { padding: 12px 18px; border-top: 1px solid var(--rule-soft); display: flex; gap: 8px; justify-content: flex-end; }

/* ---------- Düğmeler ---------- */
.btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 8px 14px; min-height: 36px;
    border-radius: var(--r-md); border: 1px solid var(--rule); background: var(--sheet); color: var(--ink);
    font: 500 14px/1.2 var(--sans); text-decoration: none; cursor: pointer; white-space: nowrap;
}
.btn:hover { border-color: #b9c5c4; background: #f8faf9; color: var(--ink); }
.btn:disabled, .btn[aria-busy="true"] { opacity: .6; cursor: progress; }
.btn-primary { background: var(--petrol); border-color: var(--petrol); color: #fff; }
.btn-primary:hover { background: var(--petrol-deep); border-color: var(--petrol-deep); color: #fff; }
.btn-danger { color: var(--bad); }
.btn-danger:hover { background: var(--bad-wash); border-color: #f0bdb8; color: var(--bad); }
.btn-ghost { border-color: transparent; background: transparent; }
.btn-ghost:hover { background: var(--rule-soft); border-color: transparent; }
.btn-sm { min-height: 30px; padding: 5px 10px; font-size: 13px; }
.btn-icon { padding: 0; width: 32px; min-height: 32px; }
.btn-row { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.inline-form { display: inline; margin: 0; }

/* ---------- Form ---------- */
.field { display: flex; flex-direction: column; gap: 5px; margin-bottom: 14px; }
.field > label, .field-label { font-size: 13px; font-weight: 500; color: var(--ink-2); }
.field .hint { font-size: 12.5px; color: var(--ink-3); }
.input, .select, .textarea {
    width: 100%; padding: 8px 11px; min-height: 38px; border: 1px solid var(--rule); border-radius: var(--r-md);
    background: #fff; color: var(--ink); font: 400 14px/1.4 var(--sans);
}
.textarea { min-height: 110px; resize: vertical; line-height: 1.5; }
.textarea.mono { font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; font-size: 13px; }
.input:focus, .select:focus, .textarea:focus { outline: none; border-color: var(--petrol); box-shadow: var(--focus); }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
.form-grid .span-2 { grid-column: 1 / -1; }
.check { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; cursor: pointer; user-select: none; }
.check input { width: 17px; height: 17px; accent-color: var(--petrol); margin: 0; }
.checks { display: flex; flex-wrap: wrap; gap: 10px 18px; }
.panel-head .search-bar { flex: 1; }
.search-bar { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.search-bar .input { max-width: 300px; }
.search-bar .select { width: auto; }

/* ---------- Tablolar ---------- */
.table-wrap { overflow-x: auto; }
.table { width: 100%; border-collapse: collapse; font-size: 14px; }
.table th { text-align: left; font-weight: 500; font-size: 13px; color: var(--ink-2); padding: 10px 14px; border-bottom: 1px solid var(--rule); background: #f7f9f8; white-space: nowrap; }
.table td { padding: 11px 14px; border-bottom: 1px solid var(--rule-soft); vertical-align: middle; }
.table tr:last-child td { border-bottom: 0; }
.table tbody tr:hover td { background: #fafbfb; }
.table .actions { text-align: right; white-space: nowrap; }
.person { display: flex; align-items: center; gap: 10px; }
.person strong { font-weight: 500; display: block; }
.person span { font-size: 12.5px; color: var(--ink-3); }

.badge { display: inline-flex; align-items: center; gap: 5px; padding: 2px 8px; border-radius: 999px; font-size: 12px; font-weight: 500; white-space: nowrap; border: 1px solid transparent; }
.badge-ok { background: var(--ok-wash); color: var(--ok); }
.badge-warn { background: var(--warn-wash); color: var(--warn); }
.badge-bad { background: var(--bad-wash); color: var(--bad); }
.badge-muted { background: var(--rule-soft); color: var(--ink-2); }
.badge-petrol { background: var(--petrol-wash); color: var(--petrol-deep); }

/* ---------- Bildirim şeritleri ---------- */
.flashes { display: flex; flex-direction: column; gap: 8px; margin-bottom: 18px; }
.flash { display: flex; gap: 10px; align-items: flex-start; padding: 11px 14px; border-radius: var(--r-md); border: 1px solid; font-size: 14px; }
.flash-success { background: var(--ok-wash); border-color: #bfe0cb; color: #1f5b37; }
.flash-error { background: var(--bad-wash); border-color: #f0bdb8; color: #8a1d16; }
.flash-warning { background: var(--warn-wash); border-color: #efd5a6; color: #6f4508; }
.flash-info { background: var(--petrol-wash); border-color: #bcd8db; color: var(--petrol-deep); }
.flash .ic { margin-top: 1px; }

.toasts { position: fixed; right: 20px; bottom: 20px; z-index: 100; display: flex; flex-direction: column; gap: 8px; max-width: min(420px, calc(100vw - 40px)); }
.toast { padding: 11px 14px; border-radius: var(--r-md); background: var(--ink); color: #fff; box-shadow: var(--shadow-lift); font-size: 14px; display: flex; gap: 10px; align-items: flex-start; }
.toast-error { background: #7d1c16; }
@media (prefers-reduced-motion: no-preference) {
    .toast { animation: toast-in .18s ease-out; }
    @keyframes toast-in { from { transform: translateY(6px); opacity: 0; } }
}

/* ---------- Diyaloglar ---------- */
dialog.dlg { border: 0; padding: 0; border-radius: var(--r-lg); box-shadow: 0 24px 60px -20px rgba(10, 30, 35, .45); width: min(560px, calc(100vw - 32px)); color: var(--ink); }
dialog.dlg-wide { width: min(820px, calc(100vw - 32px)); }
dialog.dlg::backdrop { background: rgba(16, 32, 36, .45); }
.dlg-head { display: flex; align-items: center; gap: 10px; padding: 16px 20px; border-bottom: 1px solid var(--rule-soft); }
.dlg-head h2 { font-size: 16px; flex: 1; }
.dlg-body { padding: 18px 20px; max-height: 64vh; overflow-y: auto; }
.dlg-foot { padding: 12px 20px; border-top: 1px solid var(--rule-soft); display: flex; justify-content: flex-end; gap: 8px; background: #f8faf9; border-radius: 0 0 var(--r-lg) var(--r-lg); }
.ai-output { white-space: pre-wrap; font-family: var(--serif); font-size: 15.5px; line-height: 1.65; background: #f8faf9; border: 1px solid var(--rule-soft); border-radius: var(--r-md); padding: 14px 16px; }

/* ---------- Sayfalama ---------- */
.pager { display: flex; align-items: center; gap: 6px; justify-content: space-between; padding: 12px 16px; border-top: 1px solid var(--rule-soft); font-size: 13px; color: var(--ink-2); flex-wrap: wrap; }
.pager nav { display: flex; gap: 4px; }
.pager a, .pager span.cur { min-width: 32px; height: 32px; display: inline-grid; place-items: center; padding: 0 8px; border-radius: var(--r-sm); text-decoration: none; color: var(--ink); border: 1px solid var(--rule); background: #fff; }
.pager span.cur { background: var(--petrol); color: #fff; border-color: var(--petrol); }

.empty { text-align: center; padding: 40px 20px; color: var(--ink-2); }
.empty .ic { width: 34px; height: 34px; color: var(--ink-3); margin-bottom: 8px; }
.empty strong { display: block; color: var(--ink); font-weight: 500; margin-bottom: 4px; }

/* ---------- Giriş ---------- */
.auth-page { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr); background: var(--paper); }
.auth-side { background: var(--ink); color: #dfe8e8; padding: 48px 56px; display: flex; flex-direction: column; justify-content: space-between; position: relative; overflow: hidden; }
.auth-side .brand { padding: 0; }
.auth-statement { max-width: 30ch; font-family: var(--serif); font-size: 34px; line-height: 1.2; color: #fff; font-weight: 400; }
.auth-ladder { display: flex; align-items: flex-end; gap: 10px; height: 120px; margin-top: 36px; }
.auth-ladder span { flex: 1; border-radius: 4px 4px 0 0; }
.auth-ladder span:nth-child(1) { height: 22%; background: #2a4a50; }
.auth-ladder span:nth-child(2) { height: 40%; background: #2f5f67; }
.auth-ladder span:nth-child(3) { height: 58%; background: #3a7c85; }
.auth-ladder span:nth-child(4) { height: 78%; background: #4f9aa3; }
.auth-ladder span:nth-child(5) { height: 100%; background: #8cc6cc; }
.auth-ladder-labels { display: flex; gap: 10px; margin-top: 8px; font-size: 12px; color: #8ea4a7; }
.auth-ladder-labels span { flex: 1; }
.auth-foot { font-size: 12.5px; color: #8ea4a7; }
.auth-main { display: grid; place-items: center; padding: 40px 24px; }
.auth-card { width: 100%; max-width: 380px; }
.auth-card h1 { font-family: var(--serif); font-size: 30px; font-weight: 600; margin-bottom: 6px; }
.auth-card > p { color: var(--ink-2); margin-bottom: 24px; }
.auth-card .btn { width: 100%; min-height: 42px; margin-top: 6px; }

/* ---------- Panel (özet) ---------- */
.overview { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(280px, 1fr); gap: 16px; align-items: start; }
.context-card { padding: 22px 24px; display: flex; gap: 20px; align-items: center; flex-wrap: wrap; }
.context-card .what { flex: 1; min-width: 220px; }
.context-card .unit { font-family: var(--serif); font-size: 22px; line-height: 1.25; margin: 2px 0 4px; }
.figures { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--rule-soft); }
.figure { padding: 16px 20px; border-right: 1px solid var(--rule-soft); }
.figure:last-child { border-right: 0; }
.figure b { display: block; font-size: 24px; font-weight: 500; font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
.figure span { font-size: 13px; color: var(--ink-2); }
.activity { list-style: none; margin: 0; padding: 0; }
.activity li { padding: 11px 18px; border-bottom: 1px solid var(--rule-soft); display: flex; gap: 12px; align-items: baseline; }
.activity li:last-child { border-bottom: 0; }
.activity .code { font-variant-numeric: tabular-nums; font-weight: 500; color: var(--petrol-deep); min-width: 64px; }
.activity .when { margin-left: auto; font-size: 12.5px; color: var(--ink-3); white-space: nowrap; }

/* ---------- KİDR: birim seçimi ---------- */
.picker { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 16px; align-items: start; }
.unit-tree { max-height: 62vh; overflow-y: auto; padding: 6px; }
.unit-row { display: flex; align-items: center; gap: 8px; padding: 7px 10px; border-radius: var(--r-sm); cursor: pointer; }
.unit-row:hover { background: var(--paper); }
.unit-row input { accent-color: var(--petrol); }
.unit-row.is-context { cursor: default; color: var(--ink-3); }
.unit-row.is-context:hover { background: none; }
.unit-row .type { margin-left: auto; font-size: 12px; color: var(--ink-3); white-space: nowrap; }
.unit-row:has(input:checked) { background: var(--petrol-wash); color: var(--petrol-deep); }
.year-list { display: flex; flex-wrap: wrap; gap: 8px; }
.year-chip { position: relative; }
.year-chip input { position: absolute; opacity: 0; }
.year-chip span { display: inline-block; padding: 8px 16px; border: 1px solid var(--rule); border-radius: var(--r-md); font-variant-numeric: tabular-nums; font-weight: 500; cursor: pointer; background: #fff; }
.year-chip input:checked + span { background: var(--petrol); color: #fff; border-color: var(--petrol); }
.year-chip input:focus-visible + span { box-shadow: var(--focus); }

/* ---------- KİDR: çalışma alanı ---------- */
.kidr { display: grid; grid-template-columns: 290px minmax(0, 1fr) 330px; gap: 16px; align-items: start; }
.kidr.toc-hidden { grid-template-columns: minmax(0, 1fr) 330px; }
.kidr.toc-hidden .toc { display: none; }
.kidr-bar { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; flex-wrap: wrap; }
.kidr-bar .ctx { display: flex; align-items: baseline; gap: 10px; min-width: 0; flex: 1; }
.kidr-bar .ctx strong { font-family: var(--serif); font-size: 21px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kidr-bar .ctx .year { font-variant-numeric: tabular-nums; color: var(--ink-2); font-size: 15px; }

.toc { position: sticky; top: 70px; max-height: calc(100vh - 90px); overflow-y: auto; padding: 10px 6px 14px; }
.toc-main { padding: 14px 10px 4px; font-weight: 600; font-size: 13.5px; display: flex; gap: 8px; }
.toc-main:first-child { padding-top: 4px; }
.toc-sub { padding: 10px 10px 2px 12px; font-size: 12.5px; color: var(--ink-2); font-weight: 500; }
.toc a { display: flex; gap: 8px; padding: 6px 10px 6px 12px; border-radius: var(--r-sm); text-decoration: none; color: var(--ink); font-size: 13.5px; line-height: 1.35; }
.toc a:hover { background: var(--paper); }
.toc a[aria-current="true"] { background: var(--petrol-wash); color: var(--petrol-deep); font-weight: 500; }
.toc .code { font-variant-numeric: tabular-nums; color: var(--ink-3); min-width: 46px; flex: none; }
.toc a[aria-current="true"] .code { color: var(--petrol); }
.toc .dotfill { width: 7px; height: 7px; border-radius: 50%; margin: 6px 0 0 auto; flex: none; background: transparent; }

.sheet { background: var(--sheet); border: 1px solid var(--rule); border-radius: var(--r-lg); }
.sheet-head { padding: 22px 28px 18px; border-bottom: 1px solid var(--rule-soft); }
.trail { font-size: 13px; color: var(--ink-2); display: flex; flex-wrap: wrap; gap: 4px 6px; align-items: center; }
.trail .ic-sm { color: var(--ink-3); }
.sheet-head h1 { font-family: var(--serif); font-size: 25px; font-weight: 600; margin-top: 8px; letter-spacing: -.005em; }
.sheet-head h1 .code { color: var(--petrol); font-variant-numeric: tabular-nums; margin-right: 6px; }
.sheet-tools { display: flex; align-items: center; gap: 10px; margin-top: 14px; flex-wrap: wrap; }
.saved-note { font-size: 13px; color: var(--ok); display: inline-flex; gap: 6px; align-items: center; }
.saved-note.dirty { color: var(--warn); }

/* Olgunluk merdiveni — sayfanın tek "imza" öğesi */
.ladder-wrap { padding: 20px 28px 22px; border-bottom: 1px solid var(--rule-soft); }
.ladder-title { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 12px; }
.ladder-title h2 { font-size: 14px; font-weight: 600; }
.ladder { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; align-items: end; }
.step {
    position: relative; border: 1px solid var(--rule); background: #fff; border-radius: var(--r-md) var(--r-md) 3px 3px;
    padding: 10px 10px 9px; text-align: left; cursor: pointer; font: inherit; color: var(--ink); display: flex; flex-direction: column; gap: 2px;
    transition: background-color .15s, border-color .15s;
}
.step:nth-child(1) { min-height: 64px; } .step:nth-child(2) { min-height: 76px; } .step:nth-child(3) { min-height: 88px; }
.step:nth-child(4) { min-height: 100px; } .step:nth-child(5) { min-height: 112px; }
.step::after { content: ""; position: absolute; left: -1px; right: -1px; bottom: -1px; height: 5px; border-radius: 0 0 3px 3px; background: var(--lvc); }
.step .n { font-size: 22px; font-weight: 500; font-variant-numeric: tabular-nums; line-height: 1; margin-top: auto; }
.step .name { font-size: 12.5px; color: var(--ink-2); }
.step:hover { border-color: #a9bcbd; }
.step[aria-pressed="true"] { background: var(--lvc); border-color: var(--lvc); }
.step[aria-pressed="true"] .n, .step[aria-pressed="true"] .name { color: var(--lvt); }
.step:disabled { cursor: default; }
.step[data-level="1"] { --lvc: var(--lv1); --lvt: #0a434b; }
.step[data-level="2"] { --lvc: var(--lv2); --lvt: #0a3a40; }
.step[data-level="3"] { --lvc: var(--lv3); --lvt: #fff; }
.step[data-level="4"] { --lvc: var(--lv4); --lvt: #fff; }
.step[data-level="5"] { --lvc: var(--lv5); --lvt: #fff; }
.rubric { margin-top: 14px; font-family: var(--serif); font-size: 15.5px; line-height: 1.6; color: var(--ink); max-width: 76ch; }
.rubric b { font-family: var(--sans); font-size: 13px; font-weight: 600; color: var(--petrol-deep); display: block; margin-bottom: 2px; }
.rubric.placeholder { color: var(--ink-3); }

/* Editör */
.editor-wrap { padding: 18px 28px 24px; }
.editor-label { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; gap: 10px; flex-wrap: wrap; }
.editor-label h2 { font-size: 14px; font-weight: 600; }
.editor { border: 1px solid var(--rule); border-radius: var(--r-md); background: #fff; }
.editor:focus-within { border-color: var(--petrol); box-shadow: var(--focus); }
.editor-toolbar { display: flex; gap: 2px; padding: 5px; border-bottom: 1px solid var(--rule-soft); flex-wrap: wrap; background: #fafbfb; border-radius: var(--r-md) var(--r-md) 0 0; }
.editor-toolbar button { border: 0; background: none; min-width: 32px; height: 30px; border-radius: var(--r-sm); cursor: pointer; font: 600 14px var(--sans); color: var(--ink-2); display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 0 8px; }
.editor-toolbar button:hover { background: var(--rule-soft); color: var(--ink); }
.editor-toolbar .sep { width: 1px; background: var(--rule); margin: 4px 4px; }
.editor-toolbar .ai { color: var(--petrol); font-weight: 500; font-size: 13px; }
.doc, .editor-area {
    font-family: var(--serif); font-size: 16.5px; line-height: 1.7; color: var(--ink);
}
.editor-area { min-height: 260px; max-height: 70vh; overflow-y: auto; padding: 18px 22px; outline: none; }
.editor-area:empty::before { content: attr(data-placeholder); color: var(--ink-3); }
.doc p, .editor-area p { margin: 0 0 .8em; }
.doc a, .editor-area a { color: var(--petrol); }
.doc a.evidence-link, .editor-area a.evidence-link { font-family: var(--sans); font-size: .82em; font-weight: 500; background: var(--petrol-wash); padding: 1px 6px; border-radius: 4px; text-decoration: none; }
.editor.fullscreen { position: fixed; inset: 16px; z-index: 60; display: flex; flex-direction: column; box-shadow: 0 30px 80px -20px rgba(10, 30, 35, .5); }
.editor.fullscreen .editor-area { flex: 1; max-height: none; }
.readonly-doc { padding: 4px 2px; }
.ai-strip { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 10px; }
.ai-strip .btn { font-size: 13px; }

/* Kanıtlar */
.evidence { border-top: 1px solid var(--rule-soft); }
.evidence-head { display: flex; align-items: center; gap: 10px; padding: 16px 28px 10px; flex-wrap: wrap; }
.evidence-head h2 { font-size: 14px; font-weight: 600; margin-right: auto; }
.ev-list { list-style: none; margin: 0; padding: 0 16px 14px; }
.ev { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px 12px; border-radius: var(--r-md); }
.ev:hover { background: #f7f9f8; }
.ev-kind { width: 34px; height: 38px; border-radius: 4px; display: grid; place-items: end center; padding-bottom: 5px; font: 600 9.5px var(--sans); color: #fff; position: relative; }
.ev-kind::before { content: ""; position: absolute; right: 0; top: 0; border-width: 0 8px 8px 0; border-style: solid; border-color: transparent var(--paper) rgba(0, 0, 0, .18) transparent; }
.ev-kind.pdf { background: #b3261e; } .ev-kind.word { background: #2b5797; } .ev-kind.excel { background: #217346; } .ev-kind.dosya { background: var(--ink-3); }
.ev-title { font-size: 14px; font-weight: 500; color: var(--ink); text-decoration: none; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ev-title:hover { color: var(--petrol); text-decoration: underline; }
.ev-meta { font-size: 12.5px; color: var(--ink-3); display: flex; gap: 10px; flex-wrap: wrap; margin-top: 2px; }
.lv-dots { display: inline-flex; gap: 3px; align-items: center; }
.lv-dots i { width: 16px; height: 16px; border-radius: 3px; font: 600 10px/16px var(--sans); text-align: center; font-style: normal; color: #fff; background: var(--lv4); }
.lv-dots i[data-l="1"] { background: var(--lv1); color: var(--petrol-deep); } .lv-dots i[data-l="2"] { background: var(--lv2); color: var(--petrol-deep); }
.lv-dots i[data-l="3"] { background: var(--lv3); } .lv-dots i[data-l="5"], .lv-dots i[data-l="6"] { background: var(--lv5); }
.ev-actions { display: flex; gap: 2px; }
.ev-actions .btn-icon { color: var(--ink-2); }
.ev-actions .btn-icon:hover { color: var(--ink); }
.ev-actions .del:hover { color: var(--bad); background: var(--bad-wash); }
.dropzone { margin: 0 28px 18px; border: 1.5px dashed var(--rule); border-radius: var(--r-md); padding: 14px; text-align: center; color: var(--ink-2); font-size: 13.5px; }
.dropzone.over { border-color: var(--petrol); background: var(--petrol-wash); color: var(--petrol-deep); }
.upload-item { border: 1px solid var(--rule); border-radius: var(--r-md); padding: 12px 14px; margin-bottom: 10px; }
.upload-item .fname { font-weight: 500; display: flex; gap: 8px; justify-content: space-between; margin-bottom: 8px; }
.level-pick { display: flex; gap: 6px; flex-wrap: wrap; }
.level-pick label { position: relative; }
.level-pick input { position: absolute; opacity: 0; }
.level-pick span { display: inline-grid; place-items: center; width: 34px; height: 32px; border-radius: var(--r-sm); border: 1px solid var(--rule); font-weight: 500; cursor: pointer; font-variant-numeric: tabular-nums; background: #fff; }
.level-pick input:checked + span { background: var(--petrol); border-color: var(--petrol); color: #fff; }
.level-pick input:focus-visible + span { box-shadow: var(--focus); }

/* Alt birimler */
.subunits { position: sticky; top: 70px; max-height: calc(100vh - 90px); overflow-y: auto; }
.subunits-head { padding: 14px 16px; border-bottom: 1px solid var(--rule-soft); display: flex; align-items: center; gap: 8px; }
.subunits-head h2 { font-size: 14px; font-weight: 600; }
.su { border-bottom: 1px solid var(--rule-soft); }
.su:last-child { border-bottom: 0; }
.su summary { list-style: none; display: flex; gap: 10px; align-items: center; padding: 11px 16px; cursor: pointer; font-size: 13.5px; }
.su summary::-webkit-details-marker { display: none; }
.su summary .name { flex: 1; min-width: 0; font-weight: 500; }
.su summary .ic-sm { color: var(--ink-3); transition: transform .15s; }
.su[open] summary .ic-sm { transform: rotate(90deg); }
.su-body { padding: 0 16px 14px; }
.su-body .doc { font-size: 14.5px; line-height: 1.6; max-height: 260px; overflow-y: auto; padding: 10px 12px; background: #f8faf9; border-radius: var(--r-md); }
.su-body .ev-list { padding: 8px 0 0; }
.su-body .ev { grid-template-columns: 26px minmax(0, 1fr) auto; padding: 6px 4px; gap: 8px; }
.su-body .ev-kind { width: 26px; height: 30px; font-size: 8px; }

/* Bağlam menüsü (editör sağ tık) */
.ctxmenu { position: fixed; z-index: 90; background: #fff; border: 1px solid var(--rule); border-radius: var(--r-md); box-shadow: var(--shadow-lift); min-width: 240px; max-width: 360px; padding: 5px; font-size: 13.5px; }
.ctxmenu .grp { padding: 6px 10px 4px; font-size: 12px; color: var(--ink-3); }
.ctxmenu button { display: flex; width: 100%; gap: 8px; align-items: center; text-align: left; border: 0; background: none; padding: 7px 10px; border-radius: var(--r-sm); font: inherit; color: var(--ink); cursor: pointer; }
.ctxmenu button:hover, .ctxmenu button:focus-visible { background: var(--paper); }
.ctxmenu button span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ctxmenu hr { border: 0; border-top: 1px solid var(--rule-soft); margin: 4px 0; }

/* ---------- Yetkiler ---------- */
.split { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 16px; align-items: start; }
.user-list { max-height: calc(100vh - 220px); overflow-y: auto; padding: 6px; }
.user-list a { display: flex; gap: 10px; align-items: center; padding: 8px 10px; border-radius: var(--r-sm); text-decoration: none; color: var(--ink); }
.user-list a:hover { background: var(--paper); }
.user-list a[aria-current="true"] { background: var(--petrol-wash); }
.user-list .meta { min-width: 0; flex: 1; }
.user-list .meta strong { font-weight: 500; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-list .meta span { font-size: 12px; color: var(--ink-3); }
.flags { display: flex; gap: 4px; flex-wrap: wrap; }
.flag { font-size: 11.5px; padding: 1px 6px; border-radius: 4px; background: var(--rule-soft); color: var(--ink-3); text-decoration: line-through; }
.flag.on { background: var(--petrol-wash); color: var(--petrol-deep); text-decoration: none; font-weight: 500; }
.matrix-group { margin-bottom: 18px; }
.matrix-group h3 { font-size: 13.5px; font-weight: 600; margin-bottom: 8px; color: var(--ink-2); }
.matrix-group .checks { flex-direction: column; gap: 6px; }
.role-tabs { display: flex; gap: 6px; flex-wrap: wrap; }
.role-tabs a { padding: 7px 12px; border-radius: var(--r-md); text-decoration: none; color: var(--ink); border: 1px solid var(--rule); background: #fff; font-size: 14px; }
.role-tabs a[aria-current="true"] { background: var(--ink); color: #fff; border-color: var(--ink); }

/* ---------- Ayarlar sekmeleri ---------- */
.tabs { display: flex; gap: 2px; border-bottom: 1px solid var(--rule); margin-bottom: 18px; overflow-x: auto; }
.tabs button { border: 0; background: none; padding: 10px 14px; font: 500 14px var(--sans); color: var(--ink-2); cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -1px; white-space: nowrap; }
.tabs button[aria-selected="true"] { color: var(--petrol-deep); border-bottom-color: var(--petrol); }
.prompt-block { border: 1px solid var(--rule-soft); border-radius: var(--r-md); padding: 14px 16px 2px; margin-bottom: 14px; }
.prompt-block h3 { font-size: 14px; margin-bottom: 10px; }

/* ---------- Durum ---------- */
.checklist { list-style: none; margin: 0; padding: 0; }
.checklist li { display: flex; gap: 12px; align-items: center; padding: 11px 18px; border-bottom: 1px solid var(--rule-soft); }
.checklist li:last-child { border-bottom: 0; }
.checklist .state { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; flex: none; }
.checklist .state.ok { background: var(--ok-wash); color: var(--ok); }
.checklist .state.bad { background: var(--bad-wash); color: var(--bad); }
.checklist .detail { margin-left: auto; font-size: 13px; color: var(--ink-2); text-align: right; word-break: break-all; }
.kv { display: grid; grid-template-columns: 180px 1fr; }
.kv dt, .kv dd { margin: 0; padding: 10px 18px; border-bottom: 1px solid var(--rule-soft); font-size: 14px; }
.kv dt { color: var(--ink-2); }
pre.trace { white-space: pre-wrap; word-break: break-all; font-size: 12px; background: #f7f9f8; border: 1px solid var(--rule-soft); border-radius: var(--r-md); padding: 12px; max-height: 360px; overflow: auto; }

/* ---------- Hata sayfası ---------- */
.error-page { max-width: 560px; margin: 8vh auto; padding: 0 24px; }
.error-page .code { font-family: var(--serif); font-size: 64px; line-height: 1; color: var(--petrol); font-variant-numeric: tabular-nums; }
.error-page h1 { font-family: var(--serif); font-size: 28px; margin: 12px 0 8px; }

/* ---------- Raporlar ---------- */
/* Doluluk ısı ölçeği: tek ton (petrol), açıktan koyuya; 0 değeri ayrı (boş hücre). dataviz doğrulayıcısından geçti. */
:root { --heat-1: #88bcc2; --heat-2: #5ba0a8; --heat-3: #35838c; --heat-4: #1c6670; --heat-5: #0a434b; --track: #e9eeed; }
.report { margin-top: 28px; }
.report-head { display: flex; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 14px; }
.report-head h2 { font-family: var(--serif); font-size: 22px; font-weight: 600; }
.report-head p { margin: 4px 0 0; }
.report-actions { margin-left: auto; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.seg { display: inline-flex; border: 1px solid var(--rule); border-radius: var(--r-md); background: #fff; padding: 2px; gap: 2px; }
.seg a { padding: 5px 12px; border-radius: 6px; text-decoration: none; color: var(--ink-2); font-weight: 500; font-size: 13.5px; }
.seg a:hover { background: var(--paper); color: var(--ink); }
.seg a[aria-current="page"] { background: var(--petrol); color: #fff; }
.kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; background: var(--sheet); border: 1px solid var(--rule); border-radius: var(--r-lg); margin-bottom: 16px; }
.kpi { padding: 16px 20px 18px; border-right: 1px solid var(--rule-soft); display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.kpi:last-child { border-right: 0; }
.kpi-label { font-size: 13px; color: var(--ink-2); }
.kpi b { font-size: 30px; font-weight: 500; line-height: 1.1; letter-spacing: -.01em; }
.kpi b small { font-size: 15px; color: var(--ink-3); font-weight: 400; margin-left: 2px; }
.kpi-note { font-size: 12.5px; color: var(--ink-3); }
.meter { height: 6px; border-radius: 3px; background: var(--track); overflow: hidden; }
.meter i, .mini-meter i, .bar-track i { display: block; height: 100%; background: var(--petrol); border-radius: 0 4px 4px 0; }
.report-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 16px; align-items: start; margin-bottom: 16px; }
.report-grid > div > .panel + .panel { margin-top: 16px; }
.report-grid > .panel + .panel { margin-top: 0; }
.bars { padding: 8px 0; }
.bar-row { display: grid; grid-template-columns: 52px minmax(0, 1fr) minmax(70px, 34%) 44px 36px; align-items: center; gap: 10px; padding: 5px 18px; font-size: 13px; cursor: default; }
.bar-row:hover { background: #f7f9f8; }
.bar-row.is-main { font-weight: 500; font-size: 13.5px; padding-top: 10px; }
.bar-row.is-main + .bar-row:not(.is-main) { padding-top: 2px; }
.bar-row:not(.is-main) .bar-label { color: var(--ink-2); }
.bar-row.is-compact { grid-template-columns: 24px minmax(0, 1fr) 44px; }
.bar-code { font-variant-numeric: tabular-nums; color: var(--ink-3); }
.bar-row.is-main .bar-code { color: var(--petrol-deep); }
.bar-label { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bar-track { height: 10px; background: var(--track); border-radius: 0 4px 4px 0; overflow: hidden; }
.bar-row:not(.is-main):not(.is-compact) .bar-track { height: 7px; }
.bar-row:not(.is-main):not(.is-compact) .bar-track i { background: var(--heat-3); }
.bar-val { text-align: right; color: var(--ink); }
.bar-aux { text-align: right; color: var(--ink-3); }
.bars .bar-row:not(:has(.bar-aux)) { grid-template-columns: 52px minmax(0, 1fr) minmax(70px, 34%) 44px; }
.bars .bar-row.is-compact { grid-template-columns: 24px minmax(0, 1fr) 44px; }
.cols { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; align-items: end; }
.col { display: flex; flex-direction: column; align-items: center; gap: 6px; min-width: 0; cursor: default; }
.col-val { font-size: 13px; color: var(--ink); }
.col-bar { height: 120px; width: 100%; max-width: 44px; display: flex; align-items: flex-end; border-bottom: 1px solid var(--rule); }
.col-bar i { display: block; width: 100%; background: var(--petrol); border-radius: 4px 4px 0 0; min-height: 0; }
.col.is-none .col-bar i { background: var(--ink-3); }
.col:hover .col-bar i { background: var(--petrol-deep); }
.col-label { font-size: 11.5px; color: var(--ink-2); text-align: center; line-height: 1.25; }
.col-label b { display: block; font-size: 13px; color: var(--ink); font-weight: 600; }
.attn { list-style: none; margin: 0; padding: 4px 0; }
.attn li { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; gap: 10px; align-items: start; padding: 9px 18px; font-size: 13.5px; }
.attn li + li { border-top: 1px solid var(--rule-soft); }
.attn li > span .small { display: block; margin-top: 1px; }
.attn li b { font-size: 15px; font-weight: 500; }
.attn .is-warn .ic-sm { color: var(--warn); margin-top: 2px; }
.attn .is-ok .ic-sm { color: var(--ok); margin-top: 2px; }
.attn .is-ok b { color: var(--ink-3); }
.spark { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 4px; height: 96px; align-items: end; border-bottom: 1px solid var(--rule); }
.spark-col { height: 100%; display: flex; align-items: flex-end; cursor: default; }
.spark-col i { display: block; width: 100%; background: var(--petrol); border-radius: 4px 4px 0 0; }
.spark-col:hover i { background: var(--petrol-deep); }
.spark-axis { display: flex; justify-content: space-between; margin-top: 6px; }
.table-compact th, .table-compact td { padding: 7px 10px; font-size: 13px; }
.trend { margin-top: 16px; border: 1px solid var(--rule-soft); border-radius: var(--r-md); }
.trend tr.is-current td { background: var(--petrol-wash); }
.mini-meter { display: inline-block; width: 72px; height: 6px; border-radius: 3px; background: var(--track); overflow: hidden; vertical-align: middle; margin-right: 8px; }
.progress { display: inline-flex; align-items: center; white-space: nowrap; }
.progress-table td { padding-top: 9px; padding-bottom: 9px; }
.progress-table .num-col { text-align: right; }
.progress-table th.num-col { text-align: right; }
a.plain { color: var(--ink); text-decoration: none; }
a.plain:hover { color: var(--petrol); text-decoration: underline; }
.heat, .heat-head { display: inline-flex; gap: 2px; }
.heat i, .heat-legend i { display: inline-block; width: 18px; height: 18px; border-radius: 3px; background: var(--h, #fff); box-shadow: inset 0 0 0 1px var(--rule); }
.heat-head span { width: 18px; text-align: center; font-size: 12px; }
[data-h="1"] { --h: var(--heat-1); } [data-h="2"] { --h: var(--heat-2); } [data-h="3"] { --h: var(--heat-3); } [data-h="4"] { --h: var(--heat-4); } [data-h="5"] { --h: var(--heat-5); }
.heat i:not([data-h="0"]), .heat-legend i:not([data-h="0"]) { box-shadow: none; }
.heat-legend { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; padding: 10px 16px; border-top: 1px solid var(--rule-soft); }
.heat-legend span { display: inline-flex; align-items: center; gap: 5px; }
.heat-legend i { width: 12px; height: 12px; }
.tip { position: fixed; z-index: 120; pointer-events: none; max-width: 300px; padding: 7px 10px; border-radius: var(--r-sm); background: var(--ink); color: #fff; font-size: 12.5px; line-height: 1.35; box-shadow: var(--shadow-lift); }
/* Birim ayrıntı raporu */
.detail-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 16px; align-items: start; }
.detail-grid aside { position: sticky; top: 70px; }
.code-chip { display: inline-grid; place-items: center; min-width: 26px; height: 24px; padding: 0 6px; margin-right: 10px; border-radius: var(--r-sm); background: var(--petrol-wash); color: var(--petrol-deep); font-size: 13px; }
.entry-table td { padding-top: 8px; padding-bottom: 8px; font-size: 13.5px; }
.entry-table .sub-row td { background: #f7f9f8; color: var(--ink-2); font-size: 12.5px; font-weight: 500; padding-top: 7px; padding-bottom: 7px; }
.entry-table tbody tr:hover td { background: #fafbfb; }
.entry-table tbody tr.sub-row:hover td { background: #f7f9f8; }
.entry-table .code { display: inline-block; min-width: 54px; color: var(--ink-3); }
.entry-table .num-col { text-align: right; white-space: nowrap; }
.linklike { border: 0; background: none; padding: 0; font: inherit; color: var(--ink); text-align: left; cursor: pointer; }
.linklike:hover { color: var(--petrol); text-decoration: underline; text-underline-offset: 2px; }
.linklike:focus-visible { outline: none; box-shadow: var(--focus); border-radius: 3px; }
.lv-tag { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; white-space: nowrap; }
.lv-tag b { display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 4px; color: #fff; font-size: 11.5px; background: var(--lv4); }
.lv-tag[data-l="1"] b { background: var(--lv1); color: var(--petrol-deep); } .lv-tag[data-l="2"] b { background: var(--lv2); color: var(--petrol-deep); }
.lv-tag[data-l="3"] b { background: var(--lv3); } .lv-tag[data-l="5"] b { background: var(--lv5); }
.flag-dot { color: var(--warn); margin-left: 4px; cursor: default; }
.state-strip { display: flex; gap: 2px; height: 10px; margin: 6px 0 2px; }
.state-strip i, .state-legend i { display: block; border-radius: 2px; }
.state-strip i:first-child { border-radius: 4px 2px 2px 4px; } .state-strip i:last-child { border-radius: 2px 4px 4px 2px; }
.st-tamam { background: var(--ok); } .st-eksik { background: #d39a3c; } .st-kanit { background: #ecc98b; } .st-bos { background: var(--rule); }
.state-legend { display: flex; flex-wrap: wrap; gap: 4px 12px; }
.state-legend span { display: inline-flex; align-items: center; gap: 5px; }
.state-legend i { width: 10px; height: 10px; }
.state-legend b { color: var(--ink-2); font-weight: 500; }
.child-list { list-style: none; margin: 0; padding: 4px 0; }
.child-list li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 10px; padding: 9px 18px; font-size: 13.5px; align-items: center; }
.child-list li + li { border-top: 1px solid var(--rule-soft); }
.child-list a { grid-column: 1 / -1; color: var(--ink); text-decoration: none; }
.child-list a:hover { color: var(--petrol); text-decoration: underline; }
.child-list .heat i { width: 14px; height: 14px; }

/* ---------- Duyarlı düzen ---------- */
@media (max-width: 1280px) {
    .page-kidr .kidr { grid-template-columns: 260px minmax(0, 1fr); }
    .page-kidr .kidr .subunits { grid-column: 2; position: static; max-height: none; }
    .page-kidr .kidr.toc-hidden { grid-template-columns: minmax(0, 1fr); }
    .page-kidr .kidr.toc-hidden .subunits { grid-column: 1; }
}
@media (max-width: 960px) {
    .shell, .page-kidr .shell { grid-template-columns: 1fr; background: var(--paper); }
    .page-kidr { --sidebar-w: 248px; }
    .page-kidr .brand-name, .page-kidr .nav-section-title, .page-kidr .nav a span, .page-kidr .sidebar-foot { display: revert; }
    .page-kidr .nav a { justify-content: flex-start; padding: 8px 10px; }
    .sidebar { position: fixed; inset: 0 auto 0 0; width: min(280px, 86vw); z-index: 70; transform: translateX(-100%); transition: transform .2s; }
    .shell.nav-open .sidebar { transform: none; box-shadow: 0 0 0 100vmax rgba(16, 32, 36, .45); }
    .topbar .menu-toggle { display: inline-flex; }
    .topbar { padding: 8px 16px; }
    .content, .page-kidr .content { padding: 18px 16px 40px; }
    .page-kidr .kidr, .page-kidr .kidr.toc-hidden { grid-template-columns: minmax(0, 1fr); }
    .page-kidr .kidr .toc { position: static; max-height: 40vh; }
    .page-kidr .kidr .subunits { grid-column: 1; }
    .overview, .picker, .split, .report-grid, .detail-grid { grid-template-columns: minmax(0, 1fr); }
    .detail-grid aside { position: static; }
    .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kpi:nth-child(2) { border-right: 0; }
    .kpi:nth-child(-n+2) { border-bottom: 1px solid var(--rule-soft); }
    .figures { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .figure:nth-child(2) { border-right: 0; }
    .form-grid { grid-template-columns: minmax(0, 1fr); }
    .auth-page { grid-template-columns: minmax(0, 1fr); }
    .auth-side { display: none; }
    .sheet-head, .ladder-wrap, .editor-wrap { padding-left: 18px; padding-right: 18px; }
    .evidence-head { padding-left: 18px; padding-right: 18px; }
    .dropzone { margin-left: 18px; margin-right: 18px; }
    .ladder { gap: 4px; }
    .step { padding: 8px 6px; }
    .step .name { font-size: 11px; }
    .kv { grid-template-columns: 1fr; }
    .kv dt { border-bottom: 0; padding-bottom: 0; }
}
@media (max-width: 600px) {
    .usermenu > button .small, .usermenu > button .ic-sm { display: none; }
    .step .name { font-size: 10px; overflow-wrap: anywhere; }
    .step:nth-child(n) { min-height: 0; }
    .ladder { align-items: stretch; }
    .kidr-bar .ctx .year { display: none; }
    .bar-row, .bars .bar-row:not(:has(.bar-aux)) { grid-template-columns: 40px minmax(0, 1fr) 48px; padding-left: 14px; padding-right: 14px; }
    .bar-row .bar-label { display: none; }
    .bar-row .bar-aux { display: none; }
    .bar-row.is-main .bar-label { display: none; }
    .kpi b { font-size: 24px; }
    .cols { gap: 4px; }
    .col-label { font-size: 10.5px; overflow-wrap: anywhere; }
    .report-actions { margin-left: 0; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { transition: none !important; animation: none !important; }
}
@media print {
    .sidebar, .topbar, .toc, .subunits, .editor-toolbar, .ev-actions, .dropzone, .sheet-tools, .search-bar, .pager nav, .seg, .page-head .actions { display: none !important; }
    .report-grid, .detail-grid { display: block; }
    .panel { break-inside: avoid; }
    .shell, .kidr { display: block; }
    body { background: #fff; }
}
.kpi .state-legend b { font-size: inherit; line-height: inherit; letter-spacing: 0; }
.entry-table { table-layout: fixed; min-width: 640px; }
.entry-table th:nth-child(2) { width: 130px; } .entry-table th:nth-child(3) { width: 140px; }
.entry-table th:nth-child(4) { width: 70px; } .entry-table th:nth-child(5) { width: 104px; }
.col-label { min-height: 2.6em; }
@media (max-width: 600px) { .col-label { min-height: 0; } .col-label .lvn { display: none; } }
.table-wrap { position: relative; }
.et { display: grid; grid-template-columns: 54px minmax(0, 1fr); align-items: baseline; }
.entry-table .et .code { min-width: 0; }
@media (max-width: 600px) { .hide-sm { display: none; } }
/* Kurum/alt birim raporu: başlık kapsamı */
.report-block { margin-bottom: 16px; }
.panel + .report-block, .report-block + .panel { margin-top: 0; }
.bars-wide .bar-row { grid-template-columns: 44px minmax(0, 1fr) minmax(70px, 30%) 48px 40px 32px; }
.bars-wide .bar-aux:nth-last-child(2) { color: var(--ink-2); }
.table-compact tr.is-current td { background: var(--petrol-wash); }
.hgroup { border-top: 1px solid var(--rule-soft); }
.hgroup:first-of-type { border-top: 0; }
.hgroup > summary { display: flex; align-items: center; gap: 10px; padding: 12px 18px; cursor: pointer; list-style: none; }
.hgroup > summary::-webkit-details-marker { display: none; }
.hgroup > summary:hover { background: #f7f9f8; }
.hgroup > summary:focus-visible { outline: none; box-shadow: inset var(--focus); }
.hgroup .code-chip { margin-right: 0; }
.hg-title { font-weight: 500; }
.hg-meta { margin-left: auto; }
.hg-caret { color: var(--ink-3); transition: transform .15s; }
.hgroup[open] .hg-caret { transform: rotate(180deg); }
.heading-table th:nth-child(2) { width: auto; }
.heading-table { table-layout: auto; }
.heading-table td .lv-tag { margin-left: 6px; vertical-align: middle; }
@media (max-width: 600px) {
    .bars-wide .bar-row { grid-template-columns: 40px minmax(0, 1fr) 48px; }
    .hg-meta { display: none; }
}
.idle-groups { border-top: 1px solid var(--rule-soft); }
.idle-groups > summary { display: flex; align-items: center; gap: 8px; padding: 11px 16px; cursor: pointer; list-style: none; font-size: 13.5px; color: var(--ink-2); }
.idle-groups > summary::-webkit-details-marker { display: none; }
.idle-groups > summary:hover { background: #f7f9f8; }
.idle-groups[open] .hg-caret { transform: rotate(180deg); }
.idle-groups p { margin: 0; padding: 0 16px 14px 39px; line-height: 1.8; }
