*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:#c1c1c1 #f1f1f1}body{margin:0;padding:0;font-family:Calibri,Segoe UI,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{height:100vh}.app{padding:0;font-family:Calibri,Arial,sans-serif;background-color:#fff;min-height:100vh;display:flex;flex-direction:column}.toolbar{padding:8px 12px;background-color:#f2f2f2;border-bottom:1px solid #d0d0d0;display:flex;align-items:center;gap:8px;flex-wrap:wrap;position:sticky;top:0;z-index:100;box-shadow:0 2px 4px #0000001a}.toolbar-section{display:flex;align-items:center;gap:5px;border-right:1px solid #d0d0d0;padding-right:8px}.title{margin:0;color:#333;font-size:12px;font-weight:600}.file-input-label{padding:12px 20px;cursor:pointer;background-color:#007bff;color:#fff;border:none;border-radius:3px;font-size:16px;font-weight:600;display:inline-block;user-select:none;-webkit-user-select:none;transition:background-color .2s ease}.file-input-label:hover{background-color:#0056b3}.toolbar-button{padding:4px 6px;cursor:pointer;background-color:#e8e8e8;color:#333;border:1px solid #d0d0d0;border-radius:3px;font-size:10px;font-weight:500;min-width:28px;display:inline-block;transition:all .2s ease}.toolbar-button:hover{background-color:#d0d0d0}.toolbar-button-active{background-color:#4caf50;color:#fff;border:1px solid #45a049}.toolbar-button-active:hover{background-color:#45a049}.toolbar-button:disabled{opacity:.5;cursor:not-allowed}.font-select{padding:3px 5px;font-size:10px;font-family:Calibri,Arial;border:1px solid #d0d0d0;border-radius:3px;cursor:pointer}.color-picker-container{display:flex;flex-direction:column;align-items:center;margin-left:8px}.color-picker-container:first-child{margin-left:0}.color-picker-label{display:inline-block;width:28px;height:28px;border:2px solid #d0d0d0;border-radius:3px;cursor:pointer;position:relative;overflow:hidden}.color-picker-input{width:100%;height:100%;cursor:pointer;border:none;padding:0}.color-label{font-size:9px;color:#666;margin-top:1px;text-align:center}.table-container{flex:1;overflow-x:scroll;overflow-y:auto;background-color:#fff;position:relative;will-change:auto}table{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border-collapse:collapse;background-color:#fff;table-layout:fixed;will-change:auto;transform:translateZ(0)}table td{user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-touch-callout:none}.col-header{background-color:#e8e8e8;border:1px solid #a6a6a6;padding:3px 6px;text-align:center;font-weight:600;color:#333;height:20px;font-size:10px;user-select:none;-webkit-user-select:none;cursor:default;position:relative}.row-header{background-color:#e8e8e8;border:1px solid #a6a6a6;padding:2px 4px;font-weight:600;color:#666;width:30px;height:20px;font-size:10px;text-align:center;user-select:none;-webkit-user-select:none;cursor:default;position:relative}.empty-header{background-color:#e8e8e8;border:1px solid #a6a6a6;width:30px;height:20px}.cell{border:1px solid #d0d0d0;padding:3px 6px;cursor:cell;background-color:#fff;font-size:10px;color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;position:relative;transition:background-color .2s ease;transform:translateZ(0);touch-action:manipulation;-webkit-user-select:none;user-select:none}.cell-selected{background-color:#e6f2ff!important;border:1px solid #66b3ff}.cell-selected:hover{background-color:#cce5ff!important}.cell-clipboard{position:relative}.cell-clipboard:after{content:"";position:absolute;inset:0;border:2px dashed #ff9800;pointer-events:none}.cell-editing{border:2px solid #007bff;padding:2px 5px;cursor:text;background-color:#fff;font-size:10px;color:#333;overflow:hidden}.cell-has-image{background-color:#fef3c7;cursor:pointer;font-weight:500;border:1px solid #d0d0d0;transition:background-color .2s ease}.cell-input{width:100%;height:100%;border:none;padding:2px;font-size:10px;font-family:inherit;box-sizing:border-box}.comment-badge{position:absolute;top:0;right:0;width:4px;height:4px;background-color:#ff6b6b;border-radius:50%}.image-badge{position:absolute;top:0;right:5px;width:4px;height:4px;background-color:#4caf50;border-radius:50%}.comment-panel{padding:8px 12px;background-color:#f9f9f9;border-top:1px solid #d0d0d0;max-height:120px;overflow-y:auto}.comment-panel-title{margin-bottom:10px;font-size:12px;font-weight:600;color:#333}.comment-text{font-size:10px;color:#666;margin-bottom:6px;padding:6px;background-color:#fff;border-radius:3px;border:1px solid #e0e0e0}.comment-input{padding:6px 10px;font-size:11px;border:1px solid #d0d0d0;border-radius:3px;margin-top:8px;width:100%;box-sizing:border-box;font-family:Calibri,Arial;min-height:50px;resize:none}.modal-overlay{background-color:#000c;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.modal-content{position:fixed;inset:0;width:100%;height:100vh;background:none;padding:0;overflow:auto;border-radius:0;text-align:center;box-shadow:none;display:flex;flex-direction:column;justify-content:center;align-items:center;border:none;z-index:100}.modal-image{width:100%;height:100%;object-fit:contain;cursor:pointer}button{transition:all .2s cubic-bezier(.4,0,.2,1)}button:active{transform:scale(.98)}.btn-primary{margin-top:12px;padding:5px 10px;cursor:pointer;background-color:#007bff;color:#fff;border:none;border-radius:3px;font-weight:500;font-size:11px}.btn-primary:hover{background-color:#0056b3}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:6px}::-webkit-scrollbar-thumb:hover{background:#a1a1a1}::-webkit-scrollbar-corner{background:#f1f1f1}.disabled{opacity:.5;cursor:not-allowed}@media(max-width:768px){.toolbar{padding:6px 8px;gap:6px;position:sticky;top:0;z-index:100}.toolbar-section{gap:3px;padding-right:6px}.file-input-label,.toolbar-button{padding:3px 5px;font-size:9px;min-width:24px}.font-select{padding:2px 4px;font-size:9px}.col-header{padding:2px 4px;font-size:9px;height:18px}.row-header{padding:1px 3px;font-size:9px;height:18px}.cell{padding:2px 4px;font-size:9px}.title{font-size:10px}*{padding:0}table td{padding:2px 4px!important;height:18px!important;font-size:9px!important}button{padding:3px 6px!important;font-size:9px!important}}@media(min-width:769px)and (max-width:1024px){.toolbar{padding:7px 10px;gap:7px;position:sticky;top:0;z-index:100}.toolbar-button{padding:4px 6px;font-size:10px}.cell{padding:3px 5px;font-size:10px}table td{width:56px!important}}
