:root{font-family:-apple-system,BlinkMacSystemFont,'Yu Gothic','Meiryo',sans-serif;color:#213c40;background:#f3f6f7;font-size:16px;line-height:1.65;--teal:#126d70;--muted:#61787b;--line:#dbe4e5;--red:#b52628}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;min-height:44px;border:1px solid #c8d8d9;border-radius:9px;padding:9px 16px;background:white;color:#26494c;font-weight:600}button:hover{background:#edf5f5}button:disabled{cursor:default;opacity:.48}button.primary{background:var(--teal);color:white;border-color:var(--teal)}button.danger{color:var(--red);border-color:#e8bdbd}button.link{border:0;background:transparent;padding:4px 8px;color:var(--teal)}a{color:var(--teal)}input,select,textarea{min-width:0;width:100%;min-height:46px;background:white;border:1px solid #b9cccd;border-radius:8px;padding:9px 11px;color:#213c40}textarea{min-height:90px;resize:vertical}input[type=checkbox]{width:22px;min-height:22px;flex-shrink:0;accent-color:var(--teal)}input[type=month],input[type=date]{appearance:none;min-height:46px}label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600}label.check{flex-direction:row;align-items:center;gap:10px;min-height:44px;font-weight:400}small,.muted{color:var(--muted);font-size:14px}.brand{font-size:23px;letter-spacing:.09em;font-weight:750;color:var(--teal)}.brand small{display:block;font-size:12px;letter-spacing:.03em;font-weight:500}.top{background:white;border-bottom:1px solid var(--line);padding:17px max(24px,calc((100vw - 1160px)/2));display:flex;justify-content:space-between;align-items:center;gap:14px}.user{font-size:14px;text-align:right}.user span{display:block}.nav{display:flex;gap:7px;background:white;padding:0 max(24px,calc((100vw - 1160px)/2));border-bottom:1px solid var(--line)}.nav button{border:0;border-bottom:3px solid transparent;border-radius:0;padding:12px 23px}.nav button.active{color:var(--teal);border-color:var(--teal);background:#f0f8f7}main{max-width:1208px;margin:0 auto;padding:28px 24px 70px}h1{font-size:25px;margin:0 0 5px;line-height:1.4}h2{font-size:19px;margin:0 0 16px}h3{font-size:16px;margin:0 0 10px}p{margin:0 0 13px}.head{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:24px}.head .month{width:180px}.card{background:white;border:1px solid var(--line);border-radius:14px;padding:24px;margin:0 0 20px;box-shadow:0 2px 7px #143f4205}.hero-progress{display:grid;grid-template-columns:1fr 2fr;gap:30px}.big{font-size:40px;line-height:1.2;letter-spacing:-.035em}.big small{font-size:16px}.stages{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.stage strong{display:block;font-size:26px;font-variant-numeric:tabular-nums}.meter{height:7px;background:#e8efef;border-radius:9px;overflow:hidden;margin-top:14px}.meter i{display:block;height:100%;background:var(--teal)}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.toolbar input{flex:1;min-width:150px}.toolbar select{width:auto;max-width:100%}.badge{display:inline-flex;align-items:center;font-size:13px;padding:3px 9px;border-radius:6px;background:#edf2f3;color:#4c6266;line-height:1.6}.badge.warn{background:#fff0d7;color:#8e5300}.badge.error{background:#fce6e5;color:#9b2529}.badge.good{background:#e4f3ef;color:#186052}.patient-row{display:grid;grid-template-columns:1.4fr 1fr 1.25fr 44px;gap:18px;align-items:center;padding:18px 0;border-top:1px solid var(--line)}.patient-row:first-child{border-top:0}.patient-row strong{display:block;font-size:17px}.patient-row .cell{min-width:0;overflow-wrap:anywhere}.arrow{padding:0;font-size:23px}.empty{padding:38px 12px;text-align:center;color:var(--muted)}.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.chips button{font-size:14px}.chips button.active{background:#e4f2f1;border-color:var(--teal)}.banner{padding:14px 18px;border-radius:9px;background:#fff0d7;color:#754809;margin-bottom:18px;font-size:14px}.banner.preview{background:#443866;color:white;border-radius:0;margin:0;display:flex;justify-content:center;align-items:center;gap:12px}.preview button{min-height:36px;padding:3px 12px}.banner.error{background:#fceaea;color:#9b2529}.banner.good{background:#e6f4ed;color:#1e5d48}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.grid .wide{grid-column:1/-1}.actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:20px}.inline-actions{display:flex;gap:8px;flex-wrap:wrap}.entry{padding:18px 0;border-top:1px solid var(--line)}.entry:first-of-type{border-top:0}.entry-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.amount-summary{width:100%;border-collapse:collapse;margin:14px 0;font-variant-numeric:tabular-nums}.amount-summary th,.amount-summary td{padding:12px 8px;border-bottom:1px solid var(--line);text-align:right}.amount-summary th:first-child,.amount-summary td:first-child{text-align:left}.amount-summary th{font-size:13px;color:var(--muted)}.paper{background:#f8e6c9;color:#2d2821;padding:17px;border:1px solid #d2ae7d;container-type:inline-size;font-family:'Yu Mincho','Hiragino Mincho ProN',serif}.paper-title{text-align:center;border:1.5px solid #504638;font-weight:700;font-size:19px;padding:8px 3px}.paper-id{display:grid;grid-template-columns:60px 1fr 70px 1fr;border:1.5px solid #504638;border-top:0;font-size:14px}.paper-id>*{padding:9px 7px;border-right:1px solid #504638}.paper-id>*:last-child{border:0}.paper-limit{padding:15px 8px;border:1.5px solid #504638;border-top:0;text-align:center;font-size:17px}.paper table{border-collapse:collapse;table-layout:fixed;width:100%;font-variant-numeric:tabular-nums}.paper th,.paper td{border:1.5px solid #504638;padding:9px 3px;text-align:center;vertical-align:middle;font-size:clamp(11px,1.8cqw,16px);height:65px;overflow-wrap:anywhere}.paper th{font-size:clamp(11px,1.8cqw,15px);line-height:1.5;font-weight:600}.paper .company{white-space:nowrap;overflow-wrap:normal;font-size:clamp(8px,1.57cqw,14px);letter-spacing:-.045em}.paper .write td{color:#b42323;font-weight:700}.paper .write{outline:3px solid #bb2c2c;outline-offset:-2px}.paper .slash{background:linear-gradient(164deg,transparent 49%,#b42323 49.6%,#b42323 50.4%,transparent 51%)}.paper .attainment{margin-top:27px}.paper .attainment p{font-size:14px}.paper .attainment td{height:46px}.paper-guide{border-left:4px solid var(--red);background:#fff4ef;color:#9b2529;padding:12px 15px;margin:16px 0;font-weight:600}.steps{margin-top:18px;display:grid;gap:10px}.step{border:1px solid #d6e2e2;border-radius:9px;padding:13px}.step.done{background:#eff8f4}.signin{max-width:450px;margin:9vh auto 35px;padding:32px;background:white;border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 45px #153d4210}.signin h1{font-size:22px;margin-top:30px;margin-bottom:20px}.signin form{display:grid;gap:18px}.signin .primary{width:100%}.signin .brand{font-size:29px}.help{padding:15px 0 0;border-top:1px solid var(--line);margin-top:20px;font-size:14px;color:var(--muted)}.loading{margin:20vh auto;text-align:center;font-weight:700;color:var(--teal)}dialog{border:1px solid var(--line);border-radius:15px;max-width:min(680px,calc(100vw - 32px));width:680px;max-height:88vh;padding:26px;color:#213c40}dialog::backdrop{background:#142f3b75}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.dialog-head h2{margin:0}.error-message{color:#a32626;font-size:14px;white-space:pre-line;margin:12px 0}.error-message:empty{display:none}#notice{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#213e41;color:white;border-radius:10px;padding:12px 22px;max-width:90vw;z-index:30;display:none}#notice.show{display:block}.history{font-size:14px;max-height:360px;overflow:auto}.history>div{padding:12px 0;border-bottom:1px solid var(--line)}details{margin-top:10px}summary{cursor:pointer;min-height:44px;padding:8px 0;color:var(--teal)}:focus-visible{outline:3px solid #dd9800;outline-offset:3px}.renew-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.account-row{display:grid;grid-template-columns:1fr auto;gap:12px;padding:15px 0;border-bottom:1px solid var(--line)}.nowrap{white-space:nowrap}.mini{font-size:13px}.keyline{display:flex;gap:20px;flex-wrap:wrap;margin-top:12px}.keyline b{display:block;font-size:20px} @media(max-width:900px){.hero-progress{grid-template-columns:1fr;gap:24px}.patient-row{grid-template-columns:1.2fr 1fr 1.1fr 44px;gap:10px}.card{padding:20px}.paper{padding:12px}}@media(max-width:600px){main{padding:20px 14px 60px}.top{padding:13px 16px;gap:8px}.brand{font-size:20px}.user{font-size:12px}.nav{padding:0 12px}.nav button{padding:10px 17px}.head{align-items:flex-start;gap:10px}.head .month{width:148px}h1{font-size:22px}.card{padding:16px}.stages{gap:10px}.stage{font-size:13px}.stage strong{font-size:22px}.patient-row{grid-template-columns:1fr 44px;gap:8px}.patient-row .cell:nth-child(2),.patient-row .cell:nth-child(3){grid-column:1}.patient-row .arrow{grid-column:2;grid-row:1/4}.patient-row .cell small{display:inline}.grid{grid-template-columns:1fr}.grid .wide{grid-column:1}.signin{margin:30px 16px;padding:25px}.paper{padding:6px}.paper-id{grid-template-columns:40px 1fr 44px 1fr;font-size:11px}.paper-id>*{padding:7px 3px}.paper-title{font-size:15px}.paper-limit{font-size:13px}.paper th,.paper td{font-size:10px;padding:8px 2px}.paper th{font-size:9px}.paper .company{font-size:7px}.amount-summary{font-size:13px}.amount-summary td{padding:10px 3px}.banner.preview{flex-wrap:wrap}.account-row{grid-template-columns:1fr}}@media print{body{background:white}.top,.nav,.head,.actions,.steps,.toolbar,.paper-guide,#notice,button,.banner{display:none!important}.card{border:0;box-shadow:none}main{padding:0}.paper{print-color-adjust:exact;-webkit-print-color-adjust:exact}}
.paper-dialog{width:1000px;max-width:calc(100vw - 32px)}.paper-dialog .paper .company{font-size:clamp(10px,1.95cqw,15px)}@media(max-width:600px){.paper-dialog{padding:14px}.paper-dialog .paper .company{font-size:clamp(7px,1.95cqw,11px)}}

.portal-startup{min-height:55vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;color:#18344f;font:16px/1.6 system-ui,sans-serif}.portal-startup p{margin:0}.portal-startup a{padding:12px;color:#18344f}.portal-startup-spinner{display:inline-block;width:24px;height:24px;border:3px solid #ced8e2;border-top-color:#18344f;border-radius:50%;animation:portal-startup-turn .8s linear infinite}@keyframes portal-startup-turn{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.portal-startup-spinner{animation:none}}
