Spaces:
Runtime error
Runtime error
| :root { | |
| color-scheme: light; | |
| --ink: #15201c; | |
| --muted: #63706b; | |
| --subtle: #8b9791; | |
| --line: #d8dfda; | |
| --paper: #f5f7f2; | |
| --surface: #ffffff; | |
| --surface-soft: #f9faf6; | |
| --denela: #0f766e; | |
| --denela-strong: #095a54; | |
| --blue: #355c9a; | |
| --amber: #9b641b; | |
| --rose: #a54b5c; | |
| --good-bg: #e6f2ed; | |
| --warn-bg: #fff1d6; | |
| --shadow: 0 20px 50px rgba(26, 37, 32, 0.09); | |
| } | |
| * { | |
| box-sizing: border-box; | |
| } | |
| body { | |
| margin: 0; | |
| min-height: 100vh; | |
| color: var(--ink); | |
| background: | |
| linear-gradient(180deg, rgba(255, 255, 255, 0.62), rgba(255, 255, 255, 0)) 0 0 / 100% 220px no-repeat, | |
| var(--paper); | |
| font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; | |
| overflow-x: hidden; | |
| } | |
| button, | |
| select, | |
| textarea { | |
| font: inherit; | |
| } | |
| button, | |
| select { | |
| min-height: 40px; | |
| } | |
| button { | |
| border: 0; | |
| cursor: pointer; | |
| } | |
| button:disabled { | |
| cursor: progress; | |
| opacity: 0.68; | |
| } | |
| h1, | |
| h2, | |
| h3, | |
| p { | |
| margin: 0; | |
| } | |
| .shell { | |
| width: min(1240px, calc(100vw - 32px)); | |
| margin: 0 auto; | |
| padding: 24px 0 40px; | |
| } | |
| .app-header { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 18px; | |
| padding: 4px 0 18px; | |
| } | |
| .brand { | |
| display: flex; | |
| align-items: center; | |
| gap: 14px; | |
| min-width: 0; | |
| } | |
| .brand-mark { | |
| position: relative; | |
| display: grid; | |
| grid-template-columns: repeat(2, 23px); | |
| grid-template-rows: repeat(2, 23px); | |
| gap: 4px; | |
| width: 56px; | |
| height: 56px; | |
| padding: 3px; | |
| border: 1px solid var(--line); | |
| border-radius: 8px; | |
| background: var(--surface); | |
| box-shadow: 0 12px 28px rgba(18, 31, 27, 0.08); | |
| } | |
| .brand-mark::after { | |
| content: ""; | |
| position: absolute; | |
| left: 27px; | |
| top: 9px; | |
| width: 1px; | |
| height: 38px; | |
| background: var(--line); | |
| transform: rotate(45deg); | |
| } | |
| .brand-mark span { | |
| display: grid; | |
| place-items: center; | |
| border-radius: 6px; | |
| color: #fff; | |
| font-size: 0.68rem; | |
| font-weight: 800; | |
| text-transform: uppercase; | |
| } | |
| .brand-mark span:nth-child(1) { | |
| background: var(--blue); | |
| } | |
| .brand-mark span:nth-child(2) { | |
| background: var(--denela); | |
| } | |
| .brand-mark span:nth-child(3) { | |
| grid-column: 2; | |
| background: var(--amber); | |
| } | |
| h1 { | |
| font-size: 2.15rem; | |
| line-height: 1; | |
| letter-spacing: 0; | |
| } | |
| .brand p { | |
| margin-top: 5px; | |
| color: var(--muted); | |
| font-size: 0.94rem; | |
| } | |
| .status { | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| min-height: 38px; | |
| max-width: min(560px, 48vw); | |
| padding: 8px 11px; | |
| border: 1px solid var(--line); | |
| border-radius: 8px; | |
| background: rgba(255, 255, 255, 0.8); | |
| color: var(--muted); | |
| font-size: 0.9rem; | |
| white-space: nowrap; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| } | |
| .status-dot { | |
| flex: 0 0 auto; | |
| width: 9px; | |
| height: 9px; | |
| border-radius: 50%; | |
| background: var(--amber); | |
| } | |
| .status.ready .status-dot { | |
| background: var(--denela); | |
| } | |
| .status.error .status-dot { | |
| background: var(--rose); | |
| } | |
| .translator { | |
| display: grid; | |
| grid-template-columns: minmax(320px, 0.88fr) minmax(420px, 1.12fr); | |
| gap: 18px; | |
| align-items: stretch; | |
| } | |
| .input-pane, | |
| .output-pane, | |
| .panel { | |
| border: 1px solid var(--line); | |
| border-radius: 8px; | |
| background: var(--surface); | |
| box-shadow: var(--shadow); | |
| } | |
| .input-pane, | |
| .output-pane { | |
| display: grid; | |
| gap: 16px; | |
| padding: 18px; | |
| } | |
| .input-pane { | |
| grid-template-rows: auto auto minmax(260px, 1fr) auto; | |
| } | |
| .output-pane { | |
| grid-template-rows: auto 1fr; | |
| } | |
| .pane-head, | |
| .panel-head, | |
| .result-head, | |
| .action-row, | |
| .language-map { | |
| display: flex; | |
| align-items: center; | |
| } | |
| .pane-head, | |
| .panel-head, | |
| .result-head { | |
| justify-content: space-between; | |
| gap: 12px; | |
| } | |
| h2 { | |
| color: var(--muted); | |
| font-size: 0.78rem; | |
| font-weight: 800; | |
| letter-spacing: 0; | |
| text-transform: uppercase; | |
| } | |
| h3 { | |
| color: var(--muted); | |
| font-size: 0.8rem; | |
| font-weight: 800; | |
| letter-spacing: 0; | |
| text-transform: uppercase; | |
| } | |
| .language-map { | |
| gap: 7px; | |
| color: var(--subtle); | |
| font-size: 0.72rem; | |
| font-weight: 800; | |
| } | |
| .language-map span { | |
| display: grid; | |
| place-items: center; | |
| width: 30px; | |
| height: 24px; | |
| border: 1px solid var(--line); | |
| border-radius: 7px; | |
| background: var(--surface-soft); | |
| } | |
| .language-map i { | |
| display: block; | |
| width: 16px; | |
| height: 1px; | |
| background: var(--line); | |
| } | |
| .controls { | |
| display: grid; | |
| grid-template-columns: repeat(2, minmax(0, 1fr)); | |
| gap: 10px; | |
| } | |
| label { | |
| display: grid; | |
| gap: 6px; | |
| color: var(--muted); | |
| font-size: 0.78rem; | |
| font-weight: 800; | |
| text-transform: uppercase; | |
| } | |
| select, | |
| textarea { | |
| width: 100%; | |
| border: 1px solid var(--line); | |
| border-radius: 8px; | |
| color: var(--ink); | |
| background: var(--surface-soft); | |
| outline: none; | |
| } | |
| select { | |
| padding: 9px 34px 9px 10px; | |
| } | |
| textarea { | |
| resize: vertical; | |
| min-height: 260px; | |
| padding: 15px; | |
| line-height: 1.55; | |
| letter-spacing: 0; | |
| } | |
| select:focus, | |
| textarea:focus { | |
| border-color: rgba(15, 118, 110, 0.68); | |
| box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.14); | |
| } | |
| .action-row { | |
| gap: 10px; | |
| } | |
| .primary-action, | |
| .secondary-action, | |
| .copy-action { | |
| border-radius: 8px; | |
| font-weight: 800; | |
| } | |
| .primary-action { | |
| flex: 1; | |
| min-height: 46px; | |
| background: var(--denela); | |
| color: #fff; | |
| } | |
| .primary-action:hover { | |
| background: var(--denela-strong); | |
| } | |
| .secondary-action, | |
| .copy-action { | |
| border: 1px solid var(--line); | |
| background: var(--surface-soft); | |
| color: var(--muted); | |
| } | |
| .secondary-action { | |
| min-width: 82px; | |
| } | |
| .secondary-action:hover, | |
| .copy-action:hover { | |
| color: var(--ink); | |
| border-color: #c3ccc6; | |
| } | |
| .checkline { | |
| min-height: 30px; | |
| max-width: 65%; | |
| padding: 6px 10px; | |
| border: 1px solid #cfe5dc; | |
| border-radius: 8px; | |
| background: var(--good-bg); | |
| color: var(--denela-strong); | |
| font-size: 0.82rem; | |
| font-weight: 800; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| white-space: nowrap; | |
| } | |
| .checkline.review { | |
| border-color: #ecd4a7; | |
| background: var(--warn-bg); | |
| color: var(--amber); | |
| } | |
| .checkline.error { | |
| border-color: #edc5cc; | |
| background: #fdecef; | |
| color: var(--rose); | |
| } | |
| .result-stack { | |
| display: grid; | |
| align-content: start; | |
| } | |
| .result { | |
| display: grid; | |
| gap: 9px; | |
| padding: 15px 0; | |
| border-top: 1px solid var(--line); | |
| } | |
| .result:first-child { | |
| padding-top: 0; | |
| border-top: 0; | |
| } | |
| .translation { | |
| min-height: 32px; | |
| color: var(--ink); | |
| font-size: 1.08rem; | |
| line-height: 1.45; | |
| overflow-wrap: anywhere; | |
| } | |
| .denela-text { | |
| min-height: 68px; | |
| color: var(--denela-strong); | |
| font-size: 1.72rem; | |
| font-weight: 820; | |
| line-height: 1.28; | |
| } | |
| .copy-action { | |
| min-height: 31px; | |
| padding: 5px 10px; | |
| font-size: 0.76rem; | |
| } | |
| .details { | |
| display: grid; | |
| grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.65fr); | |
| gap: 18px; | |
| margin-top: 18px; | |
| } | |
| .panel { | |
| overflow: hidden; | |
| } | |
| .panel-head { | |
| min-height: 52px; | |
| padding: 14px 16px; | |
| border-bottom: 1px solid var(--line); | |
| } | |
| #tokenCount { | |
| color: var(--subtle); | |
| font-size: 0.82rem; | |
| font-weight: 760; | |
| } | |
| .table-wrap { | |
| max-height: 360px; | |
| overflow: auto; | |
| } | |
| table { | |
| width: 100%; | |
| border-collapse: collapse; | |
| font-size: 0.92rem; | |
| } | |
| th, | |
| td { | |
| padding: 11px 14px; | |
| border-bottom: 1px solid #edf0ed; | |
| text-align: left; | |
| vertical-align: top; | |
| } | |
| th { | |
| position: sticky; | |
| top: 0; | |
| z-index: 1; | |
| background: var(--surface); | |
| color: var(--muted); | |
| font-size: 0.72rem; | |
| font-weight: 850; | |
| letter-spacing: 0; | |
| text-transform: uppercase; | |
| } | |
| td:first-child { | |
| color: var(--denela-strong); | |
| font-weight: 850; | |
| } | |
| td:last-child { | |
| color: var(--muted); | |
| font-weight: 720; | |
| } | |
| .notes-panel { | |
| align-self: start; | |
| } | |
| #analysis { | |
| padding: 15px 16px 4px; | |
| color: var(--ink); | |
| line-height: 1.55; | |
| } | |
| #warnings { | |
| margin: 10px 16px 16px; | |
| padding-left: 18px; | |
| color: var(--amber); | |
| line-height: 1.45; | |
| } | |
| .empty-row td { | |
| color: var(--subtle); | |
| font-weight: 500; | |
| } | |
| @media (max-width: 900px) { | |
| .shell { | |
| width: min(calc(100% - 20px), 760px); | |
| padding-top: 14px; | |
| } | |
| .app-header, | |
| .translator, | |
| .details { | |
| grid-template-columns: 1fr; | |
| } | |
| .app-header { | |
| display: grid; | |
| } | |
| .status { | |
| max-width: 100%; | |
| white-space: normal; | |
| } | |
| .translator, | |
| .details { | |
| display: grid; | |
| } | |
| .checkline { | |
| max-width: 100%; | |
| white-space: normal; | |
| } | |
| .controls { | |
| grid-template-columns: 1fr; | |
| } | |
| } | |
| @media (max-width: 560px) { | |
| .shell { | |
| width: min(calc(100% - 14px), 540px); | |
| } | |
| .brand { | |
| align-items: flex-start; | |
| } | |
| .brand-mark { | |
| width: 50px; | |
| height: 50px; | |
| grid-template-columns: repeat(2, 20px); | |
| grid-template-rows: repeat(2, 20px); | |
| } | |
| h1 { | |
| font-size: 1.75rem; | |
| } | |
| .input-pane, | |
| .output-pane { | |
| padding: 14px; | |
| } | |
| .pane-head { | |
| align-items: flex-start; | |
| } | |
| .language-map { | |
| display: none; | |
| } | |
| .denela-text { | |
| font-size: 1.42rem; | |
| } | |
| th, | |
| td { | |
| padding: 10px; | |
| } | |
| .table-wrap { | |
| max-height: none; | |
| overflow: visible; | |
| } | |
| table, | |
| tbody, | |
| tr, | |
| td { | |
| display: block; | |
| width: 100%; | |
| } | |
| thead { | |
| display: none; | |
| } | |
| tr { | |
| padding: 10px 14px; | |
| border-bottom: 1px solid #edf0ed; | |
| } | |
| tr:last-child { | |
| border-bottom: 0; | |
| } | |
| td { | |
| display: grid; | |
| grid-template-columns: minmax(82px, 0.38fr) minmax(0, 1fr); | |
| gap: 10px; | |
| padding: 5px 0; | |
| border-bottom: 0; | |
| overflow-wrap: anywhere; | |
| } | |
| td::before { | |
| content: attr(data-label); | |
| color: var(--muted); | |
| font-size: 0.7rem; | |
| font-weight: 850; | |
| text-transform: uppercase; | |
| } | |
| .empty-row td { | |
| display: block; | |
| } | |
| .empty-row td::before { | |
| content: ""; | |
| } | |
| } | |