.jill3d { --j3d-line: var(--border, rgba(127,127,127,.35)); --j3d-muted: var(--muted, #666); margin: 1.5em 0; }
.jill3d-drop { border: 2px dashed var(--j3d-line); border-radius: 12px; padding: 3em 1em; text-align: center; transition: background .15s, border-color .15s; }
.jill3d-drop.is-over { border-color: currentColor; background: rgba(127,127,127,.08); }
.jill3d-link { background: none; border: 0; padding: 0; color: inherit; text-decoration: underline; cursor: pointer; font: inherit; }
.jill3d-hint, .jill3d-muted { color: var(--j3d-muted); font-size: .9em; }
.jill3d-work { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 1.5em; align-items: start; }
.jill3d-view { position: relative; height: 380px; border: 1px solid var(--j3d-line); border-radius: 12px; overflow: hidden; background: var(--surface-alt, rgba(127,127,127,.06)); }
.jill3d-view canvas { display: block; touch-action: none; }
.jill3d-loading { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: var(--j3d-muted); }
.jill3d-form label { display: block; margin: 0 0 .8em; font-weight: 600; }
.jill3d-form select, .jill3d-form input, .jill3d-form textarea { display: block; width: 100%; margin-top: .25em; font-weight: 400; }
.jill3d-file { font-weight: 700; margin: 0; word-break: break-all; }
.jill3d-dims { margin: .2em 0 1em; color: var(--j3d-muted); }
.jill3d-price { min-height: 4.5em; margin: 1em 0; }
.jill3d-total { font-size: 1.8em; font-weight: 700; line-height: 1.2; }
.jill3d-form .button { width: 100%; margin-bottom: .6em; }
.jill3d-error { margin-top: 1em; padding: .8em 1em; border-radius: 8px; background: color-mix(in srgb, var(--danger, #b3261e) 12%, transparent); color: var(--danger, #b3261e); }
@media (max-width: 760px) {
  .jill3d-work { grid-template-columns: 1fr; }
  .jill3d-view { height: 280px; }
}
.jill3d-tv { margin-top: 1.2em; padding: 1em 1.2em; border: 1px solid var(--j3d-line); border-radius: 12px; }
.jill3d-tv-row { display: flex; gap: .5em; }
.jill3d-tv-row input { flex: 1; min-width: 0; }
.jill3d-tv-card { display: flex; gap: .8em; align-items: center; margin: .8em 0; }
.jill3d-tv-card img { width: 64px; height: 64px; object-fit: cover; border-radius: 8px; }
.jill3d-tv label { display: block; margin: .5em 0; font-weight: 600; }
.jill3d-tv select { display: block; width: 100%; margin-top: .25em; font-weight: 400; }
.jill3d-rights { font-weight: 400 !important; display: flex !important; gap: .5em; align-items: flex-start; }
.jill3d-rights input { width: auto !important; margin-top: .3em !important; }
.jill3d-origin { font-size: .9em; margin: 0 0 .8em; }
.jill3d [hidden] { display: none !important; }
