:root { --bg: #eef2ea; --panel: #fcf6eb; --panel-strong: #f3e9d5; --ink: #14281d; --accent: #3a7d44; --accent-2: #b65f28; --line: #d4c8b2; --surface: #fffdf8; } * { box-sizing: border-box; } body { margin: 0; font-family: "Trebuchet MS", "Segoe UI", sans-serif; color: var(--ink); background: radial-gradient(circle at 20% 20%, #f7f2e9, #dde6d8 65%, #ced9c8); } .app-grid { min-height: 100vh; display: grid; grid-template-columns: 320px 1fr 360px; gap: 16px; padding: 16px; align-items: stretch; } .sidebar, .main-area, .gallery { background: var(--panel); border: 1px solid var(--line); border-radius: 14px; padding: 16px; } .sidebar { display: flex; flex-direction: column; gap: 12px; max-height: calc(100vh - 32px); overflow: auto; position: sticky; top: 16px; } .sidebar label, .main-area label { display: flex; flex-direction: column; gap: 6px; font-size: 0.9rem; font-weight: 600; } textarea, input, select, button { font: inherit; } textarea, input, select { border: 1px solid var(--line); border-radius: 8px; padding: 9px 10px; background: var(--surface); color: var(--ink); } textarea:focus, input:focus, select:focus, button:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; } .row { flex-direction: row !important; align-items: center; gap: 8px; font-weight: 600; } .row-actions { display: flex; gap: 6px; flex-wrap: wrap; } .main-area { display: flex; flex-direction: column; gap: 14px; } .actions { display: flex; gap: 10px; flex-wrap: wrap; padding-bottom: 2px; } .tabs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; } .tabs button { background: var(--surface); color: var(--ink); border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; } .tab-active { background: var(--accent) !important; color: var(--surface) !important; border-color: var(--accent) !important; } .history-box { display: flex; gap: 8px; flex-wrap: wrap; } .history-item { background: var(--accent); color: var(--surface); font-size: 0.8rem; padding: 6px 10px; border-radius: 999px; } button { border: 1px solid transparent; border-radius: 10px; padding: 9px 13px; background: var(--accent); color: var(--surface); cursor: pointer; transition: filter 120ms ease; } button:hover { filter: brightness(0.95); } button:disabled { opacity: 0.5; cursor: not-allowed; } .actions button:nth-child(2), .row-actions button:nth-child(2) { background: var(--accent-2); } h1, h2 { margin: 2px 0 8px; line-height: 1.15; } small { color: var(--ink); opacity: 0.8; } .progress-box { background: var(--panel-strong); border: 1px solid var(--line); border-radius: 10px; padding: 12px; flex: 1; display: flex; flex-direction: column; min-height: 280px; } .progress-label { display: flex; justify-content: space-between; font-weight: 700; } progress { width: 100%; height: 14px; margin: 8px 0; } .log-box { background: var(--surface); border: 1px solid var(--line); border-radius: 8px; padding: 10px; overflow: auto; flex: 1; font-family: Consolas, monospace; font-size: 0.8rem; line-height: 1.4; } .stats-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; } .stat-card { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 12px; display: flex; justify-content: space-between; align-items: center; } .job-table { display: flex; flex-direction: column; gap: 8px; max-height: 320px; overflow: auto; } .job-row { display: grid; grid-template-columns: 140px 90px 70px 1fr auto; gap: 8px; align-items: center; border: 1px solid var(--line); border-radius: 8px; padding: 8px; background: var(--surface); } .preset-list { display: flex; flex-direction: column; gap: 10px; } .preset-item { border: 1px solid var(--line); border-radius: 10px; padding: 10px; background: var(--surface); display: flex; justify-content: space-between; gap: 10px; align-items: center; } .gallery { display: flex; flex-direction: column; gap: 12px; max-height: calc(100vh - 32px); overflow: auto; position: sticky; top: 16px; } .thumbs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .thumb { padding: 0; overflow: hidden; height: 120px; border: 1px solid var(--line); background: var(--surface); } .thumb img { width: 100%; height: 100%; object-fit: cover; } .preview { flex: 1; border: 1px dashed var(--line); border-radius: 10px; display: flex; align-items: center; justify-content: center; min-height: 240px; background: var(--surface); padding: 8px; } .preview img { max-width: 100%; max-height: 100%; border-radius: 8px; } .compare-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .compare-grid img { width: 100%; border-radius: 8px; border: 1px solid var(--line); } .init-image-preview { border: 1px solid var(--line); border-radius: 8px; overflow: hidden; max-height: 180px; background: var(--surface); } .init-image-preview img { width: 100%; height: 100%; max-height: 180px; object-fit: cover; } @media (max-width: 1200px) { .app-grid { grid-template-columns: 1fr; } .sidebar, .gallery { max-height: none; position: static; overflow: visible; } .job-row { grid-template-columns: 1fr; gap: 6px; } .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }