
.doc-home-grid{position:relative;margin-bottom:0;display:grid;grid-template-columns:1fr}
.doc-home-grid .doc-nav{grid-column:1;grid-row:1;margin:0 0 1rem}
.doc-home-grid .doc-feed,.doc-home-grid .doc-article-block{grid-column:1;grid-row:2;margin:0 0 1rem}
.doc-link-aside{grid-column:1;grid-row:1/3;justify-self:end;align-self:start;position:sticky;top:1.25rem;width:9rem;max-width:10.5rem;min-width:6.5rem;transform:translateX(calc(100% + .65rem));display:flex;flex-direction:column;gap:.65rem;z-index:3}
.doc-link-capsule{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:.55rem .65rem;box-shadow:0 1px 3px rgba(45,59,45,.06)}
.doc-link-capsule-title{margin:0 0 .4rem;font-size:.78rem;font-weight:600;color:var(--muted);letter-spacing:.02em}
.doc-link-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem}
.doc-link-list a{display:block;font-size:.78rem;line-height:1.35;color:var(--accent);text-decoration:none;padding:.15rem 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.doc-link-list a:hover,.doc-link-list a:focus{text-decoration:none;animation:doc-link-breathe 1.4s ease-in-out infinite}
@keyframes doc-link-breathe{0%,100%{opacity:1}50%{opacity:.5}}
@media(max-width:42rem){
.doc-home-grid{display:block}
.doc-home-grid .doc-nav,.doc-home-grid .doc-feed,.doc-home-grid .doc-article-block{grid-column:auto;grid-row:auto}
.doc-link-aside{grid-column:auto;grid-row:auto;justify-self:auto;position:static;transform:none;width:100%;max-width:none;margin:1rem 0 0}
}
.doc-nav,.doc-feed{margin:0 0 1rem;padding:0;background:transparent;border:0;box-shadow:none}
.doc-nav .doc-toolbar{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:.65rem .85rem .75rem;box-shadow:0 1px 3px rgba(45,59,45,.06)}
.doc-cats{display:flex;flex-wrap:nowrap;gap:.15rem;overflow-x:auto;margin:0 0 .6rem;padding:0 0 .15rem;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.doc-cats::-webkit-scrollbar{height:4px}
.doc-cat{flex:0 0 auto;border:0;background:transparent;color:var(--muted);font:inherit;font-size:.84rem;padding:.35rem .55rem .4rem;cursor:pointer;border-bottom:2px solid transparent;border-radius:0;white-space:nowrap}
.doc-cat:hover{color:var(--text)}
.doc-cat.is-active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
.doc-search-row{position:relative;margin:0}
.doc-search-icon{position:absolute;left:.55rem;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none;display:flex}
.doc-search-input{width:100%;padding:.5rem .65rem .5rem 2.05rem;border:1px solid var(--line);border-radius:10px;background:var(--doc-surface);font:inherit;font-size:.88rem}
.doc-search-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px rgba(61,107,74,.15)}
.doc-search-results{position:absolute;left:0;right:0;top:100%;z-index:20;margin:.25rem 0 0;padding:.2rem 0;list-style:none;border:1px solid var(--line);border-radius:10px;max-height:14rem;overflow:auto;box-shadow:0 4px 12px rgba(45,59,45,.12);background:var(--doc-search-drop);pointer-events:none;opacity:0;visibility:hidden;transition:opacity .15s ease,visibility .15s}
.doc-search-results.is-open{opacity:1;visibility:visible;pointer-events:auto}
.doc-search-results li{border-bottom:1px solid rgba(184,201,184,.45)}
.doc-search-results li:last-child{border-bottom:0}
.doc-search-results a{display:block;padding:.45rem .6rem;text-decoration:none;color:var(--text);font-size:.88rem;background:transparent}
.doc-search-results a:hover{background:rgba(61,107,74,.1)}
.doc-search-results strong{display:block}
.doc-search-results span{display:block;font-size:.78rem;color:var(--muted)}
.doc-feed{margin-bottom:1.25rem}
.doc-feed-panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:1rem 1.1rem 1rem;box-shadow:0 1px 4px rgba(45,59,45,.07)}
.doc-card-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}
.doc-capsule{background:var(--doc-surface);border:1px solid var(--line);border-radius:12px;padding:.85rem 1rem .9rem;transition:border-color .15s,box-shadow .15s,transform .15s}
.doc-capsule:hover{border-color:rgba(61,107,74,.45);box-shadow:0 2px 10px rgba(61,107,74,.1);transform:translateY(-1px)}
.doc-capsule-empty{color:var(--muted);font-size:.88rem;background:transparent;border:0;box-shadow:none;transform:none}
.doc-feed-pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.65rem;margin-top:1rem;padding-top:.85rem;border-top:1px solid var(--line)}
.doc-feed-count{font-size:.84rem;color:var(--muted)}
.doc-feed-pager-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.doc-pager-info{font-size:.84rem;color:var(--muted);min-width:5.5rem;text-align:center}
.doc-pager-btn{border:1px solid var(--line);background:var(--doc-surface);color:var(--accent);font:inherit;font-size:.84rem;padding:.32rem .75rem;border-radius:8px;cursor:pointer}
.doc-pager-btn:hover:not(:disabled){background:rgba(61,107,74,.08)}
.doc-pager-btn:disabled{opacity:.45;cursor:not-allowed;color:var(--muted)}
.doc-capsule-link{display:block;text-decoration:none;color:var(--text);border-radius:10px}
.doc-capsule-link:hover .doc-capsule-title{color:var(--accent)}
.doc-capsule-link:focus-visible{outline:2px solid rgba(61,107,74,.35);outline-offset:2px}
.doc-capsule-head{display:flex;align-items:baseline;gap:.65rem;margin-bottom:.2rem}
.doc-capsule-title{font-weight:600;font-size:.94rem;line-height:1.4;flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.doc-capsule-head-meta{display:flex;align-items:baseline;gap:.55rem;flex:0 0 auto;margin-left:auto}
.doc-capsule-cat{font-size:.76rem;color:var(--muted);white-space:nowrap}
.doc-capsule-date{font-size:.76rem;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.doc-capsule-excerpt{margin:.1rem 0 0;font-size:.84rem;line-height:1.62;color:var(--muted);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;text-wrap:pretty;word-break:break-word}

:root{
  --bg:#e8efe8;
  --panel:#dde8dd;
  --text:#2d3b2d;
  --muted:#5a6b5a;
  --line:#b8c9b8;
  --accent:#3d6b4a;
  --doc-surface:#d8e4d8;
  --doc-search-drop:rgba(216,228,216,.88);
}

.doc-page-shell{padding-bottom:1.5rem}
.doc-article-block{margin-bottom:1rem}
.doc-article{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:1.05rem 1.15rem;box-shadow:0 1px 4px rgba(45,59,45,.07);overflow-x:hidden;max-width:100%}
.doc-article .doc-article-head{margin-bottom:1rem;padding-bottom:.65rem;border-bottom:1px solid var(--line)}
.doc-article h1{font-size:1.25rem;margin:0 0 .35rem;line-height:1.35;overflow-wrap:break-word}
.doc-article-meta{font-size:.85rem;color:var(--muted);margin:.2rem 0;overflow-wrap:break-word}
.doc-article-foot{margin-top:1.25rem;padding-top:.65rem;border-top:1px solid var(--line)}
.doc-article-foot .doc-article-meta{margin:0}
.doc-md{font-size:.95rem;line-height:1.6;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;max-width:100%}

.doc-code-wrap{position:relative;margin:.75rem 0;
  --out-bg:#0d1117;--out-fg:#c9d1d9;--out-border:#30363d;
  --hl-comment:#6a9955;--hl-string:#ce9178;--hl-keyword:#569cd6;--hl-cmd:#dcdcaa;
  --hl-flag:#9cdcfe;--hl-var:#4ec9b0;--hl-num:#b5cea8;--hl-key:#79c0ff;--hl-bool:#569cd6;
  --hl-type:#4ec9b0;--hl-func:#dcdcaa;--hl-tag:#7ee787;--hl-attr:#9cdcfe;--hl-op:#8b949e;
  --hl-time:#569cd6;--hl-path:#79c0ff;--hl-ip:#a5d6ff;--hl-port:#79c0ff;
  --hl-unit:#d2a8ff;--hl-pid:#e6edf3;--hl-user:#7ee787;
  --hl-ok:#3fb950;--hl-warn:#d29922;--hl-err:#ff7b72;--hl-dim:#8b949e;
}
.doc-code-wrap:hover .doc-copy-btn,.doc-code-wrap:focus-within .doc-copy-btn{opacity:1;pointer-events:auto}
.doc-copy-btn{position:absolute;top:.4rem;right:.4rem;z-index:2;opacity:0;pointer-events:none;transition:opacity .15s ease;
  font:inherit;font-size:.72rem;line-height:1;padding:.28rem .5rem;border:1px solid rgba(255,255,255,.18);border-radius:5px;
  background:rgba(0,0,0,.55);color:#e8e8e8;cursor:pointer;backdrop-filter:blur(4px)}
.doc-copy-btn:hover{background:rgba(0,0,0,.72);border-color:rgba(255,255,255,.32)}
.doc-md pre,.doc-md .doc-code-wrap pre{
  margin:0;background:var(--out-bg);color:var(--out-fg);border:1px solid var(--out-border);border-radius:6px;
  padding:.65rem .75rem;padding-top:2rem;overflow:auto;max-width:100%;
  font-family:ui-monospace,Consolas,"Cascadia Mono",monospace;font-size:.82rem;line-height:1.5;
  white-space:pre;word-break:normal;overflow-wrap:normal;tab-size:4}
.doc-md pre code{background:transparent;color:inherit;font-size:inherit;padding:0;white-space:inherit}
.doc-md :not(pre)>code{
  background:var(--doc-surface);color:var(--text);padding:.12rem .35rem;border-radius:4px;
  white-space:pre-wrap;word-break:break-word;font-size:.88em}
.doc-code-wrap .doc-hl-comment{color:var(--hl-comment);font-style:italic}
.doc-code-wrap .doc-hl-string{color:var(--hl-string)}
.doc-code-wrap .doc-hl-keyword{color:var(--hl-keyword);font-weight:600}
.doc-code-wrap .doc-hl-cmd{color:var(--hl-cmd);font-weight:600}
.doc-code-wrap .doc-hl-flag{color:var(--hl-flag)}
.doc-code-wrap .doc-hl-var{color:var(--hl-var)}
.doc-code-wrap .doc-hl-num{color:var(--hl-num)}
.doc-code-wrap .doc-hl-key{color:var(--hl-key)}
.doc-code-wrap .doc-hl-bool{color:var(--hl-bool);font-weight:600}
.doc-code-wrap .doc-hl-type{color:var(--hl-type)}
.doc-code-wrap .doc-hl-func{color:var(--hl-func);font-weight:600}
.doc-code-wrap .doc-hl-tag{color:var(--hl-tag)}
.doc-code-wrap .doc-hl-attr{color:var(--hl-attr)}
.doc-code-wrap .doc-hl-op{color:var(--hl-op)}
.doc-code-wrap .doc-hl-time{color:var(--hl-time)}
.doc-code-wrap .doc-hl-path{color:var(--hl-path)}
.doc-code-wrap .doc-hl-ip{color:var(--hl-ip)}
.doc-code-wrap .doc-hl-port{color:var(--hl-port)}
.doc-code-wrap .doc-hl-unit{color:var(--hl-unit)}
.doc-code-wrap .doc-hl-pid{color:var(--hl-pid);opacity:.92}
.doc-code-wrap .doc-hl-user{color:var(--hl-user)}
.doc-code-wrap .doc-hl-ok{color:var(--hl-ok);font-weight:600}
.doc-code-wrap .doc-hl-warn{color:var(--hl-warn);font-weight:600}
.doc-code-wrap .doc-hl-err{color:var(--hl-err);font-weight:600}
.doc-code-wrap .doc-hl-dim{color:var(--hl-dim)}

.doc-md blockquote{margin:.75rem 0;padding:.35rem .75rem;border-left:3px solid var(--line);background:var(--doc-surface);color:var(--muted);overflow-wrap:break-word}
.doc-md img{max-width:100%;height:auto}
.doc-md table{border-collapse:collapse;width:100%;max-width:100%;display:block;overflow-x:auto}
.doc-md th,.doc-md td{border:1px solid var(--line);padding:.35rem .5rem;word-break:break-word}
.doc-md p,.doc-md li,.doc-md ul,.doc-md ol{overflow-wrap:break-word}
