/* Sole NOTICE renderer stylesheet. Customer, preview and admin editor all load this file. */
.notice-panel {
  --notice-panel-base-width: 420px;
  --notice-page-h: 320px;
  --notice-panel-text: #302b3a;
  --notice-panel-muted: rgba(48, 43, 58, 0.74);
  --notice-panel-soft: rgba(48, 43, 58, 0.70);
  --notice-panel-line: rgba(81, 74, 107, 0.26);
  --notice-panel-brand: #514a6b;
  --notice-panel-surface: #fbfafc;
  --notice-font-display: "Cormorant Garamond", "Noto Serif TC", "Songti TC", "STSong", serif;
  --notice-font-tc: "Noto Serif TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
  --notice-panel-pad-top: 34px;
  --notice-panel-pad-x: 30px;
  --notice-panel-pad-bottom: 30px;
  --notice-panel-border-width: 1px;
  --notice-panel-radius: 24px;
  --notice-panel-inner-inset: 7px;
  --notice-panel-inner-radius: 18px;
  --notice-title-size: 30px;
  --notice-title-weight: 700;
  --notice-title-spacing: 0.16em;
  --notice-sub-size: 12px;
  --notice-sub-spacing: 0.34em;
  --notice-content-gap: 14px;
  --notice-content-size-normal: 13.5px;
  --notice-content-size-small: 12.5px;
  --notice-content-size-large: 16px;
  --notice-content-spacing: 0.06em;
  --notice-content-line-height: 2;
  --notice-content-bullet-indent: 1.1em;
  --notice-content-weight: 400;
  --notice-content-bold-weight: 700;
  --notice-pager-size: 12.5px;
  --notice-pager-spacing: 0.14em;
  --notice-close-size: 14px;
  --notice-close-weight: 700;
  --notice-close-spacing: 0.2em;
  --notice-close-height: 48px;
  --notice-export-canvas: #ede9f2;
  --notice-export-margin: 48px;
  --notice-export-page-gap: 28px;
  --notice-export-page-height: 584px;
  --notice-export-title-baseline: 58px;
  --notice-export-sub-baseline: 82px;
  --notice-export-content-top: 116px;
  --notice-export-pager-baseline: 492px;
  --notice-export-close-top: 514px;
  --notice-export-close-baseline: 545px;
  position: relative;
  display: flex;
  flex-direction: column;
  width: min(calc(100vw - 44px), var(--notice-panel-base-width));
  height: auto;
  max-height: min(88vh, 745px);
  overflow: hidden;
  padding: var(--notice-panel-pad-top) var(--notice-panel-pad-x) var(--notice-panel-pad-bottom);
  border: var(--notice-panel-border-width) solid var(--notice-panel-line);
  border-radius: var(--notice-panel-radius);
  background: var(--notice-panel-surface);
  box-shadow: 0 30px 90px rgba(0, 0, 0, 0.4);
  color: var(--notice-panel-text);
  font-family: var(--notice-font-tc);
  font-size: 16px;
  font-style: normal;
  font-weight: var(--notice-content-weight);
  font-variant-numeric: lining-nums;
  letter-spacing: normal;
  line-height: normal;
  text-align: left;
  text-transform: none;
  overflow-wrap: normal;
  word-break: normal;
  white-space: normal;
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
}

.notice-panel::before {
  position: absolute;
  inset: var(--notice-panel-inner-inset);
  border: var(--notice-panel-border-width) solid var(--notice-panel-line);
  border-radius: var(--notice-panel-inner-radius);
  content: "";
  pointer-events: none;
}

.notice-panel h2 {
  margin: 0 0 4px;
  font-family: var(--notice-font-display);
  font-size: var(--notice-title-size);
  font-weight: var(--notice-title-weight);
  letter-spacing: var(--notice-title-spacing);
  text-align: center;
}

.notice-panel .sub {
  margin-bottom: 18px;
  color: var(--notice-panel-soft);
  font-size: var(--notice-sub-size);
  letter-spacing: var(--notice-sub-spacing);
  text-align: center;
}

.notice-body {
  flex: 0 1 var(--notice-page-h);
  min-height: 0;
  overflow-y: auto;
}

.notice-content {
  display: grid;
  align-content: start;
  gap: var(--notice-content-gap);
  color: var(--notice-panel-text);
  font-family: var(--notice-font-tc);
  font-size: var(--notice-content-size-normal);
  letter-spacing: var(--notice-content-spacing);
  line-height: var(--notice-content-line-height);
  text-wrap: pretty;
}

.notice-content .notice-page { display: grid; gap: var(--notice-content-gap); }
.notice-content .notice-page[hidden] { display: none; }
.notice-align-left { text-align: left; }
.notice-align-center { text-align: center; }
.notice-content .notice-line { min-height: 1em; white-space: pre-wrap; }
.notice-content .notice-line:empty::before { content: "\200b"; }
.notice-content .notice-empty-page-anchor { height: var(--notice-content-gap); min-height: var(--notice-content-gap); line-height: var(--notice-content-gap); }
.notice-content .notice-empty-line-anchor { position: relative; top: calc(0px - var(--notice-content-gap)); height: 0; min-height: 0; line-height: var(--notice-content-gap); }
.notice-content .notice-terminal-anchor { position: relative; top: calc(0px - var(--notice-content-gap)); height: 0; min-height: 0; line-height: var(--notice-content-gap); }
.notice-content .notice-bullet { padding-left: var(--notice-content-bullet-indent); text-indent: calc(0px - var(--notice-content-bullet-indent)); }
.notice-content .notice-size-normal { font-size: var(--notice-content-size-normal); }
.notice-content .notice-size-small { font-size: var(--notice-content-size-small); color: var(--notice-panel-muted); }
.notice-content .notice-size-large { font-size: var(--notice-content-size-large); }
.notice-content .notice-bold { font-weight: var(--notice-content-bold-weight); }
.notice-content .notice-italic { font-style: italic; }

.notice-foot {
  flex: none;
  display: grid;
  gap: 20px;
  padding-block: 12px 0;
  background: var(--notice-panel-surface);
}

.notice-pager {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
}

.notice-panel button { color: inherit; }

.notice-nav {
  min-width: 48px;
  min-height: 40px;
  border: var(--notice-panel-border-width) solid var(--notice-panel-line);
  background: transparent;
  color: var(--notice-panel-text);
  font-size: 16px;
}

.notice-nav:disabled { opacity: 0.35; cursor: default; }

.notice-count {
  min-width: 56px;
  color: var(--notice-panel-muted);
  font-size: var(--notice-pager-size);
  letter-spacing: var(--notice-pager-spacing);
  text-align: center;
}

.notice-close {
  width: 100%;
  min-height: var(--notice-close-height);
  padding-block: 12px;
  border: var(--notice-panel-border-width) solid var(--notice-panel-brand);
  background: var(--notice-panel-surface);
  font-size: var(--notice-close-size);
  font-weight: var(--notice-close-weight);
  letter-spacing: var(--notice-close-spacing);
}
