@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
*{box-sizing:border-box}body{margin:0;overflow:hidden;color:#2d3139;font-family:'DM Sans',sans-serif;background:#f3f5f8}button,input{font:inherit}button{cursor:pointer;border:0;background:none;color:inherit}button:hover{background:#ebedf2}button:focus-visible{outline:2px solid #071d50;outline-offset:3px}#canvas{position:absolute;inset:0;background-image:radial-gradient(#c6cad2 .8px,transparent .8px);background-size:24px 24px;overflow:hidden}#world{position:absolute;inset:0;transform-origin:0 0}header{position:absolute;top:26px;left:30px;display:flex;gap:20px;align-items:center}.brand{font:800 44px 'Manrope',sans-serif;line-height:1;text-decoration:none;color:#071d50;letter-spacing:-7px;width:33px}.brand span{color:#858da0}.divider{height:30px;width:1px;background:#d4d7dd}#title{background:transparent;border:0;color:#2d3139;font-size:15px;font-weight:600;width:188px;outline:none}.save{font-size:10px;color:#7d8598;margin:5px 2px}.save:first-letter{color:#778094}.badge{font-size:9px;letter-spacing:1px;color:#6f788d;border:1px solid #d2d7e3;border-radius:5px;padding:6px 8px}.topright{position:absolute;right:30px;top:28px;display:flex;align-items:center;gap:15px}.avatar{border:3px solid white;background:#d8dce7;border-radius:50%;width:35px;height:35px;display:grid;place-items:center;font-size:10px}.topright button{background:#071d50;color:white;border-radius:7px;padding:11px 17px;font-size:12px}aside{position:absolute;left:27px;top:50%;transform:translateY(-50%);background:white;padding:7px;border:1px solid #dde1ea;border-radius:12px;box-shadow:0 4px 15px #071d5008;display:flex;flex-direction:column;gap:7px}aside button{width:40px;height:40px;border-radius:7px;font-size:23px}aside .active{background:#e7eaf0;color:#071d50}.tool-divider{height:1px;background:#dce0ea;margin:3px 4px}.stickyicon{display:inline-grid;place-items:center;border:1.5px solid #b49f52;background:#f7df8f;width:23px;height:24px;border-radius:2px;font-size:20px;color:#8d793c}.intro{position:absolute;left:calc(50% - 390px);top:23%;pointer-events:none}.eyebrow{font-size:10px;letter-spacing:2.5px;color:#757e93;font-weight:600}h1{font-family:'Manrope',sans-serif;font-weight:500;font-size:36px;letter-spacing:-1.5px;margin:12px 0}p{color:#828a9d;font-size:13px;line-height:1.8;margin:0}.note{position:absolute;width:220px;height:220px;box-shadow:1px 6px 10px #071d5012;border-radius:2px;display:flex;flex-direction:column;transition:box-shadow .15s}.note.selected{outline:1.5px solid #071d50;outline-offset:4px;box-shadow:2px 12px 20px #071d5018}.grip{height:30px;flex-shrink:0;cursor:grab;touch-action:none;display:flex;align-items:center;justify-content:center;opacity:0;color:#071d50;font-size:16px;letter-spacing:2px}.note:hover .grip,.note.selected .grip{opacity:.5}.note .note-text{font-family:'Manrope',sans-serif;background:transparent;border:0;resize:none;outline:none;width:100%;flex:1;padding:0 22px 18px;font-size:18px;line-height:1.55;color:#353a44}.note:after{content:'';position:absolute;right:0;bottom:0;width:17px;height:17px;background:#00000009;clip-path:polygon(100% 0,0 100%,100% 100%);pointer-events:none}.note .note-text::placeholder{color:#50566588}#context{position:absolute;bottom:85px;left:50%;transform:translateX(-50%);background:white;box-shadow:0 5px 25px #071d5016;border:1px solid #dadfe9;border-radius:10px;padding:10px 13px;align-items:center;gap:13px}#context:not([hidden]){display:flex}.context-label{font-size:9px;letter-spacing:1px;color:#7d8598}#colors{display:flex;gap:7px}.swatch{width:21px;height:21px;border-radius:50%;border:3px solid white;box-shadow:0 0 0 1px #dce0e9}.swatch.chosen{box-shadow:0 0 0 1.5px #071d50}#context .tool-divider{height:22px;width:1px}#context>button{font-size:20px;border-radius:4px}footer{position:absolute;bottom:24px;left:30px;right:30px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.hint{font-size:10px;color:#858d9f}.hint span{margin:0 10px;color:#b2b7c3}kbd{font:10px inherit;background:#fff;border:1px solid #d4d9e5;border-radius:4px;padding:3px 5px;margin-right:5px}.zoom{display:flex;align-items:center;gap:6px;background:white;border:1px solid #dce0e9;border-radius:8px;padding:5px;pointer-events:auto}.zoom button{width:30px;height:29px;border-radius:4px;font-size:19px}.zoom span{font-size:10px;width:40px;text-align:center}.zoom div{width:1px;height:17px;background:#dce0e9}#toast{position:absolute;left:50%;bottom:30px;transform:translateX(-50%);background:#071d50;color:white;border-radius:6px;padding:9px 16px;font-size:12px;opacity:0;pointer-events:none}#toast.visible{opacity:1}@media(max-width:750px){.badge,.hint,.intro{display:none}header{left:18px;gap:12px;top:20px}#title{width:150px}.topright{right:16px;top:22px}.avatar{display:none}.topright button{font-size:0;padding:8px}.topright button:first-letter{font-size:16px}aside{left:15px}footer{right:16px;bottom:16px;justify-content:flex-end}.context-label{display:none}#context{bottom:75px}}

.size-label{display:flex;align-items:center;gap:6px;font-size:14px;white-space:nowrap;color:#5c6374}
#font-size{font:12px 'DM Sans',sans-serif;background:#f1f2f6;border:1px solid #d7dbe6;border-radius:5px;padding:6px;color:#071d50}
#context>button{min-width:28px;height:30px}
#context>button[aria-pressed="true"]{background:#dfe3eb;color:#071d50}
#context{max-width:calc(100vw - 24px);gap:10px;flex-wrap:wrap;justify-content:center}
@media(max-width:600px){#context{width:300px;gap:8px;padding:10px}#context .tool-divider{display:none}.note .note-text{overflow:auto}}

/* Ensemble's persistent workspace navigation. */
.navbar{position:absolute;z-index:100;inset:0 0 auto;height:80px;padding:0 28px;display:flex;align-items:center;gap:22px;background:#fafbfcf5;border-bottom:1px solid #dadee8;box-shadow:0 2px 12px #071d5003}
.navbar .brand{display:flex;align-items:center;gap:10px;width:auto;letter-spacing:0;text-decoration:none;flex-shrink:0}
.monogram{display:grid;place-items:center;width:38px;height:38px;background:#071d50;color:#e7eaf1;border-radius:10px}
.monogram svg{width:30px;height:30px}
.wordmark{font:700 20px 'Manrope',sans-serif;letter-spacing:-.7px}
.navbar .divider{flex-shrink:0}
.board-heading{min-width:0}
.navbar .topright{position:static;margin-left:auto;flex-shrink:0}
.navbar #title{max-width:100%}
.navbar .topright button{white-space:nowrap}
.navbar .topright button:hover{background:#071d50}
@media(max-width:850px){.navbar{gap:15px;padding:0 18px}.navbar .badge{display:none}.navbar .wordmark{font-size:18px}}
@media(max-width:600px){.navbar{height:72px;gap:12px;padding:0 14px}.navbar .wordmark{display:none}.navbar .divider{height:26px}.navbar #title{width:150px;font-size:13px}.navbar .topright{gap:0}.navbar .topright button{font-size:18px;padding:8px 11px}.navbar .topright button span{display:none}.navbar .save{font-size:9px}.monogram{width:35px;height:35px}}

.navbar .monogram{color:#e7eaf1}.navbar .wordmark{color:#071d50}

.board-heading{position:absolute;z-index:50;top:100px;left:28px;max-width:calc(100vw - 56px)}
.board-name{display:flex;align-items:center;gap:7px}
.board-heading #title{width:110px;max-width:calc(100vw - 100px);font:600 24px 'Manrope',sans-serif;letter-spacing:-.6px;padding:5px 7px;margin-left:-7px;border:1px solid transparent;border-radius:5px;transition:background .15s,border-color .15s}
.board-heading #title:hover{background:#ffffffa8;border-color:#d5dae6}
.board-heading #title:focus{background:#fff;border-color:#788195;outline:2px solid #78819520}
.rename-icon{font-size:16px;color:#838b9d;pointer-events:none}
.board-heading:focus-within .rename-icon{visibility:hidden}
.board-heading .save{margin:5px 0 0;font-size:10px}
@media(max-width:600px){.navbar .wordmark{display:inline}.board-heading{top:88px;left:20px;max-width:calc(100vw - 40px)}.board-heading #title{font-size:22px}.navbar .badge{display:none}}

.brand-lockup{display:flex;align-items:center;gap:12px;min-width:0}
.monogram-link{flex-shrink:0;text-decoration:none}
.brand-stack{display:flex;flex-direction:column;gap:2px;min-width:0}
.navbar .wordmark{font-size:18px;line-height:1.2}
.navbar .board-name{gap:5px;min-width:0}
.navbar #title{font:500 12px 'DM Sans',sans-serif;letter-spacing:0;width:95px;max-width:min(35vw,320px);padding:3px 5px;margin-left:-5px;color:#687084;border:1px solid transparent;border-radius:4px;field-sizing:content}
.navbar #title:hover{background:#e7eaf0;border-color:#d5dae6}
.navbar #title:focus{background:#fff;border-color:#788195;outline:2px solid #78819520}
.navbar .rename-icon{font-size:12px}
.navbar .board-name:focus-within .rename-icon{visibility:hidden}
.navbar .save{margin:0;font-size:10px}
@media(max-width:600px){.navbar .topright .save{display:none}.navbar .wordmark{display:block;font-size:17px}.navbar #title{font-size:12px}.brand-lockup{gap:9px}}

.note .note-text{min-height:0;overflow:auto}
.resize-handle{display:none;position:absolute;z-index:2;right:-9px;bottom:-9px;width:18px;height:18px;padding:0;border:4px solid transparent;border-radius:5px;background:#fff;background-clip:padding-box;cursor:nwse-resize;touch-action:none}
.resize-handle:after{content:'';position:absolute;inset:3px;border:1.5px solid #071d50;border-radius:2px}
.note.selected .resize-handle{display:block}
.resize-handle:hover{background:#e7eaf0}
#context .shape-preset{display:flex;align-items:center;gap:5px;padding:4px 8px;font-size:19px;border:1px solid #d9dde7;border-radius:5px}
.shape-preset span{font-size:11px;white-space:nowrap}

/* Compact formatting categories with upward-opening panels. */
#context{padding:6px;gap:3px;max-width:calc(100vw - 24px)}
.format-category{position:relative}
.format-category summary{display:flex;align-items:center;gap:7px;padding:10px 11px;border-radius:6px;cursor:pointer;list-style:none;font-size:12px;font-weight:500;white-space:nowrap}
.format-category summary::-webkit-details-marker{display:none}
.format-category summary:hover,.format-category[open] summary{background:#e7eaf0}
.format-category summary:focus-visible{outline:2px solid #071d50;outline-offset:2px}
.category-icon{font-size:17px;line-height:18px;color:#5c6476}
.color-preview{width:16px;height:16px;border-radius:50%;background:#f7e6a0;border:1px solid #00000012}
.format-panel{position:absolute;bottom:calc(100% + 14px);left:0;padding:15px;background:white;border:1px solid #dadfe9;border-radius:10px;box-shadow:0 5px 25px #071d5016;min-width:180px}
.panel-label{display:block;font-size:10px;font-weight:600;color:#757e93;letter-spacing:.6px;margin-bottom:12px}
.format-controls{display:flex;align-items:center;gap:8px}
#context .format-controls>button{min-width:32px;min-height:32px;border-radius:5px;font-size:18px}
#context button[aria-pressed="true"]{background:#dfe3eb;color:#071d50}
#context>button{width:34px;height:36px;font-size:20px}
#context #delete:hover{background:#faece7;color:#9c4c39}
#context .tool-divider{margin:0 5px;flex-shrink:0}
#colors{gap:10px}.swatch{width:24px;height:24px}
@media(max-width:480px){.format-category summary{padding:10px 7px;gap:5px}.format-category:nth-of-type(2) .format-panel{left:50%;transform:translateX(-50%)}.format-category:nth-of-type(3) .format-panel{left:auto;right:0}#context>button{width:30px}#context .tool-divider{margin:0 2px}}

#context .format-category summary{width:38px;height:38px;padding:0;justify-content:center}

/* Follow the selected note; keep menus inside the visible viewport. */
#context{position:fixed;bottom:auto;left:0;top:0;transform:none;z-index:100;flex-shrink:0}
#context .format-panel{position:fixed;bottom:auto;right:auto;transform:none;max-width:calc(100vw - 24px);overflow:auto}

.note .note-text{white-space:pre-wrap;overflow-wrap:anywhere;cursor:text;min-height:0;overflow:auto;outline:none}
.note .note-text:empty::before{content:attr(data-placeholder);color:#50566588;pointer-events:none}
.note .note-text::selection,.note .note-text *::selection{background:#969dad70}

.note .note-text p,.note .note-text div{font:inherit;color:inherit;line-height:inherit;margin:0}

#context .format-controls{flex-wrap:nowrap;white-space:nowrap}
#context .format-panel:has(#font-size){width:max-content;padding:12px}

#font-size{width:64px;min-width:0}

.font-size-picker{display:inline-flex;align-items:center;background:#f1f2f6;border:1px solid #d7dbe6;border-radius:5px;overflow:hidden}
.font-size-picker #font-size{width:48px;border:0;border-radius:0;padding:6px 4px 6px 8px;appearance:textfield;-moz-appearance:textfield}
.font-size-picker #font-size::-webkit-inner-spin-button,.font-size-picker #font-size::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
#font-size-presets{width:26px;align-self:stretch;border:0;border-left:1px solid #d7dbe6;border-radius:0;background:#e7eaf0;color:transparent;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='m3 4.5 3 3 3-3' fill='none' stroke='%2368735d' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:center;background-repeat:no-repeat}
#font-size-presets option{color:#071d50;background:white}
.font-size-picker:focus-within{outline:2px solid #071d50;outline-offset:2px}

.font-size-picker{flex-shrink:0}
#font-size-presets{min-width:30px;min-height:32px;color:#071d50;font-size:0}
#context .format-controls>button{flex-shrink:0}

#font-size-presets{width:66px;min-width:66px;font:12px 'DM Sans',sans-serif;color:#071d50;appearance:auto;background:#e7eaf0;padding:4px}

#font-size-presets{width:102px;min-width:102px}
#context .format-controls{gap:6px}

#context .font-size-picker{display:block;overflow:visible;border:0;background:none}
#font-size-trigger{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:118px;height:32px;padding:5px 9px;border:1px solid #d7dbe6;border-radius:5px;background:#f1f2f6;font-size:12px;white-space:nowrap}
#font-size-menu{position:fixed;z-index:102;width:320px;max-width:calc(100vw - 24px);padding:6px;background:white;border:1px solid #d7dbe6;border-radius:10px;box-shadow:0 8px 28px #071d5024;overflow:auto}
#font-size-menu[hidden]{display:none}
.size-option{display:flex;align-items:center;justify-content:space-between;width:100%;gap:16px;padding:7px 12px;line-height:1.25;border-radius:5px;text-align:left;white-space:nowrap}
.size-option[aria-pressed="true"]{background:#e7eaf0}
.custom-size-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px;margin-top:6px;border-top:1px solid #dce0ea;font-size:13px}
#font-size-menu #font-size{width:72px;padding:6px 8px;border:1px solid #d2d8e4;border-radius:5px;background:#f1f2f6;font-size:13px}
/* Crisp blue selection, independent of the sticky's paper color. */
.note.selected{outline:2px solid #9198a9;outline-offset:4px;box-shadow:0 0 0 5px #9198a910,0 12px 28px #26334b18}
.note.selected:before{content:'';position:absolute;inset:-9px;pointer-events:none;background:linear-gradient(white,white) top left/7px 7px no-repeat,linear-gradient(white,white) top right/7px 7px no-repeat,linear-gradient(white,white) bottom left/7px 7px no-repeat;filter:drop-shadow(0 0 1px #798195)}
.note.selected .resize-handle{right:-12px;bottom:-12px;border:4px solid transparent;border-radius:4px;width:21px;height:21px;background:white;background-clip:padding-box}.resize-handle:after{inset:3px;border:1.5px solid #9198a9;border-radius:2px}
.multi-selected .note.selected{outline:1.5px solid #9198a9;outline-offset:2px;box-shadow:0 5px 16px #26334b12}.multi-selected .note.selected:before,.multi-selected .note.selected .resize-handle{display:none}
#selection-box{position:fixed;border:1.5px solid #9198a9;pointer-events:none;z-index:80;border-radius:3px;box-shadow:0 0 0 1px #ffffffa0}#selection-box:after{content:'';position:absolute;inset:-4px;background:linear-gradient(#9198a9,#9198a9) top left/7px 7px no-repeat,linear-gradient(#9198a9,#9198a9) top right/7px 7px no-repeat,linear-gradient(#9198a9,#9198a9) bottom left/7px 7px no-repeat,linear-gradient(#9198a9,#9198a9) bottom right/7px 7px no-repeat}
#marquee{position:fixed;background:#9198a915;border:1px solid #9198a9;pointer-events:none;z-index:85;border-radius:3px}
#multi-tools{position:fixed;z-index:101;display:flex;align-items:center;gap:4px;padding:6px;background:#fff;border:1px solid #e0e4e9;border-radius:12px;box-shadow:0 8px 30px #26334b14;max-width:calc(100vw - 24px);font-size:12px}#multi-tools[hidden],#selection-box[hidden],#marquee[hidden]{display:none}#selection-count{font-size:11px;color:#767f93;padding:0 10px;white-space:nowrap}#multi-tools button,#multi-tools summary{padding:10px;border-radius:7px;white-space:nowrap}#multi-tools button:hover,#multi-tools summary:hover{background:#f4f5f8}#multi-tools>button[data-layout]{background:#f4f6f9;color:#778095;font-weight:600}#layout-menu summary{list-style:none;cursor:pointer}#layout-menu summary::-webkit-details-marker{display:none}.layout-panel{position:absolute;top:calc(100% + 8px);left:0;width:310px;max-width:calc(100vw - 24px);padding:16px;background:white;border:1px solid #e0e4e9;border-radius:12px;box-shadow:0 12px 40px #26334b20;max-height:calc(100vh - 180px);overflow:auto}.layout-panel label{display:block;font-size:10px;letter-spacing:1px;color:#7f889b;margin:5px 0 8px}.layout-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-bottom:16px}.layout-grid.two{grid-template-columns:1fr 1fr}.layout-grid button{border:1px solid #e8ebf1;text-align:center;font-size:12px}.layout-panel .gap-setting{display:flex;align-items:center;gap:8px;margin:0;letter-spacing:0;font-size:12px}.gap-setting input{width:65px;padding:7px;border:1px solid #e0e4e9;border-radius:6px}
.frame{position:absolute;border:1.5px solid #b6bac5;border-radius:12px;background:#eaecf25c;pointer-events:none}.frame-bar{position:absolute;top:0;left:0;right:0;height:40px;padding:6px 10px;display:flex;align-items:center;gap:10px;cursor:grab;pointer-events:auto;touch-action:none;border-bottom:1px solid #d1d4da;background:#e3e6eeb0;border-radius:11px 11px 0 0}.frame-bar:before{content:'⠿';color:#7d8598;font-size:18px}.frame-bar input{background:none;border:1px solid transparent;border-radius:4px;font-size:12px;font-weight:600;color:#5c6375;max-width:60%;padding:4px}.frame-bar input:focus{outline:none;background:white;border-color:#949bab}.frame-bar button{margin-left:auto;width:25px;height:25px;border-radius:5px;font-size:18px;color:#747d92}.frame-resize{position:absolute;right:-5px;bottom:-5px;width:13px;height:13px;border:2px solid #9ea4b2;background:#fff;border-radius:4px;pointer-events:auto;cursor:nwse-resize;touch-action:none}aside,footer{z-index:90}.note{z-index:1}
@media(max-width:600px){#selection-count{display:none}#multi-tools{gap:0;font-size:11px}#multi-tools button,#multi-tools summary{padding:9px 7px}}
@media(max-width:600px){#multi-tools{flex-wrap:wrap;justify-content:center;width:max-content}.layout-panel{max-height:calc(100vh - 110px)}}
#context #layout-menu[hidden]{display:none}#context .layout-panel{width:310px;white-space:normal}#context .layout-panel button{font-size:12px;padding:10px;border-radius:6px}#context .layout-panel .tidy-action{width:100%;background:#f4f6f9;color:#778095;font-weight:600;margin-bottom:14px}#context #frame-selection{width:100%;border:1px solid #d9dde7;margin-top:12px}#context #layout-menu[open] summary{background:#f4f6f9;color:#778095}
/* Icon-only spatial actions; section labels retain the menu's hierarchy. */
#context .layout-panel{width:244px;padding:14px}#context .layout-panel button{display:flex;align-items:center;justify-content:center;min-height:40px;padding:9px;color:#596071;border-radius:7px;transition:background .12s,border-color .12s}#context .layout-panel button:hover{background:#e7eaf0;border-color:#c1c5ce}#context .layout-panel button:focus-visible{outline:2px solid #9198a9;outline-offset:2px}#context .layout-panel button svg{flex-shrink:0;pointer-events:none}#context .layout-panel .tidy-action{margin-bottom:14px;color:#778095}#context .layout-grid{gap:6px;margin-bottom:16px}#context #frame-selection{margin-top:12px}
#context #tidy{display:flex;align-items:center;justify-content:center;width:42px;height:36px;margin:0 3px;border-radius:9px;background:#8a91a3;color:#fff;box-shadow:0 2px 4px #70798f20;transition:background .15s,box-shadow .15s}#context #tidy:hover{background:#778094;box-shadow:0 3px 8px #70798f30}#context #tidy:active{background:#071d50}#context #tidy:focus-visible{outline:2px solid #8a91a3;outline-offset:3px}#context #tidy[hidden]{display:none}#context #tidy svg{stroke:#fff;pointer-events:none;flex-shrink:0}
/* Ensemble board library. */
#board-home{position:fixed;inset:80px 0 0;z-index:95;overflow:auto;background:#f3f5f8;padding:62px max(32px,calc((100vw - 1120px)/2)) 32px}.home-open #canvas,.home-open aside,.home-open footer,.home-open #context,.home-open #selection-box,.home-open .navbar .board-name,.home-open .navbar .badge,.home-open .navbar .topright,.home-open #home-button{display:none!important}.home-open .brand-stack{gap:0}.home-open .navbar .wordmark{font-size:20px}.home-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:54px}.home-eyebrow{font-size:10px;font-weight:600;letter-spacing:2px;color:#7d8599}.home-heading h1{font-size:32px;letter-spacing:-1.3px;color:#071d50;margin:14px 0 10px}.home-heading p{font-size:13px;color:#7d8599}.primary-action{background:#071d50;color:white;border-radius:9px;padding:13px 19px;white-space:nowrap;font-size:12px;font-weight:600}.primary-action:hover{background:#071d50}.home-section{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.home-section h2{font-size:14px;margin:0;font-weight:600}.home-section h2 span{margin-left:7px;padding:2px 7px;background:#e2e5ed;color:#7b8498;border-radius:5px;font-size:11px}.home-section>span{font-size:11px;color:#848c9e}#board-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.board-card{position:relative;background:#fff;border:1px solid #d9dde7;border-radius:13px;overflow:hidden;transition:box-shadow .18s,transform .18s}.board-card:hover{box-shadow:0 8px 25px #071d500c;transform:translateY(-2px)}.board-open{display:block;text-align:left;width:100%;padding:0 0 20px}.board-open:hover{background:#fff}.board-preview{height:190px;border-bottom:1px solid #dfe3ec;background-color:#eaecf2;background-image:radial-gradient(#d1d4da .7px,transparent .7px);background-size:14px 14px;display:grid;place-items:center}.board-preview svg{width:100%;height:100%}.board-open h3{margin:18px 94px 5px 18px;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board-open p{margin:0 18px;color:#848c9f;font-size:11px}.board-card-actions{position:absolute;right:10px;bottom:37px;display:flex;gap:1px}.board-card-actions button{width:27px;height:27px;border-radius:5px;font-size:17px;color:#878ea0}.board-card-actions button:hover{color:#071d50;background:#e7eaf0}.board-card-actions button:last-child:hover{color:#a04d46;background:#fbefec}.home-storage{margin-top:38px;text-align:center;font-size:10px;color:#8e95a6}#board-empty{text-align:center;padding:64px 16px;border:1px dashed #d3d6dc;border-radius:14px}#board-empty h2{font:500 23px Manrope,sans-serif}#board-empty .primary-action{margin-top:24px}#board-empty[hidden],#restore-board-banner[hidden],#board-home[hidden]{display:none}#restore-board-banner{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;padding:12px 16px;border:1px solid #d3d8e4;background:#e7eaf1;border-radius:9px;font-size:12px}#restore-board-banner button{color:#071d50;font-weight:600;text-decoration:underline}.navbar #home-button{font-size:11px;color:#6e778d;border:1px solid #d3d8e4;border-radius:6px;padding:7px 11px;white-space:nowrap}#board-switcher{position:relative}#board-switcher summary{display:grid;place-items:center;list-style:none;width:23px;height:23px;border-radius:4px;cursor:pointer;color:#6e778d}#board-switcher summary::-webkit-details-marker{display:none}#board-switcher summary:hover{background:#e4e7ee}#switcher-panel{position:absolute;top:30px;left:-90px;width:260px;max-width:calc(100vw - 28px);padding:7px;background:white;border:1px solid #d6dbe6;border-radius:11px;box-shadow:0 8px 30px #071d5018}#switcher-panel button{display:block;width:100%;text-align:left;padding:10px 12px;font-size:12px;border-radius:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#switcher-list{border-block:1px solid #dfe3ec;margin:6px 0;padding:6px 0;max-height:300px;overflow:auto}#switcher-list .current-board{background:#e7eaf0;color:#071d50;font-weight:600}#board-dialog{border:1px solid #d5dae6;border-radius:16px;padding:26px;width:420px;max-width:calc(100vw - 32px);box-shadow:0 24px 80px #071d5025;color:#071d50}#board-dialog::backdrop{background:#071d5040;backdrop-filter:blur(3px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.dialog-heading h2{font:600 21px Manrope,sans-serif;margin:0}.dialog-heading button{font-size:24px;padding:0 5px;color:#8991a3}#board-dialog-description{font-size:12px;color:#7d8599;margin:14px 0 20px}#board-name-label{display:block;font-size:11px;font-weight:600;color:#6d768a}#board-name-label[hidden]{display:none}#board-dialog-name{display:block;width:100%;margin-top:8px;border:1px solid #d1d4da;border-radius:8px;padding:12px;background:#f9fafb;outline-color:#858d9f;color:#071d50}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:25px}.dialog-actions>button{font-size:12px;padding:11px 15px;border-radius:8px}.danger-action{background:#a25348}.danger-action:hover{background:#8d4339}#toast{z-index:150}
@media(max-width:900px){#board-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#board-home{padding:40px 24px}.home-heading h1{font-size:27px}.home-heading{margin-bottom:36px}}@media(max-width:600px){#board-home{inset-block-start:72px;padding:32px 18px}.home-heading{align-items:flex-start;flex-direction:column;gap:20px}.home-heading h1{font-size:25px}#board-grid{grid-template-columns:1fr}.navbar #home-button{font-size:10px;padding:6px}.navbar{gap:10px}.board-preview{height:190px}}
/* Attached connections sit above frames and beneath sticky notes. */
#connection-layer{position:absolute;inset:0;overflow:visible;pointer-events:none;z-index:0;width:100%;height:100%}.connection-hit{pointer-events:stroke;cursor:pointer}.connection-hit:focus{outline:none;stroke:#8a91a330}.connection-port{display:none;position:absolute;z-index:4;width:13px;height:13px;border:2px solid #8a91a3;background:white;border-radius:50%;padding:0;touch-action:none;cursor:crosshair}.note.selected .connection-port,.connecting .note:hover .connection-port{display:block}.port-left{left:-11px;top:calc(50% - 6px)}.port-right{right:-11px;top:calc(50% - 6px)}.port-top{top:-11px;left:calc(50% - 6px)}.port-bottom{bottom:-11px;left:calc(50% - 6px)}.connection-port:hover{background:#8a91a3;box-shadow:0 0 0 4px #8a91a325}.connecting #canvas,.connecting .note,.connecting .note-text{cursor:crosshair!important}#connector-tools{position:fixed;z-index:102;display:flex;gap:8px;align-items:center;padding:8px;background:white;border:1px solid #dadee8;border-radius:11px;box-shadow:0 6px 26px #071d5018;max-width:calc(100vw - 24px);flex-wrap:wrap;font-size:11px}#connector-tools[hidden],#connection-hint[hidden]{display:none}#connector-tools label{display:flex;gap:6px;align-items:center;color:#868ea0}#connector-tools select{background:#f1f2f6;border:1px solid #d7dbe6;border-radius:6px;color:#4d5463;padding:7px;font:11px 'DM Sans',sans-serif}#connector-label{width:150px;border:1px solid #d7dbe6;background:#f8f8fa;padding:8px;border-radius:6px;font-size:11px;color:#4d5463}#connector-tools>button{font-size:20px;width:31px;height:31px;border-radius:6px}#connector-delete:hover{background:#faece7;color:#9c4c39}#connection-hint{position:fixed;z-index:91;bottom:82px;left:50%;transform:translateX(-50%);background:#f8f8fa;color:#8a91a3;border:1px solid #e1e5ed;border-radius:9px;padding:11px 16px;font-size:12px;pointer-events:none;text-align:center;max-width:calc(100vw - 30px)}.home-open #connector-tools,.home-open #connection-hint{display:none!important}aside #connect-tool{display:grid;place-items:center}aside #connect-tool.active{background:#f0f1f5;color:#8a91a3}@media(max-width:600px){#connector-tools{width:290px;justify-content:center}#connector-label{width:160px}#connection-hint{font-size:11px;width:280px}.multi-selected .connection-port{display:none!important}}
/* Connector formatting mirrors the note toolbar's icon categories. */
#connector-tools{gap:3px;padding:6px;flex-wrap:nowrap;border:1px solid #dadfe9;box-shadow:0 5px 25px #071d5016;max-width:calc(100vw - 24px);width:max-content}#connector-tools [hidden]{display:none!important}.connector-category summary{display:grid;place-items:center;list-style:none;width:38px;height:38px;border-radius:6px;cursor:pointer;color:#5c6476}.connector-category summary::-webkit-details-marker{display:none}.connector-category summary:hover,.connector-category[open] summary{background:#e7eaf0}.connector-category summary:focus-visible{outline:2px solid #071d50;outline-offset:2px}#connector-tools>button{display:grid;place-items:center;width:34px;height:36px;font-size:initial;color:#5c6476}.connector-panel{position:fixed;z-index:104;width:max-content;max-width:calc(100vw - 24px);padding:14px;background:white;border:1px solid #dadfe9;border-radius:10px;box-shadow:0 5px 25px #071d5016}.connector-panel .panel-label{margin-bottom:10px}.connector-options{display:flex;gap:7px}.connector-options button{display:grid;place-items:center;width:42px;height:40px;border:1px solid #dbdfe9;border-radius:7px;color:#5c6476}.connector-options button:hover{background:#eceff4}.connector-options button[aria-pressed="true"]{background:#e7eaf0;border-color:#979ead;color:#071d50}#connector-tools .tool-divider{height:22px;width:1px;margin:0 5px;flex-shrink:0}#connector-tools svg{pointer-events:none;flex-shrink:0}#connector-tools #connector-label{width:220px;max-width:calc(100vw - 60px);font-size:12px;padding:10px}#connector-tools #connector-delete:hover{background:#faece7;color:#9c4c39}@media(max-width:600px){#connector-tools{width:max-content;justify-content:initial;gap:1px}.connector-category summary{width:35px}}
.connector-label{pointer-events:all;cursor:grab;touch-action:none;user-select:none}.connector-label:active{cursor:grabbing}.connector-label:focus{outline:none}.connector-label:focus rect{stroke:#8a91a3;stroke-width:2}.connector-label:hover rect{stroke:#b1b6c2;fill:#f9fafc}#connector-tools>button:disabled{opacity:.35;cursor:default;background:none}
/* Edge circles are visible throughout connector mode, with magnetic targets. */
.connecting .note .connection-port{display:block!important;width:14px;height:14px;cursor:pointer!important;transition:background .12s,box-shadow .12s}.connection-port.port-left{left:-7px;top:calc(50% - 7px)}.connection-port.port-right{right:-7px;top:calc(50% - 7px)}.connection-port.port-top{top:-7px;left:calc(50% - 7px)}.connection-port.port-bottom{bottom:-7px;left:calc(50% - 7px)}.connection-port.snap-target{background:#8a91a3;border-color:#fff;box-shadow:0 0 0 2px #8a91a3,0 0 0 8px #8a91a326}.connection-port.source-port{background:#8a91a3;border-color:white;box-shadow:0 0 0 2px #8a91a3}.note.connection-source{outline:1.5px solid #b5b9c4;outline-offset:3px}.connecting.connection-snapped #canvas,.connecting.connection-snapped .note,.connecting.connection-snapped .note-text{cursor:pointer!important}

/* Circles brand: wordmark on home, board title on the canvas. */
.navbar .monogram{width:38px;height:38px;background:transparent;border-radius:0}
.navbar .monogram svg{display:block;width:38px;height:35px}
.navbar .brand-lockup>.wordmark{display:none;color:#071d50;font-size:20px}
.home-open .navbar .brand-lockup>.wordmark{display:block}
.navbar #title{font:600 16px 'Manrope',sans-serif;color:#2d3139}
@media(max-width:600px){.navbar .monogram{width:32px;height:32px}.navbar .monogram svg{width:32px;height:30px}.navbar .brand-lockup>.wordmark{font-size:18px}.navbar #title{font-size:14px;max-width:32vw}}
#connect-tool{position:relative}#connect-tool svg{width:22px;height:22px}.connector-tool-caret{position:absolute;right:1px;bottom:4px;font-size:14px;line-height:12px;color:#8a91a3}#connector-style-picker{position:fixed;z-index:110;padding:13px;background:white;border:1px solid #dadfe9;border-radius:12px;box-shadow:0 6px 25px #071d5018;max-width:calc(100vw - 24px)}#connector-style-picker[hidden],.home-open #connector-style-picker{display:none}#connector-style-picker .panel-label{margin-bottom:10px}.new-connector-options{display:flex;gap:6px}.new-connector-options button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:66px;height:64px;border:1px solid #dbdfe9;border-radius:8px;color:#687185}.new-connector-options button svg{width:22px;height:22px;pointer-events:none}.new-connector-options span{font-size:10px;pointer-events:none}.new-connector-options button:hover{background:#eff1f5}.new-connector-options button[aria-pressed="true"]{background:#f0f1f5;border-color:#cdd0d8;color:#8a91a3}
/* Connector styles expand vertically inside the tool rail. */
aside{max-height:calc(100vh - 130px);overflow-y:auto;overflow-x:hidden}#connector-style-picker{position:static;inset:auto;z-index:auto;width:40px;max-width:none;padding:6px 0 0;background:transparent;border:0;border-top:1px solid #dce0ea;border-radius:0;box-shadow:none}#connector-style-picker .panel-label{display:none}#connector-style-picker .new-connector-options{flex-direction:column;gap:4px}#connector-style-picker .new-connector-options button{width:40px;height:38px;min-height:38px;padding:0;border:0;border-radius:7px;gap:0}#connector-style-picker .new-connector-options span{display:none}#connect-tool[aria-expanded="true"] .connector-tool-caret{transform:rotate(90deg)}
.connector-endpoint{position:absolute;z-index:8;width:14px;height:14px;padding:0;border:2px solid #8a91a3;border-radius:50%;background:white;box-shadow:0 0 0 3px #8a91a31c;cursor:grab;touch-action:none}.connector-endpoint:hover{background:#f0f1f5;box-shadow:0 0 0 5px #8a91a328}.connector-endpoint:active{cursor:grabbing;background:#8a91a3}.connector-endpoint:focus-visible{outline:2px solid #8a91a3;outline-offset:4px}.connecting .connector-endpoint{cursor:grab!important}
/* Focused SVG handles must not scroll the canvas behind the viewport transform. */
#canvas{overflow:clip}
.connection-hit{cursor:grab}.connection-hit:active,.dragging-connector #canvas,.dragging-connector .note,.dragging-connector .note-text{cursor:grabbing!important}
/* Center ports are permanent; adjusted attachments become additional anchors. */
.connection-port{width:14px;height:14px}.note:has(.connector-endpoint) .connection-port{display:block}.custom-connection-port{background:#eef0f5}.custom-connection-port:hover{background:#8a91a3}
.connector-endpoint.is-snapped{background:#8a91a3;border-color:white;box-shadow:0 0 0 2px #8a91a3,0 0 0 8px #8a91a326}
/* Expose destination anchors while reconnecting an established line. */
.reconnecting .note .connection-port{display:block!important}.reconnecting .connection-port{cursor:grabbing}.reconnecting .connection-port.snap-target{background:#8a91a3;border-color:white;box-shadow:0 0 0 2px #8a91a3,0 0 0 8px #8a91a326}

/* Brand accent: the shared center of the Ensemble circles. */
:root{--accent:#071d50;--accent-hover:#102f70;--accent-soft:#e9eef8}
.primary-action,.topright button,#context #tidy{background:var(--accent);color:#fff}
.primary-action:hover,.navbar .topright button:hover,#context #tidy:hover{background:var(--accent-hover)}
aside .active,#context button[aria-pressed="true"],.new-connector-options button[aria-pressed="true"]{background:var(--accent-soft);color:var(--accent)}
/* Native diagram objects, using the same canvas selection and formatting language. */
.diagram-shape{background:transparent!important;box-shadow:none;border-radius:0;overflow:visible}.diagram-shape:after{display:none}.shape-surface{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:-1}.diagram-shape .grip{color:#66758f;height:24px;z-index:1}.diagram-shape .note-text{flex:0 1 auto;margin:auto 0;padding:12px 18px;max-height:calc(100% - 24px);font-family:'Manrope',sans-serif;color:#26334b}.shape-ellipse .note-text{width:78%;align-self:center;padding:8px}.shape-diamond .note-text{width:65%;max-height:55%;align-self:center;padding:6px}.shape-text .note-text{flex:1;margin:0;padding:8px}.diagram-shape.selected{box-shadow:none}.diagram-shape .rotate-handle{display:none;position:absolute;left:calc(50% - 12px);top:-40px;width:24px;height:24px;border:1px solid #d4dcec;background:white;border-radius:50%;padding:0;place-items:center;color:#536782;cursor:grab;touch-action:none;z-index:6}.diagram-shape.selected .rotate-handle{display:grid}.rotate-handle:before{content:'';position:absolute;top:23px;left:11px;height:14px;width:1px;background:#b8c6dc;pointer-events:none}.rotate-handle:active{cursor:grabbing}.multi-selected .rotate-handle{display:none!important}aside #shapes-tool{display:grid;place-items:center}#shapes-picker{display:flex;flex-direction:column;gap:4px;border-block:1px solid #e1e6f0;padding:6px 0}#shapes-picker[hidden],#shape-style-category[hidden],#shape-type-options[hidden]{display:none!important}#shapes-picker button{display:grid;place-items:center;height:36px;color:#66758f}#shapes-picker button:hover{background:#edf0f8}#context .shape-style-panel{width:260px;max-width:calc(100vw - 24px)}.shape-style-panel>label{display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:12px;color:#66758f;margin-top:12px}.shape-style-panel select,.shape-style-panel input[type=number]{border:1px solid #dbe2ed;background:#f5f7fc;border-radius:6px;padding:7px;font-size:12px;color:#26334b}.shape-style-panel select{width:120px}#shape-rotation{width:74px}.shape-style-panel input[type=color],.fill-controls input[type=color]{width:34px;height:30px;border:1px solid #dbe2ed;border-radius:5px;background:white;padding:3px}#shape-type-options{margin-top:16px;border-top:1px solid #e1e6ef;padding-top:14px}.shape-type-grid{display:flex;gap:6px}.shape-type-grid button{display:grid;place-items:center;width:34px;height:34px;border:1px solid #e0e5ef;border-radius:6px;color:#66758f}.fill-controls{display:flex;align-items:center;gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid #e1e6ef}.fill-controls label{display:flex;align-items:center;gap:8px;font-size:11px;color:#8b96aa}.fill-controls button{width:30px;height:30px;border:1px solid #dfe5ef;border-radius:6px;font-size:20px}.home-open #shapes-picker{display:none}
.diagram-shape .grip{position:absolute;inset:0 0 auto;height:24px}.diagram-shape .rotate-handle{left:auto;right:-36px;top:-32px}.rotate-handle:before{display:none}.shape-text .grip{top:-20px;height:20px}

.shape-draw-preview{position:absolute;overflow:visible;pointer-events:none;z-index:1000}.shape-draw-preview path{fill:#8b5cf61a;stroke:#8b5cf6;stroke-width:2;vector-effect:non-scaling-stroke;stroke-dasharray:5 3}.shape-icon-options{display:flex;gap:6px}.shape-icon-options button{display:grid;place-items:center;width:42px;height:34px;border:1px solid #dfe5ef;border-radius:6px;color:#66758f}.shape-icon-options button[aria-pressed=true],#shapes-picker button[aria-pressed=true]{background:#ede7ff;color:#7544c8;border-color:#bba5ed}.shape-style-panel select[hidden],.format-controls[hidden],.panel-label[hidden]{display:none!important}.shape-selected #shape-type-options{margin-top:0;border-top:0;padding-top:0}

.shape-icon-row{margin-top:12px}

.sets-section{margin-bottom:30px}.sets-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.sets-heading h2{font-size:14px}.sets-heading button,#set-tools button{font-size:12px;color:#56647c;padding:8px 10px;border-radius:6px}#set-filters{display:flex;flex-wrap:wrap;gap:8px}.set-filter{max-width:100%;overflow-wrap:anywhere;padding:10px 15px;border:1px solid #d9dde7;border-radius:9px;background:#fff;font-size:12px;color:#56647c}.set-filter[aria-pressed=true]{background:#071d50;color:#fff;border-color:#071d50}#set-tools{margin-top:10px;display:flex;gap:8px}#set-tools[hidden]{display:none}.board-set-label{display:flex;align-items:center;gap:10px;border-top:1px solid #edf0f5;padding:10px 18px;font-size:11px;color:#748095}.board-set-label select{min-width:0;flex:1;border:1px solid #d9dde7;border-radius:6px;padding:6px;background:white;color:#071d50;font:inherit}.board-card-actions{bottom:89px}#board-section-title{margin:0;padding:0;background:none;color:inherit;font-size:14px}#set-dialog{border:1px solid #d5dae6;border-radius:16px;padding:26px;width:420px;max-width:calc(100vw - 32px);color:#071d50}#set-dialog::backdrop{background:#071d5040;backdrop-filter:blur(3px)}#set-description{font-size:12px;color:#7d8599;margin:14px 0 20px}#set-name-label{display:block;font-size:12px}#set-name-label[hidden]{display:none}#set-name{display:block;width:100%;box-sizing:border-box;margin-top:8px;border:1px solid #d1d4da;border-radius:8px;padding:12px;background:#f9fafb;color:#071d50}#set-error{font-size:12px;color:#a25348}button:focus-visible,select:focus-visible{outline:2px solid #0068ff;outline-offset:3px}

.board-card-actions{bottom:37px}.board-open h3{margin-right:128px}.board-card[draggable=true] .board-preview{cursor:grab}.board-card.dragging{opacity:.45;transform:none}.set-drag-hint{font-size:12px;color:#7d8599;margin:0 0 14px}.board-dragging .set-filter:not([data-set-id=all]){outline:2px dashed #a5b6d5;outline-offset:3px}.board-dragging .set-filter.drop-target{background:#e2eeff;color:#071d50;border-color:#0068ff;outline:3px solid #0068ff;transform:translateY(-2px)}#move-board-dialog{border:1px solid #d5dae6;border-radius:16px;padding:26px;width:420px;max-width:calc(100vw - 32px);color:#071d50}#move-board-dialog::backdrop{background:#071d5040;backdrop-filter:blur(3px)}#move-board-description{font-size:12px;color:#7d8599}#move-board-options{display:flex;flex-direction:column;gap:6px;max-height:50vh;overflow:auto;margin-top:18px}#move-board-options button{text-align:left;padding:12px;border:1px solid #d9dde7;border-radius:8px;font-size:13px;overflow-wrap:anywhere}#move-board-options button[aria-pressed=true]{background:#071d50;color:white}@media(pointer:coarse){.set-drag-hint{display:none}}

.board-card .board-preview{cursor:grab}.board-dragging,.board-dragging *{cursor:grabbing!important;user-select:none}.board-drag-ghost{position:fixed;z-index:1000;pointer-events:none;max-width:240px;padding:12px 18px;border:1px solid #0068ff;border-radius:9px;background:white;color:#071d50;box-shadow:0 8px 24px #071d5030;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.sets-section{margin:42px 0 0;padding-top:26px;border-top:1px solid #d9dde7}.sets-heading{margin-bottom:4px}#set-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.set-filter{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:9px;min-height:104px;padding:20px;text-align:left;border-radius:12px;transition:background .15s,outline .15s,transform .15s}.set-name{font-size:14px;font-weight:600}.set-board-count{font-size:11px;opacity:.65}.set-filter[data-set-id=all],.set-filter[data-set-id=unset]{min-height:68px}.board-dragging .set-filter.drop-target{background:#e2eeff;color:#071d50;outline:3px solid #0068ff}@media(max-width:900px){#set-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){#set-filters{grid-template-columns:1fr}.sets-section{margin-top:30px}}

.board-card{overflow:visible}.board-preview{border-radius:12px 12px 0 0}.board-open{border-radius:12px}.board-open h3{margin-right:62px}.board-card-actions{right:14px;bottom:35px}.board-card-actions .board-menu-trigger{width:32px;height:30px;font-size:24px;line-height:18px;color:#6e778d}.board-card-actions .board-menu-trigger:hover{background:#e7eaf0;color:#071d50}.board-card.menu-open{z-index:10}.board-action-menu{position:absolute;right:0;top:calc(100% + 6px);width:160px;padding:6px;background:#fff;border:1px solid #d9dde7;border-radius:10px;box-shadow:0 8px 28px #071d5020;z-index:20}.board-action-menu[hidden]{display:none}.board-card-actions .board-action-menu button{display:block;width:100%;height:auto;text-align:left;padding:10px 12px;border-radius:6px;font-size:12px;color:#071d50}.board-card-actions .board-action-menu button:hover,.board-card-actions .board-action-menu button:focus-visible{background:#edf0f5}.board-card-actions .board-action-menu .destructive{color:#bd3039}.board-card-actions .board-action-menu .destructive:hover,.board-card-actions .board-action-menu .destructive:focus-visible{color:#a3222b;background:#fff0f1}

aside button>svg{width:22px;height:22px;flex-shrink:0}aside #select,aside #add,aside #add-frame{display:grid;place-items:center}

.board-card-actions .board-action-menu .move-menu-toggle{display:flex;align-items:center;justify-content:space-between}.move-caret{transition:transform .15s}.move-menu-toggle[aria-expanded=true] .move-caret{transform:rotate(90deg)}.inline-set-options{margin:2px 0 6px 12px;padding:3px 0 3px 6px;border-left:1px solid #d9dde7;max-height:220px;overflow:auto}.inline-set-options[hidden]{display:none}.board-card-actions .inline-set-options button{display:flex;align-items:center;justify-content:space-between;gap:8px;white-space:normal;overflow-wrap:anywhere}.board-card-actions .inline-set-options .current-set{font-weight:600;background:#edf0f5}.board-action-menu{width:190px}

#select>svg{fill:currentColor}.alignment-guides{position:absolute;left:0;top:0;width:1px;height:1px;overflow:visible;pointer-events:none;z-index:2147483646}.alignment-guides line{stroke:#a855f7;stroke-width:1;vector-effect:non-scaling-stroke;stroke-dasharray:4 3}

.board-card-actions .board-menu-trigger{display:grid;place-items:center;padding:0;line-height:1}.board-menu-trigger svg{display:block}

.board-image{background:transparent!important;box-shadow:none;overflow:visible;border-radius:4px}.board-image:after{display:none}.board-image>img{display:block;width:100%;height:100%;object-fit:contain;border-radius:4px;user-select:none;pointer-events:none}.board-image .note-text{display:none!important}.board-image .grip{position:absolute;inset:0;width:100%;height:100%;padding:0;color:transparent;cursor:grab;z-index:1}.board-image.selected{box-shadow:none}.image-missing{background:#edf0f6!important;outline:1px dashed #9da7bb}.board-image .resize-handle,.board-image .connection-port{z-index:3}aside #image-tool{display:grid;place-items:center}#image-menu{position:fixed;width:220px;background:white;border:1px solid #e1e6ef;border-radius:12px;padding:8px;box-shadow:0 12px 40px #17294c24;z-index:1000}#image-menu[hidden],#image-drop-hint[hidden]{display:none}#image-menu>button{display:flex;align-items:center;gap:12px;width:100%;padding:12px;border-radius:7px;text-align:left;color:#35435e;font-size:13px}#image-menu>button:hover{background:#f1edf9}#image-menu p{font-size:11px;color:#8b96aa;line-height:1.7;padding:6px 12px 4px}#image-dialog{width:420px;max-width:calc(100vw - 32px);border:1px solid #dce2ee;border-radius:16px;padding:24px;color:#26334b;box-shadow:0 24px 80px #17294c30}#image-dialog::backdrop{background:#10204860}#image-dialog label{display:grid;gap:8px;font-size:13px;margin-top:20px}#image-url{width:100%;border:1px solid #dbe2ed;border-radius:8px;padding:12px;font:inherit;box-sizing:border-box}#image-url-error{font-size:12px;color:#b04b59;line-height:1.5}#image-drop-hint{position:fixed;inset:100px 24px 24px;display:grid;place-items:center;background:#f4efffe8;border:2px dashed #9d74da;border-radius:16px;color:#7544ad;font-size:20px;pointer-events:none;z-index:2147483647}.format-category[hidden]{display:none!important}

.set-tile{position:relative;min-width:0}.set-tile>.set-filter{width:100%;height:100%;min-height:104px;padding-right:56px}.set-tile.menu-open{z-index:12}.set-card-actions{position:absolute;right:14px;top:16px}.set-menu-trigger{display:grid;place-items:center;width:32px;height:30px;padding:0;border-radius:5px;color:#6e778d}.set-menu-trigger svg{display:block}.set-menu-trigger:hover,.set-menu-trigger[aria-expanded=true]{background:#e7eaf0;color:#071d50}.set-action-menu{position:absolute;right:0;top:calc(100% + 6px);width:160px;padding:6px;background:#fff;border:1px solid #d9dde7;border-radius:10px;box-shadow:0 8px 28px #071d5020;z-index:20}.set-action-menu[hidden]{display:none}.set-action-menu button{display:block;width:100%;text-align:left;padding:10px 12px;border-radius:6px;font-size:12px;color:#071d50}.set-action-menu button:hover,.set-action-menu button:focus-visible{background:#edf0f5}.set-action-menu .destructive{color:#bd3039}.set-action-menu .destructive:hover,.set-action-menu .destructive:focus-visible{color:#a3222b;background:#fff0f1}

#gif-tool{display:grid;place-items:center}#gif-picker{position:fixed;z-index:1001;display:flex;flex-direction:column;width:354px;max-width:calc(100vw - 24px);height:540px;max-height:calc(100vh - 102px);border:1px solid #e0e5ef;border-radius:16px;background:#fff;box-shadow:0 18px 60px #17294c26;color:#26334b;overflow:hidden}#gif-picker[hidden]{display:none}.gif-heading{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 10px}.gif-heading h2{font-size:16px;margin:0;font-weight:700;letter-spacing:-.3px}.gif-close{display:grid;place-items:center;width:28px;height:28px;border-radius:7px;font-size:23px;color:#7c88a0}.gif-close:hover{background:#f0edf8}.gif-search{display:flex;gap:9px;align-items:center;margin:0 16px 12px;padding:10px 12px;border:1px solid #dfe4ef;border-radius:9px;background:#f8f9fc;color:#8190a8}.gif-search:focus-within{border-color:#ac8bdf;box-shadow:0 0 0 3px #9864d911}.gif-search input{width:100%;min-width:0;border:0;outline:none;background:transparent;color:#26334b;font:inherit;font-size:13px}.gif-content{flex:1;overflow-y:auto;padding:0 16px 14px;min-height:0}.gif-section-label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:1.3px;font-weight:600;color:#8d97ab;margin:1px 0 12px}.gif-status{font-size:13px;line-height:1.7;padding:24px 14px;text-align:center;color:#8490a5}.gif-status[hidden]{display:none}.gif-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:start}.gif-card{position:relative;display:block;width:100%;padding:0;background:#f0f2f7;border:0;border-radius:8px;overflow:hidden;cursor:pointer;transition:box-shadow .15s,transform .15s}.gif-card:hover{box-shadow:0 0 0 3px #ae8bdf;transform:translateY(-1px)}.gif-card:focus-visible{outline:3px solid #9061d1;outline-offset:2px}.gif-card img{display:block;width:100%;height:115px;object-fit:cover}.gif-creator{position:absolute;bottom:0;left:0;right:0;padding:17px 7px 6px;background:linear-gradient(transparent,#102048a8);color:white;font-size:9px;text-align:left;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.gif-more{display:block;width:100%;margin-top:14px;padding:10px;border:1px solid #e2e5ef;border-radius:8px;font-size:12px;color:#6d5790}.gif-more[hidden]{display:none}.gif-powered{display:flex;align-items:center;justify-content:center;gap:9px;min-height:42px;background:#fafbfe;border-top:1px solid #edf0f6;color:#8a94a7;text-decoration:none;font-size:10px}.gif-powered strong{color:#26334b;font-weight:800;letter-spacing:1px}.giphy-mark{width:12px;height:16px;border:3px solid transparent;border-image:linear-gradient(25deg,#fc6666,#a865ff,#63d7e8,#8bf0a4) 1}

.gif-powered img{display:block;width:22px;height:22px;border-radius:4px}.gif-credit{position:absolute;bottom:7px;right:7px;max-width:calc(100% - 14px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:4px 6px;border-radius:4px;background:#152238b8;color:#fff;font:9px Manrope,sans-serif;text-decoration:none;z-index:4}.gif-credit:hover{background:#152238}

#layer-controls{border-bottom:1px solid #e4e8ef;padding-bottom:13px;margin-bottom:14px}.layer-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.item-actions{display:flex;gap:6px;margin-top:8px}.layer-actions button,.item-actions button{display:grid;place-items:center;min-width:44px;height:38px;border:1px solid #e0e5ef!important;border-radius:7px}.layer-actions button:disabled{opacity:.35;cursor:default}.item-actions button[aria-pressed=true]{background:#eee8fa!important;color:#8051b5}.item-lock-badge{position:absolute;top:6px;right:6px;z-index:6;width:26px;height:26px;background:#fff!important;border:1px solid #d6ddeb;border-radius:7px;display:grid;place-items:center;color:#7d889d;opacity:.9}.item-lock-badge svg{width:13px;height:13px}.item-lock-badge[hidden],#layout-menu [hidden]{display:none!important}.note.item-locked .resize-handle,.note.item-locked .rotate-handle{display:none!important}.item-locked .grip{cursor:default!important}.item-locked .note-text{cursor:default}.item-background .item-lock-badge{opacity:0}.item-background:hover .item-lock-badge,.item-background.selected .item-lock-badge{opacity:.9}#context>button:disabled{opacity:.35;cursor:default}

.frame-bar .frame-lock{margin-left:auto;display:grid;place-items:center}.frame-lock svg{width:15px;height:15px}.frame-bar .frame-lock+button{margin-left:0}.frame-resize[hidden]{display:none!important}

.board-gif:focus-visible{outline:2px solid #a879db;outline-offset:4px}.gif-poster-unavailable{background:#edf0f6!important}.gif-poster-unavailable:before{content:"GIF paused";position:absolute;inset:0;display:grid;place-items:center;color:#8793a7;font-size:12px;pointer-events:none}

.board-emoji{background:transparent!important;box-shadow:none;border-radius:0;overflow:visible}.board-emoji:after{display:none}.emoji-glyph{position:absolute;inset:0;display:grid;place-items:center;line-height:1;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;user-select:none;pointer-events:none}.board-emoji .note-text{display:none!important}.board-emoji .grip{position:absolute;inset:0;width:100%;height:100%;padding:0;color:transparent;z-index:1}.board-emoji .resize-handle,.board-emoji .connection-port{z-index:3}.board-emoji.selected{box-shadow:none}aside #emoji-tool{display:grid;place-items:center}#emoji-picker{position:fixed;z-index:1002;display:flex;flex-direction:column;width:354px;max-width:calc(100vw - 24px);height:510px;max-height:calc(100vh - 102px);border:1px solid #e0e5ef;border-radius:16px;background:#fff;box-shadow:0 18px 60px #17294c26;color:#26334b;overflow:hidden}#emoji-picker[hidden]{display:none}.emoji-heading{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 10px}.emoji-heading h2{font-size:16px;margin:0;font-weight:700;letter-spacing:-.3px}.emoji-close{display:grid;place-items:center;width:28px;height:28px;border-radius:7px;font-size:23px;color:#7c88a0}.emoji-close:hover{background:#f0edf8}.emoji-search{display:flex;gap:9px;align-items:center;margin:0 16px 10px;padding:10px 12px;border:1px solid #dfe4ef;border-radius:9px;background:#f8f9fc;color:#8190a8}.emoji-search:focus-within{border-color:#ac8bdf;box-shadow:0 0 0 3px #9864d911}.emoji-search input{width:100%;min-width:0;border:0;outline:none;background:transparent;color:#26334b;font:inherit;font-size:13px}.emoji-categories{display:flex;gap:2px;padding:0 13px 9px;overflow-x:auto;flex-shrink:0;border-bottom:1px solid #edf0f6}.emoji-categories button{display:grid;place-items:center;flex:0 0 30px;height:31px;border-radius:6px;font-size:18px;line-height:1}.emoji-categories button[aria-pressed=true]{background:#eee8fa}.emoji-content{flex:1;overflow-y:auto;padding:13px 16px 16px;min-height:0}.emoji-section-label{display:block;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:#8d97ab;margin-bottom:11px;font-weight:600}.emoji-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:3px}.emoji-choice{display:grid;place-items:center;width:100%;height:37px;padding:0;border-radius:7px;line-height:1;font-size:26px;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;transition:background .12s,transform .12s}.emoji-choice:hover{background:#f0ebf8;transform:scale(1.1)}.emoji-choice:focus-visible{outline:2px solid #a87cd8;outline-offset:0;background:#f0ebf8}.emoji-status{padding:22px 10px;font-size:12px;line-height:1.8;text-align:center;color:#8793a7}.emoji-status[hidden]{display:none}.emoji-footer{display:flex;align-items:center;gap:11px;min-height:54px;padding:10px 17px;border-top:1px solid #edf0f6;background:#fafbfe;flex-shrink:0}.emoji-hover-glyph{font-size:27px;line-height:1}.emoji-hover-name{font-size:11px;color:#7b879c;line-height:1.4;overflow:hidden;text-overflow:ellipsis;max-height:32px}

#group-controls{padding-bottom:13px;margin-bottom:14px;border-bottom:1px solid #e4e8ef}.group-actions{display:flex;gap:6px}.group-actions button{display:grid;place-items:center;width:44px;height:38px;border:1px solid #e0e5ef!important;border-radius:7px}.group-actions button:disabled{opacity:.35;cursor:default}.group-selection{border-color:#9672c4!important;background:#a879db03}.group-selection-label{position:absolute;left:-1px;top:calc(100% + 6px);padding:3px 7px;border-radius:5px;background:#f0eaf8;color:#825db1;font-size:10px;white-space:nowrap;line-height:1.4}.group-selection-label[hidden],#group-edit-hint[hidden]{display:none}.note[data-group]:not(.group-edit-member) .resize-handle,.note[data-group]:not(.group-edit-member) .rotate-handle{display:none!important}.group-edit-member.selected{outline-color:#9672c4}#group-edit-hint{position:fixed;z-index:102;bottom:75px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:14px;padding:8px 9px 8px 14px;background:#fff;border:1px solid #e0d7ed;border-radius:10px;box-shadow:0 5px 24px #26334b12;font-size:11px;color:#8b78a5}#group-edit-hint button{padding:6px 10px;background:#eee8f7;color:#805caf;border-radius:6px;font-size:11px}

/* Board canvas appearance controls. */
#canvas[data-background]:not([data-background="graph"]){background-image:none}
.canvas-view-controls{display:flex;align-items:center;gap:10px;pointer-events:auto}
.canvas-background-picker{display:flex;align-items:center;gap:9px;padding:5px 9px;background:#fff;border:1px solid #dce0e9;border-radius:8px}
.canvas-background-label{color:#687084;font-size:11px}
#canvas-background{display:flex;gap:4px}
.canvas-swatch{display:grid;place-items:center;width:30px;height:30px;padding:4px;border:1.5px solid transparent;border-radius:7px}
.canvas-swatch span{display:block;width:22px;height:22px;border:1px solid #cdd2dc;border-radius:4px;background:var(--canvas-swatch)}
.canvas-swatch[data-canvas-background="graph"]{--canvas-swatch:#f3f5f8}
.canvas-swatch[data-canvas-background="graph"] span{background-image:radial-gradient(#aab1bf 1px,transparent 1px);background-size:6px 6px}
.canvas-swatch[data-canvas-background="white"]{--canvas-swatch:#fff}
.canvas-swatch[data-canvas-background="gray"]{--canvas-swatch:#f0f0f0}
.canvas-swatch[data-canvas-background="beige"]{--canvas-swatch:#f5f0e6}
.canvas-swatch[aria-pressed="true"]{border-color:#805caf;background:#f0eaf8}
.canvas-swatch:hover{background:#f0eaf8}
.canvas-swatch:focus-visible{outline:2px solid #805caf;outline-offset:2px}
@media(max-width:950px){footer .hint{display:none}footer{justify-content:flex-end}}
@media(max-width:400px){.canvas-background-picker{gap:5px;padding:5px}.canvas-background-label{font-size:10px}.canvas-swatch{width:27px}.canvas-view-controls{gap:6px}}

/* Reveal background alternatives only when requested. */
.canvas-background-picker{position:relative;display:block;padding:5px}
.canvas-background-current{display:flex;align-items:center;justify-content:center;gap:0;width:32px;list-style:none;cursor:pointer;color:#687084}
.canvas-background-current::-webkit-details-marker{display:none}
.canvas-background-current span{flex-shrink:0}
.canvas-background-picker[open]>.canvas-background-current{background:#f0eaf8}
#canvas-background{position:absolute;right:0;bottom:calc(100% + 10px);display:none;gap:6px;padding:9px;border:1px solid #dce0e9;border-radius:10px;background:white;box-shadow:0 6px 24px #071d501a}
.canvas-background-picker[open]>#canvas-background{display:flex}
@media(max-width:400px){.canvas-background-current{width:32px}}

.account-button{border:1px solid #d9dde7;border-radius:8px;padding:9px 14px;color:#071d50;font-size:12px;white-space:nowrap}
#account-dialog{width:min(440px,calc(100vw - 36px));padding:28px;border:1px solid #d9dde7;border-radius:16px;color:#071d50;box-shadow:0 24px 80px #071d5030}
#account-dialog::backdrop{background:#071d5040;backdrop-filter:blur(3px)}
.account-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.account-heading h2{font-size:20px;margin:0}.account-heading button{font-size:25px;padding:4px 8px}
#account-dialog p{font-size:13px;line-height:1.6;color:#626d83}#account-dialog label{display:block;font-size:12px;margin:20px 0 8px}#account-email{box-sizing:border-box;width:100%;padding:12px;border:1px solid #cdd3df;border-radius:8px;font:inherit;font-size:14px}
#account-submit{width:100%;margin-top:14px;padding:12px}#account-dialog .account-hint{font-size:11px}#account-signed-in>button{display:block;padding:11px 0;text-align:left;color:#071d50}#account-signout{color:#bd3039!important}#account-message{margin-bottom:0;overflow-wrap:anywhere}#account-dialog [hidden]{display:none!important}
@media(max-width:600px){.account-button{padding:8px 10px}.navbar .save{max-width:130px;font-size:10px}}
.home-open .navbar .topright{display:flex!important}.home-open .navbar #export{display:none}.navbar .topright .account-button{background:#fff;color:#071d50;border:1px solid #d9dde7}.navbar .topright .account-button:hover{background:#edf0f5}
