/* Özel Baskı sayfası (T-871) — site.css'in .ozel / .nedenler / .sss sınıflarına ek. Renkler :root'tan. */
.ozel-rozetler { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.ozel-rozetler li { padding: .35rem .8rem; border-radius: 999px; background: var(--yuzey); box-shadow: var(--golge);
  font-weight: 600; font-size: .9rem; }
.ozel-rozetler li::before { content: "✓ "; color: var(--turkuaz-koyu); }

.ozel-3d { position: relative; margin-top: 1rem; border-radius: var(--r); overflow: hidden;
  background: radial-gradient(circle at 50% 35%, var(--yuzey), var(--zemin)); border: 1px solid var(--cizgi); }
.ozel-3d canvas { display: block; width: 100%; aspect-ratio: 4 / 3; cursor: grab; }
.ozel-3d canvas:active { cursor: grabbing; }
.ozel-3d-ipucu { position: absolute; left: .7rem; bottom: .5rem; margin: 0; padding: .2rem .6rem; border-radius: 999px;
  background: var(--yuzey); color: var(--soluk); font-size: .78rem; pointer-events: none; }

.ozel-iki { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.ozel-iki .alan input { width: 100%; }
.ozel-boyama { display: flex; gap: .6rem; align-items: flex-start; margin: .4rem 0 0; padding: .8rem; border-radius: 12px;
  background: var(--zemin); font-size: .92rem; cursor: pointer; }
.ozel-boyama input { width: 20px; height: 20px; margin-top: .15rem; flex: none; accent-color: var(--turkuaz-koyu); }

.malzeme-kartlari, .ozel-sinirlar { margin: 0; padding: 0; list-style: none; }
.malzeme-kartlari h3, .ozel-sinirlar h3 { margin-bottom: .3rem; }
@media (min-width: 700px) { .malzeme-kartlari { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 380px) { .ozel-iki { grid-template-columns: 1fr; } }

/* 4. tur: çok parça — her dosya kendi seçenekleriyle bir kart */
.ozel-olcek { margin: .7rem 0 0; font-size: .9rem; color: var(--soluk); }
.ozel-bos { color: var(--soluk); }
.ozel-parcalar { display: grid; gap: .8rem; margin: 0 0 1rem; padding: 0; list-style: none; counter-reset: parca; }
.ozel-parca { counter-increment: parca; padding: .8rem; border-radius: 12px; background: var(--yuzey); border: 1px solid var(--cizgi); }
.ozel-parca-bas { display: flex; gap: .5rem; align-items: baseline; flex-wrap: wrap; }
.ozel-parca-bas::before { content: counter(parca) "."; font-weight: 700; color: var(--turkuaz-koyu); }
.ozel-parca-ad { padding: 0; border: 0; background: none; color: inherit; font: inherit; cursor: pointer; text-align: left;
  overflow-wrap: anywhere; }
.ozel-parca-olcu { color: var(--soluk); font-size: .88rem; }
.ozel-parca-sil { margin-left: auto; min-width: 32px; min-height: 32px; border: 1px solid var(--cizgi); border-radius: 50%;
  background: var(--zemin); color: inherit; font-size: 1.1rem; line-height: 1; cursor: pointer; }
.ozel-parca-durum { margin: .3rem 0 .5rem; font-size: .85rem; color: var(--soluk); }
.ozel-parca-secim { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
.ozel-parca-secim label { display: grid; gap: .2rem; font-size: .85rem; font-weight: 600; }
.ozel-parca-secim select, .ozel-parca-secim input { width: 100%; min-height: 40px; }
@media (min-width: 700px) { .ozel-parca-secim { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
