.library-ui { min-width:0; color:var(--ink,#202921); }
.library-ui [hidden] { display:none!important; }
.library-ui * { box-sizing:border-box; }
.library-ui .library-intro { margin:0 0 24px; }
#main .library-ui p { font-size:1rem; line-height:1.65; }
#main .library-ui h2 { margin:0 0 16px; font-size:1.5rem; line-height:1.35; }
#main .library-ui h3 { margin:0 0 12px; font-size:1.125rem; line-height:1.45; }
#main .library-ui .button { min-width:0; min-height:48px; padding:12px 16px; font-size:1rem; line-height:1.5; white-space:normal; overflow-wrap:anywhere; text-align:center; }
.library-ui .library-actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-top:18px; }
.library-ui .library-actions>.button { flex:0 1 auto; }
#main .library-ui .library-help { margin:14px 0; color:#526249; font-size:.9375rem; line-height:1.7; }
.library-ui .library-toolbar { display:flex; flex-wrap:wrap; align-items:end; justify-content:space-between; gap:24px; margin:28px 0 22px; }
.library-ui .library-tabs { display:flex; flex-wrap:wrap; gap:8px; padding:6px; border:1px solid #adbc9b; border-radius:12px; background:var(--paper,#fff); }
.library-ui .library-tabs .button { flex:1 1 auto; }
.library-ui .library-search { flex:1 1 16rem; max-width:26rem; }
.library-ui .library-field { display:flex; flex-direction:column; gap:9px; min-width:0; margin:0; }
#main .library-ui .library-field>span { margin:0; font-size:1rem; font-weight:600; line-height:1.5; color:var(--ink,#202921); }
#main .library-ui .library-field input,
#main .library-ui .library-field textarea,
#main .library-ui .library-field select { width:100%; max-width:100%; min-width:0; min-height:52px; margin:0; padding:12px 14px; border:1px solid #9aaa89; border-radius:9px; color:var(--ink,#202921); background:var(--paper,#fff); font:inherit; font-size:1rem; line-height:1.6; }
#main .library-ui .library-field textarea { resize:vertical; min-height:100px; }
#main .library-ui .library-field input[aria-invalid=true],
#main .library-ui .library-field textarea[aria-invalid=true] { border-color:#993e25; outline:1px solid #993e25; }
.library-ui .library-status { display:flex; flex-wrap:wrap; align-items:center; gap:12px; min-height:48px; padding:14px 16px; margin:0 0 22px; border:1px solid #cad7ba; border-radius:10px; color:#2e481c; background:#eff5e7; overflow-wrap:anywhere; }
.library-ui .library-status[data-state=error],
.library-ui .library-warnings { color:#713515; background:#fff4e9; border:1px solid #b97545; }
.library-ui .library-warnings { margin:18px 0; padding:16px 20px 16px 38px; border-radius:9px; font-size:1rem; line-height:1.65; }
.library-ui .library-warnings li+li { margin-top:8px; }
.library-ui .library-confirm { padding:18px; margin:20px 0; border:2px solid #98723d; border-radius:10px; background:#fff8e9; }
.library-ui .library-confirm p { margin:0; }
.library-ui .library-confirm-dialog { width:min(560px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); margin:auto; padding:0; border:1px solid #9bad89; border-radius:16px; color:var(--ink,#202921); background:var(--paper,#fff); overflow:auto; }
.library-ui .library-confirm-dialog::backdrop { background:rgb(24 35 20 / 55%); }
.library-ui .library-confirm-dialog .modal-header,
.library-ui .library-confirm-dialog .modal-body,
.library-ui .library-confirm-dialog .modal-footer { padding:22px 24px; }
#main .library-ui .library-confirm-dialog h2 { margin:0; font-size:1.25rem; }
.library-ui .library-confirm-dialog .modal-body { padding-top:20px; }
.library-ui .library-confirm-dialog .modal-body p { margin:0 0 12px; }
.library-ui .library-confirm-dialog .modal-footer { display:flex; flex-wrap:wrap; gap:12px; border-top:1px solid var(--line,#e5e8df); }
.library-ui .library-confirm-dialog .modal-footer .button { flex:1 1 10rem; }
.library-ui .library-grid,
.library-ui .library-ai-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr)); gap:22px; align-items:start; }
.library-ui .library-card { min-width:0; padding:24px; border:1px solid #bac7ad; border-radius:14px; background:var(--paper,#fff); overflow-wrap:anywhere; }
.library-ui .library-pick { display:flex; align-items:flex-start; gap:14px; min-width:0; min-height:48px; line-height:1.6; cursor:pointer; }
.library-ui .library-pick>input[type=checkbox] { flex:0 0 28px; width:28px; height:28px; min-width:28px; margin:2px 0 0; accent-color:#547337; }
.library-ui .library-pick>span { min-width:0; font-size:1rem; }
.library-ui .library-pick strong { display:block; font-size:1.125rem; line-height:1.5; }
#main .library-ui .library-meta { display:block; margin-top:9px; color:#526249; font-size:.9375rem; line-height:1.65; }
#main .library-ui .library-note { margin-top:18px; white-space:pre-wrap; }
.library-ui .library-plan-exercises { list-style:none; margin:18px 0 0; padding:0; }
.library-ui .library-plan-exercises li { padding:12px 0; border-top:1px solid var(--line,#e5e8df); }
.library-ui .library-plan-exercises strong,
.library-ui .library-plan-exercises span { display:block; font-size:1rem; line-height:1.65; }
.library-ui .library-selection { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; margin:0 0 22px; padding:18px 20px; border:1px solid #8ea66f; border-radius:12px; background:#eff5e7; }
.library-ui .library-selection p,
.library-ui .library-selection .library-actions { margin:0; }
.library-ui .library-empty { padding:28px; border:1px dashed #9bad89; border-radius:12px; background:var(--paper,#fff); }
.library-ui .library-empty p { margin:0; }
.library-ui .library-work.card { margin:24px 0; padding:28px; border:1px solid #9eb18a; border-radius:14px; }
.library-ui .library-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.library-ui .library-form-grid>.library-field:first-child,
.library-ui .library-form-grid>.library-wide,
.library-ui .library-form-grid>.library-field:has(input[name=planName]) { grid-column:1/-1; }
.library-ui .library-import-row { min-width:0; margin:18px 0; border:1px solid #b9c6ad; border-radius:12px; background:var(--paper,#fff); }
.library-ui .library-import-row>summary { min-height:56px; padding:16px 20px; cursor:pointer; font-size:1.0625rem; line-height:1.5; font-weight:600; overflow-wrap:anywhere; }
.library-ui .library-import-row>.library-form-grid { padding:6px 20px 0; }
.library-ui .library-import-row>.button { margin:0 20px 20px; }
#main .library-ui .library-field-errors { margin:12px 20px; color:#8d321d; font-size:.9375rem; line-height:1.65; }
.library-ui [data-library-import-errors] { margin:20px 0; padding:14px 18px; border-left:4px solid #9aac84; background:#f2f5ed; font-size:1rem; line-height:1.6; overflow-wrap:anywhere; }
.library-ui [data-library-import-errors] p { margin:0; }
.library-ui [data-library-import-errors] ul { margin:10px 0 0; padding-left:20px; }
.library-ui .library-import-footer { padding:20px 0 0; margin-top:24px; border-top:1px solid var(--line,#e5e8df); }
.library-ui .library-import-footer>.button { width:100%; min-height:60px; }
.library-ui .library-source { margin:24px 0; }
#main .library-ui .library-source textarea { min-height:230px; line-height:1.75; }
#main .library-ui .library-source textarea[readonly] { background:#f8faf4; }
.library-ui .library-source-details { margin-top:24px; border-top:1px solid var(--line,#e5e8df); }
.library-ui .library-source-details>summary { min-height:52px; padding:15px 0; cursor:pointer; font-size:1rem; font-weight:600; }
.library-ui .library-advisor-state { padding:18px 20px; border:1px solid #b5c4a2; border-radius:10px; background:#eff4e8; }
.library-ui .library-advisor-state strong { display:block; margin-bottom:6px; }
.library-ui .library-default-check { margin-top:18px; }
.library-ui .library-model-fields { display:grid; grid-template-columns:minmax(0,1fr); gap:20px; margin-top:24px; }
.library-ui .library-ai-actions { margin-top:24px; padding-top:20px; border-top:1px solid var(--line,#e5e8df); }
.library-ui [aria-busy=true] { cursor:progress; }
html.high-contrast #main .library-ui :is(.library-help,.library-meta) { color:#18340c; }
html.high-contrast .library-ui :is(.library-card,.library-work.card,.library-import-row,.library-tabs,.library-empty,.library-selection,.library-advisor-state) { border:2px solid #36551d; }
html.high-contrast .library-ui .library-confirm-dialog { border:2px solid #36551d; }
html.high-contrast #main .library-ui .library-field :is(input,textarea,select) { border:2px solid #36551d; }
html.high-contrast .library-ui .library-status { color:#18340c; border-color:#36551d; }
html.high-contrast .library-ui .library-status[data-state=error] { color:#61240e; border-color:#713515; }
@media(max-width:760px) {
  .library-ui .library-toolbar { align-items:stretch; gap:20px; }
  .library-ui .library-tabs { width:100%; }
  .library-ui .library-search { max-width:none; flex-basis:100%; }
  .library-ui .library-work.card { padding:24px 20px; }
  .library-ui .library-card { padding:22px 20px; }
}
@media(max-width:560px) {
  .library-ui .library-confirm-dialog .modal-header,
  .library-ui .library-confirm-dialog .modal-body,
  .library-ui .library-confirm-dialog .modal-footer { padding-left:18px; padding-right:18px; }
  .library-ui .library-confirm-dialog .modal-footer .button { flex-basis:100%; }
  .library-ui .library-form-grid { grid-template-columns:minmax(0,1fr); gap:18px; }
  .library-ui .library-actions { align-items:stretch; }
  .library-ui .library-actions>.button { flex:1 1 100%; width:100%; }
  .library-ui .library-tabs .button { flex:1 1 8rem; }
  .library-ui .library-work.card { padding:22px 16px; }
  .library-ui .library-import-row>.library-form-grid { padding:4px 14px 0; }
  .library-ui .library-import-row>summary { padding:16px 14px; }
  .library-ui .library-import-row>.button { max-width:calc(100% - 28px); margin-left:14px; margin-right:14px; }
  .library-ui .library-selection { display:block; padding:18px 16px; }
  .library-ui .library-selection .library-actions { margin-top:14px; }
  .library-ui .library-card { padding:22px 16px; }
  #main .library-ui .library-field :is(input,textarea,select) { padding-left:12px; padding-right:12px; }
}
@media(max-width:380px) {
  .library-ui .library-tabs .button { flex-basis:100%; }
  .library-ui .library-work.card { padding:20px 12px; }
}
.library-browser .library-top-actions { display:flex; gap:20px; align-items:center; justify-content:space-between; margin:4px 0 28px; }
.library-browser .library-top-actions .library-actions { margin:0; gap:10px; }
.library-browser .library-top-actions .library-search { max-width:30rem; }
.library-browser .library-status-quiet { position:absolute; width:1px; height:1px; min-height:0; padding:0; margin:-1px; border:0; overflow:hidden; clip-path:inset(50%); }
.library-browser .library-toolbar { margin:12px 0 24px; align-items:center; border-bottom:1px solid var(--line,#dce3d6); padding-bottom:16px; gap:16px; }
.library-browser .library-tabs { border:0; padding:0; gap:8px; background:transparent; }
.library-browser .library-tabs .button { border-color:transparent; }
.library-browser .library-tabs .secondary { background:transparent; }
.library-browser .library-count { display:inline-flex; align-items:center; justify-content:center; min-width:24px; min-height:24px; margin-left:6px; border-radius:7px; background:rgba(105,128,77,.12); font-size:.8125rem; }
.library-browser .library-tabs .primary .library-count { background:rgba(255,255,255,.16); }
.library-browser .library-more { position:relative; }
.library-browser .library-more>summary { display:flex; align-items:center; gap:14px; list-style:none; cursor:pointer; }
.library-browser .library-more>summary::-webkit-details-marker { display:none; }
.library-browser .library-more-menu { position:absolute; z-index:15; right:0; top:calc(100% + 8px); width:min(300px,calc(100vw - 44px)); display:grid; gap:10px; padding:16px; border:1px solid var(--line,#dce3d6); border-radius:16px; background:var(--paper,#fff); box-shadow:0 12px 36px rgb(27 39 22 / 12%); }
.library-browser .library-grid { grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr)); gap:20px; align-items:stretch; }
.library-browser .library-card { border-color:#dbe3d3; border-radius:16px; padding:22px; display:flex; flex-direction:column; box-shadow:0 2px 5px rgb(30 45 20 / 2%); }
.library-browser .library-card>.library-actions { margin-top:auto; padding-top:18px; }
.library-browser .library-card .library-pick { gap:13px; align-items:start; }
.library-browser .library-pick input { width:22px; height:22px; min-width:22px; margin-top:3px; }
.library-browser .library-card .library-meta { margin-top:10px; line-height:1.75; }
.library-browser .library-card .library-note { color:#526249; margin:14px 0 0; }
.library-browser .library-plan-exercises { margin:14px 0 20px; padding-left:0; list-style:none; }
.library-browser .library-plan-exercises li { padding:10px 0; border-top:1px solid #e8ece2; }
.library-browser .library-add-dialog,.drive-dialog { width:min(740px,calc(100vw - 32px)); margin:auto; border:1px solid #cad6bf; border-radius:20px; max-height:calc(100dvh - 32px); padding:0; background:var(--paper,#fff); color:var(--ink,#202921); overflow:auto; }
.library-add-dialog::backdrop,.drive-dialog::backdrop { background:rgb(20 29 17 / 48%); }
.library-add-dialog .modal-header,.drive-dialog .modal-header { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:24px; border-bottom:1px solid #e8ece2; }
.library-add-dialog .modal-body,.drive-dialog .modal-body { padding:24px; }
.library-source-options { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:24px 0; }
#main .library-source-options .button { display:flex; flex-direction:column; align-items:start; text-align:left; gap:10px; padding:24px; border-radius:14px; }
.library-source-options .source-symbol { display:flex; width:48px; height:48px; align-items:center; justify-content:center; border-radius:12px; font-size:28px; background:#edf3e5; }
.library-source-options .button>span:last-child { color:#526249; font-size:.9rem; }
.drive-dialog .button { min-height:48px; padding:12px 16px; font:inherit; white-space:normal; }
.drive-dialog h2,.drive-dialog h3 { margin:0; }
.drive-dialog p { line-height:1.65; }
.drive-dialog .eyebrow,.library-add-dialog .eyebrow { font-size:.75rem; letter-spacing:.1em; margin:0 0 7px; color:#61794d; }
.drive-account { display:flex; gap:16px; align-items:center; flex-wrap:wrap; padding:22px 0; }
.drive-account>div { flex:1; min-width:180px; }
.drive-account p,.drive-files p { margin:6px 0 0; font-size:.9rem; color:#526249; }
.drive-brand { display:flex; width:54px; height:54px; border-radius:14px; background:#edf3e5; font-size:36px; align-items:center; justify-content:center; }
.drive-files { display:grid; gap:12px; margin:16px 0; }
.drive-files article { display:flex; gap:16px; align-items:center; justify-content:space-between; padding:16px; border:1px solid #dce3d6; border-radius:12px; }
.drive-files article>div { min-width:0; overflow-wrap:anywhere; }
.drive-files article button { flex-shrink:0; }
.drive-admin { margin-top:28px; border-top:1px solid #e8ece2; padding-top:18px; }
.drive-admin summary { min-height:44px; cursor:pointer; }
.drive-settings,.drive-confirm { border:1px solid #dce3d6; background:#fafcf7; padding:20px; margin-top:20px; border-radius:14px; display:grid; gap:16px; }
.drive-settings input { font:inherit; width:100%; padding:12px; border:1px solid #9aaa89; border-radius:8px; min-height:48px; }
.drive-settings code { overflow-wrap:anywhere; }
.drive-auto-info { margin:8px 0 18px; padding:16px 18px; border:1px solid #c9d7bc; border-radius:12px; background:#f2f7eb; }
.drive-auto-info strong { display:block; font-size:1rem; }
.drive-auto-info p { margin:7px 0 0; font-size:.9rem; }
.drive-file-copy { flex:1; }
.drive-file-times { display:grid; grid-template-columns:1fr 1fr; gap:8px 16px; margin:10px 0 0; font-size:.8125rem; }
.drive-file-times dt { color:#526249; }
.drive-file-times dd { margin:2px 0 0; }
.drive-file-actions { display:flex; flex-direction:column; gap:8px; }
.drive-sync-label { font-weight:650; }
.drive-sync-label[data-sync-state="error"],.drive-dialog .drive-sync-error { color:#8a3e20; }
.drive-sync-label[data-sync-state="paused"] { color:#6d6040; }
.drive-dialog .drive-sync-error { padding:10px 12px; margin-top:12px; border-left:3px solid #b87843; background:#fff7ec; font-size:.875rem; }
.drive-sync-confirm { width:min(540px,calc(100vw - 32px)); }
.drive-sync-confirm p { overflow-wrap:anywhere; }
@media(max-width:560px) { .drive-file-actions { width:100%; flex-direction:row; flex-wrap:wrap; }.drive-file-actions .button { flex:1; }.drive-file-times { grid-template-columns:1fr; }.drive-sync-confirm .modal-footer { flex-wrap:wrap; }.drive-sync-confirm .modal-footer>.button { flex:1 1 100%; } }
.drive-dialog .library-field { min-width:0; }
.drive-dialog .library-field>span { font-weight:600; line-height:1.5; }
.drive-dialog :is(input,button,summary):focus-visible,.library-source-options button:focus-visible { outline:3px solid #3155c5; outline-offset:3px; }
.drive-dialog [data-drive-retry]:not(:empty) { margin:16px 0; }
html.high-contrast .drive-dialog { border:2px solid #36551d; }
.library-card .library-index-state { font-size:12px; line-height:1.6; padding:10px 12px; border-left:3px solid #a9ba93; background:#f4f7ef; color:#4d6541; overflow-wrap:anywhere; }
html.high-contrast .drive-dialog :is(.drive-settings input,.drive-files article,.drive-settings,.drive-confirm) { border:2px solid #36551d; }
html.high-contrast .drive-dialog :is(.eyebrow,.drive-account p,.drive-files p) { color:#18340c; }
@media(max-width:760px) { .library-browser .library-top-actions { align-items:stretch; flex-direction:column; gap:14px; }.library-browser .library-top-actions .library-search { flex:auto; max-width:none; }.library-browser .library-top-actions .library-actions { flex-wrap:wrap; }.library-browser .library-top-actions .library-actions>.button { flex:1; }.library-browser .library-more-menu { right:0; }.library-browser .library-toolbar { gap:12px; }.library-browser .library-tabs { width:100%; }.library-browser .library-tabs .button { flex:1; padding:10px!important; }.library-source-options { grid-template-columns:1fr; }.drive-files article { align-items:start; flex-direction:column; }.drive-dialog .modal-body,.library-add-dialog .modal-body { padding:20px; } }
