:root{
      --bg:#f8fafc;
      --panel:#ffffff;
      --line:#e2e8f0;
      --text:#0f172a;
      --muted:#64748b;
      --shadow:0 12px 32px rgba(15,23,42,.08);
      --amber-bg:#fffbeb; --amber-line:#fde68a; --amber-text:#92400e;
      --emerald-bg:#ecfdf5; --emerald-line:#a7f3d0; --emerald-text:#065f46;
      --rose-bg:#fff1f2; --rose-line:#fecdd3; --rose-text:#9f1239;
      --sky-bg:#f0f9ff; --sky-line:#bae6fd; --sky-text:#0c4a6e;
      --orange-bg:#fff7ed; --orange-line:#fed7aa; --orange-text:#9a3412;
      --compare-title-size:36px;
      --compare-poem-size:20px;
      --compare-empty-size:16px;
    }
    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{
      margin:0;
      font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic","Noto Sans JP","Segoe UI",sans-serif;
      background:var(--bg);
      color:var(--text);
      line-height:1.6;
    }
    button{font:inherit}
    .container{max-width:1280px;margin:0 auto;padding:0 20px}
    .topbar{
      position:sticky;top:0;z-index:30;
      border-bottom:1px solid var(--line);
      background:rgba(255,255,255,.9);
      backdrop-filter:blur(12px);
    }
    .topbar-inner{
      display:flex;align-items:center;justify-content:space-between;
      padding:16px 0;gap:20px;
    }
    .eyebrow{
      font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);
      margin-bottom:4px;
    }
    .page-title{font-size:20px;font-weight:700}
    .actions{display:flex;gap:12px;flex-wrap:wrap}
    .pill-btn,.small-tag{
      border:1px solid var(--line);
      background:#fff;border-radius:999px;
      color:var(--muted);
    }
    .pill-btn{padding:10px 16px;font-size:14px;cursor:pointer}
    .pill-btn[disabled]{opacity:.55;cursor:not-allowed}
    .small-tag{padding:6px 12px;font-size:12px}
    .hero{display:none;
      margin:24px 0;
      border:1px solid var(--line);
      border-radius:32px;
      background:#fff;
      box-shadow:var(--shadow);
      padding:24px 28px;
    }
    .hero-inner{
      display:flex;gap:24px;justify-content:space-between;align-items:center;flex-wrap:wrap;
    }
    .hero h2{margin:4px 0 10px;font-size:34px;line-height:1.2}
    .hero p{margin:0;max-width:780px;color:var(--muted)}
    .mini-grid{
      display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;min-width:360px;
    }
    .mini{
      background:#f8fafc;border:1px solid var(--line);border-radius:18px;padding:14px;text-align:center;
    }
    .mini strong{display:block;font-size:18px}
    .mini span{font-size:12px;color:var(--muted)}
    .main-stack{display:grid;gap:24px;padding-bottom:28px}
    
    .top-grid{
      display:grid;
      grid-template-columns:240px minmax(0,1fr) 280px;
      gap:24px;
      align-items:start;
    }
    .nav-panel{
      width:240px;
      min-width:0;
      position:relative;
      overflow:hidden;
      display:flex;
      flex-direction:column;
      min-height:0;
      transition:width .18s ease, padding .18s ease;
    }
    .top-grid.nav-collapsed{
      grid-template-columns:76px minmax(0,1fr) 280px;
    }
    .top-grid.nav-collapsed .nav-panel{
      width:76px;
      padding:14px 8px 14px;
    }
    .nav-toggle-floating{display:none}
    .nav-flex{
      display:flex;
      flex-direction:column;
      gap:12px;
      min-height:0;
    }
    .nav-body{
      transition:opacity .14s ease, transform .14s ease;
    }
    .header-copy{
      transition:opacity .14s ease, transform .14s ease;
    }
    .top-grid.nav-collapsed .nav-body,
    .top-grid.nav-collapsed .header-copy,
    .top-grid.nav-collapsed #collapseBtn{
      opacity:0;
      transform:translateX(-6px);
      pointer-events:none;
    }
    .nav-rail-toggle{
      display:none;
      position:absolute;
      inset:10px;
      border:1px dashed #cbd5e1;
      border-radius:20px;
      background:#fff;
      color:var(--muted);
      cursor:pointer;
      writing-mode:vertical-rl;
      text-orientation:mixed;
      letter-spacing:.08em;
      font-size:13px;
      align-items:center;
      justify-content:center;
      box-shadow:0 8px 20px rgba(15,23,42,.05);
    }
    .top-grid.nav-collapsed .nav-rail-toggle{display:flex}
    .nav-search-wrap{
      position:relative;
      margin:0 0 2px;
    }
    .nav-search{
      width:100%;
      border:1px solid var(--line);
      border-radius:14px;
      background:#fff;
      padding:10px 12px;
      font:inherit;
      color:var(--text);
    }
    .nav-search:focus{outline:none;box-shadow:0 0 0 3px rgba(148,163,184,.15)}
    .nav-search-results{
      position:absolute;
      top:calc(100% + 8px);
      left:0;
      right:0;
      z-index:20;
      display:none;
      border:1px solid var(--line);
      border-radius:16px;
      background:#fff;
      box-shadow:var(--shadow);
      padding:8px;
      max-height:260px;
      overflow:auto;
    }
    .nav-search-results.show{display:block}
    .nav-search-item{
      width:100%;
      text-align:left;
      border:none;
      background:transparent;
      border-radius:12px;
      padding:10px 12px;
      color:var(--text);
      cursor:pointer;
      font:inherit;
    }
    .nav-search-item:hover,.nav-search-item.active{background:#f8fafc}
    .nav-search-empty{padding:10px 12px;color:var(--muted);font-size:13px}
.panel{
      border:1px solid var(--line);
      border-radius:28px;
      background:#fff;
      box-shadow:var(--shadow);
    }
    .panel-pad{padding:18px 18px 22px}
    .panel-header{
      display:flex;align-items:center;justify-content:space-between;gap:12px;
      margin-bottom:16px;
    }
    .panel-header h3{
      margin:4px 0 0;
      font-size:20px;
      line-height:1.2;
      white-space:nowrap;
    }
    .nav-tall{min-height:0;height:auto}
    .nav-flex{
      display:flex;
      height:auto;
      min-height:0;
      flex-direction:column;
      justify-content:flex-start;
      gap:12px;
    }
    .nav-panel .nav-body{
      flex:1 1 auto;
      min-height:0;
      height:auto;
      overflow:auto;
      padding-right:10px;
      scrollbar-gutter:stable;
      scrollbar-width:thin;
      scrollbar-color:rgba(148,163,184,.28) transparent;
    }
    .nav-panel .nav-body::-webkit-scrollbar,
    .right-stack::-webkit-scrollbar{
      width:8px;
    }
    .nav-panel .nav-body::-webkit-scrollbar-track,
    .right-stack::-webkit-scrollbar-track{
      background:transparent;
    }
    .nav-panel .nav-body::-webkit-scrollbar-thumb,
    .right-stack::-webkit-scrollbar-thumb{
      background:rgba(148,163,184,.28);
      border-radius:999px;
      border:2px solid transparent;
      background-clip:padding-box;
    }
    .nav-panel .nav-body::-webkit-scrollbar-thumb:hover,
    .right-stack::-webkit-scrollbar-thumb:hover{
      background:rgba(148,163,184,.42);
      background-clip:padding-box;
    }
    .soft{
      border:1px solid var(--line);
      border-radius:18px;
      background:#f8fafc;
      padding:12px;
    }
    .soft .label{font-size:12px;color:var(--muted)}
    .toc-link:hover{transform:translateY(-1px);box-shadow:0 0 0 1px var(--line) inset}
    .mv-box{
      border:1px solid var(--amber-line);
      border-radius:18px;
      background:var(--amber-bg);
      padding:12px;
    }
    .mv-item{
      width:100%;
      display:block;
      border-radius:18px;
      padding:12px;
      text-align:left;
      border:none;
      background:rgba(251,191,36,.18);
      color:#334155;
      cursor:pointer;
      transition:.18s ease;
    }
    .mv-item.active{
      background:#fff;
      box-shadow:0 0 0 1px var(--amber-line) inset;
      color:var(--text);
    }
    .mv-item:hover{transform:translateY(-1px)}
    .mv-item + .mv-item{margin-top:8px}
    .mv-item-main{display:block}
    .mv-item-source{
      display:block;
      margin-top:8px;
      padding-top:8px;
      border-top:1px solid rgba(148,163,184,.25);
      font-size:11px;
      line-height:1.45;
      color:var(--muted);
      white-space:normal;
      word-break:break-word;
    }
    .manuscript{
      min-height:560px;
      overflow:hidden;
      align-self:start;
    }
    .manuscript-top{
      display:flex;align-items:center;justify-content:space-between;gap:12px;
      border-bottom:1px solid var(--line);
      padding:16px 18px;
      background:#fff;
    }
    .manuscript-body{
      background:#f1f5f9;
      padding:18px;
    }
    .manuscript-stage{
      min-height:500px;
      display:grid;
      place-items:center;
      border:1px dashed #cbd5e1;
      border-radius:28px;
      background:#fff;
      overflow:auto;
    }
    .manuscript-scale-wrap{
      transform-origin:center center;
      transition:transform .18s ease;
      width:100%;
      display:grid;
      place-items:center;
      padding:10px;
    }
    .manuscript-card{
      width:100%;
      max-width:520px;
      border:1px solid #e5e7eb;
      border-radius:24px;
      background:#fafaf9;
      padding:24px;
      box-shadow:0 4px 14px rgba(15,23,42,.05);
    }
    .muted-row{
      display:flex;justify-content:space-between;gap:12px;
      font-size:12px;color:var(--muted);margin-bottom:16px;
    }
    .centered{text-align:center}
    .manuscript-image{
      width:100%;
      border-radius:18px;
      border:1px solid #e5e7eb;
      background:#fff;
      display:none;
      margin-top:16px;
    }
    .manuscript-image.show{display:block}
    .status-note{
      margin-top:16px;background:#fff;padding:12px 14px;font-size:14px;border-radius:18px;border:1px solid var(--line);color:var(--muted)
    }
    .source-meta{
      margin-top:10px;
      font-size:13px;
      color:var(--muted);
      line-height:1.7;
      text-align:left;
      padding:0 4px;
    }
    .source-inline{
      margin-top:6px;
      font-size:12px;
      color:var(--muted);
      line-height:1.6;
      max-width:28ch;
    }

    .manuscript{
      width:100%;
      min-width:0;
      flex:1 1 auto;
    }
    .manuscript-mode{
      display:flex;
      gap:8px;
      align-items:center;
      flex-wrap:wrap;
    }
    .manuscript-mode .seg-btn{
      min-width:92px;
    }
    .mirador-stage{
      min-height:500px;
      display:none;
      border:1px solid #cbd5e1;
      border-radius:28px;
      background:#fff;
      overflow:hidden;
      position:relative;
    }
    .manuscript.mirador-mode .manuscript-stage{
      display:none;
    }
    .manuscript.mirador-mode .mirador-stage{
      display:block;
    }
    .mirador-frame{
      width:100%;
      border:0;
      background:#fff;
    }
    .mirador-empty{
      height:100%;
      min-height:500px;
      display:grid;
      place-items:center;
      padding:28px;
      text-align:center;
      color:var(--muted);
      line-height:1.8;
    }
    .mirador-empty strong{
      display:block;
      color:var(--text);
      margin-bottom:8px;
      font-size:18px;
    }
    .mirador-empty[hidden]{display:none !important;}
    .mirador-frame[hidden]{display:none !important;}
    .mirador-empty code{
      display:inline-block;
      margin-top:8px;
      padding:4px 8px;
      border-radius:10px;
      background:#f8fafc;
      border:1px solid var(--line);
      color:var(--text);
      font-size:12px;
    }
    .right-stack{
      display:flex;flex-direction:column;gap:16px;
      width:280px;justify-self:end;align-self:start;
      height:auto;min-height:0;justify-content:flex-start;
      overflow:auto;overflow-x:hidden;
      padding-right:10px;
      scrollbar-gutter:stable;
      scrollbar-width:thin;
      scrollbar-color:rgba(148,163,184,.28) transparent;
    }
    .sky{background:var(--sky-bg);border-color:var(--sky-line)}
    .orange{background:var(--orange-bg);border-color:var(--orange-line)}
    .memo-card .item,.s-card .item{
      border-radius:18px;padding:10px 14px;font-size:14px;
    }
    .s-card .item + .item,.memo-card .item + .item{margin-top:8px}
    .sky .item{background:var(--sky-bg);box-shadow:0 0 0 1px rgba(186,230,253,.9) inset}
    .orange .item{background:var(--orange-bg);box-shadow:0 0 0 1px rgba(254,215,170,.9) inset}
    .memo-card .item{background:#f8fafc;box-shadow:0 0 0 1px var(--line) inset}
    .nav-side-notes{display:grid;gap:12px;margin-top:12px}
    .nav-side-notes .mini-note{border:1px solid var(--line);border-radius:18px;padding:12px 14px;background:#fff}
    .nav-side-notes .mini-note .mini-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
    .nav-side-notes .mini-note h4{margin:0;font-size:15px;line-height:1.25}
    .nav-side-notes .mini-note .small-tag{padding:4px 10px;font-size:11px}
    .nav-side-notes .mini-note .item{border-radius:14px;padding:8px 10px;font-size:13px;line-height:1.6}
    .nav-side-notes .mini-note .item + .item{margin-top:6px}
    .nav-side-notes .mini-note.sky{background:var(--sky-bg);border-color:var(--sky-line)}
    .nav-side-notes .mini-note.sky .item{background:#fff;box-shadow:0 0 0 1px rgba(186,230,253,.9) inset}
    .nav-side-notes .mini-note.orange{background:var(--orange-bg);border-color:var(--orange-line)}
    .nav-side-notes .mini-note.orange .item{background:#fff;box-shadow:0 0 0 1px rgba(254,215,170,.9) inset}
    .compare{overflow:hidden}
    .compare-top{
      display:flex;align-items:center;justify-content:space-between;gap:12px;
      border-bottom:1px solid var(--line);padding:16px 18px;background:#fff;
    }
    .compare-body{background:#f8fafc;padding:18px}
    .compare-grid{
      display:grid;gap:20px;grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .text-card{
      border-radius:28px;padding:20px 22px;
    }
    .text-card.emerald{background:var(--emerald-bg);border:1px solid var(--emerald-line)}
    .text-card.rose{background:var(--rose-bg);border:1px solid var(--rose-line)}
    .text-card .head{
      display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;
    }
    .text-card .head h3{margin:4px 0 0;font-size:22px}
    .inner-text{
      border-radius:24px;background:#fff;padding:28px;
    }
    .inner-text h4{margin:0 0 18px;text-align:center;font-size:var(--compare-title-size)}
    .compare-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 18px;border-bottom:1px solid var(--line);background:#fff}
    .segmented{display:flex;gap:8px;flex-wrap:wrap}
    .seg-btn{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 14px;font-size:13px;color:var(--muted);cursor:pointer}
    .seg-btn.active{background:#0f172a;color:#fff;border-color:#0f172a}
    .seg-btn.toggle-on{background:#f8fafc;border-color:#94a3b8;color:#0f172a}
    .poem p{margin:0 0 12px;font-size:var(--compare-poem-size);line-height:2.0;word-break:break-word}
    .poem .empty-note{color:var(--muted);font-size:var(--compare-empty-size);line-height:1.8}
    .diff-mt{background:#dcfce7;border-radius:6px;padding:0 2px}
    .diff-c{background:#fee2e2;border-radius:6px;padding:0 2px}
    .footer-note{
      text-align:center;color:var(--muted);font-size:12px;padding:6px 0 28px;
    }
    @media (max-width: 1120px){
      .top-grid,.top-grid.nav-collapsed{grid-template-columns:1fr;align-items:start}
      .right-stack{width:100%;justify-self:stretch;height:auto}
      .nav-panel,.top-grid.nav-collapsed .nav-panel{
        width:100%;
        min-height:unset;
        padding:18px 18px 22px;
      }
      .nav-tall,.manuscript{min-height:unset;height:auto}
      .nav-flex{min-height:unset;height:auto}
      .mini-grid{min-width:unset;width:100%;grid-template-columns:repeat(2,minmax(0,1fr))}
      .nav-body,.top-grid.nav-collapsed .nav-body,
      .header-copy,.top-grid.nav-collapsed .header-copy,
      .top-grid.nav-collapsed #collapseBtn{
        opacity:1;transform:none;pointer-events:auto;
      }
      .nav-rail-toggle,.top-grid.nav-collapsed .nav-rail-toggle{display:none}
    }
    @media (max-width: 760px){
      .container{padding:0 16px}
      .topbar-inner{padding:14px 0;flex-direction:column;align-items:stretch;gap:12px}
      .actions{display:flex;gap:8px;width:100%}
      .actions .pill-btn{flex:1;min-width:0;padding:10px 12px;font-size:13px}
      .hero{display:none;padding:20px 18px;border-radius:24px}
      .hero-inner{gap:18px}
      .hero h2{font-size:27px}
      .hero p{font-size:15px}
      .main-stack{gap:18px}
      .top-grid{gap:16px}
      .panel{border-radius:24px}
      .panel-pad,.manuscript-body,.compare-body{padding:14px}
      .manuscript-top,.compare-top{padding:14px 14px}
      .manuscript-top{flex-wrap:wrap}
      .manuscript-stage{min-height:340px;border-radius:24px}
      .mirador-stage{min-height:340px;border-radius:24px}
      .mirador-frame{height:420px}
      .manuscript-card{max-width:100%;padding:18px;border-radius:20px}
      .muted-row{flex-wrap:wrap}
      .source-meta{font-size:12px;line-height:1.6;padding:0 2px}
      .source-inline{max-width:none;font-size:12px}
      .mv-item-source{font-size:10px;line-height:1.45}
      .right-stack{gap:12px}
      .compare-controls{flex-direction:column;align-items:stretch;padding:12px 14px}
      .compare-controls .segmented{width:100%}
      .compare-controls .seg-btn{flex:1;justify-content:center;text-align:center}
      .compare-grid{grid-template-columns:1fr;gap:14px}
      .text-card{min-height:auto;padding:16px 16px}
      .inner-text{padding:20px 18px;min-height:unset}
      .inner-text h4{font-size:var(--compare-title-size)}
      .poem p{font-size:var(--compare-poem-size);line-height:1.9}
      .status-note{font-size:13px}
    }
  
    /* browse readability reset 2026-04-22 */
    .right-stack{
      display:none !important;
    }

    .topbar-inner{
      padding:10px 0;
      gap:12px;
    }

    .page-title{
      font-size:18px;
      line-height:1.25;
    }

    .actions .pill-btn{
      min-height:36px;
      padding:8px 14px;
      font-size:13px;
    }

    @media (min-width:1121px){
      .top-grid,
      .top-grid.nav-collapsed{
        grid-template-columns:240px minmax(0,1fr) !important;
      }
    }

    @media (max-width:760px){
      .topbar-inner{
        padding:8px 0;
        gap:8px;
      }

      .page-title{
        font-size:16px;
        line-height:1.3;
      }

      .actions{
        gap:8px;
      }

      .actions .pill-btn{
        min-height:32px;
        padding:7px 10px;
        font-size:12px;
      }

      .panel-header h3,
      .manuscript-top h3,
      .compare-top h3{
        font-size:18px !important;
      }

      .compare-controls{
        gap:8px;
      }

      .seg-btn{
        padding:7px 10px;
        font-size:12px;
      }

      .inner-text{
        padding:16px 14px;
      }

      .poem p{
        font-size:16px;
        line-height:1.8;
      }
    }

  
    /* toc fold + auto fit 2026-04-22 */
    .nav-panel{
      transition:width .18s ease, padding .18s ease, max-height .18s ease;
    }

    @media (max-width:1120px){
      .nav-panel{
        width:100% !important;
      }
      .nav-panel.mobile-folded .nav-body{
        display:none !important;
      }
      .nav-panel.mobile-folded{
        padding-bottom:14px !important;
      }
      .nav-panel.mobile-folded .panel-header{
        margin-bottom:0 !important;
      }
      .nav-panel.mobile-folded .header-copy{
        opacity:1 !important;
        transform:none !important;
        pointer-events:auto !important;
      }
      .nav-panel.mobile-folded #collapseBtn{
        opacity:1 !important;
        transform:none !important;
        pointer-events:auto !important;
      }
    }

    @media (min-width:1121px){
      .top-grid.nav-collapsed{
        grid-template-columns:76px minmax(0,1fr) !important;
      }
      .top-grid.nav-collapsed .manuscript{
        width:100%;
        max-width:none;
        justify-self:stretch;
        align-self:start;
      }
      .top-grid.nav-collapsed .manuscript-body{
        padding:18px;
      }
      .top-grid.nav-collapsed .manuscript-stage{
        padding-left:0;
        padding-right:0;
      }
      .top-grid.nav-collapsed .manuscript-scale-wrap{
        width:100%;
        justify-self:center;
      }
      .top-grid.nav-collapsed .manuscript-card{
        max-width:520px;
        margin-left:auto;
        margin-right:auto;
      }
    }


    /* compact topbar + home row fix 2026-04-22 */
    .topbar-inner{
      padding:10px 0 !important;
      gap:12px !important;
    }
    .page-title{
      font-size:18px !important;
      line-height:1.2 !important;
    }
    .page-subtitle{
      margin-top:2px !important;
      font-size:11px !important;
      line-height:1.25 !important;
    }
    .actions{
      display:flex !important;
      flex-wrap:wrap !important;
      gap:8px !important;
      align-items:center !important;
      justify-content:flex-end !important;
    }
    .actions .pill-btn,
    .actions button,
    .actions a{
      min-height:34px !important;
      padding:7px 12px !important;
      font-size:12px !important;
      border-radius:999px !important;
      white-space:nowrap !important;
    }

    @media (max-width:760px){
      .topbar-inner{
        padding:8px 0 !important;
        gap:8px !important;
      }
      .page-title{
        font-size:16px !important;
        line-height:1.2 !important;
      }
      .page-subtitle{
        font-size:10px !important;
        line-height:1.2 !important;
      }
      .actions{
        display:grid !important;
        grid-template-columns:repeat(3,minmax(0,1fr)) !important;
        gap:8px !important;
        width:100% !important;
      }
      .actions .pill-btn,
      .actions button,
      .actions a{
        min-height:32px !important;
        padding:6px 8px !important;
        font-size:11px !important;
        width:100% !important;
      }

      /* 强制ホーム按钮变成主页検索同色 */
      .actions a[href="index.html"],
      .actions a[href="./index.html"],
      .actions a[href="../index.html"],
      .actions a[href$="index.html"]{
        background:#92400e !important;
        color:#fff !important;
        border:1px solid #92400e !important;
        box-shadow:0 10px 24px rgba(146,64,14,.18) !important;
      }
    }


    /* nav buttons rebuild same as index 2026-04-22 */
    .actions{
      display:grid !important;
      grid-template-columns:repeat(3,minmax(0,1fr)) !important;
      gap:12px !important;
      align-items:center !important;
      justify-content:end !important;
      width:auto !important;
      min-width:360px;
    }

    .actions .pill-btn,
    .actions button,
    .actions a{
      display:inline-flex !important;
      align-items:center !important;
      justify-content:center !important;
      min-height:42px !important;
      padding:10px 18px !important;
      border-radius:999px !important;
      font-weight:700 !important;
      font-size:14px !important;
      white-space:nowrap !important;
      width:100% !important;
      text-align:center !important;
      transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease !important;
    }

    /* 前へ / 次へ：主页次按钮风格 */
    .actions .pill-btn,
    .actions button,
    .actions a{
      background:#fff !important;
      color:var(--text) !important;
      border:1px solid var(--line) !important;
      box-shadow:var(--shadow) !important;
    }

    /* ホーム：主页検索按钮风格 */
    .actions a[href="index.html"],
    .actions a[href="./index.html"],
    .actions a[href="../index.html"],
    .actions a[href$="index.html"]{
      background:#92400e !important;
      color:#fff !important;
      border:1px solid #92400e !important;
      box-shadow:0 10px 24px rgba(146,64,14,.18) !important;
    }

    @media (max-width:760px){
      .actions{
        display:grid !important;
        grid-template-columns:repeat(3,minmax(0,1fr)) !important;
        gap:10px !important;
        width:100% !important;
        min-width:0 !important;
      }

      .actions .pill-btn,
      .actions button,
      .actions a{
        min-height:36px !important;
        padding:10px 14px !important;
        font-size:13px !important;
        width:100% !important;
      }
    }


    /* mobile fold refine 2026-04-22 v2 */
    @media (max-width:1120px){
      /* 作品情報卡默认折叠 */
      .nav-panel.mobile-folded .nav-body{
        display:none !important;
      }
      .nav-panel.mobile-folded{
        padding-bottom:10px !important;
      }
      .nav-panel.mobile-folded .panel-header{
        margin-bottom:0 !important;
      }

      /* 原稿・草稿画像上下更紧 */
      .manuscript-top{
        padding:10px 12px !important;
      }
      .manuscript-body{
        padding:10px 12px !important;
      }
      .manuscript-card{
        padding:12px !important;
      }

      /* Mt / C 功能区默认折叠，但定本本文テクスト保持显示 */
      .compare-panel.mobile-folded .compare-body{
        display:grid !important;
        grid-template-columns:1fr !important;
        gap:10px !important;
      }
      .compare-panel.mobile-folded{
        padding-bottom:10px !important;
      }
      .compare-panel.mobile-folded .compare-top{
        margin-bottom:0 !important;
      }
    }


    /* browse polish 2026-04-23 */
    :root{
      --compare-title-size:28px;
      --compare-poem-size:24px;
      --compare-empty-size:15px;
    }

    .topbar-inner{
      align-items:center !important;
    }
    .topbar-inner > div:first-child{
      display:flex;
      flex-direction:column;
      justify-content:center;
    }
    .actions{
      align-self:center !important;
      margin-top:8px !important;
    }

    .compare-top h3{
      font-size:18px !important;
    }
    .inner-text h4{
      margin:0 0 14px;
      font-size:calc(var(--compare-title-size) - 2px);
      line-height:1.35;
      letter-spacing:.01em;
    }
    .poem p{
      font-size:var(--compare-poem-size);
      line-height:2.08;
      letter-spacing:.01em;
    }
    .diff-mt,.diff-c{
      padding:0 1px;
      border-radius:4px;
      box-decoration-break:clone;
      -webkit-box-decoration-break:clone;
    }

    @media (max-width:760px){
      .actions{
        margin-top:4px !important;
      }
      .compare-top h3{
        font-size:16px !important;
      }
    }


    .manuscript:fullscreen{
      width:100vw !important;
      height:100vh !important;
      max-width:none !important;
      margin:0 !important;
      border-radius:0 !important;
    }

    .manuscript:fullscreen .manuscript-body{
      height:calc(100vh - 64px) !important;
      padding:0 !important;
      background:transparent !important;
    }

    .manuscript:fullscreen .mirador-stage{
      min-height:calc(100vh - 64px) !important;
      height:calc(100vh - 64px) !important;
      border:none !important;
      border-radius:0 !important;
      background:transparent !important;
    }

    .manuscript:fullscreen .mirador-frame{
      width:100% !important;
      height:calc(100vh - 64px) !important;
      display:block !important;
      border:0 !important;
    }

    .manuscript:fullscreen .manuscript-top{
      border-radius:0 !important;
    }


    /* manuscript area thinner for larger Mirador */
    .manuscript-top{
      padding: 8px 12px !important;
      min-height: 44px !important;
    }

    .manuscript-top h3{
      font-size: 17px !important;
      line-height: 1.15 !important;
      margin: 2px 0 0 !important;
    }

    .manuscript-top .eyebrow{
      margin-bottom: 0 !important;
      font-size: 10px !important;
      line-height: 1 !important;
    }

    .manuscript-mode{
      gap: 6px !important;
    }

    .manuscript-mode .seg-btn,
    .manuscript-mode .small-tag{
      min-height: 28px !important;
      padding: 4px 10px !important;
      font-size: 12px !important;
      line-height: 1.1 !important;
    }

    .manuscript-body{
      padding: 6px !important;
    }

    .mirador-stage{
      min-height: calc(100vh - 210px) !important;
      border-radius: 18px !important;
    }

    .mirador-frame{
      height: calc(100vh - 210px) !important;
      display: block !important;
    }

    .manuscript-stage{
      min-height: calc(100vh - 210px) !important;
      border-radius: 18px !important;
    }

    .manuscript-scale-wrap{
      padding: 4px !important;
    }

    .manuscript-card{
      padding: 14px !important;
      border-radius: 18px !important;
    }

    .muted-row{
      margin-bottom: 10px !important;
      font-size: 11px !important;
    }

    .source-meta{
      margin-top: 6px !important;
      font-size: 12px !important;
      line-height: 1.5 !important;
    }

    .status-note{
      margin-top: 8px !important;
      padding: 8px 10px !important;
      font-size: 12px !important;
      line-height: 1.45 !important;
    }

    @media (max-width: 760px){
      .manuscript-top{
        padding: 6px 8px !important;
        min-height: 40px !important;
      }

      .manuscript-top h3{
        font-size: 15px !important;
      }

      .manuscript-mode .seg-btn,
      .manuscript-mode .small-tag{
        min-height: 26px !important;
        padding: 3px 8px !important;
        font-size: 11px !important;
      }

      .manuscript-body{
        padding: 4px !important;
      }

      .mirador-stage,
      .manuscript-stage{
        min-height: calc(100vh - 180px) !important;
      }

      .mirador-frame{
        height: calc(100vh - 180px) !important;
      }
    }


    /* fullscreen auto-hide manuscript top bar */
    .manuscript:fullscreen .manuscript-top{
      position: absolute !important;
      top: 0 !important;
      left: 0 !important;
      right: 0 !important;
      z-index: 50 !important;
      transform: translateY(-100%);
      opacity: 0;
      pointer-events: none;
      transition: transform .22s ease, opacity .18s ease;
      background: rgba(255,255,255,.84) !important;
      backdrop-filter: blur(8px);
    }

    .manuscript:fullscreen.show-topbar .manuscript-top,
    .manuscript:fullscreen:hover .manuscript-top{
      transform: translateY(0);
      opacity: 1;
      pointer-events: auto;
    }

    .manuscript:fullscreen .manuscript-body{
      height: 100vh !important;
      padding-top: 0 !important;
    }

    .manuscript:fullscreen .mirador-stage{
      min-height: 100vh !important;
      height: 100vh !important;
    }

    .manuscript:fullscreen .mirador-frame{
      height: 100vh !important;
    }

    .manuscript:fullscreen .manuscript-stage{
      min-height: 100vh !important;
      height: 100vh !important;
    }




    /* fullscreen button same size as Mirador */
    #fullscreenBtn{
      min-height: 32px !important;
      padding: 8px 14px !important;
      font-size: 13px !important;
      line-height: 1.1 !important;
      border-radius: 999px !important;
    }

    @media (max-width:760px){
      #fullscreenBtn{
        min-height: 30px !important;
        padding: 7px 12px !important;
        font-size: 12px !important;
      }
    }


    /* manuscript area balanced: normal mode default */
    .manuscript-body{
      padding: 0 !important;
      background: transparent !important;
    }

    .mirador-stage{
      min-height: calc(100vh - 170px) !important;
      height: calc(100vh - 170px) !important;
      border: none !important;
      border-radius: 0 0 18px 18px !important;
      background: transparent !important;
    }

    .mirador-frame{
      width: 100% !important;
      height: calc(100vh - 170px) !important;
      display: block !important;
      border: 0 !important;
      background: transparent !important;
    }

    @media (max-width:760px){
      .mirador-stage{
        min-height: calc(100vh - 150px) !important;
        height: calc(100vh - 150px) !important;
      }

      .mirador-frame{
        height: calc(100vh - 150px) !important;
      }
    }


    /* unify all card titles */
    .panel-header h3,
    .manuscript-top h3,
    .compare-top h3,
    .text-card .head h3{
      font-size: 18px !important;
      line-height: 1.2 !important;
      font-weight: 700 !important;
      margin: 4px 0 0 !important;
    }

    @media (max-width:760px){
      .panel-header h3,
      .manuscript-top h3,
      .compare-top h3,
      .text-card .head h3{
        font-size: 16px !important;
      }
    }


    /* unify small card titles too */
    .nav-side-notes .mini-note h4,
    #s1Section h3,
    #s2Section h3{
      font-size: 18px !important;
      line-height: 1.2 !important;
      font-weight: 700 !important;
      margin: 4px 0 0 !important;
    }

    @media (max-width:760px){
      .nav-side-notes .mini-note h4,
      #s1Section h3,
      #s2Section h3{
        font-size: 16px !important;
      }
    }


    /* tighten gap between work info and manuscript */
    .top-grid{
      gap: 16px !important;
    }

    @media (max-width:1120px){
      .top-grid{
        gap: 16px !important;
      }
    }


    /* tighten vertical gap between manuscript area and compare area */
    .main-stack{
      gap: 14px !important;
    }

    @media (max-width:760px){
      .main-stack{
        gap: 12px !important;
      }
    }


    @media (max-width:1120px){
      .compare-panel.mobile-folded .compare-controls{
        display:flex !important;
      }

      .compare-panel.mobile-folded .mt-panel,
      .compare-panel.mobile-folded .c-panel{
        display:block !important;
      }

      #fontSizeButtons{
        display:flex !important;
      }
    }


    /* hide S1 and S2 cards on all devices */
    #s1Section,
    #s2Section,
    #navSideNotes,
    .nav-side-notes{
      display: none !important;
    }


    /* compress compare header + toolbar to manuscript-top level */
    .compare-top{
      padding: 8px 12px !important;
      min-height: 44px !important;
      align-items: center !important;
    }

    .compare-top .eyebrow{
      margin-bottom: 0 !important;
      font-size: 10px !important;
      line-height: 1 !important;
    }

    .compare-top h3{
      font-size: 17px !important;
      line-height: 1.15 !important;
      margin: 2px 0 0 !important;
    }

    .compare-top .small-tag{
      min-height: 28px !important;
      padding: 4px 10px !important;
      font-size: 12px !important;
      line-height: 1.1 !important;
    }

    .compare-controls{
      padding: 6px 12px !important;
      gap: 8px !important;
      min-height: 40px !important;
      align-items: center !important;
    }

    .compare-controls .segmented{
      gap: 6px !important;
    }

    .compare-controls .seg-btn{
      min-height: 28px !important;
      padding: 4px 10px !important;
      font-size: 12px !important;
      line-height: 1.1 !important;
      border-radius: 999px !important;
    }

    @media (max-width:760px){
      .compare-top{
        padding: 6px 8px !important;
        min-height: 40px !important;
      }

      .compare-top h3{
        font-size: 15px !important;
      }

      .compare-top .small-tag{
        min-height: 26px !important;
        padding: 3px 8px !important;
        font-size: 11px !important;
      }

      .compare-controls{
        padding: 6px 8px !important;
        gap: 6px !important;
      }

      .compare-controls .seg-btn{
        min-height: 26px !important;
        padding: 3px 8px !important;
        font-size: 11px !important;
      }
    }


    /* soften 作品情報 header to match 原稿・草稿画像 visually */
    #navPanel{
      padding-top: 0 !important;
    }

    #navPanel .panel-header{
      padding: 10px 12px !important;
      min-height: 48px !important;
      margin-bottom: 8px !important;
      display: flex !important;
      align-items: center !important;
      justify-content: space-between !important;
      gap: 8px !important;
    }

    #navPanel .panel-header h3{
      font-size: 17px !important;
      line-height: 1.2 !important;
      margin: 0 !important;
      font-weight: 700 !important;
    }

    #collapseBtn{
      min-height: 30px !important;
      padding: 4px 12px !important;
      font-size: 12px !important;
      line-height: 1.1 !important;
      border-radius: 999px !important;
    }

    @media (max-width:760px){
      #navPanel .panel-header{
        padding: 8px 8px !important;
        min-height: 42px !important;
        margin-bottom: 6px !important;
      }

      #navPanel .panel-header h3{
        font-size: 15px !important;
      }

      #collapseBtn{
        min-height: 28px !important;
        padding: 3px 10px !important;
        font-size: 11px !important;
      }
    }


    /* mobile: topbar no longer sticky */
    @media (max-width:760px){
      .topbar{
        position: static !important;
        top: auto !important;
      }
    }


    /* hide font size buttons on mobile only */
    @media (max-width:760px){
      #fontSizeButtons{
        display:none !important;
      }
    }


/* unify top title and hide archive eyebrow 2026-04-25 */
.topbar{
  position:static !important;
  top:auto !important;
}

.topbar .eyebrow{
  display:none !important;
}

.topbar-inner{
  padding:6px 0 !important;
  align-items:center !important;
}

.site-title,
.page-title{
  font-size:17px !important;
  line-height:1.2 !important;
  font-weight:700 !important;
}

.site-subtitle,
.page-subtitle{
  margin-top:2px !important;
  font-size:10px !important;
  line-height:1.2 !important;
  color:var(--muted) !important;
}

@media (max-width:760px){
  .site-title,
  .page-title{
    font-size:15px !important;
  }

  .site-subtitle,
  .page-subtitle{
    font-size:9px !important;
  }
}


/* indexed raw text table 2026-04-25 */
.indexed-poem-table{
  width:auto !important;
  margin:0 auto !important;
  border-collapse:separate !important;
  border-spacing:5px 6px !important;
}

.indexed-poem-table .line-no{
  min-width:30px !important;
  padding:0 8px 0 0 !important;
  font-size:12px !important;
  font-weight:800 !important;
  color:#64748b !important;
  text-align:right !important;
  vertical-align:middle !important;
}

.indexed-poem-table .line-no::before{ content:"" !important; }

.indexed-poem-table .char-cell{
  position:relative !important;
  min-width:34px !important;
  height:42px !important;
  padding:13px 4px 3px !important;
  border:1px solid rgba(148,163,184,.24) !important;
  border-radius:8px !important;
  background:rgba(255,255,255,.96) !important;
  text-align:center !important;
  vertical-align:middle !important;
}

.indexed-poem-table .char-col{
  position:absolute !important;
  top:3px !important;
  left:0 !important;
  right:0 !important;
  font-size:9px !important;
  line-height:1 !important;
  color:#94a3b8 !important;
  font-weight:800 !important;
}

.indexed-poem-table .char-body{
  display:block !important;
  font-size:24px !important;
  line-height:1.1 !important;
  font-family:"ＭＳ 明朝","ＭＳ 明朝","Noto Serif JP",serif !important;
  color:#0f172a !important;
}

.indexed-poem-table .char-cell:hover{
  border-color:#92400e !important;
  box-shadow:0 0 0 2px rgba(146,64,14,.13) !important;
}

.indexed-poem-table .char-cell:hover::after{
  content:"第" attr(data-line) "行・第" attr(data-col) "字";
  position:absolute !important;
  top:-24px !important;
  left:50% !important;
  transform:translateX(-50%) !important;
  padding:2px 7px !important;
  border-radius:999px !important;
  background:#0f172a !important;
  color:#fff !important;
  font-size:10px !important;
  white-space:nowrap !important;
  z-index:10 !important;
}

.indexed-poem-table .diff-mt-cell{
  background:#dcfce7 !important;
  border-color:#22c55e !important;
  box-shadow:0 0 0 2px rgba(34,197,94,.16) inset !important;
}

.indexed-poem-table .diff-c-cell{
  background:#fee2e2 !important;
  border-color:#f87171 !important;
  box-shadow:0 0 0 2px rgba(248,113,113,.16) inset !important;
}

@media (max-width:760px){
  .indexed-poem-table{
    border-spacing:3px 4px !important;
  }

  .indexed-poem-table .char-cell{
    min-width:28px !important;
    height:37px !important;
    padding:10px 3px 2px !important;
  }

  .indexed-poem-table .char-body{
    font-size:21px !important;
  }
}


/* Japanese line/column labels + natural manuscript image size 2026-04-25 */
.indexed-poem-table .line-no{
  min-width:36px !important;
}

.indexed-poem-table .char-cell:hover::after{
  content:"第" attr(data-line) "行・第" attr(data-col) "字" !important;
}

/* 手稿图片尽量显示原尺寸，超出容器时再自动缩小 */
.manuscript-image{
  width:auto !important;
  height:auto !important;
  max-width:100% !important;
  max-height:none !important;
  object-fit:contain !important;
  margin:16px auto 0 !important;
}

/* 普通图片容器允许按图片自然高度显示 */
.manuscript-stage{
  overflow:auto !important;
}

.manuscript-card{
  max-width:none !important;
  width:auto !important;
  display:inline-block !important;
}


/* unify terminology + hide engineering labels 2026-04-25 */
#mvLabel,
#mvId,
#mvPath,
#mvWorkTitle,
#statusNote,
#mtBadge,
#mtTitle,
#cDisplayTitle,
.text-card .eyebrow,
.text-card .small-tag,
.mini-grid,
#s1Section .eyebrow,
#s2Section .eyebrow{
  display:none !important;
}

/* 保留学术说明，不显示工程编号 */
.mv-item-main div:nth-child(1),
.mv-item-main div:nth-child(2),
.mv-item-main div:nth-child(3){
  display:none !important;
}

.mv-item::before{
  content:"原稿・草稿";
  display:block;
  font-size:13px;
  font-weight:700;
  color:#92400e;
}

.source-inline{
  max-width:none !important;
}


/* align 第 in line labels 2026-04-25 */
.indexed-poem-table .line-no{
  width:52px !important;
  min-width:52px !important;
  max-width:52px !important;
  padding:0 10px 0 0 !important;
  text-align:right !important;
  white-space:nowrap !important;
  font-variant-numeric:tabular-nums !important;
}


/* hover arrow for corresponding position 2026-04-25 */
.indexed-poem-table .char-cell.match-hover{
  border-color:#92400e !important;
  background:#fffbeb !important;
  box-shadow:0 0 0 2px rgba(146,64,14,.16) inset !important;
}

.indexed-poem-table .char-cell.match-hover::before{
  content:"↓";
  position:absolute;
  top:-18px;
  left:50%;
  transform:translateX(-50%);
  color:#92400e;
  font-size:15px;
  font-weight:900;
  line-height:1;
  z-index:12;
  pointer-events:none;
}

.indexed-poem-table .char-cell.match-hover::after{
  content:"第" attr(data-line) "行・第" attr(data-col) "字" !important;
}


/* stronger hover arrow marker 2026-04-25 */
.indexed-poem-table .char-cell.match-hover::before{
  content:"▼" !important;
  position:absolute !important;
  top:-24px !important;
  left:50% !important;
  transform:translateX(-50%) !important;
  width:22px !important;
  height:22px !important;
  border-radius:999px !important;
  background:#92400e !important;
  color:#fff !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  font-size:12px !important;
  font-weight:900 !important;
  line-height:1 !important;
  box-shadow:0 6px 14px rgba(146,64,14,.28) !important;
  z-index:20 !important;
  pointer-events:none !important;
}

.indexed-poem-table .char-cell.match-hover{
  border-color:#92400e !important;
  background:#fff7ed !important;
  box-shadow:
    0 0 0 2px rgba(146,64,14,.22) inset,
    0 6px 14px rgba(146,64,14,.12) !important;
}


/* hover label above + arrow up below 2026-04-25 */
.indexed-poem-table .char-cell.match-hover::before{
  content:"第" attr(data-line) "行・第" attr(data-col) "字" !important;
  position:absolute !important;
  top:-27px !important;
  left:50% !important;
  transform:translateX(-50%) !important;
  width:auto !important;
  height:auto !important;
  padding:3px 8px !important;
  border-radius:999px !important;
  background:#0f172a !important;
  color:#fff !important;
  display:block !important;
  font-size:10px !important;
  font-weight:800 !important;
  line-height:1.1 !important;
  white-space:nowrap !important;
  box-shadow:0 6px 14px rgba(15,23,42,.22) !important;
  z-index:20 !important;
  pointer-events:none !important;
}

.indexed-poem-table .char-cell.match-hover::after{
  content:"↑" !important;
  position:absolute !important;
  bottom:-23px !important;
  left:50% !important;
  transform:translateX(-50%) !important;
  width:20px !important;
  height:20px !important;
  border-radius:999px !important;
  background:#92400e !important;
  color:#fff !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  font-size:14px !important;
  font-weight:900 !important;
  line-height:1 !important;
  box-shadow:0 6px 14px rgba(146,64,14,.28) !important;
  z-index:20 !important;
  pointer-events:none !important;
}

.indexed-poem-table .char-cell.match-hover{
  border-color:#92400e !important;
  background:#fff7ed !important;
  box-shadow:
    0 0 0 2px rgba(146,64,14,.22) inset,
    0 6px 14px rgba(146,64,14,.12) !important;
}


/* remove hover arrow, keep position label 2026-04-25 */
.indexed-poem-table .char-cell.match-hover::after{
  content:none !important;
  display:none !important;
}

.indexed-poem-table .char-cell.match-hover::before{
  content:"第" attr(data-line) "行・第" attr(data-col) "字" !important;
}


/* column number digit-style + side copy buttons 2026-04-25 */
.indexed-poem-table .char-col{
  display:block !important;
  width:2.2em !important;
  left:50% !important;
  right:auto !important;
  transform:translateX(-50%) !important;
  text-align:center !important;
  letter-spacing:0 !important;
  white-space:pre !important;
}

.side-copy-btn{
  margin-left:auto !important;
  min-height:24px !important;
  padding:3px 9px !important;
  font-size:10px !important;
  line-height:1.1 !important;
  border-radius:999px !important;
  white-space:nowrap !important;
}


/* ＭＳ 明朝 + pair mode cleanup 2026-04-25 */
#wordCopyBtn,
#paperCopyBtn,
.compare-controls .segmented,
.compare-controls-inline .segmented{
  gap:6px !important;
}

.compare-controls .seg-btn,
.compare-controls-inline .seg-btn{
  white-space:nowrap !important;
}

.indexed-poem-table .char-body,
.inner-text,
.poem{
  font-family:"ＭＳ 明朝",serif !important;
}


/* kundoku ruby/plain mode buttons 2026-04-25 */
#textModeButtons{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:6px !important;
}

#textModeButtons .seg-btn{
  min-width:auto !important;
  white-space:nowrap !important;
  padding-left:10px !important;
  padding-right:10px !important;
}


/* Souyun hover search popup 2026-04-25 */
.souyun-popup{
  position:fixed;
  z-index:9999;
  width:360px;
  max-height:300px;
  overflow:auto;
  padding:12px 14px;
  border:1px solid #e2e8f0;
  border-radius:16px;
  background:rgba(255,255,255,.97);
  box-shadow:0 18px 42px rgba(15,23,42,.18);
  font-family:"ＭＳ 明朝",serif;
  font-size:12px;
  line-height:1.55;
  color:#0f172a;
  display:none;
}

.souyun-popup.show{
  display:block;
}

.souyun-popup-title{
  font-weight:700;
  margin-bottom:6px;
  color:#92400e;
}

.souyun-popup-small{
  color:#64748b;
  font-size:11px;
  margin-bottom:8px;
}

.souyun-result{
  padding:7px 0;
  border-top:1px solid #e2e8f0;
}

.souyun-result:first-of-type{
  border-top:none;
}

.souyun-result-meta{
  color:#64748b;
  font-size:11px;
  margin-bottom:2px;
}

.souyun-result-line{
  font-size:13px;
}

.souyun-open-link{
  display:inline-block;
  margin-top:8px;
  color:#92400e;
  text-decoration:none;
  font-weight:700;
}


/* dictionary links in Souyun popup 2026-04-25 */
.souyun-dict-links{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:6px;
  margin:8px 0 10px;
}

.souyun-dict-links a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:26px;
  padding:4px 6px;
  border:1px solid #e2e8f0;
  border-radius:999px;
  background:#f8fafc;
  color:#0f172a;
  text-decoration:none;
  font-size:11px;
  font-weight:700;
  white-space:nowrap;
}

.souyun-dict-links a:hover{
  background:#fff7ed;
  color:#92400e;
  border-color:#fed7aa;
}


/* Daikanwa only embedded search 2026-04-25 */
.souyun-popup{
  width:520px !important;
  max-height:520px !important;
}

.souyun-dict-links{
  display:block !important;
  margin:8px 0 10px !important;
}

.souyun-dict-links a{
  width:100% !important;
}

.daikanwa-frame{
  width:100%;
  height:260px;
  border:1px solid #e2e8f0;
  border-radius:12px;
  background:#fff;
  margin:8px 0 10px;
}


/* two-pane Daikanwa + Souyun popup 2026-04-25 */
.souyun-popup{
  width:560px !important;
  max-height:620px !important;
  padding:12px !important;
}

.dict-result-pane,
.souyun-result-pane{
  border:1px solid #e2e8f0;
  border-radius:14px;
  background:#fff;
  overflow:hidden;
}

.dict-result-pane{
  height:270px;
  margin-bottom:10px;
}

.souyun-result-pane{
  max-height:260px;
  overflow:auto;
  padding:10px 12px;
}

.popup-pane-title{
  font-weight:700;
  font-size:12px;
  color:#92400e;
  padding:6px 10px;
  border-bottom:1px solid #e2e8f0;
  background:#fffbeb;
}

.daikanwa-frame{
  width:100%;
  height:236px;
  border:0;
  background:#fff;
}

.souyun-dict-links,
.souyun-open-link{
  display:none !important;
}


/* selection-priority embedded search popup 2026-04-25 */
.souyun-popup{
  width:580px !important;
  max-height:640px !important;
}

.search-embed-pane{
  border:1px solid #e2e8f0;
  border-radius:14px;
  background:#fff;
  overflow:hidden;
  margin-bottom:10px;
}

.search-embed-title{
  font-weight:700;
  font-size:12px;
  color:#92400e;
  padding:6px 10px;
  border-bottom:1px solid #e2e8f0;
  background:#fffbeb;
}

.search-embed-frame{
  width:100%;
  height:240px;
  border:0;
  background:#fff;
}

.search-fallback-links{
  display:flex;
  gap:8px;
  margin:8px 0 10px;
}

.search-fallback-links a{
  flex:1;
  display:inline-flex;
  justify-content:center;
  align-items:center;
  min-height:28px;
  border:1px solid #e2e8f0;
  border-radius:999px;
  background:#f8fafc;
  color:#0f172a;
  text-decoration:none;
  font-size:11px;
  font-weight:700;
}


/* souyun only popup 2026-04-25 */
.souyun-popup{
  width:520px !important;
  max-height:520px !important;
  padding:10px !important;
}

.search-embed-pane{
  margin-bottom:0 !important;
}

.search-embed-title{
  display:none !important;
}

.search-embed-frame{
  height:430px !important;
}

.search-fallback-links{
  display:none !important;
}


/* smoother text selection + column number watermark 2026-04-25 */
.indexed-poem-table .char-col{
  user-select:none !important;
  -webkit-user-select:none !important;
  pointer-events:none !important;

  position:absolute !important;
  inset:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;

  font-size:18px !important;
  font-weight:800 !important;
  color:#0f172a !important;
  opacity:.055 !important;
  z-index:0 !important;
  transform:none !important;
  width:auto !important;
}

.indexed-poem-table .char-body{
  position:relative !important;
  z-index:1 !important;
  user-select:text !important;
  -webkit-user-select:text !important;
}

.indexed-poem-table .char-cell{
  user-select:text !important;
  -webkit-user-select:text !important;
  overflow:visible !important;
}

.indexed-poem-table .line-no{
  user-select:none !important;
  -webkit-user-select:none !important;
  pointer-events:none !important;
  opacity:.65 !important;
}

.indexed-poem-table .char-cell::selection,
.indexed-poem-table .char-body::selection{
  background:rgba(146,64,14,.24) !important;
}


/* click-to-select yellow search 2026-04-25 */
.indexed-poem-table .char-cell.search-selected{
  background:#fef3c7 !important;
  border-color:#f59e0b !important;
  box-shadow:0 0 0 2px rgba(245,158,11,.22) inset !important;
}

.indexed-poem-table .char-cell.search-selected .char-body{
  color:#78350f !important;
  font-weight:800 !important;
}

.indexed-poem-table .char-cell.search-selected.match-hover{
  background:#fde68a !important;
  border-color:#d97706 !important;
}


/* restore compact history bubble 2026-04-25 */
.ns-search-history{
  position:fixed !important;
  right:18px !important;
  bottom:18px !important;
  top:auto !important;
  left:auto !important;
  transform:none !important;
  z-index:99999 !important;
  width:max-content !important;
  min-width:92px !important;
  max-width:180px !important;
  max-height:34vh !important;
  padding:8px 10px !important;
  border:1px solid #e2e8f0 !important;
  border-radius:18px !important;
  background:rgba(255,255,255,.96) !important;
  box-shadow:0 12px 30px rgba(15,23,42,.14) !important;
  overflow:auto !important;
  transition:all .22s ease !important;
}

.ns-search-history.is-collapsed{
  width:46px !important;
  min-width:46px !important;
  height:46px !important;
  max-height:46px !important;
  padding:0 !important;
  overflow:hidden !important;
  border-radius:999px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}

.ns-search-history.is-collapsed::before{
  content:"歴";
  font-size:15px;
  font-weight:900;
  color:#92400e;
}

.ns-search-history.is-collapsed .ns-search-history-title,
.ns-search-history.is-collapsed #nsSearchHistoryList{
  display:none !important;
}

.ns-search-history-title{
  font-size:11px !important;
  font-weight:800 !important;
  color:#92400e !important;
  margin-bottom:4px !important;
}

.ns-search-history-item{
  padding:4px 0 !important;
  border-top:1px solid #e2e8f0 !important;
  font-size:11px !important;
  line-height:1.25 !important;
}

.ns-search-history-item:first-of-type{
  border-top:none !important;
}

.ns-search-history-query{
  display:block !important;
  max-width:150px !important;
  color:#0f172a !important;
  text-decoration:none !important;
  font-weight:800 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

.ns-search-history-query:hover{
  color:#92400e !important;
  text-decoration:underline !important;
}

.ns-search-history-meta,
.ns-search-history-toggle{
  display:none !important;
}


/* footer copyright 2026-04-25 */
footer,
.ns-footer-copyright{
  text-align:center !important;
  font-size:11px !important;
  color:#64748b !important;
  padding:18px 12px !important;
  font-family:"ＭＳ 明朝",serif !important;
}


/* place docx buttons in card heads + working font size 2026-04-25 */
.text-card .head{
  position:relative !important;
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
}

.card-docx-btn{
  margin-left:auto !important;
  min-height:24px !important;
  padding:3px 9px !important;
  border-radius:999px !important;
  border:1px solid #e2e8f0 !important;
  background:#fff !important;
  color:#0f172a !important;
  font-size:10px !important;
  font-weight:800 !important;
  cursor:pointer !important;
  white-space:nowrap !important;
}

.card-docx-btn:hover{
  background:#fffbeb !important;
  color:#92400e !important;
  border-color:#fcd34d !important;
}

.compare-font-small .indexed-poem-table .char-body{ font-size:18px !important; }
.compare-font-normal .indexed-poem-table .char-body{ font-size:22px !important; }
.compare-font-large .indexed-poem-table .char-body{ font-size:26px !important; }

.compare-font-small .pair-reference-raw{ font-size:18px !important; }
.compare-font-normal .pair-reference-raw{ font-size:21px !important; }
.compare-font-large .pair-reference-raw{ font-size:24px !important; }

.compare-font-small .pair-reference-kundoku{ font-size:10px !important; }
.compare-font-normal .pair-reference-kundoku{ font-size:12px !important; }
.compare-font-large .pair-reference-kundoku{ font-size:14px !important; }


/* footer copyright refine 2026-04-25 */
footer,
.ns-footer-copyright{
  margin-top:6px !important;
  padding:8px 12px 10px !important;
  text-align:center !important;
  font-family:"ＭＳ 明朝",serif !important;
  font-size:11px !important;
  line-height:1.4 !important;
  color:#64748b !important;
  letter-spacing:.04em !important;
  border-top:1px solid rgba(226,232,240,.75) !important;
}

.compare-section{
  margin-bottom:4px !important;
}


/* tighter footer spacing 2026-04-25 */
main,
.page,
.shell,
.container{
  padding-bottom:0 !important;
  margin-bottom:0 !important;
}

.compare-section,
.compare-wrap,
.compare-grid{
  margin-bottom:0 !important;
  padding-bottom:0 !important;
}

footer,
.ns-footer-copyright{
  margin-top:0 !important;
  padding-top:4px !important;
  padding-bottom:6px !important;
}


/* attach footer directly below compare area 2026-04-25 */
.compare-section{
  margin-bottom:0 !important;
  padding-bottom:0 !important;
}

.compare-section + footer,
.compare-section + .ns-footer-copyright,
footer,
.ns-footer-copyright{
  margin-top:0 !important;
  padding-top:2px !important;
  border-top:0 !important;
}

body{
  padding-bottom:0 !important;
}


/* compact kundoku and overflow fix 2026-04-25 */

/* 訓読・ルビ文字整体缩小 */
.inner-text ruby,
.pair-reference-kundoku ruby{
  ruby-position:over !important;
}

.inner-text rt,
.pair-reference-kundoku rt{
  font-size:.48em !important;
  line-height:1 !important;
  white-space:nowrap !important;
}

/* 訓読模式下的文字不要撑破卡片 */
.inner-text{
  overflow:auto !important;
  max-width:100% !important;
  word-break:break-word !important;
  overflow-wrap:anywhere !important;
}

/* 並列模式：原文为主体，訓読作为小号参考 */
.pair-reference-kundoku{
  font-size:10.5px !important;
  line-height:1.45 !important;
  color:#64748b !important;
  min-width:0 !important;
  max-width:100% !important;
  word-break:break-word !important;
  overflow-wrap:anywhere !important;
}

/* 並列中的ルビ再压小一点 */
.pair-reference-kundoku rt{
  font-size:.44em !important;
}

/* 防止左右卡片被长訓読撑开 */
.text-card,
.compare-grid,
.inner-text{
  min-width:0 !important;
}

/* 訓読単独表示时也适度缩小 */
.inner-text:not(:has(.indexed-poem-table)) {
  font-size:13px !important;
  line-height:1.55 !important;
}


/* subtle column number, no longer behind main text 2026-04-25 */
.indexed-poem-table .char-col{
  position:absolute !important;
  top:2px !important;
  right:3px !important;
  left:auto !important;
  bottom:auto !important;

  display:block !important;
  width:auto !important;
  height:auto !important;
  transform:none !important;

  font-size:8px !important;
  line-height:1 !important;
  font-weight:700 !important;
  color:#94a3b8 !important;
  opacity:.55 !important;

  z-index:2 !important;
  pointer-events:none !important;
  user-select:none !important;
  -webkit-user-select:none !important;

  background:rgba(255,255,255,.72) !important;
  border-radius:4px !important;
  padding:1px 2px !important;
}

.indexed-poem-table .char-body{
  position:relative !important;
  z-index:1 !important;
  padding-top:4px !important;
}

/* 防止旧版巨大底纹继续生效 */
.indexed-poem-table .char-cell::before,
.indexed-poem-table .char-cell::after{
  opacity:0 !important;
  pointer-events:none !important;
}


/* column number above main character 2026-04-25 */
.indexed-poem-table .char-col{
  position:absolute !important;
  top:2px !important;
  left:50% !important;
  right:auto !important;
  transform:translateX(-50%) !important;

  display:block !important;
  width:auto !important;
  height:auto !important;

  font-size:8px !important;
  line-height:1 !important;
  font-weight:700 !important;
  color:#94a3b8 !important;
  opacity:.68 !important;

  z-index:2 !important;
  pointer-events:none !important;
  user-select:none !important;
  -webkit-user-select:none !important;

  background:rgba(255,255,255,.72) !important;
  border-radius:4px !important;
  padding:1px 2px !important;
  text-align:center !important;
}

.indexed-poem-table .char-cell{
  padding-top:12px !important;
}

.indexed-poem-table .char-body{
  position:relative !important;
  z-index:1 !important;
  padding-top:3px !important;
}


/* show column number only on first row 2026-04-25 */
.indexed-poem-table .char-col{
  display:none !important;
}

.indexed-poem-table tr:first-child .char-col{
  display:block !important;
  position:absolute !important;
  top:2px !important;
  left:50% !important;
  transform:translateX(-50%) !important;

  font-size:8px !important;
  line-height:1 !important;
  font-weight:700 !important;
  color:#94a3b8 !important;
  opacity:.75 !important;

  background:rgba(255,255,255,.75) !important;
  border-radius:4px !important;
  padding:1px 2px !important;
  pointer-events:none !important;
  user-select:none !important;
  -webkit-user-select:none !important;
}

.indexed-poem-table .char-cell{
  padding-top:6px !important;
}

.indexed-poem-table tr:first-child .char-cell{
  padding-top:14px !important;
}


/* show column number only on first row 2026-04-25 */
.indexed-poem-table .char-col{
  display:none !important;
}

.indexed-poem-table tr:first-child .char-col{
  display:block !important;
  position:absolute !important;
  top:2px !important;
  left:50% !important;
  transform:translateX(-50%) !important;

  font-size:8px !important;
  line-height:1 !important;
  font-weight:700 !important;
  color:#94a3b8 !important;
  opacity:.75 !important;

  background:rgba(255,255,255,.75) !important;
  border-radius:4px !important;
  padding:1px 2px !important;
  pointer-events:none !important;
  user-select:none !important;
  -webkit-user-select:none !important;
}

.indexed-poem-table .char-cell{
  padding-top:6px !important;
}

.indexed-poem-table tr:first-child .char-cell{
  padding-top:14px !important;
}


/* restore column number to top-right of every character cell 2026-04-25 */
.indexed-poem-table .char-col{
  display:block !important;
  position:absolute !important;
  top:2px !important;
  right:3px !important;
  left:auto !important;
  transform:none !important;

  font-size:8px !important;
  line-height:1 !important;
  font-weight:700 !important;
  color:#94a3b8 !important;
  opacity:.58 !important;

  background:rgba(255,255,255,.72) !important;
  border-radius:4px !important;
  padding:1px 2px !important;

  pointer-events:none !important;
  user-select:none !important;
  -webkit-user-select:none !important;
  z-index:3 !important;
}

.indexed-poem-table .char-cell{
  padding-top:8px !important;
}

.indexed-poem-table .char-body{
  position:relative !important;
  z-index:1 !important;
}


/* manuscript image natural size 2026-04-25 */
.manuscript-view,
.manuscript-image-wrap,
.manuscript-preview,
#manuscriptImageWrap{
  overflow:auto !important;
}

#manuscriptImage,
.manuscript-image,
.manuscript-preview img{
  width:auto !important;
  height:auto !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:initial !important;
  transform:none !important;
}


/* manuscript image fit area stable 2026-04-25 */
.manuscript-view,
.manuscript-image-wrap,
.manuscript-preview,
#manuscriptImageWrap{
  overflow:auto !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}

#manuscriptImage,
.manuscript-image,
.manuscript-preview img{
  width:auto !important;
  height:auto !important;
  max-width:100% !important;
  max-height:58vh !important;
  object-fit:contain !important;
  transform:none !important;
}


/* remove white capsule from column number 2026-04-25 */
.indexed-poem-table .char-col{
  background:transparent !important;
  border-radius:0 !important;
  padding:0 !important;
  box-shadow:none !important;
  color:#94a3b8 !important;
  opacity:.62 !important;
}


/* remove first-row remaining column-number capsule 2026-04-25 */
.indexed-poem-table tr:first-child .char-col,
.indexed-poem-table .char-cell[data-line="1"] .char-col,
.indexed-poem-table .char-cell:first-child .char-col{
  background:transparent !important;
  border-radius:0 !important;
  padding:0 !important;
  box-shadow:none !important;
  border:none !important;
}


/* mobile yellow search + unified button style 2026-04-25 */

/* 统一主页/浏览页按钮视觉：稍小、圆润、粗细一致 */
button,
.btn,
.seg-btn,
.card-docx-btn,
.nav-btn,
a.btn,
a.card-link,
.work-card a,
.entry-card a{
  min-height:30px !important;
  padding:6px 12px !important;
  border-radius:999px !important;
  font-size:12px !important;
  font-weight:800 !important;
  line-height:1.15 !important;
}

/* 手机端：歴按钮点击展开，不依赖 hover */
@media (hover:none), (pointer:coarse){
  .ns-search-history{
    right:14px !important;
    bottom:14px !important;
  }

  .ns-search-history.is-collapsed{
    width:48px !important;
    height:48px !important;
  }

  .ns-mobile-search-btn{
    position:fixed;
    right:72px;
    bottom:16px;
    z-index:99999;
    min-height:46px !important;
    padding:0 15px !important;
    border:1px solid #f59e0b;
    border-radius:999px;
    background:#fef3c7;
    color:#78350f;
    font-size:13px;
    font-weight:900;
    box-shadow:0 10px 24px rgba(15,23,42,.16);
    display:none;
  }

  .ns-mobile-search-btn.show{
    display:inline-flex;
    align-items:center;
    justify-content:center;
  }
}


/* header buttons match homepage search button 2026-04-25 */
.hero-actions .btn,
.header-actions .btn,
.top-actions .btn,
.hero .btn{
  min-height:30px !important;
  padding:6px 12px !important;
  border-radius:999px !important;
  font-size:12px !important;
  font-weight:800 !important;
  line-height:1.15 !important;
  border-width:1px !important;
}


/* force thinner browse header buttons 2026-04-25 */
.hero-actions a,
.hero-actions button,
.header-actions a,
.header-actions button,
.top-actions a,
.top-actions button{
  min-height:28px !important;
  padding:5px 11px !important;
  border-radius:999px !important;
  font-size:11px !important;
  font-weight:600 !important;
  line-height:1.1 !important;
  border-width:1px !important;
  box-shadow:none !important;
}

.hero-actions a *,
.header-actions a *,
.top-actions a *{
  font-weight:600 !important;
}


/* exact header pill buttons thinner 2026-04-25 */
.actions #prevBtn,
.actions #nextBtn,
.actions #homeBtn,
button.pill-btn#prevBtn,
button.pill-btn#nextBtn,
button.pill-btn#homeBtn{
  min-height:28px !important;
  height:28px !important;
  padding:4px 11px !important;
  border-radius:999px !important;
  font-size:11px !important;
  font-weight:600 !important;
  line-height:1 !important;
  border-width:1px !important;
  box-shadow:none !important;
}

.actions #prevBtn,
.actions #nextBtn{
  background:#fff !important;
  color:#475569 !important;
}

.actions #homeBtn{
  font-weight:700 !important;
}


/* vertically center header three buttons 2026-04-25 */
.actions{
  display:flex !important;
  align-items:center !important;
}

.actions #prevBtn,
.actions #nextBtn,
.actions #homeBtn{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  vertical-align:middle !important;
}


/* header action buttons row vertical centering 2026-04-25 */
.hero .topline,
.hero-header,
.hero-title-row{
  display:flex !important;
  align-items:center !important;
}

.actions{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:8px !important;
  margin-top:0 !important;
  align-self:center !important;
}

.actions .pill-btn,
.actions button{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
  transform:none !important;
}


/* force header three buttons in one horizontal row 2026-04-25 */
.actions{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:8px !important;
  white-space:nowrap !important;
}

.actions #prevBtn,
.actions #nextBtn,
.actions #homeBtn{
  flex:0 0 auto !important;
  width:auto !important;
  min-width:auto !important;
  white-space:nowrap !important;
}


/* clearer beautiful header buttons 2026-04-25 */
.actions #prevBtn,
.actions #nextBtn,
.actions #homeBtn{
  min-height:34px !important;
  height:34px !important;
  padding:7px 15px !important;
  border-radius:999px !important;
  font-size:12px !important;
  font-weight:750 !important;
  letter-spacing:.02em !important;
  border:1px solid rgba(148,163,184,.55) !important;
  box-shadow:0 6px 16px rgba(15,23,42,.08) !important;
}

.actions #prevBtn,
.actions #nextBtn{
  background:linear-gradient(180deg,#ffffff,#f8fafc) !important;
  color:#334155 !important;
}

.actions #homeBtn{
  background:linear-gradient(180deg,#0f172a,#1e293b) !important;
  color:#ffffff !important;
  border-color:#0f172a !important;
}

.actions #prevBtn:hover,
.actions #nextBtn:hover,
.actions #homeBtn:hover{
  transform:translateY(-1px) !important;
  box-shadow:0 9px 22px rgba(15,23,42,.14) !important;
}

/* hide unfinished mobile search button 2026-04-25 */
.ns-mobile-search-btn{
  display:none !important;
}

/* restore mobile yellow search button in NS-clean 2026-04-25 */
@media (hover:none), (pointer:coarse), (max-width:760px){
  .ns-mobile-search-btn.show{
    display:inline-flex !important;
  }
}

/* separate mobile search button from history bubble 2026-04-25 */
@media (hover:none), (pointer:coarse), (max-width:760px){
  .ns-mobile-search-btn{
    right:78px !important;
    bottom:18px !important;
    z-index:99998 !important;
  }

  .ns-search-history{
    right:14px !important;
    bottom:14px !important;
    z-index:99999 !important;
  }
}

/* mv-card source/detail display fix only */
.mv-item-main{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
}

.mv-item-main div{
  display:block !important;
  line-height:1.4 !important;
  white-space:normal !important;
}

.mv-item::before{
  content:none !important;
  display:none !important;
}

.mv-item-main div:nth-child(1),
.mv-item-main div:nth-child(2),
.mv-item-main div:nth-child(3){
  display:block !important;
}

/* Final compare display rules: tategaki raw / kundoku / pair */
#compareSection.is-tategaki .inner-text,
#compareSection.is-tategaki .poem {
  overflow: hidden !important;
}

#compareSection.is-tategaki .indexed-poem-table .char-cell {
  width: var(--ns-indexed-cell-w, 38px) !important;
  min-width: var(--ns-indexed-cell-w, 38px) !important;
  max-width: var(--ns-indexed-cell-w, 38px) !important;
  height: var(--ns-indexed-cell-h, 42px) !important;
}

#compareSection.is-tategaki .indexed-poem-table .char-body {
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "MS Mincho", "Noto Serif JP", serif !important;
  font-size: var(--ns-indexed-font, 24px) !important;
  font-weight: 700 !important;
  line-height: 1.05 !important;
  color: #0f172a !important;
  text-shadow: none !important;
  -webkit-font-smoothing: antialiased !important;
  text-rendering: geometricPrecision !important;
}

#compareSection.is-tategaki .indexed-poem-table .line-no {
  min-width: var(--ns-indexed-line-no, 28px) !important;
  font-size: 10px !important;
}

/* Keep all compare text visually consistent */
#compareSection .poem,
#compareSection .poem *,
#compareSection .inner-text,
#compareSection .inner-text *,
#compareSection .ns-kundoku-block,
#compareSection .ns-kundoku-block *,
#compareSection .pair-reference-raw,
#compareSection .pair-reference-kundoku {
  font-weight: 700 !important;
}

/* Mobile compare controls remain visible */
@media (max-width: 640px) {
  #compareSection .compare-controls,
  #compareSection .compare-controls .segmented,
  #compareSection .compare-controls button,
  #compareSection .compare-controls .seg-btn {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  #compareSection .compare-controls {
    gap: 8px !important;
    flex-wrap: wrap !important;
  }

  #compareSection .compare-controls .seg-btn {
    font-size: 12px !important;
    padding: 7px 11px !important;
  }
}


/* Unified auto-fit + scroll-safe compare display */
#compareSection .inner-text,
#compareSection .poem,
#compareSection .ns-kundoku-block {
  overflow: auto !important;
  -webkit-overflow-scrolling: touch !important;
}

#compareSection .ns-kundoku-line,
#compareSection .pair-line,
#compareSection .pair-reference-raw,
#compareSection .pair-reference-kundoku,
#compareSection .poem p {
  font-size: var(--ns-auto-text-font, inherit) !important;
  line-height: var(--ns-auto-text-line-height, inherit) !important;
  font-weight: 700 !important;
}

#compareSection ruby,
#compareSection rt {
  font-weight: inherit !important;
}

#compareSection rt {
  font-size: 0.48em !important;
  line-height: 1 !important;
}

/* Final fix: keep scroll containers horizontal, only content vertical */
#compareSection.is-tategaki .inner-text,
#compareSection.is-tategaki .poem {
  writing-mode: horizontal-tb !important;
  overflow: auto !important;
  overflow-x: auto !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
  touch-action: pan-x pan-y !important;
  overscroll-behavior: contain !important;
}

#compareSection.is-tategaki .indexed-poem-table,
#compareSection.is-tategaki .ns-kundoku-block {
  writing-mode: vertical-rl !important;
}

#compareSection.is-tategaki .indexed-poem-table *,
#compareSection.is-tategaki .ns-kundoku-block * {
  writing-mode: vertical-rl !important;
}

/* Restore vertical content while keeping scroll containers usable */
#compareSection.is-tategaki .poem > *,
#compareSection.is-tategaki .indexed-poem-table,
#compareSection.is-tategaki .indexed-poem-table *,
#compareSection.is-tategaki .ns-kundoku-block,
#compareSection.is-tategaki .ns-kundoku-block *,
#compareSection.is-tategaki .ns-kundoku-line {
  writing-mode: vertical-rl !important;
  text-orientation: mixed !important;
}

#compareSection.is-tategaki .poem,
#compareSection.is-tategaki .inner-text {
  writing-mode: horizontal-tb !important;
}

/* Force same size and weight on both sides in each compare mode */
#compareSection .mt-panel .indexed-poem-table .char-body,
#compareSection .c-panel .indexed-poem-table .char-body {
  font-size: var(--ns-indexed-font, 24px) !important;
  font-weight: 700 !important;
}

#compareSection .mt-panel .ns-kundoku-line,
#compareSection .c-panel .ns-kundoku-line,
#compareSection .mt-panel .pair-reference-raw,
#compareSection .c-panel .pair-reference-raw,
#compareSection .mt-panel .pair-reference-kundoku,
#compareSection .c-panel .pair-reference-kundoku,
#compareSection .mt-panel .poem p,
#compareSection .c-panel .poem p {
  font-size: var(--ns-auto-text-font, 18px) !important;
  line-height: var(--ns-auto-text-line-height, 1.55) !important;
  font-weight: 700 !important;
}

#compareSection .mt-panel rt,
#compareSection .c-panel rt {
  font-size: 0.48em !important;
  font-weight: 700 !important;
}

/* Mobile: hide Word copy / DOCX buttons, keep view and font controls */
@media (max-width: 640px) {
  #copyMtBtn,
  #copyCBtn,
  #docxMtBtn,
  #docxCBtn,
  .card-docx-btn {
    display: none !important;
  }
}

/* Mobile: hide all copy / DOCX utility buttons */
@media (max-width: 640px) {
  #wordCopyBtn,
  #exportMtRubyDocxBtn,
  #exportCRubyDocxBtn,
  #copyMtRawBtn,
  #copyCRawBtn,
  #copyMtBtn,
  #copyCBtn,
  #docxMtBtn,
  #docxCBtn,
  .side-copy-btn,
  .card-docx-btn {
    display: none !important;
  }
}

/* Unify copy / DOCX buttons in text-card headers */
.text-card .head {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
}

.text-card .head button.side-copy-btn,
.text-card .head button.card-docx-btn,
.text-card .head #copyMtRawBtn,
.text-card .head #copyCRawBtn,
.text-card .head #exportMtRubyDocxBtn,
.text-card .head #exportCRubyDocxBtn {
  margin-left: 4px !important;
  padding: 5px 9px !important;
  min-height: 25px !important;
  border-radius: 999px !important;
  font-size: 11px !important;
  line-height: 1.1 !important;
  white-space: nowrap !important;
  border: 1px solid var(--line) !important;
  background: rgba(255,255,255,.82) !important;
  color: var(--muted) !important;
}

.text-card .head button.side-copy-btn:hover,
.text-card .head button.card-docx-btn:hover,
.text-card .head #copyMtRawBtn:hover,
.text-card .head #copyCRawBtn:hover,
.text-card .head #exportMtRubyDocxBtn:hover,
.text-card .head #exportCRubyDocxBtn:hover {
  background: #fff !important;
  color: var(--text) !important;
}

/* Keep copy and DOCX buttons close in text-card headers */
.text-card .head {
  justify-content: flex-start !important;
}

.text-card .head button.side-copy-btn {
  margin-left: auto !important;
  margin-right: 4px !important;
}

.text-card .head button.card-docx-btn {
  margin-left: 0 !important;
}

/* Put copy / DOCX buttons at each card's top-right corner */
.text-card .head {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 12px !important;
  flex-wrap: nowrap !important;
}

.text-card .head > div:first-child {
  min-width: 0 !important;
  flex: 1 1 auto !important;
}

.text-card .head button.side-copy-btn {
  margin-left: auto !important;
  margin-right: 4px !important;
  flex: 0 0 auto !important;
}

.text-card .head button.card-docx-btn {
  margin-left: 0 !important;
  margin-right: 0 !important;
  flex: 0 0 auto !important;
}

/* Hide global Word copy button on all devices */
#wordCopyBtn {
  display: none !important;
}

/* Mobile: fit copy / DOCX buttons at each card's top-right */
@media (max-width: 640px) {
  .text-card .head {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 8px !important;
    flex-wrap: nowrap !important;
  }

  .text-card .head > div:first-child {
    flex: 1 1 auto !important;
    min-width: 0 !important;
  }

  .text-card .head button.side-copy-btn,
  .text-card .head button.card-docx-btn,
  .text-card .head #copyMtRawBtn,
  .text-card .head #copyCRawBtn,
  .text-card .head #exportMtRubyDocxBtn,
  .text-card .head #exportCRubyDocxBtn {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    flex: 0 0 auto !important;
    margin-left: 3px !important;
    margin-right: 0 !important;
    padding: 4px 7px !important;
    min-height: 24px !important;
    border-radius: 999px !important;
    font-size: 10px !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
  }

  .text-card .head button.side-copy-btn {
    margin-left: auto !important;
  }

  #wordCopyBtn {
    display: none !important;
  }
}

/* Final force hide Word用コピー on all devices */
button#wordCopyBtn,
#compareSection button#wordCopyBtn,
.compare-controls button#wordCopyBtn {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  width: 0 !important;
  min-width: 0 !important;
  max-width: 0 !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
  pointer-events: none !important;
}
