.subtabs{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.form-row{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;flex-wrap:wrap;align-items:flex-end;gap:8px 14px;padding:10px 14px;display:flex}.form-row>label:not(.field){align-items:center;gap:6px;display:inline-flex}.field{color:var(--muted);gap:3px;font-size:12px;font-weight:600;display:grid}.field input,.field select{color:var(--text);font-size:14px;font-weight:400}.field input:disabled,.field select:disabled{background:var(--bg);color:var(--muted)}.field input[type=number]{text-align:right;font-variant-numeric:tabular-nums;width:120px}.params{flex-wrap:wrap;gap:12px 18px;max-width:800px;display:flex}.params-title{letter-spacing:.04em;color:var(--brand);border-bottom:1px solid var(--line);max-width:800px;margin:6px 0 0;padding-bottom:3px;font-size:13px}.field input[inputmode=decimal]{text-align:right;font-variant-numeric:tabular-nums;width:120px}.rate-table{border-collapse:collapse;background:var(--panel);border:1px solid var(--line);align-self:flex-start;width:auto;max-width:480px}.rate-table th,.rate-table td{border-bottom:1px solid var(--line);padding:6px 12px;font-size:14px}.rate-table th{background:var(--bg);color:var(--muted);text-align:left;font-size:12px;font-weight:600}.rate-table td input{text-align:right;font-variant-numeric:tabular-nums;width:130px}.rate-table td.num{text-align:right;font-variant-numeric:tabular-nums;min-width:90px}.rate-table th:nth-child(n+2){text-align:right}.combo{background:var(--panel);border:1px solid var(--line);min-width:240px;box-shadow:var(--shadow);border-radius:8px;overflow:hidden}.combo-input{box-sizing:border-box;border:0;border-bottom:1px solid var(--line);border-radius:0;outline:none;width:100%;padding:8px 10px;font-size:14px}.combo-list{max-height:220px;margin:0;padding:4px;list-style:none;overflow-y:auto}.combo-list li{cursor:pointer;border-radius:6px;padding:6px 10px;font-size:14px}.combo-list li:hover{background:var(--bg)}.combo-list li.on{background:#e8f0fe;font-weight:600}.combo-wrap{position:relative}.combo-wrap>input{box-sizing:border-box;width:100%}.combo-drop{z-index:20;min-width:100%;position:absolute;top:calc(100% + 4px);left:0}.checks{align-items:center;gap:12px;min-height:32px;display:flex}.checks label{color:var(--text);align-items:center;gap:4px;font-size:14px;font-weight:400;display:inline-flex}.plan-table-wrap{align-self:flex-start;max-width:100%;min-height:0;overflow:auto}.plan-table{max-width:none}.plan-table td{white-space:nowrap}.plan-table .plan-name input{text-align:left;font-variant-numeric:normal}.plan-table th.num{text-align:right}.plan-table th:nth-child(-n+6),.plan-table th:last-child:not(.num){text-align:left}.plan-table tr.archived td{color:var(--muted);background:var(--bg)}.plan-table .ops{gap:6px;display:inline-flex}.tag{background:var(--line);color:var(--muted);border-radius:999px;margin-left:6px;padding:0 8px;font-size:12px}button.name-edit{color:inherit;cursor:text;text-align:left;background:0 0;border:1px solid #0000;margin:-3px -7px;padding:2px 6px}button.name-edit:hover:not(:disabled){background:var(--panel);border-color:var(--line-strong)}button.danger{color:var(--warn);border-color:var(--warn-line)}button.danger:hover:not(:disabled){background:var(--warn-bg);border-color:var(--warn)}button.danger[type=submit]:not(:disabled){background:var(--warn);border-color:var(--warn);color:#fff}.delete-box{background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:8px;align-self:flex-start;max-width:760px;padding:12px 16px}.delete-box h3{color:var(--warn);margin:0 0 6px;font-size:15px}.delete-box p{margin:0 0 8px;line-height:1.6}.delete-box form{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.delete-box label{align-items:center;gap:8px;display:inline-flex}:root{--bg:#f2f4f7;--panel:#fff;--line:#dfe3e8;--line-strong:#c9cfd7;--text:#1c2430;--muted:#667085;--brand:#14284b;--brand-2:#1d3a6b;--accent:#1b5fc1;--accent-hover:#164fa3;--accent-soft:#e8f0fc;--warn:#c62828;--warn-bg:#fdecea;--warn-line:#f3b8b2;--ok-bg:#e7f5ec;--ok:#1b6b3a;--radius:6px;--shadow:0 1px 2px #1018280f;color:var(--text);background:var(--bg);font-family:Hiragino Sans,Yu Gothic UI,Meiryo,system-ui,sans-serif;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{border:1px solid var(--line-strong);background:var(--panel);color:var(--text);border-radius:var(--radius);cursor:pointer;padding:5px 12px;transition:background .12s,border-color .12s}button:hover:not(:disabled){background:#f5f7fa;border-color:#aab2bd}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button:disabled{opacity:.45;cursor:default}button.on{background:var(--accent);border-color:var(--accent);color:#fff}button.on:hover:not(:disabled){background:#164fa3;border-color:#164fa3}input,select{border:1px solid var(--line-strong);border-radius:var(--radius);color:var(--text);background:#fff;padding:5px 8px}input[type=checkbox]{accent-color:var(--accent)}.center{text-align:center;place-items:center;gap:12px;min-height:100vh;padding:16px;display:grid}.error{color:var(--warn)}.muted{color:var(--muted)}body:has(.login){background:linear-gradient(180deg, var(--brand) 0 38vh, var(--bg) 38vh) no-repeat;min-height:100vh;padding-top:12vh}.login{background:var(--panel);border:1px solid var(--line);border-radius:10px;gap:14px;width:min(380px,100% - 32px);margin:0 auto 16px;padding:28px 28px 24px;display:grid;box-shadow:0 8px 24px #1018282e}.login+.login{margin-top:0}.login h1{border-bottom:1px solid var(--line);color:var(--brand);margin:0 0 4px;padding-bottom:12px;font-size:19px}.login label{color:var(--muted);gap:4px;font-size:13px;display:grid}.login label input{color:var(--text);padding:8px 10px;font-size:14px}.login button{padding:8px 12px}.login button[type=submit]:not(:disabled){background:var(--accent);border-color:var(--accent);color:#fff}.login p{color:var(--muted);margin:0;font-size:13px}.app{grid-template-rows:auto auto auto 1fr;height:100vh;display:grid}header{background:var(--brand);color:#fff;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:10px 20px;display:flex}header strong{letter-spacing:.04em;padding-right:8px;font-size:16px}header strong:before{content:"";background:#6ea8ff;border-radius:2px;width:10px;height:10px;margin-right:10px;display:inline-block;box-shadow:6px 6px 0 -1px #3d7be0}header label{color:#c5d0e6;align-items:center;gap:8px;font-size:13px;display:flex}header select,header input{color:#fff;background:#ffffff1a;border-color:#ffffff47}header select option{color:var(--text)}header input::placeholder{color:#9fb0cf}header button{color:#fff;background:0 0;border-color:#fff6}header button:hover:not(:disabled){background:#ffffff1f;border-color:#fff}header button.on{color:var(--brand);background:#fff;border-color:#fff}header button.on:hover:not(:disabled){background:#fff;border-color:#fff}header .muted{color:#c5d0e6}header :focus-visible{outline-color:#9ec2ff}.spacer{flex:1}.seg{display:inline-flex}.seg button{border-radius:0}.seg button+button{margin-left:-1px}.seg button:first-child{border-radius:var(--radius) 0 0 var(--radius)}.seg button:last-child{border-radius:0 var(--radius) var(--radius) 0}nav{background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:0 4px;padding:0 20px;display:flex}nav button{color:var(--muted);background:0 0;border:none;border-bottom:3px solid #0000;border-radius:0;padding:11px 16px 9px;font-weight:500}nav button:hover:not(:disabled){color:var(--text);border-color:#0000;border-bottom-color:var(--line-strong);background:0 0}nav button.on{color:var(--accent);border-bottom-color:var(--accent);background:0 0;font-weight:700}nav button.on:hover:not(:disabled){border-color:#0000;border-bottom-color:var(--accent);background:0 0}nav .badge,nav .notice,nav>.muted{margin-left:8px}nav>.badge{margin-left:auto}.badge{color:#7a5600;background:#fff4d6;border:1px solid #f0dca0;border-radius:999px;padding:2px 10px;font-size:12px}.info{background:var(--ok-bg);color:var(--ok);border:1px solid #b7dfc4;border-radius:999px;margin-left:8px;padding:2px 10px;font-size:12px}.notice{background:var(--warn-bg);color:var(--warn);border:1px solid var(--warn-line);cursor:pointer;border-radius:999px;padding:2px 10px;font-size:12px}main{min-height:0;padding:16px 20px}.scope-bar{flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:8px 20px 0;font-size:13px;display:flex}.scope-bar .scope-fy,.scope-bar .scope-period{color:var(--accent);font-size:16px;font-weight:700}.scope-bar .scope-plan{color:var(--text)}.no-plan{max-width:760px}.no-plan h2{margin:4px 0 8px;font-size:18px}.no-plan p{margin:0 0 14px;line-height:1.6}.no-plan .form-row{align-items:end}.pane{height:100%;min-height:0}.pane[hidden]{display:none}header form.inline{align-items:center;gap:6px;display:inline-flex}.split{grid-template-columns:300px 1fr;gap:16px;height:100%;min-height:0;display:grid}.list{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;padding:10px;overflow:auto}.list input{width:100%;margin-bottom:8px}.list-head{letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--line);margin:14px 4px 4px;padding-bottom:3px;font-size:12px;font-weight:600}.list button{text-align:left;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;border-left:3px solid #0000;border-radius:4px;justify-content:space-between;gap:8px;width:100%;padding:5px 8px;display:flex;overflow:hidden}.list button:hover:not(:disabled){background:#f2f5f9}.list button.child{padding-left:22px}.list button .name{text-overflow:ellipsis;overflow:hidden}.list button .hours{flex:none}.list-note{color:var(--muted);text-align:right;margin:-4px 4px 0;font-size:11px}.list button.on{background:var(--accent-soft);border-left-color:var(--accent);color:var(--brand);font-weight:600}.list button.on:hover:not(:disabled){background:var(--accent-soft)}.list .hours{color:var(--muted);font-variant-numeric:tabular-nums}.list button.on .hours{color:inherit}.list .hours.warn{color:var(--warn);font-weight:600}.detail,.full{flex-direction:column;gap:10px;height:100%;min-height:0;display:flex}.detail h2{color:var(--brand);margin:0;font-size:17px}.detail h2 small{color:var(--muted);border:1px solid var(--line-strong);border-radius:999px;margin-left:10px;padding:1px 8px;font-size:12px;font-weight:400}.hint{color:var(--muted);margin:0}.kpis{flex-wrap:wrap;gap:10px;display:flex}.kpi{background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--brand-2);min-width:118px;box-shadow:var(--shadow);border-radius:8px;padding:8px 12px;display:grid}.kpi span{color:var(--muted);font-size:12px}.kpi b{font-variant-numeric:tabular-nums;font-size:17px}.kpi small{color:var(--muted);font-variant-numeric:tabular-nums}.kpi.bad{background:var(--warn-bg);border-color:var(--warn-line);border-top-color:var(--warn)}.kpi.bad b{color:var(--warn)}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.toolbar label{align-items:center;gap:6px;display:inline-flex}.grid{flex:1;min-height:300px}.grid.tall{min-height:500px}.grid.compact{max-width:760px}.grid.compact.narrow{max-width:520px}.grid.compact.wide{max-width:1100px}.ag-cell.ag-right-aligned-cell{font-variant-numeric:tabular-nums}.ag-cell.editable{background:var(--accent-soft)}.ag-cell.warn{color:var(--warn);font-weight:600}.ag-cell.neg{color:var(--warn)}.ag-cell.muted{color:var(--muted)}.ag-row.subtotal{background:#eaeff6;font-weight:600}.ag-row.group{background:#f6f8fb;font-weight:600}.ag-row.ref{color:var(--muted)}.ag-row.total{font-weight:700}.ag-row.total.ref{font-weight:500}.ag-row.total.main{background:var(--accent-soft)}@media (width<=800px){.split{grid-template-rows:220px 1fr;grid-template-columns:1fr}header,nav,main{padding-left:12px;padding-right:12px}}.grid.dragging .ag-row.drag-off{opacity:.35;cursor:not-allowed}.grid.dragging .ag-row.drag-off *{cursor:not-allowed}.ag-row.drop-above:before,.ag-row.drop-below:after{content:"";background:var(--accent);z-index:5;pointer-events:none;height:3px;position:absolute;left:0;right:0}.ag-row.drop-above:before{top:-1px}.ag-row.drop-below:after{bottom:-1px}.grid.members-grid{min-height:220px}.grid.terms-grid{flex:1;min-height:160px}.pair{flex:1;gap:16px;min-height:0;display:flex}.pair>.grid{flex:none;max-width:60%}.pair-side{flex-direction:column;flex:1;gap:10px;min-width:0;min-height:0;display:flex}.pair-side .params-title{margin-top:0}@media (width<=1100px){.pair{flex-direction:column}.pair>.grid{max-width:none;height:320px}}details.howto{color:var(--muted)}details.howto summary{cursor:pointer;width:fit-content;font-size:13px}details.howto .hint{max-width:1100px;margin-top:6px}.matrix .ag-header-group-cell.mx-group{border-bottom:1px solid var(--line);color:var(--muted);font-size:12px}.matrix .mx-head{justify-items:end;width:100%;line-height:1.25;display:grid;overflow:hidden}.matrix .mx-head span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.matrix .mx-head small{color:var(--muted);font-weight:400}.matrix .ag-cell.mx-cell{border-right:1px solid #eef1f5;padding-left:4px;padding-right:6px}.matrix .ag-cell.mx-cell.editable{background:0 0}.matrix .ag-cell.mx-cell.ag-column-hover{background:var(--ag-column-hover-color)}.matrix .ag-cell.mx-cell.ag-cell-focus:not(.ag-cell-range-selected):focus-within{border-right-color:var(--ag-range-selection-border-color)}.matrix .ag-cell.mx-cell.has{font-weight:600}.ag-cell.derived,.matrix .ag-cell.mx-cell.derived{color:var(--muted);background:#f3f4f6;font-style:italic}.matrix .ag-cell.mx-cell.conflict{color:var(--warn);box-shadow:inset 0 0 0 1px var(--warn)}.matrix .mx-conflict{color:var(--warn);font-weight:600}.matrix .ag-cell{-webkit-user-select:none;user-select:none}.matrix .ag-cell.mx-sel{box-shadow:inset 0 0 0 1px #9dbbeb;background:#dbe7fb!important}.matrix .mx-selinfo{color:var(--accent,#1b5fc1);white-space:nowrap;font-weight:600}.ag-cell.diff{font-weight:600}.kpi.ref{border-top-color:var(--line-strong)}.kpi em{font-style:normal}.kpi em.neg{color:var(--warn)}.toolbar.metrics{gap:10px;font-size:13px}.dialog{border:1px solid var(--line);width:min(560px,100vw - 32px);box-shadow:var(--shadow);color:var(--text);border-radius:8px;padding:20px 24px}.dialog::backdrop{background:#0f172a59}.dialog h2{color:var(--brand);margin:0 0 12px;font-size:17px}.dialog p{margin:0 0 12px;line-height:1.6}.dialog .field{color:var(--muted);gap:4px;margin-bottom:8px;font-size:13px;display:grid}.dialog .field input{color:var(--text)}.dialog .done{border-radius:var(--radius);background:#eef7ee;border:1px solid #cfe6cf;margin-bottom:12px;padding:10px 12px}.dialog .done p{margin:0}.dialog .done ul{margin:6px 0 0;padding-left:20px;line-height:1.6}.dialog .actions{justify-content:flex-end;gap:8px;display:flex}.dialog button.primary:not(:disabled){background:var(--accent);border-color:var(--accent);color:#fff}
