/* ============================================================
   LIBRARY  —  Library ▸ Test Steps / Data / Components / Files
   ============================================================ */
.lib-header{display:flex;flex-direction:column;gap:4px;margin-bottom:var(--space-5)}
.lib-title{font-size:var(--text-3xl);font-weight:var(--weight-bold);color:var(--text-primary);letter-spacing:-.02em;line-height:1.2}
.lib-subtitle{font-size:var(--text-base);font-weight:var(--weight-regular);color:var(--text-secondary);line-height:1.4}

/* ── TABBAR ROW (tabs left + search/filter/new right) ────────── */
.lib-tabbar{display:flex;align-items:stretch;justify-content:space-between;border-bottom:1px solid var(--border);margin-bottom:var(--space-6);gap:var(--space-4)}
.lib-tabbar--pos{position:relative}
.lib-tabbar--search-only{border-bottom:none;margin-bottom:var(--space-4)}
.lib-tabbar__actions{display:flex;align-items:center;gap:var(--space-3);padding-bottom:var(--space-3)}
.lib-tabbar__btns{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}

/* ── TABS (inside tabbar) ─────────────────────────────────────── */
.lib-tabs{display:flex;align-items:center;gap:var(--space-5)}
.lib-tab{padding:0 0 var(--space-3);font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--text-secondary);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color var(--duration-fast) var(--ease)}
.lib-tab:hover{color:var(--text-primary)}
.lib-tab--active{color:var(--brand);border-bottom-color:var(--brand);font-weight:var(--weight-semibold)}

/* ── SECTION CARD ────────────────────────────────────────────── */
.lib-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);margin-bottom:var(--space-5);overflow:hidden}
.lib-section__head{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border)}
.lib-section__actions{display:flex;align-items:center;gap:var(--space-2)}
.lib-section__btn{display:inline-flex;align-items:center;gap:var(--space-1);height:32px;padding:0 var(--space-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-secondary);cursor:pointer;font-family:inherit;transition:background var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease)}
.lib-section__btn:hover{background:var(--surface-2);color:var(--text-primary)}
.lib-sectionlabel--inline{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}

/* override old lib-table border since it's now inside lib-section */
.lib-section .lib-table{border:none;border-radius:0;box-shadow:none}
.lib-section .lib-folders{padding:var(--space-5)}
.lib-section .lib-folders-info{padding:0 var(--space-5) var(--space-4);font-size:var(--text-sm);color:var(--text-secondary)}

.lib-toolbar{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-6)}
.lib-search{position:relative;width:260px;flex-shrink:0}
.lib-tabbar__actions .lib-search{width:260px}
.lib-search__icon{position:absolute;left:var(--space-3);top:50%;transform:translateY(-50%);display:flex;color:var(--text-muted);pointer-events:none}
.lib-search__icon svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.lib-search__input{width:100%;height:40px;padding:0 var(--space-3) 0 var(--space-8);background:var(--surface);border:1px solid var(--border);border-radius:8px;
  font-size:var(--text-base);color:var(--text-primary);transition:border-color var(--duration-fast) var(--ease),box-shadow var(--duration-fast) var(--ease)}
.lib-search__input::placeholder{color:var(--text-muted)}
.lib-search__input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-muted)}
.lib-filterbtn{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:8px;
  font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--text-secondary);cursor:pointer;white-space:nowrap;flex-shrink:0;
  transition:background var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease)}
.lib-filterbtn:hover{background:var(--surface-2);border-color:var(--border-hi)}
.lib-filterbtn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.lib-newbtn{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 var(--space-4);background:var(--brand);color:var(--text-inverse);border-radius:8px;
  font-size:var(--text-base);font-weight:var(--weight-semibold);white-space:nowrap;flex-shrink:0;cursor:pointer;transition:background var(--duration-fast) var(--ease)}
.lib-newbtn:hover{background:var(--brand-alt)}
.lib-newbtn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

.lib-sectionlabel{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-3)}

.lib-folders{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4);margin-bottom:var(--space-3)}
.lib-folder{display:flex;flex-direction:column;gap:var(--space-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);
  padding:var(--space-4);cursor:pointer;transition:box-shadow var(--duration-base) var(--ease),transform var(--duration-base) var(--ease)}
.lib-folder:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}
.lib-folder__top{display:flex;align-items:flex-start;gap:var(--space-3)}
.lib-folder__icon{width:40px;height:40px;min-width:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.lib-folder__icon svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.lib-folder__icon--blue{background:var(--info-bg);color:var(--info)}
.lib-folder__icon--green{background:var(--success-bg);color:var(--success)}
.lib-folder__icon--orange{background:var(--warning-bg);color:var(--warning)}
.lib-folder__icon--purple{background:var(--purple-bg);color:var(--purple)}
.lib-folder__icon--gray{background:var(--surface-2);color:var(--text-secondary)}
.lib-folder__info{flex:1;min-width:0}
.lib-folder__name{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--text-primary);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lib-folder__desc{font-size:var(--text-xs);color:var(--text-muted);line-height:1.3;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lib-folder__more{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;flex-shrink:0;transition:background var(--duration-fast) var(--ease)}
.lib-folder__more:hover{background:var(--surface-2);color:var(--text-primary)}
.lib-folder__more svg{width:16px;height:16px;fill:currentColor;stroke:none}
.lib-folder__count{display:inline-flex;align-self:flex-start;align-items:center;height:22px;padding:0 var(--space-2);border-radius:var(--radius-full);
  background:var(--surface-2);color:var(--text-secondary);font-size:var(--text-xs);font-weight:var(--weight-semibold);white-space:nowrap}
.lib-folders-info{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-6)}

.lib-table{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);overflow:hidden}
.lib-thead,.lib-row{display:grid;grid-template-columns:minmax(0,1.6fr) .8fr 1.1fr .9fr .8fr .9fr .9fr 130px;align-items:center;gap:var(--space-3);padding:0 var(--space-5)}
/* Test Data tab adds a Source File column — one extra track, other columns
   trimmed slightly so the row still fits without crowding Actions. */
.lib-thead--src,.lib-row--src{grid-template-columns:minmax(0,1.4fr) .7fr 1fr .8fr .7fr 1fr .8fr .8fr 120px}
.lib-sourcecell{font-family:var(--font-mono);font-size:var(--text-sm)}
.lib-thead{height:44px;border-bottom:1px solid var(--border);background:var(--surface-2)}
.lib-th{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
.lib-th--right,.lib-cell--right{justify-self:end;text-align:right}
.lib-row{min-height:56px;border-bottom:1px solid var(--border);cursor:pointer;transition:background var(--duration-fast) var(--ease)}
.lib-row:last-child{border-bottom:none}
.lib-row:hover{background:var(--surface-2)}
.lib-cell{min-width:0;font-size:var(--text-base);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lib-name{display:flex;align-items:center;gap:var(--space-2);min-width:0}
.lib-name__icon{width:28px;height:28px;min-width:28px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.lib-name__icon svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.lib-name__icon--step{background:var(--info-bg);color:var(--info)}
.lib-name__icon--data{background:var(--purple-bg);color:var(--purple)}
.lib-name__icon--component{background:var(--success-bg);color:var(--success)}
.lib-name__icon--file{background:var(--warning-bg);color:var(--warning)}
.lib-name__text{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lib-badge{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-semibold);white-space:nowrap}
.lib-badge::before{content:'';width:6px;height:6px;border-radius:var(--radius-full);background:currentColor;display:block}
.lib-badge--step{background:var(--info-bg);color:var(--info)}
.lib-badge--data{background:var(--purple-bg);color:var(--purple)}
.lib-badge--component{background:var(--success-bg);color:var(--success)}
.lib-badge--file{background:var(--warning-bg);color:var(--warning)}
.lib-tagcell{display:flex;flex-wrap:nowrap;align-items:center;gap:6px;overflow:hidden;white-space:nowrap}
.lib-tabletag{display:inline-flex;align-items:center;flex-shrink:0;height:20px;padding:0 var(--space-2);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:90px}
.lib-foldercell{display:flex;align-items:center;gap:6px;color:var(--text-secondary);min-width:0}
.lib-foldercell svg{width:14px;height:14px;stroke:var(--text-muted);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.lib-updatedby{display:flex;align-items:center;gap:6px;min-width:0}
.lib-updatedby__avatar{width:24px;height:24px;min-width:24px;border-radius:var(--radius-full);background:var(--avatar-bg);color:var(--text-inverse);
  display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:var(--weight-bold);text-transform:uppercase}
.lib-rowactions{display:flex;align-items:center;gap:2px;justify-self:end}
.lib-iconbtn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:background var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease)}
.lib-iconbtn:hover{background:var(--surface-3);color:var(--text-primary)}
.lib-iconbtn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.lib-iconbtn--more svg{fill:currentColor;stroke:none}

.lib-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-5)}
.lib-footer__info{font-size:var(--text-sm);color:var(--text-secondary)}
.lib-pages{display:flex;align-items:center;gap:var(--space-2)}
.lib-pagebtn{min-width:32px;height:32px;padding:0 var(--space-2);display:inline-flex;align-items:center;justify-content:center;background:var(--surface);
  border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-secondary);cursor:pointer;
  transition:background var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease)}
.lib-pagebtn:hover:not(:disabled){background:var(--surface-2);border-color:var(--border-hi);color:var(--text-primary)}
.lib-pagebtn--active{background:var(--brand);border-color:var(--brand);color:var(--text-inverse)}
.lib-pagebtn:disabled{opacity:.45;cursor:not-allowed}
.lib-pagebtn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.lib-pages__dots{padding:0 4px;color:var(--text-muted);font-size:var(--text-sm)}

@media(max-width:1200px){.lib-folders{grid-template-columns:repeat(2,1fr)}.lib-thead{display:none}
  .lib-row{grid-template-columns:1fr 1fr;row-gap:var(--space-2);padding:var(--space-3) var(--space-4)}}
@media(max-width:768px){.lib-folders{grid-template-columns:1fr}}

/* ── EMPTY STATE ─────────────────────────────────────────────── */
.lib-empty{padding:var(--space-8) var(--space-4);text-align:center;color:var(--text-secondary);font-size:var(--text-base)}

/* ── BREADCRUMB ──────────────────────────────────────────────── */
.lib-bc{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-5);font-size:var(--text-sm)}
.lib-bc__part{background:none;border:none;padding:0;cursor:pointer;color:var(--text-secondary);font-size:var(--text-sm);font-family:inherit;transition:color var(--duration-fast) var(--ease)}
.lib-bc__part:hover{color:var(--brand)}
.lib-bc__sep{color:var(--text-muted)}
.lib-bc__cur{color:var(--text-primary);font-weight:var(--weight-medium)}

/* ── FOLDER DETAIL TOP ───────────────────────────────────────── */
.lib-detail-top{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-2)}
.lib-folder__icon--lg{width:52px!important;height:52px!important;min-width:52px!important;border-radius:var(--radius-lg)!important}
.lib-folder__icon--lg svg{width:28px!important;height:28px!important}

/* ── DRAWER ──────────────────────────────────────────────────── */
.lib-drawer-overlay{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:200;cursor:pointer}
.lib-drawer{position:fixed;top:0;right:0;height:100%;width:520px;max-width:100%;background:var(--surface);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);z-index:201;display:flex;flex-direction:column;overflow:hidden}
.lib-drawer__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border);flex-shrink:0}
.lib-drawer__title{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text-primary)}
.lib-drawer__body{flex:1;overflow-y:auto;padding:var(--space-6)}
.lib-drawer__metaval{font-size:var(--text-sm);color:var(--text-secondary)}
.lib-drawer__section-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-2);margin-top:var(--space-5)}
.lib-drawer__desc{font-size:var(--text-base);color:var(--text-secondary);line-height:var(--leading-normal)}
.lib-drawer__commands{display:flex;flex-direction:column;gap:var(--space-2)}
.lib-drawer__cmd{display:flex;align-items:flex-start;gap:var(--space-3);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4)}
.lib-drawer__cmd-num{min-width:22px;height:22px;border-radius:var(--radius-full);background:var(--brand);color:var(--text-inverse);font-size:var(--text-xs);font-weight:var(--weight-bold);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}
.lib-drawer__cmd-content{flex:1;min-width:0}
.lib-drawer__cmd-name{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary)}
.lib-drawer__cmd-arg{font-size:var(--text-xs);color:var(--text-secondary);font-family:var(--font-mono);margin-top:2px;word-break:break-all}
.lib-drawer__footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--border);flex-shrink:0}
.lib-drawer__btn{display:inline-flex;align-items:center;justify-content:center;height:36px;padding:0 var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;border:none;transition:background var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease)}
.lib-drawer__btn--primary{background:var(--brand);color:var(--text-inverse)}
.lib-drawer__btn--primary:hover{opacity:.9}
.lib-drawer__btn--ghost{background:var(--surface-2);color:var(--text-secondary);border:1px solid var(--border)}
.lib-drawer__btn--ghost:hover{background:var(--surface-3,var(--surface-2));color:var(--text-primary)}

/* ── MODAL ───────────────────────────────────────────────────── */
.lib-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:300;cursor:pointer}
.lib-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:480px;max-width:calc(100vw - 2rem);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);z-index:301;overflow:hidden}
.lib-modal__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border)}
.lib-modal__title{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text-primary)}
.lib-modal__body{padding:var(--space-6)}
.lib-modal__label{display:block;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-secondary);margin-bottom:var(--space-2)}
.lib-modal__input,.lib-modal__select,.lib-modal__textarea{width:100%;background:var(--surface-2,var(--surface));border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-base);color:var(--text-primary);font-family:inherit;transition:border-color var(--duration-fast) var(--ease),box-shadow var(--duration-fast) var(--ease);box-sizing:border-box}
.lib-modal__input,.lib-modal__select{height:40px;padding:0 var(--space-3)}
.lib-modal__textarea{height:80px;padding:var(--space-3);resize:vertical}
.lib-modal__input:focus,.lib-modal__select:focus,.lib-modal__textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-muted,rgba(255,138,0,.12))}
.lib-modal__err{font-size:var(--text-sm);color:var(--error);margin-top:var(--space-2);display:none}
.lib-modal__footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--border)}

/* ── FILTER POPOVER ──────────────────────────────────────────── */
.lib-filter-pop{position:absolute;top:calc(100% + 4px);right:70px;width:240px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);z-index:100;padding:var(--space-4)}
.lib-filter-pop__title{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary);margin-bottom:var(--space-3)}
.lib-filter-pop__group{margin-bottom:var(--space-4)}
.lib-filter-pop__label{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-2)}
.lib-filter-pop__row{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-secondary);padding:var(--space-1) 0;cursor:pointer}
.lib-filter-pop__row input{accent-color:var(--brand);cursor:pointer}
.lib-filter-pop__footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--border)}
.lib-filter-pop__btn{display:inline-flex;align-items:center;height:28px;padding:0 var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--weight-semibold);cursor:pointer;border:none}
.lib-filter-pop__btn--primary{background:var(--brand);color:var(--text-inverse)}
.lib-filter-pop__btn--ghost{background:var(--surface-2,var(--surface));color:var(--text-secondary);border:1px solid var(--border)}

/* ── TAB BUTTON RESET ────────────────────────────────────────── */
.lib-tab{background:none;border:none;border-bottom:2px solid transparent;outline:none;font-family:inherit;cursor:pointer}

/* ── LIB PAGE WRAPPER ────────────────────────────────────────── */
.lib-page{position:relative}

@media(max-width:640px){.lib-drawer{width:100%}}

/* ── TOAST ───────────────────────────────────────────────────── */
.lib-toast{position:fixed;bottom:var(--space-6);left:50%;transform:translateX(-50%) translateY(12px);background:var(--navy,#081B5A);color:#fff;font-size:var(--text-sm);font-weight:var(--weight-medium);padding:var(--space-3) var(--space-5);border-radius:var(--radius-full);box-shadow:var(--shadow-md);opacity:0;transition:opacity var(--duration-base) var(--ease),transform var(--duration-base) var(--ease);pointer-events:none;white-space:nowrap;z-index:9999}
.lib-toast--show{opacity:1;transform:translateX(-50%) translateY(0)}
.lib-toast--success{background:var(--success,#00e676);color:#003300}
.lib-toast--error{background:var(--error,#ff3d6b);color:#fff}

/* ── TOOLBAR POSITION ────────────────────────────────────────── */
.lib-toolbar--pos{position:relative}

/* ── FOLDER DETAIL HEADER ────────────────────────────────────── */
.lib-detail-header{margin-bottom:var(--space-5)}
.lib-detail-info{flex:1}
.lib-detail-meta{display:flex;align-items:center;gap:var(--space-4);margin-top:var(--space-2);margin-bottom:var(--space-4)}
.lib-detail-stat{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-sm);color:var(--text-secondary)}
.lib-detail-stat svg{width:13px;height:13px;flex-shrink:0}
.lib-detail-actions{display:flex;align-items:center;gap:var(--space-3)}
.lib-back-btn{display:inline-flex;align-items:center;gap:var(--space-2);height:36px;padding:0 var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-secondary);cursor:pointer;font-family:inherit;transition:background var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease)}
.lib-back-btn:hover{background:var(--surface-2);color:var(--text-primary)}
.lib-back-btn svg{width:15px;height:15px;flex-shrink:0}

/* ── DRAWER META TABLE ───────────────────────────────────────── */
.lib-drawer__meta{display:flex;flex-direction:column;margin-bottom:var(--space-5);background:var(--surface-2,var(--surface));border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}
.lib-drawer__meta-row{display:flex;align-items:center;gap:var(--space-4);width:100%;padding:var(--space-3) var(--space-4);text-align:left}
.lib-drawer__meta-row+.lib-drawer__meta-row{border-top:1px solid var(--border)}
.lib-drawer__meta-key{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;width:104px;flex-shrink:0;text-align:left}
.lib-drawer__meta-val{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-primary);text-align:left;flex:1;min-width:0;word-break:break-word}

/* ── DRAWER PREVIEW CONTENT ──────────────────────────────────── */
.lib-drawer__preview-name{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text-primary);margin-bottom:var(--space-2)}
.lib-drawer__steps{margin:0;padding-left:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2)}
.lib-drawer__steps li{font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--leading-normal)}
.lib-drawer__tags{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-1)}
.lib-drawer__tag{display:inline-flex;align-items:center;height:22px;padding:0 var(--space-3);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-secondary)}

/* ── DRAWER SECONDARY BUTTON ─────────────────────────────────── */
.lib-drawer__btn--secondary{background:var(--surface-2);color:var(--text-primary);border:1px solid var(--border)}
.lib-drawer__btn--secondary:hover{background:var(--surface-3,var(--surface-2))}

/* ── MODAL BODY SCROLL ───────────────────────────────────────── */
.lib-modal__body{padding:var(--space-6);max-height:70vh;overflow-y:auto}
.lib-modal__textarea--tall{height:120px}

/* ── NEW ITEM FILE ZONE ──────────────────────────────────────── */
.lib-modal__file-zone{margin-top:var(--space-4);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);height:100px;border:2px dashed var(--border);border-radius:var(--radius-md);color:var(--text-muted);font-size:var(--text-sm);cursor:pointer;transition:border-color var(--duration-fast) var(--ease)}
.lib-modal__file-zone:hover{border-color:var(--brand);color:var(--brand)}

/* ── ACTIVE FILTER BUTTON ────────────────────────────────────── */
.lib-filterbtn--active{border-color:var(--brand);color:var(--brand);background:var(--brand-muted,rgba(0,212,184,0.10))}

/* ── FOLDER ⋯ MENU (body-level popup) ────────────────────────── */
.lib-foldermenu{position:fixed;min-width:150px;background:var(--surface-0,var(--surface));border:1px solid var(--border);
  border-radius:var(--radius-md,10px);box-shadow:var(--shadow-lg,0 8px 32px rgba(0,0,0,.6));padding:4px;z-index:1300}
.lib-foldermenu__item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:none;background:none;cursor:pointer;
  font-size:var(--text-sm);color:var(--text-primary);border-radius:6px;text-align:left}
.lib-foldermenu__item svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.lib-foldermenu__item:hover{background:var(--surface-2)}
.lib-foldermenu__item--danger{color:var(--error)}
.lib-foldermenu__item--danger:hover{background:var(--error-bg,rgba(255,61,107,.12))}
