@charset "UTF-8";
/* Scss Document */
:root {
  --_main-font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic UI", Meiryo, system-ui, sans-serif;
  --_sub-font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --_main-font-size: 15px;
  --_main-font-weight: 400;
  --_main-font-color: #1f2937;
  --_main-line-hlight: 1.7;
  --_main-letter-spacing: 0.02em;
  --_main-link-color: inherit;
  --_main-color: #0e7490;
  --_main-color-hover: #155e75;
  --_sub-color: #e6f4f7;
  --_sub-color-hover: #d3ecf1;
  --_bg: #f4f5f7;
  --_surface: #ffffff;
  --_surface-sub: #f9fafb;
  --_border: #e5e7eb;
  --_border-strong: #d1d5db;
  --_text: #1f2937;
  --_text-sub: #6b7280;
  --_text-weak: #9ca3af;
  --_success: #15803d;
  --_danger: #dc2626;
  --_danger-bg: #fef2f2;
  --_radius: 10px;
  --_radius-lg: 16px;
  --_shadow: 0 1px 2px rgba(16, 24, 40, 0.04), 0 1px 3px rgba(16, 24, 40, 0.06);
  --_shadow-lg: 0 20px 48px rgba(16, 24, 40, 0.18);
  --_inner-width: 1280px;
  --_inner-padding: 0 24px;
  --_header-height: 108px;
  --_anime-speed: 750ms;
  --_anime-delay: 0.6s;
}

@media (max-width: 750px) {
  :root {
    --_main-font-size: 15px;
    --_main-line-hlight: 1.7;
    --_main-letter-spacing: 0.02em;
    --_inner-width: 100%;
    --_inner-padding: 0 16px;
    --_header-height: 100px;
  }
}
* {
  box-sizing: border-box;
}
*:before, *:after {
  box-sizing: border-box;
}

html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
  padding: 0;
}

/* HTML5 display-role reset for older browsers */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}

ol,
ul {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
  content: "";
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

body {
  font-family: var(--_main-font-family);
  font-size: var(--_main-font-size);
  line-height: var(--_main-line-hlight);
  font-weight: var(--_main-font-weight);
  color: var(--_main-font-color);
  letter-spacing: var(--_main-letter-spacing);
  -webkit-text-size-adjust: 100%;
}

img,
svg {
  max-width: 100%;
  height: auto;
  border: none;
  vertical-align: bottom;
  line-height: 1;
}

a {
  color: var(--_main-link-color);
  text-decoration: none;
}

input,
textarea,
button,
select {
  font-family: var(--_main-font-family);
  font-size: var(--_main-font-size);
  line-height: var(--_main-line-hlight);
  font-weight: var(--_main-font-weight);
  color: var(--_main-font-color);
}

@media screen and (max-width: 750px) {
  body {
    font-weight: var(--_main-font-weight);
    line-height: var(--_main-line-hlight);
  }
  input,
  textarea,
  button,
  select {
    font-weight: var(--_main-font-weight);
  }
}
/* Scss Document */
/*　header
----------------------------------------------- */
.header {
  position: sticky;
  top: 0;
  z-index: 900;
  background: rgba(255, 255, 255, 0.88);
  backdrop-filter: saturate(180%) blur(12px);
  -webkit-backdrop-filter: saturate(180%) blur(12px);
  border-bottom: 1px solid var(--_border);
}

.header__inner {
  max-width: var(--_inner-width);
  height: 60px;
  margin: 0 auto;
  padding: var(--_inner-padding);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.header__logo a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--_text);
}

.header__logo-mark {
  flex: none;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 9px;
  background: var(--_main-color);
  color: #fff;
}
.header__logo-mark .icon {
  width: 18px;
  height: 18px;
}

.header__time {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--_text-sub);
  white-space: nowrap;
}
.header__time .icon {
  width: 15px;
  height: 15px;
}
.header__time time {
  color: var(--_text);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.header__nav {
  border-top: 1px solid var(--_border);
}

.header__nav-list {
  max-width: var(--_inner-width);
  margin: 0 auto;
  padding: var(--_inner-padding);
  padding-block: 8px;
  display: flex;
  gap: 6px;
  overflow-x: auto;
  scrollbar-width: none;
}
.header__nav-list::-webkit-scrollbar {
  display: none;
}

.header__nav-link {
  --c: var(--bd-color);
  --c-text: color-mix(in srgb, var(--bd-color) 65%, #000);
  --c-line: color-mix(in srgb, var(--bd-color) 30%, #fff);
  --c-soft: color-mix(in srgb, var(--bd-color) 14%, #fff);
  --c-softer: color-mix(in srgb, var(--bd-color) 6%, #fff);
  display: inline-flex;
  align-items: center;
  gap: 7px;
  height: 30px;
  padding: 0 12px;
  border: 1px solid var(--c-line);
  border-radius: 999px;
  background: var(--c-soft);
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
  color: var(--c-text);
  transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}
.header__nav-link::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--c);
  transition: background-color 0.15s ease;
}
@media (hover: hover) and (pointer: fine) {
  .header__nav-link:hover {
    border-color: var(--c-text);
    background: var(--c-text);
    color: #fff;
  }
  .header__nav-link:hover::before {
    background: #fff;
  }
}
.header__nav-link:focus-visible {
  outline: 2px solid var(--_main-color);
  outline-offset: 2px;
}

@media screen and (max-width: 750px) {
  .header__inner {
    height: 52px;
  }
  .header__logo a {
    gap: 8px;
    font-size: 15px;
  }
  .header__logo-mark {
    width: 28px;
    height: 28px;
    border-radius: 8px;
  }
  .header__logo-mark .icon {
    width: 16px;
    height: 16px;
  }
  .header__time {
    font-size: 12px;
  }
  .header__time-label {
    display: none;
  }
}
/*　footer
----------------------------------------------- */
/*　フェード
----------------------------------------------- */
.view01 {
  transform: translateY(30px);
  position: relative;
  opacity: 0;
  transition: all var(--_anime-speed) ease;
  transition-delay: var(--_anime-delay);
}
.view01.view-on {
  transform: translateY(0);
  opacity: 1;
  transition: all var(--_anime-speed) ease;
  transition-delay: var(--_anime-delay);
}

.view02 {
  transform: translateX(-30px);
  position: relative;
  opacity: 0;
  transition: all var(--_anime-speed) ease;
  transition-delay: var(--_anime-delay);
}
.view02.view-on {
  transform: translateX(0);
  opacity: 1;
  transition: all var(--_anime-speed) ease;
  transition-delay: var(--_anime-delay);
}

.view03 {
  transform: translateX(30px);
  position: relative;
  opacity: 0;
  transition: all var(--_anime-speed) ease;
  transition-delay: var(--_anime-delay);
}
.view03.view-on {
  transform: translateX(0);
  opacity: 1;
  transition: all var(--_anime-speed) ease;
  transition-delay: var(--_anime-delay);
}

.view04 {
  transform: translateY(-30px);
  position: relative;
  opacity: 0;
  transition: all var(--_anime-speed) ease;
  transition-delay: var(--_anime-delay);
}
.view04.view-on {
  transform: translateY(0);
  opacity: 1;
  transition: all var(--_anime-speed) ease;
  transition-delay: var(--_anime-delay);
}

.view05 {
  position: relative;
  opacity: 0;
  transition: all var(--_anime-speed) ease;
  transition-delay: var(--_anime-delay);
}
.view05.view-on {
  opacity: 1;
  transition: all var(--_anime-speed) ease;
  transition-delay: var(--_anime-delay);
}

/*　スライドアニメーション
----------------------------------------------- */
.js-slide-h {
  display: grid;
  transition: grid-template-rows 0.4s;
  grid-template-rows: 0fr;
}
.js-slide-h > * {
  overflow: hidden;
}
.js-slide-h.js-active {
  grid-template-rows: 1fr;
}

/*　共通
----------------------------------------------- */
body {
  overflow-x: clip;
  background: var(--_bg);
  -webkit-font-smoothing: antialiased;
}
body.js-on {
  overflow: hidden;
}

.icon {
  flex: none;
  width: 1em;
  height: 1em;
}

.loading-spinner {
  display: inline-block;
  flex: none;
  width: 13px;
  height: 13px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: spin 0.7s linear infinite;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    transition-duration: 0.01ms !important;
  }
}
.sp {
  display: none;
}

.pc {
  display: block;
}

.pc-inline {
  display: inline;
}

.sp-inline {
  display: none;
}

.inner {
  max-width: var(--_inner-width);
  margin-inline: auto;
  padding: var(--_inner-padding);
}

@media screen and (max-width: 750px) {
  .sp {
    display: block;
  }
  .pc {
    display: none;
  }
  .sp-inline {
    display: inline;
  }
  .pc-inline {
    display: none;
  }
  .inner {
    margin: 0;
  }
}
/* Scss Document */
.modal__btn, .text-change__btn, .tyoka__reload-btn, .tyoka__download-btn, .tyoka__edit-btn, .tyoka__links-item a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 32px;
  padding: 0 12px;
  border: 1px solid transparent;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.modal__btn .icon, .text-change__btn .icon, .tyoka__reload-btn .icon, .tyoka__download-btn .icon, .tyoka__edit-btn .icon, .tyoka__links-item a .icon {
  width: 15px;
  height: 15px;
}
.modal__btn:focus-visible, .text-change__btn:focus-visible, .tyoka__reload-btn:focus-visible, .tyoka__download-btn:focus-visible, .tyoka__edit-btn:focus-visible, .tyoka__links-item a:focus-visible {
  outline: 2px solid var(--_main-color);
  outline-offset: 2px;
}
.modal__btn:disabled, .text-change__btn:disabled, .tyoka__reload-btn:disabled, .tyoka__download-btn:disabled, .tyoka__edit-btn:disabled, .tyoka__links-item a:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.modal__btn--copy {
  background: var(--_main-color);
  color: #fff;
}
@media (hover: hover) and (pointer: fine) {
  .modal__btn--copy:hover:not(:disabled) {
    background: var(--_main-color-hover);
  }
}

.modal__btn--clear, .tyoka__reload-btn, .tyoka__download-btn {
  background: var(--_surface);
  border-color: var(--_border);
  color: var(--_text);
}
@media (hover: hover) and (pointer: fine) {
  .modal__btn--clear:hover:not(:disabled), .tyoka__reload-btn:hover:not(:disabled), .tyoka__download-btn:hover:not(:disabled) {
    background: var(--_surface-sub);
    border-color: var(--_border-strong);
  }
}

.main {
  padding-top: 28px;
  padding-bottom: 120px;
  min-height: 100vh;
}

.error-msg {
  padding: 10px 14px;
  border-radius: 8px;
  background: var(--_danger-bg);
  color: var(--_danger);
  font-size: 13px;
  line-height: 1.7;
}

.tyoka__loading {
  padding: 40px 0;
  text-align: center;
  font-size: 13px;
  color: var(--_text-weak);
}

.memo-fab {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 1000;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 48px;
  padding: 0 20px 0 16px;
  border: none;
  border-radius: 999px;
  background: var(--_text);
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 8px 24px rgba(16, 24, 40, 0.24);
  transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
}
@media (hover: hover) and (pointer: fine) {
  .memo-fab:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(16, 24, 40, 0.28);
  }
}
.memo-fab:active {
  transform: translateY(0);
}
.memo-fab:focus-visible {
  outline: 2px solid var(--_main-color);
  outline-offset: 3px;
}
.memo-fab__icon {
  display: grid;
}
.memo-fab__icon .icon {
  width: 18px;
  height: 18px;
}
.memo-fab__dot {
  position: absolute;
  top: 8px;
  right: 10px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #22c55e;
  border: 2px solid var(--_text);
  opacity: 0;
  transform: scale(0.3);
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.memo-fab.has-content .memo-fab__dot {
  opacity: 1;
  transform: scale(1);
}
.memo-fab.is-active {
  transform: scale(0.94);
  opacity: 0.85;
}

.memo-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: rgba(17, 24, 39, 0.4);
  opacity: 0;
  transition: opacity 0.25s ease;
}
.memo-backdrop.is-open {
  opacity: 1;
}
.memo-backdrop[hidden] {
  display: none;
}

.memo-panel {
  position: fixed;
  right: 24px;
  bottom: 84px;
  z-index: 1001;
  width: 380px;
  max-width: calc(100vw - 48px);
  max-height: 70vh;
  display: flex;
  flex-direction: column;
  background: var(--_surface);
  border: 1px solid var(--_border);
  border-radius: var(--_radius-lg);
  padding: 18px 20px 20px;
  box-shadow: var(--_shadow-lg);
  transform-origin: bottom right;
  transform: translateY(12px) scale(0.98);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.memo-panel.is-open {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}
.memo-panel[hidden] {
  display: none;
}
.memo-panel__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.memo-panel__close {
  flex: none;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  margin-right: -6px;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: var(--_text-sub);
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease;
}
.memo-panel__close .icon {
  width: 18px;
  height: 18px;
}
@media (hover: hover) and (pointer: fine) {
  .memo-panel__close:hover {
    background: var(--_surface-sub);
    color: var(--_text);
  }
}
.memo-panel__close:focus-visible {
  outline: 2px solid var(--_main-color);
  outline-offset: 2px;
}

.memo__ttl {
  font-size: 16px;
  font-weight: 700;
  color: var(--_text);
}

.memo__info {
  margin-top: 10px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.memo__status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  color: var(--_text-sub);
  background: var(--_surface-sub);
  transition: color 0.2s ease, background-color 0.2s ease;
}
.memo__status:empty {
  display: none;
}
.memo__status::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
}
.memo__status--success {
  color: var(--_success);
  background: #f0fdf4;
}
.memo__status--saving, .memo__status--loading {
  color: #b45309;
  background: #fffbeb;
}
.memo__status--saving::before, .memo__status--loading::before {
  animation: pulse 1.2s ease-in-out infinite;
}
.memo__status--error {
  color: var(--_danger);
  background: var(--_danger-bg);
}
.memo__status--editing, .memo__status--info, .memo__status--warning {
  color: var(--_main-color);
  background: var(--_sub-color);
}

@keyframes pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.3;
  }
}
.memo__timestamp {
  font-size: 12px;
  color: var(--_text-sub);
  font-variant-numeric: tabular-nums;
}

.memo__text {
  width: 100%;
  flex: 1 1 auto;
  min-height: 180px;
  margin-top: 12px;
  padding: 12px 14px;
  border: 1px solid var(--_border);
  border-radius: var(--_radius);
  font-size: 14px;
  line-height: 1.8;
  resize: none;
  background: var(--_surface-sub);
  transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}
.memo__text:focus {
  outline: none;
  border-color: var(--_main-color);
  background: var(--_surface);
  box-shadow: 0 0 0 3px rgba(14, 116, 144, 0.15);
}
.memo__text::placeholder {
  color: var(--_text-weak);
}

.memo__note {
  margin-top: 10px;
  font-size: 12px;
  color: var(--_text-sub);
  line-height: 1.6;
}

.tyoka_main {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.tyoka__item {
  --c: var(--bd-color);
  --c-text: color-mix(in srgb, var(--bd-color) 65%, #000);
  --c-line: color-mix(in srgb, var(--bd-color) 30%, #fff);
  --c-soft: color-mix(in srgb, var(--bd-color) 14%, #fff);
  --c-softer: color-mix(in srgb, var(--bd-color) 6%, #fff);
  scroll-margin-top: calc(var(--_header-height) + 16px);
  background: var(--_surface);
  border: 1px solid var(--_border);
  border-top: 5px solid var(--c);
  border-radius: var(--_radius-lg);
  box-shadow: var(--_shadow);
  overflow: hidden;
}

.tyoka__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px 16px;
  flex-wrap: wrap;
  padding: 16px 24px;
  background: var(--c-soft);
  border-bottom: 1px solid var(--c-line);
}

.tyoka__heading {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.tyoka__ttl {
  font-size: 20px;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--c-text);
}

.tyoka__region {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: 999px;
  background: var(--c-text);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #fff;
}

.tyoka__links {
  display: flex;
  gap: 8px;
}

.tyoka__links-item a {
  background: var(--_surface);
  border-color: var(--c-line);
  color: var(--c-text);
}
.tyoka__links-item a .icon {
  width: 13px;
  height: 13px;
}
@media (hover: hover) and (pointer: fine) {
  .tyoka__links-item a:hover {
    background: var(--c-text);
    border-color: var(--c-text);
    color: #fff;
  }
}

.tyoka__body {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tyoka__panel {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.tyoka__panel + .tyoka__panel {
  border-left: 1px solid var(--c-line);
}

.tyoka__panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  height: 48px;
  padding: 0 16px 0 24px;
  border-bottom: 1px solid var(--c-line);
  background: var(--c-softer);
}

.tyoka__panel-ttl {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--c-text);
}
.tyoka__panel-ttl::before {
  content: "";
  width: 3px;
  height: 14px;
  border-radius: 2px;
  background: var(--c);
}

.tyoka__panel-body {
  height: 460px;
  padding: 20px 24px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--c-line) transparent;
}

.tyoka__tsurisute-text,
.tyoka__article {
  font-size: 14px;
  line-height: 1.85;
  color: var(--_text);
  word-break: break-word;
}
.tyoka__tsurisute-text p,
.tyoka__article p {
  margin-bottom: 0.8em;
}
.tyoka__tsurisute-text p:last-child,
.tyoka__article p:last-child {
  margin-bottom: 0;
}
.tyoka__tsurisute-text h1,
.tyoka__tsurisute-text h2,
.tyoka__tsurisute-text h3,
.tyoka__tsurisute-text h4,
.tyoka__tsurisute-text h5,
.tyoka__tsurisute-text h6,
.tyoka__article h1,
.tyoka__article h2,
.tyoka__article h3,
.tyoka__article h4,
.tyoka__article h5,
.tyoka__article h6 {
  margin: 1.2em 0 0.4em;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.6;
}
.tyoka__tsurisute-text h1:first-child,
.tyoka__tsurisute-text h2:first-child,
.tyoka__tsurisute-text h3:first-child,
.tyoka__tsurisute-text h4:first-child,
.tyoka__tsurisute-text h5:first-child,
.tyoka__tsurisute-text h6:first-child,
.tyoka__article h1:first-child,
.tyoka__article h2:first-child,
.tyoka__article h3:first-child,
.tyoka__article h4:first-child,
.tyoka__article h5:first-child,
.tyoka__article h6:first-child {
  margin-top: 0;
}
.tyoka__tsurisute-text a,
.tyoka__article a {
  color: var(--c-text, var(--_main-color));
  text-decoration: underline;
  text-underline-offset: 2px;
}
.tyoka__tsurisute-text strong,
.tyoka__tsurisute-text b,
.tyoka__article strong,
.tyoka__article b {
  font-weight: 700;
}
.tyoka__tsurisute-text table,
.tyoka__article table {
  width: 100%;
  margin: 0.8em 0;
  font-size: 13px;
}
.tyoka__tsurisute-text th,
.tyoka__tsurisute-text td,
.tyoka__article th,
.tyoka__article td {
  padding: 6px 8px;
  border: 1px solid var(--_border);
  text-align: left;
  vertical-align: top;
}
.tyoka__tsurisute-text th,
.tyoka__article th {
  background: var(--_surface-sub);
  font-weight: 600;
}
.tyoka__tsurisute-text hr,
.tyoka__article hr {
  margin: 1em 0;
  border: 0;
  border-top: 1px solid var(--_border);
}

.tyoka__article > * + * {
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid var(--_border);
}

.tyoka__contents {
  font-size: 14px;
}

.tyoka__text {
  padding: 16px 0;
  border-bottom: 1px solid var(--_border);
}
.tyoka__text:first-child {
  padding-top: 0;
}
.tyoka__text:last-child {
  padding-bottom: 0;
  border-bottom: none;
}

.tyoka__date {
  display: inline-block;
  margin-bottom: 6px;
  padding: 1px 8px;
  border-radius: 4px;
  background: var(--c-soft);
  font-size: 12px;
  font-weight: 600;
  color: var(--c-text);
  font-variant-numeric: tabular-nums;
}
.tyoka__date:empty {
  display: none;
}

.tyoka__title a {
  display: block;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.6;
  color: var(--_text);
  transition: color 0.15s ease;
}
@media (hover: hover) and (pointer: fine) {
  .tyoka__title a:hover {
    color: var(--c-text);
  }
}

.tyoka__buttons {
  display: flex;
  gap: 8px;
  margin-top: 10px;
  flex-wrap: wrap;
}

.tyoka__edit-icon,
.tyoka__download-icon,
.reload-icon {
  display: grid;
}

.tyoka__edit-btn {
  background: var(--c-text);
  color: #fff;
}
@media (hover: hover) and (pointer: fine) {
  .tyoka__edit-btn:hover:not(:disabled) {
    background: color-mix(in srgb, var(--c-text) 85%, #000);
  }
}

.tyoka__download-btn.is-success {
  border-color: currentColor;
  color: var(--_success);
}

.tyoka__reload-btn {
  border-color: var(--c-line);
  color: var(--c-text);
  height: 30px;
  padding: 0 10px;
  font-size: 12px;
}
.tyoka__reload-btn .icon {
  width: 14px;
  height: 14px;
}
.tyoka__reload-btn.is-success {
  border-color: currentColor;
  color: var(--_success);
}

.reload-icon.spinning {
  animation: spin 0.8s linear infinite;
}

.post-share-buttons,
.post-author {
  display: none;
}

.text-change {
  display: flex;
  flex-direction: column;
  gap: 12px;
  height: 100%;
}

.text-change__note {
  font-size: 13px;
  color: var(--_text-sub);
}

.text-change__btn {
  background: var(--c-text);
  color: #fff;
}
@media (hover: hover) and (pointer: fine) {
  .text-change__btn:hover {
    background: color-mix(in srgb, var(--c-text) 85%, #000);
  }
}
.text-change__btn {
  align-self: flex-start;
  height: 38px;
  padding: 0 16px;
}

.text-change__textarea {
  flex: 1 1 auto;
  min-height: 200px;
}

.modal__textarea, .text-change__textarea {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--_border);
  border-radius: var(--_radius);
  font-size: 14px;
  line-height: 1.8;
  color: var(--_text);
  background: var(--_surface-sub);
  resize: vertical;
  transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}
.modal__textarea:focus, .text-change__textarea:focus {
  outline: none;
  border-color: var(--_main-color);
  background: var(--_surface);
  box-shadow: 0 0 0 3px rgba(14, 116, 144, 0.15);
}

.modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9999;
  padding: 24px;
}
.modal.is-active {
  display: flex;
  align-items: center;
  justify-content: center;
  animation: fadeIn 0.2s ease;
}

.modal__overlay {
  position: fixed;
  inset: 0;
  background: rgba(17, 24, 39, 0.5);
  backdrop-filter: blur(2px);
  cursor: pointer;
}

.modal__container {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 820px;
  max-height: calc(100vh - 48px);
  display: flex;
  flex-direction: column;
  background: var(--_surface);
  border-radius: var(--_radius-lg);
  box-shadow: var(--_shadow-lg);
  overflow: hidden;
  animation: slideUp 0.25s ease;
}

.modal__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 14px 16px 14px 24px;
  border-bottom: 1px solid var(--_border);
}

.modal__title {
  font-size: 16px;
  font-weight: 700;
  color: var(--_text);
}

.modal__close {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: var(--_text-sub);
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease;
}
.modal__close .icon {
  width: 20px;
  height: 20px;
}
@media (hover: hover) and (pointer: fine) {
  .modal__close:hover {
    background: var(--_surface-sub);
    color: var(--_text);
  }
}
.modal__close:focus-visible {
  outline: 2px solid var(--_main-color);
  outline-offset: 2px;
}

.modal__body {
  padding: 20px 24px 24px;
  overflow-y: auto;
}

.modal__textarea {
  min-height: 50vh;
}

.modal__actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 16px;
  flex-wrap: wrap;
}

.modal__btn {
  height: 40px;
  padding: 0 18px;
  font-size: 14px;
}
.modal__btn--copy.is-success {
  background: var(--_success);
}
.modal__btn--clear {
  color: var(--_danger);
}
@media (hover: hover) and (pointer: fine) {
  .modal__btn--clear:hover {
    background: var(--_danger-bg);
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes slideUp {
  from {
    transform: translateY(16px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}
@media screen and (max-width: 750px) {
  .main {
    padding-top: 16px;
    padding-bottom: 96px;
  }
  .memo-fab {
    right: 16px;
    bottom: 16px;
    height: 46px;
    padding: 0 18px 0 14px;
  }
  .memo-backdrop {
    display: block;
  }
  .memo-panel {
    right: 0;
    left: 0;
    bottom: 0;
    width: 100%;
    max-width: none;
    max-height: 82vh;
    padding: 16px 16px calc(16px + env(safe-area-inset-bottom));
    border: none;
    border-radius: 20px 20px 0 0;
    transform-origin: bottom center;
    transform: translateY(100%);
  }
  .memo-panel.is-open {
    transform: translateY(0);
  }
  .memo__text {
    min-height: 160px;
  }
  .tyoka_main {
    gap: 16px;
  }
  .tyoka__item {
    border-radius: 14px;
  }
  .tyoka__head {
    padding: 14px 16px;
  }
  .tyoka__ttl {
    font-size: 17px;
  }
  .tyoka__links {
    width: 100%;
  }
  .tyoka__links-item {
    flex: 1;
  }
  .tyoka__links-item a {
    width: 100%;
  }
  .tyoka__body {
    grid-template-columns: minmax(0, 1fr);
  }
  .tyoka__panel + .tyoka__panel {
    border-left: none;
    border-top: 1px solid var(--c-line);
  }
  .tyoka__panel-head {
    padding: 0 12px 0 16px;
  }
  .tyoka__panel-body {
    height: 380px;
    padding: 16px;
  }
  .modal {
    padding: 12px;
  }
  .modal__container {
    max-height: calc(100vh - 24px);
    border-radius: 14px;
  }
  .modal__header {
    padding: 10px 10px 10px 16px;
  }
  .modal__body {
    padding: 16px;
  }
  .modal__textarea {
    min-height: 45vh;
    font-size: 13px;
  }
  .modal__btn {
    flex: 1;
  }
}
