/* ============================================================
   IzinTakip design system — "ledger" visual language, in two grounds:
   a dark "ink-navy" ledger (default) and a light "paper" ledger, toggled
   by the reader (ThemeToggle component, persisted to localStorage,
   applied via <html data-theme="dark|light">). Same signature either
   way: stamp-style status pills, tabular numerals for every balance/date,
   a dark sidebar acting as the ledger's cover regardless of page theme.

   Accent palette matches ordinatrum.com.tr (primary blue #0474cb,
   cyan accent #12c7fb/#1ab0f1) per the client's brand reference.

   Typefaces are Windows-native on purpose (Cambria / Segoe UI / Consolas):
   this ships on-premise to a Windows/IIS server, so there is no external
   font or CDN dependency to break on an offline corporate network.
   ============================================================ */

:root,
:root[data-theme="dark"] {
    --ink-900: #eef2f7;
    --ink-700: #b3bfd1;
    --ink-500: #8695a8;

    --sidebar-bg: #131b27;
    --paper-50: #182130;
    --paper-100: #212c3d;
    --surface: #1c2636;
    --surface-raised: #263243;

    --brand-600: #0d7fdb;
    --brand-700: #12c7fb;
    --brand-100: rgba(13, 127, 219, 0.18);

    --forest-600: #5fb98a;
    --forest-100: rgba(95, 185, 138, 0.14);

    --rust-600: #e2685a;
    --rust-100: rgba(226, 104, 90, 0.14);

    --amber-600: #e0ab3f;
    --amber-100: rgba(224, 171, 63, 0.14);

    --line: #2a3648;
    --line-strong: #3c4a60;

    --shadow-card: 0 1px 2px rgba(0, 0, 0, 0.35);
    --shadow-raised: 0 16px 48px rgba(0, 0, 0, 0.55);

    color-scheme: dark;
}

/* "Açık Defter" — same ledger, warm paper ground instead of ink-navy.
   Sidebar stays dark on purpose (--sidebar-bg unchanged): it reads as the
   ledger's cover while the pages (content area) open up. */
:root[data-theme="light"] {
    --ink-900: #1b2430;
    --ink-700: #465361;
    --ink-500: #6b7688;

    --sidebar-bg: #10161f;
    --paper-50: #eef0e6;
    --paper-100: #e4e7d9;
    --surface: #ffffff;
    --surface-raised: #ffffff;

    --brand-600: #0d6fc4;
    --brand-700: #0f9fd1;
    --brand-100: rgba(13, 111, 196, 0.10);

    --forest-600: #2f8f5f;
    --forest-100: rgba(47, 143, 95, 0.12);

    --rust-600: #bf4632;
    --rust-100: rgba(191, 70, 50, 0.10);

    --amber-600: #a8791c;
    --amber-100: rgba(168, 121, 28, 0.13);

    --line: #dcdfd0;
    --line-strong: #c7cbb8;

    --shadow-card: 0 1px 2px rgba(30, 25, 15, 0.08);
    --shadow-raised: 0 16px 40px rgba(30, 25, 15, 0.18);

    color-scheme: light;
}

:root {
    --font-display: Cambria, "Iowan Old Style", Georgia, serif;
    --font-body: "Segoe UI", "Segoe UI Web", -apple-system, BlinkMacSystemFont, Roboto, sans-serif;
    --font-mono: Consolas, "Cascadia Mono", "Courier New", monospace;

    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 14px;
}

* {
    box-sizing: border-box;
}

html, body {
    margin: 0;
    padding: 0;
    height: 100%;
    background: var(--paper-50);
    color: var(--ink-900);
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
    font-family: var(--font-display);
    font-weight: 600;
    color: var(--ink-900);
    margin: 0 0 0.5rem 0;
}

h1 { font-size: 1.6rem; letter-spacing: 0.01em; }
h2 { font-size: 1.3rem; }
h3 { font-size: 1.05rem; }

h1:focus { outline: none; }

a { color: var(--brand-600); text-decoration: none; }
a:hover { text-decoration: underline; }

/* ---------- App shell ---------- */

.app-shell {
    display: flex;
    min-height: 100vh;
}

.app-sidebar {
    width: 224px;
    flex-shrink: 0;
    background: var(--sidebar-bg);
    color: #e7edf5;
    display: flex;
    flex-direction: column;
    padding: 1.25rem 0;
    border-right: 1px solid var(--line);
    position: sticky;
    top: 0;
    height: 100vh;
    overflow-y: auto;
}

.app-sidebar__brand {
    font-family: var(--font-display);
    font-size: 1.2rem;
    font-weight: 600;
    color: #fff;
    padding: 0 1.5rem 1.25rem 1.5rem;
    border-bottom: 1px solid rgba(255,255,255,0.08);
    margin-bottom: 0.75rem;
}

.app-sidebar__brand small {
    display: block;
    font-family: var(--font-body);
    font-size: 0.7rem;
    font-weight: 400;
    color: #78859a;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin-top: 0.2rem;
}

.app-nav {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 0 0.75rem;
}

.app-nav__link {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.55rem 0.75rem;
    border-radius: var(--radius-md);
    color: #a9b6c8;
    font-size: 0.9rem;
    font-weight: 500;
}

.app-nav__link:hover {
    background: rgba(255,255,255,0.05);
    color: #fff;
    text-decoration: none;
}

.app-nav__link:focus-visible {
    outline: 2px solid var(--brand-700);
    outline-offset: -2px;
}

.app-nav__link.active {
    background: var(--brand-600);
    color: #fff;
}

.app-nav__link svg { flex-shrink: 0; opacity: 0.9; }

.app-nav__link .nav-badge {
    margin-left: auto;
    background: var(--amber-600);
    color: #241a04;
    font-family: var(--font-mono);
    font-variant-numeric: tabular-nums;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.05rem 0.42rem;
    border-radius: 100px;
    line-height: 1.5;
}

.app-nav__link--button {
    width: 100%;
    background: none;
    border: none;
    font-family: inherit;
    text-align: left;
    cursor: pointer;
}

.app-sidebar__bottom {
    margin-top: auto;
    padding: 0 0.75rem;
}

.app-sidebar__bottom form { margin: 0; }

.app-sidebar__footer {
    padding: 1rem 0.75rem 0 0.75rem;
    margin-top: 0.5rem;
    border-top: 1px solid rgba(255,255,255,0.08);
    font-size: 0.78rem;
    color: #55606f;
}

.app-main {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.app-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem 1.5rem;
    background: var(--surface);
    border-bottom: 1px solid var(--line);
}

.app-topbar__user {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 0.88rem;
    color: var(--ink-700);
    padding: 0.35rem 0.7rem;
    border-radius: var(--radius-md);
}

.app-topbar__user:hover {
    background: var(--paper-100);
    text-decoration: none;
}

.app-topbar__user strong { color: var(--ink-900); }

.notif-bell { position: relative; }

.notif-bell__button {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: none;
    background: none;
    color: var(--ink-700);
    cursor: pointer;
}

.notif-bell__button:hover { background: var(--paper-100); color: var(--ink-900); }
.notif-bell__button:focus-visible { outline: 2px solid var(--brand-600); outline-offset: 2px; }

.notif-bell__badge {
    position: absolute;
    top: 2px;
    right: 2px;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    border-radius: 100px;
    background: var(--rust-600);
    color: #fff;
    font-family: var(--font-mono);
    font-size: 0.62rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    border: 2px solid var(--surface);
}

.notif-overlay {
    position: fixed;
    inset: 0;
    z-index: 40;
    background: transparent;
}

.notif-panel {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    width: 300px;
    background: var(--surface-raised);
    border: 1px solid var(--line-strong);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-raised);
    overflow: hidden;
    z-index: 50;
}

.notif-panel__empty {
    padding: 1.25rem;
    text-align: center;
    font-size: 0.85rem;
    color: var(--ink-500);
}

.notif-panel__item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.85rem 1.1rem;
    border-bottom: 1px solid var(--line);
    color: var(--ink-900);
}

.notif-panel__item:last-child { border-bottom: none; }
.notif-panel__item:hover { background: var(--paper-100); text-decoration: none; }

.notif-panel__count {
    flex-shrink: 0;
    min-width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--amber-100);
    color: var(--amber-600);
    font-family: var(--font-mono);
    font-weight: 700;
    font-size: 0.82rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.app-content {
    padding: 1.25rem 1.5rem 2rem 1.5rem;
    width: 100%;
    max-width: none;
}

.page-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 1.25rem;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.page-header p {
    color: var(--ink-500);
    margin: 0.15rem 0 0 0;
}

/* ---------- Cards, tables, forms ---------- */

.card {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-card);
    width: 100%;
}

.card + .card {
    margin-top: 1.25rem;
}

.card__header {
    padding: 0.85rem 1.25rem;
    border-bottom: 1px solid var(--line);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.card__header h3 { margin: 0; }

.card__body {
    padding: 1.1rem 1.25rem;
}

.card__body--flush {
    padding: 0;
}

.table-scroll {
    width: 100%;
    overflow-x: auto;
}

.data-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.88rem;
    table-layout: auto;
}

.data-table th {
    text-align: left;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--ink-500);
    font-weight: 600;
    padding: 0.65rem 1.25rem;
    border-bottom: 1px solid var(--line-strong);
    background: var(--paper-100);
    position: sticky;
    top: 0;
}

.data-table td {
    padding: 0.65rem 1.25rem;
    border-bottom: 1px solid var(--line);
    vertical-align: middle;
}

.data-table th.col-actions,
.data-table td.col-actions {
    width: 1%;
    white-space: nowrap;
    text-align: right;
}

.data-table tbody tr:last-child td { border-bottom: none; }
.data-table tbody tr:hover { background: var(--paper-100); }

.data-table th.sortable {
    cursor: pointer;
    user-select: none;
}
.data-table th.sortable:hover { color: var(--ink-900); }
.data-table th.sortable .sort-label {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}
.data-table th.sortable .sort-arrow {
    font-size: 0.7em;
    opacity: 0.35;
}
.data-table th.sortable--active { color: var(--ink-900); }
.data-table th.sortable--active .sort-arrow { opacity: 1; }

.pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem 1.25rem;
    border-top: 1px solid var(--line);
    flex-wrap: wrap;
}

.pagination__info {
    font-size: 0.76rem;
    color: var(--ink-500);
    font-family: var(--font-mono);
    font-variant-numeric: tabular-nums;
}

.pagination__controls {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.pagination__page {
    font-family: var(--font-mono);
    font-variant-numeric: tabular-nums;
    font-size: 0.82rem;
    color: var(--ink-700);
    white-space: nowrap;
}

.num {
    font-family: var(--font-mono);
    font-variant-numeric: tabular-nums;
}

.ledger-figure {
    font-family: var(--font-mono);
    font-variant-numeric: tabular-nums;
    font-size: 1.05rem;
    font-weight: 600;
    border-bottom: 2px solid var(--line-strong);
    padding-bottom: 2px;
}

/* Stamp-style status pill — the app's signature recurring motif */
.status-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.2rem 0.65rem;
    border-radius: 100px;
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    border: 1px solid transparent;
    white-space: nowrap;
}

.status-pill--pending { background: var(--amber-100); color: var(--amber-600); border-color: rgba(224,171,63,0.3); }
.status-pill--approved { background: var(--forest-100); color: var(--forest-600); border-color: rgba(95,185,138,0.3); }
.status-pill--rejected { background: var(--rust-100); color: var(--rust-600); border-color: rgba(226,104,90,0.3); }
.status-pill--cancelled { background: var(--paper-100); color: var(--ink-500); border-color: var(--line-strong); }
.status-pill--neutral { background: var(--brand-100); color: var(--brand-700); border-color: rgba(13,127,219,0.35); }

/* Neutral "this is a name/label" tag — distinct from .status-pill on purpose: status-pill's
   colors mean approved/pending/rejected everywhere else in the app, so a person or type label
   must never borrow those colors or it reads as a (non-existent) workflow state. */
.tag {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.18rem 0.6rem;
    border-radius: 100px;
    font-size: 0.72rem;
    font-weight: 600;
    background: var(--paper-100);
    color: var(--ink-700);
    border: 1px solid var(--line-strong);
    white-space: nowrap;
}

/* Earned additional-leave days. Uses the same green the ledger legend assigns to "hak edilen"
   so a +N here reads as accrued time, not a workflow status. Mono numerals to match figures. */
.day-pill {
    display: inline-flex;
    align-items: center;
    padding: 0.16rem 0.55rem;
    border-radius: 100px;
    font-family: var(--font-mono);
    font-variant-numeric: tabular-nums;
    font-size: 0.78rem;
    font-weight: 600;
    background: var(--forest-100);
    color: var(--forest-600);
    border: 1px solid rgba(95,185,138,0.3);
    white-space: nowrap;
}

/* Sequential-approval stage indicator in the requests table: which level is currently
   pending and whose turn it is. Quiet by design — the status pill carries the loud state. */
.stage-cell { display: flex; flex-direction: column; gap: 0.15rem; }

.stage-cell__badge {
    align-self: flex-start;
    font-family: var(--font-mono);
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--brand-700);
    background: var(--brand-100);
    border: 1px solid rgba(13,127,219,0.28);
    border-radius: 100px;
    padding: 0.08rem 0.5rem;
}

.stage-cell__names { font-size: 0.8rem; color: var(--ink-700); }

/* Approval-chain history: one row per level, ascending. The order marker is meaningful here
   (the chain really is a bottom-up sequence), so it earns a numbered eyebrow. */
.approval-chain { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.5rem; }

.approval-chain__level {
    display: grid;
    grid-template-columns: 5.5rem 1fr;
    gap: 0.75rem;
    padding: 0.6rem 0;
    border-bottom: 1px solid var(--line);
}
.approval-chain__level:last-child { border-bottom: none; }

.approval-chain__order {
    font-family: var(--font-mono);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--ink-500);
    padding-top: 0.15rem;
}

.approval-chain__people { display: flex; flex-direction: column; gap: 0.4rem; }

.approval-chain__person { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }

.approval-chain__name { font-weight: 600; color: var(--ink-900); }

.approval-chain__meta { font-size: 0.76rem; color: var(--ink-500); font-family: var(--font-mono); }

.pill-remove {
    background: none;
    border: none;
    color: inherit;
    cursor: pointer;
    padding: 0;
    margin-left: 0.2rem;
    line-height: 1;
    font-size: 0.85em;
    border-radius: 3px;
}

.pill-remove:hover { color: var(--rust-600); }

.pill-remove:focus-visible {
    outline: 2px solid var(--brand-600);
    outline-offset: 1px;
}

/* Buttons */
.btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-family: var(--font-body);
    font-size: 0.86rem;
    font-weight: 600;
    padding: 0.5rem 1rem;
    border-radius: var(--radius-md);
    border: 1px solid transparent;
    cursor: pointer;
    line-height: 1.2;
}

.btn:focus-visible {
    outline: 2px solid var(--brand-600);
    outline-offset: 2px;
}

.btn-primary { background: var(--brand-600); color: #fff; }
.btn-primary:hover { background: var(--brand-700); color: #06202f; }

.btn-secondary { background: var(--surface-raised); color: var(--ink-700); border-color: var(--line-strong); }
.btn-secondary:hover { background: var(--line); color: var(--ink-900); }

.btn-danger { background: var(--surface-raised); color: var(--rust-600); border-color: rgba(226,104,90,0.35); }
.btn-danger:hover { background: var(--rust-100); }

.btn-sm { padding: 0.3rem 0.65rem; font-size: 0.78rem; }

.btn:disabled { opacity: 0.5; cursor: not-allowed; }

/* Forms */
.field {
    margin-bottom: 1rem;
}

.field label {
    display: block;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--ink-700);
    margin-bottom: 0.3rem;
}

.field .hint {
    font-size: 0.76rem;
    color: var(--ink-500);
    margin-top: 0.25rem;
}

.field-section {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--ink-500);
    margin: 1.25rem 0 0.6rem 0;
    padding-top: 1rem;
    border-top: 1px solid var(--line);
}

.field-section:first-child { margin-top: 0; padding-top: 0; border-top: none; }

.checkbox-group { display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; }

.checkbox-field {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-weight: 400;
    font-size: 0.9rem;
    color: var(--ink-700);
}

.checkbox-field input[type=checkbox] { width: auto; }

input[type=text], input[type=email], input[type=password], input[type=number],
input[type=date], input[type=tel], input[type=time], select, textarea {
    width: 100%;
    font-family: var(--font-body);
    font-size: 0.9rem;
    padding: 0.5rem 0.65rem;
    border: 1px solid var(--line-strong);
    border-radius: var(--radius-sm);
    background: var(--paper-50);
    color: var(--ink-900);
}

input:focus, select:focus, textarea:focus {
    outline: none;
    border-color: var(--brand-600);
    box-shadow: 0 0 0 3px rgba(13, 127, 219, 0.25);
}

input::placeholder { color: var(--ink-500); }

.form-row {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0 1.25rem;
}

.form-row--3 {
    grid-template-columns: repeat(3, 1fr);
}

@media (max-width: 720px) {
    .form-row { grid-template-columns: 1fr; }
}

.validation-message {
    color: var(--rust-600);
    font-size: 0.78rem;
    margin-top: 0.25rem;
    display: block;
}

.empty-state {
    text-align: center;
    padding: 3rem 1.5rem;
    color: var(--ink-500);
}

.empty-state h3 { color: var(--ink-700); }

.alert {
    padding: 0.75rem 1rem;
    border-radius: var(--radius-md);
    font-size: 0.88rem;
    margin-bottom: 1.25rem;
    border: 1px solid transparent;
}

.alert-error { background: var(--rust-100); color: var(--rust-600); border-color: rgba(226,104,90,0.3); }
.alert-success { background: var(--forest-100); color: var(--forest-600); border-color: rgba(95,185,138,0.3); }

/* Real numeric indent (padding-left) rather than repeated space characters — a proportional
   font (Segoe UI) doesn't line up hand-repeated spaces/glyphs into a grid the way a monospace
   font would, so depth must be expressed as CSS, not as characters. */
.tree-row { display: flex; align-items: center; }
.tree-connector {
    font-family: var(--font-mono);
    color: var(--ink-500);
    width: 1em;
    text-align: center;
    flex-shrink: 0;
    margin-right: 0.35rem;
}

/* ---------- Tabs (Settings page) ---------- */

.tab-list {
    display: flex;
    gap: 0.25rem;
    border-bottom: 1px solid var(--line);
    margin-bottom: 1.25rem;
    flex-wrap: wrap;
}

.tab-button {
    background: none;
    border: none;
    font-family: var(--font-body);
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--ink-500);
    padding: 0.65rem 1rem;
    cursor: pointer;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
}

.tab-button:hover { color: var(--ink-900); }

.tab-button.active {
    color: var(--brand-700);
    border-bottom-color: var(--brand-600);
}

/* ---------- Modal (all add/edit forms use this) ---------- */

.modal-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(6, 7, 9, 0.65);
    z-index: 1000;
}

.modal-dialog {
    /* Centered via fixed inset + margin:auto rather than the top/left/transform trick — a
       transform on this element would establish a containing block for any position:fixed
       descendant, breaking a modal opened from within another modal's content (e.g. the
       document-upload popup opened from inside the Users.razor "Dosyalar" modal). */
    position: fixed;
    inset: 0;
    margin: auto;
    width: 100%;
    max-width: 560px;
    height: fit-content;
    max-height: 88vh;
    display: flex;
    flex-direction: column;
    background: var(--surface-raised);
    border: 1px solid var(--line-strong);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-raised);
    z-index: 1001;
}

.modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--line);
    flex-shrink: 0;
}

.modal-header h3 { margin: 0; }

.modal-close {
    background: none;
    border: none;
    color: var(--ink-500);
    font-size: 1rem;
    cursor: pointer;
    line-height: 1;
    padding: 0.25rem;
}

.modal-close:hover { color: var(--ink-900); }

.modal-body {
    padding: 1.25rem;
    overflow-y: auto;
}

.modal-footer {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 1rem 1.25rem;
    border-top: 1px solid var(--line);
    flex-shrink: 0;
}

.modal-dialog--wide { max-width: 720px; }

@media (max-width: 640px) {
    .modal-dialog { max-width: calc(100% - 2rem); }
}

.blazor-error-boundary {
    background: var(--rust-600);
    padding: 1rem 1rem 1rem 1rem;
    color: #fff;
    border-radius: var(--radius-md);
}

.blazor-error-boundary::after {
    content: "Beklenmeyen bir hata oluştu.";
}

#blazor-error-ui {
    background: var(--surface-raised);
    color: var(--ink-900);
    bottom: 0;
    box-shadow: var(--shadow-raised);
    display: none;
    left: 0;
    padding: 0.75rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

#blazor-error-ui .dismiss {
    cursor: pointer;
    position: absolute;
    right: 1rem;
    top: 0.75rem;
}

/* ---------- Panel: ledger hero, team tiles, today's roster ---------- */

.head-chips { display: flex; gap: 0.5rem; flex-wrap: wrap; }

.chip {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.4rem 0.75rem;
    border-radius: 100px;
    font-size: 0.76rem;
    font-weight: 600;
    white-space: nowrap;
    background: var(--surface);
    border: 1px solid var(--line-strong);
    color: var(--ink-700);
}

.chip .num { font-family: var(--font-mono); color: var(--ink-900); }
.chip.holiday { color: var(--amber-600); border-color: rgba(224,171,63,0.32); background: var(--amber-100); }

.ledger-card {
    position: relative;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-card);
    overflow: hidden;
}

.ledger-card .ruled {
    position: absolute;
    inset: 0;
    background-image: repeating-linear-gradient(to bottom, transparent, transparent 27px, var(--line) 28px);
    opacity: 0.4;
    pointer-events: none;
}

.ledger-head {
    position: relative;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    padding: 1rem 1.4rem 0.6rem 1.4rem;
}

.ledger-head .as-of { font-size: 0.76rem; color: var(--ink-500); font-family: var(--font-mono); }

.ledger-rows {
    position: relative;
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    align-items: end;
    gap: 1.5rem;
    padding: 0.5rem 1.4rem 1.5rem 1.4rem;
}

.ledger-entry .label {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--ink-500);
    font-weight: 600;
    margin-bottom: 0.3rem;
}

.ledger-entry .figure {
    font-family: var(--font-mono);
    font-variant-numeric: tabular-nums;
    font-size: 1.9rem;
    font-weight: 600;
    color: var(--ink-900);
    border-bottom: 2px solid var(--line-strong);
    padding-bottom: 4px;
    display: inline-block;
}

.ledger-entry .figure small { font-size: 1rem; font-weight: 400; color: var(--ink-500); margin-left: 0.2rem; }

.ledger-entry.used .figure { color: var(--ink-700); }

.stamp {
    justify-self: end;
    width: 108px;
    height: 108px;
    border-radius: 50%;
    border: 2.5px solid var(--amber-600);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    transform: rotate(-6deg);
    background: radial-gradient(circle at 35% 30%, rgba(224,171,63,0.14), transparent 70%);
    box-shadow: 0 0 0 4px rgba(224,171,63,0.08);
}

.stamp .n {
    font-family: var(--font-mono);
    font-variant-numeric: tabular-nums;
    font-size: 1.85rem;
    font-weight: 700;
    color: var(--amber-600);
    line-height: 1;
}

.stamp .l {
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--amber-600);
    margin-top: 0.15rem;
}

.ledger-bar-wrap { position: relative; padding: 0 1.4rem 1.25rem 1.4rem; }

.ledger-bar {
    height: 8px;
    border-radius: 100px;
    background: var(--paper-100);
    border: 1px solid var(--line-strong);
    overflow: hidden;
    display: flex;
}

.ledger-bar .fill { background: linear-gradient(90deg, var(--amber-600), var(--amber-600)); }

.ledger-bar-labels {
    display: flex;
    justify-content: space-between;
    margin-top: 0.4rem;
    font-size: 0.72rem;
    color: var(--ink-500);
    font-family: var(--font-mono);
}

.section-label { display: flex; align-items: center; gap: 0.6rem; margin: 1.35rem 0 0.75rem 0; }
.section-label h3 { font-size: 0.98rem; margin: 0; }
.section-label .rule { flex: 1; height: 1px; background: var(--line); }

.tiles {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.85rem;
}

.tile {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    padding: 0.95rem 1.1rem;
    box-shadow: var(--shadow-card);
}

.tile .label { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ink-500); font-weight: 600; }

.tile .value {
    font-family: var(--font-mono);
    font-variant-numeric: tabular-nums;
    font-size: 1.7rem;
    font-weight: 600;
    color: var(--ink-900);
    margin-top: 0.3rem;
}

.tile .sub { font-size: 0.78rem; color: var(--ink-500); margin-top: 0.15rem; }

.tile.action {
    border-color: rgba(224,171,63,0.4);
    background: linear-gradient(160deg, var(--amber-100), var(--surface) 60%);
    position: relative;
    display: block;
    text-decoration: none;
}

.tile.action:hover { text-decoration: none; border-color: var(--amber-600); }
.tile.action:focus-visible { outline: 2px solid var(--amber-600); outline-offset: 2px; }
.tile.action .value { color: var(--amber-600); }
.tile.action .go { position: absolute; top: 0.9rem; right: 1rem; color: var(--amber-600); font-size: 0.95rem; }

.avatars { display: flex; margin-top: 0.5rem; }

.avatars .av {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--paper-100);
    border: 2px solid var(--surface);
    margin-left: -8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.62rem;
    font-weight: 700;
    color: var(--ink-700);
}

.avatars .av:first-child { margin-left: 0; }

.roster {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-card);
}

.roster-row {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.75rem 1.1rem;
    border-bottom: 1px solid var(--line);
}

.roster-row:last-child { border-bottom: none; }

.roster-row .av {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    flex-shrink: 0;
    background: var(--brand-100);
    color: var(--brand-700);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.72rem;
    font-weight: 700;
    font-family: var(--font-display);
}

.roster-row .mid { flex: 1; min-width: 0; }
.roster-row .name { font-weight: 600; color: var(--ink-900); font-size: 0.9rem; }
.roster-row .dept { font-size: 0.76rem; color: var(--ink-500); }

.roster-row .range {
    font-family: var(--font-mono);
    font-variant-numeric: tabular-nums;
    font-size: 0.82rem;
    color: var(--ink-700);
    white-space: nowrap;
}

.pill.type-tag { background: var(--paper-100); color: var(--ink-700); border-color: var(--line-strong); }

@media (max-width: 860px) {
    .ledger-rows { grid-template-columns: 1fr 1fr; }
    .stamp { grid-column: span 2; justify-self: start; margin-top: 0.5rem; }
    .tiles { grid-template-columns: 1fr; }
}

/* ---------- Verification code input, rejected stamp (AccessDenied) ---------- */

input[type=text].code-input {
    font-family: var(--font-mono);
    font-size: 1.5rem;
    letter-spacing: 0.6em;
    text-align: center;
    padding-left: calc(0.65rem + 0.6em);
}

.stamp-rejected {
    width: 92px;
    height: 92px;
    border-radius: 50%;
    border: 2.5px solid var(--rust-600);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    transform: rotate(-6deg);
    background: radial-gradient(circle at 35% 30%, rgba(226,104,90,0.14), transparent 70%);
    margin: 0 auto 1.1rem auto;
}

.stamp-rejected .n {
    font-family: var(--font-mono);
    font-weight: 700;
    font-size: 1.7rem;
    color: var(--rust-600);
    line-height: 1;
}

.stamp-rejected .l {
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--rust-600);
    margin-top: 0.2rem;
}

/* ---------- Personnel record card (Personel Ekle/Düzenle) ---------- */

.personnel-card-head {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding-bottom: 1.1rem;
    margin-bottom: 1.1rem;
    border-bottom: 1px solid var(--line);
}

.avatar-lg {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    flex-shrink: 0;
    background: var(--brand-100);
    color: var(--brand-700);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 1.1rem;
}

.personnel-card-head__body { min-width: 0; flex: 1; }

.personnel-card-head__name {
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--ink-900);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.personnel-card-head__meta {
    font-size: 0.8rem;
    color: var(--ink-500);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.status-toggle {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.3rem 0.8rem;
    border-radius: 100px;
    font-family: var(--font-body);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    border: 1px solid var(--line-strong);
    background: var(--paper-100);
    color: var(--ink-500);
    cursor: pointer;
}

.status-toggle:hover { color: var(--ink-700); }
.status-toggle:focus-visible { outline: 2px solid var(--brand-600); outline-offset: 2px; }
.status-toggle.is-active { background: var(--forest-100); color: var(--forest-600); border-color: rgba(95,185,138,0.3); }

/* ---------- Personnel dossier (PersonelDetay page) ---------- */

.breadcrumb-back {
    display: inline-block;
    font-size: 0.8rem;
    color: var(--ink-500);
    margin-bottom: 0.35rem;
}

.breadcrumb-back:hover { color: var(--brand-600); text-decoration: none; }

.dossier-card {
    display: flex;
    align-items: center;
    gap: 1.1rem;
    background: var(--surface);
    border: 1px solid var(--line);
    border-left: 4px solid var(--brand-600);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-card);
    padding: 1.25rem 1.5rem;
    margin-bottom: 1.25rem;
}

.dossier-tab {
    flex-shrink: 0;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--brand-100);
    color: var(--brand-700);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-size: 1.3rem;
    font-weight: 700;
}

.dossier-main { flex: 1; min-width: 0; }

.dossier-name {
    font-family: var(--font-display);
    font-size: 1.35rem;
    font-weight: 600;
    color: var(--ink-900);
}

.dossier-role { color: var(--ink-500); font-size: 0.88rem; margin-top: 0.15rem; }

.dossier-badges { display: flex; gap: 0.4rem; flex-wrap: wrap; margin-top: 0.65rem; }

.dossier-file-no {
    flex-shrink: 0;
    text-align: right;
    font-size: 0.66rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--ink-500);
    border: 1px dashed var(--line-strong);
    border-radius: var(--radius-sm);
    padding: 0.5rem 0.8rem;
}

.dossier-file-no span {
    display: block;
    font-family: var(--font-mono);
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--ink-700);
    letter-spacing: 0.02em;
    margin-top: 0.15rem;
}

.detail-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
    margin-bottom: 1.25rem;
}

@media (max-width: 720px) {
    .detail-grid { grid-template-columns: 1fr; }
    .dossier-card { flex-wrap: wrap; }
    .dossier-file-no { text-align: left; }
}

.detail-list { display: flex; flex-direction: column; gap: 0.6rem; }

.detail-row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    font-size: 0.88rem;
    padding-bottom: 0.6rem;
    border-bottom: 1px solid var(--line);
}

.detail-row:last-child { border-bottom: none; padding-bottom: 0; }
.detail-row span { color: var(--ink-500); }
.detail-row strong { color: var(--ink-900); font-weight: 600; text-align: right; }

/* ---------- Document access grant list (Personeller → Düzenle → Belge Erişimi) ---------- */

.grant-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.grant-toolbar input[type=text] { max-width: 280px; }

.grant-count {
    font-size: 0.78rem;
    color: var(--ink-500);
    font-family: var(--font-mono);
    white-space: nowrap;
}

.roster--scroll { max-height: 320px; overflow-y: auto; }

/* ---------- Files: filing-tab rows (PersonnelDocumentsPanel) ---------- */

.file-row {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    padding: 0.85rem 1.25rem;
    border-bottom: 1px solid var(--line);
}

.file-row:last-child { border-bottom: none; }
.file-row:hover { background: var(--paper-100); }

.file-tab {
    flex-shrink: 0;
    width: 38px;
    height: 34px;
    border-radius: 3px 8px 8px 3px;
    background: var(--paper-100);
    border: 1px solid var(--line-strong);
    border-left: 3px solid var(--ink-500);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-mono);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: var(--ink-700);
}

/* System-generated documents (e.g. the auto-produced İzin Talep Formu) get a brand-colored
   tab to flag "the app made this" versus a person having uploaded it by hand. */
.file-tab--generated { border-left-color: var(--brand-600); color: var(--brand-700); }

.file-main { flex: 1 1 auto; min-width: 0; }

.file-name {
    font-weight: 600;
    color: var(--ink-900);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.file-meta {
    font-size: 0.78rem;
    color: var(--ink-500);
    margin-top: 0.15rem;
    display: flex;
    gap: 0.4rem;
    flex-wrap: wrap;
}

.file-meta .dot::before { content: "·"; margin-right: 0.4rem; color: var(--line-strong); }

.file-actions { display: flex; gap: 0.15rem; flex-shrink: 0; }

.btn-ghost { background: none; color: var(--ink-500); border-color: transparent; padding: 0.4rem; }
.btn-ghost:hover { background: var(--surface-raised); color: var(--ink-900); }

.btn-danger-ghost { background: none; color: var(--ink-500); border-color: transparent; padding: 0.4rem; }
.btn-danger-ghost:hover { background: var(--rust-100); color: var(--rust-600); }

.btn svg { width: 16px; height: 16px; flex-shrink: 0; }

.upload-cta {
    padding: 1rem 1.25rem;
    border-top: 1px dashed var(--line-strong);
}

.dropzone {
    border: 1.5px dashed var(--line-strong);
    border-radius: var(--radius-md);
    padding: 1.4rem 1rem;
    text-align: center;
    color: var(--ink-500);
    font-size: 0.85rem;
    cursor: pointer;
    background: none;
    width: 100%;
    font-family: var(--font-body);
}

.dropzone:hover { border-color: var(--brand-600); color: var(--ink-700); background: var(--brand-100); }
.dropzone svg { width: 26px; height: 26px; margin-bottom: 0.4rem; color: var(--ink-500); display: block; margin-left: auto; margin-right: auto; }
.dropzone strong { color: var(--ink-900); font-weight: 600; }
.dropzone:focus-visible { outline: 2px solid var(--brand-600); outline-offset: 2px; }

/* ---------- File preview modal ---------- */

.preview-mat {
    background: repeating-linear-gradient(45deg, var(--paper-100), var(--paper-100) 10px, var(--paper-50) 10px, var(--paper-50) 20px);
    border-radius: var(--radius-md);
    min-height: 360px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
}

.preview-mat img {
    max-width: 100%;
    max-height: 65vh;
    border-radius: 2px;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.5);
}

.preview-mat iframe {
    width: 100%;
    height: 65vh;
    border: none;
    border-radius: 2px;
    background: #fff;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.5);
}

/* ---------- Yearly leave ledger (PersonnelLeaveLedger) ---------- */

.ledger-rows--top { padding-top: 1.1rem; }

.ledger-years {
    position: relative;
    background-image: repeating-linear-gradient(to bottom, transparent, transparent 43px, var(--line) 44px);
    padding: 0.25rem 0;
    border-top: 1px solid var(--line);
}

.ledger-year-row {
    position: relative;
    display: grid;
    grid-template-columns: 1.4fr 0.85fr 0.85fr 1fr;
    align-items: center;
    gap: 1rem;
    padding: 0.55rem 1.4rem;
    border-left: 3px solid transparent;
}

.ledger-year-row.current {
    border-left-color: var(--brand-600);
    background: linear-gradient(90deg, var(--brand-100), transparent 60%);
}

.ledger-year-row .period .yr { font-weight: 700; color: var(--ink-900); font-size: 0.92rem; }

.ledger-year-row .period .badge {
    display: inline-block;
    margin-left: 0.5rem;
    font-family: var(--font-mono);
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--brand-700);
    background: var(--brand-100);
    border: 1px solid rgba(13, 127, 219, 0.35);
    border-radius: 100px;
    padding: 0.1rem 0.5rem;
    vertical-align: middle;
}

.ledger-year-row .period .range { font-size: 0.74rem; color: var(--ink-500); margin-top: 0.1rem; }

.ledger-year-row .earned,
.ledger-year-row .used,
.ledger-year-row .balance {
    font-family: var(--font-mono);
    font-variant-numeric: tabular-nums;
    text-align: right;
    font-size: 0.92rem;
}

.ledger-year-row .earned { color: var(--forest-600); }
.ledger-year-row .earned.zero,
.ledger-year-row .used.zero { color: var(--ink-500); }
.ledger-year-row .used { color: var(--rust-600); }

.ledger-year-row .balance {
    font-weight: 700;
    font-size: 1.05rem;
    color: var(--ink-900);
    border-bottom: 1.5px solid var(--line-strong);
    padding-bottom: 2px;
}

.ledger-year-row.current .balance { border-bottom-color: var(--brand-700); color: var(--brand-700); }

.ledger-years-legend {
    display: flex;
    gap: 1.5rem;
    padding: 0.9rem 1.4rem;
    border-top: 1px solid var(--line);
    font-size: 0.74rem;
    color: var(--ink-500);
    flex-wrap: wrap;
}

.ledger-years-legend span { display: flex; align-items: center; gap: 0.35rem; }
.ledger-years-legend .dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }

@media (max-width: 620px) {
    .ledger-year-row { grid-template-columns: 1fr auto; row-gap: 0.3rem; }
    .ledger-year-row .earned, .ledger-year-row .used { display: none; }
}

code {
    font-family: var(--font-mono);
    font-size: 0.9em;
    background: var(--paper-100);
    padding: 0.1rem 0.35rem;
    border-radius: 3px;
    color: var(--ink-700);
}

/* ---- Organization chart ------------------------------------------------------------------
   A top-down department tree. The connector lines are drawn entirely from the <ul>/<li>
   structure with pseudo-elements (the classic pure-CSS org chart), themed with the app's line
   tokens so it reads the same in light and dark. The chart can get wide, so it scrolls inside
   its own container rather than stretching the page. */
.org-scroll {
    overflow-x: auto;
    padding: 1.75rem 1rem 1.25rem;
}

.org-tree {
    display: inline-block;
    min-width: 100%;
    text-align: center;
}

.org-tree ul {
    position: relative;
    padding: 22px 0 0 0;
    margin: 0;
    white-space: nowrap;
    text-align: center;
    list-style: none;
}

.org-tree li {
    display: inline-block;
    vertical-align: top;
    list-style: none;
    position: relative;
    padding: 22px 12px 0 12px;
}

/* Horizontal bar above each node, split into two halves so first/last children can round off. */
.org-tree li::before,
.org-tree li::after {
    content: '';
    position: absolute;
    top: 0;
    right: 50%;
    width: 50%;
    height: 22px;
    border-top: 1.5px solid var(--line-strong);
}

.org-tree li::after {
    right: auto;
    left: 50%;
    border-left: 1.5px solid var(--line-strong);
}

.org-tree li:only-child::before,
.org-tree li:only-child::after {
    display: none;
}

.org-tree li:only-child {
    padding-top: 0;
}

.org-tree li:first-child::before,
.org-tree li:last-child::after {
    border: 0 none;
}

.org-tree li:last-child::before {
    border-right: 1.5px solid var(--line-strong);
    border-radius: 0 6px 0 0;
}

.org-tree li:first-child::after {
    border-radius: 6px 0 0 0;
}

/* Vertical drop from a parent node down to its children's horizontal bar. */
.org-tree ul ul::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    width: 0;
    height: 22px;
    border-left: 1.5px solid var(--line-strong);
}

.org-node {
    display: inline-flex;
    flex-direction: column;
    gap: 0.4rem;
    min-width: 168px;
    max-width: 240px;
    white-space: normal;
    text-align: left;
    vertical-align: top;
    position: relative;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-card);
    padding: 0.7rem 0.8rem;
}

/* Brand accent along the top edge, echoing the reference chart's blue without going full-fill. */
.org-node::after {
    content: '';
    position: absolute;
    inset: 0 0 auto 0;
    height: 3px;
    background: var(--brand-600);
    border-radius: var(--radius-md) var(--radius-md) 0 0;
}

.org-node--root {
    border-color: var(--brand-600);
    box-shadow: 0 0 0 1px var(--brand-100), var(--shadow-card);
}

/* Group box: the "Yönetim" unit — one bordered container holding several member cards side by
   side, with the unit name captioned along its lower edge (matching the reference sketch). */
.org-group {
    display: inline-flex;
    flex-direction: column;
    gap: 0.75rem;
    position: relative;
    background: var(--surface);
    border: 1.5px solid var(--brand-600);
    border-radius: var(--radius-md);
    box-shadow: 0 0 0 1px var(--brand-100), var(--shadow-card);
    padding: 1rem 1rem 0.6rem;
    text-align: left;
    white-space: normal;
    vertical-align: top;
}

.org-group__members {
    display: flex;
    align-items: stretch;
    gap: 0.9rem;
}

/* Member cards inside the group carry no shadow/accent bar of their own — the group box frames them. */
.org-group .org-node--member {
    box-shadow: none;
    border-color: var(--line);
}

.org-group .org-node--member::after {
    display: none;
}

.org-group__label {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: var(--brand-700);
}

.org-node__head {
    display: flex;
    align-items: center;
    gap: 0.55rem;
}

.org-node__avatar {
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--brand-100);
    color: var(--brand-700);
    font-size: 0.72rem;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.org-node__id { min-width: 0; }

.org-node__name {
    font-weight: 700;
    font-size: 0.82rem;
    line-height: 1.2;
    color: var(--ink-900);
}

.org-node__title {
    font-size: 0.72rem;
    color: var(--brand-700);
    font-weight: 600;
    line-height: 1.2;
    margin-top: 0.1rem;
}

.org-node__dept {
    font-size: 0.72rem;
    color: var(--ink-500);
    padding-top: 0.35rem;
    border-top: 1px solid var(--line);
}
