*{box-sizing:border-box} :root{--ink:#182b3a;--muted:#7a8790;--line:#e1e7e7;--green:#176a59;--bg:#f4f6f5;--warm:#eee7d9}body{margin:0;font:14px/1.55 "Microsoft YaHei",sans-serif;color:var(--ink);background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:#fff;border-radius:7px;color:var(--ink);padding:8px 13px;white-space:nowrap}button:hover{border-color:#8db4aa;background:#f0f7f4}button:disabled{opacity:.45;cursor:default}.primary{background:var(--green);border-color:var(--green);color:#fff}.primary:hover{background:#115546;color:#fff}.subtle{color:var(--muted);font-size:14px}h1,h2,h3,p{margin-top:0}h1{font-size:20px;letter-spacing:-.6px;margin-bottom:7px}label{display:block}input,select,textarea{border:1px solid #dce3e1;border-radius:7px;padding:9px 11px;background:#fff;color:var(--ink);outline:none}input:focus,textarea:focus,select:focus{border-color:#3b8b77;box-shadow:0 0 0 3px #176a5910}.eyebrow{font-size:14px;letter-spacing:2px;font-weight:600;color:#6f8c82}header{height:76px;display:flex;align-items:center;gap:46px;padding:0 32px;background:#fff;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px}.brandmark{width:38px;height:38px;display:grid;place-items:center;border-radius:9px;background:var(--green);color:#fff;font-family:"Microsoft YaHei",sans-serif;font-size:20px}.brand b{font-size:16px;letter-spacing:1px}.brand small{display:block;font-size:14px;letter-spacing:2px;color:var(--muted)}nav{height:100%;display:flex;align-items:center}.nav-active{font-weight:600;color:var(--green);height:100%;display:flex;align-items:center;border-bottom:3px solid var(--green)}.user-tools{margin-left:auto;display:flex;align-items:center;gap:12px}.user-tools button{font-size:14px;padding:5px 10px}main{padding:28px 30px 12px;max-width:1900px;margin:auto}.page-top{display:flex;justify-content:space-between;align-items:center;gap:20px}.page-top p{margin-bottom:0}.top-actions{display:flex;gap:8px;flex-wrap:wrap}.filters{display:flex;align-items:end;gap:13px;margin:23px 0 18px}.filters label{font-size:14px;color:var(--muted)}.filters select{display:block;min-width:150px;font-size:14px;padding:7px 30px 7px 10px;margin-top:4px;max-width:300px}.badge{font-size:14px;background:#e5f0e9;color:#346855;border-radius:4px;padding:4px 8px;margin-bottom:6px}.filters-right{margin-left:auto;font-size:14px;color:var(--muted);padding-bottom:8px}.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:20px}.stat{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 18px;position:relative}.stat small{color:var(--muted);font-size:14px}.stat strong{display:block;font-size:20px;font-weight:600;letter-spacing:-.4px;margin-top:4px}.stat em{font-style:normal;color:#929c9e;font-size:14px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:18px;align-items:start}.sheet-card,.chat-card{background:#fff;border:1px solid var(--line);border-radius:11px;overflow:hidden}.sheet-heading{padding:15px 17px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.sheet-heading b{font-size:14px}.sheet-heading .subtle{margin-left:12px}.status-dot{font-size:14px;color:#64857c}.status-dot.dirty{color:#b2771f}.formula-bar{display:flex;align-items:center;padding:7px 10px;gap:10px;background:#fbfcfb;border-bottom:1px solid var(--line)}#cellAddress{min-width:42px;font-size:14px;color:#6e7c84;text-align:center}.fx{font-family:"Microsoft YaHei",sans-serif;font-style:italic;color:#809589}.formula-bar input{flex:1;min-width:0;border:0;background:transparent;padding:5px;box-shadow:none;font-size:14px}.formula-bar button{padding:4px 10px;font-size:14px}#grid{height:455px;overflow:auto;position:relative;outline:none}table.sheet{border-collapse:separate;border-spacing:0;table-layout:fixed;font-variant-numeric:tabular-nums;font-size:14px;user-select:none}table.sheet td,table.sheet th{padding:10px 9px;min-width:106px;max-width:220px;height:41px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-right:1px solid #e8edeb;border-bottom:1px solid #e8edeb;text-align:right;background:#fff}table.sheet th{position:sticky;top:0;z-index:3;background:#f1f5f3;color:#7e898d;text-align:center;font-size:14px;font-weight:400;padding:6px;height:29px}table.sheet .rownum{min-width:36px;width:36px;max-width:36px;position:sticky;left:0;z-index:2;background:#f1f5f3;color:#8d9798;text-align:center;font-size:14px}table.sheet .firstcol{position:sticky;left:36px;z-index:2;text-align:left;min-width:155px;max-width:220px;background:#fbfcfb}table.sheet .col-header{font-weight:600;background:#edf3f0;color:#3c5d50;text-align:center}table.sheet .input-cell{background:#fffcf2}table.sheet .formula-cell{color:#4b6976}table.sheet .selected{outline:2px solid var(--green);outline-offset:-2px;background:#e8f2eb!important;z-index:4}table.sheet .cell-error{color:#ad7743;background:#fff5e8}.sheet-footer{display:flex;justify-content:space-between;gap:15px;padding:10px 14px;border-top:1px solid var(--line);font-size:14px;color:#8a9696}.chat-card{display:flex;flex-direction:column;height:581px}.chat-heading{display:flex;align-items:center;justify-content:space-between;padding:15px;border-bottom:1px solid var(--line)}.chat-heading b{font-size:14px}.chat-heading small{display:block;font-size:14px;color:var(--muted);margin:3px 0 0 14px}.chat-heading button{border:0;padding:3px;color:#8c9696;font-size:14px}.ai-dot{display:inline-block;width:6px;height:6px;background:#55a28c;border-radius:50%;margin-right:7px}.chat-messages{flex:1;overflow:auto;padding:16px;overscroll-behavior:contain}.chat-welcome{text-align:center;padding:26px 5px}.welcome-icon{font-size:20px;color:#42816e}.chat-welcome h3{font-size:16px;margin:12px 0 8px}.chat-welcome p{font-size:14px;color:var(--muted);line-height:1.8}.quick-question{font-size:14px;margin:5px;border-radius:20px;padding:6px 11px}.bubble{margin:0 0 15px;font-size:14px;line-height:1.9;overflow-wrap:anywhere}.bubble .speaker{font-size:14px;color:#81918c;margin-bottom:5px}.bubble.user .content{background:#edf4ef;padding:10px 12px;border-radius:8px}.bubble.assistant .content{padding:2px 1px}.bubble .content h1,.bubble .content h2,.bubble .content h3{font-size:14px;margin:12px 0 7px}.bubble .content p{margin-bottom:8px}.bubble .content table{border-collapse:collapse;width:100%;font-size:14px}.bubble .content td,.bubble .content th{border:1px solid var(--line);padding:5px}.bubble .content ul{padding-left:18px;margin:5px 0}.chat-compose{border-top:1px solid var(--line);padding:12px}.chat-compose textarea{width:100%;resize:vertical;min-height:75px;font-size:14px;line-height:1.7;border-color:#e5eae7}.compose-actions{display:flex;justify-content:space-between;align-items:center;margin-top:8px}.compose-actions button{font-size:14px}.compose-actions svg{width:15px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;margin-right:5px;vertical-align:middle}#voiceButton{border:0;padding:6px;color:#667b73;background:transparent}#voiceButton.recording{background:#fff0eb;color:#b34a38}#voiceStatus{font-size:14px;margin:8px 0 0;line-height:1.6}.proposal-card{border:1px solid #c0d9c9;border-radius:8px;padding:12px;background:#f8fbf8}.proposal-card button{margin-top:8px;width:100%}.page-footer{display:flex;justify-content:space-between;padding:14px 32px;color:#a1aaaa;font-size:14px}.login-wrap{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:#fafbf9}.login-art{background:#183d36;padding:12vh 9vw;color:#f5f2e8;position:relative;overflow:hidden}.login-art .eyebrow{color:#a1b8a4}.login-art h1{font-size:20px;line-height:1.4;letter-spacing:2px;margin-top:40px;font-weight:500}.login-art p{color:#a8c3b6;letter-spacing:4px}.art-caption{position:absolute;bottom:9vh;font-size:14px;color:#a4b9ad;letter-spacing:2px}.art-grid{display:flex;align-items:flex-end;gap:16px;height:180px;margin-top:60px;transform:rotate(-5deg)}.art-grid i{height:55%;width:35px;background:#93b19a22;border:1px solid #9ec7ac22;border-radius:5px}.art-grid i:nth-child(2){height:78%}.art-grid i:nth-child(3){height:65%}.art-grid i:nth-child(4){height:93%}.art-grid i:nth-child(5){height:82%}.art-grid i:nth-child(6){height:110%;background:#c9caa333}.login-card{width:350px;align-self:center;justify-self:center}.login-card h2{font-size:20px;margin:13px 0 8px}.login-card label{font-size:14px;margin:24px 0 0;color:#526b61}.login-card input{display:block;width:100%;margin-top:8px;padding:12px}.login-card button{width:100%;margin-top:28px;padding:12px}.error{color:#b24a3a;font-size:14px;min-height:20px;margin-top:12px}dialog{border:1px solid var(--line);border-radius:13px;width:min(830px,94vw);padding:22px;max-height:88vh;box-shadow:0 30px 100px #132c3d30}dialog::backdrop{background:#132d3a65;backdrop-filter:blur(2px)}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.modal-head h2{font-size:16px;margin:0}.modal-head button{border:0;font-size:20px;padding:0 7px}#modalBody{overflow:auto;max-height:60vh}#modalBody table{width:100%;border-collapse:collapse;font-size:14px}#modalBody td,#modalBody th{padding:8px;border-bottom:1px solid var(--line);text-align:left;max-width:300px;overflow-wrap:anywhere}#modalBody textarea{width:100%;min-height:170px}#modalFooter{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}#modalBody label{margin:12px 0}#modalBody label input:not([type=checkbox]),#modalBody select{display:block;width:100%;margin-top:5px}.checks{display:grid;grid-template-columns:1fr 1fr}.checks label{font-size:14px}.warn{font-size:14px;color:#a36b2c;background:#fff7e9;padding:10px;border-radius:7px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:10px 20px;border-radius:8px;background:#193e34;color:#fff;z-index:100;font-size:14px;box-shadow:0 5px 25px #0002}body[aria-busy=true]{cursor:progress}[hidden]{display:none!important}@media(min-width:1600px){.workspace{grid-template-columns:minmax(0,1fr) 390px}#grid{height:530px}.chat-card{height:656px}}@media(max-width:1050px){header{gap:20px;padding:0 18px}main{padding:20px 16px}.workspace{grid-template-columns:1fr}.chat-card{height:520px}.stats{grid-template-columns:repeat(3,1fr)}.page-top{align-items:start;flex-direction:column}.login-art{padding:10vh 6vw}.login-art h1{font-size:20px}}@media(max-width:650px){header nav{display:none}.user-tools{gap:5px}.brand b{font-size:14px}.brandmark{width:30px;height:30px}.stats{grid-template-columns:repeat(2,1fr)}.stat strong{font-size:20px}.filters{flex-wrap:wrap}.filters select{min-width:120px;max-width:230px}.filters-right{width:100%;margin:0;padding:0}.login-wrap{grid-template-columns:1fr}.login-art{display:none}.login-card{width:85%;padding:35px 0}.top-actions button{font-size:14px;padding:7px 10px}.page-footer{display:block;padding:16px}.page-footer span{display:block}.sheet-heading .subtle{display:none}}
@media(min-width:1050px){header{height:64px}main{padding-top:18px}.page-top h1{font-size:20px}.filters{margin:15px 0 12px}.stat{padding:10px 16px}.stat strong{font-size:20px}.stats{margin-bottom:14px}#grid{height:max(210px,calc(100dvh - 520px))}.chat-card{height:max(344px,calc(100dvh - 386px))}}

/* Budget-first workspace: full width, page scrolling, on-demand assistant. */
main{max-width:none;padding:20px 22px 12px}.workspace{display:block}.page-top h1{font-size:20px}.page-top .eyebrow{display:none}.filters{margin:16px 0}.sheet-card{width:100%}#grid{height:auto!important;max-height:none;overflow-x:auto;overflow-y:visible}table.sheet{width:100%;min-width:1220px}table.sheet td,table.sheet th{min-width:64px;max-width:none;padding:8px 5px;height:36px;font-size:14px}table.sheet th{height:25px;font-size:14px}table.sheet .rownum{min-width:30px;width:30px;max-width:30px}table.sheet .firstcol{left:30px;min-width:112px;width:112px;max-width:112px}table.sheet .col-header{white-space:normal;line-height:1.5;height:48px}table.sheet .budget-result{background:#eaf4ed;color:#155b45;font-weight:600;min-width:100px}table.sheet .budget-result.col-header{background:#dcece1}.sheet-heading{padding:11px 14px}.sheet-footer{padding:8px 12px}#assistantPanel{position:fixed;right:20px;top:82px;bottom:20px;width:min(440px,calc(100vw - 28px));height:auto!important;z-index:31;box-shadow:0 12px 60px #102c3530}#assistantBackdrop{position:fixed;inset:0;background:#19332825;z-index:30}#closeAssistant{font-size:20px;line-height:1;padding:0 6px}.chat-heading>div:last-child{display:flex;align-items:center;gap:7px}.chat-messages{min-height:0}#toggleAssistant{color:var(--green);border-color:#9dbfaf}.page-footer{display:none}@media(max-width:1050px){.page-top{flex-direction:row;flex-wrap:wrap}.workspace{display:block}}@media(max-width:650px){main{padding:16px 10px}.page-top h1{font-size:20px}#assistantPanel{right:10px;top:72px;bottom:10px}.sheet-heading .subtle{display:none}}

.sheet-tools{display:flex;gap:7px;align-items:center;padding:7px 12px;border-bottom:1px solid var(--line);background:#fbfcfb}.sheet-tools button{font-size:14px;padding:5px 10px}.sheet-tools span{flex:1}table.sheet td:has(.cell-editor){padding:0;overflow:visible}.cell-editor{width:100%;min-width:60px;border:2px solid var(--green);border-radius:0;padding:6px 4px;font-size:14px;height:35px;box-shadow:none!important}

.formula-bar #saveButton{padding:7px 15px;font-size:14px}.monthly-sheet td,.monthly-sheet th{padding:11px 8px!important}.monthly-sheet th{font-weight:600!important;position:static!important}.formula-bar[hidden],.sheet-tools[hidden]{display:none!important}

/* Unified local design: Microsoft YaHei, 20 / 16 / 14 px. */
:root{--ink:#21362f;--muted:#74847d;--line:#dfe7e2;--green:#226b58;--bg:#f4f7f5}body,button,input,select,textarea,table{font-family:"Microsoft YaHei",sans-serif}body{font-size:14px}header{height:72px;padding:0 28px;gap:24px}.brandmark{width:40px;height:40px;border-radius:11px;font-size:20px;font-weight:500}.brand b{font-size:16px;letter-spacing:0}.user-tools{gap:10px}.user-tools button{font-size:14px;padding:7px 12px}main{padding:24px 28px 20px}.page-top{gap:18px;margin-bottom:22px}.title-group{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.page-top h1{font-size:20px;letter-spacing:0;margin:0;font-weight:700}.page-top button{font-size:16px;min-height:42px;padding:8px 15px;border-radius:8px}.top-actions{gap:9px}.filters{gap:18px;align-items:end;margin:0 0 20px}.filters label{font-size:14px;color:#62756b}.filters select{font-size:16px;min-height:42px;min-width:154px;margin-top:7px;padding:7px 34px 7px 12px;border-radius:8px}.filters>button{font-size:16px;min-height:42px;margin-bottom:0}.sheet-card{border-radius:12px;box-shadow:0 3px 15px #193c2c04}.sheet-heading{padding:14px 16px}.sheet-heading b{font-size:16px}.sheet-heading .subtle{font-size:14px;margin-left:12px}.status-dot{font-size:14px}.sheet-tools{padding:10px 14px;gap:10px}.sheet-tools button{font-size:16px;min-height:38px;padding:6px 12px}.formula-bar{padding:9px 12px;gap:12px;min-height:58px}.formula-bar input{font-size:14px;padding:8px}.formula-bar #saveButton{font-size:16px;padding:8px 17px;min-height:40px}#cellAddress{font-size:14px;min-width:45px}.fx{font-size:14px;font-style:normal}table.sheet{font-size:14px;min-width:1450px}table.sheet td,table.sheet th{font-size:14px;min-width:72px;padding:9px 7px;height:42px}table.sheet th{font-size:14px;height:30px}table.sheet .rownum{font-size:14px;min-width:34px;width:34px;max-width:34px}table.sheet .firstcol{left:34px;width:128px;min-width:128px;max-width:128px}table.sheet .col-header{height:58px;line-height:1.55;font-size:14px}table.sheet .budget-result{min-width:112px}table.sheet .cell-error{color:#986735;background:#fff7e9}.sheet-footer{font-size:14px;padding:10px 14px;line-height:1.6}.cell-editor{font-size:14px;height:41px;padding:7px 5px}.monthly-sheet{min-width:1050px}.monthly-sheet td,.monthly-sheet th{font-size:14px}.chat-heading b{font-size:16px}.chat-heading small{font-size:14px}.chat-heading button{font-size:14px}.chat-messages{padding:20px}.bubble{font-size:16px;line-height:1.85}.bubble .speaker{font-size:14px}.bubble .content h1,.bubble .content h2,.bubble .content h3{font-size:16px}.bubble .content td,.bubble .content th,.bubble .content table{font-size:14px}.chat-compose textarea{font-size:16px;min-height:94px}.compose-actions button{font-size:16px}#voiceStatus{font-size:14px}.chat-welcome h3{font-size:16px}.chat-welcome p,.quick-question{font-size:14px}#closeAssistant{font-size:20px}.modal-head h2{font-size:20px}#modalBody table,#modalBody .subtle,.warn,#toast{font-size:14px}#modalFooter button{font-size:16px}.modal-head button{font-size:20px}.subtle{font-size:14px}
@media(max-width:1050px){header{padding:0 18px}main{padding:20px 16px}.page-top{flex-direction:column;align-items:stretch}.title-group{justify-content:space-between}.top-actions{justify-content:flex-start}.filters{flex-wrap:wrap}}@media(max-width:650px){header{height:auto;min-height:68px;padding:12px;gap:12px;flex-wrap:wrap}.brand b{font-size:16px}.user-tools{gap:6px}.user-tools button{font-size:14px}main{padding:18px 12px}.title-group{gap:12px}.page-top h1{font-size:20px}.filters{gap:12px}.filters select{min-width:130px;font-size:16px}.sheet-tools button{font-size:16px}.formula-bar{gap:6px}.formula-bar #saveButton{font-size:16px;padding:7px 10px}}

.sheet-heading{gap:16px;flex-wrap:wrap}.sheet-heading-actions{display:flex;align-items:center;gap:18px;margin-left:auto}.sheet-heading .sheet-tools{border:0;background:transparent;padding:0;gap:10px}.sheet-heading .sheet-tools>span{display:none}.sheet-heading .sheet-tools button{font-family:"Microsoft YaHei",sans-serif;font-size:16px;min-height:40px;padding:7px 13px}table.sheet .text-status{text-align:center}@media(max-width:650px){.sheet-heading-actions{width:100%;justify-content:space-between;gap:10px}.sheet-heading .sheet-tools{gap:6px}.sheet-heading .sheet-tools button{padding:6px 8px}}

/* Center every table cell; place draft state next to save. */
table.sheet td,table.sheet th,table.sheet .firstcol,table.sheet .rownum,table.sheet .text-status{text-align:center}.formula-bar #draftStatus{font-family:"Microsoft YaHei",sans-serif;font-size:14px;white-space:nowrap;margin-left:6px}.cell-editor{text-align:center}

/* Show long decision/status text in full instead of ellipsis. */
table.sheet td.text-status{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;word-break:normal;line-height:1.6;height:auto;vertical-align:middle;padding:10px 7px}table.sheet td.budget-result.text-status{min-width:128px}

/* Compact period/day columns; keep action copy on a single readable line. */
table.sheet .firstcol{width:112px;min-width:112px;max-width:112px}table.sheet td[data-c="2"]{min-width:48px;padding-left:4px;padding-right:4px}table.sheet td[data-c="18"]{font-size:12px;font-weight:400;white-space:nowrap;overflow:visible;text-overflow:clip;min-width:160px;height:42px;padding:9px 6px}table.sheet td[data-c="18"].col-header{font-size:14px;font-weight:600}

/* Allocate width instead of reducing action typography. */
table.sheet .firstcol{width:104px;min-width:104px;max-width:104px;padding-left:3px;padding-right:3px}table.sheet td[data-c="18"]{font-size:14px;font-weight:400;min-width:168px;white-space:nowrap}table.sheet td[data-c="18"].col-header{font-size:14px;font-weight:600}

h3{font-size:16px}.formula-bar #undoButton{font-size:16px;min-height:40px;padding:8px 13px}
