/*
 * project-page.css
 * Shared stylesheet for CANS Lab project pages (sub-repo README renderers).
 * Hosted at: https://canslab1.github.io/css/project-page.css
 */

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
body{font-family:system-ui,-apple-system,'PingFang TC','Microsoft JhengHei','Noto Sans TC','Helvetica Neue',Arial,sans-serif;line-height:1.6;color:#333;background:#f8f9fa;display:flex;flex-direction:column;height:100vh;overflow:hidden}
.site-header{background:linear-gradient(135deg,rgba(20,83,45,.90) 0%,rgba(26,119,69,.90) 100%);color:#fff;padding:.8rem 0;box-shadow:0 2px 8px rgba(0,0,0,.15);flex-shrink:0;z-index:100}
.header-inner{max-width:960px;margin:0 auto;padding:0 20px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem}
.header-brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:#fff}
.header-brand:hover{opacity:.9}
.header-brand img{height:36px;width:36px;border-radius:50%}
.header-brand span{font-size:1.1rem;font-weight:500;letter-spacing:.02em}
.header-nav{display:flex;align-items:center;gap:.8rem}
.header-nav a{color:hsla(0,0%,100%,.85);text-decoration:none;font-size:.9rem;padding:.3rem .7rem;border-radius:6px;transition:background .2s,color .2s}
.header-nav a:hover{background:hsla(0,0%,100%,.15);color:#fff}
.content-wrapper{flex:1;max-width:960px;width:100%;margin:0 auto;padding:2rem 20px;overflow-y:auto;min-height:0}
.markdown-body{background:#fff;border-radius:10px;padding:2rem 2.5rem;box-shadow:0 4px 6px rgba(0,0,0,.1);overflow-x:auto}
.loading{text-align:center;padding:3rem;color:#767676;font-size:1.1rem}
.loading::before{content:'';display:block;width:36px;height:36px;margin:0 auto 1rem;border:3px solid #e0e0e0;border-top-color:#27ae60;border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.error{text-align:center;padding:3rem;color:#c0392b}
.markdown-body h1{font-size:2rem;font-weight:600;color:#2c3e50;border-bottom:3px solid #27ae60;padding-bottom:.4rem;margin:0 0 1rem}
.markdown-body h2{font-size:1.5rem;font-weight:600;color:#2c3e50;border-bottom:2px solid #27ae60;padding-bottom:.3rem;margin:2rem 0 1rem}
.markdown-body h3{font-size:1.25rem;font-weight:600;color:#2c3e50;border-left:4px solid #27ae60;padding-left:.8rem;margin:1.5rem 0 .75rem}
.markdown-body h4,.markdown-body h5,.markdown-body h6{font-weight:600;color:#2c3e50;margin:1.2rem 0 .5rem}
.markdown-body h4{font-size:1.1rem}
.markdown-body h5{font-size:1rem}
.markdown-body h6{font-size:.9rem;color:#555}
.markdown-body p{margin:.8rem 0;line-height:1.7}
.markdown-body a{color:#1a73e8;text-decoration:none}
.markdown-body a:hover{text-decoration:underline}
.markdown-body strong{font-weight:600}
.markdown-body ul,.markdown-body ol{padding-left:2rem;margin:.5rem 0}
.markdown-body li{margin:.3rem 0;line-height:1.7}
.markdown-body li::marker{color:#27ae60}
.markdown-body table{border-collapse:collapse;width:100%;margin:1rem 0;font-size:.92rem;overflow-x:auto;display:block}
.markdown-body thead th{background:#f0faf4;color:#2c3e50;font-weight:600;border:1px solid #d0e8d8;padding:.6rem .8rem;text-align:left;white-space:nowrap}
.markdown-body tbody td{border:1px solid #e0e0e0;padding:.5rem .8rem}
.markdown-body tbody tr:nth-child(even){background:#f9f9f9}
.markdown-body tbody tr:hover{background:#f0faf4}
.markdown-body code{font-family:'SF Mono','Fira Code',Consolas,Monaco,monospace;font-size:.88em;background:#f0f0f0;padding:.15em .4em;border-radius:4px}
.markdown-body pre{margin:1rem 0;border-radius:8px;overflow-x:auto}
.markdown-body pre code{display:block;padding:1rem 1.2rem;background:none;font-size:.88em;line-height:1.5}
.markdown-body blockquote{border-left:4px solid #27ae60;margin:1rem 0;padding:.5rem 1rem;color:#555;background:#f9f9f9;border-radius:0 8px 8px 0}
.markdown-body blockquote p{margin:.3rem 0}
.markdown-body hr{border:none;border-top:2px solid #e0e0e0;margin:2rem 0}
.markdown-body img{max-width:100%;height:auto;border-radius:8px}
.markdown-body img[src*="shields.io"],.markdown-body img[src*="img.shields.io"]{border-radius:0;display:inline;vertical-align:middle}
.site-footer{background:linear-gradient(135deg,rgba(20,83,45,.90) 0%,rgba(26,119,69,.90) 100%);color:hsla(0,0%,100%,.85);padding:.6rem 0;text-align:center;font-size:.82rem;flex-shrink:0;box-shadow:0 -2px 8px rgba(0,0,0,.10)}
.site-footer a{color:#fff;text-decoration:none}
.site-footer a:hover{text-decoration:underline;color:#fff}
.site-footer p{margin:.2rem 0}
.footer-nav{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.2rem .1rem;max-width:960px;margin:0 auto .3rem;padding:0 20px}
.footer-nav a{padding:.2rem .5rem;border-radius:4px;transition:background .2s;font-size:.82rem}
.footer-nav a:hover{background:hsla(0,0%,100%,.15)}
.footer-nav .current{font-weight:700;color:#fff;padding:.2rem .5rem;border-bottom:2px solid #fff}
.footer-sep{color:hsla(0,0%,100%,.4);font-size:.7rem}
.skip-link{position:absolute;top:-40px;left:0;background:#14532d;color:#fff;padding:8px 16px;z-index:10000;font-size:14px;text-decoration:none;transition:top .2s}
.skip-link:focus{top:0}
a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:2px solid #14532d;outline-offset:2px}
.header-nav a:focus-visible{background:hsla(0,0%,100%,.25);color:#fff}
.site-footer a:focus-visible{outline-color:#fff;background:hsla(0,0%,100%,.25)}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media(forced-colors:active){a:focus-visible,button:focus-visible{outline:2px solid}}
@media(max-width:768px){.header-inner{justify-content:center;text-align:center}.markdown-body{padding:1.2rem 1rem;border-radius:0}.content-wrapper{padding:1rem 0;margin:0 auto}.markdown-body h1{font-size:1.5rem}.markdown-body h2{font-size:1.3rem}.markdown-body h3{font-size:1.1rem}.markdown-body table{font-size:.82rem}.markdown-body pre code{font-size:.82em}.footer-nav{gap:.1rem 0}.footer-nav a,.footer-nav .current{font-size:.75rem;padding:.15rem .35rem}.footer-sep{font-size:.6rem}}
