html,body,main{
  max-width:100%;
  overflow-x:hidden;
}
.filter-row .category-tabs,
.filter-row.extra-filters .category-tabs{
  min-width:0;
}
.filter-row.extra-filters{flex-wrap:wrap;gap:10px 24px;border-top:0;padding:0 0 28px}
.filter-row.extra-filters .category-tabs button{padding:7px 13px;font-size:12px}
.tour-route{row-gap:55px}
.schedule-pick button.is-sold{opacity:.4;cursor:not-allowed;text-decoration:line-through}
.modal-actions{gap:8px;display:flex;flex-direction:column}
.ghost-wish{border:1px solid var(--ink);background:0 0;cursor:pointer;width:100%;padding:12px;font-size:13px;font-weight:800}
.member-booking.is-cancelled{opacity:.55}
.member-booking-actions{flex-direction:column;align-items:flex-end;gap:8px;display:flex}
.member-extra{grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;display:grid}
.member-extra>section{border:1px solid var(--line);background:var(--white);padding:20px}
.prefs-copy{color:#4f4d48;margin:14px 0 12px;font-size:13px;line-height:1.6}
.member-extra button{border:0;border-bottom:1px solid var(--ink);cursor:pointer;background:0 0;padding:0 0 3px;font-size:13px;font-weight:800}
.wish-row{display:block;margin-top:12px;text-align:left}
.ledger-list{border-top:1px solid var(--line);margin-top:10px;padding-top:8px}
.ledger-list p{justify-content:space-between;gap:12px;margin:0;padding:6px 0;font-size:12px;display:flex}
.ledger-list .plus{color:var(--ink)}
.ledger-list .minus{color:var(--coral)}
.verify-tabs{border:1px solid var(--ink);grid-template-columns:1fr 1fr;margin-bottom:16px;display:grid}
.verify-tabs button{border:0;cursor:pointer;background:0 0;padding:10px;font-size:13px;font-weight:800}
.verify-tabs button.active{background:var(--ink);color:#fff}
.qr-manual{font-size:13px;font-weight:800;display:block}
.qr-manual input{border:1px solid var(--line);background:var(--white);width:100%;margin:8px 0 10px;padding:12px;font-size:15px;font-weight:400;display:block}
.verify-error{border-left:3px solid var(--coral);background:#f05b4214;margin-bottom:16px;padding:14px}
.verify-error strong{font-size:15px;display:block}
.verify-error p{color:#4f4d48;margin:6px 0 0;font-size:13px}
.chip-label{letter-spacing:.04em;margin:18px 0 8px;font-size:12px;font-weight:800}
.chip-row{flex-wrap:wrap;gap:8px;display:flex}
.chip-row button{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:30px;padding:8px 14px;font-size:13px}
.chip-row button.active{border-color:var(--ink);background:var(--ink);color:#fff}
.onboard-backdrop{z-index:180}
.admin-stage{border-top:1px solid var(--ink);margin-top:28px;padding-top:28px}
.admin-heading.sub h3{letter-spacing:-.05em;margin:0;font-size:22px}
.policy-form{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px 18px;
  margin:0;
  align-items:start;
}
.policy-form .admin-lead{
  grid-column:1 / -1;
  margin:0 0 4px;
  color:#4a4843;
  font-size:14px;
  line-height:1.7;
  font-weight:400;
}
.policy-form label{font-size:13px;font-weight:700;color:var(--ink)}
.policy-form input{border:1px solid var(--input-line);background:var(--white);width:100%;margin-top:8px;padding:12px 14px;font-size:15px;display:block}
.policy-form small{display:block;margin-top:6px;color:#6a6760;font-size:12px;font-weight:400;line-height:1.5;overflow-wrap:break-word}
.policy-form button{
  grid-column:1 / -1;
  justify-self:start;
  background:var(--ink);
  color:#fff;
  cursor:pointer;
  border:0;
  min-height:46px;
  padding:0 22px;
  font-size:14px;
  font-weight:800;
}
.region-compare{grid-template-columns:repeat(3,1fr);gap:9px;display:grid}
.region-compare article{border:1px solid var(--line);background:var(--white);padding:14px}
.region-compare span{font-size:12px;font-weight:800}
.region-compare strong{margin:6px 0;font:800 22px/1 Pretendard Variable,Pretendard,Noto Sans KR,sans-serif;display:block}
.region-compare small{color:#55524c;font-size:12px}
.admin-loading-note{color:#55524c;font-size:13px}

/* 서체·색·가독성 정리 */
:root{
  --paper:#f3f1eb;
  --white:#fffcf7;
  --ink:#1c1b18;
  --coral:#d6452e;
  --yellow:#ead9a6;
  --mint:#f3f1eb;
  --line:#1c1b1840;
  --input-line:#8a857b;
}
body,button,input,select,textarea{
  font-family:Pretendard Variable,Pretendard,Noto Sans KR,Apple SD Gothic Neo,sans-serif;
}
.hero h1 em,.tour-intro h2 em{
  font-family:inherit;
  font-style:normal;
  font-weight:800;
}
.week-list time b,
.card-index,
.reward-balance-button b,
.reward-wallet strong,
.member-metrics strong,
.business-metrics strong,
.admin-heading>div:last-child b,
.queue-id>span,
.portal-intro li b,
.auth-permission-list b,
.verification-steps b,
.tour-route article>span,
.submission-complete>div strong{
  font-family:inherit !important;
  font-style:normal !important;
  font-weight:800 !important;
}
.hero-description{color:#3d3b36;font-size:17px;line-height:1.75}
.section-heading>p{color:#4a4843;font-size:15px;line-height:1.7}
.event-card-copy p{color:#4a4843;font-size:13px}
.event-card-copy>div{font-size:13px}
.tour-intro>p:not(.section-number){color:#3f3d38;font-size:15px;line-height:1.8}
.modal-description,.auth-description,.unlock-form>p{color:#3f3d38;font-size:14px;line-height:1.75}
.hero-feature{background:#1f1e1b}
.calendar-band{
  background:var(--paper);
  color:var(--ink);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.calendar-title .section-number{color:var(--coral)}
.calendar-title>button{color:var(--ink);border-color:var(--ink)}
.week-list{border-top:1px solid var(--line)}
.week-list>button{color:var(--ink);border-bottom:1px solid var(--line)}
.week-list>button:hover,.week-list>button.featured-day{background:var(--ink);color:#fff}
.week-list small{opacity:.72}
.magazine-section,.tour-section,.newsletter{background:var(--paper)}
.magazine-small.color-coral,.magazine-small.color-blue{
  background:var(--white);
  color:var(--ink);
  border:1px solid var(--ink);
}
.magazine-small p{color:#4a4843;opacity:1}
.magazine-lead p,.magazine-small p{font-size:14px;line-height:1.7}
.tour-intro .section-number{color:var(--coral)}
.tour-route article>span{background:var(--white)}
.verification-guide b{color:var(--ink)}
.verification-guide span{color:#4a4843;font-size:13px}
.newsletter h2{font-size:clamp(32px,3.6vw,48px)}
.account-role-button span,.reward-balance-button span{letter-spacing:.04em;font-size:11px;color:#5b5852}
.account-role-button b{font-size:13px;color:var(--ink)}
.account-role-button.admin b{color:var(--coral)}
.login-action{font-size:13px;padding:10px 16px}

#itple-page,#itple-overlays{display:contents}
.modal-backdrop.is-quiet,
.auth-modal.is-quiet,
.event-modal.is-quiet,
.member-panel.is-quiet,
.portal-modal.is-quiet,
.verification-modal.is-quiet{
  animation:none !important;
}
.auth-modal.is-stack{
  display:block;
  grid-template-columns:none;
  width:min(520px,100%);
}
.auth-modal.is-stack .auth-side{display:none}
.auth-modal .auth-main{padding-top:56px}
.auth-modal.is-stack .auth-main{padding:56px 36px 32px}
.auth-modal.onboard-modal.is-stack{
  width:min(520px,100%);
  max-height:calc(100vh - 32px);
}
.auth-modal.onboard-modal .auth-main{
  padding:44px 36px 24px;
  display:flex;
  flex-direction:column;
  min-height:0;
}
.auth-modal.onboard-modal .auth-main>h2{
  font-size:28px;
  letter-spacing:-.06em;
}
.auth-modal.onboard-modal .auth-description{margin:10px 0 0}
.auth-modal.onboard-modal .chip-label{margin:16px 0 8px;font-size:13px}
.auth-modal.onboard-modal .chip-row{gap:8px}
.auth-modal.onboard-modal .chip-row button{
  min-height:40px;
  padding:8px 16px;
  font-size:14px;
  font-weight:700;
}
.onboard-actions{
  margin-top:20px;
  padding-top:18px;
  border-top:1px solid var(--line);
  display:flex;
  flex-direction:column;
  gap:10px;
}
.onboard-actions .auth-submit{margin:0;width:100%}
.onboard-actions .signup-link{
  margin:0;
  text-align:center;
  color:#5b5852;
}
.auth-kicker{font-size:12px;letter-spacing:.08em}
.auth-main>h2{font-size:32px}
.auth-side>p:first-child{font-size:11px;letter-spacing:.14em}
.auth-side>p:nth-of-type(2){font-size:14px;line-height:1.7}
.auth-permission-list>div{font-size:13px}
.role-switch{margin-bottom:28px}
.role-switch button{font-size:13px;padding:12px 14px}
.role-switch button span{letter-spacing:.06em;margin-bottom:4px;font-size:11px;color:#6a6660}
.role-switch button.active span{color:#ffffffc7}
.auth-fields{display:flex;flex-direction:column;gap:16px}
.auth-form > label:not(.agree),
.auth-fields label{
  display:block;
  margin:0;
  font-size:13px;
  font-weight:700;
  color:var(--ink);
  line-height:1.4;
}
.auth-form input:not([type="checkbox"]):not([type="radio"]),
.auth-form select,
.auth-form textarea,
.portal-form input,
.portal-form select,
.portal-form textarea,
.unlock-form input,
.edit-form input,
.edit-form textarea,
.policy-form input,
.qr-manual input,
.admin-review textarea,
.admin-detail-card textarea{
  display:block;
  box-sizing:border-box;
  width:100%;
  min-height:46px;
  margin-top:8px;
  padding:12px 14px;
  border:1px solid var(--input-line);
  background:var(--white);
  color:var(--ink);
  font-size:15px;
  font-weight:400;
  line-height:1.4;
  border-radius:0;
  box-shadow:none;
}
.auth-form input:not([type="checkbox"]):not([type="radio"]):not([type="date"]),
.auth-form textarea,
.portal-form input:not([type="date"]):not([type="checkbox"]):not([type="file"]),
.portal-form textarea,
.unlock-form input:not([type="date"]),
.edit-form input:not([type="date"]):not([type="checkbox"]):not([type="file"]),
.edit-form textarea,
.policy-form input:not([type="date"]),
.qr-manual input{
  -webkit-appearance:none;
  appearance:none;
}
.portal-form select,
.edit-form select,
.auth-form select{
  -webkit-appearance:none;
  appearance:none;
  background-color:var(--white);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%231c1b18' stroke-width='1.4' d='M1.5 1.5L6 6l4.5-4.5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  background-size:12px 8px;
  padding-right:38px;
}
.auth-form input::placeholder,
.portal-form input::placeholder,
.portal-form textarea::placeholder,
.unlock-form input::placeholder,
.edit-form input::placeholder,
.edit-form textarea::placeholder,
.qr-manual input::placeholder,
.admin-detail-card textarea::placeholder{
  color:#6f6b63;
  opacity:1;
}
.auth-form input:not([type="checkbox"]):focus,
.auth-form select:focus,
.auth-form textarea:focus,
.portal-form input:focus,
.portal-form select:focus,
.portal-form textarea:focus,
.unlock-form input:focus,
.edit-form input:focus,
.edit-form textarea:focus,
.policy-form input:focus,
.qr-manual input:focus,
.admin-review textarea:focus,
.admin-detail-card textarea:focus{
  border-color:var(--ink);
  outline:none;
  box-shadow:none;
}
.auth-submit,.signup-link,.auth-demo-note{font-size:13px}
.auth-error{font-size:13px;line-height:1.55}
.auth-side{background:#1f1e1b}
.auth-side.admin{background:#1f1e1b}
.role-switch button.active,.role-switch button.active.admin{background:var(--ink)}
.portal-intro{background:#1f1e1b}
.admin-rule{background:#1f1e1b}
.qr-scan-stage{background:#1f1e1b}
.verify-tabs button.active{background:var(--ink)}
.auth-form .agree{
  align-items:flex-start;
  gap:8px;
  margin:16px 0 4px;
  font-size:13px;
  font-weight:400;
  color:#4a4843;
  display:flex;
}
.auth-form .agree input,
.auth-options input[type="checkbox"],
.portal-form .agree input{
  -webkit-appearance:auto;
  appearance:auto;
  flex:none;
  width:16px;
  height:16px;
  min-height:16px;
  margin:3px 0 0;
  padding:0;
  border:1px solid var(--input-line);
  background:#fff;
  accent-color:var(--ink);
}
.auth-options{font-size:13px}
.booking-form label{font-size:13px}
.booking-form label input{font-size:15px;padding:12px 0}
.booking-form .back-button{font-size:13px}
.password-label small{font-size:12px;line-height:1.5}

/* 공연 등록·관리자 */
.portal-form label,.unlock-form label,.edit-form label{font-size:13px}
.portal-form input,.portal-form select,.portal-form textarea,.unlock-form input,.edit-form input,.edit-form textarea{font-size:15px}
.portal-form .agree{font-size:13px}
.submit-performance,.unlock-form button,.edit-form>button{font-size:14px}
.form-top{font-size:13px}
.admin-heading h2{font-size:28px}
.admin-heading p{font-size:12px}
.queue-info p,.queue-info span,.queue-id i,.queue-actions button{font-size:12px}
.queue-info h3{font-size:18px}
.admin-review{border:1px solid var(--ink);background:var(--white);margin:0 0 20px;padding:22px}
.admin-review h3{letter-spacing:-.04em;margin:0 0 8px;font-size:22px}
.admin-review dl{margin:0 0 14px}
.admin-review dl div{border-bottom:1px solid var(--line);grid-template-columns:88px 1fr;gap:10px;padding:8px 0;font-size:13px;display:grid}
.admin-review dt{color:#6a6760}
.admin-review dd{margin:0;font-weight:700;white-space:pre-wrap}
.admin-review textarea{border-color:var(--input-line);min-height:72px}
.admin-review-actions{flex-wrap:wrap;gap:8px;display:flex}
.admin-review-actions button{border:1px solid var(--line);cursor:pointer;background:0 0;padding:10px 12px;font-size:13px;font-weight:800}
.admin-review-actions .approve{background:var(--ink);color:#fff;border-color:var(--ink)}
.register-error,.edit-error{border-left:3px solid var(--coral);background:#f05b4214;margin:0 0 14px;padding:12px;font-size:13px;line-height:1.5}
.hp-field{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.portal-form input[type="file"],
.edit-form input[type="file"]{
  min-height:0;
  height:auto;
  padding:8px 0;
  border:0;
  background:transparent;
}
.poster-pick small{display:block;margin-top:6px;color:#6a6760;font-size:12px;font-weight:400}
.poster-preview{display:block;max-width:180px;max-height:240px;margin-top:8px;object-fit:cover;border:1px solid var(--line)}
.admin-poster{margin:0 0 14px}
.admin-poster img{max-width:220px;max-height:300px;object-fit:contain;border:1px solid var(--line)}
.edit-status{background:#f3f1eb}
.business-metrics article:first-child{background:var(--white)}
.member-metrics article:first-child{background:var(--white)}
.member-heading p,.member-section-title span{font-size:12px;letter-spacing:.06em}
.member-heading h2{font-size:36px}
.member-heading span,.member-booking small,.reward-history small{font-size:13px}
.member-booking strong{font-size:17px}

@media (width<=760px){
  .filter-row,
  .filter-row.extra-filters{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:10px;
    overflow:visible;
    max-width:100%;
  }
  .filter-row{
    gap:8px;
    padding:16px 0 8px;
  }
  .filter-row.extra-filters{
    gap:12px;
    padding:8px 0 22px;
  }
  .filter-row .category-tabs,
  .filter-row.extra-filters .category-tabs{
    flex-wrap:nowrap;
    margin-right:0;
    width:100%;
    max-width:100%;
    padding-bottom:2px;
    overflow-x:auto;
    overflow-y:hidden;
    overscroll-behavior-x:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .filter-row .category-tabs::-webkit-scrollbar,
  .filter-row.extra-filters .category-tabs::-webkit-scrollbar{
    display:none;
  }
  .filter-row .result-count{
    position:static;
    align-self:flex-start;
    margin:4px 0 2px;
    padding:0;
    background:transparent;
    white-space:nowrap;
    font-size:13px;
    line-height:1.4;
  }
  .hero-sticker{right:10px}
  .card-badge{right:8px}
  .tour-route{
    width:100%;
    max-width:100%;
    margin-left:0;
    margin-right:0;
    overflow-x:auto;
    overscroll-behavior-x:contain;
  }
  .route-line{right:0}
  .member-extra,.policy-form,.region-compare{grid-template-columns:1fr}
  .modal-actions{margin-top:8px}
  .auth-modal.is-stack .auth-main{padding:52px 18px 28px}
  .auth-modal.onboard-modal .auth-main{padding:40px 18px 20px}
  .admin-review dl div{grid-template-columns:1fr}
}

/* 운영자 대시보드 */
.portal-modal.admin-portal{
  display:flex;
  flex-direction:column;
  width:min(1180px, calc(100vw - 32px));
  height:min(840px, calc(100vh - 24px));
  max-height:calc(100vh - 24px);
  overflow:hidden;
  background:var(--paper);
  box-shadow:0 24px 80px #1c1b1840;
}
.admin-portal .modal-close{
  top:16px;
  right:16px;
  background:var(--white);
}
.admin-shell{
  display:flex;
  flex-direction:column;
  min-height:0;
  flex:1;
  padding:28px 32px 24px;
}
.admin-top{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  padding:0 48px 18px 0;
  border-bottom:1px solid var(--ink);
}
.admin-top p{
  margin:0 0 6px;
  color:#6a6760;
  font-size:13px;
  font-weight:700;
  letter-spacing:0;
}
.admin-top h2{
  margin:0;
  font-size:28px;
  font-weight:800;
  letter-spacing:-.04em;
  line-height:1.15;
}
.admin-who{
  display:flex;
  align-items:center;
  gap:12px;
  padding-bottom:4px;
}
.admin-who span{
  color:#4a4843;
  font-size:13px;
  font-weight:700;
}
.admin-who button{
  border:0;
  border-bottom:1px solid var(--ink);
  background:transparent;
  padding:0 0 2px;
  color:var(--ink);
  cursor:pointer;
  font-size:13px;
  font-weight:800;
}
.admin-tabs{
  display:flex;
  gap:0;
  margin:0;
  border-bottom:1px solid var(--line);
}
.admin-tabs button{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-bottom:-1px;
  padding:14px 18px 12px;
  border:0;
  border-bottom:2px solid transparent;
  background:transparent;
  color:#6a6760;
  cursor:pointer;
  font-size:15px;
  font-weight:700;
}
.admin-tabs button span,
.admin-filters button span{
  display:inline-grid;
  place-items:center;
  min-width:22px;
  height:22px;
  padding:0 6px;
  border:1px solid var(--line);
  background:var(--white);
  color:var(--ink);
  font-size:12px;
  font-style:normal;
  font-weight:800;
  line-height:1;
}
.admin-tabs button.is-on{
  color:var(--ink);
  border-bottom-color:var(--ink);
}
.admin-tabs button.is-on span{
  background:var(--ink);
  border-color:var(--ink);
  color:#fff;
}
.admin-review-layout{
  display:grid;
  grid-template-columns:minmax(280px, 34%) 1fr;
  gap:0;
  min-height:0;
  flex:1;
  overflow:hidden;
}
.admin-queue{
  display:flex;
  flex-direction:column;
  min-width:0;
  min-height:0;
  padding:16px 16px 0 0;
  border-right:1px solid var(--line);
}
.admin-filters{
  display:flex;
  gap:8px;
  margin:0 0 12px;
  padding-bottom:4px;
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-x:contain;
  scrollbar-width:none;
}
.admin-filters::-webkit-scrollbar{display:none}
.admin-filters button{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:7px 12px;
  border:1px solid var(--line);
  background:var(--white);
  color:var(--ink);
  cursor:pointer;
  font-size:13px;
  font-weight:700;
  white-space:nowrap;
}
.admin-filters button.is-on{
  background:var(--ink);
  border-color:var(--ink);
  color:#fff;
}
.admin-filters button.is-on span{
  background:transparent;
  border-color:#ffffff55;
  color:#fff;
}
.admin-queue-list{
  display:flex;
  flex-direction:column;
  gap:8px;
  min-height:0;
  padding:0 4px 16px 0;
  overflow:auto;
}
.admin-queue-card{
  display:grid;
  grid-template-columns:64px 1fr;
  gap:12px;
  width:100%;
  padding:10px;
  border:1px solid var(--line);
  background:var(--white);
  text-align:left;
  cursor:pointer;
  color:var(--ink);
}
.admin-queue-card:hover,
.admin-queue-card.is-on{
  border-color:var(--ink);
}
.admin-queue-card.is-on{
  background:#fff;
  box-shadow:inset 3px 0 0 var(--ink);
}
.admin-thumb{
  width:64px;
  height:84px;
  overflow:hidden;
  background:#e8e4dc;
  color:#6a6760;
  font-size:11px;
  font-weight:700;
}
.admin-thumb img,
.admin-poster img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.admin-thumb span,
.admin-poster span{
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
}
.admin-queue-card h3{
  margin:6px 0 4px;
  font-size:15px;
  font-weight:800;
  letter-spacing:-.03em;
  line-height:1.3;
}
.admin-queue-card p{
  margin:0;
  color:#5c5a55;
  font-size:12px;
  line-height:1.45;
}
.admin-status{
  display:inline-block;
  padding:3px 8px;
  border:1px solid var(--ink);
  font-size:11px;
  font-style:normal;
  font-weight:800;
  letter-spacing:0;
  line-height:1.2;
}
.admin-status.st-pending{background:var(--white)}
.admin-status.st-approved{background:var(--ink);color:#fff}
.admin-status.st-rejected{border-color:var(--coral);color:var(--coral);background:var(--white)}
.admin-status.st-changes-requested{background:#f3f1eb;color:var(--ink)}
.admin-detail{
  min-width:0;
  min-height:0;
  overflow:auto;
  padding:16px 0 8px 20px;
}
.admin-detail-card{
  padding:0 4px 12px 0;
}
.admin-back{
  display:none;
  margin:0 0 12px;
  border:0;
  background:transparent;
  padding:0;
  color:var(--ink);
  cursor:pointer;
  font-size:14px;
  font-weight:800;
}
.admin-detail-hero{
  display:grid;
  grid-template-columns:120px 1fr;
  gap:18px;
  align-items:end;
  margin:0 0 18px;
}
.admin-poster{
  width:120px;
  height:160px;
  margin:0;
  background:#e8e4dc;
  border:1px solid var(--line);
  color:#6a6760;
  font-size:13px;
  font-weight:700;
}
.admin-detail-hero h3{
  margin:8px 0 6px;
  font-size:24px;
  font-weight:800;
  letter-spacing:-.04em;
  line-height:1.25;
}
.admin-detail-hero p{
  margin:0;
  color:#5c5a55;
  font-size:13px;
}
.admin-detail-card dl{
  margin:0 0 18px;
  border-top:1px solid var(--line);
}
.admin-detail-card dl div{
  display:grid;
  grid-template-columns:92px 1fr;
  gap:12px;
  padding:12px 0;
  border-bottom:1px solid var(--line);
}
.admin-detail-card dl div.wide{
  grid-template-columns:1fr;
  gap:6px;
}
.admin-detail-card dt{
  color:#6a6760;
  font-size:12px;
  font-weight:700;
}
.admin-detail-card dd{
  margin:0;
  color:var(--ink);
  font-size:15px;
  font-weight:700;
  line-height:1.55;
  white-space:pre-wrap;
}
.admin-detail-card dd small{
  display:block;
  margin-top:4px;
  color:#6a6760;
  font-size:13px;
  font-weight:400;
}
.admin-detail-card > label{
  display:block;
  margin:0 0 16px;
  font-size:13px;
  font-weight:700;
}
.admin-detail-card textarea{
  min-height:88px;
  resize:vertical;
}
.admin-detail-actions{
  position:sticky;
  bottom:0;
  z-index:2;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:8px;
  padding:12px 0 4px;
  background:var(--paper);
  border-top:1px solid var(--line);
}
.admin-detail-actions button{
  min-height:44px;
  padding:0 16px;
  border:1px solid var(--ink);
  background:var(--white);
  color:var(--ink);
  cursor:pointer;
  font-size:14px;
  font-weight:800;
}
.admin-detail-actions .is-danger{
  border-color:var(--coral);
  color:var(--coral);
}
.admin-detail-actions .is-approve{
  background:var(--ink);
  color:#fff;
  border-color:var(--ink);
}
.admin-detail-empty,
.admin-empty{
  margin:24px 0;
  color:#5c5a55;
  font-size:14px;
  line-height:1.6;
}
.admin-detail-empty{
  display:grid;
  place-content:center;
  min-height:280px;
  text-align:center;
  border:1px dashed var(--line);
  background:var(--white);
}
.admin-detail-empty p{
  margin:0 0 6px;
  color:var(--ink);
  font-size:16px;
  font-weight:700;
}
.admin-detail-empty span{
  color:#6a6760;
  font-size:13px;
}
.admin-stats{
  min-height:0;
  flex:1;
  overflow:auto;
  padding:20px 0 8px;
}
.admin-metrics{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:10px;
  margin:0 0 22px;
}
.admin-metrics article{
  display:flex;
  flex-direction:column;
  min-height:108px;
  padding:16px 16px 14px;
  border:1px solid var(--line);
  background:var(--white);
}
.admin-metrics span{
  font-size:13px;
  font-weight:700;
  color:#5c5a55;
}
.admin-metrics strong{
  margin:10px 0 8px;
  font-family:inherit;
  font-size:28px;
  font-style:normal;
  font-weight:800;
  letter-spacing:-.04em;
  line-height:1;
}
.admin-metrics small{
  margin-top:auto;
  color:#6a6760;
  font-size:12px;
  line-height:1.45;
}
.admin-regions{
  padding:18px 20px 8px;
  border:1px solid var(--line);
  background:var(--white);
}
.admin-regions h3{
  margin:0 0 14px;
  font-size:16px;
  font-weight:800;
  letter-spacing:-.03em;
}
.admin-region-row{
  margin:0 0 14px;
}
.admin-region-row > div{
  display:flex;
  align-items:baseline;
  gap:10px;
  margin:0 0 6px;
}
.admin-region-row span{
  font-size:14px;
  font-weight:700;
}
.admin-region-row b{
  font-family:inherit;
  font-size:14px;
  font-style:normal;
  font-weight:800;
}
.admin-region-row small{
  margin-left:auto;
  color:#6a6760;
  font-size:12px;
}
.admin-bar{
  display:block;
  height:8px;
  background:var(--ink);
}
.admin-shell .policy-form{
  min-height:0;
  flex:1;
  overflow:auto;
  padding:22px 0 24px;
  max-width:720px;
}

@media (width<=760px){
  .modal-backdrop:has(.admin-portal){
    padding:8px;
    place-items:stretch;
  }
  .portal-modal.admin-portal{
    width:100%;
    height:auto;
    min-height:0;
    max-height:none;
  }
  .admin-shell{padding:22px 16px 18px}
  .admin-top{
    align-items:flex-start;
    padding-right:40px;
  }
  .admin-top h2{font-size:22px}
  .admin-tabs button{padding:12px 12px 10px;font-size:14px}
  .admin-review-layout{
    display:flex;
    flex-direction:column;
    overflow:hidden;
  }
  .admin-queue{
    flex:1;
    min-height:0;
    padding:14px 0 0;
    border-right:0;
  }
  .admin-review-layout.is-open .admin-queue{display:none}
  .admin-review-layout:not(.is-open) .admin-detail{display:none}
  .admin-back{display:inline-block}
  .admin-detail{
    flex:1;
    min-height:0;
    overflow:auto;
    padding:14px 0 0;
  }
  .admin-detail-hero{
    grid-template-columns:88px 1fr;
    gap:12px;
  }
  .admin-poster{width:88px;height:118px}
  .admin-detail-hero h3{font-size:20px}
  .admin-detail-card dl div{grid-template-columns:1fr;gap:4px;padding:10px 0}
  .admin-detail-actions button{flex:1 1 calc(50% - 8px)}
  .admin-detail-actions .is-approve{flex:1 1 100%}
  .admin-metrics{grid-template-columns:1fr 1fr}
  .admin-metrics article{min-height:92px;padding:14px}
  .admin-metrics strong{font-size:24px}
  .admin-shell .policy-form{max-width:none}
}
