미디어위키:Test.css: 두 판 사이의 차이

편집 요약 없음
편집 요약 없음
157번째 줄: 157번째 줄:
2. Notice rail
2. Notice rail
Important notices above logo.
Important notices above logo.
Readable priority through size and contrast, not strong color.
Readable priority through size and contrast.
Top alert can use WIP construction rail.
----------------------------------------- */
----------------------------------------- */


197번째 줄: 198번째 줄:
}
}


.stylelab .notice-line.is-maintenance,
.stylelab .notice-line.is-alert {
.stylelab .notice-line.is-test {
padding-left:18px;
background:#141414;
background:#141414;
}
}


.stylelab .notice-line.is-maintenance:hover,
.stylelab .notice-line.is-alert::before {
.stylelab .notice-line.is-test:hover {
content:"";
position:absolute;
left:7px;
top:6px;
bottom:6px;
width:4px;
pointer-events:none;
background:
repeating-linear-gradient(
45deg,
var(--wip-yellow) 0 4px,
var(--wip-yellow) 4px 5px,
var(--wip-black) 5px 9px,
var(--wip-black) 9px 10px
);
opacity:0.96;
}
 
.stylelab .notice-line.is-alert:hover {
background:#1c1c1c;
background:#1c1c1c;
}
}


.stylelab .notice-line::before {
.stylelab .notice-line.is-notice {
content:none;
background:#141414;
}
 
.stylelab .notice-line.is-notice:hover {
background:#1c1c1c;
}
}


226번째 줄: 249번째 줄:
}
}


.stylelab .notice-line.is-maintenance .notice-badge,
.stylelab .notice-line.is-alert .notice-badge,
.stylelab .notice-line.is-test .notice-badge {
.stylelab .notice-line.is-notice .notice-badge {
border-color:#505050;
border-color:#505050;
background:#101010;
background:#101010;
275번째 줄: 298번째 줄:
background:#181818;
background:#181818;
color:#ffffff;
color:#ffffff;
}
.stylelab .notice-line.is-alert .notice-badge,
.stylelab .notice-line.is-alert .notice-date,
.stylelab .notice-line.is-alert .notice-text,
.stylelab .notice-line.is-alert .notice-action {
text-shadow:
-1px 0 0 #000,
1px 0 0 #000,
0 -1px 0 #000,
0 1px 0 #000,
1px 1px 0 #000;
}
}



2026년 5월 18일 (월) 14:16 판

/* =========================================
COASTLINE: BLACK ICE
MediaWiki:Test.css
Sandbox-only style test
Logo-first home layout + image feed drift crossfade + top guestbook + notice rail
========================================= */

/*
Scope:
- This file is globally imported.
- Every visual rule is scoped to .stylelab.
- No body, top-nav, sidebar, page shell, or global layout selectors.
*/

/* -----------------------------------------
0. Style tokens
----------------------------------------- */

.stylelab {
--surface-page:#070707;
--surface-frame:#101010;
--surface-frame-soft:#141414;
--surface-title:#1d1d1d;
--surface-title-hover:#252525;
--surface-well:#080808;
--surface-screen:#060606;
--surface-row:#121212;
--surface-row-alt:#151515;
--surface-inset:#070707;

--edge-top:#555555;
--edge-side:#2b2b2b;
--edge-bottom:#050505;
--edge-soft:#202020;
--edge-mid:#333333;
--edge-weak:#181818;

--text-main:#e2e2e2;
--text-soft:#c8c8c8;
--text-dim:#8a8a8a;
--text-faint:#626262;

--signal-blue:#6f8fa8;
--signal-teal:#5a9b92;
--signal-green:#78966c;
--signal-amber:#c4a04a;
--signal-red:#a85c50;
--signal-gray:#9a9a9a;

--wip-yellow:#f2c300;
--wip-black:#050505;

--space-block:8px;
--space-inner:6px;
--space-tight:4px;
--pad-panel:8px;

--title-h:24px;
--screen-title-h:22px;
--nav-h:30px;
--ticker-h:22px;
--row-h:23px;
--gauge-h:48px;

width:100%;
margin:0 auto;
padding:var(--space-block);
color:var(--text-main);
background:var(--surface-page);
font-size:11px;
line-height:1.5;
box-sizing:border-box;
}

.stylelab *,
.stylelab *::before,
.stylelab *::after {
box-sizing:border-box;
}

.stylelab a {
color:var(--text-main) !important;
text-decoration:none !important;
}

.stylelab a:hover {
color:#ffffff !important;
text-decoration:underline !important;
}

/* -----------------------------------------
1. Frame system
North-light rule:
top bright / sides neutral / bottom dark
----------------------------------------- */

.stylelab .frame,
.stylelab .notice-rail,
.stylelab .lab-logo,
.stylelab .directory,
.stylelab .console,
.stylelab .panel,
.stylelab .instrument-panel,
.stylelab .ticker {
border:1px solid;
border-color:
var(--edge-top)
var(--edge-side)
var(--edge-bottom)
var(--edge-side);
background:var(--surface-frame);
border-radius:0;
box-shadow:none;
outline:none;
overflow:hidden;
}

.stylelab .titlebar {
position:relative;
height:var(--title-h);
min-height:var(--title-h);
padding:0 var(--pad-panel);
display:flex;
align-items:center;
justify-content:space-between;
gap:var(--space-block);
background:var(--surface-title);
border-bottom:1px solid var(--edge-bottom);
color:#f0f0f0;
font-size:10px;
font-weight:700;
line-height:1;
white-space:nowrap;
overflow:hidden;
text-shadow:1px 1px 0 #000;
}

.stylelab .titlebar > span {
display:block;
min-width:0;
overflow:hidden;
text-overflow:ellipsis;
}

.stylelab .titlebar > span:first-child {
flex:1 1 auto;
}

.stylelab .titlebar > span:last-child {
flex:0 0 auto;
color:#a8a8a8;
font-weight:700;
text-align:right;
}

/* -----------------------------------------
2. Notice rail
Important notices above logo.
Readable priority through size and contrast.
Top alert can use WIP construction rail.
----------------------------------------- */

.stylelab .notice-rail {
width:100%;
margin:0 0 var(--space-block);
background:#101010;
border:1px solid;
border-color:
#606060
var(--edge-side)
var(--edge-bottom)
var(--edge-side);
box-shadow:none;
}

.stylelab .notice-line {
position:relative;
display:grid;
grid-template-columns:72px 96px minmax(0,1fr) 48px;
align-items:center;
gap:7px;
min-height:30px;
padding:0 8px;
border-bottom:1px solid #050505;
background:#141414;
font-size:12px;
line-height:1.25;
color:#dcdcdc;
}

.stylelab .notice-line:last-child {
border-bottom:none;
}

.stylelab .notice-line:hover {
background:#1c1c1c;
color:#ffffff;
}

.stylelab .notice-line.is-alert {
padding-left:18px;
background:#141414;
}

.stylelab .notice-line.is-alert::before {
content:"";
position:absolute;
left:7px;
top:6px;
bottom:6px;
width:4px;
pointer-events:none;
background:
repeating-linear-gradient(
45deg,
var(--wip-yellow) 0 4px,
var(--wip-yellow) 4px 5px,
var(--wip-black) 5px 9px,
var(--wip-black) 9px 10px
);
opacity:0.96;
}

.stylelab .notice-line.is-alert:hover {
background:#1c1c1c;
}

.stylelab .notice-line.is-notice {
background:#141414;
}

.stylelab .notice-line.is-notice:hover {
background:#1c1c1c;
}

.stylelab .notice-badge {
display:inline-flex;
align-items:center;
justify-content:center;
height:20px;
padding:0 7px;
border:1px solid #444444;
background:#0b0b0b;
color:#d8d8d8;
font-size:10px;
font-weight:700;
line-height:1;
text-shadow:1px 1px 0 #000;
}

.stylelab .notice-line.is-alert .notice-badge,
.stylelab .notice-line.is-notice .notice-badge {
border-color:#505050;
background:#101010;
color:#eeeeee;
}

.stylelab .notice-date {
color:#9d9d9d;
white-space:nowrap;
font-size:10px;
font-family:Consolas, Monaco, monospace !important;
}

.stylelab .notice-text {
min-width:0;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
color:#e0e0e0;
font-size:12px;
font-weight:700;
}

.stylelab .notice-line:hover .notice-text {
color:#ffffff;
}

.stylelab .notice-action {
justify-self:end;
display:inline-flex;
align-items:center;
justify-content:center;
height:20px;
min-width:38px;
padding:0 5px;
border:1px solid #3a3a3a;
background:#0b0b0b;
color:#c8c8c8;
font-size:10px;
font-weight:700;
white-space:nowrap;
line-height:1;
}

.stylelab .notice-line:hover .notice-action {
border-color:#606060;
background:#181818;
color:#ffffff;
}

.stylelab .notice-line.is-alert .notice-badge,
.stylelab .notice-line.is-alert .notice-date,
.stylelab .notice-line.is-alert .notice-text,
.stylelab .notice-line.is-alert .notice-action {
text-shadow:
-1px 0 0 #000,
1px 0 0 #000,
0 -1px 0 #000,
0 1px 0 #000,
1px 1px 0 #000;
}

/* -----------------------------------------
3. Top logo
Site signboard. Placed before directory and content.
----------------------------------------- */

.stylelab .lab-logo {
width:100%;
height:auto;
margin:0 0 var(--space-block);
padding:10px 0 8px;
text-align:center;
line-height:0;
background:#0b0b0b;
}

.stylelab .lab-logo a,
.stylelab .lab-logo .mw-file-description {
display:inline-block;
line-height:0;
}

.stylelab .lab-logo img,
.stylelab .lab-logo .mw-file-element {
width:760px;
max-width:90%;
height:auto;
filter:
grayscale(1)
contrast(1.04)
brightness(1.02);
}

/* -----------------------------------------
4. Directory strip
Test component only. In actual main page, this can map to the real top navigation.
----------------------------------------- */

.stylelab .directory {
width:100%;
height:var(--nav-h);
margin:0 0 var(--space-block) !important;
border-collapse:collapse !important;
table-layout:fixed !important;
}

.stylelab .directory tbody,
.stylelab .directory tr {
width:100%;
height:var(--nav-h);
}

.stylelab .directory td {
height:var(--nav-h);
margin:0 !important;
padding:0 !important;
border:none !important;
border-right:1px solid var(--edge-bottom) !important;
background:var(--surface-frame-soft) !important;
vertical-align:middle !important;
text-align:center !important;
}

.stylelab .directory td:last-child {
border-right:none !important;
}

.stylelab .directory a {
display:flex !important;
align-items:center !important;
justify-content:center !important;
width:100% !important;
height:var(--nav-h) !important;
min-height:var(--nav-h) !important;
padding:0 6px !important;
color:var(--text-main) !important;
font-size:10px !important;
font-weight:700 !important;
line-height:1.2 !important;
text-align:center !important;
text-shadow:1px 1px 0 #000 !important;
}

.stylelab .directory td:hover,
.stylelab .directory td:hover a {
background:var(--surface-title-hover) !important;
color:#ffffff !important;
text-decoration:none !important;
}

/* -----------------------------------------
5. Main console
Type: SCREEN DEVICE
frame > titlebar > body > screen panels
----------------------------------------- */

.stylelab .console {
width:100%;
margin:0 0 var(--space-block);
padding:0;
}

.stylelab .console-body {
padding:var(--space-inner);
background:var(--surface-frame);
}

.stylelab .console-grid {
display:grid;
grid-template-columns:minmax(0,1fr) 260px;
gap:var(--space-inner);
align-items:stretch;
}

.stylelab .main-screen,
.stylelab .side-screen {
position:relative;
min-width:0;
height:100%;
overflow:hidden;
border:1px solid var(--edge-soft);
background:var(--surface-screen);
box-shadow:
inset 0 0 0 1px rgba(255,255,255,0.018),
inset 0 0 18px rgba(0,0,0,0.70);
}

.stylelab .main-screen::before,
.stylelab .side-screen::before {
content:"";
position:absolute;
inset:0;
z-index:6;
pointer-events:none;
background:
radial-gradient(
ellipse at 50% 42%,
rgba(255,255,255,0.030) 0%,
transparent 42%
),
linear-gradient(
to bottom,
rgba(255,255,255,0.030) 0%,
transparent 24%,
rgba(0,0,0,0.16) 100%
);
}

.stylelab .main-screen::after,
.stylelab .side-screen::after {
content:"";
position:absolute;
inset:-40px 0;
z-index:7;
pointer-events:none;
opacity:0.13;
background:
repeating-linear-gradient(
to bottom,
rgba(255,255,255,0.080) 0px,
rgba(255,255,255,0.080) 1px,
transparent 2px,
transparent 5px
);
mix-blend-mode:screen;
}

.stylelab .main-screen > *,
.stylelab .side-screen > * {
position:relative;
z-index:3;
}

.stylelab .main-screen {
min-height:392px;
padding:var(--pad-panel);
display:flex;
flex-direction:column;
justify-content:flex-start;
}

.stylelab .side-screen {
padding:var(--pad-panel);
display:flex;
flex-direction:column;
}

/* -----------------------------------------
6. Image feed crossfade + alternating drift
Current image fades down, next layer becomes visible.
Image drift alternates: left-down / right-down.
----------------------------------------- */

.stylelab .image-feed {
position:relative;
width:100%;
height:240px;
min-height:240px;
overflow:hidden;
border:1px solid var(--edge-soft);
background:#030303;
isolation:isolate;
}

.stylelab .feed-layer {
position:absolute;
inset:-12px;
z-index:1;
opacity:0;
background-size:cover;
background-position:center center;
background-repeat:no-repeat;
filter:
brightness(0.78)
contrast(1.12)
saturate(0.78)
grayscale(0.16);
transform:translate(0,0) scale(1.06);
transform-origin:center center;
will-change:opacity, transform;
animation-duration:24s;
animation-timing-function:linear;
animation-iteration-count:infinite;
}

.stylelab .feed-bg-001 {
background-image:url('/index.php?title=특수:Redirect/file/Bg-Feed-001.png');
}

.stylelab .feed-bg-002 {
background-image:url('/index.php?title=특수:Redirect/file/Bg-Feed-002.png');
}

.stylelab .feed-bg-003 {
background-image:url('/index.php?title=특수:Redirect/file/Bg-Feed-003.png');
}

.stylelab .feed-bg-004 {
background-image:url('/index.php?title=특수:Redirect/file/Bg-Feed-004.png');
}

.stylelab .feed-layer-1 {
animation-name:image-feed-drift-left;
animation-delay:0s;
}

.stylelab .feed-layer-2 {
animation-name:image-feed-drift-right;
animation-delay:6s;
}

.stylelab .feed-layer-3 {
animation-name:image-feed-drift-left;
animation-delay:12s;
}

.stylelab .feed-layer-4 {
animation-name:image-feed-drift-right;
animation-delay:18s;
}

@keyframes image-feed-drift-left {
0% {
opacity:0;
transform:translate(0,0) scale(1.06);
}
4.166% {
opacity:1;
transform:translate(0,0) scale(1.06);
}
25% {
opacity:1;
transform:translate(-22px,14px) scale(1.075);
}
29.166% {
opacity:0;
transform:translate(-26px,16px) scale(1.078);
}
100% {
opacity:0;
transform:translate(0,0) scale(1.06);
}
}

@keyframes image-feed-drift-right {
0% {
opacity:0;
transform:translate(0,0) scale(1.06);
}
4.166% {
opacity:1;
transform:translate(0,0) scale(1.06);
}
25% {
opacity:1;
transform:translate(22px,14px) scale(1.075);
}
29.166% {
opacity:0;
transform:translate(26px,16px) scale(1.078);
}
100% {
opacity:0;
transform:translate(0,0) scale(1.06);
}
}

.stylelab .image-feed::before {
content:"";
position:absolute;
inset:0;
z-index:5;
pointer-events:none;
background:
linear-gradient(
to bottom,
rgba(0,0,0,0.18) 0%,
transparent 22%,
transparent 74%,
rgba(0,0,0,0.30) 100%
),
linear-gradient(
to right,
rgba(0,0,0,0.22) 0%,
transparent 10%,
transparent 90%,
rgba(0,0,0,0.22) 100%
);
}

.stylelab .image-feed::after {
content:"";
position:absolute;
inset:-40px 0;
z-index:6;
pointer-events:none;
opacity:0.20;
background:
repeating-linear-gradient(
to bottom,
rgba(255,255,255,0.090) 0px,
rgba(255,255,255,0.090) 1px,
transparent 2px,
transparent 5px
);
mix-blend-mode:screen;
}

.stylelab .feed-caption {
position:absolute;
left:0;
right:0;
bottom:0;
z-index:8;
height:22px;
padding:0 7px;
display:flex;
align-items:center;
justify-content:space-between;
gap:8px;
border-top:1px solid rgba(255,255,255,0.09);
background:rgba(5,5,5,0.86);
color:#cfcfcf;
font-size:10px;
line-height:22px;
text-shadow:1px 1px 0 #000;
}

.stylelab .feed-caption span:first-child {
min-width:0;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
}

.stylelab .feed-caption span:last-child {
flex:0 0 auto;
color:var(--text-dim);
}

/* -----------------------------------------
7. Statement plate below image feed
----------------------------------------- */

.stylelab .statement-plate {
margin:var(--space-inner) 0 0;
padding:13px 18px 12px;
border:1px solid var(--edge-soft);
background:#080808;
}

.stylelab .statement-plate h2 {
margin:0 0 10px !important;
padding:0 0 8px !important;
border-bottom:1px solid var(--edge-soft) !important;
color:#f4f4f4 !important;
font-size:20px !important;
line-height:1.25 !important;
text-align:center !important;
text-shadow:
1px 1px 0 #000,
0 0 4px rgba(255,255,255,0.10) !important;
}

.stylelab .statement-plate p {
max-width:820px;
margin:0 auto 9px;
color:#d8d8d8;
font-size:12px;
line-height:1.68;
text-align:center;
text-shadow:1px 1px 0 #000;
}

.stylelab .statement-plate p:last-child {
margin-bottom:0;
}

/* -----------------------------------------
8. Screen guestbook
Top-right body content module.
Dummy only. Final interactive function later.
----------------------------------------- */

.stylelab .screen-title {
height:var(--screen-title-h);
min-height:var(--screen-title-h);
margin:0 0 var(--space-inner);
padding:0 7px;
display:flex;
align-items:center;
justify-content:space-between;
gap:6px;
border:1px solid var(--edge-soft);
background:#151515;
color:#f0f0f0;
font-size:10px;
font-weight:700;
line-height:1;
text-shadow:1px 1px 0 #000;
}

.stylelab .screen-title span:last-child {
color:var(--text-dim);
font-size:9px;
}

.stylelab .guestbook-device {
flex:1 1 auto;
min-height:0;
display:flex;
flex-direction:column;
gap:var(--space-inner);
}

.stylelab .guestbook-messages {
flex:1 1 auto;
min-height:0;
border-top:1px solid var(--edge-soft);
border-bottom:1px solid var(--edge-soft);
overflow:hidden;
}

.stylelab .guestbook-message {
padding:6px 2px;
border-bottom:1px solid var(--edge-soft);
}

.stylelab .guestbook-message:last-child {
border-bottom:none;
}

.stylelab .guestbook-message:hover {
background:#111111;
}

.stylelab .guestbook-message-head {
display:flex;
align-items:center;
justify-content:space-between;
gap:6px;
margin-bottom:3px;
font-size:9px;
line-height:1.2;
}

.stylelab .guestbook-name {
color:#eeeeee;
font-weight:700;
white-space:nowrap;
}

.stylelab .guestbook-time {
color:var(--text-dim);
white-space:nowrap;
}

.stylelab .guestbook-text {
color:var(--text-soft);
font-size:10px;
line-height:1.45;
word-break:keep-all;
}

.stylelab .guestbook-form {
display:grid;
grid-template-columns:minmax(0,1fr) 48px;
gap:var(--space-tight);
}

.stylelab .guestbook-input {
height:24px;
padding:0 7px;
display:flex;
align-items:center;
border:1px solid var(--edge-soft);
background:#070707;
color:var(--text-faint);
font-size:10px;
line-height:1;
overflow:hidden;
white-space:nowrap;
text-overflow:ellipsis;
}

.stylelab .guestbook-input:hover {
background:#0c0c0c;
color:#8f8f8f;
}

.stylelab .guestbook-submit {
height:24px;
display:flex;
align-items:center;
justify-content:center;
border:1px solid var(--edge-soft);
background:#161616;
color:var(--text-soft);
font-size:9px;
font-weight:700;
line-height:1;
text-shadow:1px 1px 0 #000;
}

.stylelab .guestbook-submit:hover {
background:#222222;
color:#ffffff;
}

/* -----------------------------------------
9. Ticker
Type: RECORD STRIP
Not a screen device.
----------------------------------------- */

.stylelab .ticker {
height:var(--ticker-h);
margin:0 0 var(--space-inner);
padding:0 var(--pad-panel);
color:#bdbdbd;
background:#171717;
font-size:10px;
line-height:var(--ticker-h);
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
text-shadow:1px 1px 0 #000;
}

/* -----------------------------------------
10. Module grid
----------------------------------------- */

.stylelab .module-grid {
display:grid;
grid-template-columns:minmax(0,1fr) minmax(0,1fr) 280px;
gap:var(--space-inner);
align-items:stretch;
}

.stylelab .panel,
.stylelab .instrument-panel {
min-width:0;
height:100%;
display:flex;
flex-direction:column;
}

.stylelab .panel-body,
.stylelab .instrument-body {
flex:1 1 auto;
min-height:0;
padding:var(--pad-panel);
background:var(--surface-well);
}

/* -----------------------------------------
11. Record modules
No scanlines. No screen treatment.
----------------------------------------- */

.stylelab .record-list {
margin:0 !important;
padding:0 !important;
list-style:none !important;
}

.stylelab .record-list li {
display:grid;
grid-template-columns:minmax(0,1fr) auto;
align-items:center;
gap:var(--space-block);
height:var(--row-h);
min-height:var(--row-h);
margin:0;
padding:0 2px;
border-bottom:1px solid var(--edge-soft);
color:var(--text-soft);
line-height:1.25;
}

.stylelab .record-list li:first-child {
border-top:1px solid var(--edge-soft);
}

.stylelab .record-list li:hover {
background:#151515;
color:#ffffff;
}

.stylelab .record-list li span:first-child {
min-width:0;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
}

.stylelab .meta {
color:var(--text-dim);
white-space:nowrap;
font-size:9px;
line-height:1;
}

.stylelab .record-list li:hover .meta {
color:#c0c0c0;
}

/* -----------------------------------------
12. Status tags
Small functional color only.
No structural color use.
----------------------------------------- */

.stylelab .status-tag {
display:inline-flex;
align-items:center;
justify-content:center;
min-width:34px;
height:16px;
padding:0 4px;
border:1px solid #303030;
background:#161616;
color:var(--text-soft);
font-size:9px;
text-align:center;
line-height:1;
}

.stylelab .status-tag.is-progress {
border-color:#6d5b2c;
color:#d3bb72;
background:#19170f;
}

.stylelab .status-tag.is-review {
border-color:#36515d;
color:#8bb6c6;
background:#10171a;
}

.stylelab .status-tag.is-wait {
border-color:#484848;
color:#a4a4a4;
background:#151515;
}

.stylelab .status-tag.is-done {
border-color:#3d5c38;
color:#9fbe96;
background:#111811;
}

.stylelab .status-tag.is-alert {
border-color:#6a3933;
color:#d48679;
background:#1b1110;
}

/* -----------------------------------------
13. Team work module
Use WIP construction motif only where the making team is foregrounded.
Only motif: left vertical construction rail.
----------------------------------------- */

.stylelab .team-panel .panel-body {
position:relative;
padding-left:15px;
}

.stylelab .team-panel .panel-body::before {
content:"";
position:absolute;
left:6px;
top:8px;
bottom:8px;
width:4px;
pointer-events:none;
background:
repeating-linear-gradient(
45deg,
var(--wip-yellow) 0 4px,
var(--wip-yellow) 4px 5px,
var(--wip-black) 5px 9px,
var(--wip-black) 9px 10px
);
opacity:0.95;
}

.stylelab .team-panel .titlebar > span:last-child {
color:#c6c6c6;
}

/* -----------------------------------------
14. Status instrument
Type: STATUS INSTRUMENT
No scanlines. Gauge cells may have recessed finish.
----------------------------------------- */

.stylelab .instrument-grid {
display:grid;
grid-template-columns:minmax(0,1fr) minmax(0,1fr);
gap:var(--space-inner);
margin:0 0 var(--space-inner);
}

.stylelab .gauge {
height:var(--gauge-h);
min-width:0;
padding:6px;
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
border:1px solid var(--edge-soft);
background:var(--surface-inset);
text-align:center;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.025),
inset 0 -1px 0 rgba(0,0,0,0.55);
}

.stylelab .gauge:hover {
background:#0d0d0d;
}

.stylelab .gauge b {
display:block;
color:#f0f0f0;
font-family:Consolas, Monaco, monospace !important;
font-size:18px;
line-height:1;
text-shadow:1px 1px 0 #000;
}

.stylelab .gauge span {
display:block;
margin-top:5px;
color:var(--text-dim);
font-size:9px;
line-height:1;
}

.stylelab .instrument-lines {
border-top:1px solid var(--edge-soft);
border-bottom:1px solid var(--edge-soft);
}

.stylelab .instrument-line {
display:grid;
grid-template-columns:82px minmax(0,1fr);
align-items:center;
gap:6px;
height:22px;
min-height:22px;
padding:0 2px;
border-bottom:1px solid var(--edge-soft);
font-size:10px;
line-height:1.2;
}

.stylelab .instrument-line:last-child {
border-bottom:none;
}

.stylelab .instrument-line:hover {
background:#151515;
}

.stylelab .instrument-label {
color:var(--text-dim);
white-space:nowrap;
}

.stylelab .instrument-value {
color:var(--text-soft);
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}

.stylelab .instrument-line:hover .instrument-value {
color:#ffffff;
}

/* -----------------------------------------
15. Manual samples
Type: RECORD MODULE
----------------------------------------- */

.stylelab .manual-panel {
margin-top:var(--space-inner);
}

.stylelab .sample-row {
display:grid;
grid-template-columns:150px minmax(0,1fr);
align-items:center;
gap:var(--space-inner);
min-height:24px;
padding:4px 0;
border-bottom:1px solid var(--edge-soft);
}

.stylelab .sample-row:first-child {
border-top:1px solid var(--edge-soft);
}

.stylelab .sample-row:hover {
background:#151515;
}

.stylelab .sample-label {
color:var(--text-dim);
font-size:10px;
line-height:1.25;
}

.stylelab .sample-value {
color:var(--text-soft);
font-size:10px;
line-height:1.35;
}

.stylelab .sample-row:hover .sample-value {
color:#ffffff;
}

/* -----------------------------------------
16. Responsive
----------------------------------------- */

@media screen and (max-width:1380px) {
.stylelab .module-grid {
grid-template-columns:minmax(0,1fr) minmax(0,1fr);
}
}

@media screen and (max-width:1180px) {
.stylelab .console-grid {
grid-template-columns:minmax(0,1fr);
}

.stylelab .module-grid {
grid-template-columns:minmax(0,1fr);
}

.stylelab .directory {
height:auto;
table-layout:auto !important;
}

.stylelab .directory,
.stylelab .directory tbody,
.stylelab .directory tr,
.stylelab .directory td {
display:block !important;
width:100% !important;
height:auto !important;
}

.stylelab .directory td {
border-right:none !important;
border-bottom:1px solid var(--edge-bottom) !important;
}

.stylelab .directory td:last-child {
border-bottom:none !important;
}

.stylelab .directory a {
height:var(--nav-h) !important;
}

.stylelab .notice-line {
grid-template-columns:62px minmax(0,1fr);
min-height:32px;
}

.stylelab .notice-date,
.stylelab .notice-action {
display:none;
}
}