.col-headers,.row-headers,body{overflow:hidden}.col-header,.row-header,.toolbar button{transition:background .2s}*,.modal-input{box-sizing:border-box}*{margin:0;padding:0}body{font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;background:#f0f0f0}.toolbar{background:#217346;padding:5px 20px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;height:50px}.toolbar-link{margin-left:auto;color:#fff;text-decoration:none;font-weight:700;padding:8px 15px}.toolbar-link:hover{text-decoration:underline}.toolbar h1{color:#fff;font-size:18px;margin-right:20px}.toolbar button{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.3);color:#fff;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:13px}.col-header,.row-header{color:#333;font-size:12px}.toolbar button:hover{background:rgba(255,255,255,.2)}.dropdown{position:relative;display:inline-block}.dropdown-content{display:none;position:absolute;top:100%;left:0;background:#fff;min-width:100px;box-shadow:0 2px 10px rgba(0,0,0,.2);border-radius:4px;z-index:100;overflow:hidden}.dropdown-content.show{display:block}.dropdown-content div{padding:10px 15px;cursor:pointer;color:#333}.dropdown-content div:hover{background:#e8f5e9}.formula-bar{background:#fff;padding:8px 15px;display:flex;align-items:center;border-bottom:1px solid #ccc;gap:10px;height:40px}.cell-reference,.formula-input{border:1px solid #ccc;padding:5px 10px}.cell-reference{background:#f5f5f5;min-width:80px;font-weight:700;text-align:center}.cell,.col-header{min-width:100px;display:flex}.formula-input{flex:1;font-size:14px;font-family:Consolas,monospace}.formula-input:focus{outline:#217346 solid 2px;border-color:#217346}.spreadsheet-wrapper{display:flex;height:calc(100vh - 120px);position:relative}.col-headers,.row-header{height:25px;background:#f3f3f3}.row-headers{width:50px;background:#f3f3f3;border-right:1px solid #ccc;position:relative;margin-top:25px}.row-headers-content{position:absolute;width:100%}.row-header{display:flex;align-items:center;justify-content:center;border-bottom:1px solid #d0d0d0;cursor:pointer}.col-headers,.corner-header{border-bottom:1px solid #ccc;top:0}.col-header:hover,.row-header:hover{background:#e8e8e8}.col-header.selected,.row-header.selected{background:#c8e6c9;font-weight:700}.col-headers{position:absolute;left:50px;right:0;z-index:10}.col-headers-content{display:flex;position:absolute;height:100%}.col-header{width:100px;height:25px;align-items:center;justify-content:center;border-right:1px solid #d0d0d0;background:#f3f3f3;user-select:none;position:relative;cursor:grab}.col-header.dragging{opacity:.5;cursor:grabbing}.col-header.drag-over{background:#c8e6c9;border-left:3px solid #217346}.col-header.drag-over-right{background:#c8e6c9;border-right:3px solid #217346}.drag-ghost{position:fixed;padding:5px 15px;background:#217346;color:#fff;border-radius:4px;font-size:12px;font-weight:700;pointer-events:none;z-index:3000;box-shadow:0 2px 10px rgba(0,0,0,.3)}.cell,.cell-input{padding:2px 5px;font-size:13px}.corner-header{position:absolute;left:0;width:50px;height:25px;background:#e8e8e8;border-right:1px solid #ccc;z-index:20}.grid-container,.grid-content{position:relative}.grid-container{flex:1;overflow:auto;margin-top:25px}.grid-row{position:absolute;display:flex;height:25px;left:0}.cell{width:100px;height:25px;border-right:1px solid #e0e0e0;border-bottom:1px solid #e0e0e0;background:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:cell;align-items:center}.cell.number{justify-content:flex-end}.cell.error{color:red}.cell.selected{outline:#217346 solid 2px;outline-offset:-1px;background:#e8f5e9;z-index:5}.cell.in-range{background:#c8e6c9}.cell-input{position:absolute;border:2px solid #217346;font-family:inherit;outline:0;z-index:100;box-shadow:0 2px 8px rgba(0,0,0,.2)}.status-bar{position:fixed;bottom:0;left:0;right:0;background:#f3f3f3;padding:5px 15px;border-top:1px solid #ccc;font-size:12px;display:flex;justify-content:space-between;height:30px}.context-menu{position:fixed;background:#fff;border:1px solid #ccc;box-shadow:2px 2px 10px rgba(0,0,0,.2);border-radius:4px;padding:5px 0;z-index:1000;display:none}.loader-box,.modal-box{text-align:center;box-shadow:0 4px 20px rgba(0,0,0,.3)}.context-menu div{padding:8px 20px;cursor:pointer}.context-menu div:hover{background:#f0f0f0}.loader-overlay,.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);display:none;justify-content:center;align-items:center;z-index:2000}.loader-overlay.visible,.modal-overlay.visible{display:flex}.loader-box{background:#fff;padding:30px 50px;border-radius:10px;min-width:300px}.loader-spinner{width:50px;height:50px;border:4px solid #e0e0e0;border-top-color:#217346;border-radius:50%;animation:1s linear infinite spin;margin:0 auto 20px}@keyframes spin{to{transform:rotate(360deg)}}.loader-text{font-size:16px;color:#333;margin-bottom:15px}.loader-progress{width:100%;height:8px;background:#e0e0e0;border-radius:4px;overflow:hidden}.loader-progress-bar{height:100%;background:#217346;width:0%;transition:width .2s}.loader-details{font-size:12px;color:#666;margin-top:10px}.resize-handle{position:absolute;right:0;top:0;bottom:0;width:5px;cursor:col-resize}.col-header:hover .resize-handle{background:#217346}.modal-box{background:#fff;padding:30px 40px;border-radius:10px;min-width:400px;max-width:500px}.modal-title{font-size:18px;font-weight:700;color:#217346;margin-bottom:10px}.modal-description,.modal-input{margin-bottom:20px;font-size:14px}.modal-description{color:#666}.modal-input{width:100%;padding:12px 15px;border:2px solid #ccc;border-radius:6px}.modal-input:focus{outline:0;border-color:#217346}.modal-buttons{display:flex;gap:10px;justify-content:center}.modal-btn{padding:10px 25px;border-radius:6px;font-size:14px;cursor:pointer;border:none;transition:background .2s}.modal-btn-cancel{background:#e0e0e0;color:#333}.modal-btn-cancel:hover{background:#d0d0d0}.modal-btn-confirm{background:#217346;color:#fff}.modal-btn-confirm:hover{background:#1a5c38}