blob: aa94f2d5e0f5050ff01ba21bd031068b4d51e903 [file]
.site-wrapper {
display: flex;
flex-direction: column;
min-height: 100vh;
}
// ── Header ─────────────────────────────────────────────
.site-header {
position: fixed;
top: 0; left: 0; right: 0;
height: $header-height;
background: $solr-dark;
z-index: 1000;
box-shadow: 0 2px 8px rgba(0,0,0,0.35);
.header-inner {
display: flex;
align-items: center;
height: 100%;
padding: 0 $sp4;
gap: $sp3;
}
}
.site-logo {
display: flex;
align-items: center;
gap: $sp3;
text-decoration: none;
flex-shrink: 0;
img { height: 32px; width: auto; }
.site-name {
color: rgba(255,255,255,0.55);
font-size: 0.8125rem;
font-weight: 400;
letter-spacing: 0.03em;
border-left: 1px solid rgba(255,255,255,0.2);
padding-left: $sp3;
white-space: nowrap;
}
&:hover { text-decoration: none; .site-name { color: rgba(255,255,255,0.85); } }
}
.header-spacer { flex: 1; }
.header-links {
display: flex;
align-items: center;
gap: $sp2;
}
.header-link {
color: rgba(255,255,255,0.7);
font-size: 0.8125rem;
font-weight: 500;
padding: 5px $sp3;
border-radius: 4px;
border: 1px solid rgba(255,255,255,0.2);
white-space: nowrap;
transition: all 0.15s;
&:hover {
color: #fff;
border-color: rgba(255,255,255,0.5);
background: rgba(255,255,255,0.1);
text-decoration: none;
}
}
.mobile-menu-btn {
display: none;
background: none;
border: 1px solid rgba(255,255,255,0.3);
color: #fff;
padding: 5px 9px;
border-radius: 4px;
cursor: pointer;
font-size: 1.05rem;
line-height: 1;
&:hover { background: rgba(255,255,255,0.1); }
}
// ── Page body ──────────────────────────────────────────
.page-body {
display: flex;
flex: 1;
padding-top: $header-height;
}
// ── Sidebar ────────────────────────────────────────────
.sidebar {
position: fixed;
top: $header-height; left: 0; bottom: 0;
width: $sidebar-width;
background: $sidebar-bg;
border-right: 1px solid $sidebar-border;
overflow-y: auto;
overflow-x: hidden;
z-index: 100;
&::-webkit-scrollbar { width: 4px; }
&::-webkit-scrollbar-track { background: transparent; }
&::-webkit-scrollbar-thumb { background: $border-color; border-radius: 2px; }
}
.sidebar-inner { padding: $sp4 0 $sp6; }
.sidebar-overlay {
display: none;
position: fixed;
inset: 0;
background: rgba(0,0,0,0.4);
z-index: 99;
}
// ── Main content ───────────────────────────────────────
.content {
margin-left: $sidebar-width;
flex: 1;
min-width: 0;
}
.content-inner {
max-width: $content-max-width;
padding: $sp6;
}
// ── Footer ─────────────────────────────────────────────
.site-footer {
background: $solr-dark;
color: rgba(255,255,255,0.6);
padding: $sp5 $sp6;
font-size: 0.875rem;
line-height: 1.7;
margin-left: $sidebar-width;
a { color: rgba(255,255,255,0.75); &:hover { color: #fff; } }
p { margin-bottom: $sp2; &:last-child { margin-bottom: 0; } }
}
// ── Back to top ────────────────────────────────────────
.back-to-top {
position: fixed;
bottom: $sp4; right: $sp4;
background: $solr-orange;
color: #fff;
border: none;
border-radius: 50%;
width: 40px; height: 40px;
cursor: pointer;
display: none;
align-items: center;
justify-content: center;
font-size: 1.1rem;
box-shadow: 0 2px 8px rgba(0,0,0,0.25);
z-index: 500;
transition: background 0.15s;
&:hover { background: $solr-orange-dark; }
&.visible { display: flex; }
}