:root{color-scheme:light;--ink:#162b2a;--muted:#586964;--green:#14675b;--line:#d9e2dd;--bg:#f4f6f5;--warn:#fff7db}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 system-ui,"Yu Gothic",Meiryo,sans-serif}header{background:#fff;border-bottom:1px solid var(--line)}.header-inner{max-width:1156px;margin:auto;display:flex;align-items:center;gap:26px;padding:20px 28px}.brand{color:var(--green);font-size:23px;font-weight:750}h1{font-size:25px;line-height:1.4;margin:0}main{max-width:1156px;margin:auto;padding:20px 28px 28px}.intro{margin:0 0 12px}.status{margin:0 0 16px;color:var(--muted);font-size:15px;min-height:24px}.status.success{color:var(--green);font-weight:650}.error{padding:14px 18px;margin-bottom:18px;border:1px solid #d1a09e;border-radius:8px;background:#fff0ef;color:#a52a30;overflow-wrap:anywhere}.workspace{display:grid;grid-template-columns:360px minmax(0,1fr);gap:22px;align-items:stretch}.card{background:white;border:1px solid var(--line);border-radius:12px;padding:24px;min-width:0}h2{font-size:20px;line-height:1.45;margin:0 0 18px}.step{font-size:18px;margin-right:8px;color:var(--green)}label{display:block;font-size:15px;font-weight:650;margin:18px 0 7px}input{font:inherit;color:var(--ink);background:#fff}input[type=text],input[type=number]{border:1px solid #bacac2;border-radius:6px;padding:9px 11px;min-height:46px;width:100%}input:focus-visible,button:focus-visible,.table-wrap:focus-visible{outline:3px solid #458e80;outline-offset:3px}.file-box{padding:16px;background:#f7faf8;border:1px solid var(--line);border-radius:10px}.file-box label{margin:0 0 12px}.file-box input{width:100%;font-size:14px}.file-box input::file-selector-button{display:block;min-height:44px;margin:0 0 10px;border:0;border-radius:6px;padding:10px 22px;background:var(--green);color:white;font:600 16px system-ui;cursor:pointer}.help{font-size:14px;color:var(--muted);line-height:1.6;margin:8px 0 0}.file-name{margin:8px 0 0;font-size:13px;overflow-wrap:anywhere}.file-name:empty{display:none}.candidate{margin:18px 0 0}.date-fields{display:grid;grid-template-columns:1.4fr 1fr;gap:12px}.meta{font-size:14px;color:var(--muted);margin:15px 0}.table-wrap{overflow-x:auto;border-radius:4px}table{border-collapse:collapse;width:100%;font-size:15px}th,td{padding:13px 12px;border-bottom:1px solid #e5ebe7;text-align:left}thead{background:#f3f7f5}th{font-weight:650;font-size:14px}td:first-child{overflow-wrap:anywhere}.numeric{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}th:first-child{min-width:150px}.total{background:#eaf3ef;border-radius:8px;padding:18px;margin:26px 0 12px;display:flex;justify-content:space-between;gap:16px;align-items:center}.total span{font-weight:650}.total strong{font-size:24px;color:var(--green);font-variant-numeric:tabular-nums}.review-card{padding:24px;margin-top:22px;border:1px solid #eadba5;border-radius:12px;background:var(--warn)}.review-card h2{margin-bottom:10px}.review-card>p{margin:0 0 14px;font-size:15px}.review-table{background:#fffef8}.review-table th:first-child{min-width:120px}.review-table th:last-child{min-width:260px}.review-table td:last-child{font-size:14px}.review-table td:first-child{max-width:240px}.confirmations{margin-top:18px}.check{display:flex;align-items:flex-start;gap:10px;font-weight:500;margin:8px 0;padding:8px 0;cursor:pointer}.check input{flex:0 0 21px;width:21px;height:21px;margin:2px 0;accent-color:var(--green)}.export-row{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:16px}.export-row .help{max-width:650px;margin:0}button{min-height:48px;min-width:210px;border:0;border-radius:6px;background:var(--green);color:#fff;font:650 17px system-ui;cursor:pointer;padding:12px 22px}button:hover:enabled{background:#0e5148}button:disabled{background:#ced7d3;color:#43554f;cursor:default}input:disabled{opacity:.65}.busy{cursor:progress}footer{font-size:13px;line-height:1.7;color:var(--muted);margin-top:18px}[hidden]{display:none!important}
@media(max-width:900px){.workspace{grid-template-columns:310px minmax(0,1fr);gap:16px}.card{padding:20px}.total{flex-wrap:wrap}.total strong{font-size:22px}}
@media(max-width:760px){.header-inner{padding:18px 16px;gap:18px}h1{font-size:22px}.brand{font-size:20px}main{padding:18px 16px 24px}.workspace{grid-template-columns:1fr}.card,.review-card{padding:20px}button{width:100%}.export-row{flex-direction:column;align-items:stretch;gap:16px}th,td{padding:12px 10px}.total strong{font-size:24px}.file-box input::file-selector-button{width:100%}}
