/* Kravspec — Paradigmebank (DocumentTemplate bank) surface.
   Depends on theme + base + components + kravbank (the bank layout, rail, rows, detail
   and wizard patterns are shared with the Kravbank). Only the Paradigmebank-specific
   patterns live here: tinted file type badges, bundle rows and their expanded members. */

/* ---------- file type badges ----------
   Official Microsoft Office / Adobe logos are trademarked, so files are shown as tinted
   extension badges in each product's recognizable colour instead. */
.ftype { flex: none; width: 38px; height: 38px; border-radius: var(--k-radius); display: inline-flex; align-items: center; justify-content: center;
    font-size: .6rem; font-weight: 700; letter-spacing: .02em; }
.ftype--word  { background: #e6f1fb; color: #185fa5; }
.ftype--excel { background: #e7f2e4; color: #217346; }
.ftype--ppt   { background: #fbeae4; color: #b7472a; }
.ftype--pdf   { background: #fcebeb; color: #b30b00; }
.ftype--other { background: var(--k-bg-alt); color: var(--k-muted); }
.ftype--bundle { background: var(--k-accent-tint); color: var(--k-accent-strong); font-size: 1rem; }
.ftype--sm { width: 24px; height: 24px; font-size: .5rem; border-radius: var(--k-radius-sm); }

/* ---------- list group labels ---------- */
.list-group-label { font-size: .64rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--k-muted); padding: .1rem .2rem .35rem; }

/* ---------- slim grouped list ----------
   The shared .bnk-* slim-list pattern lives in kravspec.kravbank.css; only the
   bundle-row adjustments for the slim rows are Paradigmebank-specific. */
.bnk .brow-chev { width: 22px; height: 22px; }
.bnk .brow-wrap { border-bottom: none; }
/* Expanded members read as an attached drawer under the bordered pakke row. */
.bnk .brow-items { padding-left: 2.6rem;
    border: 1px solid var(--k-line-soft); border-top: none;
    border-radius: 0 0 var(--k-radius) var(--k-radius);
    margin: -0.35rem 0 .3rem; }

/* ---------- bundle rows ---------- */
.brow-wrap { border-bottom: 1px solid var(--k-line-soft); }
.brow-wrap:last-child { border-bottom: none; }
.brow-wrap .row { border-bottom: none; }
.brow-chev { flex: none; align-self: center; width: 26px; height: 26px; display: inline-flex; align-items: center; justify-content: center;
    border-radius: var(--k-radius-sm); color: var(--k-muted); transition: transform var(--k-dur-fast) ease, background-color var(--k-dur-fast) ease; }
.brow-chev:hover { background: rgba(255, 255, 255, .7); color: var(--k-ink); }
.brow-chev.open { transform: rotate(180deg); }
.pakke-chip { display: inline-flex; align-items: center; gap: .3rem; font-size: .68rem; font-weight: 600; padding: .1rem .5rem;
    border-radius: var(--k-radius-pill); border: 1px solid var(--k-accent-border); color: var(--k-accent-strong); background: var(--k-accent-tint); white-space: nowrap; }

/* Expanded member list under a bundle row. */
.brow-items { padding: .15rem 1rem .75rem 3.05rem; display: flex; flex-direction: column; gap: .4rem; background: var(--k-bg-alt); border-top: 1px dashed var(--k-line-soft); }
.brow-item { display: flex; align-items: center; gap: .55rem; font-size: .82rem; color: var(--k-ink-soft); }
.brow-item:first-child { margin-top: .6rem; }
.brow-item-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.role-chip { flex: none; font-size: .62rem; font-weight: 600; color: var(--k-muted); border: 1px solid var(--k-line); border-radius: var(--k-radius-pill); padding: .05rem .45rem; white-space: nowrap; }
.role-chip--main { color: var(--k-petrol); background: var(--k-petrol-bg); border-color: var(--k-petrol-border); }

/* ---------- detail panel: file + krav links + historik ---------- */
.ftype--chip { width: auto; height: auto; padding: .15rem .5rem; font-size: .66rem; border-radius: var(--k-radius-pill); }
.file-box { display: flex; align-items: center; gap: .7rem; }
.file-box-body { flex: 1; min-width: 0; }
.file-box-name { font-size: .85rem; font-weight: 600; color: var(--k-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.file-box-meta { font-size: .76rem; color: var(--k-muted); margin-top: .1rem; }

.link-list { display: flex; flex-direction: column; }
.link-row { display: flex; align-items: center; gap: .6rem; padding: .55rem .2rem; border-bottom: 1px dashed var(--k-line); }
.link-row:last-child { border-bottom: none; }
.link-ic { flex: none; color: var(--k-muted); font-size: .95rem; }
.link-body { flex: 1; min-width: 0; }
.link-name { font-size: .84rem; font-weight: 600; color: var(--k-ink); line-height: 1.3; }
.link-type { font-size: .72rem; color: var(--k-muted); margin-top: .05rem; }
.impl-chip { flex: none; display: inline-flex; align-items: center; gap: .3rem; font-size: .66rem; font-weight: 600; padding: .1rem .5rem;
    border-radius: var(--k-radius-pill); border: 1px solid var(--k-line); color: var(--k-muted); background: var(--k-fill); white-space: nowrap; }
.impl-chip--done { color: #2b6e3f; background: #e7f2e4; border-color: #c4dfc0; }
.impl-chip--blocked { color: var(--k-warning); background: var(--k-warning-bg); border-color: var(--k-warning-border); }

/* ---------- wizard: krav link picker ---------- */
.kravpick { max-height: 320px; overflow-y: auto; }
.kravpick-row { display: flex; align-items: center; gap: .6rem; padding: .3rem .2rem; border-bottom: 1px dashed var(--k-line-soft); }
.kravpick-row:last-child { border-bottom: none; }
.kravpick-row.sub { padding-left: 1.6rem; }
.kravpick-row.leaf { padding-left: 3.1rem; }
.kravpick-row .nm { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .84rem; color: var(--k-ink-soft); }
.kravpick-row .nm .bi { color: var(--k-muted); margin-right: .25rem; }
.kravpick-toggle { flex: 1; min-width: 0; display: flex; align-items: center; gap: .45rem; border: none; background: transparent; text-align: left;
    font-size: .875rem; font-weight: 600; color: var(--k-ink); padding: .3rem .2rem; cursor: pointer; border-radius: var(--k-radius-sm); }
.kravpick-toggle:hover { background: var(--k-bg); }
.kravpick-toggle .chev { flex: none; color: var(--k-faint); transition: transform var(--k-dur-fast) ease; }
.kravpick-toggle .chev.open { transform: rotate(90deg); }
.kravpick-toggle .nm { font-weight: 600; color: var(--k-ink); }
.kravpick-toggle .ct { flex: none; font-size: .74rem; color: var(--k-muted); font-variant-numeric: tabular-nums; }
.picked-links { display: flex; flex-wrap: wrap; margin-bottom: .2rem; }
.chip-x { border: none; background: transparent; color: var(--k-muted); padding: 0 0 0 .1rem; margin-left: .1rem; cursor: pointer; display: inline-flex; align-items: center; }
.chip-x:hover { color: var(--k-danger); }

/* ---------- pakke editor: member rows ---------- */
.bitem-move { display: flex; flex-direction: column; flex: none; }
.bitem-move .iconbtn { width: 20px; height: 16px; font-size: .7rem; display: inline-flex; align-items: center; justify-content: center; }
.bitem-link { text-decoration: none; color: var(--k-ink); }
.bitem-link:hover { color: var(--k-accent); text-decoration: underline; }

/* ---------- edit page: coverage matrix ---------- */
.cov-scroll { overflow-x: auto; }
.cov-table { width: 100%; border-collapse: collapse; font-size: .84rem; }
.cov-table thead th { text-align: left; font-size: .68rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--k-muted);
    padding: .45rem .55rem; border-bottom: 1px solid var(--k-line); white-space: nowrap; }
.cov-group td { padding: .7rem .55rem .3rem; font-size: .64rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--k-muted); }
.cov-row td { padding: .5rem .55rem; border-bottom: 1px dashed var(--k-line-soft); vertical-align: middle; }
.cov-row { cursor: pointer; transition: background-color var(--k-dur-fast) ease; }
.cov-row:hover { background: var(--k-accent-tint); }
.cov-row:hover .cov-td-name { color: var(--k-accent); }
.cov-row--implemented .cov-td-name { color: var(--k-muted); }
.cov-td-name { font-weight: 600; color: var(--k-ink); line-height: 1.35; }
.cov-td-src { color: var(--k-muted); font-size: .76rem; white-space: nowrap; }
.cov-th-toggle, .cov-td-toggle { width: 34px; }
.cov-th-status, .cov-td-status { width: 1%; white-space: nowrap; }
.cov-th-act, .cov-td-act { width: 34px; text-align: right; }

.his-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; }
.his-row { display: flex; align-items: flex-start; gap: .6rem; padding: .5rem .2rem; border-bottom: 1px dashed var(--k-line); }
.his-row:last-child { border-bottom: none; }
.his-row .ver-dot { margin-top: .35rem; }
.his-body { flex: 1; min-width: 0; }
.his-what { font-size: .82rem; color: var(--k-ink-soft); line-height: 1.35; }
.his-meta { font-size: .72rem; color: var(--k-muted); margin-top: .1rem; }
