*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;width:100%;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.canvas-root{position:relative;width:100vw;height:100vh;overflow:hidden;background:#e9ebf0;background-image:radial-gradient(circle,#b1b7c3 1px,transparent 1px);background-size:var(--grid-size) var(--grid-size);touch-action:none;cursor:grab}.canvas-world{position:absolute;top:0;left:0;transform-origin:0 0;will-change:transform}.origin-marker{position:absolute;transform:translate(-50%,-50%);pointer-events:none;z-index:10;overflow:visible;fill:none;stroke:#2d6cdf;stroke-width:1.5;stroke-linecap:round;opacity:0;scale:.4;transition:opacity .4s ease,scale .4s ease;filter:drop-shadow(0 0 1px white) drop-shadow(0 0 1px white)}.origin-marker.visible{opacity:.75;scale:1;transition:opacity .2s ease-out,scale .3s cubic-bezier(.34,1.56,.64,1)}.origin-marker-dot{fill:#2d6cdf;stroke:none}.canvas-ui{position:fixed;top:20px;left:20px;display:flex;gap:10px;z-index:50}.canvas-ui-right{left:auto;right:20px}.add-menu-btn,.history-btn,.done-btn{position:relative;z-index:1;transition:color .2s}.add-menu-btn.open{color:#adb5bd}.history-btn:disabled{color:#ced4da;cursor:default}.history-btn:disabled:hover{background:#fff}.add-tray{display:flex;gap:10px;transform:translate(calc(-100% - var(--tray-hide, 80px)));visibility:hidden;transition:transform .3s cubic-bezier(.65,0,.35,1),visibility 0s .3s}.add-tray.open{transform:none;visibility:visible;transition:transform .3s cubic-bezier(.65,0,.35,1),visibility 0s}.btn{border:none;background:#fff;color:#222;padding:10px 16px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 2px 6px #00000026}.btn:hover{background:#f4f4f4}.btn.active,.btn-primary{background:#2d6cdf;color:#fff}.btn-primary:hover{background:#2159c2}.btn-icon{display:flex;align-items:center;padding:4px 8px}.btn-icon-lg{padding:8px}.btn-icon-sq{display:flex;align-items:center;justify-content:center;padding:8px 10px}.btn-danger{color:#c0392b}.note{position:absolute;background:#fff;border:1px solid rgba(0,0,0,.08);box-shadow:0 4px 10px #0000002e;cursor:grab;transition:box-shadow .15s,opacity .25s;touch-action:none}.note.zoomed{cursor:default;box-shadow:0 10px 30px #0000004d}.note.selected{box-shadow:0 0 0 2px #2d6cdf,0 4px 10px #0000002e}.note.dimmed{opacity:.25;pointer-events:none}.note-content{position:relative;width:100%;height:100%}.composition{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.composition-clip{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.postit-composition.active .composition-clip{cursor:text}.postit-composition.active.arrange .composition-clip{cursor:default}.comp-el{position:absolute;transform-origin:center center;touch-action:none;pointer-events:none}.postit-composition.active .comp-el{pointer-events:auto;cursor:move}.comp-text-input{display:block;width:100%;margin:0;padding:0 6px;border:none;outline:none;resize:none;overflow:hidden;background:transparent;line-height:1.3;white-space:pre-wrap;overflow-wrap:break-word;pointer-events:none}.comp-el.editing .comp-text-input{pointer-events:auto;cursor:text}.postit-composition.active .comp-el.editing{cursor:text}.transform-box{position:absolute;transform-origin:center center;outline:1px solid rgba(45,108,223,.7);outline-offset:1px;pointer-events:none;z-index:3}.transform-box .resize-handle,.transform-box .rotate-handle{pointer-events:auto}.doc-flow{display:flex;flex-direction:column;gap:6px;padding:calc(var(--grid-size) / 2)}.doc-text{display:block;width:100%;margin:0;padding:0;border:none;outline:none;resize:none;overflow:hidden;background:transparent;font-family:inherit;line-height:1.4;color:#222;pointer-events:none}.doc-title{line-height:1.2;margin-bottom:4px}.doc-heading{line-height:1.25;margin-top:6px}.doc-composition.active .doc-text{pointer-events:auto}.doc-image{position:relative;width:100%;overflow:hidden;border-radius:2px;pointer-events:none}.doc-composition.active .doc-image{pointer-events:auto;cursor:pointer}.doc-image.selected{outline:2px solid #2d6cdf;outline-offset:1px}.quip-flow{display:flex;flex-direction:column}.quip-gallery{display:grid;gap:2px}.quip-tile{position:relative;overflow:hidden;background:#f1f3f5;pointer-events:none}.quip-composition.active .quip-tile{pointer-events:auto;cursor:pointer}.quip-composition.active .quip-tile:hover{filter:brightness(1.06)}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;background:#0c0c10f5;color:#fff;touch-action:none;-webkit-user-select:none;user-select:none;cursor:default}.lightbox-top{position:absolute;top:0;left:0;right:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:16px 20px;pointer-events:none}.lightbox-counter{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:.04em;opacity:.85}.lightbox-close,.lightbox-nav{pointer-events:auto;border:none;border-radius:50%;background:#ffffff1f;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}.lightbox-close:hover,.lightbox-nav:hover:not(:disabled){background:#ffffff3d}.lightbox-close{width:40px;height:40px;font-size:18px}.lightbox-nav{position:absolute;top:50%;z-index:2;width:48px;height:48px;margin-top:-24px;font-size:32px;line-height:1;padding-bottom:4px}.lightbox-nav:disabled{opacity:.25;cursor:default}.lightbox-nav.prev{left:20px}.lightbox-nav.next{right:20px}.lightbox-stage{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:72px 88px 96px}.lightbox-image{display:flex;max-width:100%;max-height:100%;transition:transform .2s ease-out}.lightbox-image.dragging{transition:none}.lightbox-image .image-canvas{width:auto;height:auto;max-width:calc(100vw - 176px);max-height:calc(100vh - 168px);box-shadow:0 10px 40px #00000080;pointer-events:none}.lightbox .lightbox-tools{position:absolute;left:50%;bottom:24px;transform:translate(-50%)}@media (max-width: 600px){.lightbox-stage{padding:64px 12px 88px}.lightbox-image .image-canvas{max-width:calc(100vw - 24px)}.lightbox-nav{display:none}}.quip-tile .image-canvas{object-fit:cover}.quip-more{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#14141e59;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#fff;font-size:18px;font-weight:700;text-shadow:0 1px 3px rgba(0,0,0,.4)}.quip-text{display:flex;flex-direction:column;gap:2px;padding:calc(var(--grid-size) / 2);padding-bottom:calc(var(--grid-size) / 2 + 6px)}.quip-composition.active .doc-text{pointer-events:auto}.drawing-svg{display:block;overflow:visible}.image-canvas{width:100%;height:100%;display:block;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.resize-handle{position:absolute;width:8px;height:8px;background:#fff;border:1px solid #2d6cdf;border-radius:1px;touch-action:none}.handle-nw{top:-5px;left:-5px;cursor:nwse-resize}.handle-ne{top:-5px;right:-5px;cursor:nesw-resize}.handle-sw{bottom:-5px;left:-5px;cursor:nesw-resize}.handle-se{bottom:-5px;right:-5px;cursor:nwse-resize}.side-handle{width:6px;height:14px;top:50%;cursor:ew-resize}.handle-w{left:-4px;transform:translateY(-50%)}.handle-e{right:-4px;transform:translateY(-50%)}.rotate-handle{position:absolute;top:-32px;left:50%;transform:translate(-50%);width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#fff;color:#2d6cdf;border:1px solid rgba(45,108,223,.7);box-shadow:0 1px 3px #0003;cursor:grab;touch-action:none}.rotate-handle.below{top:auto;bottom:-32px}.rotate-handle.below svg{transform:scaleY(-1)}.rotate-handle:active{cursor:grabbing}.element-toolbar{position:fixed;z-index:200;transform:translate(-50%,-100%);display:flex;align-items:center;gap:2px;background:#fff;padding:4px;border-radius:8px;box-shadow:0 3px 10px #00000040;pointer-events:auto;white-space:nowrap;cursor:default}.element-toolbar button{display:flex;align-items:center;justify-content:center;min-width:30px;height:30px;border:none;background:transparent;font-size:16px;padding:0 6px;border-radius:6px;cursor:pointer;color:#222}.element-toolbar button:hover:not(:disabled){background:#f0f0f0}.element-toolbar button.active{background:#e3ecfb;color:#2d6cdf}.element-toolbar button:disabled{opacity:.35;cursor:default}.element-toolbar-sep{width:1px;align-self:stretch;margin:2px 4px;background:#e0e0e0}.element-toolbar .style-btn{font-size:13px;font-weight:600;padding:0 10px}.element-toolbar .style-title{font-size:15px;font-weight:800}.element-toolbar .font-picker-btn{gap:6px;height:30px;border:1px solid #ddd;background:#fff;font-size:14px;padding:0 8px}.font-picker-caret{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:10px;color:#868e96}.element-toolbar-popover.font-menu{top:calc(100% + 6px);bottom:auto}.font-menu{display:flex;flex-direction:column;min-width:120px;padding:4px;background:#fff;border-radius:10px;box-shadow:0 3px 14px #0000004d}.element-toolbar .font-menu button{justify-content:flex-start;height:32px;padding:0 10px;font-size:16px}.font-size{display:flex;align-items:center}.font-size input{width:42px;height:26px;border:1px solid #ddd;border-radius:6px;text-align:center;font-size:13px;-moz-appearance:textfield}.font-size input::-webkit-inner-spin-button,.font-size input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.color-chip{width:18px;height:18px;border-radius:50%;border:1px solid rgba(0,0,0,.25)}.element-toolbar-popover-host{position:relative;display:flex}.element-toolbar-popover{position:absolute;left:50%;bottom:calc(100% + 10px);transform:translate(-50%)}.color-popover{display:grid;grid-template-columns:repeat(4,22px) 30px;gap:6px;align-items:center;background:#fff;padding:8px;border-radius:10px;box-shadow:0 3px 14px #0000004d}.color-popover .pen-color,.element-toolbar .color-popover .pen-color{min-width:0;width:22px;height:22px;padding:0;border-radius:50%;border:2px solid rgba(0,0,0,.12)}.color-popover .pen-color.selected,.element-toolbar .color-popover .pen-color.selected{border-color:#2d6cdf}.element-toolbar.docked{transform:none}.element-toolbar.docked .element-toolbar-popover{top:calc(100% + 10px);bottom:auto;left:0;transform:none}.color-popover input[type=color]{grid-column:5;grid-row:1 / span 2;justify-self:center;width:30px;height:30px;padding:0;border:none;background:none;cursor:pointer}.note-toolbar .element-toolbar-popover-host>.btn.active{background:#e3ecfb;color:#2d6cdf}.emoji-icon{display:block;width:20px;font-size:20px;line-height:20px;text-align:center;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}.emoji-popover{display:flex;width:340px;height:340px;background:#fff;border-radius:10px;box-shadow:0 3px 14px #0000004d;overflow:hidden;cursor:default}.emoji-rail{display:flex;flex-direction:column;gap:2px;padding:6px 4px;background:#f8f9fa;border-right:1px solid #e9ecef}.emoji-rail-btn,.element-toolbar .emoji-rail-btn{min-width:0;width:32px;height:32px;padding:0;border:none;border-radius:6px;background:transparent;font-size:18px;line-height:1;cursor:pointer;opacity:.55;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}.emoji-rail-btn:hover,.element-toolbar .emoji-rail-btn:hover:not(:disabled){background:#e9ecef;opacity:1}.emoji-rail-btn.active,.element-toolbar .emoji-rail-btn.active{background:#e3ecfb;opacity:1}.emoji-list{position:relative;flex:1;min-width:0;overflow-y:auto;padding:0 8px 10px}.emoji-group-name{position:sticky;top:0;z-index:1;margin:0 -2px 2px;padding:8px 4px 4px;background:#fff;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#868e96}.emoji-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.emoji-btn,.element-toolbar .emoji-btn{min-width:0;height:32px;border:none;border-radius:6px;background:transparent;font-size:20px;line-height:1;padding:0;cursor:pointer;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}.emoji-btn:hover{background:#f0f0f0}.filter-popover{background:#fff;border-radius:10px;padding:10px;box-shadow:0 3px 14px #0000004d;width:220px}.filter-swatches{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.filter-swatch{width:32px;height:32px;border-radius:50%;border:2px solid transparent;cursor:pointer;font-size:10px;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.4)}.filter-swatch.selected{border-color:#2d6cdf}.filter-none{background:#ddd;color:#333;text-shadow:none}.filter-bw{background:linear-gradient(90deg,#111 50%,#eee 50%)}.filter-tolerance{display:block;margin-top:10px;font-size:12px;color:#444}.filter-tolerance input{width:100%}.filter-close{margin-top:8px;width:100%;border:none;background:#2d6cdf;color:#fff;padding:6px;border-radius:6px;cursor:pointer}.draw-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;width:100%;height:100%;pointer-events:none;touch-action:none}.draw-layer.active{pointer-events:auto;cursor:crosshair}.note-toolbar{position:fixed;display:flex;flex-direction:column;align-items:center;gap:16px;background:#fff;padding:10px;border-radius:12px;box-shadow:0 6px 20px #00000040;z-index:100}.note-toolbar-group{display:flex;flex-direction:column;align-items:center;gap:8px}.note-toolbar .btn:disabled{opacity:.5;cursor:progress}.note-toolbar-group+.note-toolbar-group{border-top:1px solid #e0e0e0;padding-top:16px}.note-toolbar .element-toolbar-popover{left:auto;right:calc(100% + 10px);top:0;bottom:auto;transform:none}.pen-color{width:22px;height:22px;border-radius:50%;border:2px solid transparent;cursor:pointer}.pen-color.selected{border-color:#2d6cdf}.pen-width{width:90px;margin:0 6px}.stack-popup{position:fixed;z-index:200;left:50%;bottom:24px;transform:translate(-50%);display:flex;align-items:center;gap:8px;background:#fff;padding:4px 6px;border-radius:20px;box-shadow:0 3px 10px #00000040;pointer-events:auto}.stack-popup button{width:24px;height:24px;border:none;border-radius:50%;background:#f0f0f0;font-size:16px;font-weight:700;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}.stack-popup button:hover{background:#e2e2e2}.stack-popup-sep{width:1px;align-self:stretch;margin:2px 0;background:#e0e0e0}.stack-popup .stack-popup-delete{background:transparent;font-size:14px}.stack-popup .stack-popup-delete:hover{background:#fdecea}.stack-popup-value{min-width:1.5em;text-align:center;font-size:13px;font-weight:700;color:#333}.text-decor{position:relative;display:flow-root}.text-decor>.doc-text{caret-color:#222}.text-decor>textarea::placeholder{color:#a9a9a9;opacity:1}.text-decor>.text-mirror{position:absolute;top:0;left:0;right:0;white-space:pre-wrap;overflow-wrap:break-word;pointer-events:none!important}.text-tag{color:#1a6fd9}.text-tag.clickable{pointer-events:auto;cursor:pointer}.text-tag.clickable:hover{text-decoration:underline}.text-decor.editing .text-tag.clickable{pointer-events:none}body.tag-modifier .text-decor.editing .text-tag.clickable{pointer-events:auto}.note.dimmed .text-tag.clickable{pointer-events:none}.search-hit{color:inherit;background:#ffe066;border-radius:2px;box-shadow:0 0 0 1px #ffe066}.search-page{position:fixed;top:0;right:0;bottom:0;left:0;z-index:400;display:flex;flex-direction:column;background:#e9ebf0}.search-header{display:flex;align-items:center;gap:12px;padding:20px;width:100%;max-width:760px;margin:0 auto}.search-field{flex:1;display:flex;align-items:center;gap:10px;min-width:0;background:#fff;border-radius:10px;padding:0 14px;color:#868e96;box-shadow:0 2px 6px #00000026}.search-field:focus-within{box-shadow:0 0 0 2px #2d6cdf,0 2px 6px #00000026}.search-field input{flex:1;min-width:0;height:48px;border:none;outline:none;background:transparent;font:inherit;font-size:17px;color:#222}.search-results{flex:1;overflow-y:auto;padding:4px 16px 40px}.search-status{margin:0 auto 14px;max-width:100%;text-align:center;font-size:14px;color:#6b7280}.search-grid{position:relative;margin:0 auto}.search-count{text-align:left}.search-card{position:absolute;overflow:hidden;background:#fff;border:1px solid rgba(0,0,0,.08);box-shadow:0 4px 10px #0000002e;cursor:pointer;transition:box-shadow .15s,transform .15s}.search-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px #00000038}.search-card:focus-visible{outline:2px solid #2d6cdf;outline-offset:2px}.search-card.clipped:after{content:"";position:absolute;left:0;right:0;bottom:0;height:calc(var(--grid-size) * 2);background:linear-gradient(transparent,#fff);pointer-events:none}.note.note-preview{position:relative;border:none;box-shadow:none;cursor:inherit}.login-page{position:fixed;top:0;right:0;bottom:0;left:0;margin:0;display:flex;align-items:center;justify-content:center;padding:16px;background:#e9ebf0;background-image:radial-gradient(circle,#b1b7c3 1px,transparent 1px);background-size:var(--grid-size) var(--grid-size);color:#222}.login-form{display:flex;flex-direction:column;gap:14px;width:100%;max-width:320px;padding:24px;background:#fff;border-radius:10px;box-shadow:0 2px 6px #00000026}.login-form h1{margin:0 0 4px;font-size:20px}.login-field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:#555}.login-field input{height:40px;padding:0 10px;border:1px solid #d0d4db;border-radius:8px;outline:none;font:inherit;font-size:16px;font-weight:400;color:#222}.login-field input:focus{border-color:#2d6cdf;box-shadow:0 0 0 1px #2d6cdf}.login-error{margin:0;font-size:13px;color:#c0392b}.login-submit{height:40px}.login-submit:disabled{opacity:.6;cursor:default}
