/* Shared online/offline library. All colors come from the approved CI aliases. */
html dialog.planiq-library-dialog { width:min(1440px,calc(100vw - 32px)); padding:0; color:var(--fliq8-text); background:var(--fliq8-surface); }
.planiq-library-dialog :is(.session-library-shell,.library-shell) { padding:24px; display:grid; grid-template-columns:minmax(0,1fr); gap:20px; box-shadow:none; }
.planiq-library-dialog .dialog-heading > div { min-width:0; }
.planiq-library-dialog .dialog-heading { margin:0; align-items:start; }
.planiq-library-dialog .dialog-heading h2 { font-size:28px; line-height:1.2; margin:0; overflow-wrap:anywhere; }
.planiq-library-dialog :is(.library-intro,.supporting) { margin:0; }
.planiq-library-dialog :is(.library-filters,.session-library-filters) { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr) auto; gap:12px; padding:0; background:none; border:0; align-items:end; }
.planiq-library-dialog :is(.library-filters,.session-library-filters) label { min-width:0; font-size:14px; }
.planiq-library-dialog :is(.archive-filter,.check-field) { min-height:56px; align-items:center; grid-column:auto; }
.planiq-library-dialog :is(.library-footer,.session-library-shell > .dialog-actions) { display:none; }
.planiq-library-dialog .planiq-library-view { display:grid; grid-template-columns:minmax(240px, .38fr) minmax(0, .62fr); gap:0; margin:0; min-width:0; border:1px solid var(--fliq8-divider); border-radius:8px; background:var(--fliq8-surface); }
.pl-library-items,.pl-library-detail { padding:24px; min-width:0; max-height: min(600px,58dvh); overflow:auto; scrollbar-gutter:stable; }
.pl-library-items { border-right:1px solid var(--fliq8-divider); }
.pl-library-count { margin:0 0 16px; font-weight:700; }
.pl-library-choices { display:grid; gap:8px; }
html .pl-library-choice { display:grid; gap:8px; width:100%; padding:16px; border:1px solid var(--fliq8-control); border-left:4px solid var(--fliq8-control); border-radius:8px; background:var(--fliq8-surface); color:var(--fliq8-text); text-align:left; box-shadow:none; white-space:normal; }
html .pl-library-choice[aria-pressed=true] { border-left-color:var(--fliq-training-type-accent,var(--fliq8-focus)); background:var(--fliq8-selected); }
html .pl-library-choice:hover { background:var(--fliq8-muted); color:var(--fliq8-text); }
.pl-library-choice strong { font-size:16px; line-height:1.5; }
.pl-library-meta { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:8px 0 0; color:var(--fliq8-secondary); font-size:14px; font-weight:400; font-variant-numeric:tabular-nums; }
.pl-library-heading { display:flex; justify-content:space-between; align-items:start; gap:16px; }
.pl-library-heading h3 { margin:0; font-size:24px; line-height:1.25; }
.pl-library-status { font-size:12px; line-height:1.5; color:var(--fliq8-secondary); font-weight:600; }
.pl-library-description { white-space:pre-wrap; }
.pl-library-tags { display:flex; flex-wrap:wrap; gap:4px; margin-top:12px; }
.pl-library-tags span { padding:4px 8px; border:1px solid var(--fliq8-divider); border-radius:6px; font-size:12px; }
.pl-library-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:start; margin:20px 0; }
.pl-library-more { position:relative; min-width:0; }
.pl-library-more > summary { display:flex; align-items:center; gap:12px; min-height:44px; padding:8px 16px; border:1px solid var(--fliq8-control); border-radius:6px; cursor:pointer; font-weight:600; list-style:none; }
.pl-library-more > summary::-webkit-details-marker { display:none; }
.pl-library-menu { position:absolute; top:calc(100% + 4px); right:0; z-index:3; display:grid; gap:4px; width:max-content; max-width:min(280px,70vw); padding:8px; background:var(--fliq8-raised); border:1px solid var(--fliq8-control); border-radius:8px; box-shadow:var(--fliq-ui-float); }
html .pl-library-menu .button { width:100%; text-align:left; justify-content:flex-start; box-shadow:none; }
html .pl-library-menu .danger { margin-top:8px; color:var(--fliq8-danger); border-color:var(--fliq8-danger); }
.pl-library-phases { display:grid; grid-template-columns:minmax(0,1fr); gap:12px; }
.pl-library-phase { min-width:0; border:1px solid var(--fliq8-divider); border-radius:8px; }
.pl-library-phase > summary { padding:16px; min-height:56px; cursor:pointer; font-weight:700; }
.pl-library-phase-preview { display:block; margin:8px 0 0 16px; color:var(--fliq8-secondary); font-size:14px; line-height:1.5; font-weight:400; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pl-library-phase[open] .pl-library-phase-preview { display:none; }
.pl-library-exercises { padding:0 16px 16px; }
.pl-library-exercises p { margin:0; padding:12px 0; white-space:pre-wrap; font-size:16px; line-height:1.6; }
.pl-library-exercises p + p { border-top:1px solid var(--fliq8-divider); }
.pl-library-footer { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 24px; border-top:1px solid var(--fliq8-divider); background:var(--fliq8-surface); position:sticky; bottom:0; z-index:2; }
.pl-library-footer p { margin:0; font-size:14px; }
.pl-library-footer .button { flex-shrink:0; max-width:100%; }
.planiq-library-view :is(p,strong,h3,span,button,summary) { overflow-wrap:anywhere; }
.pl-library-empty { grid-column:1/-1; padding:32px; margin:0; color:var(--fliq8-secondary); }
html .pl-library-back { display:none; }
@media(max-width:1100px) { .planiq-library-dialog :is(.library-filters,.session-library-filters) { grid-template-columns:1fr 1fr; } .pl-library-items,.pl-library-detail { padding:16px; } }
@media(max-width:767px) {
  html dialog.planiq-library-dialog { width:calc(100vw - 16px); }
  .planiq-library-dialog :is(.session-library-shell,.library-shell) { padding:16px; gap:16px; }
  .planiq-library-dialog .dialog-heading { gap:12px; }
  .planiq-library-dialog .dialog-heading h2 { font-size:24px; hyphens:auto; }
  .planiq-library-dialog:has(.is-detail) :is(.library-filters,.session-library-filters,.library-intro,.session-library-shell > .supporting) { display:none; }
  .planiq-library-dialog :is(.library-filters,.session-library-filters) { grid-template-columns:1fr; }
  .planiq-library-dialog .planiq-library-view { grid-template-columns:minmax(0,1fr); }
  .pl-library-items,.pl-library-detail { max-height:none; overflow:visible; padding:16px; border:0; }
  .planiq-library-view:not(.is-detail) :is(.pl-library-detail,.pl-library-footer),.planiq-library-view.is-detail .pl-library-items { display:none; }
  html .pl-library-back { display:block; margin-bottom:16px; }
  .pl-library-footer { flex-direction:column; align-items:stretch; padding:16px; padding-bottom:max(16px,env(safe-area-inset-bottom)); }
  .pl-library-footer .button { width:100%; }
  .pl-library-heading { flex-wrap:wrap; }
  .pl-library-menu { position:static; margin-top:4px; max-width:100%; width:100%; }
}
