@font-face {
  font-family: "GenEi Antique P";
  src: url("/assets/fonts/genei-antique-p.woff2?v=20260926.1") format("woff2");
  font-display: swap;
  font-weight: 500;
}

@font-face {
  font-family: "GenEi Antique N";
  src: url("/assets/fonts/genei-antique-n.woff2?v=20260926.1") format("woff2");
  font-display: swap;
  font-weight: 500;
}

.admin-body {
  min-height: 100vh;
  margin: 0;
  color: #172026;
  background: #eef3f2;
  font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
}

.admin-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 2rem;
  color: white;
  background: #172f31;
}

.admin-header a { color: inherit; text-decoration: none; }
.admin-header nav { display: flex; gap: 1.25rem; }
.admin-main { width: min(1180px, calc(100% - 2rem)); margin: 2rem auto; }
.admin-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 1rem; }
.admin-card { padding: 1.25rem; border: 1px solid #cad7d6; border-radius: .5rem; background: white; }
.admin-card strong { display: block; font-size: 2rem; }
.admin-card form { display: grid; gap: 1rem; max-width: 34rem; }
.admin-card label { display: grid; gap: .35rem; }
.admin-card input, .admin-card textarea, .admin-card select { min-height: 2.75rem; padding: .5rem; font: inherit; }
.admin-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin: 1.5rem 0; }
.admin-actions a, .admin-card button { padding: .7rem 1rem; border: 0; border-radius: .25rem; color: white; background: #9a4d41; text-decoration: none; }
.admin-button, .admin-editor button { display: inline-block; padding: .7rem 1rem; border: 0; border-radius: .25rem; color: white; background: #9a4d41; text-decoration: none; }
.admin-table { width: 100%; border-collapse: collapse; background: white; }
.admin-table th, .admin-table td { padding: .75rem; border: 1px solid #d9e0df; text-align: left; vertical-align: top; }
.admin-editor { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; padding: 1.5rem; background: white; }
.admin-editor label { display: grid; gap: .35rem; }
.admin-editor .admin-editor__full { grid-column: 1 / -1; }
.admin-editor > h2, .admin-editor > h3 { grid-column: 1 / -1; margin: 0; }
.admin-editor label:has(input[type="checkbox"]) { display: flex; align-items: center; gap: .55rem; grid-column: 1 / -1; }
.admin-editor input[type="checkbox"] { flex: 0 0 auto; width: 1.25rem; height: 1.25rem; min-height: 0; padding: 0; }
.admin-editor label:has(textarea) { grid-column: 1 / -1; }
.admin-editor textarea { min-height: 10rem; }
.admin-editor input, .admin-editor textarea, .admin-editor select { min-height: 2.75rem; padding: .5rem; font: inherit; border: 1px solid #b8c9c7; border-radius: .2rem; }
.admin-media-fieldset { grid-column: 1 / -1; display: grid; gap: .75rem; margin: 0; padding: 1rem; border: 1px solid #cad7d6; border-radius: .35rem; background: #f7faf9; }
.admin-media-fieldset legend { padding: 0 .35rem; font-weight: 700; }
.admin-media-alt-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.admin-media-fieldset small { color: #5e706e; }
.admin-editor button { grid-column: 1 / -1; justify-self: end; }
.admin-editor__error { grid-column: 1 / -1; margin: 0; padding: .8rem 1rem; border-left: .3rem solid #a33025; background: #fff0ed; color: #72251d; font-weight: 700; white-space: pre-line; }
.admin-editor__error[hidden] { display: none; }
.admin-editor [aria-invalid="true"] { border-color: #a33025; outline-color: #a33025; }
@media (max-width: 720px) {
  .admin-editor { grid-template-columns: 1fr; }
  .admin-media-alt-grid { grid-template-columns: 1fr; }
  .admin-table { display: block; overflow-x: auto; }
}

@font-face {
  font-family: "GenEi Antique N";
  src: url("/assets/fonts/genei-antique-n.woff2?v=20260926.1") format("woff2");
  font-display: swap;
  font-weight: 500;
}

@font-face {
  font-family: "Source Han Sans Local";
  src: url("/assets/fonts/source-han-sans-regular.woff2?v=20260926.1") format("woff2");
  font-display: swap;
  font-weight: 400;
}

@font-face {
  font-family: "Source Han Sans Local";
  src: url("/assets/fonts/source-han-sans-bold.woff2?v=20260926.1") format("woff2");
  font-display: swap;
  font-weight: 700;
}

:root {
  color-scheme: light;
  --ink: #111;
  --paper: #fff;
  --aqua: #dffafa;
  --aqua-strong: #8fd7e4;
  --teal: #007f87;
  --peach: #ffd4ae;
  --danger: #a81708;
  --focus: #145cff;
  --content: 82rem;
  font-family: "GenEi Antique P", "Yu Mincho", "Noto Serif CJK TC", serif;
  font-synthesis: none;
}
:root:lang(ja) { font-family: "GenEi Antique N", "Yu Mincho", "Noto Serif CJK JP", serif; }

* { box-sizing: border-box; }
html { min-height: 100%; background: var(--paper); }
body { min-height: 100vh; margin: 0; color: var(--ink); background: var(--paper); line-height: 1.55; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration-thickness: .08em; text-underline-offset: .18em; }
a[href], button:not(:disabled), summary, select, label[for], label:has(input:is([type="checkbox"], [type="radio"], [type="range"], [type="file"])), [role="button"], input:is([type="checkbox"], [type="radio"], [type="range"], [type="file"]) { cursor: pointer; }
input:is([type="text"], [type="email"], [type="password"], [type="search"], [type="url"], [type="number"], [type="date"]), textarea { cursor: text; }
img { display: block; max-width: 100%; }
[hidden] { display: none !important; }
:focus-visible { outline: .2rem solid var(--focus); outline-offset: .18rem; }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; border: 0 !important; }
.skip-link { position: fixed; z-index: 1000; left: 1rem; top: -5rem; background: #fff; padding: .7rem 1rem; }
.skip-link:focus { top: 1rem; }

.source-han-scope,
.source-han-scope :where(input, textarea, select, button) {
  font-family: "Source Han Sans Local", "Noto Sans CJK TC", "Microsoft JhengHei", sans-serif;
}

.site-header { display: grid; grid-template-columns: 11rem 1fr; min-height: 8.8rem; border-bottom: 1px solid #222; }
.brand { display: grid; place-items: center; text-decoration: none; padding: .6rem; }
.brand__logo { width: 7.5rem; height: auto; }
.main-nav { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: clamp(.35rem, 1vw, 1.15rem); align-items: start; padding-right: 1rem; }
.main-nav__link { display: flex; min-height: 7.5rem; flex-direction: column; align-items: center; justify-content: center; padding: .4rem; background: linear-gradient(#cfffff, #f6ffff); font-size: clamp(1.65rem, 1.8vw, 1.9rem); line-height: 1.2; text-align: center; text-decoration: none; }
.main-nav__link small { display: block; font-size: 1em; letter-spacing: .015em; }
.main-nav__link:hover { background: #bff6f8; }
.menu-toggle { display: none; }

.language-switcher { position: fixed; z-index: 20; left: 0; top: 38%; display: flex; flex-direction: column; gap: .4rem; padding: .8rem .35rem; background: var(--peach); border: 2px solid #111; border-left: 0; border-radius: 0 1.2rem 1.2rem 0; }
.language-switcher button { border: 0; background: transparent; writing-mode: vertical-rl; font-family: "GenEi Antique N", serif; font-size: 1rem; cursor: pointer; }
.language-switcher button[aria-pressed="true"] span { color: var(--teal); }

.site-main { width: min(var(--content), calc(100% - 12rem)); min-height: calc(100vh - 14rem); margin: 0 auto; padding: 4rem 2rem 6rem; }
.site-footer {
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr);
  align-items: center;
  gap: .9rem;
  min-height: 6.5rem;
  padding: 1.4rem 2rem;
  color: #fff;
  background: #164b6b;
  font-family: "Source Han Sans Local", "Noto Sans CJK TC", "Microsoft JhengHei", sans-serif;
}
.site-footer__meta { display: flex; min-width: 0; align-items: center; justify-content: flex-end; gap: 1.2rem; }
.site-footer__title { font-size: 1rem; font-weight: 700; }
.site-footer__admin {
  display: block;
  width: 10rem;
  aspect-ratio: 858 / 301;
  overflow: hidden;
  opacity: 0;
  transition: opacity .18s ease;
}
.site-footer__admin:hover, .site-footer__admin:focus-visible { opacity: 1; }
.site-footer__admin img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}
.site-footer__social { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: .5rem; align-items: center; }
.site-footer__credits { display: flex; gap: .85rem; margin-left: auto; font-size: .9rem; white-space: nowrap; }
.page-heading { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-bottom: 2rem; }
.home-page .page-heading { flex-direction: row-reverse; }
.page-heading h1 { margin: 0; font-size: clamp(2rem, 4vw, 3rem); }
.page-heading__english { display: none; font-family: Georgia, "Times New Roman", serif; font-size: 2.25rem; line-height: 1; letter-spacing: .02em; }
.book-ornament { display: block; width: min(24rem, 42vw); height: auto; object-fit: contain; }

.post-feed { border: 1px solid #222; padding: 2rem; }
.post-card { display: grid; grid-template-columns: 130px 1fr; gap: 1rem; padding: 1rem; border: 1px solid #222; }
.post-card + .post-card { margin-top: 2rem; }
.post-card__image-link { display: block; width: 130px; height: 90px; flex: 0 0 130px; align-self: start; }
.post-card__image-link > img, .post-card__image-link > .media-placeholder { display: block; width: 130px; height: 90px; object-fit: cover; object-position: center; }
.post-card h2, .post-card p { margin: 0; }
.post-card time { float: right; font-size: .86rem; }
.post-card[data-pinned="true"] { border-width: 2px; }

.content-page { position: relative; max-width: 70rem; margin: 0 auto; }
.prose { font-size: 1.08rem; }
.content-page > .prose { font-size: 1.08rem; line-height: 1.6; }
.prose p { white-space: normal; }
.prose a { color: var(--teal); }
.prose { overflow-wrap: anywhere; }
.prose img { display: block; max-width: 100%; height: auto; margin: 1.3rem auto; }
.prose pre { max-width: 100%; overflow-x: auto; padding: 1rem; background: #edf7f7; border-left: .25rem solid var(--teal); }
.prose code { overflow-wrap: anywhere; background: #edf7f7; padding: .1em .25em; }
.prose pre code { overflow-wrap: normal; padding: 0; }
.prose blockquote { margin: 1.25rem 0; padding: .35rem 1.2rem; border-left: .3rem solid var(--teal); background: #f2fbfb; }
.prose table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; }
.prose th, .prose td { border: 1px solid #777; padding: .4rem .7rem; }
.prose ul, .prose ol { padding-left: 1.7rem; }
.prose h4, .prose h5, .prose h6 { line-height: 1.4; }
[hidden] { display: none !important; }
.media-placeholder { display: grid; place-items: center; aspect-ratio: 3 / 4; background: linear-gradient(135deg, #d8f6f7, #fff); border: 1px solid #222; font-size: 3rem; }

.teacher-grid { display: grid; grid-template-columns: repeat(6, minmax(7rem, 1fr)); gap: 5rem 2rem; align-items: start; padding-top: 2.25rem; }
.work-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); gap: 4rem 3rem; }
.teacher-card, .work-card { text-align: center; }
.teacher-card { position: relative; min-width: 0; }
.teacher-card.is-expanded { z-index: 30; }
.teacher-card details {
  --teacher-wing-max: 19.5625rem;
  --teacher-left-wing: 0px;
  --teacher-right-wing: 0px;
  --teacher-center-gap: 7rem;
  --teacher-details-left: 50%;
  position: relative;
}
.teacher-card summary { position: relative; z-index: 3; width: fit-content; margin: auto; cursor: pointer; list-style: none; }
.teacher-card summary::-webkit-details-marker { display: none; }
.teacher-card summary:focus-visible { outline: 3px solid var(--teal); outline-offset: .25rem; }
.teacher-card summary h2 { margin: .35rem 0 0; font-size: 1.25rem; line-height: 1.25; }
.teacher-card__details {
  position: absolute;
  z-index: 2;
  top: 0;
  inset-inline-start: var(--teacher-details-left);
  display: grid;
  grid-template-columns: var(--teacher-left-wing) var(--teacher-right-wing);
  gap: var(--teacher-center-gap);
  width: calc(var(--teacher-left-wing) + var(--teacher-center-gap) + var(--teacher-right-wing));
  margin: 0;
  text-align: left;
}
.teacher-card .teacher-card__links, .teacher-card__works {
  display: grid;
  grid-auto-rows: var(--teacher-panel-row-height, 2.46875rem);
  width: 100%;
  min-width: 0;
  height: var(--teacher-panel-height, 9.875rem);
  max-width: var(--teacher-wing-max);
  padding: 0;
  overflow: hidden;
  background-image: url("/assets/teacher-expand-panel.png?v=20260926.1");
  background-repeat: repeat-y;
  background-size: 100% var(--teacher-panel-group-height, 9.875rem);
}
.teacher-card .teacher-card__links > a, .teacher-card__works > a { display: grid; min-width: 0; padding: 0 .35rem; place-items: center; overflow: hidden; font-size: 1.65rem; line-height: 1; text-align: center; white-space: nowrap; }
.teacher-card a, .work-card a { text-decoration: none; }
.teacher-card summary > img, .teacher-card summary > .media-placeholder { width: 7rem; aspect-ratio: 1; object-fit: cover; margin: auto; border: 2px solid #111; }
.teacher-detail__links { display: flex; width: min(100%, 20rem); flex-direction: column; align-items: stretch; gap: .2rem; padding: .75rem; background: linear-gradient(180deg, #aaf5f1, #eaffff); box-shadow: 0 .35rem .8rem #007f8726; }
.teacher-detail__links a { padding: .35rem .5rem; border-bottom: 1px solid #2c9eaa; text-align: center; overflow-wrap: break-word; }
.work-card img, .work-card .media-placeholder { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
.work-card h2 { font-size: 1.1rem; }
.products-hint { margin: 0 0 1.2rem; font-weight: 700; }
.author-filter { display: flex; align-items: center; gap: 1rem; max-width: 30rem; margin: 0 0 3rem; }
.author-filter select { flex: 1; border: 2px solid #111; border-radius: 999px; background: #fff; padding: .25rem 1rem; }
.teacher-detail__avatar { width: 12rem; aspect-ratio: 1; object-fit: cover; float: left; margin: 0 2rem 1rem 0; }
.work-strip { clear: both; display: grid; grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr)); gap: 1rem; padding-top: 3rem; }
.work-strip a { text-align: center; text-decoration: none; }
.work-strip img, .work-strip .media-placeholder { aspect-ratio: 3 / 4; object-fit: cover; }

.work-detail { display: grid; grid-template-columns: minmax(16rem, 28rem) 1fr; gap: 4rem; }
.work-detail__cover img, .work-detail__cover .media-placeholder { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
.work-detail__cover button { display: block; width: 100%; padding: 0; border: 0; background: transparent; cursor: pointer; }
.preview-button { padding: .75rem 1.5rem; border: 2px solid #111; background: var(--aqua); cursor: pointer; }
.external-links { display: grid; gap: 1rem; margin-top: 2rem; }
.external-links a { display: flex; align-items: center; gap: .75rem; padding: 1rem; background: #333; color: #fff; border-radius: .75rem; text-decoration: none; }
.external-links a > img, .external-links a > .media-placeholder, .external-links a > .link-icon-fallback { flex: 0 0 3rem; width: 3rem; height: 3rem; aspect-ratio: 1; object-fit: cover; border-radius: .5rem; }
.external-links a > .link-icon-fallback { display: grid; place-items: center; background: #eefcff; color: #111; font-size: 1.5rem; }
.external-link__copy { display: grid; min-width: 0; overflow-wrap: anywhere; }
.work-correction-status { width: fit-content; padding: .35rem .7rem; background: #111; color: #fff; font-weight: 700; }
.preview-dialog { width: 100vw; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: #3d3d3d; color: #fff; }
.preview-dialog::backdrop { background: rgb(0 0 0 / .82); }
.preview-dialog[open] { display: grid; grid-template-columns: minmax(15rem, 29%) minmax(24rem, 43%) minmax(16rem, 28%); grid-template-rows: auto minmax(0, 1fr); }
.preview-dialog__info { grid-column: 1; grid-row: 1; min-width: 0; padding: 1rem 1.25rem; background: #464b4d; }
.preview-dialog__info dl { display: grid; gap: .45rem; margin: 0; }
.preview-dialog__info dl > div { display: flex; gap: .35rem; min-width: 0; }
.preview-dialog__info dt { flex: 0 0 auto; font-weight: 700; }
.preview-dialog__info dt::after { content: "："; }
.preview-dialog__info dd { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.preview-dialog__info p { max-height: 8rem; margin: .7rem 0 0; overflow: auto; }
.preview-dialog__main { position: relative; grid-column: 2; grid-row: 1 / 3; display: grid; grid-template-rows: minmax(0, 1fr) auto; min-width: 0; min-height: 0; background: #fff; }
.preview-pages { position: relative; display: grid; place-items: center; min-height: 0; padding: 1rem 2.5rem; overflow: hidden; background: #fff; }
.preview-page { position: absolute; inset: 1rem 2.5rem; min-width: 0; min-height: 0; }
.preview-page img { display: block; width: 100%; height: 100%; object-fit: contain; }
.preview-arrow { position: absolute; z-index: 2; top: 50%; width: 4.5rem; height: 5.5rem; border: 0; background-color: transparent; background-position: center; background-repeat: no-repeat; background-size: contain; font-size: 0; transform: translateY(-50%); }
.preview-arrow--previous { left: .35rem; }
.preview-arrow--previous { background-image: url("/assets/preview-arrow-left.png?v=20260926.1"); }
.preview-arrow--next { right: .35rem; background-image: url("/assets/preview-arrow-right.png?v=20260926.1"); }
.preview-dialog__controls { display: flex; align-items: center; gap: .6rem; min-height: 3rem; padding: .3rem .75rem; background: #080808; color: #ffe251; }
.preview-dialog__controls input { flex: 1; min-width: 0; accent-color: #ffe251; }
.preview-dialog__stores { display: contents; }
.preview-dialog__stores > button { z-index: 3; grid-column: 3; grid-row: 1; justify-self: end; align-self: start; margin: .75rem; padding: .5rem .8rem; border: 1px solid #ddd; background: #333; color: #fff; }
.preview-store-group { min-width: 0; padding: 1rem; overflow: auto; }
.preview-store-group h2 { margin: 0 0 .75rem; font-size: clamp(1rem, 2vw, 1.55rem); }
.preview-store-group--physical { grid-column: 1; grid-row: 2; align-self: start; }
.preview-store-group--ebook { grid-column: 3; grid-row: 1 / 3; padding-top: 4.5rem; }
.preview-dialog__links { display: grid; gap: .6rem; }
.preview-dialog__links a { display: flex; flex-direction: row; align-items: center; gap: .75rem; min-width: 0; padding: .8rem; background: #4d4d4d; color: #fff; text-decoration: none; overflow-wrap: anywhere; }
.preview-dialog__links a:hover { background: #216e85; }
.preview-link-card > img, .preview-link-card > .media-placeholder, .preview-link-card > .link-icon-fallback { flex: 0 0 3rem; width: 3rem; height: 3rem; aspect-ratio: 1; object-fit: cover; border-radius: .5rem; }
.preview-link-card > .link-icon-fallback { display: grid; place-items: center; background: #eefcff; color: #111; font-size: 1.5rem; }
.preview-link-card > span:last-child { display: grid; min-width: 0; }
.preview-link-card__description { color: #e8eeee; line-height: 1.35; }
.preview-link-card.is-sold-out { display: block; padding: 1rem; border: 1px dashed #bbb; background: #4a4a4a; color: #fff; text-align: center; }

.event-columns { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.event-switch { display: none; }
.event-columns > section { position: relative; min-height: 40rem; height: min(68rem, calc(100vh - 14rem)); padding: 1.5rem; overflow: hidden; background: #fff; }
.event-panel-art { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.event-columns > section > :not(.event-panel-art) { position: relative; }
.event-scroll-content { height: calc(100% - 3.5rem); overflow-y: auto; overscroll-behavior: contain; }
.event-card { min-height: calc((100% - 1rem) / 2); margin-bottom: 1rem; padding: 1rem; background: transparent; }
.event-card__image-link { display: block; }
.event-card img, .event-card .media-placeholder { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.event-card__read { display: block; margin-top: .5rem; border-top: 2px solid #111; text-align: right; }
.event-detail > img { width: 100%; max-height: 35rem; object-fit: cover; }

.reviews-page > h1, .contact-page h1 { font-size: clamp(2rem, 4vw, 3rem); }
.review-form, .contact-page form { display: grid; gap: .75rem; max-width: 60rem; }
.review-form label, .contact-page form > label { display: grid; grid-template-columns: 9rem 1fr; gap: .7rem; align-items: start; }
input, textarea, select { min-width: 0; border: 1px solid #555; border-radius: .55rem; background: #f5f5f5; padding: .55rem .75rem; }
textarea { min-height: 9rem; resize: vertical; }
form button, .review-actions button { justify-self: end; padding: .55rem 1.3rem; border: 1px solid #222; border-radius: .55rem; background: #fff; cursor: pointer; }
.review-list { display: grid; gap: 1rem; max-width: 60rem; margin: 4rem auto 0; }
.review-card { padding: 1rem 1.25rem; border: 1px solid #999; border-radius: .7rem; }
.review-card header { display: flex; justify-content: space-between; gap: 1rem; }
.review-target { font-weight: 700; }
.user-text { white-space: pre-wrap; overflow-wrap: anywhere; }
.review-actions { display: flex; justify-content: flex-end; gap: 1rem; margin-top: -10px; }
.reply-list { margin-left: 3rem; }
.reply { margin-top: .7rem; padding: .8rem; background: #edf6ff; border-left: .25rem solid #5d8dff; }
.reply-children { margin-left: 1.25rem; }
.reply__actions { display: flex; justify-content: flex-end; gap: .5rem; margin-top: -10px; }
.reply__action, .reply__like { display: block; padding: .3rem .75rem; border: 1px solid #5d8dff; border-radius: .45rem; background: #fff; cursor: pointer; }
.reply-form { display: grid; gap: .5rem; margin: 1rem 0 0 3rem; }
.reply-form__close { justify-self: end; }
.reply-form__field { display: grid; gap: .25rem; font-weight: 700; }
.reply-form__field input, .reply-form__field textarea { font-weight: 400; }
.tombstone { color: #666; font-style: italic; }
.contact-page fieldset { border: 0; padding: 0; }
.contact-page fieldset label { margin-right: 1.2rem; }
.contact-direct { margin: 0 auto 2rem; padding: 1rem; border-block: 2px solid #222; text-align: center; }
.contact-assurance { max-width: 60rem; margin: 1.5rem 0; font-size: 1.15rem; }

.age-gate-body {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 100vh;
  overflow-x: hidden;
  background-color: #fffdf9;
  background-image:
    radial-gradient(ellipse at 15% 18%, rgb(229 189 142 / .68) 0 1.5px, transparent 2px),
    radial-gradient(ellipse at 72% 64%, rgb(231 195 151 / .58) 0 1px, transparent 1.7px),
    radial-gradient(ellipse at 48% 43%, rgb(237 205 165 / .76) 0 2px, transparent 2.6px),
    radial-gradient(ellipse at 89% 25%, rgb(228 187 139 / .52) 0 1.2px, transparent 2px);
  background-size: 17px 13px, 23px 19px, 31px 27px, 37px 29px;
  font-family: "Source Han Sans Local", "Noto Sans CJK TC", "Microsoft JhengHei", sans-serif;
}
.age-gate { width: min(94vw, 58rem); padding: 3rem 1rem 8rem; text-align: center; }
.age-gate__notice { display: flex; align-items: center; justify-content: center; gap: 1.25rem; }
.age-gate__notice p { margin: 0; font-size: clamp(2rem, 4.2vw, 3.45rem); font-weight: 700; line-height: 1.28; text-shadow: 0 0 .18rem #fff, 0 0 .18rem #fff, 0 0 .18rem #fff; }
.age-gate__notice strong { font: inherit; }
.age-badge { flex: 0 0 auto; width: 11.5rem; border: 2px solid #111; background: #e0002d; color: #fff; font-family: Arial, sans-serif; font-weight: 900; line-height: 1; box-shadow: 0 0 0 2px rgb(255 255 255 / .55); }
.age-badge > span { display: block; padding: .18rem .22rem 0; font-size: 7.3rem; letter-spacing: -.11em; }
.age-badge sup { position: relative; top: -.13em; padding-left: .05em; font-size: 3.25rem; letter-spacing: 0; }
.age-badge small { display: block; padding: .15rem .1rem .24rem; border-top: 2px solid #111; background: #fff; color: #111; font-size: 1.55rem; font-weight: 900; letter-spacing: .08em; }
.age-gate__choices { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; width: min(100%, 52rem); margin: 3.25rem auto 0; }
.age-gate__choices form { display: contents; }
.age-gate__choices button, .age-gate__choices a { display: grid; min-height: 6rem; place-items: center; margin: 0; padding: .25rem; border: 0; background: transparent; color: #111; font-size: clamp(1.65rem, 3.2vw, 2.9rem); font-weight: 700; line-height: 1.18; text-decoration: none; text-shadow: 0 0 .18rem #fff, 0 0 .18rem #fff; cursor: pointer; }
.age-gate__footer { position: absolute; right: 2.5rem; bottom: 1rem; display: flex; flex-direction: column; align-items: flex-end; font-size: .82rem; line-height: 1.35; }

@media (max-width: 900px) {
  .site-header { position: relative; grid-template-columns: 7rem 1fr; min-height: 11.8rem; }
  .brand { align-self: start; }
  .brand__logo { width: 7rem; }
  .menu-toggle {
    position: absolute;
    z-index: 60;
    top: .8rem;
    right: .65rem;
    display: block;
    width: auto;
    min-height: 0;
    margin: 0;
    padding: .2rem;
    border: 0;
    background: transparent;
    font-size: .95rem;
    line-height: 1.15;
    writing-mode: horizontal-tb;
    cursor: pointer;
  }
  .main-nav { display: none; position: absolute; z-index: 50; inset: 6rem 0 auto; grid-template-columns: 1fr; gap: .2rem; padding: 1rem; background: rgb(255 255 255 / .98); box-shadow: 0 1rem 2rem rgb(0 0 0 / .18); }
  .main-nav.is-open { display: grid; }
  .main-nav__link { min-height: 4rem; }
  .main-nav__link { font-size: 1.25rem; }
  .main-nav__link small { font-size: .9em; }
  .language-switcher { position: absolute; top: .9rem; right: 6.6rem; left: 7rem; flex-direction: row; justify-content: center; gap: .45rem; padding: 0; background: transparent; border: 0; }
  .language-switcher button { padding: 0; writing-mode: horizontal-tb; font-size: .9rem; }
  .site-main { width: 100%; min-height: calc(100vh - 10rem); padding: 2rem 1rem 5rem; }
  .site-footer {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .8rem;
    min-height: 8rem;
    padding: 1rem;
  }
  .site-footer__social { grid-column: 1 / -1; grid-row: 1; }
  .site-footer__meta { grid-column: 1; grid-row: 2; flex-wrap: wrap; justify-content: flex-start; gap: .2rem .75rem; }
  .site-footer__title { flex-basis: 100%; }
  .site-footer__credits { flex-direction: column; gap: 0; margin-left: 0; white-space: normal; }
  .site-footer__admin { grid-column: 2; grid-row: 2; width: 8rem; margin-left: auto; opacity: 1; }
  .post-feed { padding: .35rem; border-left: 0; border-right: 0; }
  .post-card { grid-template-columns: 1fr; padding: 1rem .4rem; border-left: 0; border-right: 0; }
  .post-card__image-link { width: fit-content; margin: auto; }
  .post-card__image-link > img, .post-card__image-link > .media-placeholder { width: 130px; height: 90px; }
  .teacher-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3rem 1rem; }
  .work-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3rem 1rem; }
  .teacher-card details { --teacher-wing-max: 10rem; }
  .teacher-card summary > img, .teacher-card summary > .media-placeholder { width: 5.5rem; }
  .teacher-card summary h2 { margin-block: .55rem 0; font-size: 1.1rem; }
  .teacher-card .teacher-card__links > a, .teacher-card__works > a { padding-inline: .2rem; font-size: 1rem; }
  .work-detail { grid-template-columns: 1fr; gap: 2rem; }
  .work-detail__cover { max-width: 22rem; margin: auto; }
  .preview-dialog[open] { grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr) auto; width: 100vw; height: 100dvh; margin: 0; }
  .preview-dialog__stores { position: relative; grid-column: 1; grid-row: 1; display: flex; align-items: flex-start; gap: .5rem; min-width: 0; padding: .45rem 3rem .45rem .45rem; overflow-x: auto; background: #444; }
  .preview-dialog__stores > button { position: fixed; z-index: 4; top: .35rem; right: .35rem; margin: 0; padding: .35rem .55rem; }
  .preview-store-group { flex: 0 0 auto; padding: .25rem; overflow: visible; }
  .preview-store-group--physical, .preview-store-group--ebook { grid-column: auto; grid-row: auto; padding-top: .25rem; }
  .preview-store-group h2 { margin: 0 0 .25rem; font-size: .82rem; white-space: nowrap; }
  .preview-dialog__links { display: flex; gap: .35rem; overflow: visible; }
  .preview-dialog__links a { flex: 0 0 auto; padding: .35rem; }
  .preview-link-card > span:last-child { display: none; }
  .preview-link-card > img, .preview-link-card > .media-placeholder, .preview-link-card > .link-icon-fallback { flex-basis: 2rem; width: 2rem; height: 2rem; }
  .preview-dialog__main { grid-column: 1; grid-row: 2; }
  .preview-dialog__info { grid-column: 1; grid-row: 3; max-height: 9rem; padding: .5rem .75rem; overflow: auto; font-size: .84rem; }
  .preview-dialog__info dl { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .25rem .75rem; }
  .preview-dialog__info p { max-height: 3.5rem; margin-top: .35rem; }
  .preview-pages { padding: .35rem 2.15rem; }
  .preview-page { inset: .35rem 2.15rem; }
  .preview-arrow { width: 2.4rem; height: 4rem; }
  .preview-dialog__controls { min-height: 2.4rem; }
  .event-columns { grid-template-columns: 1fr; }
  .event-columns > section { height: min(50rem, calc(100dvh - 13rem)); }
  .event-scroll-content { overscroll-behavior-y: auto; }
  .event-switch { display: flex; justify-content: space-around; gap: .5rem; margin: .25rem 0 1rem; }
  .event-switch label { display: flex; align-items: center; gap: .25rem; white-space: nowrap; cursor: pointer; }
  .event-switch input { accent-color: #111; }
  .review-form label, .contact-page form > label { grid-template-columns: 1fr; }
  .reply-list, .reply-form { margin-left: 1rem; }
  .reply-form:not([hidden]) { position: fixed; z-index: 100; inset: auto .4rem .4rem; display: grid; max-height: 70dvh; margin: 0; padding: .8rem; overflow: auto; border: 2px solid #3d91ff; border-radius: 1rem; background: #eaf4ff; box-shadow: 0 0 0 100vmax #0007; }
  .reply-form input, .reply-form textarea { background: #eaf4ff; border-color: #3d91ff; }
  .reply-form textarea { min-height: 5rem; }
  .page-heading { align-items: flex-start; }
  .home-page .page-heading { flex-direction: row; }
  .book-ornament { width: 9.75rem; }

  .teachers-page,
  .products-page,
  .events-page,
  .home-page { margin-top: -13.8rem; }

  .teachers-page .page-heading,
  .products-page .page-heading,
  .events-page .page-heading,
  .home-page .page-heading {
    display: grid;
    grid-template-rows: auto auto auto;
    justify-items: center;
    align-content: center;
    width: calc(100% - 7rem);
    min-height: 11.8rem;
    margin: 0 0 2rem 7rem;
    padding: 3.1rem .35rem .3rem;
    gap: .12rem;
  }

  .teachers-page .page-heading h1,
  .products-page .page-heading h1,
  .events-page .page-heading h1,
  .home-page .page-heading h1 { font-size: clamp(1.7rem, 8vw, 2.35rem); line-height: 1.12; white-space: nowrap; }

  .teachers-page .page-heading .book-ornament,
  .products-page .page-heading .book-ornament,
  .events-page .page-heading .book-ornament { width: min(10.5rem, 80%); }

  .page-heading__english { display: block; }

  .about-page .page-heading,
  .reviews-page .page-heading,
  .contact-page .page-heading {
    display: grid;
    grid-template-columns: 1fr;
    justify-items: center;
    gap: .2rem;
    text-align: center;
  }
  .about-page .page-heading h1,
  .reviews-page .page-heading h1,
  .contact-page .page-heading h1 { font-size: clamp(1.7rem, 8vw, 2.35rem); line-height: 1.12; }
  .about-page .book-ornament,
  .reviews-page .book-ornament,
  .contact-page .book-ornament { width: min(18rem, 90%); }

  .home-page .page-heading { grid-template-rows: auto auto; }
  .home-page .page-heading .book-ornament { order: 1; }
  .home-page .page-heading h1 { order: 2; }

  .age-gate { align-self: start; width: 100%; padding: 3rem .75rem 7rem; }
  .age-gate__notice { flex-direction: column-reverse; gap: 1.5rem; }
  .age-gate__notice p { font-size: clamp(1.7rem, 8.2vw, 2.25rem); line-height: 1.22; }
  .age-badge { width: 11.2rem; }
  .age-badge > span { font-size: 7rem; }
  .age-gate__choices { gap: .65rem; margin-top: 2.4rem; }
  .age-gate__choices button, .age-gate__choices a { min-height: 4rem; font-size: clamp(1.45rem, 7vw, 1.85rem); }
  .age-gate__footer { right: auto; bottom: .7rem; left: 50%; width: 100%; align-items: center; transform: translateX(-50%); font-size: .72rem; }
}

@media (max-width: 520px) {
  .teacher-card details { --teacher-wing-max: 9rem; }
  .teacher-card summary > img, .teacher-card summary > .media-placeholder { width: 4.25rem; }
  .teacher-card summary h2 { margin-top: .35rem; font-size: 1rem; line-height: 1.25; }
  .teacher-card .teacher-card__links > a, .teacher-card__works > a { padding-inline: .1rem; font-size: .82rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
/* Server-rendered age confirmation. The page remains in the HTML for SEO, but
   inert prevents keyboard and assistive-technology interaction until accepted. */
.age-overlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  place-items: center;
  min-height: 100dvh;
  padding: 1.5rem;
  overflow: auto;
  background-color: #fffdf9;
  background-image: radial-gradient(circle at 12% 18%, #d8baa077 0 2px, transparent 3px), radial-gradient(circle at 80% 73%, #dfd1bd77 0 1px, transparent 2px), linear-gradient(125deg, #fffdf9ed, #f0e8dbea);
  background-size: 31px 37px, 43px 47px, auto;
}

.age-overlay .age-gate { margin: auto; }

.social-link {
  display: grid;
  flex: 0 0 3.25rem;
  align-self: center;
  width: 3.25rem;
  height: 3.25rem;
  margin: 0;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 0;
  background: var(--social-color, #256c9e);
  color: #fff;
  line-height: 0;
  text-decoration: none;
  transition: filter .18s ease, transform .18s ease;
}
.social-link svg { display: block; width: 2rem; height: 2rem; }
.social-link:hover { transform: translateY(-2px); filter: brightness(1.15); }
.social-link:active { transform: translateY(0); }
.social-link:focus-visible { outline-color: #fff; outline-offset: .2rem; }
.social-link[data-platform="x"], .social-link[data-platform="threads"] { --social-color: #080808; }
.social-link[data-platform="facebook"] { --social-color: #0866ff; }
.social-link[data-platform="plurk"] { --social-color: #F7544A; }
.social-link[data-platform="discord"] { --social-color: #5865f2; }
.social-link[data-platform="telegram"] { --social-color: #229ed9; }
.social-link[data-platform="pixiv"] { --social-color: #0096fa; }
.social-link[data-platform="instagram"] { --social-color: #c13584; }
.social-link[data-platform="youtube"] { --social-color: #f03; }
.social-link[data-platform="bluesky"] { --social-color: #1185fe; }
.social-link[data-platform="website"] { --social-color: #287768; }
@media (prefers-reduced-motion: reduce) { .social-link { transition: none; } }

/* Design-sheet administration: navigation stays above every protected page. */
.admin-body { color: #111; background: #fff; font-family: "Source Han Sans Local", "Noto Sans CJK TC", "Microsoft JhengHei", sans-serif; }
.admin-header { display: flex; align-items: center; gap: 1rem; padding: .7rem 1.25rem; border-bottom: 2px solid #111; background: #fff; color: #111; }
.admin-header .admin-actions { display: flex; flex: 1; flex-wrap: wrap; gap: .4rem; margin: 0; }
.admin-actions a { display: grid; place-items: center; min-height: 2.75rem; padding: .35rem .7rem; border: 1px solid #111; border-radius: 0; background: #fff; color: #111; text-align: center; }
.admin-actions a:hover, .admin-actions a:focus-visible { background: #d5fcff; }
.admin-exit { display: block; flex: 0 0 auto; width: 8.6875rem; aspect-ratio: 139 / 49; padding: 0; overflow: hidden; background: #00a62b; }
.admin-exit img { display: block; width: 100%; height: 100%; object-fit: contain; }
.admin-main { width: min(1360px, calc(100% - 2rem)); }
.admin-body--entry { min-height: 100dvh; }
.admin-body--entry .admin-main { width: min(100%, 72rem); margin: 0 auto; }
.admin-login { display: grid; grid-template-columns: minmax(0, 1fr); justify-items: center; min-height: 100dvh; padding: 8vh 1rem 0; text-align: center; }
.admin-login h1 { min-width: 0; width: min(100%, 42rem); margin: 0 0 1.5rem; line-height: 1; }
.admin-login h1 > img { display: block; width: 100%; height: auto; }
.admin-login form { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .75rem 1rem; width: min(100%, 43rem); }
.admin-login label { display: grid; grid-template-columns: 10rem minmax(0, 1fr); align-items: center; gap: 1rem; text-align: left; }
.admin-login label:nth-of-type(1) { grid-column: 1; grid-row: 1; }
.admin-login label:nth-of-type(2) { grid-column: 1; grid-row: 2; }
.admin-login label span { white-space: nowrap; }
.admin-login input { box-sizing: border-box; width: 100%; min-height: 2.75rem; border: 2px solid #111; background: #fff; }
.admin-login .cf-turnstile { grid-column: 1 / -1; grid-row: 3; justify-self: center; }
.admin-login button { grid-column: 2; grid-row: 1 / 3; justify-self: end; background: #fff; font-size: 1.3rem; white-space: nowrap; }
.admin-login__warning { position: relative; display: flex; flex-direction: column; justify-content: flex-end; width: min(100%, 49rem); aspect-ratio: 960 / 490; margin-top: .75rem; padding: .5rem 1rem; color: #fff; text-shadow: -2px -2px #111, 2px -2px #111, -2px 2px #111, 2px 2px #111; }
.admin-login__warning svg { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.admin-login__warning strong, .admin-login__warning p { position: relative; }
.admin-login__warning strong { display: block; font-size: clamp(3rem, 8vw, 6rem); line-height: 1; }
.admin-login__warning p { margin: .2rem 0 0; font-size: clamp(.9rem, 2.5vw, 1.25rem); font-weight: 700; }
.admin-quick, .admin-recent, .admin-work-extras, .admin-moderation { display: grid; gap: 1rem; margin: 2rem 0; }
.admin-quick h2, .admin-recent h2, .admin-work-extras h2 { margin: 0; }
.admin-recent .admin-card { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem 1.3rem; }
.admin-recent .admin-card strong { font-size: 1.15rem; }
.admin-recent .admin-card a { margin-left: auto; }
.admin-link-list, .admin-preview-list { display: flex; flex-wrap: wrap; gap: 1rem; }
.admin-link-list .admin-card { display: grid; gap: .45rem; min-width: min(100%, 20rem); overflow-wrap: anywhere; }
.admin-link-list .admin-card strong { font-size: 1.1rem; }
.admin-preview-list .admin-card { display: grid; gap: .4rem; justify-items: center; }
.admin-preview-list img { width: 8rem; height: 10rem; object-fit: contain; background: #f4f4f4; }
.admin-work-extras .admin-editor { border: 1px solid #bbb; }
.admin-moderation .admin-card { display: grid; gap: .65rem; overflow-wrap: anywhere; }
.admin-moderation .admin-card strong { font-size: 1.05rem; }
.admin-moderation .admin-card header { display: flex; justify-content: space-between; gap: 1rem; }
.admin-moderation .admin-card form { display: flex; max-width: none; flex-wrap: wrap; align-items: end; gap: .5rem; }
.admin-moderation .admin-card form label { flex: 1 1 15rem; }
.admin-moderation__reply { padding: .8rem; border-left: .3rem solid #418fc7; background: #f2f9fc; }
.admin-social-card .admin-social-name { display: flex; align-items: center; gap: .55rem; font-size: 1.2rem; }
.admin-social-card { display: grid; gap: .85rem; min-width: 0; }
.admin-social-card .admin-social-card__form { display: grid; grid-template-columns: minmax(0, 1fr) 7rem auto auto; align-items: end; gap: .85rem; max-width: none; }
.admin-social-card__form label { display: grid; gap: .35rem; min-width: 0; }
.admin-social-card__form input:not([type="checkbox"]) { width: 100%; min-width: 0; min-height: 2.75rem; }
.admin-social-card__form .admin-social-card__enabled { display: flex; align-items: center; gap: .4rem; min-height: 2.75rem; white-space: nowrap; }
.admin-social-card__enabled input { width: 1.25rem; height: 1.25rem; min-height: 0; padding: 0; }
.admin-social-card__form button { align-self: end; min-height: 2.75rem; white-space: nowrap; }
.admin-social-card .admin-social-card__delete { display: flex; justify-content: flex-end; max-width: none; }
.admin-social-name .social-link { width: 2.5rem; height: 2.5rem; flex: 0 0 2.5rem; }
.admin-social-name .social-link svg { width: 1.6rem; height: 1.6rem; }
@media (max-width: 720px) {
  .admin-header { display: block; padding: 0; }
  .admin-header .admin-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; }
  .admin-actions a { min-height: 3.5rem; border-width: 0 1px 1px 0; }
  .admin-exit { display: inline-block; margin: .55rem; vertical-align: top; }
  .admin-main { width: calc(100% - 1rem); margin: .5rem auto; }
  .admin-login { padding-top: 6vh; }
  .admin-login h1 { width: 100%; }
  .admin-login form { grid-template-columns: minmax(0, 1fr); width: 100%; }
  .admin-login label { grid-template-columns: 1fr; gap: .3rem; }
  .admin-login label:nth-of-type(1), .admin-login label:nth-of-type(2), .admin-login .cf-turnstile, .admin-login button { grid-column: 1; grid-row: auto; }
  .admin-login__warning { min-height: 13rem; }
  .admin-recent .admin-card { display: grid; }
  .admin-recent .admin-card a { margin-left: 0; }
  .admin-moderation .admin-card header { flex-wrap: wrap; }
  .admin-social-card .admin-social-card__form { grid-template-columns: minmax(0, 1fr) minmax(5rem, 7rem); }
}
@media (max-width: 480px) {
  .admin-social-card .admin-social-card__form { grid-template-columns: minmax(0, 1fr); }
}

/* Teacher and work management follow the design sheets' compact action layout. */
.admin-content-collection { margin: 1.5rem 0 3rem; }
.admin-content-collection__heading, .admin-content-collection__heading-actions { display: flex; align-items: end; justify-content: space-between; flex-wrap: wrap; gap: .75rem; }
.admin-content-collection__heading { margin-bottom: 1.25rem; padding-bottom: .85rem; border-bottom: 2px solid #111; }
.admin-content-collection__heading h2 { margin: .1rem 0 0; font-size: clamp(1.45rem, 2.4vw, 2rem); }
.admin-content-collection__eyebrow { margin: 0; color: #596367; font-size: .78rem; font-weight: 700; letter-spacing: .17em; }
.admin-content-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.admin-content-card { position: relative; display: grid; grid-template-columns: 5rem minmax(0, 1fr); align-items: start; gap: 1rem; min-width: 0; padding: 1.2rem 4.3rem 1.2rem 1.2rem; border: 2px solid #252525; border-radius: .35rem; background: #fff; }
.admin-content-card__image { width: 5rem; height: 5rem; border: 1px solid #aeb7b9; object-fit: cover; background: #f2f5f5; }
.admin-content-card__image--empty { display: grid; place-items: center; color: #708286; font-size: 2rem; }
.admin-content-card__body { min-width: 0; }
.admin-content-card__title { display: flex; align-items: baseline; flex-wrap: wrap; gap: .35rem .6rem; }
.admin-content-card__title h3 { margin: 0; font-size: clamp(1.15rem, 1.65vw, 1.5rem); overflow-wrap: anywhere; }
.admin-status { padding: .15rem .45rem; border-radius: .25rem; background: #e4e7e8; font-size: .75rem; white-space: nowrap; }
.admin-content-card__subtitle, .admin-content-card__meta { margin: .3rem 0; color: #424b50; overflow-wrap: anywhere; }
.admin-content-card__meta { font-size: .9rem; }
.admin-content-card__actions { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .85rem; }
.admin-content-card__actions a { display: inline-flex; align-items: center; min-height: 2.5rem; padding: .35rem .7rem; border-radius: .25rem; background: #e4e5e6; font-weight: 700; text-decoration: none; }
.admin-content-card__actions a:hover, .admin-content-card__actions a:focus-visible { background: #c3f5fb; }
.admin-bomb-delete { position: absolute; top: 1rem; right: 1rem; display: grid; place-items: center; width: 2.8rem; height: 2.8rem; border-radius: 50%; color: #202124; }
.admin-bomb-delete svg { width: 2.5rem; height: 2.5rem; }
.admin-bomb-delete:hover, .admin-bomb-delete:focus-visible { background: #ffded7; }
.admin-empty { padding: 2rem; border: 1px dashed #9ba8aa; background: #f8fbfb; }
.admin-quick-create { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem 1rem; margin-bottom: 2rem; padding: 1.25rem; border: 1px solid #b8c2c4; border-radius: .35rem; background: #fbfcfc; scroll-margin-top: 1rem; }
.admin-quick-create h3 { grid-column: 1 / -1; margin: 0; font-size: 1.3rem; }
.admin-quick-create label { display: grid; align-content: start; gap: .3rem; min-width: 0; font-weight: 700; }
.admin-quick-create input, .admin-quick-create select { width: 100%; min-width: 0; min-height: 2.7rem; padding: .45rem .6rem; border: 1px solid #9ba8aa; border-radius: .2rem; background: #fff; font: inherit; }
.admin-quick-create input[type="file"] { padding: .35rem; }
.admin-quick-create small { color: #526166; font-size: .8rem; font-weight: 400; }
.admin-quick-create__wide { grid-column: 1 / -1; }
.admin-quick-create__actions { grid-column: 1 / -1; display: flex; align-items: center; justify-content: end; flex-wrap: wrap; gap: .6rem; }
.admin-quick-create__actions button { min-height: 2.7rem; padding: .5rem 1rem; border: 0; border-radius: .25rem; background: #9a4d41; color: #fff; font: inherit; cursor: pointer; }
.admin-quick-create__actions .admin-reset { border: 1px solid #555; background: #fff; color: #111; }
.admin-quick-create__actions a { padding: .5rem; }
.admin-quick-create__actions button:disabled { opacity: .55; cursor: not-allowed; }
.admin-quick-create [aria-invalid="true"] { border-color: #a33025; }
.admin-editor__actions { grid-column: 1 / -1; display: flex; justify-content: end; flex-wrap: wrap; gap: .65rem; align-items: center; }
.admin-editor__actions button, .admin-inline-actions button { min-width: 5.25rem; }
.admin-cancel, .admin-editor .admin-reset, .admin-work-link .admin-reset { display: inline-flex; justify-content: center; align-items: center; min-height: 2.75rem; padding: .6rem 1rem; border: 1px solid #555; border-radius: .25rem; background: #fff; color: #111; text-decoration: none; cursor: pointer; }
.admin-cancel:hover, .admin-editor .admin-reset:hover, .admin-work-link .admin-reset:hover { background: #e8f8fa; }
.admin-work-extras__section { display: grid; gap: 1rem; scroll-margin-top: 2rem; }
.admin-work-extras__section > p { margin: 0; }
.admin-link-list .admin-work-link { flex: 1 1 22rem; max-width: none; }
.admin-work-link form { max-width: none; }
.admin-work-link form + form { margin-top: .35rem; }
.admin-work-link input, .admin-work-link select { width: 100%; min-width: 0; border: 1px solid #9ba8aa; border-radius: .2rem; }
.admin-inline-actions { display: flex; justify-content: end; gap: .6rem; }
.admin-work-link .admin-text-delete { padding: .35rem 0; background: transparent; color: #8e271e; text-decoration: underline; }
.admin-sale-columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.25rem; align-items: start; }
.admin-sale-columns > section { display: grid; gap: .8rem; min-width: 0; padding: 1rem; border: 1px solid #b7c1c3; background: #fbfdfd; }
.admin-work-link__heading { display: flex; align-items: center; gap: .6rem; }
.admin-work-link__heading img, .admin-work-link__heading .link-icon-fallback { width: 2.5rem; height: 2.5rem; object-fit: cover; }
.admin-work-link__heading small { margin-left: auto; color: #536166; }
.admin-link-fetch-row { display: flex; justify-content: end; }
.admin-link-create { margin-top: .8rem; }
.admin-sale-state { padding: .55rem .75rem; background: #eee; }
.admin-preview-order-form { display: grid; gap: 1rem; max-width: none; }
.admin-preview-list [data-preview-id] { cursor: grab; }
.admin-preview-list [data-preview-id].is-dragging { opacity: .4; }
.admin-preview-staging { display: grid; grid-template-columns: repeat(auto-fill,minmax(9rem,1fr)); gap: .75rem; grid-column: 1 / -1; }
.admin-preview-staged { display: grid; gap: .35rem; padding: .5rem; border: 1px dashed #7e8b8e; background: #fff; cursor: grab; }
.admin-preview-staged img { width: 100%; height: 10rem; object-fit: contain; background: #f4f4f4; }
.admin-preview-staged span { overflow-wrap: anywhere; font-size: .8rem; }
.admin-cleanup-list { display: grid; grid-template-columns: repeat(auto-fill,minmax(18rem,1fr)); gap: .8rem; margin-top: 1rem; }
.admin-cleanup-list .admin-card { display: grid; grid-template-columns: 6rem 1fr; gap: .75rem; }
.admin-cleanup-list img { width: 6rem; height: 6rem; object-fit: contain; background: #eee; }
.admin-cleanup-list .admin-card > div { display: grid; align-content: center; }
@media (max-width: 800px) {
  .admin-content-cards { grid-template-columns: 1fr; }
  .admin-sale-columns { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .admin-quick-create { grid-template-columns: 1fr; padding: .85rem; }
  .admin-content-card { grid-template-columns: 3.5rem minmax(0, 1fr); gap: .7rem; padding: .85rem 3.2rem .85rem .85rem; }
  .admin-content-card__image { width: 3.5rem; height: 3.5rem; }
  .admin-bomb-delete { top: .65rem; right: .4rem; }
  .admin-content-card__actions a { font-size: .9rem; }
}
