/* Adopted PNG source: dashboard / employee detail v1 / employee mypage.
   Shared tokens apply to every HTML screen; business-state classes retain their meaning. */
:root, .adopted-design {
 --primary:#2563eb; --primary-light:#1d4ed8; --text:#17243b; --muted:#637087; --border:#dbe2ed; --page:#f5f7fb; --surface:#fff;
 --color-text:#334155; --color-text-secondary:#637087; --color-text-muted:#64748b; --color-section-heading:#475569; --color-surface-subtle:#f8fafc; --color-surface-muted:#f1f5f9; --color-line:#e8edf4; --color-focus:#2563eb; --color-accent-ink:#fff;
 --auth-paper:#f5f7fb; --auth-surface:#fff; --auth-surface-hover:#f1f5f9; --auth-ink:#17243b; --auth-text:#334155; --auth-muted:#637087; --auth-border:#cbd5e1; --auth-border-strong:#94a3b8; --auth-accent:#2563eb; --auth-accent-hover:#1d4ed8; --auth-accent-ink:#fff; --auth-focus:#2563eb;
 --color-page:#f5f7fb; --color-surface:#fff; --color-ink:#17243b; --color-muted:#637087; --color-border:#dbe2ed;
 --color-accent:#2563eb; --color-accent-hover:#1d4ed8; --color-primary:#2563eb; --color-hero:#eff5ff;
 --color-purple:#2563eb; --color-purple-light:#eff5ff; --radius-card:8px; --radius-button:6px;
 --content-max-width:86rem; --page-gutter:clamp(1rem,3.75vw,3.375rem); --header-height:4.75rem;
}
.adopted-design {margin:0;background:#f5f7fb;color:#17243b;font-family:"Noto Sans JP",system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.6;}
.adopted-design *, .adopted-design *::before,.adopted-design *::after {box-sizing:border-box;}
.adopted-design [hidden] {display:none!important;}
.adopted-design a {color:#2563eb;}
.adopted-design .app-header {height:auto;min-height:76px;background:#fff;border-bottom:1px solid #dbe2ed;box-shadow:none;padding:0;}
.adopted-design .app-header__inner {max-width:1440px;margin:auto;padding:0 var(--page-gutter);min-height:76px;display:flex;align-items:center;gap:40px;}
.adopted-design .adopted-brand {display:inline-flex;align-items:center;gap:10px;color:#17243b;font-size:20px;font-weight:750;text-decoration:none;white-space:nowrap;letter-spacing:0;}
.adopted-brand-mark {display:flex;align-items:flex-end;gap:3px;height:23px;}
.adopted-brand-mark i {display:block;width:5px;background:#2563eb;border-radius:1px;height:15px;}
.adopted-brand-mark i:nth-child(2) {height:23px}.adopted-brand-mark i:nth-child(3) {height:19px}
.adopted-design .main-nav {display:flex;flex:1;gap:28px;align-items:center;overflow:auto;}
.adopted-design .main-nav a {height:76px;display:inline-flex;align-items:center;white-space:nowrap;color:#637087;font-size:14px;font-weight:650;border:0;border-radius:0;background:transparent;text-decoration:none;padding:0;}
.adopted-design .main-nav a[aria-current="page"] {color:#2563eb;border-bottom:3px solid #2563eb;}
.adopted-design .account-menu {margin-left:auto;flex-shrink:0;}
.adopted-design .avatar {width:34px;height:34px;background:#eff5ff;color:#2563eb;font-size:14px;}
.adopted-design .account-copy strong {font-size:13px}.adopted-design .account-copy small {font-size:11px}
.adopted-design .page-shell,.adopted-design .page-shell--dashboard {max-width:1440px;width:100%;margin:auto;padding:32px var(--page-gutter) 56px;}
.adopted-design .card,.adopted-design .home-section,.adopted-design .dashboard-card,.adopted-design .social-report-section,.adopted-design .admin-home-card,.adopted-design .expense-report-card {background:#fff;border:1px solid #dbe2ed;border-radius:8px;box-shadow:none;}
.adopted-design .social-report-section {padding:24px;}
.adopted-design .social-report-summary {border:1px solid #dbe2ed;border-radius:8px;}
.adopted-design .social-report-workflow {background:#fff;border:1px solid #dbe2ed;border-radius:8px;padding:20px;}
.adopted-design .page-heading h1,.adopted-design .page-title,.adopted-design .admin-home-title {font-size:30px;line-height:1.35;color:#17243b;}
.adopted-design h2 {color:#17243b;}
.adopted-design .button,.adopted-design .primary-button,.adopted-design .secondary-button {display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:8px 15px;border:1px solid #dbe2ed;border-radius:6px;background:#fff;color:#334155;font:inherit;font-weight:650;box-shadow:none;text-decoration:none;cursor:pointer;}
.adopted-design .button.primary,.adopted-design .primary-button {background:#2563eb;color:#fff;border-color:#2563eb;}
.adopted-design .button.small {min-height:32px;padding:5px 10px;font-size:12px;}
.adopted-design .button.danger {color:#b42318;background:#fff4f2;border-color:#ffd3cc;}
.adopted-design button:disabled {cursor:not-allowed;opacity:.55;}
.adopted-design :focus-visible {outline:3px solid #8eb4fa;outline-offset:3px;}
.adopted-design input,.adopted-design select,.adopted-design textarea {border-color:#cbd5e1;border-radius:6px;color:#17243b;background:#fff;max-width:100%;font:inherit;}
.adopted-design .admin-nav {background:transparent;border-color:#dbe2ed;border-radius:6px;}
.adopted-design .admin-nav a {color:#475569;}
.adopted-design .admin-nav a[aria-current="page"] {color:#2563eb;background:#eff5ff;}
.adopted-design .subnav {background:#fff;border-color:#dbe2ed;border-radius:8px;padding:10px;gap:6px;}
.adopted-design .subnav a {font-size:12px;color:#637087;border-radius:5px;padding:8px 10px;}
.adopted-design .subnav a.active {background:#eff5ff;color:#2563eb;}
.adopted-design .account-dropdown {background:#fff;border:1px solid #dbe2ed;border-radius:8px;box-shadow:0 8px 25px #17243b15;}
.adopted-design .account-dropdown a {color:#334155;}
.adopted-design .flash {border-radius:6px;}
.adopted-design .login-card,.adopted-design .auth-card {background:#fff;border:1px solid #dbe2ed;border-radius:10px;box-shadow:0 12px 40px #17243b0c;}
.adopted-design .auth-page,.adopted-design .login-page {background:#f5f7fb;}
.review-page {max-width:1332px;margin:auto;}
.public-social-report.adopted-design>.review-page {padding:32px var(--page-gutter) 56px;max-width:1440px;}
.review-page-heading {display:flex;justify-content:space-between;align-items:center;gap:20px;margin:0 0 24px;}
.review-eyebrow {font-size:11px;letter-spacing:.18em;color:#64748b;margin:0 0 5px;font-weight:750;}
.review-page-heading h1 {font-size:32px;line-height:1.4;font-weight:750;margin:0 0 6px;}
.review-page-heading p:not(.review-eyebrow) {margin:0;color:#637087;}
.review-month {display:flex;align-items:center;gap:24px;background:#fff;border:1px solid #dbe2ed;border-radius:6px;padding:9px 15px;font-size:16px;white-space:nowrap;}
.review-month a {text-decoration:none;font-size:25px;line-height:1;}
.review-actions {display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 20px;}
.review-progress {display:grid;grid-template-columns:1fr 1.3fr 1fr;background:#fff;border:1px solid #dbe2ed;border-radius:8px;margin-bottom:24px;padding:24px 0;}
.review-progress>div {padding:0 28px;border-right:1px solid #e3e8f0;display:flex;flex-direction:column;}
.review-progress>div:last-child {border-right:0;}
.review-progress small,.review-metrics small,.review-leave-strip small {color:#637087;font-size:12px;display:block;margin-bottom:6px;}
.review-progress strong {font-size:28px;line-height:1.4;font-weight:750;}
.review-progress strong span {font-size:14px;margin-left:5px;font-weight:600;}
.review-progress p {font-size:12px;color:#637087;margin:7px 0 0;}
.review-progress progress {width:100%;height:7px;border:0;accent-color:#2563eb;margin-top:8px;border-radius:5px;}
.review-progress progress::-webkit-progress-bar {background:#e8eef8;border-radius:5px;}
.review-progress progress::-webkit-progress-value {background:#2563eb;border-radius:5px;}
.review-card {background:#fff;border:1px solid #dbe2ed;border-radius:8px;overflow:hidden;margin-bottom:20px;}
.review-list-head {display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #dbe2ed;padding:0 22px;gap:16px;}
.review-list-head>span {font-size:12px;color:#637087;}
.review-filters {display:flex;gap:24px;overflow:auto;}
.review-filters button {border:0;border-bottom:3px solid transparent;background:transparent;color:#637087;padding:17px 0 14px;font:inherit;font-weight:650;white-space:nowrap;cursor:pointer;}
.review-filters button[aria-pressed="true"] {color:#2563eb;border-bottom-color:#2563eb;}
.review-filters button span {font-size:11px;border-radius:12px;background:#f0f3f8;padding:2px 6px;margin-left:4px;}
.review-table-scroll {overflow:auto;max-width:100%;}
.review-table {border-collapse:collapse;width:100%;min-width:650px;font-size:14px;text-align:left;table-layout:auto;}
.review-table th {position:relative;background:#f8fafc;padding:12px 18px;font-size:12px;color:#637087;white-space:nowrap;font-weight:650;border-bottom:1px solid #dbe2ed;}
.review-table td {padding:15px 18px;border-bottom:1px solid #e8edf4;vertical-align:middle;}
.review-table tbody tr:last-child td {border-bottom:0;}
.review-table tbody tr:hover {background:#fafdff;}
.review-table small,.review-table time {display:block;color:#637087;font-size:11px;line-height:1.6;margin-top:2px;}
.review-days-table .review-paid-leave {font-size:14px;line-height:1.5;color:#17243b;}
.review-table strong {font-weight:650;}
.review-overview-table {min-width:1080px;}
.review-overview-table td {padding-top:13px;padding-bottom:13px;}
.review-employee-name {font-size:17px;font-weight:700;color:#17243b!important;text-decoration:none;}
.review-detail-link {white-space:nowrap;font-weight:650;text-decoration:none;}
.review-detail-link span {margin-left:10px;}
.review-state {display:inline-flex;align-items:center;gap:5px;border-radius:4px;padding:3px 8px;background:#f1f5f9;color:#64748b;font-size:11px;font-weight:650;white-space:nowrap;}
.review-state[data-state="attention"] {background:#fff5e5;color:#97600b;}
.review-state[data-state="complete"] {background:#eaf7f0;color:#19764f;}
.review-state[data-state="pending"] {background:#eff5ff;color:#336bc8;}
.review-footnote,.review-source-note {font-size:12px;color:#637087;margin:12px 0;}
.review-card>.review-footnote {padding:0 22px 15px;margin:0;}
.review-empty {padding:26px 22px;color:#637087;margin:0;}
.review-role {border:1px solid #dbe2ed;background:#f8fafc;border-radius:4px;padding:5px 9px;font-size:12px;white-space:nowrap;margin-left:auto;}
.review-back {display:inline-block;margin-bottom:14px;text-decoration:none;font-size:13px;}
.review-person-number {font-size:13px;color:#637087;margin-left:16px;font-weight:500;}
.review-person-nav {display:flex;gap:10px;}
.review-detail-layout {display:grid;grid-template-columns:218px minmax(0,1fr);gap:22px;align-items:start;}
.review-roster {background:#fff;border:1px solid #dbe2ed;border-radius:8px;overflow:hidden;position:sticky;top:20px;}
.review-roster h2 {font-size:12px;color:#637087;margin:0;padding:17px 16px;border-bottom:1px solid #dbe2ed;}
.review-roster a {display:flex;align-items:center;justify-content:space-between;gap:6px;text-decoration:none;color:#334155;padding:16px;border-bottom:1px solid #edf1f7;font-size:13px;}
.review-roster a[aria-current="page"] {background:#eff5ff;color:#2563eb;box-shadow:inset 3px 0 #2563eb;}
.review-note {background:#fff;border:1px solid #dbe2ed;border-radius:8px;padding:17px 22px;margin-bottom:20px;}
.review-note h2 {font-size:15px;margin:0 0 6px;}
.review-note p {margin:0;}
.review-note ul {margin:6px 0;padding-left:20px;font-size:12px;}
.review-note--warning {background:#fffbf2;border-color:#f4dfaf;color:#795514;}
.review-note--warning h2 {color:#795514;}
.review-section-head {padding:18px 22px;display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid #e8edf4;}
.review-section-head h2 {font-size:16px;font-weight:700;margin:0;}
.review-section-head p,.review-section-head>span {font-size:12px;color:#637087;margin:3px 0 0;}
.review-metrics {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:24px 0;}
.review-metrics>div {padding:0 22px;border-right:1px solid #e8edf4;display:flex;flex-direction:column;}
.review-metrics>div:last-child {border:0;}
.review-metrics strong {font-size:26px;font-weight:750;line-height:1.3;}
.review-metrics span {font-size:12px;color:#637087;margin-top:5px;}
.review-supplement {display:flex;flex-wrap:wrap;gap:8px 22px;padding:12px 22px 18px;font-size:12px;color:#637087;border-top:1px solid #edf1f7;}
.review-leave-strip {display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 22px;}
.review-leave-strip h2 {font-size:16px;margin:0;}
.review-leave-strip p {font-size:11px;color:#637087;margin:3px 0 0;}
.review-leave-strip strong {font-size:22px;font-weight:750;}
.review-leave-strip a {font-size:12px;white-space:nowrap;}
.review-days-scroll {max-height:455px;}
.review-days-scroll.is-expanded {max-height:none;}
.review-days-table {min-width:620px;}
.review-days-table thead th {position:sticky;top:0;z-index:1;}
.review-days-table td {padding:11px 18px;}
.review-days-table td:first-child small {display:inline;margin-left:4px;}
.review-days-table time {font-size:13px;color:#17243b;}
.review-expense-table {min-width:660px;}
.review-expense-table td:nth-child(3) {min-width:170px;max-width:420px;overflow-wrap:anywhere;}
.review-total {font-size:20px;white-space:nowrap;}
.review-existing-actions {padding:20px 22px;}
.review-existing-actions h2 {font-size:16px;margin:0;}
.review-existing-actions .review-actions {margin:15px 0 0;}
.review-receipts {padding-bottom:20px;}
.receipt-pdf {margin:0 22px 20px;border:1px solid #dbe2ed;border-radius:6px;background:#f1f4f8;overflow:hidden;}
.receipt-pdf-head {padding:14px 16px;background:#fff;display:flex;gap:10px;align-items:center;flex-wrap:wrap;overflow-wrap:anywhere;}
.receipt-pdf-head>small {color:#637087;font-size:11px;}
.receipt-pdf-head .review-actions {margin:0 0 0 auto;gap:8px;}
.receipt-pdf-controls {display:flex;justify-content:center;align-items:center;gap:14px;padding:12px;}
.receipt-pdf-status {padding:20px;text-align:center;font-size:12px;}
.receipt-pdf-canvas {padding:14px;overflow:auto;text-align:center;}
.receipt-pdf canvas {max-width:100%;height:auto;background:#fff;box-shadow:0 2px 12px #17243b18;}
.review-file-link {padding:8px 22px;display:flex;gap:15px;flex-wrap:wrap;overflow-wrap:anywhere;}
.sr-only {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.mypage-punch-body {display:grid;grid-template-columns:180px minmax(0,1fr) auto;gap:30px;align-items:center;padding:26px;}
.mypage-clock {font-size:48px;font-weight:750;line-height:1.2;margin:0;letter-spacing:.02em;color:#17243b;font-variant-numeric:tabular-nums;}
.mypage-timeline ol {list-style:none;padding:0;margin:0;display:flex;gap:26px;flex-wrap:wrap;}
.mypage-timeline li {display:flex;flex-direction:column;gap:4px;position:relative;}
.mypage-timeline small {color:#637087;font-size:12px;}
.mypage-timeline time {font-weight:700;font-size:17px;}
.mypage-punch-actions {display:flex;flex-direction:column;gap:10px;min-width:165px;}
.mypage-punch-actions button {width:100%;}
.mypage-punch-actions p,.mypage-punch-actions>a {font-size:12px;margin:0;}
.mypage-lunch-note {margin:0;padding:12px 26px;background:#eff5ff;color:#336bc8;font-size:12px;}
.mypage-today-totals {display:flex;gap:12px 24px;flex-wrap:wrap;border-top:1px solid #e8edf4;padding:12px 26px;color:#637087;font-size:12px;}
.mypage-today-totals strong {font-variant-numeric:tabular-nums;color:#334155;margin-left:8px;}
.mypage-month-heading {margin-top:28px;margin-bottom:16px;}
.mypage-month-heading h2 {font-size:20px;margin:0;}
.mypage .review-section-head .review-actions,.mypage .review-leave-strip .review-actions {margin:0;}
@media(max-width:1050px) {
 .adopted-design .app-header__inner {gap:22px;flex-wrap:wrap;padding-top:12px;}
 .adopted-design .main-nav {order:3;flex-basis:100%;gap:25px;}
 .adopted-design .main-nav a {height:42px;}
 .adopted-design .account-copy {display:none;}
 .review-detail-layout {grid-template-columns:170px minmax(0,1fr);gap:16px;}
 .review-roster a {flex-direction:column;align-items:flex-start;padding:13px;}
}
@media(max-width:720px) {
 .adopted-design .social-report-section {padding:16px;}
 .adopted-design .social-report-workflow {padding:16px;}
 .mypage-punch-body {grid-template-columns:1fr;padding:20px;gap:20px;}
 .mypage-clock {font-size:42px;}
 .mypage-punch-actions {align-items:stretch;}
 .mypage .review-section-head {flex-wrap:wrap;}
 .adopted-design .page-shell,.adopted-design .page-shell--dashboard,.public-social-report.adopted-design>.review-page {padding-top:24px;}
 .review-page-heading {flex-wrap:wrap;margin-bottom:18px;gap:14px;}
 .review-page-heading h1 {font-size:26px;}
 .review-month {gap:20px;padding:7px 12px;font-size:14px;}
 .review-progress {grid-template-columns:1fr;padding:0;}
 .review-progress>div {padding:17px 20px;border-right:0;border-bottom:1px solid #e8edf4;}
 .review-progress>div:last-child {border-bottom:0;}
 .review-progress strong {font-size:25px;}
 .review-list-head {padding:0 16px;}
 .review-list-head>span {display:none;}
 .review-filters {gap:18px;}
 .review-detail-layout {display:block;}
 .review-roster {position:static;margin-bottom:18px;}
 .review-roster h2 {padding:10px 14px;}
 .review-roster nav {display:flex;overflow:auto;}
 .review-roster a {min-width:130px;border-right:1px solid #dbe2ed;border-bottom:0;}
 .review-roster a[aria-current="page"] {box-shadow:inset 0 -3px #2563eb;}
 .review-metrics {grid-template-columns:1fr 1fr;padding:0;}
 .review-metrics>div {padding:17px;border-bottom:1px solid #e8edf4;}
 .review-metrics>div:nth-child(2) {border-right:0;}
 .review-metrics strong {font-size:24px;}
 .review-leave-strip {flex-wrap:wrap;padding:17px;}
 .review-leave-strip>div:first-child {width:100%;}
 .review-section-head {padding:16px;}
 .review-note {padding:16px;}
 .review-total {font-size:16px;}
 .receipt-pdf {margin:0 14px 16px;}
 .receipt-pdf-head .review-actions {margin:5px 0 0;}
 .review-role {font-size:10px;}
}
@media print {
 .adopted-design {background:#fff;font-size:10pt;}
 .adopted-design .app-header,.adopted-design .app-footer,.review-roster,.review-person-nav,.review-back,.review-actions,.review-filters,.review-month a,.review-section-head button,.receipt-pdf-controls {display:none!important;}
 .adopted-design .page-shell,.public-social-report.adopted-design>.review-page {padding:0;max-width:none;}
 .review-detail-layout {display:block;}
 .review-card,.review-note,.review-progress {border-color:#aaa;box-shadow:none;break-inside:auto;}
 .review-days-scroll,.review-table-scroll {max-height:none!important;overflow:visible!important;}
 .review-table {min-width:0!important;width:100%;font-size:9pt;}
 .review-days-table .review-paid-leave {font-size:10pt;}
 .review-table th,.review-table td {padding:6px;position:static!important;min-width:0!important;max-width:none!important;white-space:normal;}
 .review-table thead {display:table-header-group;}
 .review-table tr {break-inside:avoid;}
 .review-section-head {break-after:avoid;}
 .review-receipts .receipt-pdf-canvas {display:none;}
 .review-receipts::after {content:"領収書PDFは原本を開いて個別に印刷してください。";display:block;padding:12px;}
}
