.btn-touch { padding: .5rem .75rem; }
    .nav-touch .nav-link, .nav-touch .dropdown-item { padding-top: .6rem; padding-bottom: .6rem; }
    .k-card { border-radius: 1rem; box-shadow: 0 .25rem 1rem rgba(0,0,0,.06); }
    footer a { text-decoration: none; }

    @media (max-width: 576px) {
      .btn-touch { padding: .45rem .65rem; }
    }

    /* чтобы в offcanvas list-group выглядело "touch" */
    .offcanvas .list-group-item { padding-top: .75rem; padding-bottom: .75rem; }

    /* Mobile offcanvas: fullscreen + safe-areas */
    @media (max-width: 576px){
      .kg-offcanvas.offcanvas{
        width: 100vw;
      }
      .kg-offcanvas .offcanvas-header{
        padding-top: calc(1rem + env(safe-area-inset-top));
      }
      .kg-offcanvas .offcanvas-body{
        padding-bottom: calc(1rem + env(safe-area-inset-bottom));
      }
    }

.btn-touch { padding: .5rem .75rem; }
    .nav-touch .nav-link, .nav-touch .dropdown-item { padding-top: .6rem; padding-bottom: .6rem; }
    .k-card { border-radius: 1rem; box-shadow: 0 .25rem 1rem rgba(0,0,0,.06); }
    footer a { text-decoration: none; }

    @media (max-width: 576px) {
      .btn-touch { padding: .45rem .65rem; }
    }

    .offcanvas .list-group-item { padding-top: .75rem; padding-bottom: .75rem; }

    /* ==========
       GLOBAL UI helpers (avatar + mono)
       ========== */
    .kg-mono{
      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    }

    .min-w-0{
      min-width:0;
    }

    .kg-avatar{
      width: var(--kg-avatar-size, 40px);
      height: var(--kg-avatar-size, 40px);
      border-radius: 999px;
      display:flex;
      align-items:center;
      justify-content:center;
      overflow:hidden;
      flex: 0 0 auto;

      background: var(--kg-avatar-bg, var(--bs-tertiary-bg));
      color: var(--kg-avatar-fg, var(--bs-body-color));

      font-weight: 900;
      line-height: 1;
      letter-spacing: -0.02em;
    }

    .kg-avatar img{
      width:100%;
      height:100%;
      object-fit:cover;
      display:block;
    }

    .kg-avatar-icon i{
      font-size: calc(var(--kg-avatar-size, 40px) * 0.60);
      line-height: 1;
      display: block;
    }

    .kg-avatar-initial{
      font-weight: 900;
      font-size: calc(var(--kg-avatar-size, 40px) * 0.45);
      line-height: 1;
      letter-spacing: -0.02em;
    }

/* ==========================
       KG FLASH TOASTS (adaptive)
       ========================== */

    .kg-flash-container{
      position: fixed;
      z-index: 1080; /* выше offcanvas/backdrop */
      display: flex;
      flex-direction: column;
      gap: .5rem;
      pointer-events: none; /* контейнер не перехватывает клики */
      max-height: calc(100vh - 1.5rem - env(safe-area-inset-top) - env(safe-area-inset-bottom));
      overflow: visible;  /* важно: без подрезаний */
      padding: .25rem;
    }

    /* Mobile: снизу, почти на всю ширину + safe-area */
    @media (max-width: 576px){
      .kg-flash-container{
        top: auto;
        bottom: calc(.75rem + env(safe-area-inset-bottom));
        left: .75rem;
        right: .75rem;
        align-items: stretch;
      }
      .kg-flash-container .kg-toast{
        width: 100%;
      }
    }

    /* Desktop: снизу справа + safe-area */
    @media (min-width: 577px){
      .kg-flash-container{
        right: 1rem;
        bottom: calc(1rem + env(safe-area-inset-bottom));
        top: auto;
        left: auto;
        align-items: flex-end;
      }
      .kg-flash-container .kg-toast{
        width: 380px;
        max-width: 380px;
      }
    }

    /* Toast style (no shadows) */
    .kg-toast{
      pointer-events: auto; /* тост кликабельный */
      position: relative;
      border-radius: 14px;
      overflow: hidden;

      /* “glass” */
      background: rgba(var(--bs-body-bg-rgb), .96);
      -webkit-backdrop-filter: saturate(1.2) blur(10px);
      backdrop-filter: saturate(1.2) blur(10px);

      border: 1px solid rgba(0,0,0,.10);
      box-shadow: none; /* УБРАЛИ */
      color: var(--bs-body-color);
    }

    :root[data-bs-theme="dark"] .kg-toast{
      border-color: rgba(255,255,255,.14);
      box-shadow: none; /* УБРАЛИ */
      background: rgba(var(--bs-body-bg-rgb), .86);
    }

    /* Accent bar (left) */
    .kg-toast::before{
      content:"";
      position:absolute;
      left:0; top:0; bottom:0;
      width: 5px;
      background: rgba(var(--kg-accent-rgb, var(--bs-primary-rgb)), .9);
    }

    /* Layout inside */
    .kg-toast-inner{
      display:flex;
      gap: .75rem;
      padding: .75rem .85rem;
      align-items:flex-start;
    }

    .kg-toast-icon{
      width: 34px;
      height: 34px;
      border-radius: 999px;
      display:flex;
      align-items:center;
      justify-content:center;
      flex: 0 0 auto;

      background: rgba(var(--kg-accent-rgb, var(--bs-primary-rgb)), .12);
      color: rgba(var(--kg-accent-rgb, var(--bs-primary-rgb)), .95);
    }

    .kg-toast-body{
      min-width: 0;
      line-height: 1.25;
    }
    .kg-toast-body .kg-toast-text{
      font-size: .95rem;
      word-wrap: break-word;
    }

    /* Close */
    .kg-toast .btn-close{
      opacity: .7;
    }
    .kg-toast .btn-close:hover{ opacity: 1; }
    :root[data-bs-theme="dark"] .kg-toast .btn-close{
      filter: invert(1) grayscale(100%);
      opacity: .75;
    }

    /* Progress bar */
    .kg-toast-progress{
      height: 2px;
      background: rgba(0,0,0,.06);
    }
    :root[data-bs-theme="dark"] .kg-toast-progress{
      background: rgba(255,255,255,.08);
    }
    .kg-toast-progress > span{
      display:block;
      height:100%;
      width:100%;
      transform-origin: left;
      background: rgba(var(--kg-accent-rgb, var(--bs-primary-rgb)), .65);
      animation: kgToastProgress linear forwards;
      animation-duration: var(--kg-delay, 4500ms);
    }
    .kg-toast:hover .kg-toast-progress > span{
      animation-play-state: paused; /* только визуально */
    }
    @keyframes kgToastProgress{
      from{ transform: scaleX(1); }
      to{ transform: scaleX(0); }
    }

    /* Category -> accent vars */
    .kg-toast[data-kg="success"]{ --kg-accent-rgb: var(--bs-success-rgb); }
    .kg-toast[data-kg="danger"] { --kg-accent-rgb: var(--bs-danger-rgb); }
    .kg-toast[data-kg="warning"]{ --kg-accent-rgb: var(--bs-warning-rgb); }
    .kg-toast[data-kg="info"]   { --kg-accent-rgb: var(--bs-info-rgb); }
    .kg-toast[data-kg="primary"]{ --kg-accent-rgb: var(--bs-primary-rgb); }
    .kg-toast[data-kg="secondary"]{ --kg-accent-rgb: var(--bs-secondary-rgb); }
    .kg-toast[data-kg="dark"]   { --kg-accent-rgb: var(--bs-dark-rgb); }
    .kg-toast[data-kg="light"]  { --kg-accent-rgb: var(--bs-light-rgb); }

    /* Reduced motion */
    @media (prefers-reduced-motion: reduce){
      .kg-toast-progress > span{ animation: none; }
    }

/* =========================================================
       CultGeo internal project UI layer
       GitHub-like, restrained, responsive. Scoped to project pages.
       ========================================================= */

    .kg-project-shell{
      --kg-app-bg: #f6f8fa;
      --kg-panel-bg: #ffffff;
      --kg-panel-bg-subtle: #f6f8fa;
      --kg-panel-bg-hover: #f3f4f6;
      --kg-border: #d0d7de;
      --kg-border-muted: #d8dee4;
      --kg-fg-muted: #57606a;
      --kg-fg-subtle: #6e7781;
      --kg-radius: 12px;
      --kg-radius-sm: 8px;
      --kg-focus-ring: 0 0 0 .2rem rgba(var(--bs-primary-rgb), .18);
      --kg-shadow-soft: 0 1px 0 rgba(27,31,36,.04);
      --kg-shadow-hover: 0 8px 22px rgba(27,31,36,.08);
      background: var(--kg-app-bg);
    }

    :root[data-bs-theme="dark"] .kg-project-shell,
    [data-bs-theme="dark"] .kg-project-shell{
      --kg-app-bg: #0d1117;
      --kg-panel-bg: #161b22;
      --kg-panel-bg-subtle: #0d1117;
      --kg-panel-bg-hover: #1f2630;
      --kg-border: #30363d;
      --kg-border-muted: #21262d;
      --kg-fg-muted: #8b949e;
      --kg-fg-subtle: #7d8590;
      --kg-shadow-soft: 0 1px 0 rgba(1,4,9,.45);
      --kg-shadow-hover: 0 8px 24px rgba(1,4,9,.35);
    }

    .kg-project-shell header.sticky-top,
    .kg-project-shell footer{
      background: var(--kg-panel-bg) !important;
      border-color: var(--kg-border) !important;
    }

    .kg-project-shell main > .container-xxl{
      padding-top: 1rem !important;
      padding-bottom: 1.5rem !important;
    }

    .kg-project-shell .container-xxl{
      max-width: 1480px;
    }

    .kg-project-shell .navbar-brand{
      letter-spacing: -.02em;
    }

    .kg-project-shell .btn,
    .kg-project-shell .form-control,
    .kg-project-shell .form-select,
    .kg-project-shell .input-group-text,
    .kg-project-shell .dropdown-menu,
    .kg-project-shell .list-group-item,
    .kg-project-shell .modal-content,
    .kg-project-shell .offcanvas,
    .kg-project-shell .alert{
      border-color: var(--kg-border);
    }

    .kg-project-shell .btn{
      border-radius: var(--kg-radius-sm);
      font-weight: 600;
      box-shadow: var(--kg-shadow-soft);
    }

    .kg-project-shell .btn-sm{
      border-radius: 7px;
      font-weight: 600;
    }

    .kg-project-shell .btn:hover{
      transform: translateY(-1px);
    }

    .kg-project-shell .btn:active{
      transform: translateY(0);
    }

    .kg-project-shell .btn-outline-secondary,
    .kg-project-shell .btn-light{
      color: var(--bs-body-color);
      background: var(--kg-panel-bg);
      border-color: var(--kg-border);
    }

    .kg-project-shell .btn-outline-secondary:hover,
    .kg-project-shell .btn-light:hover{
      background: var(--kg-panel-bg-hover);
      border-color: var(--kg-border);
      color: var(--bs-body-color);
    }

    .kg-project-shell .btn-link{
      box-shadow: none;
      font-weight: 600;
    }

    .kg-project-shell .btn:focus-visible,
    .kg-project-shell .form-control:focus,
    .kg-project-shell .form-select:focus,
    .kg-project-shell .form-check-input:focus{
      box-shadow: var(--kg-focus-ring);
      border-color: rgba(var(--bs-primary-rgb), .55);
    }

    .kg-project-shell .card,
    .kg-project-shell .k-card,
    .kg-project-shell .kg-card,
    .kg-project-shell .kg-dashboard-card,
    .kg-project-shell .kg-dashboard-hero,
    .kg-project-shell .kg-dashboard-stat,
    .kg-project-shell .kg-dashboard-icon,
    .kg-project-shell .kg-table-clip,
    .kg-project-shell .kg-map-shell,
    .kg-project-shell .kg-graph-shell,
    .kg-project-shell .kg-timeline-shell,
    .kg-project-shell .kg-analytics-side,
    .kg-project-shell .kg-schema-stat-card,
    .kg-project-shell .kg-analytics-stat,
    .kg-project-shell .kg-selected-item,
    .kg-project-shell .kg-empty-note{
      background: var(--kg-panel-bg) !important;
      border: 1px solid var(--kg-border) !important;
      border-radius: var(--kg-radius) !important;
      box-shadow: var(--kg-shadow-soft) !important;
    }

    .kg-project-shell .card-header,
    .kg-project-shell .kg-analytics-side-head{
      background: var(--kg-panel-bg-subtle) !important;
      border-bottom: 1px solid var(--kg-border) !important;
      font-weight: 650;
    }

    .kg-project-shell .card:hover,
    .kg-project-shell .kg-dashboard-link-card:hover,
    .kg-project-shell .kg-selected-item:hover{
      box-shadow: var(--kg-shadow-hover) !important;
    }

    .kg-project-shell .text-muted,
    .kg-project-shell .kg-muted,
    .kg-project-shell .small.text-muted{
      color: var(--kg-fg-muted) !important;
    }

    .kg-project-shell h1,
    .kg-project-shell h2,
    .kg-project-shell h3,
    .kg-project-shell .h1,
    .kg-project-shell .h2,
    .kg-project-shell .h3,
    .kg-project-shell .h4{
      letter-spacing: -.025em;
      font-weight: 750;
    }

    .kg-project-shell .breadcrumb{
      margin-bottom: 0;
    }

    .kg-project-shell .breadcrumb a,
    .kg-project-shell .breadcrumb-item{
      color: var(--kg-fg-muted);
      text-decoration: none;
    }

    .kg-project-shell .badge{
      font-weight: 600;
      border-radius: 999px;
    }

    .kg-project-shell .badge.text-bg-light,
    .kg-project-shell .badge.bg-light,
    .kg-project-shell .badge.border{
      color: var(--bs-body-color) !important;
      background: var(--kg-panel-bg-subtle) !important;
      border-color: var(--kg-border) !important;
    }

    .kg-project-shell .form-label{
      color: var(--kg-fg-muted);
      font-size: .82rem;
      font-weight: 650;
      margin-bottom: .28rem;
    }

    .kg-project-shell .form-control,
    .kg-project-shell .form-select,
    .kg-project-shell .input-group-text{
      border-radius: var(--kg-radius-sm);
      background-color: var(--kg-panel-bg);
    }

    .kg-project-shell .input-group > .form-control:not(:first-child),
    .kg-project-shell .input-group > .form-select:not(:first-child){
      border-top-left-radius: 0;
      border-bottom-left-radius: 0;
    }

    .kg-project-shell .input-group > .input-group-text:not(:last-child){
      border-top-right-radius: 0;
      border-bottom-right-radius: 0;
    }

    .kg-project-shell textarea.form-control{
      min-height: 7rem;
    }

    .kg-project-shell .dropdown-menu{
      border-radius: var(--kg-radius);
      background: var(--kg-panel-bg);
      box-shadow: 0 12px 30px rgba(27,31,36,.14) !important;
      padding: .45rem;
    }

    .kg-project-shell .dropdown-item{
      border-radius: 7px;
      padding: .46rem .58rem;
    }

    .kg-project-shell .dropdown-item:hover,
    .kg-project-shell .dropdown-item:focus{
      background: var(--kg-panel-bg-hover);
    }

    .kg-project-shell .list-group{
      border-radius: var(--kg-radius);
      overflow: hidden;
      border-color: var(--kg-border);
    }

    .kg-project-shell .list-group-item{
      background: var(--kg-panel-bg);
      border-color: var(--kg-border-muted);
    }

    .kg-project-shell .list-group-item-action:hover,
    .kg-project-shell .list-group-item-action:focus{
      background: var(--kg-panel-bg-hover);
    }

    .kg-project-shell .table-responsive,
    .kg-project-shell .kg-table-scroll{
      border-radius: var(--kg-radius);
      scrollbar-width: thin;
    }

    .kg-project-shell table.table{
      --bs-table-bg: transparent;
      --bs-table-striped-bg: rgba(175,184,193,.08);
      --bs-table-hover-bg: rgba(var(--bs-primary-rgb), .055);
      margin-bottom: 0;
    }

    .kg-project-shell .table > :not(caption) > * > *{
      padding: .72rem .78rem;
      border-bottom-color: var(--kg-border-muted);
      vertical-align: middle;
    }

    .kg-project-shell .table thead th,
    .kg-project-shell thead.table-light th{
      background: var(--kg-panel-bg-subtle) !important;
      color: var(--kg-fg-muted);
      font-size: .78rem;
      font-weight: 700;
      letter-spacing: .02em;
      text-transform: uppercase;
      border-bottom-color: var(--kg-border);
      white-space: nowrap;
    }

    .kg-project-shell .table tbody tr:last-child > *{
      border-bottom-width: 0;
    }

    .kg-project-shell .table a:not(.btn){
      font-weight: 650;
      text-decoration: none;
    }

    .kg-project-shell .table a:not(.btn):hover{
      text-decoration: underline;
    }

    .kg-project-shell .nav-tabs{
      gap: .25rem;
      border-bottom-color: var(--kg-border) !important;
    }

    .kg-project-shell .nav-tabs .nav-link{
      border: 0;
      border-bottom: 2px solid transparent;
      border-radius: 8px 8px 0 0;
      color: var(--kg-fg-muted);
      font-weight: 650;
      padding: .65rem .75rem;
    }

    .kg-project-shell .nav-tabs .nav-link:hover{
      color: var(--bs-body-color);
      background: var(--kg-panel-bg-hover);
      border-bottom-color: var(--kg-border);
    }

    .kg-project-shell .nav-tabs .nav-link.active{
      color: var(--bs-body-color);
      background: transparent;
      border-bottom-color: rgba(var(--bs-primary-rgb), .9);
    }

    .kg-project-shell .kg-subtabs .nav-link,
    .kg-project-shell .nav-pills .nav-link{
      border-radius: 999px;
      font-weight: 650;
      color: var(--kg-fg-muted);
    }

    .kg-project-shell .kg-subtabs .nav-link.active,
    .kg-project-shell .nav-pills .nav-link.active{
      color: var(--bs-body-color);
      background: rgba(var(--bs-primary-rgb), .12);
      border: 1px solid rgba(var(--bs-primary-rgb), .24);
    }

    .kg-project-shell .alert{
      border-radius: var(--kg-radius);
      box-shadow: var(--kg-shadow-soft);
    }

    .kg-project-shell .modal-content,
    .kg-project-shell .offcanvas{
      border-radius: var(--kg-radius);
      background: var(--kg-panel-bg);
    }

    .kg-project-shell .offcanvas .card,
    .kg-project-shell .offcanvas .k-card{
      box-shadow: none !important;
    }

    .kg-project-shell .kg-btn-icon,
    .kg-project-shell .btn.icon-only{
      width: 2.15rem;
      min-width: 2.15rem;
      display: inline-flex;
      align-items: center;
      justify-content: center;
    }

    .kg-project-shell .kg-action-nowrap,
    .kg-project-shell .btn-group{
      white-space: nowrap;
    }

    .kg-project-shell .kg-empty-state,
    .kg-project-shell .kg-empty-note{
      color: var(--kg-fg-muted);
      background: var(--kg-panel-bg-subtle) !important;
      border-style: dashed !important;
    }

    .kg-project-shell .kg-dashboard-link-card,
    .kg-project-shell .kg-dashboard-stat,
    .kg-project-shell .kg-repo-row,
    .kg-project-shell .kg-frame-node,
    .kg-project-shell .kg-attr-pill,
    .kg-project-shell .kg-analytics-chip{
      border-color: var(--kg-border) !important;
      background: var(--kg-panel-bg) !important;
      border-radius: var(--kg-radius-sm);
    }

    .kg-project-shell .kg-attr-pill,
    .kg-project-shell .kg-analytics-chip{
      border-radius: 999px;
    }

    .kg-project-shell .kg-analytics-toolbar,
    .kg-project-shell .kg-analytics-filter,
    .kg-project-shell .kg-timeline-filter{
      min-width: 0;
    }

    .kg-project-shell .kg-map-shell,
    .kg-project-shell .kg-graph-shell,
    .kg-project-shell .kg-timeline-shell{
      overflow: hidden;
    }



    .kg-project-shell .kg-repo-row{
      margin-left: -.25rem;
      margin-right: -.25rem;
      padding: 1rem .25rem !important;
      border-bottom-color: var(--kg-border-muted) !important;
    }

    .kg-project-shell .kg-repo-row:hover{
      background: var(--kg-panel-bg-subtle);
    }

    .kg-project-shell .kg-repo-name a{
      color: var(--bs-primary);
      font-size: 1.03rem;
    }

    .kg-project-shell .page-link{
      color: var(--bs-body-color);
      background: var(--kg-panel-bg);
      border-color: var(--kg-border);
      font-weight: 600;
    }

    .kg-project-shell .page-link:hover{
      background: var(--kg-panel-bg-hover);
    }

    .kg-project-shell .active > .page-link,
    .kg-project-shell .page-link.active{
      background: var(--bs-primary);
      border-color: var(--bs-primary);
      color: #fff;
    }

    .kg-project-shell .leaflet-control,
    .kg-project-shell .vis-timeline,
    .kg-project-shell .vis-panel{
      font-family: var(--bs-body-font-family) !important;
    }

    /* GitHub-like compact row cards for mobile tables. */
    @media (max-width: 767.98px){
      .kg-project-shell main > .container-xxl{
        padding-left: .75rem;
        padding-right: .75rem;
      }

      .kg-project-shell .card-body,
      .kg-project-shell .card-header,
      .kg-project-shell .list-group-item{
        padding-left: .85rem;
        padding-right: .85rem;
      }

      .kg-project-shell .d-flex.justify-content-between,
      .kg-project-shell .d-flex.align-items-start.justify-content-between,
      .kg-project-shell .d-flex.align-items-center.justify-content-between{
        gap: .65rem;
      }

      .kg-project-shell .btn,
      .kg-project-shell .btn-sm,
      .kg-project-shell .form-control,
      .kg-project-shell .form-select{
        min-height: 2.35rem;
      }

      .kg-project-shell .btn-group{
        flex-wrap: wrap;
      }

      .kg-project-shell .kg-mobile-table{
        display: block;
      }

      .kg-project-shell .kg-mobile-table thead{
        display: none;
      }

      .kg-project-shell .kg-mobile-table tbody,
      .kg-project-shell .kg-mobile-table tr,
      .kg-project-shell .kg-mobile-table td{
        display: block;
        width: 100%;
      }

      .kg-project-shell .kg-mobile-table tbody{
        display: grid;
        gap: .7rem;
        padding: .75rem;
        background: var(--kg-panel-bg-subtle);
      }

      .kg-project-shell .kg-mobile-table tr{
        border: 1px solid var(--kg-border);
        border-radius: var(--kg-radius);
        background: var(--kg-panel-bg);
        overflow: hidden;
        box-shadow: var(--kg-shadow-soft);
      }

      .kg-project-shell .kg-mobile-table td{
        border-bottom: 1px solid var(--kg-border-muted) !important;
        padding: .68rem .75rem !important;
      }

      .kg-project-shell .kg-mobile-table td:last-child{
        border-bottom: 0 !important;
      }

      .kg-project-shell .kg-mobile-table td::before{
        content: attr(data-label);
        display: block;
        margin-bottom: .15rem;
        color: var(--kg-fg-muted);
        font-size: .72rem;
        font-weight: 700;
        letter-spacing: .02em;
        text-transform: uppercase;
      }

      .kg-project-shell .kg-mobile-table td[data-label="" ]::before,
      .kg-project-shell .kg-mobile-table td:not([data-label])::before{
        display: none;
      }

      .kg-project-shell .table-responsive{
        overflow: visible;
      }

      .kg-project-shell .kg-repo-title{
        max-width: 100%;
      }

      .kg-project-shell .kg-tabstrip{
        margin-left: -.75rem;
        margin-right: -.75rem;
        padding-left: .75rem;
        padding-right: .75rem;
      }
    }

/* Project second-level workbar. GitHub-like, but shared for schema/analytics/notes. */
    .kg-workbar{
      margin: -.25rem 0 1rem;
      border-bottom: 1px solid var(--kg-border, var(--bs-border-color));
      overflow: visible;
      position: relative;
      z-index: 80;
    }
    .kg-workbar-inner{
      display:flex;
      align-items:center;
      gap:.2rem;
      flex-wrap:wrap;
      min-width:0;
    }
    .kg-workbar .dropdown{
      position:relative;
    }
    .kg-workbar-link,
    .kg-workbar .dropdown-toggle,
    .kg-workbar-button{
      display:inline-flex;
      align-items:center;
      gap:.42rem;
      min-height: 42px;
      padding:.62rem .72rem .58rem;
      border:0;
      border-bottom:2px solid transparent;
      border-radius:8px 8px 0 0;
      color:var(--kg-fg-muted, var(--bs-secondary-color));
      background:transparent;
      font-weight:650;
      text-decoration:none;
      white-space:nowrap;
      appearance:none;
      line-height:1.2;
    }
    .kg-workbar-link:hover,
    .kg-workbar .dropdown-toggle:hover,
    .kg-workbar .dropdown-toggle.show,
    .kg-workbar-button:hover,
    .kg-workbar-button.show{
      color:var(--bs-body-color);
      background:var(--kg-panel-bg-hover, var(--bs-tertiary-bg));
      text-decoration:none;
    }
    .kg-workbar-link.active,
    .kg-workbar .dropdown-toggle.active,
    .kg-workbar-button.active{
      color:var(--bs-body-color);
      border-bottom-color:rgba(var(--bs-primary-rgb), .95);
      background:transparent;
    }
    .kg-workbar-spacer{ flex:1 1 auto; }
    .kg-workbar .dropdown-menu{
      min-width: 15rem;
      z-index: 2200;
      border-radius: 12px;
    }
    .kg-workbar .dropdown-item{
      display:flex;
      align-items:center;
      gap:.15rem;
      min-height: 34px;
    }
    .kg-workbar .dropdown-item.active{
      background:rgba(var(--bs-primary-rgb), .10);
      color:var(--bs-body-color);
      font-weight:700;
    }
    @media(max-width: 767.98px){
      .kg-workbar{
        margin-left:-.75rem;
        margin-right:-.75rem;
        padding-left:.75rem;
        padding-right:.75rem;
      }
      .kg-workbar-inner{
        gap:.1rem;
      }
      .kg-workbar-link,
      .kg-workbar .dropdown-toggle,
      .kg-workbar-button{
        min-height:42px;
        padding-left:.58rem;
        padding-right:.58rem;
        font-size:.92rem;
      }
      .kg-workbar-spacer{ display:none; }
      .kg-workbar .dropdown-menu-end{
        right:auto;
        left:0;
      }
    }

    /* Project README and notes. */
    .kg-readme-card{
      overflow:hidden;
    }
    .kg-project-dashboard-clean .kg-clean-readme-shell{
      max-width: 980px;
      margin: 0 auto;
    }
    .kg-project-dashboard-clean .kg-readme-card{
      border-radius: 12px;
    }
    .kg-readme-header-clean{
      background: var(--bs-body-bg);
    }
    .kg-empty-state-clean{
      border:1px dashed var(--kg-border, var(--bs-border-color));
      background: var(--kg-panel-bg-subtle, var(--bs-tertiary-bg));
    }
    .kg-empty-icon{
      width: 46px;
      height: 46px;
      border-radius: 999px;
      display:flex;
      align-items:center;
      justify-content:center;
      border:1px solid var(--kg-border, var(--bs-border-color));
      background: var(--bs-body-bg);
      font-size:1.35rem;
    }
    .kg-readme-header{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:.75rem;
      padding:.8rem 1rem;
      background:var(--kg-panel-bg-subtle, var(--bs-tertiary-bg));
      border-bottom:1px solid var(--kg-border, var(--bs-border-color));
    }
    .kg-readme-body{
      padding:1rem;
    }
    .kg-markdown-body{
      font-size:.96rem;
      line-height:1.62;
      overflow-wrap:anywhere;
    }
    .kg-markdown-body > :first-child{ margin-top:0; }
    .kg-markdown-body > :last-child{ margin-bottom:0; }
    .kg-markdown-body h1,
    .kg-markdown-body h2,
    .kg-markdown-body h3,
    .kg-markdown-body h4,
    .kg-markdown-body h5,
    .kg-markdown-body h6{
      margin:1.25rem 0 .65rem;
      padding-bottom:.25rem;
      border-bottom:1px solid var(--kg-border-muted, var(--bs-border-color));
      letter-spacing:-.025em;
    }
    .kg-markdown-body h1{ font-size:1.55rem; }
    .kg-markdown-body h2{ font-size:1.28rem; }
    .kg-markdown-body h3{ font-size:1.12rem; }
    .kg-markdown-body p,
    .kg-markdown-body ul,
    .kg-markdown-body ol,
    .kg-markdown-body blockquote,
    .kg-markdown-body pre{ margin-bottom:.85rem; }
    .kg-markdown-body pre{
      padding:.85rem;
      border-radius:10px;
      border:1px solid var(--kg-border, var(--bs-border-color));
      background:var(--kg-panel-bg-subtle, var(--bs-tertiary-bg));
      overflow:auto;
    }
    .kg-markdown-body code{
      padding:.12rem .32rem;
      border-radius:6px;
      background:var(--kg-panel-bg-subtle, var(--bs-tertiary-bg));
      border:1px solid var(--kg-border-muted, var(--bs-border-color));
      font-size:.88em;
    }
    .kg-markdown-body pre code{
      border:0;
      padding:0;
      background:transparent;
    }
    .kg-markdown-body blockquote{
      padding:.6rem .85rem;
      border-left:4px solid var(--kg-border, var(--bs-border-color));
      color:var(--kg-fg-muted, var(--bs-secondary-color));
      background:var(--kg-panel-bg-subtle, var(--bs-tertiary-bg));
      border-radius:0 10px 10px 0;
    }
    .kg-md-internal-link,
    .kg-md-note-link{
      display:inline-flex;
      align-items:center;
      gap:.18rem;
      padding:.05rem .32rem;
      border-radius:999px;
      border:1px solid rgba(var(--bs-primary-rgb), .24);
      background:rgba(var(--bs-primary-rgb), .07);
      text-decoration:none;
      font-weight:650;
    }
    .kg-md-note-link{
      border-color:rgba(var(--bs-info-rgb), .28);
      background:rgba(var(--bs-info-rgb), .08);
    }
    .kg-md-broken-link{
      display:inline-flex;
      padding:.05rem .32rem;
      border-radius:999px;
      border:1px dashed var(--bs-danger);
      color:var(--bs-danger);
    }
    .kg-md-editor-layout{
      display:grid;
      grid-template-columns:minmax(0, 1fr) 320px;
      gap:1rem;
      align-items:start;
    }
    .kg-md-editor-layout-no-preview{
      grid-template-columns:minmax(0, 1fr) 340px;
    }
    .kg-md-editor-layout-full{
      grid-template-columns:minmax(0, 1fr);
    }
    .kg-md-editor-page .kg-md-editor{
      overflow:hidden;
    }
    .kg-md-editor textarea{
      min-height:68vh;
      font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
      font-size:.94rem;
      line-height:1.55;
      resize:vertical;
    }
    .kg-md-code-shell{
      display:grid;
      grid-template-columns:3.35rem minmax(0,1fr);
      border:1px solid var(--bs-border-color);
      border-radius:var(--bs-border-radius);
      overflow:hidden;
      background:var(--bs-body-bg);
    }
    .kg-md-code-shell textarea.form-control{
      border:0;
      border-radius:0;
      box-shadow:none;
      min-height:68vh;
    }
    .kg-md-line-gutter{
      overflow:hidden;
      padding:.375rem .55rem .375rem .25rem;
      border-right:1px solid var(--bs-border-color);
      background:var(--bs-tertiary-bg);
      color:var(--bs-secondary-color);
      font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
      font-size:.84rem;
      line-height:1.55;
      text-align:right;
      user-select:none;
    }
    .kg-md-line-gutter div{height:1.457rem;}
    .kg-md-view-pane{
      min-height:68vh;
      padding:1rem;
      border:1px solid var(--bs-border-color);
      border-radius:var(--bs-border-radius);
      background:var(--bs-body-bg);
    }
    .kg-md-toolbar-wrap{
      position:sticky;
      top:64px;
      z-index:60;
      background:var(--bs-body-bg);
      padding:.55rem .75rem;
    }
    .kg-md-toolbar-row{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:.75rem;
      flex-wrap:wrap;
    }
    .kg-md-toolbar{
      display:flex;
      flex-wrap:wrap;
      gap:.45rem;
      align-items:center;
      padding:0;
      border:0;
      border-radius:0;
      background:transparent;
      margin-bottom:0;
    }
    .kg-md-toolbar .btn{
      min-width:2.2rem;
    }
    .kg-md-side{
      position:sticky;
      top:5.5rem;
    }
    .kg-entity-picker-list,
    .kg-note-picker-list{
      max-height:48vh;
      overflow:auto;
    }
    .kg-entity-picker-list .list-group-item,
    .kg-note-picker-list .list-group-item{
      border-left:0;
      border-right:0;
    }
    .kg-note-row{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:1rem;
      padding:1rem;
      border-bottom:1px solid var(--kg-border-muted, var(--bs-border-color));
    }
    .kg-note-row:last-child{ border-bottom:0; }
    .kg-note-row:hover{ background:var(--kg-panel-bg-subtle, var(--bs-tertiary-bg)); }


    .kg-project-search-page .kg-search-bucket{ overflow:hidden; }
    .kg-search-result-icon{
      width:2rem;
      height:2rem;
      border-radius:10px;
      border:1px solid var(--kg-border, var(--bs-border-color));
      background:var(--kg-panel-bg-subtle, var(--bs-tertiary-bg));
      color:var(--kg-fg-muted, var(--bs-secondary-color));
      display:flex;
      align-items:center;
      justify-content:center;
      flex:0 0 auto;
    }
    .kg-search-result .badge{
      max-width:100%;
      white-space:normal;
      text-align:left;
    }

    .kg-header-icon-btn{
      width:2.5rem;
      padding-left:0;
      padding-right:0;
      display:inline-flex;
      align-items:center;
      justify-content:center;
    }

    .kg-quick-search-modal .modal-dialog{
      max-width:720px;
    }
    .kg-quick-search-box{
      border:1px solid var(--bs-border-color);
      border-radius:14px;
      overflow:hidden;
      background:var(--bs-body-bg);
      box-shadow:0 14px 40px rgba(15,23,42,.14);
    }
    .kg-quick-search-input{
      border:0;
      box-shadow:none!important;
      font-size:1.05rem;
      padding:.95rem 1rem;
    }
    .kg-quick-search-box .input-group-text{
      border:0;
      background:transparent;
      padding-left:1rem;
      color:var(--bs-secondary-color);
    }
    .kg-quick-search-results{
      max-height:430px;
      overflow:auto;
    }
    .kg-quick-search-item{
      display:flex;
      gap:.75rem;
      padding:.72rem .85rem;
      color:var(--bs-body-color);
      text-decoration:none;
      border-top:1px solid color-mix(in srgb,var(--bs-border-color) 70%,transparent);
    }
    .kg-quick-search-item:hover,
    .kg-quick-search-item:focus{
      background:var(--bs-tertiary-bg);
      color:var(--bs-body-color);
    }
    .kg-quick-search-icon{
      width:2rem;
      height:2rem;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      border:1px solid var(--bs-border-color);
      border-radius:10px;
      background:var(--bs-body-bg);
      color:var(--bs-secondary-color);
      flex:0 0 auto;
    }
    .kg-quick-search-meta{
      color:var(--bs-secondary-color);
      font-size:.78rem;
      overflow:hidden;
      text-overflow:ellipsis;
      white-space:nowrap;
    }
    .kg-quick-search-empty{
      padding:1.1rem;
      color:var(--bs-secondary-color);
      text-align:center;
      border-top:1px solid color-mix(in srgb,var(--bs-border-color) 70%,transparent);
    }
    .kg-quick-search-footer{
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:.75rem;
      padding:.65rem .85rem;
      border-top:1px solid var(--bs-border-color);
      background:var(--bs-tertiary-bg);
    }

    /* Project overview as a research repository page. */
    .kg-project-dashboard-research .k-card{
      border-radius:12px;
    }
    .kg-research-files{
      overflow:hidden;
    }
    .kg-research-files-head,
    .kg-research-files-foot{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:.75rem;
      padding:.75rem 1rem;
      background:var(--kg-panel-bg-subtle, var(--bs-tertiary-bg));
      border-bottom:1px solid var(--kg-border, var(--bs-border-color));
    }
    .kg-research-files-foot{
      background:var(--bs-body-bg);
      border-top:1px solid var(--kg-border-muted, var(--bs-border-color));
      border-bottom:0;
    }
    .kg-research-file-table{
      display:block;
      background:var(--bs-body-bg);
    }
    .kg-research-file-row{
      display:grid;
      grid-template-columns: 28px minmax(0, 1fr) minmax(170px, 240px) auto;
      align-items:center;
      gap:.75rem;
      padding:.72rem 1rem;
      border-bottom:1px solid var(--kg-border-muted, var(--bs-border-color));
    }
    .kg-research-file-row:last-child{ border-bottom:0; }
    .kg-research-file-row:hover{
      background:var(--kg-panel-bg-subtle, var(--bs-tertiary-bg));
    }
    .kg-file-icon{
      color:var(--kg-fg-muted, var(--bs-secondary-color));
      text-align:center;
      font-size:1.05rem;
    }
    .kg-file-icon.pinned{
      color:rgba(var(--bs-primary-rgb), .95);
    }
    .kg-file-title{
      color:var(--bs-body-color);
      font-weight:650;
      text-decoration:none;
    }
    .kg-file-title:hover{
      color:var(--bs-primary);
      text-decoration:underline;
    }
    .kg-file-path,
    .kg-file-meta{
      color:var(--kg-fg-muted, var(--bs-secondary-color));
      font-size:.84rem;
    }
    .kg-file-actions{
      display:flex;
      justify-content:flex-end;
    }
    .kg-research-empty{
      padding:2.25rem 1rem;
      text-align:center;
      background:var(--bs-body-bg);
    }
    .kg-project-about-col{
      position:relative;
    }
    @media(min-width:1200px){
      .kg-project-about-col{
        position:sticky;
        top:5.25rem;
      }
    }
    .kg-about-box{
      padding:0 0 1rem;
      border-bottom:1px solid var(--kg-border-muted, var(--bs-border-color));
    }
    .kg-about-box:last-child{
      border-bottom:0;
    }
    .kg-about-description{
      color:var(--bs-body-color);
      font-size:.94rem;
      line-height:1.45;
      overflow-wrap:anywhere;
    }
    .kg-about-meta{
      display:grid;
      gap:.45rem;
      color:var(--kg-fg-muted, var(--bs-secondary-color));
      font-size:.88rem;
    }
    .kg-about-meta > div,
    .kg-about-meta-link{
      display:flex;
      align-items:center;
      gap:.5rem;
      min-width:0;
    }
    .kg-about-meta-link{
      border:0;
      background:transparent;
      color:inherit;
      padding:0;
      text-align:left;
      cursor:pointer;
    }
    .kg-about-meta-link:hover{
      color:var(--bs-primary);
      text-decoration:underline;
      text-underline-offset:2px;
    }
    .kg-about-meta i{
      width:1rem;
      flex:0 0 auto;
    }
    .kg-about-stats{
      display:grid;
      grid-template-columns:repeat(3, minmax(0,1fr));
      gap:.5rem;
    }
    .kg-about-stats a{
      padding:.55rem .5rem;
      border:1px solid var(--kg-border, var(--bs-border-color));
      border-radius:10px;
      background:var(--bs-body-bg);
      color:var(--bs-body-color);
      text-align:center;
      text-decoration:none;
      min-width:0;
    }
    .kg-about-stats a:hover{
      border-color:rgba(var(--bs-primary-rgb), .35);
      background:var(--kg-panel-bg-subtle, var(--bs-tertiary-bg));
    }
    .kg-about-stats strong{
      display:block;
      font-size:1.03rem;
      line-height:1.1;
    }
    .kg-about-stats span{
      display:block;
      color:var(--kg-fg-muted, var(--bs-secondary-color));
      font-size:.74rem;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
    }
    .kg-participant-list{
      display:grid;
      gap:.65rem;
    }
    .kg-participant-row{
      display:flex;
      align-items:center;
      gap:.65rem;
      min-width:0;
    }
    .kg-participant-avatar{
      width:2rem;
      height:2rem;
      border-radius:999px;
      display:flex;
      align-items:center;
      justify-content:center;
      flex:0 0 auto;
      border:1px solid var(--kg-border, var(--bs-border-color));
      background:var(--kg-panel-bg-subtle, var(--bs-tertiary-bg));
      font-size:.82rem;
      font-weight:800;
    }
    @media(max-width: 991.98px){
      .kg-md-editor-layout,
      .kg-md-editor-layout-no-preview{ grid-template-columns:1fr; }
      .kg-md-side{ position:static; }
      .kg-md-toolbar-wrap{ top:0; }
    }
    @media(max-width: 767.98px){
      .kg-readme-header{ padding:.75rem .85rem; }
      .kg-readme-body{ padding:.85rem; }
      .kg-note-row{ display:block; padding:.85rem; }
      .kg-note-row .kg-note-actions{ margin-top:.75rem; }
      .kg-research-file-row{
        grid-template-columns:28px minmax(0,1fr) auto;
        gap:.6rem;
        padding:.78rem .85rem;
      }
      .kg-file-meta{
        grid-column:2 / -1;
        white-space:normal;
      }
      .kg-file-actions{
        grid-column:3;
        grid-row:1;
      }
      .kg-research-files-head{
        padding:.75rem .85rem;
      }
      .kg-about-box{
        padding:1rem;
        border:1px solid var(--kg-border, var(--bs-border-color));
        border-radius:12px;
        background:var(--bs-body-bg);
      }
    }

/* ==========================
       GitHub-like polish for repository pages
       ========================== */
    .kg-project-shell{
      color-scheme: light;
    }
    .kg-project-shell .kg-repo-header{
      padding: .15rem 0 0;
    }
    .kg-project-shell .kg-repo-header > .d-flex:first-of-type{
      padding: .15rem 0 .2rem;
    }
    .kg-project-shell .kg-repo-title{
      display:flex;
      align-items:center;
      gap:.4rem;
      font-size:1.22rem;
      font-weight:700;
    }
    .kg-project-shell .kg-repo-title::before{
      content:"\F3D7";
      font-family:"bootstrap-icons";
      color:var(--kg-fg-muted, var(--bs-secondary-color));
      font-size:1rem;
      line-height:1;
    }
    .kg-project-shell .kg-repo-title a span:last-child{
      color:var(--bs-primary);
      font-weight:700;
    }
    .kg-project-shell .kg-repo-header .border-bottom{
      margin-left:calc(var(--bs-gutter-x) * -.5);
      margin-right:calc(var(--bs-gutter-x) * -.5);
      padding-left:calc(var(--bs-gutter-x) * .5);
      padding-right:calc(var(--bs-gutter-x) * .5);
      background:linear-gradient(to bottom, var(--kg-panel-bg, var(--bs-body-bg)), var(--kg-panel-bg-subtle, var(--bs-tertiary-bg)));
    }
    .kg-project-shell .kg-repo-dropdown .dropdown-item{
      gap:.15rem;
    }
    .kg-project-shell .kg-search-result{
      transition: background-color .12s ease;
    }
    .kg-project-shell .kg-search-result .fw-semibold{
      color:var(--bs-primary);
    }
    .kg-project-shell .kg-search-result:hover .fw-semibold{
      text-decoration:underline;
      text-underline-offset:2px;
    }
    .kg-project-shell .kg-tag-badge{
      display:inline-flex;
      align-items:center;
      gap:.28rem;
      max-width:100%;
      min-height:1.55rem;
      padding:.22rem .58rem;
      border-radius:999px;
      font-size:.78rem;
      font-weight:700;
      line-height:1.15;
      box-shadow:inset 0 0 0 1px rgba(255,255,255,.16);
    }
    .kg-project-shell .kg-tag-badge::before{
      content:"";
      width:.42rem;
      height:.42rem;
      border-radius:999px;
      background:currentColor;
      opacity:.85;
      box-shadow:0 0 0 1px rgba(255,255,255,.45);
    }
    .kg-project-shell .kg-tag-widget{
      overflow:hidden;
    }
    .kg-project-shell .kg-tag-widget .card-body{
      background:linear-gradient(to bottom, var(--kg-panel-bg, var(--bs-body-bg)), var(--kg-panel-bg-subtle, var(--bs-tertiary-bg)));
    }
    .kg-project-shell .kg-tags-toolbar{
      border:1px solid var(--kg-border, var(--bs-border-color));
      border-radius:12px 12px 0 0;
      background:var(--kg-panel-bg-subtle, var(--bs-tertiary-bg));
      padding:.75rem;
    }
    .kg-project-shell .kg-label-list{
      border:1px solid var(--kg-border, var(--bs-border-color));
      border-top:0;
      border-radius:0 0 12px 12px;
      overflow:hidden;
      background:var(--kg-panel-bg, var(--bs-body-bg));
    }
    .kg-project-shell .kg-label-row{
      display:grid;
      grid-template-columns:minmax(230px, 340px) minmax(0,1fr) auto;
      gap:1rem;
      align-items:center;
      padding:1rem;
      border-bottom:1px solid var(--kg-border-muted, var(--bs-border-color));
    }
    .kg-project-shell .kg-label-row:last-child{
      border-bottom:0;
    }
    .kg-project-shell .kg-label-row:hover{
      background:var(--kg-panel-bg-subtle, var(--bs-tertiary-bg));
    }
    .kg-project-shell .kg-label-description{
      color:var(--kg-fg-muted, var(--bs-secondary-color));
      font-size:.9rem;
      overflow-wrap:anywhere;
    }
    .kg-project-shell .kg-label-meta{
      display:flex;
      flex-wrap:wrap;
      gap:.35rem;
      margin-top:.4rem;
      color:var(--kg-fg-muted, var(--bs-secondary-color));
      font-size:.8rem;
    }
    .kg-project-shell .kg-label-count{
      display:inline-flex;
      align-items:center;
      gap:.32rem;
      color:var(--kg-fg-muted, var(--bs-secondary-color));
      white-space:nowrap;
      font-weight:650;
    }
    .kg-project-shell .kg-tag-search-chip{
      display:inline-flex;
      align-items:center;
      gap:.45rem;
      max-width:100%;
    }
    .kg-project-shell .kg-tag-color-dot,
    .kg-project-shell .kg-search-tag-swatch{
      width:.72rem;
      height:.72rem;
      border-radius:999px;
      border:1px solid rgba(27,31,36,.16);
      box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);
      flex:0 0 auto;
    }
    .kg-project-shell .kg-quick-search-item .kg-tag-color-dot{
      margin-top:.2rem;
    }
    .kg-project-shell .kg-card-actions{
      display:flex;
      align-items:center;
      justify-content:flex-end;
      gap:.35rem;
      flex-wrap:wrap;
    }

    /* GitHub-like discussion threads. */
    .kg-project-shell .kg-issues-toolbar{
      border:1px solid var(--kg-border, var(--bs-border-color));
      border-radius:12px 12px 0 0;
      background:var(--kg-panel-bg-subtle, var(--bs-tertiary-bg));
      padding: .85rem;
    }
    .kg-project-shell .kg-issues-list{
      border-top-left-radius:0;
      border-top-right-radius:0;
      overflow:hidden;
    }
    .kg-project-shell .kg-issue-row{
      display:flex;
      align-items:flex-start;
      gap:.85rem;
      padding:1rem;
    }
    .kg-project-shell .kg-issue-row:hover{
      background:var(--kg-panel-bg-subtle, var(--bs-tertiary-bg));
    }
    .kg-project-shell .kg-issue-state{
      width:1.35rem;
      display:flex;
      justify-content:center;
      padding-top:.12rem;
      font-size:1.04rem;
      flex:0 0 auto;
    }
    .kg-project-shell .kg-issue-state.is-open{ color:#1f883d; }
    .kg-project-shell .kg-issue-state.is-closed{ color:#8250df; }
    .kg-project-shell .kg-issue-title{
      font-weight:700;
      color:var(--bs-body-color);
      overflow-wrap:anywhere;
    }
    .kg-project-shell .kg-issue-row:hover .kg-issue-title{
      color:var(--bs-primary);
      text-decoration:underline;
      text-underline-offset:2px;
    }
    .kg-project-shell .kg-issue-comments{
      min-width:3.5rem;
      text-align:right;
      white-space:nowrap;
      padding-top:.1rem;
    }
    .kg-project-shell .kg-issue-heading{
      letter-spacing:-.025em;
      overflow-wrap:anywhere;
    }
    .kg-project-shell .kg-timeline-thread{
      position:relative;
    }
    .kg-project-shell .kg-timeline-thread::before{
      content:"";
      position:absolute;
      left:1.25rem;
      top:4.5rem;
      bottom:0;
      width:2px;
      background:var(--kg-border-muted, var(--bs-border-color));
      z-index:0;
    }
    .kg-project-shell .kg-thread-card{
      position:relative;
      z-index:1;
    }
    .kg-project-shell .kg-markdown-body{
      font-size:.96rem;
      line-height:1.62;
      overflow-wrap:anywhere;
    }
    .kg-project-shell .kg-markdown-body > :last-child{ margin-bottom:0; }
    .kg-project-shell .kg-markdown-body h1,
    .kg-project-shell .kg-markdown-body h2,
    .kg-project-shell .kg-markdown-body h3{
      margin-top:1rem;
      margin-bottom:.55rem;
      font-weight:750;
    }
    .kg-project-shell .kg-markdown-body pre,
    .kg-project-shell .kg-markdown-body code{
      border-radius:6px;
      background:var(--bs-tertiary-bg);
    }
    .kg-project-shell .kg-issue-sidebar{
      position:sticky;
      top:5rem;
    }
    .kg-project-shell .kg-sidebar-section a{
      text-decoration:none;
      overflow-wrap:anywhere;
    }
    .kg-project-shell .kg-sidebar-section a:hover{
      text-decoration:underline;
    }
    .kg-project-shell .kg-issue-form .form-control,
    .kg-project-shell .kg-issue-form .form-select{
      border-radius:8px;
    }
    .kg-project-shell .card,
    .kg-project-shell .k-card,
    .kg-project-shell .kg-label-list,
    .kg-project-shell .kg-issues-list,
    .kg-project-shell .kg-issues-toolbar,
    .kg-project-shell .kg-tags-toolbar{
      border-radius: 8px;
      box-shadow: none !important;
    }
    .kg-project-shell .card-header,
    .kg-project-shell .card-footer{
      border-color: var(--kg-border-muted, var(--bs-border-color));
      background: var(--kg-panel-bg-subtle, var(--bs-tertiary-bg)) !important;
    }
    .kg-project-shell .kg-thread-card{
      border-radius: 8px;
      box-shadow: none !important;
    }
    .kg-project-shell .kg-thread-card .card-header{
      padding: .68rem .85rem;
    }
    .kg-project-shell .kg-thread-card .card-body{
      padding: .95rem;
    }
    .kg-project-shell .kg-md-editor-tabs .nav-link{
      font-size: .88rem;
      font-weight: 650;
      color: var(--kg-fg-muted, var(--bs-secondary-color));
      border-radius: 6px 6px 0 0;
    }
    .kg-project-shell .kg-md-editor-tabs .nav-link.active{
      color: var(--bs-body-color);
      background: var(--kg-panel-bg, var(--bs-body-bg));
      border-color: var(--kg-border, var(--bs-border-color)) var(--kg-border, var(--bs-border-color)) var(--kg-panel-bg, var(--bs-body-bg));
    }
    .kg-project-shell .kg-md-preview{
      min-height: 10.5rem;
      border: 1px solid var(--kg-border, var(--bs-border-color));
      border-top: 0;
      border-radius: 0 0 8px 8px;
      padding: .85rem;
      background: var(--kg-panel-bg, var(--bs-body-bg));
    }
    .kg-project-shell .kg-md-preview.is-empty{
      color: var(--kg-fg-muted, var(--bs-secondary-color));
    }
    @media (max-width: 991.98px){
      .kg-project-shell .kg-issue-sidebar{
        position:static;
      }
      .kg-project-shell .kg-timeline-thread::before{
        display:none;
      }
    }
    @media (max-width: 767.98px){
      .kg-project-shell .kg-issue-row{
        gap:.65rem;
        padding:.85rem;
      }
      .kg-project-shell .kg-issue-comments{
        display:none;
      }
      .kg-project-shell .kg-issues-toolbar{
        padding:.75rem;
      }
    }

    @media (max-width: 767.98px){
      .kg-project-shell .kg-label-row{
        grid-template-columns:1fr;
        gap:.7rem;
        padding:.85rem;
      }
      .kg-project-shell .kg-card-actions{
        justify-content:flex-start;
      }
      .kg-project-shell .kg-tags-toolbar .input-group,
      .kg-project-shell .kg-project-search-page .input-group-lg{
        flex-wrap:nowrap;
      }
      .kg-project-shell .kg-project-search-page .input-group-lg .btn{
        padding-left:.8rem;
        padding-right:.8rem;
      }
    }

/* README-vitrine with interactive CultGeo blocks. */
    .kg-readme-public-shell{max-width:1180px;margin:0 auto;}
    .kg-readme-public-hero{
      border:1px solid var(--kg-border, var(--bs-border-color));
      border-radius:12px;
      background:var(--bs-body-bg);
      padding:1rem 1.1rem;
      margin-bottom:1rem;
    }
    .kg-readme-block{
      border:1px solid var(--kg-border, var(--bs-border-color));
      border-radius:10px;
      background:var(--bs-body-bg);
      margin:1rem 0;
      overflow:hidden;
    }
    .kg-readme-block-head{
      min-height:52px;
      padding:.7rem .85rem;
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:.75rem;
      background:var(--kg-panel-bg-subtle, var(--bs-tertiary-bg));
      border-bottom:1px solid var(--kg-border, var(--bs-border-color));
    }
    .kg-readme-block-icon,
    .kg-readme-row-icon{
      width:32px;
      height:32px;
      border-radius:8px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      border:1px solid var(--kg-border, var(--bs-border-color));
      background:var(--bs-body-bg);
      color:var(--kg-fg-muted, var(--bs-secondary-color));
      flex:0 0 auto;
    }
    .kg-readme-block-title{font-weight:650;line-height:1.2;}
    .kg-readme-block-meta{font-size:.8rem;color:var(--kg-fg-muted, var(--bs-secondary-color));}
    .kg-readme-block-actions{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;}
    .kg-readme-block-body{padding:0;}
    .kg-readme-map,
    .kg-readme-graph{
      height:420px;
      width:100%;
      background:var(--kg-panel-bg-subtle, var(--bs-tertiary-bg));
    }
    .kg-readme-timeline{padding:.75rem;}
    .kg-readme-timeline-controls{display:flex;align-items:center;gap:.75rem;margin-bottom:.65rem;}
    .kg-readme-timeline-controls .form-control{max-width:360px;}
    .kg-readme-timeline-list{display:grid;gap:.45rem;max-height:420px;overflow:auto;}
    .kg-readme-timeline-row{
      width:100%;
      border:1px solid var(--kg-border-muted, var(--bs-border-color));
      background:var(--bs-body-bg);
      border-radius:8px;
      padding:.55rem .65rem;
      display:grid;
      grid-template-columns:9rem minmax(0,1fr);
      text-align:left;
      gap:.75rem;
    }
    .kg-readme-timeline-row:hover{background:var(--kg-panel-bg-subtle, var(--bs-tertiary-bg));}
    .kg-readme-timeline-date{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--kg-fg-muted, var(--bs-secondary-color));font-size:.84rem;}
    .kg-readme-object-card{display:flex;justify-content:space-between;gap:1rem;padding:1rem;}
    .kg-readme-object-main{min-width:0;}
    .kg-readme-object-stats{display:flex;align-items:flex-start;gap:.5rem;flex-wrap:wrap;justify-content:flex-end;}
    .kg-readme-object-stats span{
      border:1px solid var(--kg-border, var(--bs-border-color));
      background:var(--kg-panel-bg-subtle, var(--bs-tertiary-bg));
      border-radius:999px;
      padding:.25rem .55rem;
      font-size:.82rem;
      white-space:nowrap;
    }
    .kg-readme-list{display:grid;}
    .kg-readme-list-row{
      display:flex;
      align-items:center;
      gap:.65rem;
      padding:.65rem .85rem;
      text-decoration:none;
      border-bottom:1px solid var(--kg-border-muted, var(--bs-border-color));
      color:var(--bs-body-color);
    }
    .kg-readme-list-row:last-child{border-bottom:0;}
    .kg-readme-list-row:hover{background:var(--kg-panel-bg-subtle, var(--bs-tertiary-bg));}
    .kg-readme-metric{padding:1rem;text-align:center;}
    .kg-readme-metric-number{font-size:2.15rem;font-weight:750;letter-spacing:-.04em;line-height:1;}
    .kg-readme-note-card{padding:1rem;}
    .kg-readme-block-empty{padding:1rem;display:flex;align-items:center;gap:.75rem;color:var(--kg-fg-muted, var(--bs-secondary-color));background:var(--kg-panel-bg-subtle, var(--bs-tertiary-bg));}
    .kg-readme-block-empty-icon{width:32px;height:32px;border-radius:8px;border:1px dashed var(--kg-border, var(--bs-border-color));display:flex;align-items:center;justify-content:center;background:var(--bs-body-bg);}
    .kg-readme-block-fullscreen{
      position:fixed;
      inset:1rem;
      z-index:1090;
      margin:0!important;
      display:flex;
      flex-direction:column;
      box-shadow:0 18px 60px rgba(15,23,42,.28);
    }
    .kg-readme-block-fullscreen .kg-readme-block-body{flex:1;min-height:0;display:flex;}
    .kg-readme-block-fullscreen .kg-readme-map,
    .kg-readme-block-fullscreen .kg-readme-graph,
    .kg-readme-block-fullscreen .kg-readme-timeline{height:auto;min-height:0;flex:1;}
    .kg-readme-block-fullscreen .kg-readme-timeline-list{max-height:none;}
    .kg-block-picker-list{max-height:52vh;overflow:auto;}
    .kg-block-picker-row{display:flex;align-items:flex-start;gap:.65rem;width:100%;text-align:left;}
    .kg-block-picker-code{font-size:.78rem;color:var(--kg-fg-muted, var(--bs-secondary-color));font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;}
    .kg-md-directive-preview{border:1px solid var(--kg-border, var(--bs-border-color));border-radius:10px;padding:.75rem;background:var(--kg-panel-bg-subtle, var(--bs-tertiary-bg));display:flex;align-items:center;gap:.65rem;margin:.75rem 0;}
    @media (max-width:768px){
      .kg-readme-block-head{align-items:flex-start;flex-direction:column;}
      .kg-readme-block-actions{width:100%;}
      .kg-readme-block-actions .btn{flex:1 1 auto;}
      .kg-readme-map,.kg-readme-graph{height:340px;}
      .kg-readme-object-card{display:block;}
      .kg-readme-object-stats{justify-content:flex-start;margin-top:.75rem;}
      .kg-readme-timeline-row{grid-template-columns:1fr;gap:.2rem;}
      .kg-readme-block-fullscreen{inset:.5rem;}
    }

/* Final GitHub-like polish for Markdown, tags, discussions and analytics. */
    .kg-project-shell .kg-readme-card,
    .kg-project-shell .kg-thread-card,
    .kg-project-shell .kg-issues-list,
    .kg-project-shell .kg-label-list,
    .kg-project-shell .kg-tags-toolbar,
    .kg-project-shell .kg-issues-toolbar{
      border-radius: 6px !important;
      box-shadow: none !important;
    }

    .kg-project-shell .kg-readme-header{
      min-height: 48px;
      padding: .68rem .85rem;
      background: var(--kg-panel-bg-subtle) !important;
      border-bottom: 1px solid var(--kg-border) !important;
    }

    .kg-project-shell .kg-readme-body{
      padding: 1.15rem;
      background: var(--kg-panel-bg);
    }

    .kg-project-shell .kg-markdown-body{
      max-width: 100%;
      color: var(--bs-body-color);
    }

    .kg-project-shell .kg-markdown-body h1,
    .kg-project-shell .kg-markdown-body h2{
      padding-bottom: .32rem;
      border-bottom: 1px solid var(--kg-border-muted);
    }

    .kg-project-shell .kg-markdown-body h1{ font-size: 1.75rem; }
    .kg-project-shell .kg-markdown-body h2{ font-size: 1.38rem; margin-top: 1.6rem; }
    .kg-project-shell .kg-markdown-body h3{ font-size: 1.16rem; margin-top: 1.25rem; }

    .kg-project-shell .kg-markdown-body a{
      color: var(--bs-primary);
      text-decoration: none;
    }
    .kg-project-shell .kg-markdown-body a:hover{
      text-decoration: underline;
      text-underline-offset: 2px;
    }

    .kg-project-shell .kg-md-table-wrap{
      width: 100%;
      overflow-x: auto;
      margin: .85rem 0 1rem;
      border: 1px solid var(--kg-border);
      border-radius: 6px;
    }
    .kg-project-shell .kg-markdown-body table,
    .kg-project-shell .kg-md-table-wrap table{
      width: 100%;
      border-collapse: collapse;
      margin: 0;
      font-size: .92rem;
    }
    .kg-project-shell .kg-markdown-body th,
    .kg-project-shell .kg-markdown-body td,
    .kg-project-shell .kg-md-table-wrap th,
    .kg-project-shell .kg-md-table-wrap td{
      padding: .55rem .75rem;
      border: 1px solid var(--kg-border-muted);
      vertical-align: top;
    }
    .kg-project-shell .kg-markdown-body th,
    .kg-project-shell .kg-md-table-wrap th{
      background: var(--kg-panel-bg-subtle);
      font-weight: 700;
    }
    .kg-project-shell .kg-markdown-body tr:nth-child(2n) td,
    .kg-project-shell .kg-md-table-wrap tr:nth-child(2n) td{
      background: color-mix(in srgb, var(--kg-panel-bg-subtle) 72%, transparent);
    }

    .kg-project-shell .kg-md-editor{
      border-radius: 6px !important;
    }
    .kg-project-shell .kg-md-toolbar-wrap{
      background: var(--kg-panel-bg-subtle);
    }
    .kg-project-shell .kg-md-code-shell{
      border-radius: 6px;
      border-color: var(--kg-border) !important;
      background: var(--kg-panel-bg);
    }
    .kg-project-shell .kg-md-code-shell textarea{
      border-radius: 0;
      border-color: transparent !important;
    }
    .kg-project-shell .kg-md-line-gutter{
      background: var(--kg-panel-bg-subtle);
      border-right: 1px solid var(--kg-border-muted);
    }

    .kg-project-shell .kg-label-row{
      grid-template-columns: minmax(220px, 320px) minmax(0, 1fr) auto;
      padding: .78rem .9rem;
    }
    .kg-project-shell .kg-label-description{
      font-size: .88rem;
    }
    .kg-project-shell .kg-tags-toolbar,
    .kg-project-shell .kg-issues-toolbar{
      padding: .7rem;
      background: var(--kg-panel-bg-subtle) !important;
    }

    .kg-project-shell .kg-issues-page > .d-flex:first-child,
    .kg-project-shell .kg-tags-content > .d-flex:first-child{
      margin-bottom: .75rem !important;
    }
    .kg-project-shell .kg-issue-row{
      padding: .82rem .95rem;
    }
    .kg-project-shell .kg-issue-title{
      font-weight: 650;
    }
    .kg-project-shell .kg-issue-comments{
      align-self: flex-start;
    }
    .kg-project-shell .kg-timeline-thread::before{
      left: 1rem;
      background: var(--kg-border-muted);
    }
    .kg-project-shell .kg-issue-sidebar .card-header,
    .kg-project-shell .kg-thread-card .card-header{
      padding: .6rem .75rem;
    }

    .kg-project-shell .kg-analytics-header-actions{
      display: flex;
      align-items: center;
      justify-content: flex-end;
      gap: .5rem;
      flex-wrap: wrap;
    }
    .kg-project-shell .kg-map-control-card,
    .kg-project-shell .kg-graph-control-card,
    .kg-project-shell .kg-timeline-control-card{
      margin-top: .75rem;
      border: 1px solid var(--kg-border) !important;
      border-radius: 6px !important;
      background: var(--kg-panel-bg-subtle) !important;
      box-shadow: none !important;
      padding: .85rem;
    }
    .kg-project-shell .kg-map-shell,
    .kg-project-shell .kg-graph-shell,
    .kg-project-shell .kg-timeline-shell,
    .kg-project-shell .kg-analytics-side{
      border-radius: 6px !important;
      box-shadow: none !important;
    }
    .kg-project-shell .kg-map-canvas-head,
    .kg-project-shell .kg-graph-canvas-head{
      background: var(--kg-panel-bg-subtle);
      border-bottom: 1px solid var(--kg-border);
    }

    @media (max-width: 991.98px){
      .kg-project-shell .kg-label-row{
        grid-template-columns: 1fr;
      }
      .kg-project-shell .kg-analytics-header-actions{
        justify-content: flex-start;
        width: 100%;
      }
    }

    @media (max-width: 767.98px){
      .kg-project-shell .kg-readme-body{ padding: .85rem; }
      .kg-project-shell .kg-markdown-body h1{ font-size: 1.45rem; }
      .kg-project-shell .kg-markdown-body h2{ font-size: 1.22rem; }
      .kg-project-shell .kg-issue-row{
        display: grid;
        grid-template-columns: 1.25rem minmax(0, 1fr);
      }
      .kg-project-shell .kg-issues-toolbar .row > [class*="col-"]{
        flex: 0 0 100%;
        max-width: 100%;
      }
    }

/* CultGeo GitHub-like polish layer */
  .kg-schema-content .card,
  .kg-tags-content .card,
  .kg-issues-content .card,
  .kg-project-notes .card,
  .kg-source-content .card,
  .kg-entity-content .card,
  .kg-term-content .card{
    border-color:#d0d7de;
    border-radius:6px!important;
    box-shadow:none!important;
  }
  .kg-schema-content .card-header,
  .kg-tags-content .card-header,
  .kg-issues-content .card-header,
  .kg-project-notes .card-header,
  .kg-source-content .card-header,
  .kg-entity-content .card-header,
  .kg-term-content .card-header{
    background:#f6f8fa!important;
    border-bottom:1px solid #d0d7de;
    padding:.72rem .9rem;
  }
  .kg-schema-content .btn,
  .kg-tags-content .btn,
  .kg-issues-content .btn,
  .kg-project-notes .btn,
  .kg-source-content .btn,
  .kg-entity-content .btn,
  .kg-term-content .btn{ border-radius:6px; }
  .kg-schema-content .form-control,
  .kg-schema-content .form-select,
  .kg-tags-content .form-control,
  .kg-tags-content .form-select,
  .kg-issues-content .form-control,
  .kg-issues-content .form-select,
  .kg-source-content .form-control,
  .kg-source-content .form-select,
  .kg-entity-content .form-control,
  .kg-entity-content .form-select,
  .kg-term-content .form-control,
  .kg-term-content .form-select{
    border-radius:6px;
    border-color:#d0d7de;
  }
  .kg-schema-content .form-control:focus,
  .kg-schema-content .form-select:focus,
  .kg-tags-content .form-control:focus,
  .kg-tags-content .form-select:focus,
  .kg-issues-content .form-control:focus,
  .kg-issues-content .form-select:focus,
  .kg-source-content .form-control:focus,
  .kg-source-content .form-select:focus,
  .kg-entity-content .form-control:focus,
  .kg-entity-content .form-select:focus,
  .kg-term-content .form-control:focus,
  .kg-term-content .form-select:focus{
    border-color:#0969da;
    box-shadow:0 0 0 .2rem rgba(9,105,218,.14);
  }
  .kg-schema-content .breadcrumb,
  .kg-source-content .breadcrumb,
  .kg-term-content .breadcrumb{ margin-bottom:.65rem; }
  .kg-schema-content .list-group,
  .kg-term-content .list-group,
  .kg-tags-content .kg-label-list,
  .kg-issues-content .kg-issues-list{ border-radius:6px; overflow:hidden; border-color:#d0d7de; }
  .kg-schema-content .list-group-item,
  .kg-entity-content .list-group-item,
  .kg-source-content .list-group-item,
  .kg-term-content .list-group-item,
  .kg-issues-content .list-group-item{ border-color:#d0d7de; }
  .kg-schema-stat-card,
  .kg-source-stat,
  .kg-analytics-stat{
    border:1px solid #d0d7de!important;
    border-radius:6px!important;
    box-shadow:none!important;
    background:#fff!important;
  }
  .kg-schema-stat-number{ font-size:1.45rem!important; }
  .kg-schema-stat-card{ padding:.85rem 1rem; min-height:100%; }
  .kg-schema-stat-label{ color:#57606a; font-size:.78rem; text-transform:uppercase; font-weight:650; letter-spacing:.02em; }
  .kg-schema-stat-value{ color:#24292f; font-size:1.05rem; font-weight:700; margin-top:.25rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .kg-relation-passport-card .list-group{ border:1px solid #d0d7de; border-radius:6px; }
  .kg-frame-detail-tabs{
    border-bottom:1px solid #d0d7de;
    gap:0!important;
    margin-bottom:1rem!important;
  }
  .kg-frame-detail-tabs .nav-link{
    border:0!important;
    border-radius:0!important;
    color:#57606a;
    padding:.65rem .85rem;
    margin-bottom:-1px;
    background:transparent!important;
  }
  .kg-frame-detail-tabs .nav-link:hover{ color:#24292f; border-bottom:2px solid #d0d7de!important; }
  .kg-frame-detail-tabs .nav-link.active{
    color:#24292f!important;
    font-weight:600;
    border-bottom:2px solid #fd8c73!important;
  }
  .kg-schema-content .dropdown-menu{
    border-radius:6px;
    border-color:#d0d7de;
    box-shadow:0 8px 24px rgba(140,149,159,.2)!important;
  }
  .kg-json-preview,
  .kg-geo-preview,
  .kg-markdown-body pre{
    border-radius:6px!important;
    border:1px solid #d0d7de;
    background:#f6f8fa!important;
  }
  .kg-markdown-body{
    color:#24292f;
    line-height:1.6;
  }
  .kg-markdown-body table{
    display:block;
    width:max-content;
    max-width:100%;
    overflow:auto;
    border-spacing:0;
    border-collapse:collapse;
    margin:1rem 0;
  }
  .kg-markdown-body th,
  .kg-markdown-body td{
    padding:6px 13px;
    border:1px solid #d0d7de;
  }
  .kg-markdown-body tr:nth-child(2n){ background:#f6f8fa; }
  .kg-tag-widget-inline{
    border:1px solid #d0d7de;
    border-radius:6px;
    background:#f6f8fa;
    padding:.55rem .7rem;
  }
  .kg-tag-widget-inline .kg-assigned-tag{ max-width:100%; }
  .kg-tag-remove{
    border:0;background:transparent;color:#57606a;line-height:1;padding:0 .1rem;
  }
  .kg-tag-remove:hover{ color:#cf222e; }
  .kg-github-modal{ border-radius:6px; border-color:#d0d7de; }
  .kg-github-modal .modal-header,
  .kg-github-modal .modal-footer{ background:#f6f8fa; }
  .kg-label-list{ border:1px solid #d0d7de; border-radius:6px; background:#fff; overflow:hidden; }
  .kg-label-row{
    display:grid;
    grid-template-columns:minmax(220px,.8fr) minmax(0,1fr) auto;
    gap:1rem;
    align-items:center;
    padding:.8rem 1rem;
    border-bottom:1px solid #d0d7de;
  }
  .kg-label-row:last-child{ border-bottom:0; }
  .kg-label-row:hover{ background:#f6f8fa; }
  .kg-label-meta{ display:flex; flex-wrap:wrap; gap:.45rem; margin-top:.35rem; color:#57606a; font-size:.82rem; }
  .kg-label-description{ color:#57606a; font-size:.92rem; min-width:0; }
  .kg-label-count{ display:inline-flex; align-items:center; gap:.25rem; color:#57606a; font-size:.86rem; }
  .kg-issues-list{ border:1px solid #d0d7de!important; border-radius:6px!important; overflow:hidden; }
  .kg-issue-row{ border-left:0!important; border-right:0!important; padding:.85rem 1rem!important; }
  .kg-issue-row:first-child{ border-top:0!important; }
  .kg-issue-row:hover{ background:#f6f8fa!important; }
  .kg-issue-title{ color:#24292f; font-weight:600; }
  .kg-issue-title:hover{ color:#0969da; }
  .kg-issues-toolbar{ border:1px solid #d0d7de!important; border-radius:6px!important; background:#f6f8fa!important; padding:.75rem!important; }
  .kg-source-optional-section{
    border:1px solid #d0d7de;
    border-radius:6px;
    background:#f6f8fa;
    padding:.75rem .9rem;
  }
  .kg-source-optional-section[open]{ background:#fff; }
  .kg-source-optional-section summary{ cursor:pointer; list-style:none; }
  .kg-source-optional-section summary::-webkit-details-marker{ display:none; }
  .kg-source-optional-section summary:before{ content:'▸'; display:inline-block; margin-right:.4rem; color:#57606a; }
  .kg-source-optional-section[open] summary:before{ transform:rotate(90deg); }
  .kg-entity-title-row .kg-kbd{ background:transparent; border:0; padding:0; font-size:.86em; }
  .kg-entity-frame-badges .badge{ border-radius:999px; background:#f6f8fa!important; color:#24292f; }
  .kg-frame-property-block,
  .kg-property-card,
  .kg-relation-attr-card{
    border:1px solid #d0d7de!important;
    border-radius:6px!important;
    overflow:hidden;
    background:#fff;
  }
  .kg-frame-property-head,
  .kg-property-head{ background:#f6f8fa!important; border-bottom:1px solid #d0d7de!important; }
  .kg-relation-attr-card{ padding:1rem; }
  .kg-geo-preview-wrap{
    border:1px solid #d0d7de;
    border-radius:6px;
    background:#f6f8fa;
    padding:.45rem .6rem;
  }
  .kg-geo-preview-wrap summary{ cursor:pointer; }
  .kg-geo-preview-wrap pre{ max-height:220px; overflow:auto; }
  @media(max-width: 991.98px){
    .kg-label-row{ grid-template-columns:1fr; gap:.5rem; }
    .kg-label-row .kg-card-actions{ justify-content:flex-start; }
    .kg-issues-toolbar .row{ row-gap:.5rem; }
  }

/* MD note history */
.kg-note-history-list{display:grid;gap:1rem}
.kg-note-history-card{overflow:hidden}
.kg-note-history-meta-diff{display:grid;gap:.35rem;border:1px solid var(--bs-border-color);border-radius:.8rem;background:var(--bs-tertiary-bg);padding:.75rem .85rem;font-size:.92rem}
.kg-note-diff-wrap{overflow:auto;border:1px solid var(--bs-border-color);border-radius:.85rem;background:var(--bs-body-bg)}
.kg-note-diff-table{width:100%;border-collapse:collapse;min-width:860px;font-size:.82rem}
.kg-note-diff-table th{position:sticky;top:0;z-index:1;background:var(--bs-tertiary-bg);border-bottom:1px solid var(--bs-border-color);padding:.55rem .65rem;text-align:left;font-weight:700}
.kg-note-diff-table td{border-bottom:1px solid var(--bs-border-color);vertical-align:top;padding:0}
.kg-note-diff-table pre{margin:0;padding:.42rem .65rem;white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;font-size:.8rem;line-height:1.45;background:transparent;color:inherit}
.kg-note-diff-num{width:4.5rem;text-align:right!important;color:var(--bs-secondary-color);background:var(--bs-tertiary-bg);user-select:none;padding:.42rem .55rem!important;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;font-size:.78rem}
.kg-note-diff-table tr.is-insert td{background:rgba(var(--bs-success-rgb),.07)}
.kg-note-diff-table tr.is-delete td{background:rgba(var(--bs-danger-rgb),.07)}
.kg-note-diff-table tr.is-replace td{background:rgba(var(--bs-warning-rgb),.10)}
.kg-note-diff-table tr.is-equal td{background:var(--bs-body-bg)}
@media(max-width:767.98px){.kg-note-diff-table{min-width:720px}.kg-note-diff-num{width:3.4rem}}

/* Compact history views */
.kg-history-compact-table{font-size:.92rem}
.kg-history-compact-table th{white-space:nowrap}
.kg-history-compact-table td{vertical-align:middle;padding:.62rem .75rem}
.kg-history-field-list{display:flex;gap:.35rem;flex-wrap:wrap}
.kg-history-field-list-compact{max-width:28rem}
.kg-history-diff-modal .modal-body{background:var(--bs-tertiary-bg)}
.kg-history-json-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:start}
.kg-history-json-panel{background:var(--bs-body-bg);border:1px solid var(--bs-border-color);border-radius:.75rem;overflow:hidden;min-width:0}
.kg-history-json-title{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.65rem .8rem;border-bottom:1px solid var(--bs-border-color);font-weight:700;background:var(--bs-body-bg)}
.kg-history-json{max-height:62vh;overflow:auto;margin:0;padding:.85rem;font-size:.78rem;line-height:1.45;background:transparent;white-space:pre;color:inherit}
.kg-note-diff-wrap-flat{border:0;border-radius:0}
@media(max-width:991.98px){.kg-history-json-grid{grid-template-columns:1fr}.kg-history-json{max-height:48vh}.kg-history-compact-table{min-width:860px}}
