.subtitle { font-size: 12px; color: var(--ink-light); font-weight: 300; letter-spacing: 0.1em; border-left: 2px solid var(--accent); padding-left: 10px; }

    .multi-badge { position: absolute; top: 14px; right: 14px; font-size: 10px; letter-spacing: 0.12em; background: var(--accent-muted); color: var(--accent); padding: 3px 10px; border: 1px solid var(--accent); }

    /* ── Workspace ── */
    .workspace { display: grid; grid-template-columns: 1fr 300px; gap: 20px; align-items: start; }

    /* ── Preview Panel ── */
    .preview-panel { border: 1px solid var(--border); background: var(--card); display: flex; flex-direction: column; }
    .panel-header { display: flex; align-items: center; justify-content: space-between; padding: 10px 16px; border-bottom: 1px solid var(--border); background: var(--bg); }
    .panel-header-left { display: flex; align-items: center; gap: 8px; }
    .panel-label { font-size: 10px; letter-spacing: 0.2em; color: var(--ink-light); text-transform: uppercase; }
    .panel-meta { font-size: 10px; color: var(--ink-light); }
    .preview-canvas-area { flex: 1; min-height: 360px; display: flex; align-items: center; justify-content: center; padding: 24px; background: repeating-conic-gradient(#E8EAED 0% 25%, #F8F9FA 0% 50%) 0 0 / 16px 16px; }
    #previewCanvas { display: block; max-width: 100%; max-height: 520px; box-shadow: 0 4px 24px rgba(0,0,0,0.13); }
    .panel-footer { padding: 10px 16px; border-top: 1px solid var(--border); background: var(--bg); display: flex; align-items: center; justify-content: space-between; }

    /* ── Sidebar ── */
    .sidebar { display: flex; flex-direction: column; gap: 1px; background: var(--rule); border: 1px solid var(--border); }
    .sidebar-section { background: var(--card); padding: 16px; }
    .sidebar-title { font-size: 9px; letter-spacing: 0.25em; color: var(--ink-light); text-transform: uppercase; margin-bottom: 12px; }

    /* Layout grid presets */
    .layout-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; }
    .layout-btn { border: 1px solid var(--border); background: transparent; cursor: pointer; padding: 8px 4px 6px; display: flex; flex-direction: column; align-items: center; gap: 4px; transition: all 0.15s; }
    .layout-btn:hover { border-color: var(--blue); }
    .layout-btn.active { background: var(--blue); border-color: var(--blue); }
    .layout-preview { display: grid; gap: 1px; background: var(--rule); width: 36px; height: 28px; overflow: hidden; }
    .layout-btn.active .layout-preview { background: rgba(255,255,255,0.3); }
    .lp-cell { background: var(--rule); }
    .layout-btn.active .lp-cell { background: rgba(255,255,255,0.5); }
    .layout-label { font-size: 9px; color: var(--ink-light); letter-spacing: 0.05em; }
    .layout-btn.active .layout-label { color: rgba(255,255,255,0.7); }

    /* Image list */
    .img-list { display: flex; flex-direction: column; gap: 1px; max-height: 260px; overflow-y: auto; }
    .img-list::-webkit-scrollbar { width: 3px; }
    .img-list::-webkit-scrollbar-thumb { background: var(--rule); }
    .img-item { display: flex; align-items: center; gap: 8px; padding: 6px 8px; background: var(--bg); border: 1px solid var(--border); cursor: grab; transition: background 0.1s; user-select: none; }
    .img-item:hover { background: #FFFFFF; }
    .img-item.dragging { opacity: 0.4; }
    .img-item.drag-over-top { border-top: 2px solid var(--accent); }
    .img-item.drag-over-bottom { border-bottom: 2px solid var(--accent); }
    .img-thumb { width: 36px; height: 36px; object-fit: cover; display: block; flex-shrink: 0; }
    .img-name { font-size: 11px; color: var(--ink); font-weight: 300; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
    .img-remove { font-size: 12px; color: var(--ink-light); background: none; border: none; cursor: pointer; padding: 2px 4px; flex-shrink: 0; transition: color 0.15s; }
    .img-remove:hover { color: var(--accent); }
    .drag-handle { font-size: 12px; color: var(--ink-xlight); flex-shrink: 0; cursor: grab; }

    .add-more-btn { font-size: 10px; letter-spacing: 0.1em; border: 1px dashed var(--rule); background: transparent; color: var(--ink-light); padding: 8px; width: 100%; cursor: pointer; transition: all 0.15s; margin-top: 6px; }
    .add-more-btn:hover { border-color: var(--blue); color: var(--blue); }
    #addMoreInput { display: none; }

    /* Sliders */
    .slider-row { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
    .slider-row:last-child { margin-bottom: 0; }
    .slider-row-label { font-size: 10px; color: var(--ink-light); width: 60px; flex-shrink: 0; }
    .slider-val { font-size: 12px; color: var(--ink); min-width: 32px; text-align: right; }

    /* Color */
    .color-label { font-size: 10px; color: var(--ink-light); width: 60px; flex-shrink: 0; }
    .color-presets {
      display: flex;
      gap: 8px;
      flex-wrap: wrap;
      margin-bottom: 10px;
    }
    .cp {
      width: 30px;
      height: 30px;
      border: 1px solid var(--border);
      cursor: pointer;
      transition: transform 0.12s, border-color 0.12s, box-shadow 0.12s;
      flex-shrink: 0;
    }
    .cp:hover {
      transform: scale(1.08);
      border-color: var(--blue);
    }
    .cp.active {
      border: 2px solid var(--blue);
      box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.14);
    }

    /* Output size */
    .output-size-btns { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }
    .output-size-btn { font-size: 10px; letter-spacing: 0.05em; border: 1px solid var(--border); background: transparent; color: var(--ink-light); padding: 7px 4px; cursor: pointer; transition: all 0.15s; text-align: center; }
    .output-size-btn:hover { border-color: var(--blue); color: var(--blue); }
    .output-size-btn.active { background: var(--blue); color: #fff; border-color: var(--blue); }

    /* Fit mode */
    .fit-btns { display: flex; }
    .fit-btn { flex: 1; font-size: 9px; letter-spacing: 0.06em; border: 1px solid var(--border); background: transparent; color: var(--ink-light); padding: 7px 4px; cursor: pointer; transition: all 0.15s; margin-left: -1px; text-align: center; }
    .fit-btn:first-child { margin-left: 0; }
    .fit-btn:hover:not(.active) { border-color: var(--blue); color: var(--blue); z-index: 1; }
    .fit-btn.active { background: var(--blue); color: #fff; border-color: var(--blue); z-index: 1; }

    /* Format */

    /* Actions */
    .action-section { background: var(--card); padding: 16px; display: flex; flex-direction: column; gap: 8px; }
    .apply-btn { font-size: 11px; letter-spacing: 0.15em; background: var(--blue); color: #fff; border: none; height: 44px; width: 100%; cursor: pointer; transition: background 0.15s, transform 0.1s; display: flex; align-items: center; justify-content: center; gap: 8px; }
    .apply-btn:hover { background: var(--blue); }
    .apply-btn:active { transform: scale(0.98); }
    .apply-btn:disabled { opacity: 0.35; cursor: not-allowed; }
    .apply-btn:disabled:hover { background: var(--blue); }

    .is-applying .spinner { display: block; }
    .is-applying .btn-label { display: none; }

    @media (max-width: 960px) {
      header, main, .page-hero, footer { padding-left: 20px; padding-right: 20px; }
      .workspace { grid-template-columns: 1fr; }
      .sidebar { order: -1; }
      .layout-grid { grid-template-columns: repeat(8,1fr); }
    }
