.subtitle { font-size: 12px; color: var(--ink-light); font-weight: 300; letter-spacing: 0.1em; border-left: 2px solid var(--accent); padding-left: 10px; }
    .panel-header { padding: 10px 16px; border-bottom: 1px solid var(--border); background: var(--bg); display: flex; justify-content: space-between; align-items: center; gap: 12px; }
    .panel-label { font-size: 10px; letter-spacing: 0.2em; color: var(--ink-light); text-transform: uppercase; }
    .panel-body { padding: 18px; }
    .preview-wrap, .preview-area { display:flex; align-items:center; justify-content:center; min-height: 420px; padding: 16px; background:#fff; }
    .preview-wrap canvas, .preview-area canvas { max-width:100%; max-height:560px; display:block; }
    .tool-note { font-size:12px; color:var(--ink-light); line-height:1.75; }
    .text-input, .select-input, .number-input { width:100%; border:1px solid var(--border); background:#fff; color:var(--ink); font:inherit; font-size:13px; padding:10px 12px; border-radius:6px; }
    .textarea-input { width:100%; min-height: 140px; border:1px solid var(--border); background:#fff; color:var(--ink); font:inherit; font-size:13px; line-height:1.8; padding:12px 14px; border-radius:8px; resize:vertical; }
    .range-value { min-width:48px; text-align:right; font-size:12px; color:var(--ink-light); }
    .hidden { display:none !important; }
    .fmt-row { display:flex; flex-wrap:wrap; gap:6px; }
    .fmt-btn { min-width: 68px; }
    .fmt-btn.active { background: var(--blue); color: #fff; border-color: var(--blue); }
    .action-bar { display:flex; flex-direction:column; gap:10px; }
    .result-actions { display:flex; gap:10px; flex-wrap:wrap; }
    .preview-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:12px; }
    .preview-thumb { border:1px solid var(--border); border-radius:8px; padding:8px; background:#fff; display:flex; flex-direction:column; gap:6px; }
    .preview-thumb img, .preview-thumb canvas { width:100%; height:100px; object-fit:contain; background:#f7f7f7; border:1px solid var(--border); border-radius:6px; }
    .preview-thumb span { font-size:12px; color:var(--ink-light); text-align:center; }
    .workspace .panel { min-width: 0; }
    .color-row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
    .color-row-label { min-width:42px; font-size:12px; color:var(--ink-light); }
    .color-swatch { width:34px; height:34px; border-radius:8px; border:1px solid var(--border); cursor:pointer; box-shadow: inset 0 0 0 1px rgba(255,255,255,.3); }
    input[type="color"] { position:absolute; opacity:0; pointer-events:none; width:0; height:0; }
    .color-hex-input { flex:1 1 140px; min-width:140px; }
    .canvas-stage { position:relative; display:flex; align-items:center; justify-content:center; min-height:420px; padding:16px; background:#fff; overflow:auto; }
    .canvas-stage canvas { max-width:100%; max-height:560px; display:block; touch-action:none; cursor:crosshair; }
    .tool-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
    .small-btn { padding: 9px 12px; border:1px solid var(--border); background:#fff; color:var(--ink); border-radius:6px; font:inherit; font-size:12px; cursor:pointer; }
    .small-btn:hover { border-color: var(--ink); }
    .chart-result { min-height: 420px; display:flex; align-items:flex-start; justify-content:flex-start; padding:20px; overflow:auto; background:#fff; }
    .chart-result canvas { display:block; max-width:none !important; max-height:none !important; flex:0 0 auto; }
    .crop-preview-wrap { position:relative; display:flex; align-items:center; justify-content:center; min-height:420px; padding:16px; background:#fff; }
    .crop-preview-wrap canvas { max-width:100%; max-height:560px; display:block; }
    
  

    .chart-result { min-height: 420px; display:flex; align-items:flex-start; justify-content:flex-start; padding:20px; overflow:auto; background:#fff; }
    .chart-result canvas { display:block; max-width:none !important; max-height:none !important; flex:0 0 auto; background:#fff; }
    .tool-grid-3 { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
    .tool-grid-2-tight { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
    .color-pair { display:flex; align-items:center; gap:8px; }
    .color-pair input[type="color"] { width:44px; min-width:44px; height:40px; border:1px solid var(--line); border-radius:10px; background:#fff; padding:4px; cursor:pointer; }
    .color-code-input { flex:1; min-width:0; }
    .color-pair { display:flex; align-items:center; gap:8px; }
    .color-code-input { flex:1; min-width:0; }
    .color-row { display:flex; align-items:center; gap:10px; flex-wrap:nowrap; }
    .color-row-label { min-width:42px; font-size:12px; color:var(--ink-light); }
    .color-swatch { width:42px; min-width:42px; height:34px; border-radius:8px; border:1px solid var(--border); cursor:pointer; box-shadow: inset 0 0 0 1px rgba(255,255,255,.35); background:#fff; }
    input[type="color"] { position:absolute; opacity:0; pointer-events:none; width:0; height:0; }
    .color-hex-input { flex:1 1 auto; min-width:0; }

    .small-number { width:100%; }
    .check-row { display:flex; align-items:center; gap:10px; font-size:13px; color:var(--ink); }
    .check-row input[type="checkbox"] { width:16px; height:16px; }
    .csv-help { margin-top:8px; font-size:12px; color:var(--ink-light); line-height:1.6; }
    .csv-file-input { width:100%; }
    .mini-note { margin-top:8px; font-size:12px; color:var(--ink-light); line-height:1.6; }

    .sidebar.chart-maker-sidebar { gap: 0; overflow: hidden; }
    .it-tabs {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      border-bottom: 1px solid var(--border);
      background: #fff;
      position: sticky;
      top: 0;
      z-index: 2;
    }
    .it-tab-btn {
      border: none;
      border-right: 1px solid var(--border);
      background: #fff;
      color: var(--ink-light);
      font-size: 11px;
      font-weight: 700;
      letter-spacing: .06em;
      min-height: 46px;
      padding: 0 6px;
      cursor: pointer;
    }
    .it-tab-btn:last-child { border-right: none; }
    .it-tab-btn:hover { background: #F8FBFF; color: var(--blue); }
    .it-tab-btn.active { background: var(--blue-light); color: var(--blue); box-shadow: inset 0 -2px 0 var(--blue); }
    .it-tab-panels { min-height: 560px; }
    .it-tab-panel { display: none; }
    .it-tab-panel.active { display: block; }
    .it-tab-panel .sidebar-section + .sidebar-section { border-top: 1px solid var(--border); }


    @media (max-width: 1000px) {
      .it-tabs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
      .it-tab-panels { min-height: 0; }
    }
    @media (max-width: 560px) {
      .it-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    }


    .custom-color-add-row { display:grid; grid-template-columns:1fr auto; gap:8px; align-items:center; }
    .custom-color-picker-row { min-width:0; }
    .custom-color-add-btn { white-space:nowrap; height:40px; }
    .custom-color-actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:8px; }
    .custom-color-list { display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; min-height:34px; }
    .custom-color-chip { display:inline-flex; align-items:center; gap:6px; border:1px solid var(--border); border-radius:999px; padding:4px 8px 4px 5px; background:#fff; font-size:12px; color:var(--ink); }
    .custom-color-chip-swatch { width:22px; height:22px; border-radius:50%; border:1px solid var(--border); flex:0 0 auto; }
    .custom-color-chip { cursor: grab; user-select: none; }
    .custom-color-chip.dragging { opacity:.45; transform: scale(.98); }
    .custom-color-chip.drag-over { outline:2px solid var(--blue); outline-offset:2px; }
    .custom-color-chip-remove { border:none; background:transparent; color:var(--ink-light); cursor:pointer; font-size:14px; line-height:1; padding:0 2px; }
    .custom-color-chip-remove:hover { color:var(--ink); }
    .custom-colors-hidden { display:none; }
