:root{font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;color:#202b2d;background:#f4f7f7;font-size:14px;line-height:1.55;letter-spacing:0}
#payroll-period{border-block:1px solid var(--line);padding:18px 0;margin-bottom:22px;overflow-wrap:anywhere}#payroll-period h2{font-size:18px;margin:0 0 12px}.payroll-period-dates{display:grid;grid-template-columns:180px minmax(0,1fr);gap:8px 18px;margin:0}.payroll-period-dates dt{color:var(--muted)}.payroll-period-dates dd{margin:0;font-weight:650}.period-reasons{padding-left:20px;color:var(--danger)}@media(max-width:720px){.payroll-period-dates{grid-template-columns:minmax(0,1fr);gap:4px}.payroll-period-dates dd{margin-bottom:10px}}
#payroll-rows .row-actions{display:flex;gap:8px;flex-wrap:wrap}#payroll-premium-detail{min-width:0;overflow-wrap:anywhere}#payroll-premium-detail h2{font-size:18px;min-width:0}#payroll-premium-detail h3{font-size:16px}#payroll-premium-detail .section-toolbar button{flex-shrink:0}
.monthly-draft{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:20px 0;padding:12px 0}.monthly-draft>summary{color:var(--teal);font-weight:650;min-height:44px;padding:10px 0;cursor:pointer}.monthly-draft .form-grid{padding:16px 0}.monthly-draft .check-label{align-items:flex-start}.monthly-draft input[type=checkbox]{flex-shrink:0;margin-top:3px}
.external-time{min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.external-time legend{font-size:14px;overflow-wrap:anywhere}#external-attendance-body input{font-size:16px}
.external-days-form{max-width:760px;margin:16px 0}.external-day{border-top:1px solid var(--line);padding:12px 0}.external-day>summary{min-height:44px;padding:10px 0;font-weight:650;cursor:pointer}.external-day fieldset{min-width:0;margin:12px 0}.external-day input{min-width:0}.external-day select{max-width:100%}.external-days-form>.form-grid{margin-top:20px}
.attendance-source-comparison{max-width:760px;min-width:0;padding:12px 0;border-bottom:1px solid var(--line);margin-bottom:16px;overflow-wrap:anywhere}.attendance-source-comparison select{max-width:100%;font-size:16px}.attendance-source-comparison summary{min-height:44px;padding:10px 0;cursor:pointer;font-weight:650}.attendance-source-comparison button{min-height:44px;white-space:normal}.attendance-source-comparison ul{padding-left:24px}
.payroll-records{border-top:1px solid var(--line);margin-top:24px;padding-top:16px}.payroll-records .list-row{flex-wrap:wrap}.payroll-records .list-row>span{min-width:0;overflow-wrap:anywhere}.payroll-records .form-stack{margin:16px 0;max-width:720px}.payroll-records .form-stack>button{justify-self:start;min-height:44px}
@media(max-width:720px){#view-payroll #payroll-premium-detail table,#view-payroll #payroll-premium-detail tbody{display:block;width:100%;min-width:0}#view-payroll #payroll-premium-detail tbody tr{display:grid;grid-template-columns:minmax(0,1fr) max-content;gap:6px 12px;border-bottom:1px solid var(--line);padding:14px 0}#view-payroll #payroll-premium-detail tbody td{border:0;padding:0;text-align:left}#view-payroll #payroll-premium-detail tbody td:first-child{font-weight:650}#view-payroll #payroll-premium-detail tbody td:nth-child(2){grid-row:2;grid-column:1/-1;color:var(--muted)}#view-payroll #payroll-premium-detail tbody td:last-child{grid-row:1;grid-column:2;text-align:right;white-space:nowrap}}
#payroll-settings-form fieldset,#payroll-personal-form fieldset{min-width:0}#payroll-settings-form details{overflow-wrap:anywhere}
#view-customers .list-row>button{flex-shrink:0;white-space:nowrap;min-width:52px;min-height:44px}
.employee-name{padding-left:0;text-align:left;min-height:44px}#employee-detail-fields dt{font-size:14px;font-weight:650;color:var(--muted)}#employee-detail-fields dd{margin:8px 0 0;overflow-wrap:anywhere}#employee-contract-panel{min-width:0}#employee-contract-panel form{margin-top:24px}#employee-contract-panel fieldset{min-width:0}#employee-contract-panel input{font-size:16px}#employee-contract-panel h3{font-size:16px}
#leave-policy-history .list-row,#leave-grant-list .list-row,#leave-ledger-history .list-row{display:block;overflow-wrap:anywhere}#leave-grant-form input,#leave-policy-form input{font-size:16px}#attendance-review details>summary{min-height:44px;padding:12px 0;cursor:pointer}#leave-grant-form{padding:16px 0}
#employee-rows .row-actions{display:flex;gap:8px;flex-wrap:wrap}#employee-rows td{overflow-wrap:anywhere}#employee-detail-title,#employee-contract-title{min-width:0;overflow-wrap:anywhere}
@media(max-width:720px){#view-employees table,#employee-rows{display:block;min-width:0}#view-employees thead{display:none}#employee-rows tr{display:grid;padding:16px 0;border-bottom:1px solid var(--line)}#employee-rows td{display:flex;justify-content:space-between;gap:12px;border:0;padding:6px 0;min-width:0;text-align:right}#employee-rows td::before{content:attr(data-label);font-weight:650;color:var(--muted);flex:none}#employee-rows td:empty{display:none}#employee-rows .row-actions{justify-content:flex-end}#employee-rows .employee-name{text-align:right}#employee-detail-close,#employee-contract-close{flex-shrink:0}}
#document-archive-filter input[type=month]{font-size:16px;min-width:180px}
#view-payrollSettings input,#view-payroll input,#payroll-personal-form input,#view-documentApprovals select{font-size:16px}.payroll-line{padding:16px 0;border-bottom:1px solid var(--line);margin-bottom:16px}#contract-edit-fields{min-width:0}#payroll-process .list-row{flex-wrap:wrap}#document-approval-list .list-row>div{min-width:0;overflow-wrap:anywhere}#document-approval-list .list-row>button{flex-shrink:0}#view-roster details summary{cursor:pointer;font-weight:650;padding:12px 0}#view-roster details form{padding:16px 0}
#payroll-settings-history .list-row,#payroll-personal-history .list-row{display:block;overflow-wrap:anywhere}#payroll-settings-history summary,#payroll-personal-history summary{padding:10px 0;cursor:pointer;font-weight:650}
@media(max-width:720px){#view-payroll table,#payroll-rows{display:block;min-width:0}#view-payroll thead{display:none}#payroll-rows tr{display:grid;padding:12px 0;border-bottom:1px solid var(--line)}#payroll-rows td{display:flex;justify-content:space-between;gap:12px;border:0;padding:6px 0;overflow-wrap:anywhere}#payroll-rows td::before{content:attr(data-label);font-weight:650;color:var(--muted);flex:none}#payroll-bonus-rows{display:block}#payroll-bonus-rows tr{display:grid;padding:12px 0;border-bottom:1px solid var(--line)}#payroll-bonus-rows td{display:flex;justify-content:space-between;gap:12px;min-width:0;border:0;padding:6px 0;text-align:right;overflow-wrap:anywhere}#payroll-bonus-rows td::before{content:attr(data-label);font-weight:650;color:var(--muted);flex:none;text-align:left}#payroll-bonus-rows .row-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px}#payroll-bonus-rows .row-actions button{margin:0}}
#payroll-statements .table-wrap{overflow-x:auto}#payroll-statements table{width:100%;table-layout:fixed}#payroll-statements td{overflow-wrap:anywhere;vertical-align:top}
.payroll-payment-overview{border-block:1px solid var(--line);padding:16px 0;margin:20px 0;min-width:0}.payroll-payment-overview .section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.payroll-payment-overview h4{font-size:16px;margin:0}.payroll-payment-overview .section-heading button{min-height:44px}.payroll-payment-overview>strong{display:block;margin:12px 0}.payroll-payment-overview>p{margin:10px 0}.payroll-payment-overview td:last-child button{min-height:44px}
.payroll-payment-timing{display:grid;gap:3px}.payroll-payment-timing small{font-size:12px;color:var(--muted);line-height:1.4}
.payroll-payment-evidence{min-width:0;overflow-wrap:anywhere;border-top:1px solid var(--line);padding:12px 0}.payroll-payment-evidence>summary{min-height:44px;padding:10px 0;font-weight:650;color:var(--teal);cursor:pointer}.payroll-payment-evidence .form-grid{padding:16px 0;max-width:760px}.payroll-payment-evidence label{min-width:0}.payroll-payment-evidence select{max-width:100%;font-size:16px}.payroll-payment-evidence button{min-height:44px;white-space:normal}
.ledger-source-review{min-width:0;overflow-wrap:anywhere;border-top:1px solid var(--line);padding:12px 0}.ledger-source-review>summary{min-height:44px;padding:10px 0;font-weight:650;color:var(--teal);cursor:pointer}.ledger-source-review li{overflow-wrap:anywhere}
.ledger-payment-entry{padding:8px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.ledger-payment-entry p{margin:0 0 4px}.ledger-payment-entry button{min-height:36px}
.ledger-source-review .in-kind-items{grid-column:1/-1;min-width:0}.ledger-source-review .in-kind-item-row{border-top:1px solid var(--line);padding:12px 0;margin:8px 0}.ledger-source-review .in-kind-item-row button{min-height:44px}.ledger-source-review form>button{min-height:44px}
.ledger-deduction-item{padding:10px 0;border-top:1px solid var(--line);overflow-wrap:anywhere}.ledger-deduction-item p{margin:0 0 5px;font-weight:650}.ledger-deduction-item small{display:block;margin:4px 0;color:var(--muted);line-height:1.5}
.ledger-deduction-item details{margin-top:8px}.ledger-deduction-item summary{color:var(--teal);cursor:pointer;font-weight:600}.ledger-deduction-item ul{margin:6px 0;padding-left:20px}.ledger-deduction-item li{margin:4px 0;overflow-wrap:anywhere}
.payroll-payment-comparison{border-block:1px solid var(--line);padding:14px 0;margin:16px 0;min-width:0}.payroll-payment-comparison h4{font-size:16px;margin:0 0 12px}.payroll-payment-amounts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0 0 16px}.payroll-payment-amounts dt{color:var(--muted)}.payroll-payment-amounts dd{font-size:18px;font-weight:650;font-variant-numeric:tabular-nums;margin:6px 0 0;overflow-wrap:anywhere}@media(max-width:720px){.payroll-payment-amounts{grid-template-columns:minmax(0,1fr);gap:12px}}
@media(min-width:721px){#payroll-statements table{min-width:960px}}
@media(min-width:721px){#payroll-statements th:first-child{width:18%}#payroll-statements th:nth-child(2){width:112px}#payroll-statements th:nth-child(n+3):nth-child(-n+5){width:100px}#payroll-statements th:nth-child(6){width:76px}#payroll-statements td:nth-child(n+2):nth-child(-n+6){white-space:nowrap}#payroll-statements td:nth-child(n+3):nth-child(-n+5){font-variant-numeric:tabular-nums}}
@media(min-width:721px){#payroll-statements .payroll-payment-overview table{min-width:1100px;table-layout:auto}#payroll-statements .payroll-payment-overview th:first-child{width:16%}#payroll-statements .payroll-payment-overview th:nth-child(6){width:24%}#payroll-statements .payroll-payment-overview td:nth-child(6){white-space:normal}}
@media(max-width:720px){#payroll-statements tbody{display:block}#payroll-statements tr{display:grid;padding:12px 0;border-bottom:1px solid var(--line)}#payroll-statements td{display:flex;justify-content:space-between;gap:12px;border:0;padding:6px 0;white-space:normal}#payroll-statements td::before{content:attr(data-label);font-weight:650;color:var(--muted);flex:none}}
.payroll-statement-downloads{border:1px solid var(--line);border-left:4px solid var(--teal);padding:14px 16px;margin:0 0 24px;min-width:0}.payroll-statement-downloads h3{margin:0 0 6px;font-size:17px}.payroll-statement-downloads>p{margin:6px 0 10px}.payroll-statement-downloads .form-actions{margin:8px 0 12px}.payroll-statement-downloads button{min-height:44px}.payroll-statement-downloads .table-wrap{overflow-x:auto}.payroll-statement-downloads table{width:100%}.payroll-statement-downloads td{overflow-wrap:anywhere;vertical-align:top}
@media(max-width:720px){.payroll-statement-downloads{padding:12px}.payroll-statement-downloads tbody{display:block}.payroll-statement-downloads tr{display:grid;padding:10px 0;border-bottom:1px solid var(--line)}.payroll-statement-downloads td{display:flex;justify-content:space-between;align-items:center;gap:12px;border:0;padding:4px 0;white-space:normal;text-align:right}.payroll-statement-downloads td::before{content:attr(data-label);font-weight:650;color:var(--muted);flex:none}.payroll-statement-downloads .form-actions button{width:100%}}
.archive-preview{width:min(1000px,95vw);max-width:95vw;height:90vh;border:1px solid #E4E0EC;border-radius:4px;padding:16px}.archive-preview iframe{width:100%;height:calc(100% - 56px);border:0;margin-top:12px}.archive-preview::backdrop{background:#0008}#document-archive-list .history-block,#attendance-archives .history-block{border-bottom:1px solid var(--line);padding:18px 0;overflow-wrap:anywhere}#shift-tabs button{border-radius:0}#audit-filter{margin-bottom:24px}#attendance-archive-form{margin-top:24px}
.personnel-fields{border-top:1px solid var(--line);padding-top:24px;margin-top:8px;display:grid;gap:18px}.personnel-fields h3{font-size:16px;margin:0}.personnel-fields fieldset{margin:0;min-width:0}.partner-summary p{color:var(--muted);margin:6px 0 0;overflow-wrap:anywhere}.partner-summary{display:grid;gap:16px}#view-customers .list-row>div{min-width:0;overflow-wrap:anywhere}#view-customers .list-row p{margin:5px 0;font-size:13px;color:var(--muted)}#view-rosterExceptions input,#view-rosterExceptions select{font-size:16px}
.sidebar .nav-group{font-size:11px;line-height:1.4;color:#bbcdcd;margin:22px 12px 6px;padding-top:12px;border-top:1px solid #42585a;letter-spacing:0}
.sidebar nav button:not(.active):hover{background:#283d40;color:#fff}
.sidebar-foot{flex-wrap:wrap}.sidebar-foot span{overflow-wrap:anywhere;font-size:12px}
.sidebar .sidebar-foot span{white-space:normal;text-overflow:clip;overflow:visible}
#topbar-user{font-size:12px;max-width:55%;text-align:right;overflow-wrap:anywhere}
.audit-filter{max-width:260px;margin-bottom:22px}#management-rows select{min-width:140px}
@media(max-width:720px){#view-audit table,#view-accounts table{min-width:0;display:block}#view-audit thead,#view-accounts thead{display:none}#audit-rows,#management-rows{display:block}#audit-rows tr,#management-rows tr{display:grid;padding:12px 0;border-bottom:1px solid var(--line)}#audit-rows td,#management-rows td{display:flex;justify-content:space-between;gap:12px;border:0;padding:5px 0;overflow-wrap:anywhere;white-space:normal}#audit-rows td::before,#management-rows td::before{content:attr(data-label);color:var(--muted);font-weight:650;flex:none}#management-rows .form-actions{flex-wrap:wrap}#topbar-user{max-width:55%;font-size:11px}}
#view-documents > .settings-section{margin-top:32px;padding-top:25px;border-top:1px solid #E4E0EC}
.remark-table{table-layout:fixed}.remark-table th:first-child{width:84px}.remark-table th:nth-child(2){width:150px}.remark-table th:nth-child(4){width:84px}.remark-table th:last-child{width:125px}.remark-table td{overflow-wrap:anywhere}.remark-table td:first-child,.remark-table td:nth-child(4){white-space:nowrap}.remark-table .form-actions{gap:4px;padding:0;flex-wrap:nowrap}.remark-table .text-button{padding:5px;margin:0}
@media(max-width:720px){#remark-template-rows{display:block}#remark-template-rows tr{display:grid;padding:12px 0;border-bottom:1px solid #E4E0EC}#remark-template-rows td{display:flex;justify-content:space-between;gap:16px;border:0;padding:6px 0;white-space:normal;overflow-wrap:anywhere}#remark-template-rows td::before{content:attr(data-label);font-weight:650;min-width:60px;color:#6A6577}#remark-template-rows td:empty{display:none}}
#bank-account-form{margin-top:24px}
.template-options{border:0;border-top:1px solid var(--line);padding:14px 0 0;margin:4px 0 0;display:flex;flex-wrap:wrap;gap:8px 24px}.template-options legend{padding-right:12px;font-weight:650;color:var(--muted)}.template-options .check-label{min-height:32px}
.number-rule-row{display:grid;grid-template-columns:minmax(100px,1fr) minmax(120px,170px) 130px minmax(125px,1fr) auto;align-items:end;gap:14px;padding:15px 0;border-bottom:1px solid #E4E0EC}.number-rule-row strong{align-self:center}.number-rule-row .muted{align-self:center;overflow-wrap:anywhere}
@media(max-width:970px){.number-rule-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.number-rule-row strong,.number-rule-row .muted{grid-column:1/-1}.number-rule-row .muted{overflow-wrap:anywhere}.number-rule-row button{grid-column:1/-1;justify-self:start}}
@media(max-width:720px){#view-documents table{min-width:0;display:block}#view-documents thead{display:none}#bank-account-rows{display:block}#bank-account-rows tr{display:grid;border-bottom:1px solid #E4E0EC;padding:9px 0}#bank-account-rows td{display:flex;align-items:start;justify-content:space-between;gap:14px;border:0;padding:5px 0;overflow-wrap:anywhere;text-align:right}#bank-account-rows td::before{content:attr(data-label);color:#6A6577;font-weight:650;white-space:nowrap}#bank-account-rows td:first-child{font-weight:700}#bank-account-rows td:empty{display:none}}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit;letter-spacing:0}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #e98855;outline-offset:2px}[hidden]{display:none!important}
:root{--ink:#202b2d;--muted:#6A6577;--line:#E4E0EC;--surface:#fff;--bg:#f4f7f7;--teal:#075e63;--teal-dark:#43206A;--coral:#b85839;--danger:#9b3228}
h1,h2,p{margin-top:0}h1{font-size:25px;line-height:1.25;margin-bottom:6px;font-weight:700}h2{font-size:17px;line-height:1.3;margin-bottom:16px;font-weight:700}.muted{color:var(--muted)}.error{color:var(--danger)}.message{padding:11px 14px;background:#F1EAFD;color:#43206A;border-left:4px solid var(--teal);margin:0 0 18px}.message.error{background:#faece8;color:var(--danger);border-color:var(--danger)}
.primary,.secondary,.text-button{min-height:40px;border-radius:5px;padding:8px 14px;border:1px solid transparent;font-weight:650;white-space:normal}.primary{background:var(--teal);color:white}.primary:hover{background:var(--teal-dark)}.secondary{background:var(--surface);color:var(--teal);border-color:#91acac}.secondary:hover{background:#F1EAFD}.text-button{background:transparent;color:var(--teal);padding-inline:8px}.text-button:hover{text-decoration:underline}.danger{color:var(--danger)}.secondary.danger{color:var(--danger);border-color:currentColor}
label{display:flex;flex-direction:column;gap:6px;font-weight:650;color:#35494c}input:not([type=checkbox]):not([type=file]),select,textarea{display:block;width:100%;min-height:42px;padding:9px 11px;color:var(--ink);background:white;border:1px solid #D7D2E0;border-radius:4px}textarea{resize:vertical}input[type=file]{max-width:100%;font-size:13px}input[type=checkbox]{width:18px;height:18px;accent-color:var(--teal)}.check-label{flex-direction:row;align-items:center;align-self:end;min-height:42px;font-weight:500}.form-stack{display:grid;gap:17px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px}.wide,.form-actions{grid-column:1/-1}.form-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-top:8px}
.login-screen{min-height:100vh;background:linear-gradient(180deg,#1d3336 0 156px,var(--bg) 156px)}.login-head{height:156px;display:flex;align-items:flex-start;padding:30px 44px;gap:13px;color:white}.login-head strong{font-size:18px}.login-head span:last-child{color:#bcdbd9;margin-left:auto}.mark{width:38px;height:38px;display:inline-grid;place-items:center;background:#dcece9;color:var(--teal-dark);font-weight:800;font-size:13px;border-radius:4px;flex:none}.login-main{background:#fff;width:min(460px,calc(100% - 32px));margin:-43px auto 0;padding:36px;border:1px solid var(--line);border-radius:6px}.login-main>p{color:var(--muted);margin-bottom:26px}.login-main .primary{width:100%;margin-top:6px}
.login-switch{display:block;margin:18px auto 0}
.console{display:grid;grid-template-columns:226px minmax(0,1fr);min-height:100vh}.sidebar{background:#203034;color:#eaf2f0;display:flex;flex-direction:column;min-height:100vh;position:sticky;top:0;height:100vh}.brand{height:84px;padding:21px 17px;display:flex;align-items:center;gap:11px;border-bottom:1px solid #425658}.brand strong{font-size:14px;display:block}.brand small{font-size:11px;color:#a9c5c4}.sidebar nav{padding:16px 9px;display:grid;gap:2px}.sidebar nav button{height:43px;text-align:left;padding:0 15px;background:transparent;color:#cbdadb;border:0;border-radius:4px;font-weight:600}.sidebar nav button:hover{background:#31484b}.sidebar nav button.active{background:#d8e9e6;color:#114e51}.sidebar-foot{margin-top:auto;border-top:1px solid #425658;padding:17px;display:flex;align-items:center;justify-content:space-between;gap:5px}.sidebar-foot .text-button{color:#d5e9e5}.sidebar-foot span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.main-column{min-width:0}.topbar{height:64px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px;color:var(--muted)}.topbar #company-label{font-weight:700;color:var(--ink)}#menu-toggle{display:none}.content{max-width:1430px;padding:28px 34px 80px;margin:0 auto}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:23px}.page-head p{color:var(--muted);margin:5px 0 0}.page-head .secondary{flex:none}
.view{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:23px 25px;min-height:310px}.section-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:15px}.section-toolbar h2{margin:0}.section-toolbar label{flex-direction:row;align-items:center}.section-toolbar select{width:auto;min-width:130px}.filter-row{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:18px}.search-label{width:min(340px,100%)}.table-scroll{max-width:100%;overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;min-width:680px}th{font-size:12px;color:var(--muted);font-weight:650;background:#F7F5FB;border-bottom:1px solid var(--line);padding:11px 12px;white-space:nowrap}td{padding:13px 12px;border-bottom:1px solid #EFECF4;vertical-align:middle}tbody tr:hover{background:#FAF8FD}td small{display:block;color:var(--muted)}td button{margin-right:5px}td select{min-width:100px;width:auto}td .text-button{min-height:32px}.tag{display:inline-block;padding:3px 7px;background:#F1EAFD;color:#245659;border-radius:3px;font-size:12px;font-weight:650}.tag.waiting{background:#fff0e8;color:#955137}.tag.off{background:#edf0f0;color:#5b6d70}.editor-band{margin-top:27px;padding-top:22px;border-top:2px solid var(--line)}.editor-band h2{margin:0 0 10px}.editor-band .section-toolbar h2{margin:0}.editor-band p{white-space:pre-wrap}.list-rows{border-top:1px solid var(--line)}.list-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:18px;border:0;border-bottom:1px solid var(--line);padding:13px 2px;background:transparent;text-align:left;color:var(--ink)}button.list-row:hover{background:#FAF8FD}.list-row strong{font-weight:650}.list-row small{color:var(--muted);white-space:nowrap}.empty{color:var(--muted);padding:18px 0}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-bottom:1px solid var(--line);margin:-5px 0 28px}.metric{padding:8px 18px 24px;border-right:1px solid var(--line)}.metric:first-child{padding-left:0}.metric:last-child{border-right:0}.metric strong{font-size:28px;display:block;line-height:1.2}.metric span{color:var(--muted)}.overview-grid,.two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}.subheading{margin-top:32px}.settings-section{padding:4px 0 25px;margin-bottom:25px;border-bottom:1px solid var(--line)}.settings-section h2{margin-bottom:18px}#seal-status{align-self:center}#audit-more{margin-top:18px}#request-detail dl{display:grid;grid-template-columns:125px minmax(0,1fr);gap:10px 16px}#request-detail dt{color:var(--muted)}#request-detail dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}dialog{border:1px solid var(--line);border-radius:7px;max-width:min(480px,calc(100% - 24px));padding:25px;box-shadow:0 20px 55px #18393a30}dialog::backdrop{background:#102a2e80}dialog output{display:block;padding:12px;background:#F6F4F9;word-break:break-all;font-family:ui-monospace,monospace}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}
@media(max-width:970px){.console{grid-template-columns:180px minmax(0,1fr)}.content{padding:22px}.sidebar .brand{padding-inline:10px}.brand strong{font-size:12px}.view{padding:20px}.overview-grid,.two-column{gap:20px}}
@media(max-width:720px){.console{display:block}.sidebar{position:fixed;z-index:5;width:240px;left:-240px;transition:left .2s ease}.sidebar.open{left:0}.topbar{padding:0 16px;gap:10px}.topbar #company-label{flex:1}#menu-toggle{display:block}.content{padding:18px 12px 64px}.page-head{align-items:center}.page-head h1{font-size:22px}.page-head p{font-size:12px}.view{padding:16px;min-height:200px}.metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.metric{padding:0 9px 18px}.metric strong{font-size:22px}.metric span{font-size:11px}.overview-grid,.two-column,.form-grid{grid-template-columns:1fr}.wide,.form-actions{grid-column:1}.login-head{padding:28px 16px}.login-head span:last-child{display:none}.login-main{padding:24px}.filter-row{align-items:stretch;flex-direction:column}.search-label{width:100%}#request-detail dl{grid-template-columns:1fr;gap:3px}#request-detail dd{margin-bottom:10px}#view-permissions table{min-width:0;display:block}#view-permissions thead{display:none}#view-permissions tbody{display:grid;gap:18px}#view-permissions tr{display:grid;border-bottom:1px solid var(--line);padding-bottom:12px}#view-permissions td{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;padding:8px 0;border:0}#view-permissions td::before{content:attr(data-label);color:var(--muted);font-weight:600}#view-permissions td:first-child{border-bottom:1px solid var(--line);margin-bottom:4px;font-weight:700}#view-permissions td:first-child::before{display:none}#view-permissions td select{width:150px;min-width:0}#view-permissions td input[type=checkbox]{margin-right:8px}}
@media(max-width:720px){#approval-rule-rows{display:block}#approval-rule-rows tr{display:grid;padding:12px 0;border-bottom:1px solid var(--line)}#approval-rule-rows td{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:start;gap:12px;border:0;padding:6px 0;overflow-wrap:anywhere;text-align:right}#approval-rule-rows td::before{content:attr(data-label);color:var(--muted);font-weight:650;text-align:left}#approval-rule-rows td:empty{display:none}#approval-rule-rows .row-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px}#approval-rule-rows .row-actions button{margin:0}}
.payment-entry{padding:18px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.payment-entry p{margin:8px 0}.payment-void-form{display:flex;align-items:end;gap:12px;margin-top:14px}.payment-void-form label{flex:1;max-width:480px}#payment-more{margin-top:18px}#payment-invoice-rows td{overflow-wrap:anywhere}#payment-invoice-rows td:nth-child(n+3):nth-child(-n+5){white-space:nowrap;font-variant-numeric:tabular-nums}
@media(max-width:720px){#view-payments table,#payment-invoice-rows{display:block;min-width:0}#view-payments thead{display:none}#payment-invoice-rows tr{display:grid;padding:12px 0;border-bottom:1px solid var(--line)}#payment-invoice-rows td{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border:0;white-space:normal!important}#payment-invoice-rows td::before{content:attr(data-label);color:var(--muted);font-weight:650;min-width:60px}#payment-invoice-rows td:first-child{text-align:right}#payment-invoice-rows td:empty{display:none}.payment-void-form{flex-direction:column;align-items:stretch}.payment-void-form label{max-width:none}#payment-balances{grid-template-columns:1fr;margin-top:20px}#payment-balances .metric{padding:10px 0;border-right:0}}
#payment-detail h2.subheading{margin:28px 0 16px}#payment-title{min-width:0;overflow-wrap:anywhere}#payment-close{flex-shrink:0;min-width:66px}
@media(prefers-reduced-motion:reduce){.sidebar{transition:none}}
.payment-receipt{margin-top:14px}.payment-receipt summary{color:var(--teal);font-weight:650;cursor:pointer;min-height:44px;padding:10px 0}.payment-receipt .form-grid{padding:12px 0;max-width:760px}
.notice-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:24px;flex-wrap:wrap}.notice-tabs button{background:transparent;color:var(--muted);border:0;border-bottom:3px solid transparent;border-radius:0;min-height:48px}.notice-tabs button[aria-selected=true]{color:var(--teal);border-bottom-color:var(--teal)}.notice-compose{max-width:800px}.notice-files{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}fieldset{border:1px solid var(--line);border-radius:4px;padding:12px}#department-managers{display:grid;gap:8px}
.approval-people{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:16px;margin-top:16px}.approval-people fieldset{min-width:0;padding:16px;border:1px solid var(--border,#b7c9ce);border-radius:4px}.approval-person-list{max-height:260px;overflow:auto;margin-top:12px}.approval-person{padding:8px 0;align-items:flex-start}.approval-people [hidden]{display:none}
 .weekday-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)); gap: 8px; }
 .weekday-grid .check-label { display: flex; flex-direction: row; justify-content: flex-start; align-items: center; min-height: 44px; gap: 8px; }
 #attendance-rule-history .list-row { display: block; padding: 16px 0; }
.setup-history{margin:16px 0}.setup-history .list-row{display:block;padding:16px 0;overflow-wrap:anywhere}.setup-history p{margin:6px 0}.planned-breaks{display:grid;gap:12px;margin:12px 0}.planned-break-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px;align-items:end;gap:12px}.planned-break-row button{min-width:44px;min-height:44px}.sidebar nav{overflow-y:auto;min-height:0}#view-contracts form{margin-top:24px}#view-contracts fieldset,#view-roster fieldset{min-width:0}#view-contracts [hidden],#view-roster [hidden]{display:none}#view-contracts input,#view-roster input{font-size:16px}#view-contracts h3,#view-roster h3{font-size:16px}#contract-break-add,#roster-break-add{min-height:44px}
.source-approval { width: 100%; min-width: 0; }
.source-approval > div { padding-top: 16px; }
.source-approval .check-label { align-items: flex-start; }
.payroll-evidence { min-width: 0; padding-block: 16px; border-bottom: 1px solid var(--line); }
.evidence-entry { padding-block: 16px; }
.evidence-entry h4 { margin: 0 0 12px; font-size: 14px; }
#payroll-annual-panel{min-width:0;border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:20px;overflow-wrap:anywhere}
#payroll-archive-panel{min-width:0;border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:20px;overflow-wrap:anywhere}
#payroll-archive-panel>summary,#payroll-archive-result .archive-item>summary{min-height:44px;padding:10px 0;color:var(--teal);font-weight:650;cursor:pointer}
#payroll-archive-result .archive-item{border-top:1px solid var(--line);padding:4px 0 14px}
#payroll-archive-result .archive-item p{margin:8px 0;line-height:1.5}
#payroll-archive-result .list-row{flex-wrap:wrap}
#payroll-archive-result .list-row>span{min-width:0;overflow-wrap:anywhere}
#payroll-archive-panel button{min-height:44px}
#employee-ledger-identity-panel{min-width:0;overflow-wrap:anywhere}
#employee-ledger-identity-panel .ledger-identity-version{border-bottom:1px solid var(--line);padding:6px 0}
#employee-ledger-identity-panel .ledger-identity-version>summary{min-height:44px;padding:10px 0;color:var(--teal);font-weight:650;cursor:pointer}
#employee-ledger-identity-panel .ledger-identity-version p{margin:8px 0}
#payroll-annual-result .annual-deduction-overview{margin:24px 0 28px}
#payroll-annual-result .annual-deduction-overview .section-toolbar h3{margin:0}
#payroll-annual-result .annual-deduction-overview table{min-width:0}
#payroll-annual-result .annual-prior-summary{margin:24px 0 16px;padding-top:20px;border-top:1px solid var(--line)}
#payroll-annual-result .annual-prior-summary h3{margin:0 0 10px}
#payroll-annual-result .annual-prior-entries{display:grid;gap:12px}
#payroll-annual-result .annual-prior-entry{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0}
#payroll-annual-result .annual-prior-entry legend{font-weight:650}
#payroll-annual-result .annual-prior-entry button{justify-self:start}
#payroll-annual-result .annual-prior-panel form>button{justify-self:start;width:auto}
#payroll-annual-result .annual-prior-entries[hidden],#payroll-annual-result .annual-prior-panel [hidden]{display:none}
#payroll-annual-result .annual-bonus-summary{margin:24px 0 16px;padding-top:20px;border-top:1px solid var(--line)}
#payroll-annual-result .annual-bonus-summary h3{margin:0 0 10px}
#payroll-annual-result .annual-bonus-entries{display:grid;gap:12px}
#payroll-annual-result .annual-bonus-entry{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0}
#payroll-annual-result .annual-bonus-entry legend{font-weight:650}
#payroll-annual-result .annual-bonus-entry button,#payroll-annual-result .annual-bonus-panel form>button{justify-self:start;width:auto}
#payroll-annual-result .annual-bonus-payments{display:grid;gap:10px;border-top:1px solid var(--line);padding-top:12px}
#payroll-annual-result .annual-bonus-payment-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:end;gap:10px;min-width:0}
#payroll-annual-result .annual-bonus-payment-row label{min-width:0}
#payroll-annual-result .annual-source-checklist{margin:20px 0 26px;border-top:1px solid var(--line);padding-top:18px}
#payroll-annual-result .annual-source-checklist h3{font-size:16px;margin:0 0 10px}
#payroll-annual-result .annual-source-checklist .list-row{display:grid;grid-template-columns:minmax(150px,220px) minmax(0,1fr);gap:12px;align-items:start}
#payroll-annual-result .annual-source-checklist .list-row span{min-width:0;overflow-wrap:anywhere}
#payroll-annual-result .annual-source-checklist p{margin:12px 0 0}
#payroll-annual-panel>summary{min-height:44px;padding:10px 0;color:var(--teal);font-weight:650;cursor:pointer}
#payroll-annual-filter{padding:16px 0}#payroll-annual-filter select{font-size:16px;max-width:100%}
#payroll-annual-panel button{min-height:44px}#payroll-annual-result h2{font-size:18px;margin:0 0 12px}
@media(max-width:720px){#payroll-annual-result tbody{display:block}#payroll-annual-result tr{display:grid;padding:12px 0;border-bottom:1px solid var(--line)}#payroll-annual-result td{display:flex;justify-content:space-between;gap:12px;min-width:0;border:0;padding:6px 0;text-align:right;overflow-wrap:anywhere}#payroll-annual-result td::before{content:attr(data-label);color:var(--muted);font-weight:650;flex:none;max-width:45%;text-align:left}}
@media(max-width:720px){#payroll-annual-result .annual-deduction-overview thead{display:none}#payroll-annual-result .annual-deduction-overview table{display:block;width:100%}#payroll-annual-result .annual-deduction-overview .section-toolbar{flex-wrap:wrap}}
@media(max-width:720px){#payroll-annual-result .annual-prior-entry{grid-template-columns:minmax(0,1fr)}}
@media(max-width:720px){#payroll-annual-result .annual-bonus-entry{grid-template-columns:minmax(0,1fr)}}
@media(max-width:720px){#payroll-annual-result .annual-bonus-payment-row{grid-template-columns:minmax(0,1fr)}}
@media(max-width:720px){#payroll-annual-result .annual-source-checklist .list-row{grid-template-columns:minmax(0,1fr);gap:2px}}
.payroll-salary-change{margin-top:16px;border-top:1px solid var(--line);padding-top:8px}.payroll-salary-change>summary{min-height:44px;padding:10px 0;color:var(--teal);font-weight:650;cursor:pointer}.payroll-salary-change>.form-grid{padding:12px 0}.payroll-salary-change label{min-width:0}.payroll-salary-change p{margin:8px 0 0}
#payroll-calculation-counts{margin:8px 0 14px}#payroll-rows td:nth-child(3){min-width:220px}#payroll-rows td:nth-child(3)>div{min-width:0;overflow-wrap:anywhere}#payroll-rows td:nth-child(3) p{margin:5px 0}.payroll-calculation-details{margin-top:8px}.payroll-calculation-details>summary{color:var(--teal);font-weight:650;cursor:pointer;padding:6px 0}.payroll-calculation-amounts{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 12px;margin:8px 0}.payroll-calculation-amounts dt{color:var(--muted)}.payroll-calculation-amounts dd{margin:0;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
#payroll-calculation-counts{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;min-height:44px}.payroll-count{font-weight:650;color:var(--ink,#25373b)}.payroll-count-stale{color:#9b382b}.payroll-count-unsupported{color:#755329}.payroll-count-note{flex-basis:100%;color:var(--muted)}#payroll-rows .row-actions button{min-height:44px}#payroll-preclose{margin-top:28px;border-top:1px solid var(--line);padding-top:20px}
#payroll-period{margin-top:28px}#view-payroll>.subheading{margin-top:20px}
#company-label,#menu-toggle{white-space:nowrap}
#menu-toggle{flex:none}
@media(max-width:720px){#payroll-rows td:nth-child(3){min-width:0}#payroll-rows td:nth-child(3)>div{max-width:65%;text-align:right}#payroll-rows .payroll-calculation-amounts{text-align:left}#payroll-rows .payroll-calculation-amounts dt{overflow-wrap:anywhere}}
.payroll-workflow-intro{padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:20px}
.payroll-workflow-intro>strong{display:block;font-size:16px;margin-bottom:4px}
.payroll-workflow-intro>p{margin:0;color:var(--muted)}
.payroll-workflow-intro>button{margin-top:12px;min-height:44px}
.payroll-workflow-intro>button[hidden]{display:none}
.payroll-workflow-intro .filter-row{margin-bottom:10px}
.payroll-next-step{border-left:4px solid var(--teal);background:#F4EFFB;padding:14px 16px;margin-top:16px;display:flex;align-items:center;gap:12px 18px;flex-wrap:wrap}
.payroll-next-step:empty{display:none}
.payroll-next-step strong{font-size:14px}
.payroll-next-step p{margin:0;flex:1 1 320px;min-width:0}
.payroll-next-step button{min-height:44px;flex:none}
.payroll-scope-prerequisite{border-left:3px solid #a06c2f;padding:8px 0 8px 14px;margin:14px 0;color:var(--ink)}
.payroll-scope-prerequisite p{margin:0 0 10px}
.payroll-issue-list{list-style:none;margin:10px 0 18px;padding:0;border-top:1px solid var(--line)}
.payroll-issue-item{display:flex;align-items:center;justify-content:space-between;gap:10px 20px;padding:8px 0;border-bottom:1px solid var(--line)}
.payroll-issue-item>span{min-width:0;overflow-wrap:anywhere}
.payroll-issue-item button{flex:none;min-height:44px}
.payroll-issue-group{display:block}
.payroll-issue-affected{list-style:none;margin:8px 0 0;padding:0 0 0 16px;max-height:320px;overflow-y:auto}
.payroll-issue-affected .payroll-issue-item:last-child{border-bottom:0}
.payroll-workflow-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-bottom:1px solid var(--line);margin-bottom:22px;gap:0}
.payroll-workflow-tabs button{min-width:0;min-height:50px;padding:10px 12px;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--muted);font:inherit;font-weight:650;text-align:left;cursor:pointer}
.payroll-workflow-tabs button[aria-selected="true"]{color:var(--teal-dark);border-bottom-color:var(--teal);background:#F4EFFB}
.payroll-workflow-tabs button:hover{color:var(--teal-dark);background:#FAF8FD}
.payroll-workflow-tabs button:focus-visible{outline:2px solid var(--teal);outline-offset:-2px}
.payroll-workflow-panel[hidden],.payroll-settings-step[hidden]{display:none!important}
.payroll-workflow-panel{min-width:0}
.payroll-workflow-panel>.subheading{margin:0 0 12px}
.payroll-settings-step{min-width:0;gap:18px}
.payroll-settings-step>fieldset{margin:0}
.payroll-settings-step>.form-actions{margin-top:4px}
.payroll-secondary-section{border-top:1px solid var(--line);padding:9px 0;margin-top:20px;min-width:0}
.payroll-secondary-section>summary{min-height:44px;padding:10px 0;color:var(--teal-dark);font-weight:650;cursor:pointer}
.payroll-secondary-section>section{margin-top:12px}
#payroll-settings-reference .editor-band{border:0;border-top:1px solid var(--line);border-radius:0;margin:18px 0 0;padding:20px 0}
#payroll-settings-form{display:block}
#payroll-settings-form .payroll-workflow-tabs{margin-bottom:20px}
#payroll-period{border:0;margin:0;padding:0 0 12px}
#payroll-preclose{margin-top:0;border-top:0;padding-top:0}
.payroll-review-progress{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:20px 0 16px;padding:0}
.payroll-review-progress li{min-width:0;border-top:3px solid var(--line);padding:10px 4px;color:var(--muted);font-weight:650}
.payroll-review-progress li.is-done{border-top-color:var(--teal);color:var(--teal-dark)}
.payroll-review-stage{border-top:1px solid var(--line);padding:4px 0;min-width:0}
.payroll-review-stage>summary{min-height:48px;padding:12px 4px;cursor:pointer;color:var(--teal-dark)}
.payroll-review-stage>summary strong{font-size:14px}
.payroll-review-stage>summary span{float:right;color:var(--danger);font-size:13px;font-weight:650}
.payroll-review-stage>summary span.is-done{color:var(--teal)}
.payroll-review-stage>section{padding:10px 4px 22px;min-width:0}
@media(max-width:720px){.payroll-review-progress{grid-template-columns:repeat(2,minmax(0,1fr))}.payroll-review-stage>summary span{margin-left:8px}}
@media(max-width:720px){.payroll-workflow-tabs button{font-size:12px;padding:10px 7px;text-align:center}.payroll-next-step{display:block}.payroll-next-step p{margin:5px 0 12px}.payroll-next-step button{width:100%}.payroll-settings-step{grid-template-columns:minmax(0,1fr)}.payroll-issue-item{display:block}.payroll-issue-item button{margin-top:6px}}

.wage-ledger-wrap{overflow-x:auto;max-width:100%}.wage-ledger-wrap table{min-width:640px}.wage-ledger-wrap td,.wage-ledger-wrap th{white-space:nowrap;font-size:12px}
@media(max-width:720px){#view-payroll .wage-ledger-wrap table{display:table;min-width:640px}#view-payroll .wage-ledger-wrap thead{display:table-header-group}}
.wage-ledger-wrap td+td{text-align:right}

/* ===== 2026-09 デザイン刷新：浅色の作業面＋深色サイドバー＋プラム色の上部帯 ===== */
:root{--ink:#1E1B26;--muted:#6A6577;--line:#E4E0EC;--surface:#FFFFFF;--bg:#F6F4F9;--teal:#5B2E86;--teal-dark:#43206A;
  --coral:#B85839;--danger:#B23A48;--plum-a:#3A1D55;--plum-b:#1C1428;--side:#1C1428;--side-line:#2E2440;--side-hover:#2A2038;--side-fg:#D9D4E4;--side-muted:#8E879E;
  --accent:#C9B2F7;--accent-soft:#F1EAFD;--go:#2F8A66;--go-soft:#E3F4EC;--warn:#A86A12;--warn-soft:#FBF0DD;
  --radius:12px;--shadow:0 1px 2px rgba(30,20,50,.06),0 8px 24px -16px rgba(30,20,50,.25);
  font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic",Meiryo,system-ui,sans-serif;color:var(--ink);background:var(--bg)}
body{background:var(--bg);color:var(--ink)}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
h1{font-size:26px;letter-spacing:.01em}h2{font-size:17px}
/* ボタン：丸いピル型 */
.primary,.secondary,.text-button{border-radius:999px;padding:8px 18px;min-height:40px;transition:background .15s,border-color .15s,color .15s}
.primary{background:var(--teal);color:#fff;box-shadow:0 6px 14px -8px rgba(91,46,134,.8)}.primary:hover{background:var(--teal-dark)}
.secondary{background:var(--surface);color:var(--teal);border-color:#D6CBE8}.secondary:hover{background:var(--accent-soft);border-color:#BFA8E6}
.text-button{color:var(--teal)}
/* 入力 */
label{color:#3A3546}
input:not([type=checkbox]):not([type=file]),select,textarea{border:1px solid #D7D2E0;border-radius:10px;background:#fff;color:var(--ink)}
input:not([type=checkbox]):not([type=file]):hover,select:hover,textarea:hover{border-color:#BBA9D9}
input[type=checkbox]{accent-color:var(--teal)}
.message{background:var(--accent-soft);color:var(--teal-dark);border-left:0;border-radius:10px;border:1px solid #DCCCF5}
.message.error{background:#FBEAEC;color:var(--danger);border-color:#F1C4CA}
/* ログイン */
.login-screen{background:radial-gradient(1200px 400px at 20% -10%,#5A2D80 0,transparent 60%),linear-gradient(160deg,var(--plum-a),var(--plum-b) 55%,#0F0C16);min-height:100vh}
.login-head{height:auto;padding:36px 44px 90px;color:#fff}.login-head span:last-child{color:var(--accent)}
.mark{border-radius:12px;background:linear-gradient(135deg,var(--accent),#7B4FC0);color:var(--plum-b);font-weight:900;width:40px;height:40px}
.login-main{border:0;border-radius:20px;box-shadow:0 30px 60px -30px rgba(0,0,0,.6);margin-top:-60px;padding:36px}
.login-main .primary{min-height:46px}
/* サイドバー */
.sidebar{background:linear-gradient(180deg,var(--plum-a) 0,var(--side) 420px);background-color:var(--side);color:var(--side-fg)}
.brand{border-bottom:1px solid var(--side-line)}.brand small{color:var(--side-muted)}
.sidebar .nav-group{color:var(--side-muted);border-top-color:var(--side-line);letter-spacing:.08em}
.sidebar nav button{color:var(--side-fg);border-radius:10px;height:40px}
.sidebar nav button:hover,.sidebar nav button:not(.active):hover{background:var(--side-hover);color:#fff}
.sidebar nav button.active{background:var(--nav-active);color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}
.sidebar-foot{border-top-color:var(--side-line)}.sidebar-foot .text-button{color:var(--accent)}
/* 上部帯 */
.topbar{background:linear-gradient(120deg,var(--plum-a),var(--plum-b));border-bottom:0;color:#CFC6DF;height:64px}
.topbar #company-label{color:#fff;font-size:15px}
#menu-toggle{color:#fff;border-color:#ffffff40;background:transparent}
.content{padding-top:30px}
.page-head h1{font-weight:800}
/* 画面の本体カード */
.view{border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:26px 28px}
.metrics{gap:12px;border-bottom:0;margin:0 0 26px}
.metric,.metric:first-child{background:#FAF8FD;border:1px solid var(--line);border-radius:14px;padding:16px 18px}
.metric:last-child{border-right:1px solid var(--line)}
.metric strong{font-size:30px;font-variant-numeric:tabular-nums;color:var(--ink)}
/* 表 */
table{border-collapse:separate;border-spacing:0}
th{background:#F7F5FB;color:var(--muted);border-bottom:1px solid var(--line);letter-spacing:.04em}
th:first-child{border-top-left-radius:10px}th:last-child{border-top-right-radius:10px}
td{border-bottom:1px solid #EFECF4}tbody tr:hover{background:#FAF8FD}
/* 状態ラベル：ピル */
.tag{border-radius:999px;padding:3px 10px;background:var(--go-soft);color:#1F6B4E}
.tag.waiting{background:var(--warn-soft);color:var(--warn)}.tag.off{background:#EFEDF3;color:#6A6577}
/* 一覧・折りたたみ */
.list-row{border-bottom-color:#EFECF4;border-radius:0}button.list-row:hover{background:#FAF8FD}
details>summary{cursor:pointer}
.view details>summary{color:var(--ink)}
.view details[open]>summary{color:var(--teal)}
dialog{border:0;border-radius:18px;box-shadow:0 30px 70px -20px rgba(28,20,40,.45)}dialog::backdrop{background:rgba(20,14,30,.55)}
dialog output{background:#F6F4F9;border-radius:10px}
.notice-tabs button{border-radius:999px 999px 0 0}
.brand strong{white-space:nowrap;font-size:13px}
@media(max-width:720px){.metrics{gap:8px}.metric,.metric:first-child{padding:12px}.metric span{line-height:1.4}.view{border-radius:16px}}
input::placeholder,textarea::placeholder{color:#A59FB2}

/* テーマ色（利用者がこのブラウザで選ぶ。既定はプラム） */
:root{--nav-active:#2E2240;--focus:#9B6BDA}
:root[data-accent="ocean"]{--teal:#1F5FA8;--teal-dark:#174A84;--plum-a:#16345C;--plum-b:#0E1726;--accent:#9CC7F2;--accent-soft:#E6F0FB;--nav-active:#1C2E47;--focus:#5E9BDB;--side:#0F1E33;--side-line:#1F3350;--side-hover:#1A2D47}
:root[data-accent="teal"]{--teal:#0B6E6E;--teal-dark:#085454;--plum-a:#0E3F42;--plum-b:#0B1A1C;--accent:#7FD6CF;--accent-soft:#E2F4F2;--nav-active:#173437;--focus:#3FA9A2;--side:#0C2224;--side-line:#1C3A3D;--side-hover:#173436}
:root[data-accent="forest"]{--teal:#2F7A4C;--teal-dark:#235E3A;--plum-a:#1C4430;--plum-b:#0F1A14;--accent:#93D8AE;--accent-soft:#E5F4EA;--nav-active:#1E3527;--focus:#4FAE75;--side:#10211A;--side-line:#1F3A2C;--side-hover:#1A3226}
:root[data-accent="sunset"]{--teal:#B4532A;--teal-dark:#8E3F1E;--plum-a:#5A2616;--plum-b:#1F120D;--accent:#F4B28E;--accent-soft:#FBEBE2;--nav-active:#3F2419;--focus:#D97B4F;--side:#24150F;--side-line:#3E271C;--side-hover:#362117}
:root[data-accent="rose"]{--teal:#A83262;--teal-dark:#86264D;--plum-a:#52182F;--plum-b:#1E0F16;--accent:#F2A7C4;--accent-soft:#FBE7EF;--nav-active:#3B1A28;--focus:#D1638F;--side:#22111A;--side-line:#3D1F2D;--side-hover:#351A27}
:root[data-accent="graphite"]{--teal:#3D4452;--teal-dark:#2C323D;--plum-a:#2A2F3A;--plum-b:#121418;--accent:#C3C9D6;--accent-soft:#ECEEF2;--nav-active:#2B303A;--focus:#7F8899;--side:#16181D;--side-line:#2A2E36;--side-hover:#23262E}
.mark{background:linear-gradient(135deg,var(--accent),var(--teal))}
.primary{box-shadow:0 6px 14px -8px var(--teal)}
.secondary{border-color:color-mix(in srgb,var(--teal) 25%,#fff)}.secondary:hover{border-color:color-mix(in srgb,var(--teal) 45%,#fff)}
.view details[open]>summary{color:var(--teal)}
.accent-picker{position:relative;display:flex;align-items:center;margin-left:auto;margin-right:14px}
.accent-toggle{width:36px;height:36px;min-height:36px;padding:0;border-radius:50%;border:2px solid #ffffff55;background:#ffffff1a;display:grid;place-items:center;cursor:pointer}
.accent-toggle:hover{border-color:#ffffffaa}.accent-toggle[aria-expanded="true"]{border-color:#fff}
.accent-dot{width:20px;height:20px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--teal));border:0;flex:none}
.accent-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:30;display:grid;grid-template-columns:repeat(4,40px);gap:8px;padding:12px;border-radius:14px;background:#fff;box-shadow:0 12px 32px -8px rgba(20,15,30,.35);border:1px solid var(--line)}
.accent-menu[hidden]{display:none}
.accent-swatch{width:40px;height:40px;min-height:40px;padding:0;border-radius:50%;border:2px solid transparent;background:transparent;display:grid;place-items:center;cursor:pointer}
.accent-swatch:hover{border-color:var(--line)}.accent-swatch[aria-checked="true"]{border-color:var(--ink)}
.accent-swatch:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.accent-chip{width:28px;height:28px;border-radius:50%;display:block}
.accent-chip-graphite{background:linear-gradient(135deg,#C3C9D6,#2A2F3A)}.accent-chip-plum{background:linear-gradient(135deg,#C9B2F7,#3A1D55)}
.accent-chip-ocean{background:linear-gradient(135deg,#9CC7F2,#16345C)}.accent-chip-teal{background:linear-gradient(135deg,#7FD6CF,#0E3F42)}
.accent-chip-forest{background:linear-gradient(135deg,#93D8AE,#1C4430)}.accent-chip-sunset{background:linear-gradient(135deg,#F4B28E,#5A2616)}
.accent-chip-rose{background:linear-gradient(135deg,#F2A7C4,#52182F)}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media(max-width:720px){.accent-picker{margin-right:6px}#topbar-user{display:none}}
.policy-kinds{display:flex;flex-wrap:wrap;gap:4px 22px}.policy-kinds .check-label{min-height:36px}#request-policy-panel>summary{font-weight:650;min-height:44px;padding:10px 0;cursor:pointer}
.request-context{border-top:1px solid var(--line);margin-top:12px;padding-top:12px}.request-context h3{margin:0 0 8px}
#request-delegation-panel>summary{font-weight:650;min-height:44px;padding:10px 0;cursor:pointer}
.residence-expiry{margin:0 0 18px;padding-top:0;border-top:0}.residence-expiry>summary{font-weight:650;min-height:44px;padding:10px 0;cursor:pointer}
.residence-expiry td{min-width:92px}.residence-expiry td:last-child{min-width:280px}.residence-expiry td:nth-child(3),.residence-expiry .tag{white-space:nowrap}.residence-expiry table{min-width:980px}
@media(max-width:720px){#view-employees .residence-expiry table{display:table;min-width:980px}#view-employees .residence-expiry thead{display:table-header-group}}

/* ===== 第29項：ホーム（今日の対応・よく使う画面） ===== */
.home-heading{font-size:16px;margin:0 0 12px}
.home-setup{border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:14px 18px;margin-bottom:24px}
.home-setup summary{font-weight:700;cursor:pointer}
.home-setup-items{display:grid;gap:6px;margin-top:10px}
.home-setup-item{display:flex;align-items:center;gap:10px;flex-wrap:wrap;text-align:left;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--ink);font-weight:400;box-shadow:none}
.home-setup-item:hover{border-color:var(--teal);background:var(--accent-soft)}
.home-setup-item .setup-mark{font-weight:700;color:var(--muted);min-width:3.5em}.home-setup-item.done .setup-mark{color:var(--teal)}
.home-setup-item small{color:var(--muted)}
.home-tasks{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:30px}
.home-task{display:grid;gap:4px;text-align:left;align-content:start;min-height:118px;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);font-weight:400;box-shadow:none}
.home-task:hover{border-color:var(--teal);background:var(--accent-soft)}
.home-task-label{font-weight:700;color:var(--ink)}
.home-task-count{font-size:30px;line-height:1.15;font-variant-numeric:tabular-nums;color:var(--teal)}
.home-task small{color:var(--muted);line-height:1.45}
.home-task.urgent{border-color:#E7B4AD;background:#FDF3F1}.home-task.urgent .home-task-count{color:var(--danger)}
.home-task.done .home-task-count{color:var(--muted)}
.home-shortcuts{margin-top:30px;padding-top:22px;border-top:1px solid var(--line)}
.shortcut-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.shortcut{display:grid;gap:2px;text-align:left;padding:12px 16px;min-height:64px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--teal);font-weight:400;box-shadow:none}
.shortcut:hover{background:var(--accent-soft)}.shortcut strong{font-weight:700}.shortcut small{color:var(--muted)}
.list-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
@media(max-width:720px){.home-tasks{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.home-task{min-height:104px;padding:12px}.home-task-count{font-size:24px}.shortcut-grid{grid-template-columns:1fr}}
.home-tasks{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
.home-task.done{min-height:0;background:#FAF9FC}.home-task.done .home-task-count{font-size:20px}
.sidebar .nav-group{margin:14px 12px 4px;padding-top:10px}
@media(min-width:721px){.sidebar nav button{height:38px}}
@media(max-width:720px){.home-tasks{grid-template-columns:repeat(2,minmax(0,1fr))}.home-task.done{min-height:0}}
/* 第29項：共通の状態表示・読み上げ */
.tag.waiting{color:#7A4A06}
.page-actions{display:flex;align-items:center;gap:12px}
.loading-indicator{color:var(--muted);font-size:13px}
.loading-indicator::before{content:"";display:inline-block;width:12px;height:12px;margin-right:6px;vertical-align:-1px;border:2px solid var(--line);border-top-color:var(--teal);border-radius:50%;animation:cw-spin .8s linear infinite}
@keyframes cw-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.loading-indicator::before{animation:none}}
#message{position:sticky;top:8px;z-index:4;box-shadow:0 8px 20px -14px rgba(30,27,38,.45)}
.view[aria-busy="true"]{opacity:.7;transition:opacity .15s}
.table-scroll:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.dialog-message{white-space:pre-wrap;font-weight:650;margin:0}
#text-dialog{width:min(520px,calc(100% - 24px))}
@media(max-width:720px){.page-actions{gap:8px}.loading-indicator{font-size:12px}}
.table-scroll{position:relative}

.invite-dialog{max-width:min(520px,95vw)}.invite-qr svg{width:220px;height:220px;display:block;margin:12px 0}.invite-url{word-break:break-all;font-size:13px}#print-area{display:none}
#invite-panel h3{font-size:16px;margin:24px 0 8px}#import-result .list-row,#invite-list .list-row{flex-wrap:wrap}
@media print{body>*:not(#print-area){display:none!important}#print-area{display:block!important;color:#000}.invite-sheet{page-break-after:always;padding:24px;font-size:14px;line-height:1.6}.invite-sheet:last-child{page-break-after:auto}.invite-sheet h1{font-size:22px;margin:0 0 12px}.invite-sheet svg{width:240px;height:240px;display:block;margin:16px 0}.invite-sheet .url{word-break:break-all;font-size:11px}.invite-sheet .sheet-code{font-size:20px;font-weight:700;margin:8px 0}}
@media(max-width:720px){table:has(#request-rows),table:has(#expense-pending-rows),#request-rows,#expense-pending-rows{display:block;min-width:0}table:has(#request-rows) thead,table:has(#expense-pending-rows) thead{display:none}#request-rows tr,#expense-pending-rows tr{display:grid;padding:12px 0;border-bottom:1px solid var(--line)}#request-rows td,#expense-pending-rows td{display:flex;justify-content:space-between;gap:12px;border:0;padding:5px 0;text-align:right;overflow-wrap:anywhere}#request-rows td::before,#expense-pending-rows td::before{content:attr(data-label);font-weight:650;color:var(--muted);flex:none;text-align:left}#request-rows td:empty,#expense-pending-rows td:empty{display:none}}
@media(max-width:720px){.sidebar:not(.open){visibility:hidden;transition:left .2s ease,visibility 0s linear .2s}}
@media(max-width:720px){#request-rows .empty-row td,#expense-pending-rows .empty-row td{justify-content:flex-start;text-align:left;color:var(--muted)}}

/* Tickwork のマーク（ロゴ）。会社ごとのテーマ色に関係なく石墨色の角丸に置く。 */
.mark{background:linear-gradient(180deg,#262A33,#121419);color:transparent;padding:7px;border-radius:24%;overflow:visible}
.mark svg{width:100%;height:100%;display:block}
.tw-orbit{transform-box:view-box;transform-origin:512px 512px;animation:tw-orbit 2.3s both}
.tw-draw{animation:tw-draw 2.3s both}
.tw-dot{transform-box:fill-box;transform-origin:center;animation:tw-flash 2.3s both}
.tw-halo{transform-box:fill-box;transform-origin:center;opacity:0;animation:tw-halo 2.3s both}
.tw-loop{animation:tw-fade 2.3s infinite}
.tw-loop .tw-orbit,.tw-loop .tw-draw,.tw-loop .tw-dot,.tw-loop .tw-halo{animation-iteration-count:infinite}
@keyframes tw-orbit{0%{transform:rotate(46deg);animation-timing-function:cubic-bezier(.55,0,.35,1)}52%,100%{transform:rotate(360deg)}}
@keyframes tw-draw{0%{stroke-dashoffset:100;animation-timing-function:cubic-bezier(.55,0,.35,1)}52%,100%{stroke-dashoffset:0}}
@keyframes tw-flash{0%,52%{transform:scale(1)}65%{transform:scale(1.5)}78%,100%{transform:scale(1)}}
@keyframes tw-halo{0%,51.9%{opacity:0;transform:scale(1)}52%{opacity:.8;transform:scale(1);animation-timing-function:cubic-bezier(0,0,.3,1)}80%,100%{opacity:0;transform:scale(3.2)}}
@keyframes tw-fade{0%,90%{opacity:1}97%,100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.tw-orbit,.tw-draw,.tw-dot,.tw-halo,.tw-loop{animation:none}}

/* ── 画面の読みやすさ（2026-10 改修）：長い設定画面の目次・見出し・まとまり・状態バッジ ── */
.page-index{position:sticky;top:0;z-index:4;display:flex;align-items:center;gap:6px;overflow-x:auto;scrollbar-width:thin;margin:-23px -25px 22px;padding:12px 25px;background:var(--surface);border-bottom:1px solid var(--line);border-radius:6px 6px 0 0}
.page-index-label{flex:none;font-size:12px;font-weight:700;color:var(--muted);margin-right:4px}
.page-index-item{flex:none;min-height:34px;padding:5px 13px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font:inherit;font-size:13px;font-weight:600;white-space:nowrap;cursor:pointer}
.page-index-item:hover{border-color:var(--focus)}
.page-index-item.active{background:var(--accent-soft);border-color:var(--focus)}
.page-index-item:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
h2.page-section-head{display:flex;align-items:center;gap:10px;font-size:18px;margin-bottom:2px}
h2.page-section-head::before{content:"";flex:none;width:4px;height:18px;border-radius:2px;background:var(--focus)}
.page-section-head,.page-card{scroll-margin-top:72px}
.section-lead{margin:4px 0 16px;color:var(--muted);font-size:14px;line-height:1.65;max-width:72ch}
#view-documents .settings-section,#view-attendanceRules .editor-band{margin-top:30px;padding-top:26px;border-top:1px solid var(--line)}
#view-documents .settings-section:first-child{margin-top:0;padding-top:0;border-top:0}
#view-attendanceRules h3{font-size:14px;color:var(--muted);margin:22px 0 8px}

/* 給与設定：現在の版の一覧 → 変更（新しい版） → 承認者 → 履歴 → 参考試算 */
.page-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:20px 22px;margin:0 0 18px}
.page-card .section-toolbar h2{margin:0;font-size:18px}
.page-card .section-toolbar p{margin:4px 0 0}
details.page-card>summary{font-size:16px;font-weight:700;cursor:pointer;padding:2px 0}
details.page-card[open]>summary{margin-bottom:12px}
#payroll-settings-form[hidden],.edit-banner[hidden]{display:none!important}
#view-payrollSettings .payroll-secondary-section{border-top:0}
.rule-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.rule-group{background:var(--bg);border-radius:8px;padding:14px 16px;min-width:0}
.rule-group h3{margin:0 0 10px;font-size:14px}
.rule-group dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:7px 14px;margin:0}
.rule-group dt{color:var(--muted);font-size:13px}
.rule-group dd{margin:0;font-weight:600;font-size:14px;overflow-wrap:anywhere}
.rule-warning{grid-column:1/-1;margin:0;padding:10px 14px;border-left:3px solid #C98A1B;border-radius:6px;background:#FFF6E5;color:#6B4A07;font-size:14px}
.edit-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px;border-radius:8px;background:var(--accent-soft);margin-bottom:6px}
.edit-banner strong{display:block}
.edit-banner span{display:block;color:var(--muted);font-size:13px;margin-top:2px}
.approver-current{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0 16px}
.approver-current-label{font-size:13px;color:var(--muted);font-weight:700;margin-right:2px}
.person-chip{padding:4px 11px;border:1px solid var(--line);border-radius:999px;background:var(--bg);font-weight:600;font-size:14px}
.rule-chip{padding:4px 11px;border-radius:999px;background:var(--accent-soft);font-size:13px;font-weight:600}
.approver-editor,.fine-print{margin:10px 0}
.approver-editor>summary,.fine-print>summary{cursor:pointer;font-weight:650;color:var(--ink)}
.fine-print>summary{font-size:13px;color:var(--muted)}
.approver-editor[open]{padding:14px 16px;border:1px solid var(--line);border-radius:8px}
.people-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:2px 18px}
.people-grid .check-label{min-height:36px;align-self:auto}

/* 給与管理：社員ごとの行を短く（状態バッジ・差引支給を大きく） */
.status-chip{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:700;line-height:1.6;white-space:nowrap;background:#ECEEF2;color:#454B59}
.status-calculated{background:var(--go-soft,#E3F4EC);color:var(--go,#2F8A66)}
.status-missing{background:#FFF1D6;color:#7A5200}
.status-stale{background:#FDE7E4;color:#9B3228}
.status-external{background:#E6F0FB;color:#2A5D96}
.pay-figure{display:grid;gap:1px;margin-top:8px}
.pay-figure-label{font-size:12px;color:var(--muted)}
.pay-figure strong{font-size:18px;font-variant-numeric:tabular-nums}
.pay-figure .muted{font-size:12px}
.person-cell{display:grid;gap:2px}
.person-cell .muted{font-size:12px}
#payroll-rows td p{margin:4px 0 0}
#payroll-rows .payroll-calculation-details{margin-top:6px}

/* 承認者の選択リスト（帳票）：人数が多くても枠が伸びすぎないように */
.approval-person-list{max-height:260px;overflow-y:auto;padding-right:4px}

@media(max-width:900px){.rule-summary{grid-template-columns:1fr}}
@media(max-width:720px){
  .page-index{margin:-16px -16px 18px;padding:10px 16px}
  .page-card{padding:16px}
  .edit-banner{flex-direction:column;align-items:flex-start}
  .rule-group dl{grid-template-columns:1fr;gap:2px}
  .rule-group dd{margin-bottom:8px}
  .people-grid{grid-template-columns:1fr}
}
#payroll-rows td{vertical-align:top;padding-top:14px;padding-bottom:14px}
@media(max-width:720px){
  table.stack-mobile,table.stack-mobile tbody{display:block;min-width:0;width:100%}
  table.stack-mobile thead{display:none}
  table.stack-mobile tr{display:grid;gap:2px;padding:12px 0;border-bottom:1px solid var(--line)}
  table.stack-mobile td{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;border:0;padding:4px 0;min-width:0;overflow-wrap:anywhere;text-align:right}
  table.stack-mobile td[data-label]::before{content:attr(data-label);flex:none;max-width:45%;color:var(--muted);font-weight:650;text-align:left}
  table.stack-mobile td:first-child{font-weight:700;text-align:left;justify-content:flex-start}
  table.stack-mobile td:first-child::before{display:none}
  .page-card .section-toolbar{flex-direction:column;align-items:stretch}
  .page-card .section-toolbar .row-actions{display:flex;flex-wrap:wrap;gap:8px}
  .planned-break-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 40px;gap:8px}
  .planned-break-row input{min-width:0;padding-left:8px;padding-right:4px;font-size:15px}
  #view-requests .section-toolbar h2{flex:1 1 100%}
}
.section-toolbar{flex-wrap:wrap}
.section-toolbar label{white-space:nowrap;gap:8px}
.pending-approvals{margin:12px 0 18px;padding:14px 16px;border:1px solid #E8C77A;border-left:4px solid #C98A1B;border-radius:8px;background:#FFFBF2}
.pending-approvals h3{margin:0 0 8px;font-size:15px}
.pending-approvals .list-row{padding:10px 0;border-bottom:1px solid #F0E2C0}
.pending-approvals .list-row:last-child{border-bottom:0}
.pending-approvals h4{margin:0 0 6px;font-size:14px}
.change-line{font-size:16px;font-weight:700;margin:4px 0}
/* 個人給与条件のタブ */
.pp-tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--line);margin:4px 0 6px}
.pp-tabs button{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:46px;padding:8px 14px;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--muted);font:inherit;font-weight:650;cursor:pointer;white-space:nowrap}
.pp-tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--focus);background:var(--accent-soft)}
.pp-tabs button:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
.pp-count{padding:1px 7px;border-radius:999px;background:#FFF1D6;color:#7A5200;font-size:11px;font-weight:700}
.pp-count[hidden],.pp-panel[hidden]{display:none!important}
.pp-panel{min-width:0;padding-top:6px}
.pp-panel>.section-lead{margin-bottom:4px}
/* 勤怠明細：打刻を横並び、確認作業のまとまりを区切る */
.punch-list{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center}
.punch{display:inline-block;padding:2px 8px;border-radius:6px;background:var(--bg);font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}
.punch-clock_in,.punch-clock_out{font-weight:700}
.punch-list>p{flex-basis:100%;margin:2px 0 0}
#attendance-day-rows td{vertical-align:top}
#attendance-detail>h3,#attendance-detail>h2.subheading{margin-top:30px;padding-top:20px;border-top:1px solid var(--line)}
#attendance-detail>h2.subheading{font-size:17px}
@media(max-width:720px){
  .pp-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;border-bottom:0}
  .pp-tabs button{justify-content:center;flex-wrap:wrap;min-height:48px;padding:6px 4px;border:1px solid var(--line);border-radius:8px;white-space:normal;text-align:center;font-size:13px}
  .pp-tabs button[aria-selected="true"]{border-color:var(--focus)}
}

/* パスワードの表示切替 */
.pw-wrap{position:relative;display:block;width:100%}
.pw-wrap input{width:100%;padding-right:46px;box-sizing:border-box}
.pw-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:38px;height:38px;min-height:0;min-width:0;padding:0;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:var(--muted,#6A6577);cursor:pointer;box-shadow:none}
.pw-toggle:hover{background:rgba(0,0,0,.05);color:var(--ink,#1E1B26)}
.pw-toggle:focus-visible{outline:2px solid var(--focus,#7F8899);outline-offset:1px}
.pw-toggle svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
/* ログイン画面の見出し：マークと文字を縦中央にそろえる */
.login-head{align-items:center}
.login-head .mark{margin:0}
.login-head strong{line-height:1.2}
/* 会社の資料 */
.library-folder h3{margin:0;font-size:17px}
.library-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:14px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}
.library-main{display:grid;gap:2px;min-width:0}
.library-main strong{overflow-wrap:anywhere}
.library-main .muted{font-size:13px;overflow-wrap:anywhere}
.library-meta{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.danger-text{color:var(--danger,#B23A48)}
.library-reads{max-width:560px;width:calc(100% - 32px)}
.library-reads section{margin:12px 0;max-height:240px;overflow:auto}
.library-reads p{margin:4px 0}
@media(max-width:720px){.library-row{grid-template-columns:1fr}.library-meta{justify-content:flex-start}}

.choice-dialog{border:1px solid var(--line,#d9dde3);border-radius:12px;padding:20px;max-width:min(92vw,460px)}
.choice-dialog p{margin:0 0 14px;white-space:pre-wrap}
.choice-dialog .form-actions{display:flex;flex-wrap:wrap;gap:8px}

.coverage-warning{border-left:4px solid #B3261E;padding:10px 14px;margin-bottom:12px}
.coverage-warning p{margin:4px 0}
/* 月間シフト表：スマホは日ごとの行、デスクトップはカレンダー（7列） */
.roster-grid-tools{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:12px 0}.roster-grid-tools label{min-width:0}.roster-grid-tools button{min-height:44px}
.roster-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;margin:12px 0}
.roster-grid-head,.roster-day-blank{display:none}
.roster-day{border:1px solid var(--line);border-radius:6px;padding:10px;min-width:0;display:grid;gap:6px;align-content:start;overflow-wrap:anywhere}
.roster-day p{margin:0;font-size:13px}.roster-day select,.roster-day input{width:100%;min-width:0;min-height:40px}
.roster-day.weekend{background:#FAF8FD}.roster-day.changed{border-color:var(--focus);box-shadow:inset 0 0 0 1px var(--focus)}
.roster-day-times{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px}
@media(min-width:1100px){.roster-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.roster-grid-head{display:block;font-size:12px;font-weight:650;color:var(--muted);text-align:center}.roster-day-blank{display:block}}
.shift-apply-options{border:1px solid var(--line);border-radius:6px;padding:10px;margin:8px 0;min-width:0}.shift-apply-days{display:grid;gap:4px}
.shift-apply-days .check-label,.history-block>.check-label{display:flex;flex-direction:row;align-items:center;gap:8px;min-height:40px}
table.shift-overview{min-width:0;width:max-content}table.shift-overview th,table.shift-overview td{padding:6px 6px;text-align:center;white-space:nowrap}table.shift-overview td:first-child,table.shift-overview th:first-child{text-align:left;position:sticky;left:0;background:var(--surface)}table.shift-overview tr.muted td{color:var(--muted);opacity:.6}table.shift-overview tfoot td{font-weight:650}
/* 社員の画面のタブ：一覧と「社員の招待・一括登録」を切り替える（要素は同じ画面のまま、表示だけ切り替え） */
#employees-tabs{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:16px}
#view-employees:not(.employees-invite-mode)>#invite-panel{display:none}
#view-employees.employees-invite-mode>:not(.section-toolbar):not(#employees-tabs):not(#invite-panel){display:none!important}
#invite-panel>h2{margin-top:0}
.payment-receipt summary .summary-note{display:block;color:var(--muted);font-weight:400;font-size:13px;margin-top:2px}.summary-count{display:block;color:var(--ink);font-weight:650}.summary-count:empty{display:none}
#invite-panel{border-top:0;margin-top:0;padding-top:8px}
/* 在庫管理：倉庫担当・管理者向け（密度の高い表・数字は右寄せの等幅数字・状態は文字付きの色） */
.inv-view{--inv-row:#FAF8FD;--inv-warn:#7A5200;--inv-warn-bg:#FFF1D6;--inv-danger:#9B3228;--inv-danger-bg:#FDE7E4;--inv-info:#2A5D96;--inv-info-bg:#E6F0FB}
.inv-view label{font-size:12px;gap:4px;color:var(--muted)}
.inv-view label>input:not([type=checkbox]):not([type=file]),.inv-view label>select{min-height:38px;padding:7px 10px;font-size:14px;color:var(--ink);font-weight:500}
.inv-view .check-label{font-size:13px;color:var(--ink);min-height:38px;align-self:end}
.inv-small{min-height:34px!important;padding:5px 12px!important;font-size:13px}
.text-button.inv-small{padding-inline:6px!important}
.inv-num,th.inv-num{text-align:right}
.inv-num-input{text-align:right;font-variant-numeric:tabular-nums}
.inv-qty{display:inline-flex;align-items:baseline;gap:3px;white-space:nowrap;font-variant-numeric:tabular-nums}
.inv-qty-n{font-variant-numeric:tabular-nums}
.inv-qty strong{font-size:15px;font-weight:700}
.inv-qty-u{font-size:11px;color:var(--muted)}
.inv-qty.inv-neg .inv-qty-n{color:var(--inv-danger,#9B3228)}
.inv-qty.inv-pos .inv-qty-n{color:var(--go,#2F8A66)}
.inv-hint{margin:0 0 14px;color:var(--muted);font-size:13px;line-height:1.6;max-width:90ch}
.inv-count{margin:0 0 8px;color:var(--muted);font-size:13px}
.inv-foot{margin:10px 0 0;font-size:12px}
.inv-small-text{font-size:12px}
.inv-warn-text{color:var(--inv-warn,#7A5200);font-weight:600}
.inv-empty{margin:0;padding:22px 16px;text-align:center;color:var(--muted);background:var(--inv-row,#FAF8FD);border:1px dashed var(--line);border-radius:10px}
.inv-h2{margin:0;font-size:16px}
/* ツールバー・絞り込み */
.inv-toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:10px 12px;margin:0 0 14px}
.inv-filterbar>label:not(.check-label){min-width:140px;flex:0 1 180px}
.inv-filterbar>.inv-search{flex:1 1 260px;min-width:240px;max-width:420px}
.inv-filterbar-plain{display:flex;flex-wrap:wrap;align-items:end;gap:10px 12px;margin:6px 0 12px}
.inv-toolbar-end{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto}
.inv-more-filters{align-self:end}
.inv-more-filters>summary{cursor:pointer;color:var(--teal);font-weight:650;font-size:13px;min-height:38px;display:flex;align-items:center}
.inv-more-filters[open]{flex-basis:100%}
.inv-more-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,240px));gap:10px 12px;padding:6px 0 4px}
.inv-seg{display:inline-flex;border:1px solid #D6CBE8;border-radius:999px;overflow:hidden;background:var(--surface)}
.inv-seg button{border:0;background:transparent;color:var(--teal);font-weight:650;font-size:13px;min-height:34px;padding:5px 14px}
.inv-seg button[aria-pressed=true]{background:var(--teal);color:#fff}
.inv-wh-switch{min-width:220px}
/* KPI */
.inv-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:10px;margin:0 0 18px}
.inv-kpi{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);min-width:0;font:inherit}
button.inv-kpi{cursor:pointer;transition:border-color .15s,box-shadow .15s}
button.inv-kpi:hover{border-color:#BBA9D9;box-shadow:var(--shadow)}
.inv-kpi-label{font-size:12px;font-weight:650;color:var(--muted)}
.inv-kpi-value{font-size:26px;line-height:1.15;font-weight:750;font-variant-numeric:tabular-nums}
.inv-kpi-sub{font-size:11px;color:var(--muted);overflow-wrap:anywhere}
.inv-kpi-warn{border-left:4px solid #D99A1E}.inv-kpi-warn .inv-kpi-value{color:var(--inv-warn,#7A5200)}
.inv-kpi-danger{border-left:4px solid #C2473B}.inv-kpi-danger .inv-kpi-value{color:var(--inv-danger,#9B3228)}
.inv-kpi-info{border-left:4px solid #4F86C6}.inv-kpi-info .inv-kpi-value{color:var(--inv-info,#2A5D96)}
.inv-kpis-compact{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}
.inv-kpis-compact .inv-kpi-value{font-size:22px}
/* ダッシュボード */
.inv-quick{display:flex;flex-wrap:wrap;gap:8px;margin-left:auto}
.inv-quick-btn{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:8px 16px;border-radius:12px;border:1px solid #D6CBE8;background:var(--surface);color:var(--teal);font-weight:700}
.inv-quick-btn:hover{background:var(--accent-soft);border-color:#BFA8E6}
.inv-quick-btn:first-child{background:var(--teal);color:#fff;border-color:var(--teal)}
.inv-quick-icon{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:7px;background:var(--accent-soft);color:var(--teal-dark);font-size:14px;line-height:1}
.inv-quick-btn:first-child .inv-quick-icon{background:rgba(255,255,255,.2);color:#fff}
.inv-dash-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.inv-panel{border:1px solid var(--line);border-radius:12px;padding:16px 18px;background:var(--surface);min-width:0}
.inv-panel-wide{grid-column:1/-1}
.inv-panel h2{font-size:16px;margin:0}
.inv-panel-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;margin:0 0 10px}
.inv-panel-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.inv-panel-note{margin:-2px 0 10px;color:var(--muted);font-size:12px;line-height:1.6}
.inv-list{display:grid;border-top:1px solid var(--line)}
.inv-list-item{display:grid;grid-template-columns:92px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 4px;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;color:var(--ink);font:inherit;width:100%}
button.inv-list-item{cursor:pointer}button.inv-list-item:hover{background:var(--inv-row,#FAF8FD)}
.inv-list-item>.inv-list-main:first-child{grid-column:1/3}
.inv-list-main{display:grid;min-width:0}
.inv-list-main strong{font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.inv-list-main small{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* 表 */
.inv-table td{vertical-align:middle}
.inv-table td code{font-size:12.5px;overflow-wrap:anywhere}
.inv-table .row-actions{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}
.inv-table .row-actions button{margin:0}
.inv-table button{white-space:nowrap}
.inv-dense th{padding:8px 10px}
.inv-dense td{padding:8px 10px;border-bottom-color:#EFECF4}
.inv-dense td small{font-size:12px}
.inv-sticky-wrap,.inv-view .table-scroll:has(> .inv-sticky){max-height:calc(100vh - 230px);overflow:auto;border:1px solid var(--line);border-radius:10px}
.inv-sticky thead th{position:sticky;top:0;z-index:1;box-shadow:0 1px 0 var(--line)}
.inv-row-link{cursor:pointer}
.inv-row-link:hover td{background:var(--inv-row,#FAF8FD)}
.inv-row-link:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}
.inv-row-link.is-selected td{background:var(--accent-soft)}
.inv-row-muted td{color:var(--muted)}
.inv-row-out td:first-child{box-shadow:inset 3px 0 0 #C2473B}
.inv-group-row td{background:#F7F5FB;font-weight:650}
.inv-product-cell{display:flex;align-items:center;gap:10px;min-width:0}
.inv-product-text{display:grid;min-width:0}
.inv-product-text strong{font-weight:650;overflow-wrap:anywhere}
.inv-product-text small{font-size:12px}
.inv-thumb{flex:none;display:inline-grid;place-items:center;width:36px;height:36px;border-radius:8px;background:var(--accent-soft);color:var(--teal-dark);font-size:11px;font-weight:800;letter-spacing:.02em;overflow:hidden;text-transform:uppercase}
.inv-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.inv-thumb.has-image{background:#fff;border:1px solid var(--line)}
.inv-thumb-md{width:48px;height:48px;font-size:13px}
.inv-thumb-lg{width:72px;height:72px;font-size:16px;border-radius:12px}
.inv-chips{display:flex;flex-wrap:wrap;gap:4px}
.inv-sort{display:inline-flex;align-items:center;gap:4px;border:0;background:transparent;padding:0;font:inherit;font-size:12px;font-weight:650;color:var(--muted)}
.inv-sort:hover{color:var(--teal)}
th.inv-num .inv-sort{flex-direction:row}
.inv-sort-mark{font-size:10px;opacity:.7}
th[aria-sort=ascending] .inv-sort,th[aria-sort=descending] .inv-sort{color:var(--teal)}
.inv-expiry{display:flex;flex-wrap:wrap;align-items:center;gap:4px}
.inv-kind{display:grid;gap:2px;justify-items:start}
.inv-qty-cell{display:grid;justify-items:end;gap:1px}
.inv-movement-table td:first-child{white-space:nowrap}
.inv-more{margin-top:12px}
/* 商品の詳細（右から開くパネル） */
dialog.inv-drawer{margin:0 0 0 auto;padding:0;border:0;border-radius:16px 0 0 16px;width:min(620px,100vw);max-width:none;height:100vh;max-height:none;box-shadow:-20px 0 50px -20px rgba(20,10,40,.4)}
dialog.inv-drawer::backdrop{background:rgba(16,12,30,.35)}
.inv-drawer-body{padding:20px 22px 40px;display:grid;gap:16px;align-content:start}
.inv-drawer-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:start}
.inv-drawer-titles h2{margin:0 0 2px;font-size:19px;overflow-wrap:anywhere}
.inv-drawer-titles p{margin:0 0 6px;font-size:13px}
.inv-drawer-close{align-self:start}
.inv-drawer-actions{display:flex;flex-wrap:wrap;gap:6px}
.inv-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0}
.inv-stat{border:1px solid var(--line);border-radius:10px;padding:8px 10px;min-width:0}
.inv-stat dt{font-size:11px;color:var(--muted);font-weight:650}
.inv-stat dd{margin:2px 0 0;font-size:14px;font-weight:600}
.inv-stat-warn{border-color:#E8C27A;background:var(--inv-warn-bg,#FFF1D6)}
.inv-stat-danger{border-color:#E9A79E;background:var(--inv-danger-bg,#FDE7E4)}
.inv-drawer-section h3{font-size:14px;margin:0 0 8px}
.inv-drawer-section .table-scroll{border:1px solid var(--line);border-radius:10px}
.inv-drawer-section table{min-width:0}
.inv-code-list{list-style:none;margin:0;padding:0;display:grid;border-top:1px solid var(--line)}
.inv-code-list li{display:grid;grid-template-columns:minmax(0,1.2fr) auto minmax(0,1fr);gap:10px;padding:7px 2px;border-bottom:1px solid var(--line);font-size:13px;align-items:center}
.inv-code-list code{overflow-wrap:anywhere}
.inv-default-list{display:grid;gap:6px}
.inv-default-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:10px;align-items:center;font-size:13px}
.inv-default-row select{min-height:36px;padding:5px 8px}
/* 入出庫の登録 */
.inv-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:0 0 16px;overflow-x:auto}
.inv-tabs button{border:0;background:transparent;padding:10px 18px;font-weight:700;color:var(--muted);border-bottom:3px solid transparent;margin-bottom:-1px;white-space:nowrap;min-height:44px}
.inv-tabs button[aria-selected=true]{color:var(--teal);border-bottom-color:var(--teal)}
.inv-entry-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,1fr);gap:20px;align-items:start}
.inv-entry-form{min-width:0}
.inv-field{display:grid;gap:4px;margin-bottom:12px;position:relative}
.inv-field>label{font-size:12px;font-weight:650;color:var(--muted)}
.inv-picker-box{display:flex;gap:6px;align-items:center}
.inv-picker-box button{white-space:nowrap;flex:none}
.page-head>div:first-child{min-width:0}
.inv-split table,.inv-drawer table{min-width:0}
.inv-picker-box input{min-height:46px!important;font-size:16px!important}
.inv-picker-list{position:absolute;z-index:6;left:0;right:0;top:100%;margin:4px 0 0;padding:4px;list-style:none;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);max-height:360px;overflow:auto}
.inv-picker-option{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:7px 8px;border-radius:8px;cursor:pointer}
.inv-picker-option:hover,.inv-picker-option[aria-selected=true]{background:var(--accent-soft)}
.inv-picker-empty{padding:10px;color:var(--muted);font-size:13px}
.inv-entry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}
.inv-entry-grid .inv-span,.inv-form-grid .inv-span{grid-column:1/-1}
.inv-convert{grid-column:1/-1;margin-top:-4px;font-size:13px;font-weight:650;color:var(--teal-dark);font-variant-numeric:tabular-nums}
.inv-convert:empty{display:none}
.inv-entry-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:16px}
.inv-entry-actions .primary{min-width:200px}
.inv-entry-side{position:sticky;top:12px;border:1px solid var(--line);border-radius:12px;padding:16px;background:var(--inv-row,#FAF8FD);min-width:0}
.inv-entry-side h2{font-size:15px;margin:0 0 10px}
.inv-entry-side h3{font-size:13px;margin:14px 0 6px;color:var(--muted)}
.inv-entry-side p{margin:0 0 6px;font-size:13px}
.inv-side-product{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border-radius:10px;background:var(--surface);border:1px solid var(--line)}
.inv-side-stock,.inv-side-fefo{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.inv-side-stock li{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 10px;padding:6px 10px;border-radius:8px;background:var(--surface);font-size:13px}
.inv-side-stock li.is-current{outline:2px solid var(--teal);outline-offset:-2px}
.inv-side-stock li small{flex-basis:100%;font-size:12px}
.inv-side-fefo{counter-reset:fefo}
.inv-side-fefo li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 10px;padding:6px 10px;border-radius:8px;background:var(--surface);font-size:13px}
.inv-side-fefo li small{grid-column:1;font-size:12px}
.inv-side-fefo li .inv-qty{grid-column:2;grid-row:1/3;align-self:center}
.inv-side-amount{font-weight:700;font-variant-numeric:tabular-nums}
.inv-side-after{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px;margin-top:10px!important;padding-top:10px;border-top:1px solid var(--line)}
.inv-tips{margin:8px 0 0;padding-left:18px;font-size:13px;color:var(--muted);display:grid;gap:6px}
.inv-confirm{max-width:min(520px,calc(100% - 24px))!important}
.inv-confirm h2{margin:0 0 12px;font-size:17px}
.inv-confirm-list{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px 16px;margin:0 0 14px;padding:12px 14px;background:var(--inv-row,#FAF8FD);border-radius:10px}
.inv-confirm-list dt{color:var(--muted);font-size:13px}
.inv-confirm-list dd{margin:0;font-weight:650;white-space:pre-wrap;overflow-wrap:anywhere}
.inv-confirm-note{font-size:13px;color:var(--muted)}
.inv-toast{position:fixed;z-index:20;left:50%;bottom:20px;transform:translateX(-50%);display:flex;align-items:center;gap:12px;max-width:min(680px,calc(100vw - 24px));padding:12px 14px 12px 18px;border-radius:12px;background:#1E1B26;color:#fff;box-shadow:0 18px 40px -16px rgba(0,0,0,.5);font-size:14px}
.inv-toast-undo{border:1px solid rgba(255,255,255,.5);background:transparent;color:#fff;border-radius:999px;padding:6px 14px;font-weight:700;white-space:nowrap;min-height:36px}
.inv-toast-undo:hover{background:rgba(255,255,255,.12)}
.inv-toast-close{border:0;background:transparent;color:#fff;font-size:18px;min-width:36px;min-height:36px}
/* 商品の編集（ダイアログ） */
dialog.inv-sheet{padding:0;width:min(860px,calc(100vw - 24px));max-width:none;max-height:calc(100vh - 32px);border-radius:16px}
.inv-editor{display:flex;flex-direction:column;max-height:calc(100vh - 32px)}
.inv-sheet-head,.inv-sheet-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 20px;border-bottom:1px solid var(--line)}
.inv-sheet-head h2{margin:0;font-size:18px;overflow-wrap:anywhere}
.inv-sheet-foot{border-bottom:0;border-top:1px solid var(--line);justify-content:flex-start}
.inv-sheet-body{overflow:auto;padding:6px 20px 16px}
.inv-fs{border:0;border-top:1px solid var(--line);margin:0;padding:14px 0 16px;min-width:0}
.inv-fs:first-child{border-top:0}
.inv-fs legend{font-weight:750;font-size:14px;padding:0 10px 0 0;color:var(--ink)}
.inv-sheet label{font-size:13px}
.inv-sheet label small{font-weight:500;font-size:12px;line-height:1.5}
.inv-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;align-items:start}
.inv-form-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.inv-toggle{display:grid!important;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;padding:10px 12px;border:1px solid var(--line);border-radius:10px;margin:0 0 8px;cursor:pointer}
.inv-toggle input{margin-top:2px}
.inv-toggle span{display:grid;gap:2px;color:var(--ink)}
.inv-image-edit{display:grid;grid-template-columns:140px minmax(0,1fr);gap:16px;align-items:start}
.inv-image-preview{width:140px;height:140px;border-radius:12px;border:1px dashed var(--line);display:grid;place-items:center;overflow:hidden;background:var(--inv-row,#FAF8FD)}
.inv-image-preview img{width:100%;height:100%;object-fit:contain}
.inv-image-controls{display:grid;gap:8px;justify-items:start}
.inv-barcode-add{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 12px;margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:10px}
.inv-barcode-add .inv-span{grid-column:1/-1;margin:0;font-size:12px}
/* 倉庫・棚番、ラベル */
.inv-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:16px;align-items:start}
.inv-split-labels{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}
.inv-add{margin-top:12px;border-top:1px solid var(--line);padding-top:8px}
.inv-add>summary{cursor:pointer;font-weight:700;color:var(--teal);min-height:36px;display:flex;align-items:center}
.inv-add>form{padding:8px 0 4px}
.inv-inline-start{display:flex;flex-wrap:wrap;align-items:end;gap:10px 12px;width:100%}
.inv-inline-start>label:not(.inv-search){min-width:170px}
.inv-inline-start>.inv-search{flex:1 1 240px}
.inv-inline-label{flex-direction:row!important;align-items:center;gap:8px!important}
.inv-inline-label select{width:auto;min-width:130px}
.inv-stocktake-detail{margin-top:18px}
.inv-stocktake-detail>.inv-panel-head h2{font-size:16px}
/* 既存の部品（伝票・棚卸・ラベル） */
.inv-document{margin-bottom:12px}
.inv-document .person-cell strong{overflow-wrap:anywhere}
.inv-inline:empty{display:none}
.inv-inline-form{margin-top:12px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:var(--inv-row,#FAF8FD)}
.inv-inline-form h3{margin:0;font-size:15px;overflow-wrap:anywhere}
.inv-count-form{display:flex;gap:6px;align-items:center;justify-content:flex-end}
.inv-count-form input:not([type=checkbox]){width:96px;min-height:34px;padding:5px 8px;text-align:right;font-variant-numeric:tabular-nums}
.inv-count-form button{min-height:34px;margin:0}
.inv-stocktake-check{margin:14px 0;padding:14px 16px;border:1px solid #E8C27A;border-radius:10px;background:#FFFBF1}
.inv-stocktake-check h3{margin:0 0 6px;font-size:15px}
.inv-notice{padding:10px 14px;border-left:3px solid var(--go,#2F8A66);background:var(--go-soft,#E3F4EC);border-radius:6px;font-weight:600}
.inv-pack-list{display:grid;gap:2px}
.inv-pack-list .check-label{min-height:30px;align-self:auto;font-size:13px;overflow-wrap:anywhere}
.inv-add-count,.inv-entries{margin-top:18px}
.inv-add-count>summary,.inv-entries>summary{cursor:pointer;font-weight:650;min-height:36px;padding:6px 0}
.inv-add-count>form{padding:12px 0}
.inv-location-checks{margin-top:6px;max-height:280px;overflow-y:auto}
.inv-label-choice{align-self:auto;min-height:36px;gap:10px;align-items:center}
.inv-label-choice input{flex:none}
@media(min-width:721px){.inv-document .inv-table td:nth-child(n+2):nth-child(-n+7){white-space:nowrap}}
@media(max-width:1180px){
  .inv-entry-layout{grid-template-columns:minmax(0,1fr)}
  .inv-entry-side{position:static}
  .inv-split,.inv-split-labels{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:900px){.inv-dash-grid{grid-template-columns:minmax(0,1fr)}.inv-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){
  .inv-toolbar{gap:8px}
  .inv-filterbar>label:not(.check-label),.inv-filterbar>.inv-search{flex:1 1 calc(50% - 8px);min-width:0;max-width:none}
  .inv-filterbar>.inv-search{flex-basis:100%}
  .inv-toolbar-end{margin-left:0;width:100%}
  .inv-wh-switch{flex:1 1 100%;min-width:0}
  .inv-quick{margin-left:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}
  .inv-quick-btn{justify-content:center;flex-direction:column;gap:2px;padding:8px 4px;font-size:12px;min-height:58px}
  .inv-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .inv-kpi{padding:10px 12px}
  .inv-kpi-value{font-size:22px}
  .inv-panel{padding:14px 12px}
  .inv-view .table-scroll:has(> .inv-sticky){max-height:none;overflow:visible;border:0}
  /* 表はカード（1件＝1枚） */
  table.stack-mobile.inv-table td{padding:3px 0}
  table.stack-mobile.inv-table tr{padding:10px 0}
  table.stack-mobile.inv-table td.inv-num{justify-content:space-between}
  .inv-stock-grid tr{grid-template-columns:minmax(0,1fr) auto;column-gap:10px}
  .inv-row-out td:first-child{box-shadow:none}
  table.stack-mobile.inv-table tr.inv-row-out{box-shadow:inset 3px 0 0 #C2473B;padding-left:10px}
  table.stack-mobile.inv-table td:first-child .inv-product-text small{font-weight:500}
  .inv-reorder tr{grid-template-columns:minmax(0,1fr) auto;column-gap:10px}
  .inv-reorder td{grid-column:1/-1}
  .inv-reorder td:first-child{grid-column:1;grid-row:1}
  .inv-reorder td:nth-child(5){grid-column:2;grid-row:1;align-self:center;flex-direction:column;align-items:flex-end;gap:0}
  .inv-reorder td:nth-child(5)::before{max-width:none;font-size:11px;white-space:nowrap}
  .inv-list-item{grid-template-columns:auto minmax(0,1fr) auto}
  .inv-reorder td:nth-child(2),.inv-reorder td:nth-child(3){display:inline-flex!important;grid-column:auto;font-size:12px}
  .inv-reorder td:nth-child(4){display:none!important}
  .inv-reorder tr{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}
  .inv-reorder td:first-child{grid-column:1/3}
  .inv-reorder td:nth-child(5){grid-column:3;grid-row:1/3}
  .inv-reorder td:nth-child(2){grid-column:1;grid-row:2;justify-content:flex-start;gap:6px}
  .inv-reorder td:nth-child(3){grid-column:2;grid-row:2;justify-content:flex-start;gap:6px}
  .inv-stock-grid td{grid-column:1/-1}
  .inv-stock-grid td:first-child{grid-column:1;grid-row:1}
  .inv-stock-grid td:nth-child(4){grid-column:2;grid-row:1;align-self:center}
  .inv-stock-grid td:nth-child(4)::before{display:none}
  .inv-stock-grid td:nth-child(2),.inv-stock-grid td:nth-child(5){display:none!important}
  .inv-stock-grid td:nth-child(3){font-size:12px;color:var(--muted)}
  .inv-stock-grid td:nth-child(3)::before,.inv-stock-grid td:nth-child(6)::before{display:none}
  .inv-stock-grid td:nth-child(3){justify-content:flex-start;text-align:left}
  .inv-stock-grid td:nth-child(6){justify-content:flex-start}
  .inv-stock-grid td:nth-child(6):has(.inv-chips:empty){display:none}
  .inv-stock-grid td:nth-child(3):not(:has(*)){display:none}
  .inv-product-grid tr{grid-template-columns:minmax(0,1fr) auto;column-gap:10px}
  .inv-product-grid td{grid-column:1/-1;font-size:12px;justify-content:flex-start!important;text-align:left!important}
  .inv-product-grid td::before{display:none}
  .inv-product-grid td:first-child{grid-column:1;grid-row:1;font-size:14px}
  .inv-product-grid td:nth-child(4){grid-column:2;grid-row:1;align-self:center}
  .inv-product-grid td:nth-child(5){display:none!important}
  .inv-product-grid td .person-cell{display:flex;flex-wrap:wrap;gap:0 6px}
  .inv-product-grid td:nth-child(6):has(.inv-chips:empty){display:none}
  .inv-entry-grid,.inv-form-grid,.inv-barcode-add{grid-template-columns:minmax(0,1fr)}
  /* 入出庫履歴：1件を3〜4行のカードに（商品と数量を上に） */
  .inv-movement-table tr{grid-template-columns:minmax(0,1fr) auto;column-gap:10px;row-gap:2px}
  .inv-movement-table td{grid-column:1/-1;font-size:12px;justify-content:flex-start!important;text-align:left!important}
  .inv-movement-table td::before{display:none}
  .inv-movement-table td:nth-child(3){grid-column:1;grid-row:1;font-size:14px}
  .inv-movement-table td:nth-child(6){grid-column:2;grid-row:1;justify-content:flex-end!important}
  .inv-movement-table td:nth-child(2){grid-column:1;grid-row:2}
  .inv-movement-table td:nth-child(1){grid-column:2;grid-row:2;justify-content:flex-end!important;text-align:right!important}
  .inv-movement-table td:first-child{font-weight:500}
  .inv-movement-table td .person-cell{display:flex;flex-wrap:wrap;gap:0 6px}
  .inv-movement-table td:nth-child(3) .person-cell{display:grid}
  .inv-movement-table td:nth-child(1) .person-cell{justify-content:flex-end}
  .inv-movement-table td:nth-child(8){grid-column:1}
  .inv-movement-table td:nth-child(9){grid-column:2;justify-content:flex-end!important}
  .inv-movement-table td:nth-child(9) button{min-height:28px!important;padding-block:2px!important}
  .inv-movement-table td:nth-child(9):empty,.inv-movement-table td:nth-child(5):not(:has(*)),.inv-movement-table td:nth-child(7):not(:has(*)){display:none}
  .inv-movement-table .inv-kind{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
  .inv-tabs button{padding:10px 12px;flex:1 0 auto}
  .inv-entry-actions .primary{flex:1 1 100%}
  dialog.inv-drawer{width:100vw;border-radius:0}
  .inv-drawer-body{padding:16px 14px 40px}
  .inv-drawer-head{grid-template-columns:auto minmax(0,1fr)}
  .inv-drawer-close{grid-column:1/-1;grid-row:1;justify-self:end;margin-bottom:-8px}
  .inv-thumb-lg{width:56px;height:56px}
  .inv-image-edit{grid-template-columns:minmax(0,1fr)}
  .inv-sheet-head,.inv-sheet-foot{padding:12px 14px}
  .inv-sheet-body{padding:4px 14px 14px}
  .inv-inline-start>label:not(.inv-search){min-width:0;flex:1 1 calc(50% - 8px)}
  .inv-inline-start .primary{flex:1 1 100%}
  .inv-inline-form{padding:12px}
  .inv-count-form input:not([type=checkbox]){width:80px}
  .inv-code-list li{grid-template-columns:minmax(0,1fr) auto}
  .inv-code-list li>span:last-child{grid-column:1/-1;font-size:12px;color:var(--muted)}
  .inv-toast{left:12px;right:12px;transform:none;bottom:12px;flex-wrap:wrap}
  .inv-movement-table td:first-child{white-space:normal}
}
/* 月次給与の3つの手順（計算 → 確認 → 発布）と「個別に操作・履歴」 */
#view-payroll .payroll-workflow-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}
.payroll-next-step[hidden]{display:none}
.payroll-month-flow{margin:0 0 24px;min-width:0}.payroll-month-flow[hidden]{display:none}
.payroll-flow-head h2{margin:0 0 4px;font-size:18px}.payroll-flow-head p{margin:0 0 16px}
.payroll-flow-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}
.payroll-flow-step{border:1px solid var(--line);border-top:4px solid #C9C3D6;border-radius:6px;padding:14px 16px 16px;min-width:0;overflow-wrap:anywhere;background:var(--surface)}
.payroll-flow-step.is-done{border-top-color:var(--go,#2F8A66)}.payroll-flow-step.is-action{border-top-color:var(--coral)}.payroll-flow-step.is-todo{border-top-color:var(--teal)}
.payroll-flow-step-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.payroll-flow-step-head h3{margin:0;font-size:17px;flex:1}
.payroll-flow-number{width:28px;height:28px;border-radius:50%;display:inline-grid;place-items:center;background:#F1EAFD;color:var(--teal-dark);font-weight:700;flex:none}
.payroll-flow-done{background:var(--go-soft,#E3F4EC);color:var(--go,#2F8A66)}.payroll-flow-action{background:#FDE7E4;color:#9B3228}.payroll-flow-todo{background:#ECEEF2;color:#454B59}
.payroll-flow-summary{margin:0 0 10px;font-weight:650}.payroll-flow-note{margin:10px 0 6px;color:var(--ink)}
.payroll-flow-people{list-style:none;margin:0 0 10px;padding:0;border-top:1px solid var(--line)}.payroll-flow-people li{display:grid;gap:2px;padding:8px 0;border-bottom:1px solid var(--line)}.payroll-flow-people li .text-button{justify-self:start;padding-inline:0;min-height:36px}
.payroll-flow-form{grid-template-columns:minmax(0,1fr);gap:12px;margin-top:12px}.payroll-flow-form .wide,.payroll-flow-form .form-actions{grid-column:1}.payroll-flow-form .check-label{align-items:flex-start}.payroll-flow-form input[type=checkbox]{flex-shrink:0;margin-top:3px}.payroll-flow-form .form-actions button{min-height:44px;width:100%}
.payroll-flow-evidence{min-width:0;display:grid;gap:10px}.payroll-flow-evidence p{margin:0}.payroll-flow-evidence-row{display:grid;gap:6px}.payroll-flow-evidence-row input{min-width:0;width:100%}
.payroll-flow-problem:empty{display:none}.payroll-flow-problem{margin-top:12px;padding:10px 12px;background:#faece8;border-left:4px solid var(--danger);color:var(--danger)}.payroll-flow-issues{margin:6px 0 0;padding-left:20px;color:var(--ink)}
.payroll-flow-delivery{margin-top:12px}.payroll-flow-delivery>summary{min-height:44px;padding:10px 0;color:var(--teal);font-weight:650;cursor:pointer}
.payroll-flow-optional{margin-top:16px;padding:12px 16px;border:1px dashed var(--line);border-radius:6px}.payroll-flow-optional h3{margin:0 0 4px;font-size:15px}.payroll-flow-optional p{margin:0 0 8px}.payroll-flow-optional button{min-height:44px}
.payroll-individual{border-top:1px solid var(--line);margin-top:8px}.payroll-individual>summary{min-height:52px;padding:14px 4px;cursor:pointer;font-weight:700;color:var(--teal-dark);font-size:15px}.payroll-individual>summary span{display:block;font-weight:400;font-size:13px;margin-top:2px}
@media(max-width:1100px){.payroll-flow-steps{grid-template-columns:minmax(0,1fr)}}

/* 最低賃金表 */
.mw-current{width:100%}.mw-current td,.mw-current th{white-space:nowrap}.mw-current tr.mw-flag td{background:var(--warn-soft,#FBF0DD)}
.mw-anomalies:empty{display:none}.mw-anomalies{margin:12px 0;padding:10px 14px;background:var(--warn-soft,#FBF0DD);border-left:4px solid var(--warn,#A86A12)}.mw-anomalies p{margin:4px 0;overflow-wrap:anywhere}
.mw-diff{margin:8px 0;padding-left:20px}.mw-diff li{overflow-wrap:anywhere}
.mw-fill{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 12px}.mw-fill p{flex-basis:100%;margin:0}
#mw-official-link{display:inline-flex;align-items:center;text-decoration:none}
@media(max-width:720px){.mw-current td,.mw-current th{padding:8px 6px;font-size:14px}}
/* 開発・運営会社の表示（小さく控えめに。長い社名でも折り返して横にはみ出さない） */
.vendor-footer{margin:32px 0 0;padding-top:14px;border-top:1px solid var(--line);color:var(--muted);font-size:11px;line-height:1.5;text-align:center;overflow-wrap:anywhere}
.login-footer{border-top:0;margin:0 auto;padding:24px 16px 28px;color:rgba(255,255,255,.62)}
/* ===== 初回設定ガイドと画面ごとのガイド（2026-10-03） ===== */
.page-title-row{display:flex;align-items:center;gap:10px;min-width:0}.page-title-row h1{margin-bottom:0;min-width:0;overflow-wrap:anywhere}
.help-button{flex:none;width:30px;height:30px;min-height:30px;padding:0;border-radius:50%;border:1px solid color-mix(in srgb,var(--teal) 35%,#fff);background:var(--surface);color:var(--teal);font-weight:700;font-size:15px;line-height:1;display:inline-grid;place-items:center;cursor:pointer}
.help-button:hover{background:var(--accent-soft)}.help-button:focus-visible,.wizard-close:focus-visible,.wizard-dot:focus-visible{outline:3px solid var(--focus,#9B6BDA);outline-offset:2px}
.page-head>div:first-child{min-width:0}
.home-setup-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px}
.wizard-close{flex:none;width:40px;height:40px;min-height:40px;border-radius:50%;border:0;background:transparent;color:var(--muted);font-size:22px;line-height:1;cursor:pointer}.wizard-close:hover{background:var(--accent-soft);color:var(--ink)}
/* 設定ガイド：中央のダイアログ（狭い画面では全画面） */
dialog.setup-wizard{width:min(780px,calc(100% - 32px));max-width:min(780px,calc(100% - 32px));height:min(740px,calc(100dvh - 32px));max-height:calc(100dvh - 32px);padding:0;overflow:hidden}
.setup-wizard[open]{display:flex}
.wizard-inner{display:flex;flex-direction:column;width:100%;min-height:0;max-height:calc(100dvh - 32px)}
.wizard-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:20px 24px 4px}.wizard-head h2{margin:0;font-size:19px}.wizard-head p{margin:2px 0 0;font-size:12px}
.wizard-dots{list-style:none;display:flex;gap:6px;margin:8px 0 0;padding:6px 24px 14px;border-bottom:1px solid var(--line);overflow-x:auto}
.wizard-dots li{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1 1 0;min-width:52px;position:relative}
.wizard-dots li:not(:last-child)::after{content:"";position:absolute;top:15px;left:calc(50% + 18px);right:calc(-50% + 15px);height:2px;background:var(--line)}
.wizard-dot{width:30px;height:30px;min-height:30px;padding:0;border-radius:50%;border:2px solid var(--line);background:var(--surface);color:var(--muted);font-weight:700;font-size:13px;cursor:pointer;position:relative;z-index:1}
.wizard-dot.done{border-color:var(--go,#2F8A66);background:var(--go-soft,#E3F4EC);color:var(--go,#2F8A66)}.wizard-dot.current{border-color:var(--teal);background:var(--teal);color:#fff;box-shadow:0 0 0 4px var(--accent-soft)}
.wizard-dot-label{font-size:11px;color:var(--muted);text-align:center;line-height:1.3}
.wizard-step-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:16px 24px 0}.wizard-step-head h3{margin:0;font-size:17px}.wizard-step-head h3:focus{outline:none}
.wizard-state{font-size:12px;font-weight:650;padding:2px 10px;border-radius:999px;background:var(--warn-soft,#FBF0DD);color:var(--warn,#A86A12)}.wizard-state:empty{display:none}.wizard-state.done{background:var(--go-soft,#E3F4EC);color:var(--go,#2F8A66)}
.wizard-body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:12px 24px 16px}
.wizard-status{margin:0 24px 8px}
.wizard-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:14px 24px;border-top:1px solid var(--line);background:var(--surface)}
.wizard-nav{display:flex;gap:8px;margin-left:auto}.wizard-foot #wizard-hide{font-size:12px;color:var(--muted);padding-inline:4px}
.wizard-step{display:grid;gap:14px}.wizard-step>p{margin:0}.wizard-lead{color:var(--ink);font-size:15px}
.wizard-subhead{font-size:14px;margin:4px 0 -6px}
.wizard-form{padding:14px;border:1px solid var(--line);border-radius:12px;background:#FCFBFE}
.wizard-weekdays{display:flex;flex-wrap:wrap;gap:4px 14px;border:0;padding:0;margin:0;min-width:0}.wizard-weekdays legend{font-weight:650;color:#35494c;margin-bottom:4px;padding:0}.wizard-weekdays .check-label{min-height:36px;align-self:auto}
.wizard-inline{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.wizard-inline label{flex:1 1 220px;min-width:0}.wizard-inline>span{align-self:center}
.wizard-chips{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0}.wizard-chips li{padding:5px 12px;border-radius:999px;background:var(--accent-soft);color:var(--teal-dark);font-weight:600;font-size:13px}.wizard-chips li.empty-chip{background:transparent;color:var(--muted);padding-left:0;font-weight:400}
.wizard-summary{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px 18px;margin:0;padding:12px 14px;border:1px solid var(--line);border-radius:12px}.wizard-summary dt{color:var(--muted)}.wizard-summary dd{margin:0;font-weight:650;overflow-wrap:anywhere}
.wizard-counts{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0;padding:0}.wizard-counts li{display:grid;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:12px}.wizard-counts span{font-size:12px;color:var(--muted)}.wizard-counts strong{font-size:20px;font-variant-numeric:tabular-nums}
.wizard-order{margin:0;padding-left:22px;display:grid;gap:6px}
.wizard-actions,.wizard-links{display:flex;flex-wrap:wrap;gap:8px}.wizard-links .text-button{padding-inline:0;text-align:left;text-decoration:underline;text-underline-offset:3px}.wizard-links .text-button::after{content:" →"}
.wizard-checklist{display:grid;gap:6px}.wizard-check{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--line);border-radius:10px}.wizard-check .text-button{margin-left:auto}
.setup-mark{font-weight:700;color:var(--muted);min-width:3.5em}.setup-mark.done{color:var(--teal)}
.wizard-note{padding:10px 12px;border-radius:10px;background:var(--warn-soft,#FBF0DD);color:#6b4a12}
.wizard-address{display:flex;gap:18px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:12px}.wizard-address>div:last-child{display:grid;gap:6px;justify-items:start;min-width:0}
.wizard-qr{flex:none;width:132px;height:132px}.wizard-qr svg{width:100%;height:100%}
.wizard-address-label{font-size:12px;color:var(--muted)}.wizard-address-url{font-size:14px;overflow-wrap:anywhere;user-select:all}
/* 会社コード（社員がアプリで最初に入力するコード） */
.wizard-company-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:30px;font-weight:800;letter-spacing:.05em;line-height:1.2;overflow-wrap:anywhere;user-select:all}
.company-code-line{margin:8px 0;font-size:15px}.company-code-line:empty{display:none}.company-code-line strong{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:22px;letter-spacing:.04em;user-select:all}
.wizard-resume{position:fixed;right:20px;bottom:20px;z-index:20;box-shadow:0 10px 24px -10px rgba(20,14,30,.6)}
/* 画面ごとのガイド：右側のパネル（狭い画面では下からのシート） */
dialog.help-panel{position:fixed;inset:0 0 0 auto;margin:0;width:min(440px,100vw);max-width:100vw;height:100dvh;max-height:100dvh;padding:0;border-radius:18px 0 0 18px;overflow:hidden}
.help-panel[open]{display:flex}
.help-inner{display:flex;flex-direction:column;width:100%;min-height:0}
.help-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px 12px;border-bottom:1px solid var(--line)}.help-head h2{margin:0;font-size:17px;overflow-wrap:anywhere}
.help-body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:6px 20px 24px}
.help-section{padding:14px 0;border-bottom:1px solid var(--line)}.help-section:last-child{border-bottom:0}.help-section h3{font-size:14px;margin:0 0 8px;color:var(--teal-dark)}.help-section p{margin:0}
.help-steps{margin:0;padding-left:22px;display:grid;gap:8px}
.help-faq details{border-top:1px solid var(--line)}.help-faq details:first-child{border-top:0}.help-faq summary{min-height:44px;padding:11px 0;cursor:pointer;font-weight:650}.help-faq details p{padding:0 0 12px;color:#3d3747}
.help-buttons{display:flex;flex-wrap:wrap;gap:8px}
@media(max-width:720px){
  dialog.setup-wizard{width:100%;max-width:100%;height:100dvh;max-height:100dvh;margin:0;border-radius:0}
  .wizard-inner{max-height:100dvh}.wizard-head{padding:14px 16px 2px}.wizard-dots{padding:6px 16px 12px}.wizard-step-head{padding:14px 16px 0}.wizard-body{padding:10px 16px 14px}.wizard-status{margin:0 16px 8px}
  .wizard-dot-label{display:none}.wizard-dots li{min-width:34px}.wizard-dots li:not(:last-child)::after{left:calc(50% + 16px);right:calc(-50% + 16px)}
  .wizard-foot{padding:10px 16px calc(10px + env(safe-area-inset-bottom))}.wizard-foot #wizard-hide{order:2;width:100%;text-align:center}.wizard-nav{width:100%}.wizard-nav button{flex:1 1 0;padding-inline:8px}
  .wizard-counts{grid-template-columns:repeat(2,minmax(0,1fr))}.wizard-actions button{width:100%}
  .wizard-address{flex-direction:column;align-items:flex-start}
  .wizard-resume{left:16px;right:16px;bottom:16px}
  dialog.help-panel{inset:auto 0 0 0;width:100%;height:auto;max-height:85dvh;border-radius:18px 18px 0 0}
  .help-inner{max-height:85dvh}.help-head{padding:14px 16px 10px}.help-body{padding:4px 16px calc(20px + env(safe-area-inset-bottom))}
  .help-head::before{content:"";position:absolute;top:6px;left:calc(50% - 20px);width:40px;height:4px;border-radius:2px;background:var(--line)}
  .help-buttons button{flex:1 1 auto}
}
@media(prefers-reduced-motion:no-preference){dialog.help-panel[open]{animation:help-in .18s ease-out}@media(max-width:720px){dialog.help-panel[open]{animation-name:help-up}}}
@keyframes help-in{from{transform:translateX(24px);opacity:.6}to{transform:none;opacity:1}}
@keyframes help-up{from{transform:translateY(24px);opacity:.6}to{transform:none;opacity:1}}
.join-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.6em;letter-spacing:.04em;user-select:all}
/* 勤怠一覧：CSV出力の列選択（チェック＋上下の並べ替え）。スマホ幅では説明を次の行に折り返す。 */
.export-columns{border:0;border-top:1px solid var(--line);padding:12px 0 0;margin:0}.export-columns legend{font-weight:650;color:var(--muted);padding-right:12px}
.export-column{display:flex;align-items:center;gap:6px 10px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding:6px 0}.export-column .check-label{flex:1 1 220px;min-height:40px;align-self:auto}
.export-column .export-move{display:flex;gap:4px}.export-column .export-move button{min-width:44px;min-height:40px}.export-column .export-description{flex-basis:100%;margin:0 0 4px 26px;font-size:13px}

/* 有休の付与予定（勤怠一覧）：1440px 幅で1行に収まるよう、週所定の入力欄と確認欄を詰める。 */
table.grant-proposals td { vertical-align: top; white-space: pre-line; }
table.grant-proposals th:first-child, table.grant-proposals td:first-child { min-width: 11em; }
table.grant-proposals .grant-confirm { display: flex; gap: 6px; align-items: flex-start; font-size: 0.86rem; }
table.grant-proposals .grant-schedule { display: flex; gap: 4px; align-items: center; flex-wrap: wrap; }
table.grant-proposals .grant-schedule input { width: 4.5em; }
table.grant-proposals small.block { display: block; }
table.grant-proposals td p { margin: 4px 0 0; }
/* 定期請求：狭い画面では一覧と明細を縦並びにする（横スクロールにしない）。 */
@media(max-width:720px){#view-recurringInvoices table,#recurring-rows,#recurring-lines{display:block;min-width:0}#view-recurringInvoices thead{display:none}#recurring-rows tr,#recurring-lines tr{display:grid;padding:12px 0;border-bottom:1px solid var(--line)}#recurring-rows td,#recurring-lines td{display:flex;justify-content:space-between;align-items:center;gap:12px;border:0;padding:6px 0;min-width:0;overflow-wrap:anywhere}#recurring-rows td::before,#recurring-lines td::before{content:attr(data-label);font-weight:650;color:var(--muted);flex:none}#recurring-lines td input,#recurring-lines td select{max-width:62%}}
#recurring-rows td small.danger{display:block;color:var(--danger,#B3261E)}

/* お知らせのアンケート */
.survey-builder legend{font-weight:650;color:var(--muted);padding:0 6px}.survey-question{border:1px solid var(--line);border-radius:4px;padding:12px;display:grid;gap:12px;min-width:0}.survey-question .form-actions{padding-top:0}
.survey-results-dialog{max-width:min(760px,calc(100% - 24px));width:760px}.survey-results-dialog h3{font-size:15px;margin:18px 0 8px;overflow-wrap:anywhere}.survey-option{display:grid;grid-template-columns:minmax(0,1fr) 64px;gap:4px 10px;align-items:center;margin:6px 0}.survey-option span{overflow-wrap:anywhere}.survey-option strong{text-align:right;font-variant-numeric:tabular-nums}.survey-bar{grid-column:1/-1;height:10px;background:#EFECF4;border-radius:5px;overflow:hidden}.survey-bar>span{display:block;height:100%;background:var(--teal)}.survey-texts{margin:0;padding-left:20px}.survey-texts li{overflow-wrap:anywhere;margin:4px 0}

/* 打刻時の位置情報：勤務地の行（名称・緯度・経度・半径・現在地・削除）。スマートフォン幅では1列。 */
.punch-location-site{display:grid;grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr)) max-content max-content;gap:10px;align-items:end}
.punch-location-site label{min-width:0}
@media(max-width:720px){.punch-location-site{grid-template-columns:minmax(0,1fr)}.punch-location-site button{justify-self:start}}

/* セキュリティ（二段階認証・最近のログイン） */
.home-security{border:2px solid var(--teal);border-radius:14px;background:var(--accent-soft);padding:14px 18px;margin-bottom:24px;display:grid;gap:8px;justify-items:start}
.home-security p{margin:0}
.mfa-setup{display:grid;gap:12px;margin:12px 0;padding:16px;border:1px solid var(--line);border-radius:10px}
.mfa-setup .wizard-qr{width:180px;height:180px}
.mfa-steps{margin:0;padding-left:1.4em;display:grid;gap:4px}
#mfa-secret{word-break:break-all;font-family:ui-monospace,monospace}
.mfa-codes{margin:12px 0;padding:16px;border:2px solid var(--teal);border-radius:10px}
.recovery-codes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 24px;font-family:ui-monospace,monospace;font-size:16px}
@media(max-width:720px){.recovery-codes{grid-template-columns:1fr}}

/* 共用端末での打刻（打刻用端末・打刻カード・打刻できるネットワーク） */
#kiosk-section fieldset{display:flex;flex-wrap:wrap;gap:4px 18px;min-width:0}#kiosk-section fieldset legend{width:100%}.kiosk-qr svg{width:200px;height:200px;max-width:100%;background:#fff}.kiosk-code{font-size:24px;letter-spacing:.08em;font-variant-numeric:tabular-nums}#kiosk-section code{overflow-wrap:anywhere}
.punch-card-sheet{text-align:center}.punch-card-sheet svg{width:60mm;height:60mm}
#kiosk-section .row-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.sidebar nav{scrollbar-color:var(--side-line) transparent;scrollbar-width:thin}
#kiosk-list .list-row{flex-wrap:wrap}#kiosk-list .kiosk-settings{flex:1 0 100%;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}

/* 入社・退社の手続き資料（2026-10-06） */
.notice-box{margin:0 0 12px;padding:12px 14px;border-left:4px solid var(--teal);background:#F6F4F9;border-radius:4px;line-height:1.6}
.check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:4px 16px}
.hrc-template-items{display:grid;gap:12px}.hrc-template-item{border:1px solid var(--line);border-radius:6px;padding:12px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px}.hrc-template-item .wide{grid-column:1/-1}.hrc-template-item .row-actions{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap}
.hrc-items{display:grid;gap:12px;margin:12px 0}.hrc-item{border:1px solid var(--line);border-radius:6px;padding:12px 14px;min-width:0;overflow-wrap:anywhere}.hrc-item header{display:flex;justify-content:space-between;gap:12px;align-items:baseline;flex-wrap:wrap}.hrc-item .hrc-value{white-space:pre-wrap;margin:8px 0}.hrc-item .hrc-files{display:flex;flex-direction:column;gap:6px;margin:6px 0}.hrc-item .hrc-file{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.hrc-item .hrc-return{color:var(--danger,#B23A48);margin:6px 0}.hrc-decision{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:8px}.hrc-decision label{flex-direction:row;align-items:center;font-weight:500}.hrc-decision input[type=text]{flex:1 1 220px}
.hrc-actions button{min-height:44px}.hrc-apply-row{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px solid var(--line);font-weight:500;flex-direction:row}.hrc-history{margin-top:16px}.hrc-history>summary{min-height:44px;padding:10px 0;cursor:pointer;color:var(--teal);font-weight:650}
.hrc-overdue td{background:var(--warn-soft,#fff0e8)}.hrc-overdue td:first-child{box-shadow:inset 3px 0 0 var(--warn,#955137)}
.hrc-preview img{max-width:100%;max-height:70vh;display:block;margin:12px auto 0}.hrc-preview{max-width:min(900px,calc(100% - 24px))}.hrc-preview iframe{width:min(860px,80vw);height:70vh;border:0;margin-top:12px}
@media(max-width:720px){.hrc-template-item{grid-template-columns:1fr}}
/* 外部API：発行直後のキー表示と curl の例（狭い画面でも横にはみ出さない） */
.api-secret{display:block;font-size:15px;overflow-wrap:anywhere;word-break:break-all;user-select:all}
.api-example{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--bg,#f4f7f7);border:1px solid var(--line,#E4E0EC);border-radius:5px;padding:10px 12px;font-size:13px}
/* 案件（案件別の売上・原価・粗利） */
.fact-list{display:grid;grid-template-columns:minmax(140px,max-content) minmax(0,1fr);gap:6px 18px;margin:8px 0 16px}.fact-list dt{color:var(--muted)}.fact-list dd{margin:0;font-weight:650;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.budget-bar{display:inline-flex;align-items:center;gap:8px}.budget-bar meter{width:120px;height:12px}
#project-rows td{font-variant-numeric:tabular-nums}#project-rows td small{display:block}
@media(max-width:720px){.fact-list{grid-template-columns:minmax(0,1fr);gap:2px}.fact-list dd{margin-bottom:8px}#view-projects>.table-scroll table,#project-rows{display:block;min-width:0}#view-projects>.table-scroll thead{display:none}#project-rows tr{display:grid;padding:12px 0;border-bottom:1px solid var(--line)}#project-rows td{display:flex;justify-content:space-between;gap:12px;border:0;padding:6px 0;text-align:right;overflow-wrap:anywhere}#project-rows td::before{content:attr(data-label);font-weight:650;color:var(--muted);flex:none;text-align:left}}
#project-filter{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end}#project-filter label{flex:0 1 auto;min-width:140px}#project-filter .search-label{flex:1 1 220px}#project-filter select{min-width:120px}#project-filter button{white-space:nowrap;flex:0 0 auto}

/* データの移行（取り込み）：手順の表示と結果の表（2026-10-07） */
.import-steps{list-style:none;margin:0 0 16px;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.import-step{border:1px solid var(--line);border-top:4px solid #C9C3D6;border-radius:6px;padding:10px 12px;font-weight:600;color:var(--muted);background:var(--surface);overflow-wrap:anywhere}
.import-step.is-current{border-top-color:var(--teal);color:var(--ink)}
.import-step.is-done{border-top-color:var(--go,#2F8A66);color:var(--ink)}
.import-table td{vertical-align:top;overflow-wrap:anywhere}
.import-table select{max-width:100%}
.import-table tr.is-error td{background:#FFF4F2}
.check-row{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:6px}
.import-summary{display:flex;flex-wrap:wrap;gap:8px 18px;margin:12px 0;font-weight:600}
@media(max-width:720px){.import-steps{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
#data-import-options input[type=radio],form input[type=radio]{width:18px;height:18px;min-height:0;flex:0 0 auto;margin:0 8px 0 0;padding:0;accent-color:var(--teal);box-shadow:none}#data-import-options fieldset .check-label{display:flex;flex-direction:row;align-items:center;width:100%;min-height:40px}
/* デモ用の会社（架空のデータ）の帯：通常のお知らせと見分けられる色にする。 */
.message.demo-banner{background:var(--warn-soft);color:var(--warn);border:1px solid #EBCF9F}
/* 使う機能：機能ごとの「使う／使わない」（ラジオは他の画面と同じ 18px）と「使える社員」。390px でも横にはみ出さない。 */
#view-features .feature-table{min-width:0;width:100%}#view-features .feature-table td{vertical-align:middle}
#view-features .feature-table td:first-child small{display:block;color:var(--muted);font-weight:400;margin-top:2px}
#view-features .feature-switch{display:flex;flex-wrap:wrap;gap:0 18px}
#view-features .feature-switch .check-label{display:flex;flex-direction:row;align-items:center;min-height:40px;align-self:auto;font-weight:500;white-space:nowrap}
#view-features input[type=radio]{width:18px;height:18px;min-height:0;flex:0 0 auto;margin:0 8px 0 0;padding:0;accent-color:var(--teal);box-shadow:none}
#view-features .feature-table select{max-width:220px}
#view-features .feature-off td:first-child strong{color:var(--muted)}
#view-permissions td input[type=checkbox]{width:18px;height:18px}
@media(max-width:720px){#view-features .feature-table{display:block}#view-features .feature-table thead{display:none}#view-features .feature-table tbody{display:grid;gap:14px}#view-features .feature-table tr{display:grid;border-bottom:1px solid var(--line);padding-bottom:10px}#view-features .feature-table td{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;padding:6px 0;border:0}#view-features .feature-table td::before{content:attr(data-label);color:var(--muted);font-weight:600;flex:0 0 auto}#view-features .feature-table td:first-child{display:block}#view-features .feature-table td:first-child::before{display:none}#view-features .feature-table select{width:170px;min-width:0}}
