:root{--navy:#16425b;--navy-deep:#0e2f43;--teal:#4e7e95;--orange:#e5823a;--bg:#eef2f5;--card:#fff;--line:#d8e1e8;--text:#21313c;--muted:#64798a;--amber-bg:#fff4dd;--amber-line:#e5b96b;--amber-text:#7a5300}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:Hiragino Sans,Hiragino Kaku Gothic ProN,Yu Gothic UI,Meiryo,sans-serif;font-size:14.5px;line-height:1.75}.app{flex-direction:column;height:100%;display:flex}.header{background:linear-gradient(90deg, var(--navy-deep), var(--navy));color:#fff;z-index:10;position:sticky;top:0;box-shadow:0 1px 6px #0e2f4359}.header-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;max-width:960px;margin:0 auto;padding:10px 16px;display:flex}.brand{align-items:center;gap:8px;font-weight:700;display:flex}.brand-logo{color:var(--navy);background:#fff;border-radius:6px;justify-content:center;align-items:center;width:26px;height:26px;font-weight:800;display:inline-flex}.brand-tag{opacity:.9;border:1px solid #ffffff80;border-radius:99px;padding:1px 8px;font-size:11px;font-weight:600}.header-meta{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.target{opacity:.92;font-size:12px}.demo-badge{background:var(--amber-bg);color:var(--amber-text);border:1px solid var(--amber-line);white-space:nowrap;border-radius:99px;padding:3px 10px;font-size:12px;font-weight:700}.workspace{flex:1;min-height:0;display:flex}.dash-pane{border-right:1px solid var(--line);flex:1.6;min-width:0;padding:10px 14px 28px;overflow-y:auto}.chat-pane{background:#f6f9fb;flex-direction:column;flex:1;min-width:360px;max-width:560px;min-height:0;display:flex}.pane-toggle{display:none}@media (width<=1450px){.pane-toggle{border:1px solid #ffffff73;border-radius:99px;display:inline-flex;overflow:hidden}.pane-toggle button{color:#fff;cursor:pointer;opacity:.75;background:0 0;border:none;padding:4px 12px;font-size:12px;font-weight:700}.pane-toggle button.active{color:var(--navy);opacity:1;background:#ffffffeb}.workspace.pane-dash .chat-pane,.workspace.pane-chat .dash-pane{display:none}.dash-pane{border-right:none}.chat-pane{min-width:0;max-width:none}}.dash-loading{color:var(--muted);padding:24px 8px}.dash-note{color:var(--muted);font-size:11px}.sheet-tabs{z-index:5;background:var(--bg);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:6px;padding:4px 2px 8px;display:flex;position:sticky;top:0}.sheet-tab-group{align-items:center;gap:4px;display:flex}.sheet-group-label{color:var(--muted);letter-spacing:.04em;margin-right:2px;font-size:11px;font-weight:700}.sheet-tab{background:var(--card);border:1px solid var(--line);color:var(--navy);cursor:pointer;border-radius:8px;padding:4px 12px;font-size:12.5px;font-weight:600}.sheet-tab:hover{border-color:var(--teal)}.sheet-tab.active{background:var(--navy);border-color:var(--navy);color:#fff}.sheet-head{flex-wrap:wrap;align-items:baseline;gap:12px;margin:4px 2px 10px;display:flex}.sheet-head h2{color:var(--navy);margin:0;font-size:17px}.dash-row-4{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:8px;display:grid}@media (width<=1450px){.dash-row-4{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}}.dash-row-4 .chart-card{margin:0}.panel-row{margin-bottom:10px}.panel-row-title{color:var(--navy);margin:2px 2px 4px;font-size:13px;font-weight:700}.panel-grid{grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:8px;display:grid}@media (width<=900px){.panel-grid{grid-template-columns:minmax(0,1fr)}}.panel-grid .chart-card{margin:0}.split-grid{grid-template-columns:minmax(0,2fr) minmax(0,3fr);align-items:start;gap:8px;display:grid}@media (width<=900px){.split-grid{grid-template-columns:minmax(0,1fr)}}.stack{flex-direction:column;gap:8px;display:flex}.stack .chart-card{margin:0}.todo-card{border:1.5px dashed var(--line);color:var(--muted);background:#f7fafb;border-radius:10px;flex-direction:column;justify-content:center;min-height:120px;padding:12px 14px;font-size:12.5px;display:flex}.todo-card .todo-title{color:var(--navy);margin-bottom:4px;font-size:13px;font-weight:700}.todo-card p,.rank-card{margin:0}.rank-head{flex-wrap:wrap;gap:6px}.rank-ctl{align-items:center;gap:8px;display:inline-flex}.rank-ctl select{font:inherit;border:1px solid var(--line);color:var(--navy);background:#fff;border-radius:6px;padding:2px 6px;font-size:12px}.rank-search{font:inherit;border:1px solid var(--line);border-radius:6px;width:90px;padding:2px 8px;font-size:12px}.rank-scroll{max-height:min(72vh,760px);overflow-y:auto}.loan-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);align-items:start;gap:8px;display:grid}@media (width<=1450px){.loan-grid{grid-template-columns:minmax(0,1fr)}}.loan-grid .chart-card{margin:0}.table-scroll{overflow:auto}.long-scroll{border:1px solid var(--line);background:#fff;border-radius:8px;max-height:calc(100vh - 210px)}.bi-table{border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums;background:#fff;width:max-content;min-width:100%;font-size:11.5px}.bi-table th,.bi-table td{white-space:nowrap;border-bottom:1px solid #edf1f4;padding:3px 8px}.bi-table thead th{z-index:2;color:var(--navy);border-bottom:1.5px solid var(--navy);background:#f2f6f9;font-weight:700;position:sticky;top:0}.bi-table thead th.period{text-align:center}.bi-table thead th.sub{color:var(--muted);font-weight:500}.bi-table .num{text-align:right}.bi-table td.sub{color:#8a99a6;font-style:italic}.bi-table .rowhead{text-align:left;z-index:1;background:#fff;position:sticky;left:0}.bi-table thead th.rowhead{z-index:3;background:#f2f6f9}.bi-table tr.bold td,.bi-table tr.depth-0 td{color:var(--navy);font-weight:700}.bi-table tr.depth-1 td{font-weight:600}.bi-table tr.depth-2 td{color:var(--text);font-weight:400}.bi-table tr.depth-2 td.main{color:var(--text)}.bi-table .grp-start{border-left:1px solid var(--line)}.bi-table td.drill{cursor:pointer;text-underline-offset:3px;-webkit-text-decoration:underline dotted #9fb6c4;text-decoration:underline dotted #9fb6c4;text-decoration-thickness:1px}.bi-table td.drill:hover{color:var(--teal);background:#eef6fa}.tree-toggle{cursor:pointer;color:var(--teal);vertical-align:baseline;background:0 0;border:none;padding:0 4px 0 0;font-size:11px}.tree-toggle-sp{width:15px;display:inline-block}.modal-backdrop{z-index:100;background:#0e2f4373;justify-content:center;align-items:center;padding:3vh 3vw;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:12px;flex-direction:column;width:100%;max-width:980px;max-height:90vh;padding:14px 18px;display:flex;box-shadow:0 12px 48px #0000004d}.modal-head{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px;display:flex}.modal-title{color:var(--navy);font-size:15px;font-weight:700}.modal-cond{color:var(--muted);margin-top:2px;font-size:11.5px}.modal-close{background:var(--card);border:1px solid var(--line);color:var(--navy);cursor:pointer;white-space:nowrap;border-radius:8px;padding:4px 10px;font-size:12px}.modal-close:hover{border-color:var(--teal)}.modal-loading{color:var(--muted);padding:22px 4px}.modal-sum{color:var(--navy);margin-bottom:6px;font-size:12.5px;font-weight:700}.modal-scroll{border:1px solid var(--line);border-radius:8px;min-height:0}.modal-note{color:var(--muted);margin:8px 0 0;font-size:11px}.main{flex:1;padding:20px 16px 32px;overflow-y:auto}.main>*{max-width:860px;margin-left:auto;margin-right:auto}.welcome{text-align:center;padding:48px 8px 24px}.welcome h2{color:var(--navy);margin-bottom:4px}.welcome p{color:var(--muted);margin-top:0}.suggestions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:18px;display:flex}.suggestion{background:var(--card);border:1px solid var(--line);color:var(--navy);cursor:pointer;border-radius:99px;padding:8px 14px;font-size:13px;transition:all .15s}.suggestion:hover{border-color:var(--teal);background:#f4f8fa}.msg{margin:14px auto}.msg.user{justify-content:flex-end;display:flex}.user-bubble{background:var(--navy);color:#fff;white-space:pre-wrap;border-radius:14px 14px 3px;max-width:78%;padding:10px 14px}.assistant-body{background:var(--card);border:1px solid var(--line);border-radius:3px 14px 14px;padding:14px 18px}.md :first-child{margin-top:0}.md :last-child{margin-bottom:0}.md h1,.md h2,.md h3{color:var(--navy);margin:14px 0 6px;line-height:1.4}.md h1{font-size:17px}.md h2{font-size:16px}.md h3{font-size:15px}.md p{margin:8px 0}.md ul,.md ol{margin:6px 0;padding-left:22px}.md table{border-collapse:collapse;margin:10px 0;font-size:13px;display:block;overflow-x:auto}.md th,.md td{border:1px solid var(--line);padding:5px 10px}.md th{color:var(--navy);background:#f2f6f9}.md code{background:#f0f4f7;border-radius:4px;padding:1px 5px;font-size:12.5px}.md strong{color:var(--navy)}.thinking{color:var(--muted)}.cursor{color:var(--teal);animation:1s infinite blink}@keyframes blink{50%{opacity:0}}.tool-chip{border:1px solid var(--line);color:var(--navy);background:#f0f5f8;border-radius:99px;align-items:center;gap:4px;margin:4px 6px 4px 0;padding:3px 10px;font-size:12px;display:inline-flex}.tool-chip.error{color:#8c3125;background:#fdf0ee;border-color:#e8b4ab}.error-card{color:#8c3125;background:#fdf0ee;border:1px solid #e8b4ab;border-radius:8px;margin:8px 0;padding:10px 14px;font-size:13.5px}.evidence-card{border:1px solid var(--line);border-left:4px solid var(--teal);background:#f5f8fa;border-radius:8px;margin:12px 0 4px;padding:10px 14px;font-size:13px}.evidence-title{color:var(--navy);letter-spacing:.02em;margin-bottom:4px;font-size:12.5px;font-weight:700}.chart-card{border:1px solid var(--line);background:#fff;border-radius:10px;margin:12px 0;padding:10px 12px 6px}.chart-head{border-bottom:2px solid var(--navy);justify-content:space-between;align-items:baseline;margin-bottom:8px;padding-bottom:6px;display:flex}.chart-title{color:var(--navy);font-weight:700}.chart-unit{color:var(--muted);font-size:11.5px}.chart-legend{color:var(--muted);gap:14px;padding:4px 4px 6px;font-size:11.5px;display:flex}.chart-legend i{border-radius:2px;width:10px;height:10px;margin-right:4px;display:inline-block}.composer-wrap{background:linear-gradient(transparent, var(--bg) 30%);padding:8px 16px 14px;position:sticky;bottom:0}.composer{background:var(--card);border:1px solid var(--line);border-radius:14px;gap:8px;max-width:860px;margin:0 auto;padding:8px;display:flex;box-shadow:0 4px 16px #0e2f4314}.composer textarea{resize:none;font:inherit;background:0 0;border:none;outline:none;flex:1;padding:6px 8px}.send{background:var(--navy);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:8px 18px;font-size:14px;font-weight:700}.send:disabled{opacity:.45;cursor:default}.disclaimer{text-align:center;max-width:860px;color:var(--muted);margin:8px auto 0;font-size:11.5px}.login-screen{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--card);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:14px;width:100%;max-width:360px;padding:28px;display:flex;box-shadow:0 4px 16px #0e2f4314}.login-card h2{margin:4px 0 0;font-size:18px}.login-card label{color:var(--muted);flex-direction:column;gap:6px;font-size:12.5px;display:flex}.login-card input{font:inherit;border:1px solid var(--line);border-radius:10px;outline:none;padding:9px 10px}.login-card input:focus{border-color:var(--navy)}.login-error{color:#b3261e;margin:0;font-size:12.5px}.logout{border:1px solid var(--line);cursor:pointer;color:var(--muted);background:0 0;border-radius:10px;padding:5px 12px;font-size:12.5px}.logout:hover{color:inherit;border-color:var(--navy)}
