/* Faro Library. HQ tokens (tokens.css). */
.lib{display:grid;gap:var(--space-3,16px)}
.lib-bar{display:grid;grid-template-columns:minmax(160px,240px) minmax(0,1fr) 160px;gap:8px}
.lib-bar select,.lib-bar input{min-height:44px;width:100%}
.lib-main{display:grid;grid-template-columns:minmax(260px,360px) minmax(0,1fr);gap:var(--space-3,16px);align-items:start}
.lib-list,.lib-view{padding:var(--space-3,16px);border-radius:var(--radius-panel,16px)}
.lib-list{max-height:calc(100vh - 230px);overflow:auto}
.lib-items{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px}
.lib-item{display:grid;gap:3px;width:100%;text-align:left;padding:10px 12px;border:1px solid transparent;border-radius:var(--radius-control,9px);background:transparent;color:inherit;font:inherit;cursor:pointer;transition:background var(--dur-fast,180ms) var(--ease,ease)}
.lib-item:hover{background:var(--hover)}
.lib-item.on{background:var(--tint);border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}
.lib-item b{overflow-wrap:anywhere;font-weight:600}
.lib-kind{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.lib-view{min-height:420px;display:grid;gap:var(--space-3,16px);align-content:start}
.lib-head{display:flex;gap:12px;justify-content:space-between;align-items:flex-start}
.lib-head h2{font-size:var(--text-title,19px);margin:2px 0;overflow-wrap:anywhere}
.lib-preview{border:1px solid var(--line);border-radius:var(--radius-coverage,12px);overflow:hidden;background:var(--paper-doc,#fffdf8)}
.lib-frame{display:block;width:100%;height:min(70vh,760px);border:0;background:#fff}
.lib-img{display:block;max-width:100%;height:auto;margin:0 auto}
.lib-nopreview{padding:24px;display:grid;gap:12px;justify-items:start;color:var(--ink-doc,#19333d)}
.lib-empty{padding:40px 8px;text-align:center}
.lib-versions ul,.lib-sent ul{margin:8px 0 0;padding-left:18px}
.lib-actions{display:grid;gap:var(--space-3,16px)}
.lib-move label{margin:0 0 6px}
.lib-move>div{display:flex;gap:8px}.lib-move select{min-height:44px;flex:1}
.lib-send h3{margin:0 0 8px;font-size:15px}
.lib-target{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
.lib-target .button{min-height:40px}
.lib-dialog{max-width:560px;width:calc(100% - 32px);padding:var(--space-5,24px)}
.lib-dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:12px 0}
.lib-dl dt{color:var(--muted);font-size:12px}.lib-dl dd{margin:0;overflow-wrap:anywhere}
.lib-sha{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}
.lib-dialog-actions{display:flex;justify-content:flex-end;gap:8px}.lib-dialog-actions .button{min-height:44px}
@media (max-width:900px){.lib-main{grid-template-columns:1fr}.lib-list{max-height:none}.lib-frame{height:70vh}}
@media (max-width:600px){.lib-bar{grid-template-columns:1fr 1fr}.lib-bar input{grid-column:1/3;order:-1}.lib-head{flex-direction:column}.lib-dl{grid-template-columns:1fr}}
/* Suggest client (libsuggest-20261105): Unsorted segmented view + suggestion rows and card. */
.lib-tabs-slot:empty{display:none}
.lib-tabs{justify-self:start}
.lib-tabs .seg{min-height:44px}
.lib-sug-intro{margin:0 0 8px}
.lib-sugrow{border:1px solid var(--line);border-radius:var(--radius-control,9px);background:var(--paper)}
.lib-sugrow .lib-item{border-radius:var(--radius-control,9px) var(--radius-control,9px) 0 0}
.lib-sug{display:grid;gap:6px;padding:2px 12px 12px;min-width:0}
.lib-sug p{margin:0}
.lib-sug-line{font-size:13px;overflow-wrap:anywhere}
.lib-sug-label{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}
.lib-sug-level{font-size:12px;color:var(--muted);white-space:nowrap}
.lib-sug-why{font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.lib-sug-actions{display:flex;flex-wrap:wrap;gap:8px}
.lib-sug-actions .button{min-height:44px;max-width:100%;white-space:normal;text-align:center}
.lib-sug-card{padding:14px 16px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));border-radius:var(--radius-coverage,12px);background:var(--tint)}
.lib-sug-card h3{margin:0;font-size:15px}
.lib-wait{padding:40px 12px}
@media (max-width:600px){.lib-tabs{display:flex;justify-self:stretch}.lib-tabs .seg{flex:1;justify-content:center;padding:0 8px}.lib-sug-actions .button{flex:1 1 140px}}
.lib-head-acts{display:flex;gap:8px;flex-wrap:wrap;flex-shrink:0}
@media (max-width:600px){.lib-head-acts{width:100%}.lib-head-acts .button{flex:1 1 auto}}
/* libsort-20261108: date filters, Move to..., multi-select, Undo, Sort mode. Segmented controls only. */
.lib-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-width:0}
.lib-filters-row{display:flex;flex-wrap:wrap;gap:8px}
.lib-seg{max-width:100%;overflow-x:auto;scrollbar-width:none;justify-self:start}
.lib-seg::-webkit-scrollbar{display:none}
.lib-seg .seg{min-height:40px;white-space:nowrap}
.lib-custom{display:flex;flex-wrap:wrap;gap:8px;align-items:end;flex-basis:100%}
.lib-custom label{display:grid;gap:4px;font-size:12px;color:var(--muted)}
.lib-custom input{min-height:40px}
.lib-custom .button{min-height:40px}
.lib-sort-slot:empty,.lib-undo-slot:empty{display:none}
.lib-sortbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.lib-sortbar .button{min-height:44px;height:auto}
.lib-runline,.lib-undo{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-top:8px}
.lib-runline .button,.lib-undo .button{min-height:40px}
.lib-listhead{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0 0 4px}
.lib-pickall{display:flex;gap:8px;align-items:center;font-size:13px;min-height:36px;cursor:pointer}
.lib-bulk{position:sticky;top:0;z-index:2;display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 10px;margin:4px 0;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));border-radius:var(--radius-control,9px);background:var(--paper)}
.lib-bulk[hidden]{display:none}
.lib-bulk .button{min-height:40px;height:auto}
.lib-row{border:1px solid transparent;border-radius:var(--radius-control,9px)}
.lib-row.picked{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));background:var(--tint)}
.lib-rowmain{display:flex;align-items:stretch;gap:2px;min-width:0}
.lib-rowmain .lib-item{flex:1;min-width:0}
.lib-pick{display:flex;align-items:center;justify-content:center;min-width:36px;cursor:pointer}
.lib-pick input{width:18px;height:18px;cursor:pointer}
.lib-rowtools{display:grid;gap:4px;padding:0 12px 10px 48px;min-width:0}
.lib-rowtools .lib-moveto{justify-self:start;min-height:36px;height:auto}
.lib-prop,.lib-placed{margin:0;overflow-wrap:anywhere}
.lib-prop .text-button,.lib-placed .text-button{min-height:32px}
.lib-placebox{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.lib-placebox .button{min-height:44px}
.lib-picker{max-width:440px}
.lib-picker input[type=search]{width:100%;min-height:44px;margin:8px 0}
.lib-pick-list{max-height:min(55vh,460px);overflow:auto}
.lib-pick-list h3{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:12px 0 4px}
.lib-pick-list ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.lib-pick-target{width:100%;text-align:left;min-height:44px;padding:8px 12px;border:1px solid transparent;border-radius:var(--radius-control,9px);background:transparent;color:inherit;font:inherit;cursor:pointer}
.lib-pick-target:hover,.lib-pick-target:focus-visible{background:var(--hover);border-color:var(--line);outline:none}
.lib-pick-target:focus-visible{box-shadow:0 0 0 2px var(--accent,#235347)}
.lib-sortmode{position:fixed;inset:0;z-index:60;background:var(--bg,var(--paper));overflow:auto;padding:16px}
.lib-sorting{overflow:hidden}
.lib-sm-inner{max-width:1280px;margin:0 auto;display:grid;gap:16px}
.lib-sm-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.lib-sm-head h2{margin:2px 0;font-size:var(--text-title,19px);overflow-wrap:anywhere}
.lib-sm-head p{margin:0}
.lib-sm-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,340px);gap:16px;align-items:start}
.lib-sm-preview .lib-frame{height:min(72vh,820px)}
.lib-sm-side{display:grid;gap:12px;position:sticky;top:0}
.lib-sm-actions{display:grid;gap:8px}
.lib-sm-actions .button{min-height:48px;height:auto;padding-top:10px;padding-bottom:10px;justify-content:space-between;white-space:normal;text-align:left}
.lib-sm-actions kbd,.lib-sm-undo kbd{font:11px/1 ui-monospace,SFMono-Regular,Menlo,monospace;padding:2px 5px;border:1px solid var(--line);border-radius:4px;opacity:.8}
.lib-sm-empty{font-size:17px;margin:24px 0}
#lib-keys kbd{font:12px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;padding:2px 6px;border:1px solid var(--line);border-radius:4px;white-space:nowrap}
@media (max-width:900px){.lib-sm-body{grid-template-columns:1fr}.lib-sm-side{position:static}.lib-sm-preview .lib-frame{height:48vh}}
@media (max-width:600px){.lib-rowtools{padding-left:12px}.lib-sortmode{padding:12px}.lib-sm-actions kbd{display:none}.lib-filters-row .lib-seg{flex:1 1 100%}.lib-filters-row .lib-seg .seg{flex:1}}
@media (pointer:coarse){.lib-sm-actions kbd,.lib-sortbar .small{display:none}}
.lib>*,.lib-filters-slot,.lib-tabs-slot{min-width:0;max-width:100%}
@media (max-width:600px){.lib-tabs{display:grid;grid-template-columns:1fr 1fr;width:100%}.lib-tabs .seg{justify-content:center;white-space:normal;text-align:center}.lib-filters{display:grid;grid-template-columns:minmax(0,1fr)}.lib-filters .lib-seg{width:100%}}
#lib-sortmode .lib-sm-actions .button{min-height:48px}#lib-sortmode .lib-sm-head .button{min-height:44px}
@media (max-width:900px){.lib-sm-side{order:-1}.lib-sm-preview .lib-frame{height:42vh}.lib-sm-actions{grid-template-columns:1fr 1fr}.lib-sm-actions [data-sm=accept]{grid-column:1/-1}}
@media (max-width:600px){.lib-filters .lib-seg[aria-label="Date range"]{display:grid;grid-template-columns:repeat(3,1fr);overflow:visible}.lib-filters .lib-seg[aria-label="Date range"] .seg{justify-content:center;white-space:normal;text-align:center;padding:0 6px}.lib-filters-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.lib-filters-row .lib-seg .seg{padding:0 6px;white-space:normal;text-align:center;justify-content:center}}
