:root{--green:#217346;--grid:#d0d0d0;--header:#f3f3f3;--ink:#222;--blue:#d9eaf7}*{box-sizing:border-box}html,body{height:100%}body{margin:0;color:var(--ink);font:14px "Segoe UI",Arial,sans-serif;background:white}.app-titlebar{height:42px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;background:var(--green);color:white}.app-titlebar div{display:flex;gap:14px;align-items:center}.app-titlebar span{font-size:12px;opacity:.85}.app-titlebar a{color:white}.ribbon{min-height:78px;display:flex;align-items:stretch;gap:0;background:#fafafa;border-bottom:1px solid #bbb}.ribbon-group{display:flex;align-items:center;gap:10px;padding:10px 14px;border-right:1px solid #ddd}.ribbon-group.grow{flex:1}.ribbon label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:#555}.ribbon select,.ribbon input{height:30px;border:1px solid #aaa;background:white;padding:4px 7px;min-width:130px}.ribbon .grow select{width:min(600px,45vw)}.ribbon button{height:34px;border:1px solid #aaa;background:white;padding:0 12px;cursor:pointer}.ribbon button:hover{background:#e9e9e9}.ribbon button.primary{background:var(--green);border-color:var(--green);color:white}.actions-group{margin-left:auto}.formula-bar{height:32px;display:flex;align-items:center;border-bottom:1px solid #bbb;background:white}.name-box{width:72px;height:100%;display:grid;place-items:center;border-right:1px solid #bbb}.fx{width:40px;text-align:center;font-style:italic;color:#666}.formula-value{height:100%;display:flex;align-items:center;flex:1;border-left:1px solid #ddd;padding:0 8px;color:#555}.sheet-viewport{height:calc(100vh - 180px);overflow:auto;background:#fff}.sheet-grid{border-collapse:separate;border-spacing:0;min-width:1940px;table-layout:fixed}.sheet-grid th,.sheet-grid td{border-right:1px solid var(--grid);border-bottom:1px solid var(--grid);padding:0}.sheet-grid thead{position:sticky;top:0;z-index:5}.column-letters th,.row-number,.sheet-grid thead>tr>th:first-child,.header-row>th,.summary-row>th,.summary-values>th{background:var(--header);text-align:center;font-weight:400;color:#555}.column-letters th{height:24px}.summary-row td,.summary-values td{height:30px;padding:5px 7px;background:white}.sheet-title{font-weight:700;text-align:center;background:#e2f0d9!important}.total-label{font-weight:600;text-align:center;background:var(--blue)!important}.summary-values td:nth-of-type(2),.summary-values td:nth-of-type(3),.summary-values td:nth-of-type(4){text-align:right;font-weight:700}.header-row td{height:48px;padding:6px;text-align:center;vertical-align:middle;background:#d9eaf7;font-weight:600}.sheet-grid tbody td{height:34px;background:white}.sheet-grid tbody td.locked{padding:7px 6px;background:#f5f5f5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-grid input,.sheet-grid select,.sheet-grid textarea{width:100%;height:100%;min-height:33px;border:0;border-radius:0;padding:5px 6px;background:transparent;font:inherit}.sheet-grid textarea{resize:vertical;display:block}.sheet-grid input:focus,.sheet-grid select:focus,.sheet-grid textarea:focus{outline:2px solid var(--green);outline-offset:-2px;background:#fff}.sheet-grid .numeric{text-align:right}.remove-row{width:100%;height:33px;border:0;background:#fff;color:#a22;font-size:20px;cursor:pointer}.remove-row:hover{background:#fee}.row-index{width:42px}.c-a{width:240px}.c-b{width:90px}.c-c{width:130px}.c-d{width:125px}.c-e{width:230px}.c-f{width:135px}.c-g{width:320px}.c-h,.c-i,.c-j{width:140px}.c-k,.c-l{width:125px}.c-m{width:115px}.c-action{width:38px}.expense-col,.expense-cell{display:none}.is-treasury .expense-col{display:table-column}.is-treasury .expense-cell{display:table-cell}.errors{position:fixed;right:18px;top:132px;z-index:20;max-width:560px;border:1px solid #d99;background:#fff3f3;color:#8a1f1f;padding:10px 16px;box-shadow:0 5px 18px #0002}.errors ul{margin:0;padding-left:20px}.statusbar{height:28px;display:flex;justify-content:space-between;align-items:center;padding:0 12px;background:#f4f4f4;border-top:1px solid #bbb;color:#555}.admin-body{background:#f5f7f8}.admin-shell{width:min(1200px,calc(100% - 32px));margin:28px auto}.admin-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.admin-header nav{display:flex;align-items:center;gap:14px}.admin-header a{color:var(--green)}.admin-header button{border:0;background:none;color:#a22;cursor:pointer}.warning{padding:12px 15px;background:#fff3cd;border:1px solid #ffe69c;margin-bottom:16px}.admin-card{background:white;border:1px solid #ddd;margin-bottom:18px;padding:18px}.admin-card h2{margin-top:0}.admin-form{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.admin-form input,.admin-form select{height:34px;border:1px solid #aaa;padding:5px 8px}.admin-form input{min-width:230px}.admin-form button,.danger-button{border:1px solid #aaa;background:#f8f8f8;padding:6px 12px;cursor:pointer}.danger-button{color:#a22}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{border:1px solid #ddd;padding:7px;text-align:left}.admin-table th{background:#f3f3f3}.admin-message{padding:10px;margin-bottom:12px;background:#eef7f1;color:#195c39}.login-box{width:min(420px,calc(100% - 32px));margin:12vh auto;background:white;border:1px solid #ddd;padding:24px}.login-box input{width:100%;height:38px;margin:8px 0 14px;padding:7px}.login-box button{height:38px;background:var(--green);color:white;border:0;padding:0 18px}.login-error{color:#a22}@media(max-width:900px){.ribbon{overflow-x:auto}.ribbon .grow select{width:360px}.sheet-viewport{height:calc(100vh - 200px)}}
