:root{font-family:Tahoma,"Noto Sans Thai",Arial,sans-serif;color:#18202a;background:#f5f7fb;--line:#dfe4ec;--accent:#2563eb;--panel:#fff;--muted:#667085}*{box-sizing:border-box}body{margin:0;background:#f5f7fb;color:#18202a}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.topbar{height:58px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 20px;position:sticky;top:0;z-index:10}.top-actions{display:flex;align-items:center;gap:14px}.top-actions form{margin:0}.brand-link{font-weight:700}.pill{display:inline-block;font-size:12px;background:#eef2f7;border-radius:999px;padding:3px 8px;margin-left:8px}.page{max-width:1180px;margin:auto;padding:28px 20px}.page.narrow{max-width:960px}.section-title{display:flex;justify-content:space-between;align-items:end;margin-bottom:18px}.section-title h1{margin:0}.muted{color:var(--muted)}.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:20px;box-shadow:0 3px 14px rgba(20,30,50,.04)}.login-page{display:grid;place-items:center;min-height:100vh;background:linear-gradient(145deg,#eef4ff,#f7f8fb)}.login-card{width:min(390px,calc(100vw - 32px));background:#fff;padding:34px;border:1px solid var(--line);border-radius:18px;box-shadow:0 14px 50px rgba(28,45,75,.12)}.login-card h1{margin:8px 0 0}.brand-mark{width:52px;height:52px;border-radius:14px;background:#111827;color:#fff;display:grid;place-items:center;font-weight:700;font-size:20px}.stack{display:grid;gap:14px;margin-top:22px}label{display:grid;gap:6px}input,select,textarea{border:1px solid #cfd6e1;border-radius:9px;padding:10px 11px;background:#fff}button,.button{border:1px solid #cfd6e1;background:#fff;border-radius:9px;padding:9px 14px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.primary{background:#1f2937;color:#fff;border-color:#1f2937}.ghost{background:#fff}.small{padding:7px 10px}.link-btn{border:0;padding:0;background:transparent}.alert{background:#fff1f1;color:#9d2020;padding:10px 12px;border-radius:9px;margin:12px 0}.version{font-size:12px;color:#98a2b3;margin-top:20px}.app-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.app-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;display:flex;gap:16px;transition:.15s}.app-card:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(30,45,70,.08)}.app-icon{min-width:50px;height:50px;border-radius:13px;background:#111827;color:#fff;display:grid;place-items:center;font-weight:700}.app-card h2{margin:0 0 5px}.app-card p{margin:0;color:var(--muted)}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.app-checks{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.app-checks label,.permission-row label{display:flex;align-items:center;gap:6px}.user-list{display:grid;gap:12px}.user-card{border:1px solid var(--line);border-radius:12px;padding:14px}.user-heading{display:flex;justify-content:space-between;gap:10px;margin-bottom:12px}.permission-row,.inline-form{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.inline-form{margin-top:10px}.kb-shell{display:grid;grid-template-columns:260px 1fr;min-height:calc(100vh - 58px)}.category-pane{background:#fff;border-right:1px solid var(--line);padding:16px;position:sticky;top:58px;height:calc(100vh - 58px);overflow:auto}.pane-title{font-weight:700;margin:3px 8px 12px}.category-link{display:flex;align-items:center;gap:8px;padding:10px;border-radius:9px;margin-bottom:3px}.category-link:hover,.category-link.active{background:#f0f4fb}.category-link small{margin-left:auto;color:#98a2b3}.color-dot{width:10px;height:10px;border-radius:50%;border:1px solid rgba(0,0,0,.08)}.new-category{display:grid;grid-template-columns:1fr 42px 36px;gap:5px;margin-top:18px}.new-category input[type=color]{padding:2px}.document-pane{padding:18px 22px;min-width:0}.kb-search{display:flex;gap:8px}.kb-search input{flex:1}.document-count{font-size:13px;color:var(--muted);margin:12px 3px}.doc-list{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.doc-row{display:grid;grid-template-columns:5px 1fr auto minmax(100px,180px);gap:10px;align-items:center;min-height:48px;padding-right:14px;border-bottom:1px solid #edf0f5}.doc-row:last-child{border-bottom:0}.doc-row:hover{background:#f8fafc}.doc-color{height:100%;background:var(--cat-color)}.doc-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-row small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty{padding:30px;text-align:center;color:var(--muted)}.editor-page{max-width:1100px}.editor-form{display:grid;gap:12px}.editor-toolbar-row{display:grid;grid-template-columns:1fr 230px auto;gap:10px;align-items:center}.title-input{font-size:19px;font-weight:700}.document-editor{min-height:68vh;resize:vertical;line-height:1.65;padding:18px}.editor-actions{display:flex;gap:8px}.reader-body{background:#fbfbfa}.reader-header{height:58px;background:rgba(255,255,255,.95);border-bottom:1px solid #e6e7e9;display:grid;grid-template-columns:48px 1fr auto;align-items:center;padding:0 10px;position:fixed;left:0;right:0;top:0;z-index:20;backdrop-filter:blur(8px)}.reader-icon{width:40px;height:40px;border:0;background:transparent;border-radius:10px;display:grid;place-items:center;font-size:20px}.reader-heading{text-align:center;min-width:0}.reader-heading strong,.reader-heading small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reader-heading small{font-size:11px;color:#89909a;margin-top:2px}.reader-actions{display:flex}.reader-article{max-width:780px;margin:0 auto;padding:92px 24px 110px;font-size:20px;line-height:1.8;min-height:100vh}.reader-article article{white-space:pre-wrap;word-break:break-word}.reader-nav{position:fixed;bottom:0;left:0;right:0;height:70px;background:rgba(255,255,255,.96);border-top:1px solid #e1e5ea;display:grid;grid-template-columns:1fr 1fr 1fr;z-index:20;backdrop-filter:blur(10px)}.reader-nav>a,.reader-nav>button,.reader-nav>.disabled{border:0;background:transparent;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px}.reader-nav span{font-size:24px}.reader-nav small{font-size:11px}.reader-nav .disabled{opacity:.25}.reader-settings,.toc-panel{position:fixed;z-index:40;background:#fff;box-shadow:0 18px 60px rgba(0,0,0,.18);border:1px solid #dfe3e8}.reader-settings{top:66px;right:12px;width:310px;border-radius:14px;padding:16px}.reader-settings>div:first-child,.toc-head{display:flex;justify-content:space-between;align-items:center}.reader-settings label{margin-top:14px}.theme-buttons{display:flex;gap:6px;margin-top:16px}.toc-panel{left:50%;bottom:82px;transform:translateX(-50%);width:min(560px,calc(100vw - 24px));max-height:65vh;border-radius:16px;overflow:hidden}.toc-head{padding:14px 16px;border-bottom:1px solid var(--line)}.toc-list{overflow:auto;max-height:55vh}.toc-list a{display:block;padding:12px 16px;border-bottom:1px solid #eef1f4}.toc-list a.current{background:#eef4ff;font-weight:700}.hidden{display:none!important}html[data-reader-theme="sepia"] .reader-body,html[data-reader-theme="sepia"] body{background:#f4ecd8;color:#3d3428}html[data-reader-theme="sepia"] .reader-header,html[data-reader-theme="sepia"] .reader-nav{background:rgba(244,236,216,.96)}html[data-reader-theme="dark"] .reader-body,html[data-reader-theme="dark"] body{background:#16181c;color:#e7e8ea}html[data-reader-theme="dark"] .reader-header,html[data-reader-theme="dark"] .reader-nav{background:rgba(25,27,31,.96);border-color:#333840}html[data-reader-theme="dark"] .reader-settings,html[data-reader-theme="dark"] .toc-panel{background:#202328;color:#f1f2f4;border-color:#333840}html[data-reader-theme="dark"] .toc-list a{border-color:#333840}
@media(max-width:760px){.topbar{padding:0 12px}.top-actions>span{display:none}.page{padding:18px 14px}.form-grid{grid-template-columns:1fr}.kb-shell{display:block}.category-pane{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line);display:flex;gap:5px;overflow:auto;padding:9px}.pane-title,.new-category{display:none}.category-link{white-space:nowrap;margin:0;padding:8px 10px}.document-pane{padding:12px}.doc-row{grid-template-columns:5px 1fr auto}.doc-row small{display:none}.editor-toolbar-row{grid-template-columns:1fr}.document-editor{min-height:62vh}.reader-article{padding:82px 18px 100px;font-size:19px;line-height:1.8}.reader-heading{font-size:13px}.reader-settings{left:12px;right:12px;width:auto}.user-heading{display:block}.kb-topbar strong{font-size:14px}}
.rich-toolbar{display:flex;gap:6px;flex-wrap:wrap;padding:8px;background:#f7f8fb;border:1px solid var(--line);border-radius:10px}.rich-toolbar button{min-width:40px;padding:7px 10px}.rich-editor{background:#fff;border:1px solid #cfd6e1;border-radius:10px;overflow:auto}.rich-editor:focus{outline:2px solid #c7d8ff;border-color:#8fb0ff}.rich-editor p{margin:.55em 0}.rich-editor h2,.rich-editor h3{margin:1em 0 .45em}.reader-article .plain-content{white-space:pre-wrap;word-break:break-word}.reader-article .rich-content{white-space:normal;word-break:break-word}.reader-article .rich-content p{margin:.7em 0}.reader-article .rich-content pre{white-space:pre-wrap;font:inherit;background:rgba(128,128,128,.08);padding:12px;border-radius:8px}.reader-export{margin-top:42px;padding-top:18px;border-top:1px solid rgba(128,128,128,.25);display:flex;gap:10px;flex-wrap:wrap}.reader-export a,.reader-export button{border:1px solid #cfd6e1;background:transparent;border-radius:8px;padding:7px 11px}.result-summary{display:flex;gap:12px;flex-wrap:wrap}.result-summary span{padding:8px 12px;background:#f4f6f9;border-radius:10px}.import-result small{color:var(--muted)}.tool-actions{display:flex;gap:10px}.danger{background:#b42318;color:#fff;border-color:#b42318}.alert.neutral{background:#eef4ff;color:#344054}.category-manage{display:grid;gap:10px}.category-manage-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.category-edit{display:grid;grid-template-columns:1fr 52px 90px auto;gap:8px;align-items:center}hr{border:0;border-top:1px solid var(--line);margin:20px 0}@media(max-width:760px){.category-manage-row{grid-template-columns:1fr}.category-edit{grid-template-columns:1fr 48px auto}.category-edit span{display:none}.rich-toolbar{position:sticky;top:58px;z-index:5}.top-actions .button{padding:6px 8px;font-size:12px}}
@media print{.no-print,.reader-header{display:none!important}.reader-article{max-width:none;padding:0;font-size:12pt!important;line-height:1.6!important}body,.reader-body{background:#fff!important;color:#000!important}}

/* v0.3.4 Searchable Reader TOC */
body.toc-open{overflow:hidden}
.toc-backdrop{position:fixed;inset:58px 0 0 0;background:rgba(15,23,42,.28);backdrop-filter:blur(2px);z-index:39}
.toc-drawer{position:fixed;left:0;top:58px;bottom:0;width:min(390px,88vw);z-index:45;background:#fff;border-right:1px solid #dfe3e8;box-shadow:16px 0 48px rgba(15,23,42,.18);display:flex;flex-direction:column;overflow:hidden;animation:tocSlideIn .16s ease-out}
@keyframes tocSlideIn{from{transform:translateX(-18px);opacity:.5}to{transform:translateX(0);opacity:1}}
.toc-drawer-head{min-height:72px;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}
.toc-drawer-head>div{min-width:0}
.toc-drawer-head strong{display:block;font-size:17px}
.toc-drawer-head small{display:block;margin-top:3px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.toc-close{width:38px;height:38px;min-width:38px;padding:0;border-radius:10px;font-size:20px;background:transparent}
.toc-search-wrap{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line);background:#fff}
.toc-search-wrap input{width:100%;min-width:0}
.toc-count{min-width:35px;text-align:center;font-size:12px;color:var(--muted);background:#f2f4f7;border-radius:999px;padding:6px 8px}
.toc-drawer-list{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:6px 0 18px;scrollbar-gutter:stable}
.toc-item{min-height:48px;padding:11px 14px 11px 16px;border-bottom:1px solid #eef1f4;border-left:4px solid transparent;display:flex;align-items:center;gap:10px}
.toc-item:hover{background:#f7f9fc}
.toc-item.current{background:#eaf2ff;border-left-color:#2563eb;font-weight:700}
.toc-item-title{flex:1;min-width:0;line-height:1.45}
.toc-current-badge{font-size:10px;font-weight:400;white-space:nowrap;color:#1d4ed8;background:#dbeafe;border-radius:999px;padding:3px 7px}
.toc-empty{padding:28px 16px;text-align:center;color:var(--muted)}
html[data-reader-theme="sepia"] .toc-drawer,html[data-reader-theme="sepia"] .toc-search-wrap{background:#f4ecd8;color:#3d3428}
html[data-reader-theme="sepia"] .toc-item.current{background:#eadfbe;border-left-color:#8a6d3b}
html[data-reader-theme="dark"] .toc-drawer,html[data-reader-theme="dark"] .toc-search-wrap{background:#202328;color:#f1f2f4;border-color:#333840}
html[data-reader-theme="dark"] .toc-drawer-head,html[data-reader-theme="dark"] .toc-search-wrap,html[data-reader-theme="dark"] .toc-item{border-color:#333840}
html[data-reader-theme="dark"] .toc-search-wrap input{background:#17191d;color:#f1f2f4;border-color:#444a55}
html[data-reader-theme="dark"] .toc-count{background:#30343b;color:#cfd4dc}
html[data-reader-theme="dark"] .toc-item:hover{background:#292d33}
html[data-reader-theme="dark"] .toc-item.current{background:#253653;border-left-color:#60a5fa}
html[data-reader-theme="dark"] .toc-current-badge{background:#1e3a5f;color:#bfdbfe}
@media(max-width:760px){
  .toc-backdrop{inset:0;background:rgba(15,23,42,.38)}
  .toc-drawer{left:8px;right:8px;top:8px;bottom:82px;width:auto;border:1px solid #dfe3e8;border-radius:17px;box-shadow:0 20px 65px rgba(15,23,42,.28)}
  .toc-drawer-head{min-height:68px;padding:12px 14px}
  .toc-search-wrap{padding:10px 12px}
  .toc-item{min-height:50px;padding:12px 12px 12px 14px}
}

/* v0.3.5 Delete document actions */
.reader-delete-form{margin:0;display:flex}
.reader-delete{color:#b42318}
.reader-delete:hover{background:#feeceb}
.editor-delete{margin-left:auto}
@media(max-width:760px){
  .reader-actions{gap:0}
  .reader-icon{width:38px;height:38px}
  .editor-delete{margin-left:0}
}

/* v0.3.6 Bulk document selection */
.document-list-toolbar{min-height:44px;display:flex;align-items:center;gap:10px;margin:6px 3px 10px}
.document-list-toolbar .document-count{margin:0;margin-right:auto}
.bulk-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.bulk-check-all{display:flex;align-items:center;gap:6px;white-space:nowrap}
.bulk-check-all input,.doc-checkbox{width:17px;height:17px;accent-color:#2563eb}
.selected-count{font-size:13px;color:var(--muted);min-width:72px}
.doc-selectable{padding-right:14px}
.doc-select-cell{display:none;align-items:center;justify-content:center;padding:0;margin:0}
.doc-select-cell input{margin:0}
.doc-row-link{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(100px,180px);gap:10px;align-items:center;min-width:0;height:100%;min-height:48px}
.doc-list.select-mode .doc-row{grid-template-columns:5px 34px minmax(0,1fr)}
.doc-list.select-mode .doc-select-cell{display:flex}
.doc-list.select-mode .doc-row-link{cursor:pointer}
.doc-list.select-mode .doc-row.selected{background:#eef4ff}
.doc-list.select-mode .doc-row.selected:hover{background:#e5efff}
@media(max-width:760px){
  .document-list-toolbar{align-items:flex-start;flex-wrap:wrap}
  .bulk-actions{width:100%}
  .selected-count{margin-right:auto}
  .doc-row-link{grid-template-columns:minmax(0,1fr) auto}
  .doc-row-link small{display:none}
}

/* v0.3.7 Pagination */
.page-size-control{display:flex;align-items:center;gap:6px;grid-auto-flow:column;font-size:13px;color:var(--muted)}
.page-size-control select{padding:6px 28px 6px 8px;min-width:70px}
.page-range{color:#98a2b3}
.pagination{display:flex;align-items:center;justify-content:center;gap:5px;flex-wrap:wrap;margin:18px 0 8px}
.page-button{min-width:36px;height:36px;padding:0 9px;border:1px solid #d7dde8;border-radius:9px;background:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:13px}
.page-button:hover{background:#f3f6fb;border-color:#b8c5d8}
.page-button.active{background:#1f2937;color:#fff;border-color:#1f2937;font-weight:700}
.page-button.disabled{opacity:.35;cursor:default}
.page-ellipsis{padding:0 4px;color:var(--muted)}
@media(max-width:760px){
  .page-size-control{order:2}
  .document-list-toolbar #selectModeButton{order:3}
  .pagination{margin-bottom:14px}
  .page-button{min-width:34px;height:34px}
}
