body {
    font-family: "Yu Gothic", Meiryo, sans-serif;
    margin: 0;
    background: #d7d7d7;
    color: #111;
    overflow-x: auto;
}
.app-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 16px;
    background: #eeeeee;
    color: #111;
    border-bottom: 1px solid #aaa;
}
.app-title { font-size: 18px; font-weight: 700; }
.app-header a { color: #111; margin-left: 18px; text-decoration: none; }
.container {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 8px 10px 0;
    box-sizing: border-box;
    background: #e9cccc;
    border-radius: 0;
    box-shadow: none;
}
h1, .note { display: none; }
button, .button, .access-button {
    border: 1px solid #9a9a9a;
    padding: 7px 13px;
    border-radius: 0;
    background: linear-gradient(#f7f7f7, #d6d6d6);
    color: #111;
    cursor: pointer;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
    text-align: center;
    line-height: normal;
    font-size: 14px;
    min-width: 58px;
}
button:hover, .access-button:hover { background: linear-gradient(#ffffff, #c8dfff); }
.access-form { min-width: 1560px; }
.access-search-panel {
    display: grid;
    grid-template-columns: 640px 210px 1fr;
    gap: 24px;
    align-items: start;
    padding: 8px 20px 10px 20px;
    background: #e8cdcd;
    border-bottom: 1px solid #777;
}
.search-left { display: grid; gap: 7px; }
.access-row { display: flex; align-items: center; gap: 4px; min-height: 27px; }
.access-row label:not(.check-label) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 86px;
    height: 24px;
    background: #ffff66;
    border: 1px solid #777;
    font-weight: 700;
    color: #222;
}
.access-row input, .access-row select, .identify-list, .small-select, .report-select {
    border: 1px solid #9a9a9a;
    background: #efefef;
    height: 24px;
    padding: 1px 6px;
    box-sizing: border-box;
    font-size: 14px;
}
.code-input { width: 120px; text-align: right; }
.name-input { width: 410px; }
.short-name { width: 180px; text-align: left; }
.date-row .date-input { width: 132px; text-align: center; }
.range-mark { padding: 0 14px; }
.check-label { margin-left: 4px; white-space: nowrap; }
.target-display { margin-left: auto; }
.identify-box { width: 210px; }
.identify-title {
    background: #ffff66;
    border: 1px solid #777;
    height: 24px;
    line-height: 23px;
    text-align: center;
    font-weight: 700;
}
.identify-list {
    width: 100%;
    height: 142px;
    background: #efefef;
    display: block;
}
.search-right { display: grid; grid-template-columns: 470px 1fr; gap: 8px 18px; align-items: start; }
.right-row { grid-column: 1; }
.right-row label { width: 82px !important; }
.right-row input { width: 380px; }
.right-checks {
    grid-column: 2;
    grid-row: 1 / span 4;
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    align-content: end;
    padding-top: 92px;
    font-size: 14px;
}
.access-message {
    padding: 5px 12px;
    background: #fff8cc;
    color: #b00000;
    font-weight: 700;
    border-bottom: 1px solid #999;
}
.access-grid-wrap {
    height: calc(100vh - 287px);
    min-height: 360px;
    overflow: auto;
    background: #e8cdcd;
    border-top: 1px solid #666;
    border-bottom: 1px solid #888;
}
.access-grid {
    border-collapse: separate;
    border-spacing: 0;
    width: max-content;
    min-width: 100%;
    margin: 0;
    background: #e8cdcd;
}
.access-grid th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #ffff66;
    border: 1px solid #777;
    font-size: 15px;
    line-height: 22px;
    white-space: nowrap;
    text-align: center;
    padding: 0 6px;
}
.access-grid th.target-col { background: #00ff66; }
.access-grid td {
    border: 1px solid #b7b7b7;
    background: #eeeeee;
    height: 26px;
    padding: 2px 7px;
    font-size: 15px;
    white-space: nowrap;
}
.access-grid tr:nth-child(even) td { background: #e8e8e8; }
.access-grid .target-col { width: 76px; text-align: center; }
.access-grid .number { text-align: right; }
.center { text-align: center; }
.empty-row { text-align: center; color: #555; height: 80px !important; }
input[type="checkbox"].pdf-target { width: 17px; height: 17px; }
.access-footer {
    height: 96px;
    display: grid;
    grid-template-columns: 560px 280px 1fr;
    align-items: center;
    gap: 18px;
    padding: 8px 22px;
    background: #eeeeee;
    border-top: 1px solid #999;
    box-sizing: border-box;
}
.footer-group {
    position: relative;
    border: 1px solid #ccc;
    min-height: 70px;
    padding: 18px 10px 10px;
    background: #f2f2f2;
}
.footer-title {
    position: absolute;
    top: -1px;
    left: -1px;
    background: #00ff66;
    border: 1px solid #777;
    padding: 1px 8px;
    font-weight: 700;
}
.footer-row { display: flex; align-items: center; gap: 8px; }
.small-select { width: 150px; height: 28px; }
.access-button.wide { min-width: 95px; }
.access-button.extract { margin-left: auto; }
.footer-count {
    color: red;
    font-size: 24px;
    font-weight: 800;
    text-align: center;
}
.output-ops {
    display: grid;
    grid-template-columns: 1fr 76px 90px;
    gap: 14px;
    align-items: center;
}
.report-select { width: 100%; height: 28px; }
.small-note { color: #64748b; font-size: 12px; }

/* Phase 1 master maintenance */
.menu-page, .master-page {
    background: #e8cdcd;
    min-height: calc(100vh - 60px);
    padding: 14px 18px;
    box-sizing: border-box;
}
.menu-title {
    font-size: 22px;
    font-weight: 700;
    margin-bottom: 16px;
}
.menu-section {
    border: 1px solid #888;
    background: #eeeeee;
    margin-bottom: 18px;
    padding: 12px;
}
.menu-section-title {
    display: inline-block;
    background: #ffff66;
    border: 1px solid #777;
    padding: 4px 10px;
    font-weight: 700;
    margin-bottom: 10px;
}
.menu-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(220px, 1fr));
    gap: 10px;
}
.menu-grid.narrow { grid-template-columns: repeat(3, minmax(220px, 1fr)); }
.menu-button {
    display: grid;
    gap: 4px;
    min-height: 96px;
    padding: 10px;
    border: 1px solid #777;
    background: linear-gradient(#ffffff, #d9d9d9);
    color: #111;
    text-decoration: none;
}
.menu-button:hover { background: linear-gradient(#ffffff, #c8dfff); }
.menu-code { font-weight: 700; color: #444; }
.menu-name { font-size: 18px; font-weight: 700; }
.menu-desc { font-size: 13px; color: #333; }
.master-header {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-start;
    border-bottom: 1px solid #777;
    margin-bottom: 10px;
    padding-bottom: 8px;
}
.master-header h2 {
    display: block;
    margin: 0 0 4px;
    font-size: 20px;
}
.master-header p { margin: 2px 0; }
.master-header-actions { display: flex; gap: 8px; }
.table-name { color: #444; font-size: 13px; }
.master-list-table {
    border-collapse: collapse;
    width: 100%;
    background: #eeeeee;
}
.master-list-table th {
    background: #ffff66;
    border: 1px solid #777;
    padding: 5px 8px;
    text-align: left;
}
.master-list-table td {
    border: 1px solid #aaa;
    padding: 5px 8px;
}
.master-search-form {
    display: flex;
    align-items: center;
    gap: 8px;
    background: #eeeeee;
    border: 1px solid #999;
    padding: 8px;
    margin-bottom: 8px;
}
.master-search-form label {
    background: #ffff66;
    border: 1px solid #777;
    padding: 2px 8px;
    font-weight: 700;
}
.master-search-form input[type="text"] { width: 280px; }
.master-search-form input[type="number"] { width: 80px; }
.master-search-form input {
    height: 28px;
    border: 1px solid #999;
    padding: 2px 6px;
    box-sizing: border-box;
}
.master-grid-wrap { height: calc(100vh - 230px); min-height: 420px; }
.master-grid th:first-child { min-width: 130px; }
.nowrap { white-space: nowrap; }
.inline-form { display: inline-block; margin-left: 4px; }
.access-button.mini { min-width: 44px; padding: 4px 8px; font-size: 12px; }
.access-message.info { color: #0f5132; background: #d1e7dd; }
.master-edit-form {
    background: #eeeeee;
    border: 1px solid #999;
    padding: 10px;
}
.master-edit-grid {
    display: grid;
    grid-template-columns: 210px minmax(360px, 1fr);
    gap: 6px 8px;
    align-items: start;
    max-width: 980px;
}
.master-edit-grid label {
    background: #ffff66;
    border: 1px solid #777;
    min-height: 28px;
    line-height: 26px;
    padding: 0 8px;
    font-weight: 700;
}
.edit-control {
    display: flex;
    align-items: center;
    gap: 8px;
}
.edit-control input, .edit-control select, .edit-control textarea {
    width: 440px;
    max-width: 65vw;
    border: 1px solid #999;
    padding: 4px 6px;
    box-sizing: border-box;
    font-size: 14px;
}
.edit-control textarea { resize: vertical; }
.edit-control input[readonly] { background: #e0e0e0; color: #444; }
.column-type { color: #555; font-size: 12px; }
.required { color: #b00000; }
.key-mark {
    display: inline-block;
    margin-left: 4px;
    padding: 0 4px;
    background: #00ff66;
    border: 1px solid #777;
    font-size: 11px;
}
.form-actions {
    margin-top: 12px;
    display: flex;
    gap: 8px;
}
@media (max-width: 1100px) {
    .menu-grid, .menu-grid.narrow { grid-template-columns: repeat(2, minmax(220px, 1fr)); }
}


/* Access main menu replica */
.access-main-menu-page {
    background: #24e6df;
    min-height: calc(100vh - 52px);
    padding: 0;
    overflow: auto;
}
.access-main-menu-surface {
    position: relative;
    min-width: 1370px;
    height: 690px;
    background: #24e6df;
}
.access-main-menu-button {
    position: absolute;
    width: 138px;
    min-width: 138px;
    height: 36px;
    box-sizing: border-box;
    border: 1px solid #999;
    border-top-color: #f5f5f5;
    border-left-color: #f5f5f5;
    border-right-color: #777;
    border-bottom-color: #777;
    border-radius: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 2px 6px;
    color: #111;
    text-decoration: none;
    text-align: center;
    white-space: pre-line;
    line-height: 1.2;
    font-size: 14px;
    font-family: "Yu Gothic", Meiryo, sans-serif;
}
.access-main-menu-button.is-implemented {
    background: linear-gradient(#f7f7f7, #d6d6d6);
    cursor: pointer;
}
.access-main-menu-button.is-implemented:hover {
    background: linear-gradient(#ffffff, #c8dfff);
}
.access-main-menu-button.is-unimplemented {
    background: #ffffff;
    color: #333;
    cursor: default;
    opacity: 1;
}
.access-main-menu-exit {
    position: absolute;
    left: 50%;
    top: 635px;
    transform: translateX(-50%);
    width: 86px;
    min-width: 86px;
    height: 34px;
    background: #ffffff;
    color: #111;
    border: 1px solid #999;
    border-top-color: #f5f5f5;
    border-left-color: #f5f5f5;
    border-right-color: #777;
    border-bottom-color: #777;
    cursor: default;
    opacity: 1;
}

/* Access-style master maintenance screens */
.access-master-page {
    background: #24e6df;
    min-height: calc(100vh - 52px);
    padding: 12px 18px;
}
.master-header.compact {
    background: transparent;
    border-bottom: 1px solid #777;
    margin-bottom: 8px;
}
.access-filter-form {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 8px 12px;
    background: #24e6df;
    border: 1px solid #999;
    padding: 8px;
}
.access-filter-grid {
    display: grid;
    grid-template-columns: repeat(5, max-content minmax(80px, max-content));
    gap: 4px 6px;
    align-items: center;
}
.access-filter-grid label,
.access-filter-actions label {
    background: #ffff66;
    border: 1px solid #777;
    min-height: 24px;
    line-height: 22px;
    padding: 0 6px;
    font-weight: 700;
    white-space: nowrap;
}
.access-filter-grid input,
.access-filter-actions input {
    height: 24px;
    border: 1px solid #777;
    padding: 0 4px;
    box-sizing: border-box;
}
.access-filter-actions {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}
.access-master-grid th {
    background: #ffff66;
    color: #111;
    border: 1px solid #777;
    padding: 3px 6px;
    white-space: nowrap;
}
.access-master-grid td {
    background: #eeeeee;
    border: 1px solid #bbb;
    padding: 3px 6px;
    white-space: nowrap;
}
.access-master-grid td.center { text-align: center; }
.access-master-grid .row-actions { min-width: 112px; }
@media (max-width: 900px) {
    .access-filter-grid {
        grid-template-columns: 110px minmax(160px, 1fr);
        width: 100%;
    }
    .access-filter-grid input { width: 100% !important; }
    .access-filter-actions { width: 100%; }
}


/* fix6: Access compare layout for M-005/M-006 */
.access-master-page {
    padding: 8px 10px;
    overflow: hidden;
}
.access-master-page .master-header.compact {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 4px;
    padding-bottom: 4px;
}
.access-master-page .master-header.compact h2 {
    font-size: 18px;
    margin: 0 0 2px;
}
.access-master-page .master-header.compact p {
    font-size: 12px;
    margin: 1px 0;
}
.access-master-page .access-message {
    margin: 4px 0;
    padding: 5px 8px;
    font-size: 13px;
}
.access-filter-form {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 4px;
    padding: 6px;
    margin-bottom: 6px;
    overflow-x: auto;
}
.access-filter-toolbar {
    order: 0;
    display: flex;
    align-items: center;
    gap: 5px;
    justify-content: flex-end;
    width: 100%;
}
.access-filter-toolbar .access-button,
.access-filter-toolbar button.access-button {
    height: 26px;
    min-width: 68px;
    padding: 2px 8px;
}
.access-filter-toolbar input[type="number"] {
    width: 58px;
}
.access-filter-grid {
    order: 1;
    width: max-content;
    max-width: 100%;
    display: grid;
    align-items: center;
    gap: 3px 4px;
}
.access-filter-grid.person {
    grid-template-columns: repeat(8, max-content max-content);
}
.access-filter-grid.department {
    grid-template-columns: repeat(5, max-content max-content);
}
.access-filter-grid.generic,
.access-filter-grid.master {
    grid-template-columns: repeat(4, max-content max-content);
}

.access-filter-grid.nameFunction {
    grid-template-columns: max-content max-content max-content;
}
.access-filter-grid .institution-name-display {
    width: 320px;
    height: 22px;
    font-size: 13px;
    border: 1px solid #777;
    background: #f5f5f5;
    color: #111;
    padding: 0 5px;
    box-sizing: border-box;
}
.access-filter-grid label,
.access-filter-actions label {
    min-height: 22px;
    line-height: 20px;
    padding: 0 5px;
    font-size: 13px;
}
.access-filter-grid input,
.access-filter-actions input {
    height: 22px;
    font-size: 13px;
}
.master-grid-wrap {
    height: calc(100vh - 175px);
    min-height: 0;
    overflow: auto;
}
.access-master-grid {
    font-size: 13px;
}
.access-master-grid th,
.access-master-grid td {
    padding: 2px 5px;
    height: 23px;
}
.access-master-grid .row-actions {
    min-width: 92px;
}
.access-button.mini {
    min-width: 38px;
    padding: 2px 6px;
    font-size: 12px;
}
@media (max-width: 900px) {
    .access-master-page { overflow: auto; }
    .access-filter-form { overflow-x: visible; }
    .access-filter-toolbar { justify-content: flex-start; flex-wrap: wrap; }
    .access-filter-grid,
    .access-filter-grid.person,
    .access-filter-grid.department,
    .access-filter-grid.generic,
    .access-filter-grid.master {
        grid-template-columns: 110px minmax(160px, 1fr);
        width: 100%;
        max-width: none;
    }
    .access-filter-grid input { width: 100% !important; }
    .master-grid-wrap { height: auto; min-height: 320px; }
}

/* fix7: Access-style dropdown filters */
.access-filter-grid select,
.access-filter-actions select {
    height: 22px;
    font-size: 13px;
    border: 1px solid #777;
    padding: 0 3px;
    box-sizing: border-box;
    background: #fff;
}
@media (max-width: 900px) {
    .access-filter-grid select { width: 100% !important; }
}

/* Global progress message: SignalR / submit feedback */
.global-progress-status {
    position: fixed;
    right: 18px;
    bottom: 18px;
    min-width: 280px;
    max-width: 520px;
    padding: 12px 42px 12px 16px;
    border: 2px solid #777;
    background: #fff8cc;
    color: #111;
    font-weight: 700;
    box-shadow: 3px 3px 0 rgba(0,0,0,.25);
    z-index: 9999;
    display: none;
}
.global-progress-status.is-visible { display: block; }
.global-progress-status button {
    position: absolute;
    right: 6px;
    top: 5px;
    min-width: 26px;
    width: 26px;
    height: 26px;
    padding: 0;
    line-height: 22px;
}
.alc-progress-result {
    color: #111;
    background: #e5ffd6;
}

/* 大量データ表示対策：マスタ一覧ページャ */
.master-pager {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 10px 0;
    padding: 8px;
    background: #f6f6f6;
    border: 1px solid #d0d0d0;
}

.master-pager .pager-form {
    margin: 0;
}

.master-pager .pager-status {
    min-width: 180px;
    text-align: center;
    font-weight: 600;
}

/* 名称機能別：Accessフォーム寄せ */
.access-inline-add-form.name-function-add-form {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 8px;
    padding: 8px;
    margin: 8px 0;
    border: 1px solid #b8b8b8;
    background: #f4f4f4;
    font-size: 13px;
}
.access-inline-add-form .inline-add-title {
    font-weight: 700;
    margin-right: 6px;
}
.access-inline-add-form label {
    margin-left: 4px;
}
.access-inline-add-form .checkbox-label {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    white-space: nowrap;
}
.access-master-grid .grid-input {
    box-sizing: border-box;
    height: 24px;
    padding: 2px 4px;
    border: 1px solid #aaa;
    font-size: 13px;
}
.access-master-grid .name-input {
    width: 220px;
}
.access-master-grid .code-input,
.access-inline-add-form .code-input {
    width: 90px;
}
.access-master-grid .number-cell {
    text-align: right;
}

/* 20260704 master access form expansion */
.access-filter-grid.nameAlpha,
.access-filter-grid.nameNumeric,
.access-filter-grid.bloodItem,
.access-filter-grid.conversion,
.access-filter-grid.examTypeName {
    grid-template-columns: repeat(2, max-content max-content max-content);
}
.access-filter-grid.bloodJudgment,
.access-filter-grid.generalJudgment,
.access-filter-grid.insurer,
.access-filter-grid.department,
.access-filter-grid.person,
.access-filter-grid.examType,
.access-filter-grid.personDeleteFlag {
    grid-template-columns: repeat(4, max-content max-content max-content);
}
.access-filter-grid .filter-name-display {
    width: 310px;
    height: 22px;
    font-size: 13px;
    border: 1px solid #777;
    background: #d6d6d6;
    color: #111;
    padding: 0 5px;
    box-sizing: border-box;
}
.access-filter-grid .plain-check {
    background: transparent;
    border: 0;
    font-weight: 400;
    padding: 0 4px;
}
.generic-inline-add-form {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 5px 7px;
    padding: 7px 8px;
    margin: 6px 0;
    border: 1px solid #b8b8b8;
    background: #eeeeee;
    font-size: 13px;
}
.generic-inline-add-form label {
    background: #ffff66;
    border: 1px solid #777;
    min-height: 22px;
    line-height: 20px;
    padding: 0 5px;
    font-weight: 700;
}
.generic-inline-add-form input,
.generic-inline-add-form select {
    height: 22px;
    border: 1px solid #777;
    padding: 0 4px;
    box-sizing: border-box;
    font-size: 13px;
}
.generic-inline-add-form .inline-add-title {
    font-weight: 700;
    margin-right: 5px;
}
.inline-checkbox-cell {
    min-width: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.access-master-grid .text-input {
    width: 140px;
}
.access-master-grid .name-input,
.generic-inline-add-form .name-input {
    width: 230px;
    text-align: left;
}
.access-master-grid .code-input,
.generic-inline-add-form .code-input {
    width: 82px;
}
.access-master-grid.bloodJudgment .code-input,
.access-master-grid.generalJudgment .code-input,
.access-master-grid.insurer .code-input {
    width: 72px;
}
.delete-flag-panel {
    border: 1px solid #444;
    margin: 18px 0 10px 70px;
    padding: 28px 24px 20px;
    max-width: 980px;
    position: relative;
    background: #24e6df;
}
.delete-flag-title {
    position: absolute;
    top: -14px;
    left: 16px;
    background: #ffff66;
    border: 1px solid #777;
    padding: 3px 10px;
    font-weight: 700;
}
.delete-flag-buttons {
    display: grid;
    grid-template-columns: repeat(3, minmax(180px, 1fr));
    gap: 12px 28px;
}
.delete-flag-note {
    margin-top: 12px;
    color: #7a1f1f;
    font-weight: 700;
}
@media (max-width: 900px) {
    .access-filter-grid.nameAlpha,
    .access-filter-grid.nameNumeric,
    .access-filter-grid.bloodItem,
    .access-filter-grid.conversion,
    .access-filter-grid.examTypeName,
    .access-filter-grid.bloodJudgment,
    .access-filter-grid.generalJudgment,
    .access-filter-grid.insurer,
    .access-filter-grid.department,
    .access-filter-grid.person,
    .access-filter-grid.examType,
    .access-filter-grid.personDeleteFlag {
        grid-template-columns: 110px minmax(160px, 1fr);
        width: 100%;
    }
}

/* 20260704 micro display fixes */
.access-master-grid .row-actions,
.access-master-grid th:first-child {
    width: 1%;
    min-width: 0 !important;
    white-space: nowrap;
    padding-left: 3px;
    padding-right: 3px;
}
.access-master-grid .row-actions .inline-form {
    display: inline-block;
    margin: 0 1px;
}
.access-button.mini {
    min-width: 34px;
    padding: 2px 5px;
}
.access-filter-grid.nameAlpha,
.access-filter-grid.nameNumeric,
.access-filter-grid.bloodItem,
.access-filter-grid.bloodJudgment,
.access-filter-grid.generalJudgment,
.access-filter-grid.department {
    grid-template-columns: max-content max-content max-content;
}
.access-filter-grid.nameAlpha input.filter-name-display,
.access-filter-grid.nameNumeric input.filter-name-display,
.access-filter-grid.bloodItem input.filter-name-display,
.access-filter-grid.bloodJudgment input.filter-name-display,
.access-filter-grid.generalJudgment input.filter-name-display,
.access-filter-grid.department input.filter-name-display {
    width: 310px;
}
.access-master-grid .grid-textarea {
    width: 100%;
    min-width: 220px;
    min-height: 42px;
    height: auto;
    white-space: normal;
    overflow-wrap: anywhere;
    resize: vertical;
    line-height: 1.25;
    font-size: 13px;
    box-sizing: border-box;
}
.access-master-grid.nameAlpha td:nth-child(6),
.access-master-grid.nameNumeric td:nth-child(5),
.access-master-grid.nameNumeric td:nth-child(6) {
    white-space: normal;
}
.access-master-grid.nameAlpha td:nth-child(6) .grid-textarea {
    min-width: 520px;
}
.access-master-grid.nameNumeric td:nth-child(5) .grid-textarea,
.access-master-grid.nameNumeric td:nth-child(6) .grid-textarea {
    min-width: 360px;
}
.generic-inline-add-form.nameAlpha textarea.name-input,
.generic-inline-add-form.nameNumeric textarea.name-input {
    min-width: 360px;
    min-height: 42px;
}
.access-master-grid select.grid-input {
    height: 24px;
    border: 1px solid #aaa;
    font-size: 13px;
    box-sizing: border-box;
}
.access-master-grid .two-line-cell {
    vertical-align: top;
    white-space: normal;
}
.access-master-grid .sub-display {
    margin-top: 2px;
    min-height: 18px;
    padding: 1px 3px;
    background: #d6d6d6;
    border: 1px solid #aaa;
    color: #111;
    font-size: 12px;
    line-height: 1.25;
    white-space: nowrap;
}
.access-master-grid.person .code-input,
.access-master-grid.department .code-input {
    width: 96px;
}

/* 20260704 display verification fix 2: exact Access-like row grouping and table rendering */
.access-filter-grid {
    display: flex !important;
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
    width: max-content;
}
.access-filter-grid .access-filter-row {
    display: grid;
    grid-template-columns: max-content max-content max-content;
    align-items: center;
    gap: 3px 4px;
    min-height: 24px;
}
.access-filter-grid .access-filter-label {
    background: #ffff66;
    border: 1px solid #777;
    font-weight: 700;
    white-space: nowrap;
}
.access-filter-grid .plain-check {
    grid-column: span 2;
}
.access-filter-grid select,
.access-filter-grid input {
    height: 22px;
}
.access-master-grid th.action-column,
.access-master-grid th:first-child,
.access-master-grid td.row-actions {
    width: 72px !important;
    min-width: 72px !important;
    max-width: 72px !important;
    white-space: nowrap !important;
    padding-left: 2px !important;
    padding-right: 2px !important;
}
.access-master-grid td.row-actions {
    text-align: center;
    vertical-align: top;
}
.access-master-grid .row-actions .inline-form {
    display: inline-block !important;
    margin: 0 !important;
}
.access-button.mini,
.access-master-grid .row-actions .access-button.mini {
    min-width: 30px !important;
    padding: 1px 3px !important;
    font-size: 12px !important;
    line-height: 18px !important;
}
.access-master-grid th,
.access-master-grid td {
    height: auto !important;
    min-height: 23px;
    vertical-align: top;
}
.access-master-grid textarea.grid-textarea {
    display: block;
    width: 100% !important;
    min-height: 24px;
    height: auto;
    overflow: hidden;
    resize: none;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    line-height: 1.35;
}
.access-master-grid.nameAlpha td:nth-child(6),
.access-master-grid.nameNumeric td:nth-child(5),
.access-master-grid.nameNumeric td:nth-child(6) {
    white-space: normal !important;
    vertical-align: top;
}
.access-master-grid.nameAlpha td:nth-child(6) textarea.grid-textarea {
    min-width: 520px;
}
.access-master-grid.nameNumeric td:nth-child(5) textarea.grid-textarea,
.access-master-grid.nameNumeric td:nth-child(6) textarea.grid-textarea {
    min-width: 360px;
}
.access-master-grid select.grid-input {
    min-width: 82px;
}

/* 20260704 display verification fix 3 */
.access-master-grid col.operation-col,
.insurer-grid col.operation-col {
    width: 62px !important;
}
.access-master-grid th.action-column,
.access-master-grid th:first-child,
.access-master-grid td.row-actions,
.insurer-grid th.action-column,
.insurer-grid td.row-actions {
    width: 62px !important;
    min-width: 62px !important;
    max-width: 62px !important;
}
.generic-inline-add-form.nameAlpha,
.generic-inline-add-form.nameNumeric {
    align-items: flex-start;
}
.generic-inline-add-form.nameAlpha .inline-add-title,
.generic-inline-add-form.nameNumeric .inline-add-title {
    display: none;
}
.generic-inline-add-form.nameAlpha label,
.generic-inline-add-form.nameNumeric label {
    margin-top: 2px;
}
.generic-inline-add-form.nameAlpha textarea.name-input,
.generic-inline-add-form.nameNumeric textarea.name-input,
.generic-inline-add-form.nameNumeric textarea.text-input {
    min-height: 42px;
    vertical-align: top;
    resize: vertical;
}
.access-master-grid.bloodItem select.grid-input {
    width: 100% !important;
    min-width: 118px !important;
}
.access-master-grid.bloodItem td:nth-child(2),
.access-master-grid.bloodItem th:nth-child(2),
.access-master-grid.bloodItem td:nth-child(7),
.access-master-grid.bloodItem th:nth-child(7) {
    min-width: 130px;
}
.insurer-master-action-panel {
    display: flex;
    justify-content: center;
    gap: 28px;
    margin: 4px 0 8px;
}
.insurer-master-action-panel .access-button {
    min-width: 150px;
    height: 32px;
    line-height: 26px;
    text-align: center;
}
.insurer-grid-wrap {
    height: calc(100vh - 230px);
}
.insurer-grid {
    min-width: 1520px;
    border-collapse: collapse;
}
.insurer-grid th,
.insurer-grid td {
    vertical-align: top;
    white-space: normal !important;
}
.insurer-grid .insurer-number-col { width: 130px; }
.insurer-grid .insurer-name-col { width: 230px; }
.insurer-grid .insurer-unit-col { width: 78px; }
.insurer-grid .insurer-money-col { width: 112px; }
.insurer-grid .insurer-rate-col { width: 96px; }
.insurer-grid .insurer-add-col { width: 170px; }
.insurer-grid .insurer-agency-col { width: 260px; }
.insurer-grid .insurer-id-cell,
.insurer-grid .insurer-name-cell,
.insurer-grid .insurer-agency-cell {
    background: #e6e6e6;
}
.insurer-grid .insurer-unit-label {
    color: #2c3e82;
    text-align: right;
    font-weight: 700;
    white-space: nowrap !important;
}
.insurer-grid .insurer-money-input,
.insurer-grid .insurer-rate-input {
    width: 100% !important;
    text-align: right;
}
.insurer-grid .insurer-add-select,
.insurer-grid .insurer-agency-select {
    width: 100% !important;
    min-width: 0 !important;
}
.insurer-grid .insurer-reason-cell {
    min-width: 220px;
    color: #2c3e82;
    font-size: 12px;
    line-height: 1.35;
}
.insurer-grid .insurer-condition {
    color: #111;
}
.insurer-grid .insurer-note {
    margin-top: 6px;
    color: #2c3e82;
    font-size: 12px;
    line-height: 1.35;
}

/* 20260704 insurer layout fix 4 */
.insurer-grid {
    min-width: 1660px;
}
.insurer-grid col.operation-col {
    width: 54px !important;
}
.insurer-grid th.action-column,
.insurer-grid td.insurer-row-actions {
    width: 54px !important;
    min-width: 54px !important;
    max-width: 54px !important;
    padding-left: 1px !important;
    padding-right: 1px !important;
    text-align: center;
}
.insurer-grid td.insurer-row-actions .inline-form {
    display: block !important;
    margin: 0 0 2px 0 !important;
}
.insurer-grid td.insurer-row-actions .access-button.mini {
    min-width: 34px !important;
    width: 38px !important;
    padding: 1px 2px !important;
    font-size: 11px !important;
    line-height: 17px !important;
}
.insurer-grid .insurer-number-col { width: 112px; }
.insurer-grid .insurer-name-col { width: 205px; }
.insurer-grid .insurer-unit-col { width: 74px; }
.insurer-grid .insurer-unit-value-col { width: 88px; }
.insurer-grid .insurer-money-col { width: 82px; }
.insurer-grid .insurer-rate-col { width: 70px; }
.insurer-grid .insurer-add-col { width: 150px; }
.insurer-grid .insurer-add-money-col { width: 90px; }
.insurer-grid .insurer-agency-col { width: 210px; }
.insurer-grid .insurer-name-cell {
    width: 205px;
    min-width: 205px;
    max-width: 205px;
    white-space: normal !important;
}
.insurer-grid .insurer-name-main {
    font-weight: 400;
    margin-bottom: 10px;
}
.insurer-grid .insurer-reason-note {
    color: #2c3e82;
    font-size: 12px;
    line-height: 1.22;
    margin-top: 4px;
    white-space: normal;
}
.insurer-grid .insurer-unit-label {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 3px;
    min-height: 24px;
}
.insurer-grid .insurer-unit-label input[type="checkbox"] {
    width: 14px;
    height: 14px;
    margin: 0;
}
.insurer-grid .insurer-reason-comment-cell,
.insurer-grid .insurer-reason-condition-cell {
    padding: 1px 3px !important;
    background: #eeeeee;
}
.insurer-grid .insurer-reason-caption {
    display: block;
    color: #2c3e82;
    font-size: 12px;
    line-height: 1.1;
    text-align: center;
    white-space: nowrap;
}
.insurer-grid .insurer-reason-input {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box;
    height: 21px;
}
.insurer-grid .insurer-add-select,
.insurer-grid .insurer-agency-select,
.insurer-grid .insurer-money-input,
.insurer-grid .insurer-rate-input {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box;
}

/* 20260704 select width fix: department/person office combo must use full column width */
.access-master-grid.department select.grid-input,
.access-master-grid.person select.grid-input {
    width: 100% !important;
    min-width: 150px !important;
    max-width: none !important;
}
.access-master-grid.department select.code-input,
.access-master-grid.person select.code-input {
    width: 100% !important;
    min-width: 150px !important;
    max-width: none !important;
}
.access-master-grid.department td.two-line-cell select.grid-input,
.access-master-grid.person td.two-line-cell select.grid-input {
    width: 100% !important;
}
.access-master-grid.department td:nth-child(2),
.access-master-grid.department th:nth-child(2),
.access-master-grid.person td:nth-child(2),
.access-master-grid.person th:nth-child(2) {
    min-width: 190px;
}

/* 20260704 order/delete flag/exam type mark patch */
.access-delete-flag-panel {
    width: 930px;
    max-width: calc(100vw - 180px);
    margin: 16px 0 12px 64px;
    padding: 16px 18px 12px;
    border: 1px solid #2b2b2b;
    position: relative;
    box-sizing: border-box;
}
.access-delete-flag-panel .delete-flag-title {
    position: absolute;
    top: -16px;
    left: 12px;
    background: #ffff66;
    border: 1px solid #888;
    padding: 3px 14px;
    font-weight: 600;
}
.delete-flag-layout {
    display: flex;
    align-items: flex-start;
    gap: 32px;
}
.delete-flag-counts {
    display: grid;
    grid-template-columns: 1fr;
    gap: 4px;
    margin-top: 12px;
}
.delete-flag-count-row {
    display: grid;
    grid-template-columns: 96px 88px;
    align-items: center;
    gap: 4px;
}
.delete-flag-count-row span {
    background: #ffc0e6;
    border: 1px solid #999;
    padding: 2px 6px;
    text-align: center;
    min-height: 20px;
}
.delete-flag-count-row input {
    height: 22px;
    border: 1px solid #b0b0b0;
    background: #eeeeee;
    text-align: right;
    padding-right: 6px;
}
.delete-flag-count-row.complete-delete span {
    background: #ff0000;
    color: #fff;
}
.access-delete-flag-panel .delete-flag-buttons {
    display: grid;
    grid-template-columns: repeat(3, 190px);
    column-gap: 24px;
    row-gap: 10px;
    margin-top: 12px;
}
.access-delete-flag-panel .delete-flag-buttons .inline-form {
    display: block;
    margin: 0;
}
.access-delete-flag-panel .delete-flag-operation {
    width: 190px;
    min-width: 190px;
    height: 28px;
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: clip;
    font-size: 13px;
}
.access-delete-flag-panel .delete-flag-note {
    margin-top: 12px;
    color: #c00000;
    font-weight: 600;
}
.exam-type-mark-row td {
    background: #f7fff7 !important;
    height: 18px;
    padding: 0 2px !important;
    border-top: 0 !important;
}
.exam-type-circle-mark {
    color: #0033cc;
    font-weight: 700;
    font-size: 13px;
    line-height: 16px;
}
.exam-type-mark-blank {
    background: #f7fff7 !important;
}


/* 20260704 person delete flag fine layout fix */
.access-filter-grid.personDeleteFlag .date-range-filter-row {
    grid-template-columns: max-content 130px max-content 130px !important;
}
.access-filter-grid.personDeleteFlag .date-range-filter-row input[type="date"] {
    width: 130px !important;
}
.access-filter-grid.personDeleteFlag .date-range-separator {
    display: inline-block;
    padding: 0 6px;
    font-weight: 700;
}
.access-delete-flag-panel {
    width: 1080px !important;
    max-width: calc(100vw - 150px) !important;
}
.delete-flag-layout {
    gap: 42px !important;
}
.delete-flag-count-row {
    grid-template-columns: 118px 88px !important;
}
.delete-flag-count-row span {
    white-space: nowrap !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
}
.access-delete-flag-panel .delete-flag-buttons {
    grid-template-columns: repeat(3, 240px) !important;
    column-gap: 24px !important;
    row-gap: 10px !important;
}
.access-delete-flag-panel .delete-flag-operation {
    width: 240px !important;
    min-width: 240px !important;
    height: 28px !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow: hidden !important;
    text-overflow: clip !important;
    line-height: 20px !important;
}

/* Phase2 operation screens: Accessフォーム座標ベース */
.phase2-access-page {
    background: #a9d7df;
    min-height: calc(100vh - 52px);
    padding: 0;
    overflow: auto;
    color: #111;
}
.phase2-title-row {
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 14px;
    background: #eeeeee;
    border-bottom: 1px solid #aaa;
    box-sizing: border-box;
}
.phase2-access-form {
    background: #a9d7df;
    margin: 0;
    padding: 0;
}
.access-section {
    position: relative;
    background: #a9d7df;
    overflow: visible;
    box-sizing: border-box;
}
.access-header-section {
    border-bottom: 1px solid #8eabb0;
}
.access-footer-section {
    border-top: 1px solid #8eabb0;
}
.access-control {
    position: absolute;
    box-sizing: border-box;
    font-family: "Yu Gothic", Meiryo, sans-serif;
    font-size: 13px;
    line-height: 1.15;
}
.access-label-control {
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #777;
    background: #ffff66;
    font-weight: 700;
    overflow: hidden;
    white-space: nowrap;
}
.access-text-control,
.access-select-control {
    border: 1px solid #8c8c8c;
    background: #eeeeee;
    padding: 1px 4px;
    color: #111;
}
.access-text-control[readonly] {
    background: #eeeeee;
}
.access-checkbox-control {
    width: 16px !important;
    height: 16px !important;
    margin: 0;
}
.access-command-control {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-width: 0 !important;
    padding: 0 6px !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: clip;
}
.access-command-control:disabled {
    color: #777;
    opacity: 1;
    cursor: default;
}
.access-rectangle-control {
    border: 1px solid #8a8a8a;
    background: transparent;
    pointer-events: none;
}
.access-line-control {
    border-top: 1px solid #777;
    height: 1px !important;
    pointer-events: none;
}
.phase2-grid-wrap {
    overflow: auto;
    max-height: calc(100vh - 310px);
    min-height: 260px;
    background: #a9d7df;
    border-top: 1px solid #777;
    border-bottom: 1px solid #777;
}
.phase2-access-grid {
    border-collapse: separate;
    border-spacing: 0;
    background: #a9d7df;
    width: max-content;
    min-width: 100%;
}
.phase2-access-grid th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #ffff66;
    border: 1px solid #777;
    height: 22px;
    padding: 0 4px;
    font-size: 13px;
    text-align: center;
    white-space: nowrap;
}
.phase2-access-grid th.target-col {
    background: #00ff66;
}
.phase2-access-grid td {
    border: 1px solid #a0a0a0;
    height: 24px;
    background: #eeeeee;
    padding: 0;
    white-space: nowrap;
}
.phase2-access-grid td.target-col {
    text-align: center;
    background: #eeeeee;
}
.phase2-access-grid td.number .grid-cell-input {
    text-align: right;
}
.grid-cell-input {
    width: 100%;
    height: 22px;
    border: 0;
    background: transparent;
    padding: 0 4px;
    box-sizing: border-box;
    font-size: 13px;
    font-family: "Yu Gothic", Meiryo, sans-serif;
}
.phase2-access-grid .empty-row {
    text-align: center;
    padding: 20px;
    color: #555;
}

/* Phase2 fine layout fix 20260708 */
.phase2-access-page,
.phase2-access-form,
.access-control,
.phase2-access-grid {
    font-family: "Yu Gothic UI", "Yu Gothic", Meiryo, sans-serif;
    font-size: 12px;
}
.access-control {
    line-height: 1.25;
}
.access-label-control {
    padding: 1px 3px;
    min-height: 20px;
    white-space: nowrap;
    word-break: keep-all;
}
.access-text-control,
.access-select-control {
    min-height: 22px;
    padding: 1px 3px;
    line-height: 20px;
    white-space: nowrap;
}
.access-command-control {
    min-height: 24px;
    line-height: 20px !important;
    word-break: keep-all !important;
}
.phase2-grid-wrap {
    min-height: 300px;
}
.phase2-access-grid th,
.phase2-access-grid td,
.grid-cell-input {
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow: hidden;
    text-overflow: clip;
}
.phase2-access-grid th {
    height: 22px;
    line-height: 20px;
}
.phase2-access-grid td {
    height: 24px;
}
.grid-cell-input {
    height: 24px;
    line-height: 22px;
    font-size: 12px;
}

/* Phase2 form correction 20260708: prevent Access labels/buttons from clipping */
.phase2-access-page,
.phase2-access-form,
.access-control,
.phase2-access-grid {
    font-size: 13px;
}
.access-label-control {
    overflow: visible;
    text-overflow: clip;
    line-height: 1.25;
    min-height: 22px;
}
.access-command-control {
    overflow: visible;
    text-overflow: clip;
    min-height: 26px;
}
.access-text-control,
.access-select-control {
    min-height: 24px;
    height: auto;
    line-height: 22px;
}
.phase2-grid-wrap {
    max-height: none;
}
.phase2-access-grid th {
    min-height: 24px;
    height: 24px;
    line-height: 22px;
}
.phase2-access-grid td,
.grid-cell-input {
    height: 25px;
    line-height: 23px;
}

/* Phase2 correction 20260708-2: Access combo is editable; prevent clipping */
.access-combo-text-control,
.access-date-text-control,
.access-listbox-control {
    min-height: 26px;
    height: auto;
    line-height: 22px;
    padding: 2px 4px;
    white-space: nowrap;
    overflow: visible;
    box-sizing: border-box;
}
.access-label-control,
.access-command-control {
    min-height: 26px;
    padding: 2px 4px;
    box-sizing: border-box;
}
.access-detail-form-section {
    background: #b7dfe4;
}
.phase2-access-grid {
    table-layout: fixed;
    border-collapse: collapse;
}
.phase2-access-grid th,
.phase2-access-grid td {
    padding: 1px 3px;
    vertical-align: middle;
}
.phase2-access-grid th {
    overflow: visible;
    text-overflow: clip;
}

/* 20260708 Phase2 quality correction: grid-header de-duplication / date input / clipping */
.phase2-access-page,
.phase2-access-form {
    background: #a9d7df;
}
.access-section {
    overflow: visible !important;
}
.access-label-control,
.access-command-control {
    align-items: center;
    justify-content: center;
    min-height: 28px !important;
    line-height: 1.25 !important;
    padding: 2px 6px !important;
    overflow: visible !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    box-sizing: border-box !important;
}
.access-text-control,
.access-combo-text-control,
.access-date-text-control,
.access-select-control,
.access-listbox-control {
    min-height: 27px !important;
    line-height: 23px !important;
    padding: 2px 5px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    white-space: nowrap !important;
}
.access-date-text-control {
    font-family: "Yu Gothic UI", "Yu Gothic", Meiryo, sans-serif;
}
.phase2-grid-wrap {
    max-height: calc(100vh - 250px);
    min-height: 320px;
    overflow: auto;
    border-top: 0;
}
.phase2-access-grid {
    table-layout: fixed;
    border-collapse: collapse;
}
.phase2-access-grid th {
    height: 25px !important;
    line-height: 22px !important;
    padding: 1px 6px !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow: visible !important;
    text-overflow: clip !important;
}
.phase2-access-grid td {
    height: 26px !important;
    padding: 0 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
}
.grid-cell-input {
    height: 25px !important;
    line-height: 23px !important;
    padding: 0 5px !important;
    overflow: hidden !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
}

/* Phase2 QG remediation 20260708-2 */
.access-label-control,
.access-command-control {
    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: clip !important;
    line-height: 1.2 !important;
}
.access-text-control,
.access-combo-text-control,
.access-date-text-control,
.access-listbox-control {
    min-height: 26px !important;
    line-height: 22px !important;
    overflow: visible !important;
}
.phase2-access-grid th {
    white-space: nowrap !important;
    overflow: visible !important;
    line-height: 22px !important;
}
.phase2-access-grid td,
.grid-cell-input {
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: clip !important;
}

/* Phase2 QG12: keep Access absolute coordinates; do not inflate controls beyond SaveAsText bounds */
.phase2-access-form .access-control {
    font-size: 12px !important;
    box-sizing: border-box !important;
}
.phase2-access-form .access-label-control,
.phase2-access-form .access-command-control {
    min-height: 0 !important;
    min-width: 0 !important;
    padding: 0 3px !important;
    line-height: 1.15 !important;
    overflow: hidden !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
}
.phase2-access-form .access-text-control,
.phase2-access-form .access-combo-text-control,
.phase2-access-form .access-date-text-control,
.phase2-access-form .access-select-control,
.phase2-access-form .access-listbox-control {
    min-height: 0 !important;
    min-width: 0 !important;
    padding: 0 3px !important;
    line-height: 1.2 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
}
.phase2-access-form .access-checkbox-control {
    min-width: 0 !important;
    min-height: 0 !important;
}
.phase2-grid-wrap {
    max-height: calc(100vh - 255px) !important;
    min-height: 260px !important;
}

/* Phase2 QG19: Access-like continuous/subform grid correction */
.phase2-access-form {
    background: #29d7d0 !important;
}
.access-section,
.access-header-section,
.access-detail-form-section,
.access-footer-section {
    background: #29d7d0 !important;
}
.phase2-grid-wrap {
    background: #29d7d0 !important;
    border-top: 1px solid #666 !important;
    border-bottom: 1px solid #666 !important;
}
.phase2-subform-grid-wrap {
    min-height: 0 !important;
    max-height: none !important;
    overflow: auto !important;
    border: 1px solid #8a8a8a !important;
}
.phase2-access-grid {
    background: #29d7d0 !important;
    border-collapse: collapse !important;
    table-layout: fixed !important;
}
.phase2-access-grid th {
    background: #ffff66 !important;
    color: #111 !important;
    border: 1px solid #777 !important;
    height: 22px !important;
    line-height: 20px !important;
    padding: 0 3px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
}
.phase2-access-grid td {
    border: 1px solid #9f9f9f !important;
    background: #e9e9e9 !important;
    height: 24px !important;
    padding: 0 !important;
}
.phase2-access-grid tbody tr:nth-child(even) td {
    background: #46d7df !important;
}
.phase2-access-grid tbody tr:nth-child(even) .grid-cell-input {
    background: #46d7df !important;
}
.phase2-access-grid tbody tr:nth-child(odd) .grid-cell-input {
    background: #e9e9e9 !important;
}
.grid-cell-input {
    height: 23px !important;
    line-height: 21px !important;
    font-size: 12px !important;
    border: 0 !important;
    padding: 0 4px !important;
}
.phase2-access-form .access-label-control,
.phase2-access-form .access-command-control,
.phase2-access-form .access-text-control,
.phase2-access-form .access-combo-text-control,
.phase2-access-form .access-date-text-control,
.phase2-access-form .access-select-control,
.phase2-access-form .access-listbox-control {
    font-size: 12px !important;
}

/* Phase2 QG20: Access matching for 入力後日 / 入力便 continuous forms */
.phase2-input-later-grid th,
.phase2-input-stool-grid th {
    height: 20px !important;
    line-height: 18px !important;
    padding: 0 3px !important;
    text-align: center !important;
    vertical-align: middle !important;
}
.phase2-input-later-grid td,
.phase2-input-stool-grid td {
    height: 24px !important;
    line-height: 22px !important;
    padding: 0 !important;
    vertical-align: middle !important;
}
.phase2-two-line-grid .two-line-main td,
.phase2-two-line-grid .two-line-sub td {
    height: 22px !important;
}
.phase2-two-line-grid .two-line-sub td {
    background: #e9e9e9 !important;
}
.phase2-two-line-grid .two-line-main:nth-of-type(4n+1) td,
.phase2-two-line-grid .two-line-main:nth-of-type(4n+1) + .two-line-sub td {
    background: #46d7df !important;
}
.grid-cell-select {
    width: 100%;
    height: 23px;
    border: 0;
    background: #e9e9e9;
    padding: 0 2px;
    box-sizing: border-box;
    font-family: "Yu Gothic UI", "Yu Gothic", Meiryo, sans-serif;
    font-size: 12px;
}
.phase2-access-grid .combo-cell {
    padding: 0 !important;
    background: #e9e9e9 !important;
}
.phase2-access-grid tr:nth-child(even) .grid-cell-select,
.phase2-access-grid tr:nth-child(even) .combo-cell {
    background: #46d7df !important;
}
.phase2-input-later-grid .grid-cell-input,
.phase2-input-stool-grid .grid-cell-input {
    height: 23px !important;
    line-height: 21px !important;
}

/* Phase2 QG21: Access連続フォーム再現補正（入力後日・入力便） */
.phase2-access-grid.phase2-two-line-grid,
.phase2-access-grid.phase2-input-stool-grid {
    table-layout: fixed;
    border-collapse: collapse;
    font-size: 13px;
}
.phase2-access-grid.phase2-two-line-grid th,
.phase2-access-grid.phase2-input-stool-grid th {
    height: 22px;
    line-height: 20px;
    padding: 0 3px;
    background: #ffff66;
    border: 1px solid #777;
    font-weight: 700;
    text-align: center;
    white-space: nowrap;
}
.phase2-access-grid.phase2-two-line-grid td,
.phase2-access-grid.phase2-input-stool-grid td {
    height: 22px;
    line-height: 20px;
    padding: 0;
    border: 1px solid #8f8f8f;
    background: #ececec;
    vertical-align: middle;
    white-space: nowrap;
}
.phase2-access-grid.phase2-two-line-grid tr.two-line-sub td {
    border-top: 0;
    background: #d9f8f8;
}
.phase2-access-grid.phase2-two-line-grid tr.two-line-main td {
    border-bottom: 0;
}
.phase2-access-grid.phase2-two-line-grid tr:nth-child(4n+1) td,
.phase2-access-grid.phase2-two-line-grid tr:nth-child(4n+2) td {
    background: #ececec;
}
.phase2-access-grid.phase2-two-line-grid tr:nth-child(4n+3) td,
.phase2-access-grid.phase2-two-line-grid tr:nth-child(4n+4) td {
    background: #d9f8f8;
}
.phase2-access-grid.phase2-two-line-grid .grid-cell-input,
.phase2-access-grid.phase2-input-stool-grid .grid-cell-input {
    width: 100%;
    height: 21px;
    min-height: 21px;
    box-sizing: border-box;
    border: 0;
    background: transparent;
    padding: 0 3px;
    font-size: 13px;
    line-height: 19px;
}
.phase2-access-grid.phase2-two-line-grid .combo-cell select,
.phase2-access-grid.phase2-input-stool-grid .combo-cell select,
.phase2-access-grid.phase2-two-line-grid .grid-cell-select,
.phase2-access-grid.phase2-input-stool-grid .grid-cell-select {
    width: 100%;
    height: 21px;
    min-height: 21px;
    box-sizing: border-box;
    border: 1px solid #00a5a5;
    background: #efefef;
    padding: 0 2px;
    font-size: 13px;
    line-height: 19px;
}
.phase2-access-grid.phase2-two-line-grid td.number input,
.phase2-access-grid.phase2-input-stool-grid td.number input {
    text-align: right;
}
.phase2-access-grid.phase2-two-line-grid .sub-cell input {
    color: #333;
}
.phase2-subform-grid-wrap .phase2-access-grid.phase2-input-later-grid,
.phase2-subform-grid-wrap .phase2-access-grid.phase2-input-stool-grid {
    min-width: 100%;
}

/* Phase2 QG22: Access combo code + display label reproduction */
.phase2-access-grid td.combo-with-label {
    padding: 0 2px !important;
    white-space: nowrap;
}
.phase2-access-grid td.combo-with-label .grid-cell-select {
    display: inline-block;
    width: 46px;
    min-width: 46px;
    height: 22px;
    vertical-align: middle;
    margin: 0 2px 0 0;
    padding: 0 0 0 2px;
    font-size: 13px;
    line-height: 20px;
}
.phase2-access-grid td.combo-with-label .combo-label-text {
    display: inline-block;
    min-width: 72px;
    height: 22px;
    line-height: 22px;
    vertical-align: middle;
    padding: 0 4px;
    border: 1px solid #9a9a9a;
    background: #dcecc7;
    color: #222;
    font-size: 13px;
    box-sizing: border-box;
}
.phase2-input-later-grid .two-line-main td,
.phase2-input-later-grid .two-line-sub td {
    height: 22px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}
.phase2-input-later-grid .two-line-sub td {
    border-top: 0 !important;
}
.phase2-input-later-grid .two-line-main td {
    border-bottom: 0 !important;
}
.phase2-input-stool-grid .combo-with-label .combo-label-text {
    min-width: 58px;
}

/* Phase2 QG24: Access fixed rendering for input blood / blood merge / judgment */
.phase2-input-blood-toolbar {
    height: 28px;
    padding-left: 36px;
    display: flex;
    align-items: center;
    background: #29d7d0;
}
.phase2-input-blood-toolbar .access-button {
    min-width: 90px;
    height: 26px;
    line-height: 22px;
    padding: 0 8px;
    font-size: 13px;
}
.phase2-input-blood-grid,
.phase2-blood-merge-grid,
.phase2-judgment-calc-grid {
    width: max-content !important;
    min-width: 0 !important;
}
.phase2-input-blood-grid th,
.phase2-blood-merge-grid th,
.phase2-judgment-calc-grid th {
    height: 22px !important;
    line-height: 20px !important;
    padding: 0 4px !important;
    font-size: 13px !important;
    text-align: center !important;
}
.phase2-input-blood-grid td,
.phase2-blood-merge-grid td,
.phase2-judgment-calc-grid td {
    height: 24px !important;
    line-height: 22px !important;
    padding: 0 !important;
}
.phase2-input-blood-grid .register-cell {
    text-align: center;
}
.phase2-input-blood-grid .grid-register-button {
    color: #0870c8;
    background: transparent;
    border: 0;
    text-decoration: underline;
    cursor: pointer;
    font-size: 13px;
    height: 22px;
    line-height: 20px;
}
.phase2-input-blood-grid .combo-cell .grid-cell-select {
    width: 100% !important;
    min-width: 0 !important;
}
.phase2-blood-merge-grid td.target-col,
.phase2-judgment-calc-grid td.target-col {
    text-align: center;
}
.phase2-subform-grid-wrap .phase2-input-blood-grid,
.phase2-subform-grid-wrap .phase2-blood-merge-grid,
.phase2-subform-grid-wrap .phase2-judgment-calc-grid {
    min-width: 0 !important;
}

/* Phase2 QG25: Access matching for 血液併合 / 血液併合オプション / 判定 count controls */
.phase2-form-blood-merge .access-detail-form-section {
    height: 333px !important;
    overflow: hidden !important;
}
.phase2-form-blood-merge .phase2-subform-grid-wrap {
    height: 333px !important;
    max-height: 333px !important;
    overflow: auto !important;
    border-top: 0 !important;
    border-bottom: 0 !important;
}
.phase2-form-blood-merge .access-footer-section {
    height: 116px !important;
    background: #ffd6ff !important;
    border-top: 1px solid #8a8a8a !important;
    overflow: visible !important;
}
.phase2-form-blood-merge .access-footer-section .access-rectangle-control {
    background: #ffd6ff !important;
}
.phase2-form-blood-merge .access-footer-section .access-text-control[name="Values[対象件数]"],
.phase2-form-judgment-calc .access-header-section .access-text-control[name="Values[対象件数]"] {
    color: #ff0000 !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    border: 0 !important;
    background: transparent !important;
}
.phase2-blood-merge-grid th,
.phase2-blood-merge-option-grid th,
.phase2-judgment-calc-grid th {
    height: 20px !important;
    line-height: 18px !important;
    padding: 0 3px !important;
}
.phase2-blood-merge-grid td,
.phase2-blood-merge-option-grid td,
.phase2-judgment-calc-grid td {
    height: 23px !important;
    line-height: 21px !important;
}
.phase2-blood-merge-grid .grid-cell-input,
.phase2-blood-merge-option-grid .grid-cell-input,
.phase2-judgment-calc-grid .grid-cell-input {
    height: 22px !important;
    line-height: 20px !important;
}
.phase2-form-blood-merge-option .access-detail-form-section {
    height: calc(100vh - 136px) !important;
    min-height: 520px !important;
    overflow: hidden !important;
}
.phase2-form-blood-merge-option .phase2-subform-grid-wrap {
    height: calc(100vh - 152px) !important;
    min-height: 500px !important;
    max-height: none !important;
    overflow: auto !important;
}
.phase2-form-blood-merge-option .access-footer-section {
    height: 42px !important;
    background: #eeeeee !important;
}
.phase2-judgment-edit-target-count {
    color: #ff0000 !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    border: 0 !important;
    background: transparent !important;
}
.phase2-blood-merge-option-grid {
    width: max-content !important;
    min-width: 0 !important;
}
.phase2-subform-grid-wrap .phase2-blood-merge-option-grid {
    min-width: 0 !important;
}


/* QG26: Access layout correction for 血液併合 / 判定修正 */
.phase2-form-blood-merge .phase2-title-row,
.phase2-form-blood-merge .access-section,
.phase2-form-blood-merge-option .phase2-title-row,
.phase2-form-blood-merge-option .access-section,
.phase2-form-judgment-edit .phase2-title-row,
.phase2-form-judgment-edit .access-section {
    background: #33d6d0 !important;
}
.phase2-form-blood-merge .phase2-subform-grid-wrap {
    background: #33d6d0 !important;
}
.phase2-blood-merge-grid {
    min-width: 0 !important;
    width: max-content !important;
}
.phase2-blood-merge-grid tr.blood-merge-main-row td {
    background: #eeeeee !important;
    height: 22px !important;
}
.phase2-blood-merge-grid tr.blood-merge-sub-row td {
    background: #e8f1db !important;
    height: 22px !important;
}
.phase2-blood-merge-grid tr.blood-merge-sub-row .grid-cell-input {
    background: #e8f1db !important;
}
.phase2-blood-merge-grid .blood-merge-c-cell .grid-cell-input,
.phase2-blood-merge-grid .blood-merge-c-cell {
    color: #c00000 !important;
    font-weight: 700 !important;
}
.phase2-blood-merge-grid td.blood-merge-sub-cell .grid-cell-input {
    color: transparent !important;
}
.phase2-form-blood-merge .access-footer-section {
    min-height: 116px !important;
}
.phase2-form-blood-merge-option .access-section {
    background: #33d6d0 !important;
}
.phase2-form-blood-merge-option .phase2-subform-grid-wrap {
    background: #33d6d0 !important;
}
.phase2-blood-merge-option-grid th,
.phase2-blood-merge-option-grid td {
    font-size: 14px !important;
}
.phase2-form-judgment-edit .access-detail-form-section {
    overflow: hidden !important;
}
.phase2-form-judgment-edit .phase2-subform-grid-wrap {
    overflow: auto !important;
    background: #33d6d0 !important;
}
.phase2-judgment-edit-grid {
    min-width: 0 !important;
    width: max-content !important;
}
.phase2-judgment-edit-grid th {
    height: 22px !important;
    line-height: 20px !important;
    padding: 0 3px !important;
}
.phase2-judgment-edit-grid td {
    height: 26px !important;
    line-height: 24px !important;
    padding: 0 !important;
    background: #eeeeee !important;
}
.phase2-judgment-edit-grid tr.judgment-edit-sub-row td {
    background: #f3f3f3 !important;
}
.phase2-judgment-edit-grid .grid-cell-input,
.phase2-judgment-edit-grid .grid-cell-select {
    width: 100% !important;
    min-width: 0 !important;
    height: 25px !important;
    line-height: 23px !important;
    box-sizing: border-box !important;
    border: 1px solid #b7b7b7 !important;
    background: #eeeeee !important;
    font-size: 14px !important;
}
.phase2-judgment-edit-grid tr.judgment-edit-sub-row .grid-cell-input {
    background: #f3f3f3 !important;
    color: #c00000 !important;
    font-weight: 700 !important;
}
.phase2-judgment-edit-grid .number .grid-cell-select,
.phase2-judgment-edit-grid .number .grid-cell-input {
    text-align: right !important;
}

/* QG27: 指摘反映 - 血液併合は1レコード1行、判定修正はAccess寸法へ寄せる */
.phase2-blood-merge-grid tr.blood-merge-main-row td {
    height: 23px !important;
    line-height: 21px !important;
}
.phase2-blood-merge-grid tr.blood-merge-sub-row {
    display: none !important;
}
.phase2-form-judgment-edit .phase2-grid-wrap {
    margin: 10px 0 0 68px !important;
    width: 1145px !important;
    max-width: 1145px !important;
    overflow: auto !important;
    background: #33d6d0 !important;
    border: 0 !important;
}
.phase2-form-judgment-edit .access-detail-form-section {
    padding-bottom: 8px !important;
}
.phase2-judgment-edit-grid {
    width: max-content !important;
    min-width: 0 !important;
    margin: 0 !important;
}
.phase2-judgment-edit-grid th {
    height: 22px !important;
    line-height: 20px !important;
    padding: 0 3px !important;
    font-size: 13px !important;
}
.phase2-judgment-edit-grid td {
    height: 25px !important;
    line-height: 23px !important;
    padding: 0 !important;
}
.phase2-judgment-edit-grid tr.judgment-edit-main-row td {
    background: #eeeeee !important;
}
.phase2-judgment-edit-grid tr.judgment-edit-sub-row td {
    background: #ffffff !important;
    border-top: 0 !important;
}
.phase2-judgment-edit-grid .judgment-edit-name-cell .grid-cell-input,
.phase2-judgment-edit-grid .judgment-edit-comment-name-cell .grid-cell-input {
    color: #c00000 !important;
    font-weight: 700 !important;
    background: #ffffff !important;
}
.phase2-judgment-edit-grid .judgment-edit-sub-cell .grid-cell-input {
    color: transparent !important;
    background: #ffffff !important;
}
.phase2-judgment-edit-grid .judgment-edit-comment-cell .grid-cell-input {
    background: #ffffff !important;
}
.phase2-judgment-edit-grid .grid-cell-select,
.phase2-judgment-edit-grid .grid-cell-input {
    font-size: 13px !important;
}

/* Phase2 QG28: frm血液併合_sub Access列順・状態表示 */
.phase2-blood-merge-grid .blood-merge-status-cell,
.phase2-blood-merge-grid .blood-merge-status-cell .grid-cell-input {
    color: #ff0000 !important;
    font-weight: 700 !important;
}
.phase2-blood-merge-grid td.target-col input[type="checkbox"] {
    width: 18px !important;
    height: 18px !important;
}

/* Phase2 QG29: frm血液併合 対象チェック個別指定 */
.phase2-blood-merge-grid td.target-col input[type="checkbox"] {
    pointer-events: auto !important;
    cursor: pointer !important;
}

/* Phase2 QG30: frm血液併合オプション指定_sub Access配置寄せ */
.phase2-form-blood-merge-option .phase2-title-row strong {
    white-space: nowrap !important;
}
.phase2-form-blood-merge-option .access-detail-form-section {
    height: 604px !important;
    min-height: 604px !important;
    overflow: hidden !important;
}
.phase2-form-blood-merge-option .phase2-subform-grid-wrap {
    height: 604px !important;
    min-height: 604px !important;
    overflow: auto !important;
    background: #33d6d0 !important;
    border: 0 !important;
}
.phase2-form-blood-merge-option .access-footer-section {
    height: 42px !important;
    min-height: 42px !important;
    background: #eeeeee !important;
}
.phase2-blood-merge-option-grid {
    min-width: 0 !important;
    width: max-content !important;
    margin: 0 !important;
}
.phase2-blood-merge-option-grid th {
    height: 20px !important;
    line-height: 18px !important;
    padding: 0 3px !important;
    font-size: 13px !important;
    text-align: center !important;
    white-space: nowrap !important;
}
.phase2-blood-merge-option-grid td {
    height: 22px !important;
    line-height: 20px !important;
    padding: 0 !important;
    background: #eeeeee !important;
}
.phase2-blood-merge-option-grid .grid-cell-input {
    width: 100% !important;
    min-width: 0 !important;
    height: 21px !important;
    line-height: 19px !important;
    box-sizing: border-box !important;
    border: 1px solid #a8a8a8 !important;
    background: #eeeeee !important;
    font-size: 13px !important;
}
.phase2-blood-merge-option-grid .blood-merge-option-sub-row td,
.phase2-blood-merge-option-grid .blood-merge-option-sub-row .grid-cell-input {
    background: #f4f4f4 !important;
}
.phase2-blood-merge-option-grid .blood-merge-option-name-cell .grid-cell-input {
    text-align: left !important;
}
.phase2-blood-merge-option-grid .blood-merge-option-opt-cell .grid-cell-input,
.phase2-blood-merge-option-grid .number .grid-cell-input {
    text-align: right !important;
}
.phase2-blood-merge-option-grid .blood-merge-option-sub-fill .grid-cell-input {
    color: transparent !important;
}


/* Phase2 QG31: frm血液併合オプション指定 - Access起動時の検索条件保持・ボタン位置補正 */
.phase2-form-blood-merge-option.phase2-access-form {
    position: relative !important;
}
.phase2-form-blood-merge-option .access-footer-section {
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    width: 100% !important;
    height: 44px !important;
    min-height: 44px !important;
    background: transparent !important;
    border: 0 !important;
    z-index: 20 !important;
    pointer-events: none !important;
}
.phase2-form-blood-merge-option .access-footer-section .access-command-control {
    pointer-events: auto !important;
}
.phase2-form-blood-merge-option .access-detail-form-section {
    margin-top: 0 !important;
}
.phase2-form-blood-merge-option .phase2-subform-grid-wrap {
    top: 4px !important;
}
.phase2-blood-merge-option-grid tr.blood-merge-option-empty-row td {
    background: #ffffff !important;
}
.phase2-blood-merge-option-grid tr.blood-merge-option-empty-row .grid-cell-input {
    background: #ffffff !important;
    color: transparent !important;
}

/* ALC Phase2 qg35: ラボ血液累積 layout補正 */
.phase2-form-lab-blood-accumulate .access-command-control[value="変換指定"] {
    width: 86px !important;
    min-width: 86px !important;
}

.phase2-form-lab-blood-accumulate .access-command-control[value="削除"],
.phase2-form-lab-blood-accumulate .access-command-control[value="保守"],
.phase2-form-lab-blood-accumulate .access-command-control[value="変更"],
.phase2-form-lab-blood-accumulate .access-command-control[value="リスト"],
.phase2-form-lab-blood-accumulate .access-command-control[value="読込み"],
.phase2-form-lab-blood-accumulate .access-command-control[value="閉じる"] {
    min-width: 54px !important;
}

.phase2-blood-merge-individual-grid .blood-merge-sub-row td {
    background: #e7efd9;
}

.phase2-blood-merge-individual-grid .blood-merge-sub-row .blood-merge-c-cell {
    color: #c00000;
    font-weight: 700;
}
.phase2-blood-merge-individual-grid .blood-merge-sub-row .blood-merge-c-cell .grid-cell-input {
    color: #c00000;
    font-weight: 700;
}

/* Phase2 QG36: 入力血液型 Accessレイアウト */
.phase2-form-input-bloodtype .phase2-grid-wrap,
.phase2-form-input-bloodtype .phase2-subform-grid-wrap {
    overflow: auto !important;
    background: #33d6d0 !important;
    border: 0 !important;
}

.phase2-input-bloodtype-grid {
    width: max-content !important;
    min-width: 0 !important;
    table-layout: fixed !important;
}

.phase2-input-bloodtype-grid th,
.phase2-input-bloodtype-grid td {
    height: 24px !important;
    line-height: 22px !important;
    padding: 0 !important;
    font-size: 13px !important;
}

.phase2-input-bloodtype-grid .grid-cell-input,
.phase2-input-bloodtype-grid .grid-cell-select {
    width: 100% !important;
    min-width: 0 !important;
    height: 23px !important;
    line-height: 21px !important;
    box-sizing: border-box !important;
    font-size: 13px !important;
}

.phase2-input-bloodtype-grid td.combo-cell {
    padding: 0 2px !important;
    background: #33d6d0 !important;
}


/* Phase2 QG40: frm血液併合_sub は1レコード3行表示 */
.phase2-blood-merge-individual-grid tr.blood-merge-sub-row {
    display: table-row !important;
}
.phase2-blood-merge-individual-grid tr.blood-merge-main-row td,
.phase2-blood-merge-individual-grid tr.blood-merge-sub-row td {
    height: 22px !important;
    line-height: 20px !important;
}
.phase2-blood-merge-individual-grid .blood-merge-cd-cell,
.phase2-blood-merge-individual-grid .blood-merge-cd-cell .grid-cell-input {
    white-space: nowrap !important;
}
.phase2-blood-merge-individual-grid tr.blood-merge-sub-row .blood-merge-cd-cell,
.phase2-blood-merge-individual-grid tr.blood-merge-sub-row .blood-merge-cd-cell .grid-cell-input {
    color: #c00000 !important;
    font-weight: 700 !important;
}


/* QG45: 血液併合（通常画面）の一覧を画面横幅いっぱいに表示 */
.phase2-form-blood-merge-main .access-detail-form-section {
    width: 100% !important;
    box-sizing: border-box;
}
.phase2-form-blood-merge-main .phase2-subform-grid-wrap {
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: none !important;
}
.phase2-form-blood-merge-main .phase2-blood-merge-grid {
    width: 100% !important;
    min-width: 100% !important;
    table-layout: fixed;
}
.phase2-form-blood-merge-main .phase2-blood-merge-grid th,
.phase2-form-blood-merge-main .phase2-blood-merge-grid td { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
/* ソート可能な見出しは尿併合と同じボタン配色で区別する。 */
.phase2-form-blood-merge-main [data-merge-sort],
.phase2-form-receipt-ticket [data-merge-sort] { width: 100%; border: 1px solid #9a9a9a; background: linear-gradient(#f7f7f7, #d6d6d6); font: inherit; color: #111; cursor: pointer; padding: 0; }
.phase2-form-blood-merge-main [data-merge-sort]:hover,
.phase2-form-receipt-ticket [data-merge-sort]:hover { background: linear-gradient(#ffffff, #c8dfff); }

/* QG46: frm過去表示 タブ612（血液・所見・問診・判定） */
.phase2-form-history-view .history-tabs-control {
    position: absolute;
    left: 793.8px;
    top: 3.8px;
    width: 435.54px;
    height: 606.2px;
    box-sizing: border-box;
    background: #29d7d0;
    border: 1px solid #787878;
    z-index: 10;
    overflow: hidden;
}

.phase2-form-history-view .history-tabs-header {
    height: 30px;
    display: flex;
    align-items: flex-end;
    padding: 3px 8px 0;
    box-sizing: border-box;
    background: #29d7d0;
    border-bottom: 1px solid #8a8a8a;
}

.phase2-form-history-view .history-tab-button {
    height: 25px;
    min-width: 45px;
    margin: 0 -1px 0 0;
    padding: 1px 8px;
    border: 1px solid #8a8a8a;
    border-bottom: 0;
    border-radius: 3px 3px 0 0;
    background: #ececec;
    color: #222;
    font-family: "Yu Gothic", Meiryo, sans-serif;
    font-size: 13px;
    line-height: 21px;
    cursor: pointer;
}

.phase2-form-history-view .history-tab-button.active {
    position: relative;
    z-index: 2;
    background: #ffffff;
    font-weight: 400;
}

.phase2-form-history-view .history-tabs-body {
    position: absolute;
    left: 8px;
    right: 8px;
    top: 30px;
    bottom: 8px;
    background: #ffffff;
    border: 1px solid #8a8a8a;
    overflow: hidden;
}

.phase2-form-history-view .history-tab-panel {
    width: 100%;
    height: 100%;
    overflow: auto;
    background: #ffffff;
}

.phase2-form-history-view .history-tab-panel[hidden] {
    display: none !important;
}

.phase2-form-history-view .history-datasheet {
    width: 100%;
    min-width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
    background: #dff5df;
    color: #222;
    font-family: "Yu Gothic", Meiryo, sans-serif;
    font-size: 13px;
}

.phase2-form-history-view .history-datasheet th,
.phase2-form-history-view .history-datasheet td {
    height: 22px;
    padding: 0 4px;
    border: 1px solid #8a8a8a;
    box-sizing: border-box;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: clip;
    vertical-align: middle;
}

.phase2-form-history-view .history-datasheet th {
    background: #efefef;
    text-align: center;
    font-weight: 400;
}

.phase2-form-history-view .history-datasheet td {
    background: #dcf3dc;
}

.phase2-form-history-view .history-datasheet td.number {
    text-align: right;
}

.phase2-form-history-view .history-datasheet td.center {
    text-align: center;
}

.phase2-form-history-view .history-selector-col {
    width: 20px;
}

.phase2-form-history-view .history-row-selector {
    padding: 0 !important;
    text-align: center;
    background: #efefef !important;
    font-size: 11px;
}

.phase2-form-history-view .history-blood-name-col {
    width: 138px;
}

.phase2-form-history-view .history-blood-result-col {
    width: 90px;
}

.phase2-form-history-view .history-blood-judgment-col {
    width: 46px;
}

.phase2-form-history-view .history-blood-standard-col {
    width: 100px;
}

.phase2-form-history-view .history-blood-mark-col {
    width: 78px;
}

.phase2-form-history-view .history-finding-type-col,
.phase2-form-history-view .history-questionnaire-type-col {
    width: 82px;
}

.phase2-form-history-view .history-questionnaire-name-col,
.phase2-form-history-view .history-judgment-name-col {
    width: 145px;
}

.phase2-form-history-view .history-judgment-result-col {
    width: 55px;
}

.phase2-form-history-view .history-judgment-branch-col {
    width: 55px;
}

.phase2-form-history-view .history-new-row td {
    background: #efefef;
}

/* 20260711 ALC解析4: 編集可能コンボ・手入力対応日付の共通表示 */
.access-editable-combo {
    border: 1px solid #777;
    background: #fff;
    color: #111;
    box-sizing: border-box;
}

.combo-name-display {
    border: 1px solid #777;
    background: #d6d6d6;
    color: #111;
    box-sizing: border-box;
}

.urine-lab-grid { position: absolute; overflow: auto; border: 1px solid #777; background: white; }
.urine-lab-grid table { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: 11px; }
.urine-lab-grid th, .urine-lab-grid td { border: 1px solid #aaa; padding: 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.urine-lab-grid th { position: sticky; top: 0; background: #e5e5e5; z-index: 1; }
.urine-lab-grid tr.selected { background: #fff2a8; }
.access-date-entry {
    position: relative;
    display: inline-block;
    vertical-align: middle;
    box-sizing: border-box;
    overflow: hidden;
}

.master-date-entry {
    height: 22px;
}

.access-date-entry > [data-date-text] {
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 25px 0 4px !important;
    border: 1px solid #777;
    background: #fff;
    color: #111;
    line-height: normal !important;
    box-sizing: border-box !important;
}

.access-date-calendar-icon {
    position: absolute;
    top: 1px;
    right: 1px;
    bottom: 1px;
    width: 23px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-left: 1px solid #888;
    background: #ececec;
    color: #222;
    font-size: 11px;
    line-height: 1;
    pointer-events: none;
    z-index: 2;
}

.access-date-picker-control {
    position: absolute;
    top: 0;
    right: 0;
    width: 25px;
    height: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    opacity: 0;
    cursor: pointer;
    z-index: 3;
}

.phase2-access-form .phase2-date-entry > .access-control {
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
}

.phase2-access-form .phase2-date-entry .access-date-calendar-icon {
    top: 1px;
    right: 1px;
    bottom: 1px;
}

.access-filter-grid.personDeleteFlag .date-range-filter-row .master-date-entry {
    width: 130px !important;
}

/* 20260712 ALC解析4: 画面内縦スクロール・入力コントロール統一 */
body.alc-no-page-scroll {
    height: 100vh;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow-y: hidden !important;
}
body.alc-no-page-scroll > .app-header {
    flex: 0 0 auto;
}
body.alc-no-page-scroll > .container {
    flex: 1 1 auto;
    height: auto !important;
    min-height: 0 !important;
    overflow: hidden !important;
    padding-bottom: 0 !important;
}

/* マスタ画面: ページングを使わず、一覧だけを画面内で縦スクロールする。 */
.access-master-page.single-screen-master {
    width: 100%;
    height: 100% !important;
    min-height: 0 !important;
    padding: 6px 10px 4px !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
}
.access-master-page.single-screen-master > .master-header,
.access-master-page.single-screen-master > .access-message,
.access-master-page.single-screen-master > .master-search-form,
.access-master-page.single-screen-master > .access-inline-add-form,
.access-master-page.single-screen-master > .insurer-master-action-panel,
.access-master-page.single-screen-master > .delete-flag-operation-panel {
    flex: 0 0 auto;
}
.access-master-page.single-screen-master .master-header.compact {
    margin-bottom: 3px !important;
}
.access-master-page.single-screen-master .master-search-form {
    margin-bottom: 3px !important;
}
.access-master-page.single-screen-master .access-filter-toolbar {
    min-height: 26px !important;
    padding: 2px 4px !important;
    justify-content: flex-end !important;
}
.access-master-page.single-screen-master .access-filter-grid {
    margin: 2px 0 !important;
    padding: 3px 5px !important;
}
.access-master-page.single-screen-master .access-message {
    padding: 3px 8px !important;
    line-height: 20px !important;
}
.access-master-page.single-screen-master .master-grid-wrap {
    flex: 1 1 auto !important;
    width: 100% !important;
    height: auto !important;
    min-height: 100px !important;
    max-height: none !important;
    margin-top: 3px !important;
    overflow: auto !important;
    box-sizing: border-box !important;
}
.access-master-page.single-screen-master .master-grid-wrap .access-master-grid th {
    position: sticky !important;
    top: 0 !important;
    z-index: 5 !important;
}

/* 名称機能別の追加欄は折り返さず1行にする。 */
.access-master-page.nameFunction .name-function-add-form {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 3px !important;
    min-height: 30px !important;
    margin: 2px 0 !important;
    padding: 3px 4px !important;
    white-space: nowrap !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
}
.access-master-page.nameFunction .name-function-add-form > * {
    flex: 0 0 auto !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* 操作列の変更・削除ボタンを列内に収める。 */
.access-master-grid col.operation-col,
.insurer-grid col.operation-col {
    width: 126px !important;
    min-width: 126px !important;
}
.access-master-grid th.action-column,
.access-master-grid td.row-actions,
.insurer-grid td.row-actions {
    width: 126px !important;
    min-width: 126px !important;
    max-width: 126px !important;
    padding: 2px 3px !important;
    box-sizing: border-box !important;
    white-space: nowrap !important;
    overflow: visible !important;
}
.access-master-grid td.row-actions .inline-form,
.insurer-grid td.row-actions .inline-form {
    display: inline-block !important;
    margin: 0 1px !important;
    vertical-align: middle !important;
}
.access-master-grid td.row-actions .access-button.mini,
.insurer-grid td.row-actions .access-button.mini {
    min-width: 56px !important;
    width: 56px !important;
    height: 24px !important;
    padding: 0 3px !important;
    line-height: 22px !important;
    box-sizing: border-box !important;
}

/* マスタの日付欄: テキスト欄とカレンダーボタンの高さを一致させる。 */
.master-date-entry {
    height: 24px !important;
    min-height: 24px !important;
}
.access-filter-row {
    align-items: center !important;
}
.access-filter-row input,
.access-filter-row select,
.access-filter-row .master-filter-combo,
.access-filter-row .filter-name-display {
    height: 24px !important;
    min-height: 24px !important;
    box-sizing: border-box !important;
}
.master-date-entry > [data-date-text],
.master-date-entry > .access-date-picker-control {
    height: 24px !important;
    min-height: 24px !important;
}

/* Phase 2対象画面: ヘッダー／一覧／フッターを1画面内に収める。 */
.phase2-access-page.phase2-single-screen {
    width: 100%;
    height: 100% !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    box-sizing: border-box !important;
}
.phase2-access-page.phase2-single-screen > .phase2-title-row,
.phase2-access-page.phase2-single-screen > .access-message {
    flex: 0 0 auto !important;
}
.phase2-access-page.phase2-single-screen > .phase2-access-form.phase2-single-screen {
    flex: 1 1 auto !important;
    height: auto !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
}
.phase2-access-form.phase2-single-screen > .access-header-section {
    flex: 0 0 auto !important;
    overflow: visible !important;
}
.phase2-access-form.phase2-single-screen > .access-detail-form-section {
    flex: 1 1 auto !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: hidden !important;
}
.phase2-access-form.phase2-single-screen > .phase2-grid-wrap:not(.phase2-subform-grid-wrap) {
    flex: 1 1 auto !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: auto !important;
}
.phase2-access-form.phase2-single-screen .access-detail-form-section > .phase2-subform-grid-wrap {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    bottom: 0 !important;
    overflow: auto !important;
}
.phase2-access-form.phase2-single-screen > .access-footer-section {
    flex: 0 0 auto !important;
    margin-top: 0 !important;
    overflow: visible !important;
    box-sizing: border-box !important;
}
.phase2-access-form.phase2-single-screen .phase2-grid-wrap .phase2-access-grid th {
    position: sticky !important;
    top: 0 !important;
    z-index: 6 !important;
}

/* Phase 2全画面の入力欄・ラベル・ボタンのボックスモデルと余白を統一する。 */
.phase2-access-page .access-control,
.phase2-access-page .phase2-date-entry {
    margin: 0 !important;
    box-sizing: border-box !important;
}
.phase2-access-page .access-text-control,
.phase2-access-page .access-combo-text-control,
.phase2-access-page .access-date-text-control,
.phase2-access-page .access-select-control,
.phase2-access-page .access-listbox-control,
.phase2-access-page .access-command-control,
.phase2-access-page .access-label-control {
    min-height: 0 !important;
    box-sizing: border-box !important;
}
.phase2-access-page .access-text-control,
.phase2-access-page .access-combo-text-control,
.phase2-access-page .access-date-text-control,
.phase2-access-page .access-select-control,
.phase2-access-page .access-listbox-control {
    padding-top: 1px !important;
    padding-bottom: 1px !important;
    line-height: normal !important;
}
.phase2-access-page .access-command-control,
.phase2-access-page .access-label-control {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: normal !important;
}
.phase2-access-page .phase2-date-entry > [data-date-text],
.phase2-access-page .phase2-date-entry > [data-date-picker] {
    height: 100% !important;
    min-height: 0 !important;
}

/* 保険者：運用日付の開始日と終了日を1行で表示 */
.access-filter-grid.insurer .date-range-filter-row {
    grid-template-columns: max-content 130px max-content 130px !important;
    white-space: nowrap;
}
.access-filter-grid.insurer .date-range-separator {
    display: inline-block;
    padding: 0 6px;
    font-weight: 700;
}
.access-filter-grid.insurer .date-range-filter-row .master-date-entry {
    width: 130px !important;
}

/* マスタ画面：条件指定エリアのラベル幅を共通化 */
:root {
    --master-filter-label-width: 130px;
}

.access-filter-grid .access-filter-row {
    grid-template-columns: var(--master-filter-label-width) max-content max-content !important;
}

.access-filter-grid .access-filter-label {
    width: var(--master-filter-label-width) !important;
    min-width: var(--master-filter-label-width) !important;
    height: 22px;
    min-height: 22px;
    padding: 0 4px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
}

/* =========================================================
   受診票以降：条件指定エリアのラベルと入力欄を130pxへ統一
   ========================================================= */

/* 左側の黄色いラベル */
/*.phase2-access-form .access-header-section .access-label-control {
    width: 130px !important;
    min-width: 130px !important;
    max-width: 130px !important;
}*/

/* テキストボックス・コンボボックス */
/*.phase2-access-form .access-header-section .access-text-control,
.phase2-access-form .access-header-section .access-combo-text-control,
.phase2-access-form .access-header-section .access-select-control,
.phase2-access-form .access-header-section .access-listbox-control {
    width: 130px !important;
    min-width: 130px !important;
    max-width: 130px !important;
}*/

/* 手入力＋カレンダーの日付コントロール */
/*.phase2-access-form .access-header-section .phase2-date-entry {
    width: 130px !important;
    min-width: 130px !important;
    max-width: 130px !important;
}*/

/* =========================================================
   受診票以降：ヘッダーラベルを130pxにした分、
   右側のコントロールを移動する
   元ラベル約68px → 130px、差分62px
   ========================================================= */

/*.phase2-access-form .access-header-section .access-text-control,
.phase2-access-form .access-header-section .access-combo-text-control,
.phase2-access-form .access-header-section .access-select-control,
.phase2-access-form .access-header-section .access-listbox-control,
.phase2-access-form .access-header-section .access-command-control,
.phase2-access-form .access-header-section .access-checkbox-control,
.phase2-access-form .access-header-section .phase2-date-entry {
    transform: translateX(62px);
}*/
/* ------------------------------------------------------------
   Phase4: 香川受付 / バッチ更新
   ------------------------------------------------------------ */
.phase4-page {
    height: calc(100vh - 52px);
    min-height: 560px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 6px 8px;
    overflow: hidden;
    background: #d9e8ef;
    color: #111;
    font-family: "Yu Gothic", Meiryo, sans-serif;
    font-size: 13px;
}

.phase4-titlebar {
    flex: 0 0 34px;
    display: flex;
    align-items: center;
    padding: 0 10px;
    border: 1px solid #8c9ca5;
    background: #b9d5e4;
}

.phase4-titlebar h1 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
}

.phase4-message,
.phase4-warning {
    flex: 0 0 auto;
    min-height: 28px;
    box-sizing: border-box;
    padding: 5px 8px;
    border: 1px solid #8a8a8a;
    background: #fff;
    white-space: pre-line;
}

.phase4-message-info { background: #eef7ff; }
.phase4-message-error,
.phase4-warning { background: #fff1cf; border-color: #b78620; }
.phase4-message-error { background: #ffe7e7; border-color: #b44848; }

.phase4-toolbar,
.phase4-footer,
.phase4-countbar {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px 10px;
    min-height: 36px;
    padding: 4px 6px;
    box-sizing: border-box;
    border: 1px solid #94a3aa;
    background: #eaf1f4;
}

.phase4-footer { justify-content: flex-end; }
.phase4-countbar strong { min-width: 48px; display: inline-block; text-align: right; }

.phase4-file-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 30px;
}

.phase4-file-label > span,
.phase4-condition-grid label > span,
.phase4-three-state-options label > span {
    display: inline-flex;
    align-items: center;
    width: 92px;
    min-width: 92px;
    height: 28px;
}

.phase4-page input[type="text"],
.phase4-page input[type="file"],
.phase4-page select,
.phase4-page button,
.phase4-page .access-action-button {
    min-height: 28px;
    height: 28px;
    box-sizing: border-box;
    font: inherit;
}

.phase4-page input[type="text"],
.phase4-page select {
    border: 1px solid #7d8b91;
    background: #fff;
}

.phase4-page .access-action-button {
    min-width: 86px;
    padding: 3px 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
    color: #111;
    text-decoration: none;
    border: 1px solid #777;
    border-top-color: #fff;
    border-left-color: #fff;
    border-radius: 0;
    background: linear-gradient(#f9f9f9, #d7d7d7);
    cursor: pointer;
}

.phase4-page .access-action-button:hover { background: linear-gradient(#fff, #c8dfff); }
.phase4-close-button { margin-left: auto; }

.phase4-table-form,
.phase4-batch-form {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.phase4-grid-wrap {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    border: 1px solid #6f7d83;
    background: #fff;
}

.phase4-grid {
    min-width: 100%;
    width: max-content;
    border-collapse: separate;
    border-spacing: 0;
    table-layout: fixed;
    font-size: 12px;
}

.phase4-grid th,
.phase4-grid td {
    height: 27px;
    min-height: 27px;
    padding: 1px 4px;
    box-sizing: border-box;
    border-right: 1px solid #b8c0c4;
    border-bottom: 1px solid #b8c0c4;
    white-space: nowrap;
    vertical-align: middle;
}

.phase4-grid th {
    position: sticky;
    top: 0;
    z-index: 4;
    background: #cbdce5;
    font-weight: 600;
    text-align: center;
}

.phase4-grid td > input[type="text"],
.phase4-grid td .phase4-date-cell {
    width: 100%;
    min-width: 92px;
}

.phase4-grid td > input[type="text"],
.phase4-date-cell > input[type="text"] {
    height: 24px;
    min-height: 24px;
    width: 100%;
    padding: 1px 3px;
}

.phase4-grid th:nth-child(n+1),
.phase4-grid td:nth-child(n+1) { min-width: 90px; }
.phase4-grid th:nth-child(1),
.phase4-grid td:nth-child(1) { min-width: 78px; }
.phase4-kagawa-grid th:nth-child(10),
.phase4-kagawa-grid td:nth-child(10),
.phase4-kagawa-grid th:nth-child(11),
.phase4-kagawa-grid td:nth-child(11) { min-width: 130px; }
.phase4-kagawa-grid th:nth-child(19),
.phase4-kagawa-grid td:nth-child(19) { min-width: 260px; }
.phase4-kagawa-grid th:last-child,
.phase4-kagawa-grid td:last-child { min-width: 240px; }

.phase4-sticky-col {
    position: sticky;
    left: 0;
    z-index: 3;
    background: #eef3f5;
}
.phase4-grid thead .phase4-sticky-col { z-index: 6; background: #cbdce5; }

.phase4-center { text-align: center; }
.phase4-row-warning td { background: #fff7cf; }
.phase4-row-error td { background: #ffdede; }
.phase4-candidate-row td { background: #e8f1ff; color: #17335e; }
.phase4-candidate-row { cursor: default; }
.phase4-readonly-cell { display: block; min-width: 92px; }

.phase4-condition-grid {
    flex: 0 0 auto;
    display: grid;
    grid-template-columns: repeat(4, minmax(260px, 1fr));
    gap: 5px 10px;
    padding: 5px 6px;
    border: 1px solid #94a3aa;
    background: #eaf1f4;
}

.phase4-condition-grid label,
.phase4-three-state-options label {
    display: flex;
    align-items: center;
    min-width: 0;
}
.phase4-condition-grid select,
.phase4-condition-grid input,
.phase4-three-state-options select { flex: 1 1 auto; min-width: 120px; }

.phase4-option-row {
    flex: 0 0 auto;
    display: flex;
    gap: 8px;
    min-height: 0;
}

.phase4-fieldset {
    margin: 0;
    padding: 5px 8px 6px;
    border: 1px solid #94a3aa;
    background: #eaf1f4;
}
.phase4-fieldset legend { padding: 0 4px; font-weight: 600; }
.phase4-fieldset > label { display: inline-flex; align-items: center; gap: 3px; height: 27px; margin-right: 8px; white-space: nowrap; }
.phase4-match-options { flex: 0 0 auto; }
.phase4-no-update-options { flex: 1 1 auto; }
.phase4-three-state-options { min-width: 350px; }
.phase4-three-state-options > label { display: flex; margin-right: 0; }

.phase4-date-cell {
    position: relative;
    display: inline-flex;
    align-items: center;
}
.phase4-date-cell > input[type="text"] { padding-right: 27px; }
.phase4-date-picker {
    position: absolute;
    right: 1px;
    width: 25px;
    height: 22px !important;
    min-height: 22px !important;
    padding: 0;
    border: 0;
    background: transparent;
}

[data-batch-field].is-saving { opacity: .55; }
[data-batch-field].is-error { outline: 2px solid #b00020; }

.phase4-batch-page .phase4-batch-form { gap: 4px; }
.phase4-batch-page .phase4-condition-grid label > span {
    width: 130px;
    min-width: 130px;
}
.phase4-candidate-select-cell { cursor: pointer; }
.phase4-candidate-dialog {
    width: min(1120px, calc(100vw - 40px));
    max-width: none;
    padding: 0;
    border: 1px solid #67757c;
    background: #eaf1f4;
    color: #111;
    font: 13px "Yu Gothic", Meiryo, sans-serif;
}
.phase4-candidate-dialog::backdrop { background: rgba(0, 0, 0, .30); }
.phase4-candidate-dialog-title {
    height: 32px;
    display: flex;
    align-items: center;
    padding: 0 10px;
    box-sizing: border-box;
    border-bottom: 1px solid #8c9ca5;
    background: #b9d5e4;
    font-size: 16px;
    font-weight: 700;
}
.phase4-candidate-dialog-body { padding: 8px; overflow-x: auto; }
.phase4-candidate-dialog table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
}
.phase4-candidate-dialog th,
.phase4-candidate-dialog td {
    min-width: 90px;
    height: 28px;
    padding: 2px 5px;
    box-sizing: border-box;
    border: 1px solid #aeb8bd;
    white-space: nowrap;
}
.phase4-candidate-dialog thead th { background: #cbdce5; }
.phase4-candidate-difference { background: #f0e6e6; }
.phase4-candidate-dialog tbody th { background: #eef3f5; text-align: center; }
.phase4-candidate-dialog-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 0 8px 8px;
}

@media (max-width: 1100px) {
    .phase4-condition-grid { grid-template-columns: repeat(2, minmax(250px, 1fr)); }
}

/* Phase4: frm協会けんぽ個人対応 */
.phase4-kyokai-personal { height: calc(100vh - 82px); overflow: hidden; display: flex; flex-direction: column; }
.phase4-kyokai-personal .phase4-form { min-height: 0; flex: 1; display: flex; flex-direction: column; gap: 6px; }
.kyokai-personal-conditions { grid-template-columns: 112px minmax(150px, 1fr) 112px minmax(150px, 1fr) 112px minmax(150px, 1fr); }
.kyokai-personal-conditions label,
.kyokai-personal-conditions input,
.kyokai-personal-conditions select { min-height: 28px; height: 28px; box-sizing: border-box; }
.phase4-candidate-area { display: grid; grid-template-columns: 112px minmax(360px, 1fr) minmax(300px, 1fr); gap: 6px; align-items: center; }
.phase4-candidate-area select { height: 28px; min-width: 0; }
.kyokai-personal-table-wrap { min-height: 0; flex: 1; overflow: auto; border: 1px solid #777; }
.kyokai-personal-table { min-width: 1900px; }
.kyokai-personal-table tbody tr { cursor: pointer; }
.kyokai-personal-table tbody tr.selected td { background: #c8def5 !important; }
.table-header-button { width: 100%; padding: 0; border: 0; background: transparent; font: inherit; white-space: nowrap; cursor: pointer; }

.phase4-kyokai-unregistered-check {
    height: calc(100vh - 18px);
    overflow: hidden;
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr) auto;
    gap: 6px;
}
.phase4-kyokai-check-grid {
    min-height: 0;
    overflow: auto;
}
.phase4-kyokai-check-grid .phase4-grid {
    min-width: 2600px;
}


/* 20260720 M-007: Access表と同様に入力欄をセル幅いっぱいに表示する。 */
.access-master-page.institution .access-master-grid td > input:not([type="hidden"]):not([type="checkbox"]),
.access-master-page.institution .access-master-grid td > select,
.access-master-page.institution .access-master-grid td > textarea,
.access-master-page.nameJudgment .access-master-grid td > input:not([type="hidden"]):not([type="checkbox"]),
.access-master-page.nameJudgment .access-master-grid td > select,
.access-master-page.nameJudgment .access-master-grid td > textarea {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    display: block;
    box-sizing: border-box;
}


/* 利用先集約管理 */
.admin-maintenance-page {
    padding: 10px 14px 0;
}
.admin-add-panel {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 5px 7px;
    padding: 34px 10px 10px;
    margin-bottom: 8px;
    border: 1px solid #888;
    background: #eeeeee;
}
.admin-add-panel .inline-add-title {
    position: absolute;
    top: 4px;
    left: 8px;
    min-width: 64px;
    padding: 2px 8px;
    border: 1px solid #777;
    background: #00ff66;
    font-weight: 700;
    text-align: center;
}
.admin-add-panel label {
    min-height: 25px;
    line-height: 23px;
    padding: 0 7px;
    border: 1px solid #777;
    background: #ffff66;
    font-weight: 700;
    white-space: nowrap;
}
.admin-add-panel input,
.admin-grid input,
.access-log-date-form input {
    height: 26px;
    min-width: 92px;
    padding: 2px 5px;
    box-sizing: border-box;
    border: 1px solid #999;
    background: #f4f4f4;
    font-family: "Yu Gothic", Meiryo, sans-serif;
    font-size: 13px;
}
.admin-grid input[readonly] {
    background: #e1e1e1;
    color: #333;
}
.admin-wide-input {
    width: 250px;
}
.admin-grid-wrap {
    height: calc(100vh - 210px);
    min-height: 420px;
    overflow: auto;
    border-top: 1px solid #666;
    border-bottom: 1px solid #888;
    background: #e8cdcd;
}
.admin-grid th {
    z-index: 3;
}
.admin-grid td {
    padding: 2px 4px;
}
.admin-grid td:first-child,
.admin-grid th:first-child {
    position: sticky;
    left: 0;
    z-index: 2;
}
.admin-grid th:first-child {
    z-index: 4;
}
.admin-grid td:first-child {
    background: #eeeeee;
}
.admin-operation-cell {
    min-width: 112px;
    text-align: center;
}
.admin-operation-cell form {
    display: inline-block;
    margin: 0 2px;
}
.output-admin-add-panel {
    min-width: 1550px;
}
.output-admin-grid input {
    min-width: 74px;
}
.access-log-date-form {
    width: fit-content;
}
.access-log-date-form input[type="date"] {
    width: 145px;
}
.access-log-grid-wrap {
    height: calc(100vh - 175px);
}
.access-log-grid input {
    min-width: 120px;
}

/* 20260731 利用先集約管理 UI調整 */
.admin-maintenance-page {
    min-height: calc(100vh - 52px);
    background: #24e6df;
    box-sizing: border-box;
}
.admin-maintenance-page > .master-header.compact {
    background: #24e6df;
}
.admin-maintenance-page .admin-add-panel {
    background: #24e6df;
}
.admin-add-scroll {
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    margin-bottom: 8px;
}
.tenant-admin-add-panel {
    flex-wrap: nowrap;
    width: max-content;
    min-width: 100%;
    margin-bottom: 0;
    padding-top: 34px;
    box-sizing: border-box;
}
.tenant-admin-add-panel label {
    flex: 0 0 auto;
}
.tenant-admin-add-panel input,
.tenant-admin-add-panel select,
.admin-grid-select,
.selection-open-panel select {
    height: 26px;
    padding: 2px 5px;
    box-sizing: border-box;
    border: 1px solid #999;
    background: #f4f4f4;
    font-family: "Yu Gothic", Meiryo, sans-serif;
    font-size: 13px;
}
.tenant-id-input { width: 112px; }
.tenant-name-input { width: 150px; }
.tenant-password-input { width: 140px; }
.tenant-address-input { width: 230px; }
.tenant-contact-input { width: 190px; }
.tenant-status-select { width: 86px; }
.tenant-count-input { width: 66px; }
.admin-grid-select {
    min-width: 86px;
}
.tenant-admin-grid-wrap {
    height: calc(100vh - 190px);
}
.tenant-admin-grid input,
.tenant-admin-grid select {
    width: 100%;
    min-width: 96px;
}

.selection-open-panel {
    flex-wrap: nowrap;
    width: fit-content;
    min-width: 520px;
}
.selection-open-panel select {
    min-width: 280px;
}
.admin-selection-subform {
    margin: 0 0 8px;
    padding: 8px;
    border: 1px solid #666;
    background: #eeeeee;
}
.admin-selection-title {
    display: flex;
    align-items: center;
    gap: 18px;
    min-height: 30px;
    margin-bottom: 7px;
    padding: 3px 8px;
    border: 1px solid #777;
    background: #24e6df;
}
.admin-selection-title strong {
    white-space: nowrap;
}
.admin-selection-title span {
    font-size: 13px;
}
.admin-checkbox-grid {
    display: grid;
    gap: 5px 8px;
    padding: 7px;
    border: 1px solid #888;
    background: #fff;
}
.menu-checkbox-grid {
    grid-template-columns: repeat(5, minmax(190px, 1fr));
    max-height: 430px;
    overflow: auto;
}
.admin-check-item {
    display: flex;
    align-items: center;
    gap: 7px;
    min-height: 30px;
    padding: 3px 7px;
    border: 1px solid #999;
    background: #f4f4f4;
    cursor: pointer;
    box-sizing: border-box;
}
.admin-check-item:hover {
    background: #dff8f6;
}
.admin-check-item input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin: 0;
    flex: 0 0 auto;
}
.admin-check-name {
    line-height: 1.25;
}
.admin-selection-actions {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-top: 8px;
}
.admin-selection-actions .access-button {
    min-width: 90px;
    text-align: center;
    text-decoration: none;
}
.selection-summary-wrap {
    height: calc(100vh - 205px);
}
.selection-maintenance-page:has(.admin-selection-subform) .selection-summary-wrap {
    height: 290px;
    min-height: 230px;
}
.selection-summary-grid {
    min-width: 1050px;
}
.selection-summary-grid .selection-count-input {
    width: 70px;
    min-width: 70px;
    text-align: right;
}
.selection-summary-grid .selection-names-input {
    width: 620px;
    min-width: 620px;
}

.output-selection-subform {
    max-height: calc(100vh - 185px);
    overflow: auto;
}
.output-category-container {
    display: grid;
    grid-template-columns: repeat(2, minmax(460px, 1fr));
    gap: 8px;
}
.output-category-panel {
    min-width: 0;
    border: 1px solid #777;
    background: #fff;
}
.output-category-panel h3 {
    margin: 0;
    padding: 5px 8px;
    border-bottom: 1px solid #777;
    background: #24e6df;
    font-size: 14px;
}
.output-checkbox-grid {
    grid-template-columns: repeat(2, minmax(210px, 1fr));
    max-height: 280px;
    overflow: auto;
    border: 0;
}
.output-check-heading {
    grid-column: 1 / -1;
    padding: 4px 7px;
    border: 1px solid #777;
    background: #ffff66;
    font-weight: 700;
}
.output-check-item {
    min-height: 28px;
}

@media (max-width: 1200px) {
    .menu-checkbox-grid {
        grid-template-columns: repeat(3, minmax(190px, 1fr));
    }
    .output-category-container {
        grid-template-columns: 1fr;
    }
}

/* 20260801 利用先別メニュー・出力選択をポップアップの表形式に変更 */
.admin-selection-dialog {
    width: min(1180px, 94vw);
    height: min(780px, 88vh);
    max-width: none;
    max-height: none;
    padding: 0;
    border: 2px solid #555;
    background: #eeeeee;
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.42);
    overflow: hidden;
}
.admin-output-dialog {
    width: min(1460px, 96vw);
}
.admin-selection-dialog::backdrop {
    background: rgba(0, 0, 0, 0.48);
}
.admin-dialog-form {
    height: 100%;
    min-height: 0;
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr) auto;
}
.admin-dialog-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 56px;
    padding: 7px 10px 7px 14px;
    border-bottom: 1px solid #555;
    background: #24e6df;
}
.admin-dialog-header h3 {
    margin: 0;
    font-size: 19px;
}
.admin-dialog-tenant {
    margin-top: 2px;
    font-weight: 700;
}
.admin-dialog-close {
    width: 36px;
    height: 32px;
    padding: 0;
    border: 1px solid #555;
    background: #eeeeee;
    font-size: 24px;
    line-height: 28px;
    cursor: pointer;
}
.admin-dialog-close:hover {
    background: #ffffff;
}
.admin-dialog-description {
    padding: 6px 12px;
    border-bottom: 1px solid #888;
    background: #fffbd0;
    font-size: 13px;
}
.admin-dialog-grid-wrap {
    min-height: 0;
    margin: 8px;
    overflow: auto;
    border: 1px solid #666;
    background: #ffffff;
}
.admin-dialog-grid {
    width: max-content;
    min-width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}
.admin-dialog-grid th {
    position: sticky;
    top: 0;
    z-index: 4;
    padding: 6px 8px;
    border: 1px solid #777;
    background: #24e6df;
    white-space: nowrap;
}
.admin-dialog-grid td {
    min-height: 30px;
    padding: 4px 7px;
    border: 1px solid #aaa;
    background: #ffffff;
    vertical-align: middle;
    white-space: nowrap;
}
.admin-dialog-grid tbody tr:nth-child(even):not(.admin-modal-category-row):not(.admin-modal-group-row) td {
    background: #f3f3f3;
}
.admin-dialog-grid tbody tr:hover:not(.admin-modal-category-row):not(.admin-modal-group-row) td {
    background: #dff8f6;
}
.admin-dialog-grid .check-column {
    width: 58px;
    min-width: 58px;
    text-align: center;
}
.admin-dialog-grid .id-column,
.admin-dialog-grid .sort-column,
.admin-dialog-grid .order-column {
    width: 74px;
    min-width: 74px;
    text-align: right;
}
.admin-dialog-grid input[type="checkbox"] {
    width: 21px;
    height: 21px;
    margin: 0;
    cursor: pointer;
    accent-color: #006b66;
}
.admin-grid-check-label {
    display: block;
    min-width: 190px;
    cursor: pointer;
    font-weight: 600;
}
.menu-selection-table .url-cell {
    min-width: 360px;
    white-space: normal;
    word-break: break-all;
}
.output-selection-table td:nth-child(4),
.output-selection-table td:nth-child(5) {
    min-width: 280px;
    white-space: normal;
}
.admin-modal-category-row td {
    padding: 6px 8px;
    border-color: #555;
    background: #24e6df !important;
    font-weight: 700;
}
.admin-modal-group-row td {
    padding: 5px 9px;
    background: #ffff66 !important;
    font-weight: 700;
}
.admin-dialog-actions {
    display: flex;
    justify-content: center;
    gap: 14px;
    min-height: 50px;
    padding: 8px;
    border-top: 1px solid #555;
    background: #eeeeee;
}
.admin-dialog-actions .access-button {
    min-width: 100px;
}
@media (max-width: 900px) {
    .admin-selection-dialog,
    .admin-output-dialog {
        width: 94vw;
        height: 88vh;
    }
}

/* 20260801 メニュー・出力選択ポップアップ調整 */
.admin-selection-dialog {
    position: relative;
    width: min(1080px, 92vw);
    height: min(720px, 86vh);
}
.admin-output-dialog {
    width: min(920px, 90vw);
    height: min(700px, 84vh);
}
.admin-dialog-header {
    position: relative;
    padding-right: 58px;
}
.admin-dialog-close {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 8;
}
.admin-dialog-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 6px 10px;
    border-bottom: 1px solid #888;
    background: #fffbd0;
}
.admin-dialog-toolbar .admin-dialog-description {
    flex: 1 1 auto;
    padding: 0;
    border: 0;
    background: transparent;
}
.admin-dialog-check-actions {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 7px;
}
.admin-dialog-check-actions .access-button {
    white-space: nowrap;
}
.admin-dialog-grid-wrap {
    border: 1px solid #555;
}
.admin-dialog-grid {
    border: 0;
}
.admin-dialog-grid th,
.admin-dialog-grid td {
    border-top: 0;
    border-right: 0;
    border-left: 0;
    border-bottom: 1px solid #aaa;
}
.admin-dialog-grid thead th {
    border-bottom: 1px solid #555;
}
.admin-dialog-grid tbody tr:last-child td {
    border-bottom: 0;
}
.admin-modal-category-row td,
.admin-modal-group-row td {
    border-right: 0;
    border-left: 0;
}
.output-selection-table {
    width: 100%;
    min-width: 680px;
}
.output-selection-table td:nth-child(4) {
    min-width: 360px;
    white-space: normal;
}
@media (max-width: 760px) {
    .admin-dialog-toolbar {
        align-items: stretch;
        flex-direction: column;
    }
    .admin-dialog-check-actions {
        justify-content: flex-end;
        flex-wrap: wrap;
    }
}

/* 20260801 利用先ログイン・本人確認 */
.app-header {
    gap: 16px;
}
.app-login-status {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
    font-size: 13px;
}
.app-tenant-name,
.app-user-name {
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.app-tenant-name {
    font-weight: 700;
}
.app-user-name::before {
    content: "／";
    margin-right: 8px;
}
.app-login-status form {
    margin: 0;
}
.app-logout-button {
    min-height: 30px;
    padding: 3px 11px;
    border: 1px solid #57676a;
    border-radius: 4px;
    background: #f3f3f3;
    color: #24383a;
    cursor: pointer;
}
.app-logout-button:hover {
    background: #ffffff;
}

.authentication-body {
    min-height: 100vh;
    margin: 0;
    color: #16383a;
    background:
        radial-gradient(circle at 73% 10%, rgba(255,255,255,.34), transparent 29%),
        radial-gradient(circle at 18% 88%, rgba(0,112,116,.12), transparent 34%),
        linear-gradient(145deg, #22ddd8 0%, #2ae9e7 52%, #22d3cf 100%);
    font-family: "Yu Gothic UI", Meiryo, sans-serif;
}

.authentication-shell {
    min-height: 100vh;
    display: grid;
    grid-template-rows: auto 1fr auto;
    box-sizing: border-box;
    padding: 28px 24px 18px;
}

.authentication-brand {
    width: min(660px, 94vw);
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 13px;
    color: #12383b;
    text-align: left;
    text-shadow: 0 1px 0 rgba(255,255,255,.35);
}

.authentication-brand-mark {
    width: 52px;
    height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 52px;
    border: 1px solid rgba(20,72,76,.45);
    border-radius: 15px;
    background: linear-gradient(180deg, rgba(255,255,255,.97), rgba(238,249,249,.91));
    box-shadow:
        0 8px 20px rgba(0,75,80,.16),
        inset 0 1px 0 #ffffff;
    font-size: 27px;
    font-weight: 800;
}

.authentication-brand h1 {
    margin: 0;
    font-size: clamp(27px, 4vw, 38px);
    font-weight: 800;
    letter-spacing: .07em;
    line-height: 1.12;
}

.authentication-brand p {
    margin: 4px 0 0;
    color: rgba(18,56,59,.75);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .24em;
    text-transform: uppercase;
}

.authentication-page {
    min-height: 0;
    display: grid;
    place-items: center;
    padding: 26px 0;
    box-sizing: border-box;
}

.authentication-card {
    position: relative;
    width: min(500px, 94vw);
    overflow: hidden;
    border: 1px solid rgba(15,80,84,.40);
    border-radius: 16px;
    background: rgba(248,252,252,.96);
    box-shadow:
        0 20px 52px rgba(0,73,78,.22),
        0 3px 9px rgba(0,73,78,.12),
        inset 0 1px 0 rgba(255,255,255,.98);
}

.authentication-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 4px;
    background: linear-gradient(90deg, #126f77 0%, #24e6df 48%, #e76de1 100%);
}

.authentication-header {
    padding: 31px 34px 23px;
    border-bottom: 1px solid rgba(39,97,100,.19);
    background:
        radial-gradient(circle at 86% 10%, rgba(255,255,255,.62), transparent 38%),
        linear-gradient(145deg, rgba(36,230,223,.22), rgba(255,255,255,.72));
    text-align: left;
}

.authentication-kicker {
    display: inline-block;
    margin-bottom: 7px;
    color: #147178;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .18em;
}

.authentication-header h2 {
    margin: 0;
    color: #173d40;
    font-size: 27px;
    font-weight: 800;
    letter-spacing: .03em;
}

.authentication-header p {
    margin: 8px 0 0;
    color: #526a6c;
    font-size: 14px;
    line-height: 1.65;
}

.authentication-tenant {
    margin-top: 15px;
    display: flex;
    align-items: center;
    gap: 9px;
    flex-wrap: wrap;
}

.authentication-tenant span,
.authentication-tenant strong {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 3px 10px;
    box-sizing: border-box;
    border-radius: 999px;
    font-size: 12px;
}

.authentication-tenant span {
    border: 1px solid rgba(16,105,111,.30);
    background: rgba(255,255,255,.75);
    color: #17666b;
    font-weight: 800;
}

.authentication-tenant strong {
    border: 1px solid rgba(129,48,126,.23);
    background: rgba(244,150,239,.20);
    color: #673065;
}

.authentication-form {
    display: grid;
    gap: 18px;
    padding: 27px 34px 31px;
}

.authentication-field {
    display: grid;
    gap: 7px;
}

.authentication-field label {
    color: #213f42;
    font-size: 13px;
    font-weight: 800;
}

.authentication-input-wrap {
    position: relative;
}

.authentication-field input {
    width: 100%;
    min-height: 48px;
    padding: 10px 13px;
    box-sizing: border-box;
    border: 1px solid #7c9698;
    border-radius: 7px;
    background: #ffffff;
    color: #17383a;
    box-shadow: inset 0 1px 2px rgba(0,65,69,.07);
    font-family: inherit;
    font-size: 16px;
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

.authentication-field input::placeholder {
    color: #a1adae;
}

.authentication-field input:hover {
    border-color: #4f7779;
}

.authentication-field input:focus {
    border-color: #087b7b;
    background: #fbffff;
    box-shadow:
        0 0 0 3px rgba(36,230,223,.25),
        inset 0 1px 2px rgba(0,65,69,.05);
    outline: none;
}

.authentication-code-input {
    letter-spacing: .20em;
    font-size: 20px !important;
    font-weight: 800;
    text-align: center;
}

.authentication-submit {
    min-height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 13px;
    margin-top: 2px;
    padding: 8px 18px;
    border: 1px solid #0a666c;
    border-radius: 7px;
    background: linear-gradient(180deg, #178990 0%, #0d7379 100%);
    box-shadow:
        0 5px 13px rgba(0,88,93,.23),
        inset 0 1px 0 rgba(255,255,255,.23);
    color: #ffffff;
    font-family: inherit;
    font-size: 16px;
    font-weight: 800;
    letter-spacing: .05em;
    cursor: pointer;
    transition: transform .12s ease, box-shadow .12s ease, background .12s ease;
}

.authentication-submit:hover,
.authentication-submit:focus-visible {
    transform: translateY(-1px);
    background: linear-gradient(180deg, #1b989f 0%, #0d7d83 100%);
    box-shadow:
        0 8px 18px rgba(0,88,93,.29),
        inset 0 1px 0 rgba(255,255,255,.25);
    outline: none;
}

.authentication-submit:active {
    transform: translateY(0);
}

.authentication-submit-arrow {
    font-size: 20px;
    line-height: 1;
}

.authentication-error {
    margin: 20px 34px 0;
    padding: 11px 13px;
    border: 1px solid #be4c4c;
    border-radius: 6px;
    background: #fff2f2;
    color: #8d2020;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.55;
}

.authentication-guidance {
    margin: -3px 0 0;
    color: #657779;
    font-size: 12px;
    line-height: 1.6;
    text-align: center;
}

.authentication-back {
    justify-self: center;
    color: #17666b;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.authentication-back:hover,
.authentication-back:focus-visible {
    color: #0a4b50;
    text-decoration: underline;
}

.authentication-footer {
    width: min(660px, 94vw);
    margin: 0 auto;
    color: rgba(16,59,62,.62);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .14em;
    text-align: center;
    text-transform: uppercase;
}

@media (max-width: 560px) {
    .authentication-shell {
        padding: 18px 12px 13px;
    }
    .authentication-brand {
        gap: 10px;
    }
    .authentication-brand-mark {
        width: 45px;
        height: 45px;
        flex-basis: 45px;
        border-radius: 12px;
        font-size: 23px;
    }
    .authentication-brand h1 {
        font-size: 25px;
    }
    .authentication-page {
        padding: 20px 0;
    }
    .authentication-card {
        border-radius: 13px;
    }
    .authentication-header {
        padding: 26px 22px 20px;
    }
    .authentication-form {
        padding: 23px 22px 27px;
    }
    .authentication-error {
        margin-right: 22px;
        margin-left: 22px;
    }
}

/* 2026-08-01: メール／電話番号による6桁認証番号ログイン */
.authentication-brand-copy {
    display: grid;
    justify-items: center;
    text-align: center;
}

.authentication-brand-copy h1 {
    margin: 0;
}

.authentication-brand-copy p {
    margin-top: 7px;
}

.authentication-card-wide {
    width: min(570px, 94vw);
}

.authentication-verification-form {
    padding-bottom: 22px;
    border-bottom: 1px solid rgba(39,97,100,.18);
}

.authentication-method-fieldset {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0;
    padding: 0;
    border: 0;
}

.authentication-method-fieldset legend {
    width: 100%;
    margin-bottom: 8px;
    color: #213f42;
    font-size: 13px;
    font-weight: 800;
}

.authentication-method-option {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 13px;
    box-sizing: border-box;
    border: 1px solid #7c9698;
    border-radius: 7px;
    background: #ffffff;
    color: #17383a;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
}

.authentication-method-option:has(input:checked) {
    border-color: #087b7b;
    background: #e8fffd;
    box-shadow: 0 0 0 3px rgba(36,230,223,.18);
}

.authentication-method-option input {
    width: 17px;
    height: 17px;
    margin: 0;
    accent-color: #087b7b;
}

.authentication-secondary-submit {
    min-height: 45px;
    padding: 8px 16px;
    border: 1px solid #287b80;
    border-radius: 7px;
    background: linear-gradient(180deg, #f9ffff 0%, #dff8f7 100%);
    box-shadow: 0 3px 8px rgba(0,88,93,.13), inset 0 1px 0 #ffffff;
    color: #125b60;
    font-family: inherit;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
}

.authentication-secondary-submit:hover,
.authentication-secondary-submit:focus-visible {
    border-color: #126f77;
    background: linear-gradient(180deg, #ffffff 0%, #cef4f2 100%);
    outline: none;
}

.authentication-success {
    margin: 20px 34px 0;
    padding: 11px 13px;
    border: 1px solid #3b9280;
    border-radius: 6px;
    background: #edfff9;
    color: #17634f;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.55;
}

.authentication-code-form {
    padding-top: 22px;
}

.authentication-code-notice {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    flex-wrap: wrap;
    padding: 10px 12px;
    border: 1px solid rgba(16,105,111,.25);
    border-radius: 7px;
    background: rgba(36,230,223,.10);
    color: #385c5f;
    font-size: 12px;
    line-height: 1.5;
}

.authentication-code-notice strong {
    color: #12676d;
    font-size: 13px;
}

.authentication-bottom-links {
    display: flex;
    justify-content: center;
    padding: 0 34px 28px;
}

@media (max-width: 560px) {
    .authentication-method-fieldset {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .authentication-method-option {
        justify-content: center;
        padding-right: 8px;
        padding-left: 8px;
    }

    .authentication-success {
        margin-right: 22px;
        margin-left: 22px;
    }

    .authentication-bottom-links {
        padding-right: 22px;
        padding-left: 22px;
    }
}

/* Shared inline checkbox labels. A text editor's size must not size its checkbox. */
label:has(> input[type="checkbox"]):not(:has(> input:not([type="checkbox"]):not([type="hidden"]))) {
    display:inline-flex; flex-direction:row; align-items:center; gap:5px; white-space:nowrap;
}
label > input[type="checkbox"] { width:16px; height:16px; min-width:16px; flex:none; margin:0; }
