/* Fully local: system fonts, CSS artwork and inline SVG symbols. */
:root {
  --paper:#f7f7f4;
  --white:#fff;
  --ink:#00537f;
  --text:#243c4b;
  --muted:#6f6c4f;
  --line:#dedfd9;
  --blue:#00537f;
  --blue-dark:#003e60;
  --red:#e30613;
  --brown:#6f6c4f;
  --blue-soft:#e7eff4;
  --neutral-soft:#efeee8;
  --accent-soft:#ffdde0;
  --radius:18px;
  --shadow:0 5px 25px #00537f08;
  color-scheme:light;
  font-family:Inter,"Segoe UI",Arial,sans-serif;
  color:var(--ink);
  background:var(--paper);
  font-synthesis:none;
}
* {
  box-sizing:border-box;
}
html {
  scroll-padding-top:28px;
}
body {
  margin:0;
  font-size:15px;
  line-height:1.6;
}
a {
  color:inherit;
  text-decoration:none;
}
button,input,select,textarea {
  font:inherit;
}
button,a,input,textarea,select {
  -webkit-tap-highlight-color:transparent;
}
button {
  cursor:pointer;
}
button:disabled {
  cursor:not-allowed;
  opacity:.45;
}
h1,h2,h3,p {
  margin:0;
}
h1,h2,h3 {
  line-height:1.16;
  letter-spacing:-.035em;
}
button,input,select,textarea {
  border-radius:10px;
}
input,select,textarea {
  width:100%;
  border:1px solid #cbd3d8;
  background:#fff;
  padding:12px 14px;
  color:var(--ink);
  min-height:46px;
}
textarea {
  resize:vertical;
}
input[type=checkbox] {
  width:20px;
  min-height:20px;
  height:20px;
  flex-shrink:0;
  accent-color:var(--blue);
}
input[type=file] {
  padding:16px;
  background:var(--paper);
}
input::placeholder {
  color:var(--muted);
}
label {
  font-weight:600;
}
button {
  border:0;
}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible {
  outline:3px solid var(--blue);
  outline-offset:4px;
}
::selection {
  background:var(--accent-soft);
  color:var(--ink);
}
.container {
  max-width:1376px;
  width:calc(100% - 112px);
  margin-inline:auto;
}
.icon {
  width:22px;
  height:22px;
  stroke:currentColor;
  fill:none;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
  flex-shrink:0;
  vertical-align:middle;
}
.dots {
  stroke-width:3;
}
.svg-symbols {
  position:absolute;
  width:0;
  height:0;
  overflow:hidden;
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
.skip-link {
  position:fixed;
  top:-100px;
  left:12px;
  z-index:100;
  background:var(--blue);
  color:#fff;
  padding:12px;
}
.skip-link:focus {
  top:10px;
}
.site-header {
  border-bottom:1px solid var(--line);
  background:var(--paper);
}
.header-inner {
  max-width:1488px;
  padding:23px 56px;
  margin:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  min-height:95px;
}
.brand {
  display:flex;
  align-items:center;
  gap:11px;
  font-size:26px;
  font-weight:780;
  letter-spacing:-1.4px;
}
.brand-symbol {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  position:relative;
  width:39px;
  height:39px;
  border-radius:12px;
  background:var(--blue);
  color:var(--accent-soft);
  font-size:31px;
  line-height:1;
  font-weight:800;
  padding-bottom:6px;
  letter-spacing:-4px;
  padding-right:4px;
}
.brand-symbol>span {
  position:absolute;
  font-size:16px;
  right:1px;
  top:0;
  letter-spacing:0;
}
.brand-dot {
  color:var(--red);
}
.header-note {
  display:flex;
  align-items:center;
  gap:9px;
  font-size:12px;
  color:var(--muted);
}
.status-dot {
  height:7px;
  width:7px;
  background:var(--red);
  border-radius:50%;
}
.header-link {
  display:flex;
  align-items:center;
  gap:14px;
  font-weight:600;
  font-size:13px;
}
.header-link .icon {
  width:17px;
}
.eyebrow {
  font-size:11px;
  font-weight:750;
  letter-spacing:1.8px;
  line-height:1.5;
}
.eyebrow.muted {
  color:var(--muted);
}
.hero {
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:60px;
  align-items:center;
  padding-top:65px;
  padding-bottom:65px;
}
.hero .eyebrow {
  display:flex;
  align-items:center;
  gap:9px;
}
.tiny-star {
  font-size:23px;
  color:var(--red);
  line-height:1;
}
.hero h1 {
  font-size:clamp(50px,5.65vw,83px);
  font-weight:750;
  line-height:1.04;
  letter-spacing:-4px;
  margin:20px 0;
}
.hero h1>span {
  position:relative;
  z-index:0;
}
.hero h1>span:after {
  content:"";
  position:absolute;
  bottom:2px;
  left:-3px;
  right:-6px;
  height:17px;
  background:var(--accent-soft);
  z-index:-1;
  transform:rotate(-3deg);
  border-radius:50%;
}
.hero-description {
  color:var(--muted);
  font-size:15px;
  line-height:1.85;
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:22px;
  padding:13px 21px;
  min-height:47px;
  font-size:13px;
  font-weight:650;
  border-radius:9px;
  line-height:1.4;
  text-align:center;
  border:1px solid transparent;
}
.primary {
  background:var(--blue);
  color:#fff;
}
.primary:hover {
  background:var(--blue-dark);
}
.secondary {
  border-color:var(--line);
  background:#fff;
  color:var(--ink);
}
.secondary:hover {
  background:var(--blue-soft);
}
.danger {
  background:#9b3733;
  color:#fff;
}
.hero-cta {
  margin-top:27px;
}
.hero-cta .icon {
  width:18px;
}
.hero-facts {
  display:flex;
  align-items:center;
  gap:18px;
  color:var(--muted);
  font-size:11px;
  margin-top:30px;
  flex-wrap:wrap;
}
.hero-facts strong {
  color:var(--ink);
  font-size:12px;
}
.fact-divider {
  height:11px;
  width:1px;
  background:#c9ced0;
}
.hero-visual {
  height:350px;
  position:relative;
  background:var(--blue-soft);
  border-radius:22px;
  isolation:isolate;
  overflow:hidden;
}
.visual-grid {
  position:absolute;
  inset:0;
  background-image:linear-gradient(#9ab6c333 1px,transparent 1px),linear-gradient(90deg,#9ab6c333 1px,transparent 1px);
  background-size:37px 37px;
  mask-image:linear-gradient(135deg,#000,transparent);
}
.visual-note {
  position:absolute;
  top:21px;
  left:24px;
  font-size:10px;
  letter-spacing:2px;
  font-weight:700;
  color:var(--blue);
}
.orbit-ring {
  border:1px solid #acc4d0;
  position:absolute;
  border-radius:50%;
  width:295px;
  height:295px;
  left:calc(50% - 147px);
  top:29px;
}
.ring-two {
  transform:rotate(-32deg) scaleX(.53);
}
.poster-star {
  position:absolute;
  font-family:Arial,sans-serif;
  font-size:290px;
  font-weight:700;
  line-height:1;
  left:calc(50% - 118px);
  top:26px;
  color:var(--blue);
  transform:rotate(-12deg);
}
.visual-sticker {
  position:absolute;
  z-index:2;
  font-size:21px;
  font-weight:700;
  line-height:1.17;
  letter-spacing:-.7px;
  box-shadow:0 5px 16px #00537f14;
}
.sticker-top {
  top:62px;
  left:32px;
  padding:21px 58px 23px 22px;
  background:#f2e9de;
  transform:rotate(-10deg);
  border-radius:7px;
}
.sticker-top span {
  position:absolute;
  right:17px;
  top:20px;
  font-size:31px;
  font-weight:400;
}
.sticker-bottom {
  right:26px;
  bottom:52px;
  padding:22px 28px;
  background:#fff;
  transform:rotate(8deg);
  border-radius:7px;
}
.visual-caption {
  position:absolute;
  bottom:20px;
  left:25px;
  font-size:9px;
  letter-spacing:1.8px;
  font-weight:700;
  color:var(--blue);
}
.visual-spark {
  position:absolute;
  right:36px;
  top:32px;
  font-size:56px;
  line-height:1;
  color:var(--red);
}
.catalog {
  border-top:1px solid var(--line);
  padding-top:38px;
}
.catalog-heading {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:26px;
}
.catalog-heading h2 {
  font-size:31px;
  font-weight:700;
  margin-top:8px;
  letter-spacing:-1.1px;
}
.catalog-hint {
  font-size:12px;
  color:var(--muted);
  padding-bottom:3px;
}
.catalog-tools {
  display:flex;
  gap:20px;
  justify-content:space-between;
  align-items:center;
}
.search-form {
  display:flex;
  align-items:center;
  gap:11px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:10px;
  padding:3px 6px 3px 17px;
  flex:1;
  max-width:604px;
  min-width:0;
}
.search-form>.icon {
  width:19px;
  color:var(--muted);
}
.search-form input {
  border:0;
  background:transparent;
  padding:10px 0;
  font-size:13px;
  min-width:0;
  min-height:41px;
}
.search-form input:focus-visible {
  outline-offset:1px;
}
.search-submit {
  font-size:11px;
  padding:10px;
  background:var(--blue-soft);
  color:var(--blue);
  border-radius:7px;
}
.view-switch {
  display:flex;
  align-items:center;
  gap:3px;
  padding:4px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--neutral-soft);
}
.view-switch>a {
  display:flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  padding:10px 13px;
  border-radius:7px;
  white-space:nowrap;
  color:var(--muted);
  min-height:40px;
}
.view-switch .icon {
  width:16px;
  height:16px;
}
.view-switch>a.active {
  background:#fff;
  color:var(--blue);
  box-shadow:0 2px 5px #00537f0a;
}
.category-nav {
  display:flex;
  gap:8px;
  overflow-x:auto;
  padding:21px 2px 18px;
  scrollbar-width:thin;
  scrollbar-color:#b8c5cd transparent;
}
.category-chip {
  display:flex;
  align-items:center;
  gap:7px;
  white-space:nowrap;
  font-size:10px;
  font-weight:600;
  min-height:44px;
  padding:7px 11px;
  border:1px solid var(--line);
  border-radius:30px;
  background:#fff;
}
.category-chip>.icon {
  width:15px;
  height:15px;
}
.category-chip>span {
  font-size:9px;
  color:var(--muted);
  margin-left:1px;
}
.category-chip:hover {
  border-color:var(--blue);
}
.category-chip.selected {
  background:var(--blue);
  color:#fff;
  border-color:var(--blue);
}
.category-chip.selected>span {
  color:#e7eff4;
}
.category-section {
  padding-top:27px;
  scroll-margin-top:18px;
}
.row-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  margin-bottom:17px;
}
.row-heading>div:first-child {
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.row-heading h3 {
  font-size:23px;
  font-weight:680;
  letter-spacing:-.65px;
}
.category-icon {
  display:flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  border-radius:10px;
  background:var(--art-bg);
  color:var(--art-ink);
}
.category-icon .icon {
  width:20px;
  height:20px;
}
.row-count {
  color:var(--muted);
  font-size:10px;
  margin-left:4px;
}
.row-controls {
  display:flex;
  gap:8px;
}
.icon-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#fff;
  color:var(--ink);
  border:1px solid var(--line);
  height:37px;
  width:37px;
  border-radius:50%;
  flex-shrink:0;
}
.icon-button .icon {
  width:17px;
}
.icon-button:hover {
  background:var(--blue-soft);
}
.offers-row {
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:calc((100% - 72px)/3.55);
  gap:20px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-padding-inline:1px;
  overscroll-behavior-x:contain;
  padding:4px 2px 18px;
  scrollbar-width:thin;
  scrollbar-color:#c5cfd5 transparent;
}
.theme-sport {
  --art-bg:#e9ecc3;
  --art-ink:#5d7142;
  --art-light:#d2dba3;
}
.theme-art {
  --art-bg:#eddbec;
  --art-ink:#84658d;
  --art-light:#dac1db;
}
.theme-music {
  --art-bg:#f5dec7;
  --art-ink:#a57246;
  --art-light:#ebc7a5;
}
.theme-tech {
  --art-bg:#d3e5ee;
  --art-ink:#507c91;
  --art-light:#b6d0df;
}
.theme-games {
  --art-bg:#dce1f4;
  --art-ink:#666c9f;
  --art-light:#bcc4e4;
}
.theme-social {
  --art-bg:#f3e7bc;
  --art-ink:#97803a;
  --art-light:#e5d794;
}
.theme-misc {
  --art-bg:#dce9d6;
  --art-ink:#627e55;
  --art-light:#bfd3b5;
}
.art-icon {
  width:84px;
  height:84px;
  stroke-width:1;
  transform:rotate(-12deg);
  z-index:1;
}
.art-orbit {
  position:absolute;
  width:205px;
  height:205px;
  border-radius:50%;
  border:1px solid currentColor;
  opacity:.18;
  right:-36px;
  bottom:-102px;
}
.art-orbit:before {
  content:"";
  position:absolute;
  inset:-29px;
  border:1px solid currentColor;
  border-radius:50%;
}
.offers-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:22px;
}
.grid-heading {
  font-size:12px;
  color:var(--muted);
  padding:18px 0;
}
.search-summary {
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:10px;
  font-size:13px;
  padding:20px 0 0;
}
.search-summary>a {
  text-decoration:underline;
}
.empty-state {
  text-align:center;
  padding:60px 20px;
}
.empty-state>.icon {
  width:40px;
  height:40px;
  margin-bottom:18px;
  color:var(--muted);
}
.empty-state h3 {
  font-size:24px;
  margin-bottom:13px;
}
.empty-state p {
  color:var(--muted);
  margin:10px 0 25px;
}
.catalog-end {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:17px;
  text-align:left;
  margin-top:35px;
  padding:40px;
  border-top:1px solid var(--line);
  font-size:12px;
  color:var(--muted);
}
.catalog-end>.icon {
  width:30px;
  height:30px;
  color:var(--red);
}
.catalog-end strong {
  font-weight:600;
  color:var(--ink);
}
.site-footer {
  border-top:1px solid var(--line);
  max-width:1488px;
  margin:auto;
  padding:30px 56px 35px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  color:var(--muted);
  font-size:10px;
}
.site-footer>div {
  display:flex;
  align-items:center;
  gap:22px;
  flex-wrap:wrap;
}
.footer-brand {
  font-size:17px;
  font-weight:750;
  letter-spacing:-.8px;
  color:var(--ink);
}
.site-footer a:last-child:hover {
  text-decoration:underline;
}
.demo-label {
  padding:4px 8px;
  background:var(--neutral-soft);
  border-radius:5px;
  font-size:9px;
}
.dialog-open {
  overflow:hidden;
}
.offer-dialog {
  border:0;
  border-radius:24px;
  padding:0;
  width:min(660px,calc(100% - 32px));
  max-height:calc(100dvh - 40px);
  background:var(--paper);
  color:var(--ink);
  box-shadow:0 24px 100px #003e6040;
  overscroll-behavior:contain;
}
.offer-dialog::backdrop {
  background:#15334799;
}
.dialog-close {
  position:absolute;
  right:16px;
  top:16px;
  z-index:3;
  background:#ffffffde;
  width:42px;
  height:42px;
}
.detail-art {
  height:200px;
  display:flex;
  justify-content:center;
  align-items:center;
  position:relative;
  background:var(--art-bg);
  color:var(--art-ink);
  overflow:hidden;
}
.detail-art .art-icon {
  width:105px;
  height:105px;
}
.detail-art-note {
  position:absolute;
  bottom:20px;
  left:25px;
  font-size:9px;
  letter-spacing:1.8px;
}
.detail-copy {
  padding:30px 35px 34px;
}
.detail-category {
  display:flex;
  align-items:center;
  gap:8px;
  font-size:11px;
  font-weight:600;
  color:var(--muted);
}
.detail-category>.icon {
  width:17px;
  height:17px;
}
.detail-copy h1 {
  font-size:34px;
  margin:15px 0 23px;
  overflow-wrap:anywhere;
}
.full-description {
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  line-height:1.9;
}
.detail-info {
  display:flex;
  align-items:center;
  gap:15px;
  margin-top:28px;
  padding:20px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.detail-info span {
  display:block;
  font-size:11px;
  color:var(--muted);
}
.detail-info strong {
  font-size:14px;
}
.teacher-info {
  font-size:12px;
  margin-top:14px;
}
.detail-note {
  font-size:11px;
  color:var(--muted);
  margin-top:20px;
}
.detail-page {
  max-width:760px;
  padding-top:35px;
  padding-bottom:45px;
}
.detail-page .offer-detail {
  border:1px solid var(--line);
  border-radius:20px;
  overflow:hidden;
  margin:20px 0 28px;
  background:#fff;
}
.back-link {
  display:inline-flex;
  align-items:center;
  gap:9px;
  font-size:13px;
  min-height:44px;
}
.back-link .icon {
  width:18px;
}
.error-page {
  padding-block:80px;
  min-height:65vh;
}
.error-page h1 {
  font-size:36px;
  margin:15px 0;
}
.error-page .button {
  margin-top:28px;
}
/* Text-first cards: one local SVG symbol, reused as a quiet watermark. */
.offer-card {
  display:flex;
  position:relative;
  isolation:isolate;
  scroll-snap-align:start;
  min-width:0;
  min-height:356px;
  border:1px solid var(--line);
  border-top:4px solid var(--art-bg);
  border-radius:var(--radius);
  background:var(--white);
  overflow:hidden;
  box-shadow:var(--shadow);
}
.offer-card:hover {
  border-color:var(--blue);
}
.card-watermark {
  position:absolute;
  width:170px;
  height:170px;
  right:-16px;
  bottom:32px;
  color:var(--blue);
  opacity:.055;
  stroke-width:1;
  transform:rotate(-12deg);
  pointer-events:none;
  z-index:-1;
}
.card-content {
  display:flex;
  flex-direction:column;
  width:100%;
  min-width:0;
  padding:22px;
}
.card-category {
  align-self:flex-start;
  max-width:100%;
  border-radius:6px;
  background:var(--art-bg);
  color:var(--blue-dark);
  font-size:11px;
  font-weight:650;
  line-height:1.5;
  padding:4px 8px;
  margin-bottom:15px;
}
.card-content h3 {
  font-size:22px;
  letter-spacing:-.6px;
  line-height:1.22;
  overflow-wrap:anywhere;
  hyphens:auto;
}
.card-meta {
  display:flex;
  flex-direction:column;
  gap:10px;
  margin:22px 0 15px;
  color:var(--text);
}
.card-meta>div {
  display:grid;
  grid-template-columns:17px minmax(0,1fr);
  column-gap:9px;
  align-items:start;
}
.card-meta .icon {
  width:16px;
  height:16px;
  grid-row:span 2;
  margin-top:2px;
  color:var(--brown);
}
.card-meta dt {
  color:var(--muted);
  font-size:10px;
  line-height:1.5;
}
.card-meta dd {
  margin:0;
  font-size:13px;
  font-weight:600;
  line-height:1.4;
  overflow-wrap:anywhere;
}
.card-description {
  color:var(--text);
  font-size:12px;
  line-height:1.8;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  margin-bottom:18px;
}
.card-bottom {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  font-size:11px;
  font-weight:650;
  padding-top:16px;
  border-top:1px solid var(--line);
  margin-top:auto;
}
.card-bottom .icon {
  width:17px;
  height:17px;
}
.full-description {
  color:var(--text);
}
.day-filter-bar {
  display:flex;
  align-items:center;
  gap:15px;
  flex-wrap:wrap;
  margin-top:18px;
}
.day-filter-bar>p {
  font-size:12px;
  color:var(--muted);
}
.today-form {
  display:flex;
  align-items:center;
  gap:12px;
}
.today-toggle {
  display:flex;
  align-items:center;
  position:relative;
  gap:10px;
  cursor:pointer;
  min-height:48px;
  padding:6px 14px 6px 10px;
  background:var(--white);
  border:1px solid var(--line);
  border-radius:10px;
  font-size:13px;
  color:var(--blue);
}
.today-toggle input {
  position:absolute;
  width:100%;
  height:100%;
  inset:0;
  margin:0;
  opacity:0;
  cursor:pointer;
}
.switch-track {
  width:38px;
  height:23px;
  border-radius:20px;
  background:#b2b8b9;
  flex-shrink:0;
  pointer-events:none;
}
.switch-track:after {
  content:"";
  display:block;
  width:17px;
  height:17px;
  margin:3px;
  border-radius:50%;
  background:var(--white);
}
.today-toggle input:checked+.switch-track {
  background:var(--blue);
}
.today-toggle input:checked+.switch-track:after {
  transform:translateX(15px);
}
.today-toggle input:focus-visible+.switch-track {
  outline:3px solid var(--blue);
  outline-offset:4px;
}
.auto-submit .today-submit {
  display:none;
}
/* Administration */
.admin-nav {
  display:flex;
  align-items:center;
  gap:25px;
  font-size:13px;
  font-weight:600;
}
.admin-nav a:hover {
  text-decoration:underline;
}
.admin-content {
  padding-top:45px;
  padding-bottom:65px;
  min-height:75vh;
}
.admin-content h1 {
  font-size:36px;
  margin:8px 0 16px;
}
.admin-content h2 {
  font-size:24px;
  margin:20px 0 15px;
}
.admin-content>p,.page-heading p {
  color:var(--muted);
}
.narrow {
  max-width:850px;
}
.page-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
}
.stat-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  margin:28px 0;
}
.stat-grid>div {
  display:flex;
  flex-direction:column;
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  padding:22px;
}
.stat-grid strong {
  font-size:30px;
  line-height:1.2;
}
.stat-grid span {
  font-size:12px;
  color:var(--muted);
  margin-top:7px;
}
.admin-toolbar {
  display:flex;
  justify-content:space-between;
  gap:15px;
  align-items:center;
  flex-wrap:wrap;
  margin-bottom:20px;
}
.filter-form,.button-group {
  display:flex;
  gap:10px;
  align-items:center;
}
.filter-form input {
  max-width:250px;
}
.filter-form select {
  width:auto;
}
.table-scroll {
  width:100%;
  overflow:auto;
  border:1px solid var(--line);
  border-radius:12px;
  background:white;
}
.admin-table {
  width:100%;
  border-collapse:collapse;
  text-align:left;
  font-size:12px;
}
.admin-table th {
  background:var(--blue-soft);
  padding:14px;
  white-space:nowrap;
  font-weight:650;
}
.admin-table td {
  padding:14px;
  border-top:1px solid var(--line);
  vertical-align:middle;
}
.table-title {
  font-size:13px;
  font-weight:650;
  display:block;
  min-width:160px;
}
.table-title:hover {
  text-decoration:underline;
}
.table-actions {
  display:flex;
  align-items:center;
  gap:13px;
  flex-wrap:wrap;
  min-width:230px;
}
.table-actions>a,.text-button {
  font-size:11px;
  font-weight:600;
  text-decoration:underline;
}
.text-button {
  background:transparent;
  color:inherit;
  padding:6px 0;
  min-height:38px;
}
.danger-link {
  color:#a23b34!important;
}
.status-badge {
  display:inline-block;
  font-size:10px;
  line-height:1.5;
  border-radius:30px;
  padding:5px 9px;
  white-space:nowrap;
  font-weight:600;
}
.status-badge.published {
  background:var(--blue-soft);
  color:var(--blue);
}
.status-badge.draft {
  background:#f4e9d3;
  color:#80672e;
}
.result-count {
  font-size:12px;
  margin-bottom:12px;
}
.flash-container {
  max-width:1264px;
  width:calc(100% - 64px);
  margin:22px auto;
}
.flash {
  padding:15px 20px;
  border:1px solid #b4cad8;
  border-radius:10px;
  background:var(--blue-soft);
  font-size:13px;
  margin-bottom:15px;
}
.flash.error {
  border-color:#e7b2a8;
  background:#fff0ec;
  color:#86372f;
}
.flash.info {
  background:#e7eef5;
  border-color:#b7cdda;
}
.flash ul {
  margin:0;
  padding-left:20px;
}
.login-panel {
  max-width:460px;
  margin:60px auto 80px;
  padding:35px;
  border:1px solid var(--line);
  border-radius:20px;
  background:white;
}
.login-panel h1 {
  font-size:31px;
  margin:12px 0 20px;
}
.login-panel>p:not(.eyebrow) {
  color:var(--muted);
  font-size:13px;
}
.stack-form {
  display:flex;
  flex-direction:column;
  gap:11px;
  margin-top:28px;
}
.stack-form label {
  font-size:13px;
}
.stack-form .button {
  margin-top:15px;
}
.login-panel .back-link {
  margin-top:20px;
}
.editor-form {
  margin-top:28px;
}
.editor-form fieldset {
  margin:0 0 25px;
  padding:22px;
  border:1px solid var(--line);
  border-radius:13px;
  background:#fff;
  min-width:0;
}
.editor-form legend {
  font-size:16px;
  font-weight:700;
  padding:0 8px;
}
.editor-form label {
  display:block;
  margin:18px 0 7px;
  font-size:13px;
}
.editor-form .internal-fields {
  background:var(--neutral-soft);
}
.field-note {
  font-size:12px;
  color:var(--muted);
  line-height:1.7;
}
.form-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}
.form-actions {
  display:flex;
  align-items:center;
  gap:15px;
  flex-wrap:wrap;
  margin:28px 0;
}
.form-actions>.danger-link {
  font-size:12px;
  margin-left:auto;
}
.delete-title {
  font-size:24px;
  font-weight:700;
  margin:25px 0!important;
  color:var(--ink)!important;
}
.category-editor {
  margin:25px 0 35px;
}
.category-edit-row {
  display:flex;
  align-items:end;
  gap:12px;
  flex-wrap:wrap;
  border-bottom:1px solid var(--line);
  padding:20px 0;
}
.category-edit-row>div:first-of-type {
  flex:1;
  min-width:220px;
}
.category-edit-row label {
  display:block;
  font-size:12px;
  margin-bottom:6px;
}
.category-edit-row>.position-field {
  width:90px;
}
.category-edit-row .text-button {
  width:100%;
  text-align:left;
  min-height:25px;
}
.import-steps {
  list-style:none;
  margin:30px 0;
  padding:0;
  display:flex;
  gap:12px;
  border-bottom:1px solid var(--line);
}
.import-steps li {
  display:flex;
  gap:7px;
  font-size:12px;
  color:var(--muted);
  padding:12px 10px;
  border-bottom:3px solid transparent;
}
.import-steps li.current {
  color:var(--blue);
  border-color:var(--blue);
  font-weight:700;
}
.upload-panel {
  padding:30px;
  background:#fff;
  border:1px dashed #9bb0bf;
  border-radius:14px;
  margin:30px 0;
}
.upload-panel .button {
  align-self:start;
}
.mapping-field {
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:22px;
  align-items:center;
  margin-top:15px;
}
.mapping-field label {
  margin:0;
}
.notice {
  background:var(--blue-soft);
  border:1px solid var(--line);
  border-radius:12px;
  padding:20px;
  font-size:13px;
  margin-bottom:25px;
}
.notice p {
  margin-top:8px;
}
.preview-card {
  border:1px solid var(--line);
  background:white;
  border-radius:12px;
  padding:22px;
  margin-bottom:20px;
  overflow-wrap:anywhere;
}
.preview-card-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  font-size:11px;
  color:var(--muted);
}
.preview-card h2 {
  font-size:21px;
  margin:16px 0 5px;
}
.preview-card p {
  font-size:13px;
  margin-top:12px;
}
.preview-card .checkbox-label {
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:20px;
  padding-top:17px;
  border-top:1px solid var(--line);
  font-size:13px;
}
.preview-card details {
  font-size:12px;
  margin-top:16px;
}
.preview-card dd {
  white-space:pre-wrap;
}
details summary {
  cursor:pointer;
  font-weight:600;
  min-height:35px;
  padding:7px 0;
}
details dl {
  margin-top:15px;
}
details dt {
  font-weight:650;
  margin-top:12px;
}
details dd {
  margin-left:0;
  overflow-wrap:anywhere;
}
.error-text {
  color:#9a3830;
  font-size:13px;
}
.csv-sample {
  border:1px solid var(--line);
  border-radius:10px;
  padding:10px 20px;
  font-size:12px;
  background:white;
}
@media(min-width:1550px) {
  .hero {
    gap:95px;
  }
  .hero-visual {
    height:370px;
  }
  .offers-row {
    grid-auto-columns:calc((100% - 80px)/4.2);
  }
}
@media(max-width:1150px) {
  .container {
    width:calc(100% - 64px);
  }
  .header-inner {
    padding-inline:32px;
  }
  .hero {
    gap:35px;
  }
  .hero h1 {
    font-size:65px;
  }
  .hero-description {
    font-size:13px;
  }
  .hero-visual {
    height:330px;
  }
  .sticker-top {
    left:19px;
    font-size:18px;
  }
  .sticker-bottom {
    right:17px;
    font-size:19px;
  }
  .catalog-hint {
    display:none;
  }
  .offers-row {
    grid-auto-columns:calc((100% - 45px)/2.65);
  }
  .offers-grid {
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .site-footer {
    padding-inline:32px;
  }
  .header-note {
    display:none;
  }
  .admin-nav {
    gap:16px;
  }
}
@media(max-width:760px) {
  .container {
    width:calc(100% - 40px);
  }
  .header-inner {
    padding:18px 20px;
    min-height:78px;
    gap:14px;
  }
  .brand {
    font-size:23px;
    gap:9px;
  }
  .brand-symbol {
    width:33px;
    height:33px;
    font-size:27px;
    border-radius:10px;
  }
  .brand-symbol>span {
    font-size:13px;
  }
  .header-link {
    font-size:11px;
    gap:7px;
  }
  .header-link>.icon {
    width:15px;
  }
  .hero {
    gap:22px;
    padding-top:37px;
    padding-bottom:35px;
    grid-template-columns:1.2fr 1fr;
  }
  .hero h1 {
    font-size:50px;
    letter-spacing:-2.8px;
    margin:16px 0;
  }
  .hero .eyebrow {
    font-size:9px;
  }
  .hero-description {
    font-size:12px;
  }
  .hero-visual {
    height:270px;
  }
  .poster-star {
    font-size:220px;
    left:calc(50% - 90px);
    top:38px;
  }
  .orbit-ring {
    width:220px;
    height:220px;
    left:calc(50% - 110px);
    top:25px;
  }
  .sticker-top {
    font-size:16px;
    top:53px;
    left:8px;
    padding:18px 35px 18px 15px;
  }
  .sticker-top span {
    font-size:24px;
    right:8px;
  }
  .sticker-bottom {
    font-size:16px;
    right:12px;
    bottom:40px;
    padding:17px;
  }
  .visual-note {
    font-size:8px;
    left:15px;
  }
  .visual-caption {
    font-size:7px;
    left:15px;
  }
  .visual-spark {
    font-size:40px;
    right:15px;
  }
  .hero-cta {
    font-size:11px;
    padding:11px 15px;
    gap:14px;
    margin-top:20px;
  }
  .hero-facts {
    font-size:9px;
    gap:10px;
    margin-top:21px;
  }
  .hero-facts strong {
    font-size:10px;
  }
  .catalog {
    padding-top:27px;
  }
  .catalog-heading h2 {
    font-size:27px;
  }
  .catalog-tools {
    gap:12px;
    flex-wrap:wrap;
  }
  .search-form {
    max-width:none;
    flex-basis:100%;
  }
  .view-switch {
    margin-left:auto;
  }
  .category-nav {
    padding-top:17px;
  }
  .category-chip {
    font-size:11px;
    min-height:44px;
  }
  .row-heading h3 {
    font-size:20px;
  }
  .row-count {
    font-size:10px;
  }
  .offers-row {
    grid-auto-columns:calc((100% - 34px)/2.3);
    gap:16px;
  }
  .category-section {
    padding-top:22px;
  }
  .offers-grid {
    gap:14px;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .site-footer {
    padding:25px 20px;
    flex-direction:column;
    align-items:start;
    gap:18px;
  }
  .site-footer>div {
    gap:15px;
  }
  .admin-content {
    padding-top:30px;
  }
  .admin-content h1 {
    font-size:30px;
  }
  .page-heading {
    align-items:start;
    flex-direction:column;
  }
  .admin-nav {
    font-size:11px;
    gap:12px;
    order:3;
    flex-basis:100%;
    justify-content:center;
    border-top:1px solid var(--line);
    padding-top:12px;
  }
  .admin-page .header-inner {
    flex-wrap:wrap;
  }
  .admin-page .header-inner>form {
    margin-left:auto;
  }
  .stat-grid {
    gap:10px;
  }
  .stat-grid>div {
    padding:15px 12px;
  }
  .stat-grid strong {
    font-size:25px;
  }
  .stat-grid span {
    font-size:10px;
  }
  .filter-form {
    flex-wrap:wrap;
    width:100%;
  }
  .filter-form input {
    max-width:none;
    flex-basis:100%;
  }
  .admin-toolbar {
    gap:20px;
  }
  .form-grid {
    grid-template-columns:1fr;
    gap:0;
  }
  .mapping-field {
    grid-template-columns:1fr;
    gap:5px;
  }
  .import-steps {
    gap:5px;
  }
  .import-steps li {
    font-size:10px;
    padding:10px 6px;
  }
  .import-steps li span {
    max-width:100px;
  }
  .editor-form fieldset {
    padding:16px;
  }
  .flash-container {
    width:calc(100% - 40px);
  }
  .preview-card-heading {
    align-items:start;
    flex-direction:column;
    gap:7px;
  }
}
@media(max-width:500px) {
  .header-link {
    font-size:0;
    gap:0;
  }
  .header-link .icon {
    width:23px;
    height:23px;
  }
  .hero {
    grid-template-columns:1fr;
    padding-top:33px;
    gap:25px;
  }
  .hero-copy {
    position:relative;
  }
  .hero h1 {
    font-size:59px;
    letter-spacing:-3px;
  }
  .hero-description {
    font-size:13px;
    max-width:340px;
  }
  .hero .eyebrow {
    font-size:10px;
  }
  .desktop-break {
    display:none;
  }
  .hero-visual {
    height:205px;
    border-radius:16px;
  }
  .visual-note {
    top:16px;
  }
  .poster-star {
    font-size:205px;
    top:-6px;
    left:calc(50% - 86px);
  }
  .orbit-ring {
    top:-10px;
  }
  .sticker-top {
    left:26px;
    top:44px;
    font-size:16px;
    padding:16px 38px 16px 17px;
  }
  .sticker-bottom {
    right:24px;
    bottom:35px;
    font-size:17px;
    padding:16px 18px;
  }
  .visual-caption {
    bottom:12px;
  }
  .visual-spark {
    right:25px;
    top:17px;
  }
  .hero-facts {
    gap:15px;
    font-size:10px;
    margin-top:22px;
  }
  .hero-facts strong {
    font-size:11px;
  }
  .hero-cta {
    font-size:12px;
    margin-top:20px;
  }
  .catalog-heading {
    margin-bottom:20px;
  }
  .catalog-heading h2 {
    font-size:26px;
  }
  .catalog .eyebrow {
    font-size:9px;
  }
  .catalog-tools {
    gap:14px;
  }
  .view-switch {
    width:100%;
    margin:0;
  }
  .view-switch>a {
    flex:1;
    justify-content:center;
  }
  .search-form {
    padding-left:12px;
  }
  .search-form input {
    font-size:12px;
  }
  .category-nav {
    margin-right:-20px;
    padding-right:20px;
  }
  .category-section {
    padding-top:18px;
  }
  .row-heading {
    gap:8px;
  }
  .row-heading h3 {
    font-size:19px;
  }
  .row-heading>div:first-child {
    gap:8px;
  }
  .row-count {
    flex-basis:100%;
    margin-left:42px;
    margin-top:-5px;
  }
  .row-controls {
    gap:5px;
  }
  .row-controls .icon-button {
    width:35px;
    height:35px;
  }
  .offers-row {
    grid-auto-columns:79%;
    gap:14px;
    margin-right:-20px;
    padding-right:20px;
  }
  .offers-grid {
    gap:12px;
  }
  .offers-grid .art-icon {
    width:62px;
    height:62px;
  }
  .catalog-end {
    padding:30px 0;
    margin-top:25px;
    font-size:11px;
  }
  .detail-copy {
    padding:24px;
  }
  .detail-copy h1 {
    font-size:29px;
  }
  .detail-art {
    height:170px;
  }
  .detail-copy .full-description {
    font-size:14px;
  }
  .detail-info strong {
    font-size:12px;
  }
  .login-panel {
    width:calc(100% - 40px);
    padding:26px;
    margin-top:35px;
  }
  .stat-grid>div {
    padding:13px 10px;
  }
  .button-group {
    flex-wrap:wrap;
  }
  .category-edit-row {
    gap:10px;
  }
  .category-edit-row>div:first-of-type {
    min-width:180px;
  }
  .category-edit-row .position-field {
    width:70px;
  }
  .category-edit-row .button {
    flex-basis:100%;
  }
  .preview-card {
    padding:17px;
  }
  .upload-panel {
    padding:20px;
  }
  .form-actions>.button {
    width:100%;
  }
  .form-actions>.danger-link {
    margin-left:0;
  }
  .admin-content h1 {
    font-size:29px;
  }
  .error-page h1 {
    font-size:30px;
  }
  .brand {
    letter-spacing:-1px;
  }
}
@media(prefers-reduced-motion:reduce) {
  * {
    scroll-behavior:auto!important;
  }
}

/* Compact cards keep the same information in the two-column phone grid. */
@media(max-width:760px) {
  .filter-form { flex-wrap:wrap; }
  .card-content { padding:19px; }
  .card-content h3 { font-size:21px; }
  .row-controls .icon-button { width:44px; height:44px; }
}
@media(max-width:500px) {
  .card-content { padding:20px; }
  .card-content h3 { font-size:23px; }
  .offers-grid .card-content { padding:14px 12px; }
  .offers-grid .card-content h3 { font-size:18px; letter-spacing:-.4px; line-height:1.25; }
  .offers-grid .card-category { font-size:10px; padding:4px 6px; margin-bottom:13px; }
  .offers-grid .card-meta { margin:18px 0; gap:12px; }
  .offers-grid .card-meta>div { column-gap:6px; grid-template-columns:15px minmax(0,1fr); }
  .offers-grid .card-meta .icon { width:15px; height:15px; }
  .offers-grid .card-meta dt { font-size:10px; }
  .offers-grid .card-meta dd { font-size:12px; }
  .offers-grid .card-description { display:none; }
  .offers-grid .card-watermark { width:140px; height:140px; right:-25px; bottom:35px; }
  .offers-grid .card-bottom { font-size:10px; padding-top:13px; gap:4px; }
  .offers-grid .offer-card { min-height:340px; }
  .day-filter-bar { gap:10px; }
  .day-filter-bar>p { font-size:11px; }
  .empty-state h3 { font-size:23px; }
}
