/* KOYANE USER PORTAL — approved comp 01. Scoped to the normal frontend. */
body.koyane-portal {
  --portal-green:#08743f; --portal-deep:#075d35; --portal-pale:#edf6ef;
  --portal-ink:#303734; --portal-muted:#69756c; --portal-line:#e3e9e3;
  --cocoon-key-color:#08743f; --cocoon-key-text-color:#fff;
  background:#f5f6f5; color:var(--portal-ink);
  font-family:"Noto Sans JP","Meiryo",sans-serif; font-size:15px; line-height:1.95;
}
.koyane-portal *, .koyane-portal *::before, .koyane-portal *::after { box-sizing:border-box; }
.koyane-portal a { text-underline-offset:3px; }
.koyane-portal a:hover { color:var(--portal-green); }
.koyane-portal :focus-visible { outline:2px solid var(--portal-green); outline-offset:4px; }
.koyane-portal .portal-icon { width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;vertical-align:middle; }
.koyane-portal #header-container { background:#fff;border-top:4px solid var(--portal-green);border-bottom:1px solid var(--portal-line);position:relative;z-index:20; }
.koyane-portal #header-container-in, .koyane-portal #header { background:#fff;color:var(--portal-ink);height:auto;min-height:0; }
.koyane-portal #header-in.portal-header-inner { width:100%;max-width:1240px;min-height:96px;height:auto;padding:8px 30px;display:flex;flex-flow:row nowrap;align-items:center;justify-content:space-between;gap:34px;position:relative; }
.koyane-portal .portal-brand { margin-right:auto;flex:0 0 auto;text-align:left; }
.koyane-portal .portal-brand .logo { margin:0;padding:0;line-height:1;font-size:22px;text-align:left; }
.koyane-portal .portal-brand .site-name { display:block;padding:0;line-height:1; }
.koyane-portal .portal-brand .site-logo-image { display:block;width:192px;height:auto;max-height:none; }
.koyane-portal .portal-brand .tagline { margin:4px 0;font-size:11px; }
.koyane-portal .portal-header-actions { display:flex;align-items:center;gap:32px;align-self:stretch;font-size:14px;font-weight:700; }
.koyane-portal .portal-manual-link { display:flex;align-items:center;color:var(--portal-ink);text-decoration:none;border-bottom:3px solid transparent;margin-bottom:-8px;padding-bottom:8px; }
.koyane-portal .portal-manual-link.is-active { color:var(--portal-green);border-bottom-color:var(--portal-green); }
.koyane-portal .portal-pages-menu { position:relative;align-self:center; }
.koyane-portal .portal-pages-menu summary, .koyane-portal .portal-mobile-menu > summary { cursor:pointer;list-style:none; }
.koyane-portal .portal-pages-menu summary::-webkit-details-marker, .koyane-portal .portal-mobile-menu > summary::-webkit-details-marker { display:none; }
.koyane-portal .portal-pages-menu summary { padding:12px 0;white-space:nowrap; }
.koyane-portal .portal-pages-menu summary span { margin-left:7px; }
.koyane-portal .portal-pages-panel { position:absolute;top:100%;right:0;width:270px;padding:10px;border:1px solid var(--portal-line);background:white;box-shadow:0 8px 25px #203d2814;border-radius:4px; }
.koyane-portal .portal-pages-panel #navi { background:white;color:var(--portal-ink);margin:0; }
.koyane-portal .portal-pages-panel #navi-in { width:100%;max-width:none; }
.koyane-portal .portal-pages-panel #navi ul { display:block;width:100%;margin:0;padding:0; }
.koyane-portal .portal-pages-panel #navi ul.menu-mobile { display:none; }
.koyane-portal .portal-pages-panel #navi li { width:100%;height:auto;line-height:1.7;text-align:left;margin:0; }
.koyane-portal .portal-pages-panel #navi a { padding:11px 14px;height:auto;color:var(--portal-ink);font-size:13px; }
.koyane-portal .portal-pages-panel #navi a:hover { background:var(--portal-pale);color:var(--portal-green); }
.koyane-portal .portal-pages-panel #navi .sub-menu { display:block;position:static;background:#f8faf7;padding-left:12px; }
.koyane-portal .portal-search { display:flex;align-items:center;width:235px;height:42px;background:#f5f7f5;border:1px solid var(--portal-line);border-radius:4px;margin:0;position:relative;align-self:center;font-weight:400; }
.koyane-portal .portal-search input { min-width:0;width:100%;height:100%;padding:0 42px 0 13px;border:0;background:none;color:var(--portal-ink);font:inherit;font-size:12px;border-radius:4px; }
.koyane-portal .portal-search button { position:absolute;right:0;top:0;height:40px;width:40px;padding:0;border:0;background:none;color:#64766b;cursor:pointer; }
.koyane-portal .portal-search button:hover { color:var(--portal-green);background:var(--portal-pale); }
.koyane-portal .portal-search .screen-reader-text { display:block;position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap; }
.koyane-portal .portal-mobile-menu { display:none; }

/* Shared white sheet. The native breadcrumb keeps its structured data. */
.koyane-portal #breadcrumb { display:block;width:calc(100% - 44px);max-width:1120px;margin:32px auto 0;padding:30px 44px 36px;background:#fff;color:var(--portal-muted);font-size:12px;line-height:1.8;border:0; }
.koyane-portal #breadcrumb a { color:var(--portal-muted);text-decoration:underline; }
.koyane-portal #breadcrumb .breadcrumb-caption { margin:0;overflow-wrap:anywhere; }
.koyane-portal #breadcrumb .sp { color:#9ba79e;margin:0 10px; }
.koyane-portal #breadcrumb .fa-folder, .koyane-portal #breadcrumb .fa-file-o { display:none; }
.koyane-portal #breadcrumb .portal-icon { width:14px;height:14px; }
.koyane-portal .portal-crumb-separator { color:#9ba79e;margin:0 10px; }
.koyane-portal #content { margin:0 0 50px;padding:0; }
/* The top page has no breadcrumb sheet, so the sheet's spacing is kept here. */
.koyane-portal.home #content { margin-top:32px; }
.koyane-portal.home #content-in { padding-top:30px; }
.koyane-portal #content-in { display:flex;flex-wrap:nowrap;align-items:flex-start;gap:48px;width:calc(100% - 44px);max-width:1120px;padding:0 44px 52px;background:#fff;min-height:700px; }
.koyane-portal #main { flex:1 1 0;width:0;min-width:0;padding:0;margin:0;border:0;border-radius:0;background:#fff; }
.koyane-portal #sidebar { flex:0 0 226px;width:226px;min-width:0;padding:0;margin:0;border:0;border-radius:0;background:#fff; }
.koyane-portal.no-sidebar #content-in { display:block; }
.koyane-portal.no-sidebar #main { width:100%; }
.koyane-portal #sidebar .widget { margin:0 0 30px; }
.koyane-portal #sidebar h2, .koyane-portal #sidebar h3, .koyane-portal .portal-nav-widget .widget-title { background:none;border:0;border-left:4px solid var(--portal-green);padding:0 0 0 12px;font-size:19px;line-height:1.4;margin:0 0 22px;border-radius:0;color:var(--portal-ink); }
.koyane-portal .portal-category-nav { font-size:14px; }
.koyane-portal .portal-manual-home { display:flex;align-items:center;gap:10px;padding:14px 12px;color:#5d685f;text-decoration:none;border-bottom:1px solid var(--portal-line); }
.koyane-portal .portal-category { border-bottom:1px solid var(--portal-line); }
.koyane-portal .portal-category summary { list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:17px 12px;font-size:14px;font-weight:700;gap:10px; }
.koyane-portal .portal-category summary::-webkit-details-marker { display:none; }
.koyane-portal .portal-category summary::after { content:'+';font-size:18px;font-weight:400;color:#7f8c80; }
.koyane-portal .portal-category[open] > summary { color:var(--portal-green); }
.koyane-portal .portal-category[open] > summary::after { content:'−'; }
.koyane-portal .portal-category-links { display:flex;flex-direction:column;gap:3px;padding-bottom:12px; }
.koyane-portal .portal-category-links > a { display:block;font-size:12px;padding:10px 22px 10px 29px;color:#627168;line-height:1.7;text-decoration:none;overflow-wrap:anywhere; }
.koyane-portal .portal-category-links > a:hover { color:var(--portal-green);background:#f7faf5; }
.koyane-portal .portal-category-links > a[aria-current="page"] { position:relative;background:var(--portal-pale);color:var(--portal-deep);font-weight:700;border-left:3px solid var(--portal-green);padding-left:26px; }
.koyane-portal .portal-category-links > a[aria-current="page"]::after { content:'›';position:absolute;right:10px;top:7px;font-size:18px; }
.koyane-portal .portal-category-links > .portal-category { margin-left:14px;border-bottom:0; }
.koyane-portal .portal-category-all { color:var(--portal-green); }
.koyane-portal .portal-help { margin-top:32px;padding:20px 16px;background:#f7f9f6;border:1px solid var(--portal-line);border-radius:4px; }
.koyane-portal .portal-help strong { display:flex;align-items:center;gap:8px;font-size:13px; }
.koyane-portal .portal-help p { font-size:12px;line-height:1.95;color:var(--portal-muted);margin:10px 0 15px; }
.koyane-portal .portal-help .portal-search { width:100%;background:#fff; }

/* Native article markup, blocks, table of contents and pagination. */
.koyane-portal .article { margin:0;overflow-wrap:break-word; }
.koyane-portal .article h1.entry-title { font-size:30px;line-height:1.65;letter-spacing:.02em;margin:0 0 22px;padding:0;border:0;background:none;color:var(--portal-ink); }
.koyane-portal .entry-categories-tags { margin:0 0 16px; }
.koyane-portal .entry-categories a, .koyane-portal .cat-label { border:0;background:var(--portal-pale);color:var(--portal-green);padding:5px 11px;border-radius:3px;font-size:11px;font-weight:700; }
.koyane-portal .entry-tags a { background:#f7f8f6;border:1px solid var(--portal-line);color:var(--portal-muted); }
.koyane-portal .article .date-tags { margin:0 0 20px;font-size:11px;color:var(--portal-muted); }
.koyane-portal .entry-content { font-size:15px;line-height:2; }
.koyane-portal .entry-content > p { margin:0 0 25px; }
.koyane-portal .entry-content a { color:var(--portal-green); }
.koyane-portal .entry-content > h2:not([class*="is-style-"]), .koyane-portal .entry-content > .wp-block-group > h2:not([class*="is-style-"]) { margin:36px 0 24px;padding:0 0 13px;background:none;border:0;border-bottom:2px solid var(--portal-green);border-radius:0;font-size:21px;line-height:1.7;color:var(--portal-ink); }
.koyane-portal .entry-content > h3:not([class*="is-style-"]) { margin:30px 0 15px;padding:0 0 0 13px;border:0;border-left:3px solid var(--portal-green);border-radius:0;background:none;font-size:17px;line-height:1.7; }
.koyane-portal .entry-content .toc { display:block;width:100%;max-width:100%;padding:20px 24px;margin:28px 0 35px;background:#f8faf7;border:1px solid var(--portal-line);border-radius:3px;font-size:13px; }
.koyane-portal .toc .toc-title { color:var(--portal-ink);font-size:13px;font-weight:700;margin-bottom:10px; }
.koyane-portal .toc .toc-content { padding:0; }
.koyane-portal .toc .toc-list { margin:0;padding-left:1.6em; }
.koyane-portal .toc a { color:var(--portal-ink); }
.koyane-portal .toc a:hover { color:var(--portal-green); }
.koyane-portal .entry-content blockquote { background:#f4f8f1;border-left:3px solid #8eae74;color:var(--portal-ink);font-size:14px; }
.koyane-portal .entry-content table { font-size:14px; }
.koyane-portal .entry-content table th { background:var(--portal-pale);color:var(--portal-deep); }
.koyane-portal .entry-content img { height:auto;max-width:100%; }
.koyane-portal .entry-content iframe { max-width:100%; }
.koyane-portal .article-footer { margin-top:32px; }
.koyane-portal .pager-post-navi { border-top:1px solid var(--portal-line);padding-top:20px;font-size:13px; }
.koyane-portal .pager-post-navi a:hover { background:var(--portal-pale); }
.koyane-portal .related-entry-heading, .koyane-portal .comment-title { font-size:20px;margin-top:40px;border-bottom:1px solid var(--portal-line);padding-bottom:12px; }
.koyane-portal .related-entry-card:not(.has-post-thumbnail) .related-entry-card-thumb { display:none; }
.koyane-portal .related-entry-card:not(.has-post-thumbnail) .related-entry-card-content { margin:0; }
.koyane-portal .related-entry-card-wrap { padding:18px 0;border-bottom:1px solid var(--portal-line); }
.koyane-portal .related-entry-card-title { font-size:16px;line-height:1.8;margin-bottom:7px; }
.koyane-portal .related-entry-card-snippet { font-size:13px;line-height:1.9;color:var(--portal-muted); }
.koyane-portal #pager-post-navi figure:has(.no-image) { display:none; }
.koyane-portal #pager-post-navi a:has(.no-image) { min-height:55px; }
.koyane-portal #pager-post-navi a:has(.no-image) .prev-post-title, .koyane-portal #pager-post-navi a:has(.no-image) .next-post-title { margin:0 15px; }
.koyane-portal .footer-meta { font-size:11px;color:var(--portal-muted); }
.koyane-portal .article-footer:has(> .footer-meta:only-child > .author-info:only-child) { display:none; }
.koyane-portal #archive-title { background:none;border:0;font-size:28px;line-height:1.6;padding:0 0 24px;margin:0 0 8px;color:var(--portal-ink); }
.koyane-portal .portal-index-heading h2 { margin:0 0 15px;font-size:30px;line-height:1.6;background:none;border:0;padding:0; }
.koyane-portal .portal-index-heading p { margin:0 0 28px;color:var(--portal-muted);font-size:14px; }
.koyane-portal #list .entry-card-wrap { width:100%;padding:23px 0;margin:0;border:0;border-bottom:1px solid var(--portal-line);border-radius:0; }
.koyane-portal #list .entry-card-wrap:hover { background:#f8faf7; }
.koyane-portal #list .entry-card { display:flex;gap:20px;min-height:0; }
.koyane-portal #list .entry-card-thumb { flex:0 0 120px;width:120px;margin:0; }
.koyane-portal #list .entry-card:not(.has-post-thumbnail) .entry-card-thumb { display:none; }
.koyane-portal #list .entry-card-content { flex:1;min-width:0;margin:0;padding:0; }
.koyane-portal #list .entry-card-title { font-size:18px;line-height:1.7;margin:0 0 8px;color:var(--portal-ink); }
.koyane-portal #list .entry-card-snippet { color:var(--portal-muted);font-size:13px;line-height:1.9; }
.koyane-portal #list .entry-card-meta { position:static;margin-top:10px;font-size:11px;color:#7c877e; }
.koyane-portal .pagination .current { background:var(--portal-green);color:#fff;border-color:var(--portal-green); }
.koyane-portal #footer { width:100%;background:none;color:#7b877d;margin:0 auto 24px;padding:0 22px;font-size:11px; }
.koyane-portal #footer-in { width:100%;max-width:1120px;margin:auto; }
.koyane-portal #footer .footer-bottom { padding:0; }
.koyane-portal #footer .footer-bottom-content { width:100%;display:flex;flex-direction:column;align-items:stretch; }
.koyane-portal #footer .navi-footer { width:100%;margin:0 0 15px; }
.koyane-portal #footer .navi-footer a { color:var(--portal-muted); }
.koyane-portal #footer .copyright { font-size:10px;color:#7b877d;white-space:nowrap;text-align:left; }
.koyane-portal .go-to-top-button { background:#fff;color:var(--portal-green);border:1px solid var(--portal-line);border-radius:4px; }

@media(max-width:1100px) {
  .koyane-portal #header-in.portal-header-inner { gap:20px;padding-left:24px;padding-right:24px; }
  .koyane-portal .portal-header-actions { gap:22px; }
  .koyane-portal .portal-header-actions .portal-search { width:200px; }
  .koyane-portal #content-in { gap:30px;padding-left:28px;padding-right:28px; }
  .koyane-portal #sidebar { flex-basis:200px;width:200px; }
  .koyane-portal #breadcrumb { padding-left:28px;padding-right:28px; }
}
@media(max-width:850px) {
  .koyane-portal #header-in.portal-header-inner { min-height:82px;padding:8px 20px; }
  .koyane-portal .portal-brand .site-logo-image { width:164px; }
  .koyane-portal .portal-header-actions { display:none; }
  .koyane-portal .portal-mobile-menu { display:block; }
  .koyane-portal .portal-mobile-menu > summary { display:flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--portal-line);padding:7px 10px;border-radius:3px;font-size:11px;color:var(--portal-green); }
  .koyane-portal .portal-mobile-panel { position:absolute;top:100%;left:0;right:0;max-height:calc(100dvh - 130px);overflow:auto;background:#fff;border-bottom:1px solid var(--portal-line);box-shadow:0 8px 20px #203d2814;padding:20px 24px; }
  .koyane-portal .portal-mobile-panel > .portal-search { width:100%;margin-bottom:22px; }
  .koyane-portal .portal-mobile-links { list-style:none;margin:0 0 24px;padding:0; }
  .koyane-portal .portal-mobile-links li { margin:0; }
  .koyane-portal .portal-mobile-links a { display:block;color:var(--portal-ink);text-decoration:none;padding:9px 0;font-size:13px; }
  .koyane-portal .portal-mobile-links .sub-menu { padding-left:20px;list-style:none; }
  .koyane-portal #breadcrumb { width:calc(100% - 24px);margin-top:16px;padding:22px 20px 26px;font-size:11px; }
  .koyane-portal #breadcrumb .sp { margin:0 6px; }
  .koyane-portal #content { margin-bottom:28px; }
  .koyane-portal.home #content { margin-top:16px; }
  .koyane-portal.home #content-in { padding-top:22px; }
  .koyane-portal #content-in { width:calc(100% - 24px);display:block;padding:0 20px 34px;min-height:460px; }
  .koyane-portal #main { width:100%; }
  .koyane-portal #sidebar { width:100%;margin-top:35px; }
  .koyane-portal #sidebar > .portal-nav-widget { display:none; }
  .koyane-portal #sidebar:has(> .portal-nav-widget:only-child) { display:none; }
  .koyane-portal .article h1.entry-title { font-size:24px;line-height:1.7;margin-bottom:20px; }
  .koyane-portal .entry-content { font-size:15px;line-height:2; }
  .koyane-portal .entry-content > h2:not([class*="is-style-"]) { font-size:20px; }
  .koyane-portal .entry-content .toc { padding:17px; }
  .koyane-portal #archive-title { font-size:24px; }
  .koyane-portal #list .entry-card-title { font-size:17px; }
  .koyane-portal #list .entry-card { gap:13px; }
  .koyane-portal #list .entry-card-thumb { flex-basis:90px;width:90px; }
}
@media(prefers-reduced-motion:reduce) { .koyane-portal * { scroll-behavior:auto !important; } }

/* Home: the three newest published updates above the manual list. */
.koyane-portal .portal-latest-updates { margin:0 0 42px; }
.koyane-portal .portal-latest-updates h2 { margin:0;padding:0 0 14px;background:none;border:0;border-bottom:2px solid var(--portal-green);border-radius:0;color:var(--portal-ink);font-size:24px;line-height:1.6; }
.koyane-portal .portal-updates-list { list-style:none;margin:0;padding:0; }
.koyane-portal .portal-updates-list li { margin:0;padding:0;border-bottom:1px solid var(--portal-line); }
.koyane-portal .portal-updates-list a { display:grid;grid-template-columns:90px minmax(0,1fr) 12px;gap:16px;align-items:baseline;padding:20px 8px;color:var(--portal-ink);text-decoration:none;font-size:14px;line-height:1.8; }
.koyane-portal .portal-updates-list a:hover { background:var(--portal-pale);color:var(--portal-green); }
.koyane-portal .portal-updates-list time { color:var(--portal-muted);font-size:12px;white-space:nowrap; }
.koyane-portal .portal-updates-list a>span { overflow-wrap:anywhere; }
.koyane-portal .portal-update-arrow { color:var(--portal-green); }
.koyane-portal .portal-update-label { display:table;max-width:100%;margin:0 0 7px;padding:3px 9px;border-radius:3px;background:var(--portal-pale);color:var(--portal-deep);font-size:11px;font-weight:700;line-height:1.7; }
.koyane-portal .portal-update-title { display:block; }
.koyane-portal .portal-updates-more { text-align:right;margin-top:14px;font-size:13px; }
.koyane-portal .portal-updates-more a { display:inline-block;padding:4px 0 4px 12px;color:var(--portal-green);text-decoration:underline;text-underline-offset:4px; }
.koyane-portal .portal-updates-more span { display:inline-block;margin-left:10px; }
.koyane-portal .portal-updates-empty { margin:0;padding:20px 8px;font-size:14px;color:var(--portal-muted); }
@media(max-width:850px) {
  .koyane-portal .portal-latest-updates { margin-bottom:34px; }
  .koyane-portal .portal-latest-updates h2 { font-size:22px; }
  .koyane-portal .portal-updates-list a { grid-template-columns:minmax(0,1fr) 12px;gap:4px 12px;padding:16px 4px;font-size:14px; }
  .koyane-portal .portal-updates-list time { grid-column:1 / -1;font-size:11px; }
}

/* Home: introduction and initial setup flow for first-time users. */
.koyane-portal .portal-getting-started { margin:0 0 42px;padding:30px 32px;background:#f8faf7;border:1px solid var(--portal-line);border-top:4px solid var(--portal-green);border-radius:4px;color:var(--portal-ink);font-size:15px;line-height:2; }
.koyane-portal .portal-getting-started h2 { margin:0 0 22px;padding:0 0 13px;background:none;border:0;border-bottom:2px solid var(--portal-green);border-radius:0;color:var(--portal-ink);font-size:24px;line-height:1.6; }
.koyane-portal .portal-getting-started p { margin:0 0 18px; }
.koyane-portal .portal-getting-started h3 { margin:28px 0 14px;padding:0 0 0 13px;border:0;border-left:3px solid var(--portal-green);background:none;color:var(--portal-ink);font-size:18px;line-height:1.7; }
.koyane-portal .portal-getting-started .portal-first-links { margin:0;padding-left:1.7em; }
.koyane-portal .portal-getting-started ol { margin:0;padding-left:1.7em; }
.koyane-portal .portal-getting-started li { margin:6px 0; }
.koyane-portal .portal-getting-started .portal-requirements { list-style:none;margin:0 0 20px;padding:12px 20px;background:#fff;border:1px solid var(--portal-line);border-radius:4px; }
.koyane-portal .portal-getting-started .portal-requirements li { position:relative;margin:4px 0;padding-left:1.7em; }
.koyane-portal .portal-getting-started .portal-requirements li::before { content:"";position:absolute;left:.2em;top:.72em;width:.5em;height:.28em;border-left:2px solid var(--portal-green);border-bottom:2px solid var(--portal-green);transform:rotate(-45deg); }
.koyane-portal .portal-getting-started .portal-first-links + p { margin-top:18px; }
.koyane-portal .portal-getting-started h4 { margin:26px 0 8px;padding:0;border:0;background:none;color:var(--portal-ink);font-size:16px;font-weight:700;line-height:1.7; }
.koyane-portal .portal-getting-started h3 + h4 { margin-top:6px; }
@media(max-width:850px) {
  .koyane-portal .portal-getting-started { margin-bottom:34px;padding:24px 20px;font-size:14px; }
  .koyane-portal .portal-getting-started h2 { font-size:22px; }
  .koyane-portal .portal-getting-started h3 { font-size:17px; }
}
