Files
AI/crawler_platform/app/web/static/styles.css
LASTA_DEV01\lasta 3663734781 [버그수정]
2026-05-11 13:02:11 +09:00

477 lines
6.5 KiB
CSS

:root {
color-scheme: light;
--bg: #f6f7f4;
--surface: #ffffff;
--surface-2: #eef3ee;
--text: #202420;
--muted: #667063;
--line: #d8ded6;
--accent: #236b5b;
--accent-2: #9c4f30;
--danger: #a33434;
--shadow: 0 16px 40px rgba(24, 35, 28, 0.08);
}
* {
box-sizing: border-box;
}
body {
margin: 0;
min-width: 320px;
background: var(--bg);
color: var(--text);
font-family: Inter, "Segoe UI", Arial, sans-serif;
letter-spacing: 0;
}
button,
input,
select {
font: inherit;
}
button {
border: 1px solid var(--line);
background: var(--surface);
color: var(--text);
border-radius: 6px;
min-height: 36px;
padding: 0 12px;
cursor: pointer;
}
button:hover {
border-color: var(--accent);
}
button.primary {
background: var(--accent);
color: white;
border-color: var(--accent);
}
input,
select {
width: 100%;
min-height: 36px;
border: 1px solid var(--line);
border-radius: 6px;
background: white;
padding: 0 10px;
color: var(--text);
}
label {
display: grid;
gap: 6px;
color: var(--muted);
font-size: 12px;
font-weight: 700;
}
.topbar {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
padding: 18px 24px;
border-bottom: 1px solid var(--line);
background: rgba(255, 255, 255, 0.86);
position: sticky;
top: 0;
z-index: 5;
backdrop-filter: blur(12px);
}
.topbar h1 {
margin: 0;
font-size: 22px;
}
.topbar p {
margin: 4px 0 0;
color: var(--muted);
font-size: 13px;
}
.icon-button {
width: 40px;
padding: 0;
font-size: 20px;
}
.layout {
display: grid;
grid-template-columns: 320px minmax(0, 1fr);
gap: 18px;
padding: 18px;
}
.sidebar,
.workspace {
min-width: 0;
}
.sidebar {
display: grid;
align-content: start;
gap: 14px;
}
.panel,
.wide-panel,
.metric {
background: var(--surface);
border: 1px solid var(--line);
border-radius: 8px;
box-shadow: var(--shadow);
}
.panel,
.wide-panel {
padding: 14px;
}
.panel-head {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 10px;
}
h2 {
margin: 0;
font-size: 15px;
}
.field-row {
display: grid;
grid-template-columns: minmax(0, 1fr) 42px;
gap: 8px;
}
.list {
display: grid;
gap: 8px;
margin-top: 12px;
}
.project-item {
display: grid;
gap: 2px;
text-align: left;
height: auto;
min-height: 52px;
padding: 8px 10px;
}
.project-item.active {
border-color: var(--accent);
background: var(--surface-2);
}
.project-item strong {
font-size: 14px;
}
.project-item span {
color: var(--muted);
font-size: 12px;
}
.mini-log {
min-height: 38px;
margin-top: 10px;
color: var(--muted);
font-size: 12px;
line-height: 1.45;
}
.button-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 8px;
}
button.full {
width: 100%;
}
.site-controls {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 8px;
align-items: end;
}
.check-row {
display: flex;
align-items: center;
gap: 8px;
min-height: 36px;
}
.check-row input {
width: 16px;
min-height: 16px;
}
.extractor-options {
display: none;
gap: 8px;
}
.extractor-options.active {
display: grid;
}
.extractor-options button {
width: 100%;
}
.discovered-links {
display: grid;
gap: 6px;
margin-top: 10px;
max-height: 280px;
overflow: auto;
}
.discovered-link {
display: grid;
gap: 2px;
min-height: 44px;
padding: 7px 8px;
text-align: left;
overflow-wrap: anywhere;
}
.discovered-link span {
color: var(--muted);
font-size: 11px;
}
.tabs {
display: flex;
gap: 6px;
overflow-x: auto;
padding-bottom: 10px;
}
.tab {
white-space: nowrap;
}
.tab.active {
background: var(--text);
color: white;
border-color: var(--text);
}
.tab-panel {
display: none;
}
.tab-panel.active {
display: grid;
gap: 14px;
}
.summary-grid {
display: grid;
grid-template-columns: repeat(4, minmax(120px, 1fr));
gap: 12px;
}
.metric {
padding: 14px;
}
.metric span {
display: block;
color: var(--muted);
font-size: 12px;
font-weight: 700;
}
.metric strong {
display: block;
margin-top: 8px;
font-size: 20px;
overflow-wrap: anywhere;
}
.split {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 14px;
}
.chips {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-top: 12px;
}
.chip {
display: inline-flex;
align-items: center;
min-height: 28px;
padding: 0 10px;
border: 1px solid var(--line);
border-radius: 999px;
background: var(--surface-2);
font-size: 12px;
}
.toolbar {
display: flex;
gap: 8px;
align-items: center;
}
.toolbar.wrap {
flex-wrap: wrap;
}
.toolbar select {
max-width: 240px;
}
.merge-bar {
display: grid;
grid-template-columns: minmax(120px, 180px) minmax(120px, 180px) 80px;
gap: 8px;
}
.table {
overflow-x: auto;
background: var(--surface);
border: 1px solid var(--line);
border-radius: 8px;
}
table {
width: 100%;
border-collapse: collapse;
font-size: 13px;
}
th,
td {
padding: 10px;
border-bottom: 1px solid var(--line);
text-align: left;
vertical-align: top;
}
th {
color: var(--muted);
background: #fafbf8;
font-size: 12px;
}
.claim-list {
display: grid;
gap: 10px;
}
.claim-card {
display: grid;
gap: 8px;
padding: 12px;
background: var(--surface);
border: 1px solid var(--line);
border-radius: 8px;
}
.claim-main {
display: flex;
flex-wrap: wrap;
gap: 8px;
align-items: center;
}
.predicate {
color: var(--accent);
font-weight: 800;
}
.confidence {
margin-left: auto;
color: var(--accent-2);
font-weight: 800;
}
.evidence {
color: var(--muted);
font-size: 12px;
line-height: 1.45;
}
.claim-actions {
display: grid;
grid-template-columns: 120px minmax(0, 1fr) 90px;
gap: 8px;
}
.recommend-grid {
display: grid;
grid-template-columns: repeat(5, minmax(120px, 1fr));
gap: 10px;
}
#toast {
position: fixed;
right: 18px;
bottom: 18px;
max-width: min(420px, calc(100vw - 36px));
padding: 12px 14px;
border-radius: 8px;
background: var(--text);
color: white;
opacity: 0;
transform: translateY(10px);
transition: 180ms ease;
pointer-events: none;
font-size: 13px;
}
#toast.show {
opacity: 1;
transform: translateY(0);
}
@media (max-width: 920px) {
.layout {
grid-template-columns: 1fr;
}
.summary-grid,
.split,
.recommend-grid {
grid-template-columns: 1fr 1fr;
}
}
@media (max-width: 560px) {
.topbar {
padding: 14px;
}
.layout {
padding: 12px;
}
.summary-grid,
.split,
.recommend-grid,
.claim-actions,
.merge-bar,
.site-controls {
grid-template-columns: 1fr;
}
}