.app{--primary:#0f766e;--primary-d:#115e59;--primary-l:#ccfbf1;--grey50:#f0fdfa;--thead:#e6fffa;--link:#0f766e;--surface:#ffffff;--r-card:4px;--r-btn:5px;--xl-grid:#c8e9e3;--xl-grid-h:#8ad3c9;--xl-mono:"Consolas","SF Mono","Roboto Mono",ui-monospace,monospace}.app ::selection{background:#0f766e2e}.app .mi.cur,.app .uc-mi.sel{background:#0f766e1a}.app .demo-bar{border-color:#0f766e47}.app .btn.contained:hover{background:var(--primary-d);box-shadow:0 1px 3px #0f5e5959}.app .btn.outlined{border-color:#0f766e80}.app .search input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #0f766e24}.app .fld input:focus,.app .fld select:focus,.app .fld textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #0f766e24}.app .search input,.app .fld input,.app .fld select,.app .fld textarea,.app .pg-btn{border-radius:4px}.app .chip{border-radius:3px}.app .chip.info{color:var(--primary-d);background:var(--primary-l)}.app .row-act.app{border-color:#0f766e80;color:var(--primary)}.app .cfbar .b{border-radius:2px 2px 0 0}.app .dm-card{border-radius:6px}.app .dm-x{border-radius:4px}.app .kpi-v{font-family:var(--xl-mono);font-variant-numeric:tabular-nums;letter-spacing:0}.app table.tbl{border-collapse:collapse}.app .tbl thead th{position:sticky;top:0;z-index:1;background:var(--thead);color:var(--primary-d);font-weight:700;font-size:12px;letter-spacing:.02em;padding:8px 10px;border:1px solid var(--xl-grid-h)}.app .tbl tbody td{padding:6px 10px;border:1px solid var(--xl-grid);color:var(--ink)}.app .tbl tbody tr:nth-child(2n){background:#f4fdfb}.app .tbl tbody tr:hover{background:#d7f5ef}.app .tbl tbody td.num,.app .tbl tbody td.num-em{font-family:var(--xl-mono);font-variant-numeric:tabular-nums;letter-spacing:0}.app .tbl td.num,.app .tbl th.num{text-align:right}#invBody,#payBody,#rcBody{counter-reset:xlrow}#invBody>tr,#payBody>tr,#rcBody>tr{counter-increment:xlrow}#invBody td:first-child,#payBody td:first-child,#rcBody td:first-child{position:relative;padding-left:44px}#invBody td:first-child:not(.tbl-empty):before,#payBody td:first-child:not(.tbl-empty):before,#rcBody td:first-child:not(.tbl-empty):before{content:counter(xlrow);position:absolute;left:0;top:0;bottom:0;width:34px;display:flex;align-items:center;justify-content:center;background:#eafbf7;border-right:1px solid var(--xl-grid-h);color:#5f8f88;font:600 11px/1 var(--xl-mono)}[data-screen=invoices] .tbl thead th:first-child,[data-screen=payments] .tbl thead th:first-child,[data-screen=reconcile] .tbl thead th:first-child{position:relative;padding-left:44px}[data-screen=invoices] .tbl thead th:first-child:before,[data-screen=payments] .tbl thead th:first-child:before,[data-screen=reconcile] .tbl thead th:first-child:before{content:"#";position:absolute;left:0;top:0;bottom:0;width:34px;display:flex;align-items:center;justify-content:center;background:#d5f5ef;border-right:1px solid var(--xl-grid-h);color:#4f7d77;font:700 11px/1 var(--xl-mono)}[data-screen=cashflow] .tbl thead th:first-child,[data-screen=cashflow] .tbl tbody td:first-child{background:#e6fffa;font-weight:600}.app .tbl-card{position:relative}.app .tbl-card:before{display:block;padding:7px 14px;font:500 12px/1.4 var(--xl-mono);letter-spacing:.03em;color:#4f7d77;background:linear-gradient(#f0fdfa,#e6fffa);border-bottom:1px solid var(--xl-grid-h);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[data-screen=invoices] .tbl-card:before{content:"E2  fx  =SUM(金額)  ·  請求元帳"}[data-screen=reconcile] .tbl-card:before{content:"D2  fx  =SUM(金額)  ·  消込シート"}[data-screen=payments] .tbl-card:before{content:"F2  fx  =SUM(金額)  ·  支払元帳"}[data-screen=cashflow] .tbl-card:before{content:"B2  fx  =TREND(現預金残高)  ·  資金繰り表"}.actcell{width:40px;text-align:center;padding-left:4px!important;padding-right:8px!important}.act-cell{text-align:right;white-space:nowrap}.row-del{opacity:0;border:none;background:transparent;color:#ea4335;cursor:pointer;font-size:13px;width:24px;height:24px;border-radius:6px;line-height:1;transition:opacity .12s,background .12s;vertical-align:middle}tr:hover .row-del{opacity:.9}.row-del:hover{background:#fce8e6;opacity:1}.act-cell .row-del{margin-left:6px}.row-act{display:inline-flex;align-items:center;height:28px;padding:0 12px;border-radius:8px;font:inherit;font-size:12px;font-weight:500;cursor:pointer;border:1px solid transparent;vertical-align:middle}.row-act.app{border-color:#4285f480;background:#fff;color:var(--primary)}.row-act.app:hover{background:var(--primary-l)}.row-act.rec{background:#e6f4ea;color:#137333}.row-act.rec:hover{background:#d4eddb}.tbl-empty{text-align:center!important;color:var(--muted);padding:34px 16px!important;cursor:default}#invBody tr:has(.tbl-empty):hover,#payBody tr:has(.tbl-empty):hover,#rcBody tr:has(.tbl-empty):hover{background:transparent}.tbl-foot{gap:20px;flex-wrap:wrap}.tbl-foot .pg-nav{display:inline-flex;gap:4px}.pg-btn{width:30px;height:30px;border:1px solid var(--divider);background:#fff;border-radius:8px;color:var(--muted);cursor:pointer;font-size:18px;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s}.pg-btn:hover:not(:disabled){border-color:var(--muted);background:var(--hover)}.pg-btn:disabled{opacity:.4;cursor:default}.fld-err{display:none;color:#d32f2f;font-size:12px;line-height:1.4}.fld.error input{border-color:#d32f2f}.fld.error input:focus{border-color:#d32f2f;box-shadow:0 0 0 3px #d32f2f1f}.fld.error .fld-err{display:block}.dm-overlay{position:fixed;inset:0;z-index:300;background:#08181473;display:flex;align-items:center;justify-content:center;padding:20px}.dm-overlay[hidden]{display:none}.dm-card{width:min(560px,100%);background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 30px 80px -20px #00000080}.dm-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid rgba(0,0,0,.06);font-size:16px;font-weight:500;color:#3c4043}.dm-x{border:none;background:#f1f3f4;width:30px;height:30px;border-radius:8px;cursor:pointer;color:#5f6368;font-size:13px}.dm-x:hover{background:#e3e6e8}.dm-body{padding:18px 20px}.dm-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid rgba(0,0,0,.06)}
