.tc-shell {
  --tc-ink: #123f37;
  --tc-paper: #f7f0e5;
  flex: 1;
  min-height: 0;
  overflow: auto;
  padding: 28px clamp(18px, 4vw, 64px) 56px;
  background: radial-gradient(circle at 12% 0%, rgba(128,176,157,.12), transparent 34%), var(--bg);
  color: var(--text);
}

.tc-header, .tc-layout, .tc-help { width: min(1240px, 100%); margin-inline: auto; }
.tc-header { display: flex; justify-content: space-between; align-items: flex-end; gap: 28px; margin-bottom: 28px; }
.tc-back { display: inline-flex; min-height: 44px; align-items: center; color: var(--muted); font-size: 13px; }
.tc-brand-row { display: flex; align-items: center; gap: 10px; margin: 8px 0 10px; }
.tc-mark { display: inline-grid; place-items: center; width: 34px; height: 34px; border: 1px solid var(--accent-warm); border-radius: 50%; color: var(--accent-warm); font: 600 18px/1 Georgia, serif; }
.tc-kicker { color: var(--accent-warm); font-size: 10px; letter-spacing: .18em; font-weight: 700; }
.tc-header h1 { font-size: clamp(1.8rem, 4vw, 3.2rem); letter-spacing: -.045em; }
.tc-header p { margin-top: 8px; color: var(--muted); font-size: 14px; }
.tc-header-note { display: inline-flex; align-items: center; gap: 8px; color: var(--muted); font-size: 12px; padding-bottom: 4px; }
.tc-status-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--badge-live); box-shadow: 0 0 0 5px rgba(154,200,168,.12); }
.tc-layout { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(300px, .88fr); gap: 24px; align-items: start; }
.tc-workspace { min-width: 0; padding: clamp(20px, 3vw, 34px); border: 1px solid var(--border); border-radius: 24px; background: color-mix(in srgb, var(--surface) 94%, transparent); box-shadow: var(--shadow-soft); }
.tc-step-heading { display: flex; gap: 14px; align-items: flex-start; }
.tc-step-heading > span { color: var(--accent-warm); font: 600 12px/1.5 ui-monospace, SFMono-Regular, monospace; letter-spacing: .12em; }
.tc-step-heading strong { display: block; font-size: 16px; }
.tc-step-heading small, .tc-ai-panel summary small, .tc-note-generator small { display: block; margin-top: 5px; color: var(--muted); font-size: 12px; line-height: 1.55; }
.tc-step-heading-spaced { margin-top: 32px; }
.tc-label, .tc-controls label > span, .tc-ai-config-grid label > span { display: block; margin: 18px 0 8px; color: var(--muted); font-size: 12px; font-weight: 600; }
#tc-input { display: block; width: 100%; min-height: 188px; resize: vertical; padding: 18px; border: 1px solid var(--border-strong); border-radius: 14px; background: var(--bg); color: var(--text); font: 16px/1.75 'Noto Sans SC', sans-serif; transition: border-color 180ms ease, box-shadow 180ms ease; }
#tc-input:focus { border-color: var(--accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 18%, transparent); outline: none; }
.tc-input-meta, .tc-preview-top, .tc-ai-actions, .tc-note-generator-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.tc-input-meta { margin-top: 8px; color: var(--muted); font: 12px ui-monospace, SFMono-Regular, monospace; }
.tc-text-button, .tc-note-field button { min-height: 32px; border: 0; background: transparent; color: var(--accent); cursor: pointer; font: inherit; }
.tc-preset-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.tc-preset { min-height: 96px; padding: 12px; display: flex; flex-direction: column; align-items: flex-start; gap: 5px; border: 1px solid var(--border); border-radius: 14px; background: transparent; color: var(--text); cursor: pointer; text-align: left; transition: transform 180ms var(--ease-out), border-color 180ms ease, background 180ms ease; }
.tc-preset:hover { transform: translateY(-2px); border-color: var(--accent); }
.tc-preset.is-active { border-color: var(--accent-warm); background: color-mix(in srgb, var(--accent-warm) 10%, transparent); }
.tc-preset span:not(.tc-swatch) { font-size: 12px; font-weight: 600; }
.tc-preset small { color: var(--muted); font-size: 10px; }
.tc-swatch { width: 100%; height: 28px; border-radius: 8px; border: 1px solid rgba(255,255,255,.12); }
.tc-swatch-ink { background: #163c36; }
.tc-swatch-deep { background: #0e2925; }
.tc-swatch-pine { background: #234c43; }
.tc-swatch-sage { background: #cdd8cd; }
.tc-swatch-paper { background: #f5f0e6; }
.tc-swatch-clay { background: #ead7c5; }
.tc-custom-color { margin-top: 12px; padding: 14px; border: 1px dashed var(--border-strong); border-radius: 14px; background: color-mix(in srgb, var(--surface-hover) 48%, transparent); }
.tc-custom-color-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.tc-custom-color-head strong { display: block; font-size: 13px; }
.tc-custom-color-head small { display: block; margin-top: 4px; color: var(--muted); font-size: 11px; }
.tc-color-help { color: var(--accent-warm); font: 11px ui-monospace, SFMono-Regular, monospace; }
.tc-custom-color-controls { display: grid; grid-template-columns: 52px minmax(0, 220px); align-items: end; gap: 10px; margin-top: 12px; }
.tc-custom-color-controls > input { width: 52px; height: 42px; padding: 3px; border: 1px solid var(--border-strong); border-radius: 9px; background: var(--bg); cursor: pointer; }
.tc-custom-color-controls label > span { display: block; margin-bottom: 6px; color: var(--muted); font-size: 11px; }
.tc-custom-color-controls label > input { width: 100%; min-height: 42px; padding: 0 10px; border: 1px solid var(--border-strong); border-radius: 9px; background: var(--bg); color: var(--text); font: 12px ui-monospace, SFMono-Regular, monospace; text-transform: lowercase; }
.tc-custom-color-controls label > input:focus { border-color: var(--accent); outline: none; box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 15%, transparent); }
.tc-field-error { display: block; margin-top: 5px; color: var(--danger); font-size: 10px; line-height: 1.4; }
.tc-color-guide { margin: 10px 0 0; color: var(--muted); font-size: 11px; line-height: 1.6; }
.tc-color-guide button { margin-left: 5px; border: 0; border-bottom: 1px dashed var(--accent); padding: 0 1px; background: transparent; color: var(--accent); cursor: pointer; font: inherit; }
.tc-controls { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 22px; }
.tc-controls label { min-width: 0; } .tc-controls label > span, .tc-ai-config-grid label > span { margin: 0 0 7px; }
.tc-controls select, .tc-ai-config-grid input, .tc-ai-config-grid select, #tc-platform { width: 100%; min-height: 44px; padding: 0 11px; border: 1px solid var(--border-strong); border-radius: 10px; background: var(--bg); color: var(--text); font: 12px 'Noto Sans SC', sans-serif; }
.tc-field-hint { display: block; margin-top: 6px; color: var(--muted2); font-size: 11px; line-height: 1.5; }
.tc-watermark-settings { margin-top: 18px; padding: 14px; border: 1px dashed var(--border-strong); border-radius: 14px; background: color-mix(in srgb, var(--surface-hover) 48%, transparent); }
.tc-watermark-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.tc-watermark-head strong { display: block; font-size: 13px; }
.tc-watermark-head small { display: block; margin-top: 4px; color: var(--muted); font-size: 11px; line-height: 1.5; }
.tc-watermark-toggle { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 7px; min-height: 32px; color: var(--accent); cursor: pointer; font-size: 12px; white-space: nowrap; }
.tc-watermark-toggle input { width: 16px; height: 16px; accent-color: var(--accent); }
.tc-watermark-input-label { display: block; margin-top: 12px; color: var(--muted); font-size: 11px; }
.tc-watermark-settings > input { width: 100%; min-height: 42px; margin-top: 6px; padding: 0 10px; border: 1px solid var(--border-strong); border-radius: 9px; background: var(--bg); color: var(--text); font: 12px 'Noto Sans SC', sans-serif; }
.tc-watermark-settings > input:focus { border-color: var(--accent); outline: none; box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 15%, transparent); }
.tc-watermark-settings > input:disabled { cursor: not-allowed; opacity: .55; }
.tc-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.tc-btn { min-height: 46px; padding: 0 18px; border: 1px solid transparent; border-radius: 10px; cursor: pointer; font: 600 13px 'Noto Sans SC', sans-serif; transition: transform 180ms var(--ease-out), background 180ms ease, border-color 180ms ease, opacity 180ms ease; }
.tc-btn:active { transform: scale(.98); } .tc-btn:disabled { cursor: not-allowed; opacity: .45; }
.tc-btn-primary { background: var(--accent); color: #fff; } .tc-btn-primary:hover:not(:disabled) { background: var(--accent-strong); }
.tc-btn-secondary { border-color: var(--border-strong); background: transparent; color: var(--text); } .tc-btn-secondary:hover:not(:disabled) { background: var(--surface-hover); border-color: var(--accent); }
.tc-preview-column { position: sticky; top: 18px; min-width: 0; }
.tc-preview-top { margin: 0 2px 10px; color: var(--muted); font: 11px ui-monospace, SFMono-Regular, monospace; letter-spacing: .06em; text-transform: uppercase; }
.tc-canvas-wrap { position: relative; width: min(100%, 440px); margin: 0 auto; overflow: hidden; border-radius: 18px; background: #123f37; box-shadow: 0 24px 70px rgba(0,0,0,.22); }
#tc-canvas { display: block; width: 100%; height: auto; }
.tc-empty-preview { position: absolute; inset: 0; display: grid; place-items: center; padding: 32px; color: rgba(247,240,229,.65); font: 20px/1.7 'Noto Serif SC', serif; text-align: center; pointer-events: none; }
.tc-preview-hint { margin: 10px 2px 0; color: var(--muted); font-size: 11px; text-align: center; }
.tc-ai-panel { margin-top: 30px; border-top: 1px solid var(--border); padding-top: 18px; }
.tc-ai-panel summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 44px; cursor: pointer; list-style: none; }
.tc-ai-panel summary::-webkit-details-marker { display: none; }
.tc-ai-badge { padding: 5px 9px; border-radius: 99px; background: color-mix(in srgb, var(--accent) 12%, transparent); color: var(--accent); font-size: 11px; white-space: nowrap; }
.tc-ai-body { padding-top: 18px; } .tc-ai-config-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.tc-field-wide { grid-column: 1 / -1; } .tc-ai-actions { margin-top: 16px; justify-content: flex-start; }
.tc-inline-status { color: var(--muted); font-size: 12px; } .tc-inline-status.is-success { color: var(--badge-live); } .tc-inline-status.is-error { color: var(--danger); }
.tc-note-generator { margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--border); }
.tc-note-generator-head strong { font-size: 14px; } .tc-note-generator-head select { width: auto; min-width: 140px; }
.tc-variation-controls { display: flex; align-items: flex-end; gap: 12px; margin-top: 16px; }
.tc-variation-controls label { min-width: 150px; }
.tc-variation-controls label > span { display: block; margin-bottom: 7px; color: var(--muted); font-size: 11px; }
.tc-variation-controls select { width: 100%; min-height: 38px; padding: 0 9px; border: 1px solid var(--border-strong); border-radius: 9px; background: var(--bg); color: var(--text); font: 12px 'Noto Sans SC', sans-serif; }
.tc-variation-current { padding-bottom: 11px; color: var(--accent-warm); font-size: 11px; }
.tc-profile-current { display: flex; align-items: flex-end; gap: 12px; }
.tc-profile-current label { flex: 1; }
.tc-profile-current label > span, .tc-profile-editor label > span, .tc-length-control > span { display: flex; justify-content: space-between; gap: 8px; margin: 0 0 7px; color: var(--muted); font-size: 12px; font-weight: 600; }
.tc-profile-default { padding: 0 0 13px; color: var(--badge-live); font-size: 11px; white-space: nowrap; }
.tc-profile-manager { margin-top: 12px; border: 1px solid var(--border); border-radius: 12px; padding: 10px 12px; }
.tc-profile-manager summary { cursor: pointer; color: var(--text); font-size: 12px; font-weight: 600; list-style: none; }
.tc-profile-manager summary::-webkit-details-marker { display: none; }
.tc-profile-manager summary small { margin-left: 8px; color: var(--muted); font-size: 11px; font-weight: 400; }
.tc-profile-list { display: grid; gap: 8px; margin: 12px 0; }
.tc-profile-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 11px; border: 1px solid var(--border); border-radius: 10px; background: color-mix(in srgb, var(--surface-hover) 55%, transparent); }
.tc-profile-card.is-active { border-color: color-mix(in srgb, var(--accent) 60%, var(--border)); }
.tc-profile-card strong, .tc-profile-card small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tc-profile-card strong { font-size: 12px; }
.tc-profile-card small { margin-top: 4px; color: var(--muted); font-size: 10px; }
.tc-profile-card-status { margin-top: 4px; color: var(--muted); font-size: 10px; }
.tc-profile-card-status.is-success { color: var(--badge-live); }
.tc-profile-card-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.tc-profile-card-actions button, .tc-length-presets button { border: 1px solid var(--border); border-radius: 7px; padding: 5px 7px; background: transparent; color: var(--muted); cursor: pointer; font: 11px 'Noto Sans SC', sans-serif; }
.tc-profile-card-actions button:hover, .tc-length-presets button:hover, .tc-length-presets button.is-active { border-color: var(--accent); color: var(--accent); }
.tc-profile-editor { margin-top: 12px; padding: 13px; border: 1px solid var(--border-strong); border-radius: 12px; background: color-mix(in srgb, var(--surface-hover) 45%, transparent); }
.tc-profile-editor-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.tc-profile-editor-head strong { font-size: 13px; }
.tc-profile-editor-actions { display: flex; align-items: center; gap: 10px; margin-top: 14px; }
.tc-note-controls { display: grid; grid-template-columns: minmax(0, 1fr) 72px auto; align-items: end; gap: 10px; margin-top: 16px; }
.tc-length-note { margin: 8px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.tc-length-control input { display: block; width: 100%; accent-color: var(--accent); }
.tc-length-number { width: 100%; min-height: 38px; padding: 0 8px; border: 1px solid var(--border-strong); border-radius: 9px; background: var(--bg); color: var(--text); font: 12px 'Noto Sans SC', sans-serif; }
.tc-length-presets { display: flex; gap: 5px; }
.tc-length-presets button { min-height: 38px; white-space: nowrap; }
.tc-note-actions { display: flex; gap: 10px; margin-top: 16px; }
.tc-generate-note { flex: 1; }
.tc-regenerate-note { white-space: nowrap; }
.tc-stop-note { white-space: nowrap; }
.tc-stream-status { display: flex; align-items: center; gap: 7px; margin-top: 12px; color: var(--muted); font-size: 11px; }
.tc-stream-status.is-streaming { color: var(--accent); }
.tc-stream-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--muted); }
.tc-stream-status.is-streaming .tc-stream-dot { animation: tc-pulse 1s ease-in-out infinite; background: var(--accent); }
.tc-stream-model { margin-left: auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tc-generate-note { width: 100%; } .tc-note-result { display: grid; gap: 10px; margin-top: 16px; }
.tc-note-field { padding: 13px; border: 1px solid var(--border); border-radius: 12px; background: color-mix(in srgb, var(--surface-hover) 65%, transparent); }
.tc-note-field > div { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 11px; } .tc-note-field > div button { margin-left: auto; } .tc-note-field p { margin-top: 8px; white-space: pre-wrap; overflow-wrap: anywhere; color: var(--text); font-size: 13px; line-height: 1.85; }
.tc-note-count { color: var(--muted2); font-size: 10px; }
.tc-copy-note-all { width: 100%; } .tc-help { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 24px; }
.tc-help > div { padding: 18px; border: 1px solid var(--border); border-radius: 16px; background: color-mix(in srgb, var(--surface) 70%, transparent); }
.tc-help-number { display: block; color: var(--accent-warm); font: 12px ui-monospace, SFMono-Regular, monospace; }
.tc-help strong { display: block; margin-top: 8px; font-size: 13px; } .tc-help p { margin-top: 5px; color: var(--muted); font-size: 12px; line-height: 1.6; }
.tc-toast { position: fixed; left: 50%; bottom: 28px; z-index: 1000; max-width: min(90vw, 460px); padding: 11px 16px; border: 1px solid var(--border-strong); border-radius: 99px; background: var(--surface); color: var(--text); box-shadow: var(--shadow-soft); opacity: 0; transform: translate(-50%, 12px); pointer-events: none; transition: opacity 180ms ease, transform 180ms var(--ease-out); font-size: 12px; }
.tc-toast.is-visible { opacity: 1; transform: translate(-50%, 0); }

@media (max-width: 900px) {
  .tc-layout { grid-template-columns: 1fr; }
  .tc-preview-column { position: static; grid-row: 1; }
  .tc-canvas-wrap { width: min(68vw, 440px); }
}

@media (max-width: 640px) {
  .tc-shell { padding: 18px 14px 40px; }
  .tc-header { align-items: flex-start; flex-direction: column; gap: 12px; }
  .tc-workspace { padding: 18px; border-radius: 18px; }
  .tc-preset-grid, .tc-controls, .tc-help { grid-template-columns: repeat(2, 1fr); }
  .tc-canvas-wrap { width: min(82vw, 440px); }
  .tc-ai-config-grid { grid-template-columns: 1fr; }
  .tc-field-wide { grid-column: auto; }
  .tc-note-generator-head, .tc-profile-current { align-items: flex-start; flex-direction: column; }
  .tc-note-generator-head select { width: 100%; }
  .tc-custom-color-controls { grid-template-columns: 52px minmax(0, 1fr); }
  .tc-watermark-head { flex-direction: column; gap: 8px; }
  .tc-watermark-toggle { align-self: flex-start; }
  .tc-variation-controls { align-items: stretch; flex-direction: column; gap: 7px; }
  .tc-variation-controls label { width: 100%; }
  .tc-variation-current { padding-bottom: 0; }
  .tc-note-actions { flex-wrap: wrap; }
  .tc-regenerate-note, .tc-stop-note { flex: 1; }
  .tc-profile-default { padding-bottom: 0; }
  .tc-note-controls { grid-template-columns: 1fr 72px; }
  .tc-length-presets { grid-column: 1 / -1; }
  .tc-length-presets button { flex: 1; }
  .tc-profile-card { grid-template-columns: 1fr; }
  .tc-profile-card-actions { justify-content: flex-start; }
}

@media (max-width: 380px) {
  .tc-preset-grid, .tc-controls, .tc-help { grid-template-columns: 1fr; }
  .tc-canvas-wrap { width: 92vw; }
}

@keyframes tc-pulse { 50% { opacity: .35; transform: scale(.75); } }
