:root {
  --review-ink: #18211d;
  --review-muted: #748078;
  --review-line: #e8ede9;
  --review-soft: #f6f8f6;
  --review-sage: #2f6b55;
  --review-sage-soft: #edf5f1;
}

body { background:#eef2ef; }

.review-write-page {
  width:min(100%,430px);
  min-height:100vh;
  margin:0 auto;
  padding:0 20px 42px;
  background:#fff;
  color:var(--review-ink);
}

.review-write-page header {
  display:grid;
  grid-template-columns:40px 1fr 40px;
  align-items:center;
  height:64px;
  border-bottom:1px solid var(--review-line);
}

.review-write-page header a {
  display:grid;
  width:36px;
  height:36px;
  place-items:center;
  border-radius:50%;
  color:#27312c;
  font-size:29px;
  line-height:1;
  text-decoration:none;
}

.review-write-page h1 {
  margin:0;
  text-align:center;
  font-size:18px;
  font-weight:750;
  letter-spacing:-.035em;
}

.review-order-card {
  display:flex;
  gap:14px;
  align-items:center;
  margin:22px 0 10px;
  padding:0 0 22px;
  border-bottom:1px solid var(--review-line);
  background:#fff;
}

.review-order-card img {
  width:68px;
  height:68px;
  flex:none;
  border-radius:14px;
  object-fit:cover;
}

.review-order-card div { display:grid; gap:6px; min-width:0; }
.review-order-card strong { font-size:15px; font-weight:750; letter-spacing:-.025em; }
.review-order-card span { color:var(--review-muted); font-size:12px; line-height:1.55; }

.fruit-type-picker {
  margin:0 !important;
  padding:22px 0 24px;
  border-bottom:1px solid var(--review-line);
  background:#fff;
}

.fruit-type-picker select {
  width:100%;
  min-height:52px;
  margin-top:2px;
  padding:0 42px 0 15px;
  border:1px solid #dce4df;
  border-radius:12px;
  background:#fff;
  color:var(--review-ink);
  font:inherit;
  font-size:14px;
  font-weight:600;
  outline:none;
}

.fruit-type-picker select:focus {
  border-color:var(--review-sage);
  box-shadow:0 0 0 3px rgba(47,107,85,.09);
}

.fruit-type-picker em {
  position:static !important;
  display:block;
  margin-top:9px;
  color:var(--review-muted);
  font-size:11px;
  font-style:normal;
  font-weight:500;
  line-height:1.55;
}

.review-write-page fieldset {
  margin:0;
  padding:0 0 29px;
  border:0;
  border-bottom:1px solid var(--review-line);
  text-align:left;
}

.review-write-page legend {
  width:100%;
  margin-bottom:18px;
  padding-top:28px;
  font-size:14px;
  font-weight:750;
  letter-spacing:-.025em;
}

.rating-picker { display:flex; justify-content:center; gap:12px; }
.rating-picker button {
  position:relative;
  width:36px;
  height:38px;
  padding:0;
  border:0;
  background:transparent;
  color:#c9d3cd;
  font-size:0;
  line-height:1;
  transition:color .15s ease, transform .15s ease;
}
.rating-picker button::before {
  content:"☆";
  display:block;
  font-family:"Segoe UI Symbol","Apple Symbols",sans-serif;
  font-size:34px;
  font-weight:400;
  line-height:38px;
}
.rating-picker button.is-active { color:var(--review-sage); }
.rating-picker button.is-active::before { content:"★"; font-size:32px; }
.rating-picker button:active { transform:scale(.92); }

.review-write-page form>label {
  position:relative;
  display:grid;
  gap:10px;
  margin-top:24px;
  color:#27312c;
  font-size:14px;
  font-weight:750;
  letter-spacing:-.025em;
}

.review-write-page textarea {
  min-height:168px;
  padding:16px 16px 34px;
  border:1px solid #dce4df;
  border-radius:14px;
  background:#fff;
  color:var(--review-ink);
  font:inherit;
  font-size:14px;
  line-height:1.65;
  resize:none;
  outline:none;
}

.review-write-page textarea::placeholder { color:#a1aaa4; }
.review-write-page textarea:focus {
  border-color:var(--review-sage);
  box-shadow:0 0 0 3px rgba(47,107,85,.09);
}

.review-write-page label small {
  position:absolute;
  right:13px;
  bottom:11px;
  color:#929c96;
  font-size:10px;
  font-weight:500;
}

.review-photo-field { padding-bottom:2px; }
.review-photo-field input {
  display:block;
  width:100%;
  margin-top:0;
  padding:9px;
  border:1px dashed #cbd8d0;
  border-radius:13px;
  background:var(--review-soft);
  color:var(--review-muted);
  font-size:11px;
  font-weight:500;
}

.review-photo-field input::file-selector-button {
  margin-right:10px;
  padding:10px 14px;
  border:0;
  border-radius:9px;
  background:var(--review-sage-soft);
  color:var(--review-sage);
  font:inherit;
  font-weight:750;
  cursor:pointer;
}

.review-photo-field small {
  position:static !important;
  color:var(--review-muted) !important;
  font-size:10px !important;
  line-height:1.4;
}

.review-photo-preview {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin-top:12px;
}

/* 선택 영역은 상품명이 여러 개 나열되므로 굵기를 낮춰 읽기 피로를 줄입니다. */
.review-write-page form > label.fruit-type-picker {
  font-weight:650;
}

.fruit-type-picker select {
  font-weight:450;
  letter-spacing:-.015em;
}

.fruit-type-picker select optgroup {
  font-weight:600;
}

.fruit-type-picker select option {
  font-weight:400;
}

.review-photo-preview img {
  width:100%;
  aspect-ratio:1;
  object-fit:cover;
  border:1px solid var(--review-line);
  border-radius:11px;
}

.review-submit {
  width:100%;
  min-height:52px;
  margin-top:28px;
  padding:15px;
  border:0;
  border-radius:13px;
  background:var(--review-sage);
  color:#fff;
  font-size:14px;
  font-weight:750;
  letter-spacing:-.02em;
  box-shadow:0 7px 16px rgba(47,107,85,.16);
}

.review-submit:disabled { opacity:.55; box-shadow:none; }
.review-write-message { margin-top:13px; color:#aa4941; font-size:11px; line-height:1.5; text-align:center; }

@media (max-width:360px) {
  .review-write-page { padding-inline:16px; }
  .rating-picker { gap:8px; }
  .rating-picker button { width:34px; }
}
