@font-face{font-family:'SUIT';font-style:normal;font-weight:100 900;font-display:swap;src:url('./assets/fonts/SUIT-Variable.woff2') format('woff2')}:root{--ink:#27232d;--muted:#817985;--bg:#f8f5f1;--peach:#e7b9a7;--accent:#c78670;--line:#e9e3df}*{box-sizing:border-box}html,body{margin:0;background:#ddd;font-family:'SUIT',sans-serif;color:var(--ink)}button{border:0;background:none;font:inherit;color:inherit;cursor:pointer}.app{width:390px;min-height:844px;margin:auto;background:var(--bg);position:relative;overflow:hidden;box-shadow:0 0 30px #aaa}header{height:62px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-size:18px;font-weight:700}.logo b{display:grid;place-items:center;width:27px;height:27px;border-radius:9px;background:var(--ink);color:var(--peach);font:italic 19px 'SUIT',sans-serif}.head-icons{display:flex;gap:15px;font-size:21px}.head-icons button{position:relative}.head-icons i{position:absolute;width:5px;height:5px;border-radius:50%;background:var(--accent);right:-1px;top:1px}.hero{height:345px;padding:39px 25px;position:relative;overflow:hidden}.hero-overline,.tiny-label,.section-title span,.notice span{font-size:12px;letter-spacing:2px;font-weight:700;color:var(--accent)}h1{font:500 34px/1.23 'SUIT',sans-serif;margin:18px 0}.hero h1 em{font-style:italic;color:var(--accent)}.hero p{font-size:13px;line-height:1.7;color:var(--muted);margin:0}.hero-cta{margin-top:25px;background:var(--ink);color:#fff;border-radius:5px;padding:14px 17px;font-size:12px}.hero-cta span{color:var(--peach);margin-left:15px}.hero-orbit{position:absolute;right:-68px;top:127px;width:190px;height:80px;border:1px solid #c7867060;border-radius:50%;transform:rotate(-25deg);color:#e7b9a7;font-size:32px;padding:17px}.notice{margin:0 25px;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.notice strong{display:block;font:500 17px/1.4 'SUIT',sans-serif;margin-top:8px}.notice>b{color:var(--accent);font-size:20px}.home-section{padding:27px 25px 0}.section-title{display:flex;justify-content:space-between;align-items:end}.section-title h2{font-size:20px;margin:7px 0 0;letter-spacing:-1px}.section-title button{font-size:12px;color:var(--muted)}.academy-scroll{display:flex;gap:12px;overflow:hidden;margin-top:15px}.academy-card{min-width:273px;background:#fff;border:1px solid var(--line);border-radius:5px;overflow:hidden}.academy-photo{height:92px;position:relative}.academy-photo small{position:absolute;top:12px;left:13px;color:white;background:#27232dcc;padding:5px 8px;font-size:12px;letter-spacing:1px}.photo-one{background:linear-gradient(135deg,#3d3640,#a77970 52%,#e7b9a7)}.photo-two{background:linear-gradient(135deg,#5c5760,#b0a5ab 52%,#ede5df)}.photo-three{background:linear-gradient(135deg,#393541,#8c7982 52%,#dbc0b3)}.academy-body{padding:13px}.academy-body label,.latest-row label,.result-card label{font-size:12px;color:var(--accent)}.academy-body h3,.latest-row h3,.result-card h3{font-size:15px;margin:6px 0}.academy-body p,.latest-row p,.result-card p{font-size:12px;color:var(--muted);margin:0}.academy-body>div{display:flex;justify-content:space-between;margin-top:13px;font-size:12px;color:#a36e5d}.save{font-size:20px;color:#aaa1a5}.latest{padding-bottom:95px}.latest-row{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);padding:11px;margin-top:14px}.latest-row .save{margin-left:auto}.mini-photo{width:62px;height:62px;flex:none}.screen{min-height:758px;padding:0 25px;background:var(--bg)}.hidden{display:none}.screen-head{height:62px;margin:0 -25px;padding:0 25px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.screen-head h2{font-size:18px;margin:0}.back{font-size:28px}.question{padding-top:38px}.question>span{font-size:12px;color:var(--accent);letter-spacing:2px}.question h1{font-size:31px;margin:17px 0 10px}.question p{font-size:13px;color:var(--muted);line-height:1.6}.choice{display:block;width:100%;text-align:left;background:#fff;border:1px solid var(--line);border-radius:5px;margin-top:15px;padding:18px;font-size:22px;color:var(--accent)}.choice b{font-size:15px;color:var(--ink);margin-left:8px}.choice small{display:block;font-size:12px;line-height:1.6;color:var(--muted);margin:9px 0 0 33px}.next{width:100%;background:var(--ink);color:#fff;border-radius:5px;padding:15px;margin-top:28px;font-size:13px}.next span{float:right;color:var(--peach)}.result-summary{display:flex;justify-content:space-between;margin:24px 0;font-size:12px}.result-summary span{color:var(--accent)}.result-card{display:flex;gap:12px;background:#fff;border:1px solid var(--line);padding:12px;margin-bottom:10px;align-items:center}.result-photo{width:82px;height:82px;flex:none}.result-card .save{margin-left:auto;align-self:flex-start}.result-card>div:nth-child(2)>span:last-child{font-size:12px;color:#a36e5d;display:block;margin-top:10px}.empty{text-align:center;padding-top:170px;color:var(--muted)}.empty>div,.empty:first-letter{font-size:38px;color:var(--accent)}.empty h3{color:var(--ink);font-size:16px}.empty p{font-size:12px;line-height:1.7}.my-profile{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);padding:18px;margin-top:25px}.avatar{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--ink);color:var(--peach);font:italic 25px 'SUIT',sans-serif}.my-profile b{font-size:14px}.my-profile span{margin-left:auto;font-size:22px;color:var(--muted)}.my-menu{margin-top:15px;background:#fff;border:1px solid var(--line)}.my-menu button{display:block;text-align:left;width:100%;padding:18px;border-bottom:1px solid var(--line);font-size:13px}.my-menu button:last-child{border:0}.my-menu span{float:right;color:var(--muted)}.bottom{position:absolute;bottom:0;height:78px;background:#fff;border-top:1px solid var(--line);width:100%;display:flex;justify-content:space-around;z-index:5;padding-top:11px}.nav{width:25%;font-size:12px;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:6px;position:relative}.nav span{font-size:20px;line-height:20px}.nav.active{color:var(--accent);font-weight:700}@media(max-width:390px){.app{width:100%}}

input,textarea,select{font-family:inherit}
.launch-screen{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:#f8f5f1;opacity:1;visibility:visible;transition:opacity .38s ease,visibility .38s ease}.launch-screen.is-leaving{opacity:0;visibility:hidden;pointer-events:none}.launch-content{display:flex;flex-direction:column;align-items:center;transform:translateY(-2vh)}.launch-wordmark{display:flex;flex-direction:column;align-items:flex-start;font-size:clamp(52px,15vw,68px);font-weight:850;line-height:.82;letter-spacing:-.065em}.launch-wordmark span{display:block;opacity:0;transform:translateY(14px)}.launch-screen.is-animating .launch-wordmark span{animation:launch-rise .52s cubic-bezier(.22,.72,.24,1) forwards}.launch-wordmark span:first-child{color:#27232d}.launch-wordmark span:last-child{color:#c78670}.launch-screen.is-animating .launch-wordmark span:last-child{animation-delay:.12s}.launch-connection{display:grid;grid-template-columns:7px 92px 7px;align-items:center;margin-top:34px;color:#c78670}.launch-connection i{width:7px;height:7px;border-radius:50%;background:currentColor;opacity:0}.launch-screen.is-animating .launch-connection i{animation:launch-dot .24s ease .56s forwards}.launch-screen.is-animating .launch-connection i:last-child{animation-delay:.88s}.launch-connection b{height:1px;background:currentColor;transform:scaleX(0);transform-origin:left}.launch-screen.is-animating .launch-connection b{animation:launch-line .38s cubic-bezier(.22,.72,.24,1) .62s forwards}.launch-tagline{margin-top:18px;color:#9a8e93;font-size:12px;font-weight:750;letter-spacing:2.3px;opacity:0}.launch-screen.is-animating .launch-tagline{animation:launch-dot .3s ease .9s forwards}@keyframes launch-rise{to{opacity:1;transform:translateY(0)}}@keyframes launch-dot{to{opacity:1}}@keyframes launch-line{to{transform:scaleX(1)}}@media(display-mode:standalone){.launch-screen.is-animating .launch-wordmark span{animation-duration:.7s}.launch-screen.is-animating .launch-wordmark span:last-child{animation-delay:.18s}.launch-screen.is-animating .launch-connection i{animation-duration:.32s;animation-delay:.78s}.launch-screen.is-animating .launch-connection i:last-child{animation-delay:1.2s}.launch-screen.is-animating .launch-connection b{animation-duration:.5s;animation-delay:.86s}.launch-screen.is-animating .launch-tagline{animation-duration:.38s;animation-delay:1.25s}}@keyframes launch-soft-fade{to{opacity:1}}@media(prefers-reduced-motion:reduce){.launch-screen{transition:opacity .25s ease}.launch-content{opacity:0;animation:launch-soft-fade .45s ease .08s forwards}.launch-wordmark span,.launch-connection i,.launch-connection b,.launch-tagline{animation:none!important;opacity:1;transform:none}}

/* Public director information uses the same width as the academy details. */
.partner-director-preview,.academy-director-photo { width: 112px; height: 140px; object-fit: cover; border-radius: 16px; }
.academy-director-intro,.academy-director-history,[data-review-field="directorSummary"] { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.7; }
.partner-director-fields input[type="file"] { max-width: 100%; font-size: 16px; }

.admin-pricing-group > summary { padding: 16px 0; font-weight: 750; cursor: pointer; }
.admin-pricing-group .admin-pricing-item { margin-bottom: 12px; }
.ad-request-region { color: var(--muted); line-height: 1.6; }

.partner-director-guide { color: var(--muted); font-size: 12px; line-height: 1.6; }
.partner-director-remove { justify-self: start; padding: 8px 12px; border: 1px solid var(--line); border-radius: 12px; color: var(--muted); }

#partner-form .partner-form-actions:has(.partner-delete:not(.hidden)) { grid-template-columns: 40px minmax(0,1fr) minmax(0,.7fr); }
#partner-form .partner-form-actions .partner-submit { grid-column: 2; grid-row: 1; }
#partner-form .partner-form-actions .partner-delete { grid-column: 3; grid-row: 1; min-width: 0; }
.partner-delete { min-height: 40px; border: 1px solid #dcb9b2; border-radius: 999px; background: #fff5f2; color: #a44d40; font-size: 12px; font-weight: 750; }

/* Shared date and time controls. Native values remain available to form validation. */
.ballet-picker-field { position:relative; min-width:0; width:100%; }
input.ballet-picker-native { position:absolute!important; width:1px!important; height:1px!important; opacity:0; padding:0!important; border:0!important; pointer-events:none; }
.ballet-picker-trigger { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; height:40px; min-height:40px; padding:0 12px; border:1px solid #ded4ce; border-radius:12px; background:#fff; color:#918991; text-align:left; font:inherit; font-size:12px; line-height:1; }
.ballet-picker-trigger.has-value { color:#29252e; }
.ballet-picker-trigger i { color:#c7846e; font-size:20px; font-style:normal; }
.ballet-picker-trigger:focus-visible { outline:2px solid #c7846e; outline-offset:3px; }
.ballet-picker-trigger:disabled { opacity:.5; }
.ballet-date-time-dialog { width:min(398px,calc(100% - 32px)); max-height:calc(100dvh - 32px); box-sizing:border-box; overflow:auto; padding:22px; border:1px solid #e6dcd6; border-radius:24px; margin:auto; color:#29252e; background:#fbf8f5; box-shadow:0 18px 60px #2a23272b; }
.ballet-date-time-dialog::backdrop { background:#2a232759; }
.ballet-date-time-dialog header { display:flex;align-items:center;justify-content:space-between;margin-bottom:16px; }
.ballet-date-time-dialog h2 { margin:0;font-size:18px; }
.ballet-date-time-dialog button { font-family:inherit; cursor:pointer; }
.ballet-date-time-dialog button:focus-visible { outline:2px solid #a65e47;outline-offset:2px; }
.picker-close { width:36px;height:36px;border-radius:50%;background:#eee7e3;color:#74686a;font-size:22px; }
.picker-month-nav { display:flex;align-items:center;justify-content:space-between;margin-bottom:12px; }
.picker-month-nav button { width:40px;height:40px;background:#f0e5df;color:#935d4c;border-radius:50%;font-size:25px; }
.picker-calendar { display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px; }
.picker-weekday { text-align:center;padding:8px 0;color:#8d8289;font-size:12px; }
.picker-day { aspect-ratio:1;border-radius:50%;background:transparent;color:#393039;font-size:13px; }
.picker-day.today { box-shadow:inset 0 0 0 1px #c7846e; }
.picker-day.selected,.picker-time-option.selected { background:#c7846e;color:white;font-weight:750; }
.picker-day:disabled,.picker-time-option:disabled { color:#c8c0c0;cursor:default;background:transparent; }
.picker-status { min-height:20px;font-size:12px;color:#8c7e85;margin:14px 0; }
.ballet-date-time-dialog footer { display:flex;gap:8px; }
.ballet-date-time-dialog footer button { min-height:44px;padding:10px 14px;border-radius:999px;font-size:13px;font-weight:700;background:#eee7e3;color:#786a70; }
.ballet-date-time-dialog footer .picker-confirm { flex:1;background:#c7846e;color:#fff; }
.picker-time-selected { text-align:center;color:#935d4c;font-size:28px;font-weight:750;margin:8px 0 20px; }
.picker-time-columns { display:grid;grid-template-columns:1fr 1fr;gap:12px; }
.picker-time-columns section > b { display:block;text-align:center;font-size:12px;color:#8d8289;margin-bottom:8px; }
.picker-time-list { position:relative;height:210px;overflow-y:auto;overscroll-behavior:contain;padding:6px;background:#f1ebe7;border-radius:16px; }
.picker-time-option { display:block;width:100%;min-height:44px;margin:3px 0;border-radius:12px;background:transparent;color:#594d56;font-size:17px; }
@media(max-width:360px) { .ballet-date-time-dialog { padding:16px; } .picker-calendar { gap:3px; } }

/* Shared typography fallback for explanatory text, including dynamic notices. */
.screen p { font-family: inherit; font-size: 12px; font-weight: 500; line-height: 1.6; }
.screen .promotion-target-empty { margin: 6px 3px 10px; color: var(--muted); font-size: 12px; font-weight: 500; line-height: 1.65; overflow-wrap: anywhere; }
.screen .signup-role > p,.screen .ad-request-region { margin: 0; color: var(--muted); font-size: 12px; font-weight: 500; line-height: 1.6; }
.screen .academy-director-intro,.screen .academy-director-history { font-size: 12px; font-weight: 500; line-height: 1.7; white-space: pre-line; overflow-wrap: anywhere; }

/* Field labels must not offset text inside the date/time trigger. */
.ballet-picker-field .ballet-picker-trigger > span { display: block; margin: 0; padding: 0; color: inherit; font-size: inherit; font-weight: 600; line-height: 1; }
.ballet-picker-field .ballet-picker-trigger > i { display: flex; align-items: center; justify-content: center; flex: 0 0 18px; width: 18px; height: 18px; margin: 0; padding: 0; font-size: 18px; line-height: 1; }

/* Match performance notices and attachment actions to their surrounding text. */
.screen .request-timing-note,.screen .performance-submit-message { font-size: 12px; font-weight: 500; line-height: 1.65; }
.performance-submit-upload .admin-official-detail-preview button { min-height: 30px; padding: 0 10px; font-size: 12px; }
.performance-submit-upload .admin-official-detail-preview .performance-submit-detail-view { min-height: 0; padding: 0; border-radius: 7px; background: transparent; line-height: 0; }
.performance-seat-prices { margin: 0; padding: 0; border: 0; min-width: 0; }
.performance-seat-prices legend { margin-bottom: 6px; padding: 0; color: #716970; font-size: 12px; font-weight: 700; }
.screen .performance-seat-prices > p { margin: 0 0 10px; font-size: 12px; color: var(--muted); }
.performance-seat-price-list { display: grid; gap: 8px; }
.performance-seat-price { display: grid; grid-template-columns: 30px minmax(0,1fr) 16px; gap: 8px; align-items: center; }
.performance-seat-price b { font-size: 12px; font-weight: 650; }
.performance-seat-price input { text-align: right; }
.performance-seat-prices .performance-seat-price > span { margin: 0; font-size: 12px; font-weight: 500; }

/* Performance field headings follow the poster card heading. */
.performance-submit-form .admin-official-field > span,
.performance-submit-form .performance-seat-prices > legend { color: var(--ink); font-size: 12px; font-weight: 700; line-height: 1.5; margin-bottom: 8px; }
.performance-submit-form .performance-seat-prices + .performance-submit-upload { margin-top: 12px; }

/* Performance reception uses the same confirmation card as partner registration. */
  .performance-submit-success { padding: 38px 18px; border: 1px solid #ece5e1; border-radius: 22px; background: #f2eeeb; text-align: center }
  .performance-submit-success i { width: 52px; height: 52px; display: grid; place-items: center; margin: 0 auto 15px; border-radius: 50%; background: #ead8d1; color: var(--accent); font-size: 22px; font-style: normal }
  .performance-submit-success h2 { margin: 0; color: var(--ink); font-size: 17px }
  .performance-submit-success p { margin: 9px 0 18px; color: var(--muted); font-size: 12px; line-height: 1.6 }
  .performance-submit-success button { min-height: 40px; padding: 0 22px; border-radius: 999px; background: var(--accent); color: #fff; font-size: 12px; font-weight: 750 }

.screen .performance-submit-success p { font-size: 12px; }
.performance-submit-success.hidden,.performance-submit-form.hidden { display: none; }

.ad-request-target-select { width:100%; min-height:40px; padding:0 12px; margin-top:10px; border:1px solid #ded4ce; border-radius:12px; background:#fff; color:var(--ink); font-size:12px; }

.performance-manage-list { display:grid; gap:12px; margin-top:16px; }
.screen .performance-manage-guide,.screen .performance-manage-empty { font-size:12px;line-height:1.6;color:var(--muted); }

.performance-manage-head {display:flex;align-items:end;justify-content:space-between;gap:14px;padding-top:27px;margin-bottom:20px;}
.performance-manage-head span {display:block;margin-bottom:7px;color:var(--accent);font-size:12px;font-weight:750;letter-spacing:1.6px;}
.performance-manage-head h1 {margin:0;color:var(--ink);font-size:21px;}
.performance-manage-new {min-height:36px;padding:0 12px;border-radius:999px;background:var(--accent);color:#fff;font-size:12px;font-weight:750;}

/* One consistent footer back control on performance management. */
#performance-manage .performance-manage-actions { grid-template-columns:52px; padding:10px 16px; }
#performance-manage .performance-manage-back { width:52px; height:52px; min-height:52px; padding:0; border:0; border-radius:0; background:transparent; color:var(--ink); box-shadow:none; font-size:25px; line-height:1; }
.app:has(#performance-manage:not(.hidden)) > .context-back { display:none; }

.inline-performance-review > .admin-official-tabs,.inline-performance-review > .admin-official-list { display:none; }
.inline-performance-review .performance-review-poster { display:block; width:auto;max-width:100%!important;max-height:240px; margin:0 auto 16px; border-radius:12px; }
.inline-performance-review .performance-review-poster.hidden {display:none;}
.inline-performance-review .admin-official-form {margin-top:0;}

.performance-card-review > .performance-review-poster,.performance-card-review > .admin-official-form,.performance-card-review > .admin-official-detail-preview {display:none!important;}
.performance-review-note { display:block; }
.admin-review-check input:focus-visible + i { outline:2px solid var(--accent); outline-offset:2px; }

.screen .performance-session-list > .performance-session-hint { margin: 0; color: var(--muted); font-family: inherit; font-size: 12px; font-weight: 400; line-height: 1.6; }
.performance-seat-price input[type="number"] { -moz-appearance: textfield; appearance: textfield; }
.performance-seat-price input::-webkit-inner-spin-button, .performance-seat-price input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }

.performance-discount-preview:not(:empty) { display: grid; gap: 14px; margin-top: 14px; }
.performance-discount-preview > button { justify-self: start; }

#partner-form .partner-file-capsule { display: inline-flex; align-items: center; justify-content: center; gap: 5px; width: fit-content; min-height: 38px; padding: 0 13px; border: 0; border-radius: 99px; background: #f2e4de; color: #865b4d; font-size: 12px; font-weight: 750; }
#partner-form .partner-file-capsule i { display: inline; width: auto; height: auto; background: transparent; color: inherit; font-size: inherit; font-style: normal; }
#partner-form .partner-file-capsule b { color: inherit; font-size: inherit; font-weight: inherit; }
#partner-form .partner-file-help { display: block; margin: 9px 0 12px; color: var(--muted); font-size: 12px; line-height: 1.6; font-weight: 400; }

#partner-form .partner-timetable-note,
#partner-form .partner-form-requirements { font-family: inherit; font-size: 12px; font-weight: 400; line-height: 1.6; color: var(--muted); }
#partner-form .partner-file-capsule { margin-top: 8px; }

#my .my-member-menu .my-performance-manage-entry.hidden { display: none; }

#my .my-member-menu .my-store-register-entry.hidden { display: none; }

.head-icons .header-my {display:grid;place-items:center;width:28px;height:30px;padding:2px;border:0;background:transparent;color:var(--ink)}
.header-my svg {width:23px;height:23px}.nav[data-go="stores"] svg {width:25px;height:25px}
#stores .store-search {margin:20px 0;width:100%}#stores .store-search input {min-width:0;width:100%}
.store-results {display:grid;gap:14px;margin-top:20px}.store-directory-card,.store-empty {padding:22px;border:1px solid #e9e2de;border-radius:24px;background:#f1eeeb}
.store-directory-card summary {cursor:pointer;list-style:none}.store-directory-card summary::after {content:'⌄';float:right;color:var(--accent)}
.store-directory-card h2,.store-empty h2 {font-size:17px;margin:0 0 10px}.store-directory-card p,.store-empty p {font-size:13px;line-height:1.7;color:#827b86;margin:8px 0;white-space:pre-line}
.bottom .nav[data-go="stores"] span {background:transparent;-webkit-mask:none;mask:none;display:grid;place-items:center;color:inherit}

.community-magazine {width:100%;display:grid;grid-template-columns:34% minmax(0,1fr);padding:0;margin:0 0 18px;border:1px solid #e9e2de;border-radius:22px;overflow:hidden;background:#f1eae5;text-align:left;color:var(--ink)}
.community-magazine img {width:100%;height:100%;min-height:140px;object-fit:cover}
.magazine-copy {display:flex;flex-direction:column;justify-content:center;gap:9px;padding:18px 16px}
.magazine-copy small {font-size:12px;letter-spacing:2px;color:#a16e59}.magazine-copy strong {font-size:17px;line-height:1.4}.magazine-copy>span {font-size:12px;color:#827b86;line-height:1.5}.magazine-copy b {font-size:12px;color:var(--accent);margin-top:5px}
.head-icons .header-my {width:28px;height:28px;padding:1px}.head-icons .header-my svg {width:25px;height:25px;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.bottom .nav[data-go="find"] span {background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%229%22%20r%3D%223%22%2F%3E%3Cpath%20d%3D%22M20%209c0%206-8%2013-8%2013S4%2015%204%209a8%208%200%200%201%2016%200Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") center / 27px 27px no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%229%22%20r%3D%223%22%2F%3E%3Cpath%20d%3D%22M20%209c0%206-8%2013-8%2013S4%2015%204%209a8%208%200%200%201%2016%200Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") center / 27px 27px no-repeat;}

.bottom .nav[data-go="stores"] span {background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%207h14l2%2014H3L5%207Z%20M8%209V6a4%204%200%200%201%208%200v3%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") center / 27px 27px no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%207h14l2%2014H3L5%207Z%20M8%209V6a4%204%200%200%201%208%200v3%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") center / 27px 27px no-repeat;}

.bottom .nav[data-go="stores"] svg {display:none}

#stores .community-banner-carousel[hidden],#stores .community-banner-dots[hidden] {display:none}
#stores .community-banner-carousel {margin:20px 0}

.store-page-head {padding-top:27px;margin-bottom:18px}
.store-page-head h1 {margin:0;color:var(--accent);font-size:var(--type-display);font-weight:650;line-height:1.28;letter-spacing:-.045em}
.store-page-head p {margin:14px 0 0;color:#827b86;font-size:var(--type-body);line-height:1.65}

.store-style-tabs {display:flex;gap:8px;overflow-x:auto;flex-wrap:nowrap;padding:4px 0;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.store-style-tabs::-webkit-scrollbar {display:none}
.store-style-tabs button {flex:0 0 auto;min-height:38px;padding:0 17px;border:0;border-radius:999px;background:#eeeae7;color:#827b83;font:inherit;font-size:12px;font-weight:700;white-space:nowrap}
.store-style-tabs button.active {background:#ead7cf;color:#865744}

#stores .store-style-tabs {display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;overflow:visible}
#stores .store-style-tabs button {min-width:0;min-height:34px;padding:0 4px;font-size:12px}

#stores .community-banner-carousel:has(.life-feature.is-empty) .community-banner-track {display:none}
#stores .community-banner-carousel:not(:has(.life-feature.is-empty)) .store-ad-empty {display:none}

/* Detail management must stay scoped to the selected record, even with shared tab styles. */
.catalog-manager-modal.single-record .catalog-manager-tabs {display:none!important}

.registration-kind-tabs,.registration-status-tabs {display:flex;gap:6px;margin:16px 0}.registration-kind-tabs button,.registration-status-tabs button,.registration-record button {border:0;border-radius:999px;background:#eeeae7;color:#827b83;padding:12px 14px;font-size:12px;font-weight:700}.registration-kind-tabs button {flex:1;padding:12px 3px}.registration-kind-tabs .active,.registration-status-tabs .active {background:#ead7cf;color:#865744}.registration-count {font-size:12px;color:var(--muted);margin:20px 0}.registration-directory {display:grid;gap:14px;color:var(--muted);font-size:13px}.registration-record {padding:20px;border:1px solid #e9e2de;border-radius:22px;background:#f1eeeb}.registration-record h2 {font-size:17px;color:var(--ink);margin:0}.registration-record p {font-size:12px}.registration-record>div {display:flex;gap:8px}#admin-registrations {padding-bottom:100px!important}

.registration-status-tabs button[hidden] {display:none}

#admin-registrations .registration-directory {gap:9px}
#admin-registrations .registration-record {display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;row-gap:5px;padding:12px 14px;border-radius:17px;align-items:center}
#admin-registrations .registration-record h2 {grid-column:1;grid-row:1;font-size:14px;line-height:1.4;overflow-wrap:anywhere}
#admin-registrations .registration-record p {grid-column:1;grid-row:2;margin:0;font-size:12px;line-height:1.5}
#admin-registrations .registration-record>div {grid-column:2;grid-row:1 / 3;gap:5px;align-items:center}
#admin-registrations .registration-record button {padding:0 9px;min-height:34px;font-size:12px;white-space:nowrap}
@media(max-width:360px){#admin-registrations .registration-record>div {flex-direction:column}#admin-registrations .registration-record button {min-height:28px}}

#admin-registrations .registration-kind-tabs,#admin-registrations .registration-status-tabs {gap:5px;margin:11px 0}
#admin-registrations .registration-kind-tabs button,#admin-registrations .registration-status-tabs button {min-width:0;min-height:34px;padding:0 14px;font-size:12px;font-weight:700;letter-spacing:-.25px;white-space:nowrap}
#admin-registrations .registration-kind-tabs button {padding:0 4px}

#admin-members .admin-members-tabs {grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}
#admin-members .admin-members-tabs button {font-size:12px;min-height:34px;padding:0 4px}

#performances .performance-search-panel label {height:50px;padding:0 14px;gap:10px;border:1px solid var(--line);border-radius:var(--radius-control);background:#fff}
#performances .performance-search-panel input {font:400 1rem 'SUIT',sans-serif}
#performances .performance-search-panel input::placeholder {color:#aaa1a5}

#admin-members .admin-members-search {display:flex;align-items:center;gap:10px;height:50px;padding:0 14px;border:1px solid var(--line);border-radius:var(--radius-control);background:#fff}
#admin-members .admin-members-search input {min-width:0;min-height:0;width:100%;padding:0;border:0;border-radius:0;outline:0;box-shadow:none;background:transparent;font:400 1rem 'SUIT',sans-serif;color:var(--ink);appearance:none;-webkit-appearance:none}
#admin-members .admin-members-search input::placeholder {color:#aaa1a5}
#admin-members .admin-members-search span {position:static;order:-1;flex:none;width:21px;height:21px;transform:none;color:var(--accent);background:currentColor;font-size:0;-webkit-mask:var(--search-icon-mask) center / contain no-repeat;mask:var(--search-icon-mask) center / contain no-repeat}
#admin-members .admin-members-search input::-webkit-search-cancel-button {display:none}

#admin-members .admin-members-tabs {grid-template-columns:repeat(2,minmax(0,1fr))}

#admin-advertising .admin-advertising-tabs {display:grid;grid-template-columns:repeat(5,minmax(0,1fr));width:100%;gap:5px;overflow:visible}
#admin-advertising .admin-advertising-tabs button {min-width:0;width:100%;padding:0 3px;white-space:nowrap}

#admin-advertising .admin-advertising-search {display:flex;align-items:center;gap:10px;height:50px;padding:0 14px;border:1px solid var(--line);border-radius:var(--radius-control);background:#fff}
#admin-advertising .admin-advertising-search input {min-width:0;min-height:0;width:100%;padding:0;border:0;border-radius:0;outline:0;box-shadow:none;background:transparent;font:400 1rem 'SUIT',sans-serif;color:var(--ink);appearance:none;-webkit-appearance:none}
#admin-advertising .admin-advertising-search input::placeholder {color:#aaa1a5}
#admin-advertising .admin-advertising-search span {position:static;order:-1;flex:none;width:21px;height:21px;transform:none;color:var(--accent);background:currentColor;font-size:0;-webkit-mask:var(--search-icon-mask) center / contain no-repeat;mask:var(--search-icon-mask) center / contain no-repeat}
#admin-advertising .admin-advertising-search input::-webkit-search-cancel-button {display:none}

/* Support management uses the shared search and capsule dimensions. */
#admin-support-management .admin-advertising-search {display:flex;align-items:center;gap:10px;height:50px;padding:0 14px;border:1px solid var(--line);border-radius:var(--radius-control);background:#fff}
#admin-support-management .admin-advertising-search input {min-width:0;min-height:0;width:100%;padding:0;border:0;border-radius:0;outline:0;box-shadow:none;background:transparent;font:400 1rem 'SUIT',sans-serif;color:var(--ink);appearance:none;-webkit-appearance:none}
#admin-support-management .admin-advertising-search input::placeholder {color:#aaa1a5}
#admin-support-management .admin-advertising-search span {position:static;order:-1;flex:none;width:21px;height:21px;transform:none;color:var(--accent);background:currentColor;font-size:0;-webkit-mask:var(--search-icon-mask) center / contain no-repeat;mask:var(--search-icon-mask) center / contain no-repeat}
#admin-support-management .admin-advertising-search input::-webkit-search-cancel-button {display:none}
#admin-support-management .admin-advertising-tabs {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;}
#admin-support-management .admin-advertising-tabs button {min-height:34px;font-size:12px;padding:0 8px;}

/* Match the performance directory empty-state text. */
#stores .store-results > .performance-empty {font-size:12px;font-weight:400;}

#admin-registrations .registration-empty {margin:0;padding:64px 0;color:var(--muted);font-size:12px;font-weight:400;text-align:center;}

.management-total,.management-result-count {margin:16px 0;color:var(--muted);font-size:12px;font-weight:400;}



/* Support status capsules match the registration status row. */
#admin-support-management .admin-support-status-tabs {display:flex;gap:5px;margin:11px 0;}
#admin-support-management .admin-support-status-tabs button {flex:none;min-width:0;min-height:34px;padding:0 14px;font-size:12px;font-weight:700;letter-spacing:-.25px;white-space:nowrap;}

#admin-advertising .admin-advertising-tabs {gap:5px;margin:11px 0;}
#admin-advertising .admin-advertising-tabs button {min-width:0;min-height:34px;font-size:12px;font-weight:700;letter-spacing:-.25px;white-space:nowrap;}
#admin-advertising .admin-advertising-stage-tabs button {padding:0 4px;}
#admin-advertising .admin-advertising-stage-tabs {display:flex;flex-wrap:wrap;}
#admin-advertising .admin-advertising-stage-tabs button {flex:none;width:auto;padding:0 14px;}

.comment-reply-context {padding:8px 14px;border-radius:12px;background:#ead8d1;color:#835241;font-size:12px;}

.post-comment-list > .post-comment-reply {position:relative;margin:8px 0 8px 16px;padding:14px 12px 14px 30px;border:0;border-radius:14px;background:#f5f4f2;}
.post-reply-arrow {position:absolute;left:10px;top:14px;color:var(--accent);font-size:18px;line-height:1;}

.post-comment-head > span {display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.post-comment-avatar {position:relative;display:inline-grid;place-items:center;flex:none;width:22px;height:22px;border-radius:50%;overflow:hidden;background:#ead8d1;color:#865744;font-size:12px;}
.post-comment-avatar img {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.post-comment-list > .post-comment-reply {padding-left:40px;}
.post-reply-arrow {left:12px;top:18px;}

.post-comment-avatar.official-account-avatar {background:var(--accent);color:#fff;font-size:14px;font-weight:800;}

#post .post-comment-head b {font-size:14px;}
.post-comment-tools {justify-content:flex-end;flex-wrap:wrap;}

/* Reserve the right-hand action column while wrapping comment text. */
.post-comment {display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;column-gap:12px;row-gap:8px;}
.post-comment > .post-comment-head {grid-column:1 / -1;min-width:0;margin-bottom:0;}
.post-comment > p {grid-column:1;min-width:0;max-width:100%;overflow-wrap:anywhere;white-space:pre-wrap;}
.post-comment > .post-comment-tools {grid-column:2;margin-top:0;margin-left:0;align-self:start;flex-wrap:nowrap;}
.post-comment > .post-comment-edit {grid-column:1 / -1;min-width:0;}

.member-safety-tabs {display:flex;gap:6px;margin:18px 0;}
.member-safety-tabs button {flex:1;min-height:34px;border-radius:999px;background:#eeeae7;color:var(--muted);font-size:12px;}
.member-safety-tabs button.active {background:#ead7cf;color:#865744;}
.member-safety-list {display:grid;gap:12px;color:var(--muted);font-size:12px;}
.member-safety-card {padding:16px;border:1px solid var(--line);border-radius:18px;background:#f1eeeb;}
.member-safety-card b {color:var(--ink);font-size:13px;}.member-safety-card p {line-height:1.6;overflow-wrap:anywhere;}
.member-safety-card button {padding:8px 14px;border-radius:999px;background:#ead7cf;color:#865744;font-size:12px;}
.member-safety-empty {padding:64px 0;text-align:center;font-size:12px;}
#report-block-management {padding-bottom:110px;}

#report-block-management .signup-actions > .signup-cancel {width:40px;height:40px;min-height:40px;padding:0;border:0;border-radius:0;background:transparent;color:var(--ink);box-shadow:none;font-size:25px;line-height:1;}
#report-block-management .member-safety-empty {margin:0;padding:64px 0;color:var(--muted);font-size:12px;font-weight:400;text-align:center;}

/* Empty states use the shared typography role, including scoped management rules. */
#admin-registrations .registration-empty,
#report-block-management .member-safety-empty {font-size:var(--type-empty,12px);line-height:1.6;font-weight:400;color:var(--muted)}

/* Shared inbox list presentation for member and operator notifications. */
#alerts .alerts-list {border:1px solid #ece5e1;border-radius:20px;background:#f2eeeb;box-shadow:inset 0 1px 2px rgba(49,40,46,.025);overflow:hidden;}
#alerts .alert-row {grid-template-columns:48px minmax(0,1fr) auto;gap:11px;min-height:76px;padding:11px 14px;border:0;border-radius:0;background:transparent;box-shadow:none;}
#alerts .alert-row.hidden {display:none;}
#alerts .alert-row.unread {background:transparent;}
#alerts .alert-row:active {background:#ebe5e1;}
#alerts .alert-kind {display:grid;width:48px;height:48px;border-radius:50%;background:#ead8d1;color:#985f4d;font-size:14px;}
#alerts .alert-copy b,#alerts .alert-copy small,#alerts .alert-copy p,#alerts .alert-meta {font-size:12px;}
#alerts .alert-copy p,#alerts .alert-copy p.alert-revision-summary {display:block;white-space:pre-line;overflow:visible;text-overflow:clip;-webkit-line-clamp:unset;max-height:none;overflow-wrap:anywhere;margin:5px 0 0;line-height:1.45;}
#alerts .alert-copy b {white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;}
#alerts .alert-meta {align-self:center;gap:8px;white-space:nowrap;}
#alerts .alert-row + .alert-row::before {display:block;left:14px;right:14px;}
#alerts .alert-day-heading {display:none;}
#alerts .alerts-group-head > h2 {display:none;}
#alerts .alerts-group-head {justify-content:flex-end;}
#alerts .alert-row:focus-visible {outline:2px solid var(--accent);outline-offset:-2px;}
@media(max-width:360px){#alerts .alert-row{grid-template-columns:36px minmax(0,1fr) auto;gap:8px;padding:11px 10px;}#alerts .alert-kind{width:36px;height:36px;}}
 
/* Keep the verification banner compact on every screen. */
.app .verification-mode-bar { min-height: 32px; padding: 3px 14px; gap: 8px; }
.app .verification-mode-bar span { font-size: 11px; font-weight: 650; line-height: 1.35; }
.app .verification-mode-bar button { min-height: 26px; padding: 0 9px; font-size: 11px; font-weight: 650; }

/* Store directory follows the academy image-and-copy card layout. */
#stores .store-directory-card { min-width:0; padding:14px; border:1px solid var(--line); border-radius:18px; background:#fff; }
#stores .store-directory-card summary { display:grid; grid-template-columns:72px minmax(0,1fr) 12px; gap:13px; align-items:center; }
#stores .store-directory-card summary::-webkit-details-marker { display:none; }
#stores .store-directory-card summary::after { float:none; align-self:center; }
#stores .store-directory-card[open] summary::after { transform:rotate(180deg); }
#stores .store-card-photo { position:relative; display:grid; place-items:center; width:72px; height:72px; overflow:hidden; border-radius:12px; background:#eee8e2; color:var(--accent); font-size:26px; }
#stores .store-card-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
#stores .store-card-copy { min-width:0; position:relative; top:4px; }
#stores .store-card-copy h2 { margin:0 0 5px; font-size:14px; line-height:1.4; overflow-wrap:anywhere; }
#stores .store-card-category { display:block; color:var(--accent); font-size:12px; line-height:1.5; }
#stores .store-card-preview { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; margin:5px 0 0; font-size:12px; line-height:1.5; }
#stores .store-card-detail { margin:14px 0 0; padding-top:12px; border-top:1px solid var(--line); font-size:12px; }
@media(max-width:359px) { #stores .store-directory-card summary { grid-template-columns:64px minmax(0,1fr) 10px; gap:9px; } #stores .store-card-photo { width:64px; height:72px; } }

.store-registration-styles { display:flex; flex-wrap:wrap; gap:7px; }
.store-registration-styles button { min-height:36px; padding:7px 12px; border-radius:999px; background:#f0ebe8; color:#716a70; font-size:12px; }
.store-registration-styles button.active { background:#ead8d1; color:#835241; }

/* Store cards navigate to their own detail page. */
#stores button.store-directory-card { width:100%; text-align:left; color:var(--ink); font:inherit; cursor:pointer; }
#stores .store-card-summary { display:grid; grid-template-columns:72px minmax(0,1fr) 12px; gap:13px; align-items:center; }
#stores .store-card-summary::after { content:'›'; color:var(--muted); }
#store-detail { padding:0 24px 165px; }
#store-detail .store-detail-gallery { background:#eee8e2; }
.store-detail-placeholder { display:grid; place-items:center; height:100%; color:var(--accent); font-size:44px; }
#store-detail .store-detail-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; background:#eee8e2; }
#store-detail h1 { overflow-wrap:anywhere; }
#store-detail .store-detail-intro { white-space:pre-wrap; overflow-wrap:anywhere; }
#store-detail .store-detail-actions { grid-template-columns:40px; padding:10px 16px; }
#store-detail .store-detail-back { width:40px; height:40px; min-height:40px; padding:0; border:0; border-radius:0; background:transparent; color:var(--ink); box-shadow:none; font-size:25px; line-height:1; }
@media(max-width:359px) { #stores .store-card-summary { grid-template-columns:64px minmax(0,1fr) 10px; gap:9px; } }

.store-brand-fields img { width:100%; max-width:260px; max-height:180px; object-fit:contain; border-radius:12px; }
.store-brand-fields input { max-width:100%; font-size:12px; }
.store-brand-fields .partner-upload { display:flex; flex-wrap:wrap; gap:10px; }
.store-brand-logo { width:36px; height:36px; object-fit:contain; border-radius:50%; vertical-align:middle; margin-right:10px; background:#fff; }

.store-brand-fields .partner-form-field + .partner-form-field { margin-top:22px; }
.store-brand-fields { margin-bottom:24px; }

#stores .store-card-logo img { object-fit:contain; padding:8px; background:#fff; }

.store-detail-images { margin-top:28px; }
.store-detail-images img { display:block; width:100%; height:auto; }

/* Consistent registration attachment cards with a reserved delete column. */
#partner-form .partner-attachment-preview,
#partner-form .unified-upload-row,
#performance-submit .unified-upload-row,
#performance-submit .performance-submit-detail-preview > div {
 display:grid;grid-template-columns:48px minmax(0,1fr) 44px;align-items:center;gap:10px;width:100%;min-width:0;padding:10px;border:1px solid var(--line);border-radius:16px;background:#fff;box-sizing:border-box;margin-top:8px;
}
.unified-upload-row[hidden] {display:none!important;}
#partner-form .unified-upload-row img,
#partner-form .partner-attachment-preview img,
#performance-submit .unified-upload-row img,
#performance-submit .performance-submit-detail-preview img {width:48px;height:48px;max-width:48px;max-height:48px;margin:0;object-fit:cover;border-radius:10px;cursor:zoom-in;}
#partner-form .partner-attachment-preview > div {min-width:0;overflow:hidden;}
#partner-form .partner-attachment-preview b,
.unified-upload-name,
#performance-submit .performance-submit-detail-preview > div > span {display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;}
#partner-form .partner-attachment-preview > button,
#partner-form .unified-upload-row > button,
#performance-submit .unified-upload-row > button,
#performance-submit .performance-submit-detail-preview > div > button:last-child {width:44px;min-width:44px;min-height:36px;padding:0;border:0;background:transparent;color:var(--accent);font-size:12px;white-space:nowrap;}
#partner-form .attachment-main-select {font-size:11px;color:var(--accent);padding:4px 0;}
#partner-form .partner-timetable-preview,#partner-form .partner-business-proof-preview {padding:0;border:0;background:transparent;}

/* Consistent emphasis for registration attachment removal. */
#partner-form .partner-attachment-preview > button,
#partner-form .unified-upload-row > button,
#performance-submit .unified-upload-row > button,
#performance-submit .performance-submit-detail-preview > div > button:last-child {
  font-weight: 750;
}

#store-detail .academy-detail-head { position:relative;padding-right:55px; }
#store-detail .store-favorite { position:absolute;right:0;top:24px; }
.my-ballet-tabs {overflow-x:auto;}

/* Match timetable attachments to other registration file rows. */
#partner-form .unified-upload-copy {min-width:0;overflow:hidden;}
#partner-form .unified-upload-copy .unified-upload-name {font-weight:750;}
#partner-form .unified-upload-copy small {display:block;color:var(--muted);font-size:12px;margin-top:4px;}
#partner-form .unified-upload-row > .partner-timetable-remove {position:static;align-self:center;margin:0;transform:none;}

#store-detail .store-website-link{display:inline-flex;align-items:center;margin-top:14px;padding:10px 18px;border-radius:999px;background:var(--accent);color:#fff;font-size:12px;font-weight:750;text-decoration:none;}

/* Read state follows the existing unread flag/badge for every account. */
#alerts .alert-row:not(.unread) .alert-copy b,
#messages .message-row:not(:has(.message-unread:not(.hidden))) .message-copy b {
  color:#787179;font-weight:500;
}
#alerts .alert-row:not(.unread) .alert-copy p,
#alerts .alert-row:not(.unread) .alert-copy small,
#messages .message-row:not(:has(.message-unread:not(.hidden))) .message-copy p,
#messages .message-row:not(:has(.message-unread:not(.hidden))) .message-copy small {
  color:#878087;
}
#alerts .alert-row:not(.unread) .alert-kind,
#messages .message-row:not(:has(.message-unread:not(.hidden))) .message-avatar {
  background:#e8e3df;color:#8a8185;filter:grayscale(.65);
}
#alerts .alert-row.unread .alert-copy b,
#messages .message-row:has(.message-unread:not(.hidden)) .message-copy b {
  color:var(--ink);font-weight:750;
}

/* Primary navigation capsules; secondary status/filter rows retain their design. */
.app :is(.admin-report-top-tabs,.admin-pricing-tabs,.admin-report-types,.my-community-tabs,.my-ballet-tabs,.partner-manage-tabs,.ad-manage-tabs,.member-safety-tabs,.life-tabs,.store-style-tabs,.message-filters,.alert-filters,.admin-members-tabs,.admin-queue-tabs,.registration-kind-tabs,.advertising-workspace-tabs,#admin-support-management > .admin-advertising-tabs:not(.admin-support-status-tabs),.catalog-manager-tabs) {display:flex;flex-wrap:nowrap;gap:3px;padding:4px;border:1px solid #ece5e1;border-radius:999px;background:#f2eeeb;overflow-x:auto;scrollbar-width:none;min-width:0;}
.app :is(.admin-report-top-tabs,.admin-pricing-tabs,.admin-report-types,.my-community-tabs,.my-ballet-tabs,.partner-manage-tabs,.ad-manage-tabs,.member-safety-tabs,.life-tabs,.store-style-tabs,.message-filters,.alert-filters,.admin-members-tabs,.admin-queue-tabs,.registration-kind-tabs,.advertising-workspace-tabs,#admin-support-management > .admin-advertising-tabs:not(.admin-support-status-tabs),.catalog-manager-tabs).hidden {display:none;}
.app :is(.admin-report-top-tabs,.admin-pricing-tabs,.admin-report-types,.my-community-tabs,.my-ballet-tabs,.partner-manage-tabs,.ad-manage-tabs,.member-safety-tabs,.life-tabs,.store-style-tabs,.message-filters,.alert-filters,.admin-members-tabs,.admin-queue-tabs,.registration-kind-tabs,.advertising-workspace-tabs,#admin-support-management > .admin-advertising-tabs:not(.admin-support-status-tabs),.catalog-manager-tabs) > button {flex:1 0 auto;min-width:0;min-height:40px;padding:0 14px;border:0;border-radius:999px;background:transparent;color:#817980;font-size:12px;font-weight:650;white-space:nowrap;box-shadow:none;}
.app :is(.admin-report-top-tabs,.admin-pricing-tabs,.admin-report-types,.my-community-tabs,.my-ballet-tabs,.partner-manage-tabs,.ad-manage-tabs,.member-safety-tabs,.life-tabs,.store-style-tabs,.message-filters,.alert-filters,.admin-members-tabs,.admin-queue-tabs,.registration-kind-tabs,.advertising-workspace-tabs,#admin-support-management > .admin-advertising-tabs:not(.admin-support-status-tabs),.catalog-manager-tabs) > button.active {background:#fffaf8;color:#845545;font-weight:750;box-shadow:0 3px 9px rgba(72,51,58,.07);}
.app :is(.admin-report-top-tabs,.admin-pricing-tabs,.admin-report-types,.my-community-tabs,.my-ballet-tabs,.partner-manage-tabs,.ad-manage-tabs,.member-safety-tabs,.life-tabs,.store-style-tabs,.message-filters,.alert-filters,.admin-members-tabs,.admin-queue-tabs,.registration-kind-tabs,.advertising-workspace-tabs,#admin-support-management > .admin-advertising-tabs:not(.admin-support-status-tabs),.catalog-manager-tabs) > button.hidden {display:none;}
.app :is(.admin-report-top-tabs,.admin-pricing-tabs,.admin-report-types,.my-community-tabs,.my-ballet-tabs,.partner-manage-tabs,.ad-manage-tabs,.member-safety-tabs,.life-tabs,.store-style-tabs,.message-filters,.alert-filters,.admin-members-tabs,.admin-queue-tabs,.registration-kind-tabs,.advertising-workspace-tabs,#admin-support-management > .admin-advertising-tabs:not(.admin-support-status-tabs),.catalog-manager-tabs) > button::after {display:none;}

/* Keep registration navigation stable while counts arrive. */
#admin-registrations .registration-kind-tabs > button {flex:1 0 0;}
#admin-registrations .registration-status-tabs > button {min-width:76px;}
#admin-registrations .registration-count {min-height:18px;}
#admin-registrations .registration-directory {min-height:96px;}

.admin-pricing-tabs {margin-bottom:12px;}
.admin-pricing-kind-tabs {display:flex;gap:6px;margin-bottom:18px;}
.admin-pricing-kind-tabs button {flex:1;border:0;border-radius:999px;min-height:36px;background:#eeeae7;color:#827b83;font-size:12px;font-weight:700;}
.admin-pricing-kind-tabs button.active {background:#ead7cf;color:#865744;}
#admin-pricing [hidden] {display:none!important;}
.admin-pricing-premium {padding:28px 0;color:var(--muted);font-size:12px;}

/* Neutral surfaces for pricing settings. */
#admin-pricing .admin-pricing-section {background:#f5f0ed;border-color:#ece5e1;}
#admin-pricing .admin-pricing-item {background:#f5f0ed;border:1px solid #dcd4cf;}

/* Report cards share the neutral pricing surface. */
#admin-report .admin-report-chart-card {background:#f5f0ed;border-color:#e3e3df;}
#admin-report .admin-report-metric {background:#f5f0ed;}
#admin-report .admin-report-chart-dot {fill:#f5f0ed;}
#admin-report .admin-report-chart-alert {stroke:#f5f0ed;}

#admin-pricing .admin-pricing-switch {border:1px solid #b9afa9;}
#admin-pricing .admin-pricing-field select {font-family:'SUIT',sans-serif;font-size:12px;font-weight:500;color:var(--ink);letter-spacing:normal;}

/* Numeric pricing fields retain validation and mobile numeric keyboards. */
#admin-pricing input[type="number"] {-moz-appearance:textfield;appearance:textfield;}
#admin-pricing input[type="number"]::-webkit-inner-spin-button,
#admin-pricing input[type="number"]::-webkit-outer-spin-button {-webkit-appearance:none;margin:0;}

#admin-pricing .admin-pricing-plan input[readonly] {font-family:'SUIT',sans-serif;font-size:12px;font-weight:500;letter-spacing:normal;}
#admin-pricing .admin-pricing-plan input[readonly]::placeholder {font-family:inherit;font-size:12px;font-weight:500;color:var(--muted);opacity:1;}

#admin-report .admin-report-period-select select {font-size:12px;font-weight:500;}

.admin-report-top-tabs {margin-bottom:12px;}
.admin-report-sub-tabs {display:flex;gap:6px;overflow-x:auto;margin-bottom:16px;}
.admin-report-sub-tabs button,.admin-report-section-content>button {white-space:nowrap;border-radius:999px;padding:10px 14px;background:#eeeae7;font-size:12px;color:var(--muted);}
.admin-report-sub-tabs button.active {background:#ead7cf;color:#865744;}
.admin-report-section-content {display:grid;gap:10px;}
#admin-report .hidden {display:none;}

.report-inventory-card {background:#f5f0ed;border:1px solid #e3ddd8;border-radius:20px;padding:16px;min-width:0;}
.report-inventory-card h2 {font-size:14px;margin:0 0 16px;}
.report-inventory-counts {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:16px;}
.report-inventory-counts>div {display:grid;gap:5px;text-align:center;}
.report-inventory-counts b {font-size:20px;color:var(--ink);}
.report-inventory-counts small {font-size:12px;color:var(--muted);}
.report-inventory-row {display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #dfd8d2;padding:12px 0;}
.report-inventory-row>div {min-width:0;display:grid;gap:5px;}
.report-inventory-row b {font-size:12px;overflow-wrap:anywhere;}
.report-inventory-row small {font-size:12px;color:var(--muted);overflow-wrap:anywhere;}
.report-inventory-badge {flex-shrink:0;font-size:12px;color:#865744;background:#ead7cf;border-radius:999px;padding:5px 9px;}
.report-inventory-link {font-size:12px;font-weight:700;color:#865744;margin-top:12px;padding:8px 0;}
.report-inventory-empty {padding:16px 0;text-align:center;color:var(--muted);}

.report-performance-day {display:grid;grid-template-columns:40px minmax(20px,1fr) auto;align-items:center;gap:8px;margin:12px 0;}
.report-performance-day small {font-size:12px;color:var(--muted);}
.report-performance-track {height:8px;background:#e7e1dc;border-radius:8px;overflow:hidden;}
.report-performance-track span {display:block;height:100%;background:var(--accent);border-radius:8px;}

#admin-report .admin-report-section-description {margin:0 0 16px;font-size:12px;line-height:1.6;color:var(--muted);}
#admin-report .admin-report-sub-tabs {margin-bottom:10px;}
#admin-report .admin-report-top-tabs {scroll-padding-inline:4px;}
#admin-report .admin-report-section-content {gap:16px;}

/* Consistent type hierarchy in advertisement inventory. */
#admin-report [data-report-section="inventory"].admin-report-section-content {font-family:'SUIT',sans-serif;}
#admin-report [data-report-section="inventory"] .report-inventory-card h2 {font-size:13px;font-weight:700;line-height:1.5;color:var(--ink);}
#admin-report [data-report-section="inventory"] .report-inventory-counts b {font-size:22px;font-weight:700;line-height:1.3;}
#admin-report [data-report-section="inventory"] :is(p,small) {font-size:12px;font-weight:500;line-height:1.6;color:var(--muted);}
#admin-report [data-report-section="inventory"] .report-inventory-row b {font-size:12px;font-weight:700;line-height:1.5;color:var(--ink);}
#admin-report [data-report-section="inventory"] :is(.report-inventory-badge,.report-inventory-link) {font-family:inherit;font-size:12px;font-weight:700;line-height:1.5;}

.report-inventory-heading {display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:8px;}
#admin-report .report-inventory-heading h2 {margin:0;}
.report-inventory-capacity {font-size:12px;font-weight:700;color:var(--muted);white-space:nowrap;}
.report-inventory-limit-note {margin:0 0 16px;}

.report-performance-details > summary {cursor:pointer;font-size:12px;font-weight:700;line-height:1.5;color:var(--ink);}
.report-performance-details[open] > summary {margin-bottom:12px;}

.report-ad-summary-counts {grid-template-columns:repeat(2,minmax(0,1fr));}
#admin-report .report-ad-reaction {font-size:12px;color:var(--muted);margin:0;}

/* Daily pricing editor and calculated period totals. */
#admin-pricing .pricing-daily-field { margin: 12px 0; }
#admin-pricing .admin-pricing-plan output { display:block; margin-top:6px; padding:12px 3px; color:var(--ink); font-size:12px; font-weight:600; text-align:center; background:#fff; border:1px solid #dcd4cf; border-radius:12px; }

.pricing-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.pricing-title-row h1{margin-right:auto}.pricing-promotion-add{border:1px solid #dcd4cf;background:#fff;color:#895440;border-radius:20px;padding:9px 12px;font:inherit;font-size:12px;font-weight:700;white-space:nowrap}.pricing-promotions{display:grid;gap:10px;margin:0 0 20px}.pricing-promotions[hidden]{display:none}.pricing-promotion-card{border:1px solid #dcd4cf;background:#f5f0ed;border-radius:18px;padding:15px;font-size:12px}.pricing-promotion-card>span{float:right;color:var(--muted)}.pricing-promotion-card p{color:var(--muted);line-height:1.6}.pricing-promotion-card button{font:inherit;font-weight:700;color:var(--accent);background:none;border:0}.pricing-promotion-form .admin-pricing-section{background:#f5f0ed}.pricing-promotion-form .admin-pricing-campaign{margin-top:16px}.pricing-promotion-form input::-webkit-inner-spin-button,.pricing-promotion-form input::-webkit-outer-spin-button{-webkit-appearance:none}.pricing-promotion-form input[type=number]{appearance:textfield}.promotion-quote p{font-size:13px!important;font-weight:600}

.advertising-vacancies{margin-top:26px}.advertising-vacancies h2{font-size:14px;margin:0 0 7px}.advertising-vacancies>p{margin:0 0 22px;font-size:12px;color:var(--muted);line-height:1.6}.advertising-vacancy-list{display:grid;gap:10px;font-size:12px}.advertising-vacancy-list article{padding:14px;border:1px solid #dcd4cf;border-radius:14px;background:#fff}.advertising-vacancy-list b{font-size:12px}.advertising-vacancy-list strong{float:right;font-size:12px;color:#895440}.advertising-vacancy-list p{clear:both;margin:9px 0 5px;line-height:1.6;color:var(--muted)}.advertising-vacancy-list small{font-size:11px;color:var(--muted)}

.app #admin-advertising > .admin-advertising-head{padding-bottom:12px}
.advertising-workspace-tabs{margin:12px 0 16px}.app #admin-advertising .admin-advertising-stage-tabs{display:flex;gap:6px;padding:0;border:0;background:none;box-shadow:none;border-radius:0;flex-wrap:wrap}.app #admin-advertising .admin-advertising-stage-tabs>button{flex:1;min-width:0;min-height:36px;padding:0 8px;border:0;border-radius:999px;background:#eeeae7;color:#817980;font-size:12px;box-shadow:none}.app #admin-advertising .admin-advertising-stage-tabs>button.active{background:#ead7ce;color:#845545;font-weight:750}.app #admin-advertising #admin-pricing{padding:0!important;margin:0;min-height:0}.advertising-offers-panel h2{font-size:14px}.advertising-offers-panel .pricing-title-row{margin:18px 0}.advertising-offers-empty{font-size:12px;color:var(--muted);padding:30px 16px;background:#f5f0ed;border-radius:18px;text-align:center}

.ad-public-offers {margin:20px 0}.ad-public-offers[hidden]{display:none}.ad-public-offers h2{font-size:15px}.ad-public-offers .pricing-promotion-card{margin:10px 0}.ad-public-offers s{color:var(--muted)}.ad-public-offers strong{color:#895440}.ad-public-offers button{font-weight:750}.ad-offer-selection{padding:16px;border:1px solid var(--line);border-radius:16px;background:#f2eeeb;font-size:13px;line-height:1.6}

/* Review filters: compact controls with clear separation between levels. */
.app #admin-queue .admin-queue-tabs {margin:0 0 12px;padding:4px;gap:3px;}
.app #admin-queue .admin-queue-tabs > button {min-height:36px;padding:0 10px;font-size:12px;line-height:1.4;flex:1 1 0;}
.app #admin-queue :is(.admin-queue-registration-stage-tabs,.admin-queue-registration-tabs,.admin-queue-advertisement-stage-tabs,.admin-queue-advertisement-tabs,.admin-queue-support-stage-tabs,.admin-queue-support-tabs) {margin:0 0 10px;padding:0;gap:6px;}
.app #admin-queue :is(.admin-queue-registration-stage-tabs,.admin-queue-registration-tabs,.admin-queue-advertisement-stage-tabs,.admin-queue-advertisement-tabs,.admin-queue-support-stage-tabs,.admin-queue-support-tabs) > button {min-height:30px;padding:0 8px;font-size:12px;line-height:1.4;box-shadow:none;}

.advertising-vacancy-list .vacancy-selectable{cursor:pointer}.vacancy-create-offer{display:block;width:100%;margin-top:12px;padding:8px;border-radius:10px;background:#eeeae7;color:#845545;font:inherit;font-weight:700}.vacancy-create-offer:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

/* Match promotion form typography to the pricing management controls. */
#admin-pricing-promotion .admin-pricing-field{font-family:'SUIT',sans-serif;font-size:12px;font-weight:700;line-height:1.5}
#admin-pricing-promotion .admin-pricing-field :is(input,select,.ballet-picker-trigger){font-family:'SUIT',sans-serif;font-size:12px;font-weight:500;line-height:1.5;letter-spacing:normal}
#admin-pricing-promotion .admin-pricing-field input::placeholder{font-family:inherit;font-size:inherit;font-weight:500}
#admin-pricing-promotion .admin-pricing-section>h2{font-size:13px;font-weight:700;line-height:1.5}
#admin-pricing-promotion .promotion-quote p{font-size:12px!important;font-weight:500;line-height:1.65}

#admin-pricing-promotion [data-promotion-quote]{font:500 12px/1.65 'SUIT',sans-serif;color:var(--muted)}
#admin-pricing-promotion .promotion-amount-row{display:flex;justify-content:space-between;gap:12px;margin-top:10px}
#admin-pricing-promotion .promotion-amount-row strong{font-weight:700;color:var(--text)}
#admin-pricing-promotion .promotion-amount-total{border-top:1px solid #dcd4cf;padding-top:12px;margin-top:12px;color:var(--text);font-weight:700}
#admin-pricing-promotion .promotion-amount-total strong{color:#a26751;font-size:16px}

 .ad-request-profiles{display:grid;grid-template-columns:1fr;gap:10px;margin:0 0 13px}
.ad-request-profile-card{display:flex;align-items:center;gap:11px;width:100%;text-align:left;padding:13px 14px;border:1px solid transparent;border-radius:18px;background:#f2eeeb;color:var(--ink);font:500 12px/1.5 'SUIT',sans-serif;min-width:0}
.ad-request-profile-card i{width:37px;height:37px;display:grid;place-items:center;flex:none;border-radius:50%;background:#ead8d1;color:var(--accent);font-size:12px;font-style:normal;font-weight:800}
.ad-request-profile-card div{min-width:0}.ad-request-profile-card b{display:block;font-weight:700;overflow-wrap:anywhere}.ad-request-profile-card span{display:block;margin-top:3px;color:var(--muted)}
.ad-request-profile-card strong{margin-left:auto;flex:none;padding:6px 9px;border-radius:999px;background:#fffaf8;color:#835241;font-size:12px}
.ad-request-profile-card[aria-pressed="true"]{border-color:#be866f}.ad-request-profile-card:disabled{opacity:.5}

#ad-request .ad-request-owner.hidden,#ad-request .ad-request-profiles.hidden{display:none}

#ad-request .ad-request-target-select-block{display:none}
.ad-request-profiles-title{display:block;margin-bottom:2px;font:700 12px/1.5 'SUIT',sans-serif;color:var(--ink)}

#ad-request .ad-request-source.hidden,#ad-request .ad-request-highlight.hidden{display:none}

.ad-profile-entry{position:relative;border-radius:18px;background:#f2eeeb}

.ad-profile-entry:has(.ad-request-profile-card[aria-pressed="true"]){box-shadow:inset 0 0 0 1px #be866f}.ad-profile-entry .ad-request-profile-card[aria-pressed="true"]{border-color:transparent;background:transparent}

/* Keep attachment guidance beside its upload capsule. */
#partner-form .partner-upload-inline { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 10px; align-items: center; }
#partner-form .partner-upload-inline > * { grid-column: 1 / -1; }
#partner-form .partner-upload-inline > .partner-file-capsule { grid-column: 1; margin-top: 0; }
#partner-form .partner-upload-inline > .partner-file-help,
#performance-submit .performance-upload-actions > .partner-file-help { grid-column: 2; min-width: 0; margin: 0; font-size: 10px; line-height: 1.5; overflow-wrap: anywhere; }

#admin-registrations .registration-record { display:block; padding:0; border-radius:22px; overflow:hidden; }
#admin-registrations .registration-record > button.registration-record-open { display:flex; align-items:center; gap:12px; width:100%; padding:16px 14px; border-radius:0; background:transparent; text-align:left; white-space:normal; }
#admin-registrations .registration-record-icon { display:grid; place-items:center; flex:0 0 44px; height:44px; border-radius:14px; background:#fffaf8; color:var(--accent); font-size:12px; }
#admin-registrations .registration-record-copy { flex:1; min-width:0; }
#admin-registrations .registration-record-copy p { margin-top:6px; }
#admin-registrations .registration-record-arrow { display:inline-block; font-size:20px; transform:rotate(180deg); }
#admin-registrations .registration-record-open[aria-expanded="true"] .registration-record-arrow { transform:rotate(0deg); }
#admin-registrations .registration-record-detail { display:block; padding:4px 15px 16px; background:rgba(255,255,255,.54); }
#admin-registrations .registration-record-detail[hidden] { display:none; }
#admin-registrations .registration-detail-row { display:grid; grid-template-columns:90px minmax(0,1fr); gap:10px; padding:12px 0; border-bottom:1px solid #e9e2de; }
#admin-registrations .registration-detail-row span { white-space:pre-wrap; overflow-wrap:anywhere; color:var(--ink); }
#admin-registrations .registration-record-detail figure { margin:14px 0; }
#admin-registrations .registration-record-detail img { display:block; max-width:100%; max-height:240px; margin-top:8px; border-radius:12px; object-fit:contain; }
#admin-registrations .registration-record-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:16px; }

#admin-registrations .registration-directory { align-content: start; }
#admin-registrations .registration-record { align-self: start; }

#admin-registrations .registration-record-detail .admin-review-row { grid-template-columns:78px minmax(0,1fr) 24px; }
#admin-registrations .registration-record-detail .admin-review-row > span { white-space:pre-wrap; overflow-wrap:anywhere; }
#admin-registrations .registration-record-detail .catalog-review-small-image { width:120px; height:150px; max-height:150px; object-fit:contain; margin:0; }
#admin-registrations .registration-record-detail .catalog-review-image { width:100%; margin:0; }
#admin-registrations .registration-record-detail .academy-review-photo-list { display:grid; gap:12px; }
#admin-registrations .registration-record-detail .admin-evidence-preview figcaption { display:none; }
#admin-registrations .registration-record-detail .admin-evidence-preview { margin:0; }
#admin-registrations .registration-record-detail .admin-evidence-preview img { margin:0; }
#admin-registrations .registration-record-detail .admin-evidence-enlarge { padding:0; border-radius:0; background:transparent; }

#admin-registrations .registration-record-actions .registration-record-close { margin-right:auto; }

#admin-registrations .registration-history { margin-top:16px; }
#admin-registrations .registration-history .partner-form-group-head { display:flex;align-items:center;gap:8px;flex-wrap:wrap; }
#admin-registrations .registration-reports-toggle { margin-left:auto;font-size:11px;padding:7px 10px; }
#admin-registrations .registration-reports-empty { padding:16px;margin:0;color:var(--muted);font-size:12px; }
#admin-registrations .registration-related-report { margin:0 15px;padding:14px 0;border-bottom:1px solid #ebe3df; }
#admin-registrations .registration-related-report:last-child { border-bottom:0; }
#admin-registrations .registration-related-report summary { cursor:pointer;list-style:none; }
#admin-registrations .registration-related-report summary::-webkit-details-marker { display:none; }
#admin-registrations .registration-related-report summary b {font-size:13px;}
#admin-registrations .registration-report-status {display:inline-block;margin-left:8px;padding:3px 7px;border-radius:12px;background:#f1e4de;color:#8c5543;font-size:11px;}
#admin-registrations .registration-related-report small {display:block;margin-top:7px;color:var(--muted);font-size:11px;}
#admin-registrations .registration-related-report p {font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere;}
#admin-registrations .registration-reports-body[hidden] {display:none;}

#admin-registrations .registration-record-deleted {position:relative;}
#admin-registrations .registration-record-deleted > button.registration-record-open {padding-right:96px;}
#admin-registrations .registration-record-purge {position:absolute;right:12px;top:24px;padding:8px 10px;font-size:11px;color:#925746;}

#academy-detail .academy-contact-choice {padding:0;background:transparent;border:0;border-radius:0;color:inherit;font:inherit;text-align:left;min-height:0;}
.academy-contact-actions {display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.academy-contact-actions a {display:flex;align-items:center;justify-content:center;min-height:44px;margin-top:10px;border-radius:24px;background:#eee9e6;color:inherit;text-decoration:none;font-size:14px;}

.partner-contact-methods {display:flex;flex-wrap:wrap;gap:12px;}
.partner-contact-methods label {display:flex;align-items:center;gap:6px;font-size:12px;}
#partner-form .partner-contact-methods input {width:16px;height:16px;min-height:0;}
#partner-form .partner-kakao-field[hidden] {display:none;}
.academy-detail-contact-info span {white-space:pre-wrap;overflow-wrap:anywhere;}

#partner-form .partner-consultation-fields { display:grid; gap:17px; }
#partner-form .approved-academy-edit .partner-consultation-fields { gap:14px; }
#partner-form .partner-consultation-fields.hidden { display:none; }
#partner-form .partner-contact-methods { gap:10px 16px; padding:4px 0; }
#partner-form .partner-contact-methods label { gap:6px; margin:0; min-height:24px; }
#partner-form .partner-contact-methods input { margin:0; }

#partner-form .partner-consult-hours-field > span,
#partner-form .partner-consultation-fields .partner-form-field > span {font-size:12px;font-weight:700;line-height:1.5;}
#partner-form .approved-academy-edit .partner-consult-hours-field > span,
#partner-form .approved-academy-edit .partner-consultation-fields .partner-form-field > span {font-size:11px;}

.academy-review-list,.instructor-review-list {background:transparent!important;border:0!important;border-radius:0!important;}
.comment-style-review {padding:16px 0!important;background:transparent!important;border:0!important;border-top:1px solid var(--line)!important;border-radius:0!important;}
.comment-style-review::before {display:none!important;}
.comment-style-review > div:first-child {display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;color:var(--ink);}
.review-comment-author {display:inline-flex;align-items:center;gap:7px;}
.comment-style-review time {color:var(--muted);font-size:12px;font-weight:400;}
.review-comment-rating {display:flex;align-items:center;gap:10px;margin:8px 0 10px 28px;color:var(--accent);font-size:13px;}
.comment-style-review > p {margin:0;color:#5e575e;font-size:12px;line-height:1.6;white-space:pre-wrap;}
.comment-style-review .review-owner-reply {margin:14px 0 0 16px;padding:14px 16px;border:0;border-radius:16px;background:#f5f3f1;}
.comment-style-review .reviews-owner-actions,.comment-style-review .review-partner-actions {display:flex;justify-content:flex-end;gap:6px;margin-top:10px;}
.comment-style-review .reviews-owner-actions button,.comment-style-review .review-partner-actions button {min-height:26px;padding:0 9px;border-radius:99px;background:transparent;box-shadow:inset 0 0 0 1px #e8dfda;}

.review-evidence-submit { display: block !important; width:100% }
.review-optional-proof { margin-top:16px; padding:10px 16px; border-radius:999px; color:var(--accent); background:#f2eeeb }
.admin-review-proof-list { margin-top:20px; padding:16px }
.admin-review-proof-list button { margin:6px; padding:10px 14px; border-radius:999px; background:#ead8d1 }

/* Keep the academy review divider visible when there are no reviews. */
.academy-review-list:empty { border-bottom: 1px solid #ece5e1 !important; }

.academy-inline-review { padding:16px 0; border-top:1px solid #ece5e1; display:grid; gap:12px }
.academy-inline-review textarea { width:100%; min-height:100px; padding:14px; box-sizing:border-box; border:1px solid #e8ded9; border-radius:16px; background:#fff; font:inherit; font-size:12px; resize:vertical }
.inline-review-footer { display:flex; align-items:center; justify-content:space-between; color:var(--muted); font-size:12px }
.inline-review-footer button { padding:12px 24px; border-radius:999px; background:var(--accent); color:#fff }
.inline-review-message { margin:0; font-size:12px; color:var(--muted) }
.inline-review-message:empty {display:none}

.inline-review-count { justify-self:end; margin-top:-6px; color:var(--muted); font-size:12px }
.inline-review-footer { justify-content:flex-end }

.inline-review-input { position:relative }
.academy-inline-review .inline-review-input textarea { display:block; padding-bottom:34px }
.inline-review-input .inline-review-count { position:absolute; right:16px; bottom:12px; margin:0; pointer-events:none; font-size:12px }

.academy-contact-method-row { align-items:center }
.academy-contact-method-chips { display:flex; flex-wrap:wrap; gap:6px }
.academy-contact-method-chips > span { display:inline-flex; padding:4px 10px; border-radius:999px; background:#f0ebe8; color:#70686f; font-size:12px; font-weight:650 }

.academy-inline-review .review-rating { display:flex; align-items:center; gap:5px }
.academy-inline-review .review-rating .review-optional-proof { margin:0 0 0 auto; width:auto; height:auto; min-height:28px; padding:6px 8px; font-size:10px; font-weight:500; white-space:nowrap; background:#f2eeeb; color:var(--accent) }
@media(max-width:380px){.academy-inline-review .review-rating > button[data-score] {width:30px;height:30px;min-width:30px}}

.academy-reviews-summary + .academy-inline-review { margin-top:18px; padding-top:18px; border-top:1px solid #ece5e1 }
.academy-inline-review .review-rating .review-optional-proof { border-radius:999px; }

#academy-detail .academy-reviews-section { border-top:1px solid #ece5e1; padding-top:20px; }

#academy-detail .academy-detail-contact-info .academy-intro-info-row + p { margin-top:12px; padding-top:18px; border-top:1px solid #e9e3df; }

#academy-detail .academy-detail-head { border-bottom:1px solid #e9e3df; padding-bottom:18px; }
#academy-detail .academy-detail-head + .academy-detail-section { padding-top:18px; }

#academy-detail .academy-detail-head .academy-detail-location { margin:0 0 10px; }

#academy-detail .academy-detail-head h1 { font-size:28px; font-weight:800; }
#academy-detail .academy-detail-head .academy-detail-location { color:var(--accent); }
#academy-detail .academy-detail-chips [data-lesson-type="성인 취미"],
#academy-detail [data-contact-method="앱 메시지"] { background:#f4e3da; color:#825441; }
#academy-detail .academy-detail-chips [data-lesson-type="유아·초등"],
#academy-detail [data-contact-method="전화"] { background:#e2eee7; color:#436451; }
#academy-detail .academy-detail-chips [data-lesson-type="입시·전공"] { background:#ebe5f3; color:#65517d; }
#academy-detail [data-contact-method="문자"] { background:#e3edf5; color:#49677e; }
#academy-detail [data-contact-method="카카오톡"] { background:#f6edc9; color:#75602c; }

#academy-detail .academy-detail-head-top { display:grid; grid-template-columns:minmax(0,1fr) 42px; column-gap:15px; row-gap:0; align-items:center; }
#academy-detail .academy-detail-head-top > div { display:contents; }
#academy-detail .academy-detail-location { grid-column:1; grid-row:1; }
#academy-detail .academy-detail-name { grid-column:1; grid-row:2; }
#academy-detail .academy-detail-save { grid-column:2; grid-row:2; align-self:center; }
#academy-detail .academy-detail-rating { grid-column:1; grid-row:3; }
#academy-detail .academy-detail-rating:empty { display:none; }

#academy-detail .academy-director-card,
#academy-detail .academy-timetable-open,
#academy-detail .academy-detail-gallery,
#academy-detail .academy-detail-photo.has-image { background-color:#f9f7f6; }

.academy-management-contact { display:grid; gap:12px; }
.academy-management-contact-actions { display:flex; gap:8px; }
.academy-management-contact button { padding:10px 14px; border-radius:999px; background:#ead8d1; color:#805344; font-size:12px; }
.academy-management-contact form:not([hidden]) { display:grid; gap:12px; }
.academy-management-contact label { display:grid; gap:6px; font-size:12px; }
.academy-management-contact textarea,.academy-management-contact select { width:100%; padding:12px; border:1px solid #ded5d0; border-radius:12px; background:#fff; font:inherit; }
.academy-management-contact textarea { min-height:110px; }
.academy-request-history>div { padding:12px 0; border-top:1px solid #ded5d0; }
.academy-request-history p { white-space:pre-wrap; margin:8px 0!important; }

/* Academy moderation actions share one compact row. */
.catalog-manager-operator-actions:has(.academy-management-contact) { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px 6px; }
.catalog-manager-operator-actions:has(.academy-management-contact) > b,
.catalog-manager-operator-actions:has(.academy-management-contact) > p { grid-column:1 / -1; }
.catalog-manager-operator-actions .academy-management-contact,
.catalog-manager-operator-actions .academy-management-contact-actions,
.catalog-manager-operator-actions:has(.academy-management-contact) .catalog-manager-operator-buttons { display:contents; }
.catalog-manager-operator-actions:has(.academy-management-contact) button { box-sizing:border-box; width:100%; min-width:0; min-height:36px; padding:10px 4px; border-radius:999px; font-family:inherit; font-size:12px; font-weight:400; line-height:16px; white-space:nowrap; }
.catalog-manager-operator-actions .academy-management-contact > [role="status"] { grid-column:1 / -1; grid-row:4; }
.catalog-manager-operator-actions .academy-management-contact > [role="status"]:empty { display:none; }

#academy-detail .academy-detail-head-top { padding:18px; border:1px solid #e9e3df; border-radius:22px; background:#f9f7f6; }
#academy-detail .academy-detail-actions:has(.academy-operator-manage:not(.hidden)) { grid-template-columns:40px minmax(0,1fr); }
#academy-detail .academy-detail-actions .academy-operator-manage { grid-column:2 / -1; width:100%; max-width:none; justify-self:stretch; }

#academy-detail .academy-detail-head-top { margin-left:0; margin-right:0; }

#academy-detail > .academy-detail-gallery { margin-top:8px; margin-bottom:8px; }

#academy-detail .academy-contact-choice { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; cursor:pointer; }

#academy-detail .academy-director-section,
#academy-detail .academy-location-section,
#academy-detail .academy-reviews-section { margin-top:20px; border-top:1px solid #e9e3df; padding-top:20px; }

.review-comment-author { flex-wrap:wrap; min-width:0; }
.review-comment-author .review-comment-rating { display:inline-flex; margin:0 0 0 3px; flex-wrap:wrap; }
.comment-style-review .reviews-item-head { gap:10px; }
.comment-style-review .reviews-item-head > time { flex-shrink:0; }

.review-proof-status { font-size:11px; color:var(--muted); white-space:nowrap; }

#academy-detail .academy-detail-head-top > .academy-detail-chips { display:flex; grid-column:1 / -1; grid-row:4; margin-top:14px; }
#academy-detail .academy-detail-head-top > .academy-detail-chips:empty { display:none; }

#academy-detail .academy-inline-review[hidden],#academy-detail .review-optional-proof[hidden] { display:none!important; }
#academy-detail .academy-detail-actions.has-owner-edit { grid-template-columns:40px minmax(0,1fr); }
#academy-detail .academy-owner-edit { grid-column:2 / -1; width:100%; }

/* Keep comment text secondary to the author, including replies. */
#post .post-comment > p {font-size:14px;line-height:1.65;}

#partner-form .partner-business-proof.hidden {display:none;}

#instructor-detail .instructor-profile-card {background:#f9f7f6;border:1px solid #e9e3df;border-radius:22px;}
#instructor-detail .instructor-profile-card::after {display:none;}
#instructor-detail .instructor-detail-rating:empty {display:none;}
#instructor-detail [data-lesson-type="성인 취미"] {background:#f4e3da;color:#825441;}
#instructor-detail [data-lesson-type="유아·초등"] {background:#e2eee7;color:#436451;}
#instructor-detail :is([data-lesson-type="입시"],[data-lesson-type="전공"],[data-lesson-type="입시·전공"]) {background:#ebe5f3;color:#65517d;}
#instructor-detail :is([data-lesson-type="개인 레슨"],[data-lesson-type="그룹 레슨"],[data-lesson-type="학원 출강"],[data-lesson-type="특강·워크숍"]) {background:#e3edf5;color:#49677e;}

#instructor-detail .instructor-career-list {background:#f9f7f6;border-color:#e9e3df;}
#instructor-detail .instructor-detail-section:has(.instructor-review-list) {margin-top:20px;border-top:1px solid #e9e3df;padding-top:20px;}

#instructor-detail .instructor-reviews-open {display:none;}

#instructor-detail .instructor-detail-actions:has(.instructor-operator-manage:not(.hidden)) {grid-template-columns:40px minmax(0,1fr);}
#instructor-detail .instructor-detail-actions .instructor-operator-manage {grid-column:2 / -1;width:100%;max-width:none;justify-self:stretch;}

#instructor-detail .instructor-photo-track {display:flex;gap:12px;overflow-x:auto;padding-bottom:8px;scroll-snap-type:x proximity;}
#instructor-detail .instructor-photo-open {flex:0 0 132px;height:160px;padding:0;overflow:hidden;border:1px solid #e9e3df;border-radius:16px;background:#f9f7f6;scroll-snap-align:start;}
#instructor-detail .instructor-photo-open img {display:block;width:100%;height:100%;object-fit:cover;}

#instructor-detail .instructor-photo-track {touch-action:pan-x pan-y;cursor:grab;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
#instructor-detail .instructor-photo-track::-webkit-scrollbar {display:none;}
#instructor-detail .instructor-photo-track.is-dragging {cursor:grabbing;scroll-snap-type:none;user-select:none;}
#instructor-detail .instructor-photo-open {cursor:inherit;}
#instructor-detail .instructor-photo-open img {pointer-events:none;user-select:none;-webkit-user-drag:none;}

.inline-review-footer .review-proof-thumbnail {margin-right:auto;width:64px;height:64px;padding:0;overflow:hidden;border:1px solid #e9e3df;border-radius:12px;background:#f9f7f6;}
.review-proof-thumbnail img {display:block;width:100%;height:100%;object-fit:cover;}

.review-proof-thumbnails {display:flex;gap:8px;flex-wrap:wrap;margin-right:auto;}
.inline-review-footer {gap:12px;flex-wrap:wrap;}
.inline-review-footer .review-proof-thumbnail {position:relative;margin:0;flex:none;}
.review-proof-thumbnail span {position:absolute;inset:0;display:grid;place-items:center;background:rgba(40,30,30,.65);color:white;font-size:12px;}
#instructor-detail .instructor-detail-section:has(.instructor-career-list) {margin-top:20px;border-top:1px solid #e9e3df;padding-top:20px;}

/* Preserve line breaks entered in instructor registration. */
#instructor-detail .instructor-detail-intro,
#instructor-detail .instructor-career-row p { white-space: pre-wrap; overflow-wrap: anywhere; }

/* Keep career labels beside their multiline descriptions. */
#instructor-detail .instructor-career-row { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 14px; align-items: start; }
#instructor-detail .instructor-career-row b { line-height: 1.5; }
#instructor-detail .instructor-career-row p { min-width: 0; margin: 0; }

/* Keep attachments scrollable beside the review submit button. */
.inline-review-footer { flex-wrap: nowrap; }
.inline-review-footer > button[type="submit"] { flex-shrink: 0; }
.inline-review-footer .review-proof-thumbnails { flex: 1 1 0; min-width: 0; flex-wrap: nowrap; overflow-x: auto; touch-action: pan-x pan-y; scrollbar-width: none; cursor: grab; }
.review-proof-thumbnails::-webkit-scrollbar { display: none; }
.review-proof-thumbnails .review-proof-thumbnail { flex: 0 0 64px; }
.review-proof-thumbnails img { user-select: none; -webkit-user-drag: none; }

/* Instructor detail section dividers. */
#instructor-detail .academy-reviews-summary + .academy-inline-review { border-top: 0; }
#instructor-detail .instructor-photo-section { margin-top: 20px; padding-top: 20px; border-top: 1px solid #e9e3df; }

#instructor-detail .instructor-detail-actions.has-owner-edit { grid-template-columns:40px minmax(0,1fr); }
#instructor-detail .instructor-owner-edit { grid-column:2 / -1; width:100%; }

#my-community .my-comment-activity { background:#f9f7f6; border:1px solid #e9e3df; border-radius:16px; box-shadow:none; cursor:pointer; }
#my-community .my-comment-activity .my-community-full-copy { display:block; min-width:0; text-align:left; }
#my-community .my-comment-source { display:flex; align-items:center; gap:8px; min-width:0; }
#my-community .my-comment-source small { flex:none; margin:0; padding:3px 7px; border-radius:999px; background:#f4e3da; color:#825441; font-size:10px; }
#my-community .my-comment-source b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; font-weight:500; color:var(--muted); }
#my-community .my-comment-activity .my-community-full-copy p { margin:10px 0 8px; color:var(--ink); font-size:14px; font-weight:650; line-height:1.5; white-space:pre-wrap; overflow-wrap:anywhere; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
#my-community .my-comment-activity time { font-size:10px; color:var(--muted); }

/* Compact comment activity rows with a single outer border. */
#my-community .my-community-full-list { background:#f9f7f6; border:1px solid #e9e3df; border-radius:14px; box-shadow:none; }
#my-community .my-comment-activity { border:0; border-radius:0; background:transparent; min-height:56px; padding:12px; gap:8px; }
#my-community .my-comment-activity .my-community-full-copy { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto; align-items:center; gap:10px; padding:0; background:transparent; border:0; border-radius:0; box-shadow:none; }
#my-community .my-comment-source { gap:6px; }
#my-community .my-comment-source b { min-width:0; }
#my-community .my-comment-activity .my-community-full-copy p { display:block; margin:0; font-size:12px; white-space:nowrap; text-overflow:ellipsis; -webkit-line-clamp:unset; }
#my-community .my-comment-activity time { white-space:nowrap; font-size:10px; }

#my-community .my-post-activity .my-community-full-copy { grid-template-columns:auto minmax(0,1fr) auto; }

#performance-submit .performance-owner-field, #performance-submit .performance-availability-field { display:none!important; }
#performance-submit .performance-upload-actions { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; column-gap:10px; }
#performance-submit .performance-upload-help { display:block; min-width:0; margin:0; font-size:10px; line-height:1.5; font-weight:400; color:var(--muted); white-space:normal; overflow-wrap:anywhere; }

/* Stabilize the text baseline during Korean IME composition. */
#performance-submit .admin-official-field input:not([type="file"]):not([type="hidden"]):not([type="date"]):not([type="time"]) { box-sizing:border-box; height:40px; min-height:40px; padding:10px 11px; line-height:18px; font-size:12px; font-weight:500; appearance:none; -webkit-appearance:none; transition:border-color .15s, box-shadow .15s; }
#performance-submit .admin-official-field input::placeholder { font-family:inherit; font-size:inherit; font-weight:inherit; line-height:inherit; }

/* Compact performance times: keep remove immediately beside the value. */
#performance-submit .performance-day-actions .performance-time-capsule { flex:0 0 auto; width:max-content; gap:0; }
#performance-submit .performance-time-capsule .ballet-picker-field { flex:0 0 auto; width:54px; min-width:0; }
#performance-submit .performance-time-capsule .ballet-picker-trigger { width:100%; padding:0 0 0 10px; justify-content:flex-start; }
#performance-submit .performance-time-capsule .performance-session-remove { flex:0 0 26px; width:26px; min-width:26px; margin:0; padding:0 4px 0 0; }

#performance-submit .performance-company-field[hidden] { display:none!important; }

#performance-submit .performance-registrant-options { display:flex; gap:8px; }
#performance-submit .performance-registrant-options button { border:0; border-radius:999px; padding:10px 16px; min-height:36px; background:#f0ebe8; color:var(--muted); font:600 12px/1.5 'SUIT',sans-serif; }
#performance-submit .performance-registrant-options button.active { background:#ead7cf; color:#825441; }

/* Performance review rows follow their content rather than form field spacing. */
.performance-review-cards .partner-form-group.academy-review-group { gap: 0; }
.performance-review-cards .academy-review-group .partner-form-group-head { padding: 12px 15px; }
.performance-review-cards .academy-review-group .admin-review-row { min-height: 0; padding: 9px 15px; align-items: start; }
.performance-review-cards .admin-review-row > b { line-height: 1.5; padding-top: 3px; }
.performance-review-cards .admin-review-row > span { min-width: 0; white-space: pre-wrap; overflow-wrap: anywhere; padding-top: 3px; }
.performance-review-cards .admin-review-check { justify-self: end; }
.performance-review-cards :is(.performance-review-poster-view,.performance-review-gallery,.performance-review-discount-view):empty { display: none; }
.performance-review-cards :is(.performance-review-poster-view,.performance-review-gallery,.performance-review-discount-view):not(:empty) { padding: 4px 15px 12px; }

/* Match academy and instructor review sections while retaining compact rows. */
.performance-review-cards > .admin-review-card.academy-review-layout { border: 0; border-radius: 0; background: transparent; overflow: visible; }
.performance-review-cards .partner-form-group.academy-review-group { margin: 0 0 16px; padding: 0; border: 1px solid #ebe3df; border-radius: 20px; background: rgba(255,255,255,.54); overflow: hidden; gap: 0; }
.performance-review-cards .academy-review-group .partner-form-group-head { padding: 18px 15px; margin-bottom: 6px; border-bottom: 1px solid #eee6e2; }
.performance-review-cards .academy-review-group .admin-review-row { width: 100%; grid-template-columns: 78px minmax(0,1fr) 24px; }
.performance-review-actions .admin-official-hide { background: #f0ebe8; color: #7a625a; }
.performance-review-actions .admin-official-save { background: var(--accent); color: #fff; }

.performance-review-cards .academy-review-group .admin-review-row { align-items: center; }
.performance-review-cards .admin-review-row > b,
.performance-review-cards .admin-review-row > span { padding-top: 0; }
.performance-review-cards .admin-review-check { align-self: center; }
.performance-review-cards .performance-review-photos { display: grid; gap: 12px; white-space: normal; min-width: 0; }
.performance-review-cards .performance-review-photos .admin-evidence-preview { width: 100%; min-width: 0; margin: 0; }
.performance-review-cards .performance-review-photos figcaption { display: none; }
.performance-review-cards .performance-review-photos img { display: block; width: 100%; height: auto; max-height: 320px; object-fit: contain; }

/* Public performance detail follows the academy detail palette and spacing. */
#performance-detail .performance-detail-hero { border-radius: 22px; background-color: #f9f7f6; }
#performance-detail .performance-detail-head { margin-top: 24px; padding: 18px; border: 1px solid #e9e3df; border-radius: 22px; background: #f9f7f6; }
#performance-detail .performance-detail-head-top { align-items: center; gap: 15px; }
#performance-detail .performance-detail-head-top > div { min-width: 0; }
#performance-detail .performance-detail-head small { display: block; margin-bottom: 10px; line-height: 1.5; }
#performance-detail .performance-detail-head h1 { margin: 0; font-size: 28px; font-weight: 800; line-height: 1.35; letter-spacing: -.7px; overflow-wrap: anywhere; }
#performance-detail .performance-detail-summary { margin-top: 18px; padding-top: 16px; border-top: 1px solid #e9e3df; gap: 12px; }
#performance-detail .performance-summary-row { grid-template-columns: 66px minmax(0,1fr); gap: 12px; line-height: 1.6; }
#performance-detail .performance-summary-row b { color: var(--ink); }
#performance-detail .performance-summary-row span { color: #625b61; overflow-wrap: anywhere; }
#performance-detail .performance-detail-section { margin-top: 20px; padding: 20px 0 0; border-top: 1px solid #e9e3df; }
#performance-detail .performance-detail-section h2 { font-size: 15px; margin: 0 0 11px; }
#performance-detail :is(.performance-cast,.performance-price-list) { background: #f9f7f6; border-color: #e9e3df; border-radius: 20px; }
#performance-detail :is(.performance-cast-row,.performance-price-row) { line-height: 1.6; }
#performance-detail :is(.performance-cast-row,.performance-price-row) span { white-space: pre-wrap; overflow-wrap: anywhere; }
#performance-detail .performance-extra-info:not(.hidden) { padding: 0 16px; border: 1px solid #e9e3df; border-radius: 20px; background: #f9f7f6; }
#performance-detail .performance-info-row { display: grid; grid-template-columns: 78px minmax(0,1fr); gap: 14px; padding: 15px 0; }
#performance-detail .performance-info-row + .performance-info-row { border-top: 1px solid #e9e3df; }
#performance-detail .performance-info-row h2 { margin: 0; font-size: 12px; line-height: 1.7; }
#performance-detail .performance-info-row p { margin: 0; color: #625b61; font-size: 12px; line-height: 1.7; overflow-wrap: anywhere; }
#performance-detail .performance-extra-info > img { margin: 0 0 16px; border-radius: 12px; }
#performance-detail .performance-detail-images { border-radius: 20px; background: #f9f7f6; }
#performance-detail .performance-detail-actions .performance-operator-manage { grid-column: 2 / -1; width: 100%; max-width: none; justify-self: stretch; }

#performance-detail .performance-detail-images { display: flex; flex-direction: column; align-items: center; overflow: hidden; }
#performance-detail .performance-detail-images img,
#performance-detail .performance-discount-content img { display: block; width: 100%; max-width: 100%; height: auto; min-width: 0; margin: 0; border-radius: 0; object-fit: contain; }
#performance-detail .performance-discount-content { overflow: hidden; border: 1px solid #e9e3df; border-radius: 20px; background: #f9f7f6; }
#performance-detail .performance-discount-content p { padding: 16px; margin: 0; white-space: pre-wrap; font-size: 12px; line-height: 1.7; }
#performance-detail .performance-info-row a { color: var(--accent); text-decoration: underline; }
#performance-detail .performance-session-display { display: grid; gap: 8px; }
#performance-detail .performance-session-day { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
#performance-detail .performance-session-chip { padding: 3px 9px; border-radius: 999px; background: #ead8d1; color: #805344; font-size: 12px; white-space: nowrap; }
#performance-detail .performance-session-chip.no-performance { background: #f8dfdc; color: #b14236; }

#performance-detail .performance-section-card { padding: 0 16px; border: 1px solid #e9e3df; border-radius: 20px; background: #f9f7f6; }
#performance-detail .performance-section-card > .performance-summary-row { padding: 15px 0; }
#performance-detail .performance-price-section > .performance-summary-row { margin-bottom: 12px; }
#performance-detail .performance-fold-content { position: relative; isolation: isolate; }
#performance-detail .performance-fold-content.is-folded { max-height: 400px; overflow: hidden; }
#performance-detail .performance-fold-content.is-folded::after { content: ''; position: absolute; z-index: 1; bottom: 0; left: 0; right: 0; height: 48px; background: linear-gradient(to bottom, transparent, #f9f7f6); pointer-events: none; }
#performance-detail .performance-detail-images { border: 1px solid #e9e3df; }
#performance-detail .performance-detail-images { flex-shrink: 0; }
#performance-detail .performance-detail-images img { flex-shrink: 0; }
#performance-detail .performance-image-toggle { display: block; width: 100%; margin-top: 10px; padding: 13px 16px; border-radius: 999px; background: #ead8d1; color: #805344; font-family: inherit; font-size: 12px; font-weight: 600; line-height: 1.5; }
#performance-detail .performance-image-toggle[hidden] { display: none; }

#performance-detail .performance-detail-actions .performance-owner-edit { grid-column: 2 / -1; width: 100%; max-width: none; justify-self: stretch; }

#performance-submit .performance-discount-upload > .performance-upload-actions { margin-top: 12px; }

#admin-queue-search::after { content: ''; position: absolute; top: 50%; right: 14px; width: 18px; height: 18px; transform: translateY(-50%); background: var(--accent); -webkit-mask: var(--search-icon-mask) center / contain no-repeat; mask: var(--search-icon-mask) center / contain no-repeat; pointer-events: none; }
#admin-queue-search input { padding-right: 72px; }
#admin-queue-search input::-webkit-search-cancel-button { -webkit-appearance: none; }
#admin-queue-search .admin-queue-search-close { right: 38px; }
#admin-queue-search input:placeholder-shown ~ .admin-queue-search-close { display: none; }

/* Review-management search matches the academy/instructor search control. */
#admin-queue-search { height: 50px; border: 1px solid var(--line); border-radius: var(--radius-control); background: #fff; }
#admin-queue-search::after { left: 14px; right: auto; width: 21px; height: 21px; }
#admin-queue-search input { height: 100%; min-height: 0; padding: 0 44px 0 45px; border: 0; border-radius: inherit; background: transparent; color: var(--ink); font-family: 'SUIT',sans-serif; font-size: 1rem; box-shadow: none; }
#admin-queue-search input::placeholder { color: #aaa1a5; }
#admin-queue-search input:focus { border: 0; outline: 0; box-shadow: none; }
#admin-queue-search .admin-queue-search-close { right: 7px; }

#performances .performance-list > .performance-card { background: #f9f7f6; border-color: #e9e3df; }

#find .search-browse :is(.result-card,.instructor-card) { background: #f9f7f6; border-color: #e9e3df; }

main#home .academy-scroll > article.result-card,
main#home .home-instructor-scroll > article.instructor-card { flex: 0 0 320px; width: 320px; min-width: 0; max-width: 100%; min-height: 150px; margin: 0; background: #f9f7f6; border-color: #e9e3df; border-radius: var(--radius-control); }

#life .community-feed-search { position: relative; height: 50px; max-height: none; overflow: visible; margin: 14px 0 10px; opacity: 1; }
#life .community-feed-search label { height: 50px; padding: 0 44px 0 14px; gap: 10px; border: 1px solid var(--line); border-radius: var(--radius-control); background: #fff; }
#life .community-feed-search label:focus-within { background: #fff; }
#life .community-feed-search input { font-family: 'SUIT',sans-serif; font-size: 1rem; font-weight: 400; }
#life .community-feed-search input::placeholder { color: #aaa1a5; }
#life .community-search-close { position: absolute; top: 50%; right: 7px; transform: translateY(-50%); width: 30px; height: 30px; min-height: 0; background: transparent; font-size: 17px; }
#life .community-feed-search:has(input:placeholder-shown) .community-search-close { display: none; }

/* Compact community feed cards. */
#life .life-feed .life-post { padding-top: 11px; padding-bottom: 11px; }
#life .life-feed .life-post .post-badge { min-height: 20px; padding: 2px 8px; line-height: 1.35; }
#life .life-feed .life-post strong { margin: 5px 0 4px; }
#life .life-feed .life-thumb { width: 60px; height: 60px; }
#life .life-feed .life-post[data-has-photo="true"] { grid-template-columns: minmax(0, 1fr) 60px; }

/* Keep mobile controls readable without Safari focus zoom. */
@media (pointer: coarse) {
  html body .app input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),
  html body .app textarea, html body .app select { font-size:16px !important; }
  html, body { touch-action:pan-x pan-y; -webkit-text-size-adjust:100%; }
}
/* Let registration records grow with their contents on mobile WebKit. */
#admin-registrations .registration-directory { display:block; height:auto; max-height:none; overflow:visible; }
#admin-registrations .registration-record { height:auto; max-height:none; overflow:visible; margin-bottom:9px; }
#admin-registrations .registration-record > button.registration-record-open { height:auto; min-height:80px; border-radius:22px; }
#admin-registrations .registration-record-detail { border-radius:0 0 22px 22px; }
#admin-registrations { height:auto; max-height:none; overflow:visible; padding-bottom:calc(152px + env(safe-area-inset-bottom)) !important; }

#performance-detail .performance-booking-card .performance-price-list { border:0; border-radius:0; padding:0; margin:0; background:transparent; }
#performance-detail .performance-booking-card > .performance-summary-row { margin:0; border-bottom:1px solid var(--line); }

/* Shared academy/instructor detail rhythm and surfaces. */
#academy-detail .academy-detail-section,
#instructor-detail .instructor-detail-section { margin-top:24px; padding:20px 0 0; border-top:1px solid #e9e3df; }
#academy-detail .academy-detail-head + .academy-detail-section { padding-top:20px; }
#academy-detail .academy-detail-head { border-bottom:0; padding-bottom:0; }
#academy-detail .academy-detail-section-head,
#instructor-detail .instructor-detail-section-head { margin-bottom:12px; gap:12px; }
#academy-detail .academy-detail-section-head h2,
#instructor-detail .instructor-detail-section-head h2 { margin:0; font-size:16px; font-weight:750; line-height:1.5; letter-spacing:-.3px; }
#academy-detail .academy-detail-name,
#instructor-detail .instructor-detail-name { font-size:28px; font-weight:800; line-height:1.3; }
#academy-detail :is(.academy-director-card,.academy-timetable-open,.academy-timetable-empty,.academy-class-list),
#instructor-detail :is(.instructor-career-list,.instructor-lesson-list) { background:#f9f7f6; border:1px solid #e9e3df; border-radius:20px; }
#academy-detail .academy-director-card { padding:16px; }
#academy-detail .academy-class-row,
#instructor-detail :is(.instructor-career-row,.instructor-lesson-row) { padding:14px 16px; }

/* Separate the home directory and editorial sections at the content edges. */
main#home > :is(.home-instructor-recommendations,.home-section.editorial) { position:relative; padding-top:28px; margin-top:24px; }
main#home > :is(.home-instructor-recommendations,.home-section.editorial)::before { content:''; position:absolute; top:0; left:25px; right:25px; height:1px; background:var(--line); }
@media(max-width:430px) {
  main#home > :is(.home-instructor-recommendations,.home-section.editorial)::before { left:20px; right:20px; }
}

main#home .academy-scroll > article.instructor-card { flex:0 0 320px; width:320px; min-width:0; max-width:100%; min-height:150px; margin:0; background:#f9f7f6; border:1px solid #e9e3df; border-radius:var(--radius-control); scroll-snap-align:start; }
#home .home-entity-kind { display:inline-block; margin-right:4px; color:#805344; font-size:11px; }
#home .home-discovery-section { position:relative; padding-top:28px; margin-top:24px; }
#home .home-discovery-section::before { content:''; position:absolute; top:0; left:25px; right:25px; height:1px; background:var(--line); }
#home .home-discovery-list { display:grid; gap:10px; margin-top:16px; color:var(--muted); font-size:13px; }
#home .home-discovery-card { display:flex; gap:14px; align-items:center; width:100%; min-height:100px; padding:14px; text-align:left; background:#f9f7f6; border:1px solid #e9e3df; border-radius:var(--radius-control); }
#home .home-discovery-card img { width:64px; height:80px; object-fit:cover; border-radius:8px; }
#home .home-stores .home-discovery-card img { height:64px; object-fit:contain; }
#home .home-discovery-card > span { min-width:0; display:grid; gap:6px; }
#home .home-discovery-card b { color:var(--ink); font-size:15px; }
#home .home-discovery-card small { color:var(--accent); font-size:12px; }
@media(max-width:430px) { #home .home-discovery-section::before {left:20px;right:20px;} }

#home .home-month-performances .home-discovery-list { display:flex; gap:12px; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; overscroll-behavior-inline:contain; touch-action:pan-x pan-y; -webkit-overflow-scrolling:touch; }
#home .home-month-performances .home-discovery-card { flex:0 0 320px; width:320px; max-width:100%; scroll-snap-align:start; }
#home .home-month-performances .home-discovery-list.is-dragging { cursor:grabbing; scroll-snap-type:none; user-select:none; -webkit-user-select:none; }
#home .home-month-performances .home-discovery-card img { flex-shrink:0; -webkit-user-drag:none; }

/* Home cards share dimensions and advance one card with a short swipe. */
main#home .home-discovery-list { display:flex; gap:12px; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; overscroll-behavior-inline:contain; -webkit-overflow-scrolling:touch; }
main#home .home-discovery-card { flex:0 0 320px; width:320px; max-width:100%; min-height:150px; scroll-snap-align:start; scroll-snap-stop:always; }
main#home :is(.academy-scroll,.home-instructor-scroll,.home-discovery-list) { touch-action:pan-y pinch-zoom; }
main#home .home-discovery-list.is-dragging { cursor:grabbing; scroll-snap-type:none; user-select:none; }
main#home .home-discovery-card img { flex-shrink:0; -webkit-user-drag:none; }

/* JS settles each swipe; native snapping otherwise cancels short drags. */
main#home :is(.academy-scroll,.home-instructor-scroll,.home-discovery-list) { scroll-snap-type:none !important; user-select:none; -webkit-user-select:none; }

/* Keep the carousel viewport centered within the home content. */
main#home :is(.academy-scroll,.home-instructor-scroll,.home-discovery-list) { margin-right:0; }

main#home .academy-scroll .home-directory-name { font-size:20px; font-weight:800; margin:5px 0 6px; line-height:1.3; }
main#home .academy-scroll .home-entity-kind { font-size:11px; color:#805344; }
main#home .academy-scroll .home-directory-address { margin:0 0 8px; font-size:12px; line-height:1.5; color:var(--muted); overflow-wrap:anywhere; }
:is(main#home,#find) .home-directory-chips { display:flex; flex-wrap:wrap; gap:4px; }
:is(main#home,#find) .home-directory-chips > span { display:inline-flex; width:auto; margin:0; padding:4px 8px; border-radius:999px; font-size:11px; font-weight:700; line-height:1.4; background:#eee8e5; color:#70686f; }
:is(main#home,#find) .home-directory-chips [data-lesson-type="성인 취미"] { background:#f4e3da; color:#825441; }
:is(main#home,#find) .home-directory-chips [data-lesson-type="유아·초등"] { background:#e2eee7; color:#436451; }
:is(main#home,#find) .home-directory-chips [data-lesson-type="입시·전공"], :is(main#home,#find) .home-directory-chips [data-lesson-type="입시"] { background:#ebe5f3; color:#65517d; }
main#home .home-directory-career { margin:6px 0 0; font-size:11px; color:var(--muted); }
main#home .home-performance-organizer { font-size:11px; color:var(--muted); line-height:1.4; }

/* Keep the home directory cards at their original size after adding metadata. */
main#home .academy-scroll > :is(.result-card,.instructor-card) { height:150px; min-height:150px; padding:14px; align-items:center; }
main#home .academy-scroll > :is(.result-card,.instructor-card) > div:nth-child(2) { min-width:0; }
main#home .academy-scroll .home-directory-name { margin:3px 0 4px; font-size:20px; }
main#home .academy-scroll .home-directory-address { margin:0 0 6px; font-size:11px; line-height:1.4; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
main#home .academy-scroll .home-directory-career { margin:4px 0 0; font-size:10px; line-height:1.35; }

main#home .academy-scroll .home-directory-name { font-weight:700; }
main#home .home-discovery-card { height:150px; min-height:150px; padding:14px; }
main#home .home-month-performances .home-discovery-card { gap:12px; }
main#home .home-month-performances .home-discovery-card img { width:86px; height:116px; object-fit:contain; }
main#home .home-month-performances .home-discovery-card small { font-size:11px; line-height:1.4; }

main#home .home-month-performances .home-discovery-card > span > b { margin:5px 0; }

main#home .academy-scroll .home-directory-name { font-size:15px; }

/* Footer controls share a single row height and vertical center. */
.app :is(.signup-actions,.post-comment-bar,.chat-composer):has(> button:is([aria-label*="뒤로"],[aria-label*="돌아가기"])) { box-sizing:border-box; height:64px; min-height:64px; padding:10px 16px; align-items:center; align-content:center; }
.app :is(.signup-actions,.post-comment-bar,.chat-composer):has(> button:is([aria-label*="뒤로"],[aria-label*="돌아가기"])) > :is(button,input) { height:44px; min-height:44px !important; margin-top:0; margin-bottom:0; }
.app.app :is(.signup-actions,.post-comment-bar,.chat-composer) > button:is([aria-label*="뒤로"],[aria-label*="돌아가기"]) { justify-self:start; align-self:center; display:flex; align-items:center; justify-content:center; flex:0 0 40px; width:40px; min-width:40px; height:40px; min-height:40px !important; padding:0; margin:0; text-align:center; font-size:25px; line-height:1; }

/* Use the performance footer dimensions for every detail action. */
.app :is(.academy-detail-actions,.instructor-detail-actions,.performance-detail-actions,.store-detail-actions) { grid-template-columns:52px minmax(0,1fr) !important; gap:8px; padding-left:16px; padding-right:16px; }
.app :is(.academy-detail-actions,.instructor-detail-actions,.performance-detail-actions,.store-detail-actions) > button:not(.signup-cancel) { grid-column:2 / -1; box-sizing:border-box; width:100%; min-width:0; height:44px; min-height:44px !important; margin:0; border-radius:999px; }

main#home .academy-scroll .home-directory-name { margin:8px 0; }
main#home .academy-scroll .home-entity-kind,
main#home .home-month-performances .home-performance-place { color:var(--accent); }
main#home .home-month-performances .home-discovery-card { position:relative; cursor:pointer; }
main#home .home-performance-save { position:absolute; right:8px; top:8px; display:grid; place-items:center; width:32px; height:32px; padding:0; color:#aaa1a5; font-size:24px; line-height:1; background:var(--bg); border-radius:50%; }
main#home .home-performance-save.active { color:var(--accent); }
main#home .home-month-performances .home-discovery-card > span { padding-right:12px; }

main#home .home-performance-save { width:32px; height:27px; font-size:20px; background:transparent; }
main#home .academy-scroll .home-entity-kind { font-size:13px; }
main#home .home-stores .home-discovery-list:has(> .my-performance-empty) { display:block; padding:0 !important; border:1px solid #ece5e1; border-radius:20px; background:#f2eeeb; overflow:hidden; }

#performance-detail .performance-session-day { display:grid; grid-template-columns:78px minmax(0,1fr); gap:8px; align-items:start; }
#performance-detail .performance-session-day > span:first-child { padding-top:4px; font-variant-numeric:tabular-nums; white-space:nowrap; font-size:12px; }
#performance-detail .performance-session-times { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
#performance-detail .performance-session-chip { display:inline-flex; align-items:center; justify-content:center; min-width:48px; box-sizing:border-box; }

.catalog-manager-operator-buttons .catalog-manager-registration-open { grid-column:1 / -1; }

.catalog-manager-operator-actions:has(.academy-management-contact) .academy-management-contact-actions > button { grid-row:3; grid-column:1; }
.catalog-manager-operator-actions:has(.academy-management-contact) .catalog-manager-operator-hide { grid-row:3; grid-column:2; }
.catalog-manager-operator-actions:has(.academy-management-contact) .catalog-manager-operator-delete { grid-row:3; grid-column:3; }
.catalog-manager-operator-actions:has(.academy-management-contact) .catalog-manager-registration-open { grid-row:4; grid-column:1 / -1; }
.catalog-manager-operator-actions .academy-management-contact > [role="status"] { grid-row:5; }

/* Compact registration rows with only the name and status metadata. */
#admin-registrations .registration-record-icon { display:none; }
#admin-registrations .registration-record > button.registration-record-open { min-height:64px; padding:12px 16px; border-radius:16px; }
#admin-registrations .registration-record-copy h2 { margin:0; font-size:15px; font-weight:700; line-height:1.4; }
#admin-registrations .registration-record-copy p { margin:4px 0 0; font-size:12px; line-height:1.4; }
#admin-registrations .registration-record-arrow { font-size:17px; }

/* Registration directory uses flat rows separated by rules. */
#admin-registrations .registration-directory { display:block; }
#admin-registrations .registration-record { margin:0; border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; box-shadow:none; overflow:visible; }
#admin-registrations .registration-record:first-child { border-top:1px solid var(--line); }
#admin-registrations .registration-record > button.registration-record-open { border:0; border-radius:0; background:transparent; box-shadow:none; padding:14px 0; }
#admin-registrations .registration-record-detail { border-radius:0; }

#admin-registrations .registration-capsules { display:flex; flex-wrap:wrap; gap:6px; }
#admin-registrations .registration-capsules > span { display:inline-flex; align-items:center; padding:4px 10px; border-radius:999px; background:#f0ebe8; color:#70686f; font-size:12px; font-weight:650; line-height:1.5; }
#admin-registrations .registration-capsules [data-lesson-type="성인 취미"],#admin-registrations .registration-capsules [data-contact-method="앱 메시지"] { background:#f4e3da; color:#825441; }
#admin-registrations .registration-capsules [data-lesson-type="유아·초등"],#admin-registrations .registration-capsules [data-contact-method="전화"] { background:#e2eee7; color:#436451; }
#admin-registrations .registration-capsules :is([data-lesson-type="입시·전공"],[data-lesson-type="입시"],[data-lesson-type="전공"]) { background:#ebe5f3; color:#65517d; }
#admin-registrations .registration-capsules :is([data-contact-method="문자"],[data-lesson-type="그룹 레슨"],[data-lesson-type="특강·워크숍"]) { background:#e3edf5; color:#49677e; }
#admin-registrations .registration-capsules [data-contact-method="카카오톡"] { background:#f6edc9; color:#75602c; }

#find .search-browse-strip { display:flex; gap:12px; margin-right:0; scroll-snap-type:none !important; touch-action:pan-y pinch-zoom; user-select:none; -webkit-user-select:none; }
#find .search-browse-strip > :is(.result-card,.instructor-card) { flex:0 0 320px; width:320px; max-width:100%; height:150px; min-height:150px; padding:14px; margin:0; align-items:center; border:1px solid #e9e3df; background:#f9f7f6; border-radius:var(--radius-control); }
#find .search-browse-strip > article > div:nth-child(2) { min-width:0; }
#find .search-browse-strip .home-directory-name { margin:8px 0; font-size:15px; font-weight:700; line-height:1.3; }
#find .search-browse-strip .home-entity-kind { font-size:13px; color:var(--accent); }
#find .search-browse-strip .home-directory-address { margin:0 0 6px; font-size:11px; line-height:1.4; color:var(--muted); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; overflow-wrap:anywhere; }

#academy-detail .academy-detail-head-top { grid-template-columns:72px minmax(0,1fr) 42px; gap:8px 14px; align-items:center; }
#academy-detail .academy-detail-avatar { grid-column:1; grid-row:1 / 3; width:72px; height:72px; border-radius:16px; object-fit:cover; }
#academy-detail .academy-detail-location { grid-column:2; grid-row:1; margin:0; align-self:end; }
#academy-detail .academy-detail-name { grid-column:2; grid-row:2; margin:0; align-self:start; }
#academy-detail .academy-detail-save { grid-column:3; grid-row:1 / 3; }
#academy-detail .academy-detail-head-top > .academy-detail-chips { display:flex; grid-column:1 / -1; grid-row:3; }
#academy-detail .academy-detail-head-top:has(.academy-detail-avatar[hidden]) { grid-template-columns:minmax(0,1fr) 42px; }
#academy-detail .academy-detail-head-top:has(.academy-detail-avatar[hidden]) :is(.academy-detail-location,.academy-detail-name) { grid-column:1; }
#academy-detail .academy-detail-head-top:has(.academy-detail-avatar[hidden]) .academy-detail-save { grid-column:2; }

#academy-detail .academy-detail-head-top > .academy-intro-info-row { grid-column:1 / -1; grid-row:4; display:grid; grid-template-columns:70px minmax(0,1fr); gap:10px; margin:10px 0 0; padding-top:16px; border-top:1px solid var(--line); font-size:13px; line-height:1.7; }
#academy-detail .academy-detail-head-top > .academy-intro-info-row b { color:var(--ink); font-weight:700; }
#academy-detail .academy-detail-head-top > .academy-intro-info-row span { color:#625b65; overflow-wrap:anywhere; }

.timetable-gallery-prev,.timetable-gallery-next { position:absolute; top:50%; width:40px; height:44px; padding:0; border-radius:999px; background:rgba(255,250,248,.9); color:var(--ink); font-size:28px; z-index:2; }
.timetable-gallery-prev { left:14px; } .timetable-gallery-next { right:14px; }
.timetable-gallery-count { position:absolute; bottom:8px; left:50%; transform:translateX(-50%); color:white; background:#27232daa; border-radius:999px; padding:4px 12px; font-size:12px; pointer-events:none; }
.timetable-viewer .hidden { display:none; }

#academy-detail .academy-detail-contact-info { margin-top:16px; padding:18px; border:1px solid #e9e3df; border-radius:20px; background:#f9f7f6; }
#academy-detail .academy-detail-contact-info:empty { display:none; }
#academy-detail .academy-detail-contact-info > p:first-child { margin-top:0; }
#academy-detail .academy-detail-contact-info > p:last-child { margin-bottom:0; }

#academy-detail .academy-detail-head-top > .academy-intro-info-row b { font-size:12px; }

#performances .performance-list .performance-card-copy { display:grid; gap:6px; min-width:0; }
#performances .performance-list .performance-card-copy small { font-size:11px; line-height:1.4; color:var(--accent); }
#performances .performance-list .performance-card-copy b { margin:5px 0; font-size:15px; line-height:1.4; color:var(--ink); font-weight:700; }
#performances .performance-list .performance-card-place { font-size:13px; line-height:1.5; color:var(--accent); }
#performances .performance-list .performance-card-organizer { font-size:11px; line-height:1.4; color:var(--muted); }

#performances .performance-list .performance-poster { width:92px; height:106px; min-height:106px; align-self:center; }

#performances .performance-list .performance-poster.has-poster { background:transparent; }
#performances .performance-list .performance-poster.has-poster img { object-fit:contain; object-position:center; }

/* Allow the last comment actions to scroll clear of the floating top button. */
#post.post-detail-screen { padding-bottom:calc(240px + env(safe-area-inset-bottom)); }

#post .post-detail-body.formatted { display:grid; gap:14px; }
#post .notice-explanation-card { padding:20px; border:1px solid #e9e3df; border-radius:18px; background:#f9f7f6; }
#post .notice-explanation-card:empty { display:none; }
#post .notice-explanation-card.notice-intro-card { background:#f3e8e2; border-color:#ead8d1; }
#post .post-detail-body.formatted .notice-explanation-card h2 { margin:0 0 10px; font-size:15px; font-weight:750; line-height:1.5; }
#post .post-detail-body.formatted .notice-explanation-card p { margin:0 0 12px; font-size:14px; line-height:1.8; font-weight:400; overflow-wrap:anywhere; }
#post .post-detail-body.formatted .notice-explanation-card p:last-child { margin-bottom:0; }

#post .post-detail-body.formatted > .notice-signoff { margin:4px 0 0; padding:0 2px; font-size:14px; line-height:1.8; white-space:pre-line; }

#post .notice-card-icon { display:block; width:28px; height:28px; margin:0 0 12px; object-fit:contain; }

main#home .academy-scroll .instructor-avatar { width:72px; height:96px; flex:0 0 72px; border-radius:50%; overflow:hidden; background-size:cover; background-position:center; }

main#home .academy-scroll .instructor-avatar { width:72px; height:72px; flex:0 0 86px; border-radius:50%; }
#instructor-detail .instructor-detail-avatar { border-radius:50%; aspect-ratio:1; }

main#home .academy-scroll > article { position:relative; }
main#home .academy-scroll > article > .save,
main#home .home-performance-save { position:absolute; top:14px; right:14px; width:32px; height:27px; margin:0; padding:0; display:grid; place-items:center; font-size:20px; line-height:1; }

#performances .performance-list .performance-card { position:relative; cursor:pointer; }
#performances .performance-list-save { position:absolute; top:14px; right:14px; display:grid; place-items:center; width:32px; height:27px; margin:0; padding:0; background:transparent; color:#aaa1a5; font-size:20px; line-height:1; }
#performances .performance-list-save.active { color:var(--accent); }

.store-clothing-style-tabs { margin-top:12px; }
.store-registration-clothing-styles { margin-top:16px; }
.store-registration-clothing-styles > span { display:block; margin-bottom:10px; }

/* Match registration cards to member management cards. */
#admin-registrations .registration-directory { gap:0; overflow:hidden; border:1px solid #e5ddd8; border-radius:18px; background:#f2eeeb; }
#admin-registrations .registration-directory:empty { display:none; }
#admin-registrations .registration-record { margin:0; border:0; border-radius:0; background:transparent; overflow:hidden; }
#admin-registrations .registration-record:first-child { border-top:0; }
#admin-registrations .registration-record + .registration-record { border-top:1px solid #ddd5d1; }
#admin-registrations .registration-record > button.registration-record-open { min-height:69px; padding:12px 14px; gap:9px; border-radius:0; }
#admin-registrations .registration-record-copy h2 { overflow:hidden; color:var(--ink); font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
#admin-registrations .registration-record-copy p { margin-top:4px; font-size:12px; color:var(--muted); }
#admin-registrations .registration-record-arrow { flex:0 0 15px; color:#9b9398; font-size:16px; transform:none; transition:transform .18s ease; }
#admin-registrations .registration-record-open[aria-expanded="true"] .registration-record-arrow { transform:rotate(90deg); }
#admin-registrations .registration-record-detail { width:auto; margin:0 12px 13px; padding:12px; border-radius:14px; background:#fffaf8; }

#admin-registrations .registration-directory { min-height:0; border-radius:14px; }
#admin-registrations .registration-record > button.registration-record-open { min-height:56px; padding:9px 14px; }
#admin-registrations .registration-record-copy p { margin-top:3px; }

#admin-members .admin-member-detail { display:block; margin:0 14px 14px; padding:0 16px; border:1px solid #e5ddd8; border-radius:18px; background:#fffaf8; overflow:hidden; }
#admin-members .admin-member-detail.hidden { display:none; }
#admin-members .admin-member-detail-head { display:flex; align-items:center; gap:9px; margin:0 -16px; padding:17px 16px; border-bottom:1px solid #e5ddd8; }
#admin-members .admin-member-detail-head > span { color:var(--accent); font-size:12px; font-weight:750; }
#admin-members .admin-member-detail-head h3 { margin:0; color:var(--ink); font-size:14px; font-weight:750; }
#admin-members .admin-member-detail > div { display:grid; grid-template-columns:92px minmax(0,1fr); align-items:start; gap:12px; padding:14px 0; }
#admin-members .admin-member-detail > div + div { border-top:1px solid #e5ddd8; }
#admin-members .admin-member-detail > div > b { margin:0; font-size:12px; line-height:1.5; }
#admin-members .admin-member-detail > div > span { font-size:12px; line-height:1.5; }

#admin-members .admin-member-detail { display:grid; gap:12px; padding:0; border:0; border-radius:0; background:transparent; overflow:visible; }
#admin-members .admin-member-info-card { padding:0 16px; border:1px solid #e5ddd8; border-radius:18px; background:#fffaf8; overflow:hidden; }
#admin-members .admin-member-detail-head { justify-content:flex-start; }
#admin-members .admin-member-detail-head > span { flex:0 0 auto; }
#admin-members .admin-member-detail-head h3 { flex:0 0 auto; margin:0; text-align:left; }
#admin-members .admin-member-info-card > div { display:grid; grid-template-columns:92px minmax(0,1fr); gap:12px; padding:14px 0; }
#admin-members .admin-member-info-card > div + div { border-top:1px solid #e5ddd8; }
#admin-members .admin-member-info-card > div > b { margin:0; font-size:12px; line-height:1.5; }
#admin-members .admin-member-info-card > div > span { font-size:12px; line-height:1.5; }

#admin-members .admin-member-info-card > div { grid-template-columns:minmax(0,1fr); gap:5px; }

#admin-members .admin-member-detail { grid-template-columns:minmax(0,1fr); }
#admin-members .admin-member-info-card { width:100%; min-width:0; box-sizing:border-box; }
#admin-members .admin-member-info-card > div { grid-template-columns:92px minmax(0,1fr); gap:12px; }

#admin-members .admin-members-list { background:#f2eeeb; border-color:#e5ddd8; }
#admin-members .admin-member-info-card { background:rgba(255,255,255,.54); border-color:#ebe3df; }
#admin-members .admin-member-profile-links { display:grid; gap:6px; }
#admin-members .admin-member-profile-links button { padding:4px 0; background:transparent; color:#865744; font:inherit; text-align:left; overflow-wrap:anywhere; }


/* Restore the original content card palette for both management screens. */
#admin-registrations .registration-directory,
#admin-members .admin-members-list { background:#f1eeeb; border-color:#e9e2de; }
#admin-registrations .registration-record-detail,
#admin-members .admin-member-info-card { background:rgba(255,255,255,.54); border-color:#ebe3df; }
#admin-members .admin-member-detail-head,
#admin-members .admin-member-info-card > div + div { border-color:#eee6e2; }

#admin-members .admin-member-row { min-height:48px; padding:8px 14px; }
#admin-members .admin-member-card-actions { display:flex; flex-wrap:wrap; gap:8px; padding:4px 0; }
#admin-members .admin-member-card-actions button, #admin-members .admin-member-action-form button { border:0; border-radius:999px; padding:10px 14px; background:#ead7cf; color:#865744; font:700 12px/1.4 'SUIT',sans-serif; }
#admin-members .admin-member-card-actions button:first-child { margin-right:auto; background:#eeeae7; color:#827b83; }
#admin-members .admin-member-action-form { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
#admin-members .admin-member-action-form[hidden] { display:none; }
#admin-members .admin-member-action-form input { grid-column:1/-1; min-width:0; }
#admin-members .admin-member-action-form :is(input,select) { padding:10px; border:1px solid #e5ddd8; border-radius:10px; background:#fffaf8; font:inherit; font-size:12px; }

#admin-members .admin-member-action-form { grid-template-columns:minmax(0,1fr) minmax(0,1fr); padding:16px; border:1px solid #ebe3df; border-radius:18px; background:rgba(255,255,255,.54); }
#admin-members .admin-member-action-form > button { grid-column:1/-1; justify-self:start; width:max-content; max-width:100%; min-width:132px; padding:10px 18px; white-space:nowrap; }

#admin-members .admin-member-action-form { padding:0; border:0; border-radius:0; background:transparent; }
#admin-members .admin-member-action-form input { background:#eeeae7; border-color:#e1dbd6; }
#admin-members .admin-member-action-form > button { min-width:0; padding:10px 14px; }
#admin-members .admin-member-action-form [hidden] { display:none; }

#admin-members .admin-member-action-form input { background:#fffaf8; border-color:#e5ddd8; }

#admin-members .admin-member-action-dialog { width:min(380px,calc(100vw - 40px)); box-sizing:border-box; padding:24px; border:1px solid #e5ddd8; border-radius:22px; background:#f8f5f1; color:var(--ink); box-shadow:0 16px 60px #30242a33; }
#admin-members .admin-member-action-dialog::backdrop { background:rgba(35,27,30,.4); }
#admin-members .admin-member-action-dialog h2 { margin:0 0 8px; font-size:18px; }
#admin-members .admin-member-action-dialog > p { margin:0 0 20px; font-size:12px; color:var(--muted); }
#admin-members .admin-member-action-dialog .admin-member-action-form > select { grid-column:1/-1; }
#admin-members .admin-member-action-dialog .admin-member-action-form > button { grid-column:auto; margin-top:6px; }
#admin-members .admin-member-action-dialog .admin-member-action-cancel { justify-self:end; background:#eeeae7; color:#827b83; }

#admin-registrations .registration-record-actions .registration-action-danger,
.registration-action-dialog .registration-action-danger { background:#ead7cf; color:#865744; }
.registration-action-dialog { width:min(360px,calc(100vw - 40px)); box-sizing:border-box; padding:24px; border:1px solid #e5ddd8; border-radius:22px; background:#f8f5f1; color:var(--ink); box-shadow:0 16px 60px #30242a33; }
.registration-action-dialog::backdrop { background:rgba(35,27,30,.4); }
.registration-action-dialog h2 { margin:0 0 12px; font-size:18px; }
.registration-action-dialog p { margin:0 0 22px; font-size:13px; overflow-wrap:anywhere; }
.registration-action-dialog > div { display:flex; justify-content:flex-end; gap:8px; }
.registration-action-dialog button { border:0; border-radius:999px; padding:10px 16px; background:#eeeae7; color:#827b83; font:700 12px/1.4 'SUIT',sans-serif; }

#admin-members .admin-member-detail { background:rgba(255,255,255,.54); border-radius:14px; }
#admin-members .admin-member-info-card { background:rgba(255,255,255,.54); border-color:#ebe3df; }

/* Member details use the same review-card markup and spacing as registrations. */
#admin-members .admin-member-detail { display:block; width:auto; margin:0 12px 13px; padding:12px; border:0; border-radius:14px; background:rgba(255,255,255,.54); }
#admin-members .admin-member-detail.hidden { display:none; }
#admin-members .admin-member-detail .admin-review-row { grid-template-columns:78px minmax(0,1fr) 24px; }
#admin-members .admin-member-detail .admin-review-row > span { white-space:pre-wrap; overflow-wrap:anywhere; }
#admin-members .admin-member-detail .partner-form-group-head { justify-content:flex-start; }
#admin-members .admin-member-card-actions { margin-top:16px; }

.registration-action-dialog textarea { width:100%; box-sizing:border-box; min-height:90px; margin-bottom:16px; padding:12px; border:1px solid #e5ddd8; border-radius:12px; background:#fffaf8; color:var(--ink); font:inherit; font-size:13px; resize:vertical; }

#notifications .notification-list { background:#f1eeeb; border:1px solid #e9e2de; }

#partner-form .store-registration-clothing-styles > span { color:var(--ink); font-size:12px; font-weight:700; line-height:1.5; }
#partner-form .store-registration-clothing-styles > span small { color:var(--muted); font-size:inherit; font-weight:inherit; }

#partner-form .store-registration-subcategories { margin-top:16px; }
#partner-form .store-registration-subcategories > span { display:block; margin-bottom:10px; color:var(--ink); font-size:12px; font-weight:700; line-height:1.5; }
#partner-form .store-registration-subcategories > span small { color:var(--muted); font-size:inherit; font-weight:inherit; }

#partner-form .store-brand-upload-row { display:flex; align-items:center; gap:10px; }
#partner-form .store-brand-upload-row .partner-file-capsule { flex:0 0 auto; margin:0; }
#partner-form .store-brand-upload-row > small { min-width:0; color:var(--muted); font-size:10px; line-height:1.5; }

#partner-form .store-registration-form .partner-timetable { display:none!important; }
#partner-form .store-registration-form .store-brand-fields + .partner-form-field { margin-top:12px; }
#partner-form .store-registration-form .store-brand-fields { margin-bottom:0; }

#partner-form .store-registration-form .store-obsolete-detail-images { display:none!important; }
#partner-form .store-brand-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
#partner-form .store-brand-gallery:empty { display:none; }
#partner-form .store-brand-gallery img { display:block; width:100%; height:140px; object-fit:contain; border-radius:12px; }
#partner-form .store-brand-gallery button { margin-top:6px; padding:6px 12px; border-radius:999px; background:#eeeae7; font-size:12px; }

#partner-form .store-brand-gallery { grid-template-columns:minmax(0,1fr); gap:10px; }
#partner-form .store-brand-gallery > div { display:flex; align-items:center; gap:10px; padding:10px; border:1px solid #e5ddd8; border-radius:18px; background:#fff; }
#partner-form .store-brand-gallery img { flex:0 0 48px; width:48px; height:48px; object-fit:cover; border-radius:10px; }
#partner-form .store-brand-gallery > div > span { flex:1; min-width:0; color:var(--ink); font-size:12px; overflow-wrap:anywhere; }
#partner-form .store-brand-gallery button { flex:0 0 auto; margin:0; padding:8px 10px; background:transparent; color:var(--accent); font-size:12px; font-weight:700; }

.store-review-layout .store-review-capsules { display:flex; flex-wrap:wrap; gap:6px; }
.store-review-capsules > span { padding:5px 10px; border-radius:999px; font-size:12px; background:#e9e0f0; color:#765880; }
.store-review-capsules [data-store-review-category="발레복"] { background:#f0dcd7; color:#925e51; }
.store-review-capsules [data-store-review-category="슈즈·용품"] { background:#e2e8d7; color:#637044; }
.store-review-capsules [data-store-review-category="공연 의상"] { background:#eee2c8; color:#8a703b; }
.store-review-capsules [data-store-review-category="시설·장비"] { background:#dbe6eb; color:#4f7181; }
.store-review-layout [data-store-review-media] { padding:12px 15px; }
.store-review-layout .store-review-logo .admin-evidence-track { display:block; }
.store-review-layout .store-review-logo .admin-evidence-preview { width:120px; margin:0; background:transparent; border:0; border-radius:12px; }
.store-review-layout .store-review-logo figcaption { display:none; }
.store-review-layout .store-review-logo .admin-evidence-enlarge { padding:0; background:transparent; }
.store-review-layout .store-review-logo img { width:120px; height:150px; object-fit:contain; }
.store-review-layout .store-review-images .admin-evidence-track { display:grid; gap:12px; overflow:visible; }
.store-review-layout .store-review-images .admin-evidence-preview { width:100%; min-width:0; margin:0; }
.store-review-layout .store-review-images .admin-evidence-preview img { width:100%; height:auto; object-fit:contain; }
.store-review-layout .store-review-proof .admin-evidence-preview { margin:0; border:0; border-radius:0; background:transparent; }
.store-review-layout .store-review-proof .admin-evidence-enlarge { padding:0; background:transparent; }
.store-review-layout .store-review-proof .admin-evidence-track { display:block; }
.store-review-layout .store-review-proof img { width:120px; max-width:100%; height:150px; object-fit:contain; }

.store-review-layout [data-store-review-media].store-review-media-rows { padding:0; }
.store-review-layout .store-review-image-row .admin-evidence-group { margin:0; }
.store-review-layout .store-review-image-row .admin-evidence-preview { width:auto; min-width:0; }

.store-review-layout .store-review-image-stack .admin-evidence-track { display:grid; gap:12px; overflow:visible; }
.store-review-layout .store-review-image-stack .admin-evidence-preview { width:auto; min-width:0; }

.store-review-layout .store-review-image-stack .admin-evidence-preview,
.store-review-layout .store-review-image-stack .admin-evidence-enlarge { width:120px; height:auto; min-height:0; max-height:none; padding:0; background:transparent; }
.store-review-layout .store-review-image-stack img { display:block; width:120px; height:auto; min-height:0; max-height:none; object-fit:contain; background:transparent; }

.admin-contact-verification.hidden, .store-review-layout .admin-contact-verification { display:none!important; }

#stores .store-directory-card { background:#f9f7f6; border-color:#e9e3df; }
#stores .store-field-capsules { display:flex; flex-wrap:wrap; gap:5px; margin:6px 0; }
#stores .store-field-capsules:empty { display:none; }
#stores .store-field-capsules > span { display:inline-block; padding:4px 8px; border-radius:999px; font-size:11px; font-weight:700; line-height:1.4; }
#stores [data-store-field="발레복"] { background:#f0dcd7; color:#925e51; }
#stores [data-store-field="슈즈·용품"] { background:#e2e8d7; color:#637044; }
#stores [data-store-field="공연 의상"] { background:#eee2c8; color:#8a703b; }
#stores [data-store-field="시설·장비"] { background:#dbe6eb; color:#4f7181; }

#stores .store-card-logo img { padding:0; width:100%; height:100%; object-fit:cover; }
#stores [data-store-field="하위"] { background:#e9e0f0; color:#765880; }

#stores .store-field-capsules { margin-top:12px; }

#store-detail .store-detail-label { display:block; padding-top:27px; margin-bottom:17px; color:var(--accent); font-size:12px; font-weight:750; letter-spacing:1.6px; }
#store-detail .store-detail-gallery-track { display:flex; height:100%; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; }
#store-detail .store-detail-gallery-slide { flex:0 0 100%; height:100%; padding:0; scroll-snap-align:start; background:#eee9e6; }
#store-detail .store-detail-gallery-slide img { display:block; width:100%; height:100%; object-fit:contain; }
#store-detail .academy-detail-head { display:grid; grid-template-columns:72px minmax(0,1fr) 42px; gap:8px 14px; align-items:center; margin-top:18px; padding:18px; border:1px solid #e9e3df; border-radius:20px; background:#f9f7f6; }
#store-detail .academy-detail-head > small { grid-column:2; grid-row:1; margin:0; align-self:end; }
#store-detail .academy-detail-head h1 { grid-column:2; grid-row:2; margin:0; align-self:start; }
#store-detail .store-brand-logo { grid-column:1; grid-row:1 / 3; width:72px; height:72px; margin:0; border-radius:16px; object-fit:cover; }
#store-detail .store-favorite { position:static; grid-column:3; grid-row:1 / 3; }
#store-detail .academy-detail-chips { grid-column:1 / -1; margin-top:12px; }
#store-detail .store-website-link { grid-column:1 / -1; justify-content:center; margin-top:8px; }
#store-detail .academy-detail-section { margin-top:20px; padding:18px; border:1px solid #e9e3df; border-radius:20px; background:#f9f7f6; }
#store-detail [data-store-field="발레복"] { background:#f0dcd7; color:#925e51; }
#store-detail [data-store-field="슈즈·용품"] { background:#e2e8d7; color:#637044; }
#store-detail [data-store-field="공연 의상"] { background:#eee2c8; color:#8a703b; }
#store-detail [data-store-field="시설·장비"] { background:#dbe6eb; color:#4f7181; }
#store-detail [data-store-field="하위"] { background:#e9e0f0; color:#765880; }

#store-detail .store-detail-intro-inline { grid-column:1/-1; margin-top:12px; padding-top:16px; border-top:1px solid #e9e3df; }
#store-detail .store-detail-intro-inline h2, #store-detail .store-detail-images > h2 { margin:0 0 12px; color:var(--ink); font-size:16px; font-weight:750; }
#store-detail .store-detail-intro-inline p { margin:0; }

/* Store channel header: cover, identity, introduction, then image contents. */
#store-detail { padding-left:24px; padding-right:24px; }
#store-detail .store-detail-label { margin-bottom:14px; }
#store-detail .store-detail-gallery { height:auto; aspect-ratio:2.8 / 1; border-radius:16px; }
#store-detail .store-detail-gallery-track { height:100%; }
#store-detail .store-detail-gallery-slide img { object-fit:cover; }
#store-detail .academy-detail-head { margin-top:18px; padding:0 0 24px; border:0; border-bottom:1px solid #e9e3df; border-radius:0; background:transparent; grid-template-columns:72px minmax(0,1fr) 42px; gap:6px 14px; }
#store-detail .academy-detail-head > small { font-size:11px; }
#store-detail .academy-detail-head h1 { font-size:24px; }
#store-detail .store-brand-logo { border-radius:50%; }
#store-detail .academy-detail-chips { margin-top:14px; }
#store-detail .store-detail-intro-inline { margin-top:8px; padding-top:6px; border-top:0; }
#store-detail .store-detail-intro-inline p { color:#625b65; font-size:13px; line-height:1.8; }
#store-detail .store-website-link { margin-top:12px; min-height:44px; }
#store-detail .store-detail-images { margin-top:24px; }
#store-detail .store-detail-images > h2 { margin-bottom:16px; }
#store-detail .store-detail-image-open { display:block; width:100%; padding:0; margin:0 0 16px; border-radius:16px; overflow:hidden; }

#store-detail .store-detail-gallery { width:100%; margin-left:0; aspect-ratio:2.8 / 1; }
#store-detail .academy-detail-head { margin-top:20px; padding:18px; border:1px solid #e9e3df; border-radius:20px; background:#f9f7f6; }

#store-detail .academy-detail-chips.store-field-capsules { padding-bottom:18px; border-bottom:1px solid #e9e3df; }

#store-detail .store-detail-images-card { padding:18px; border:1px solid #e9e3df; border-radius:20px; background:#f9f7f6; }
#store-detail .store-detail-images-card .store-detail-image-open:last-child { margin-bottom:0; }

#store-detail .store-offline-address { margin-top:14px; }
#store-detail .store-sns-link { display:inline-block; margin-top:12px; color:var(--accent); font-size:13px; font-weight:700; }

.store-address-map { margin-top:16px; overflow:hidden; border:1px solid #e9e3df; border-radius:12px; background:#f9f7f6; }
.store-address-map iframe { display:block; width:100%; height:190px; border:0; }


.store-address-map { position:relative; }

.map-loading-status { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:#f9f7f6; color:#817780; font-size:12px; pointer-events:none; }


.store-address-map .map-open-action { position:absolute; top:8px; left:8px; z-index:1; display:flex; align-items:center; gap:4px; padding:10px 12px; border-radius:2px; background:#fff; color:#1a73e8; font:500 14px/1.3 Arial,sans-serif; text-decoration:none; box-shadow:0 1px 4px #0004; }

#store-detail .store-detail-location { margin-top:24px; padding:18px; border:1px solid #e9e3df; border-radius:20px; background:#f9f7f6; }
#store-detail .store-detail-location h2 { margin:0 0 12px; color:var(--ink); font-size:16px; font-weight:750; }
#store-detail .store-detail-location .store-address-map { margin-top:0; }
#store-detail .store-detail-location .store-offline-address { margin:12px 0 0; color:#625b65; font-size:13px; line-height:1.8; }
#store-detail .store-detail-links { grid-column:1 / -1; display:flex; gap:10px; margin-top:12px; }
#store-detail .store-detail-links .store-website-link { flex:1; min-width:0; min-height:36px; margin:0; padding:6px 12px; text-align:center; background:#edd8cf; color:#805344; }

#store-detail .store-detail-gallery-slide { min-width:0; overflow:hidden; }
#store-detail .store-detail-gallery-slide img { aspect-ratio:2.8 / 1; object-position:center; }

#stores .store-card-short-intro { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; margin-top:6px; color:#756d77; font-size:12px; line-height:1.5; overflow-wrap:anywhere; }

#stores .store-directory-card { position:relative; }
#stores button.store-card-summary { width:100%; grid-template-columns:72px minmax(0,1fr); padding:0 44px 0 0; background:transparent; color:var(--ink); text-align:left; font:inherit; }
#stores .store-card-summary::after { content:none; }
#stores .store-card-favorite { position:absolute; right:10px; top:50%; transform:translateY(-50%); width:40px; height:40px; padding:0; border-radius:50%; background:#f0ebe8; color:#a59ca3; font-size:25px; line-height:1; }
#stores .store-card-favorite.active { color:var(--accent); background:#f0dcd7; }
@media(max-width:359px) { #stores button.store-card-summary { grid-template-columns:64px minmax(0,1fr); } }

/* Directory cards share the performance card's vertical rhythm; widths stay local. */
main#home#home .academy-scroll > :is(.result-card,.instructor-card),
main#home#home .home-instructor-scroll > .instructor-card,
#find#find :is(.result-card,.instructor-card),
#stores .store-directory-card {
  position:relative; height:134px; min-height:134px; border-radius:21px; padding:13px; gap:14px; align-items:center;
}
main#home#home :is(.result-card,.instructor-card) > div:nth-child(2),
#find#find :is(.result-card,.instructor-card) > div:nth-child(2) { padding-right:24px; }
main#home#home :is(.result-card,.instructor-card) > .save,
#find#find :is(.result-card,.instructor-card) > .save,
#stores .store-card-favorite {
  position:absolute; top:14px; right:14px; transform:none; width:32px; height:27px; margin:0; padding:0; display:grid; place-items:center; background:transparent; border-radius:0; color:#aaa1a5; font-size:20px; line-height:1;
}
main#home#home :is(.result-card,.instructor-card) > .save.active,
#find#find :is(.result-card,.instructor-card) > .save.active,
#stores .store-card-favorite.active { background:transparent; color:var(--accent); }
#stores button.store-card-summary { height:100%; gap:14px; }

/* Align media slots and copy starts with the performance layout. */
main#home#home :is(.result-card,.instructor-card),
#find#find :is(.result-card,.instructor-card) { grid-template-columns:92px minmax(0,1fr) 18px; grid-template-rows:106px; gap:14px; }
main#home#home :is(.result-photo,.instructor-avatar),
#find#find :is(.result-photo,.instructor-avatar) { justify-self:center; align-self:center; }
main#home#home :is(.result-card,.instructor-card) > div:nth-child(2),
#find#find :is(.result-card,.instructor-card) > div:nth-child(2) { align-self:start; min-width:0; display:flex; flex-direction:column; gap:6px; padding:0; }
main#home#home :is(.result-card,.instructor-card) :is(label,h3,p),
#find#find :is(.result-card,.instructor-card) :is(label,h3,p) { margin:0; }
main#home#home :is(.result-card,.instructor-card) label,
#find#find :is(.result-card,.instructor-card) label { font-size:11px; line-height:1.4; display:-webkit-box; -webkit-line-clamp:1; -webkit-box-orient:vertical; overflow:hidden; }
main#home#home :is(.result-card,.instructor-card) h3,
#find#find :is(.result-card,.instructor-card) h3 { font-size:15px; line-height:1.4; margin:5px 0; white-space:nowrap; text-overflow:ellipsis; overflow:hidden; }
main#home#home :is(.result-card,.instructor-card) p,
#find#find :is(.result-card,.instructor-card) p { font-size:12px; line-height:1.4; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
main#home#home .result-card > div:nth-child(2) > span:last-child,
#find#find .result-card > div:nth-child(2) > span:last-child { margin:0; font-size:11px; line-height:1.4; }
#stores#stores button.store-card-summary { grid-template-columns:92px minmax(0,1fr) 18px; grid-template-rows:106px; gap:14px; padding:0; }
#stores .store-card-photo { justify-self:center; align-self:center; }
#stores .store-card-copy { top:0; align-self:center; display:flex; flex-direction:column; gap:6px; }
#stores .store-card-copy h2 { margin:0 0 2px; font-size:15px; line-height:1.4; }
#stores .store-card-short-intro { position:relative; top:-3px; margin:0; color:var(--accent); font-size:12px; line-height:1.4; }
#stores .store-card-copy .store-field-capsules { margin-top:0; }

#stores .store-card-photo.store-card-logo { width:86px; height:86px; }

/* Balance instructor copy with its portrait across list surfaces. */
main#home#home .instructor-card > div:nth-child(2),
#find#find .instructor-card > div:nth-child(2) { align-self:center; }
main#home#home .instructor-card > .instructor-avatar,
#find#find .instructor-card > .instructor-avatar { width:86px; height:86px; border-radius:12px; overflow:hidden; }

#find#find :is(.result-card,.instructor-card) { background:#f9f7f6; border-color:#e9e3df; }
main#home#home .instructor-card label.instructor-type-chips,
#find#find .instructor-card label.instructor-type-chips { display:flex; flex-wrap:wrap; gap:4px; overflow:visible; }

main#home#home .result-card > div:nth-child(2),
#find#find .result-card > div:nth-child(2) { align-self:center; }
main#home#home .result-card p.academy-type-chips,
#find#find .result-card p.academy-type-chips { display:flex; flex-wrap:wrap; gap:4px; overflow:visible; }

#find#find .academy-browse-card .home-directory-address { color:var(--accent); font-size:11px; line-height:1.4; }

main#home#home .instructor-card .home-directory-address,
#find#find .instructor-card .home-directory-address { color:var(--accent); position:relative; top:-3px; }
main#home#home .instructor-card .home-directory-name,
#find#find .instructor-card .home-directory-name { margin-bottom:2px; }

/* Match academy name/address spacing to instructor cards. */
main#home#home .result-card .home-directory-name,
#find#find .result-card h3 { margin-bottom:2px; }
main#home#home .result-card .home-directory-address,
#find#find .result-card .home-directory-address,
#find#find .live-results .result-card > div:nth-child(2) > label { position:relative; top:-3px; }

/* Store information uses the academy contact card's label/value layout. */
#store-detail .store-detail-intro-inline { margin-top:16px; padding:18px; border:1px solid #e9e3df; border-radius:20px; background:#f9f7f6; }
#store-detail .store-detail-info-row { display:grid; grid-template-columns:72px minmax(0,1fr); gap:8px; align-items:start; }
#store-detail .store-detail-info-row + .store-detail-info-row { margin-top:12px; }
#store-detail .store-detail-info-row > strong { color:var(--ink); font-size:12px; line-height:1.8; }
#store-detail .store-detail-info-row .academy-detail-chips { grid-column:auto; margin:0; padding:0; border:0; }
#store-detail .store-detail-info-row .store-detail-intro { white-space:pre-wrap; overflow-wrap:anywhere; }
#store-detail .store-detail-intro-inline .store-detail-links { margin-top:16px; }

#store-detail .store-detail-info-link { min-width:0; color:var(--accent); font-size:13px; line-height:1.8; text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }

#store-detail .academy-detail-head > .store-field-capsules { margin-top:12px; padding-bottom:0; border-bottom:0; }
#store-detail .store-detail-link-row + .store-detail-link-row { margin-top:4px; }

/* Registration entries share one home-colored card, separated by solid rules. */
#admin-registrations .registration-directory:has(> .registration-record) { gap:0; min-height:0; border:1px solid #e9e3df; border-radius:22px; background:#f9f7f6; overflow:hidden; }
#admin-registrations .registration-directory > .registration-record { margin:0; border:0; border-radius:0; background:transparent; }
#admin-registrations .registration-directory > .registration-record + .registration-record { border-top:1px solid #e9e3df; }

#admin-registrations .registration-performance-heading { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 8px; }
#admin-registrations .registration-performance-organizer { color:var(--muted); font-size:12px; font-weight:500; line-height:1.4; overflow-wrap:anywhere; }

/* Give registration names a clearer hierarchy over status/date metadata. */
#admin-registrations .registration-record-open .registration-record-copy h2 { font-size:13px; font-weight:650; line-height:1.45; }
#admin-registrations .registration-record-open .registration-record-copy p { font-size:11px; line-height:1.5; margin-top:5px; }

#admin-registrations .registration-record-open .registration-record-copy { padding-left:6px; }

main#home#home .academy-scroll .result-card label.home-entity-kind { position:relative; top:4px; }

/* Home store cards reuse directory contents and interactions. */
main#home .home-stores .store-card-photo { position:relative; display:grid; place-items:center; width:72px; height:72px; overflow:hidden; border-radius:12px; background:#eee8e2; color:var(--accent); font-size:26px; }
main#home .home-stores .store-card-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
main#home .home-stores .store-card-copy { min-width:0; position:relative; top:4px; }
main#home .home-stores .store-card-copy h2 { margin:0 0 5px; font-size:14px; line-height:1.4; overflow-wrap:anywhere; }
main#home .home-stores .store-card-category { display:block; color:var(--accent); font-size:12px; line-height:1.5; }
main#home .home-stores .store-card-preview { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; margin:5px 0 0; font-size:12px; line-height:1.5; }
main#home .home-stores .store-card-detail { margin:14px 0 0; padding-top:12px; border-top:1px solid var(--line); font-size:12px; }
main#home .home-stores .store-card-summary { display:grid; grid-template-columns:72px minmax(0,1fr) 12px; gap:13px; align-items:center; }
main#home .home-stores .store-card-summary::after { content:'›'; color:var(--muted); }
main#home .home-stores .store-card-logo img { object-fit:contain; padding:8px; background:#fff; }
main#home .home-stores .store-field-capsules { display:flex; flex-wrap:wrap; gap:5px; margin:6px 0; }
main#home .home-stores .store-field-capsules:empty { display:none; }
main#home .home-stores .store-field-capsules > span { display:inline-block; padding:4px 8px; border-radius:999px; font-size:11px; font-weight:700; line-height:1.4; }
main#home .home-stores [data-store-field="발레복"] { background:#f0dcd7; color:#925e51; }
main#home .home-stores [data-store-field="슈즈·용품"] { background:#e2e8d7; color:#637044; }
main#home .home-stores [data-store-field="공연 의상"] { background:#eee2c8; color:#8a703b; }
main#home .home-stores [data-store-field="시설·장비"] { background:#dbe6eb; color:#4f7181; }
main#home .home-stores .store-card-logo img { padding:0; width:100%; height:100%; object-fit:cover; }
main#home .home-stores [data-store-field="하위"] { background:#e9e0f0; color:#765880; }
main#home .home-stores .store-field-capsules { margin-top:12px; }
main#home .home-stores .store-card-short-intro { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; margin-top:6px; color:#756d77; font-size:12px; line-height:1.5; overflow-wrap:anywhere; }
main#home .home-stores button.store-card-summary { width:100%; grid-template-columns:72px minmax(0,1fr); padding:0 44px 0 0; background:transparent; color:var(--ink); text-align:left; font:inherit; }
main#home .home-stores .store-card-summary::after { content:none; }
main#home .home-stores .store-card-favorite { position:absolute; right:10px; top:50%; transform:translateY(-50%); width:40px; height:40px; padding:0; border-radius:50%; background:#f0ebe8; color:#a59ca3; font-size:25px; line-height:1; }
main#home .home-stores .store-card-favorite.active { color:var(--accent); background:#f0dcd7; }
main#home .home-stores .store-card-favorite.active { background:transparent; color:var(--accent); }
main#home .home-stores button.store-card-summary { height:100%; gap:14px; }
main#home .home-stores .store-card-photo { justify-self:center; align-self:center; }
main#home .home-stores .store-card-copy { top:0; align-self:center; display:flex; flex-direction:column; gap:6px; }
main#home .home-stores .store-card-copy h2 { margin:0 0 2px; font-size:15px; line-height:1.4; }
main#home .home-stores .store-card-short-intro { position:relative; top:-3px; margin:0; color:var(--accent); font-size:12px; line-height:1.4; }
main#home .home-stores .store-card-copy .store-field-capsules { margin-top:0; }
main#home .home-stores .store-card-photo.store-card-logo { width:86px; height:86px; }
main#home .home-stores .store-directory-card { position:relative; flex:0 0 320px; width:320px; min-width:0; max-width:100%; height:134px; padding:13px; border:1px solid #e9e3df; border-radius:21px; background:#f9f7f6; }
main#home .home-stores button.store-card-summary { display:grid; width:100%; height:106px; grid-template-columns:92px minmax(0,1fr) 18px; gap:14px; padding:0; }
main#home .home-stores .store-card-photo { position:relative; display:grid; place-items:center; width:86px; height:86px; border-radius:12px; overflow:hidden; background:#eee8e5; }
main#home .home-stores .store-card-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
main#home .home-stores .store-card-copy { min-width:0; }
main#home .home-stores .store-card-favorite { position:absolute; top:14px; right:14px; transform:none; width:32px; height:27px; padding:0; background:transparent; color:#aaa1a5; font-size:20px; line-height:1; }
main#home .home-stores .store-card-favorite.active { background:transparent; color:var(--accent); }

/* Store category and style palette shared across all public cards. */
:is(#stores,#store-detail,main#home .home-stores) [data-store-field="발레복"] { background:#F1DEE4; color:#8A5366; }
:is(#stores,#store-detail,main#home .home-stores) [data-store-field="슈즈·용품"] { background:#DFEAF3; color:#456780; }
:is(#stores,#store-detail,main#home .home-stores) [data-store-field="공연 의상"] { background:#EAE2F3; color:#73568B; }
:is(#stores,#store-detail,main#home .home-stores) [data-store-field="시설·장비"] { background:#E7E9EC; color:#626A75; }
:is(#stores,#store-detail,main#home .home-stores) [data-store-field="베이직"] { background:#EEE5D6; color:#7B6748; }
:is(#stores,#store-detail,main#home .home-stores) [data-store-field="페미닌"] { background:#F7E3D8; color:#9A634C; }
:is(#stores,#store-detail,main#home .home-stores) [data-store-field="모던"] { background:#DAD5CE; color:#625C55; }
:is(#stores,#store-detail,main#home .home-stores) [data-store-field="유니크"] { background:#F6EDBF; color:#88752B; }

#store-detail .store-detail-location { padding:0; border:0; border-radius:0; background:transparent; }
#store-detail .store-detail-location > h2 { margin-bottom:16px; }
#store-detail .store-detail-location-card { padding:18px; border:1px solid #e9e3df; border-radius:20px; background:#f9f7f6; }

main#home#home :is(.result-card,.instructor-card) .home-directory-address,
#find#find :is(.result-card,.instructor-card) .home-directory-address { font-size:11px; }

main#home#home .academy-scroll .instructor-card label.home-entity-kind { position:relative; top:4px; }
main#home#home .result-card .home-directory-address { color:var(--accent); }
main#home#home .home-month-performances .home-performance-place { font-size:12px; }

/* Match directory portraits and store logos to academy thumbnails. */
main#home#home .instructor-card > .instructor-avatar,
#find#find .instructor-card > .instructor-avatar,
main#home#home .home-stores .store-card-photo.store-card-logo,
#stores#stores .store-card-photo.store-card-logo { width:86px; height:86px; border-radius:6px; overflow:hidden; }

/* Home community: one grouped list with notice and newest posts. */
main#home .editorial .editorial-list { border:1px solid #e9e3df; border-radius:22px; background:#f9f7f6; overflow:hidden; }
main#home .editorial .editorial-item { display:grid; grid-template-columns:minmax(0,1fr) 18px; gap:5px 9px; width:100%; min-height:64px; padding:12px 20px; border:0; border-radius:0; background:transparent; text-align:left; }
main#home .editorial .editorial-item + .editorial-item { border-top:1px solid #e9e3df; }
main#home .editorial .editorial-item + .editorial-item::before { display:none; }
main#home .editorial .editorial-item > b { grid-column:1; min-width:0; justify-self:start; padding:3px 8px; font-size:11px; line-height:1.4; }
main#home .editorial .editorial-item > b.pinned { background:#c9826b; color:#fff; }
main#home .editorial .editorial-item > span:not(:last-child) { grid-column:1; min-width:0; }
main#home .editorial .editorial-item strong { margin-bottom:5px; font-size:13px; font-weight:650; line-height:1.45; overflow-wrap:anywhere; }
main#home .editorial .editorial-item small { display:block; font-size:11px; line-height:1.5; }
main#home .editorial .editorial-item > span:last-child { grid-column:2; grid-row:1 / 3; align-self:center; color:var(--muted); }

/* Keep community badges and titles on one compact heading row. */
main#home .editorial .editorial-item { grid-template-columns:max-content minmax(0,1fr) 18px; align-items:center; }
main#home .editorial .editorial-item > b { grid-column:1; grid-row:1; }
main#home .editorial .editorial-item > span:not(:last-child) { display:contents; }
main#home .editorial .editorial-item strong { grid-column:2; grid-row:1; margin:0; min-width:0; }
main#home .editorial .editorial-item small { grid-column:1 / 3; grid-row:2; }
main#home .editorial .editorial-item > span:last-child { grid-column:3; }

main#home .home-month-performances .home-discovery-card { border-radius:21px; }

/* Tighten home section spacing while preserving card dimensions. */
main#home > .home-section { padding-top:22px; }
main#home > :is(.home-discovery-section,.home-instructor-recommendations,.home-section.editorial) { margin-top:18px; padding-top:22px; }
main#home .home-section > :is(.academy-scroll,.home-discovery-list,.editorial-list) { margin-top:12px; }

/* Match community rows to the compact home story cards. */
#life .life-feed .life-post { min-height:67px; padding:12px 20px; }
#life .life-feed .life-post > span:first-child { display:grid; grid-template-columns:max-content minmax(0,1fr); gap:5px 9px; align-items:center; min-width:0; }
#life .life-feed .life-post .post-tags { grid-column:1; grid-row:1; width:auto; }
#life .life-feed .life-post .post-badge { min-height:0; padding:3px 8px; font-size:11px; line-height:1.4; letter-spacing:0; }
#life .life-feed .life-post strong { grid-column:2; grid-row:1; min-width:0; margin:0; font-size:13px; font-weight:650; line-height:1.45; overflow-wrap:anywhere; }
#life .life-feed .life-post small { grid-column:1 / 3; grid-row:2; font-size:11px; line-height:1.5; }
#life .life-feed .life-post[data-pinned-notice="true"],
#life .life-feed .life-post[data-featured="true"] { border-radius:22px; }
#life .life-feed .life-post[data-has-photo="true"] { grid-template-columns:minmax(0,1fr) 42px; gap:9px; }
#life .life-feed .life-post .life-thumb { width:42px; height:42px; }

#life .community-list-head { justify-content:flex-end; }

/* Community composer groups each step into a consistent input card. */
#write :is(.write-identity,.write-info-card,.write-content-card,.write-attachment) { display:block; margin:0 0 16px; padding:18px; border:1px solid #e9e3df; border-radius:22px; background:#f9f7f6; }
#write .write-card-heading { margin:0 0 14px; font-size:15px; font-weight:700; line-height:1.4; }
#write .write-info-card .write-title-field { padding:0 0 16px; }
#write .write-info-card .write-form-section { padding:0; }
#write .write-content-card textarea { min-height:180px; }
#write :is(.write-identity,.write-attachment,.write-content-card) > :is(.write-form-label,span:first-child) { font-size:15px; font-weight:700; }

#write .write-identity[hidden] { display:none; }
#write .write-author-line { margin:-10px 0 20px; color:var(--muted); font-size:12px; }
#write .write-disclosure-card { margin:0 0 16px; padding:18px; border:1px solid #e9e3df; border-radius:22px; background:#f9f7f6; }
#write .write-disclosure-card label { display:block; margin-bottom:10px; font-size:12px; line-height:1.5; }
#write .write-disclosure { width:100%; min-height:46px; padding:10px; border:1px solid #e9e3df; border-radius:13px; background:#fff; color:var(--ink); font:inherit; font-size:12px; }
#write .write-disclosure-guide { margin:10px 0 0; font-size:11px; line-height:1.6; color:var(--muted); }
#write .write-disclosure-preview { margin:10px 0 0; font-size:12px; color:#8b5a49; line-height:1.5; }
#write .write-disclosure-preview:empty { display:none; }

/* Use the same numbered panels as the other registration forms. */
#write :is(.write-info-card,.write-content-card,.write-disclosure-card,.write-attachment) { padding:20px 17px; margin-bottom:19px; border-color:#ebe3df; border-radius:22px; background:rgba(255,255,255,.54); }
#write .partner-form-group-head { display:block; padding:0 0 12px; margin:0 0 17px; border-bottom:1px solid #eee6e2; }
#write .partner-form-group-head > span { display:block; margin-bottom:5px; color:var(--accent); font-size:12px; font-weight:750; letter-spacing:1.1px; }
#write .partner-form-group-head > h2 { margin:0; color:var(--ink); font-size:14px; font-weight:700; letter-spacing:-.2px; }
#write .write-author-line { margin:0 0 17px; padding:0 0 12px; border-bottom:1px solid #eee6e2; color:var(--muted); font-size:12px; line-height:1.5; }

#write .write-author-field { padding:0 0 18px; border:0; }
#write .write-author-input[readonly] { background:#f0ece9; color:var(--muted); cursor:default; }
#write .write-disclosure-fields > label { display:block; margin-bottom:10px; font-size:12px; line-height:1.5; }
#write .write-content-card .write-title-field { padding:0 0 18px; border:0; }
#write .write-content-card > .partner-form-group-head { border-bottom:1px solid #eee6e2; }
#write .write-content-card .write-form-section { padding:0 0 18px; }

/* Community editor alignment and relationship picker. */
#write .partner-form-group-head { display:flex; align-items:center; gap:10px; }
#write .partner-form-group-head > span { margin:0; flex:none; }
#write .write-title-field .write-count { top:0; right:0; line-height:22px; }
#write .write-title-field > span { padding-right:54px; }
#write .write-disclosure[hidden] { display:none; }
#write .write-disclosure-picker { position:relative; }
#write .write-disclosure-trigger { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; min-height:46px; padding:12px 14px; border:1px solid #e9e3df; border-radius:13px; background:#fff; color:var(--ink); font:inherit; font-size:12px; text-align:left; }
#write .write-disclosure-trigger i { color:var(--accent); font-style:normal; font-size:18px; }
#write .write-disclosure-trigger[aria-expanded="true"] { border-color:var(--accent); box-shadow:0 0 0 3px #cd897622; }
#write .write-disclosure-options { position:absolute; top:calc(100% + 7px); left:0; right:0; z-index:30; padding:6px; border:1px solid #e9e0db; border-radius:16px; background:#fffdfa; box-shadow:0 12px 30px #48312620; }
#write .write-disclosure-options[hidden] { display:none; }
#write .write-disclosure-options button { display:block; width:100%; padding:12px 13px; border:0; border-radius:10px; background:transparent; color:var(--ink); font:inherit; font-size:12px; line-height:1.5; text-align:left; }
#write .write-disclosure-options button:hover,#write .write-disclosure-options button:focus-visible { background:#f5eeea; outline:2px solid var(--accent); outline-offset:-2px; }
#write .write-disclosure-options button[aria-pressed="true"] { background:#f2dfd7; color:#8b5543; font-weight:700; }

#write .write-content-card > label.write-body-label { font-size:12px !important; font-weight:750; }
#write .write-body[hidden] { display:none; }
#write .write-inline-editor { padding:12px; margin-bottom:12px; border:1px solid #e9e3df; border-radius:16px; background:#fff; }
#write .write-inline-text { display:block; width:100%; min-height:90px; padding:4px 2px; border:0; border-radius:0; resize:none; background:transparent; font:inherit; font-size:12px; line-height:1.7; box-shadow:none; }
#write .write-inline-text:only-child { min-height:180px; }
#write .write-inline-photo { margin:10px 0; overflow:hidden; border:1px solid #e9e3df; border-radius:12px; background:#f8f4f1; }
#write .write-inline-photo img { display:block; width:100%; max-height:440px; object-fit:contain; }
#write .write-inline-photo figcaption { display:flex; justify-content:flex-end; gap:8px; padding:8px; }
#write .write-inline-photo button { padding:7px 12px; border:1px solid #e5d8d1; border-radius:20px; background:#fff; color:#8b5543; font:inherit; font-size:12px; }
#write .write-inline-photo button:disabled { opacity:.35; }
.post-detail-body .post-inline-image { display:block; width:100%; height:auto; margin:14px 0; border-radius:12px; }

#write .write-photo-input[hidden] { display:none; }

/* One content box shows the actual text and photo sequence. */
#write .write-inline-box { overflow:hidden; border:1px solid #e9e3df; border-radius:16px; background:#fff; }
#write .write-inline-box .write-inline-editor { margin:0; padding:14px; border:0; border-radius:0; }
#write .write-inline-editor textarea.write-inline-text { min-height:64px; padding:8px 4px; }
#write .write-inline-editor textarea.write-inline-text:only-child { min-height:150px; }
#write .write-inline-editor textarea.is-insertion-target { background:#fcf8f5; box-shadow:inset 3px 0 #cd8976; }
#write .write-inline-box .write-photo-button { width:calc(100% - 24px); margin:0 12px; min-height:48px; background:#f8f4f1; border:1px solid #e9e0db; }
#write .write-inline-hint { margin:9px 14px 13px; color:var(--muted); font-size:11px; line-height:1.5; }
#write .write-inline-photo { margin:8px 0; }

#write .write-inline-editor .write-inline-photo { position:relative; margin:8px 0; border:0; border-radius:0; background:transparent; overflow:hidden; }
#write .write-inline-photo button.write-inline-photo-toggle { display:block; width:100%; margin:0; padding:0; border:0; border-radius:0; background:transparent; line-height:0; }
#write .write-inline-photo button.write-inline-photo-remove { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); min-width:70px; padding:11px 20px; border:0; border-radius:24px; background:rgba(40,31,28,.8); color:#fff; font-size:13px; line-height:1.4; box-shadow:0 3px 14px #0003; }
#write .write-inline-photo .write-inline-photo-remove[hidden] { display:none; }
#write .write-inline-photo-toggle:focus-visible { outline:2px solid var(--accent); outline-offset:-2px; }

#write .write-inline-editor textarea.write-inline-text { min-height:28px; padding:3px 2px; line-height:1.6; caret-color:var(--ink); }
#write .write-inline-editor textarea.write-inline-text:only-child { min-height:120px; }
#write .write-inline-editor textarea.is-insertion-target { background:transparent; box-shadow:none; }
#write .write-inline-editor textarea.write-inline-text:focus { outline:0; box-shadow:none; }

#write .write-inline-editor textarea.write-inline-text { min-height:20px; margin:0; padding:0 2px; line-height:20px; overflow:hidden; }
#write .write-inline-editor textarea.write-inline-text:only-child { min-height:120px; }
#write .write-inline-editor .write-inline-photo { margin:2px 0; }

/* Keep inserted photos at intrinsic size, constrained only by the content width. */
#write .write-inline-editor .write-inline-photo { width:fit-content; max-width:100%; margin:2px auto 2px 0; }
#write .write-inline-photo button.write-inline-photo-toggle { width:auto; max-width:100%; text-align:left; }
#write .write-inline-photo img { display:block; width:auto; max-width:100%; height:auto; max-height:none; margin:0; object-fit:initial; }
.post-detail-body .post-inline-image { width:auto; max-width:100%; height:auto; max-height:none; margin:14px auto 14px 0; }

/* Text and images each occupy their own row in the editor. */
#write .write-inline-box .write-inline-editor { display:flex; flex-direction:column; align-items:stretch; gap:2px; }
#write .write-inline-editor > textarea.write-inline-text { position:static; flex:none; box-sizing:border-box; width:100%; max-width:100%; transform:none; float:none; }
#write .write-inline-editor > figure.write-inline-photo { position:relative; flex:none; align-self:flex-start; clear:both; transform:none; }

/* Compact editor preview; uploaded image data stays unchanged. */
#write .write-inline-photo img { width:auto; height:auto; max-width:100%; max-height:220px; object-fit:contain; }

#write .write-inline-editor > figure.write-inline-photo:first-of-type img { max-height:330px; }

.post-detail-reactions .post-detail-report { margin-left:auto; }
.post-detail-reactions .post-detail-report:disabled { opacity:.45; cursor:default; }

#write .write-publish { background:var(--accent); color:#fff; transition:background .15s ease; }
#write .write-publish:not(.is-disabled):not(:disabled):active { background:#a96854; }
#write .write-publish.is-disabled,#write .write-publish:disabled { background:#eadbd4; color:#ad8b7e; }

#performance-detail .performance-viewing-toggle { display:flex; align-items:center; justify-content:space-between; width:100%; padding:16px; border:1px solid #e9e3df; border-radius:20px; background:#f9f7f6; color:var(--ink); font:inherit; text-align:left; cursor:pointer; }
#performance-detail .performance-viewing-section > h2 { margin-bottom:0; }
#performance-detail .performance-viewing-toggle[aria-expanded="true"] { border-radius:20px 20px 0 0; border-bottom:0; }
#performance-detail .performance-viewing-toggle[aria-expanded="true"] .performance-viewing-chevron { transform:rotate(180deg); }
#performance-detail .performance-viewing-section .performance-section-card:not([hidden]) { border-radius:0 0 20px 20px; border-top:0; }
#performance-detail #performance-viewing-content[hidden] { display:none; }

#performance-detail .performance-cast-section > h2 { margin-bottom:0; }
#performance-detail #performance-cast-content[hidden] { display:none; }
#performance-detail .performance-cast-section .performance-cast:not([hidden]) { border-radius:0 0 20px 20px; border-top:0; }

#performance-detail .performance-viewing-section + .performance-cast-section { border-top:0; padding-top:0; }

#performance-detail .performance-viewing-toggle[aria-expanded="true"] { border-bottom:1px solid #e9e3df; }

.academy-review-owner-guide { margin:14px 0; color:var(--muted); font-size:12px; line-height:1.7; }

/* Match the instructor profile review presentation. */
#academy-detail .academy-reviews-open { display:none; }
#academy-detail .academy-reviews-summary + .academy-inline-review { border-top:0; }
#academy-detail .academy-review-list:empty { border-bottom:0 !important; }

#academy-detail .academy-inline-review[hidden] { display:grid !important; }

.academy-inline-review.review-writing-restricted .inline-review-footer { display:flex; align-items:center; justify-content:space-between; flex-wrap:nowrap; gap:12px; }
.academy-inline-review.review-writing-restricted .inline-review-message { margin:0; flex:1; min-width:0; line-height:1.5; }

.academy-inline-review.review-writing-restricted .inline-review-footer .inline-review-message { transform:translateY(-4px); }

.review-public-photos { display:flex; gap:10px; overflow-x:auto; margin:12px 0; }
.review-public-photos img { flex:0 0 auto; width:160px; height:160px; object-fit:cover; border-radius:14px; }

.comment-style-review.has-review-photo { display:grid; grid-template-columns:minmax(0,1fr) 42px; column-gap:9px; }
.comment-style-review.has-review-photo > div:first-child { grid-column:1; grid-row:1; }
.comment-style-review.has-review-photo > p { grid-column:1; grid-row:2; }
.comment-style-review.has-review-photo > .review-public-photos { grid-column:2; grid-row:1 / 3; align-self:center; position:relative; display:block; width:42px; height:42px; margin:0; padding:0; border:0; border-radius:10px; overflow:hidden; cursor:pointer; }
.comment-style-review .review-public-photos img { display:block; width:100%; height:100%; object-fit:cover; border-radius:0; }
.review-photo-count { position:absolute; right:2px; bottom:2px; padding:1px 3px; border-radius:4px; background:#302a32b3; color:white; font-size:9px; }
.comment-style-review.has-review-photo > :is(.review-owner-reply,.review-partner-actions,.reviews-owner-actions,.review-owner-composer) { grid-column:1 / -1; }

.comment-style-review.has-review-photo > div:first-child { grid-column:1 / -1; }
.comment-style-review.has-review-photo > .review-public-photos { grid-row:2; align-self:start; margin-top:7px; }

/* Keep natural-size attachments inside the available viewport before zooming. */
.timetable-viewer { box-sizing:border-box; width:100%; height:100vh; height:100dvh; min-width:0; min-height:0; grid-template-columns:minmax(0,1fr); grid-template-rows:minmax(0,1fr); padding:calc(58px + env(safe-area-inset-top)) 14px calc(32px + env(safe-area-inset-bottom)); }
.timetable-viewer > img { display:block; width:auto; height:auto; min-width:0; min-height:0; max-width:100%; max-height:calc(100vh - 90px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); max-height:calc(100dvh - 90px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); object-fit:contain; }
.timetable-viewer-close { z-index:3; }

/* Anchor viewer controls inside the visible viewport, including safe areas. */
.timetable-viewer > .timetable-viewer-close { position:absolute; inset:auto; top:calc(10px + env(safe-area-inset-top)); right:calc(10px + env(safe-area-inset-right)); width:36px; height:36px; min-height:36px; padding:0; box-sizing:border-box; display:grid; place-items:center; line-height:1; z-index:5; }
.timetable-viewer > :is(.timetable-gallery-prev,.timetable-gallery-next) { position:absolute; inset:auto; top:50%; transform:translateY(-50%); width:36px; height:40px; min-height:0; margin:0; padding:0; box-sizing:border-box; display:grid; place-items:center; z-index:4; }
.timetable-viewer > .timetable-gallery-prev { left:calc(10px + env(safe-area-inset-left)); }
.timetable-viewer > .timetable-gallery-next { right:calc(10px + env(safe-area-inset-right)); }
.timetable-viewer > .timetable-gallery-count { bottom:calc(8px + env(safe-area-inset-bottom)); }
.timetable-viewer > .hidden { display:none; }

.timetable-viewer > .timetable-gallery-prev { left:calc(var(--viewer-content-left, 0px) + 12px + env(safe-area-inset-left)); }
.timetable-viewer > :is(.timetable-gallery-next,.timetable-viewer-close) { right:calc(var(--viewer-content-right, 0px) + 12px + env(safe-area-inset-right)); }
.timetable-viewer > img { max-width:calc(var(--viewer-content-width, 100vw) - 28px); }

/* Keep the brand bar within the visual viewport while the phone keyboard pans the page. */
body.keyboard-open .app { padding-top:var(--keyboard-header-height,62px); }
body.keyboard-open .app > header { position:fixed; top:var(--keyboard-header-top,0px); left:var(--keyboard-header-left,0px); width:var(--keyboard-header-width,100%); z-index:60; }
body.keyboard-open :is(input,textarea,select,[contenteditable="true"]) { scroll-margin-top:calc(var(--keyboard-header-height,62px) + 12px); scroll-margin-bottom:20px; }

#academy-detail .academy-detail-gallery { touch-action:pan-y pinch-zoom; cursor:grab; }
#academy-detail .academy-detail-gallery.is-dragging { cursor:grabbing; }
#academy-detail .academy-detail-gallery.is-dragging .academy-detail-track { transition:none; }
#academy-detail .academy-detail-photo { user-select:none; -webkit-user-select:none; }

/* Available advertisement start dates */
.ad-calendar-head{display:flex;align-items:center;justify-content:space-between;margin:12px 0;gap:12px}
.ad-calendar-head button,.ad-start-calendar>button{min-height:40px;min-width:40px;border-radius:12px;background:#f1e3dd;color:#704a3d}
.ad-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;text-align:center}
.ad-calendar-grid>span{font-size:12px;color:#81777c;padding:7px 0}
.ad-calendar-grid>button{min-height:40px;border-radius:10px;background:#f1e3dd;color:#704a3d;font-size:14px}
.ad-calendar-grid>button:disabled{background:transparent;color:#c5bfbf;cursor:default}
.ad-calendar-grid>button.active{background:#895642;color:white}
.ad-calendar-head button:disabled{opacity:.35}
.ad-start-summary{font-weight:700;color:#704a3d}

.ad-request-start .ad-calendar-grid>span{margin:0;padding:7px 0;font-weight:400}

#ad-request .ad-request-start .ad-start-status,
#ad-request .ad-request-start .ad-start-note{font-size:11px;font-weight:400;line-height:1.6;color:#817a7e}
#ad-request .ad-request-start .ad-start-status{margin:8px 0 14px}
#ad-request .ad-request-start .ad-start-note{margin:22px 0 0}
#ad-request .ad-start-summary:empty{display:none}

.app #admin-advertising .admin-advertising-stage-tabs{display:flex;flex-wrap:wrap;gap:8px;overflow:visible}
.app #admin-advertising .admin-advertising-stage-tabs>button{flex:0 0 auto;width:auto;min-width:max-content;max-width:100%;min-height:36px;padding:0 14px;white-space:nowrap;box-sizing:border-box}

.app #admin-pricing .admin-pricing-kind-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.app #admin-pricing .admin-pricing-kind-tabs>button{min-width:0;min-height:38px;padding:6px 10px;white-space:normal;line-height:1.4}
.app #admin-pricing .admin-pricing-placement-guide{margin:0 0 16px;font-size:11px;font-weight:400;line-height:1.6;color:#817a7e}

.app #admin-pricing .admin-pricing-kind-tabs{display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;scrollbar-width:none;min-width:0}
.app #admin-pricing .admin-pricing-kind-tabs::-webkit-scrollbar{display:none}
.app #admin-pricing .admin-pricing-kind-tabs>button{flex:1 0 auto;width:auto;min-width:max-content;min-height:38px;padding:6px 10px;white-space:nowrap;font-size:11px}

.app #admin-pricing .admin-pricing-plan{font-size:11px;font-weight:700;gap:8px}

.app .my-member-menu .my-ad-center-entry:disabled{color:#aaa3a6;background:#eeeae7;cursor:default;box-shadow:none;opacity:.65}
.app .my-ad-center-entry small{margin-left:8px;font-size:11px;font-weight:400}

#home .hero-slide-recruitment{background:#f8f5f1 url('./assets/home-recruitment-studio-v1.png') center/cover no-repeat;font-family:'SUIT',sans-serif}
#home .hero-slide-recruitment .hero-kicker{font-family:'SUIT',sans-serif;color:#ad6b53;font-size:10px;letter-spacing:1.5px}
#home .hero-slide-recruitment h1{font-family:'SUIT',sans-serif;font-size:28px;font-weight:650;line-height:1.35;letter-spacing:-.04em}
#home .hero-slide-recruitment h1 em{font-style:normal;color:#ad6b53;font-weight:600}
#home .hero-slide-recruitment p{color:#625a56;font-size:13px}
#home .hero-slide-recruitment .hero-cta{background:#b8765d;color:#fff;border-radius:999px;padding:12px 22px;font-family:'SUIT',sans-serif;font-size:13px}
@media(max-width:350px){#home .hero-slide-recruitment h1{font-size:25px}}

#home .hero-slide-launch{font-family:'SUIT',sans-serif;background-color:#f8f5f1;background-position:center;background-size:cover;background-repeat:no-repeat}
#home .hero-slide-recruitment{background-image:url('./assets/home-signup-launch-v1.png')}
#home .hero-slide-guide{background-image:url('./assets/home-guide-launch-v1.png')}
#home .hero-slide-coming-soon{background-image:url('./assets/home-ad-coming-launch-v1.png')}
#home .hero-slide-launch .hero-kicker{font-family:'SUIT',sans-serif;font-size:10px;letter-spacing:1.5px;color:#ad6b53}
#home .hero-slide-launch h1{font-family:'SUIT',sans-serif;font-size:28px;font-weight:650;line-height:1.35;letter-spacing:-.04em}
#home .hero-slide-launch h1 em{font-style:normal;color:#ad6b53;font-weight:600}
#home .hero-slide-launch p{color:#625a56;font-size:13px}
#home .hero-slide-launch .hero-cta{background:#b8765d;color:white;border-radius:999px;padding:12px 22px;font-family:'SUIT',sans-serif;font-size:13px}
#home .hero-coming-status{display:inline-block;margin-top:22px;padding:11px 15px;border:1px solid #b8765d;border-radius:999px;color:#a86a51;font-size:12px;font-weight:600}
@media(max-width:350px){#home .hero-slide-launch h1{font-size:25px}}

.app #signup .signup-actions>.signup-back{padding:0;border:0;border-radius:0;background:transparent;color:var(--ink);box-shadow:none;font-size:25px;line-height:1}

#admin-ad-settings .admin-ad-settings-card{padding:18px;margin:18px 0;border:1px solid var(--line);border-radius:18px;background:#fffaf8}
#admin-ad-settings .admin-ad-settings-card h2{font-size:15px;margin:0 0 10px}
#admin-ad-settings .admin-ad-settings-card p,#admin-ad-settings .admin-ad-settings-note{font-size:12px;line-height:1.65;color:var(--muted)}
#admin-ad-settings .admin-ad-settings-pending{display:inline-block;margin-top:8px;padding:6px 10px;border-radius:999px;background:#eeeae7;color:#817980;font-size:11px}

.app:not(.ads-visible) :is([data-search-browse-ad],.performance-list-ad,.performance-top-ad,.community-banner-carousel,.community-banner-dots,[data-server-academy-ad],[data-server-instructor-ad]){display:none!important}
.app.ads-admin-preview :is([data-search-browse-ad],.performance-list-ad,.performance-top-ad,.community-banner-carousel){outline:1px dashed #b8765d;outline-offset:4px}
.ad-setting-row{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer}
.ad-setting-row>span{min-width:0}.ad-setting-row b{display:block;font-size:14px}.ad-setting-row small{display:block;margin-top:7px;font-size:11px;line-height:1.5;color:var(--muted)}
.ad-setting-row input[role=switch]{appearance:none;-webkit-appearance:none;flex:0 0 46px;width:46px;height:27px;margin:0;border:0;border-radius:99px;background:#d9d3d0;position:relative;cursor:pointer}
.ad-setting-row input[role=switch]:before{content:'';position:absolute;top:3px;left:3px;width:21px;height:21px;border-radius:50%;background:white;transition:transform .18s}
.ad-setting-row input[role=switch]:checked{background:#b8765d}.ad-setting-row input[role=switch]:checked:before{transform:translateX(19px)}
.ad-setting-row input[role=switch]:disabled{opacity:.45;cursor:default}.ad-setting-row input[role=switch]:focus-visible{outline:2px solid #895642;outline-offset:3px}
.ad-preview-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}.ad-preview-links button{padding:10px 12px;border-radius:999px;background:#f1e3dd;color:#895642;font-size:12px}
[data-ad-public-badge]{display:inline-block;margin-left:7px;padding:3px 7px;border-radius:99px;background:#eeeae7;font-size:10px;color:#817980;font-style:normal}
.app .my-ad-center-entry:not(:disabled){opacity:1}
