@import "https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&family=DM+Mono:wght@400;500&display=swap";:root{--bg:#0f1117;--surface:#181c27;--card:#1e2235;--card-h:#252a40;--input:#131722;--border:#ffffff14;--border2:#ffffff26;--tx1:#e8eaf0;--tx2:#8892a4;--tx3:#4f5668;--blue:#5b8dee;--blue-d:#5b8dee21;--green:#3ecf8e;--green-d:#3ecf8e21;--amber:#f5a623;--amber-d:#f5a62321;--red:#e5534b;--red-d:#e5534b21;--purple:#a78bfa;--purple-d:#a78bfa21;--teal:#2dd4bf;--teal-d:#2dd4bf21;--sans:"Noto Sans JP", sans-serif;--mono:"DM Mono", monospace;--r:8px;--rl:12px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--tx1);font-family:var(--sans);min-height:100vh;font-size:14px}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:100;justify-content:space-between;align-items:center;height:54px;padding:0 24px;display:flex;position:sticky;top:0}.logo{font-family:var(--mono);color:var(--blue);background:var(--blue-d);letter-spacing:.06em;border:1px solid #5b8dee40;border-radius:6px;padding:2px 9px;font-size:12px}.nav-tabs{gap:2px;margin-left:12px;display:flex}.nav-tab{color:var(--tx3);cursor:pointer;font-size:13px;font-family:var(--sans);background:0 0;border:none;border-radius:6px;padding:6px 14px;transition:all .15s}.nav-tab:hover{color:var(--tx2);background:#ffffff0a}.nav-tab.active{color:var(--tx1);background:#ffffff12}.nav-tab-external{color:var(--tx3);border-left:1px solid var(--border);margin-left:6px;padding-left:14px;font-size:12px;text-decoration:none}.nav-tab-external:hover{color:var(--blue);background:#5b8dee14}.btn{cursor:pointer;font-size:13px;font-weight:500;font-family:var(--sans);border:none;border-radius:6px;align-items:center;gap:6px;padding:7px 16px;transition:opacity .15s;display:inline-flex}.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover{opacity:.85}.btn-ghost{color:var(--tx2);border:1px solid var(--border);background:0 0}.btn-ghost:hover{border-color:var(--border2);color:var(--tx1)}.btn-sm{padding:5px 12px;font-size:12px}main{flex-direction:column;gap:20px;max-width:1000px;margin:0 auto;padding:24px;display:flex}.goal-card{background:var(--card);border:1px solid var(--border);border-radius:var(--rl);padding:20px 24px}.goal-header{justify-content:space-between;align-items:flex-start;margin-bottom:16px;display:flex}.goal-title{color:var(--tx3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px;font-size:11px}.goal-amount{font-size:28px;font-weight:700;font-family:var(--mono);color:var(--tx1)}.goal-meta{gap:24px;display:flex}.goal-meta-item{flex-direction:column;gap:3px;display:flex}.goal-meta-label{color:var(--tx3);font-size:11px}.goal-meta-val{font-size:16px;font-weight:500;font-family:var(--mono)}.progress-wrap{margin-top:14px}.progress-labels{color:var(--tx3);justify-content:space-between;margin-bottom:6px;font-size:11px;display:flex}.progress-track{background:#ffffff0f;border-radius:4px;height:8px;position:relative;overflow:hidden}.progress-fill{border-radius:4px;height:100%;display:flex}.pf-stock{background:var(--green)}.pf-spot{background:var(--blue)}.pf-prospect{background:var(--purple);opacity:.6}.progress-legend{gap:16px;margin-top:8px;display:flex}.pl-item{color:var(--tx2);align-items:center;gap:5px;font-size:11px;display:flex}.pl-dot{border-radius:2px;width:8px;height:8px}.goal-edit{border-radius:var(--r);background:#5b8dee0f;border:1px solid #5b8dee33;margin-top:14px;padding:14px 16px}.goal-edit-row{align-items:flex-end;gap:10px;display:flex}.cf-card{background:var(--card);border:1px solid var(--border);border-radius:var(--rl);overflow:hidden}.cf-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.cf-title{color:var(--tx3);text-transform:uppercase;letter-spacing:.06em;font-size:11px}.cf-year{align-items:center;gap:8px;display:flex}.cf-year-btn{color:var(--tx2);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:16px;transition:background .15s}.cf-year-btn:hover{color:var(--tx1);background:#ffffff0f}.cf-year-label{font-family:var(--mono);color:var(--tx1);text-align:center;min-width:60px;font-size:13px}table.cf-table{border-collapse:collapse;width:100%}.cf-table th{color:var(--tx3);text-align:right;border-bottom:1px solid var(--border);letter-spacing:.04em;padding:10px 16px;font-size:11px;font-weight:400}.cf-table th:first-child{text-align:left}.cf-table td{border-bottom:1px solid var(--border);text-align:right;font-size:13px;font-family:var(--mono);vertical-align:middle;padding:10px 16px}.cf-table td:first-child{text-align:left;font-family:var(--sans)}.cf-table tr:last-child td{border-bottom:none}.cf-table tr.current-month td{background:#5b8dee0f}.cf-table tr:hover td{background:var(--card-h);cursor:pointer}.cf-month-label{color:var(--tx1);font-size:13px;font-weight:500}.cf-month-sub{color:var(--tx3);margin-top:1px;font-size:11px}.val-stock{color:var(--green)}.val-spot{color:var(--blue)}.val-prospect{color:var(--purple);opacity:.8}.val-total{color:var(--tx1);font-weight:500}.val-zero{color:var(--tx3)}.val-gap{color:var(--amber)}.val-ok{color:var(--green)}.bar-cell{width:120px}.mini-bar{border-radius:2px;gap:1px;height:4px;display:flex;overflow:hidden}.mb-stock{background:var(--green)}.mb-spot{background:var(--blue)}.mb-prospect{background:var(--purple);opacity:.6}.analytics-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.analytics-summary{flex-wrap:wrap;gap:12px;margin-bottom:16px;display:flex}.analytics-kpi{background:var(--card);border:1px solid var(--border);border-radius:var(--rl);flex:1;min-width:140px;padding:14px 18px}.analytics-kpi-label{color:var(--tx3);letter-spacing:.04em;margin-bottom:4px;font-size:11px}.analytics-kpi-value{font-size:20px;font-weight:700;font-family:var(--mono);color:var(--tx1)}.analytics-card{background:var(--card);border:1px solid var(--border);border-radius:var(--rl);margin-bottom:16px;overflow:hidden}.channel-chart-wrap{background:var(--card);border:1px solid var(--border);border-radius:var(--rl);margin-bottom:16px;padding:16px 20px}.deal-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.section-title{color:var(--tx3);text-transform:uppercase;letter-spacing:.06em;font-size:11px}.filter-row{gap:4px;display:flex}.ftab{border:1px solid var(--border);color:var(--tx3);cursor:pointer;font-size:11px;font-family:var(--sans);background:0 0;border-radius:6px;padding:4px 10px;transition:all .15s}.ftab:hover{color:var(--tx2)}.ftab.active{background:var(--blue-d);color:var(--blue);border-color:#5b8dee4d}.deal-table-wrap{background:var(--card);border:1px solid var(--border);border-radius:var(--rl);overflow:hidden}table.deal-table{border-collapse:collapse;width:100%}.deal-table th{color:var(--tx3);text-align:left;border-bottom:1px solid var(--border);letter-spacing:.04em;padding:10px 16px;font-size:11px;font-weight:400}.deal-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:10px 16px;font-size:13px}.deal-table tr:last-child td{border-bottom:none}.deal-table tr:hover td{background:var(--card-h);cursor:pointer}.deal-name{font-weight:500}.deal-client{color:var(--tx3);margin-top:2px;font-size:11px}.owner-pg{color:var(--blue);font-size:11px;font-weight:500}.owner-tr{color:var(--teal);font-size:11px;font-weight:500}.owner-lf{color:var(--purple);font-size:11px;font-weight:500}.amt-mono{font-family:var(--mono);font-size:13px}.amt-sub{color:var(--tx3);font-size:11px}.empty{text-align:center;color:var(--tx3);padding:40px;font-size:13px}.badge{white-space:nowrap;border-radius:4px;align-items:center;padding:2px 8px;font-size:11px;font-weight:500;display:inline-flex}.b-prospect{background:var(--purple-d);color:var(--purple)}.b-active{background:var(--green-d);color:var(--green)}.b-done{color:var(--tx3);background:#ffffff0f}.b-stock{background:var(--green-d);color:var(--green)}.b-spot{background:var(--blue-d);color:var(--blue)}.b-channel{color:#a78bfa;background:#8b5cf61f}.b-variable{background:var(--amber-d);color:var(--amber)}.modal-overlay{z-index:200;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border2);border-radius:var(--rl);width:480px;max-height:90vh;padding:24px;overflow-y:auto}.modal-title{margin-bottom:20px;font-size:15px;font-weight:500}.form-group{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.form-label{color:var(--tx2);font-size:12px;font-weight:500}.form-input{background:var(--input);border:1px solid var(--border);color:var(--tx1);font-size:13px;font-family:var(--sans);border-radius:6px;outline:none;width:100%;padding:9px 12px;transition:border-color .15s}.form-input:focus{border-color:#5b8dee80}select.form-input{cursor:pointer}.radio-row{gap:6px;display:flex}.ropt{text-align:center;border:1px solid var(--border);color:var(--tx3);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;flex:1;padding:8px 4px;font-size:12px;transition:all .15s}.ropt:hover{border-color:var(--border2);color:var(--tx2)}.ropt.active{background:var(--blue-d);color:var(--blue);border-color:#5b8dee59;font-weight:500}.ropt.active.pg{background:var(--blue-d);color:var(--blue);border-color:#5b8dee59}.ropt.active.tr{background:var(--teal-d);color:var(--teal);border-color:#2dd4bf59}.ropt.active.lf,.ropt.active.prospect{background:var(--purple-d);color:var(--purple);border-color:#a78bfa59}.ropt.active.active-s{background:var(--green-d);color:var(--green);border-color:#3ecf8e59}.ropt.active.done{border-color:var(--border2);color:var(--tx2);background:#ffffff0f}.input-prefix-wrap{display:flex}.input-prefix{background:var(--card);border:1px solid var(--border);color:var(--tx3);border-right:none;border-radius:6px 0 0 6px;padding:9px 12px;font-size:13px}.form-input.no-left{border-top-left-radius:0;border-bottom-left-radius:0}.modal-note{color:var(--tx2);background:#5b8dee14;border:1px solid #5b8dee26;border-radius:6px;margin-bottom:16px;padding:10px 12px;font-size:12px;line-height:1.7}.modal-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;margin-top:4px;padding-top:16px;display:flex}.sim-section{background:var(--card);border:1px solid var(--border);border-radius:var(--rl);flex-direction:column;gap:16px;padding:20px 24px;display:flex}.sim-header{flex-direction:column;gap:4px;display:flex}.sim-header-row{justify-content:space-between;align-items:center;display:flex}.sim-sub{color:var(--tx2);font-size:12px}.sim-current-state{flex-wrap:wrap;gap:12px;display:flex}.sim-state-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);flex:1;min-width:140px;padding:12px 16px}.sim-state-label{color:var(--tx3);letter-spacing:.04em;margin-bottom:4px;font-size:11px;display:block}.sim-state-value{font-size:20px;font-weight:700;font-family:var(--mono);color:var(--tx1)}.sim-channel-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);flex-direction:column;gap:10px;padding:16px;display:flex}.sim-channel-top{justify-content:space-between;align-items:center;display:flex}.sim-channel-name{color:var(--tx1);font-size:14px;font-weight:500}.sim-remove-btn{color:var(--tx3);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:16px;line-height:1;transition:color .15s,background .15s}.sim-remove-btn:hover{color:var(--red);background:var(--red-d)}.sim-add-channel{align-items:center;gap:8px;display:flex}.sim-add-input{background:var(--input);border:1px solid var(--border);color:var(--tx1);font-size:13px;font-family:var(--sans);border-radius:6px;outline:none;flex:1;padding:8px 12px}.sim-add-input:focus{border-color:#5b8dee80}.sim-add-input::placeholder{color:var(--tx3)}.sim-slider-row{align-items:center;gap:12px;display:flex}.sim-slider-label{color:var(--tx3);min-width:28px;font-size:12px}.sim-slider{appearance:none;cursor:pointer;background:#ffffff1a;border-radius:2px;outline:none;flex:1;height:4px}.sim-slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--teal);cursor:pointer;border:2px solid var(--surface);border-radius:50%;width:16px;height:16px}.sim-alloc-value{font-family:var(--mono);color:var(--tx1);text-align:right;min-width:60px;font-size:14px}.sim-alloc-value strong{font-size:18px;font-weight:700}.sim-card-body{flex-direction:column;gap:10px;display:flex}.sim-cv-row{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.sim-cv-input-group{align-items:center;gap:4px;display:flex}.sim-cv-label{color:var(--tx3);min-width:28px;font-size:11px}.sim-cv-input{background:var(--input);border:1px solid var(--border);color:var(--tx1);font-size:12px;font-family:var(--mono);text-align:right;border-radius:4px;outline:none;width:65px;padding:5px 8px}.sim-cv-input:focus{border-color:#5b8dee80}.sim-cv-suffix{color:var(--tx3);font-size:12px}.sim-cv-prefix{color:var(--tx3);margin-right:2px;font-size:12px}.sim-cost-input{width:90px}.sim-mult-input{width:55px}.sim-card-result{align-items:center;gap:16px;padding-top:2px;display:flex}.sim-result-item{color:var(--tx2);font-size:12px}.sim-result-revenue{font-family:var(--mono);color:var(--teal);font-size:13px;font-weight:500}.sim-result-cost{font-family:var(--mono);color:var(--amber);font-size:13px}.sim-result-price{font-family:var(--mono);color:var(--tx2);font-size:12px}.sim-summary{border:1px solid var(--border);border-radius:var(--r);justify-content:space-between;align-items:center;gap:20px;padding:16px 20px;display:flex}.sim-summary-ok{background:#3ecf8e0f;border-color:#3ecf8e4d}.sim-summary-progress{background:#5b8dee0a;border-color:#5b8dee40}.sim-summary-idle{border-color:var(--border);background:#ffffff05}.sim-summary-left{flex-direction:column;flex:1;gap:6px;display:flex}.sim-summary-main-row{align-items:baseline;gap:10px;display:flex}.sim-summary-label{color:var(--tx3);font-size:11px}.sim-summary-value{font-size:22px;font-weight:700;font-family:var(--mono);color:var(--tx1)}.sim-target-bar{background:#ffffff0f;border-radius:4px;height:8px;position:relative;overflow:hidden}.sim-target-fill-current{background:var(--blue);border-radius:4px 0 0 4px;height:100%;position:absolute;top:0;left:0}.sim-target-fill-sim{background:var(--teal);border-radius:0;height:100%;transition:width .2s;position:absolute;top:0}.sim-target-labels{color:var(--tx3);justify-content:space-between;font-size:10px;display:flex}.sim-summary-right{text-align:right;min-width:80px}.sim-summary-pct{font-size:28px;font-weight:700;font-family:var(--mono);color:var(--blue)}.sim-summary-gap-text{color:var(--tx2);margin-top:2px;font-size:11px}.sim-summary-idle-text{color:var(--tx3);font-size:12px}.sim-summary-status{border-radius:6px;padding:4px 12px;font-size:13px;font-weight:500}.sim-status-ok{background:var(--green-d);color:var(--green)}.sim-breakdown{flex-direction:column;gap:8px;display:flex}.sim-breakdown-title{color:var(--tx3);letter-spacing:.04em;font-size:11px}.sim-breakdown-row{align-items:center;gap:10px;display:flex}.sim-breakdown-label{color:var(--tx2);white-space:nowrap;min-width:120px;font-size:12px}.sim-breakdown-bar-wrap{background:#ffffff0a;border-radius:4px;flex:1;height:8px;overflow:hidden}.sim-breakdown-bar{background:var(--teal);border-radius:4px;height:100%;transition:width .2s}.sim-breakdown-detail{font-family:var(--mono);color:var(--tx1);text-align:right;min-width:130px;font-size:12px}.sim-insight{color:var(--tx2);border-radius:var(--r);background:#5b8dee0f;border:1px solid #5b8dee26;padding:12px 16px;font-size:13px;line-height:1.7}.sim-insight-ok{color:var(--green);background:#3ecf8e0f;border-color:#3ecf8e33}@media (width<=768px){.topbar{flex-wrap:wrap;gap:8px;height:auto;min-height:54px;padding:8px 12px}.topbar>div:first-child{width:100%;overflow-x:auto}.nav-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-shrink:0;gap:0;overflow-x:auto}.nav-tabs::-webkit-scrollbar{display:none}.nav-tab{white-space:nowrap;flex-shrink:0;padding:6px 10px;font-size:12px}.nav-tab-external{margin-left:4px;padding-left:10px;font-size:11px}.topbar>div:last-child{justify-content:flex-end;width:100%}main{gap:14px;padding:16px 12px}.goal-card{padding:16px}.goal-header{flex-direction:column;gap:12px}.goal-meta{flex-wrap:wrap;gap:16px}.goal-amount{font-size:22px}.analytics-summary{flex-direction:column;gap:8px}.analytics-kpi{min-width:unset;padding:12px 14px}.analytics-kpi-value{font-size:18px}.channel-chart-wrap>div:last-child{flex-direction:column;gap:12px}.cf-card{overflow-x:auto}table.cf-table{min-width:700px}.deal-table-wrap{overflow-x:auto}table.deal-table{min-width:600px}.cf-table th,.cf-table td,.deal-table th,.deal-table td{padding:8px 10px;font-size:12px}.modal{width:calc(100vw - 32px);max-width:480px;padding:20px 16px}.radio-row{flex-wrap:wrap}.ropt{flex:unset;min-width:calc(50% - 4px)}.sim-section{gap:12px;padding:16px}.sim-current-state{flex-direction:column;gap:8px}.sim-current-state .sim-state-item{min-width:unset}.sim-cv-row{flex-direction:column;align-items:flex-start;gap:8px}.sim-summary{text-align:left;flex-direction:column;gap:12px}.sim-summary-right{text-align:left}.sim-summary-pct{font-size:22px}.sim-breakdown-row{flex-wrap:wrap}.sim-breakdown-label{min-width:100px}.sim-breakdown-detail{min-width:unset;text-align:left}.deal-header{flex-direction:column;align-items:flex-start;gap:8px}.filter-row{flex-wrap:wrap}.analytics-header{flex-direction:column;align-items:flex-start;gap:8px}}@media (width<=480px){.topbar>div:last-child .btn-primary{padding:5px 10px;font-size:11px}.goal-amount{font-size:18px}.goal-meta{gap:12px}.goal-meta-val{font-size:14px}main{gap:12px;padding:12px 8px}}
