편집 요약 없음 |
편집 요약 없음 |
||
| 3번째 줄: | 3번째 줄: | ||
MediaWiki:Test.css | MediaWiki:Test.css | ||
Sandbox-only style test | Sandbox-only style test | ||
Dimension pass: spacing / height / alignment | |||
========================================= */ | ========================================= */ | ||
| 52번째 줄: | 51번째 줄: | ||
--wip-black:#050505; | --wip-black:#050505; | ||
-- | --space-block:8px; | ||
-- | --space-inner:6px; | ||
--pad:8px; | --space-tight:4px; | ||
--pad-panel:8px; | |||
--pad-screen-x:18px; | |||
--pad-screen-y:16px; | |||
--title-h:24px; | --title-h:24px; | ||
--row-h: | --data-title-h:22px; | ||
--nav-h:30px; | |||
--ticker-h:22px; | |||
--row-h:23px; | |||
--gauge-h:48px; | |||
width:100%; | width:100%; | ||
margin:0 auto; | margin:0 auto; | ||
padding:var(-- | padding:var(--space-block); | ||
color:var(--text-main); | color:var(--text-main); | ||
background:var(--surface-page); | background:var(--surface-page); | ||
| 112번째 줄: | 119번째 줄: | ||
.stylelab .titlebar { | .stylelab .titlebar { | ||
position:relative; | position:relative; | ||
height:var(--title-h); | |||
min-height:var(--title-h); | min-height:var(--title-h); | ||
padding:0 var(--pad); | padding:0 var(--pad-panel); | ||
display:flex; | display:flex; | ||
align-items:center; | align-items:center; | ||
justify-content:space-between; | justify-content:space-between; | ||
gap:var(-- | gap:var(--space-block); | ||
background:var(--surface-title); | background:var(--surface-title); | ||
border-bottom:1px solid var(--edge-bottom); | border-bottom:1px solid var(--edge-bottom); | ||
| 123번째 줄: | 131번째 줄: | ||
font-size:10px; | font-size:10px; | ||
font-weight:700; | font-weight:700; | ||
line-height: | line-height:1; | ||
white-space:nowrap; | white-space:nowrap; | ||
overflow:hidden; | overflow:hidden; | ||
| 134번째 줄: | 142번째 줄: | ||
overflow:hidden; | overflow:hidden; | ||
text-overflow:ellipsis; | text-overflow:ellipsis; | ||
} | |||
.stylelab .titlebar > span:first-child { | |||
flex:1 1 auto; | |||
} | } | ||
| 140번째 줄: | 152번째 줄: | ||
color:#a8a8a8; | color:#a8a8a8; | ||
font-weight:700; | font-weight:700; | ||
text-align:right; | |||
} | } | ||
| 148번째 줄: | 161번째 줄: | ||
.stylelab .lab-logo { | .stylelab .lab-logo { | ||
width:100%; | width:100%; | ||
margin:0 0 var(-- | height:auto; | ||
margin:0 0 var(--space-block); | |||
padding:10px 0 8px; | padding:10px 0 8px; | ||
text-align:center; | text-align:center; | ||
| 178번째 줄: | 192번째 줄: | ||
.stylelab .directory { | .stylelab .directory { | ||
width:100%; | width:100%; | ||
margin:0 0 var(-- | height:var(--nav-h); | ||
margin:0 0 var(--space-block) !important; | |||
border-collapse:collapse !important; | border-collapse:collapse !important; | ||
table-layout:fixed !important; | table-layout:fixed !important; | ||
| 186번째 줄: | 201번째 줄: | ||
.stylelab .directory tr { | .stylelab .directory tr { | ||
width:100%; | width:100%; | ||
height:var(--nav-h); | |||
} | } | ||
.stylelab .directory td { | .stylelab .directory td { | ||
height:var(--nav-h); | |||
margin:0 !important; | margin:0 !important; | ||
padding:0 !important; | padding:0 !important; | ||
| 207번째 줄: | 224번째 줄: | ||
justify-content:center !important; | justify-content:center !important; | ||
width:100% !important; | width:100% !important; | ||
min-height: | height:var(--nav-h) !important; | ||
padding: | min-height:var(--nav-h) !important; | ||
padding:0 6px !important; | |||
color:var(--text-main) !important; | color:var(--text-main) !important; | ||
font-size:10px !important; | font-size:10px !important; | ||
| 232번째 줄: | 250번째 줄: | ||
.stylelab .console { | .stylelab .console { | ||
width:100%; | width:100%; | ||
margin:0 0 var(-- | margin:0 0 var(--space-block); | ||
padding:0; | padding:0; | ||
} | } | ||
.stylelab .console-body { | .stylelab .console-body { | ||
padding:var(-- | padding:var(--space-inner); | ||
background:var(--surface-frame); | background:var(--surface-frame); | ||
} | } | ||
| 244번째 줄: | 262번째 줄: | ||
display:grid; | display:grid; | ||
grid-template-columns:minmax(0,1fr) 260px; | grid-template-columns:minmax(0,1fr) 260px; | ||
gap:var(-- | gap:var(--space-inner); | ||
align-items:stretch; | |||
} | } | ||
| 251번째 줄: | 270번째 줄: | ||
position:relative; | position:relative; | ||
min-width:0; | min-width:0; | ||
height:100%; | |||
overflow:hidden; | overflow:hidden; | ||
border:1px solid var(--edge-soft); | border:1px solid var(--edge-soft); | ||
| 306번째 줄: | 326번째 줄: | ||
.stylelab .main-screen { | .stylelab .main-screen { | ||
min-height: | min-height:264px; | ||
padding:18px | padding:18px var(--pad-screen-x) var(--pad-screen-y); | ||
display:flex; | |||
flex-direction:column; | |||
justify-content:center; | |||
} | } | ||
| 338번째 줄: | 361번째 줄: | ||
.stylelab .side-screen { | .stylelab .side-screen { | ||
padding:var(--pad); | padding:var(--pad-panel); | ||
display:flex; | |||
flex-direction:column; | |||
} | } | ||
| 347번째 줄: | 372번째 줄: | ||
.stylelab .data-title { | .stylelab .data-title { | ||
min-height: | height:var(--data-title-h); | ||
margin:0 0 | min-height:var(--data-title-h); | ||
padding: | margin:0 0 var(--space-inner); | ||
padding:0 7px; | |||
display:flex; | |||
align-items:center; | |||
border:1px solid var(--edge-soft); | border:1px solid var(--edge-soft); | ||
background:#151515; | background:#151515; | ||
| 355번째 줄: | 383번째 줄: | ||
font-size:10px; | font-size:10px; | ||
font-weight:700; | font-weight:700; | ||
line-height:1 | line-height:1; | ||
text-shadow:1px 1px 0 #000; | text-shadow:1px 1px 0 #000; | ||
} | } | ||
| 368번째 줄: | 396번째 줄: | ||
.stylelab .data-table td { | .stylelab .data-table td { | ||
padding: | height:24px; | ||
padding:0 6px; | |||
border:1px solid var(--edge-soft); | border:1px solid var(--edge-soft); | ||
background:#111; | background:#111; | ||
color:var(--text-soft); | color:var(--text-soft); | ||
vertical-align:middle; | vertical-align:middle; | ||
line-height:1.25; | |||
} | } | ||
| 388번째 줄: | 418번째 줄: | ||
.stylelab .ticker { | .stylelab .ticker { | ||
height: | height:var(--ticker-h); | ||
margin:0 0 var(-- | margin:0 0 var(--space-inner); | ||
padding:0 var(--pad); | padding:0 var(--pad-panel); | ||
color:#bdbdbd; | color:#bdbdbd; | ||
background:#171717; | background:#171717; | ||
font-size:10px; | font-size:10px; | ||
line-height: | line-height:var(--ticker-h); | ||
white-space:nowrap; | white-space:nowrap; | ||
overflow:hidden; | overflow:hidden; | ||
| 408번째 줄: | 438번째 줄: | ||
display:grid; | display:grid; | ||
grid-template-columns:minmax(0,1fr) minmax(0,1fr) 250px 250px; | grid-template-columns:minmax(0,1fr) minmax(0,1fr) 250px 250px; | ||
gap:var(-- | gap:var(--space-inner); | ||
align-items:stretch; | |||
} | } | ||
.stylelab .panel, | |||
.stylelab .instrument-panel { | |||
.stylelab .panel { | |||
min-width:0; | min-width:0; | ||
height:100%; | |||
display:flex; | |||
flex-direction:column; | |||
} | } | ||
.stylelab .panel-body { | .stylelab .panel-body, | ||
padding:var(--pad); | .stylelab .instrument-body { | ||
flex:1 1 auto; | |||
min-height:0; | |||
padding:var(--pad-panel); | |||
background:var(--surface-well); | background:var(--surface-well); | ||
} | } | ||
/* ----------------------------------------- | |||
8. Record modules | |||
No scanlines. No screen treatment. | |||
----------------------------------------- */ | |||
.stylelab .record-list { | .stylelab .record-list { | ||
| 434번째 줄: | 472번째 줄: | ||
display:grid; | display:grid; | ||
grid-template-columns:minmax(0,1fr) auto; | grid-template-columns:minmax(0,1fr) auto; | ||
gap:var(-- | align-items:center; | ||
gap:var(--space-block); | |||
height:var(--row-h); | |||
min-height:var(--row-h); | min-height:var(--row-h); | ||
margin:0; | margin:0; | ||
padding: | padding:0 2px; | ||
border-bottom:1px solid var(--edge-soft); | border-bottom:1px solid var(--edge-soft); | ||
color:var(--text-soft); | color:var(--text-soft); | ||
line-height:1. | line-height:1.25; | ||
} | } | ||
| 458번째 줄: | 498번째 줄: | ||
white-space:nowrap; | white-space:nowrap; | ||
font-size:9px; | font-size:9px; | ||
line-height:1; | |||
} | } | ||
| 467번째 줄: | 508번째 줄: | ||
.stylelab .status-tag { | .stylelab .status-tag { | ||
display:inline- | display:inline-flex; | ||
align-items:center; | |||
justify-content:center; | |||
min-width:34px; | min-width:34px; | ||
padding: | height:16px; | ||
padding:0 4px; | |||
border:1px solid #303030; | border:1px solid #303030; | ||
background:#161616; | background:#161616; | ||
| 475번째 줄: | 519번째 줄: | ||
font-size:9px; | font-size:9px; | ||
text-align:center; | text-align:center; | ||
line-height:1 | line-height:1; | ||
} | } | ||
| 523번째 줄: | 567번째 줄: | ||
position:absolute; | position:absolute; | ||
left:6px; | left:6px; | ||
top: | top:8px; | ||
bottom: | bottom:8px; | ||
width:4px; | width:4px; | ||
pointer-events:none; | pointer-events:none; | ||
| 547번째 줄: | 591번째 줄: | ||
No scanlines. Gauge cells may have recessed finish. | No scanlines. Gauge cells may have recessed finish. | ||
----------------------------------------- */ | ----------------------------------------- */ | ||
.stylelab .instrument-grid { | .stylelab .instrument-grid { | ||
display:grid; | display:grid; | ||
grid-template-columns:minmax(0,1fr) minmax(0,1fr); | grid-template-columns:minmax(0,1fr) minmax(0,1fr); | ||
gap:var(-- | gap:var(--space-inner); | ||
margin:0 0 var(-- | margin:0 0 var(--space-inner); | ||
} | } | ||
.stylelab .gauge { | .stylelab .gauge { | ||
height:var(--gauge-h); | |||
min-width:0; | min-width:0; | ||
padding: | padding:6px; | ||
display:flex; | |||
flex-direction:column; | |||
align-items:center; | |||
justify-content:center; | |||
border:1px solid var(--edge-soft); | border:1px solid var(--edge-soft); | ||
background:var(--surface-inset); | background:var(--surface-inset); | ||
| 580번째 줄: | 620번째 줄: | ||
font-family:Consolas, Monaco, monospace !important; | font-family:Consolas, Monaco, monospace !important; | ||
font-size:18px; | font-size:18px; | ||
line-height: | line-height:1; | ||
text-shadow:1px 1px 0 #000; | text-shadow:1px 1px 0 #000; | ||
} | } | ||
| 586번째 줄: | 626번째 줄: | ||
.stylelab .gauge span { | .stylelab .gauge span { | ||
display:block; | display:block; | ||
margin-top: | margin-top:5px; | ||
color:var(--text-dim); | color:var(--text-dim); | ||
font-size:9px; | font-size:9px; | ||
line-height:1; | |||
} | } | ||
| 599번째 줄: | 640번째 줄: | ||
display:grid; | display:grid; | ||
grid-template-columns:82px minmax(0,1fr); | grid-template-columns:82px minmax(0,1fr); | ||
align-items:center; | |||
gap:6px; | gap:6px; | ||
min-height: | height:22px; | ||
padding: | min-height:22px; | ||
padding:0 2px; | |||
border-bottom:1px solid var(--edge-soft); | border-bottom:1px solid var(--edge-soft); | ||
font-size:10px; | font-size:10px; | ||
line-height:1. | line-height:1.2; | ||
} | } | ||
| 635번째 줄: | 678번째 줄: | ||
.stylelab .guest-line { | .stylelab .guest-line { | ||
padding: | min-height:22px; | ||
padding:4px 2px; | |||
display:flex; | |||
align-items:center; | |||
border-bottom:1px solid var(--edge-soft); | border-bottom:1px solid var(--edge-soft); | ||
font-size:10px; | font-size:10px; | ||
line-height:1. | line-height:1.35; | ||
color:var(--text-soft); | color:var(--text-soft); | ||
} | } | ||
| 649번째 줄: | 695번째 줄: | ||
color:#eeeeee; | color:#eeeeee; | ||
font-weight:700; | font-weight:700; | ||
margin-right:4px; | |||
} | } | ||
| 657번째 줄: | 704번째 줄: | ||
.stylelab .manual-panel { | .stylelab .manual-panel { | ||
margin-top:var(-- | margin-top:var(--space-inner); | ||
} | } | ||
| 663번째 줄: | 710번째 줄: | ||
display:grid; | display:grid; | ||
grid-template-columns:150px minmax(0,1fr); | grid-template-columns:150px minmax(0,1fr); | ||
gap:var(-- | align-items:center; | ||
padding: | gap:var(--space-inner); | ||
min-height:24px; | |||
padding:4px 0; | |||
border-bottom:1px solid var(--edge-soft); | border-bottom:1px solid var(--edge-soft); | ||
} | } | ||
| 675번째 줄: | 724번째 줄: | ||
color:var(--text-dim); | color:var(--text-dim); | ||
font-size:10px; | font-size:10px; | ||
line-height:1.25; | |||
} | } | ||
| 680번째 줄: | 730번째 줄: | ||
color:var(--text-soft); | color:var(--text-soft); | ||
font-size:10px; | font-size:10px; | ||
line-height:1.35; | |||
} | } | ||
| 702번째 줄: | 753번째 줄: | ||
.stylelab .directory { | .stylelab .directory { | ||
height:auto; | |||
table-layout:auto !important; | table-layout:auto !important; | ||
} | } | ||
| 711번째 줄: | 763번째 줄: | ||
display:block !important; | display:block !important; | ||
width:100% !important; | width:100% !important; | ||
height:auto !important; | |||
} | } | ||
| 720번째 줄: | 773번째 줄: | ||
.stylelab .directory td:last-child { | .stylelab .directory td:last-child { | ||
border-bottom:none !important; | border-bottom:none !important; | ||
} | |||
.stylelab .directory a { | |||
height:var(--nav-h) !important; | |||
} | } | ||
} | } | ||
2026년 5월 17일 (일) 20:46 판
/* =========================================
COASTLINE: BLACK ICE
MediaWiki:Test.css
Sandbox-only style test
Dimension pass: spacing / height / alignment
========================================= */
/*
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;
--pad-screen-x:18px;
--pad-screen-y:16px;
--title-h:24px;
--data-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 .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. Logo
----------------------------------------- */
.stylelab .lab-logo {
width:100%;
height:auto;
margin:0 0 var(--space-block);
padding:10px 0 8px;
text-align:center;
line-height:0;
}
.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:720px;
max-width:88%;
height:auto;
filter:
grayscale(1)
contrast(1.04)
brightness(1.02);
}
/* -----------------------------------------
3. Directory strip
Test component only. Not a global navigation replacement.
----------------------------------------- */
.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;
}
/* -----------------------------------------
4. 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:1;
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:2;
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:264px;
padding:18px var(--pad-screen-x) var(--pad-screen-y);
display:flex;
flex-direction:column;
justify-content:center;
}
.stylelab .main-screen h2 {
margin:0 0 12px !important;
padding:0 0 8px !important;
border-bottom:1px solid var(--edge-soft) !important;
color:#f4f4f4 !important;
font-size:22px !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 .main-screen p {
max-width:800px;
margin:0 auto 10px;
color:#d8d8d8;
font-size:12px;
line-height:1.72;
text-align:center;
text-shadow:1px 1px 0 #000;
}
.stylelab .main-screen p:last-child {
margin-bottom:0;
}
.stylelab .side-screen {
padding:var(--pad-panel);
display:flex;
flex-direction:column;
}
/* -----------------------------------------
5. Screen subcomponents
Only used inside SCREEN DEVICE.
----------------------------------------- */
.stylelab .data-title {
height:var(--data-title-h);
min-height:var(--data-title-h);
margin:0 0 var(--space-inner);
padding:0 7px;
display:flex;
align-items:center;
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 .data-table {
width:100%;
margin:0;
border-collapse:collapse;
table-layout:fixed;
font-size:10px;
}
.stylelab .data-table td {
height:24px;
padding:0 6px;
border:1px solid var(--edge-soft);
background:#111;
color:var(--text-soft);
vertical-align:middle;
line-height:1.25;
}
.stylelab .data-table td:first-child {
width:72px;
color:var(--text-dim);
background:#0b0b0b;
}
/* -----------------------------------------
6. 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;
}
/* -----------------------------------------
7. Module grid
----------------------------------------- */
.stylelab .module-grid {
display:grid;
grid-template-columns:minmax(0,1fr) minmax(0,1fr) 250px 250px;
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);
}
/* -----------------------------------------
8. 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 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;
}
/* -----------------------------------------
9. 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;
}
/* -----------------------------------------
10. 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;
}
/* -----------------------------------------
11. 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 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-label {
color:var(--text-dim);
white-space:nowrap;
}
.stylelab .instrument-value {
color:var(--text-soft);
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
/* -----------------------------------------
12. Guestbook
Type: RECORD MODULE
Separate from ARCHIVE STATUS.
----------------------------------------- */
.stylelab .guest-lines {
border-top:1px solid var(--edge-soft);
border-bottom:1px solid var(--edge-soft);
}
.stylelab .guest-line {
min-height:22px;
padding:4px 2px;
display:flex;
align-items:center;
border-bottom:1px solid var(--edge-soft);
font-size:10px;
line-height:1.35;
color:var(--text-soft);
}
.stylelab .guest-line:last-child {
border-bottom:none;
}
.stylelab .guest-name {
color:#eeeeee;
font-weight:700;
margin-right:4px;
}
/* -----------------------------------------
13. 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-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;
}
/* -----------------------------------------
14. 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;
}
}