@font-face{font-family:"RIDIBatang";src:url("/static/assets/fonts/RIDIBatang.otf") format("opentype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"D2Coding";src:url("/static/assets/fonts/D2Coding.woff") format("woff");font-weight:400;font-style:normal;font-display:swap}
:root{
  color-scheme:light;
  --bg:#f6f7fb;--panel:#fff;--panel-soft:#f8fafc;--text:#172033;--muted:#667085;--line:#e4e7ec;
  --accent:#315efb;--accent2:#10b981;--code:#101828;--tree-hover:#eef3ff;--shadow:0 18px 50px rgba(16,24,40,.06);
}
html.dark{
  color-scheme:dark;
  --bg:#0c111d;--panel:#111827;--panel-soft:#151f2f;--text:#e5e7eb;--muted:#9ca3af;--line:#273244;
  --accent:#8ab4ff;--accent2:#34d399;--code:#050816;--tree-hover:#18263d;--shadow:0 18px 50px rgba(0,0,0,.22);
}
*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,var(--bg),color-mix(in srgb,var(--bg),#000 3%));color:var(--text);font-family:"RIDIBatang",ui-serif,serif}body.search-open{overflow:hidden}a{color:inherit;text-decoration:none}svg{width:1em;height:1em;fill:currentColor;display:block}
.topbar{position:sticky;top:0;z-index:20;display:flex;gap:16px;align-items:center;padding:14px 24px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--panel),transparent 8%);backdrop-filter:blur(14px)}.brand{display:inline-flex;align-items:center;height:42px;min-width:0}.brand-logo{display:block;width:auto;height:34px;max-width:180px;object-fit:contain}.brand-logo-dark{display:none}.dark .brand-logo-light{display:none}.dark .brand-logo-dark{display:block}.topbar-title{--topbar-title-opacity:0;--topbar-title-size:21.5px;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);min-width:0;max-width:clamp(220px,calc((100vw - 656px)*.8),720px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:0;background:transparent;color:#172033;opacity:var(--topbar-title-opacity);font-family:"RIDIBatang",ui-serif,serif;font-size:var(--topbar-title-size);font-weight:850;letter-spacing:-.035em;line-height:1.2;text-align:center;cursor:pointer;pointer-events:none;transition:color .18s ease,text-shadow .18s ease}.topbar-title.is-visible{pointer-events:auto}.topbar-title:hover{color:var(--accent);text-shadow:0 0 18px color-mix(in srgb,var(--accent),transparent 78%)}.dark .topbar-title{color:#e5e7eb;text-shadow:0 1px 16px rgba(0,0,0,.22)}.dark .topbar-title:hover{color:var(--accent);text-shadow:0 0 22px color-mix(in srgb,var(--accent),transparent 70%)}.topbar-spacer{flex:1}.theme{border:1px solid var(--line);background:var(--panel);color:var(--text);padding:10px 14px;border-radius:12px;cursor:pointer}.theme:hover{border-color:var(--accent)}.theme-icon{width:42px;height:42px;display:grid;place-items:center;padding:0;border-radius:14px;background:linear-gradient(180deg,var(--panel-soft),var(--panel));color:#f59e0b;box-shadow:inset 0 1px 0 color-mix(in srgb,#fff,transparent 70%);transition:border-color .15s ease,color .15s ease,background .15s ease,transform .15s ease}.theme-icon:hover{color:#f97316;border-color:#f59e0b;background:color-mix(in srgb,#f59e0b,transparent 90%);transform:translateY(-1px)}.theme-icon svg{width:22px!important;height:22px!important}.theme-bulb-off{display:none}.dark .theme-icon{color:#64748b}.dark .theme-icon:hover{color:#94a3b8;border-color:#64748b;background:color-mix(in srgb,#64748b,transparent 88%)}.dark .theme-bulb-on{display:none}.dark .theme-bulb-off{display:block}
.layout{display:grid;grid-template-columns:300px minmax(0,1fr) 260px;gap:24px;max-width:1520px;margin:0 auto;padding:24px}.sidebar,.rightslot{position:sticky;top:78px;align-self:start;max-height:calc(100vh - 100px);overflow:auto}.rightslot{display:flex;flex-direction:column;gap:16px;background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important;overflow:visible}.sidebar,.right-block,.card,.hero,.article,.category-panel{background:var(--panel);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow)}.sidebar{width:300px;min-width:300px;padding:14px;overflow-x:hidden;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}.sidebar::-webkit-scrollbar{width:0;height:0}.right-block{padding:18px}.content{min-width:0}.content{transition:opacity .14s ease,transform .14s ease}body.is-loading-main .content{opacity:.58;transform:translateY(2px)}
.side-search-field{position:sticky;top:0;z-index:12;display:flex;align-items:center;gap:10px;width:100%;height:44px;border:1px solid var(--line);background:linear-gradient(180deg,var(--panel-soft),var(--panel));border-radius:14px;padding:0 12px;color:var(--muted);cursor:pointer;text-align:left;font:inherit;box-shadow:0 -14px 0 14px var(--panel),inset 0 1px 0 color-mix(in srgb,#fff,transparent 58%)}.side-search-field:hover,.side-search-field:focus-visible{border-color:color-mix(in srgb,var(--accent),var(--line) 30%);box-shadow:0 -14px 0 14px var(--panel),0 0 0 3px color-mix(in srgb,var(--accent),transparent 88%),inset 0 1px 0 color-mix(in srgb,#fff,transparent 58%);outline:0}.side-search-field svg{font-size:18px;color:var(--accent);flex:0 0 auto}.side-search-placeholder{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
.side-section-head{display:flex;align-items:center;justify-content:space-between;margin:18px 4px 8px;font-size:13px;font-weight:800;color:var(--muted);letter-spacing:.02em;text-transform:uppercase}.explorer-head{position:sticky;top:58px;z-index:11;justify-content:flex-start;gap:8px;margin:14px 0 8px;padding:4px 4px 8px;background:linear-gradient(180deg,var(--panel) 0%,var(--panel) 78%,color-mix(in srgb,var(--panel),transparent 100%) 100%);box-shadow:0 -10px 0 10px var(--panel)}.explorer-title{min-width:0;flex:1 1 auto}.side-actions{display:flex;align-items:center;gap:8px}.side-section-head small{font-weight:700;color:var(--accent);text-transform:none;white-space:nowrap}.collapse-all-btn,.sort-toggle-btn,.side-actions button{width:28px;height:28px;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;background:var(--panel-soft);color:var(--muted);cursor:pointer;flex:0 0 28px}.collapse-all-btn:hover,.sort-toggle-btn:hover,.sort-toggle-btn.is-active,.side-actions button:hover{color:var(--accent);border-color:var(--accent);background:var(--tree-hover)}body.sort-mode .tree-wrap{outline:1px dashed color-mix(in srgb,var(--accent),transparent 55%);outline-offset:3px;border-radius:12px}body.sort-mode [data-sort-item]{cursor:grab}body.sort-mode [data-sort-item]:active{cursor:grabbing}.is-dragging-sort{opacity:.45}.sort-toggle-btn svg{width:15px!important;height:15px!important}
.tree-wrap{padding:2px 0 8px;overflow-x:hidden;overflow-y:visible}.file-tree{list-style:none;margin:0;padding:0;width:100%;min-width:0}.file-tree .file-tree{width:calc(100% - 4px);min-width:0;padding-left:12px;margin:3px 0 5px 4px;border-left:1px solid color-mix(in srgb,var(--line),transparent 20%)}.tree-dir,.tree-doc{margin:1px 0;min-width:0}.tree-dir details{border-radius:10px;min-width:0}.tree-dir summary{display:flex;align-items:center;gap:7px;width:100%;min-width:0;height:32px;padding:4px 7px;border-radius:10px;cursor:pointer;user-select:none;list-style:none;color:var(--text);white-space:nowrap;overflow:hidden}.tree-dir summary::-webkit-details-marker{display:none}.tree-dir summary:hover,.tree-doc a:hover{background:var(--tree-hover)}.tree-dir.is-active>details>summary{background:color-mix(in srgb,var(--accent),transparent 88%);color:var(--accent)}
.chevron{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);transition:transform .15s ease;flex:0 0 16px}.tree-dir details[open]>summary .chevron{transform:rotate(90deg)}.folder-icon,.doc-icon{width:17px;height:17px;flex:0 0 17px;display:inline-flex;color:var(--accent)}.doc-icon{color:color-mix(in srgb,var(--muted),var(--accent) 35%)}.side-search-field>svg{width:18px!important;height:18px!important;flex:0 0 18px}.collapse-all-btn svg,.side-actions button svg{width:15px!important;height:15px!important}.chevron svg{width:16px!important;height:16px!important}.folder-icon svg,.doc-icon svg{width:17px!important;height:17px!important}.subcategory-card>svg{width:22px!important;height:22px!important;flex:0 0 22px}.spotlight-row>svg{width:28px!important;height:28px!important}.dir-label{display:block;flex:1 1 auto;max-width:none;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dir-label:hover{color:var(--accent);text-decoration:underline}.dir-count{font-size:11px;color:var(--muted);background:color-mix(in srgb,var(--line),transparent 45%);padding:2px 6px;border-radius:999px;flex:0 0 auto}.tree-doc a{display:flex;align-items:center;gap:8px;width:100%;min-width:0;max-width:100%;height:30px;padding:4px 7px 4px 31px;border-radius:9px;color:var(--muted);font-size:14px;line-height:1.25;white-space:nowrap;overflow:hidden}.tree-doc a span:last-child{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1 1 auto}.tree-doc.is-active a{background:color-mix(in srgb,var(--accent),transparent 86%);color:var(--accent);font-weight:700}.tree-more a{display:flex;align-items:center;gap:8px;width:100%;min-width:0;max-width:100%;height:30px;padding:4px 7px 4px 31px;border-radius:9px;color:var(--accent);font-size:13px;line-height:1.25;white-space:nowrap;overflow:hidden;background:color-mix(in srgb,var(--accent),transparent 94%)}.tree-more a:hover{background:var(--tree-hover);color:var(--accent2)}.tree-more-dot{width:17px;height:17px;flex:0 0 17px;display:inline-grid;place-items:center;font-weight:900;color:var(--accent)}.tree-more a span:last-child{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1 1 auto}
.side-tags{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}.side-attachments{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}.attachment-group{border-radius:10px;margin:1px 0}.attachment-group summary{display:flex;align-items:center;gap:7px;width:100%;min-width:0;height:32px;padding:4px 7px;border-radius:10px;cursor:pointer;user-select:none;list-style:none;color:var(--text);white-space:nowrap;overflow:hidden}.attachment-group summary::-webkit-details-marker{display:none}.attachment-group summary:hover{background:var(--tree-hover)}.attachment-group[open]>summary .chevron{transform:rotate(90deg)}.attachment-title{display:block;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-group small{font-size:11px;color:var(--muted);background:color-mix(in srgb,var(--line),transparent 45%);padding:2px 6px;border-radius:999px;flex:0 0 auto}.attachment-upload-btn{width:26px;height:26px;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;background:var(--panel-soft);color:var(--muted);cursor:pointer;flex:0 0 26px}.attachment-upload-btn:hover{color:var(--accent);border-color:var(--accent);background:var(--tree-hover)}.attachment-upload-btn svg{width:15px!important;height:15px!important}.internal-attachments .attachment-title{color:var(--accent2)}.attachment-list{list-style:none;margin:2px 0 6px 0;padding:0 0 0 25px;border-left:1px solid color-mix(in srgb,var(--line),transparent 35%)}.attachment-list li{min-width:0}.attachment-list a{display:flex;align-items:center;gap:8px;width:100%;min-width:0;max-width:100%;height:30px;padding:4px 7px 4px 7px;border-radius:9px;color:var(--muted);font-size:14px;line-height:1.25;white-space:nowrap;overflow:hidden}.attachment-list a:hover{background:var(--tree-hover);color:var(--accent)}.attachment-list a span:last-child{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1 1 auto}.attachment-empty{padding:8px 10px;color:var(--muted);font-size:13px}.tag-cloud-head{margin:0 4px 6px}.tag-sphere{position:relative;height:210px;margin-top:6px;border:0;border-radius:18px;overflow:hidden;background:radial-gradient(ellipse at 50% 50%,color-mix(in srgb,var(--accent),transparent 80%) 0%,color-mix(in srgb,var(--accent2),transparent 88%) 38%,transparent 76%),radial-gradient(circle at 34% 28%,rgba(255,255,255,.34),transparent 28%),var(--panel-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--line),transparent 62%),inset 0 0 42px color-mix(in srgb,var(--accent),transparent 88%);perspective:700px}.tag-sphere:before{content:"";position:absolute;inset:0;z-index:600;border-radius:18px;background:radial-gradient(ellipse at 50% 50%,transparent 0%,transparent 58%,color-mix(in srgb,var(--panel-soft),transparent 44%) 78%,var(--panel-soft) 100%);backdrop-filter:blur(.6px);-webkit-backdrop-filter:blur(.6px);pointer-events:none}.tag-sphere a{position:absolute;left:50%;top:50%;display:inline-flex;align-items:center;justify-content:center;max-width:104px;padding:4px 7px;border-radius:999px;color:var(--accent);background:color-mix(in srgb,var(--panel),transparent 26%);border:1px solid color-mix(in srgb,var(--accent),transparent 82%);font-size:12px;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;will-change:transform,opacity;transform-origin:center center;backdrop-filter:blur(8px);box-shadow:0 6px 18px rgba(16,24,40,.08)}.tag-sphere a:hover{opacity:1!important;color:#fff;background:var(--accent);border-color:var(--accent);z-index:999!important}.empty-tags{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-size:13px}.tags{display:flex;gap:8px;flex-wrap:wrap}.tags a{font-size:13px;padding:4px 8px;background:color-mix(in srgb,var(--accent),transparent 88%);border-radius:999px;color:var(--accent)}.tags a:hover{color:var(--accent2)}
.hero{padding:42px;margin-bottom:24px;background:radial-gradient(circle at top right,color-mix(in srgb,var(--accent),transparent 78%),transparent 45%),var(--panel)}.hero h1{font-size:42px;line-height:1.08;margin:8px 0}.eyebrow{color:var(--accent2);font-weight:800;letter-spacing:.08em;text-transform:uppercase}.home-hero{position:relative;aspect-ratio:3/2;min-height:480px;margin-bottom:24px;display:flex;align-items:flex-start;justify-content:center;overflow:hidden;border:1px solid var(--line);border-radius:22px;background:linear-gradient(135deg,color-mix(in srgb,var(--panel-soft),var(--accent) 8%),var(--panel));background-size:cover;background-position:center;box-shadow:var(--shadow);isolation:isolate;color:white}.home-hero.has-image{background-size:cover;background-position:center}.home-hero-tint{position:absolute;inset:0;z-index:-1;background:rgba(8,15,36,.18)}.home-hero-content{width:min(900px,96%);padding:38px 24px 24px;color:white;text-shadow:0 2px 16px rgba(0,0,0,.42)}.home-hero-content.prose{font-size:15.5px;line-height:1.44}.home-hero-content.prose h1,.home-hero-content.prose h2,.home-hero-content.prose h3{margin:0 0 .45em;color:white;border:0;padding:0;line-height:1.12;letter-spacing:-.035em}.home-hero-content.prose h2{font-size:30px}.home-hero-content.prose p{margin:.34em 0;color:rgba(255,255,255,.94)}.home-hero-content.prose a{color:white;text-decoration:underline}.home-hero-content.prose code{background:rgba(255,255,255,.14);color:white}.post-list{display:flex;flex-direction:column;gap:0;background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);overflow:hidden}.post-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:18px 22px;border-bottom:1px solid var(--line);transition:background .15s ease,border-color .15s ease}.post-row:last-child{border-bottom:0}.post-row:hover{background:var(--panel-soft)}.post-main{min-width:0}.post-main h3{margin:0 0 7px;font-size:18px;line-height:1.35;letter-spacing:-.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.post-main p{margin:0;color:var(--muted);line-height:1.55;font-size:14px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.search-snippet mark{display:inline-block;padding:0 .18em;border-radius:5px;background:color-mix(in srgb,#facc15,transparent 36%);color:color-mix(in srgb,var(--text),#92400e 35%);font-weight:850}.empty-result{margin:0;padding:22px 26px;color:var(--muted)}.post-meta{display:flex;align-items:center;gap:9px;white-space:nowrap;color:var(--muted);font-size:13px}.post-meta a{color:var(--accent);border:1px solid color-mix(in srgb,var(--accent),transparent 72%);border-radius:999px;padding:4px 8px;background:color-mix(in srgb,var(--accent),transparent 92%)}.post-meta a:hover{background:color-mix(in srgb,var(--accent),transparent 84%)}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.card{padding:20px;transition:.2s}.card:hover{transform:translateY(-2px);border-color:var(--accent)}.card h3{margin:0 0 8px}.card p,.desc{color:var(--muted);line-height:1.7}.meta{color:var(--muted);font-size:13px}.category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.category-grid a{display:flex;justify-content:space-between;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}
.category-panel{padding:24px;margin-bottom:22px}.category-panel h1{margin:0 0 8px}.category-page-note{margin:8px 0 0;color:var(--muted);font-size:13px;line-height:1.55}.category-list-head{display:flex;align-items:end;justify-content:space-between;gap:16px}.category-list-head .category-section-title{margin-bottom:12px}.category-list-count{margin:26px 0 12px;color:var(--muted);font-size:13px;white-space:nowrap}.pagination{display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;margin:20px 0 4px}.page-link,.page-ellipsis{min-width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--muted);font-size:14px;font-weight:800}.page-link:hover{border-color:var(--accent);background:var(--tree-hover);color:var(--accent)}.page-link.is-current{border-color:var(--accent);background:color-mix(in srgb,var(--accent),transparent 86%);color:var(--accent)}.page-link.is-disabled{opacity:.42;pointer-events:none}.page-ellipsis{border-color:transparent;background:transparent;min-width:20px}.category-breadcrumb{color:var(--muted);font-size:14px;margin-bottom:18px}.category-section-title{margin:26px 0 12px}.subcategory-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.subcategory-card{display:flex;align-items:center;gap:12px;padding:15px;border:1px solid var(--line);border-radius:16px;background:var(--panel-soft)}.subcategory-card:hover{border-color:var(--accent);background:var(--tree-hover)}.subcategory-card svg{font-size:22px;color:var(--accent)}.subcategory-card b{display:block}.subcategory-card span{display:block;color:var(--muted);font-size:13px;margin-top:2px}
.article{padding:34px}.breadcrumb{font-size:14px;color:var(--muted);margin:0 0 14px}.prose{font-size:17px;line-height:1.82}.prose h1,.prose h2,.prose h3{line-height:1.25;margin-top:2em}.prose h2{padding-bottom:8px;border-bottom:1px solid var(--line)}.prose p{margin:1em 0}.prose a{color:var(--accent);text-decoration:underline}.prose pre{overflow:auto;background:var(--code);color:#e5e7eb;padding:18px;border-radius:16px}.prose code,kbd,samp,pre{font-family:"D2Coding",ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace}.prose code{background:color-mix(in srgb,var(--accent),transparent 88%);padding:.15em .35em;border-radius:6px}.prose pre code{background:transparent;padding:0}.prose blockquote{margin:1.5em 0;padding:1px 18px;border-left:4px solid var(--accent);background:color-mix(in srgb,var(--accent),transparent 92%);border-radius:0 12px 12px 0}.prose img{max-width:100%;border-radius:14px;border:1px solid var(--line)}.prose table{border-collapse:collapse;width:100%;display:block;overflow:auto}.prose th,.prose td{border:1px solid var(--line);padding:8px 10px}.missing-attachment{color:#ef4444;font-size:14px}
.toc{display:flex;flex-direction:column;gap:9px}.toc a{font-size:14px;color:var(--muted);transition:color .15s ease,transform .15s ease}.toc a:hover{color:var(--accent);transform:translateX(2px)}.toc .l3{padding-left:12px}.prose h2.is-toc-target,.prose h3.is-toc-target{animation:toc-target-pulse 1.4s ease}.right-recent{display:flex;flex-direction:column;gap:10px}.right-recent>b{font-size:14px}.right-recent-list{display:flex;flex-direction:column;gap:7px;min-width:0}.right-recent-link{display:block;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:8px 10px;border-radius:10px;color:var(--muted);font-size:14px;line-height:1.35;background:var(--panel-soft);border:1px solid transparent;transition:color .15s ease,background .15s ease,border-color .15s ease}.right-recent-link:hover{color:var(--accent);background:var(--tree-hover);border-color:color-mix(in srgb,var(--accent),transparent 72%)}.right-recent-empty{color:var(--muted);font-size:13px}.searchbox{display:flex;max-width:720px;margin-bottom:20px}.searchbox input{flex:1;border:1px solid var(--line);background:var(--panel);color:var(--text);padding:11px 13px;border-radius:12px 0 0 12px}.searchbox button{border:1px solid var(--line);background:var(--accent);color:white;padding:10px 14px;border-radius:0 12px 12px 0}
.error-page{position:relative;overflow:hidden;padding:46px;min-height:430px;display:flex;flex-direction:column;justify-content:center;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);background:radial-gradient(circle at top right,color-mix(in srgb,var(--accent),transparent 78%),transparent 45%),linear-gradient(180deg,var(--panel),var(--panel-soft))}.error-code{position:absolute;right:34px;top:18px;color:color-mix(in srgb,var(--accent),transparent 82%);font-family:"D2Coding",ui-monospace,monospace;font-size:92px;font-weight:900;line-height:1;letter-spacing:-.08em;user-select:none}.error-page h1{position:relative;margin:8px 0 12px;font-size:42px;line-height:1.12;letter-spacing:-.045em}.error-message{position:relative;margin:0 0 10px;color:var(--text);font-size:18px;line-height:1.7}.error-hint{position:relative;max-width:720px;margin:0;color:var(--muted);line-height:1.75}.error-actions{position:relative;display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.error-action{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 16px;border:1px solid var(--line);border-radius:13px;background:var(--panel);color:var(--text);font:inherit;font-weight:850;cursor:pointer;box-shadow:inset 0 1px 0 color-mix(in srgb,#fff,transparent 72%)}.error-action:hover{border-color:var(--accent);background:var(--tree-hover);color:var(--accent)}.error-action.is-primary{border-color:var(--accent);background:var(--accent);color:white}.error-action.is-primary:hover{background:color-mix(in srgb,var(--accent),#000 10%);color:white}
@keyframes toc-target-pulse{0%{background:color-mix(in srgb,var(--accent),transparent 78%);box-shadow:0 0 0 0 color-mix(in srgb,var(--accent),transparent 55%)}70%{background:color-mix(in srgb,var(--accent),transparent 91%);box-shadow:0 0 0 12px transparent}100%{background:transparent;box-shadow:none}}
.search-overlay[hidden]{display:none!important}.search-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px}.search-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(246,247,251,.34);backdrop-filter:blur(9px) saturate(1.35);-webkit-backdrop-filter:blur(9px) saturate(1.35);cursor:default}.dark .search-backdrop{background:rgba(12,17,29,.28)}.spotlight{position:relative;width:min(820px,calc(100vw - 44px));transform:translateY(-8vh);padding:14px;border:1px solid color-mix(in srgb,var(--accent),transparent 58%);border-radius:28px;background:color-mix(in srgb,var(--panel),transparent 18%);backdrop-filter:blur(24px) saturate(1.35);-webkit-backdrop-filter:blur(24px) saturate(1.35);box-shadow:0 35px 140px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.18)}.spotlight-row{display:flex;align-items:center;gap:14px}.spotlight-row>svg{font-size:28px;color:var(--accent);margin-left:8px;flex:0 0 auto}.spotlight input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--text);padding:18px 4px;font-size:28px;letter-spacing:-.02em}.spotlight input::placeholder{color:var(--muted)}.spotlight button{border:0;background:var(--accent);color:white;border-radius:18px;padding:15px 22px;font-weight:900;font-size:15px}.spotlight p{margin:4px 12px 8px 50px;color:var(--muted);font-size:13px}
.auth-icon{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,var(--panel-soft),var(--panel));color:var(--muted);box-shadow:inset 0 1px 0 color-mix(in srgb,#fff,transparent 70%);transition:border-color .15s ease,color .15s ease,background .15s ease,transform .15s ease}.auth-icon:hover{color:var(--accent);border-color:var(--accent);background:var(--tree-hover);transform:translateY(-1px)}.auth-icon svg{width:21px!important;height:21px!important}.auth-icon.is-authed{color:var(--accent2);border-color:color-mix(in srgb,var(--accent2),var(--line) 35%);background:color-mix(in srgb,var(--accent2),transparent 90%)}.auth-panel{min-height:calc(100vh - 150px);display:grid;justify-items:center;align-items:start;padding-top:18px}.auth-card{width:min(620px,100%);padding:42px;border:1px solid var(--line);border-radius:26px;background:radial-gradient(circle at top right,color-mix(in srgb,var(--accent),transparent 82%),transparent 42%),var(--panel);box-shadow:var(--shadow)}.auth-card h1{margin:8px 0 12px;font-size:38px;letter-spacing:-.04em}.auth-desc{margin:0 0 24px;color:var(--muted);line-height:1.7}.auth-alert{margin:0 0 18px;padding:14px 16px;border:1px solid color-mix(in srgb,#ef4444,transparent 55%);border-radius:15px;background:color-mix(in srgb,#ef4444,transparent 91%);color:color-mix(in srgb,var(--text),#ef4444 36%);font-weight:750;line-height:1.55}.google-login-btn{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:54px;border:1px solid var(--line);border-radius:16px;background:var(--panel-soft);color:var(--text);font-weight:850;box-shadow:inset 0 1px 0 color-mix(in srgb,#fff,transparent 70%)}.google-login-btn:hover{border-color:var(--accent);background:var(--tree-hover)}.google-login-btn.is-disabled{opacity:.5;pointer-events:none}.google-g{width:28px;height:28px;display:grid;place-items:center;border-radius:999px;background:#fff;color:#4285f4;border:1px solid #e5e7eb;font-weight:900;font-family:Arial,sans-serif}.auth-note{margin:18px 0 0;color:var(--muted);font-size:14px;line-height:1.65}.auth-help{display:flex;flex-direction:column;gap:10px;text-align:left;word-break:break-all}.auth-help b{color:var(--text)}.auth-help span{color:var(--muted);font-size:13px;line-height:1.5}.tag-sphere{cursor:grab;touch-action:none}.tag-sphere.is-dragging{cursor:grabbing}.tag-sphere.is-dragging a{pointer-events:none}
.right-toggle{display:none;width:42px;height:42px;place-items:center;border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,var(--panel-soft),var(--panel));color:var(--muted);box-shadow:inset 0 1px 0 color-mix(in srgb,#fff,transparent 70%);cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease,transform .15s ease}.right-toggle:hover,.right-toggle.is-active{color:var(--accent);border-color:var(--accent);background:var(--tree-hover);transform:translateY(-1px)}.right-toggle svg{width:21px!important;height:21px!important}
@media(max-width:1100px){.layout{grid-template-columns:1fr}.sidebar{position:static;max-height:none}.sidebar{width:100%;min-width:0}.hero h1{font-size:32px}.home-hero{min-height:420px}.home-hero-content.prose h2{font-size:34px}.sidebar{order:-1}.right-toggle{display:grid}.rightslot{position:fixed;top:66px;right:12px;bottom:12px;z-index:19;width:min(340px,calc(100vw - 24px));height:calc(100vh - 78px);max-height:none;overflow:auto!important;display:flex;opacity:0;visibility:hidden;pointer-events:none;transform:translateX(18px);transition:opacity .18s ease,transform .18s ease,visibility .18s ease}.rightslot::before{content:"";position:fixed;inset:66px 0 0 0;z-index:-1;background:rgba(15,23,42,.18);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);opacity:0;transition:opacity .18s ease}body.rightslot-open .rightslot{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(0)}body.rightslot-open .rightslot::before{opacity:1}.right-block{border-radius:20px}.right-recent-link{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}
@media(max-width:640px){.category-list-head{display:block}.category-list-count{margin-top:-4px}.pagination{justify-content:flex-start}.page-link,.page-ellipsis{min-width:34px;height:34px}.layout{padding:14px;gap:14px}.topbar{padding:12px 14px}.brand{font-size:19px}.article,.hero,.category-panel{padding:24px}.home-hero{min-height:420px;aspect-ratio:auto}.home-hero-content{width:100%;padding:30px}.home-hero-content.prose{font-size:16px;line-height:1.7}.home-hero-content.prose h2{font-size:30px}.spotlight{transform:none}.spotlight-row{gap:8px}.spotlight input{font-size:20px}.spotlight button{padding:12px 14px}.tree-doc a{padding-left:24px}.post-row{grid-template-columns:1fr;gap:10px;padding:16px}.post-main h3{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.post-meta{justify-content:flex-start;flex-wrap:wrap}}

/* Markdown extensions: lists, task lists, tables, footnotes, math, highlighted code */
.prose ul,.prose ol{margin:1.05em 0 1.05em 1.35em;padding-left:1.2em}.prose ul{list-style:disc}.prose ul ul{list-style:circle}.prose ul ul ul{list-style:square}.prose ol{list-style:decimal}.prose li{margin:.34em 0;padding-left:.12em}.prose li>p{margin:.35em 0}.prose .contains-task-list{list-style:none;margin-left:.25em;padding-left:.25em}.prose .task-list-item{position:relative;list-style:none}.prose .task-list-item input[type="checkbox"]{width:1.05em;height:1.05em;margin:0 .55em 0 0;vertical-align:-.13em;accent-color:var(--accent)}.prose .task-list-item input[disabled]{cursor:default}.prose table{width:100%;min-width:680px;border-collapse:separate;border-spacing:0;display:table;overflow:hidden;margin:1.4em 0;border:1px solid var(--line);border-radius:16px;background:var(--panel);box-shadow:0 12px 34px rgba(16,24,40,.045)}.prose table thead th{position:sticky;top:0;z-index:1;background:linear-gradient(180deg,color-mix(in srgb,var(--accent),transparent 88%),var(--panel-soft));font-weight:900;color:var(--text);border-bottom:1px solid color-mix(in srgb,var(--accent),var(--line) 55%)}.prose table th,.prose table td{border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:11px 13px;vertical-align:top}.prose table th:last-child,.prose table td:last-child{border-right:0}.prose table tbody tr:last-child td{border-bottom:0}.prose table tbody tr:nth-child(even){background:color-mix(in srgb,var(--panel-soft),transparent 35%)}.prose table tbody tr:hover{background:color-mix(in srgb,var(--accent),transparent 92%)}.prose :not(.codeblock-wrap)>pre{margin:1.35em 0}.codeblock-wrap{position:relative;margin:1.35em 0}.codeblock-wrap pre{margin:0;padding-top:42px;border:1px solid color-mix(in srgb,var(--line),transparent 15%);box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 14px 34px rgba(0,0,0,.12)}.codeblock-wrap pre code.hljs{background:transparent;color:#e5e7eb;padding:0}.code-copy-btn{position:absolute;top:10px;right:10px;z-index:2;border:1px solid rgba(255,255,255,.16);border-radius:10px;background:rgba(15,23,42,.72);color:#e5e7eb;padding:5px 10px;font-family:"D2Coding",ui-monospace,monospace;font-size:12px;cursor:pointer;backdrop-filter:blur(8px)}.code-copy-btn:hover{border-color:rgba(138,180,255,.7);color:white;background:rgba(37,99,235,.62)}.prose .footnotes{margin-top:2.4em;padding-top:1em;border-top:1px solid var(--line);font-size:.92em;color:var(--muted)}.prose .footnote-ref,.prose .footnote-backref{color:var(--accent);font-weight:800;text-decoration:none}.prose .math.inline{display:inline-block;padding:0 .12em}.prose .math.block{display:block;overflow-x:auto;margin:1.4em 0;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--panel-soft);text-align:center}.prose .katex{font-size:1.08em}.prose div[style],.prose section[style]{max-width:100%}
@media(max-width:640px){.prose table{min-width:560px}.prose{font-size:16px}.code-copy-btn{top:8px;right:8px}}
.prose .mysql-rn-cont{margin:.55em 0 .75em 1.25em;padding:.08em 0 .08em 1em;border-left:3px solid color-mix(in srgb,var(--accent),transparent 72%);color:color-mix(in srgb,var(--text),var(--muted) 18%)}
.prose li>.mysql-rn-cont{margin-left:.35em}

/* Code block labels, custom scrollbars, readonly tasks, footnote popovers */
.prose .task-list-item input[type="checkbox"]{pointer-events:none;filter:saturate(.95)}.prose .task-list-item input[type="checkbox"][disabled]{opacity:.95;cursor:default}.code-lang-label{position:absolute;top:10px;left:10px;z-index:2;display:inline-flex;align-items:center;min-height:24px;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid rgba(255,255,255,.14);border-radius:10px;background:rgba(15,23,42,.74);color:#cbd5e1;padding:4px 9px;font-family:"D2Coding",ui-monospace,monospace;font-size:12px;font-weight:800;letter-spacing:.02em;backdrop-filter:blur(8px)}.codeblock-wrap pre{overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(148,163,184,.65) rgba(15,23,42,.28)}.codeblock-wrap pre::-webkit-scrollbar{height:11px;width:11px}.codeblock-wrap pre::-webkit-scrollbar-track{background:rgba(15,23,42,.45);border-radius:999px;margin:0 14px}.codeblock-wrap pre::-webkit-scrollbar-thumb{background:linear-gradient(90deg,rgba(138,180,255,.75),rgba(52,211,153,.62));border:3px solid rgba(15,23,42,.45);border-radius:999px}.codeblock-wrap pre::-webkit-scrollbar-thumb:hover{background:linear-gradient(90deg,rgba(138,180,255,.95),rgba(52,211,153,.82))}.codeblock-wrap pre::-webkit-scrollbar-corner{background:transparent}.prose .footnote-ref{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:1.4em;height:1.35em;margin:0 .08em;border-radius:999px;background:color-mix(in srgb,var(--accent),transparent 88%);color:var(--accent);font-size:.78em;line-height:1;text-decoration:none;vertical-align:super}.prose .footnote-ref:hover,.prose .footnote-ref:focus{background:color-mix(in srgb,var(--accent),transparent 78%);outline:0}.footnote-popover{position:absolute;left:50%;bottom:calc(100% + 10px);z-index:30;width:max-content;max-width:min(360px,70vw);transform:translateX(-50%) translateY(4px);padding:10px 12px;border:1px solid color-mix(in srgb,var(--accent),var(--line) 50%);border-radius:13px;background:color-mix(in srgb,var(--panel),transparent 3%);color:var(--text);box-shadow:0 18px 50px rgba(0,0,0,.2);font-size:13px;font-weight:500;line-height:1.55;white-space:normal;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .14s ease,transform .14s ease,visibility .14s ease}.footnote-popover::after{content:"";position:absolute;left:50%;top:100%;width:10px;height:10px;transform:translate(-50%,-5px) rotate(45deg);background:inherit;border-right:1px solid color-mix(in srgb,var(--accent),var(--line) 50%);border-bottom:1px solid color-mix(in srgb,var(--accent),var(--line) 50%)}.prose .footnote-ref:hover .footnote-popover,.prose .footnote-ref:focus .footnote-popover{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}.prose .footnotes ol{margin-left:1.1em}.prose .footnotes li{padding:.35em .5em;border-radius:10px}.prose .footnotes li.is-footnote-target{background:color-mix(in srgb,var(--accent),transparent 88%);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent),transparent 72%)}.prose .footnote-backref{display:inline-flex;margin-left:.35em;padding:.1em .35em;border-radius:8px;background:color-mix(in srgb,var(--accent),transparent 90%)}
@media(max-width:640px){.code-lang-label{top:8px;left:8px;max-width:45%;font-size:11px}.footnote-popover{max-width:min(300px,82vw)}}

/* Local vendor UI refinements: text code labels + presentation checkboxes */
.code-lang-label{
  top:13px;
  left:16px;
  min-height:auto;
  max-width:54%;
  border:0;
  border-radius:0;
  background:transparent;
  color:#94a3b8;
  padding:0;
  font-family:"D2Coding",ui-monospace,monospace;
  font-size:12px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:none;
  backdrop-filter:none;
  text-shadow:0 1px 2px rgba(0,0,0,.45);
}
.prose .task-list-item input[type="checkbox"]{
  appearance:none;
  -webkit-appearance:none;
  width:1.08em;
  height:1.08em;
  margin:0 .55em 0 0;
  vertical-align:-.16em;
  display:inline-grid;
  place-content:center;
  border:1.7px solid color-mix(in srgb,var(--accent),var(--text) 18%);
  border-radius:5px;
  background:linear-gradient(180deg,var(--panel),var(--panel-soft));
  box-shadow:inset 0 1px 0 color-mix(in srgb,#fff,transparent 70%),0 1px 2px rgba(15,23,42,.08);
  opacity:1!important;
  filter:none!important;
  cursor:default;
  pointer-events:none;
}
.prose .task-list-item input[type="checkbox"]:checked{
  border-color:var(--accent);
  background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent2),var(--accent) 32%));
}
.prose .task-list-item input[type="checkbox"]:checked::after{
  content:"";
  width:.58em;
  height:.34em;
  border-left:2px solid white;
  border-bottom:2px solid white;
  transform:rotate(-45deg) translate(.02em,-.03em);
}
.prose .task-list-item input[type="checkbox"][disabled]{
  opacity:1!important;
  color:inherit;
}
@media(max-width:640px){.code-lang-label{top:11px;left:14px;font-size:11px}}

/* Mermaid diagrams must not inherit the global icon-sized svg rule */
.prose .mermaid{
  position:relative;
  width:100%;
  max-width:100%;
  margin:1.4em 0;
  overflow-x:auto;
  overflow-y:hidden;
  text-align:center;
}
.prose .mermaid svg{
  display:inline-block;
  width:100%!important;
  height:auto!important;
  margin:0 auto;
  fill:initial;
}
.prose .mermaid.mermaid-toolkit-target{cursor:zoom-in;border-radius:16px;transition:box-shadow .15s ease,background .15s ease,transform .15s ease}
.prose .mermaid.mermaid-toolkit-target:hover{background:color-mix(in srgb,var(--accent),transparent 96%);box-shadow:0 12px 34px rgba(16,24,40,.10);transform:translateY(-1px)}
.prose .mermaid.mermaid-toolkit-target:focus{outline:3px solid color-mix(in srgb,var(--accent),transparent 62%);outline-offset:3px}


/* Denser fenced code blocks: D2Coding reads visually large at article scale */
.prose pre,
.prose pre code,
.prose pre code.hljs,
.codeblock-wrap pre,
.codeblock-wrap pre code,
.codeblock-wrap pre code.hljs{
  font-size:13.5px;
  line-height:1.42;
}
.codeblock-wrap pre{
  padding:36px 16px 15px;
}
.prose :not(.codeblock-wrap)>pre{
  padding:15px 16px;
}
.code-lang-label{
  top:11px;
  left:16px;
  font-size:11px;
  line-height:1.2;
}
.code-copy-btn{
  top:8px;
  right:9px;
  min-height:25px;
  padding:4px 8px;
  font-size:11px;
}
@media(max-width:640px){
  .prose pre,
  .prose pre code,
  .prose pre code.hljs,
  .codeblock-wrap pre,
  .codeblock-wrap pre code,
  .codeblock-wrap pre code.hljs{
    font-size:13px;
    line-height:1.42;
  }
}

/* Fenced code line numbers and hover highlighter */
.codeblock-wrap pre{
  padding:36px 0 15px;
}
.codeblock-wrap pre code.code-with-lines,
.codeblock-wrap pre code.hljs.code-with-lines{
  display:block;
  min-width:max-content;
  padding:0;
  counter-reset:code-line;
}
.code-line{
  display:grid;
  grid-template-columns:3.45em max-content;
  min-width:100%;
  width:max-content;
  align-items:stretch;
  position:relative;
  border-left:2px solid transparent;
  transition:background .11s ease,border-color .11s ease,box-shadow .11s ease;
}
.code-line::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:0;
  background:linear-gradient(90deg,rgba(250,204,21,.18),rgba(250,204,21,.10) 44%,rgba(138,180,255,.06));
  box-shadow:inset 0 1px 0 rgba(250,204,21,.18),inset 0 -1px 0 rgba(250,204,21,.12);
  transition:opacity .11s ease;
}
.code-line:hover{
  border-left-color:#facc15;
  background:rgba(250,204,21,.055);
}
.code-line:hover::after{
  opacity:1;
}
.code-line-number{
  position:sticky;
  left:0;
  z-index:1;
  display:flex;
  justify-content:flex-end;
  align-items:flex-start;
  min-height:1.42em;
  padding:0 .85em 0 1em;
  color:rgba(148,163,184,.62);
  background:linear-gradient(90deg,#101828 0%,#101828 72%,rgba(16,24,40,.86) 100%);
  border-right:1px solid rgba(148,163,184,.16);
  user-select:none;
  -webkit-user-select:none;
  font-variant-numeric:tabular-nums;
  text-align:right;
}
.code-line:hover .code-line-number{
  color:#fde68a;
  background:linear-gradient(90deg,#182033 0%,#182033 70%,rgba(24,32,51,.88) 100%);
  border-right-color:rgba(250,204,21,.28);
}
.code-line-content{
  position:relative;
  z-index:1;
  display:block;
  min-height:1.42em;
  padding:0 16px 0 1.05em;
  white-space:pre;
}
@media(max-width:640px){
  .codeblock-wrap pre{
    padding:34px 0 14px;
  }
  .code-line{
    grid-template-columns:3em max-content;
  }
  .code-line-number{
    padding:0 .7em 0 .75em;
  }
  .code-line-content{
    padding-right:14px;
    padding-left:.85em;
  }
}
/* Responsive Markdown tables: keep table form and scroll inside the table area */
.prose .table-scroll{
  position:relative;
  width:100%;
  max-width:100%;
  margin:1.4em 0;
  padding:0 0 8px;
  overflow-x:auto;
  overflow-y:hidden;
  border-radius:17px;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
  scrollbar-color:color-mix(in srgb,var(--accent),var(--accent2) 24%) color-mix(in srgb,var(--panel-soft),transparent 6%);
  background:
    linear-gradient(90deg,var(--panel) 0%,transparent 26px) left center/54px 100% no-repeat,
    linear-gradient(270deg,var(--panel) 0%,transparent 26px) right center/54px 100% no-repeat,
    linear-gradient(90deg,color-mix(in srgb,var(--accent),transparent 74%),transparent 30px) left center/34px 100% no-repeat,
    linear-gradient(270deg,color-mix(in srgb,var(--accent2),transparent 76%),transparent 30px) right center/34px 100% no-repeat;
}
.prose .table-scroll::-webkit-scrollbar{
  height:13px;
}
.prose .table-scroll::-webkit-scrollbar-track{
  background:linear-gradient(90deg,color-mix(in srgb,var(--line),transparent 62%),color-mix(in srgb,var(--panel-soft),transparent 12%));
  border:4px solid transparent;
  background-clip:padding-box;
  border-radius:999px;
  margin:0 18px;
}
.prose .table-scroll::-webkit-scrollbar-thumb{
  min-width:42px;
  background:linear-gradient(90deg,color-mix(in srgb,var(--accent),#fff 8%),color-mix(in srgb,var(--accent2),var(--accent) 22%));
  border:4px solid transparent;
  background-clip:padding-box;
  border-radius:999px;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,#fff,transparent 76%);
}
.prose .table-scroll::-webkit-scrollbar-thumb:hover{
  background:linear-gradient(90deg,color-mix(in srgb,var(--accent),#fff 18%),color-mix(in srgb,var(--accent2),#fff 10%));
  background-clip:padding-box;
}
.prose .table-scroll::-webkit-scrollbar-corner{
  background:transparent;
}
.prose .table-scroll table{
  margin:0;
  width:100%;
}
@media(max-width:640px){
  .prose .table-scroll{
    margin:1.15em -2px;
    padding:0 0 10px;
    overflow-x:auto;
    overflow-y:hidden;
    border-radius:15px;
    scrollbar-width:thin;
    scrollbar-color:color-mix(in srgb,var(--accent),var(--accent2) 30%) color-mix(in srgb,var(--panel-soft),transparent 4%);
    background:
      linear-gradient(90deg,var(--panel) 0%,transparent 22px) left center/42px 100% no-repeat,
      linear-gradient(270deg,var(--panel) 0%,transparent 22px) right center/42px 100% no-repeat,
      linear-gradient(90deg,color-mix(in srgb,var(--accent),transparent 78%),transparent 26px) left center/30px 100% no-repeat,
      linear-gradient(270deg,color-mix(in srgb,var(--accent2),transparent 80%),transparent 26px) right center/30px 100% no-repeat;
  }
  .prose .table-scroll::-webkit-scrollbar{
    display:block;
    height:12px;
  }
  .prose .table-scroll::-webkit-scrollbar-track{
    border-width:4px;
    margin:0 12px;
  }
  .prose .table-scroll::-webkit-scrollbar-thumb{
    min-width:36px;
    border-width:4px;
  }
  .prose .table-scroll table{
    display:table;
    width:max-content;
    min-width:max(560px,100%);
    max-width:none;
    border-radius:14px;
  }
  .prose .table-scroll thead{display:table-header-group}
  .prose .table-scroll tbody{display:table-row-group}
  .prose .table-scroll tr{display:table-row}
  .prose .table-scroll th,.prose .table-scroll td{
    display:table-cell;
    width:auto;
    min-width:9.5em;
    padding:10px 12px;
    white-space:normal;
    overflow-wrap:normal;
    word-break:keep-all;
  }
  .prose .table-scroll td::before{content:none}
}


/* Document metadata hero with featured image */
.article{padding:0;overflow:hidden;position:relative}
.doc-hero{
  position:relative;
  aspect-ratio:3/2;
  min-height:420px;
  display:flex;
  align-items:stretch;
  margin:0;
  padding:44px;
  border-radius:21px 21px 0 0;
  overflow:hidden;
  background:radial-gradient(circle at 18% 16%,color-mix(in srgb,var(--accent),transparent 54%),transparent 34%),radial-gradient(circle at 82% 8%,color-mix(in srgb,var(--accent2),transparent 62%),transparent 36%),linear-gradient(135deg,color-mix(in srgb,var(--panel-soft),var(--accent) 8%),var(--panel));
  color:white;
  isolation:isolate;
}
.doc-hero.has-image{
  background-size:cover;
  background-position:center;
}
.doc-hero.has-image::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  background:inherit;
  transform:scale(1.006);
  filter:saturate(1.05) contrast(1.02);
}
.doc-hero.no-image{color:var(--text)}
.doc-hero-shade{
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(180deg,rgba(2,6,23,.06) 0%,rgba(2,6,23,.18) 24%,rgba(2,6,23,.62) 46%,rgba(2,6,23,.70) 58%,rgba(2,6,23,.24) 82%,rgba(2,6,23,.10) 100%),radial-gradient(ellipse at 42% 52%,rgba(15,23,42,.48) 0%,rgba(15,23,42,.32) 34%,transparent 62%),radial-gradient(circle at 18% 84%,rgba(49,94,251,.24),transparent 45%);
}
.doc-hero.no-image .doc-hero-shade{background:linear-gradient(180deg,color-mix(in srgb,var(--panel),transparent 72%),color-mix(in srgb,var(--panel),transparent 6%))}
.doc-hero-content{width:100%;min-height:0;position:relative;z-index:1;display:flex;flex-direction:column;text-shadow:0 2px 18px rgba(0,0,0,.28)}
.doc-hero.no-image .doc-hero-content{text-shadow:none}
.hero-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.hero-topline{justify-content:space-between;align-items:flex-start;margin-bottom:14px}
.hero-copy-actions,.hero-doc-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.hero-titleblock{flex:1 1 auto;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;text-align:left;padding:18px 0 24px}
.hero-bottom{margin-top:auto;margin-bottom:42px}
.hero-meta-actions{justify-content:space-between;align-items:center;width:100%;gap:12px}
.hero-category,.hero-pill,.hero-meta span,.hero-meta a,.hero-tags a{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:999px;
  background:rgba(15,23,42,.30);
  color:white;
  font-size:12px;
  font-weight:850;
  backdrop-filter:blur(10px);
}
.hero-category{max-width:100%;padding:5px 10px}
.hero-pill{padding:5px 10px;cursor:pointer;font-family:inherit;text-shadow:inherit;text-decoration:none}
button.hero-pill{border-color:rgba(255,255,255,.24)}
.hero-pill:hover,.hero-category:hover,.hero-meta a:hover,.hero-tags a:hover{border-color:rgba(255,255,255,.45);background:rgba(255,255,255,.18);transform:translateY(-1px)}
.hero-pill[title]{position:relative}
.hero-pill[title]:hover::after{
  content:attr(title);
  position:absolute;
  left:50%;
  bottom:calc(100% + 9px);
  z-index:5;
  transform:translateX(-50%);
  width:max-content;
  max-width:min(560px,78vw);
  padding:8px 10px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:11px;
  background:rgba(15,23,42,.88);
  color:#fff;
  font-size:12px;
  line-height:1.35;
  white-space:normal;
  box-shadow:0 14px 34px rgba(0,0,0,.24);
  text-shadow:none;
}
.doc-hero.no-image .hero-category,
.doc-hero.no-image .hero-pill,
.doc-hero.no-image .hero-meta span,
.doc-hero.no-image .hero-meta a,
.doc-hero.no-image .hero-tags a{color:var(--accent);border-color:color-mix(in srgb,var(--accent),transparent 68%);background:color-mix(in srgb,var(--accent),transparent 91%)}
.doc-hero.no-image .hero-pill:hover,
.doc-hero.no-image .hero-category:hover,
.doc-hero.no-image .hero-meta a:hover,
.doc-hero.no-image .hero-tags a:hover{background:color-mix(in srgb,var(--accent),transparent 85%)}
.doc-hero h1{margin:0;max-width:920px;font-size:clamp(32px,5vw,58px);line-height:1.06;letter-spacing:-.055em;text-align:left}
.hero-desc{max-width:820px;margin:16px 0 0;color:rgba(255,255,255,.88);font-size:18px;line-height:1.66;text-align:left}
.doc-hero.no-image .hero-desc{color:var(--muted)}
.hero-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:0;color:rgba(255,255,255,.86);font-size:12px;font-weight:760;min-width:0}
.hero-meta span,.hero-meta a{padding:4px 7px;text-decoration:none}
.doc-hero.no-image .hero-meta{color:var(--muted)}
.hero-doc-actions{margin-top:0;margin-left:auto;justify-content:flex-end}
.hero-tags{margin-top:10px}
.hero-tags a{margin:0 6px 6px 0;padding:5px 10px;text-decoration:none}
.doc-neighbor-nav{
  position:absolute;
  left:0;
  right:0;
  bottom:-8px;
  z-index:2;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  pointer-events:none;
}
.doc-neighbor-link{
  pointer-events:auto;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-width:150px;
  max-width:min(42%,260px);
  min-height:32px;
  padding:4px 14px;
  border:1px solid rgba(255,255,255,.58);
  background:linear-gradient(180deg,rgba(255,255,255,.58),rgba(255,255,255,.30));
  color:white;
  text-decoration:none;
  backdrop-filter:blur(18px) saturate(1.35);
  -webkit-backdrop-filter:blur(18px) saturate(1.35);
  box-shadow:0 -8px 24px rgba(15,23,42,.16),inset 0 1px 0 rgba(255,255,255,.38);
  text-shadow:0 1px 9px rgba(15,23,42,.38);
  transition:transform .16s cubic-bezier(.2,.9,.2,1),background .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.doc-neighbor-link.prev{border-left:0;border-bottom:0;border-radius:0 16px 0 0;padding-left:16px;justify-content:flex-start}
.doc-neighbor-link.next{margin-left:auto;border-right:0;border-bottom:0;border-radius:16px 0 0 0;padding-right:16px;text-align:right;justify-content:flex-end}
.doc-neighbor-link:hover{
  transform:scale(1.045);
  background:linear-gradient(180deg,rgba(255,255,255,.70),rgba(255,255,255,.40));
  border-color:rgba(255,255,255,.62);
  box-shadow:0 -12px 32px rgba(15,23,42,.20),inset 0 1px 0 rgba(255,255,255,.55);
}
.neighbor-arrow{display:grid;place-items:center;width:20px;height:20px;flex:0 0 20px;border-radius:999px;background:rgba(255,255,255,.26);font-size:14px;font-weight:900;line-height:1}
.neighbor-text{display:block;min-width:0;font-size:13px;font-weight:900;line-height:1;letter-spacing:.01em;white-space:nowrap}
.doc-hero.no-image .doc-neighbor-link{color:var(--accent);border-color:color-mix(in srgb,var(--accent),transparent 70%);background:color-mix(in srgb,var(--panel),transparent 18%);text-shadow:none;box-shadow:0 -8px 24px rgba(16,24,40,.08),inset 0 1px 0 rgba(255,255,255,.50)}
.doc-hero.no-image .doc-neighbor-link:hover{background:color-mix(in srgb,var(--accent),transparent 88%);border-color:color-mix(in srgb,var(--accent),transparent 45%)}
.doc-hero.no-image .neighbor-arrow{background:color-mix(in srgb,var(--accent),transparent 86%)}
.doc-body-frame{overflow:visible}.doc-body-frame>.prose{padding:34px}.doc-bottom-neighbor-nav{position:absolute;left:0;right:0;bottom:0;z-index:3;display:flex;align-items:flex-end;justify-content:space-between;pointer-events:none}.doc-bottom-neighbor-link{pointer-events:auto;display:flex;align-items:center;justify-content:center;gap:9px;min-width:150px;max-width:min(42%,260px);min-height:32px;padding:4px 14px;border:1px solid color-mix(in srgb,var(--accent),var(--line) 45%);background:linear-gradient(180deg,color-mix(in srgb,var(--panel),transparent 5%),color-mix(in srgb,var(--panel-soft),transparent 8%));color:var(--accent);text-decoration:none;backdrop-filter:blur(18px) saturate(1.35);-webkit-backdrop-filter:blur(18px) saturate(1.35);box-shadow:0 -10px 26px rgba(16,24,40,.10),inset 0 1px 0 rgba(255,255,255,.58);transition:transform .16s cubic-bezier(.2,.9,.2,1),background .16s ease,border-color .16s ease,box-shadow .16s ease}.doc-bottom-neighbor-link.prev{border-left:0;border-bottom:0;border-radius:0 16px 0 0;padding-left:16px;justify-content:flex-start}.doc-bottom-neighbor-link.next{margin-left:auto;border-right:0;border-bottom:0;border-radius:16px 0 0 0;padding-right:16px;text-align:right;justify-content:flex-end}.doc-bottom-neighbor-link:hover{transform:scale(1.045);background:linear-gradient(180deg,color-mix(in srgb,var(--accent),transparent 88%),color-mix(in srgb,var(--panel),transparent 4%));border-color:color-mix(in srgb,var(--accent),transparent 35%);box-shadow:0 -12px 32px rgba(16,24,40,.16),inset 0 1px 0 rgba(255,255,255,.70)}.doc-bottom-neighbor-link .neighbor-arrow{background:color-mix(in srgb,var(--accent),transparent 86%)}html.dark .doc-bottom-neighbor-link{color:#dbeafe;border-color:color-mix(in srgb,var(--accent),transparent 50%);background:linear-gradient(180deg,rgba(31,41,55,.78),rgba(15,23,42,.62));box-shadow:0 -10px 28px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.08)}html.dark .doc-bottom-neighbor-link:hover{background:linear-gradient(180deg,color-mix(in srgb,var(--accent),transparent 72%),rgba(15,23,42,.72));box-shadow:0 -12px 34px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.13)}html.dark .doc-bottom-neighbor-link .neighbor-arrow{background:color-mix(in srgb,var(--accent),transparent 72%)}
.article>.prose{padding:34px}
@media(max-width:640px){
  .doc-hero{min-height:360px;padding:30px 24px;aspect-ratio:3/2}
  .hero-topline{align-items:flex-start;justify-content:flex-start}
  .hero-copy-actions,.hero-doc-actions{width:100%}
  .hero-copy-actions,.hero-doc-actions{justify-content:flex-start;margin-left:0}
  .hero-titleblock{padding:16px 0 20px}
  .hero-meta-actions{align-items:flex-start;justify-content:flex-start}
  .hero-desc{font-size:16px}
  .doc-neighbor-link{min-width:136px;max-width:48%;min-height:30px;padding:4px 10px;gap:7px}
  .doc-neighbor-link.prev{padding-left:12px;border-radius:0 14px 0 0}
  .doc-neighbor-link.next{padding-right:12px;border-radius:14px 0 0 0}
  .neighbor-arrow{width:18px;height:18px;flex-basis:18px;font-size:13px}
  .neighbor-text{font-size:12.5px}
  .doc-body-frame{overflow:visible}
  .doc-body-frame>.prose{padding:24px}
  .doc-bottom-neighbor-nav{left:0;right:0;bottom:0}
  .doc-bottom-neighbor-link{min-width:136px;max-width:48%;min-height:30px;padding:4px 10px;gap:7px}
  .doc-bottom-neighbor-link.prev{padding-left:12px;border-radius:0 14px 0 0}
  .doc-bottom-neighbor-link.next{padding-right:12px;border-radius:14px 0 0 0}
  .article>.prose{padding:24px}
}

/* Board-style document lists for home/category pages */
.post-row{grid-template-columns:minmax(0,1fr) minmax(112px,auto);align-items:center}
.post-main h3{margin-bottom:6px;letter-spacing:-.02em}
.post-main p{margin:0;color:var(--muted);line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.post-dates{display:flex;flex-direction:column;align-items:flex-end;gap:3px;min-width:118px;padding:8px 10px;border:1px solid color-mix(in srgb,var(--line),transparent 18%);border-radius:14px;background:color-mix(in srgb,var(--panel),transparent 18%);box-shadow:inset 0 1px 0 rgba(255,255,255,.42);color:var(--muted);font-size:12.5px;font-weight:700;line-height:1.25;text-align:right;white-space:nowrap}
.post-dates span{display:block}
.post-dates span:first-child{color:color-mix(in srgb,var(--muted),var(--text) 18%)}
.empty-list-note{margin:0;padding:22px;color:var(--muted)}
@media(max-width:640px){
  .post-row{grid-template-columns:1fr;gap:12px}
  .post-dates{align-items:flex-start;text-align:left;flex-direction:column;gap:3px;width:max-content;max-width:100%}
}

/* Mobile/narrow document layout: prevent topbar/title and hero metadata overflow */
.topbar{--topbar-doc-title-opacity:0;--topbar-brand-opacity:1}.brand{transition:opacity .16s ease}.doc-hero-content,.hero-titleblock,.hero-bottom,.hero-row,.hero-meta,.hero-doc-actions,.hero-copy-actions,.hero-tags{min-width:0;max-width:100%}
@media(max-width:760px){
  .doc-hero{aspect-ratio:auto;min-height:auto;height:auto;padding:24px 18px;border-radius:18px 18px 0 0;overflow:hidden}
  .doc-hero-content{display:flex;min-height:0;height:auto}
  .hero-topline{margin-bottom:12px;align-items:flex-start;justify-content:flex-start;gap:8px}
  .hero-category{max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:keep-all;line-height:1.35}
  .hero-copy-actions,.hero-doc-actions{width:100%;justify-content:flex-start;margin-left:0;gap:6px}
  .hero-titleblock{flex:0 0 auto;justify-content:flex-start;padding:30px 0 28px}
  .doc-hero h1{max-width:100%;font-size:clamp(25px,8.4vw,36px);line-height:1.12;overflow-wrap:anywhere;word-break:keep-all;letter-spacing:-.048em}
  .hero-desc{max-width:100%;font-size:15.5px;line-height:1.55;margin-top:12px;overflow-wrap:anywhere;word-break:keep-all}
  .hero-bottom{margin-top:0}
  .hero-meta-actions{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:10px}
  .hero-meta{width:100%;gap:6px;align-items:flex-start}
  .hero-meta span,.hero-meta a,.hero-pill,.hero-tags a{max-width:100%;white-space:normal;overflow-wrap:anywhere;line-height:1.35}
  .hero-doc-actions{align-items:flex-start}
  .hero-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
  .hero-tags a{margin:0}
  .article>.prose{padding:24px 18px}
}
@media(max-width:640px){
  .topbar{padding:10px 12px;gap:10px}
  .topbar.has-doc-title .brand{opacity:var(--topbar-brand-opacity)}
  .brand{height:38px;max-width:118px;overflow:hidden;flex:0 1 118px}
  .brand-logo{height:28px;max-width:118px}
  .topbar-title{left:12px;right:156px;top:50%;transform:translateY(-50%);max-width:none;text-align:left;font-size:min(var(--topbar-title-size),18px);letter-spacing:-.035em;line-height:1.18}
  .theme-icon,.auth-icon,.right-toggle{width:38px;height:38px;border-radius:13px}
}


/* Login-only content management controls */
.create-file-btn,.create-folder-btn{width:28px;height:28px;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;background:var(--panel-soft);color:var(--muted);cursor:pointer;flex:0 0 28px}
.create-file-btn:hover,.create-folder-btn:hover{color:var(--accent);border-color:var(--accent);background:var(--tree-hover)}
.create-file-btn svg,.create-folder-btn svg{width:15px!important;height:15px!important}
body.sort-mode .create-file-btn[data-sort-action="save"]{color:#fff;border-color:var(--accent);background:var(--accent);font-size:17px;font-weight:950;line-height:1}
body.sort-mode .create-folder-btn[data-sort-action="cancel"]{color:#fff;border-color:#ef4444;background:#ef4444;font-size:19px;font-weight:950;line-height:1}
body.sort-mode .sort-toggle-btn{color:var(--accent);border-color:var(--accent);background:var(--tree-hover)}
body.sort-mode .tree-dir>details>summary{outline:1px solid transparent}
body.sort-mode .tree-dir>details>summary:hover{outline-color:color-mix(in srgb,var(--accent),transparent 55%)}
body.sort-mode .tree-dir>details>summary.is-sort-drop-target{outline-color:var(--accent);background:var(--tree-hover)}
body.sort-mode .file-tree[data-sort-parent]{min-height:10px}
.content-create-modal[hidden]{display:none!important}.content-create-modal{position:fixed;inset:0;z-index:1100;display:flex;align-items:center;justify-content:center;padding:24px}.content-create-backdrop{position:absolute;inset:0;border:0;background:rgba(15,23,42,.32);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.content-create-card{position:relative;width:min(430px,calc(100vw - 36px));padding:24px;border:1px solid color-mix(in srgb,var(--accent),var(--line) 55%);border-radius:22px;background:var(--panel);box-shadow:0 30px 100px rgba(0,0,0,.22)}.content-create-card h2{margin:0 0 8px;font-size:24px;letter-spacing:-.03em}.content-create-card p{margin:0 0 18px;color:var(--muted);font-size:14px;line-height:1.55}.content-create-card label>span{display:block;margin:0 0 8px;color:var(--muted);font-size:13px;font-weight:850}.content-create-name-row{display:flex;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--panel-soft);overflow:hidden}.content-create-name-row:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent),transparent 86%)}.content-create-name-row input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--text);padding:13px 14px;font:inherit}.content-create-suffix{align-self:stretch;display:flex;align-items:center;padding:0 13px;border-left:1px solid var(--line);color:var(--muted);font-family:"D2Coding",ui-monospace,monospace;background:color-mix(in srgb,var(--line),transparent 70%)}.content-create-suffix[hidden]{display:none!important}.content-create-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.content-create-actions button{border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);color:var(--text);padding:10px 14px;font-weight:850;cursor:pointer}.content-create-actions button[type="submit"]{border-color:var(--accent);background:var(--accent);color:white}.content-create-actions button:hover{filter:brightness(.98);transform:translateY(-1px)}


/* Login-only Markdown editor */
.editor-top-actions{display:flex;align-items:center;gap:7px;margin-right:2px}
.editor-top-actions[hidden]{display:none!important}
.editor-icon{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--line);border-radius:13px;background:var(--panel-soft);color:var(--muted);cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease,transform .15s ease}
.editor-icon[hidden]{display:none!important}
.editor-icon:disabled,.editor-icon.is-disabled{opacity:.42;cursor:not-allowed;filter:grayscale(.35)}
.editor-icon:disabled:hover,.editor-icon.is-disabled:hover{color:var(--muted)!important;border-color:var(--line)!important;background:var(--panel-soft)!important;transform:none!important}
.editor-icon:hover{color:var(--accent);border-color:var(--accent);background:var(--tree-hover);transform:translateY(-1px)}
.editor-icon svg{width:19px!important;height:19px!important}
.editor-quality{color:var(--accent);border-color:color-mix(in srgb,var(--accent),var(--line) 35%)}
.editor-quality:hover{color:#fff;border-color:var(--accent);background:var(--accent)}
.editor-publish{color:#fff;border-color:var(--accent);background:var(--accent)}
.editor-publish:hover{color:#fff;background:color-mix(in srgb,var(--accent),#000 8%)}
.editor-cancel:hover{color:#fff;border-color:#ef4444;background:#ef4444}
.editor-save-state{display:inline-block;max-width:220px;color:var(--muted);font-size:12px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
.editor-panel[hidden],.editor-preview-modal[hidden]{display:none!important}
.editor-panel{margin:18px 0 0;border:1px solid color-mix(in srgb,var(--accent),var(--line) 58%);border-radius:22px;background:var(--panel);box-shadow:0 18px 50px rgba(15,23,42,.10);overflow:hidden}
.editor-panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border-bottom:1px solid var(--line);background:var(--panel-soft)}
.editor-panel-head strong{display:block;font-size:15px;letter-spacing:-.02em}
.editor-panel-head span,.editor-panel-head small{color:var(--muted);font-size:12px;font-weight:750}
.editor-toolbar{position:relative;display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:9px 12px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--panel-soft),var(--panel) 45%);overflow:visible;z-index:20}
.editor-toolbar button{min-width:34px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text);padding:0 9px;font-family:"D2Coding",ui-monospace,monospace;font-size:12px;font-weight:850;line-height:1;cursor:pointer;box-shadow:inset 0 1px 0 color-mix(in srgb,#fff,transparent 70%);transition:color .15s ease,border-color .15s ease,background .15s ease,transform .15s ease}
.editor-toolbar button:hover,.editor-toolbar-menu:focus-within>button{color:var(--accent);border-color:var(--accent);background:var(--tree-hover);transform:translateY(-1px)}
.editor-toolbar-sep{width:1px;height:22px;margin:0 3px;background:var(--line)}
.editor-toolbar-menu{position:relative;display:inline-flex;align-items:center}
.editor-toolbar-menu::after{content:"";position:absolute;left:-4px;right:-4px;top:100%;height:10px}
.editor-toolbar-popover{position:absolute;left:0;top:calc(100% + 2px);z-index:60;display:grid;grid-template-columns:repeat(2,minmax(76px,1fr));gap:5px;min-width:178px;padding:8px;border:1px solid color-mix(in srgb,var(--accent),var(--line) 55%);border-radius:14px;background:var(--panel);box-shadow:0 18px 55px rgba(15,23,42,.18);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-3px);transition:opacity .14s ease,transform .14s ease,visibility 0s linear .55s}
.editor-toolbar-popover-wide{grid-template-columns:repeat(2,minmax(96px,1fr));min-width:220px}
.editor-toolbar-menu:hover .editor-toolbar-popover,.editor-toolbar-menu:focus-within .editor-toolbar-popover{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);transition-delay:0s}
.editor-toolbar-popover button{width:100%;justify-content:flex-start;min-width:0;height:30px;border-radius:9px;box-shadow:none;font-size:11.5px;text-align:left;white-space:nowrap}
.editor-wikilink-suggest[hidden]{display:none!important}
.editor-wikilink-suggest{position:fixed;z-index:1350;min-width:260px;max-width:min(520px,calc(100vw - 24px));max-height:280px;overflow:auto;padding:7px;border:1px solid color-mix(in srgb,var(--accent),var(--line) 45%);border-radius:15px;background:var(--panel);box-shadow:0 24px 80px rgba(15,23,42,.24)}
.editor-wikilink-suggest button{display:block;width:100%;border:0;border-radius:10px;background:transparent;color:var(--text);padding:9px 10px;text-align:left;cursor:pointer}
.editor-wikilink-suggest button:hover,.editor-wikilink-suggest button.is-active{background:var(--tree-hover);color:var(--accent)}
.editor-wikilink-suggest strong{display:block;font-size:13px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.editor-wikilink-suggest span{display:block;margin-top:2px;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.markdown-editor{display:block;width:100%;min-height:68vh;padding:18px;border:0;outline:0;resize:vertical;background:var(--panel);color:var(--text);font-family:"D2Coding",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px;line-height:1.58;tab-size:2}
body.editor-mode .article{display:none}
.editor-preview-modal{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:24px}
.editor-preview-backdrop{position:absolute;inset:0;border:0;background:rgba(15,23,42,.42);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.editor-preview-card{position:relative;width:min(980px,calc(100vw - 38px));max-height:calc(100vh - 52px);display:flex;flex-direction:column;border:1px solid color-mix(in srgb,var(--accent),var(--line) 48%);border-radius:22px;background:var(--panel);box-shadow:0 30px 100px rgba(0,0,0,.28);overflow:hidden}
.editor-preview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid var(--line);background:var(--panel-soft)}
.editor-preview-head strong{display:block;font-size:19px;letter-spacing:-.03em}
.editor-preview-head p{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.45}
.editor-preview-head button{border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text);padding:8px 12px;font-weight:850;cursor:pointer}
.editor-preview-body{overflow:auto;padding:28px;max-height:calc(100vh - 150px)}
@media(max-width:640px){.editor-top-actions{gap:5px}.editor-icon{width:38px;height:38px}.editor-save-state{display:none}.editor-panel{margin:12px 0 0;border-radius:18px}.editor-panel-head{align-items:flex-start;flex-direction:column}.editor-toolbar{gap:5px;padding:8px;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}.editor-toolbar::-webkit-scrollbar{display:none}.editor-toolbar button{min-width:32px;height:31px;padding:0 8px;font-size:11px}.editor-toolbar-sep{flex:0 0 1px}.editor-toolbar-menu{position:static}.editor-toolbar-popover{position:fixed;left:10px;right:10px;top:auto;bottom:14px;grid-template-columns:repeat(2,minmax(0,1fr));min-width:0}.editor-wikilink-suggest{left:10px!important;right:10px;max-width:none;min-width:0}.markdown-editor{min-height:72vh;font-size:13.5px;padding:14px}.editor-preview-modal{padding:12px}.editor-preview-card{width:calc(100vw - 18px);max-height:calc(100vh - 24px);border-radius:18px}.editor-preview-body{padding:20px 16px}}

.editor-confirm-modal[hidden]{display:none!important}
.editor-confirm-modal{position:fixed;inset:0;z-index:1300;display:flex;align-items:center;justify-content:center;padding:24px}
.editor-confirm-backdrop{position:absolute;inset:0;border:0;background:rgba(15,23,42,.38);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px)}
.editor-confirm-card{position:relative;width:min(560px,calc(100vw - 38px));padding:22px;border:1px solid color-mix(in srgb,var(--accent),var(--line) 52%);border-radius:22px;background:var(--panel);box-shadow:0 28px 90px rgba(0,0,0,.26)}
.editor-confirm-card h2{margin:0 0 9px;font-size:22px;letter-spacing:-.035em}
.editor-confirm-card p{margin:0;color:var(--muted);font-size:14px;line-height:1.58;word-break:keep-all;white-space:pre-line;max-height:min(52vh,520px);overflow:auto;padding-right:3px}
.editor-confirm-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}
.editor-confirm-actions button{border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);color:var(--text);padding:10px 14px;font-weight:850;cursor:pointer}
.editor-confirm-actions button:hover{transform:translateY(-1px);filter:brightness(.98)}
.editor-confirm-ok{border-color:var(--accent)!important;background:var(--accent)!important;color:#fff!important}
.editor-confirm-ok.is-danger{border-color:#ef4444!important;background:#ef4444!important}

/* Obsidian-like image toolkit overlay */
body.image-toolkit-open{overflow:hidden}
body.mermaid-toolkit-open .image-toolkit-backdrop{background:color-mix(in srgb,var(--bg),transparent 18%)}
body.mermaid-toolkit-open .image-toolkit-img{background:var(--panel);padding:18px;border:1px solid var(--line);box-shadow:0 24px 90px rgba(15,23,42,.18)}
body.mermaid-toolkit-open [data-image-toolkit-action="copy-image"],
body.mermaid-toolkit-open [data-image-toolkit-action="copy-url"]{display:none!important}
html.dark body.mermaid-toolkit-open .image-toolkit-backdrop{background:rgba(5,9,18,.76)}
html.dark body.mermaid-toolkit-open .image-toolkit-img{background:var(--panel);box-shadow:0 24px 90px rgba(0,0,0,.48)}
.prose img.image-toolkit-target{cursor:zoom-in;transition:filter .15s ease,box-shadow .15s ease,transform .15s ease}.prose img.image-toolkit-target:hover{filter:saturate(1.04) contrast(1.02);box-shadow:0 12px 34px rgba(16,24,40,.16);transform:translateY(-1px)}.prose img.image-toolkit-target:focus{outline:3px solid color-mix(in srgb,var(--accent),transparent 62%);outline-offset:3px}
.image-toolkit-overlay[hidden]{display:none!important}.image-toolkit-overlay{position:fixed;inset:0;z-index:1400;display:grid;grid-template-rows:1fr auto;place-items:center;padding:24px 24px 26px;color:white;isolation:isolate}.image-toolkit-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(5,9,18,.76);backdrop-filter:blur(18px) saturate(1.12);-webkit-backdrop-filter:blur(18px) saturate(1.12);cursor:zoom-out}.image-toolkit-stage{position:relative;z-index:1;width:100%;height:calc(100vh - 136px);display:grid;place-items:center;overflow:hidden;touch-action:none;cursor:grab;user-select:none}.image-toolkit-stage.is-dragging{cursor:grabbing}.image-toolkit-img{display:block;max-width:none;max-height:none;transform-origin:center center;will-change:transform;transition:transform .08s ease;box-shadow:0 24px 90px rgba(0,0,0,.48);border-radius:8px;background:#0b1020}.image-toolkit-stage.is-dragging .image-toolkit-img{transition:none}.image-toolkit-img,.prose img.image-toolkit-target{-webkit-user-drag:none;user-select:none;-webkit-user-select:none}.image-toolkit-caption{position:fixed;left:50%;bottom:88px;z-index:2;max-width:min(760px,calc(100vw - 36px));transform:translateX(-50%);padding:6px 10px;border-radius:999px;background:rgba(15,23,42,.48);color:rgba(255,255,255,.76);font-size:12px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.image-toolkit-toolbar{position:relative;z-index:3;display:flex;align-items:center;justify-content:center;gap:7px;max-width:calc(100vw - 28px);padding:9px;border:1px solid rgba(255,255,255,.16);border-radius:20px;background:rgba(15,23,42,.72);box-shadow:0 18px 70px rgba(0,0,0,.36),inset 0 1px 0 rgba(255,255,255,.12);backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px) saturate(1.2);overflow-x:auto;scrollbar-width:none}.image-toolkit-toolbar::-webkit-scrollbar{display:none}.image-toolkit-toolbar button,.image-toolkit-toolbar a{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:36px;padding:0 12px;border:1px solid rgba(255,255,255,.14);border-radius:13px;background:rgba(255,255,255,.08);color:white;font:800 13px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;text-decoration:none;white-space:nowrap;cursor:pointer}.image-toolkit-toolbar button:hover,.image-toolkit-toolbar a:hover{background:rgba(138,180,255,.22);border-color:rgba(138,180,255,.55)}.image-toolkit-toast{position:fixed;left:50%;top:78px;z-index:4;transform:translateX(-50%);padding:10px 14px;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:rgba(15,23,42,.78);color:white;font-size:13px;font-weight:800;box-shadow:0 12px 42px rgba(0,0,0,.32);backdrop-filter:blur(16px)}
@media(max-width:640px){.image-toolkit-overlay{padding:12px}.image-toolkit-stage{height:calc(100vh - 126px)}.image-toolkit-caption{display:none}.image-toolkit-toolbar{justify-content:flex-start;border-radius:17px;padding:8px}.image-toolkit-toolbar button,.image-toolkit-toolbar a{height:34px;min-width:36px;padding:0 10px;font-size:12px}.image-toolkit-toast{top:64px}}

/* Markdown extension UI: summary box, callouts, heading anchors */
.wikilink{font-weight:800;text-decoration:none;border-bottom:1px dotted color-mix(in srgb,var(--accent),transparent 30%);color:var(--accent)}
.wikilink:hover{border-bottom-style:solid;background:color-mix(in srgb,var(--accent),transparent 91%)}
.missing-wikilink{display:inline-block;border:1px dashed #ef4444;border-radius:7px;background:color-mix(in srgb,#ef4444,transparent 91%);color:#dc2626;padding:0 5px;font-weight:800}
.doc-summary-box{margin:0 34px 0;padding:22px 24px;border:1px solid color-mix(in srgb,var(--accent),var(--line) 45%);border-top:0;border-radius:0 0 22px 22px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent),transparent 91%),var(--panel));box-shadow:0 18px 42px rgba(15,23,42,.055)}
.doc-summary-title{display:inline-flex;align-items:center;gap:8px;margin:0 0 10px;color:var(--accent);font-size:14px;font-weight:950;letter-spacing:.02em}
.doc-summary-title::before{content:"";width:9px;height:9px;border-radius:999px;background:linear-gradient(135deg,var(--accent),var(--accent2));box-shadow:0 0 0 4px color-mix(in srgb,var(--accent),transparent 88%)}
.doc-summary-box p{margin:0;color:var(--text);font-size:16px;line-height:1.68}
.doc-summary-box ol{margin:0;padding-left:1.25em;color:var(--text);font-size:16px;line-height:1.68}
.doc-summary-box li{margin:.25em 0;padding-left:.12em}
.prose .md-callout{--callout-color:var(--accent);position:relative;margin:1.65em 0;padding:18px 20px 18px 22px;border:1px solid color-mix(in srgb,var(--callout-color),var(--line) 45%);border-left:5px solid var(--callout-color);border-radius:16px;background:linear-gradient(135deg,color-mix(in srgb,var(--callout-color),transparent 91%),var(--panel));box-shadow:0 12px 32px rgba(15,23,42,.055)}
.prose .md-callout::before{content:attr(data-callout-title);display:flex;align-items:center;gap:8px;margin:0 0 6px;color:var(--callout-color);font-size:13px;font-weight:950;letter-spacing:.025em}
.prose .md-callout p:first-child{margin-top:0}.prose .md-callout p:last-child{margin-bottom:0}
.prose .md-callout ul,.prose .md-callout ol{margin-top:.55em;margin-bottom:.2em}
.prose .md-callout-note,.prose .md-callout-info{--callout-color:var(--accent)}
.prose .md-callout-tip,.prose .md-callout-hint{--callout-color:var(--accent2)}
.prose .md-callout-important{--callout-color:#8b5cf6}
.prose .md-callout-warning,.prose .md-callout-caution{--callout-color:#f59e0b}
.prose .md-callout-danger{--callout-color:#ef4444}
.prose .md-callout-example{--callout-color:#06b6d4}
.prose .md-callout-quote{--callout-color:var(--muted)}
.prose h2,.prose h3,.prose h4{position:relative;scroll-margin-top:96px}
.prose .heading-anchor-copy{display:inline-grid;place-items:center;width:1.55em;height:1.55em;margin-left:.34em;vertical-align:.08em;border:1px solid color-mix(in srgb,var(--accent),transparent 66%);border-radius:999px;background:color-mix(in srgb,var(--accent),transparent 92%);color:var(--accent);font-size:.56em;font-family:ui-sans-serif,system-ui,sans-serif;line-height:1;cursor:pointer;opacity:.45;transition:opacity .15s ease,background .15s ease,transform .15s ease}
.prose h2:hover .heading-anchor-copy,.prose h3:hover .heading-anchor-copy,.prose h4:hover .heading-anchor-copy,.prose .heading-anchor-copy:focus{opacity:1;outline:0}
.prose .heading-anchor-copy:hover{background:color-mix(in srgb,var(--accent),transparent 84%);transform:translateY(-1px)}
.prose .heading-anchor-copy.is-copied{opacity:1;background:var(--accent);color:white;border-color:var(--accent)}
.toc .l4{padding-left:24px;font-size:13px}
.prose h4.is-toc-target{animation:toc-target-pulse 1.4s ease}
@media(max-width:760px){.doc-summary-box{margin:0 18px;padding:18px 18px;border-radius:0 0 18px 18px}.doc-summary-box p,.doc-summary-box ol{font-size:15px;line-height:1.62}.prose .heading-anchor-copy{opacity:.72}}

/* Owner admin pages */
.admin-page{display:flex;flex-direction:column;gap:18px}.admin-hero,.admin-panel,.admin-stat-card{background:var(--panel);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow)}.admin-hero{padding:34px;background:radial-gradient(circle at top right,color-mix(in srgb,var(--accent),transparent 82%),transparent 45%),var(--panel)}.admin-hero h1{margin:8px 0 10px;font-size:42px;line-height:1.08;letter-spacing:-.045em}.admin-hero p:not(.eyebrow){margin:0;color:var(--muted);line-height:1.65}.admin-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.admin-tabs a{padding:9px 13px;border:1px solid var(--line);border-radius:999px;background:var(--panel-soft);color:var(--muted);font-size:14px;font-weight:850}.admin-tabs a:hover,.admin-tabs a.is-active{border-color:var(--accent);background:color-mix(in srgb,var(--accent),transparent 88%);color:var(--accent)}.admin-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.admin-stat-card{padding:18px}.admin-stat-card span{display:block;color:var(--muted);font-size:13px;font-weight:850}.admin-stat-card strong{display:block;margin-top:8px;color:var(--text);font-size:34px;line-height:1}.admin-panel{padding:24px}.admin-panel h2{margin:0 0 8px;font-size:24px;letter-spacing:-.03em}.admin-muted{margin:0 0 15px;color:var(--muted);line-height:1.6}.admin-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.admin-panel-head h2{margin:0}.admin-panel-head>span{padding:5px 10px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:13px;font-weight:900}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left}.admin-table th{width:180px;color:var(--muted);font-weight:850}.admin-badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;font-size:12px;font-weight:950;text-transform:uppercase;background:var(--panel-soft);color:var(--muted);border:1px solid var(--line)}.admin-badge.ok{color:var(--accent2);border-color:color-mix(in srgb,var(--accent2),var(--line) 35%);background:color-mix(in srgb,var(--accent2),transparent 90%)}.admin-badge.info{color:var(--accent);border-color:color-mix(in srgb,var(--accent),var(--line) 35%);background:color-mix(in srgb,var(--accent),transparent 90%)}.admin-badge.warn{color:#d97706;border-color:color-mix(in srgb,#f59e0b,var(--line) 35%);background:color-mix(in srgb,#f59e0b,transparent 88%)}.admin-badge.error{color:#ef4444;border-color:color-mix(in srgb,#ef4444,var(--line) 35%);background:color-mix(in srgb,#ef4444,transparent 90%)}.admin-doc-list{list-style:none;margin:8px 0 0;padding:0}.admin-doc-list li{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--line)}.admin-doc-list a{color:var(--accent);font-weight:800}.admin-doc-list span{color:var(--muted);font-size:13px;white-space:nowrap}.admin-issue-list{display:flex;flex-direction:column;gap:10px}.admin-issue{padding:14px 15px;border:1px solid var(--line);border-radius:16px;background:var(--panel-soft)}.admin-issue>div{display:flex;align-items:center;gap:9px;margin-bottom:7px}.admin-issue strong{font-size:15px}.admin-issue a{display:inline-block;color:var(--accent);font-weight:850;text-decoration:none}.admin-issue a:hover{text-decoration:underline}.admin-issue p{margin:6px 0 0;color:var(--muted);font-size:13px;line-height:1.5}.admin-issue.severity-error{border-color:color-mix(in srgb,#ef4444,var(--line) 45%);background:color-mix(in srgb,#ef4444,transparent 94%)}.admin-issue.severity-warn{border-color:color-mix(in srgb,#f59e0b,var(--line) 45%);background:color-mix(in srgb,#f59e0b,transparent 94%)}.admin-empty{margin:0;color:var(--muted)}.admin-side-toc a.is-active{color:var(--accent);font-weight:900}
.admin-tree-section{margin:0 0 12px;padding:0 0 10px;border-bottom:1px solid var(--line)}.admin-tree-section .tree-dir summary{background:color-mix(in srgb,var(--accent2),transparent 92%)}.admin-tree-section .tree-doc a{padding-left:31px}
@media(max-width:640px){.admin-hero,.admin-panel{padding:22px}.admin-hero h1{font-size:32px}.admin-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-doc-list li{align-items:flex-start;flex-direction:column;gap:4px}.admin-panel-head{align-items:flex-start;flex-direction:column}}

/* Document backlink graph */
.doc-backlinks{margin:34px 0 0;padding:22px;border:1px solid color-mix(in srgb,var(--accent),var(--line) 62%);border-radius:22px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent),transparent 94%),var(--panel));box-shadow:0 16px 44px rgba(15,23,42,.08)}
.doc-backlinks-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}
.doc-backlinks-head span{font-size:18px;font-weight:900;letter-spacing:-.03em}
.doc-backlinks-head small{color:var(--muted);font-size:12px;font-weight:800}
.doc-backlinks ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.doc-backlinks li{padding:12px 13px;border:1px solid var(--line);border-radius:15px;background:var(--panel)}
.doc-backlinks a{display:inline-block;color:var(--accent);font-weight:900;text-decoration:none}
.doc-backlinks a:hover{text-decoration:underline}
.doc-backlinks p{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.45}
.doc-backlinks li>small{display:block;margin-top:5px;color:var(--muted);font-size:11.5px;font-weight:800}
@media(max-width:640px){.doc-backlinks{padding:16px;border-radius:18px}.doc-backlinks-head{display:block}.doc-backlinks-head small{display:block;margin-top:3px}}

/* Mobile right sidebar: make inter-card gaps look like frosted glass instead of gray overlay */
@media(max-width:1100px){
  .rightslot{
    gap:12px!important;
    padding:10px!important;
    border:1px solid color-mix(in srgb,var(--line),transparent 18%)!important;
    border-radius:24px;
    background:color-mix(in srgb,var(--panel),transparent 38%)!important;
    box-shadow:0 24px 80px rgba(15,23,42,.16),inset 0 1px 0 rgba(255,255,255,.18)!important;
    backdrop-filter:blur(18px) saturate(1.28);
    -webkit-backdrop-filter:blur(18px) saturate(1.28);
  }
  .rightslot::before{
    background:rgba(246,247,251,.015);
    backdrop-filter:blur(5px) saturate(1.06);
    -webkit-backdrop-filter:blur(5px) saturate(1.06);
  }
  .right-block{
    background:color-mix(in srgb,var(--panel),transparent 8%);
    box-shadow:0 12px 34px rgba(15,23,42,.08);
  }
  .dark .rightslot{
    background:color-mix(in srgb,var(--panel),transparent 30%)!important;
    box-shadow:0 24px 90px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.08)!important;
  }
  .dark .rightslot::before{
    background:rgba(12,17,29,.01);
  }
  .dark .right-block{
    background:color-mix(in srgb,var(--panel),transparent 5%);
    box-shadow:0 12px 34px rgba(0,0,0,.22);
  }
}

/* mdweb SQL/SQLT tags */
.sqltag-table-wrap{overflow-x:auto;margin:18px 0;padding-bottom:8px;border:1px solid var(--line);border-radius:16px;background:var(--panel-soft);scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--accent),transparent 45%) transparent}.sqltag-table{width:100%;min-width:max(560px,100%);border-collapse:separate;border-spacing:0;background:var(--panel);font-size:14px}.sqltag-table th,.sqltag-table td{padding:10px 12px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);text-align:left;vertical-align:top;white-space:nowrap}.sqltag-table th{background:color-mix(in srgb,var(--accent),transparent 91%);color:var(--text);font-weight:900}.sqltag-table tr:last-child td{border-bottom:0}.sqltag-table th:last-child,.sqltag-table td:last-child{border-right:0}

.admin-two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.admin-table-wide th{width:210px}.admin-table td small{display:block;margin-top:3px;color:var(--muted);font-size:12px}.admin-table td p{margin:5px 0 0;color:var(--muted);line-height:1.5}.admin-table code{padding:2px 6px;border:1px solid var(--line);border-radius:8px;background:var(--panel-soft);font-family:var(--mono);font-size:12px;word-break:break-all}.admin-action-btn{border:1px solid var(--accent);border-radius:999px;background:color-mix(in srgb,var(--accent),transparent 88%);color:var(--accent);padding:8px 13px;font-weight:900;cursor:pointer}.admin-action-btn:hover{background:color-mix(in srgb,var(--accent),transparent 80%)}.admin-checklist{margin:10px 0 0;padding-left:23px;color:var(--text);line-height:1.75}.admin-checklist li::marker{color:var(--accent);font-weight:900}.admin-link-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-top:18px}.admin-link-grid a{display:block;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--panel-soft);font-weight:900;color:var(--text)}.admin-link-grid a:hover{border-color:var(--accent);color:var(--accent)}@media(max-width:760px){.admin-two-col{grid-template-columns:1fr}.admin-table-wide th{width:auto}}

/* Admin analytics ops extensions */
.admin-mini-chip{display:inline-flex;align-items:center;margin:2px 4px 2px 0;padding:2px 7px;border-radius:999px;background:color-mix(in srgb,var(--accent2),transparent 88%);color:var(--accent2);font-size:11px;font-weight:950;text-transform:uppercase}.admin-issue-list.compact{max-height:720px;overflow:auto;padding-right:4px}.admin-table.admin-table-wide td{vertical-align:top}.admin-table.admin-table-wide small{word-break:break-all}.admin-period-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 14px}.admin-period-tabs a,.admin-action-link{display:inline-flex;align-items:center;justify-content:center;padding:7px 11px;border:1px solid var(--line);border-radius:999px;background:var(--panel-soft);color:var(--muted);font-size:13px;font-weight:900;text-decoration:none}.admin-period-tabs a:hover,.admin-period-tabs a.is-active,.admin-action-link:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent),transparent 88%);color:var(--accent)}.admin-bar-list{display:grid;gap:9px;margin-top:12px}.admin-bar-row{position:relative;display:grid;grid-template-columns:minmax(80px,1fr) auto;gap:10px;align-items:center;padding:10px 12px;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--panel-soft)}.admin-bar-row span,.admin-bar-row strong{position:relative;z-index:1}.admin-bar-row i{position:absolute;inset:0 auto 0 0;width:min(100%,calc(var(--w,0)*2%));background:linear-gradient(90deg,color-mix(in srgb,var(--accent),transparent 82%),color-mix(in srgb,var(--accent2),transparent 88%));opacity:.72}.admin-stat-small{font-size:16px!important;line-height:1.25!important}
.admin-action-btn.danger,.editor-confirm-ok.is-danger,.editor-delete{border-color:#ef4444!important;color:#ef4444!important;background:color-mix(in srgb,#ef4444,transparent 90%)!important}.admin-action-btn.danger:hover,.editor-delete:hover{background:color-mix(in srgb,#ef4444,transparent 82%)!important}.trash-info-panel{margin-top:16px;padding:18px;border:1px solid color-mix(in srgb,#ef4444,var(--line) 55%);border-radius:18px;background:linear-gradient(135deg,color-mix(in srgb,#ef4444,transparent 93%),var(--panel-soft))}.trash-info-panel h2{margin:0 0 8px;font-size:22px}.trash-info-panel p{margin:0 0 10px;color:var(--muted);line-height:1.65}.admin-bulk-actions{display:flex;justify-content:flex-end;margin:0 0 12px}.admin-unused-form input[type="checkbox"]{width:18px;height:18px;accent-color:#ef4444}
