:root {
  --bg:#f6f5f1; --panel:#fff; --panel-2:#efeee9; --text:#20231f; --muted:#70756d;
  --border:#ddded8; --accent:#385e44; --accent-contrast:#fff; --hover:#f0f2ed;
  --danger:#a53535; --danger-bg:#fff0f0; --shadow:0 16px 45px rgba(34,38,31,.15);
  --reader-bg:#2f312e;
}
body.dark {
  --bg:#181916; --panel:#20221e; --panel-2:#292c25; --text:#f0f1eb; --muted:#aeb3aa;
  --border:#383c34; --accent:#83ad8e; --accent-contrast:#132018; --hover:#292c25;
  --danger:#ef9292; --danger-bg:#331b1b; --shadow:0 16px 45px rgba(0,0,0,.40);
  --reader-bg:#121310;
}
*{box-sizing:border-box} html,body{margin:0;min-height:100%} body{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--text)}
button,input,select,textarea{font:inherit} button{cursor:pointer}.hidden{display:none!important}.hidden-input{position:fixed;left:-9999px;width:1px;height:1px;opacity:0}
.app-shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.sidebar{background:var(--panel);border-right:1px solid var(--border);padding:20px 16px;display:flex;flex-direction:column;gap:18px;min-width:0;transition:.2s ease}.sidebar.collapsed{width:0;padding-left:0;padding-right:0;overflow:hidden;border-right:0}
.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--accent);color:var(--accent-contrast);font-weight:800;font-size:22px}.brand h1{margin:0;font-size:18px}.brand p{margin:3px 0 0;color:var(--muted);font-size:12px}
.nav-list{display:grid;gap:7px}.nav-item{border:0;background:transparent;color:var(--text);border-radius:10px;padding:10px 12px;text-align:left}.nav-item:hover,.nav-item.active{background:var(--hover)}.nav-item.active{font-weight:700}.nav-item span{margin-left:8px}.sidebar-spacer{flex:1}.library-status{border-top:1px solid var(--border);padding-top:14px;display:grid;gap:8px;color:var(--muted);font-size:13px}.status-line{display:flex;justify-content:space-between;gap:12px}.status-line strong{color:var(--text);max-width:125px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.main-area{min-width:0;min-height:100vh}.topbar{position:sticky;top:0;z-index:5;min-height:72px;background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);display:flex;gap:10px;align-items:center;padding:14px 24px}.search-wrap{flex:1;max-width:720px;position:relative}.search-wrap input,.dynamic-form input,.dynamic-form select,.dynamic-form textarea{width:100%;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:10px;padding:10px 12px;outline:none}.search-wrap input{padding-left:38px;border-radius:12px}.search-wrap input:focus,.dynamic-form input:focus,.dynamic-form select:focus,.dynamic-form textarea:focus{border-color:var(--accent)}.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted)}
.primary-button,.secondary-button,.danger-button,.icon-button,.link-button{border-radius:10px;border:1px solid var(--border);padding:9px 12px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px}.primary-button{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent);font-weight:700}.secondary-button,.icon-button,.link-button{background:var(--panel);color:var(--text)}.danger-button{background:var(--danger-bg);color:var(--danger)}.icon-button{width:40px;height:40px;padding:0}.full-width{width:100%}
.content{padding:28px;max-width:1500px;margin:0 auto}.hero{background:var(--panel);border:1px solid var(--border);border-radius:18px;padding:28px;margin-bottom:24px}.hero h2{font-size:clamp(28px,3vw,42px);margin:0 0 8px}.hero p{color:var(--muted);max-width:760px;line-height:1.6;margin:0}.hero-actions{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}.section{margin-top:28px}.section-header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px}.section-header h3{margin:0;font-size:20px}.section-header p{margin:3px 0 0;color:var(--muted);font-size:13px}.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.toolbar select{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:9px;padding:7px 10px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:13px}.card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:15px;min-height:135px;display:flex;flex-direction:column;gap:8px;transition:.12s ease}.card:hover{transform:translateY(-1px);border-color:var(--accent)}.card-top{display:flex;gap:12px;align-items:flex-start}.file-icon,.folder-icon{width:42px;height:42px;border-radius:10px;background:var(--panel-2);display:grid;place-items:center;flex:0 0 auto;font-size:16px;font-weight:800}.card h4{margin:0;font-size:15px;line-height:1.35;word-break:break-word}.card .meta{color:var(--muted);font-size:12px;word-break:break-word}.card-actions{margin-top:auto;display:flex;gap:7px;flex-wrap:wrap}.card-actions button{padding:6px 8px;font-size:12px}.favorite-button{width:32px;padding:5px!important;font-size:18px!important}.favorite-button.active{color:#b88a00}.menu-button{margin-left:auto}.empty-state{background:var(--panel);border:1px dashed var(--border);border-radius:16px;padding:44px 24px;text-align:center;color:var(--muted)}.empty-state h3{color:var(--text);margin-top:0}.breadcrumbs{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin-bottom:16px;color:var(--muted)}.breadcrumbs button{border:0;background:transparent;color:var(--accent);padding:3px 4px}.path-chip{display:inline-flex;border:1px solid var(--border);background:var(--panel-2);border-radius:999px;padding:3px 8px;font-size:11px;color:var(--muted)}
.modal{position:fixed;inset:0;z-index:50}.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.48)}.form-window{position:absolute;width:min(580px,calc(100vw - 24px));max-height:90vh;overflow:auto;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--panel);border-radius:16px;box-shadow:var(--shadow)}.form-header{border-bottom:1px solid var(--border);padding:12px 16px;display:flex;justify-content:space-between;gap:16px;align-items:center}.form-header h2{margin:0;font-size:18px}.form-header p{margin:3px 0 0;color:var(--muted);font-size:12px}.dynamic-form{padding:18px;display:grid;gap:14px}.form-field{display:grid;gap:6px}.form-field label{font-size:13px;font-weight:700}.dynamic-form textarea{min-height:130px;resize:vertical}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.form-error{color:var(--danger);background:var(--danger-bg);border-radius:10px;padding:10px;font-size:13px}.danger-zone{margin-top:6px;padding:12px;border:1px solid color-mix(in srgb,var(--danger) 25%,var(--border));border-radius:12px;background:var(--danger-bg);display:flex;align-items:center;justify-content:space-between;gap:14px}.danger-zone>div{display:grid;gap:4px}.danger-zone strong{color:var(--danger);font-size:13px}.danger-zone span{color:var(--muted);font-size:11px;line-height:1.4}
.toast{position:fixed;z-index:100;right:20px;bottom:20px;background:var(--text);color:var(--panel);padding:11px 14px;border-radius:10px;box-shadow:var(--shadow);max-width:420px}.drop-overlay{position:fixed;z-index:90;inset:14px;border:3px dashed var(--accent);background:color-mix(in srgb,var(--panel) 92%,transparent);border-radius:20px;display:grid;place-items:center;pointer-events:none}.drop-overlay>div{text-align:center;display:grid;gap:6px}.drop-overlay strong{font-size:22px}.drop-overlay span{color:var(--muted)}
.history-list,.notes-library-list{display:grid;gap:8px}.history-row,.note-library-row{width:100%;display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto;gap:16px;align-items:center;text-align:left;padding:12px 14px;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:11px}.history-row span,.history-row time,.note-library-row span,.note-library-row time{color:var(--muted);font-size:12px}.note-library-row .note-preview{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text);font-size:13px}
/* Reader page */
body.reader-focus .sidebar,body.reader-focus .topbar{display:none}body.reader-focus .app-shell{display:block}body.reader-focus .content{max-width:none;padding:0}
.reader-page{height:calc(100vh - 72px);min-height:620px;display:grid;grid-template-rows:auto 1fr;background:var(--panel);border:1px solid var(--border);border-radius:18px;overflow:hidden}.reader-page-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 14px;border-bottom:1px solid var(--border);background:var(--panel)}.reader-book-info{min-width:0;display:flex;align-items:center;gap:10px}.reader-back{flex:0 0 auto}.reader-title-wrap{min-width:0}.reader-title-wrap h2{font-size:17px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reader-title-wrap p{font-size:11px;color:var(--muted);margin:3px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reader-top-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}.reader-location-label{font-size:12px;color:var(--muted);min-width:64px;text-align:center}
.reader-layout{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 340px}.reader-main{min-width:0;min-height:0;display:grid;grid-template-rows:auto 1fr;background:var(--reader-bg)}.reader-toolbar{min-height:48px;padding:7px 10px;background:var(--panel-2);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:7px;flex-wrap:wrap}.reader-toolbar .spacer{flex:1}.reader-toolbar input[type=number]{width:72px;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:8px;padding:6px 7px;text-align:center}.reader-toolbar button{padding:6px 9px}.reader-surface{min-height:0;position:relative;overflow:hidden;background:var(--reader-bg)}
.pdf-frame{width:100%;height:100%;border:0;background:#fff}.text-reader,.docx-reader,.rtf-reader{height:100%;overflow:auto;background:var(--panel);color:var(--text);padding:clamp(24px,5vw,70px);line-height:1.75;font-size:17px;direction:auto;scroll-behavior:smooth}.text-reader pre{white-space:pre-wrap;margin:0;font:inherit}.docx-document{max-width:860px;margin:0 auto}.docx-document p{margin:.5em 0 1em}.docx-document h1,.docx-document h2,.docx-document h3{line-height:1.3}.docx-document table{width:100%;border-collapse:collapse;margin:1em 0}.docx-document td,.docx-document th{border:1px solid var(--border);padding:7px;vertical-align:top}.reader-placeholder{height:100%;display:grid;place-items:center;background:var(--panel);padding:30px;text-align:center;color:var(--muted)}.reader-placeholder h3{color:var(--text)}
.reader-side{min-height:0;border-left:1px solid var(--border);background:var(--panel);display:grid;grid-template-rows:auto auto 1fr}.reader-side-tabs{display:flex;border-bottom:1px solid var(--border)}.reader-side-tabs button{flex:1;border:0;background:transparent;color:var(--muted);padding:12px 8px}.reader-side-tabs button.active{color:var(--text);font-weight:700;border-bottom:2px solid var(--accent)}.side-action-row{padding:10px;border-bottom:1px solid var(--border);display:flex;gap:8px}.side-action-row button{flex:1}.reader-side-content{min-height:0;overflow:auto;padding:10px}.side-empty{color:var(--muted);text-align:center;padding:30px 12px;font-size:13px}.note-item,.bookmark-item{border:1px solid var(--border);border-radius:11px;padding:10px;margin-bottom:9px;background:var(--bg)}.note-item-header,.bookmark-item-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}.note-location,.bookmark-location{font-size:11px;color:var(--accent);font-weight:700}.note-item textarea{width:100%;min-height:100px;resize:vertical;border:0;background:transparent;color:var(--text);outline:none;line-height:1.5}.note-footer{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:10px;margin-top:7px}.tiny-button{border:0;background:transparent;color:var(--muted);padding:3px 5px}.tiny-button:hover{color:var(--text)}.bookmark-title{font-weight:700;font-size:13px;word-break:break-word}.bookmark-item button.jump-bookmark{width:100%;text-align:left;border:0;background:transparent;color:inherit;padding:0}.save-status{font-size:11px;color:var(--muted)}
.reader-side.closed{display:none}.reader-layout.side-closed{grid-template-columns:1fr}
@media (max-width:980px){.reader-layout{grid-template-columns:minmax(0,1fr) 290px}.reader-page{height:calc(100vh - 72px)}}
@media (max-width:820px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;inset:0 auto 0 0;z-index:30;width:260px;box-shadow:var(--shadow)}.sidebar.collapsed{transform:translateX(-100%);width:260px;padding:20px 16px}.topbar{padding:10px 12px;flex-wrap:wrap}.search-wrap{order:4;max-width:none;flex-basis:100%}.content{padding:18px 12px}.history-row,.note-library-row{grid-template-columns:1fr}.reader-page{height:calc(100vh - 124px);border-radius:12px}.reader-layout{grid-template-columns:1fr}.reader-side{position:absolute;right:0;top:0;bottom:0;width:min(88vw,360px);z-index:10;box-shadow:var(--shadow)}.reader-layout{position:relative}.reader-page-header{align-items:flex-start}.reader-top-actions{justify-content:flex-end}}
body.reader-open .topbar{display:none}
body.reader-open .content{padding:0;max-width:none;margin:0}
body.reader-open .reader-page{height:100vh;min-height:0;border:0;border-radius:0}
body.reader-focus .reader-page{height:100vh}

.reader-toolbar.empty{display:none}
.reader-side{grid-template-rows:auto auto auto 1fr}
.reader-side-location{min-height:0;padding:9px 10px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:center;gap:8px;background:var(--panel-2)}
.reader-side-location:empty{display:none}
.reader-side-location label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);font-weight:700}
.reader-side-location input[type=number]{width:70px;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:8px;padding:6px 7px;text-align:center}
.reader-side-location button{padding:6px 10px}


/* Global sidebar + persistent tabs (v0.8) */
.app-shell{grid-template-columns:260px minmax(0,1fr);height:100vh;min-height:0;overflow:hidden;transition:grid-template-columns .2s ease}
.app-shell.sidebar-collapsed{grid-template-columns:0 minmax(0,1fr)}
.sidebar{height:100vh;min-height:0;padding:0;gap:0;overflow:hidden;display:flex;flex-direction:column}
.sidebar.collapsed{width:0;padding:0;overflow:hidden;border-right:0}
.sidebar-top-fixed{flex:0 0 auto;padding:18px 14px 14px;border-bottom:1px solid var(--border);background:var(--panel)}
.brand{min-width:0}.brand-copy{min-width:0;flex:1}.brand-copy h1,.brand-copy p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar-collapse{font-size:22px;line-height:1;margin-left:auto}
.sidebar-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:12px 10px 14px;scrollbar-gutter:stable}
.sidebar-bottom-fixed{flex:0 0 auto;padding:10px;border-top:1px solid var(--border);background:var(--panel)}
.sidebar-bottom-fixed .nav-item{width:100%}
.nav-list{gap:5px}.nav-item{width:100%;display:flex;align-items:center;gap:4px}
.nav-item span{margin-left:5px}
.sidebar-tabs-section{margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}
.sidebar-section-title{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:0 7px 7px}
.sidebar-section-title .tiny-button{font-size:20px;width:26px;height:26px;border-radius:7px;display:grid;place-items:center;padding:0}
.sidebar-section-title .tiny-button:hover{background:var(--hover)}
.sidebar-book-tabs{display:grid;gap:5px;align-content:start}
.reader-tab{display:grid;grid-template-columns:minmax(0,1fr) 25px;gap:2px;border:1px solid transparent;border-radius:10px;background:transparent;overflow:hidden}
.reader-tab:hover{background:var(--hover)}.reader-tab.active{background:var(--panel-2);border-color:var(--border)}
.reader-tab-open{min-width:0;border:0;background:transparent;color:var(--text);text-align:left;padding:8px 4px 8px 8px;display:grid;gap:2px}
.reader-tab-open span{font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reader-tab-open small{font-size:9px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reader-tab-close{align-self:center;border:0;background:transparent;color:var(--muted);border-radius:7px;width:23px;height:23px;padding:0;font-size:16px}
.reader-tab-close:hover{background:var(--bg);color:var(--text)}
.sidebar-empty-tabs{padding:8px;color:var(--muted);font-size:11px;text-align:center}
.topbar-spacer{flex:1}
.main-area{height:100vh;min-height:0;overflow:auto}
body.reader-open .main-area{overflow:hidden}

/* Reader layout fixes */
body.reader-open .topbar{display:none}
body.reader-open .content{padding:0;max-width:none;margin:0;height:100vh;overflow:hidden}
body.reader-open .reader-page{height:100vh;min-height:0;border:0;border-radius:0}
.reader-page{min-width:0}.reader-layout,.reader-main,.reader-surface{min-width:0;min-height:0}
.reader-surface{height:100%;position:relative;overflow:hidden}
.pdf-frame{position:absolute;inset:0;width:100%;height:100%;min-width:100%;min-height:100%;display:block;border:0;background:#fff}
body.reader-focus .sidebar,body.reader-focus .topbar{display:none}
body.reader-focus .app-shell{display:block;height:100vh}.reader-side.closed{display:none}.reader-layout.side-closed{grid-template-columns:1fr}
.connection-item{border:1px solid var(--border);border-radius:11px;padding:9px;margin-bottom:9px;background:var(--bg)}
.connection-item-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;color:var(--muted);font-size:11px;font-weight:700}
.connection-launch{width:100%;border:0;background:transparent;color:var(--text);padding:4px 0;text-align:left;display:grid;gap:4px}.connection-launch strong{font-size:13px}.connection-launch small{color:var(--muted);font-size:10px}.connection-launch:hover strong{color:var(--accent)}

/* Dedicated search */
.search-page-box{max-width:900px;margin:0 auto 20px}.search-page-input-wrap{display:flex;gap:8px;align-items:center}.search-page-input{flex:1;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:14px;padding:13px 15px;font-size:16px;outline:none}.search-page-input:focus{border-color:var(--accent)}
.tag-filter-row,.book-tags{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.tag-filter-row{margin:14px 0 4px}.tag-chip{border:1px solid var(--border);background:var(--panel-2);color:var(--text);border-radius:999px;padding:5px 9px;font-size:11px}.tag-chip:hover,.tag-chip.active{border-color:var(--accent);background:var(--hover);color:var(--accent)}.book-tags{margin-top:3px}.book-tags .tag-chip{padding:2px 7px;font-size:10px;cursor:default}

/* Home compact expanding search */
.home-search{display:flex;align-items:center;gap:7px;margin-top:18px}.home-search .home-search-input{width:0;opacity:0;pointer-events:none;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:10px;padding:9px 0;transition:width .18s ease,opacity .18s ease,padding .18s ease}.home-search.expanded .home-search-input{width:min(420px,70vw);opacity:1;pointer-events:auto;padding:9px 11px}.home-search-button{width:40px;height:40px}

/* Trash */
.trash-list{display:grid;gap:9px}.trash-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:13px 14px}.trash-row .meta{color:var(--muted);font-size:11px;margin-top:4px}.trash-actions{display:flex;gap:7px;flex-wrap:wrap}

/* Settings */
.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.settings-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:17px}.settings-card h4{margin:0 0 6px}.settings-card p{color:var(--muted);font-size:12px;line-height:1.55}.settings-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.stat-box{background:var(--panel-2);border-radius:10px;padding:10px}.stat-box strong{display:block;font-size:20px}.stat-box span{font-size:10px;color:var(--muted)}.tag-admin-list{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.tag-admin-item{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--border);border-radius:999px;padding:4px 7px;background:var(--panel-2);font-size:11px}.tag-admin-item button{border:0;background:transparent;color:var(--muted);padding:0 2px}

@media (max-width:820px){
  .app-shell{grid-template-columns:1fr;height:100vh}.app-shell.sidebar-collapsed{grid-template-columns:1fr}
  .sidebar{position:fixed;inset:0 auto 0 0;z-index:40;width:260px;height:100vh;box-shadow:var(--shadow);transform:none}
  .sidebar.collapsed{transform:translateX(-100%);width:260px}
  .main-area{height:100vh}.topbar{padding:10px 12px;flex-wrap:nowrap}.content{padding:18px 12px}
  .reader-page{height:100vh}.reader-layout{grid-template-columns:1fr}.reader-side{position:absolute;right:0;top:0;bottom:0;width:min(88vw,360px);z-index:10;box-shadow:var(--shadow)}.reader-layout{position:relative}
  .trash-row{grid-template-columns:1fr}.trash-actions{justify-content:flex-start}
}

/* ===== v0.9 navigation + reader repair ===== */
/* Only the open-book tab area scrolls. */
.sidebar-top-fixed{padding:14px 12px 8px;border-bottom:1px solid var(--border)}
.compact-nav{margin-top:10px;display:grid;gap:2px}
.compact-nav .nav-item{padding:7px 9px;border-radius:8px;font-size:13px;min-height:32px}
.compact-nav .nav-item span{margin-left:4px}
.sidebar-tabs-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:10px 10px 12px;margin:0;border-top:0;scrollbar-gutter:stable}
.sidebar-tabs-scroll .sidebar-section-title{position:sticky;top:0;z-index:2;background:var(--panel);padding-top:3px}
.sidebar-bottom-fixed{display:grid;gap:3px;padding:8px 10px}
.sidebar-bottom-fixed .nav-item{padding:8px 9px;min-height:34px;font-size:13px}
.sidebar-scroll{display:none!important}

/* Three-dot management controls */
.menu-button,.row-menu{margin-left:auto;flex:0 0 auto}
.card-actions .menu-button{width:34px;height:34px;padding:0;font-size:20px;letter-spacing:2px}
.active-toggle{border-color:var(--accent)!important;color:var(--accent)!important;background:var(--hover)!important}

/* Reader tool drawer: one compact icon in the header. */
.reader-tools-toggle{font-size:20px;line-height:1}

/* PDF repair: give the native Chrome PDF plugin an explicit, unclipped viewport. */
.reader-layout{height:100%;overflow:hidden}
.reader-main{height:100%;overflow:hidden}
.reader-surface{position:relative!important;width:100%;height:100%;min-height:0;overflow:hidden!important;background:var(--reader-bg)}
.pdf-frame{position:absolute!important;inset:0!important;display:block!important;width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;border:0!important;margin:0!important;padding:0!important;background:#fff}
.reader-toolbar.empty{display:none!important}
.reader-main:has(.reader-toolbar.empty){grid-template-rows:minmax(0,1fr)}

/* Notes/bookmarks list pages now have separate action buttons. */
.notes-library-list,.bookmark-library-list{display:grid;gap:8px}
.note-library-row,.bookmark-library-row{width:100%;display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:7px;align-items:stretch;background:var(--panel);border:1px solid var(--border);border-radius:11px;padding:0;overflow:hidden}
.note-library-open,.bookmark-library-row>button:first-child{border:0;background:transparent;color:var(--text);display:grid;grid-template-columns:minmax(180px,1fr) minmax(170px,1fr) auto;gap:14px;align-items:center;text-align:left;padding:12px 14px;min-width:0}
.note-library-open span,.note-library-open time,.bookmark-library-row small,.bookmark-library-row span{color:var(--muted);font-size:12px}
.note-library-open .note-preview{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text);font-size:13px}
.note-library-row .row-menu,.bookmark-library-row .row-menu{align-self:center;justify-self:center;width:34px;height:34px;font-size:19px}

/* Tag creation on Search. */
.search-tag-create{display:flex;gap:7px;align-items:center;margin-top:10px;max-width:520px}
.search-tag-create input{flex:1;min-width:0;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:10px;padding:8px 10px;outline:none}
.search-tag-create input:focus{border-color:var(--accent)}
.view-tag-filters{margin:10px 0 14px}

/* Optional filesystem-style tree view with visible stems. */
.library-tree{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:12px 14px;min-height:80px}
.tree-node{position:relative;margin:1px 0}
.tree-node>summary{list-style:none;display:flex;align-items:center;gap:8px;min-height:38px;padding:4px 7px;border-radius:8px;color:var(--text)}
.tree-node>summary::-webkit-details-marker{display:none}
.tree-node>summary::before{content:'›';width:14px;color:var(--muted);font-size:17px;transition:transform .12s ease}
.tree-node[open]>summary::before{transform:rotate(90deg)}
.tree-node>summary:hover,.tree-book-row:hover{background:var(--hover)}
.tree-folder-icon{color:var(--muted);font-size:15px}
.tree-name,.tree-book-open{border:0;background:transparent;color:var(--text);text-align:left;padding:0;min-width:0}
.tree-name{font-weight:650;font-size:14px;flex:0 1 auto}
.tree-meta{font-size:10px;color:var(--muted);margin-right:auto}
.tree-menu{border:0;background:transparent;color:var(--muted);width:30px;height:28px;border-radius:7px;font-size:18px;line-height:1}
.tree-menu:hover{background:var(--panel-2);color:var(--text)}
.tree-children{position:relative;margin-left:17px;padding-left:19px;border-left:1px solid var(--border)}
.tree-children>.tree-node:before,.tree-children>.tree-book-row:before{content:'';position:absolute;left:-19px;top:19px;width:15px;border-top:1px solid var(--border)}
.tree-book-row{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr) 30px 30px;align-items:center;gap:5px;min-height:38px;padding:4px 7px;border-radius:8px}
.tree-file-icon{font-size:9px;font-weight:800;color:var(--muted);background:var(--panel-2);border-radius:6px;width:30px;height:26px;display:grid;place-items:center}
.tree-book-open{display:flex;gap:9px;align-items:baseline;overflow:hidden}
.tree-book-open strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tree-book-open small{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tree-star{border:0;background:transparent!important;width:28px!important;height:28px;padding:0!important}

/* Trash supports several object types. */
.trash-row strong{display:block}

@media (max-width:820px){
  .compact-nav{grid-template-columns:1fr 1fr;gap:3px}
  .note-library-open,.bookmark-library-row>button:first-child{grid-template-columns:1fr;gap:5px}
  .tree-children{margin-left:10px;padding-left:13px}
}
/* PDF v0.9 final override: restore the proven normal-flow iframe sizing. */
.pdf-frame{position:static!important;inset:auto!important;width:100%!important;height:100%!important;display:block!important;border:0!important;background:#fff!important;min-width:0!important;min-height:0!important}

/* ===== v1.0 Hebrew-first layout + persistent readers ===== */
.reader-host{height:100vh;min-width:0;overflow:hidden;background:var(--panel)}
.reader-pane{height:100vh!important;min-height:0!important;border:0!important;border-radius:0!important}

/* Hebrew UI mirrors the global navigation to the right. */
body.ui-he .app-shell{grid-template-columns:minmax(0,1fr) 248px}
body.ui-he .app-shell.sidebar-collapsed{grid-template-columns:minmax(0,1fr) 0}
body.ui-he .sidebar{grid-column:2;grid-row:1;border-right:0;border-left:1px solid var(--border)}
body.ui-he .main-area{grid-column:1;grid-row:1}
body.ui-he .nav-item{text-align:right}
body.ui-he .nav-item span{margin-left:0;margin-right:6px}
body.ui-he .sidebar-collapse{margin-left:0;margin-right:auto}
body.ui-he .reader-tab-open{text-align:right;padding:8px 8px 8px 4px}
body.ui-he .menu-button,body.ui-he .row-menu{margin-left:0;margin-right:auto}

/* In Hebrew the reading tools live on the left, opposite the main library sidebar. */
body.ui-he .reader-layout{grid-template-columns:340px minmax(0,1fr)}
body.ui-he .reader-side{grid-column:1;grid-row:1;border-left:0;border-right:1px solid var(--border)}
body.ui-he .reader-main{grid-column:2;grid-row:1}
body.ui-he .reader-layout.side-closed{grid-template-columns:1fr}
body.ui-he .reader-layout.side-closed .reader-main{grid-column:1}
body.ui-he .reader-book-info,body.ui-he .reader-top-actions{direction:rtl}

/* Smaller, tighter fixed navigation; only the open-book list scrolls. */
.sidebar-top-fixed{padding:11px 10px 7px}
.brand{gap:8px}.brand-mark{width:36px;height:36px;border-radius:10px;font-size:19px}.brand h1{font-size:15px}.brand p{font-size:10px}
.compact-nav{margin-top:7px;gap:1px}.compact-nav .nav-item{padding:6px 8px;min-height:29px;font-size:12px}
.sidebar-tabs-scroll{padding:7px 8px 9px}.sidebar-section-title{padding:0 5px 5px;font-size:10px}
.sidebar-bottom-fixed{padding:7px 8px}.sidebar-bottom-fixed .nav-item{padding:7px 8px;min-height:31px;font-size:12px}

/* Combined reading/history area. */
.study-hub{max-width:1100px;margin-left:auto;margin-right:auto}
.study-switcher{position:sticky;top:84px;z-index:3;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:5px;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:13px;margin-bottom:16px}
.study-switcher button{border:0;background:transparent;color:var(--muted);border-radius:9px;padding:8px 10px;display:flex;align-items:center;justify-content:center;gap:6px}
.study-switcher button.active{background:var(--panel);color:var(--text);font-weight:700;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.study-filters{margin-bottom:10px}
.study-open-tabs{display:grid;gap:7px}.study-open-tab{display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:6px;align-items:center;background:var(--panel);border:1px solid var(--border);border-radius:11px;padding:5px}.study-open-tab>button:first-child{border:0;background:transparent;color:var(--text);text-align:inherit;padding:8px 10px;display:flex;justify-content:space-between;gap:14px}.study-open-tab small{color:var(--muted)}

/* Search: tag creation appears only after +. */
.search-tag-heading{display:flex;align-items:center;gap:6px;margin-top:12px;color:var(--muted);font-size:12px;font-weight:700}
.tag-add-toggle{font-size:18px;width:26px;height:26px;border-radius:7px;padding:0;display:grid;place-items:center}.tag-add-toggle:hover{background:var(--hover)}
.search-tag-create{margin-top:6px}

/* Settings tag creator stays inside its card. */
.settings-card{min-width:0;overflow:hidden}
.settings-tag-create{display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:7px;align-items:center;margin-top:10px;max-width:100%}
.settings-tag-create input{min-width:0;width:100%;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:10px;padding:9px 10px;outline:none}
.settings-tag-create input:focus{border-color:var(--accent)}
.settings-tag-create button{width:42px;min-width:42px;padding:8px}

/* RTL-aware list rows and tree stems. */
body.ui-he .history-row,body.ui-he .note-library-open,body.ui-he .bookmark-library-row>button:first-child{text-align:right}
body.ui-he .tree-name,body.ui-he .tree-book-open{text-align:right}
body.ui-he .tree-children{margin-left:0;padding-left:0;border-left:0;margin-right:17px;padding-right:19px;border-right:1px solid var(--border)}
body.ui-he .tree-children>.tree-node:before,body.ui-he .tree-children>.tree-book-row:before{left:auto;right:-19px;border-top:1px solid var(--border)}
body.ui-he .tree-meta{margin-right:0;margin-left:auto}

/* Reader header uses compact icons; PDF frame remains the proven native implementation. */
.reader-top-actions .icon-button{width:36px;height:36px}.reader-page-header{padding:9px 11px}
.pdf-frame{position:static!important;inset:auto!important;width:100%!important;height:100%!important;display:block!important;border:0!important;background:#fff!important;min-width:0!important;min-height:0!important}

@media (max-width:820px){
  body.ui-he .app-shell{grid-template-columns:1fr}
  body.ui-he .sidebar{grid-column:1;position:fixed;inset:0 0 0 auto;border-left:1px solid var(--border);border-right:0}
  body.ui-he .sidebar.collapsed{transform:translateX(100%)}
  body.ui-he .main-area{grid-column:1}
  body.ui-he .reader-layout{grid-template-columns:1fr}
  body.ui-he .reader-main{grid-column:1}
  body.ui-he .reader-side{position:absolute;left:0;right:auto;top:0;bottom:0;width:min(88vw,360px);z-index:10;box-shadow:var(--shadow);border-right:0;border-left:1px solid var(--border)}
  .study-switcher{top:64px}.study-switcher span{display:none}
}
.reader-host{position:relative}
.reader-pane.reader-inactive{position:absolute!important;inset:0!important;visibility:hidden!important;pointer-events:none!important;opacity:0!important}
.reader-pane:not(.reader-inactive){position:relative!important;visibility:visible!important;opacity:1!important}

/* ===== v1.1 Library aesthetic: shelves, book spines, quieter chrome ===== */
:root{
  --paper:#f7f3eb;
  --paper-deep:#efe9de;
  --ink:#2c2924;
  --shelf-line:#cfc6b7;
  --shelf-shadow:rgba(69,55,39,.14);
  --volume-0:#34483c; --volume-1:#604433; --volume-2:#3c5356; --volume-3:#555861;
  --volume-4:#725b49; --volume-5:#4e6758; --volume-6:#67464a; --volume-7:#4f5260;
}
body:not(.dark){--bg:var(--paper);--panel:#fbf8f2;--panel-2:var(--paper-deep);--text:var(--ink);--border:#ded7cb;--hover:#f0ebe2;--accent:#394b3d}
body.dark{--shelf-line:#494b44;--shelf-shadow:rgba(0,0,0,.3);--volume-0:#293a31;--volume-1:#4e372c;--volume-2:#304447;--volume-3:#44464e;--volume-4:#594638;--volume-5:#3e5246;--volume-6:#51383b;--volume-7:#40424d}
body{background:var(--bg);letter-spacing:.003em}

/* Top chrome resembles a quiet reading room rather than a utility app. */
.topbar{min-height:58px;padding:8px 18px;background:color-mix(in srgb,var(--bg) 94%,transparent);box-shadow:none}
.topbar-title{position:absolute;left:50%;transform:translateX(-50%);font-family:Georgia,"Times New Roman",serif;font-size:21px;letter-spacing:.01em;white-space:nowrap;color:var(--text)}
body.ui-he .topbar-title{font-family:"Noto Serif Hebrew","Times New Roman",serif}
.topbar .icon-button{width:34px;height:34px;border-color:transparent;background:transparent;color:var(--muted)}
.topbar .icon-button:hover{background:var(--hover);color:var(--text)}

/* Sidebar: less dashboard, more understated navigation drawer. */
body.ui-he .app-shell{grid-template-columns:minmax(0,1fr) 238px}
.app-shell{grid-template-columns:238px minmax(0,1fr)}
.sidebar{background:color-mix(in srgb,var(--panel) 97%,var(--bg));}
.sidebar-top-fixed{padding:14px 13px 10px;background:transparent}
.brand{padding:1px 2px 10px}.brand-mark{display:none}.brand-copy{min-width:0}.brand h1{font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:17px;white-space:nowrap}.brand p{display:none}
body.ui-he .brand h1{font-family:"Noto Serif Hebrew","Times New Roman",serif}
.sidebar-collapse{border:0;background:transparent;color:var(--muted)}
.compact-nav{gap:2px;margin-top:3px}.compact-nav .nav-item{font-size:13px;font-weight:450;padding:8px 9px;border-radius:8px;color:color-mix(in srgb,var(--text) 86%,var(--muted))}.compact-nav .nav-item.active{font-weight:650;background:var(--hover)}
.sidebar-tabs-scroll{border-top:1px solid var(--border);padding-top:10px}.sidebar-section-title{letter-spacing:.025em;text-transform:none;font-weight:600}
.sidebar-bottom-fixed{background:transparent}

.content{max-width:1580px;padding:26px clamp(24px,4vw,62px) 56px}

/* Home hero inspired by the supplied mockups. */
.library-hero{border:0;background:transparent;border-radius:0;text-align:center;padding:56px 16px 34px;margin:0 auto 18px;max-width:1080px}
.library-hero .hero-kicker{font-size:11px;letter-spacing:.28em;color:var(--muted);margin-bottom:15px}
.library-hero h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(38px,4.7vw,66px);font-weight:400;line-height:1.12;margin:0 auto 28px}
body.ui-he .library-hero h2{font-family:"Noto Serif Hebrew","Times New Roman",serif}
.library-hero .hero-actions{justify-content:center;margin-top:16px}.library-hero .hero-actions .secondary-button{background:transparent;border-color:var(--border)}
.home-search{margin:0 auto;max-width:730px;display:flex;align-items:center;justify-content:center;position:relative;transition:.2s ease}
.home-search .home-search-button{position:absolute;inset-inline-start:10px;z-index:2;width:38px;height:38px;padding:0;border:0;background:transparent;font-size:22px}
.home-search .home-search-input{width:100%;height:58px;border:1px solid #cfc7bb;background:color-mix(in srgb,var(--panel) 82%,transparent);color:var(--text);border-radius:13px;padding:0 58px 0 20px;outline:none;font-size:15px;box-shadow:0 2px 10px rgba(56,43,30,.04)}
body.ui-he .home-search .home-search-input{padding:0 58px 0 20px}
.home-search .home-search-input:focus{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 9%,transparent)}
.home-search:not(.expanded) .home-search-input{opacity:1;pointer-events:auto}

/* Section typography and spacing. */
.section{margin-top:42px}.section-header{margin-bottom:13px}.section-header h3,.shelf-subtitle{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:29px;margin:0}
body.ui-he .section-header h3,body.ui-he .shelf-subtitle{font-family:"Noto Serif Hebrew","Times New Roman",serif}
.section-header p{font-size:12px}.shelf-subtitle{font-size:22px;margin:34px 0 10px}.shelf-section+.shelf-section{padding-top:4px}

/* The shelf itself: one quiet row by default, expanding into additional rows. */
.book-shelf{position:relative;min-width:0;padding:2px 0 22px;border-bottom:1px solid var(--shelf-line)}
.book-shelf::after{content:"";position:absolute;inset-inline:0;bottom:-5px;height:5px;border-radius:0 0 3px 3px;background:linear-gradient(to bottom,color-mix(in srgb,var(--shelf-line) 85%,transparent),transparent);opacity:.72;pointer-events:none}
.book-shelf-track{position:relative;display:flex;align-items:flex-end;gap:16px;min-width:0;overflow:hidden;white-space:normal;padding:0 4px 6px;min-height:250px;scrollbar-width:thin}
body.ui-he .book-shelf-track{direction:rtl}
body.ui-en .book-shelf-track{direction:ltr}
.book-shelf.expanded .book-shelf-track{flex-wrap:wrap;overflow:visible;row-gap:34px;padding-bottom:9px;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 268px,color-mix(in srgb,var(--shelf-line) 72%,transparent) 269px,color-mix(in srgb,var(--shelf-line) 72%,transparent) 270px,transparent 276px);background-size:100% 276px}
.book-shelf.has-overflow:not(.expanded) .book-shelf-track{padding-inline-end:116px}
.shelf-expand-control{position:absolute;z-index:8;inset-inline-end:6px;bottom:12px;width:102px;height:226px;border:1px dashed color-mix(in srgb,var(--border) 90%,transparent);border-radius:9px;background:color-mix(in srgb,var(--panel) 93%,var(--bg));color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;font-size:12px;box-shadow:0 5px 18px rgba(45,36,28,.05)}
.shelf-expand-control:hover{color:var(--text);border-color:color-mix(in srgb,var(--accent) 42%,var(--border));background:var(--panel)}
.shelf-expand-icon{font-size:23px;font-weight:300}.book-shelf.expanded .shelf-expand-control{position:static;width:auto;height:34px;margin:10px auto -9px;padding:0 14px;flex-direction:row;border-radius:999px}

/* Book/category volumes. */
.shelf-volume{--volume-color:var(--volume-0);position:relative;flex:0 0 132px;width:132px;height:226px;border-radius:6px 6px 4px 4px;transform-origin:center bottom;transition:transform .18s ease,filter .18s ease;isolation:isolate;box-shadow:0 8px 12px rgba(44,35,27,.11),inset 1px 0 rgba(255,255,255,.13),inset -1px 0 rgba(0,0,0,.18)}
.category-volume{flex-basis:146px;width:146px;height:238px}
.shelf-volume:hover,.shelf-volume:focus-within{transform:translateY(-7px);filter:saturate(1.03)}
.volume-tone-0{--volume-color:var(--volume-0)}.volume-tone-1{--volume-color:var(--volume-1)}.volume-tone-2{--volume-color:var(--volume-2)}.volume-tone-3{--volume-color:var(--volume-3)}.volume-tone-4{--volume-color:var(--volume-4)}.volume-tone-5{--volume-color:var(--volume-5)}.volume-tone-6{--volume-color:var(--volume-6)}.volume-tone-7{--volume-color:var(--volume-7)}
.volume-cover{position:absolute;inset:0;width:100%;height:100%;border:1px solid color-mix(in srgb,var(--volume-color) 76%,#1d1b18);border-radius:inherit;background:linear-gradient(90deg,rgba(255,255,255,.08),transparent 9%,transparent 89%,rgba(0,0,0,.09)),linear-gradient(180deg,color-mix(in srgb,var(--volume-color) 108%,white) 0%,var(--volume-color) 100%);color:#f8f4eb;padding:26px 15px 22px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;overflow:hidden}
.volume-cover::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 25% 15%,rgba(255,255,255,.08),transparent 32%),linear-gradient(115deg,transparent 48%,rgba(255,255,255,.025) 49%,transparent 52%);pointer-events:none}
.volume-cover strong{position:relative;font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:17px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;text-shadow:0 1px 1px rgba(0,0,0,.16)}
body.ui-he .volume-cover strong{font-family:"Noto Serif Hebrew","Times New Roman",serif;font-size:18px}
.volume-kind{position:relative;font-size:9px;letter-spacing:.13em;text-transform:uppercase;opacity:.73}.volume-author{position:relative;font-size:10px;line-height:1.25;opacity:.78;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.volume-rule{position:absolute;top:28px;left:14px;right:14px;height:1px;background:rgba(247,242,232,.36)}.volume-rule-bottom{top:auto;bottom:28px}
.volume-star{position:absolute;z-index:4;top:8px;inset-inline-end:8px;border:0;background:transparent;color:rgba(255,255,255,.76);font-size:22px;width:30px;height:30px;display:grid;place-items:center;padding:0;opacity:.78}.volume-star.active{color:#ffe2a3;opacity:1}.volume-star:hover{transform:scale(1.08)}

/* Hover reveals metadata without turning the shelf into a dashboard. */
.volume-details{position:absolute;z-index:5;inset:0;border-radius:inherit;padding:15px 12px 11px;background:linear-gradient(180deg,rgba(27,27,25,.96),rgba(31,30,27,.985));color:#f6f1e8;display:flex;flex-direction:column;opacity:0;transform:translateY(3px);pointer-events:none;transition:opacity .14s ease,transform .14s ease;box-shadow:0 13px 30px rgba(0,0,0,.26)}
.shelf-volume:hover .volume-details,.shelf-volume:focus-within .volume-details{opacity:1;transform:none;pointer-events:auto}
.volume-details-main{min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:6px}.volume-detail-kind{font-size:9px;letter-spacing:.09em;text-transform:uppercase;color:#bab6ae}.volume-details h4{font-family:Georgia,"Times New Roman",serif;font-size:16px;font-weight:500;line-height:1.25;margin:1px 0 2px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.volume-details p{margin:0;font-size:10px;line-height:1.4;color:#c8c4bc;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.volume-detail-author{color:#eee9df!important;font-size:11px!important}.volume-detail-stats{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.volume-detail-stats span{font-size:9px;border:1px solid rgba(255,255,255,.15);border-radius:999px;padding:3px 6px;color:#d5d0c7}
.volume-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:3px;max-height:50px;overflow:hidden}.volume-tags .tag-chip{font-size:8px;padding:3px 6px;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.13);color:#e5e0d7}
.volume-detail-actions{margin-top:auto;display:flex;align-items:center;gap:5px;padding-top:9px}.volume-action-primary,.volume-action-icon{border:1px solid rgba(255,255,255,.17);background:rgba(255,255,255,.08);color:#fff;border-radius:7px;height:29px}.volume-action-primary{flex:1;padding:0 9px;font-size:10px}.volume-action-icon{width:29px;padding:0;font-size:15px}.volume-action-primary:hover,.volume-action-icon:hover{background:rgba(255,255,255,.15)}.volume-action-icon.active{color:#ffe2a3}

/* Old card styling stays available for non-library utilities, but shelves no longer look like cards. */
.book-shelf .card{display:none}

/* Category/library controls float lightly above the shelf. */
.breadcrumbs{margin-bottom:22px;font-size:12px}.breadcrumbs button{color:var(--muted)}.breadcrumbs button:hover{color:var(--text)}
.toolbar .secondary-button,.toolbar .icon-button,.toolbar select{background:transparent;border-color:var(--border)}.toolbar .active-toggle{background:var(--panel)}

@media (max-width:1050px){
  .content{padding-inline:28px}.book-shelf-track{gap:13px}.shelf-volume{flex-basis:124px;width:124px;height:216px}.category-volume{flex-basis:136px;width:136px;height:226px}.library-hero{padding-top:40px}.library-hero h2{font-size:46px}
}
@media (max-width:820px){
  .content{padding:18px 14px 44px}.topbar-title{font-size:18px}.library-hero{padding:30px 4px 20px}.library-hero h2{font-size:36px;margin-bottom:20px}.library-hero .hero-kicker{letter-spacing:.16em}.home-search .home-search-input{height:52px}.section{margin-top:32px}.section-header h3{font-size:25px}
  .book-shelf-track{overflow-x:auto;padding-bottom:10px;scroll-snap-type:x proximity}.book-shelf.has-overflow:not(.expanded) .book-shelf-track{padding-inline-end:8px}.shelf-expand-control{display:none!important}.shelf-volume{scroll-snap-align:start}
}
@media (hover:none){
  .shelf-volume:hover{transform:none}.volume-details{display:none}.volume-star{opacity:1}
}

/* Keep the existing home interaction: compact search control that opens into the large search bar. */
.home-search{width:48px;max-width:min(730px,100%);height:58px}
.home-search .home-search-input{width:0!important;opacity:0!important;pointer-events:none!important;padding-inline:0!important;border-color:transparent!important;box-shadow:none!important}
.home-search.expanded{width:min(730px,100%)}
.home-search.expanded .home-search-input{width:100%!important;opacity:1!important;pointer-events:auto!important;padding-inline-start:58px!important;padding-inline-end:20px!important;border-color:#cfc7bb!important;box-shadow:0 2px 10px rgba(56,43,30,.04)!important}
body.ui-he .home-search.expanded .home-search-input{padding-inline-start:58px!important;padding-inline-end:20px!important}

/* ===== v1.2 polish: organic palettes, stable chrome, reader actions ===== */
.content{position:relative}

/* Always provide a way back to the global sidebar, including inside the reader. */
.sidebar-reopen{display:none;position:fixed;z-index:45;top:12px;inset-inline-end:12px;width:38px;height:38px;border:1px solid var(--border);border-radius:10px;background:color-mix(in srgb,var(--panel) 94%,transparent);color:var(--text);box-shadow:0 5px 18px rgba(0,0,0,.08);place-items:center;font-size:19px}
.app-shell.sidebar-collapsed .sidebar-reopen{display:grid}
body.reader-focus .sidebar-reopen{display:none!important}

/* Hebrew is the primary layout: global navigation on the right, reading tools on the left. */
body.ui-he .sidebar{grid-column:2!important;border-right:0!important;border-left:1px solid var(--border)!important}
body.ui-he .main-area{grid-column:1!important}
body.ui-he .reader-layout{grid-template-columns:340px minmax(0,1fr)!important}
body.ui-he .reader-side{grid-column:1!important;grid-row:1!important;border-left:0!important;border-right:1px solid var(--border)!important}
body.ui-he .reader-main{grid-column:2!important;grid-row:1!important}
body.ui-he .reader-layout.side-closed{grid-template-columns:1fr!important}
body.ui-he .reader-layout.side-closed .reader-main{grid-column:1!important}

/* Top actions should explain destructive/important filesystem actions. */
.topbar-action{height:36px;padding:0 10px!important;background:transparent!important;border-color:var(--border)!important;color:var(--muted)!important;font-size:12px;white-space:nowrap}
.topbar-action:hover{color:var(--text)!important;background:var(--hover)!important}

/* Home-only בס״ד. */
.home-bsd{position:absolute;top:10px;right:clamp(18px,3vw,48px);font-family:"Noto Serif Hebrew","Times New Roman",serif;font-size:12px;color:var(--muted);letter-spacing:.04em;opacity:.82}

/* User-selectable book palettes. Deterministic tone assignment still keeps each volume stable. */
body.palette-organic{
  --volume-0:#465a48;--volume-1:#6e503b;--volume-2:#3f5b5a;--volume-3:#5b5c61;
  --volume-4:#80664d;--volume-5:#63725b;--volume-6:#744e52;--volume-7:#4c5564;
}
body.palette-forest{
  --volume-0:#314739;--volume-1:#3e5540;--volume-2:#506149;--volume-3:#2e4b49;
  --volume-4:#5c6044;--volume-5:#425947;--volume-6:#4c5140;--volume-7:#35505a;
}
body.palette-earth{
  --volume-0:#665044;--volume-1:#7a563e;--volume-2:#685c4d;--volume-3:#705047;
  --volume-4:#84674e;--volume-5:#5f5949;--volume-6:#754948;--volume-7:#5f514c;
}
body.palette-quiet{
  --volume-0:#4d5551;--volume-1:#5b514b;--volume-2:#46565a;--volume-3:#565860;
  --volume-4:#655b52;--volume-5:#536058;--volume-6:#605052;--volume-7:#4d5360;
}
body.dark.palette-organic{--volume-0:#334338;--volume-1:#513c30;--volume-2:#304746;--volume-3:#44464a;--volume-4:#5e4c3d;--volume-5:#465343;--volume-6:#543b3f;--volume-7:#3b424e}
body.dark.palette-forest{--volume-0:#26382d;--volume-1:#304333;--volume-2:#3d4c39;--volume-3:#263d3b;--volume-4:#464a34;--volume-5:#334537;--volume-6:#3a3f31;--volume-7:#2b4149}
body.dark.palette-earth{--volume-0:#493a32;--volume-1:#5a402f;--volume-2:#4b4439;--volume-3:#513a35;--volume-4:#604b3a;--volume-5:#454136;--volume-6:#563638;--volume-7:#463b38}
body.dark.palette-quiet{--volume-0:#3b413e;--volume-1:#443d39;--volume-2:#354246;--volume-3:#41434a;--volume-4:#4c453f;--volume-5:#3e4942;--volume-6:#483d3f;--volume-7:#393e48}

/* Books and categories share the shelf language, but are subtly recognizable. */
.shelf-volume{box-shadow:0 8px 13px rgba(44,35,27,.13),inset 1px 0 rgba(255,255,255,.13),inset -1px 0 rgba(0,0,0,.2)}
.book-volume{border-radius:5px 7px 4px 4px}
.category-volume{border-radius:9px 4px 4px 4px;transform-origin:center bottom}
.book-volume .volume-cover::after{content:"";position:absolute;top:0;bottom:0;inset-inline-start:8px;width:3px;border-inline-start:1px solid rgba(255,255,255,.17);border-inline-end:1px solid rgba(0,0,0,.11);opacity:.72}
.category-volume .volume-cover::after{content:"";position:absolute;inset:12px 9px;border:1px solid rgba(249,243,232,.18);border-radius:7px;pointer-events:none}
.category-volume .volume-kind{border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:3px 7px;letter-spacing:.08em;background:rgba(0,0,0,.07)}
.category-volume .volume-cover strong{font-size:19px}

/* Hover metadata keeps the book visually present instead of replacing it. */
.volume-details{inset:auto 5px 5px 5px;height:69%;border-radius:8px 8px 4px 4px;padding:11px 10px 9px;background:linear-gradient(180deg,rgba(30,29,26,.78),rgba(27,26,23,.94));backdrop-filter:blur(4px);transform:translateY(7px);box-shadow:0 9px 20px rgba(0,0,0,.22)}
.shelf-volume:hover .volume-cover,.shelf-volume:focus-within .volume-cover{filter:brightness(.94) saturate(1.02)}
.volume-details h4{font-size:14px;-webkit-line-clamp:2}.volume-details p{font-size:9px;-webkit-line-clamp:2}.volume-detail-actions{padding-top:6px}.volume-tags{max-height:31px}

/* Align the overflow volume with the books on the shelf. */
.book-shelf.has-overflow:not(.expanded) .book-shelf-track{padding-inline-end:118px}
.shelf-expand-control{bottom:28px;height:226px;width:102px}
.category-shelf-section .shelf-expand-control{height:238px}
.book-shelf.expanded .shelf-expand-control{margin-top:14px;margin-bottom:-6px}

/* Reader chrome: compact actionable title + clickable breadcrumb trail. */
.reader-page-header{padding:8px 11px;min-height:58px}
.reader-book-info{flex:1;min-width:0}.reader-title-wrap{display:grid;gap:1px;min-width:0}.reader-title-wrap h2{font-size:16px}
.reader-breadcrumb-wrap{min-width:0;overflow:hidden}.reader-breadcrumbs{display:flex;align-items:center;gap:3px;min-width:0;overflow:hidden;white-space:nowrap;font-size:10px;color:var(--muted)}
.reader-breadcrumbs button{border:0;background:transparent;color:var(--muted);padding:1px 2px;max-width:135px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.reader-breadcrumbs button:hover{color:var(--accent)}.reader-breadcrumbs span{opacity:.55}
.reader-book-meta{font-size:10px!important;margin:1px 0 0!important}.reader-favorite.active,.saved-favorite.active,.favorite-saved-star.active{color:#c99633!important}
.reader-top-actions{flex-wrap:nowrap}.reader-top-actions .icon-button{border-color:transparent;background:transparent}.reader-top-actions .icon-button:hover{background:var(--hover)}

/* Saved-note/bookmark favorite states. */
.saved-favorite{font-size:17px}.favorite-saved-list{display:grid;gap:8px}.favorite-saved-row{display:grid;grid-template-columns:minmax(0,1fr) 40px;gap:6px;border:1px solid var(--border);background:var(--panel);border-radius:11px;padding:5px}.favorite-saved-open{border:0;background:transparent;color:var(--text);display:grid;grid-template-columns:minmax(140px,.8fr) minmax(180px,1.5fr) auto;align-items:center;gap:12px;text-align:inherit;padding:9px 10px;min-width:0}.favorite-saved-open span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:12px}.favorite-saved-open small{color:var(--muted);font-size:11px}.favorite-saved-star{border:0;background:transparent;font-size:19px;color:var(--muted);border-radius:8px}.favorite-saved-star:hover{background:var(--hover)}.saved-subtitle{font-size:20px;margin-top:28px}

/* Settings palette and repair controls. */
.palette-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:10px}.palette-choice{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:10px;padding:8px;display:flex;align-items:center;gap:8px;text-align:inherit}.palette-choice.active{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 10%,transparent)}.palette-swatches{width:48px;height:18px;border-radius:999px;flex:0 0 auto;background:linear-gradient(90deg,#465a48 0 25%,#6e503b 25% 50%,#3f5b5a 50% 75%,#744e52 75%)}.palette-swatches.forest{background:linear-gradient(90deg,#314739 0 25%,#506149 25% 50%,#2e4b49 50% 75%,#5c6044 75%)}.palette-swatches.earth{background:linear-gradient(90deg,#665044 0 25%,#7a563e 25% 50%,#84674e 50% 75%,#754948 75%)}.palette-swatches.quiet{background:linear-gradient(90deg,#4d5551 0 25%,#5b514b 25% 50%,#46565a 50% 75%,#605052 75%)}
.settings-file-actions{align-items:stretch}.settings-file-actions button{flex:1;white-space:nowrap}.settings-help{font-size:11px!important;color:var(--muted);line-height:1.45;margin-top:9px!important}

@media (max-width:820px){
  .topbar-action span:last-child{display:none}.topbar-action{width:36px;padding:0!important}
  .home-bsd{top:8px;right:16px}
  .favorite-saved-open{grid-template-columns:1fr;gap:4px}
  .palette-choices{grid-template-columns:1fr}
  body.ui-he .reader-layout{grid-template-columns:1fr!important}
  body.ui-he .reader-main{grid-column:1!important}
  body.ui-he .reader-side{left:0!important;right:auto!important;position:absolute!important;width:min(88vw,360px)!important}
}
h4.shelf-subtitle + .book-shelf .shelf-expand-control{height:238px}
.saved-row-actions{display:flex;align-items:center;justify-content:center;gap:2px;align-self:center}.saved-row-actions .saved-favorite{width:28px;height:28px;display:grid;place-items:center;padding:0}
.note-library-row,.bookmark-library-row{grid-template-columns:minmax(0,1fr) auto}

/* ===== v1.3 shelf simplification + per-item colors ===== */

/* Hebrew layout: navigation is physically on the RIGHT. */
body.ui-he .app-shell{grid-template-columns:minmax(0,1fr) 238px!important}
body.ui-he .app-shell.sidebar-collapsed{grid-template-columns:minmax(0,1fr) 0!important}
body.ui-he .sidebar{grid-column:2!important;grid-row:1!important;border-right:0!important;border-left:1px solid var(--border)!important}
body.ui-he .main-area{grid-column:1!important;grid-row:1!important}

/* Category heading: title on the right, create button on the left in RTL. */
.shelf-title-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:30px 0 10px;min-height:40px}
.shelf-title-row .shelf-subtitle{margin:0}
.shelf-title-add{flex:0 0 auto;width:34px;height:34px;border-radius:9px;background:transparent!important}
.tree-category-title{margin-top:18px}

/* Simpler, flatter books: muted organic color, two rules, title. */
.shelf-volume{--volume-color:#4e5d51;cursor:pointer;box-shadow:0 7px 11px rgba(44,35,27,.13);border-radius:5px 6px 4px 4px;transition:transform .16s ease,box-shadow .16s ease}
.shelf-volume:hover,.shelf-volume:focus-within{transform:translateY(-5px);filter:none;box-shadow:0 11px 18px rgba(44,35,27,.17)}
.book-volume{width:132px;flex-basis:132px;height:226px;border-radius:5px 7px 4px 4px}
.category-volume{width:142px;flex-basis:142px;height:232px;border-radius:8px 5px 4px 4px}
.volume-cover{border:1px solid color-mix(in srgb,var(--volume-color) 80%,#24211d);background:linear-gradient(180deg,color-mix(in srgb,var(--volume-color) 93%,#fff) 0%,var(--volume-color) 100%);padding:25px 14px;color:#f7f3ea;gap:0}
.volume-cover::before{display:none!important}
.book-volume .volume-cover::after{display:none!important}
.category-volume .volume-cover::after{content:""!important;display:block!important;position:absolute!important;top:-1px!important;inset-inline-start:14px!important;width:30px!important;height:5px!important;border:0!important;border-radius:0 0 4px 4px!important;background:color-mix(in srgb,var(--volume-color) 74%,#1d1b18)!important;opacity:.7!important}
.volume-cover strong{font-weight:400;font-size:18px;line-height:1.45;-webkit-line-clamp:4;text-shadow:none}
body.ui-he .volume-cover strong{font-size:19px;font-weight:400}
.volume-rule{top:29px;left:15px;right:15px;background:rgba(247,242,232,.42)}
.volume-rule-bottom{top:auto;bottom:29px}
.volume-kind,.volume-author{display:none!important}

/* Favorite star: filled and clearly yellow only when selected. */
.volume-star{top:8px;inset-inline-end:7px;color:rgba(255,255,255,.7);opacity:.75;font-size:20px}
.volume-star.active{color:#f4c542!important;opacity:1;text-shadow:0 1px 2px rgba(0,0,0,.18)}
.volume-star:hover{transform:scale(1.07)}

/* Hover information stays small and leaves most of the physical book visible. */
.volume-details{inset:auto 6px 6px 6px!important;height:auto!important;max-height:47%!important;min-height:58px;border-radius:7px 7px 3px 3px;padding:9px 9px 8px;background:rgba(28,27,24,.82)!important;backdrop-filter:blur(3px);box-shadow:none;transform:translateY(6px);overflow:hidden}
.volume-details-main{gap:3px;overflow:hidden}
.volume-details h4{display:none!important}
.volume-details p{font-size:9px!important;line-height:1.35!important;-webkit-line-clamp:2!important;color:#ddd8cf!important}
.volume-detail-author{font-size:10px!important;color:#f3eee5!important}
.volume-detail-kind{font-size:8px;color:#bbb6ad;letter-spacing:.04em;text-transform:none}
.volume-detail-stats{display:none!important}
.volume-tags{max-height:24px;margin-top:2px;gap:3px;overflow:hidden}
.volume-tags .tag-chip{font-size:8px;padding:2px 5px}
.volume-detail-actions{padding-top:4px;justify-content:flex-end;margin-top:2px}
.volume-action-primary{display:none!important}
.volume-action-icon{width:27px;height:27px;background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.14)}
.category-volume .volume-details{min-height:44px;max-height:38%!important}
.category-volume .volume-details p{-webkit-line-clamp:2!important}

/* Expand control visually sits on the same baseline as the volumes. */
.book-shelf.has-overflow:not(.expanded) .book-shelf-track{padding-inline-end:108px}
.shelf-expand-control{inset-inline-end:4px;bottom:28px;width:92px;height:226px;border-radius:7px;box-shadow:none}
.category-shelf-section .shelf-expand-control{height:232px}
h4.shelf-subtitle + .book-shelf .shelf-expand-control{height:226px}

/* Open-book tabs carry the same book color. */
.reader-tab{border-inline-start:4px solid var(--tab-color,#66736a)!important;padding-inline-start:1px}
.reader-tab.active{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tab-color,#66736a) 35%,transparent)}

/* Any color can be selected in book/category management. */
.color-input-wrap{display:flex;align-items:center;gap:10px;border:1px solid var(--border);background:var(--panel);border-radius:10px;padding:7px 9px;color:var(--muted);font-size:12px}
.color-input-wrap input[type="color"]{width:48px;height:34px;padding:2px;border:0;background:transparent;cursor:pointer}
.color-input-wrap input[type="color"]::-webkit-color-swatch-wrapper{padding:0}
.color-input-wrap input[type="color"]::-webkit-color-swatch{border:1px solid var(--border);border-radius:7px}

/* Old palette controls no longer exist, but suppress any stale styling if cached DOM appears. */
.palette-choices,.palette-choice{display:none!important}

@media (max-width:820px){
  body.ui-he .sidebar{right:0!important;left:auto!important;inset:0 0 0 auto!important}
  body.ui-he .sidebar.collapsed{transform:translateX(100%)!important}
  .shelf-title-row{margin-top:24px}
  .volume-details{display:none!important}
}

/* ===== v1.3.1 screenshot-driven layout fixes ===== */

/*
  RTL changes the physical meaning of CSS Grid line numbers. Keep the outer
  placement coordinate system LTR, then restore RTL inside the actual UI.
  This guarantees that column 2 is physically the RIGHT column.
*/
body.ui-he .app-shell{
  direction:ltr!important;
  grid-template-columns:minmax(0,1fr) 238px!important;
}
body.ui-he .app-shell.sidebar-collapsed{
  grid-template-columns:minmax(0,1fr) 0!important;
}
body.ui-he .sidebar{
  direction:rtl!important;
  grid-column:2!important;
  grid-row:1!important;
  right:auto!important;
  left:auto!important;
  border-left:1px solid var(--border)!important;
  border-right:0!important;
}
body.ui-he .main-area{
  direction:rtl!important;
  grid-column:1!important;
  grid-row:1!important;
}

/* There were two hamburger buttons. Keep the in-sidebar close control, and
   when collapsed show only the floating reopen control on the RIGHT. */
#sidebarToggle{display:none!important}
body.ui-he .sidebar-reopen{
  inset-inline-start:auto!important;
  inset-inline-end:12px!important;
  right:12px!important;
  left:auto!important;
}
body.ui-he .sidebar-collapse{
  margin-right:auto!important;
  margin-left:0!important;
}

/* Reader tools are the opposite rail: physically LEFT in Hebrew. */
body.ui-he .reader-layout{direction:ltr!important;grid-template-columns:340px minmax(0,1fr)!important}
body.ui-he .reader-side{direction:rtl!important;grid-column:1!important;grid-row:1!important;border-left:0!important;border-right:1px solid var(--border)!important}
body.ui-he .reader-main{direction:rtl!important;grid-column:2!important;grid-row:1!important}
body.ui-he .reader-layout.side-closed{grid-template-columns:1fr!important}
body.ui-he .reader-layout.side-closed .reader-main{grid-column:1!important}

/* Home category title actions: simple, compact, clearly labeled. */
.shelf-title-actions{display:flex;align-items:center;gap:7px;flex:0 0 auto}
.shelf-title-action{min-height:34px;padding:6px 10px;border-radius:9px;font-size:12px;white-space:nowrap}

/*
  Collapsed shelf: the expand volume gets real layout space instead of being
  absolutely placed over the last book.
*/
.book-shelf.has-overflow:not(.expanded){
  display:flex;
  align-items:flex-end;
  gap:14px;
}
body.ui-he .book-shelf.has-overflow:not(.expanded){direction:rtl}
body.ui-en .book-shelf.has-overflow:not(.expanded){direction:ltr}
.book-shelf.has-overflow:not(.expanded) .book-shelf-track{
  flex:1 1 auto;
  width:auto;
  min-width:0;
  padding-inline-end:4px!important;
}
.book-shelf.has-overflow:not(.expanded) .shelf-expand-control{
  position:relative!important;
  inset:auto!important;
  flex:0 0 92px;
  width:92px!important;
  height:226px!important;
  margin:0 0 6px!important;
  transform:none!important;
}
.category-shelf-section .book-shelf.has-overflow:not(.expanded) .shelf-expand-control{
  height:226px!important;
}

/*
  Expanded shelves use a fixed row pitch. Every volume is bottom-aligned in a
  260px row, and the repeating rule is drawn at that same bottom edge.
  This prevents the second row from visually sitting on the previous shelf.
*/
.book-shelf.expanded{display:block!important}
.book-shelf.expanded .book-shelf-track{
  display:grid!important;
  grid-template-columns:repeat(auto-fill,132px)!important;
  grid-auto-rows:260px!important;
  justify-content:start!important;
  align-items:end!important;
  column-gap:16px!important;
  row-gap:0!important;
  overflow:visible!important;
  padding:0 4px 4px!important;
  min-height:0!important;
  background-image:repeating-linear-gradient(
    to bottom,
    transparent 0,
    transparent 254px,
    color-mix(in srgb,var(--shelf-line) 82%,transparent) 255px,
    color-mix(in srgb,var(--shelf-line) 82%,transparent) 256px,
    transparent 257px,
    transparent 260px
  )!important;
  background-size:100% 260px!important;
}
body.ui-he .book-shelf.expanded .book-shelf-track{direction:rtl}
body.ui-en .book-shelf.expanded .book-shelf-track{direction:ltr}
.book-shelf.expanded .shelf-volume{
  align-self:end!important;
  margin-bottom:4px!important;
}
/* Category covers stay subtly distinct, but share the same shelf baseline. */
.book-shelf.expanded .category-volume{height:232px!important}
.book-shelf.expanded .book-volume{height:226px!important}
.book-shelf.expanded .shelf-expand-control{
  position:static!important;
  width:max-content!important;
  height:34px!important;
  margin:12px auto 0!important;
  padding:0 14px!important;
  flex-direction:row!important;
  border-radius:999px!important;
}

/* The outer shelf's single bottom line is only needed for the collapsed row;
   expanded rows draw their own shelf rules. */
.book-shelf.expanded{border-bottom:0!important;padding-bottom:4px!important}
.book-shelf.expanded::after{display:none!important}

@media (max-width:820px){
  body.ui-he .app-shell{direction:ltr!important;grid-template-columns:1fr!important}
  body.ui-he .sidebar{
    direction:rtl!important;
    position:fixed!important;
    top:0!important;right:0!important;bottom:0!important;left:auto!important;
    grid-column:auto!important;
  }
  body.ui-he .sidebar.collapsed{transform:translateX(100%)!important}
  body.ui-he .main-area{grid-column:auto!important}
  body.ui-he .reader-layout{grid-template-columns:1fr!important;position:relative!important}
  body.ui-he .reader-main{grid-column:1!important}
  body.ui-he .reader-side{
    position:absolute!important;left:0!important;right:auto!important;top:0!important;bottom:0!important;
    width:min(88vw,360px)!important;z-index:10!important;border-left:1px solid var(--border)!important;border-right:0!important;
  }
  .shelf-title-actions{gap:5px}.shelf-title-action{padding:5px 8px;font-size:11px}
}


/* ===== v1.3.2 compact visual cleanup ===== */
/* Sidebar header is intentionally devotional/minimal; product title remains in the top bar. */
.sidebar-bsd-brand{min-height:40px;display:flex;align-items:center;justify-content:space-between;padding-inline:4px}
.sidebar-bsd{font-family:"Noto Serif Hebrew","Times New Roman",serif;font-size:12px;font-weight:400;letter-spacing:.03em;color:var(--muted);opacity:.82;white-space:nowrap}
.sidebar-bsd-brand .sidebar-collapse{margin-inline-start:auto!important}
.home-bsd{display:none!important}

/* Subtle translucent linear lighting, matching the quiet reference-cover treatment. */
.volume-cover::before{
  content:""!important;display:block!important;position:absolute!important;inset:0!important;
  background:linear-gradient(115deg,rgba(255,255,255,.14) 0%,rgba(255,255,255,.045) 31%,rgba(255,255,255,0) 55%,rgba(15,12,9,.11) 100%)!important;
  opacity:.58!important;pointer-events:none!important;z-index:0!important
}
.volume-cover strong,.volume-rule{z-index:1}
.category-volume .volume-cover::after{z-index:1}

/* Keep the favorite glyph clear of the decorative top rule. */
.book-volume .volume-rule:first-child{inset-inline-start:42px!important}
.volume-star{top:5px!important;inset-inline-end:7px!important;width:30px!important;height:30px!important;font-size:20px!important;line-height:1!important;z-index:5!important}

/* Home is now intentionally spare: no mid-page navigation/search controls. */
.library-hero{padding-bottom:18px!important}
.library-hero h2{margin-bottom:0!important}
.library-hero .hero-actions,.library-hero .home-search{display:none!important}
.book-shelf-title-row{margin-top:30px;margin-bottom:10px}

/* Folder + icon: recognizable but visually as quiet as the rest of the toolbar. */
.folder-plus-icon{width:19px;height:19px;display:inline-grid;place-items:center;flex:0 0 auto}
.folder-plus-icon svg{width:19px;height:19px;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* The title-row actions belong opposite the heading in both RTL and LTR. */
body.ui-he .shelf-title-row{direction:rtl}
body.ui-he .shelf-title-actions{margin-inline-start:auto}
body.ui-en .shelf-title-actions{margin-inline-start:auto}

/* ===== v1.3.3 small visual fixes ===== */
/* The star uses the clear space above the top rule. It is always physically
   in the upper-right corner, independent of RTL/LTR logical properties. */
.volume-star{
  top:5px!important;
  right:8px!important;
  left:auto!important;
  inset-inline-start:auto!important;
  inset-inline-end:auto!important;
  width:27px!important;
  height:27px!important;
  font-size:20px!important;
  line-height:1!important;
}
/* Leave a little extra room between the star and the decorative rule. */
.volume-rule{top:31px!important}
.volume-rule-bottom{top:auto!important;bottom:29px!important}

/* Chrome/ChromeOS may paint native <option> elements with a light background
   even when the select itself is themed. Set both sides explicitly so Hebrew
   sort labels such as א–ב remain legible. */
.toolbar select,
select[data-sort]{
  background:var(--panel)!important;
  color:var(--text)!important;
  color-scheme:light dark;
}
.toolbar select option,
select[data-sort] option{
  background:var(--panel)!important;
  color:var(--text)!important;
}
body:not(.dark) .toolbar select,
body:not(.dark) select[data-sort],
body:not(.dark) .toolbar select option,
body:not(.dark) select[data-sort] option{
  background:#fbf8f2!important;
  color:#2c2924!important;
}
body.dark .toolbar select,
body.dark select[data-sort],
body.dark .toolbar select option,
body.dark select[data-sort] option{
  background:#20211f!important;
  color:#f2eee6!important;
}


/* ===== v1.3.4 final polish ===== */
/* Settings icon is an outline SVG, so Chrome cannot render it as a coloured emoji. */
.settings-icon-svg{width:17px;height:17px;display:inline-grid;place-items:center;flex:0 0 17px;color:currentColor}
.settings-icon-svg svg{width:17px;height:17px;display:block;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}

/* Credits stay intentionally quiet at the very bottom of Settings. */
.settings-credits{margin:26px 4px 4px;text-align:center;color:var(--muted);font-size:10px;line-height:1.5;opacity:.72}

/* Put the favourite star in the deliberate upper-right gap and terminate the
   top rule before it, matching the marked reference. */
.volume-star{
  top:13px!important;
  right:12px!important;
  left:auto!important;
  width:27px!important;
  height:27px!important;
}
.book-volume .volume-rule:first-child{
  left:15px!important;
  right:49px!important;
  inset-inline-start:auto!important;
  inset-inline-end:auto!important;
}

/* Shelf controls are content, never chrome: the sticky top bar must always
   paint above them when the page is scrolled. */
.topbar{z-index:30!important}
.shelf-expand-control{z-index:1!important}
.book-shelf.has-overflow:not(.expanded) .shelf-expand-control{align-self:flex-end!important;top:auto!important;bottom:auto!important;max-height:226px!important;min-height:226px!important}
.category-shelf-section .book-shelf.has-overflow:not(.expanded) .shelf-expand-control{max-height:226px!important;min-height:226px!important}


/* ===== v1.3.5 micro-fixes ===== */
/* Proper gear silhouette; keep it monochrome through currentColor. */
.settings-icon-svg svg{stroke-width:1.6!important}

/* Restore the top cover rule and let it finish shortly before the favourite star.
   Physical left/right are intentional here so RTL logical inset rules cannot cancel it. */
.book-volume .volume-cover > .volume-rule:first-child{
  display:block!important;
  top:31px!important;
  left:15px!important;
  right:52px!important;
  width:auto!important;
  height:1px!important;
  background:rgba(247,242,232,.42)!important;
  opacity:1!important;
  z-index:2!important;
}
.book-volume .volume-cover > .volume-rule-bottom{
  left:15px!important;
  right:15px!important;
  width:auto!important;
}

/* ===== v1.4.0 pre-PWA feature pass ===== */
/* Books keep their height but become just a little narrower. */
.book-volume{width:124px!important;flex-basis:124px!important;height:226px!important}
.book-volume .volume-cover{padding-inline:12px!important}

/* Categories are deliberately folder-like rather than another kind of book:
   shorter, a little wider, no book rules, and a visible catalogue-folder tab. */
.category-volume{
  width:142px!important;flex-basis:142px!important;height:204px!important;
  border-radius:5px 8px 4px 4px!important;box-shadow:0 6px 10px rgba(44,35,27,.11)!important;
}
.category-volume .volume-cover{border-radius:5px 8px 4px 4px!important;padding:30px 14px 20px!important}
.category-volume .volume-cover::after{display:none!important}
.category-volume .volume-cover strong{font-size:18px!important;line-height:1.35!important;-webkit-line-clamp:3!important}
.category-volume .category-tab{
  position:absolute;z-index:3;top:-9px;inset-inline-start:12px;width:46px;height:13px;
  border:1px solid color-mix(in srgb,var(--volume-color) 80%,#24211d);border-bottom:0;
  border-radius:6px 7px 0 0;background:color-mix(in srgb,var(--volume-color) 96%,#fff);
  box-shadow:0 -2px 4px rgba(44,35,27,.04);pointer-events:none;
}
.category-volume .category-folder-mark{
  position:absolute;left:17px;right:17px;bottom:21px;height:1px;background:rgba(247,242,232,.26);z-index:2;
}
.category-volume .volume-details{max-height:43%!important}
.category-shelf-section .book-shelf-track{padding-top:11px}
.category-shelf-section .book-shelf.has-overflow:not(.expanded) .shelf-expand-control{height:204px!important;min-height:204px!important;max-height:204px!important}
h4.shelf-subtitle + .book-shelf .shelf-expand-control{height:226px}

/* Fixed-pitch expanded shelves follow the new narrower book width. */
.book-shelf.expanded .book-shelf-track{grid-template-columns:repeat(auto-fill,124px)!important;column-gap:14px!important}
.book-shelf.expanded .book-volume{height:226px!important}
.book-shelf.expanded .category-volume{height:204px!important}
.category-shelf-section .book-shelf.expanded .book-shelf-track{grid-template-columns:repeat(auto-fill,142px)!important}

/* Bulk selection: hidden until the user explicitly enters Select mode. */
.selection-toggle{min-width:62px}
.bulk-bar{
  position:sticky;top:66px;z-index:18;display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin:8px 0 16px;padding:9px 11px;border:1px solid var(--border);border-radius:11px;
  background:color-mix(in srgb,var(--panel) 94%,transparent);backdrop-filter:blur(9px);box-shadow:0 5px 16px rgba(35,31,25,.05);
}
.bulk-bar strong{font-size:12px;white-space:nowrap}.bulk-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.bulk-actions button{min-height:32px;padding:6px 9px;font-size:11px}
.bulk-actions button:disabled{opacity:.42;cursor:default}
.book-select-toggle{
  position:absolute;z-index:8;top:11px;left:10px;width:25px;height:25px;padding:0;border:1px solid rgba(255,255,255,.6);
  border-radius:50%;background:rgba(31,30,27,.42);color:#fff;display:grid;place-items:center;font-size:14px;font-weight:700;
  backdrop-filter:blur(2px);
}
.book-select-toggle.active{background:var(--accent);border-color:rgba(255,255,255,.88);color:var(--accent-contrast)}
.book-volume.selection-mode .volume-star{opacity:.42}
.book-volume.is-selected{outline:3px solid color-mix(in srgb,var(--accent) 74%,#fff);outline-offset:3px;transform:translateY(-3px)}
.tree-book-row.has-selection{grid-template-columns:30px 34px minmax(0,1fr) 30px 30px}
.tree-book-row .tree-select{position:static;width:23px;height:23px;background:transparent;color:var(--text);border-color:var(--border);backdrop-filter:none}
.tree-book-row .tree-select.active{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}
.tree-book-row.is-selected{background:color-mix(in srgb,var(--accent) 9%,var(--panel))}

/* Reset is visually isolated from ordinary settings. */
.settings-danger-card{border-color:color-mix(in srgb,var(--danger) 34%,var(--border));background:color-mix(in srgb,var(--danger-bg) 44%,var(--panel))}
.settings-danger-card h4{color:var(--danger)}

/* Ctrl+K quick command/search palette. */
.command-palette{position:fixed;inset:0;z-index:120;display:grid;place-items:start center;padding-top:min(14vh,120px)}
.command-palette-backdrop{position:absolute;inset:0;background:rgba(18,18,16,.34);backdrop-filter:blur(3px)}
.command-palette-window{position:relative;width:min(680px,calc(100vw - 28px));max-height:min(70vh,620px);overflow:hidden;background:var(--panel);border:1px solid var(--border);border-radius:15px;box-shadow:0 24px 70px rgba(20,18,15,.26)}
.command-palette-search{height:58px;display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:9px;align-items:center;padding:0 14px;border-bottom:1px solid var(--border);color:var(--muted)}
.command-palette-search input{border:0;outline:0;background:transparent;color:var(--text);font-size:16px;min-width:0;width:100%}
.command-palette-search kbd,.command-result kbd{border:1px solid var(--border);border-bottom-width:2px;border-radius:6px;padding:3px 6px;background:var(--panel-2);font-size:9px;color:var(--muted);white-space:nowrap}
.command-palette-results{max-height:calc(min(70vh,620px) - 58px);overflow-y:auto;padding:7px}
.command-result{width:100%;border:0;background:transparent;color:var(--text);display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:start;padding:9px 10px;border-radius:9px}
.command-result:hover,.command-result.active{background:var(--hover)}
.command-result>span{display:grid;gap:2px;min-width:0}.command-result strong{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.command-result small{font-size:10px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.command-result em{font-style:normal;font-size:9px;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:3px 6px}.command-empty{padding:28px;text-align:center;color:var(--muted);font-size:12px}

@media (max-width:820px){
  .book-volume{width:118px!important;flex-basis:118px!important}
  .category-volume{width:134px!important;flex-basis:134px!important;height:198px!important}
  .bulk-bar{position:static;align-items:flex-start;flex-direction:column}.bulk-actions{justify-content:flex-start}
  .command-palette{padding-top:8vh}
}

/* ===== v1.4.1 interaction + catalogue polish ===== */
/* Unbroken titles (filenames, acronyms, long Hebrew/Latin tokens) may wrap
   inside the cover instead of spilling/clipping horizontally. */
.book-volume .volume-cover strong{
  width:100%!important;min-width:0!important;max-width:100%!important;
  overflow-wrap:anywhere!important;word-break:break-word!important;
}

/* Selection is communicated only by the outline / row treatment. */
.book-select-toggle{display:none!important}
.tree-book-row.has-selection{grid-template-columns:34px minmax(0,1fr) 30px 30px!important}
.book-volume.is-selected{outline:3px solid color-mix(in srgb,var(--accent) 74%,#fff)!important;outline-offset:3px!important}

/* Empty category sections stay as a compact heading with the + action instead
   of inserting a large empty-state block before the books. */
.category-shelf-empty{margin-top:22px!important;padding:0!important}
.category-shelf-empty .shelf-title-row{margin:0 0 4px!important;min-height:32px!important}
.category-shelf-empty + .shelf-section{padding-top:0!important;margin-top:14px!important}

/* Folder/category destination picker. It uses the actual hierarchy rather than
   flattening paths into a long <select>. */
.category-tree-picker{
  border:1px solid var(--border);border-radius:11px;background:var(--panel-2);
  padding:7px;max-height:280px;overflow:auto;direction:inherit;
}
.category-picker-tree{display:grid;gap:1px;margin-top:3px}
.category-picker-node{display:grid;gap:1px;min-width:0}
.category-picker-line{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:3px;min-width:0}
.category-picker-children{margin-inline-start:18px;padding-inline-start:8px;border-inline-start:1px solid var(--border);display:grid;gap:1px}
.category-picker-children.collapsed{display:none}
.category-tree-toggle,.category-tree-spacer{width:22px;height:30px;display:grid;place-items:center}
.category-tree-toggle{border:0;background:transparent;color:var(--muted);padding:0;border-radius:6px;font-size:12px}
.category-tree-toggle:hover{background:var(--hover);color:var(--text)}
.category-picker-choice{
  width:100%;min-width:0;min-height:32px;border:0;border-radius:7px;background:transparent;color:var(--text);
  display:flex;align-items:center;gap:7px;padding:5px 8px;text-align:start;font-size:12px;
}
.category-picker-choice>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.category-picker-choice:hover{background:var(--hover)}
.category-picker-choice.active{background:color-mix(in srgb,var(--accent) 13%,var(--panel));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 38%,var(--border))}
.category-picker-choice.active::after{content:"✓";margin-inline-start:auto;color:var(--accent);font-weight:800}
.category-picker-root{margin-bottom:4px;border-bottom:1px solid var(--border);border-radius:7px 7px 3px 3px}
.category-picker-folder{width:16px;flex:0 0 16px;text-align:center;color:var(--muted);font-size:11px}
/* Selected books do not jump or gain a filled marker: the outline is the cue. */
.book-volume.is-selected{transform:none!important}
.tree-book-row.is-selected{background:transparent!important;outline:2px solid color-mix(in srgb,var(--accent) 74%,#fff)!important;outline-offset:1px}

/* ===== v1.5.0 ===== */
.disconnected-book{filter:saturate(.28);opacity:.48}
.disconnected-book:hover{filter:saturate(.5);opacity:.72}
.disconnected-book-row{opacity:.48}

.search-results-rich{display:grid;gap:18px}
.search-book-result{display:grid;grid-template-columns:138px minmax(0,1fr);gap:16px;align-items:start;padding:12px 0;border-bottom:1px solid var(--border)}
.search-book-card{display:flex;justify-content:center}
.search-book-matches{display:grid;gap:7px;padding-top:8px}
.content-match{display:grid;gap:3px;text-align:start;border:1px solid var(--border);background:var(--panel-2);color:var(--text);border-radius:10px;padding:9px 11px}
.content-match:hover{background:var(--hover)}
.content-match strong{font-size:11px}.content-match span{font-size:12px;line-height:1.5;color:var(--muted)}
.note-match{border-style:dashed}

.root-mixed-shelf{position:relative}
.root-mixed-collapsed{overflow:hidden}
.root-mixed-track{display:flex;align-items:flex-end;gap:16px;min-height:244px;padding:8px 4px 18px;border-bottom:2px solid color-mix(in srgb,var(--border) 70%,#8d745a)}
.root-mixed-expanded{display:none;gap:26px}
.root-mixed-shelf.expanded .root-mixed-collapsed{display:none}
.root-mixed-shelf.expanded .root-mixed-expanded{display:grid}
.root-expanded-group{display:grid;gap:8px}
.root-expanded-group h4{margin:0;color:var(--muted);font-size:12px;font-weight:600}
.root-expanded-group .book-shelf-track{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px;min-height:220px;padding:8px 4px 18px;border-bottom:2px solid color-mix(in srgb,var(--border) 70%,#8d745a)}
.root-expand-control{position:static!important;margin-top:8px!important;min-height:34px!important;max-height:none!important;width:auto!important;padding:5px 12px!important}
.compact-empty{font-size:12px;color:var(--muted);padding:12px}

.line-reader{padding-inline:clamp(16px,4vw,54px)!important}
.text-lines{max-width:980px;margin:0 auto;display:grid}
.text-line{display:grid;grid-template-columns:54px minmax(0,1fr);gap:14px;align-items:start;min-height:1.75em}
.line-number{font-size:10px;color:var(--muted);text-align:end;padding-top:.35em;user-select:none;opacity:.65}
.line-text{white-space:pre-wrap;overflow-wrap:anywhere}

.docx-reader{padding:24px!important;background:var(--reader-bg)!important}
.docx-pages{display:grid;gap:22px;justify-items:center}
.docx-page{position:relative;width:min(100%,900px);min-height:1120px;background:var(--panel);box-shadow:0 2px 14px rgba(0,0,0,.08);border:1px solid var(--border);padding:68px 170px 68px 72px;box-sizing:border-box}
.docx-page-body{min-height:940px;max-width:660px}
.docx-page-body p{margin:.5em 0 1em}.docx-page-body h1,.docx-page-body h2,.docx-page-body h3{line-height:1.3}
.docx-page-body table{width:100%;border-collapse:collapse;margin:1em 0}.docx-page-body td,.docx-page-body th{border:1px solid var(--border);padding:7px;vertical-align:top}
.docx-comment-anchor{background:color-mix(in srgb,#d9c96c 30%,transparent);border-bottom:1px dotted currentColor}
.docx-comment-ref{font-size:10px;color:var(--accent);font-weight:700;margin-inline:2px}
.docx-margin-comments{position:absolute;top:68px;right:18px;width:132px;display:grid;gap:10px}
.docx-margin-note{display:grid;gap:3px;padding:7px 8px;border-inline-start:2px solid var(--accent);background:var(--panel-2);font-size:10px;line-height:1.4}
.docx-margin-note strong{font-size:9px}.docx-margin-note span{color:var(--muted)}
.docx-staging{visibility:hidden;position:absolute;pointer-events:none}

.connection-book-search{width:100%}
.connection-book-results{max-height:250px;overflow:auto;border:1px solid var(--border);border-radius:10px;padding:5px;background:var(--panel-2);display:grid;gap:2px}
.connection-book-choice{display:grid;gap:2px;text-align:start;border:0;border-radius:7px;background:transparent;color:var(--text);padding:7px 9px}
.connection-book-choice:hover,.connection-book-choice.active{background:var(--hover)}
.connection-book-choice.active{box-shadow:inset 0 0 0 1px var(--accent)}
.connection-book-choice strong{font-size:12px}.connection-book-choice small{font-size:9px;color:var(--muted)}

/* Collapsing the navigation leaves a narrow, clickable colored tab rail. */
.app-shell.sidebar-collapsed{grid-template-columns:42px minmax(0,1fr)!important}
body.ui-he .app-shell.sidebar-collapsed{grid-template-columns:minmax(0,1fr) 42px!important}
.sidebar.collapsed{width:42px!important;min-width:42px!important;padding:8px 5px!important;overflow:hidden!important;transform:none!important}
.sidebar.collapsed .sidebar-top-fixed,.sidebar.collapsed .sidebar-bottom-fixed,.sidebar.collapsed .sidebar-section-title{display:none!important}
.sidebar.collapsed .sidebar-tabs-section{display:block!important;padding:3px 0!important;margin:0!important;overflow-y:auto!important}
.sidebar.collapsed .sidebar-book-tabs{display:grid!important;gap:5px!important}
.sidebar.collapsed .reader-tab{display:block!important;height:24px!important;min-height:24px!important;border:0!important;border-inline-start:10px solid var(--tab-color,#66736a)!important;border-radius:6px!important;background:color-mix(in srgb,var(--tab-color,#66736a) 13%,transparent)!important;padding:0!important;cursor:pointer!important}
.sidebar.collapsed .reader-tab.active{background:color-mix(in srgb,var(--tab-color,#66736a) 31%,transparent)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tab-color,#66736a) 60%,transparent)!important}
.sidebar.collapsed .reader-tab-open{display:block!important;width:100%!important;height:100%!important;padding:0!important}
.sidebar.collapsed .reader-tab-open span,.sidebar.collapsed .reader-tab-open small,.sidebar.collapsed .reader-tab-close{display:none!important}
.sidebar.collapsed + .main-area .sidebar-reopen{display:grid!important}

/* True edge-to-edge fullscreen. */
.reader-pane:fullscreen{width:100vw!important;height:100vh!important;max-width:none!important;max-height:none!important;margin:0!important;border:0!important;border-radius:0!important;background:var(--panel)!important}
.reader-pane:fullscreen .reader-layout{height:calc(100vh - 58px)!important}
body.reader-focus{overflow:hidden!important}
body.reader-focus .reader-page{width:100vw!important;height:100vh!important;max-width:none!important;margin:0!important;border:0!important;border-radius:0!important}
body.reader-focus .reader-host{padding:0!important;margin:0!important;width:100vw!important;height:100vh!important}

@media(max-width:820px){
  .search-book-result{grid-template-columns:1fr}.search-book-card{justify-content:flex-start}
  .docx-page{width:100%;min-height:0;padding:42px 28px}.docx-page-body{min-height:760px;max-width:none}.docx-margin-comments{position:static;width:auto;margin-top:22px}.docx-reader{padding:8px!important}
  .app-shell.sidebar-collapsed,body.ui-he .app-shell.sidebar-collapsed{grid-template-columns:1fr!important}
  .sidebar.collapsed{position:fixed!important;width:42px!important;transform:none!important}
}

/* ===== v1.5.1 screenshot-driven fixes ===== */

/* Search: real book covers only for title/author matches. Text/note hits are
   compact horizontal records so full-text search stays dense and scannable. */
.search-results-section{display:grid;gap:4px}
.search-result-section{margin-top:10px}
.search-result-section>.shelf-subtitle{margin:12px 0 8px}
.compact-search-section{margin-top:18px}
.search-hit-list{display:grid;gap:6px}
.search-hit-row{--hit-color:#66736a;min-width:0}
.search-hit-open{
  width:100%;min-height:62px;display:grid;grid-template-columns:7px minmax(0,1fr) auto;gap:11px;align-items:center;
  border:1px solid var(--border);border-radius:10px;background:var(--panel);color:var(--text);padding:7px 10px 7px 0;text-align:start;
}
body.ui-he .search-hit-open{padding:7px 0 7px 10px}
.search-hit-open:hover{background:var(--hover);border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}
.search-hit-color{align-self:stretch;width:7px;border-radius:8px 2px 2px 8px;background:var(--hit-color)}
body.ui-he .search-hit-color{border-radius:2px 8px 8px 2px}
.search-hit-copy{min-width:0;display:grid;gap:3px}
.search-hit-head{display:flex;align-items:baseline;gap:8px;min-width:0}
.search-hit-head strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:min(42vw,420px)}
.search-hit-head small{font-size:9px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.search-hit-snippet{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.35}
.search-hit-kind{font-size:9px;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:3px 7px;white-space:nowrap}

/* Quick popup is now a book switcher/searcher only. */
.quick-book-result{display:grid!important;grid-template-columns:8px minmax(0,1fr) auto!important;justify-content:stretch!important}
.quick-book-color{align-self:stretch;min-height:34px;border-radius:999px;background:var(--quick-color,#66736a)}
.command-palette-search kbd{font-size:8px!important}

/* Collapsed navigation is a proper rail in both RTL and LTR: reopen, new-tab,
   then clickable book colours. No floating hamburger on the opposite side. */
.app-shell.sidebar-collapsed{grid-template-columns:48px minmax(0,1fr)!important}
body.ui-he .app-shell.sidebar-collapsed{grid-template-columns:minmax(0,1fr) 48px!important}
.sidebar.collapsed{width:48px!important;min-width:48px!important;padding:7px 5px!important;overflow:hidden!important;transform:none!important;gap:5px!important}
.sidebar>.sidebar-reopen{display:none!important}
.sidebar.collapsed>.sidebar-reopen{
  display:grid!important;position:static!important;inset:auto!important;width:34px!important;height:34px!important;min-height:34px!important;
  margin:0 auto 2px!important;border-radius:8px!important;box-shadow:none!important;place-items:center!important;flex:0 0 auto!important;
}
.sidebar.collapsed .sidebar-top-fixed,.sidebar.collapsed .sidebar-bottom-fixed{display:none!important}
.sidebar.collapsed .sidebar-tabs-section{display:flex!important;flex:1 1 auto!important;min-height:0!important;padding:0!important;margin:0!important;overflow-y:auto!important;flex-direction:column!important;gap:5px!important}
.sidebar.collapsed .sidebar-section-title{display:flex!important;justify-content:center!important;align-items:center!important;padding:0!important;margin:0 0 2px!important;flex:0 0 auto!important}
.sidebar.collapsed .sidebar-section-title>span{display:none!important}
.sidebar.collapsed #newTabButton{display:grid!important;place-items:center!important;width:32px!important;height:32px!important;min-height:32px!important;padding:0!important;font-size:20px!important;border:1px solid var(--border)!important;border-radius:8px!important;color:var(--muted)!important}
.sidebar.collapsed .sidebar-book-tabs{display:grid!important;gap:6px!important;width:100%!important;padding:0!important}
.sidebar.collapsed .reader-tab{display:block!important;width:34px!important;height:27px!important;min-height:27px!important;margin:0 auto!important;border:0!important;border-inline-start:10px solid var(--tab-color,#66736a)!important;border-radius:6px!important;background:color-mix(in srgb,var(--tab-color,#66736a) 13%,transparent)!important;padding:0!important;cursor:pointer!important}
.sidebar.collapsed .reader-tab.active{background:color-mix(in srgb,var(--tab-color,#66736a) 31%,transparent)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tab-color,#66736a) 60%,transparent)!important}
.sidebar.collapsed .reader-tab-open{display:block!important;width:100%!important;height:100%!important;padding:0!important}
.sidebar.collapsed .reader-tab-open span,.sidebar.collapsed .reader-tab-open small,.sidebar.collapsed .reader-tab-close{display:none!important}
.sidebar.collapsed .sidebar-empty-tabs{display:none!important}

/* Root shelf expander appears only when there really is overflow, and then is
   another shelf-height object rather than a second row underneath. */
.root-mixed-shelf.has-overflow:not(.expanded){display:flex;align-items:flex-end;gap:14px}
body.ui-he .root-mixed-shelf.has-overflow:not(.expanded){direction:rtl}
body.ui-en .root-mixed-shelf.has-overflow:not(.expanded){direction:ltr}
.root-mixed-shelf.has-overflow:not(.expanded) .root-mixed-collapsed{flex:1 1 auto;min-width:0}
.root-mixed-shelf.has-overflow:not(.expanded) .root-expand-control{
  display:flex!important;position:relative!important;inset:auto!important;flex:0 0 92px!important;width:92px!important;height:226px!important;
  min-height:226px!important;max-height:226px!important;margin:0 0 18px!important;padding:0 8px!important;border-radius:7px!important;
  flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:9px!important;
}
.root-mixed-shelf:not(.has-overflow):not(.expanded) .root-expand-control{display:none!important}
.root-mixed-shelf.expanded .root-expand-control{display:flex!important;position:static!important;width:max-content!important;height:34px!important;min-height:34px!important;max-height:34px!important;margin:8px 0 0!important;padding:5px 12px!important;flex-direction:row!important}

@media(max-width:820px){
  .search-hit-open{grid-template-columns:6px minmax(0,1fr);padding-inline-end:8px}.search-hit-kind{display:none}.search-hit-head{display:grid;gap:1px}.search-hit-head strong{max-width:70vw}
  .app-shell.sidebar-collapsed,body.ui-he .app-shell.sidebar-collapsed{grid-template-columns:1fr!important}
  .sidebar.collapsed{position:fixed!important;width:48px!important;min-width:48px!important;transform:none!important}
}

/* ===== v1.5.2 icon-preserving sidebar collapse ===== */
/* Collapse is now literally the full sidebar with its words hidden. This keeps
   every navigation icon at the same vertical position, leaves the open-book
   section where it was, and keeps Trash / Settings anchored at the bottom. */
.app-shell.sidebar-collapsed{grid-template-columns:58px minmax(0,1fr)!important}
body.ui-he .app-shell.sidebar-collapsed{grid-template-columns:minmax(0,1fr) 58px!important}
.sidebar.collapsed{
  width:58px!important;min-width:58px!important;height:100vh!important;
  padding:0!important;gap:0!important;overflow:hidden!important;transform:none!important;
  display:flex!important;flex-direction:column!important;
}

/* Keep the top block, its original spacing, and the same collapse/reopen
   control. Only the BSD wordmark disappears. */
.sidebar.collapsed .sidebar-top-fixed{
  display:block!important;flex:0 0 auto!important;padding:14px 13px 10px!important;
  border-bottom:1px solid var(--border)!important;background:transparent!important;
}
.sidebar.collapsed .sidebar-bsd-brand{display:flex!important;min-height:40px!important;padding-inline:4px!important}
.sidebar.collapsed .sidebar-bsd{visibility:hidden!important;width:0!important;max-width:0!important;overflow:hidden!important}
.sidebar.collapsed .sidebar-collapse{display:grid!important;flex:0 0 auto!important}
.sidebar.collapsed>.sidebar-reopen{display:none!important}
.sidebar.collapsed .compact-nav{display:grid!important;gap:2px!important;margin-top:3px!important}
.sidebar.collapsed .compact-nav .nav-item{
  display:flex!important;width:100%!important;min-height:29px!important;padding:8px 9px!important;
  border-radius:8px!important;font-size:13px!important;white-space:nowrap!important;overflow:hidden!important;
}
.sidebar.collapsed .compact-nav .nav-item>[data-i18n]{visibility:hidden!important}

/* The open-books region keeps the same flex allocation, border, padding,
   header height and tab height as the expanded sidebar. The labels disappear,
   but the coloured tabs remain full-height and clickable. */
.sidebar.collapsed .sidebar-tabs-section{
  display:flex!important;flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;
  overscroll-behavior:contain!important;padding:10px 8px 9px!important;margin:0!important;
  border-top:1px solid var(--border)!important;scrollbar-gutter:stable!important;
  flex-direction:column!important;gap:0!important;
}
.sidebar.collapsed .sidebar-section-title{
  display:flex!important;position:sticky!important;top:0!important;z-index:2!important;
  align-items:center!important;justify-content:space-between!important;gap:8px!important;
  min-height:29px!important;padding:0 5px 5px!important;margin:0!important;background:var(--panel)!important;
}
.sidebar.collapsed .sidebar-section-title>[data-i18n]{visibility:hidden!important;width:0!important;max-width:0!important;overflow:hidden!important}
.sidebar.collapsed #newTabButton{
  display:grid!important;place-items:center!important;width:26px!important;height:26px!important;min-height:26px!important;
  padding:0!important;font-size:20px!important;border:0!important;border-radius:7px!important;color:var(--muted)!important;
}
.sidebar.collapsed .sidebar-book-tabs{display:grid!important;gap:5px!important;align-content:start!important;width:100%!important;padding:0!important}
.sidebar.collapsed .reader-tab{
  display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:0!important;width:100%!important;
  height:auto!important;min-height:0!important;margin:0!important;padding-inline-start:1px!important;
  border:1px solid transparent!important;border-inline-start:4px solid var(--tab-color,#66736a)!important;
  border-radius:10px!important;background:transparent!important;overflow:hidden!important;
}
.sidebar.collapsed .reader-tab:hover{background:var(--hover)!important}
.sidebar.collapsed .reader-tab.active{
  background:var(--panel-2)!important;border-color:var(--border)!important;
  border-inline-start-color:var(--tab-color,#66736a)!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tab-color,#66736a) 35%,transparent)!important;
}
.sidebar.collapsed .reader-tab-open{
  display:grid!important;width:100%!important;height:auto!important;min-width:0!important;gap:2px!important;
  background:transparent!important;color:var(--text)!important;
}
body.ui-en .sidebar.collapsed .reader-tab-open{text-align:left!important;padding:8px 4px 8px 8px!important}
body.ui-he .sidebar.collapsed .reader-tab-open{text-align:right!important;padding:8px 8px 8px 4px!important}
.sidebar.collapsed .reader-tab-open span,.sidebar.collapsed .reader-tab-open small{
  display:block!important;visibility:hidden!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
}
.sidebar.collapsed .reader-tab-open span{font-size:12px!important;font-weight:700!important}
.sidebar.collapsed .reader-tab-open small{font-size:9px!important}
.sidebar.collapsed .reader-tab-close{display:none!important}
.sidebar.collapsed .sidebar-empty-tabs{visibility:hidden!important;display:block!important;min-height:28px!important}

/* Bottom actions remain bottom-fixed just as in the expanded sidebar. */
.sidebar.collapsed .sidebar-bottom-fixed{
  display:grid!important;flex:0 0 auto!important;gap:3px!important;padding:7px 8px!important;
  border-top:1px solid var(--border)!important;background:transparent!important;
}
.sidebar.collapsed .sidebar-bottom-fixed .nav-item{
  display:flex!important;width:100%!important;min-height:31px!important;padding:7px 8px!important;
  font-size:12px!important;white-space:nowrap!important;overflow:hidden!important;
}
.sidebar.collapsed .sidebar-bottom-fixed .nav-item>[data-i18n]{visibility:hidden!important}
.sidebar.collapsed .settings-icon-svg{visibility:visible!important;flex:0 0 17px!important}

@media(max-width:820px){
  .app-shell.sidebar-collapsed,body.ui-he .app-shell.sidebar-collapsed{grid-template-columns:1fr!important}
  .sidebar.collapsed{position:fixed!important;width:58px!important;min-width:58px!important;transform:none!important;padding:0!important}
}

/* ===== v1.5.3 unified sidebar icons + colour book tabs ===== */
/* One consistent outline language for every permanent sidebar action. */
.nav-icon,.sidebar-chevron-icon{
  width:18px;height:18px;min-width:18px;display:inline-grid;place-items:center;
  flex:0 0 18px;margin:0!important;color:currentColor;line-height:1;
}
.nav-icon svg,.sidebar-chevron-icon svg{
  width:18px;height:18px;display:block;fill:none;stroke:currentColor;
  stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;
}
.sidebar-chevron-icon{width:17px;height:17px;min-width:17px}
.sidebar-chevron-icon svg{width:17px;height:17px;stroke-width:1.8}
.settings-icon-svg,.settings-icon-svg svg{width:18px!important;height:18px!important;min-width:18px!important}
.settings-icon-svg svg{fill:none!important;stroke:currentColor!important;stroke-width:1.65!important}

/* Tighter rhythm and a fixed icon column in the expanded sidebar. */
.compact-nav{gap:0!important}
.compact-nav .nav-item,.sidebar-bottom-fixed .nav-item{
  gap:8px!important;align-items:center!important;
}
.compact-nav .nav-item{min-height:30px!important;padding:6px 8px!important}
.sidebar-bottom-fixed{gap:0!important}
.sidebar-bottom-fixed .nav-item{min-height:31px!important;padding:6px 8px!important}
body.ui-he .compact-nav .nav-item,body.ui-he .sidebar-bottom-fixed .nav-item{flex-direction:row!important}
.nav-item>.nav-icon+span{margin:0!important}

/* The plus button uses the same icon weight as the rest of the sidebar. */
#newTabButton .nav-icon{width:18px;height:18px;min-width:18px}
#newTabButton .nav-icon svg{width:18px;height:18px}

/* Expanded book tabs carry a quiet wash of their book colour. The strong
   colour remains confined to the leading edge. */
.sidebar:not(.collapsed) .reader-tab{
  background:color-mix(in srgb,var(--tab-color,#66736a) 18%,var(--panel))!important;
  border-color:color-mix(in srgb,var(--tab-color,#66736a) 16%,var(--border))!important;
  border-inline-start:4px solid var(--tab-color,#66736a)!important;
}
.sidebar:not(.collapsed) .reader-tab:hover{
  background:color-mix(in srgb,var(--tab-color,#66736a) 23%,var(--panel))!important;
}
.sidebar:not(.collapsed) .reader-tab.active{
  background:color-mix(in srgb,var(--tab-color,#66736a) 28%,var(--panel))!important;
  border-inline-start-color:var(--tab-color,#66736a)!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tab-color,#66736a) 32%,transparent)!important;
}
.reader-tab-initials{display:none!important}
.reader-tab-title{display:block}

/* When collapsed, book tabs become compact coloured squircles. Their initials
   are made from the first 2–3 words of the book title. */
.sidebar.collapsed .compact-nav .nav-item,.sidebar.collapsed .sidebar-bottom-fixed .nav-item{
  justify-content:center!important;padding-inline:0!important;margin-inline:auto!important;
  width:38px!important;min-width:38px!important;
}
.sidebar.collapsed .compact-nav .nav-item>.nav-icon,
.sidebar.collapsed .sidebar-bottom-fixed .nav-item>.nav-icon{margin:0!important}
.sidebar.collapsed .sidebar-tabs-section{padding-inline:8px!important}
.sidebar.collapsed .sidebar-section-title{justify-content:center!important;padding-inline:0!important}
.sidebar.collapsed #newTabButton{
  width:36px!important;height:32px!important;min-height:32px!important;margin:0 auto!important;
  display:grid!important;place-items:center!important;
}
.sidebar.collapsed .sidebar-book-tabs{gap:8px!important;justify-items:center!important}
.sidebar.collapsed .reader-tab{
  display:block!important;width:38px!important;height:38px!important;min-height:38px!important;
  margin:0 auto!important;padding:0!important;border:0!important;border-radius:12px!important;
  background:var(--tab-color,#66736a)!important;overflow:hidden!important;
  box-shadow:none!important;
}
.sidebar.collapsed .reader-tab:hover{
  background:var(--tab-color,#66736a)!important;
  filter:brightness(1.06);
}
.sidebar.collapsed .reader-tab.active{
  background:var(--tab-color,#66736a)!important;border:0!important;
  box-shadow:0 0 0 2px var(--panel),0 0 0 3px color-mix(in srgb,var(--tab-color,#66736a) 70%,var(--text))!important;
}
.sidebar.collapsed .reader-tab-open,
body.ui-en .sidebar.collapsed .reader-tab-open,
body.ui-he .sidebar.collapsed .reader-tab-open{
  display:grid!important;place-items:center!important;width:100%!important;height:100%!important;
  padding:0!important;text-align:center!important;gap:0!important;color:var(--tab-ink,#f7f5ef)!important;
}
.sidebar.collapsed .reader-tab-open .reader-tab-title,
.sidebar.collapsed .reader-tab-open small{display:none!important;visibility:hidden!important}
.sidebar.collapsed .reader-tab-open .reader-tab-initials{
  display:block!important;visibility:visible!important;margin:0!important;
  max-width:32px!important;font-size:10px!important;font-weight:750!important;line-height:1!important;
  letter-spacing:.02em!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:clip!important;
  color:var(--tab-ink,#f7f5ef)!important;
}
.sidebar.collapsed .reader-tab-close{display:none!important}

/* Replace Chromium's coloured/native search cancel affordance with a plain x. */
.search-page-input-wrap{position:relative!important;display:block!important}
.search-page-input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;display:none}
.search-page-input{width:100%!important;padding-inline-end:40px!important}
.search-clear-button{
  position:absolute;inset-inline-end:9px;top:50%;transform:translateY(-50%);
  width:27px;height:27px;border:0;background:transparent;color:var(--muted);
  display:grid;place-items:center;padding:0;border-radius:6px;font:400 19px/1 Arial,sans-serif;
  cursor:pointer;box-shadow:none!important;
}
.search-clear-button:hover{background:var(--hover);color:var(--text)}
.search-clear-button.hidden{display:none!important}


/* ===== v1.5.4 collapsed sidebar alignment + stronger tab colour ===== */
/* In the compact sidebar every permanent icon occupies the exact same centred
   column. Hidden labels take up no layout space, so RTL/LTR cannot push icons
   toward (or beyond) the edge of the 58px rail. */
.sidebar.collapsed .compact-nav,
.sidebar.collapsed .sidebar-bottom-fixed{
  width:100%!important;
}
.sidebar.collapsed .compact-nav .nav-item,
.sidebar.collapsed .sidebar-bottom-fixed .nav-item{
  display:grid!important;
  grid-template-columns:1fr!important;
  place-items:center!important;
  width:38px!important;
  min-width:38px!important;
  max-width:38px!important;
  margin-inline:auto!important;
  padding:6px 0!important;
  gap:0!important;
  overflow:visible!important;
  direction:ltr!important;
}
.sidebar.collapsed .compact-nav .nav-item>[data-i18n],
.sidebar.collapsed .sidebar-bottom-fixed .nav-item>[data-i18n]{
  display:none!important;
  width:0!important;
  min-width:0!important;
  max-width:0!important;
  margin:0!important;
  padding:0!important;
}
.sidebar.collapsed .compact-nav .nav-item>.nav-icon,
.sidebar.collapsed .sidebar-bottom-fixed .nav-item>.nav-icon{
  display:grid!important;
  place-items:center!important;
  width:18px!important;
  height:18px!important;
  min-width:18px!important;
  max-width:18px!important;
  margin:0!important;
  transform:none!important;
}
.sidebar.collapsed .compact-nav .nav-item>.nav-icon svg,
.sidebar.collapsed .sidebar-bottom-fixed .nav-item>.nav-icon svg{
  width:18px!important;
  height:18px!important;
  overflow:visible!important;
}
.sidebar.collapsed .sidebar-bsd-brand{
  justify-content:center!important;
  padding-inline:0!important;
}
.sidebar.collapsed .sidebar-collapse{
  margin:0 auto!important;
}
.sidebar.collapsed .sidebar-section-title{
  width:100%!important;
  justify-content:center!important;
}

/* More of each book colour is visible while the full sidebar is open, while
   the leading edge remains the saturated reference colour. */
.sidebar:not(.collapsed) .reader-tab{
  background:color-mix(in srgb,var(--tab-color,#66736a) 31%,var(--panel))!important;
  border-color:color-mix(in srgb,var(--tab-color,#66736a) 27%,var(--border))!important;
}
.sidebar:not(.collapsed) .reader-tab:hover{
  background:color-mix(in srgb,var(--tab-color,#66736a) 37%,var(--panel))!important;
}
.sidebar:not(.collapsed) .reader-tab.active{
  background:color-mix(in srgb,var(--tab-color,#66736a) 43%,var(--panel))!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tab-color,#66736a) 42%,transparent)!important;
}

/* Hebrew book-tab abbreviations use middle dots between initials (מ·ס rather
   than מס), making it obvious that the letters stand for separate words. */
.sidebar.collapsed .reader-tab-open .reader-tab-initials{
  max-width:36px!important;
}
.sidebar.collapsed .reader-tab-open .reader-tab-initials:dir(rtl){
  font-size:9px!important;
  letter-spacing:0!important;
}

/* ===== v1.5.5 library/search/DOCX polish ===== */
/* Segmented library-view control, inspired by a two-state switch but kept in
   the app's quiet paper/ink visual language. */
.library-view-segment{
  display:grid;grid-template-columns:1fr 1fr;align-items:stretch;
  min-width:150px;height:38px;padding:3px;border:1px solid color-mix(in srgb,var(--border) 82%,var(--text));
  border-radius:12px;background:var(--panel-2);overflow:hidden;
}
.library-view-segment-button{
  display:flex;align-items:center;justify-content:center;gap:6px;min-width:0;padding:0 9px;
  border:0;background:transparent;color:var(--muted);border-radius:8px;cursor:pointer;font:inherit;font-size:12px;
}
.library-view-segment-button+.library-view-segment-button{border-inline-start:1px solid color-mix(in srgb,var(--border) 65%,transparent)}
.library-view-segment-button.active{
  background:color-mix(in srgb,var(--accent) 17%,var(--panel));color:var(--text);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 62%,var(--border));
}
.library-view-segment-button.active+.library-view-segment-button,
.library-view-segment-button:has(+ .library-view-segment-button.active){border-inline-start-color:transparent}
.library-view-icon{width:17px;height:17px;display:grid;place-items:center;flex:0 0 17px}
.library-view-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}

/* Search folder filtering stays compact and subordinate to the actual query. */
.search-filter-line{display:flex;align-items:center;gap:10px;margin:10px 0 2px}
.search-folder-filter{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;min-width:0}
.search-folder-filter select{max-width:min(520px,62vw);height:34px;border:1px solid var(--border);border-radius:9px;background:var(--panel);color:var(--text);padding:0 10px}
.search-results-section .book-shelf:not(.expanded) .book-shelf-track{overflow:hidden!important;scroll-behavior:auto!important}
.search-results-section .book-shelf.has-overflow:not(.expanded){display:flex!important;align-items:flex-end!important;gap:14px!important}
.search-results-section .book-shelf.has-overflow:not(.expanded) .book-shelf-track{flex:1 1 auto!important;min-width:0!important;padding-inline-end:4px!important}
.search-results-section .book-shelf.has-overflow:not(.expanded) .shelf-expand-control{position:static!important;display:flex!important;flex:0 0 92px!important;width:92px!important;height:226px!important;min-height:226px!important;max-height:226px!important;margin:0 0 18px!important}

/* Selection is an inset ring in tree view so neighbouring rows never share or
   visually overwrite each other's green borders. */
.tree-book-row.is-selected{
  outline:0!important;background:color-mix(in srgb,var(--accent) 7%,var(--panel))!important;
  box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent) 78%,#fff)!important;
  margin-block:2px!important;
}

/* DOCX pages are visibly separate paper pages. Body height is measured by JS;
   page chrome itself does not force the document to appear as one giant page. */
.docx-reader{padding:28px 20px 52px!important;background:color-mix(in srgb,var(--reader-bg) 88%,#777 12%)!important}
.docx-pages{display:grid!important;gap:28px!important;justify-items:center!important}
.docx-page{
  position:relative!important;width:min(100%,900px)!important;min-height:1120px!important;
  padding:68px 170px 72px 72px!important;background:var(--panel)!important;
  border:1px solid color-mix(in srgb,var(--border) 80%,#777)!important;border-radius:2px!important;
  box-shadow:0 4px 18px rgba(0,0,0,.13)!important;box-sizing:border-box!important;
}
.docx-page-body{min-height:0!important;max-width:660px!important;overflow:visible!important}
.docx-page-number{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);font-size:10px;color:var(--muted);opacity:.72}
.docx-margin-comments{position:absolute!important;top:68px!important;right:18px!important;width:132px!important;display:grid!important;gap:10px!important}
.docx-margin-note{overflow-wrap:anywhere}
.docx-unplaced-comment{border-inline-start-style:dashed!important;opacity:.9}
.docx-oversize-page{min-height:calc(1120px + 8vh)!important}

/* A stronger, more saturated leading edge on open-book tabs. Logical start is
   the right edge in Hebrew and the left edge in English. */
.sidebar:not(.collapsed) .reader-tab{position:relative!important;border-inline-start:0!important;overflow:hidden!important}
.sidebar:not(.collapsed) .reader-tab::before{
  content:"";position:absolute;inset-block:0;inset-inline-start:0;width:5px;background:var(--tab-color,#66736a);
  filter:saturate(2.25) contrast(1.08);z-index:2;pointer-events:none;
}

/* Small app logo beside the centered title. */
.topbar-title{display:flex;align-items:center;gap:8px}
.topbar-logo{width:22px;height:22px;display:block;flex:0 0 22px}

@media(max-width:820px){
  .library-view-segment{min-width:112px}.library-view-segment-button span:last-child{display:none}.library-view-segment-button{padding:0 7px}
  .search-folder-filter{width:100%}.search-folder-filter select{flex:1;max-width:none;min-width:0}
  .search-results-section .book-shelf.has-overflow:not(.expanded){display:block!important}
  .search-results-section .book-shelf.has-overflow:not(.expanded) .shelf-expand-control{display:none!important}
  .search-results-section .book-shelf:not(.expanded) .book-shelf-track{overflow-x:auto!important}
  .docx-page{padding:42px 28px 54px!important;min-height:900px!important}.docx-margin-comments{position:static!important;width:auto!important;margin-top:24px!important}.docx-reader{padding:8px!important}
}

/* ===== v1.5.6 ===== */
/* DOCX falls back to stable line-based navigation. The document remains rich
   HTML, while Word comments stay beside the line that carries their anchor. */
.docx-line-reader{padding:24px 18px 54px!important;background:color-mix(in srgb,var(--reader-bg) 91%,#777 9%)!important}
.docx-line-document{width:min(100%,980px);margin:0 auto;background:var(--panel);border:1px solid var(--border);box-shadow:0 2px 14px rgba(0,0,0,.07);padding:42px 34px 58px;box-sizing:border-box}
.docx-line{display:grid;grid-template-columns:42px minmax(0,1fr) 150px;gap:16px;align-items:start;min-width:0;padding:5px 0;border-bottom:1px solid color-mix(in srgb,var(--border) 36%,transparent)}
.docx-line:last-child{border-bottom:0}.docx-line-number{position:sticky;top:8px;font:10px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--muted);opacity:.64;text-align:end;padding-top:8px}
.docx-line-content{min-width:0}.docx-line-content .docx-block{margin:0}.docx-line-content p{margin:.45em 0 .8em}.docx-line-content table{width:100%;border-collapse:collapse;margin:.6em 0}.docx-line-content td,.docx-line-content th{border:1px solid var(--border);padding:7px;vertical-align:top}
.docx-line-comments{display:grid;gap:8px;min-width:0;padding-top:4px}.docx-line-comments:empty{display:block}.docx-unplaced-comments{margin:28px 0 0 58px;padding-top:16px;border-top:1px solid var(--border);display:grid;gap:8px}.docx-unplaced-comments>strong{font-size:11px;color:var(--muted)}
.reader-side-location input[data-docx-line]{width:62px}

/* Compact sort is a true squircle: the select remains native/accessibile but
   visually the control is just the small sorting icon. */
.sort-squircle{position:relative;width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--border);border-radius:12px;background:var(--panel);color:var(--text);overflow:hidden;flex:0 0 38px}
.sort-squircle:hover{background:var(--hover)}.sort-squircle-icon{width:18px;height:18px;display:grid;place-items:center;pointer-events:none}.sort-squircle-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.sort-squircle select{position:absolute;inset:0;width:100%!important;height:100%!important;opacity:0!important;cursor:pointer;border:0!important;padding:0!important}.study-list-toolbar{display:flex;align-items:center;justify-content:space-between;margin:0 0 8px}

/* Search filters live behind one compact filter button. */
.search-filter-button{position:relative;width:38px!important;height:38px!important;border-radius:12px!important}.search-filter-button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}.search-filter-count{position:absolute;top:-4px;inset-inline-end:-4px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--accent);color:var(--panel);font:700 9px/16px system-ui;text-align:center}
.search-filter-panel{margin-top:12px;border:1px solid var(--border);border-radius:14px;background:var(--panel);padding:14px;display:grid;grid-template-columns:minmax(170px,.7fr) minmax(220px,1fr) minmax(280px,1.5fr);gap:14px;box-shadow:0 8px 22px rgba(30,27,22,.04)}.search-filter-panel.hidden{display:none!important}
.search-filter-group{min-width:0;display:grid;align-content:start;gap:9px}.search-filter-group+.search-filter-group{border-inline-start:1px solid var(--border);padding-inline-start:14px}.search-filter-group-title{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;font-weight:700;color:var(--muted)}
.search-filter-chips{display:flex;flex-wrap:wrap;gap:6px}.filter-chip{border:1px solid var(--border);background:var(--panel-2);color:var(--muted);border-radius:9px;padding:6px 9px;font:inherit;font-size:11px;cursor:pointer}.filter-chip:hover{color:var(--text)}.filter-chip.active{border-color:color-mix(in srgb,var(--accent) 70%,var(--border));background:color-mix(in srgb,var(--accent) 12%,var(--panel));color:var(--text)}
.search-folder-tree{max-height:250px;overflow:auto;border:1px solid color-mix(in srgb,var(--border) 72%,transparent);border-radius:10px;padding:5px}.search-folder-node-line{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center}.search-folder-tree-toggle{width:20px;height:25px;border:0;background:transparent;color:var(--muted);padding:0;cursor:pointer}.search-folder-tree-spacer{width:20px}.search-folder-choice{width:100%;min-width:0;border:0;background:transparent;color:var(--text);border-radius:7px;padding:5px 7px;display:flex;align-items:center;gap:7px;text-align:start;font:inherit;font-size:11px;cursor:pointer}.search-folder-choice:hover{background:var(--hover)}.search-folder-choice.active{background:color-mix(in srgb,var(--accent) 14%,var(--panel));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 60%,var(--border))}.search-folder-children{margin-inline-start:14px}.search-folder-children.collapsed{display:none}
.search-filter-group .search-tag-create{display:flex;gap:6px}.search-filter-group .search-tag-create.hidden{display:none!important}.search-filter-group .search-tag-create input{min-width:0;width:100%;border:1px solid var(--border);background:var(--panel-2);color:var(--text);border-radius:9px;padding:7px 9px}

/* Search shelves are always clipped to the content width until expanded. This
   specifically prevents RTL flex content from extending indefinitely left. */
.search-results-section,.search-result-section{min-width:0!important;max-width:100%!important;overflow:hidden!important}.search-results-section .book-shelf{width:100%!important;max-width:100%!important;min-width:0!important;overflow:hidden!important}.search-results-section .book-shelf:not(.expanded) .book-shelf-track{width:100%!important;max-width:100%!important;min-width:0!important;overflow:hidden!important;overflow-x:hidden!important;touch-action:pan-y}.search-results-section .book-shelf.has-overflow:not(.expanded){display:flex!important;width:100%!important;max-width:100%!important;overflow:hidden!important}.search-results-section .book-shelf.has-overflow:not(.expanded) .book-shelf-track{flex:1 1 0!important;width:0!important;max-width:none!important}.search-results-section .book-shelf.has-overflow:not(.expanded) .shelf-expand-control{display:flex!important;flex:0 0 92px!important;position:static!important;margin:0 0 18px!important}

@media(max-width:820px){.search-filter-panel{grid-template-columns:1fr}.search-filter-group+.search-filter-group{border-inline-start:0;border-top:1px solid var(--border);padding-inline-start:0;padding-top:12px}.docx-line-document{padding:28px 16px}.docx-line{grid-template-columns:34px minmax(0,1fr);gap:10px}.docx-line-comments{grid-column:2;margin-top:4px}.docx-unplaced-comments{margin-inline-start:44px}.search-results-section .book-shelf:not(.expanded) .book-shelf-track{overflow-x:hidden!important}.search-results-section .shelf-expand-control{display:flex!important}}

/* ===== v1.5.7 contrast + reading/search alignment ===== */
.study-switcher{
  position:relative!important;
  top:auto!important;
  z-index:1!important;
  background:var(--bg)!important;
  backdrop-filter:none!important;
}

.shelf-volume{--volume-ink:#f7f5ef}
.volume-cover{color:var(--volume-ink)!important}
.volume-cover strong{color:var(--volume-ink)!important;text-shadow:none!important}
.volume-rule{background:var(--volume-ink)!important;opacity:.36!important}
.volume-star{color:var(--volume-ink)!important;opacity:.68!important;text-shadow:none!important}
.volume-star.active{color:var(--volume-ink)!important;opacity:1!important}
.category-volume .category-folder-mark,.category-volume .category-tab{color:var(--volume-ink)!important}

.sidebar:not(.collapsed) .reader-tab{
  background:color-mix(in srgb,var(--tab-color,#66736a) 72%,var(--panel))!important;
  border-color:color-mix(in srgb,var(--tab-ink,#f7f5ef) 24%,var(--tab-color,#66736a))!important;
}
.sidebar:not(.collapsed) .reader-tab:hover{background:color-mix(in srgb,var(--tab-color,#66736a) 77%,var(--panel))!important}
.sidebar:not(.collapsed) .reader-tab.active{
  background:color-mix(in srgb,var(--tab-color,#66736a) 82%,var(--panel))!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tab-ink,#f7f5ef) 28%,transparent)!important;
}
.sidebar:not(.collapsed) .reader-tab-open,
.sidebar:not(.collapsed) .reader-tab-open .reader-tab-title,
.sidebar:not(.collapsed) .reader-tab-open small,
.sidebar:not(.collapsed) .reader-tab-close{color:var(--tab-ink,#f7f5ef)!important}
.sidebar:not(.collapsed) .reader-tab-open small{opacity:.72!important}
.sidebar:not(.collapsed) .reader-tab-close{opacity:.7!important}
.sidebar:not(.collapsed) .reader-tab-close:hover{color:var(--tab-ink,#f7f5ef)!important;background:color-mix(in srgb,var(--tab-ink,#f7f5ef) 13%,transparent)!important}
.sidebar:not(.collapsed) .reader-tab::before{
  filter:saturate(3) contrast(1.12)!important;
  box-shadow:inset -1px 0 0 color-mix(in srgb,var(--tab-ink,#f7f5ef) 22%,transparent)!important;
}
body.ui-he .sidebar:not(.collapsed) .reader-tab::before{box-shadow:inset 1px 0 0 color-mix(in srgb,var(--tab-ink,#f7f5ef) 22%,transparent)!important}

.search-results-section .book-shelf.has-overflow:not(.expanded){align-items:flex-end!important}
.search-results-section .book-shelf.has-overflow:not(.expanded) .shelf-expand-control{
  align-self:flex-end!important;
  height:226px!important;
  min-height:226px!important;
  max-height:226px!important;
  margin:0 0 6px!important;
}
@media(max-width:1050px) and (min-width:821px){
  .search-results-section .book-shelf.has-overflow:not(.expanded) .shelf-expand-control{
    height:216px!important;min-height:216px!important;max-height:216px!important;
  }
}
.category-volume .category-folder-mark{background:var(--volume-ink)!important;opacity:.28!important}


/* ===== v1.5.8 final polish ===== */
/* Stronger material gradient remains visible even for near-white and near-black custom colors. */
.shelf-volume .volume-cover{
  background:linear-gradient(145deg,
    color-mix(in srgb,var(--volume-color) 72%,#fff) 0%,
    color-mix(in srgb,var(--volume-color) 92%,#fff) 28%,
    var(--volume-color) 58%,
    color-mix(in srgb,var(--volume-color) 74%,#000) 100%)!important;
}
.category-volume .category-tab{background:linear-gradient(180deg,color-mix(in srgb,var(--volume-color) 82%,#fff),color-mix(in srgb,var(--volume-color) 72%,#000))!important;border-color:color-mix(in srgb,var(--volume-color) 68%,#222)!important}
/* Final specificity fixes the old white-only top rule from earlier releases. */
.book-volume .volume-cover > .volume-rule:first-child,
.book-volume .volume-cover > .volume-rule-bottom{
  background:var(--volume-ink)!important;
  opacity:.38!important;
}
.volume-cover strong{overflow-wrap:anywhere;word-break:normal}
.volume-cover strong.unbroken-title{-webkit-line-clamp:2!important;line-clamp:2!important;overflow-wrap:anywhere!important;word-break:break-word!important;max-width:100%}
/* Favorite moves into hover actions. */
.book-volume>.volume-star{display:none!important}
.volume-favorite-action{font-size:18px!important}.volume-favorite-action.active{color:#f1b733!important}.volume-favorite-action:not(.active){color:inherit!important}

/* Tree rows echo the exact book/folder color without turning the tree into covers. */
.tree-book-row{border-inline-start:4px solid var(--tree-color,transparent)!important}
.tree-node>summary{border-inline-start:4px solid var(--tree-color,transparent)!important}
.tree-book-row .tree-file-icon{background:color-mix(in srgb,var(--tree-color,#777) 78%,var(--panel))!important;color:var(--tree-ink,var(--text))!important;border:1px solid color-mix(in srgb,var(--tree-color,#777) 70%,var(--border))}
.tree-node>summary .tree-folder-icon{width:26px;height:24px;border-radius:6px;display:grid;place-items:center;background:color-mix(in srgb,var(--tree-color,#777) 76%,var(--panel));color:var(--tree-ink,var(--text))!important}
.tree-book-row.is-selected{outline-offset:0!important}

/* Keep the + header out of the scrolling book-tab viewport. */
.sidebar-tabs-scroll{overflow:hidden!important;display:flex!important;flex-direction:column!important;min-height:0!important}
.sidebar-tabs-scroll .sidebar-section-title{position:relative!important;top:auto!important;z-index:1!important;flex:0 0 auto!important;background:var(--panel)!important}
.sidebar-tabs-scroll .sidebar-book-tabs{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain!important;padding-bottom:8px!important}
.sidebar.collapsed .sidebar-tabs-section{overflow:hidden!important}
.sidebar.collapsed .sidebar-book-tabs{overflow-y:auto!important;overflow-x:hidden!important}

/* Reader header: one clear back arrow; the global sidebar has its own consistent chevron. */
.reader-back svg{width:19px;height:19px;display:block;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
body.ui-he .reader-back svg{transform:scaleX(-1)}

/* Optional line numbers. */
.line-number-toggle{width:34px!important;height:34px!important;padding:6px!important;border-radius:10px!important;flex:0 0 34px}
.line-number-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.line-reader.hide-line-numbers .line-number,.docx-line-reader.hide-line-numbers .docx-line-number{display:none!important}
.line-reader.hide-line-numbers .text-line{grid-template-columns:minmax(0,1fr)!important;gap:0!important}
.docx-line-reader.hide-line-numbers .docx-line{grid-template-columns:minmax(0,1fr) 150px!important}

/* Multi-select filter affordances + reset action. */
.search-filter-panel-head{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--border)}
.search-filter-panel-head strong{font-size:12px}.reset-search-filters{padding:6px 10px!important;font-size:11px!important}
.search-folder-choice{grid-template-columns:18px minmax(0,1fr)!important}.search-folder-check{width:16px;height:16px;border:1px solid var(--border);border-radius:5px;display:grid;place-items:center;font-size:10px;line-height:1;flex:0 0 16px}.search-folder-choice.active .search-folder-check{border-color:color-mix(in srgb,var(--accent) 70%,var(--border));background:color-mix(in srgb,var(--accent) 15%,var(--panel))}

/* App-information card. */
.app-info-list{display:grid;gap:0;margin:12px 0 0}.app-info-list>div{display:grid;grid-template-columns:minmax(130px,1fr) minmax(0,1.25fr);gap:12px;padding:8px 0;border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent)}.app-info-list>div:last-child{border-bottom:0}.app-info-list dt{font-size:11px;color:var(--muted)}.app-info-list dd{margin:0;font-size:11px;font-weight:650;overflow-wrap:anywhere}.app-link-placeholder{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:500!important}

@media(max-width:820px){
  .docx-line-reader.hide-line-numbers .docx-line{grid-template-columns:minmax(0,1fr)!important}.docx-line-reader.hide-line-numbers .docx-line-comments{grid-column:1!important}
  .app-info-list>div{grid-template-columns:1fr;gap:3px}
}

/* ===== v1.5.9 restrained material + tab scrolling + reconnect controls ===== */
/* Restore a quiet, material-like gradient. White and black still get a small
   tonal shift, without the dramatic four-stop shading from v1.5.8. */
.shelf-volume .volume-cover{
  background:linear-gradient(145deg,
    color-mix(in srgb,var(--volume-color) 92%,#fff) 0%,
    var(--volume-color) 53%,
    color-mix(in srgb,var(--volume-color) 90%,#000) 100%)!important;
}
.category-volume .category-tab{
  background:linear-gradient(180deg,color-mix(in srgb,var(--volume-color) 94%,#fff),color-mix(in srgb,var(--volume-color) 91%,#000))!important;
  border-color:color-mix(in srgb,var(--volume-color) 88%,var(--text))!important;
}

/* Open-book tabs must scroll, never compress to fit the available height. */
.sidebar-tabs-section.sidebar-tabs-scroll{overflow:hidden!important;min-height:0!important}
.sidebar-tabs-section .sidebar-book-tabs{
  flex:1 1 0!important;min-height:0!important;height:0!important;
  overflow-y:auto!important;overflow-x:hidden!important;
  display:grid!important;grid-auto-rows:max-content!important;align-content:start!important;
  gap:5px!important;overscroll-behavior:contain!important;scrollbar-gutter:stable!important;
}
.sidebar:not(.collapsed) .sidebar-book-tabs .reader-tab{min-height:50px!important;height:auto!important;flex:none!important}
.sidebar.collapsed .sidebar-book-tabs{gap:8px!important;justify-items:center!important}
.sidebar.collapsed .sidebar-book-tabs .reader-tab{min-height:38px!important;height:38px!important}

/* Softer, round-joined favorite star centred in its action square. */
.volume-favorite-action,.tree-star{display:grid!important;place-items:center!important}
.favorite-star-svg{width:18px;height:18px;display:block;overflow:visible}
.favorite-star-svg path{fill:transparent;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}
.volume-favorite-action.active .favorite-star-svg path,.tree-star.active .favorite-star-svg path{fill:currentColor;stroke:currentColor}
.volume-favorite-action{font-size:0!important;line-height:0!important;padding:0!important}
.volume-favorite-action.active{color:#efb43a!important}
.tree-star{font-size:0!important;padding:0!important}
.tree-star.active{color:#d9a22e!important}

.reconnect-book-action{font-size:16px!important;line-height:1!important}
.reconnect-zone{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px;border:1px solid var(--border);border-radius:11px;background:var(--panel-2)}
.reconnect-zone>div{display:grid;gap:3px;min-width:0}.reconnect-zone strong{font-size:12px}.reconnect-zone span{font-size:10px;color:var(--muted);line-height:1.45}.reconnect-zone button{flex:0 0 auto}
.disconnected-cleanup{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:11px;padding-top:11px;border-top:1px solid var(--border)}
.disconnected-cleanup>span{font-size:10px;color:var(--muted)}
.danger-outline-button{border:1px solid color-mix(in srgb,#a64b45 55%,var(--border));background:transparent;color:#a64b45;border-radius:9px;padding:7px 10px;font:inherit;font-size:10px;cursor:pointer}
.danger-outline-button:hover:not(:disabled){background:color-mix(in srgb,#a64b45 8%,transparent)}
.danger-outline-button:disabled{opacity:.4;cursor:default}
@media(max-width:820px){.reconnect-zone,.disconnected-cleanup{align-items:stretch;flex-direction:column}.reconnect-zone button,.danger-outline-button{width:100%}}

/* ===== v1.6.0 reader scaling / settings / tab polish ===== */
.reader-zoom-controls{display:inline-flex;align-items:center;gap:3px;border:1px solid var(--border);border-radius:10px;padding:2px;background:var(--panel)}
.reader-zoom-controls .icon-button{width:30px!important;height:30px!important;min-height:30px!important;padding:0!important;border:0!important;background:transparent!important}
.reader-zoom-value{height:30px;min-width:50px;padding:0 8px;border:0;background:transparent;color:var(--text);font:inherit;font-size:11px;font-weight:700;cursor:pointer;border-radius:7px}
.reader-zoom-value:hover{background:var(--panel-2)}

/* Reader favorite uses exactly the same rounded SVG star language as book hover. */
.reader-favorite{display:grid!important;place-items:center!important;padding:0!important}
.reader-favorite .favorite-star-svg{width:18px;height:18px}
.reader-favorite.active{color:#efb43a!important}
.reader-favorite.active .favorite-star-svg path{fill:currentColor;stroke:currentColor}
.reader-favorite:not(.active) .favorite-star-svg path{fill:transparent;stroke:currentColor}

/* Give every tab a little breathing room so its saturated edge/outline never
   collides with a neighbouring tab or disappears below section chrome. */
.sidebar-tabs-section .sidebar-book-tabs{padding:3px 5px 10px!important;box-sizing:border-box!important}
.sidebar:not(.collapsed) .sidebar-book-tabs .reader-tab{width:calc(100% - 2px)!important;margin:1px!important;box-sizing:border-box!important;border-radius:9px!important;isolation:isolate!important}
.sidebar:not(.collapsed) .reader-tab::before{inset-block:3px!important;border-radius:4px!important}
.sidebar.collapsed .sidebar-book-tabs{padding-inline:4px!important}
.sidebar.collapsed .reader-tab{margin-block:2px!important}

/* Compact settings live together rather than stretching to full card height. */
.settings-grid-v160{align-items:start!important}
.settings-compact-stack{display:grid;gap:8px;align-self:start;min-width:0}
.settings-card-compact{padding:13px 15px!important;align-self:start!important}
.settings-card-compact h4{margin-bottom:4px!important}
.settings-card-compact .settings-actions{margin-top:7px!important}
.distribution-card{align-self:start}
.settings-download-link{text-decoration:none!important;display:inline-flex!important;align-items:center;justify-content:center}
.app-site-link-row{display:flex;align-items:center;gap:7px;margin-top:11px;padding:8px 9px;border:1px solid var(--border);border-radius:9px;background:var(--panel-2);min-width:0}
.app-site-link-row code{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:10px}
.app-site-link-row .tiny-button{flex:0 0 auto}
.trash-delete-all{align-self:center;font-size:11px!important;padding:8px 11px!important}

@media(max-width:820px){
  .reader-zoom-controls{order:2}
  .settings-compact-stack{gap:7px}
  .settings-card-compact{padding:12px!important}
}

/* ===== v1.6.1 final interaction + layout pass ===== */
/* Collapsed book-tab outlines are kept entirely inside each squircle, so they
   cannot collide with neighbouring tabs or be clipped by the scroll viewport. */
.sidebar.collapsed .sidebar-book-tabs{
  gap:10px!important;
  padding:6px 7px 12px!important;
  scrollbar-gutter:stable!important;
}
.sidebar.collapsed .reader-tab{
  width:38px!important;height:38px!important;min-height:38px!important;
  margin:0!important;box-sizing:border-box!important;
  border:1px solid color-mix(in srgb,var(--tab-ink,#f7f5ef) 28%,var(--tab-color,#66736a))!important;
  box-shadow:none!important;outline:0!important;
}
.sidebar.collapsed .reader-tab.active{
  border:2px solid color-mix(in srgb,var(--tab-ink,#f7f5ef) 70%,var(--tab-color,#66736a))!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--panel) 72%,transparent)!important;
}

/* Quick book switcher: title and full folder path share the first line, while
   the author stays below in quieter text. */
.quick-book-main{min-width:0;display:grid;gap:3px}
.quick-book-title-line{min-width:0;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.quick-book-title-line strong{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.quick-book-breadcrumb{font-size:9px!important;color:var(--muted)!important;opacity:.82;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}
.quick-book-author{font-size:10px!important;color:var(--muted)!important}

/* Settings use fixed, content-sized cards. When the sidebar changes width the
   card cluster reflows around the centre instead of stretching across columns. */
.settings-page-v161{min-width:0}
.settings-grid-v161{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(250px,310px))!important;
  justify-content:center!important;
  align-items:start!important;
  gap:10px!important;
  width:100%!important;
  max-width:1320px!important;
  margin-inline:auto!important;
}
.settings-grid-v161 .settings-card{
  width:100%!important;min-width:0!important;align-self:start!important;
  padding:14px!important;box-sizing:border-box!important;
}
.settings-grid-v161 .settings-card-compact{padding:12px 14px!important}
.settings-grid-v161 .settings-card h4{margin:0 0 5px!important}
.settings-grid-v161 .settings-actions{margin-top:8px!important;gap:7px!important}
.settings-grid-v161 .settings-help{margin-bottom:0!important}

/* Number fields in note/bookmark editors stay compact. */
.form-field input[type="number"]{max-width:150px}

@media(max-width:720px){
  .settings-grid-v161{grid-template-columns:minmax(0,1fr)!important;max-width:420px!important}
  .quick-book-breadcrumb{max-width:180px}
}

/* ===== v1.6.2 settings composition + collapsed-tab clearance ===== */
/* Keep the entire Settings composition on one centred design grid. The title
   shares the exact same width as the cards, so RTL does not push it to the
   far edge of the main content area. */
.settings-page-v162{margin-top:34px!important;min-width:0!important}
.settings-layout-v162{
  width:min(100%,1010px)!important;
  margin-inline:auto!important;
  min-width:0!important;
}
.settings-header-v162{
  width:100%!important;
  margin:0 0 14px!important;
  padding-inline:2px!important;
  box-sizing:border-box!important;
}
.settings-header-v162 h3{margin:0!important}
.settings-grid-v162{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:14px!important;
  width:100%!important;
  align-items:stretch!important;
}
.settings-grid-v162>.settings-card,
.settings-grid-v162>.settings-compact-stack-v162{
  min-width:0!important;
  width:100%!important;
  box-sizing:border-box!important;
}
.settings-grid-v162>.settings-card{height:100%!important;padding:15px!important}
.settings-grid-v162 .settings-card h4{margin:0 0 7px!important}
.settings-grid-v162 .settings-actions{gap:7px!important;margin-top:9px!important}
.settings-grid-v162 .settings-help{margin-bottom:0!important}

/* Language / Appearance / Backup remain three visibly independent cards, but
   together occupy exactly one normal settings-grid slot. */
.settings-compact-stack-v162{
  display:grid!important;
  grid-template-rows:repeat(3,minmax(0,1fr))!important;
  gap:8px!important;
  height:100%!important;
  align-self:stretch!important;
}
.settings-mini-card-v162{
  min-height:0!important;
  padding:10px 12px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:10px!important;
  height:100%!important;
  box-sizing:border-box!important;
}
.settings-mini-card-v162 h4{margin:0!important;white-space:nowrap!important}
.settings-mini-card-v162 .settings-actions{
  margin:0!important;
  flex-wrap:nowrap!important;
  justify-content:flex-end!important;
  gap:6px!important;
}
.settings-mini-card-v162 .secondary-button{padding:7px 9px!important;white-space:nowrap!important}
.settings-page-v162 .settings-credits{width:100%!important;margin:24px 0 4px!important}

/* The collapsed tab rail has its own protected inset. Hide the tiny native
   scrollbar so it cannot steal horizontal space and clip the squircle border. */
.sidebar.collapsed .sidebar-book-tabs{
  box-sizing:border-box!important;
  width:100%!important;
  padding:6px 9px 12px!important;
  gap:9px!important;
  justify-items:center!important;
  overflow-x:hidden!important;
  scrollbar-width:none!important;
  scrollbar-gutter:auto!important;
}
.sidebar.collapsed .sidebar-book-tabs::-webkit-scrollbar{width:0!important;height:0!important;display:none!important}
.sidebar.collapsed .sidebar-book-tabs .reader-tab{
  width:36px!important;
  min-width:36px!important;
  max-width:36px!important;
  height:36px!important;
  min-height:36px!important;
  margin:0!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
.sidebar.collapsed .sidebar-book-tabs .reader-tab.active{
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--panel) 78%,transparent)!important;
}

@media(max-width:1100px){
  .settings-layout-v162{width:min(100%,680px)!important}
  .settings-grid-v162{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:720px){
  .settings-page-v162{margin-top:26px!important}
  .settings-layout-v162{width:min(100%,390px)!important}
  .settings-grid-v162{grid-template-columns:minmax(0,1fr)!important;gap:11px!important}
  .settings-compact-stack-v162{height:auto!important;grid-template-rows:none!important}
  .settings-mini-card-v162{min-height:58px!important;height:auto!important}
}

/* ===== v1.6.3 consistency / Office-temp hardening / collapsed-tab polish ===== */
/* One favorite glyph everywhere: same rounded outline, same centering and fill. */
.volume-favorite-action,
.tree-star,
.reader-favorite,
.saved-favorite,
.favorite-saved-star,
.bulk-favorite-button{
  --favorite-gold:#efb43a;
}
.volume-favorite-action .favorite-star-svg,
.tree-star .favorite-star-svg,
.reader-favorite .favorite-star-svg,
.saved-favorite .favorite-star-svg,
.favorite-saved-star .favorite-star-svg,
.bulk-favorite-button .favorite-star-svg{
  width:18px!important;
  height:18px!important;
  display:block!important;
  margin:auto!important;
  overflow:visible!important;
  flex:0 0 18px!important;
}
.volume-favorite-action .favorite-star-svg path,
.tree-star .favorite-star-svg path,
.reader-favorite .favorite-star-svg path,
.saved-favorite .favorite-star-svg path,
.favorite-saved-star .favorite-star-svg path,
.bulk-favorite-button .favorite-star-svg path{
  fill:transparent!important;
  stroke:currentColor!important;
  stroke-width:1.55!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}
.volume-favorite-action.active,
.tree-star.active,
.reader-favorite.active,
.saved-favorite.active,
.favorite-saved-star.active{color:var(--favorite-gold)!important}
.volume-favorite-action.active .favorite-star-svg path,
.tree-star.active .favorite-star-svg path,
.reader-favorite.active .favorite-star-svg path,
.saved-favorite.active .favorite-star-svg path,
.favorite-saved-star.active .favorite-star-svg path{
  fill:currentColor!important;
  stroke:currentColor!important;
}
.saved-favorite,.favorite-saved-star{display:grid!important;place-items:center!important;padding:0!important;line-height:0!important}
.bulk-favorite-button{display:inline-flex!important;align-items:center!important;gap:6px!important}
.bulk-favorite-button .favorite-star-svg{width:15px!important;height:15px!important}

/* Closed sidebar: reserve a larger gap on the app-facing side and move the
   coloured book squircles toward the physical edge of the screen. */
body.ui-he .sidebar.collapsed .sidebar-book-tabs{
  padding-left:10px!important;
  padding-right:2px!important;
}
body.ui-en .sidebar.collapsed .sidebar-book-tabs{
  padding-left:2px!important;
  padding-right:10px!important;
}
.sidebar.collapsed .sidebar-book-tabs .reader-tab{
  width:36px!important;
  min-width:36px!important;
  max-width:36px!important;
  height:36px!important;
  min-height:36px!important;
  border-radius:12px!important;
}

/* Ctrl+Shift+K: suppress Chromium's native search decoration and use one plain,
   monochrome clear x that belongs to the app's visual language. */
.command-palette-search{
  grid-template-columns:24px minmax(0,1fr) 28px auto!important;
}
#commandPaletteInput::-webkit-search-cancel-button{
  -webkit-appearance:none!important;
  appearance:none!important;
  display:none!important;
}
.command-palette-clear{
  width:28px;height:28px;padding:0;border:0;border-radius:6px;
  background:transparent;color:var(--muted);font:400 19px/1 Arial,sans-serif;
  display:grid;place-items:center;cursor:pointer;box-shadow:none;
}
.command-palette-clear:hover{background:var(--hover);color:var(--text)}
.command-palette-clear:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 55%,transparent);outline-offset:1px}

/* ===== v1.6.4 TXT reading experience overhaul ===== */
.txt-reader-v164{
  padding:28px 22px 72px!important;
  background:color-mix(in srgb,var(--reader-bg) 92%,var(--panel) 8%)!important;
  color:var(--text);
  line-height:1.82!important;
  scroll-padding-top:48px;
  overscroll-behavior:contain;
}
.txt-book-page{
  width:min(100%,820px);
  min-height:calc(100% - 8px);
  margin:0 auto;
  padding:clamp(42px,6vw,72px) clamp(30px,7vw,78px) clamp(62px,8vw,96px);
  background:
    linear-gradient(180deg,color-mix(in srgb,var(--panel) 98%,#fff 2%),var(--panel));
  border:1px solid color-mix(in srgb,var(--border) 82%,transparent);
  border-radius:7px;
  box-shadow:0 10px 34px rgba(0,0,0,.12);
  font-family:"Noto Serif Hebrew","David Libre","Times New Roman",Georgia,serif;
  text-rendering:optimizeLegibility;
  font-kerning:normal;
}
body.dark .txt-book-page{
  background:linear-gradient(180deg,color-mix(in srgb,var(--panel) 96%,#fff 4%),var(--panel));
  box-shadow:0 12px 34px rgba(0,0,0,.30);
}
.txt-reader-v164.txt-width-narrow .txt-book-page{width:min(100%,680px)}
.txt-reader-v164.txt-width-book .txt-book-page{width:min(100%,820px)}
.txt-reader-v164.txt-width-wide .txt-book-page{width:min(100%,1060px)}

.txt-reader-v164 .text-line{
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  gap:16px;
  align-items:baseline;
  min-height:1.82em;
  padding:.04em .25em;
  margin-inline:-.25em;
  border-radius:6px;
  transition:background .12s ease;
}
.txt-reader-v164 .text-line:not(.is-blank):hover{
  background:color-mix(in srgb,var(--accent) 5%,transparent);
}
.txt-reader-v164 .line-number{
  font:10px/1.3 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  color:var(--muted);
  opacity:.30;
  text-align:end;
  user-select:none;
  font-variant-numeric:tabular-nums;
  transition:opacity .12s ease;
}
.txt-reader-v164 .text-line:hover>.line-number{opacity:.78}
.txt-reader-v164 .line-text{
  min-width:0;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  word-break:normal;
  unicode-bidi:plaintext;
  text-align:start;
}
.txt-reader-v164 .text-line.is-blank{
  min-height:.92em;
  line-height:.92;
}
.txt-reader-v164 .text-line.is-blank .line-number{opacity:.12}
.txt-reader-v164 .text-line.is-heading{
  margin-top:1.2em;
  margin-bottom:.55em;
  align-items:center;
}
.txt-reader-v164 .text-line.is-heading .line-text,
.txt-reader-v164 .txt-reflow-heading .txt-heading-text{
  font-weight:750;
  line-height:1.35;
  letter-spacing:.005em;
}
.txt-reader-v164 .text-line.heading-1 .line-text,
.txt-reader-v164 .txt-reflow-heading.heading-1 .txt-heading-text{font-size:1.34em}
.txt-reader-v164 .text-line.heading-2 .line-text,
.txt-reader-v164 .txt-reflow-heading.heading-2 .txt-heading-text{font-size:1.18em}
.txt-reader-v164 .text-line.heading-3 .line-text,
.txt-reader-v164 .txt-reflow-heading.heading-3 .txt-heading-text{font-size:1.08em}

/* Reflow is optional: it joins source lines visually into paragraphs while
   retaining each original source line as an exact bookmark/search anchor. */
.txt-reader-v164.txt-reflow .txt-paragraph{
  margin:0 0 1.18em;
  padding:0;
  line-height:1.9;
  text-align:start;
}
.txt-reader-v164.txt-reflow .txt-source-segment{display:inline;position:relative}
.txt-reader-v164.txt-reflow .txt-source-segment .segment-text{
  unicode-bidi:plaintext;
  overflow-wrap:anywhere;
}
.txt-reader-v164.txt-reflow .txt-source-segment>.line-number{
  display:inline-block;
  width:auto;
  margin-inline:.35em .22em;
  vertical-align:super;
  font-size:.48em;
  opacity:.26;
}
.txt-reader-v164.txt-reflow .txt-source-segment:hover>.line-number{opacity:.82}
.txt-reader-v164.txt-reflow .txt-paragraph-gap{
  min-height:.82em;
  position:relative;
}
.txt-reader-v164.txt-reflow .txt-paragraph-gap>.line-number{
  position:absolute;
  inset-inline-start:-42px;
  top:0;
  opacity:.10;
}
.txt-reader-v164.txt-reflow .txt-reflow-heading{
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  gap:16px;
  align-items:baseline;
  margin:1.45em 0 .72em;
}
.txt-reader-v164.line-reader.hide-line-numbers .text-line{
  grid-template-columns:minmax(0,1fr)!important;
  gap:0!important;
}
.txt-reader-v164.line-reader.hide-line-numbers .line-number{display:none!important}
.txt-reader-v164.line-reader.hide-line-numbers .txt-reflow-heading{
  grid-template-columns:minmax(0,1fr)!important;
  gap:0!important;
}

.txt-width-toggle,.txt-reflow-toggle{
  width:34px!important;
  height:34px!important;
  min-height:34px!important;
  padding:6px!important;
  border-radius:10px!important;
}
.txt-width-toggle svg,.txt-reflow-toggle svg{
  width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round;
}
.txt-reflow-toggle.active-toggle,
.line-number-toggle.active-toggle{
  background:color-mix(in srgb,var(--accent) 12%,var(--panel))!important;
  border-color:color-mix(in srgb,var(--accent) 38%,var(--border))!important;
  color:var(--accent)!important;
}
.txt-top-button{height:34px!important;min-height:34px!important;padding:0 10px!important}

@media(max-width:760px){
  .txt-reader-v164{padding:12px 8px 50px!important}
  .txt-book-page{padding:30px 18px 62px;border-radius:4px}
  .txt-reader-v164 .text-line{grid-template-columns:30px minmax(0,1fr);gap:10px}
  .txt-reader-v164.txt-reflow .txt-reflow-heading{grid-template-columns:30px minmax(0,1fr);gap:10px}
  .txt-reader-v164.txt-reflow .txt-paragraph-gap>.line-number{inset-inline-start:-28px}
}

/* ===== v1.6.5 reader-side resize, stable line gutters, search matching ===== */

/* Saved-item header controls stay in one compact row; the star no longer
   changes the height/geometry of a note or bookmark card. */
.note-item-header,.bookmark-item-header{align-items:flex-start!important}
.note-item-header>div,.bookmark-item-header>div{
  display:flex!important;align-items:center!important;justify-content:flex-end!important;
  gap:2px!important;flex:0 0 auto!important;min-width:0!important
}
.note-item-header .tiny-button,.bookmark-item-header .tiny-button{
  width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important;
  display:grid!important;place-items:center!important;padding:0!important;line-height:1!important
}
.note-item-header .saved-favorite,.bookmark-item-header .saved-favorite{align-self:center!important}

/* Desktop reader side pane behaves like a resizable desktop window pane. */
.reader-side{position:relative!important}
@media (min-width:821px){
  .reader-layout:not(.side-closed){grid-template-columns:minmax(0,1fr) var(--reader-side-width,340px)!important}
  body.ui-he .reader-layout:not(.side-closed){grid-template-columns:var(--reader-side-width,340px) minmax(0,1fr)!important}
  .reader-side-resizer{
    position:absolute;top:0;bottom:0;width:10px;z-index:30;cursor:col-resize;
    touch-action:none;background:transparent
  }
  .reader-side-resizer::after{
    content:"";position:absolute;top:0;bottom:0;width:2px;left:4px;
    background:transparent;transition:background .12s ease
  }
  .reader-side-resizer:hover::after,body.reader-side-resizing .reader-side-resizer::after{
    background:color-mix(in srgb,var(--accent) 58%,var(--border))
  }
  body.ui-en .reader-side-resizer{left:-5px}
  body.ui-he .reader-side-resizer{right:-5px}
  body.reader-side-resizing{cursor:col-resize!important;user-select:none!important}
  body.reader-side-resizing *{cursor:col-resize!important}
}
@media (max-width:820px){.reader-side-resizer{display:none!important}}

/* Three fixed columns mean line-number visibility never changes text width.
   Standard TXT places the number opposite the detected text direction. */
.txt-reader-v164 .text-line{
  direction:ltr!important;
  grid-template-columns:34px minmax(0,1fr) 34px!important;
  column-gap:10px!important
}
.txt-reader-v164 .text-line>.line-text{grid-column:2!important;grid-row:1!important}
.txt-reader-v164 .text-line.txt-dir-rtl>.line-number{grid-column:1!important;grid-row:1!important;text-align:right!important}
.txt-reader-v164 .text-line.txt-dir-ltr>.line-number{grid-column:3!important;grid-row:1!important;text-align:left!important}
.txt-reader-v164.line-reader.hide-line-numbers .text-line{
  grid-template-columns:34px minmax(0,1fr) 34px!important;gap:10px!important
}
.txt-reader-v164.line-reader.hide-line-numbers .line-number,
.txt-reader-v164.line-reader.hide-line-numbers .reflow-line-number{
  display:block!important;visibility:hidden!important;opacity:0!important
}

/* Reflow uses a permanent physical-left gutter with a source-line range. */
.txt-reader-v164.txt-reflow .txt-reflow-row,
.txt-reader-v164.txt-reflow .txt-reflow-heading{
  display:grid!important;direction:ltr!important;
  grid-template-columns:34px minmax(0,1fr) 34px!important;
  column-gap:10px!important;align-items:baseline!important
}
.txt-reader-v164.txt-reflow .reflow-line-number{
  grid-column:1!important;grid-row:1!important;
  font:10px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  color:var(--muted);opacity:.34;text-align:right;user-select:none;font-variant-numeric:tabular-nums
}
.txt-reader-v164.txt-reflow .txt-paragraph-body,
.txt-reader-v164.txt-reflow .txt-heading-text{grid-column:2!important;grid-row:1!important;min-width:0!important}
.txt-reader-v164.txt-reflow .txt-right-gutter{grid-column:3!important;grid-row:1!important}
.txt-reader-v164.txt-reflow .txt-paragraph{
  margin:0 0 1.18em!important;padding:0!important;line-height:1.9!important;text-align:start!important
}
.txt-reader-v164.txt-reflow .txt-source-segment{display:inline!important;position:relative!important}
.txt-reader-v164.txt-reflow .txt-source-segment>.line-number{display:none!important}
.txt-reader-v164.txt-reflow .txt-paragraph-gap{min-height:.82em!important;position:relative!important}
.txt-reader-v164.txt-reflow .txt-paragraph-gap>.line-number{display:none!important}
.txt-reader-v164.txt-reflow .txt-reflow-heading{margin:1.45em 0 .72em!important}

/* DOCX line numbering also keeps its gutter when hidden, so its text/comments
   never jump horizontally when the numbering button is toggled. */
.docx-line-reader.hide-line-numbers .docx-line-number{
  display:block!important;visibility:hidden!important;opacity:0!important
}
.docx-line-reader.hide-line-numbers .docx-line{
  grid-template-columns:42px minmax(0,1fr) 150px!important;gap:16px!important
}
.docx-line-reader.hide-line-numbers .docx-line-comments{grid-column:auto!important}

.search-filter-help{display:block;margin-top:7px;color:var(--muted);font-size:11px;line-height:1.45}
.search-match-mode .filter-chip{white-space:normal;text-align:start}
.trash-header-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}

@media(max-width:820px){
  .txt-reader-v164 .text-line,
  .txt-reader-v164.line-reader.hide-line-numbers .text-line,
  .txt-reader-v164.txt-reflow .txt-reflow-row,
  .txt-reader-v164.txt-reflow .txt-reflow-heading{
    grid-template-columns:28px minmax(0,1fr) 28px!important;column-gap:7px!important
  }
  .docx-line-reader.hide-line-numbers .docx-line{grid-template-columns:34px minmax(0,1fr)!important;gap:10px!important}
  .docx-line-reader.hide-line-numbers .docx-line-comments{grid-column:2!important}
  .trash-header-actions{justify-content:flex-start}
}


/* ===== v1.6.6 line-number direction correction =====
   Line numbers sit on the logical start side of the source text:
   RTL text -> physical right gutter; LTR text -> physical left gutter.
   Paragraph reflow intentionally remains in the physical left gutter. */
.txt-reader-v164 .text-line.txt-dir-rtl>.line-number{
  grid-column:3!important;
  grid-row:1!important;
  text-align:left!important
}
.txt-reader-v164 .text-line.txt-dir-ltr>.line-number{
  grid-column:1!important;
  grid-row:1!important;
  text-align:right!important
}

/* ===== v1.7.0 performance / reliability surfaces ===== */
.background-task-status{
  position:fixed;inset-inline-start:50%;bottom:22px;transform:translateX(-50%);z-index:180;
  width:min(560px,calc(100vw - 36px));display:flex;align-items:center;gap:14px;padding:12px 14px;
  border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:0 12px 40px rgba(0,0,0,.18)
}
.background-task-status.hidden{display:none}
.background-task-main{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:3px 12px;min-width:0;flex:1}
.background-task-main strong{white-space:nowrap}
.background-task-main [data-task-detail]{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.background-task-track{grid-column:1/-1;height:4px;border-radius:999px;background:var(--soft);overflow:hidden}
.background-task-track span{display:block;height:100%;width:0;background:var(--accent);transition:width .15s ease}
.background-task-cancel{flex:0 0 auto}
.search-index-status{display:flex;align-items:center;gap:8px;margin:10px 0;color:var(--muted);font-size:12px}
.search-index-spinner{width:12px;height:12px;border:1.5px solid currentColor;border-inline-end-color:transparent;border-radius:50%;animation:shtut-spin .8s linear infinite}
@keyframes shtut-spin{to{transform:rotate(360deg)}}
.search-async-placeholder{padding:18px 0;color:var(--muted);font-size:13px}
.search-tip{margin:7px 3px 0;color:var(--muted);font-size:11px;line-height:1.45}
.search-load-more-wrap{display:flex;justify-content:center;padding:16px 0 4px}
.health-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}
.health-grid>div{display:flex;flex-direction:column;gap:2px;padding:10px 11px;border-radius:10px;background:var(--soft)}
.health-grid strong{font-size:20px}.health-grid span{font-size:11px;color:var(--muted)}
.health-grid .health-warning strong{color:var(--danger)}
.toast{display:flex;align-items:center;gap:12px}
.toast-undo{border:0;background:transparent;color:inherit;text-decoration:underline;font:inherit;font-weight:700;cursor:pointer;padding:2px 4px}
.update-banner{position:fixed;inset-inline-start:50%;top:16px;transform:translateX(-50%);z-index:210;display:flex;align-items:center;gap:14px;padding:10px 12px 10px 16px;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:0 10px 30px rgba(0,0,0,.16);font-size:13px}
.update-banner button{border:1px solid var(--line);border-radius:9px;background:var(--soft);color:inherit;padding:7px 10px;cursor:pointer;font:inherit}
@media (max-width:700px){.background-task-main{grid-template-columns:1fr}.background-task-main [data-task-detail]{grid-column:1}.health-grid{grid-template-columns:1fr}.update-banner{width:calc(100vw - 24px);justify-content:space-between}}

/* ===== v1.7.1 focused search + reader polish ===== */
/* DOCX lines without comments should use the full reading width instead of
   reserving a large empty marginal-comment column. */
.docx-line-document{padding-inline:24px!important}
.docx-line.no-comments{grid-template-columns:42px minmax(0,1fr)!important;gap:12px!important}
.docx-line.no-comments>.docx-line-comments{display:none!important}
.docx-line.has-comments{grid-template-columns:42px minmax(0,1fr) 118px!important;gap:12px!important}
.docx-line.has-comments>.docx-line-comments{display:grid!important}
.docx-line-comments:empty{display:none!important}
@media(max-width:820px){
  .docx-line-document{padding-inline:14px!important}
  .docx-line.no-comments,.docx-line.has-comments{grid-template-columns:34px minmax(0,1fr)!important;gap:9px!important}
  .docx-line.has-comments>.docx-line-comments{grid-column:2!important;margin-top:4px!important}
}

/* Give the folder tree most of the search-filter card. */
.search-filter-panel-v171{
  grid-template-columns:minmax(210px,.72fr) minmax(360px,1.7fr)!important;
  grid-template-rows:auto minmax(0,1fr)!important;
  align-items:stretch!important;
}
.search-filter-panel-v171>.search-filter-panel-head{grid-column:1/-1!important}
.search-filter-side-stack{display:grid;align-content:start;gap:12px;min-width:0}
.search-filter-side-stack>.search-filter-group{min-width:0}
.search-folder-filter-large{min-width:0;display:flex!important;flex-direction:column;min-height:0}
.search-folder-filter-large .search-filter-group-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.search-folder-filter-large .search-filter-group-title small{font-weight:400;color:var(--muted);font-size:10px}
.search-folder-filter-large .search-folder-tree{max-height:390px!important;min-height:250px;flex:1}
.search-folder-choice.included{background:color-mix(in srgb,var(--accent) 15%,var(--panel))!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 68%,var(--border))!important}
.search-folder-choice.included .search-folder-check{border-color:color-mix(in srgb,var(--accent) 78%,var(--border))!important;background:color-mix(in srgb,var(--accent) 19%,var(--panel))!important}
.search-folder-choice.excluded{background:color-mix(in srgb,#b85f55 10%,var(--panel))!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,#b85f55 55%,var(--border))!important}
.search-folder-choice.excluded .search-folder-check{border-color:color-mix(in srgb,#b85f55 72%,var(--border))!important;color:#b85f55!important;background:color-mix(in srgb,#b85f55 10%,var(--panel))!important}
@media(max-width:900px){
  .search-filter-panel-v171{grid-template-columns:1fr!important;grid-template-rows:auto!important}
  .search-folder-filter-large .search-folder-tree{min-height:180px;max-height:300px!important}
}
.search-filter-side-stack>.search-filter-group+.search-filter-group{border-inline-start:0!important;padding-inline-start:0!important;border-top:1px solid color-mix(in srgb,var(--border) 70%,transparent);padding-top:10px}

/* v1.7.5 search controls */
.search-author-select{width:100%;min-height:40px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);padding:7px 10px;font:inherit}
.search-scope-chips .filter-chip{min-width:0}
.search-filter-panel-v171 .search-filter-side-stack{align-content:start}

/* ===== v1.8.0 first-run onboarding + persistent reconnect ===== */
body.onboarding-mode .sidebar,
body.onboarding-mode .topbar{display:none!important}
body.onboarding-mode .app-shell,
body.ui-he.onboarding-mode .app-shell,
body.ui-en.onboarding-mode .app-shell{grid-template-columns:minmax(0,1fr)!important;direction:ltr!important}
body.onboarding-mode .main-area{grid-column:1!important;direction:inherit!important;min-width:0}
body.onboarding-mode .content{padding:0!important;max-width:none!important;width:100%!important}
.onboarding-screen{min-height:100vh;display:grid;place-items:center;padding:38px 28px;background:var(--bg);box-sizing:border-box}
.onboarding-shell{width:min(980px,100%);direction:rtl}
body.ui-en .onboarding-shell{direction:ltr}
.onboarding-brand{display:flex;align-items:center;gap:20px;margin:0 0 30px}
.onboarding-brand>img{width:62px;height:62px;object-fit:contain;flex:0 0 62px}
.onboarding-brand h1{font-size:clamp(28px,4vw,45px);font-weight:520;line-height:1.1;margin:5px 0 8px;color:var(--text)}
.onboarding-brand p{margin:0;color:var(--muted);font-size:15px}
.onboarding-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}
.onboarding-option{border:1px solid var(--border);border-radius:15px;background:var(--panel);padding:23px;display:flex;flex-direction:column;align-items:flex-start;min-height:250px;box-shadow:0 8px 26px rgba(44,42,36,.045)}
.onboarding-option-primary{border-color:color-mix(in srgb,var(--accent) 42%,var(--border))}
.onboarding-option-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--soft);font-size:20px;margin-bottom:16px;color:var(--text)}
.onboarding-option h2{font-size:19px;margin:0 0 9px;color:var(--text)}
.onboarding-option p{font-size:13px;line-height:1.65;color:var(--muted);margin:0 0 22px;flex:1}
.onboarding-option .primary-button,.onboarding-option .secondary-button{width:100%;justify-content:center;text-decoration:none;box-sizing:border-box}
.onboarding-foot{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:18px;padding:0 4px;color:var(--muted)}
.onboarding-foot small{font-size:11px;line-height:1.5;max-width:610px}
.text-button{border:0;background:transparent;color:var(--muted);padding:6px 3px;cursor:pointer;text-decoration:underline;text-underline-offset:3px;font:inherit;white-space:nowrap}
.text-button:hover{color:var(--text)}
.startup-reconnect{min-height:calc(100vh - 70px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--muted)}
.startup-reconnect img{width:48px;height:48px;margin-bottom:7px}
.startup-reconnect strong{color:var(--text);font-size:17px;font-weight:560}
.startup-reconnect span{font-size:12px}
.reconnect-banner{margin:0 0 18px;border:1px solid var(--border);background:var(--panel);border-radius:12px;padding:12px 15px;display:flex;align-items:center;justify-content:space-between;gap:18px}
.reconnect-banner>div{display:flex;flex-direction:column;gap:3px;min-width:0}
.reconnect-banner strong{font-size:13px;color:var(--text)}
.reconnect-banner span{font-size:11px;color:var(--muted);line-height:1.45}
.reconnect-banner-info{border-style:dashed}
@media(max-width:820px){.onboarding-options{grid-template-columns:1fr}.onboarding-option{min-height:0}.onboarding-foot{align-items:flex-start;flex-direction:column}.onboarding-brand{align-items:flex-start}.onboarding-screen{padding:26px 18px}}

/* ===== v1.8.1 starter library + floating reconnect prompt ===== */
.starter-library-chooser{display:grid;gap:12px;margin:4px 0 2px}
.starter-library-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.starter-library-choice{position:relative;display:flex;align-items:center;gap:9px;padding:11px 12px;border:1px solid var(--border);border-radius:11px;background:var(--panel-2);cursor:pointer;user-select:none}
.starter-library-choice:hover{border-color:color-mix(in srgb,var(--accent) 42%,var(--border));background:var(--soft)}
.starter-library-choice input{position:absolute;opacity:0;pointer-events:none}
.starter-library-check{display:grid;place-items:center;width:19px;height:19px;border:1px solid var(--border);border-radius:6px;color:transparent;background:var(--panel);font-size:12px;font-weight:800;flex:0 0 19px}
.starter-library-choice input:checked+.starter-library-check{color:var(--panel);background:var(--accent);border-color:var(--accent)}
.starter-library-choice strong{font-size:13px;font-weight:600;color:var(--text)}

.reconnect-floating-prompt{position:fixed;z-index:175;bottom:20px;width:min(370px,calc(100vw - 36px));display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 13px;padding:14px 15px 13px;border:1px solid var(--border);border-radius:14px;background:var(--panel);box-shadow:0 12px 40px rgba(0,0,0,.17);direction:rtl}
body.ui-he .reconnect-floating-prompt{left:18px;right:auto}
body.ui-en .reconnect-floating-prompt{right:18px;left:auto;direction:ltr}
.reconnect-floating-prompt>div{display:grid;gap:3px;min-width:0;padding-inline-start:18px}
.reconnect-floating-prompt strong{font-size:13px;color:var(--text)}
.reconnect-floating-prompt span{font-size:11px;line-height:1.45;color:var(--muted)}
.reconnect-floating-prompt>.secondary-button{grid-column:2;grid-row:1;align-self:center;white-space:nowrap}
body.ui-en .reconnect-floating-prompt>.secondary-button{grid-column:2}
.reconnect-prompt-close{position:absolute;top:5px;inset-inline-start:5px;width:26px;height:26px;display:grid;place-items:center;border:0;background:transparent;color:var(--muted);font-size:17px;line-height:1;border-radius:7px;cursor:pointer}
.reconnect-prompt-close:hover{background:var(--soft);color:var(--text)}
@media(max-width:640px){.starter-library-grid{grid-template-columns:1fr}.reconnect-floating-prompt{left:12px!important;right:12px!important;width:auto;bottom:12px}}

/* ===== v1.8.2 multi-source first-run setup ===== */
.onboarding-setup-status{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:-8px 0 18px;padding:12px 15px;border:1px solid var(--border);border-radius:12px;background:var(--soft);color:var(--text)}
.onboarding-setup-status strong{font-size:13px;white-space:nowrap}
.onboarding-setup-status span{font-size:12px;line-height:1.5;color:var(--muted)}
.onboarding-finish-button{min-width:150px;justify-content:center}
@media(max-width:640px){.onboarding-setup-status{align-items:flex-start;flex-direction:column;gap:4px}}


/* v1.9.0 — selectable logical lines / paragraphs */
.reader-segment{cursor:pointer;border-radius:6px;transition:background-color .12s ease,box-shadow .12s ease}
.txt-reader-v164 .reader-segment:hover,.docx-line-reader .reader-segment:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)!important}
.reader-segment.is-selected{background:color-mix(in srgb,var(--accent) 15%,transparent)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 34%,transparent)}
.reader-segment:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 65%,transparent);outline-offset:2px}
.reader-blank-line{cursor:default!important;pointer-events:none!important;user-select:text}
.txt-reader-v164 .reader-blank-line{min-height:1.45em;background:transparent!important;box-shadow:none!important}
.txt-reader-v164 .reader-blank-line .line-number{visibility:hidden!important}
.docx-line-reader .reader-blank-line{min-height:1.45em;background:transparent!important;box-shadow:none!important;border-bottom-color:transparent!important}
.docx-line-reader .reader-blank-line .docx-line-number{visibility:hidden!important}


/* ===== v1.9.2 direction, selection and commentary panel ===== */
.txt-book-page{position:relative}
/* The final v1.9.x TXT renderer always tags the logical direction. */
.txt-reader-v164 .text-line.txt-dir-rtl>.line-number{grid-column:3!important;text-align:left!important}
.txt-reader-v164 .text-line.txt-dir-ltr>.line-number{grid-column:1!important;text-align:right!important}
.txt-reader-v164 .text-line.txt-dir-rtl>.line-text{text-align:right!important}
.txt-reader-v164 .text-line.txt-dir-ltr>.line-text{text-align:left!important}
/* Reflow range numbers also follow the paragraph direction. */
.txt-reader-v164.txt-reflow .txt-reflow-row.txt-dir-rtl>.reflow-line-number,
.txt-reader-v164.txt-reflow .txt-reflow-heading.txt-dir-rtl>.reflow-line-number{grid-column:3!important;text-align:left!important}
.txt-reader-v164.txt-reflow .txt-reflow-row.txt-dir-rtl>.txt-paragraph-body,
.txt-reader-v164.txt-reflow .txt-reflow-heading.txt-dir-rtl>.txt-heading-text{grid-column:2!important;text-align:right!important}
.txt-reader-v164.txt-reflow .txt-reflow-row.txt-dir-rtl>.txt-right-gutter,
.txt-reader-v164.txt-reflow .txt-reflow-heading.txt-dir-rtl>.txt-right-gutter{grid-column:1!important}
.txt-reader-v164.txt-reflow .txt-reflow-row.txt-dir-ltr>.reflow-line-number,
.txt-reader-v164.txt-reflow .txt-reflow-heading.txt-dir-ltr>.reflow-line-number{grid-column:1!important;text-align:right!important}
.txt-reader-v164.txt-reflow .txt-reflow-row.txt-dir-ltr>.txt-paragraph-body,
.txt-reader-v164.txt-reflow .txt-reflow-heading.txt-dir-ltr>.txt-heading-text{grid-column:2!important;text-align:left!important}
.txt-reader-v164.txt-reflow .txt-reflow-row.txt-dir-ltr>.txt-right-gutter,
.txt-reader-v164.txt-reflow .txt-reflow-heading.txt-dir-ltr>.txt-right-gutter{grid-column:3!important}
/* Inline reflow segments keep the exact click target, but their selected
   decoration is replaced by one full-width band. */
.txt-reader-v164.txt-reflow .txt-source-segment.is-selected{background:transparent!important;box-shadow:none!important;border-radius:0!important}
.segment-selection-band-v192{position:absolute;z-index:0;pointer-events:none;border-radius:8px;background:color-mix(in srgb,var(--accent) 15%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 34%,transparent)}
.txt-book-page>*:not(.segment-selection-band-v192){position:relative;z-index:1}
/* DOCX places its number on the logical start side of each paragraph. */
.docx-line.no-comments.docx-dir-ltr{grid-template-columns:42px minmax(0,1fr)!important}
.docx-line.no-comments.docx-dir-ltr>.docx-line-number{grid-column:1!important;text-align:right!important}.docx-line.no-comments.docx-dir-ltr>.docx-line-content{grid-column:2!important;text-align:left!important}
.docx-line.no-comments.docx-dir-rtl{grid-template-columns:minmax(0,1fr) 42px!important}
.docx-line.no-comments.docx-dir-rtl>.docx-line-content{grid-column:1!important;text-align:right!important}.docx-line.no-comments.docx-dir-rtl>.docx-line-number{grid-column:2!important;text-align:left!important}
.docx-line.has-comments.docx-dir-ltr{grid-template-columns:42px minmax(0,1fr) 118px!important}.docx-line.has-comments.docx-dir-ltr>.docx-line-number{grid-column:1!important}.docx-line.has-comments.docx-dir-ltr>.docx-line-content{grid-column:2!important}.docx-line.has-comments.docx-dir-ltr>.docx-line-comments{grid-column:3!important}
.docx-line.has-comments.docx-dir-rtl{grid-template-columns:118px minmax(0,1fr) 42px!important}.docx-line.has-comments.docx-dir-rtl>.docx-line-comments{grid-column:1!important}.docx-line.has-comments.docx-dir-rtl>.docx-line-content{grid-column:2!important;text-align:right!important}.docx-line.has-comments.docx-dir-rtl>.docx-line-number{grid-column:3!important;text-align:left!important}
.commentary-context-v192{width:100%;display:grid;gap:2px;padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:var(--panel-2)}
.commentary-context-v192 span,.commentary-context-v192 small{font-size:10px;color:var(--muted)}.commentary-context-v192 strong{font-size:12px}
.commentary-list-v192{display:grid;gap:10px}.commentary-item-v192{border:1px solid var(--border);border-radius:11px;background:var(--panel);padding:11px 12px;display:grid;gap:7px}.commentary-item-v192 header{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.commentary-item-v192 small{font-size:9px;color:var(--muted)}.commentary-item-v192>div{font-size:13px;line-height:1.65;white-space:pre-wrap}
@media(max-width:820px){.docx-line.no-comments.docx-dir-rtl{grid-template-columns:minmax(0,1fr) 34px!important}.docx-line.no-comments.docx-dir-ltr{grid-template-columns:34px minmax(0,1fr)!important}.docx-line.has-comments.docx-dir-rtl,.docx-line.has-comments.docx-dir-ltr{grid-template-columns:34px minmax(0,1fr)!important}.docx-line.has-comments>.docx-line-comments{grid-column:2!important;margin-top:4px!important}.docx-line.has-comments.docx-dir-rtl>.docx-line-number{grid-column:1!important}.docx-line.has-comments.docx-dir-rtl>.docx-line-content{grid-column:2!important}}


/* ===== v1.9.3 RTL-only reader =====
   Preserve the existing RTL reader UI and make it the sole reading direction.
   Application chrome can still follow the chosen UI language. */
.txt-reader-v164,
.txt-reader-v164 .txt-book-page,
.txt-reader-v164 .line-text,
.txt-reader-v164 .txt-heading-text,
.txt-reader-v164 .txt-paragraph-body,
.txt-reader-v164 .segment-text,
.docx-line-reader,
.docx-line-reader .docx-line-content,
.docx-line-reader .docx-line-content *{
  direction:rtl!important;
  text-align:right!important;
}
/* Retain the established RTL gutter geometry even if old saved markup still
   carries an LTR class from a previous session/version. */
.txt-reader-v164 .text-line.txt-dir-ltr>.line-number{grid-column:3!important;text-align:left!important}
.txt-reader-v164 .text-line.txt-dir-ltr>.line-text{text-align:right!important}
.txt-reader-v164.txt-reflow .txt-reflow-row.txt-dir-ltr>.reflow-line-number,
.txt-reader-v164.txt-reflow .txt-reflow-heading.txt-dir-ltr>.reflow-line-number{grid-column:3!important;text-align:left!important}
.txt-reader-v164.txt-reflow .txt-reflow-row.txt-dir-ltr>.txt-paragraph-body,
.txt-reader-v164.txt-reflow .txt-reflow-heading.txt-dir-ltr>.txt-heading-text{grid-column:2!important;text-align:right!important}
.txt-reader-v164.txt-reflow .txt-reflow-row.txt-dir-ltr>.txt-right-gutter,
.txt-reader-v164.txt-reflow .txt-reflow-heading.txt-dir-ltr>.txt-right-gutter{grid-column:1!important}
.docx-line.no-comments.docx-dir-ltr{grid-template-columns:minmax(0,1fr) 42px!important}
.docx-line.no-comments.docx-dir-ltr>.docx-line-content{grid-column:1!important;text-align:right!important}
.docx-line.no-comments.docx-dir-ltr>.docx-line-number{grid-column:2!important;text-align:left!important}
.docx-line.has-comments.docx-dir-ltr{grid-template-columns:118px minmax(0,1fr) 42px!important}
.docx-line.has-comments.docx-dir-ltr>.docx-line-comments{grid-column:1!important}
.docx-line.has-comments.docx-dir-ltr>.docx-line-content{grid-column:2!important;text-align:right!important}
.docx-line.has-comments.docx-dir-ltr>.docx-line-number{grid-column:3!important;text-align:left!important}
@media(max-width:820px){
  .docx-line.no-comments.docx-dir-ltr{grid-template-columns:minmax(0,1fr) 34px!important}
  .docx-line.has-comments.docx-dir-ltr{grid-template-columns:34px minmax(0,1fr)!important}
  .docx-line.has-comments.docx-dir-ltr>.docx-line-number{grid-column:1!important}
  .docx-line.has-comments.docx-dir-ltr>.docx-line-content{grid-column:2!important}
}

/* v1.9.4: installed commentary snippets open their exact local segment. */
.commentary-item-openable-v194{cursor:pointer;transition:border-color .12s ease,background .12s ease,transform .12s ease}
.commentary-item-openable-v194:hover,.commentary-item-openable-v194:focus-visible{border-color:var(--accent);background:var(--hover);outline:none}
.commentary-item-openable-v194:active{transform:translateY(1px)}

/* v1.9.5 — Add from Sefaria / browser-offline storage */
.add-source-grid-v195{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:8px 0 18px}.add-source-card-v195{border:1px solid var(--line,#d7d0c3);background:var(--panel,#fff);border-radius:18px;padding:22px 18px;display:flex;flex-direction:column;align-items:flex-start;gap:7px;text-align:start;cursor:pointer;min-height:150px}.add-source-card-v195:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(0,0,0,.08)}.add-source-card-v195>span{font-size:28px;line-height:1}.add-source-card-v195 strong{font-size:1.05rem}.add-source-card-v195 small{opacity:.72;line-height:1.45}.add-source-sefaria-v195>span{font-family:Georgia,serif;border:1px solid currentColor;border-radius:50%;width:34px;height:34px;display:grid;place-items:center}.sefaria-import-v195{display:flex;flex-direction:column;gap:14px}.sefaria-options-v195{display:flex;flex-wrap:wrap;gap:12px 20px;padding:4px 0}.sefaria-options-v195 label,.sefaria-collection-card-v195 label{display:flex;align-items:center;gap:7px}.sefaria-main-download-v195{align-self:flex-start}.sefaria-divider-v195{display:flex;align-items:center;gap:10px;opacity:.7;margin:3px 0}.sefaria-divider-v195:before,.sefaria-divider-v195:after{content:"";height:1px;background:currentColor;opacity:.25;flex:1}.sefaria-collection-card-v195{border:1px solid var(--line,#d7d0c3);border-radius:16px;padding:15px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px 16px;align-items:center}.sefaria-collection-card-v195>div{display:flex;flex-direction:column;gap:5px}.sefaria-collection-card-v195 small{opacity:.7;line-height:1.4}.sefaria-collection-card-v195 button{grid-column:1/-1;justify-self:start}.sefaria-offline-help-v195{margin:0}.ui-he .sefaria-import-v195 input,.ui-he .sefaria-import-v195 select{direction:rtl}@media(max-width:720px){.add-source-grid-v195{grid-template-columns:1fr}.sefaria-collection-card-v195{grid-template-columns:1fr}.sefaria-collection-card-v195 button{grid-column:auto}}

/* ===== v1.9.6 Sefaria discovery + DOCX line polish ===== */
.sefaria-search-row-v196{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:stretch}
.sefaria-search-row-v196 input{min-width:0}
.sefaria-lookup-result-v196{display:grid;gap:13px}
.sefaria-found-book-v196{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--border);border-radius:14px;background:var(--panel-2);padding:12px 14px}
.sefaria-found-book-v196>div{display:grid;gap:3px;min-width:0}.sefaria-found-book-v196 small,.sefaria-found-book-v196 span{color:var(--muted);font-size:11px}.sefaria-found-book-v196 strong{font-size:15px;overflow-wrap:anywhere}
.sefaria-found-check-v196{width:28px;height:28px;border-radius:999px;display:grid!important;place-items:center;background:color-mix(in srgb,var(--accent) 14%,var(--panel));color:var(--accent)!important;font-weight:800;flex:0 0 28px}
.sefaria-commentary-picker-v196{display:grid;gap:9px}.sefaria-commentary-heading-v196{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.sefaria-commentary-heading-v196 small{color:var(--muted)}
.sefaria-commentary-list-v196{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:300px;overflow:auto;padding:2px}
.sefaria-commentary-choice-v196{display:flex;align-items:flex-start;gap:8px;border:1px solid var(--border);border-radius:10px;background:var(--panel);padding:9px 10px;cursor:pointer;min-width:0}.sefaria-commentary-choice-v196:hover{background:var(--hover)}.sefaria-commentary-choice-v196 input{margin-top:3px;flex:0 0 auto}.sefaria-commentary-choice-v196 span{display:grid;gap:2px;min-width:0}.sefaria-commentary-choice-v196 strong{font-size:12px;overflow-wrap:anywhere}.sefaria-commentary-choice-v196 small{font-size:10px;color:var(--muted);overflow-wrap:anywhere}

/* DOCX is RTL-only. Keep grid geometry LTR so the number gutter is physically
   on the right, while the document content itself remains RTL. */
.docx-line-reader .docx-line{direction:ltr!important;width:100%;max-width:100%;box-sizing:border-box;min-width:0}
.docx-line-reader .docx-line.no-comments{grid-template-columns:minmax(0,1fr) 42px!important}
.docx-line-reader .docx-line.no-comments>.docx-line-content{grid-column:1!important;grid-row:1!important}
.docx-line-reader .docx-line.no-comments>.docx-line-number{grid-column:2!important;grid-row:1!important;text-align:right!important}
.docx-line-reader .docx-line.has-comments{grid-template-columns:118px minmax(0,1fr) 42px!important}
.docx-line-reader .docx-line.has-comments>.docx-line-comments{grid-column:1!important;grid-row:1!important}
.docx-line-reader .docx-line.has-comments>.docx-line-content{grid-column:2!important;grid-row:1!important}
.docx-line-reader .docx-line.has-comments>.docx-line-number{grid-column:3!important;grid-row:1!important;text-align:right!important}
.docx-line-reader .docx-line-content{direction:rtl!important;text-align:right!important;min-width:0!important;max-width:100%!important;width:fit-content!important;justify-self:end!important;overflow-wrap:anywhere!important;word-break:normal!important;box-sizing:border-box}
.docx-line-reader .docx-line-content *{max-width:100%!important;box-sizing:border-box;overflow-wrap:anywhere!important}
.docx-line-reader .docx-line-content p{margin:.35em 0 .65em!important;white-space:normal!important}
.docx-line-reader .docx-line-content table{table-layout:fixed!important}
/* The selectable highlight belongs to the text block, not the entire wide row. */
.docx-line-reader .reader-segment{background:transparent!important;box-shadow:none!important}
.docx-line-reader .reader-segment:hover>.docx-line-content{background:color-mix(in srgb,var(--accent) 8%,transparent)!important;border-radius:7px}
.docx-line-reader .reader-segment.is-selected>.docx-line-content{background:color-mix(in srgb,var(--accent) 15%,transparent)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 34%,transparent)!important;border-radius:7px}

@media(max-width:820px){
  .sefaria-search-row-v196{grid-template-columns:1fr}.sefaria-commentary-list-v196{grid-template-columns:1fr}
  .docx-line-reader .docx-line.no-comments,.docx-line-reader .docx-line.has-comments{grid-template-columns:minmax(0,1fr) 34px!important}
  .docx-line-reader .docx-line.no-comments>.docx-line-content,.docx-line-reader .docx-line.has-comments>.docx-line-content{grid-column:1!important;grid-row:1!important}
  .docx-line-reader .docx-line.no-comments>.docx-line-number,.docx-line-reader .docx-line.has-comments>.docx-line-number{grid-column:2!important;grid-row:1!important;text-align:right!important}
  .docx-line-reader .docx-line.has-comments>.docx-line-comments{grid-column:1!important;grid-row:2!important;margin-top:4px!important}
}

/* ===== v1.9.7 Sefaria commentary picker + portable packages ===== */
.sefaria-commentary-picker-v196{min-width:0;overflow:hidden}
.sefaria-commentary-heading-v196{min-width:0;flex-wrap:wrap}
.sefaria-commentary-groups-v197{display:grid;gap:12px;max-height:min(48vh,460px);overflow:auto;padding:2px 4px 2px 2px;scrollbar-gutter:stable}
.sefaria-commentary-group-v197{display:grid;gap:6px;min-width:0;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--panel-2) 45%,var(--panel));padding:9px}
.sefaria-commentary-group-v197>header{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:0 2px 3px}
.sefaria-commentary-group-v197>header strong{font-size:12px;line-height:1.35;overflow-wrap:anywhere}
.sefaria-commentary-group-v197>header small{flex:0 0 auto;min-width:24px;text-align:center;border-radius:999px;background:var(--panel-2);color:var(--muted);font-size:10px;padding:2px 7px}
.sefaria-commentary-list-v196{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:6px!important;max-height:none!important;overflow:visible!important;padding:0!important;min-width:0!important}
.sefaria-commentary-choice-v196{display:flex!important;align-items:flex-start!important;gap:9px!important;width:100%!important;min-width:0!important;height:auto!important;min-height:0!important;padding:8px 9px!important;margin:0!important;overflow:hidden!important;font-weight:400!important;line-height:1.35!important}
.sefaria-commentary-choice-v196 input[type="checkbox"],.sefaria-portable-option-v197 input[type="checkbox"]{width:16px!important;height:16px!important;min-width:16px!important;max-width:16px!important;flex:0 0 16px!important;margin:2px 0 0!important;padding:0!important;accent-color:var(--accent)}
.sefaria-commentary-choice-copy-v197{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:2px!important;min-width:0!important;width:auto!important;flex:1 1 auto!important}
.sefaria-commentary-choice-v196 strong{display:block!important;font-size:12px!important;line-height:1.35!important;white-space:normal!important;overflow-wrap:anywhere!important;word-break:normal!important}
.sefaria-commentary-choice-v196 small{display:block!important;font-size:10px!important;line-height:1.35!important;color:var(--muted)!important;white-space:normal!important;overflow-wrap:anywhere!important}
.ui-he .sefaria-commentary-choice-v196,.ui-he .sefaria-portable-option-v197{direction:rtl;text-align:right}
.ui-en .sefaria-commentary-choice-v196,.ui-en .sefaria-portable-option-v197{direction:ltr;text-align:left}
.sefaria-portable-option-v197{display:flex!important;align-items:flex-start!important;gap:9px!important;width:100%;border:1px dashed var(--border);border-radius:11px;background:var(--panel-2);padding:9px 10px;font-weight:400!important;cursor:pointer}
.sefaria-portable-option-v197>span{display:grid;gap:2px;min-width:0}
.sefaria-portable-option-v197 strong{font-size:12px;line-height:1.35}
.sefaria-portable-option-v197 small{font-size:10px;line-height:1.4;color:var(--muted)}
.sefaria-export-zone-v197{margin-top:6px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--panel-2);display:flex;align-items:center;justify-content:space-between;gap:14px}
.sefaria-export-zone-v197>div{display:grid;gap:4px;min-width:0}.sefaria-export-zone-v197 strong{font-size:13px}.sefaria-export-zone-v197 span{color:var(--muted);font-size:11px;line-height:1.4}.sefaria-export-zone-v197 button{flex:0 0 auto}
@media(max-width:620px){.sefaria-export-zone-v197{align-items:stretch;flex-direction:column}.sefaria-export-zone-v197 button{width:100%}}

/* ===== v1.9.8 DOCX selection-box fix =====
   DOCX selection belongs only to the paragraph content. The old generic
   reader hover rule also painted the full grid row, producing the appearance
   of two overlapping selection boxes. Keep the row completely transparent
   in every interaction state and leave a small gutter before the number. */
.docx-line-reader .docx-line.reader-segment,
.docx-line-reader .docx-line.reader-segment:hover,
.docx-line-reader .docx-line.reader-segment.is-selected,
.docx-line-reader .docx-line.reader-segment:focus,
.docx-line-reader .docx-line.reader-segment:focus-visible{
  background:transparent!important;
  box-shadow:none!important;
}
.docx-line-reader .docx-line.reader-segment:focus-visible{
  outline:none!important;
}
.docx-line-reader .docx-line.reader-segment>.docx-line-content{
  margin-inline-end:4px!important;
}
.docx-line-reader .docx-line.reader-segment:hover>.docx-line-content{
  background:color-mix(in srgb,var(--accent) 8%,transparent)!important;
  box-shadow:none!important;
  border-radius:7px!important;
}
.docx-line-reader .docx-line.reader-segment.is-selected>.docx-line-content,
.docx-line-reader .docx-line.reader-segment.is-selected:hover>.docx-line-content{
  background:color-mix(in srgb,var(--accent) 15%,transparent)!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 34%,transparent)!important;
  border-radius:7px!important;
}

/* ===== v1.9.9 importer / commentary / DOCX polish ===== */
/* Stronger contrast for add/import forms. */
.form-window{color:var(--text)}
.dynamic-form,.dynamic-form .form-field,.add-source-card-v195{color:var(--text)}
.dynamic-form input,.dynamic-form select,.dynamic-form textarea{
  color:var(--text)!important;
  background:var(--panel)!important;
  border-color:color-mix(in srgb,var(--text) 22%,var(--border))!important;
}
.dynamic-form input::placeholder,.dynamic-form textarea::placeholder{color:color-mix(in srgb,var(--text) 48%,var(--muted))!important;opacity:1}
.add-source-card-v195{
  background:color-mix(in srgb,var(--panel) 88%,var(--panel-2))!important;
  border-color:color-mix(in srgb,var(--text) 18%,var(--border))!important;
}
.add-source-card-v195 strong{color:var(--text)!important}
.add-source-card-v195 small{color:var(--muted)!important;opacity:1!important}
.add-source-card-v195:hover{background:var(--soft)!important;border-color:color-mix(in srgb,var(--accent) 55%,var(--border))!important}

/* Wide, two-column Sefaria importer. */
.modal.sefaria-wide-v199 .form-window{width:min(1040px,calc(100vw - 30px));max-height:92vh}
.sefaria-import-v199{display:grid;gap:14px;min-width:0}
.sefaria-book-banner-v199{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 15px;border:1px solid var(--border);border-radius:14px;background:var(--panel-2)}
.sefaria-book-banner-v199>div{display:grid;gap:3px;min-width:0}
.sefaria-book-banner-v199 small{font-size:10px;color:var(--muted)}
.sefaria-book-banner-v199 strong{font-size:20px;line-height:1.25;color:var(--text);overflow-wrap:anywhere}
.sefaria-book-banner-v199 span{font-size:11px;color:var(--muted)}
.sefaria-import-columns-v199{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.8fr);gap:16px;align-items:start;direction:ltr}
.ui-he .sefaria-import-columns-v199{grid-template-columns:minmax(0,1fr) minmax(320px,.8fr)}
.sefaria-import-left-v199,.sefaria-import-right-v199{direction:rtl;display:grid;gap:12px;min-width:0;border:1px solid var(--border);border-radius:14px;padding:13px;background:color-mix(in srgb,var(--panel) 88%,var(--panel-2))}
.ui-en .sefaria-import-left-v199,.ui-en .sefaria-import-right-v199{direction:ltr}
.sefaria-import-panel-title-v199{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding-bottom:6px;border-bottom:1px solid var(--border)}
.sefaria-import-panel-title-v199 strong{font-size:14px;color:var(--text)}
.sefaria-import-panel-title-v199 small{font-size:10px;color:var(--muted)}
.sefaria-technical-stack-v199{display:grid;gap:11px}
.sefaria-mode-toggle-v199{display:flex;gap:6px;flex-wrap:wrap}
.sefaria-mode-toggle-v199 button{flex:1;min-width:120px}
.sefaria-mode-toggle-v199 button.active{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}
.sefaria-folder-help-v199{font-size:10px;line-height:1.45;color:var(--muted);margin:0}
.sefaria-commentary-placeholder-v199{min-height:230px;display:grid;place-items:center;text-align:center;padding:25px;border:1px dashed var(--border);border-radius:12px;color:var(--muted);background:var(--panel)}
.sefaria-commentary-placeholder-v199 strong{display:block;color:var(--text);margin-bottom:5px}
.sefaria-import-v199 .category-tree-picker{max-height:235px;overflow:auto;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:7px}
.sefaria-import-v199 .sefaria-commentary-groups-v197{max-height:52vh}
.sefaria-import-footer-v199{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.sefaria-portable-option-v197{display:flex;align-items:flex-start;gap:9px;padding:9px 10px;border:1px solid var(--border);border-radius:10px;background:var(--panel);color:var(--text)}
.sefaria-portable-option-v197>span{display:grid;gap:2px}.sefaria-portable-option-v197 small{color:var(--muted);font-size:10px}
.sefaria-folder-basic-option-v199{display:flex;align-items:flex-start;gap:9px;padding:9px 10px;border:1px solid var(--border);border-radius:10px;background:var(--panel)}
.sefaria-folder-basic-option-v199 input{width:16px!important;height:16px!important;min-width:16px!important;margin-top:2px}
.sefaria-folder-basic-option-v199 span{display:grid;gap:2px}.sefaria-folder-basic-option-v199 small{font-size:10px;color:var(--muted)}
@media(max-width:820px){
  .modal.sefaria-wide-v199 .form-window{width:min(680px,calc(100vw - 18px))}
  .sefaria-import-columns-v199{grid-template-columns:1fr}
  .sefaria-import-left-v199,.sefaria-import-right-v199{direction:inherit}
}

/* Sefaria books appear immediately while downloading. */
.shelf-volume.sefaria-loading-v199{cursor:progress!important;opacity:.92}
.shelf-volume.sefaria-loading-v199 .volume-details{pointer-events:none}
.sefaria-loading-badge-v199{display:inline-flex;align-items:center;gap:7px;font-size:10px;color:var(--muted)}
.sefaria-spinner-v199{width:15px;height:15px;border-radius:50%;border:2px solid color-mix(in srgb,var(--accent) 24%,var(--border));border-top-color:var(--accent);animation:sefaria-spin-v199 .8s linear infinite;flex:0 0 15px}
.tree-book-row.sefaria-loading-v199{cursor:progress;opacity:.88}
.tree-book-row.sefaria-loading-v199 .tree-book-open{pointer-events:none}
@keyframes sefaria-spin-v199{to{transform:rotate(360deg)}}

/* Commentary tab filter button / popover. */
.reader-side-tabs{position:relative}
.commentary-filter-button-v199{margin-inline-start:auto!important;width:28px!important;min-width:28px!important;height:28px!important;padding:0!important;border-radius:8px!important;display:none!important;place-items:center;font-size:13px!important}
.commentary-filter-button-v199.visible{display:grid!important}
.commentary-filter-popover-v199{position:absolute;z-index:8;top:calc(100% + 5px);inset-inline-end:5px;width:min(260px,calc(100vw - 30px));max-height:320px;overflow:auto;padding:9px;border:1px solid var(--border);border-radius:11px;background:var(--panel);box-shadow:var(--shadow);display:grid;gap:6px}
.commentary-filter-popover-v199.hidden{display:none}
.commentary-filter-popover-v199 header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 2px 5px;border-bottom:1px solid var(--border)}
.commentary-filter-popover-v199 label{display:flex;align-items:center;gap:8px;padding:6px;border-radius:8px;cursor:pointer;font-size:12px}
.commentary-filter-popover-v199 label:hover{background:var(--hover)}
.commentary-filter-popover-v199 input{width:15px;height:15px;accent-color:var(--accent)}
.commentary-context-v199{width:100%;display:flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:var(--panel-2);min-width:0}
.commentary-context-v199 strong{font-size:12px;line-height:1.4;overflow-wrap:anywhere}
.commentary-context-v199 small{margin-inline-start:auto;color:var(--muted);font-size:9px;white-space:nowrap}

/* DOCX selection box: one box, with breathing room around the text only. */
.docx-line-reader .docx-line-content{position:relative!important;padding-inline:7px!important}
.docx-line-reader .reader-segment:hover>.docx-line-content,
.docx-line-reader .reader-segment.is-selected>.docx-line-content{background:transparent!important;box-shadow:none!important}
.docx-line-reader .reader-segment:hover>.docx-line-content::before,
.docx-line-reader .reader-segment.is-selected>.docx-line-content::before{
  content:"";position:absolute;inset:-3px -7px;pointer-events:none;border-radius:8px;z-index:0;
  background:color-mix(in srgb,var(--accent) 8%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 22%,transparent)
}
.docx-line-reader .reader-segment.is-selected>.docx-line-content::before{background:color-mix(in srgb,var(--accent) 15%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 34%,transparent)}
.docx-line-reader .docx-line-content>*{position:relative;z-index:1}

/* Starter-library commentary choices. */
.starter-library-card-v199{display:grid;gap:8px;border:1px solid var(--border);border-radius:12px;background:var(--panel-2);padding:10px}
.starter-library-card-v199>.starter-library-choice{padding:3px 2px;border:0;background:transparent}
.starter-commentaries-v199{display:flex;flex-wrap:wrap;gap:5px 7px;padding-top:7px;border-top:1px solid var(--border)}
.starter-commentary-chip-v199{display:inline-flex;align-items:center;gap:5px;font-size:10px;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:999px;padding:5px 8px;cursor:pointer}
.starter-commentary-chip-v199 input{width:13px;height:13px;accent-color:var(--accent)}
.commentary-filter-button-v199{flex:0 0 28px!important}

/* ===== v1.9.10 reader source chrome + downloads ===== */
.reader-page{grid-template-rows:auto minmax(0,1fr)!important}
.reader-page-header{
  display:grid!important;
  grid-template-columns:minmax(220px,1fr) minmax(260px,1.35fr) minmax(220px,1fr)!important;
  align-items:center!important;
  gap:12px!important;
  min-height:64px!important;
  padding:8px 12px!important;
  direction:ltr!important;
}
body.ui-he .reader-page-header>.reader-book-info{grid-column:3;direction:rtl;justify-self:stretch}
body.ui-he .reader-page-header>.reader-source-center-v1910{grid-column:2;direction:rtl}
body.ui-he .reader-page-header>.reader-top-actions{grid-column:1;direction:rtl;justify-self:start}
body.ui-en .reader-page-header>.reader-book-info{grid-column:1;direction:ltr}
body.ui-en .reader-page-header>.reader-source-center-v1910{grid-column:2;direction:ltr}
body.ui-en .reader-page-header>.reader-top-actions{grid-column:3;direction:ltr;justify-self:end}
.reader-source-center-v1910{
  min-width:0;max-width:100%;text-align:center;font-size:16px;font-weight:650;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text);letter-spacing:.01em
}
.reader-top-actions{min-width:0;flex-wrap:nowrap!important;gap:4px!important}
.reader-inline-tools-v1910{display:flex;align-items:center;gap:4px;min-width:0}
.reader-inline-tools-v1910 .reader-zoom-controls{margin:0}
.reader-inline-tools-v1910 .reader-top-jump-v1910{width:34px!important;height:34px!important;min-height:34px!important;padding:0!important}
.reader-location-label{display:none!important}
.reader-toolbar{display:none!important}
.reader-main{grid-template-rows:minmax(0,1fr)!important}
.reader-side-location:empty{display:none!important}
.marker-mode-toggle-v1910{width:38px!important;height:34px!important;min-width:38px!important;min-height:34px!important;padding:0 4px!important;font-size:11px!important;font-weight:750!important;line-height:1!important}
.marker-mode-toggle-v1910 span{display:block;white-space:nowrap}

/* Stable gutters: source reference / line number / empty all keep identical geometry. */
.txt-reader-v164 .text-line{grid-template-columns:68px minmax(0,1fr) 68px!important;column-gap:12px!important}
.txt-reader-v164 .line-number,.txt-reader-v164 .reflow-line-number,
.docx-line-reader .docx-line-number{font-size:10px!important;line-height:1.35!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;opacity:.62!important;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important}
.txt-reader-v164.marker-none-v1910 .line-number,.txt-reader-v164.marker-none-v1910 .reflow-line-number,
.docx-line-reader.marker-none-v1910 .docx-line-number{visibility:hidden!important;opacity:0!important}
.txt-reader-v164.marker-source-v1910 .line-number,.docx-line-reader.marker-source-v1910 .docx-line-number{opacity:.72!important}
.docx-line-reader .docx-line.no-comments{grid-template-columns:minmax(0,1fr) 72px!important;gap:14px!important}
.docx-line-reader .docx-line.has-comments{grid-template-columns:118px minmax(0,1fr) 72px!important;gap:14px!important}

/* One selection surface only. The gutter/reference marker is never inside it. */
.txt-reader-v164 .reader-segment,
.txt-reader-v164 .reader-segment:hover,
.txt-reader-v164 .reader-segment.is-selected,
.txt-reader-v164 .reader-segment:focus,
.txt-reader-v164 .reader-segment:focus-visible,
.docx-line-reader .reader-segment,
.docx-line-reader .reader-segment:hover,
.docx-line-reader .reader-segment.is-selected,
.docx-line-reader .reader-segment:focus,
.docx-line-reader .reader-segment:focus-visible{
  background:transparent!important;box-shadow:none!important;outline:none!important
}
.txt-reader-v164 .text-line.reader-segment>.line-text{
  position:relative!important;display:block!important;min-width:0!important;
  padding:3px 10px!important;margin-inline:-2px!important;border-radius:8px!important
}
.txt-reader-v164 .text-line.reader-segment:hover>.line-text{
  background:color-mix(in srgb,var(--accent) 8%,transparent)!important;box-shadow:none!important
}
.txt-reader-v164 .text-line.reader-segment.is-selected>.line-text,
.txt-reader-v164 .text-line.reader-segment.is-selected:hover>.line-text{
  background:color-mix(in srgb,var(--accent) 15%,transparent)!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 34%,transparent)!important
}
.segment-selection-band-v192{display:none!important}
.docx-line-reader .docx-line-content{padding-inline:12px!important;margin-inline:4px!important;border-radius:8px!important}
.docx-line-reader .docx-line-content::before{content:none!important;display:none!important}
.docx-line-reader .reader-segment:hover>.docx-line-content{
  background:color-mix(in srgb,var(--accent) 8%,transparent)!important;box-shadow:none!important
}
.docx-line-reader .reader-segment.is-selected>.docx-line-content,
.docx-line-reader .reader-segment.is-selected:hover>.docx-line-content{
  background:color-mix(in srgb,var(--accent) 15%,transparent)!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 34%,transparent)!important
}

/* Download centre. */
.downloads-page-v1910{display:grid;gap:18px}
.downloads-head-v1910{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:4px 0 2px}
.downloads-head-v1910 h3{margin:0 0 4px;font-size:20px}.downloads-head-v1910 p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}
.downloads-section-v1910{display:grid;gap:9px}.downloads-section-v1910 h4{margin:0;font-size:13px;color:var(--muted)}
.download-job-v1910{display:grid;gap:7px;padding:12px 13px;border:1px solid var(--border);border-radius:12px;background:var(--panel)}
.download-job-head-v1910{display:flex;align-items:center;justify-content:space-between;gap:12px}.download-job-head-v1910 strong{font-size:13px}.download-job-head-v1910 span{font-size:10px;color:var(--muted)}
.download-job-detail-v1910{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.download-job-track-v1910{height:5px;border-radius:999px;background:var(--soft);overflow:hidden}.download-job-track-v1910>span{display:block;height:100%;background:var(--accent);transition:width .18s ease}
.download-job-v1910.done .download-job-track-v1910>span{opacity:.55}.download-job-v1910.error{border-color:color-mix(in srgb,var(--danger) 45%,var(--border))}
.download-book-list-v1910{display:grid;gap:7px}.download-book-list-v1910>div{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 9px;align-items:center;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--panel)}
.download-book-list-v1910 i{grid-row:1/3}.download-book-list-v1910 strong{font-size:12px}.download-book-list-v1910 span{font-size:10px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.background-task-stop-v1910,.background-task-hide-v1910{flex:0 0 auto;width:28px!important;height:28px!important;display:grid!important;place-items:center!important;padding:0!important;border-radius:8px!important}
.background-task-stop-v1910{font-size:9px!important}.background-task-hide-v1910{font-size:18px!important}

@media(max-width:980px){
  .reader-page-header{grid-template-columns:minmax(150px,1fr) minmax(180px,1.15fr) auto!important}
  .reader-title-wrap p,.reader-breadcrumb-wrap{display:none!important}
  .reader-source-center-v1910{font-size:14px}
  .reader-inline-tools-v1910 .reader-zoom-controls{display:none}
}
@media(max-width:700px){
  .reader-page-header{grid-template-columns:minmax(0,1fr) auto!important;grid-template-rows:auto auto!important}
  body.ui-he .reader-page-header>.reader-book-info,body.ui-en .reader-page-header>.reader-book-info{grid-column:1;grid-row:1}
  body.ui-he .reader-page-header>.reader-top-actions,body.ui-en .reader-page-header>.reader-top-actions{grid-column:2;grid-row:1}
  body.ui-he .reader-page-header>.reader-source-center-v1910,body.ui-en .reader-page-header>.reader-source-center-v1910{grid-column:1/-1;grid-row:2;justify-self:stretch}
  .reader-source-center-v1910{font-size:13px;padding-top:2px}
  .txt-reader-v164 .text-line{grid-template-columns:52px minmax(0,1fr) 52px!important;column-gap:7px!important}
  .docx-line-reader .docx-line.no-comments,.docx-line-reader .docx-line.has-comments{grid-template-columns:minmax(0,1fr) 56px!important;gap:9px!important}
  .docx-line-reader .docx-line.has-comments>.docx-line-comments{grid-column:1!important;grid-row:2!important}
  .downloads-head-v1910{flex-direction:column}
}


/* ===== v1.9.11 compact reader / alignment fixes ===== */
.reader-page-header{
  display:flex!important;position:relative!important;align-items:center!important;justify-content:space-between!important;
  height:58px!important;min-height:58px!important;max-height:58px!important;padding:5px 10px!important;gap:8px!important;overflow:visible!important
}
body.ui-he .reader-page-header>.reader-book-info{order:3!important;flex:0 1 34%!important;min-width:0!important;justify-self:auto!important}
body.ui-he .reader-page-header>.reader-top-actions{order:1!important;flex:0 0 auto!important;justify-self:auto!important}
body.ui-en .reader-page-header>.reader-book-info{order:1!important;flex:0 1 34%!important;min-width:0!important}
body.ui-en .reader-page-header>.reader-top-actions{order:3!important;flex:0 0 auto!important}
.reader-source-center-v1910{position:absolute!important;inset-inline-start:50%!important;top:50%!important;transform:translate(-50%,-50%)!important;width:min(36vw,520px)!important;max-width:40%!important;z-index:1!important;pointer-events:none!important}
.reader-book-info,.reader-top-actions{position:relative!important;z-index:2!important}.reader-title-wrap h2{font-size:15px!important}.reader-title-wrap p{display:none!important}.reader-breadcrumb-wrap{font-size:10px!important}
.reader-inline-tools-v1910{gap:3px!important}.reader-inline-tools-v1910 .reader-zoom-controls{height:34px!important}.reader-inline-tools-v1910 .reader-zoom-controls button{min-height:32px!important}
@media(max-width:760px){.reader-page-header{height:54px!important;min-height:54px!important;max-height:54px!important}.reader-source-center-v1910{width:42vw!important;max-width:42vw!important;font-size:12px!important}.reader-title-wrap h2{font-size:13px!important}.reader-breadcrumb-wrap{display:none!important}.reader-inline-tools-v1910 .reader-zoom-controls{display:none!important}}

/* DOCX marker sits close to the text, without entering the selection box. */
.docx-line-reader .docx-line.no-comments{grid-template-columns:minmax(0,1fr) 38px!important;gap:5px!important}
.docx-line-reader .docx-line.has-comments{grid-template-columns:104px minmax(0,1fr) 38px!important;gap:6px!important}
.docx-line-reader .docx-line-number{padding-top:5px!important;text-align:start!important;align-self:start!important}
.docx-line-reader .docx-line-content{margin-inline:0!important;padding-inline:10px!important}
@media(max-width:760px){.docx-line-reader .docx-line.no-comments,.docx-line-reader .docx-line.has-comments{grid-template-columns:minmax(0,1fr) 32px!important;gap:4px!important}}

/* All five Study tabs stay on one row. */
.study-switcher{grid-template-columns:repeat(5,minmax(0,1fr))!important;align-items:stretch!important}
.study-switcher button{min-width:0!important;white-space:nowrap!important}
@media(max-width:620px){.study-switcher button{padding-inline:5px!important;font-size:11px!important}.study-switcher button span{display:none!important}}

/* Download popup: close is always visible at the upper edge. */
.background-task-status{position:fixed!important;padding-inline-end:78px!important;overflow:visible!important;min-height:58px!important}
.background-task-hide-v1910,.background-task-stop-v1910{position:absolute!important;top:8px!important;z-index:4!important;background:var(--panel-2)!important;color:var(--text)!important;border:1px solid var(--border)!important;opacity:1!important;visibility:visible!important}
.background-task-hide-v1910{inset-inline-end:8px!important;font-size:19px!important;font-weight:700!important}
.background-task-stop-v1910{inset-inline-end:42px!important}

/* Starter library: visually separate the collection choice from its optional commentary set. */
.starter-library-chooser-v1911{gap:14px!important}.starter-library-toolbar-v1911{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--panel-2)}.starter-library-toolbar-v1911>div:first-child{display:grid;gap:3px}.starter-library-toolbar-v1911 small{color:var(--muted);font-size:11px}.starter-library-toolbar-v1911>div:last-child{display:flex;gap:6px}.starter-card-v1911{transition:border-color .15s,background .15s;overflow:hidden}.starter-card-v1911.selected{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));background:color-mix(in srgb,var(--accent) 6%,var(--panel-2))}.starter-card-copy-v1911{display:grid;gap:2px;min-width:0}.starter-card-copy-v1911 small{font-size:10px;color:var(--muted);font-weight:400}.starter-commentaries-v199{align-items:center}.starter-commentaries-label-v1911{flex-basis:100%;font-size:10px;font-weight:700;color:var(--muted);margin-bottom:1px}.starter-commentary-chip-v199:has(input:disabled){opacity:.42;cursor:default}.starter-help-v1911{margin:0!important;padding:2px 4px!important}


/* ===== v1.9.13 Sefaria storage destination ===== */
.sefaria-storage-box-v1913{border:1px solid var(--border);border-radius:14px;padding:12px;background:color-mix(in srgb,var(--panel) 88%,var(--panel-2));display:flex;flex-direction:column;gap:10px}
.sefaria-storage-heading-v1913{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.sefaria-storage-heading-v1913 small{color:var(--muted);font-size:11px}
.sefaria-storage-options-v1913{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.sefaria-storage-choice-v1913{display:grid!important;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:8px;border:1px solid var(--border);border-radius:11px;padding:10px;background:var(--panel);cursor:pointer;color:var(--text)!important}
.sefaria-storage-choice-v1913 input{width:auto!important;min-width:0!important;margin-top:3px}.sefaria-storage-choice-v1913 span{display:flex;flex-direction:column;gap:2px;min-width:0}.sefaria-storage-choice-v1913 strong{font-size:12px}.sefaria-storage-choice-v1913 small{font-size:10px;line-height:1.35;color:var(--muted)}
.sefaria-storage-choice-v1913.active{border-color:color-mix(in srgb,var(--accent) 68%,var(--border));background:color-mix(in srgb,var(--accent) 9%,var(--panel))}.sefaria-storage-choice-v1913.disabled{opacity:.5;cursor:not-allowed}
.sefaria-folder-storage-v1913{display:flex;flex-direction:column;gap:10px}.sefaria-folder-actions-v1913{display:flex;gap:7px;flex-wrap:wrap}.sefaria-folder-actions-v1913 button{font-size:11px;padding:7px 9px}
.physical-tree-loading-v1913{border:1px dashed var(--border);border-radius:10px;padding:12px;color:var(--muted);font-size:11px;text-align:center}.physical-folder-tree-v1913{max-height:220px;overflow:auto}.physical-folder-tree-v1913 .category-picker-choice{font-size:11px}.physical-folder-node-v1913 .category-picker-children.collapsed{display:none}
.sefaria-import-v1913 #sefariaBrowserDestinationV1913>.form-field{margin:0}
@media(max-width:760px){.sefaria-storage-options-v1913{grid-template-columns:1fr}.sefaria-folder-actions-v1913{flex-direction:column}.sefaria-folder-actions-v1913 button{width:100%}}

/* ===== v1.9.14 true centred source location ===== */
.reader-page-header{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) max-content minmax(0,1fr)!important;
  align-items:center!important;
  column-gap:10px!important;
}
.reader-page-header>.reader-book-info{
  grid-column:1!important;
  grid-row:1!important;
  justify-self:start!important;
  min-width:0!important;
  max-width:100%!important;
  order:unset!important;
}
.reader-page-header>.reader-source-center-v1910{
  grid-column:2!important;
  grid-row:1!important;
  position:static!important;
  inset:auto!important;
  transform:none!important;
  width:auto!important;
  max-width:none!important;
  min-width:54px!important;
  justify-self:center!important;
  text-align:center!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  z-index:3!important;
  pointer-events:none!important;
  font-weight:650!important;
}
.reader-page-header>.reader-top-actions{
  grid-column:3!important;
  grid-row:1!important;
  justify-self:end!important;
  min-width:0!important;
  max-width:100%!important;
  order:unset!important;
}
@media(max-width:760px){
  .reader-page-header{grid-template-columns:minmax(0,1fr) max-content minmax(0,1fr)!important;grid-template-rows:1fr!important}
  .reader-page-header>.reader-source-center-v1910{grid-column:2!important;grid-row:1!important;min-width:40px!important;font-size:12px!important;padding:0!important}
}

/* Starter Library uses the same destination control as Sefaria imports. */
.starter-storage-v1915{margin-top:14px}.starter-storage-v1915 .sefaria-storage-box-v1913{margin:0}


/* ===== v1.9.16 final polish / reliability UI ===== */
/* Physical reader-header positions are explicit. The header itself stays LTR so
   grid columns always mean physical left / centre / right. */
.reader-page-header{
  direction:ltr!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) max-content minmax(0,1fr)!important;
  grid-template-rows:1fr!important;
  align-items:center!important;
  height:58px!important;min-height:58px!important;max-height:58px!important;
  gap:10px!important;padding:5px 10px!important;overflow:visible!important;
}
.reader-page-header>.reader-source-center-v1910{
  grid-column:2!important;grid-row:1!important;position:static!important;
  inset:auto!important;transform:none!important;width:auto!important;max-width:100%!important;
  min-width:54px!important;justify-self:center!important;text-align:center!important;
  white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
  pointer-events:none!important;z-index:3!important;
}
body.ui-he .reader-page-header>.reader-book-info{
  grid-column:3!important;grid-row:1!important;justify-self:end!important;
  direction:rtl!important;order:unset!important;min-width:0!important;max-width:100%!important;
}
body.ui-he .reader-page-header>.reader-top-actions{
  grid-column:1!important;grid-row:1!important;justify-self:start!important;
  direction:ltr!important;order:unset!important;min-width:0!important;max-width:100%!important;
}
body.ui-he .reader-page-header>.reader-source-center-v1910{direction:rtl!important}
body.ui-en .reader-page-header>.reader-book-info{
  grid-column:1!important;grid-row:1!important;justify-self:start!important;
  direction:ltr!important;order:unset!important;min-width:0!important;max-width:100%!important;
}
body.ui-en .reader-page-header>.reader-top-actions{
  grid-column:3!important;grid-row:1!important;justify-self:end!important;
  direction:ltr!important;order:unset!important;min-width:0!important;max-width:100%!important;
}
body.ui-en .reader-page-header>.reader-source-center-v1910{direction:ltr!important}
.reader-book-info,.reader-top-actions{position:relative!important;z-index:2!important}
.reader-top-actions{display:flex!important;align-items:center!important;flex-wrap:nowrap!important;gap:4px!important}

/* Make the Sefaria mark read as an icon rather than a faint character. */
.topbar-sefaria-icon,.add-source-sefaria-v195>span{
  width:27px!important;height:27px!important;min-width:27px!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  box-sizing:border-box!important;padding:0 0 1px!important;border:1.25px solid currentColor!important;
  border-radius:50%!important;font-family:Arial,'Noto Sans Hebrew',sans-serif!important;
  font-weight:700!important;font-size:16px!important;line-height:1!important;text-align:center!important;
}
#addBookButton{gap:8px!important}

/* Study navigation: consistent line icons with a clearer selected state. */
.study-switcher button{display:flex!important;align-items:center!important;justify-content:center!important;gap:7px!important}
.study-switcher button svg{width:18px;height:18px;flex:0 0 18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.study-switcher button[data-study-tab="bookmarks"] svg{fill:color-mix(in srgb,currentColor 12%,transparent)}
.study-switcher button.active svg{stroke-width:2.15}

/* One secondary navigation action is enough in the Sefaria importer; the modal
   header X is the close action. */
.sefaria-import-footer-v199{display:flex;align-items:center;justify-content:flex-end!important}

/* Keyboard accessibility and reduced-motion safety. */
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{
  outline:2px solid color-mix(in srgb,var(--accent) 78%,white)!important;outline-offset:2px!important;
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}
@media(max-width:760px){
  .reader-page-header{grid-template-columns:minmax(0,1fr) max-content minmax(0,1fr)!important;grid-template-rows:1fr!important;height:54px!important;min-height:54px!important;max-height:54px!important}
  .reader-page-header>.reader-source-center-v1910{grid-column:2!important;grid-row:1!important;min-width:40px!important;font-size:12px!important;padding:0!important}
  .reader-title-wrap h2{font-size:13px!important}.reader-breadcrumb-wrap{display:none!important}.reader-inline-tools-v1910 .reader-zoom-controls{display:none!important}
}
@media(max-width:560px){
  .reader-page-header{grid-template-columns:minmax(0,1fr) minmax(44px,max-content) minmax(0,1fr)!important;gap:5px!important;padding-inline:6px!important}
  .reader-title-wrap h2{max-width:30vw!important}.reader-top-actions{gap:2px!important}.reader-top-actions>.icon-button{width:30px!important;height:30px!important;min-height:30px!important}
  .reader-inline-tools-v1910 .marker-mode-toggle-v1910{width:32px!important;min-width:32px!important}
}


/* ===== v1.9.18 import polish ===== */
.device-import-grid-v1918{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:4px 0 2px}
.device-import-card-v1918{appearance:none;border:1px solid var(--border);border-radius:14px;background:var(--panel);color:var(--text);padding:16px;text-align:start;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;cursor:pointer;min-height:92px}
.device-import-card-v1918:hover{background:var(--hover);border-color:color-mix(in srgb,var(--accent) 34%,var(--border))}
.device-import-card-v1918>span:last-child{display:grid;gap:4px}.device-import-card-v1918 strong{font-size:14px}.device-import-card-v1918 small{font-size:10.5px;line-height:1.45;color:var(--muted)}
.device-import-icon-v1918{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:var(--panel-2);font-size:20px;color:var(--accent);border:1px solid var(--border)}
@media(max-width:580px){.device-import-grid-v1918{grid-template-columns:1fr}}

/* Smaller, lighter Sefaria badge. */
.topbar-sefaria-icon,.add-source-sefaria-v195>span{
  width:23px!important;height:23px!important;min-width:23px!important;
  border-width:1px!important;font-size:14px!important;font-weight:650!important;padding:0!important;
}

/* A calmer Sefaria importer: fewer nested panels, tighter hierarchy, and more
   room for the actual book/commentary choices. */
.modal.sefaria-wide-v199 .form-window{width:min(1000px,calc(100vw - 28px))}
.sefaria-import-v199{gap:11px}
.sefaria-book-banner-v199{padding:10px 13px;border-radius:12px;background:color-mix(in srgb,var(--panel-2) 65%,var(--panel))}
.sefaria-book-banner-v199 strong{font-size:18px}
.sefaria-import-columns-v199{gap:12px;grid-template-columns:minmax(0,1fr) minmax(310px,.78fr)}
.sefaria-import-left-v199,.sefaria-import-right-v199{border-radius:12px;padding:12px;background:var(--panel);box-shadow:none}
.sefaria-import-panel-title-v199{padding-bottom:7px}
.sefaria-import-panel-title-v199 small{max-width:220px;line-height:1.35}
.sefaria-technical-stack-v199{gap:9px}
.sefaria-mode-toggle-v199{background:var(--panel-2);padding:3px;border-radius:10px;gap:3px}
.sefaria-mode-toggle-v199 button{border-color:transparent!important;background:transparent;box-shadow:none;padding:7px 10px}
.sefaria-mode-toggle-v199 button.active{box-shadow:0 1px 3px rgba(0,0,0,.08)}
.sefaria-folder-help-v199{margin-top:-2px}
.sefaria-storage-clean-v1918{border:0!important;border-top:1px solid var(--border)!important;border-radius:0!important;padding:10px 0 0!important;background:transparent!important;gap:8px!important}
.sefaria-storage-clean-v1918 .sefaria-storage-heading-v1913{min-height:20px}
.sefaria-storage-clean-v1918 .sefaria-storage-options-v1913{gap:6px}
.sefaria-storage-clean-v1918 .sefaria-storage-choice-v1913{border-radius:9px;padding:8px 9px;background:var(--panel-2)}
.sefaria-storage-clean-v1918 .sefaria-storage-choice-v1913 strong{font-size:11.5px}
.sefaria-storage-clean-v1918 .sefaria-storage-choice-v1913 small{font-size:9.5px}
.sefaria-storage-clean-v1918 .sefaria-folder-storage-v1913{gap:8px;padding-top:2px}
.sefaria-storage-clean-v1918 .sefaria-folder-actions-v1913{gap:5px}
.sefaria-storage-clean-v1918 .sefaria-folder-actions-v1913 button{padding:6px 8px;font-size:10.5px}
.sefaria-inner-destination-v1918{margin-top:1px}
.sefaria-storage-clean-v1918 .physical-folder-tree-v1913,.sefaria-storage-clean-v1918 .category-tree-picker{max-height:175px!important}
.sefaria-portable-option-v197,.sefaria-folder-basic-option-v199{padding:8px 9px;border-radius:9px;background:var(--panel-2)}
.sefaria-commentary-placeholder-v199{min-height:185px;background:var(--panel-2);border-radius:10px}
.sefaria-commentary-group-v197{border-radius:10px;background:var(--panel-2);padding:8px}
.sefaria-import-footer-v199{padding-top:1px}
.sefaria-import-footer-v199 .primary-button{min-width:150px}
@media(max-width:820px){.sefaria-import-columns-v199{grid-template-columns:1fr}.sefaria-import-left-v199,.sefaria-import-right-v199{padding:10px}.sefaria-commentary-placeholder-v199{min-height:120px}}

/* ===== v1.9.19 Sefaria importer ===== */
.modal.sefaria-clean-v1919 .form-window{
  width:min(1000px,calc(100vw - 28px));
  height:min(860px,92dvh);
  max-height:92dvh;
  overflow:hidden;
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
}
.modal.sefaria-clean-v1919 .form-header{
  min-height:54px;
  padding:8px 12px;
  justify-content:flex-start;
  direction:ltr;
  flex:0 0 auto;
}
.modal.sefaria-clean-v1919 .form-header>div{display:none!important}
.modal.sefaria-clean-v1919 .dynamic-form{
  min-height:0;
  height:100%;
  overflow:hidden;
  padding:10px 12px 12px;
  display:block;
}
.sefaria-import-v1919{
  height:100%;
  min-height:0;
  display:grid!important;
  grid-template-rows:minmax(0,1fr) auto;
  gap:9px!important;
}
.sefaria-import-v1919 .sefaria-import-columns-v199{
  min-height:0;
  height:100%;
  align-items:stretch;
  gap:10px;
}
.sefaria-import-v1919 .sefaria-import-left-v199,
.sefaria-import-v1919 .sefaria-import-right-v199{
  min-height:0;
  height:100%;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  border:1px solid var(--border);
  border-radius:12px;
  padding:11px;
  background:var(--panel);
}
.sefaria-import-v1919 .sefaria-import-left-v199{display:block}
.sefaria-import-v1919 .sefaria-import-right-v199{display:block}
.sefaria-import-v1919 .sefaria-technical-stack-v199{display:grid;gap:9px}
.sefaria-import-v1919 .sefaria-import-footer-v199{
  flex:0 0 auto;
  padding:1px 0 0;
  justify-content:flex-end;
  background:var(--panel);
}
.ui-he .sefaria-import-v1919 .sefaria-import-footer-v199{justify-content:flex-start}
.sefaria-import-v1919 .sefaria-import-footer-v199 .primary-button{min-width:160px}

/* No permanent explanatory copy: controls carry their explanation in title
   tooltips, leaving the importer visually quiet. */
.sefaria-import-v1919 .sefaria-folder-help-v199,
.sefaria-import-v1919 .settings-help,
.sefaria-import-v1919 .sefaria-storage-heading-v1913,
.sefaria-import-v1919 .sefaria-import-panel-title-v199{display:none!important}
.sefaria-commentary-toolbar-v1919{
  position:sticky;top:-11px;z-index:2;
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:7px 2px 8px;
  margin-bottom:6px;
  background:var(--panel);
  border-bottom:1px solid var(--border);
}
.sefaria-commentary-toolbar-v1919 strong{font-size:13px}
.sefaria-commentary-toolbar-v1919 small{font-size:10px;color:var(--muted)}
.sefaria-empty-mark-v1919{
  width:54px;height:54px;border-radius:50%;
  display:grid;place-items:center;
  border:1px solid color-mix(in srgb,var(--accent) 42%,var(--border));
  color:var(--accent);font-size:27px;font-weight:600;
  opacity:.68;
}
.sefaria-import-v1919 .sefaria-commentary-placeholder-v199{
  min-height:180px;
  border:0;
  background:transparent;
  padding:18px;
}

/* Selected choices are highlighted; radio/check controls are not visually
   duplicated by browser-native dots or boxes. */
.sefaria-import-v1919 .sefaria-storage-choice-v1913 input,
.sefaria-import-v1919 .sefaria-highlight-toggle-v1919>input{
  position:absolute!important;
  opacity:0!important;
  pointer-events:none!important;
  width:1px!important;height:1px!important;
}
.sefaria-import-v1919 .sefaria-storage-options-v1913{gap:5px}
.sefaria-import-v1919 .sefaria-storage-choice-v1913{
  min-height:44px;
  display:grid;place-items:center;
  text-align:center;
  padding:8px 10px;
  border:1px solid transparent;
  background:var(--panel-2);
  border-radius:10px;
  cursor:pointer;
}
.sefaria-import-v1919 .sefaria-storage-choice-v1913:hover,
.sefaria-import-v1919 .sefaria-highlight-toggle-v1919:hover{
  border-color:color-mix(in srgb,var(--accent) 38%,var(--border));
  background:var(--hover);
}
.sefaria-import-v1919 .sefaria-storage-choice-v1913.active,
.sefaria-import-v1919 .sefaria-highlight-toggle-v1919.active{
  border-color:color-mix(in srgb,var(--accent) 62%,var(--border));
  background:color-mix(in srgb,var(--accent) 22%,var(--panel));
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 18%,transparent);
}
.sefaria-import-v1919 .sefaria-storage-choice-v1913.disabled{opacity:.45;cursor:not-allowed}
.sefaria-import-v1919 .sefaria-highlight-toggle-v1919{
  display:flex!important;align-items:center!important;justify-content:center!important;
  min-height:40px;
  padding:8px 10px!important;
  border:1px solid transparent!important;
  background:var(--panel-2)!important;
  border-radius:10px!important;
  cursor:pointer;
}
.sefaria-import-v1919 .sefaria-highlight-toggle-v1919 span{display:block!important;text-align:center}
.sefaria-import-v1919 .sefaria-highlight-toggle-v1919 small{display:none!important}

.sefaria-source-control-v1919{display:grid;gap:5px}
.sefaria-import-v1919 .sefaria-search-row-v196{grid-template-columns:minmax(0,1fr) auto;gap:7px}
.sefaria-import-v1919 #sefariaInputV195.resolved-v1919{
  font-weight:700;
  background:color-mix(in srgb,var(--accent) 10%,var(--panel));
  border-color:color-mix(in srgb,var(--accent) 38%,var(--border));
}
.sefaria-import-v1919 #sefariaLookupV196[data-reset="1"]{
  width:42px;min-width:42px;padding-inline:0;
  background:transparent;color:var(--text);border:1px solid var(--border);
}
.sefaria-import-v1919 .sefaria-mode-toggle-v199{margin-bottom:1px}
.sefaria-import-v1919 .sefaria-mode-toggle-v199 button{min-height:38px}

/* The internal destination trees scroll inside the right column instead of
   expanding the modal itself. */
.sefaria-import-v1919 .physical-folder-tree-v1913,
.sefaria-import-v1919 .category-tree-picker{max-height:190px!important;overflow:auto}
.sefaria-import-v1919 .sefaria-commentary-groups-v197{max-height:none!important;overflow:visible!important}

/* Re-searching commentaries from Manage book uses the same selected-by-highlight
   language, without another wall of native checkboxes. */
.commentary-refresh-v1919{display:grid;gap:12px}
.commentary-refresh-status-v1919,.commentary-refresh-v1919 .side-empty{padding:22px;text-align:center;color:var(--muted)}
.commentary-refresh-grid-v1919{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:50vh;overflow:auto}
.commentary-refresh-choice-v1919{position:relative;border:1px solid var(--border);border-radius:10px;padding:10px;background:var(--panel-2);cursor:pointer}
.commentary-refresh-choice-v1919 input{position:absolute!important;opacity:0!important;width:1px!important;height:1px!important}
.commentary-refresh-choice-v1919.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 18%,var(--panel))}
.sefaria-commentary-refresh-zone-v1919{display:flex;justify-content:flex-end;margin-top:2px}
.ui-he .sefaria-commentary-refresh-zone-v1919{justify-content:flex-start}

@media(max-width:820px){
  .modal.sefaria-clean-v1919 .form-window{width:min(680px,calc(100vw - 14px));height:94dvh;max-height:94dvh}
  .sefaria-import-v1919 .sefaria-import-columns-v199{grid-template-columns:1fr;grid-template-rows:minmax(150px,.8fr) minmax(250px,1.2fr)}
  .sefaria-import-v1919 .sefaria-import-left-v199,.sefaria-import-v1919 .sefaria-import-right-v199{height:auto;min-height:0}
}
@media(max-width:560px){.commentary-refresh-grid-v1919{grid-template-columns:1fr}}

/* ===== v1.9.20 clearer Sefaria selection states ===== */
.sefaria-import-v1919 .sefaria-highlight-toggle-v1919.active{
  border-color:var(--accent)!important;
  background:color-mix(in srgb,var(--accent) 42%,var(--panel))!important;
  box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 22%,transparent), inset 0 0 0 1px color-mix(in srgb,var(--accent) 38%,transparent)!important;
  font-weight:800;
  position:relative;
}
.sefaria-import-v1919 .sefaria-highlight-toggle-v1919.active::after{
  content:'✓';
  display:grid;place-items:center;
  position:absolute;inset-inline-end:10px;top:50%;transform:translateY(-50%);
  width:20px;height:20px;border-radius:999px;
  background:var(--accent);color:var(--accent-contrast,#fff);
  font-size:12px;font-weight:900;line-height:1;
}
.sefaria-import-v1919 .sefaria-highlight-toggle-v1919.active strong{font-weight:800}


/* ===== v1.9.21 importer and download-control refinements ===== */
/* Keep the two optional importer toggles clear but restrained. */
.sefaria-import-v1919 .sefaria-highlight-toggle-v1919.active{
  border-color:color-mix(in srgb,var(--accent) 58%,var(--border))!important;
  background:color-mix(in srgb,var(--accent) 17%,var(--panel))!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 12%,transparent)!important;
  font-weight:650!important;
}
.sefaria-import-v1919 .sefaria-highlight-toggle-v1919.active::after{
  content:'✓';position:absolute;inset-inline-end:9px;top:50%;transform:translateY(-50%);
  width:auto;height:auto;background:transparent;color:var(--accent);
  font-size:13px;font-weight:800;line-height:1;
}
.sefaria-import-v1919 .sefaria-highlight-toggle-v1919.active strong{font-weight:650!important}

/* Folder/collection basic commentaries are actual choices, not a static list. */
.sefaria-folder-profiles-v1921{display:grid;gap:6px}
.sefaria-folder-profile-choice-v1921{position:relative;display:flex;align-items:center;min-height:38px;padding:8px 30px 8px 10px;border:1px solid var(--border);border-radius:9px;background:var(--panel-2);cursor:pointer;transition:background .15s ease,border-color .15s ease,opacity .15s ease}
.ui-he .sefaria-folder-profile-choice-v1921{padding:8px 10px 8px 30px}
.sefaria-folder-profile-choice-v1921 input{position:absolute!important;opacity:0!important;width:1px!important;height:1px!important;pointer-events:none!important}
.sefaria-folder-profile-choice-v1921.active{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));background:color-mix(in srgb,var(--accent) 13%,var(--panel))}
.sefaria-folder-profile-choice-v1921.active::after{content:'✓';position:absolute;inset-inline-end:9px;color:var(--accent);font-weight:800}
.sefaria-folder-profile-choice-v1921.disabled{opacity:.42;cursor:default}

/* Hebrew keeps the compact progress card at the physical bottom-left; English
   mirrors it to bottom-right. The X is always available and no cancel control
   lives on this popup. */
.background-task-status-v1921{left:22px!important;right:auto!important;inset-inline-start:auto!important;bottom:20px!important;transform:none!important;width:min(430px,calc(100vw - 34px))!important;padding:12px 46px 12px 14px!important;overflow:visible!important}
.ui-en .background-task-status-v1921{left:auto!important;right:22px!important;padding:12px 14px 12px 46px!important}
.background-task-status-v1921 .background-task-hide-v1921{position:absolute!important;top:8px!important;inset-inline-end:8px!important;width:28px!important;height:28px!important;display:grid!important;place-items:center!important;padding:0!important;border-radius:8px!important;background:var(--panel-2)!important;color:var(--text)!important;border:1px solid var(--border)!important;font-size:18px!important;z-index:4!important}
.download-job-controls-v1921{display:flex;gap:7px;justify-content:flex-end;margin-top:2px}
.ui-he .download-job-controls-v1921{justify-content:flex-start}
.download-job-controls-v1921 .tiny-button{min-width:64px}
.danger-text-v1921{color:var(--danger)!important}
.download-job-v1910.paused{border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}
.download-job-v1910.paused .download-job-track-v1910>span{opacity:.62}

/* The source-type switch is gone in v1.9.21; detection is automatic. */
.sefaria-import-v1921 .sefaria-source-control-v1919{margin-top:1px}

/* ===== v1.9.22 commentary library model ===== */
.commentary-library-settings-v1922{display:grid;gap:10px}
.commentary-visibility-segment-v1922{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.commentary-visibility-segment-v1922 .secondary-button.active{background:color-mix(in srgb,var(--accent) 18%,var(--panel));border-color:color-mix(in srgb,var(--accent) 56%,var(--border));font-weight:700}
.book-role-management-v1922{display:grid;gap:10px;padding:13px;border:1px solid var(--border);border-radius:12px;background:var(--panel-2);margin:4px 0 2px}
.book-role-head-v1922{font-size:13px}
.book-role-toggle-v1922{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:4px;border-radius:10px;background:var(--panel)}
.book-role-toggle-v1922 button{border:1px solid transparent;background:transparent;color:var(--muted);border-radius:8px;padding:9px 10px;cursor:pointer}
.book-role-toggle-v1922 button.active{background:var(--hover);border-color:color-mix(in srgb,var(--accent) 48%,var(--border));color:var(--text);font-weight:700}
.commentary-binding-v1922{display:grid;gap:7px}.commentary-binding-v1922.hidden{display:none}.commentary-binding-v1922 label{font-size:12px;font-weight:700}.commentary-binding-v1922 select{width:100%}.commentary-binding-v1922 small{color:var(--muted);font-size:11px;line-height:1.5}
.commentary-search-hit-v1922 .search-hit-kind{border-color:color-mix(in srgb,var(--accent) 42%,var(--border));background:color-mix(in srgb,var(--accent) 10%,var(--panel))}
.commentary-item-v192.commentary-search-focus-v1922{outline:2px solid color-mix(in srgb,var(--accent) 72%,transparent);outline-offset:2px;background:color-mix(in srgb,var(--accent) 11%,var(--panel));transition:outline-color .2s ease,background .2s ease}
@media(max-width:640px){.commentary-visibility-segment-v1922{grid-template-columns:1fr}.book-role-toggle-v1922{grid-template-columns:1fr 1fr}}

/* ===== v1.9.25 safety / diagnostics ===== */
.settings-safety-stack-v1925{display:contents}
.safety-backups-card-v1925,.diagnostics-card-v1925{min-width:0}
.safety-backup-list-v1925{display:grid;gap:8px;margin:10px 0 12px}
.safety-backup-row-v1925{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 10px;border:1px solid color-mix(in srgb,var(--line,#d7d4cb) 82%,transparent);border-radius:12px;background:color-mix(in srgb,var(--surface,#fff) 86%,var(--paper,#f6f5f1))}
.safety-backup-row-v1925>div{display:grid;gap:2px;min-width:0}
.safety-backup-row-v1925 strong{font-size:.88rem;font-weight:650}
.safety-backup-row-v1925 small{font-size:.73rem;opacity:.68}
.diagnostic-events-v1925{display:grid;gap:5px;margin:10px 0 12px;max-height:150px;overflow:auto;padding-inline-end:3px}
.diagnostic-event-v1925{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center;padding:5px 7px;border-radius:8px;background:color-mix(in srgb,var(--surface,#fff) 84%,transparent);font-size:.76rem}
.diagnostic-event-v1925 time{font-variant-numeric:tabular-nums;opacity:.55}
.diagnostic-event-v1925 span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.diagnostic-event-v1925.warn{box-shadow:inset 3px 0 0 color-mix(in srgb,#b77b25 64%,transparent)}
.diagnostic-event-v1925.error{box-shadow:inset 3px 0 0 color-mix(in srgb,#a64d4d 72%,transparent)}
[dir="rtl"] .diagnostic-event-v1925.warn,[dir="rtl"] .diagnostic-event-v1925.error{box-shadow:inset -3px 0 0 color-mix(in srgb,#b77b25 64%,transparent)}
[dir="rtl"] .diagnostic-event-v1925.error{box-shadow:inset -3px 0 0 color-mix(in srgb,#a64d4d 72%,transparent)}
@media(max-width:720px){.safety-backup-row-v1925{align-items:flex-start}.diagnostic-event-v1925{grid-template-columns:1fr}.diagnostic-event-v1925 time{display:none}}

/* ===== v1.9.27 source, commentary, and Sefaria-search polish ===== */
/* Give source markers enough room for named nodes such as "הקדמה ג׳" without
   letting them invade the selectable text. */
.txt-reader-v164 .text-line{grid-template-columns:104px minmax(0,1fr) 104px!important;column-gap:14px!important}
.txt-reader-v164 .line-number,.txt-reader-v164 .reflow-line-number,.docx-line-reader .docx-line-number{font-size:10.5px!important;text-overflow:ellipsis!important}
.docx-line-reader .docx-line.no-comments{grid-template-columns:minmax(0,1fr) 96px!important;gap:9px!important}
.docx-line-reader .docx-line.has-comments{grid-template-columns:104px minmax(0,1fr) 96px!important;gap:9px!important}
@media(max-width:760px){
  .txt-reader-v164 .text-line{grid-template-columns:78px minmax(0,1fr) 78px!important;column-gap:8px!important}
  .docx-line-reader .docx-line.no-comments,.docx-line-reader .docx-line.has-comments{grid-template-columns:minmax(0,1fr) 72px!important;gap:6px!important}
  .docx-line-reader .docx-line.has-comments>.docx-line-comments{grid-column:1!important;grid-row:2!important}
}

/* Commentary snippets stay compact by default; clicking the text expands the
   complete installed commentary segment inside the sidebar. */
.commentary-text-v1927{position:relative;max-height:8.1em;overflow:hidden;cursor:pointer;border-radius:7px;outline:none;padding-inline-end:2px}
.commentary-text-v1927:not(.expanded)::after{content:'';position:absolute;inset-inline:0;bottom:0;height:2.5em;pointer-events:none;background:linear-gradient(to bottom,transparent,var(--panel))}
.commentary-text-v1927:hover{background:color-mix(in srgb,var(--accent) 5%,transparent)}
.commentary-text-v1927.expanded{max-height:none;overflow:visible;background:transparent}
.commentary-text-v1927.expanded::after{display:none}
.commentary-text-v1927:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 48%,transparent)}

/* Filter button belongs visually to the Commentaries tab. */
.reader-side-tabs .commentary-filter-button-v199{margin-inline-start:-5px!important;margin-inline-end:5px!important;width:34px!important;min-width:34px!important;height:34px!important;flex:0 0 34px!important;align-self:center!important;border-radius:9px!important;color:var(--muted)!important}
.reader-side-tabs .commentary-filter-button-v199:hover{background:var(--hover)!important;color:var(--text)!important}
.commentary-filter-button-v199 svg{width:19px;height:19px;display:block;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* Name autocomplete lives under the existing link/title field. */
.sefaria-import-v1919 .sefaria-search-row-v196{position:relative}
.sefaria-name-suggestions-v1927{position:absolute;z-index:20;top:calc(100% + 5px);inset-inline-start:0;width:min(520px,calc(100% - 54px));max-height:270px;overflow:auto;padding:5px;border:1px solid var(--border);border-radius:10px;background:var(--panel);box-shadow:var(--shadow);display:grid;gap:2px}
.sefaria-name-suggestions-v1927.hidden{display:none}
.sefaria-name-suggestions-v1927 button{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;border:0;border-radius:7px;background:transparent;color:var(--text);padding:8px 9px;text-align:start;cursor:pointer}
.sefaria-name-suggestions-v1927 button:hover,.sefaria-name-suggestions-v1927 button:focus-visible{background:var(--hover);outline:none}
.sefaria-name-suggestions-v1927 strong{font-size:12px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sefaria-name-suggestions-v1927 small{font-size:9px;color:var(--muted);flex:0 0 auto}
@media(max-width:560px){.sefaria-name-suggestions-v1927{width:100%}}

/* ===== v1.9.29 compact hierarchical source coordinates =====
   The source itself is now short, so the gutter can be generous without
   stealing as much reading width as long English schema labels did. */
.txt-reader-v164 .text-line{grid-template-columns:116px minmax(0,1fr) 116px!important;column-gap:14px!important}
.docx-line-reader .docx-line.no-comments{grid-template-columns:minmax(0,1fr) 106px!important}
.docx-line-reader .docx-line.has-comments{grid-template-columns:116px minmax(0,1fr) 106px!important}
.txt-reader-v164 .line-number,.txt-reader-v164 .reflow-line-number,.docx-line-reader .docx-line-number{font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif!important;font-size:11px!important;letter-spacing:0!important}
@media(max-width:760px){.txt-reader-v164 .text-line{grid-template-columns:84px minmax(0,1fr) 84px!important;column-gap:8px!important}.docx-line-reader .docx-line.no-comments,.docx-line-reader .docx-line.has-comments{grid-template-columns:minmax(0,1fr) 82px!important}}


/* ===== v1.9.31 schema navigation / reading polish ===== */
/* Bring the text and its source gutter closer to the physical page edge. */
.txt-book-page{padding-inline:clamp(16px,2.5vw,28px)!important}
.txt-reader-v164 .text-line{grid-template-columns:104px minmax(0,1fr) 104px!important;column-gap:10px!important}
.docx-line-reader .docx-line.no-comments{grid-template-columns:minmax(0,1fr) 100px!important;gap:7px!important}
.docx-line-reader .docx-line.has-comments{grid-template-columns:104px minmax(0,1fr) 100px!important;gap:7px!important}
@media(max-width:760px){.txt-book-page{padding-inline:12px!important}.txt-reader-v164 .text-line{grid-template-columns:78px minmax(0,1fr) 78px!important;column-gap:6px!important}.docx-line-reader .docx-line.no-comments,.docx-line-reader .docx-line.has-comments{grid-template-columns:minmax(0,1fr) 76px!important}}

/* Commentary title is the navigation link; commentary body is only an
   expander when it is genuinely clipped. */
.commentary-item-v192{cursor:default!important}
.commentary-source-link-v1930{appearance:none;border:0;background:transparent;color:inherit;padding:0;margin:0;display:flex;align-items:baseline;justify-content:space-between;gap:8px;width:100%;text-align:start;cursor:pointer;font:inherit}
.commentary-source-link-v1930:hover strong{text-decoration:underline;text-underline-offset:3px}
.commentary-source-link-v1930 small{color:var(--muted);font-size:10px;white-space:nowrap}
.commentary-text-v1927{max-height:none;overflow:visible;cursor:default!important}
.commentary-text-v1927::after{display:none!important}
.commentary-text-v1927.commentary-expandable-v1930{max-height:8.1em;overflow:hidden;cursor:pointer!important}
.commentary-text-v1927.commentary-expandable-v1930:not(.expanded)::after{display:block!important;content:'';position:absolute;inset-inline:0;bottom:0;height:2.5em;pointer-events:none;background:linear-gradient(to bottom,transparent,var(--panel))}
.commentary-text-v1927.commentary-expandable-v1930.expanded{max-height:none;overflow:visible}

/* Top source is now a subtle navigation affordance. */
.reader-page-header>.reader-source-center-v1910.source-navigable-v1930{pointer-events:auto!important;cursor:pointer!important;border-radius:8px;padding:5px 9px!important;transition:background .12s ease,color .12s ease}
.reader-page-header>.reader-source-center-v1910.source-navigable-v1930:hover{background:var(--hover);color:var(--text)}
.source-navigator-backdrop-v1930{position:fixed;inset:0;z-index:10080;background:rgba(0,0,0,.42);backdrop-filter:blur(2px);display:grid;place-items:center;padding:18px}
.source-navigator-v1930{width:min(620px,94vw);max-height:min(620px,90vh);overflow:hidden;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.34);display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.source-navigator-v1930>header,.source-navigator-v1930>footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;border-color:var(--border)}
.source-navigator-v1930>header{border-bottom:1px solid var(--border)}.source-navigator-v1930>footer{border-top:1px solid var(--border);justify-content:flex-end}
.source-rollers-v1930{min-height:244px;padding:18px 20px;display:flex;align-items:center;justify-content:center;gap:7px;overflow-x:auto;direction:rtl}
.source-roller-v1930{width:92px;height:220px;overflow-y:auto;scroll-snap-type:y mandatory;scrollbar-width:none;padding-block:88px;box-sizing:border-box;position:relative;border-inline:1px solid color-mix(in srgb,var(--border) 65%,transparent)}
.source-roller-v1930::-webkit-scrollbar{display:none}
.source-roller-v1930 button{display:flex;width:100%;height:44px;min-height:44px;align-items:center;justify-content:center;scroll-snap-align:center;border:0;background:transparent;color:var(--muted);font:600 18px/1.1 "Noto Sans Hebrew",system-ui,sans-serif;cursor:pointer;white-space:nowrap}
.source-roller-v1930 button.active{color:var(--text);font-weight:800}
.source-roller-v1930::before,.source-roller-v1930::after{content:'';position:sticky;display:block;z-index:2;pointer-events:none;inset-inline:0;height:1px;background:color-mix(in srgb,var(--accent) 48%,var(--border))}
.source-roller-v1930::before{top:87px}.source-roller-v1930::after{bottom:87px}
.source-roller-colon-v1930{font-size:25px;font-weight:700;color:var(--muted);flex:0 0 auto}
@media(max-width:560px){.source-navigator-v1930{width:96vw}.source-rollers-v1930{padding-inline:9px;gap:2px}.source-roller-v1930{width:74px}.source-roller-v1930 button{font-size:16px}}

/* Safety/diagnostic cards use the app's real panel variables in both themes. */
.safety-backup-row-v1925{background:color-mix(in srgb,var(--panel-2) 88%,var(--panel))!important;border-color:var(--border)!important;color:var(--text)!important}
.safety-backup-row-v1925 small{color:var(--muted)!important;opacity:1!important}
.diagnostic-event-v1925{background:color-mix(in srgb,var(--panel-2) 88%,var(--panel))!important;color:var(--text)!important;border:1px solid color-mix(in srgb,var(--border) 72%,transparent)}
.diagnostic-event-v1925 time{color:var(--muted)!important;opacity:1!important}.diagnostic-event-v1925 span{color:var(--text)!important}
body.dark .safety-backup-row-v1925,body.dark .diagnostic-event-v1925{background:color-mix(in srgb,var(--panel-2) 94%,#000 6%)!important}

/* v1.9.37 — open-sidebar active tab is identified by position, not colour.
   Hebrew sidebar sits on the right, English on the left: move only the active
   tab slightly inward from the physical screen edge. */
.sidebar:not(.collapsed) .reader-tab{transition:transform .16s ease!important}
/* Active and inactive tabs keep the book's exact same colour. Position alone
   marks the open book. This deliberately repeats the final normal-tab paint
   values so older active-tab rules cannot leak through the cascade. */
.sidebar:not(.collapsed) .reader-tab.active,
.sidebar:not(.collapsed) .reader-tab.active:hover{
  background:color-mix(in srgb,var(--tab-color,#66736a) 72%,var(--panel))!important;
  border-color:color-mix(in srgb,var(--tab-ink,#f7f5ef) 24%,var(--tab-color,#66736a))!important;
  box-shadow:none!important;
}
body.ui-he .sidebar:not(.collapsed) .reader-tab.active{transform:translateX(-7px)!important}
body.ui-en .sidebar:not(.collapsed) .reader-tab.active{transform:translateX(7px)!important}
.sidebar:not(.collapsed) .reader-tab.active .reader-tab-title{font-weight:inherit!important;color:inherit!important}
.commentary-item-openable-v194:hover,.commentary-item-openable-v194:focus-visible{border-color:var(--border)!important;background:var(--panel)!important;outline:none!important}.commentary-item-openable-v194:active{transform:none!important}
.source-roller-v1930::before,.source-roller-v1930::after{display:none!important}

/* ===== v1.9.32 recursive commentary actions ===== */
.commentary-find-more-v1932{white-space:nowrap;align-self:center;min-width:max-content}

/* v1.9.36 — clear, reliable Sefaria commentary selection */
.sefaria-commentary-choice-v196.active,
.sefaria-commentary-choice-v196:has(input[type="checkbox"]:checked){
  border-color:color-mix(in srgb,var(--accent) 62%,var(--border))!important;
  background:color-mix(in srgb,var(--accent) 10%,var(--panel))!important;
}
.starter-commentary-chip-v199:has(input[type="checkbox"]:checked:not(:disabled)){
  border-color:color-mix(in srgb,var(--accent) 55%,var(--border));
  background:color-mix(in srgb,var(--accent) 9%,var(--panel));
}


/* ===== v1.9.38 tighter horizontal TXT / DOCX reading margins =====
   Vertical spacing is intentionally unchanged.  Reduce only the physical
   left/right whitespace and source gutter so reflowed text sits closer to the
   page edges.  Native PDF rendering is untouched. */
.line-reader{padding-inline:clamp(7px,1.35vw,14px)!important}
.txt-book-page{padding-inline:clamp(4px,.9vw,9px)!important}
.txt-reader-v164 .text-line{grid-template-columns:88px minmax(0,1fr) 88px!important;column-gap:7px!important}
.docx-line-reader{padding-inline:8px!important}
.docx-line-reader .docx-line.no-comments{grid-template-columns:minmax(0,1fr) 84px!important;gap:6px!important}
.docx-line-reader .docx-line.has-comments{grid-template-columns:104px minmax(0,1fr) 84px!important;gap:6px!important}
@media(max-width:760px){
  .line-reader{padding-inline:5px!important}.txt-book-page{padding-inline:3px!important}
  .txt-reader-v164 .text-line{grid-template-columns:68px minmax(0,1fr) 68px!important;column-gap:5px!important}
  .docx-line-reader{padding-inline:5px!important}
  .docx-line-reader .docx-line.no-comments,.docx-line-reader .docx-line.has-comments{grid-template-columns:minmax(0,1fr) 66px!important;gap:4px!important}
  .docx-line-reader .docx-line.has-comments>.docx-line-comments{grid-column:1!important;grid-row:2!important}
}
\n\n/* ===== v1.9.42 download controls + vibrant tabs ===== */
/* Downloads page uses compact media-style controls. */
.download-job-controls-v1921{align-items:center!important;gap:8px!important}
.download-job-controls-v1921 .download-icon-control-v1942{
  width:34px!important;height:34px!important;min-width:34px!important;padding:0!important;
  display:inline-grid!important;place-items:center!important;border-radius:9px!important;
  font:700 18px/1 system-ui,sans-serif!important;background:var(--panel-2)!important;
  border:1px solid var(--border)!important;color:var(--text)!important;box-shadow:none!important;
}
.download-job-controls-v1921 .download-icon-control-v1942:hover{background:var(--hover)!important}
.download-job-controls-v1921 .download-icon-control-v1942.resume-v1942{font-size:17px!important;padding-inline-start:2px!important}
.download-job-controls-v1921 .download-icon-control-v1942.cancel-v1942{
  color:var(--danger)!important;border-color:color-mix(in srgb,var(--danger) 42%,var(--border))!important;
  background:color-mix(in srgb,var(--danger) 8%,var(--panel-2))!important;font-size:20px!important;
}
.download-job-controls-v1921 .download-icon-control-v1942.cancel-v1942:hover{background:color-mix(in srgb,var(--danger) 15%,var(--panel-2))!important}

/* Make every expanded book tab richer without using colour to mark the active
   book. The active state remains position-only. */
.sidebar:not(.collapsed) .reader-tab,
.sidebar:not(.collapsed) .reader-tab.active{
  background:color-mix(in srgb,var(--tab-color,#66736a) 84%,var(--panel))!important;
  border-color:color-mix(in srgb,var(--tab-ink,#f7f5ef) 25%,var(--tab-color,#66736a))!important;
  filter:saturate(1.22)!important;
  box-shadow:none!important;
  position:relative!important;z-index:3!important;
}
.sidebar:not(.collapsed) .reader-tab:hover,
.sidebar:not(.collapsed) .reader-tab.active:hover{
  background:color-mix(in srgb,var(--tab-color,#66736a) 88%,var(--panel))!important;
  box-shadow:none!important;
}
.sidebar:not(.collapsed) .reader-tab.active{z-index:6!important}
/* Tabs paint above the sidebar boundary when the active tab is shifted inward. */
.sidebar:not(.collapsed),
.sidebar:not(.collapsed) .sidebar-tabs-section{position:relative!important}
.sidebar:not(.collapsed) .sidebar-tabs-section{z-index:2!important}
.sidebar:not(.collapsed) .reader-tab::before{z-index:7!important;filter:saturate(3.4) contrast(1.12)!important}

/* ===== v1.9.44 app-style download controls ===== */
/* Keep the media icons compact, but make them feel like native Project Shtut
   controls rather than generic square buttons. */
.download-job-controls-v1921 .download-icon-control-v1942{
  width:38px!important;height:38px!important;min-width:38px!important;
  border-radius:12px!important;
  border:1px solid color-mix(in srgb,var(--border) 78%,var(--text))!important;
  background:linear-gradient(180deg,
    color-mix(in srgb,var(--panel) 82%,var(--panel-2)),
    var(--panel-2))!important;
  color:var(--text)!important;
  box-shadow:0 1px 0 color-mix(in srgb,var(--text) 8%,transparent),
             inset 0 1px 0 color-mix(in srgb,var(--panel) 75%,transparent)!important;
  transition:background .12s ease,border-color .12s ease,transform .12s ease,box-shadow .12s ease!important;
}
.download-job-controls-v1921 .download-icon-control-v1942:hover{
  border-color:color-mix(in srgb,var(--accent) 45%,var(--border))!important;
  background:color-mix(in srgb,var(--accent) 10%,var(--panel-2))!important;
  transform:translateY(-1px)!important;
}
.download-job-controls-v1921 .download-icon-control-v1942:active{transform:translateY(0)!important}
.download-job-controls-v1921 .download-icon-control-v1942:focus-visible{
  outline:2px solid color-mix(in srgb,var(--accent) 70%,transparent)!important;
  outline-offset:2px!important;
}
.download-job-controls-v1921 .download-icon-control-v1942.pause-v1942,
.download-job-controls-v1921 .download-icon-control-v1942.resume-v1942{
  color:var(--accent)!important;
  border-color:color-mix(in srgb,var(--accent) 34%,var(--border))!important;
  background:color-mix(in srgb,var(--accent) 8%,var(--panel))!important;
}
.download-job-controls-v1921 .download-icon-control-v1942.pause-v1942:hover,
.download-job-controls-v1921 .download-icon-control-v1942.resume-v1942:hover{
  background:color-mix(in srgb,var(--accent) 16%,var(--panel))!important;
  border-color:color-mix(in srgb,var(--accent) 58%,var(--border))!important;
}
.download-job-controls-v1921 .download-icon-control-v1942.cancel-v1942{
  color:#fff!important;
  border-color:var(--danger)!important;
  background:var(--danger)!important;
  box-shadow:0 1px 0 color-mix(in srgb,var(--danger) 45%,#000),
             inset 0 1px 0 rgba(255,255,255,.16)!important;
}
.download-job-controls-v1921 .download-icon-control-v1942.cancel-v1942:hover{
  color:#fff!important;
  border-color:var(--danger)!important;
  background:color-mix(in srgb,var(--danger) 86%,#000)!important;
}
.download-job-controls-v1921 .download-icon-control-v1942.cancel-v1942:focus-visible{
  outline-color:color-mix(in srgb,var(--danger) 70%,transparent)!important;
}

/* ===== v1.9.45 active-tab overlap + calmer tab body =====
   The book tab body returns to the earlier muted mix.  The narrow coloured
   spine/edge stays strongly saturated, so tabs still have clear identities.
   Active state remains position-only. */
.sidebar:not(.collapsed) .reader-tab,
.sidebar:not(.collapsed) .reader-tab.active{
  background:color-mix(in srgb,var(--tab-color,#66736a) 72%,var(--panel))!important;
  border-color:color-mix(in srgb,var(--tab-ink,#f7f5ef) 24%,var(--tab-color,#66736a))!important;
  filter:none!important;
  box-shadow:none!important;
}
.sidebar:not(.collapsed) .reader-tab:hover,
.sidebar:not(.collapsed) .reader-tab.active:hover{
  background:color-mix(in srgb,var(--tab-color,#66736a) 77%,var(--panel))!important;
  box-shadow:none!important;
}
.sidebar:not(.collapsed) .reader-tab::before{
  filter:saturate(3.4) contrast(1.12)!important;
}

/* Let an active expanded tab pass visibly in front of the sidebar/main-area
   divider.  The scroll viewport is widened only on the app-facing side; extra
   padding keeps inactive tabs exactly where they were. */
.sidebar:not(.collapsed){
  position:relative!important;
  z-index:12!important;
  overflow:visible!important;
}
.sidebar:not(.collapsed) .sidebar-tabs-section,
.sidebar:not(.collapsed) .sidebar-tabs-scroll{
  overflow:visible!important;
}
body.ui-he .sidebar:not(.collapsed) .sidebar-book-tabs{
  width:calc(100% + 12px)!important;
  margin-left:-12px!important;
  padding-left:17px!important;
  padding-right:5px!important;
}
body.ui-en .sidebar:not(.collapsed) .sidebar-book-tabs{
  width:calc(100% + 12px)!important;
  margin-right:-12px!important;
  padding-right:17px!important;
  padding-left:5px!important;
}
.sidebar:not(.collapsed) .sidebar-book-tabs .reader-tab.active{
  z-index:20!important;
}



/* ===== v1.9.47 app-native Downloads icon controls =====
   Draw the media/destructive glyphs in CSS so Chromium cannot substitute
   bright platform emoji.  Geometry follows the app's regular icon buttons. */
.download-job-controls-v1921{gap:9px!important}
.download-job-controls-v1921 .download-icon-control-v1942{
  position:relative!important;
  width:36px!important;height:36px!important;min-width:36px!important;
  padding:0!important;border-radius:10px!important;
  font-size:0!important;line-height:0!important;
  background:var(--panel)!important;
  border:1px solid var(--border)!important;
  color:var(--text)!important;
  box-shadow:none!important;
}
.download-job-controls-v1921 .download-icon-control-v1942::before,
.download-job-controls-v1921 .download-icon-control-v1942::after{
  content:'';position:absolute;display:block;pointer-events:none;
}
/* Pause: two quiet accent-coloured bars. */
.download-job-controls-v1921 .download-icon-control-v1942.pause-v1942::before{
  width:4px;height:14px;border-radius:2px;background:var(--accent);
  left:11px;top:10px;
}
.download-job-controls-v1921 .download-icon-control-v1942.pause-v1942::after{
  width:4px;height:14px;border-radius:2px;background:var(--accent);
  right:11px;top:10px;
}
/* Resume: a small CSS triangle, not an emoji play button. */
.download-job-controls-v1921 .download-icon-control-v1942.resume-v1942::before{
  width:0;height:0;left:13px;top:9px;
  border-top:8px solid transparent;border-bottom:8px solid transparent;
  border-left:12px solid var(--accent);
}
.download-job-controls-v1921 .download-icon-control-v1942.pause-v1942,
.download-job-controls-v1921 .download-icon-control-v1942.resume-v1942{
  background:color-mix(in srgb,var(--panel) 86%,var(--accent) 14%)!important;
  border-color:color-mix(in srgb,var(--border) 72%,var(--accent))!important;
}
.download-job-controls-v1921 .download-icon-control-v1942.pause-v1942:hover,
.download-job-controls-v1921 .download-icon-control-v1942.resume-v1942:hover{
  background:color-mix(in srgb,var(--panel) 77%,var(--accent) 23%)!important;
  border-color:color-mix(in srgb,var(--border) 48%,var(--accent))!important;
  transform:none!important;
}
/* Cancel: restrained Project Shtut destructive control. */
.download-job-controls-v1921 .download-icon-control-v1942.cancel-v1942{
  background:color-mix(in srgb,#8f3333 78%,var(--panel))!important;
  border-color:color-mix(in srgb,#b84a4a 82%,var(--border))!important;
  color:#fff!important;box-shadow:none!important;
}
body.dark .download-job-controls-v1921 .download-icon-control-v1942.cancel-v1942{
  background:#7d3030!important;border-color:#a64b4b!important;
}
.download-job-controls-v1921 .download-icon-control-v1942.cancel-v1942::before,
.download-job-controls-v1921 .download-icon-control-v1942.cancel-v1942::after{
  width:16px;height:2.5px;left:9px;top:16px;border-radius:2px;background:#fff;
}
.download-job-controls-v1921 .download-icon-control-v1942.cancel-v1942::before{transform:rotate(45deg)}
.download-job-controls-v1921 .download-icon-control-v1942.cancel-v1942::after{transform:rotate(-45deg)}
.download-job-controls-v1921 .download-icon-control-v1942.cancel-v1942:hover{
  background:#982f2f!important;border-color:#bd5656!important;transform:none!important;
}
body.dark .download-job-controls-v1921 .download-icon-control-v1942.cancel-v1942:hover{
  background:#913636!important;border-color:#bd5656!important;
}
.download-job-controls-v1921 .download-icon-control-v1942:focus-visible{
  outline:2px solid color-mix(in srgb,var(--accent) 68%,transparent)!important;
  outline-offset:2px!important;
}
.download-job-controls-v1921 .download-icon-control-v1942.cancel-v1942:focus-visible{
  outline-color:color-mix(in srgb,#d66 72%,transparent)!important;
}


/* ===== v1.10.0 finishing / stabilization ===== */
.main-area{position:relative}
.app-spinner-v110{
  width:24px;height:24px;box-sizing:border-box;border-radius:50%;
  border:2px solid color-mix(in srgb,var(--accent) 26%,var(--border));
  border-top-color:var(--accent);animation:shtut-v110-spin .72s linear infinite;flex:0 0 auto;
}
@keyframes shtut-v110-spin{to{transform:rotate(360deg)}}
.app-loading-card-v110{
  display:flex;align-items:center;gap:11px;min-width:180px;max-width:min(420px,calc(100vw - 36px));
  padding:12px 15px;border:1px solid var(--border);border-radius:14px;
  background:color-mix(in srgb,var(--panel) 94%,transparent);color:var(--text);
  box-shadow:0 10px 30px rgba(0,0,0,.14);backdrop-filter:blur(10px);
  font-size:12px;font-weight:650;
}
.app-loading-card-v110>div{display:grid;gap:2px}.app-loading-card-v110 small{color:var(--muted);font-size:10px;font-weight:500;line-height:1.35}
.book-open-loader-v110{
  position:absolute;inset:0;z-index:34;display:grid;place-items:center;pointer-events:auto;
  background:color-mix(in srgb,var(--bg) 36%,transparent);backdrop-filter:blur(1.5px);
}
.book-open-loader-v110.hidden{display:none!important}
.starter-install-loading-v110{
  position:absolute;inset:0;z-index:8;display:grid;place-items:center;padding:20px;
  background:color-mix(in srgb,var(--panel) 73%,transparent);backdrop-filter:blur(3px);border-radius:16px;
}
.form-window.starter-install-busy-v110{overflow:hidden}

/* Downloads controls: intentionally quiet.  Their shape is visible on hover or
   keyboard focus; the destructive X stays red without becoming a large red tile. */
.download-job-controls-v1921{gap:4px!important;margin-top:1px!important}
.download-job-controls-v1921 .download-icon-control-v1942{
  width:28px!important;height:28px!important;min-width:28px!important;border-radius:8px!important;
  padding:0!important;background:transparent!important;border:1px solid transparent!important;
  box-shadow:none!important;transform:none!important;opacity:.78!important;
}
.download-job-controls-v1921 .download-icon-control-v1942:hover,
.download-job-controls-v1921 .download-icon-control-v1942:focus-visible{
  opacity:1!important;background:var(--hover)!important;border-color:var(--border)!important;transform:none!important;
}
.download-job-controls-v1921 .download-icon-control-v1942.pause-v1942::before{
  width:3px!important;height:12px!important;left:9px!important;top:7px!important;border-radius:2px!important;background:var(--muted)!important;
}
.download-job-controls-v1921 .download-icon-control-v1942.pause-v1942::after{
  width:3px!important;height:12px!important;right:9px!important;top:7px!important;border-radius:2px!important;background:var(--muted)!important;
}
.download-job-controls-v1921 .download-icon-control-v1942.resume-v1942::before{
  left:10px!important;top:6px!important;border-top-width:7px!important;border-bottom-width:7px!important;border-left-width:10px!important;border-left-color:var(--accent)!important;
}
.download-job-controls-v1921 .download-icon-control-v1942.pause-v1942,
.download-job-controls-v1921 .download-icon-control-v1942.resume-v1942{
  background:transparent!important;border-color:transparent!important;color:var(--muted)!important;
}
.download-job-controls-v1921 .download-icon-control-v1942.pause-v1942:hover,
.download-job-controls-v1921 .download-icon-control-v1942.resume-v1942:hover{
  background:var(--hover)!important;border-color:var(--border)!important;
}
.download-job-controls-v1921 .download-icon-control-v1942.cancel-v1942,
body.dark .download-job-controls-v1921 .download-icon-control-v1942.cancel-v1942{
  background:transparent!important;border-color:transparent!important;color:var(--danger)!important;
}
.download-job-controls-v1921 .download-icon-control-v1942.cancel-v1942::before,
.download-job-controls-v1921 .download-icon-control-v1942.cancel-v1942::after{
  width:13px!important;height:2px!important;left:7px!important;top:12px!important;background:var(--danger)!important;
}
.download-job-controls-v1921 .download-icon-control-v1942.cancel-v1942:hover,
body.dark .download-job-controls-v1921 .download-icon-control-v1942.cancel-v1942:hover{
  background:color-mix(in srgb,var(--danger) 9%,transparent)!important;
  border-color:color-mix(in srgb,var(--danger) 25%,transparent)!important;
}
