:root{--bg:#f4f3ef;--grid:#d8d5cc;--ink:#1d1c1a;--soft:#6f6b63;--line:#e2dfd7;--panel:#fff;--accent:#2f5bea;--accent-soft:#2f5bea1f;--shadow:0 1px 2px #14120c14, 0 6px 18px #14120c12;--ui-shadow:0 1px 2px #14120c0f, 0 8px 28px #14120c1f;color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px}*{box-sizing:border-box}html,body,#root,.app{height:100%;margin:0;overflow:hidden}body{background:var(--bg);overscroll-behavior:none;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit}[hidden]{display:none!important}.viewport{touch-action:none;-webkit-user-select:none;user-select:none;background-color:var(--bg);background-image:radial-gradient(circle, var(--grid) 1.1px, transparent 1.3px);position:absolute;inset:0;overflow:hidden}.viewport.grab,.viewport.grab *{cursor:grab!important}.viewport.panning,.viewport.panning *{cursor:grabbing!important}.world{transform-origin:0 0;--inv:1;width:0;height:0;position:absolute;top:0;left:0}.marquee{border:1px solid var(--accent);background:var(--accent-soft);pointer-events:none;border-radius:2px;position:absolute}.guide{pointer-events:none;background:#2f5bea24;border-radius:2px;position:absolute}.guide.line{background:var(--accent)}.item{cursor:default;font-size:15px;line-height:1.42;position:absolute}.item .body{white-space:pre-wrap;overflow-wrap:anywhere}.item .ph{color:#1d1c1a61}.item.sel,.item.editing{outline:calc(2px * var(--inv)) solid var(--accent);outline-offset:calc(2px * var(--inv))}.item.marked{outline:calc(2px * var(--inv)) solid var(--peer);outline-offset:calc(2px * var(--inv))}.item.target,.frame.target{outline:calc(3px * var(--inv)) solid var(--accent);outline-offset:calc(3px * var(--inv))}.item textarea{resize:none;width:100%;font:inherit;letter-spacing:inherit;line-height:inherit;color:inherit;text-align:inherit;-webkit-user-select:text;user-select:text;background:0 0;border:0;outline:0;margin:0;padding:0;display:block;overflow:hidden}.item textarea::placeholder{color:#1d1c1a61}.item .rz{cursor:ew-resize;width:12px;position:absolute;top:0;bottom:0;right:-7px}.item .rz:after{content:"";background:var(--accent);border-radius:2px;width:4px;height:28px;max-height:100%;position:absolute;top:calc(50% - 14px);left:4px}.tag{background:var(--peer);color:#fff;letter-spacing:0;white-space:nowrap;pointer-events:none;transform:scale(var(--inv));transform-origin:0 100%;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:600;line-height:1.5;position:absolute;bottom:calc(100% + 4px);left:-2px}.note{background:var(--note);min-height:120px;box-shadow:var(--shadow);--note:#fff0a3;border-radius:3px;padding:14px 16px 18px}.note.yellow{--note:#fff0a3}.note.orange{--note:#ffd7a3}.note.pink{--note:#ffc7d4}.note.violet{--note:#dfd2ff}.note.blue{--note:#c4dcfb}.note.green{--note:#c6ebc1}.note.paper{--note:#fff}.note textarea{min-height:88px}.c-grey{--tint:#edebe5;--edge:#d8d4ca;--full:#d5d1c7;--on:var(--ink)}.c-yellow{--tint:#fff4bd;--edge:#ead670;--full:#ffd94d;--on:var(--ink)}.c-green{--tint:#d9f0d3;--edge:#a8d69f;--full:#2e9954;--on:#fff}.c-mint{--tint:#e2f6e9;--edge:#b0e0c1;--full:#9be0b4;--on:var(--ink)}.c-red{--tint:#fde2dd;--edge:#f0b1a8;--full:#d8493c;--on:#fff}.c-blue{--tint:#dbe8fd;--edge:#a9c5f4;--full:#2f6fe0;--on:#fff}.c-violet{--tint:#e8defe;--edge:#c4b0f2;--full:#7a54d4;--on:#fff}.c-paper{--tint:#fff;--edge:#d8d4ca;--full:#1d1c1a;--on:#fff}.card{background:var(--tint);box-shadow:inset 0 0 0 1px var(--edge);border-radius:6px;flex-direction:column;justify-content:center;padding:8px 11px;line-height:1.35;display:flex}.card.t-strong{background:var(--full);color:var(--on);box-shadow:none;font-weight:600}.card.t-outline{box-shadow:inset 0 0 0 1.5px var(--full);background:#fff}.card.a-middle{text-align:center}.item.text{min-height:1.3em;line-height:1.3}.text.s-m{font-size:16px;line-height:1.45}.text.s-l{font-size:22px;font-weight:650}.text.s-xl{letter-spacing:-.01em;font-size:30px;font-weight:700}.text.s-title{letter-spacing:-.02em;font-size:60px;font-weight:750;line-height:1.12}.text.soft{color:var(--soft)}.image img{pointer-events:none;width:100%;height:100%;display:block}.screen{box-shadow:var(--shadow);background:#1d1c1a;border-radius:6px}.screen video{object-fit:fill;border-radius:inherit;pointer-events:none;width:100%;height:100%;display:block}.screen .idle{text-align:center;color:#ffffffb8;place-items:center;height:100%;padding:16px;display:grid}.sname{color:var(--soft);white-space:nowrap;pointer-events:none;transform:scale(var(--inv));transform-origin:0 0;font-size:13px;font-weight:600;line-height:1.4;position:absolute;top:calc(100% + 6px);left:0}.table{background:#fff;border-radius:6px;line-height:1.35;box-shadow:0 0 0 1.5px #bdb8ac}.table .grid{border-radius:6px;display:grid;overflow:hidden}.cell{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--tint,#fff);flex-direction:column;justify-content:center;min-width:0;padding:8px 11px;display:flex;position:relative;box-shadow:inset -1px -1px #cdc8bc}.cell.th{text-align:center;background:#dcd8ce;font-weight:650}.table.editing .cell{cursor:cell}.cell.open{box-shadow:inset 0 0 0 2px var(--accent);cursor:text}.cell.marked{box-shadow:inset 0 0 0 2px var(--peer)}.cell .tag{transform-origin:100% 0;inset:2px 2px auto auto}.colrz{cursor:col-resize;width:12px;margin-left:-6px;position:absolute;top:0;bottom:0}.colrz:after{content:"";background:var(--accent);opacity:0;width:2px;transition:opacity .1s;position:absolute;top:0;bottom:0;left:5px}.colrz:hover:after,.viewport.dragging .colrz:after{opacity:1}.frame{background:#ffffff8c;border:1.5px solid #cfcbc1;border-radius:10px;position:absolute}.frame.sel{border-color:var(--accent);box-shadow:0 0 0 calc(1px * var(--inv)) var(--accent)}.frame.marked{border-color:var(--peer);box-shadow:0 0 0 calc(1px * var(--inv)) var(--peer)}.ftitle{max-width:100%;color:var(--soft);white-space:nowrap;cursor:default;transform:scale(var(--inv));transform-origin:0 100%;align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex;position:absolute;bottom:calc(100% + 6px);left:0}.ftitle>span:first-child{border-radius:5px;padding:2px 6px}.frame.sel .ftitle>span:first-child{background:var(--accent);color:#fff}.ftitle .tag{position:static;transform:none}.ftitle input{font:inherit;color:var(--ink);border:1.5px solid var(--accent);-webkit-user-select:text;user-select:text;background:#fff;border-radius:5px;outline:0;padding:2px 6px}.frz{border:2px solid var(--accent);cursor:nwse-resize;width:16px;height:16px;transform:scale(var(--inv));background:#fff;border-radius:50%;position:absolute;bottom:-8px;right:-8px}.arrows{pointer-events:none;width:1px;height:1px;position:absolute;top:0;left:0;overflow:visible}.arrows .e{fill:none;stroke:#55514a;stroke-width:1.8px;stroke-linecap:round}.arrows .e.sel,.arrows .e.temp{stroke:var(--accent);stroke-width:2.4px}.arrows .e.temp{stroke-dasharray:6 5}.arrows .ehit{fill:none;stroke:#0000;stroke-width:16px;pointer-events:stroke;cursor:pointer}.arrows marker.ah path{stroke:#55514a}.arrows marker.ah-sel path{stroke:var(--accent)}.port{border:2px solid var(--accent);cursor:crosshair;width:12px;height:12px;transform:scale(var(--inv));background:#fff;border-radius:50%;margin:-6px 0 0 -6px;transition:background .1s;position:absolute}.port:hover{background:var(--accent)}.viewport.dragging .port,.viewport.dragging .selbar{visibility:hidden}.selbar{background:var(--panel);box-shadow:var(--ui-shadow);border:1px solid var(--line);white-space:nowrap;transform:translate(-50%, -100%) scale(var(--inv)) translateY(-34px);transform-origin:50% 100%;border-radius:10px;align-items:center;gap:2px;padding:5px;display:flex;position:absolute}.selbar button,.toolbar button,.callbar button{cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;gap:6px;height:32px;padding:0 8px;display:inline-flex}.selbar button:hover,.toolbar button:hover,.callbar button:hover{background:#f0eee9}.selbar .swatch{background:var(--note);border:1px solid #00000024;border-radius:50%;width:22px;height:22px;margin:0 3px;padding:0}.selbar .swatch:hover{background:var(--note);transform:scale(1.12)}.selbar .swatch.on{box-shadow:0 0 0 2px #fff, 0 0 0 4px var(--accent)}.swatch.yellow{--note:#fff0a3}.swatch.orange{--note:#ffd7a3}.swatch.pink{--note:#ffc7d4}.swatch.violet{--note:#dfd2ff}.swatch.blue{--note:#c4dcfb}.swatch.green{--note:#c6ebc1}.swatch.paper{--note:#fff}.selbar .swatch[class*=c-]{--note:var(--tint)}.selbar .swatch.two,.selbar .swatch.two:hover{background:linear-gradient(135deg, var(--tint) 50%, var(--full) 50%)}.selbar .swatch.none,.selbar .swatch.none:hover{background:linear-gradient(135deg,#fff 46%,#d93a3a 46% 54%,#fff 54%)}.selbar button.word{color:var(--soft);font-weight:500}.selbar button.on:not(.swatch),.callbar button.on{background:var(--accent-soft);color:var(--accent)}.selbar button.stop{color:#d93a3a}.selbar button.stop:hover{background:#fdeeee}.sep{background:var(--line);width:1px;height:20px;margin:0 5px}.cursor{transform-origin:0 0;pointer-events:none;z-index:5;transition:transform 90ms linear;position:absolute;top:0;left:0}.cursor svg{filter:drop-shadow(0 1px 1px #00000040);display:block}.cursor .who{color:#fff;white-space:nowrap;border-radius:6px;padding:2px 7px;font-size:12px;font-weight:600;position:absolute;top:18px;left:14px}.cursor .head{position:absolute;top:44px;left:16px}.topbar{pointer-events:none;justify-content:space-between;align-items:flex-start;display:flex;position:absolute;top:12px;left:12px;right:12px}.topbar>*{pointer-events:auto;background:var(--panel);border:1px solid var(--line);height:44px;box-shadow:var(--ui-shadow);border-radius:12px;align-items:center;gap:10px;padding:0 12px;display:flex}.brand .dot{background:var(--accent);border-radius:3px;width:10px;height:10px}.brand .boardid{color:var(--soft);font-variant-numeric:tabular-nums}.brand .offline{color:#b4540a;font-weight:600}.people{padding-right:6px!important}.avatar{color:#fff;border:2px solid #fff;border-radius:50%;place-items:center;width:28px;height:28px;margin-left:-14px;font-size:11px;font-weight:700;display:grid}.avatar:first-child{margin-left:0}.avatar.me{box-shadow:0 0 0 1.5px var(--ink)}button.primary{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:8px;align-items:center;gap:6px;height:32px;padding:0 12px;font-weight:600;display:inline-flex}button.primary:hover{background:#000}button.primary:disabled{opacity:.4;cursor:default}.toolbar{background:var(--panel);border:1px solid var(--line);box-shadow:var(--ui-shadow);border-radius:14px;align-items:center;gap:2px;padding:6px;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.toolbar button{height:36px;padding:0 10px;font-weight:500}.toolbar .zoom{font-variant-numeric:tabular-nums;min-width:54px;color:var(--soft);justify-content:center}.dock{cursor:grab;touch-action:none;flex-direction:column;align-items:flex-start;gap:10px;display:flex;position:absolute}.dock:active{cursor:grabbing}.heads{flex-wrap:wrap;gap:10px;max-width:60vw;display:flex}.head{width:138px;height:138px;box-shadow:0 0 0 3px #fff, var(--ui-shadow);border-radius:50%;place-items:center;transition:box-shadow .12s;display:grid;position:relative}.head .lens{border-radius:50%;position:absolute;inset:0;overflow:hidden}.head.me .lens{transform:scaleX(-1)}.head video{object-fit:fill;transform-origin:0 0;will-change:transform;max-width:none;transition:transform .9s cubic-bezier(.4,0,.2,1);display:block;position:absolute;top:0;left:0}.head.speaking{box-shadow:0 0 0 3px #fff, 0 0 0 6px #2bb673, var(--ui-shadow)}.head .initials{color:#fff;font-size:38px;font-weight:700}.head .badge{color:#fff;background:#d93a3a;border:2px solid #fff;border-radius:50%;place-items:center;width:26px;height:26px;display:grid;position:absolute;bottom:6px;right:6px}.head .hname{color:#fff;white-space:nowrap;text-overflow:ellipsis;background:#1d1c1ad1;border-radius:6px;max-width:150px;padding:2px 8px;font-size:12px;font-weight:600;position:absolute;bottom:-8px;left:50%;overflow:hidden;transform:translate(-50%)}.head.small{width:52px;height:52px;box-shadow:0 0 0 2px #fff, var(--shadow)}.head.small.speaking{box-shadow:0 0 0 2px #fff, 0 0 0 4px #2bb673, var(--shadow)}.head.small .initials{font-size:16px}.head.small .badge{width:16px;height:16px;bottom:-2px;right:-2px}.callbar{background:var(--panel);border:1px solid var(--line);box-shadow:var(--ui-shadow);border-radius:12px;align-items:center;gap:2px;padding:5px;display:flex;position:relative}.callbar button.off{color:#d93a3a;background:#fdeeee}.callnotes{align-items:center;gap:8px;display:flex}.callnotes .hint{background:var(--panel);border:1px solid var(--line);color:var(--soft);border-radius:999px;padding:3px 10px}.rec{color:#fff;box-shadow:var(--ui-shadow);background:#d93a3a;border-radius:999px;align-items:center;gap:7px;padding:3px 10px 3px 8px;font-size:12px;font-weight:600;display:inline-flex}.rec i{background:#fff;border-radius:50%;width:8px;height:8px;animation:1.6s ease-in-out infinite rec}@keyframes rec{50%{opacity:.25}}.rec.busy{background:var(--panel);color:var(--ink);border:1px solid var(--line)}.rec.busy i{background:var(--soft)}.callbar button:disabled{opacity:.45;cursor:default}.devices{cursor:default;background:var(--panel);border:1px solid var(--line);width:280px;max-height:60vh;box-shadow:var(--ui-shadow);z-index:2;border-radius:12px;padding:6px;position:absolute;bottom:calc(100% + 8px);left:0;overflow:auto}.devices h4{letter-spacing:.04em;text-transform:uppercase;color:var(--soft);margin:8px 8px 2px;font-size:11px;font-weight:600}.devices p{color:var(--soft);margin:2px 8px 6px}.devices button{text-align:left;white-space:normal;width:100%;height:auto;padding:6px 8px;line-height:1.3;display:block}.callbar .hint{max-width:300px;color:var(--soft);padding:4px 8px;line-height:1.35}.callbar code{background:#f0eee9;border-radius:4px;padding:1px 4px;font-size:12px}.toasts{pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;bottom:84px;left:50%;transform:translate(-50%)}.toast{color:#fff;box-shadow:var(--ui-shadow);background:#1d1c1aeb;border-radius:10px;padding:8px 14px}.gate{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#f4f3efb8;place-items:center;display:grid;position:absolute;inset:0}.gate form{background:var(--panel);border:1px solid var(--line);width:min(360px,100vw - 32px);box-shadow:var(--ui-shadow);border-radius:16px;flex-direction:column;gap:12px;padding:24px;display:flex}.gate h1{margin:0;font-size:20px}.gate p{color:var(--soft);margin:0;line-height:1.45}.gate input{border:1.5px solid var(--line);height:40px;font:inherit;border-radius:9px;outline:0;padding:0 12px}.gate input:focus{border-color:var(--accent)}.gate button{justify-content:center;height:40px}
