Spaces:
Running on Zero
Running on Zero
| :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 ; | |
| 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) ; | |
| color: var(--surface) ; | |
| border-color: var(--accent) ; | |
| } | |
| .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)); | |
| } | |
| } | |