Spaces:
Running
Running
| :root { | |
| --bg-page: #f4f6fb; | |
| --bg-panel: #ffffff; | |
| --bg-soft: #eef2f8; | |
| --text-main: #142033; | |
| --text-muted: #5a6b87; | |
| --border: #d7deeb; | |
| --primary: #0f766e; | |
| --primary-2: #0ea5e9; | |
| --danger: #c2410c; | |
| --shadow: 0 16px 35px rgba(20, 32, 51, 0.08); | |
| --radius: 14px; | |
| --sidebar-width: 340px; | |
| } | |
| body[data-theme='night'] { | |
| --bg-page: #0f1422; | |
| --bg-panel: #161c2d; | |
| --bg-soft: #202944; | |
| --text-main: #e5edf8; | |
| --text-muted: #9aa9c3; | |
| --border: #2e3b5d; | |
| --primary: #8b5cf6; | |
| --primary-2: #22d3ee; | |
| --danger: #fb7185; | |
| --shadow: 0 20px 40px rgba(0, 0, 0, 0.35); | |
| } | |
| body[data-theme='ocean'] { | |
| --bg-page: #e9f8f8; | |
| --bg-panel: #f7ffff; | |
| --bg-soft: #dff1f4; | |
| --text-main: #0b2f39; | |
| --text-muted: #3e6874; | |
| --border: #b7d9e1; | |
| --primary: #0b8ba1; | |
| --primary-2: #0ea5e9; | |
| --danger: #be3d2a; | |
| } | |
| body[data-theme='sunset'] { | |
| --bg-page: #fff2ea; | |
| --bg-panel: #fffaf7; | |
| --bg-soft: #ffe5d6; | |
| --text-main: #3b1f1a; | |
| --text-muted: #7d5348; | |
| --border: #f0c4ae; | |
| --primary: #db5a42; | |
| --primary-2: #f59e0b; | |
| --danger: #b91c1c; | |
| } | |
| * { | |
| box-sizing: border-box; | |
| } | |
| html, body { | |
| height: 100%; | |
| margin: 0; | |
| } | |
| body { | |
| font-family: 'Manrope', 'Segoe UI', sans-serif; | |
| color: var(--text-main); | |
| background: | |
| radial-gradient(circle at 15% 10%, color-mix(in oklab, var(--primary) 12%, transparent) 0, transparent 30%), | |
| radial-gradient(circle at 95% 90%, color-mix(in oklab, var(--primary-2) 12%, transparent) 0, transparent 34%), | |
| var(--bg-page); | |
| overflow: hidden; | |
| } | |
| .app-container { | |
| display: grid; | |
| grid-template-columns: var(--sidebar-width) 1fr; | |
| height: 100vh; | |
| } | |
| .glass-panel { | |
| background: color-mix(in oklab, var(--bg-panel) 88%, transparent); | |
| backdrop-filter: blur(8px); | |
| border: 1px solid color-mix(in oklab, var(--border) 88%, white 12%); | |
| } | |
| #control-panel { | |
| position: relative; | |
| z-index: 5; | |
| padding: 20px; | |
| overflow-y: auto; | |
| border-right: 1px solid var(--border); | |
| box-shadow: var(--shadow); | |
| transition: transform 0.26s ease, opacity 0.26s ease, padding 0.26s ease, max-height 0.26s ease; | |
| } | |
| .panel-header { | |
| display: flex; | |
| gap: 12px; | |
| align-items: center; | |
| margin-bottom: 18px; | |
| } | |
| .logo-icon { | |
| width: 48px; | |
| height: 48px; | |
| border-radius: 12px; | |
| overflow: hidden; | |
| box-shadow: 0 10px 20px color-mix(in oklab, var(--primary-2) 30%, transparent); | |
| } | |
| .header-text h1 { | |
| margin: 0; | |
| font-size: 1.1rem; | |
| letter-spacing: 0.02em; | |
| } | |
| .subtitle { | |
| margin: 2px 0 0; | |
| font-size: 0.82rem; | |
| color: var(--text-muted); | |
| } | |
| .panel-toggle-btn { | |
| margin-left: auto; | |
| height: 34px; | |
| padding: 0 9px; | |
| font-size: 0.78rem; | |
| } | |
| .control-sections { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 14px; | |
| } | |
| .control-section { | |
| background: var(--bg-panel); | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius); | |
| padding: 14px; | |
| } | |
| .control-section h3 { | |
| margin: 0 0 12px; | |
| font-size: 0.78rem; | |
| letter-spacing: 0.08em; | |
| color: var(--text-muted); | |
| text-transform: uppercase; | |
| } | |
| .file-ops-section .button-grid { | |
| gap: 8px; | |
| margin-bottom: 7px; | |
| } | |
| .file-ops-section .btn { | |
| height: 40px; | |
| line-height: 1.1; | |
| } | |
| .button-grid { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr; | |
| gap: 9px; | |
| margin-bottom: 8px; | |
| } | |
| .button-grid.three-col { | |
| grid-template-columns: 1fr 1fr 1fr; | |
| } | |
| .button-grid.one-col { | |
| grid-template-columns: 1fr; | |
| } | |
| .btn { | |
| user-select: none; | |
| border: 1px solid var(--border); | |
| background: var(--bg-panel); | |
| color: var(--text-main); | |
| border-radius: 10px; | |
| height: 38px; | |
| padding: 0 10px; | |
| font-family: inherit; | |
| font-weight: 700; | |
| font-size: 0.83rem; | |
| cursor: pointer; | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 8px; | |
| transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease, filter 0.18s ease; | |
| } | |
| .btn:hover { | |
| transform: translateY(-1px); | |
| border-color: color-mix(in oklab, var(--primary) 35%, var(--border)); | |
| box-shadow: 0 8px 16px color-mix(in oklab, var(--text-main) 14%, transparent); | |
| } | |
| .btn:disabled { | |
| opacity: 0.5; | |
| cursor: not-allowed; | |
| box-shadow: none; | |
| transform: none; | |
| } | |
| .btn-primary { | |
| background: linear-gradient(135deg, var(--primary), var(--primary-2)); | |
| color: #fff; | |
| border-color: transparent; | |
| box-shadow: 0 8px 20px color-mix(in oklab, var(--primary) 35%, transparent); | |
| } | |
| .btn-primary:hover { | |
| box-shadow: 0 10px 24px color-mix(in oklab, var(--primary) 45%, transparent); | |
| } | |
| .btn-danger { | |
| color: var(--danger); | |
| background: color-mix(in oklab, var(--danger) 10%, var(--bg-panel)); | |
| border-color: color-mix(in oklab, var(--danger) 35%, var(--border)); | |
| } | |
| .btn.active { | |
| background: color-mix(in oklab, var(--primary) 20%, var(--bg-panel)); | |
| border-color: color-mix(in oklab, var(--primary) 45%, var(--border)); | |
| } | |
| .full-width { | |
| width: 100%; | |
| } | |
| .btn-icon { | |
| line-height: 1; | |
| } | |
| .input-group { | |
| margin-bottom: 10px; | |
| } | |
| .input-group label { | |
| display: block; | |
| margin-bottom: 6px; | |
| font-size: 0.8rem; | |
| font-weight: 700; | |
| color: var(--text-muted); | |
| } | |
| .insert-position-grid { | |
| display: grid; | |
| grid-template-columns: 1fr 120px; | |
| gap: 8px; | |
| margin-bottom: 8px; | |
| } | |
| .ui-switches { | |
| display: grid; | |
| gap: 6px; | |
| } | |
| .ui-switch { | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| font-size: 0.82rem; | |
| color: var(--text-main); | |
| font-weight: 700; | |
| } | |
| .ui-switch input[type='checkbox'] { | |
| accent-color: var(--primary); | |
| } | |
| input[type='number'], | |
| input[type='text'], | |
| select { | |
| width: 100%; | |
| height: 36px; | |
| border: 1px solid var(--border); | |
| background: var(--bg-panel); | |
| color: var(--text-main); | |
| border-radius: 10px; | |
| padding: 0 10px; | |
| font-family: inherit; | |
| font-size: 0.9rem; | |
| } | |
| #groupFilter, | |
| #themeSelect, | |
| #multiOrder, | |
| #groupOrderList { | |
| cursor: pointer; | |
| } | |
| input[type='color'] { | |
| width: 100%; | |
| height: 36px; | |
| border: 1px solid var(--border); | |
| border-radius: 10px; | |
| background: var(--bg-panel); | |
| padding: 4px; | |
| } | |
| input:focus, | |
| select:focus, | |
| textarea:focus { | |
| outline: 2px solid color-mix(in oklab, var(--primary-2) 28%, transparent); | |
| border-color: color-mix(in oklab, var(--primary-2) 45%, var(--border)); | |
| } | |
| input[type='range'] { | |
| width: 100%; | |
| } | |
| #viewport { | |
| z-index: 1; | |
| position: relative; | |
| overflow: hidden; | |
| cursor: grab; | |
| touch-action: none; | |
| background: | |
| linear-gradient(90deg, color-mix(in oklab, var(--text-main) 6%, transparent) 1px, transparent 1px), | |
| linear-gradient(180deg, color-mix(in oklab, var(--text-main) 6%, transparent) 1px, transparent 1px), | |
| color-mix(in oklab, var(--bg-page) 75%, white 25%); | |
| background-size: 28px 28px; | |
| } | |
| #viewport:active { | |
| cursor: grabbing; | |
| } | |
| #collage-area { | |
| position: absolute; | |
| left: 50%; | |
| top: 50%; | |
| transform: translate(-50%, -50%); | |
| display: grid; | |
| gap: 4px; | |
| border-radius: 10px; | |
| box-shadow: 0 10px 26px color-mix(in oklab, var(--text-main) 12%, transparent); | |
| } | |
| .active-skins-badge { | |
| position: absolute; | |
| top: 10px; | |
| left: 50%; | |
| transform: translateX(-50%); | |
| z-index: 4; | |
| pointer-events: none; | |
| padding: 6px 12px; | |
| border-radius: 999px; | |
| border: 1px solid var(--border); | |
| background: color-mix(in oklab, var(--bg-panel) 84%, transparent); | |
| color: var(--text-main); | |
| font-size: 0.78rem; | |
| font-weight: 800; | |
| letter-spacing: 0.02em; | |
| box-shadow: 0 6px 14px color-mix(in oklab, var(--text-main) 10%, transparent); | |
| backdrop-filter: blur(4px); | |
| } | |
| #collage-area.tight { | |
| border-radius: 0; | |
| box-shadow: none; | |
| background: transparent ; | |
| } | |
| #collage-area.tight .skin-item { | |
| border-radius: 0; | |
| } | |
| #collage-area.tight .skin-item:hover { | |
| transform: none; | |
| } | |
| .skin-item { | |
| position: relative; | |
| border-radius: 6px; | |
| border: 0; | |
| outline: 1px solid transparent; | |
| background-size: cover; | |
| background-position: top center; | |
| background-repeat: no-repeat; | |
| cursor: pointer; | |
| touch-action: manipulation; | |
| transition: 0.18s ease; | |
| } | |
| .skin-item:hover { | |
| outline-color: color-mix(in oklab, var(--primary) 65%, var(--primary-2)); | |
| transform: scale(1.01); | |
| } | |
| .skin-item.selected { | |
| outline-color: var(--primary); | |
| box-shadow: inset 0 0 0 3px color-mix(in oklab, var(--primary) 26%, transparent); | |
| } | |
| .skin-item.show-pos-hint::after { | |
| content: '#' attr(data-grid-pos); | |
| position: absolute; | |
| top: 6px; | |
| right: 6px; | |
| z-index: 2; | |
| background: color-mix(in oklab, #111 78%, transparent); | |
| color: #fff; | |
| border: 1px solid color-mix(in oklab, #fff 24%, transparent); | |
| border-radius: 999px; | |
| padding: 3px 8px; | |
| font-size: 0.72rem; | |
| font-weight: 800; | |
| line-height: 1; | |
| pointer-events: none; | |
| } | |
| .skin-item.search-hit { | |
| outline-color: #2563eb; | |
| box-shadow: inset 0 0 0 3px color-mix(in oklab, #2563eb 24%, transparent), 0 0 0 1px color-mix(in oklab, #2563eb 65%, transparent); | |
| } | |
| .search-badge { | |
| position: absolute; | |
| top: 6px; | |
| left: 6px; | |
| background: color-mix(in oklab, #2563eb 92%, white 8%); | |
| color: #fff; | |
| border-radius: 999px; | |
| font-weight: 800; | |
| font-size: 0.7rem; | |
| line-height: 1; | |
| padding: 4px 8px; | |
| letter-spacing: 0.02em; | |
| } | |
| .skin-item.placeholder { | |
| display: grid; | |
| place-items: center; | |
| background: var(--bg-soft); | |
| border: 1px dashed color-mix(in oklab, var(--border) 85%, var(--text-muted)); | |
| color: var(--text-muted); | |
| font-weight: 800; | |
| letter-spacing: 0.02em; | |
| } | |
| .skin-item.placeholder.search-hit { | |
| color: #1d4ed8; | |
| font-weight: 900; | |
| } | |
| .empty-state { | |
| position: absolute; | |
| inset: 0; | |
| display: grid; | |
| place-content: center; | |
| text-align: center; | |
| color: var(--text-muted); | |
| gap: 8px; | |
| } | |
| .empty-state.hidden { | |
| display: none; | |
| } | |
| .empty-icon { | |
| font-size: 2.6rem; | |
| } | |
| .floating-panel { | |
| position: fixed; | |
| left: 50%; | |
| bottom: 16px; | |
| transform: translate(-50%, 120%); | |
| transition: transform 0.25s ease; | |
| padding: 10px 12px; | |
| border-radius: 12px; | |
| border: 1px solid var(--border); | |
| box-shadow: var(--shadow); | |
| display: flex; | |
| align-items: center; | |
| gap: 12px; | |
| z-index: 30; | |
| } | |
| .floating-panel.visible { | |
| transform: translate(-50%, 0); | |
| } | |
| .selection-info { | |
| font-size: 0.85rem; | |
| font-weight: 700; | |
| color: var(--text-muted); | |
| } | |
| .button-group { | |
| display: flex; | |
| gap: 8px; | |
| } | |
| .modal-overlay { | |
| visibility: hidden; | |
| pointer-events: none; | |
| position: fixed; | |
| inset: 0; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| background: color-mix(in oklab, black 55%, transparent); | |
| z-index: 100; | |
| padding: 16px; | |
| opacity: 0; | |
| transition: opacity 0.2s ease; | |
| } | |
| .modal-overlay.active { | |
| visibility: visible; | |
| pointer-events: auto; | |
| opacity: 1; | |
| } | |
| .modal-content { | |
| width: min(760px, 100%); | |
| background: var(--bg-panel); | |
| border: 1px solid var(--border); | |
| border-radius: 16px; | |
| box-shadow: var(--shadow); | |
| } | |
| .modal-header, | |
| .modal-footer { | |
| padding: 14px 16px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| } | |
| .modal-footer { | |
| justify-content: flex-end; | |
| gap: 10px; | |
| } | |
| .modal-body { | |
| padding: 0 16px 12px; | |
| } | |
| .modal-hint { | |
| margin: 8px 0 0; | |
| font-size: 0.8rem; | |
| color: var(--text-muted); | |
| } | |
| .modal-close { | |
| width: 32px; | |
| height: 32px; | |
| border-radius: 50%; | |
| border: 1px solid var(--border); | |
| background: var(--bg-panel); | |
| color: var(--text-main); | |
| cursor: pointer; | |
| } | |
| .processor-preview { | |
| height: 360px; | |
| background: #0f172a; | |
| display: grid; | |
| place-items: center; | |
| } | |
| .processor-preview img { | |
| max-width: 100%; | |
| max-height: 100%; | |
| } | |
| .stitch-preview { | |
| height: min(72vh, 680px); | |
| overflow: auto; | |
| background: #0f172a; | |
| } | |
| .stitch-preview img { | |
| width: auto; | |
| height: auto; | |
| max-width: 100%; | |
| max-height: none; | |
| object-fit: contain; | |
| display: block; | |
| margin: 0 auto; | |
| } | |
| .input-row { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr auto; | |
| gap: 10px; | |
| align-items: end; | |
| } | |
| .insert-meta-panel { | |
| margin-top: 10px; | |
| padding-top: 10px; | |
| border-top: 1px solid var(--border); | |
| } | |
| #loading-overlay { | |
| z-index: 120; | |
| } | |
| .loader-container { | |
| background: var(--bg-panel); | |
| border-radius: 14px; | |
| padding: 18px 20px; | |
| text-align: center; | |
| border: 1px solid var(--border); | |
| width: min(420px, 100%); | |
| } | |
| .spinner { | |
| width: 36px; | |
| height: 36px; | |
| border-radius: 50%; | |
| border: 3px solid color-mix(in oklab, var(--primary) 20%, var(--border)); | |
| border-top-color: var(--primary-2); | |
| margin: 0 auto 10px; | |
| animation: spin 0.9s linear infinite; | |
| } | |
| @keyframes spin { | |
| to { transform: rotate(360deg); } | |
| } | |
| .loading-text { | |
| font-size: 0.78rem; | |
| letter-spacing: 0.08em; | |
| color: var(--text-muted); | |
| font-weight: 800; | |
| margin-bottom: 8px; | |
| } | |
| .loading-progress-label { | |
| font-size: 0.78rem; | |
| color: var(--text-main); | |
| font-weight: 700; | |
| margin-bottom: 8px; | |
| } | |
| .loading-progress-track { | |
| width: 100%; | |
| height: 10px; | |
| border-radius: 999px; | |
| background: color-mix(in oklab, var(--bg-soft) 80%, var(--border)); | |
| overflow: hidden; | |
| } | |
| .loading-progress-bar { | |
| height: 100%; | |
| width: 0%; | |
| background: linear-gradient(90deg, var(--primary), var(--primary-2)); | |
| transition: width 0.16s linear; | |
| } | |
| .loading-progress-detail { | |
| min-height: 1.1em; | |
| margin-top: 8px; | |
| font-size: 0.75rem; | |
| color: var(--text-muted); | |
| } | |
| .floating-action { | |
| display: none; | |
| position: fixed; | |
| top: 12px; | |
| left: 12px; | |
| z-index: 60; | |
| box-shadow: var(--shadow); | |
| } | |
| .sidebar-scrim, | |
| .mobile-quickbar { | |
| display: none; | |
| } | |
| body.sidebar-collapsed .app-container { | |
| grid-template-columns: 0 1fr; | |
| } | |
| body.sidebar-collapsed #control-panel { | |
| transform: translateX(-110%); | |
| opacity: 0; | |
| pointer-events: none; | |
| } | |
| body.sidebar-collapsed #btnToggleSidebarFab { | |
| display: inline-flex ; | |
| } | |
| body.ui-compact #control-panel { | |
| padding: 14px; | |
| } | |
| body.ui-compact .control-section { | |
| padding: 10px; | |
| } | |
| body.ui-compact .btn { | |
| height: 34px; | |
| font-size: 0.78rem; | |
| } | |
| body.ui-contrast { | |
| --border: color-mix(in oklab, black 28%, var(--text-main)); | |
| --text-muted: color-mix(in oklab, var(--text-main) 72%, var(--bg-panel)); | |
| } | |
| @media (max-width: 980px) { | |
| .app-container { | |
| grid-template-columns: 1fr; | |
| grid-template-rows: auto 1fr; | |
| } | |
| #control-panel { | |
| border-right: 0; | |
| border-bottom: 1px solid var(--border); | |
| max-height: 44vh; | |
| } | |
| .button-grid, | |
| .button-grid.three-col { | |
| grid-template-columns: 1fr; | |
| } | |
| .input-row { | |
| grid-template-columns: 1fr; | |
| } | |
| .insert-position-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| body.sidebar-collapsed .app-container { | |
| grid-template-columns: 1fr; | |
| grid-template-rows: 0 1fr; | |
| } | |
| body.sidebar-collapsed #control-panel { | |
| max-height: 0; | |
| padding-top: 0; | |
| padding-bottom: 0; | |
| border-bottom: 0; | |
| } | |
| } | |
| .hint-text { | |
| margin-top: 6px; | |
| font-size: 0.78rem; | |
| color: var(--text-muted); | |
| } | |
| .group-order-list { | |
| height: 148px; | |
| overflow-y: auto; | |
| border: 1px solid var(--border); | |
| border-radius: 10px; | |
| background: var(--bg-panel); | |
| padding: 6px; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 6px; | |
| touch-action: pan-y; | |
| } | |
| .group-order-item { | |
| min-height: 34px; | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| padding: 7px 9px; | |
| border-radius: 8px; | |
| border: 1px solid color-mix(in oklab, var(--border) 80%, transparent); | |
| background: color-mix(in oklab, var(--bg-panel) 88%, var(--bg-page)); | |
| cursor: default; | |
| user-select: none; | |
| transition: transform 160ms ease, background 160ms ease, border-color 160ms ease, box-shadow 160ms ease; | |
| } | |
| .group-order-item:hover { | |
| border-color: color-mix(in oklab, var(--primary) 35%, var(--border)); | |
| } | |
| .group-order-item.selected { | |
| border-color: color-mix(in oklab, var(--primary) 55%, var(--border)); | |
| background: color-mix(in oklab, var(--primary) 16%, var(--bg-panel)); | |
| box-shadow: 0 0 0 2px color-mix(in oklab, var(--primary) 18%, transparent); | |
| } | |
| .group-order-item.dragging { | |
| transform: scale(1.02); | |
| } | |
| .group-order-handle { | |
| width: 24px; | |
| height: 24px; | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| border-radius: 6px; | |
| border: 1px solid color-mix(in oklab, var(--border) 85%, transparent); | |
| background: color-mix(in oklab, var(--bg-soft) 72%, var(--bg-panel)); | |
| color: var(--text-muted); | |
| cursor: grab; | |
| font-size: 0.7rem; | |
| font-weight: 800; | |
| letter-spacing: 0.05em; | |
| touch-action: none; | |
| } | |
| .group-order-item.dragging .group-order-handle { | |
| cursor: grabbing; | |
| } | |
| .group-order-rank { | |
| width: 24px; | |
| height: 24px; | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| border-radius: 999px; | |
| font-size: 0.75rem; | |
| font-weight: 800; | |
| color: var(--text-muted); | |
| background: color-mix(in oklab, var(--bg-page) 70%, var(--bg-panel)); | |
| } | |
| .group-order-name { | |
| font-size: 0.86rem; | |
| font-weight: 700; | |
| color: var(--text-main); | |
| } | |
| textarea { | |
| width: 100%; | |
| min-height: 104px; | |
| border: 1px solid var(--border); | |
| background: var(--bg-panel); | |
| color: var(--text-main); | |
| border-radius: 10px; | |
| padding: 8px 10px; | |
| font-family: inherit; | |
| font-size: 0.85rem; | |
| line-height: 1.35; | |
| resize: vertical; | |
| } | |
| .markdown-preview { | |
| border: 1px solid var(--border); | |
| border-radius: 10px; | |
| background: var(--bg-panel); | |
| padding: 10px; | |
| max-height: 240px; | |
| overflow: auto; | |
| font-size: 0.84rem; | |
| line-height: 1.45; | |
| } | |
| .markdown-preview pre, | |
| .markdown-preview code { | |
| font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', monospace; | |
| } | |
| .markdown-preview pre { | |
| margin: 8px 0; | |
| padding: 8px; | |
| border-radius: 8px; | |
| background: color-mix(in oklab, var(--bg-soft) 78%, var(--bg-panel)); | |
| border: 1px solid var(--border); | |
| overflow: auto; | |
| } | |
| .markdown-preview h1, | |
| .markdown-preview h2, | |
| .markdown-preview h3 { | |
| margin: 8px 0 4px; | |
| } | |
| .markdown-preview p, | |
| .markdown-preview ul { | |
| margin: 6px 0; | |
| } | |
| #autoOrderInput { | |
| white-space: pre; | |
| } | |
| #autoOrderMissing { | |
| min-height: 86px; | |
| color: var(--text-muted); | |
| } | |
| .auto-suggestion-list { | |
| margin-top: 8px; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 6px; | |
| } | |
| .suggest-row { | |
| background: color-mix(in oklab, var(--bg-panel) 80%, var(--bg-page)); | |
| border: 1px solid var(--border); | |
| border-radius: 8px; | |
| padding: 6px 8px; | |
| } | |
| .suggest-title { | |
| font-size: 0.76rem; | |
| color: var(--text-muted); | |
| margin-bottom: 5px; | |
| word-break: break-word; | |
| } | |
| .suggest-chips { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 6px; | |
| } | |
| .suggest-chip { | |
| border: 1px solid color-mix(in oklab, var(--primary) 40%, var(--border)); | |
| background: color-mix(in oklab, var(--primary) 14%, var(--bg-panel)); | |
| color: var(--text-main); | |
| border-radius: 999px; | |
| padding: 4px 10px; | |
| font-size: 0.75rem; | |
| cursor: pointer; | |
| } | |
| .suggest-chip:hover { | |
| border-color: color-mix(in oklab, var(--primary) 60%, var(--border)); | |
| } | |
| .tab-switcher { | |
| display: grid; | |
| grid-template-columns: repeat(3, minmax(0, 1fr)); | |
| gap: 8px; | |
| margin-bottom: 12px; | |
| } | |
| .tab-btn.active { | |
| background: linear-gradient(135deg, var(--primary), var(--primary-2)); | |
| color: #fff; | |
| border-color: transparent; | |
| } | |
| .tab-panel { | |
| display: none; | |
| } | |
| .tab-panel.active { | |
| display: flex; | |
| } | |
| .hidden { | |
| display: none ; | |
| } | |
| .ocr-workspace { | |
| z-index: 2; | |
| overflow: auto; | |
| padding: 22px; | |
| background: | |
| radial-gradient(circle at 10% 8%, color-mix(in oklab, var(--primary) 14%, transparent), transparent 32%), | |
| radial-gradient(circle at 88% 90%, color-mix(in oklab, var(--primary-2) 14%, transparent), transparent 36%), | |
| color-mix(in oklab, var(--bg-page) 78%, white 22%); | |
| } | |
| .profile-workspace { | |
| z-index: 2; | |
| padding: 0; | |
| background: #0f172a; | |
| } | |
| .profile-frame { | |
| width: 100%; | |
| height: 100%; | |
| border: 0; | |
| display: block; | |
| background: #0f172a; | |
| } | |
| .ocr-workspace-header h2 { | |
| margin: 0 0 6px; | |
| } | |
| .ocr-workspace-header p { | |
| margin: 0 0 14px; | |
| color: var(--text-muted); | |
| font-size: 0.9rem; | |
| } | |
| .ocr-results { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); | |
| gap: 12px; | |
| } | |
| .ocr-result-card { | |
| border: 1px solid var(--border); | |
| border-radius: 12px; | |
| background: var(--bg-panel); | |
| padding: 8px; | |
| box-shadow: var(--shadow); | |
| } | |
| .ocr-result-card img { | |
| width: 100%; | |
| border-radius: 8px; | |
| border: 1px solid var(--border); | |
| display: block; | |
| } | |
| .ocr-result-meta { | |
| margin-top: 8px; | |
| font-size: 0.8rem; | |
| color: var(--text-muted); | |
| font-weight: 700; | |
| } | |
| @media (max-width: 980px) { | |
| .tab-switcher { | |
| grid-template-columns: 1fr; | |
| } | |
| } | |
| #viewport, | |
| .ocr-workspace, | |
| .profile-workspace { | |
| grid-column: 2; | |
| grid-row: 1; | |
| min-height: 0; | |
| } | |
| @media (max-width: 980px) { | |
| #viewport, | |
| .ocr-workspace, | |
| .profile-workspace { | |
| grid-column: 1; | |
| grid-row: 2; | |
| } | |
| } | |
| .drawer-scrim { | |
| position: fixed; | |
| inset: 0; | |
| background: color-mix(in oklab, black 50%, transparent); | |
| opacity: 0; | |
| visibility: hidden; | |
| pointer-events: none; | |
| transition: opacity 0.24s ease; | |
| z-index: 40; | |
| } | |
| .drawer-scrim.open { | |
| opacity: 1; | |
| visibility: visible; | |
| pointer-events: auto; | |
| } | |
| .utility-drawer { | |
| position: fixed; | |
| top: 0; | |
| right: 0; | |
| width: 400px; | |
| max-width: calc(100vw - 18px); | |
| height: 100vh; | |
| z-index: 41; | |
| transform: translateX(105%); | |
| transition: transform 0.24s ease; | |
| border-left: 1px solid var(--border); | |
| box-shadow: -16px 0 30px color-mix(in oklab, var(--text-main) 24%, transparent); | |
| padding: 14px; | |
| overflow: hidden; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 12px; | |
| } | |
| .utility-drawer.open { | |
| transform: translateX(0); | |
| } | |
| .utility-drawer-header { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| border-bottom: 1px solid var(--border); | |
| padding-bottom: 8px; | |
| } | |
| .utility-drawer-header h3 { | |
| margin: 0; | |
| font-size: 0.95rem; | |
| letter-spacing: 0.03em; | |
| } | |
| .utility-section { | |
| border: 1px solid var(--border); | |
| border-radius: 12px; | |
| background: color-mix(in oklab, var(--bg-panel) 92%, transparent); | |
| padding: 10px; | |
| } | |
| .utility-section label { | |
| font-size: 0.8rem; | |
| font-weight: 700; | |
| color: var(--text-muted); | |
| } | |
| .drawer-search-row { | |
| display: grid; | |
| grid-template-columns: 1fr auto; | |
| gap: 8px; | |
| margin-top: 6px; | |
| } | |
| .utility-row { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 8px; | |
| margin-bottom: 8px; | |
| } | |
| .utility-row h4 { | |
| margin: 0; | |
| font-size: 0.85rem; | |
| } | |
| .utility-actions { | |
| display: flex; | |
| gap: 8px; | |
| } | |
| .bin-list { | |
| max-height: 52vh; | |
| overflow: auto; | |
| border: 1px dashed var(--border); | |
| border-radius: 10px; | |
| padding: 6px; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 6px; | |
| } | |
| .bin-empty { | |
| color: var(--text-muted); | |
| font-size: 0.82rem; | |
| text-align: center; | |
| padding: 12px 8px; | |
| } | |
| .bin-item { | |
| border: 1px solid var(--border); | |
| border-radius: 10px; | |
| padding: 8px; | |
| display: grid; | |
| grid-template-columns: 52px 1fr auto; | |
| gap: 8px; | |
| align-items: center; | |
| background: var(--bg-panel); | |
| } | |
| .bin-item.selected { | |
| border-color: color-mix(in oklab, var(--primary) 55%, var(--border)); | |
| box-shadow: 0 0 0 2px color-mix(in oklab, var(--primary) 18%, transparent); | |
| } | |
| .bin-item-preview { | |
| width: 52px; | |
| height: 52px; | |
| border-radius: 8px; | |
| object-fit: cover; | |
| border: 1px solid var(--border); | |
| background: var(--bg-soft); | |
| } | |
| .bin-item-preview.placeholder { | |
| display: grid; | |
| place-items: center; | |
| font-size: 0.68rem; | |
| font-weight: 700; | |
| color: var(--text-muted); | |
| } | |
| .bin-item-body { | |
| min-width: 0; | |
| } | |
| .bin-item-name { | |
| font-size: 0.82rem; | |
| font-weight: 700; | |
| color: var(--text-main); | |
| white-space: nowrap; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| } | |
| .bin-item-meta { | |
| font-size: 0.72rem; | |
| color: var(--text-muted); | |
| } | |
| @media (max-width: 980px) { | |
| .utility-drawer { | |
| width: 100vw; | |
| max-width: 100vw; | |
| } | |
| } | |