*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:Arial,Helvetica,sans-serif;color:#202124;overflow:hidden}button,input,select{font:inherit}.loading{height:100%;display:grid;place-items:center}.login{height:100%;display:grid;place-items:center;background:#f7f9fc}.login form{width:390px;background:#fff;padding:34px;border:1px solid #e2e6eb;border-radius:18px;box-shadow:0 16px 44px #0001}.login .logo{width:48px;height:48px;background:#188038;color:#fff;border-radius:12px;display:grid;place-items:center;font-weight:800}.login h1{margin:16px 0 4px}.login p{margin:0 0 20px;color:#6b7280}.login label{display:block;font-size:13px;font-weight:700;margin:13px 0 6px}.login input{width:100%;padding:11px;border:1px solid #cfd6df;border-radius:8px}.login form>button{width:100%;margin-top:20px;padding:11px;border:0;border-radius:8px;background:#188038;color:#fff;font-weight:700}.login small{display:block;text-align:center;margin-top:16px;color:#64748b}.alert,.error{background:#fce8e6;color:#b3261e}.alert{padding:9px;border-radius:7px}.app{height:100%;display:grid;grid-template-rows:auto 1fr 34px;min-width:900px}header{background:#f8fbf9;border-bottom:1px solid #dadce0;z-index:40}.topbar{height:72px;display:flex;gap:10px;padding:9px 12px 4px;align-items:flex-start}.brand{width:40px;height:40px;background:#188038;color:#fff;border-radius:7px;display:grid;place-items:center;font-size:26px;margin-top:4px}.titlearea{flex:1;min-width:500px}.titleline{height:29px;display:flex;align-items:center;gap:8px}.docname{border:0;background:transparent;font-size:18px;padding:3px 6px;border-radius:5px;max-width:440px}.docname:hover{background:#edf1ef}.cloud{font-size:12px;color:#5f6368}.menus{display:flex;gap:1px}.mw{position:relative}.m{border:0;background:transparent;padding:5px 8px;border-radius:4px;font-size:14px}.m:hover,.m.on{background:#e8eeeb}.shield{position:fixed;inset:0;z-index:90}.pop{position:absolute;left:0;top:30px;width:240px;background:#fff;border:1px solid #dadce0;border-radius:8px;padding:6px;box-shadow:0 8px 28px #0003;z-index:100}.mi{display:block;width:100%;height:34px;border:0;background:#fff;text-align:left;padding:0 11px;border-radius:5px;color:#202124;text-decoration:none;line-height:34px}.mi:hover{background:#f1f3f4}.mi.danger,.ctx .danger{color:#b3261e}.upload{position:relative}.upload input{position:absolute;inset:0;opacity:0;cursor:pointer}.div{border-top:1px solid #e5e7eb;margin:5px}.right{display:flex;align-items:center;gap:8px;padding-top:7px}.searchbox{width:240px;height:38px;border-radius:20px;background:#edf4ef;display:flex;align-items:center;gap:7px;padding:0 12px}.searchbox input{border:0;background:transparent;outline:0;width:100%}.private{height:38px;border:0;border-radius:20px;padding:0 15px;background:#c2e7ff;color:#001d35;font-weight:700}.avatar,.icon{border:0;width:34px;height:34px;border-radius:50%}.avatar{background:#7c3aed;color:#fff;font-weight:700}.icon{background:transparent}.toolbar{height:44px;margin:0 10px 5px;border-radius:22px;background:#edf4ef;display:flex;align-items:center;padding:0 10px;gap:3px;overflow-x:auto}.toolbar button,.toolbar select,.toolbar label{height:30px;min-width:30px;border:0;background:transparent;border-radius:5px;display:grid;place-items:center;padding:0 7px}.toolbar button:hover,.toolbar select:hover,.toolbar label:hover,.toolbar .on{background:#dce9e1}.toolbar>span{height:22px;border-left:1px solid #c6cec9;margin:0 3px}.toolbar label{position:relative;font-weight:700}.toolbar label input{position:absolute;opacity:0;width:1px;height:1px}.toolbar em{font-style:normal;font-size:12px;color:#5f6368;margin-left:auto}.formula{height:34px;display:flex;align-items:center;background:#fff;border-top:1px solid #e2e5e3}.addr{width:82px;height:100%;border-right:1px solid #dadce0;display:grid;place-items:center;font-size:12px}.fx{width:38px;text-align:center;font-family:Georgia;font-style:italic;color:#5f6368}.formula input{flex:1;height:100%;border:0;outline:0;padding:0 8px}.error{position:fixed;top:154px;left:50%;transform:translateX(-50%);padding:9px 14px;border-radius:8px;z-index:300;box-shadow:0 5px 18px #0002}.error button{border:0;background:none;color:inherit}.gridwrap{overflow:auto;position:relative;background:#fff}.grid{border-collapse:separate;border-spacing:0;table-layout:fixed;min-width:100%;font-size:calc(13px * var(--zoom));transform-origin:top left}.grid th,.grid td{height:28px;border-right:1px solid #e2e5e3;border-bottom:1px solid #e2e5e3;padding:0;position:relative}.grid thead th{position:sticky;top:0;z-index:20;background:#f8f9fa}.grid .corner{left:0;z-index:25}.letter{height:19px;display:grid;place-items:center;font-size:11px;color:#5f6368}.colname{height:28px;border-top:1px solid #e2e5e3;display:flex;align-items:center;padding:0 5px}.colname span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.colname button{border:0;background:none}.plus{border:0;background:none;font-size:18px}.filters th{top:48px}.filters input{width:calc(100% - 6px);margin:3px;border:1px solid #d1d5db;border-radius:4px;height:22px;padding:0 5px;font-size:11px}.rn{position:sticky;left:0;z-index:15;background:#f8f9fa;color:#5f6368;font-weight:400;text-align:center}.rn button{display:none;position:absolute;right:2px;top:2px;border:0;background:#e8f0fe}.rn:hover button{display:block}.grid td{background:#fff;overflow:visible}.grid td.selected{box-shadow:inset 0 0 0 2px #1a73e8;z-index:8}.grid td.merged{z-index:9}.celledit{width:100%;height:100%;border:0;outline:0;background:transparent;padding:4px 6px;color:inherit;text-align:inherit;font-size:inherit;font-weight:inherit;font-style:inherit;text-decoration:inherit}.check{display:block;margin:auto}.fr tbody tr:first-child td,.fr tbody tr:first-child th{position:sticky;top:var(--head);z-index:13}.fc tbody td:nth-of-type(1){position:sticky;left:46px;z-index:12}.fr.fc tbody tr:first-child td:nth-of-type(1){z-index:16}.ctxshield{position:fixed;inset:0;z-index:190}.ctx{position:fixed;z-index:200;width:225px;background:#fff;border:1px solid #dadce0;border-radius:8px;padding:6px;box-shadow:0 10px 30px #0003;max-height:70vh;overflow:auto}.ctx button{width:100%;height:32px;border:0;background:#fff;text-align:left;padding:0 10px;border-radius:5px}.ctx button:hover{background:#f1f3f4}.ctx hr{border:0;border-top:1px solid #e5e7eb;margin:5px}.toast{position:fixed;left:50%;bottom:52px;transform:translateX(-50%);background:#323232;color:#fff;padding:9px 16px;border-radius:5px;z-index:300}footer{height:34px;background:#f8fbf9;border-top:1px solid #dadce0;display:flex;align-items:center;z-index:40}footer>div:first-child{display:flex;padding:0 7px}footer button{border:0;background:transparent;height:30px}.tabs{display:flex;flex:1;height:100%;overflow-x:auto}.tabs button{min-width:115px;border-right:1px solid #dadce0;padding:0 13px}.tabs button.active{background:#d9eadf;color:#137333;border-bottom:3px solid #188038;font-weight:700}.pager{display:flex;align-items:center;gap:4px;padding:0 10px;font-size:11px;color:#5f6368}@media(max-width:1100px){.searchbox{width:180px}.private{padding:0 10px}.titlearea{min-width:430px}}
.filterbtn.active{color:#188038;background:#e6f4ea!important;border-radius:4px}
.filtermenu{position:fixed;z-index:210;width:290px;background:#fff;border:1px solid #dadce0;border-radius:8px;padding:8px;box-shadow:0 12px 34px #0003}
.filtermenu button{width:100%;height:33px;border:0;background:#fff;text-align:left;padding:0 10px;border-radius:5px}
.filtermenu button:hover{background:#f1f3f4}
.filtermenu hr{border:0;border-top:1px solid #e5e7eb;margin:7px 0}
.fm-title{font-weight:700;padding:7px 10px 9px}
.fm-label{font-size:12px;color:#5f6368;font-weight:700;padding:6px 8px 4px;text-transform:uppercase}
.fm-search{display:flex;border:1px solid #cfd5dc;border-radius:6px;margin:2px 7px 6px;overflow:hidden}
.fm-search input{flex:1;border:0;outline:0;padding:8px}
.fm-search button{width:34px;padding:0;text-align:center}
.swatches{display:grid;grid-template-columns:repeat(9,1fr);gap:5px;padding:4px 8px 9px}
.swatches button{height:23px!important;width:23px!important;border:1px solid #c8cdd2!important;border-radius:50%!important;padding:0!important}
.swatches.text{grid-template-columns:repeat(7,1fr)}
.row-selected td,.row-selected .rn{background:#e8f0fe!important}
.row-selected td{box-shadow:inset 0 1px #c6dafc,inset 0 -1px #c6dafc}
.statuscount{margin-left:auto;padding:0 14px;font-size:12px;color:#3c4043;white-space:nowrap}
.statuscount b{font-weight:700}

.selecthint{margin-left:12px;color:#777;font-weight:400}
.rn{user-select:none}
.row-selected .rn{background:#d2e3fc!important;color:#174ea6!important;font-weight:700}
