/* 路灯技术阅读版：系统字体、内容层级、响应式与代码阅读。 */
:root{--tech-bg:#fafbf9;--tech-ink:#202923;--tech-muted:#5d6862;--tech-line:#dce3dd;--tech-accent:#236447;--tech-card:#f0f4ef;--tech-font:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif;--tech-mono:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace}
html.dark{--tech-bg:#151c19;--tech-ink:#e4ece7;--tech-muted:#a5b4ab;--tech-line:#354139;--tech-accent:#9cd7af;--tech-card:#1d2821}
html,body.tech-site{background:var(--tech-bg)!important;color:var(--tech-ink)!important;font-family:var(--tech-font)!important}
.tech-site :is(.font-title,.font-navbar,.font-serif,.font-sans,.heti,.post-title){font-family:var(--tech-font)!important}
html.font-choice-serif .tech-site :is(#post-content,.tech-excerpt){font-family:"STFangsong","FangSong",serif!important}
.tech-site{font-size:16px;line-height:1.75;-webkit-font-smoothing:antialiased}
.tech-site .content-wrapper{display:grid;grid-template-columns:auto 1fr;column-gap:48px;max-width:1120px!important;width:calc(100% - 96px)!important;margin:0 auto!important;padding:0!important;min-height:100vh}
.tech-site .sidebar-column{position:static!important;width:auto!important;transform:none!important}
.tech-site header.sidebar-column{margin:0!important;padding:28px 0 24px;align-self:center}
.tech-site header :is(h1,h2){margin:0!important;width:auto!important;font-size:27px!important;line-height:1.3;font-weight:750;letter-spacing:-.04em}
.tech-site header h2+div,.tech-site header h1+h2{display:none}
.tech-site nav.sidebar-column{display:block!important;margin:0!important;padding:28px 0 24px;align-self:center;justify-self:end;font-size:14px!important;letter-spacing:0!important;line-height:1.5}
.tech-site nav.sidebar-column ul{display:flex;gap:28px;align-items:center;flex-wrap:wrap}
.tech-site nav.sidebar-column a{display:inline-block;padding:8px 0;color:var(--tech-muted)}
.tech-site main{grid-column:1/-1;min-width:0;border-top:1px solid var(--tech-line);padding-top:0;margin-bottom:0!important}
.tech-site a{transition:color .15s ease}.tech-site a:hover{color:var(--tech-accent)}
.tech-site :is(a,button,input):focus-visible{outline:3px solid var(--tech-accent);outline-offset:5px;border-radius:3px}
.tech-skip{position:fixed;left:16px;top:-90px;z-index:9999;padding:12px 20px;background:var(--tech-bg);border:2px solid var(--tech-accent)}.tech-skip:focus{top:12px}
.tech-intro{padding:58px 0 44px;max-width:820px}.tech-eyebrow{font:11px/1.5 var(--tech-mono);letter-spacing:.13em;color:var(--tech-accent);margin:0 0 18px}
.tech-intro h2{font-size:clamp(28px,3.5vw,43px);font-weight:750;line-height:1.35;letter-spacing:-.045em;margin:0 0 20px}
.tech-lead{font-size:17px;line-height:1.95;color:var(--tech-muted);margin:0}.tech-intro-links{display:flex;gap:28px;margin-top:24px;font-size:14px;font-weight:600}.tech-intro-links a:first-child{color:var(--tech-accent)}
.tech-section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin:0 0 18px}.tech-section-heading h2{font-size:18px;line-height:1.5;font-weight:700;margin:0}.tech-section-heading :is(span,a){font-size:12px;color:var(--tech-muted)}
.tech-paths{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--tech-line);border-radius:8px;overflow:hidden;background:var(--tech-card)}
.tech-paths>a{padding:23px;display:flex;flex-direction:column;gap:12px;min-width:0}.tech-paths>a+a{border-left:1px solid var(--tech-line)}.tech-paths>a:hover{background:var(--tech-bg)}
.tech-path-number{font:11px/1.5 var(--tech-mono);letter-spacing:.08em;color:var(--tech-accent)}.tech-paths h3{font-size:17px;font-weight:650;line-height:1.5;margin:0}.tech-paths p{font-size:13px;line-height:1.85;margin:0;color:var(--tech-muted)}.tech-path-action{font-size:12px;color:var(--tech-accent);margin-top:auto;padding-top:3px}
.tech-articles-heading{margin-top:44px;padding-bottom:16px;border-bottom:1px solid var(--tech-line);margin-bottom:0}.tech-post-list{padding:0!important;list-style:none;margin:0!important}.tech-post-list>li{position:relative;padding:26px 130px 25px 0;border-bottom:1px solid var(--tech-line);margin:0!important}
.tech-post-list h2{display:block!important;font-size:19px!important;font-weight:650;line-height:1.6;letter-spacing:0;margin:0}.tech-post-list h2 a{font:inherit!important;letter-spacing:0!important}
.tech-post-list [data-post-date="desktop"]{position:absolute;right:0;top:31px;display:block!important;margin:0!important;font:12px/1.6 var(--tech-mono)!important;color:var(--tech-muted)}.tech-post-list [data-post-date="mobile"]{display:none!important}
.tech-excerpt{display:block!important;margin:9px 0 0!important;color:var(--tech-muted);font-size:14px;line-height:1.85;letter-spacing:0!important}.tech-excerpt p{margin:0!important;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.tech-post-list .uno-decorative-line,.tech-site main>.uno-decorative-line{display:none}.tech-site main>nav{margin:24px 0!important;font-size:14px}
.tech-about{display:grid;grid-template-columns:1fr 2fr;gap:40px;border-top:1px solid var(--tech-line);margin-top:48px;padding:36px 0 42px;scroll-margin-top:24px}.tech-about h2{font-size:23px;font-weight:700;margin:0}.tech-about p:not(.tech-eyebrow){margin:0 0 16px;color:var(--tech-muted);font-size:14px;line-height:1.9}.tech-about a{font-size:13px;color:var(--tech-accent)}
.tech-site footer.sidebar-column{grid-column:1/-1;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;border-top:1px solid var(--tech-line);padding:22px 0 84px;font-size:12px!important;color:var(--tech-muted);line-height:1.8}
.tech-site .layout-flip-buttons{position:fixed!important;left:auto!important;right:24px!important;top:auto!important;bottom:24px!important;transform:none!important;width:auto!important;gap:4px!important;z-index:40;border:1px solid var(--tech-line);border-radius:10px;padding:5px;background:var(--tech-bg);box-shadow:0 4px 18px #00000008}.tech-site .layout-flip-buttons button{width:36px!important;height:36px!important;display:flex;align-items:center;justify-content:center;color:var(--tech-muted)}.tech-site .layout-flip-buttons svg{width:17px;height:17px}.tech-site .font-switch-label{font-size:15px}
.tech-site main>article{max-width:780px;margin:48px auto 64px;min-width:0}.tech-site .post-title{font-size:clamp(27px,3vw,36px);font-weight:750;line-height:1.5;letter-spacing:-.025em;margin:0 0 16px}.tech-site #post-date{font:13px/1.6 var(--tech-mono)!important;color:var(--tech-muted);margin-bottom:28px}
.tech-site #post-content{font-size:17px;line-height:1.95;overflow-wrap:anywhere;letter-spacing:0}.tech-site #post-content :is(h1,h2,h3,h4){font-family:var(--tech-font)!important;line-height:1.5;scroll-margin-top:28px;letter-spacing:0;font-weight:700}.tech-site #post-content h2{font-size:25px;margin:2em 0 .8em}.tech-site #post-content h3{font-size:20px;margin:1.7em 0 .7em}.tech-site #post-content p{margin:1em 0}.tech-site #post-content a{color:var(--tech-accent);text-decoration:underline;text-underline-offset:4px}
.tech-site :is(code,pre,kbd,samp){font-family:var(--tech-mono)!important;letter-spacing:0}.tech-site #post-content pre{max-width:100%;overflow-x:auto;padding:20px;line-height:1.7;font-size:14px;border:1px solid var(--tech-line);border-radius:7px;tab-size:4;white-space:pre;overflow-wrap:normal}.tech-site #post-content :not(pre)>code{font-size:.88em;background:var(--tech-card);padding:.15em .35em;border-radius:3px}.tech-site #post-content table{display:block;max-width:100%;overflow-x:auto;font-size:14px;line-height:1.75}.tech-site #post-content :is(th,td){padding:12px 16px;border:1px solid var(--tech-line)}.tech-site #post-content th{background:var(--tech-card)}.tech-site #post-content blockquote{border-left:3px solid var(--tech-accent);padding:8px 20px;background:var(--tech-card);color:var(--tech-muted)}.tech-site #post-content img{max-width:100%;height:auto}
.tech-site #toc-container{position:static!important;max-width:none!important;width:auto!important;border:1px solid var(--tech-line)!important;background:var(--tech-card)!important;margin-bottom:32px;border-radius:7px;font-size:14px}.tech-site #toc-container .relative{position:relative!important;height:48px!important}.tech-site #toc-container label{position:absolute!important;inset:0;display:flex;align-items:center;padding:0 18px;pointer-events:auto!important}.tech-site #toc-mobile-text{display:block!important}.tech-site #toc-desktop-icon{display:none!important}.tech-site #toc-links-list{padding:0 20px 16px;max-height:340px;overflow:auto}.tech-site #back-button{display:none!important}
@media(min-width:1440px){.tech-site main>article{margin-left:40px;margin-right:300px}.tech-site #toc-container{position:fixed!important;left:calc(50% + 340px)!important;right:auto!important;top:150px!important;width:210px!important;max-height:65vh;overflow:auto;font-size:12px}.tech-site #toc-container #toc-links-list{max-height:calc(65vh - 64px)}}
@media(max-width:760px){.tech-site .content-wrapper{width:calc(100% - 40px)!important;column-gap:20px}.tech-site header.sidebar-column{padding:22px 0}.tech-site header :is(h1,h2){font-size:24px!important}.tech-site nav.sidebar-column{padding:20px 0;font-size:13px!important}.tech-site nav.sidebar-column ul{gap:18px}.tech-intro{padding:34px 0}.tech-lead{font-size:15px}.desktop-break{display:none}.tech-paths{grid-template-columns:1fr}.tech-paths>a{padding:19px 20px;gap:8px}.tech-paths>a+a{border-left:0;border-top:1px solid var(--tech-line)}.tech-paths h3{font-size:17px}.tech-section-heading span{font-size:11px}.tech-articles-heading{margin-top:32px}.tech-post-list>li{padding:20px 0}.tech-post-list h2{font-size:18px!important}.tech-post-list [data-post-date="desktop"]{position:static;margin-top:8px!important;font-size:11px!important}.tech-excerpt{font-size:13px}.tech-about{grid-template-columns:1fr;gap:16px;margin-top:32px;padding:28px 0}.tech-about .tech-eyebrow{margin-bottom:8px}.tech-site main>article{margin:30px 0 40px}.tech-site #post-content{font-size:16px;line-height:1.9}.tech-site #post-content h2{font-size:23px}.tech-site #post-content pre{padding:14px;font-size:13px}.tech-site .layout-flip-buttons{right:12px!important;bottom:12px!important}.tech-site footer.sidebar-column{display:block}.tech-site #post-content :is(th,td){padding:10px 12px}}
@media(prefers-reduced-motion:reduce){.tech-site *{scroll-behavior:auto!important;transition:none!important}}
/* Keep outline readable and keyboard-operable. */
.tech-site #toc-container:has(.toc-toggle-input:focus-visible){outline:2px solid var(--tech-accent);outline-offset:3px}
.tech-site #toc-mobile-text:after{content:' ＋';color:var(--tech-muted)}
.tech-site #toc-toggle:checked~div #toc-mobile-text:after{content:' −'}
@media(min-width:1440px){.tech-site #toc-accordion-wrapper{grid-template-rows:1fr!important}.tech-site #toc-container label{pointer-events:none!important}.tech-site #toc-mobile-text:after,.tech-site #toc-toggle:checked~div #toc-mobile-text:after{content:''}.tech-site #toc-accordion-content{max-height:55vh;overflow:auto;padding:0 8px}.tech-site #toc-links-list a{white-space:normal;overflow:visible;display:block;line-height:1.6}}

/* Keep reading controls clear of the existing lower-right knowledge assistant. */
.tech-site .layout-flip-buttons{left:24px!important;right:auto!important}
@media(max-width:760px){.tech-site .layout-flip-buttons{left:12px!important;right:auto!important}}
