:root { color-scheme: light; font-family: Inter, "PingFang SC", "Microsoft YaHei", sans-serif; color: #17202a; background: #f4f6f7; letter-spacing: 0; } * { box-sizing: border-box; } body { margin: 0; min-width: 320px; } button, input, select { font: inherit; letter-spacing: 0; } button { cursor: pointer; } .topbar { min-height: 72px; padding: 14px 28px; display: flex; align-items: center; justify-content: space-between; gap: 24px; color: #fff; background: #20262c; border-bottom: 3px solid #1f8a70; } h1, h2 { margin: 0; letter-spacing: 0; } h1 { font-size: 21px; line-height: 1.35; } h2 { font-size: 17px; } .service-state, .section-heading span { font-size: 13px; color: #66727d; } .topbar .service-state { color: #c8d0d7; } .admin-auth { display: flex; align-items: center; gap: 8px; } .admin-auth label { font-size: 13px; color: #d5dadd; } input, select { min-height: 36px; padding: 7px 10px; border: 1px solid #b8c0c7; border-radius: 4px; background: #fff; } button { min-height: 36px; padding: 7px 13px; border: 1px solid #aab4bc; border-radius: 4px; color: #26323c; background: #fff; } button:hover { background: #edf1f3; } button:disabled { cursor: default; opacity: .55; } .primary { color: #fff; border-color: #176b57; background: #1f8a70; } .primary:hover { background: #176b57; } .danger { color: #a12622; border-color: #d4aaa8; } .icon-button { width: 36px; padding: 0; font-weight: 700; } main { width: min(1480px, 100%); margin: 0 auto; } section { padding: 24px 28px; } .upload-band { background: #fff; border-bottom: 1px solid #dce1e5; } .video-band { min-height: 400px; } .section-heading { min-height: 30px; display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 14px; } #upload-form { display: grid; grid-template-columns: minmax(260px, 2fr) minmax(180px, 1fr) 150px auto; align-items: end; gap: 12px; } #upload-form label { display: grid; gap: 5px; font-size: 13px; color: #4f5b64; } #upload-progress { width: 100%; height: 8px; margin-top: 14px; accent-color: #1f8a70; } .table-scroll { overflow: auto; border: 1px solid #d7dde1; background: #fff; } table { width: 100%; border-collapse: collapse; font-size: 13px; } th, td { padding: 10px 12px; text-align: left; border-bottom: 1px solid #e3e7ea; vertical-align: middle; } th { position: sticky; top: 0; z-index: 1; color: #44515b; background: #edf1f3; font-weight: 600; } tr:last-child td { border-bottom: 0; } .actions-column { min-width: 280px; } .actions { display: flex; gap: 6px; white-space: nowrap; } .actions button, .actions a { min-height: 30px; padding: 5px 9px; font-size: 12px; } .actions a { display: inline-flex; align-items: center; border: 1px solid #aab4bc; border-radius: 4px; color: #26323c; text-decoration: none; } .status { display: inline-block; min-width: 64px; font-weight: 600; } .status-ready { color: #167356; } .status-failed { color: #b12d28; } .status-processing, .status-uploaded { color: #a45d08; } .error-message { max-width: 320px; margin-top: 3px; color: #a12622; font-size: 12px; white-space: normal; } .empty-state { padding: 70px 20px; text-align: center; color: #6f7a82; } dialog { width: min(1200px, calc(100vw - 32px)); max-height: calc(100vh - 32px); padding: 0; border: 1px solid #909ba3; border-radius: 6px; box-shadow: 0 18px 60px rgb(0 0 0 / 25%); } dialog::backdrop { background: rgb(20 25 28 / 55%); } .dialog-heading { padding: 16px 18px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #dce1e5; } .dialog-heading span { font-size: 12px; color: #68747d; } .sentence-scroll { max-height: calc(100vh - 120px); overflow: auto; } .sentence-scroll textarea { width: min(600px, 45vw); min-width: 260px; min-height: 58px; resize: vertical; padding: 7px; border: 1px solid #b8c0c7; border-radius: 3px; } .sentence-scroll select { min-width: 90px; } @media (max-width: 820px) { .topbar { align-items: stretch; flex-direction: column; padding: 14px 16px; } .admin-auth { flex-wrap: wrap; } .admin-auth input { flex: 1 1 150px; } section { padding: 20px 16px; } #upload-form { grid-template-columns: 1fr; } .actions-column { min-width: 250px; } }