* {
box-sizing: border-box;
}
html,
body {
height: 100%;
}
body {
margin: 0;
font-family: "Segoe UI", Tahoma, sans-serif;
background: #f4f6f8;
color: #111;
display: flex;
flex-direction: column;
overflow: hidden;
}
.toolbar {
display: flex;
align-items: center;
gap: 12px;
padding: 16px 24px;
background: #ffffff;
border-bottom: 1px solid #d5d7db;
}
.toolbar input {
flex: 1;
padding: 8px 10px;
border: 1px solid #c6c8cc;
border-radius: 4px;
}
.toolbar button {
padding: 8px 12px;
}
.grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 24px;
padding: 24px;
flex: 1;
min-height: 0;
}
.panel {
background: #ffffff;
border: 1px solid #d5d7db;
border-radius: 6px;
display: flex;
flex-direction: column;
min-height: 520px;
}
.panel-head {
padding: 16px;
border-bottom: 1px solid #e1e3e6;
display: flex;
flex-direction: column;
gap: 12px;
}
.panel-body {
padding: 12px 16px;
overflow-y: auto;
overflow-x: auto;
flex: 1;
min-height: 0;
}
.list {
--col-name: 1fr;
--col-size: 140px;
display: flex;
flex-direction: column;
min-height: 0;
}
.list-row {
display: grid;
grid-template-columns: var(--col-name) var(--col-size);
gap: 12px;
align-items: center;
min-width: max-content;
}
.list-header {
font-weight: 600;
color: #2b2f36;
padding: 6px 8px;
border-bottom: 1px solid #e1e3e6;
position: relative;
}
.list-body {
display: flex;
flex-direction: column;
}
.col {
position: relative;
}
.col-resizer {
position: absolute;
top: 0;
right: -8px;
width: 12px;
height: 100%;
cursor: col-resize;
}
.tree {
border: 1px solid #e1e3e6;
border-radius: 6px;
padding: 8px;
margin-bottom: 12px;
background: #fbfcfe;
max-height: 180px;
overflow: auto;
}
.tree-row {
padding: 4px 6px;
border-radius: 4px;
cursor: pointer;
white-space: nowrap;
}
.tree-row:hover {
background: #eef2f6;
}
.tree-row.current {
background: #dbe7ff;
}
.path-row {
display: flex;
gap: 8px;
align-items: center;
}
.path-row input {
flex: 1;
padding: 6px 10px;
border: 1px solid #c6c8cc;
border-radius: 4px;
}
.row {
padding: 6px 8px;
border-radius: 4px;
cursor: pointer;
white-space: nowrap;
}
.row .size,
.list-header .size {
text-align: right;
color: #4f5765;
}
.row:hover {
background: #eef2f6;
}
.row.selected {
background: #dbe7ff;
}
.log {
margin: 0 24px 24px;
border: 1px solid #d5d7db;
border-radius: 6px;
background: #ffffff;
flex-shrink: 0;
}
#log-list {
padding: 12px 16px;
font-family: Consolas, monospace;
font-size: 12px;
height: 300px;
overflow-y: auto;
}
.checkbox {
display: flex;
align-items: center;
gap: 6px;
font-size: 12px;
}
@media (max-width: 900px) {
.grid {
grid-template-columns: 1fr;
}
}