/* サービス化で追加したUI（ログイン・曲一覧・版履歴） */
.user-info { font-size: 12px; color: inherit; opacity: .8; align-self: center; }
.primary.dirty { box-shadow: 0 0 0 2px #e0a100; }
.service-dialog { border: 1px solid #c9c2b0; border-radius: 10px; padding: 18px 20px; width: min(560px, calc(100vw - 32px)); max-height: 80vh; }
.service-dialog::backdrop { background: rgba(30, 30, 30, .35); }
.service-dialog h2 { margin: 0 0 8px; font-size: 18px; }
.service-dialog h3 { font-size: 14px; margin: 16px 0 6px; }
.login-form { display: grid; gap: 10px; }
.login-form label { display: grid; gap: 4px; font-size: 13px; }
.login-form input { padding: 8px; font-size: 15px; }
.error-text { color: #b3261e; min-height: 1.2em; margin: 0; font-size: 13px; }
.list-toolbar { display: flex; gap: 8px; margin: 8px 0; }
.list-toolbar input { flex: 1; padding: 7px; font-size: 14px; }
.song-list { list-style: none; padding: 0; margin: 0; }
.song-row { display: flex; align-items: center; gap: 8px; padding: 8px 4px; border-bottom: 1px solid #e6e0d0; }
.song-info { flex: 1; min-width: 0; display: grid; gap: 2px; }
.song-info strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.song-info span { font-size: 12px; opacity: .75; }
.song-row button { padding: 5px 10px; font-size: 13px; }
.song-row button.small { padding: 4px 8px; }
.song-list .empty { padding: 12px 4px; opacity: .7; font-size: 13px; }
@media (max-width: 720px) {
  .app-header nav { flex-wrap: wrap; }
  .service-dialog { width: calc(100vw - 24px); }
}

/* ===== 表示の切り替え（編集 / 印刷確認） ===== */
.view-switch{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff;flex-shrink:0}
.view-switch button{border:0;border-radius:0;padding:7px 16px;font-size:13px;background:transparent;color:#4a5b6e}
.view-switch button+button{border-left:1px solid var(--line)}
.view-switch button[aria-pressed="true"]{background:var(--accent);color:#fff;font-weight:700}
body.reading .edit-only{display:none!important}
body:not(.reading) .print-only{display:none!important}
body.reading #modeHint{visibility:visible}

/* ===== 編集表示: A4に縛られない連続画面 ===== */
#paperArea[data-view="edit"]{display:block!important;padding:0 24px}
.paper.edit-sheet{width:auto;max-width:1240px;height:auto;min-height:0;overflow:visible;margin:0 auto 40px;padding:32px 40px 36px}
.edit-sheet .paper-content{transform:none!important}
.edit-sheet .paper-footer{display:none}
/* 1行 = [パート名 | 開始・終了記号の帯 / コード / 歌詞 / メモ] */
.edit-sheet .system{display:grid;grid-template-columns:112px minmax(0,1fr);column-gap:12px;margin-bottom:18px;padding-bottom:12px;border-bottom:1px dashed #e3e8ec}
.edit-sheet .system>*{grid-column:2}
.edit-sheet .system>.bar-labels{grid-row:1}
.edit-sheet .system>.mark-row{grid-row:2}
.edit-sheet .system>.chord-row{grid-row:3}
.edit-sheet .system>.lyric-row{grid-row:4}
.edit-sheet .system>.annotation-row{grid-row:5}
.edit-sheet .system>.part-box{grid-column:1;grid-row:3 / span 2;display:flex;flex-direction:column;align-items:flex-end;gap:3px;padding-top:3px;text-align:right}
.part-name{display:block;width:100%;font:700 15px/1.35 'Yu Gothic UI','Meiryo',sans-serif;color:#1b7067;min-height:1.35em;padding:2px 4px;border-radius:4px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.part-name:empty::before{content:attr(data-placeholder);color:#b8c2cb;font-weight:400}
.part-name:focus{outline:2px solid #79aaa1;background:#f3f8f7;text-overflow:clip}
.part-range{font:11px Arial,sans-serif;color:#9aa5b0;padding-right:4px}
/* 開始・終了記号の縦幅を、記号がない行でも最初から確保する（記号を付けても行がずれない） */
.edit-sheet .mark-row .measure-marks{min-height:40px}
@media(max-width:760px){
  #paperArea[data-view="edit"]{padding:0 8px}
  .paper.edit-sheet{padding:18px 12px 24px}
  .edit-sheet .system{grid-template-columns:62px minmax(0,1fr);column-gap:6px}
  .part-name{font-size:12px;padding:2px}
  .part-range{font-size:10px}
}
.rows-control{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#4a5b6e;white-space:nowrap}
.rows-control select{padding:6px 7px}
