@font-face{font-family:DM Sans;src:url(/fonts/dm-sans-latin.woff2) format("woff2");font-weight:100 1000;font-style:normal;font-display:swap}@font-face{font-family:Playfair Display;src:url(/fonts/playfair-display-latin.woff2) format("woff2");font-weight:400 800;font-style:normal;font-display:swap}:root{--ci-primary: #02322e;--ci-secondary: #8caca0;--ci-accent: #f7b240;--ci-surface: #d9dada;--ci-surface-light: #eef0ef;--ci-surface-lighter: #f7f8f8;--ci-text: #0b1511}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:DM Sans,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ci-text);background:#e4e5e5}button{font:inherit;cursor:pointer}:focus-visible{outline:3px solid var(--ci-accent);outline-offset:2px}.wordmark{font-family:Playfair Display,Georgia,serif;font-weight:600;font-size:19px;color:#fff;white-space:nowrap}.wordmark-large{color:var(--ci-primary);font-size:40px;margin:0 0 8px}.app-header{display:flex;align-items:center;gap:10px;padding:8px 14px;background:var(--ci-primary);color:#fff;flex-wrap:wrap;position:relative;z-index:50}.header-center{flex:1;display:flex;justify-content:center;min-width:0}.header-right{display:flex;align-items:center;gap:8px}.header-right>button,.moderator-tools button,.menu-wrap>button{min-width:44px;min-height:44px;padding:4px 10px;font-size:13px;border:1px solid rgba(140,172,160,.6);border-radius:8px;background:transparent;color:#fff}.header-right>button:hover,.moderator-tools button:hover,.menu-wrap>button:hover{background:#8caca040}.header-right>button:disabled{opacity:.45;cursor:default}.menu-wrap{position:relative}.session-menu-panel{position:absolute;top:calc(100% + 6px);right:0;z-index:60;width:250px;padding:8px;border-radius:10px;background:#fff;color:var(--ci-text);border:1px solid var(--ci-secondary);box-shadow:0 10px 30px #0000004d;display:flex;flex-direction:column;gap:2px}.session-menu-panel button{min-height:40px;text-align:left;padding:6px 10px;border:none;border-radius:6px;background:transparent;color:var(--ci-text)}.session-menu-panel button:hover{background:var(--ci-surface-light)}.session-menu-panel button:disabled{opacity:.45}.menu-heading{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:#33423d;padding:8px 10px 2px}.menu-row{display:flex;gap:4px;padding:0 6px 4px}.menu-row button{flex:1;text-align:center;border:1px solid var(--ci-surface)}.home{max-width:860px;margin:8vh auto 0;padding:0 24px 60px;text-align:center}.btn-primary{min-height:48px;padding:12px 28px;border:none;border-radius:10px;background:var(--ci-primary);color:#fff;font-size:17px}.board-page{display:flex;flex-direction:column;height:100%}.toolbar{display:flex;align-items:center;gap:6px;padding:6px 10px;background:var(--ci-primary);color:#fff;flex-wrap:wrap}.toolbar .brand{font-weight:700;margin-right:12px}.toolbar button{min-width:44px;min-height:44px;padding:4px 12px;border:1px solid #55504a;border-radius:8px;background:#3b362f;color:#fff}.toolbar button:disabled{opacity:.45;cursor:default}.toolbar-sep{width:1px;height:28px;background:#55504a;margin:0 4px}.view-bar{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.view-bar button{min-width:44px;min-height:44px;padding:4px 9px;border:1px solid var(--ci-secondary);border-radius:999px;background:var(--ci-surface-lighter);color:var(--ci-text);display:flex;align-items:center;gap:5px;font-size:12.5px}.view-bar button:hover{border-color:var(--ci-surface-lighter)}.view-bar button[aria-pressed=true]{background:var(--ci-primary);color:#fff;border-color:var(--ci-secondary)}.view-bar button:disabled{opacity:.45;cursor:default}.vb-icon{font-size:15px}.board-main{display:flex;flex:1;min-height:0;position:relative}.palette{width:170px;padding:10px;display:flex;flex-direction:column;gap:8px;background:var(--ci-surface-light);overflow-y:auto}.palette-item{min-height:44px;border:1px solid var(--ci-secondary);border-radius:8px;background:#fff;text-align:left;padding:8px 12px;touch-action:none;-webkit-user-select:none;user-select:none}.palette-ghost{position:fixed;z-index:50;transform:translate(-50%,-50%);padding:6px 12px;border-radius:8px;background:var(--ci-primary);color:#fff;pointer-events:none}.board-canvas{position:relative;flex:1;min-width:0;background:radial-gradient(circle at 50% 45%,#efe7d6,#e2d7c0 70%,#d6c9ad);overflow:hidden;touch-action:none}.scene-wrap{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:auto;touch-action:none}.board-surface{position:absolute;border:8px solid #6d5438;border-radius:16px;background:radial-gradient(circle at 50% 40%,#e8dcc2,#ddcfae 75%,#d2c29c);box-shadow:inset 0 2px 10px #0000001f;pointer-events:none}.layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.layer-hidden{visibility:hidden}.element-overlay{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab}.element-body{position:absolute;top:0;right:0;bottom:0;left:0;border:2px solid rgba(0,0,0,.25)}.shape-zylinder{border-radius:50%}.shape-kugel{border-radius:50%;box-shadow:inset -6px -6px 12px #00000040}.shape-quader{border-radius:6px}.shape-kegel{clip-path:polygon(50% 0%,100% 100%,0% 100%);border:none}.shape-spielfigur{border-radius:50%;box-shadow:inset 0 0 0 5px #ffffff59}.shape-bauer{border-radius:50%;border-style:double;border-width:5px}.shape-turm{border-radius:3px;border-style:dashed}.shape-koenig{border-radius:50%;border-style:double;border-width:6px}.figure-face{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.figure-face .eye{position:absolute;top:17%;width:5px;height:5px;border-radius:50%;background:#26231f}.eye-l{left:31%}.eye-r{right:31%}.element-overlay.selected .element-body{outline:3px solid #1f6fd6;outline-offset:2px}.label-stack{position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:6px;display:flex;flex-direction:column;align-items:center;gap:1px;pointer-events:none}.element-label{font-size:12px;white-space:nowrap;text-shadow:0 1px 2px rgba(255,255,255,.8)}.category-badge{font-size:9px;text-transform:uppercase;letter-spacing:.4px;padding:0 5px;border-radius:6px;background:#2e2a24bf;color:#fff;white-space:nowrap}.figure-arrow{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.figure-arrow-tip{position:absolute;top:-9px;left:50%;transform:translate(-50%);width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:7px solid #55504a}.rotate-ring{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:1.5px dashed rgba(31,111,214,.55);border-radius:50%;pointer-events:none}.rotate-handle{position:absolute;width:18px;height:18px;transform:translate(-50%,-50%);border-radius:50%;background:#1f6fd6;border:2px solid #fff;box-shadow:0 1px 4px #00000059;cursor:grab;pointer-events:auto;touch-action:none}.view-cone{position:absolute;left:50%;top:50%;width:110px;height:110px;clip-path:polygon(50% 50%,26% 0%,74% 0%);background:linear-gradient(to top,#4f79b873,#4f79b80d);pointer-events:none}.area{position:absolute;border:2px solid;border-radius:10px;pointer-events:auto}.area.selected{outline:3px solid #1f6fd6;outline-offset:2px}.area-name{position:absolute;top:4px;left:8px;font-size:12px;pointer-events:none}.area-resize{position:absolute;right:-2px;bottom:-2px;width:20px;height:20px;border-radius:4px;background:#3c6e3ce6;cursor:nwse-resize;pointer-events:auto;touch-action:none}.frame{position:absolute;border:2px dashed #8a7f6a;border-radius:8px}.frame-handle{position:absolute;left:0;right:0;top:0;height:22px;background:#8a7f6a66;border-radius:6px 6px 0 0;cursor:move;pointer-events:auto;touch-action:none}.guide-v{position:absolute;top:0;bottom:0;width:2px;transform:translate(-50%);background:#1f6fd68c}.props-panel{position:absolute;right:0;top:0;bottom:0;z-index:10;width:240px;padding:14px;background:var(--ci-surface-light);box-shadow:-4px 0 14px #00000026;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.props-panel h2{margin:0;font-size:15px}.props-panel label{display:flex;flex-direction:column;gap:4px;font-size:13px}.props-panel input,.props-panel select{font:inherit;padding:8px;border:1px solid var(--ci-secondary);border-radius:6px;width:100%}.color-row{display:flex;align-items:center;gap:8px}.color-swatch{width:28px;height:28px;border-radius:6px;border:1px solid var(--ci-secondary);flex:0 0 auto}.btn-danger{min-height:44px;border:none;border-radius:8px;background:#a44a3e;color:#fff}.props-row{display:flex;align-items:center;gap:8px}.props-grow{flex:1;min-width:0}.props-group{border:1px solid var(--ci-secondary);border-radius:8px;padding:8px 10px 10px;display:flex;flex-direction:column;gap:8px;margin:0}.props-group legend{font-size:12px;padding:0 4px}.props-row button,.props-actions button{min-width:36px;min-height:36px;border:1px solid var(--ci-secondary);border-radius:8px;background:#fff;padding:4px 10px}.props-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.props-actions button.active{background:var(--ci-primary);color:#fff}.props-actions button:disabled{opacity:.45}.props-row input[type=range]{flex:1;padding:0}.size-stage{min-width:28px;text-align:center;font-weight:700}.name-dialog{position:absolute;z-index:30;width:230px;padding:12px;border-radius:10px;background:#fff;border:1px solid var(--ci-secondary);box-shadow:0 8px 28px #00000040;display:flex;flex-direction:column;gap:8px;pointer-events:auto}.name-dialog h3{margin:0;font-size:14px}.name-dialog label{display:flex;flex-direction:column;gap:3px;font-size:12px}.name-dialog input,.name-dialog select{font:inherit;padding:6px 8px;border:1px solid var(--ci-secondary);border-radius:6px;width:100%}.offer-dialog{position:absolute;z-index:40;top:16px;left:50%;transform:translate(-50%);width:320px;padding:14px;border-radius:10px;background:#fff;border:1px solid var(--ci-secondary);box-shadow:0 8px 28px #00000040;display:flex;flex-direction:column;gap:10px}.offer-dialog p{margin:0;font-size:14px}.btn-primary-small{min-height:36px;padding:6px 16px;border:none;border-radius:8px;background:var(--ci-primary);color:#fff}.palette-config{display:flex;flex-direction:column;gap:6px;padding:8px;border:1px solid var(--ci-secondary);border-radius:8px;background:var(--ci-surface-lighter);font-size:12px}.palette-config-row{display:flex;align-items:center;gap:6px}.palette-config-row input[type=text]{flex:1;min-width:0;padding:4px 6px;border:1px solid var(--ci-secondary);border-radius:6px;font:inherit;font-size:12px}.shape-picker{position:absolute;z-index:40;top:50%;left:50%;transform:translate(-50%,-50%);width:420px;padding:14px;border-radius:12px;background:#fff;border:1px solid var(--ci-secondary);box-shadow:0 10px 34px #0000004d;display:flex;flex-direction:column;gap:12px}.shape-picker-head{display:flex;align-items:center;justify-content:space-between}.shape-picker-head h3{margin:0;font-size:15px}.shape-picker-head button{min-width:36px;min-height:36px;border:1px solid var(--ci-secondary);border-radius:8px;background:#fff}.shape-picker-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.shape-option{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 4px;border:1px solid var(--ci-secondary);border-radius:8px;background:#fff;font-size:12px}.shape-option.active{outline:2px solid #1f6fd6}.shape-preview{display:block;width:24px;height:24px;border:2px solid rgba(0,0,0,.25)}.board-inner-frame{position:absolute;top:28px;right:28px;bottom:28px;left:28px;border:3px solid rgba(90,59,42,.55);border-radius:6px;pointer-events:none}.scene-label{display:flex;flex-direction:column;align-items:center;gap:1px;font-size:12px;color:#26231f;background:#fffdf8d1;border-radius:6px;padding:1px 7px;white-space:nowrap}.scene-label-category{font-size:9px;text-transform:uppercase;letter-spacing:.4px;opacity:.75}.role-badge{font-size:12px;font-weight:600;padding:6px 12px;border-radius:999px;background:var(--ci-secondary);color:var(--ci-primary)}.presence-list{display:flex;gap:4px}.presence-user{font-size:12px;padding:6px 10px;border-radius:999px;background:var(--ci-surface);color:var(--ci-text)}.moderator-tools{display:flex;align-items:center;gap:8px}.gate-page{height:100%;display:flex;align-items:center;justify-content:center}.gate-card{width:320px;padding:20px;border-radius:12px;background:#fff;border:1px solid var(--ci-secondary);box-shadow:0 10px 34px #0003;display:flex;flex-direction:column;gap:12px}.gate-card h2{margin:0;font-size:17px}.gate-card label{display:flex;flex-direction:column;gap:4px;font-size:13px}.gate-card input{font:inherit;padding:8px;border:1px solid var(--ci-secondary);border-radius:6px}.gate-error{margin:0;color:#b65c4f;font-size:13px}.snapshots-bar{position:absolute;left:12px;bottom:12px;display:flex;gap:6px;z-index:15;pointer-events:none}.snapshot-item{font-size:12px;padding:4px 10px;border-radius:999px;background:#02322ed9;color:#fff}.compare-view{position:absolute;z-index:45;top:24px;right:24px;bottom:24px;left:24px;background:#fff;border:1px solid var(--ci-secondary);border-radius:12px;box-shadow:0 10px 34px #0000004d;padding:14px;display:flex;flex-direction:column;gap:12px;overflow:auto}.compare-head{display:flex;align-items:center;gap:10px}.compare-head h3{margin:0;font-size:15px;flex:1}.compare-head select,.compare-head button{font:inherit;padding:8px;border:1px solid var(--ci-secondary);border-radius:6px;background:#fff}.compare-panes{display:flex;gap:16px;align-items:flex-start}.compare-pane{flex:1;display:flex;flex-direction:column;gap:6px}.compare-pane h4{margin:0;font-size:13px}.snapshot-preview{position:relative;background:#d9c9a8;border:4px solid #6d5438;border-radius:8px}.snapshot-dot{position:absolute;transform:translate(-50%,-50%);border-radius:50%;border:1px solid rgba(0,0,0,.3)}.template-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;margin-top:12px;text-align:left}.template-card{display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid var(--ci-secondary);border-radius:10px;background:#fff}.template-thumb{width:100%;border-radius:6px;display:block}.template-name{font-size:14px;font-weight:600}.emoji-input-row{display:flex;gap:6px;align-items:center}.emoji-input-row input{flex:1;min-width:0}.emoji-open-btn{min-width:44px;min-height:40px;border:1px solid var(--ci-secondary);border-radius:8px;background:#fff;font-size:17px}.emoji-picker{position:fixed;z-index:90;top:50%;left:50%;transform:translate(-50%,-50%);width:420px;max-width:calc(100vw - 32px);height:520px;max-height:calc(100vh - 60px);display:flex;flex-direction:column;background:#fff;color:var(--ci-text);border:1px solid var(--ci-secondary);border-radius:12px;box-shadow:0 14px 44px #00000059}.emoji-head{display:flex;align-items:center;gap:6px;padding:10px 10px 6px;flex-wrap:wrap}.emoji-head input[type=search]{flex:1;min-width:140px;font:inherit;padding:9px 10px;border:1px solid var(--ci-secondary);border-radius:8px}.emoji-skins{display:flex;gap:2px}.emoji-skin{min-width:34px;min-height:34px;border:1px solid transparent;border-radius:8px;background:transparent;font-size:15px}.emoji-skin[aria-pressed=true]{border-color:var(--ci-primary);background:var(--ci-surface-light)}.emoji-none{min-height:34px;padding:4px 10px;border:1px solid var(--ci-secondary);border-radius:8px;background:var(--ci-surface-lighter);color:var(--ci-text);font-size:12px}.emoji-close{min-width:34px;min-height:34px;border:1px solid var(--ci-secondary);border-radius:8px;background:#fff;font-size:16px}.emoji-tabs{display:flex;gap:2px;padding:0 10px 6px;border-bottom:1px solid var(--ci-surface)}.emoji-tabs button{flex:1;min-height:44px;border:none;border-radius:8px;background:transparent;font-size:17px}.emoji-tabs button[aria-selected=true]{background:var(--ci-surface-light);box-shadow:inset 0 -3px 0 var(--ci-primary)}.emoji-grid-scroll{flex:1;overflow-y:auto;padding:6px 10px 12px;position:relative}.emoji-heading{margin:10px 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:#33423d}.emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:2px}.emoji-item{min-height:42px;border:none;border-radius:8px;background:transparent;font-size:21px;line-height:1}.emoji-item:hover,.emoji-item:focus{background:var(--ci-surface-light)}.emoji-loading{padding:20px;text-align:center}.fp-indicator{position:absolute;top:12px;left:50%;transform:translate(-50%);padding:8px 16px;border-radius:999px;background:#02322ee6;color:#fff;font-size:14px;pointer-events:none}
