MWSE/public/studio/style.css

256 lines
5.3 KiB
CSS

/* MWSE Studio — desktop-first Miller-column UI */
.mwse-studio {
display: flex;
flex-direction: column;
width: 100%;
height: 100%;
background: #1a1a1a;
color: #d4d4d4;
font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
font-size: 13px;
overflow: hidden;
user-select: none;
}
/* Top toolbar */
.mwse-studio__toolbar {
display: flex;
align-items: center;
gap: 8px;
padding: 6px 12px;
background: #111;
border-bottom: 1px solid #333;
flex-shrink: 0;
}
.mwse-studio__title {
font-weight: 600;
color: #fff;
font-size: 12px;
letter-spacing: .04em;
text-transform: uppercase;
}
.mwse-studio__status {
margin-left: auto;
font-size: 11px;
color: #888;
}
.mwse-studio__status--online { color: #4caf50; }
.mwse-studio__status--error { color: #f44336; }
/* Column scroll area */
.mwse-studio__columns {
display: flex;
flex-direction: row;
flex: 1;
overflow-x: auto;
overflow-y: hidden;
scrollbar-width: thin;
scrollbar-color: #444 #1a1a1a;
}
.mwse-studio__columns::-webkit-scrollbar { height: 4px; }
.mwse-studio__columns::-webkit-scrollbar-track { background: #1a1a1a; }
.mwse-studio__columns::-webkit-scrollbar-thumb { background: #444; border-radius: 2px; }
/* Individual column */
.mwse-col {
min-width: 220px;
max-width: 260px;
flex-shrink: 0;
display: flex;
flex-direction: column;
border-right: 1px solid #2e2e2e;
background: #1e1e1e;
}
.mwse-col--active { background: #222; }
.mwse-col__header {
padding: 8px 12px 6px;
font-size: 11px;
font-weight: 600;
letter-spacing: .06em;
text-transform: uppercase;
color: #777;
border-bottom: 1px solid #2a2a2a;
flex-shrink: 0;
}
/* Search box */
.mwse-col__search {
margin: 6px 8px;
padding: 4px 8px;
background: #2a2a2a;
border: 1px solid #383838;
border-radius: 4px;
color: #d4d4d4;
font-size: 12px;
outline: none;
flex-shrink: 0;
}
.mwse-col__search:focus { border-color: #0078d4; }
/* Item list */
.mwse-col__list {
flex: 1;
overflow-y: auto;
padding: 4px 0;
scrollbar-width: thin;
scrollbar-color: #333 transparent;
}
.mwse-col__list::-webkit-scrollbar { width: 4px; }
.mwse-col__list::-webkit-scrollbar-thumb { background: #333; border-radius: 2px; }
/* Single item */
.mwse-item {
display: flex;
align-items: center;
gap: 8px;
padding: 6px 12px;
cursor: pointer;
border-radius: 0;
border-left: 2px solid transparent;
transition: background 80ms;
}
.mwse-item:hover { background: #2a2a2a; }
.mwse-item--active {
background: #0d3a5a !important;
border-left-color: #0078d4;
}
.mwse-item__icon {
font-size: 12px;
color: #555;
flex-shrink: 0;
width: 14px;
text-align: center;
}
.mwse-item--active .mwse-item__icon { color: #60cdff; }
.mwse-item__body { flex: 1; min-width: 0; }
.mwse-item__label {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
color: #d0d0d0;
font-size: 13px;
}
.mwse-item--active .mwse-item__label { color: #fff; }
.mwse-item__meta {
font-size: 11px;
color: #666;
margin-top: 1px;
}
.mwse-item--active .mwse-item__meta { color: #4d9fce; }
.mwse-item__arrow {
font-size: 10px;
color: #444;
flex-shrink: 0;
}
.mwse-item--active .mwse-item__arrow { color: #60cdff; }
/* Status badges */
.mwse-badge {
display: inline-block;
padding: 1px 5px;
border-radius: 3px;
font-size: 10px;
font-weight: 600;
letter-spacing: .03em;
}
.mwse-badge--live { background: #d32f2f; color: #fff; }
.mwse-badge--ok { background: #2e7d32; color: #fff; }
.mwse-badge--ws { background: #333; color: #aaa; }
.mwse-badge--p2p { background: #1565c0; color: #fff; }
/* Progress bar (file transfer) */
.mwse-progress {
margin: 8px 12px;
height: 4px;
background: #333;
border-radius: 2px;
}
.mwse-progress__bar {
height: 100%;
background: #0078d4;
border-radius: 2px;
transition: width 200ms;
}
/* Action buttons inside columns */
.mwse-col__actions {
padding: 8px 12px;
border-top: 1px solid #2a2a2a;
display: flex;
gap: 6px;
flex-shrink: 0;
}
.mwse-btn {
flex: 1;
padding: 5px 8px;
background: #2a2a2a;
border: 1px solid #3a3a3a;
border-radius: 4px;
color: #ccc;
font-size: 11px;
cursor: pointer;
text-align: center;
}
.mwse-btn:hover { background: #333; color: #fff; }
.mwse-btn--primary { background: #0d47a1; border-color: #1565c0; color: #fff; }
.mwse-btn--primary:hover { background: #1565c0; }
.mwse-btn--danger { background: #4a1a1a; border-color: #7b2020; color: #f88; }
.mwse-btn--danger:hover { background: #7b2020; }
/* Slider for quality controls */
.mwse-slider-row {
display: flex;
align-items: center;
gap: 8px;
padding: 4px 12px;
}
.mwse-slider-row label {
font-size: 11px;
color: #888;
flex-shrink: 0;
width: 64px;
}
.mwse-slider-row input[type=range] {
flex: 1;
accent-color: #0078d4;
}
.mwse-slider-row span {
font-size: 11px;
color: #bbb;
width: 40px;
text-align: right;
}
/* Video preview thumbnail */
.mwse-preview {
width: 100%;
aspect-ratio: 16/9;
background: #111;
border-top: 1px solid #2a2a2a;
object-fit: contain;
}