:root{--bg:#f3f1ec;--surface:#fff;--ink:#1f2430;--ink-soft:#5c6370;--line:#d9d5cc;--accent:#2f5d9e;--accent-ink:#fff;--accent-soft:#e4ecf7;--warn-bg:#fff4d6;--warn-line:#e0b84a;--danger:#b3372f;--bar:#26303f;--bar-ink:#f4f1ea;--bar-soft:#a9b3c2;--bar-button:#3a4658;--active:#f2c230;--active-ink:#1f2430;color:var(--ink);background:var(--bg);-webkit-text-size-adjust:100%;font-family:Hiragino Sans,Hiragino Kaku Gothic ProN,Yu Gothic UI,Meiryo,system-ui,sans-serif}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);overscroll-behavior:none;margin:0}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:2px solid var(--active);outline-offset:2px}.app{grid-template-rows:auto minmax(0,1fr) auto;min-width:0;height:100dvh;display:grid}.main{min-width:0;padding:12px;overflow-y:auto}.topbar{padding:8px 12px;padding-top:calc(8px + env(safe-area-inset-top));background:var(--bar);color:var(--bar-ink);flex-direction:column;gap:8px;display:flex}.topbar-info{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.topbar-date{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:15px;font-weight:700}.badge{background:var(--active);color:var(--active-ink);vertical-align:1px;border-radius:3px;margin-left:6px;padding:1px 6px;font-size:11px;font-weight:700;display:inline-block}.topbar-balance{white-space:nowrap;align-items:baseline;gap:6px;display:flex}.topbar-label{color:var(--bar-soft);font-size:11px}.topbar-amount{font-variant-numeric:tabular-nums;font-size:15px;font-weight:700}.speed-buttons{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.speed-button{background:var(--bar-button);min-height:40px;color:var(--bar-ink);white-space:nowrap;border:0;border-radius:6px;padding:0 4px;font-size:13px;font-weight:700}.speed-button[aria-pressed=true]{background:var(--active);color:var(--active-ink)}.nav{background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.nav-item{min-height:52px;color:var(--ink-soft);white-space:nowrap;background:0 0;border:0;border-top:3px solid #0000;padding:0 2px;font-size:13px;font-weight:700}.nav-item[aria-current=page]{color:var(--accent);border-top-color:var(--accent);background:var(--accent-soft)}.screen{max-width:720px;margin:0 auto}.screen-title{margin:0 0 10px;font-size:17px}.site-view{justify-content:center;width:100%;max-width:640px;margin:0 auto;display:flex}.site-canvas{image-rendering:pixelated;image-rendering:crisp-edges;image-rendering:pixelated;border:2px solid var(--ink);box-sizing:content-box;background:#8cc0e8;display:block}.site-status{text-align:center;color:var(--ink-soft);margin:10px 0 0;font-size:13px}.placeholder{border:2px dashed var(--line);text-align:center;color:var(--ink-soft);border-radius:8px;margin:0;padding:40px 12px;font-weight:700}.notice{border:1px solid var(--warn-line);background:var(--warn-bg);border-radius:8px;margin-top:12px;padding:10px 12px;font-size:14px}.notice-title{margin:0 0 4px;font-weight:700}.notice ul{margin:0;padding-left:20px}.panel{border:1px solid var(--line);background:var(--surface);border-radius:8px;margin-top:16px;padding:12px}.panel-title{margin:0 0 6px;font-size:14px}.panel-text{color:var(--ink-soft);margin:0 0 10px;font-size:13px;line-height:1.6}.danger-button{border:1px solid var(--danger);background:var(--surface);min-height:44px;color:var(--danger);border-radius:6px;padding:0 16px;font-size:14px;font-weight:700}@media (width>=768px){.app{grid-template-rows:auto minmax(0,1fr);grid-template-columns:180px minmax(0,1fr)}.topbar{flex-direction:row;grid-column:1/-1;justify-content:space-between;align-items:center;padding:10px 16px}.topbar-info{gap:24px}.speed-buttons{grid-template-columns:repeat(4,96px)}.nav{border-top:0;border-right:1px solid var(--line);flex-direction:column;grid-area:2/1;padding:8px 0;display:flex}.nav-item{text-align:left;border-top:0;border-left:4px solid #0000;min-height:48px;padding:0 16px;font-size:15px}.nav-item[aria-current=page]{border-left-color:var(--accent)}.main{grid-area:2/2;padding:20px}}.kind-tabs{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-bottom:12px;display:grid}.kind-tab{border:1px solid var(--line);background:var(--surface);min-height:40px;color:var(--ink-soft);white-space:nowrap;border-radius:6px;padding:0 2px;font-size:13px;font-weight:700}.kind-tab[aria-selected=true]{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.list-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.list-count{color:var(--ink-soft);margin:0;font-size:13px}.record-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.record{border:1px solid var(--line);background:var(--surface);text-align:left;border-radius:8px;flex-direction:column;gap:3px;width:100%;min-width:0;padding:10px 12px;display:flex}button.record:active{background:var(--accent-soft)}.record-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.record-title{overflow-wrap:anywhere;min-width:0;font-size:15px;font-weight:700}.record-tag{background:var(--accent-soft);color:var(--accent);border-radius:10px;flex:none;padding:1px 8px;font-size:12px;font-weight:700}.record-line{color:var(--ink-soft);overflow-wrap:anywhere;font-variant-numeric:tabular-nums;font-size:13px}.record-warn{color:var(--danger)}.readonly-note,.empty{color:var(--ink-soft);margin:0 0 10px;font-size:13px}.editor-title{justify-content:space-between;align-items:baseline;gap:8px;margin:0 0 10px;font-size:15px;display:flex}.editor-id{color:var(--ink-soft);font-size:12px;font-weight:400}.master-form{flex-direction:column;gap:12px;display:flex}.field{flex-direction:column;gap:4px;min-width:0;display:flex}.field-label{font-size:13px;font-weight:700}.field-input{border:1px solid var(--line);background:var(--surface);width:100%;min-width:0;min-height:44px;color:var(--ink);font:inherit;border-radius:6px;padding:0 10px;font-size:16px}.field-input:focus{outline:2px solid var(--accent);outline-offset:-1px}.field-input[aria-invalid=true]{border-color:var(--danger)}.field-input:disabled{background:var(--bg);color:var(--ink-soft)}.field-hint{color:var(--ink-soft);margin:0;font-size:12px}.field-error{color:var(--danger);margin:0;font-size:12px;font-weight:700}.field-static{background:var(--bg);border-radius:6px;align-items:center;min-height:44px;margin:0;padding:0 10px;font-size:16px;display:flex}.field-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.field-group{border:1px solid var(--line);background:var(--surface);border-radius:8px;flex-direction:column;gap:10px;min-width:0;margin:0;padding:10px 12px 12px;display:flex}.field-group-title{padding:0 4px;font-size:13px;font-weight:700}.checkbox{align-items:center;gap:8px;min-height:36px;font-size:14px;display:flex}.checkbox input{flex:none;width:20px;height:20px;margin:0}.branch-row{grid-template-columns:88px minmax(0,1fr) 44px;align-items:start;gap:8px;display:grid}.icon-button{border:1px solid var(--line);background:var(--surface);width:44px;height:44px;color:var(--danger);border-radius:6px;margin-top:21px;font-size:18px}.icon-button:disabled,.danger-button:disabled{border-color:var(--line);color:var(--ink-soft);cursor:not-allowed}.form-buttons{grid-template-columns:1fr 2fr;gap:8px;display:grid}.primary-button,.secondary-button{white-space:nowrap;border-radius:6px;min-height:44px;padding:0 14px;font-size:14px;font-weight:700}.primary-button{background:var(--accent);color:var(--accent-ink);border:0}.secondary-button{border:1px solid var(--line);background:var(--surface);color:var(--ink)}.form-errors{border:1px solid var(--danger);color:var(--danger);border-radius:8px;margin:0;padding:10px 12px 10px 28px;font-size:13px}.form-note{color:var(--ink-soft);margin:0;font-size:13px}.delete-panel{border-top:1px solid var(--line);flex-direction:column;gap:6px;margin-top:20px;padding-top:14px;display:flex}.delete-panel .danger-button{align-self:flex-start}.delete-reasons{color:var(--ink-soft);margin:0;padding-left:20px;font-size:13px}@media (width>=768px){.kind-tabs{grid-template-columns:repeat(7,minmax(0,1fr))}}.stack{flex-direction:column;gap:12px;display:flex}.stack>.panel{margin-top:0}.panel-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.panel-head .panel-title{overflow-wrap:anywhere;min-width:0;margin:0}.sub-title{margin:8px 0 0;font-size:14px}.wide{width:100%}.back-button{min-height:40px;color:var(--accent);background:0 0;border:0;align-self:flex-start;padding:0 4px;font-size:14px;font-weight:700}.kind-tabs-3{grid-template-columns:repeat(3,minmax(0,1fr))}@media (width>=768px){.kind-tabs-3{grid-template-columns:repeat(3,minmax(0,160px))}}.kv{flex-direction:column;margin:0;display:flex}.kv-row{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:6px 0;font-size:14px;display:flex}.kv-row:last-child{border-bottom:0}.kv dt{color:var(--ink-soft);flex:none}.kv dd{text-align:right;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;min-width:0;margin:0}.notice-info{border-color:var(--line);background:var(--accent-soft)}.notice-ok{background:#e8f4e2;border-color:#6aa84f}.notice-warn{border-color:var(--warn-line);background:var(--warn-bg)}.stack>.notice{margin-top:0}.bullets{margin:0;padding-left:20px;font-size:14px;line-height:1.7}.badge-count{background:var(--danger);color:#fff;border-radius:10px;padding:1px 8px;font-size:12px;font-weight:700}.inbox-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.inbox-item{border:1px solid var(--line);background:var(--bg);text-align:left;border-radius:8px;flex-direction:column;gap:3px;width:100%;padding:10px 12px;display:flex}.inbox-unread{border-color:var(--accent);background:var(--surface);border-left-width:4px}.inbox-head{justify-content:space-between;gap:8px;display:flex}.inbox-kind{background:var(--accent-soft);color:var(--accent);border-radius:10px;padding:0 8px;font-size:12px;font-weight:700}.inbox-kind-won{color:#3c7a2a;background:#e8f4e2}.inbox-kind-lost,.inbox-kind-expired{color:var(--danger);background:#f2e4e2}.inbox-kind-negotiation{background:var(--warn-bg);color:#8a6512}.inbox-date{color:var(--ink-soft);font-size:12px}.inbox-title{overflow-wrap:anywhere;font-size:14px;font-weight:700}.inbox-body{color:var(--ink-soft);overflow-wrap:anywhere;font-size:13px;line-height:1.6}.estimate-lines{flex-direction:column;gap:10px;margin:0 0 12px;padding:0;list-style:none;display:flex}.estimate-line{border-bottom:1px solid var(--line);padding-bottom:10px}.estimate-line-head{justify-content:space-between;gap:8px;margin-bottom:6px;display:flex}.estimate-line-label{overflow-wrap:anywhere;min-width:0;font-size:14px;font-weight:700}.estimate-line-amount{font-variant-numeric:tabular-nums;flex:none;font-size:14px;font-weight:700}.estimate-line-inputs,.estimate-rates{grid-template-columns:2fr 3fr;gap:8px;display:grid}.estimate-rates{grid-template-columns:1fr 1fr;margin-bottom:12px}.mini-field{min-width:0;color:var(--ink-soft);flex-direction:column;gap:2px;font-size:12px;font-weight:700;display:flex}.estimate-market{color:var(--ink-soft);margin:4px 0 0;font-size:12px}.estimate-market-diff{color:var(--accent);font-weight:700}.budget-ratio{color:var(--ink-soft);text-align:right;margin:8px 0 12px;font-size:13px}.budget-ratio-over{color:var(--danger);font-weight:700}.doc{border:1px solid var(--ink);background:var(--surface);padding:16px 14px}.doc-title{text-align:center;letter-spacing:.3em;margin:0 0 12px;font-size:18px;font-weight:700}.doc-to{border-bottom:1px solid var(--ink);margin:0;padding-bottom:2px;font-size:16px;font-weight:700}.doc-subject{margin:8px 0 0;font-size:14px}.doc-total{margin:8px 0 12px;font-size:14px}.doc-total strong{font-size:18px}.doc-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13px}.doc-table th,.doc-table td{border-bottom:1px solid var(--line);text-align:left;padding:5px 4px;font-weight:400}.doc-table thead th{border-bottom:1px solid var(--ink);color:var(--ink-soft);font-size:12px}.doc-table tfoot th,.doc-table tfoot td{font-weight:700}.doc-table .num{text-align:right;white-space:nowrap}.journal-preview{border:1px dashed var(--ink-soft);background:var(--surface);border-radius:8px;padding:10px 12px}.journal-preview-title{margin:0 0 6px;font-size:13px;font-weight:700}.journal-none{color:var(--ink-soft);margin:0;font-size:13px;line-height:1.6}.journal-table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:13px}.journal-table th{border-bottom:1px solid var(--ink);text-align:left;color:var(--ink-soft);padding:4px;font-size:12px}.journal-table td{border-bottom:1px solid var(--line);vertical-align:top;padding:6px 4px}.journal-table td:first-child{border-right:1px solid var(--line)}.journal-account{overflow-wrap:anywhere;font-weight:700;display:block}.journal-amount{text-align:right;font-variant-numeric:tabular-nums;display:block}.journal-desc{color:var(--ink-soft);overflow-wrap:anywhere;margin:6px 0 0;font-size:12px}.terms{flex-direction:column;gap:6px;margin:0 0 8px;padding:0;list-style:none;display:flex}.term{border-bottom:1px solid var(--line);flex-direction:column;padding:6px 0;display:flex}.term-head{font-variant-numeric:tabular-nums;justify-content:space-between;gap:8px;font-size:14px;display:flex}.term-note{color:var(--ink-soft);font-size:12px}.budget-row{grid-template-columns:minmax(0,1fr) 132px;align-items:center;gap:8px;display:grid}.budget-label{overflow-wrap:anywhere;flex-direction:column;min-width:0;font-size:14px;font-weight:700;display:flex}.budget-estimate{color:var(--ink-soft);font-size:12px;font-weight:400}.budget-input{text-align:right}.budget-fixed{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}.status-won,.status-awaitingStart{color:#3c7a2a;background:#e8f4e2}.status-lost,.status-expired{color:var(--danger);background:#f2e4e2}.primary-button:disabled{background:var(--line);color:var(--ink-soft);cursor:not-allowed}.seed-line{margin:0 0 4px;font-size:14px}.seed-value{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-size:16px}.seed-reset{margin-top:10px}.muted{color:var(--ink-soft);font-weight:400}.over{color:var(--danger);font-weight:700}.link-button{color:var(--accent);background:0 0;border:0;padding:4px 2px;font-size:13px;font-weight:700;text-decoration:underline}.compare-table{border-collapse:collapse;table-layout:fixed;font-variant-numeric:tabular-nums;width:100%;font-size:13px}.compare-table th,.compare-table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;overflow-wrap:anywhere;padding:6px 3px}.compare-table thead th{color:var(--ink-soft);font-size:11px;font-weight:700}.compare-table thead th:not(:first-child){text-align:right}.compare-table th[scope=row]{width:34%;font-weight:700}.compare-table tfoot th,.compare-table tfoot td{border-bottom:0;font-weight:700}.compare-table .num{text-align:right}.compare-sub{color:var(--ink-soft);font-size:11px;font-weight:400;display:block}.vendor-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.vendor{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:8px;align-items:flex-start;gap:10px;padding:10px;display:flex}.vendor input{flex:none;width:20px;height:20px;margin:2px 0 0}.vendor-picked{border-color:var(--accent);background:var(--accent-soft)}.vendor-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.vendor-head{justify-content:space-between;gap:8px;display:flex}.vendor-name{overflow-wrap:anywhere;min-width:0;font-size:14px;font-weight:700}.vendor-quote{font-variant-numeric:tabular-nums;flex:none;font-weight:700}.vendor-meta{color:var(--ink-soft);font-size:12px}.badge-warn{background:var(--warn-bg);color:#8a6512;border-radius:8px;margin-left:6px;padding:0 6px;font-weight:700;display:inline-block}.tax-note{color:var(--ink-soft);margin:0;font-size:13px;line-height:1.6}.tax-warn-text{margin:0;font-size:13px;line-height:1.7}.compare-progress{grid-template-columns:1fr 1fr;gap:8px;margin:10px 0;display:grid}.compare-progress>div{background:var(--bg);border-radius:8px;flex-direction:column;padding:8px;display:flex}.compare-label{color:var(--ink-soft);font-size:12px}.compare-value{font-variant-numeric:tabular-nums;font-size:22px}.compare-note{color:var(--ink-soft);font-size:11px}.assess-input{margin-bottom:10px}.payable-list{flex-direction:column;margin:8px 0 0;padding:0;list-style:none;display:flex}.payable{border-top:1px solid var(--line);justify-content:space-between;gap:8px;padding:6px 0;font-size:13px;display:flex}.payable .num{font-variant-numeric:tabular-nums;flex:none}.danger-button.wide{background:var(--danger);color:#fff}.process-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.process-step{flex-direction:column;gap:4px;font-size:13px;display:flex}.process-head{justify-content:space-between;gap:8px;font-weight:700;display:flex}.progress{background:var(--bg);border-radius:4px;height:8px;display:block;overflow:hidden}.progress-bar{background:var(--accent);height:100%;display:block}.journal-element{font-size:12px;font-weight:400}.journal-memo{color:var(--danger);margin-top:1px;font-size:11px;font-weight:700;display:block}.journal-row-memo td:first-child{background:#fdf3f1}.journal-dates{color:var(--ink-soft);margin:0 0 6px;font-size:12px}.journal-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.journal-entry{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:10px 12px}.journal-entry-head{justify-content:space-between;gap:8px;font-size:13px;font-weight:700;display:flex}.journal-processed{background:var(--warn-bg);color:#8a6512;border-radius:8px;margin-left:8px;padding:0 6px;font-size:12px}.journal-entry-no{color:var(--ink-soft);flex:none;font-weight:400}.journal-entry-desc{overflow-wrap:anywhere;margin:4px 0 6px;font-size:13px}.trait-panel{margin-top:16px}.trait-level{margin:0;font-size:14px}.gameover{z-index:10;background:#141820d1;justify-content:center;align-items:flex-start;padding:24px 12px;display:flex;position:fixed;inset:0;overflow-y:auto}.gameover-card{background:var(--surface);border-radius:12px;width:100%;max-width:480px;padding:20px 16px}.gameover-date{color:var(--ink-soft);text-align:center;margin:0;font-size:13px}.gameover-title{color:var(--danger);text-align:center;letter-spacing:.4em;margin:4px 0 12px;font-size:32px}.gameover-reason{margin:0 0 8px;font-size:14px;font-weight:700;line-height:1.7}.gameover-text{color:var(--ink-soft);margin:0;font-size:13px;line-height:1.7}.topbar-balance{flex-wrap:wrap}.topbar-pending{background:var(--active);color:var(--active-ink);border-radius:8px;padding:1px 6px;font-size:11px;font-weight:700}.reason-line{border-left:4px solid var(--accent);background:var(--accent-soft);margin:0;padding:8px 10px;font-size:13px;line-height:1.6}.billing-overdue,.billing-received{background:var(--warn-bg);color:#8a6512}.billing-reconciled,.status-settled,.status-handedOver{color:#3c7a2a;background:#e8f4e2}.filter-group{gap:8px}.filter-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;display:grid}.filter-foot{justify-content:space-between;align-items:center;font-size:13px;display:flex}.asof{max-width:360px}.tb-table{font-size:12px}.tb-table th[scope=row]{width:32%}.tb-zero{color:var(--ink-soft)}.ledger-group th{color:var(--ink-soft);background:var(--bg);padding-top:10px;font-size:11px}.ledger-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.ledger-entry{border:1px solid var(--line);background:var(--surface);border-radius:8px;flex-direction:column;gap:2px;padding:8px 10px;font-size:13px;display:flex}.ledger-transfer{background:var(--bg)}.ledger-memo{border-color:#e7b8b2}.ledger-head{justify-content:space-between;gap:8px;font-weight:700;display:flex}.ledger-head .num{font-variant-numeric:tabular-nums;flex:none}.ledger-body{overflow-wrap:anywhere}.cf-table{font-size:12px}.cf-row{cursor:pointer}.cf-row:hover,.cf-row[aria-expanded=true]{background:var(--accent-soft)}.cf-lowest{outline:2px solid var(--danger);outline-offset:-2px}.cf-item{align-items:flex-start}.cf-item-body{overflow-wrap:anywhere;min-width:0}.cf-link{text-align:left;padding:2px 0;display:block}.cf-confirmed{color:#3c7a2a;background:#e8f4e2}.cf-projected{background:var(--warn-bg);color:#8a6512}
