@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-obahsSVq.woff2) format("woff2"),url(/assets/inter-cyrillic-400-normal-HOLc17fK.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2) format("woff2"),url(/assets/inter-greek-ext-400-normal-KugGGMne.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-B4URO6DV.woff2) format("woff2"),url(/assets/inter-greek-400-normal-q2sYcFCs.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2) format("woff2"),url(/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2) format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-500-normal-BasfLYem.woff2) format("woff2"),url(/assets/inter-cyrillic-500-normal-CxZf_p3X.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-ext-500-normal-C4iEst2y.woff2) format("woff2"),url(/assets/inter-greek-ext-500-normal-2j5mBUwD.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-500-normal-BIZE56-Y.woff2) format("woff2"),url(/assets/inter-greek-500-normal-Xzm54t5V.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-vietnamese-500-normal-DOriooB6.woff2) format("woff2"),url(/assets/inter-vietnamese-500-normal-mJboJaSs.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2) format("woff2"),url(/assets/inter-latin-ext-500-normal-BxGbmqWO.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2) format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-600-normal-CWCymEST.woff2) format("woff2"),url(/assets/inter-cyrillic-600-normal-4D_pXhcN.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2) format("woff2"),url(/assets/inter-greek-ext-600-normal-B8X0CLgF.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-600-normal-plRanbMR.woff2) format("woff2"),url(/assets/inter-greek-600-normal-BZpKdvQh.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2) format("woff2"),url(/assets/inter-vietnamese-600-normal-BuLX-rYi.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2) format("woff2"),url(/assets/inter-latin-ext-600-normal-CIVaiw4L.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-ext-700-normal-BjwYoWNd.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-700-normal-LO58E6JB.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-700-normal-CjBOestx.woff2) format("woff2"),url(/assets/inter-cyrillic-700-normal-DrXBdSj3.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-ext-700-normal-qfdV9bQt.woff2) format("woff2"),url(/assets/inter-greek-ext-700-normal-BoQ6DsYi.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-700-normal-C3JjAnD8.woff2) format("woff2"),url(/assets/inter-greek-700-normal-BUv2fZ6O.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-vietnamese-700-normal-DlLaEgI2.woff2) format("woff2"),url(/assets/inter-vietnamese-700-normal-BZaoP0fm.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-ext-700-normal-Ca8adRJv.woff2) format("woff2"),url(/assets/inter-latin-ext-700-normal-TidjK2hL.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-700-normal-Yt3aPRUw.woff2) format("woff2"),url(/assets/inter-latin-700-normal-BLAVimhd.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.tooltip-wrap{position:relative;display:inline-flex}.tooltip-bubble{position:absolute;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:6px;padding:5px 10px;background:var(--bg-primary);border:1px solid var(--border-divider);border-radius:8px;box-shadow:var(--shadow-md);white-space:nowrap;pointer-events:none;z-index:9999;animation:tooltip-in .15s var(--ease-out);font-family:var(--font-ui)}.tooltip-top{bottom:calc(100% + 8px)}.tooltip-bottom{top:calc(100% + 8px)}@keyframes tooltip-in{0%{opacity:0;transform:translate(-50%) translateY(2px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.tooltip-label{font-size:12px;font-weight:500;color:var(--text-primary)}.tooltip-kbd{font-size:10px;font-weight:600;color:var(--text-hint);background:var(--bg-hover);border:1px solid var(--border-divider);border-radius:4px;padding:1px 5px;font-family:var(--font-ui)}.toolbar{position:fixed;bottom:24px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:2px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:16px;padding:6px;box-shadow:var(--shadow-md);z-index:100;-webkit-user-select:none;user-select:none;animation:toolbar-enter .5s var(--ease-out)}@keyframes toolbar-enter{0%{opacity:0;transform:translate(-50%) translateY(16px) scale(.96)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.toolbar-btn{display:flex;align-items:center;justify-content:center;position:relative;width:40px;height:40px;border:none;background:transparent;border-radius:10px;cursor:pointer;transition:background .15s,color .15s,transform .1s;color:var(--text-secondary);padding:0}.toolbar-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.toolbar-btn:active{transform:scale(.92)}.toolbar-btn.active{background:var(--accent-bg);color:var(--accent)}.toolbar-icon{display:flex;align-items:center;justify-content:center;font-size:20px;line-height:1}.toolbar-chevron{position:absolute;bottom:2px;right:2px;font-size:8px;line-height:1;opacity:.4}.toolbar-divider{width:1px;height:24px;background:var(--border-divider);margin:0 3px;flex-shrink:0;opacity:.6}.toolbar-dropdown{position:relative}.toolbar-popover{position:absolute;bottom:52px;left:50%;transform:translate(-50%);background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:14px;box-shadow:var(--shadow-lg);padding:8px;z-index:110;animation:pop-spring .25s var(--spring)}@keyframes pop-spring{0%{opacity:0;transform:translate(-50%) translateY(6px) scale(.95)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.toolbar-popover-grid{display:grid;grid-template-columns:repeat(4,40px);gap:2px}.toolbar-popover-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:transparent;border-radius:8px;cursor:pointer;color:var(--text-secondary);transition:background .12s,color .12s,transform .1s;padding:0}.toolbar-popover-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.toolbar-popover-btn:active{transform:scale(.9)}.toolbar-popover-btn.active{background:var(--accent-bg);color:var(--accent)}.sticky-palette{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:4px}.sticky-palette-btn{width:28px;height:28px;border:2px solid transparent;border-radius:6px;cursor:pointer;transition:transform .12s var(--spring),border-color .12s}.sticky-palette-btn:hover{transform:scale(1.15);border-color:#0003}.sticky-palette-btn.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-bg)}@media(max-width:768px){.toolbar{bottom:12px;left:8px;right:8px;transform:none;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;padding:4px;gap:2px;border-radius:14px;scrollbar-width:none;animation:toolbar-enter-mobile .5s var(--ease-out)}@keyframes toolbar-enter-mobile{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.toolbar::-webkit-scrollbar{display:none}.toolbar-btn{width:44px;height:44px;flex-shrink:0}.toolbar-popover-btn{width:44px;height:44px}.toolbar-popover{bottom:56px}}.context-toolbar{position:fixed;display:flex;align-items:center;gap:2px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:14px;box-shadow:var(--shadow-md);padding:4px;z-index:100;transform:translate(-50%);pointer-events:auto;-webkit-user-select:none;user-select:none;animation:ctx-enter .2s var(--spring)}@keyframes ctx-enter{0%{opacity:0;transform:translate(-50%) translateY(4px) scale(.96)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}@keyframes ctx-pop{0%{opacity:0;transform:translate(-50%) translateY(4px) scale(.95)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.ctx-divider{width:1px;height:24px;background:var(--border-divider);margin:0 2px}.ctx-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;border-radius:6px;cursor:pointer;color:var(--text-primary);font-size:14px;padding:0;position:relative}.ctx-btn:hover{background:var(--bg-hover)}.ctx-btn-danger:hover{color:var(--danger-btn, #ef4444);background:var(--error-bg, rgba(239,68,68,.1))}.ctx-btn.active{background:var(--accent-bg);color:var(--accent)}.ctx-btn svg{width:18px;height:18px}.ctx-fontsize{display:flex;align-items:center;gap:0;height:32px;border-radius:6px;position:relative}.ctx-fontsize-value{display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:500;color:var(--text-primary);min-width:28px;height:28px;text-align:center;border:none;border-radius:6px;background:transparent;cursor:pointer;padding:0 4px}.ctx-fontsize-value:hover{background:var(--bg-hover)}.ctx-fontsize-spinners{display:flex;flex-direction:column;margin-left:2px;gap:1px}.ctx-fontsize-spin{display:flex;align-items:center;justify-content:center;width:16px;height:13px;border:none;background:transparent;cursor:pointer;color:var(--text-muted);padding:0;border-radius:3px}.ctx-fontsize-spin:hover{background:var(--bg-hover);color:var(--text-primary)}.ctx-fontsize-popover{position:absolute;top:38px;left:50%;transform:translate(-50%);background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:12px;box-shadow:var(--shadow-lg);padding:4px;z-index:200;min-width:80px;max-height:320px;overflow-y:auto;display:flex;flex-direction:column;animation:ctx-pop .2s var(--spring)}.ctx-fontsize-option{display:flex;align-items:center;justify-content:center;height:32px;padding:0 12px;border:none;background:transparent;border-radius:4px;cursor:pointer;font-size:13px;font-weight:500;color:var(--text-primary);white-space:nowrap}.ctx-fontsize-option:hover{background:var(--bg-hover)}.ctx-fontsize-option.active{background:var(--accent-bg);color:var(--accent);font-weight:700}.ctx-color-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;border-radius:6px;cursor:pointer;padding:0;position:relative}.ctx-color-btn:hover{background:var(--bg-hover)}.ctx-color-dot{width:18px;height:18px;border-radius:50%;border:2px solid var(--border-medium)}.ctx-text-color{display:flex;flex-direction:column;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;border-radius:6px;cursor:pointer;padding:0;font-size:16px;font-weight:700;line-height:1}.ctx-text-color:hover{background:var(--bg-hover)}.ctx-text-color-bar{width:14px;height:3px;border-radius:1px;margin-top:1px}.ctx-color-popover{position:absolute;top:40px;left:50%;transform:translate(-50%);background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:12px;box-shadow:var(--shadow-lg);padding:8px;display:grid;grid-template-columns:repeat(5,28px);gap:4px;z-index:200;animation:ctx-pop .2s var(--spring)}.ctx-color-option{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;transition:transform .1s}.ctx-color-option:hover{transform:scale(1.15)}.ctx-color-option.active{border-color:var(--accent)}.ctx-shape-badge{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;border-radius:6px;color:var(--text-muted);font-size:12px}.ctx-shape-badge svg{width:20px;height:20px;color:var(--text-secondary)}.ctx-multi-badge{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;background:var(--accent-bg);color:var(--accent);font-size:11px;font-weight:700}.ctx-font-btn{display:flex;align-items:center;gap:3px;height:32px;border:none;background:transparent;border-radius:6px;cursor:pointer;color:var(--text-primary);font-size:12px;font-weight:500;padding:0 6px;position:relative;white-space:nowrap}.ctx-font-btn:hover{background:var(--bg-hover)}.ctx-font-label{max-width:72px;overflow:hidden;text-overflow:ellipsis}.ctx-font-chevron{flex-shrink:0;opacity:.5}.ctx-font-popover{position:absolute;top:40px;left:50%;transform:translate(-50%);background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:12px;box-shadow:var(--shadow-lg);padding:4px;z-index:200;min-width:140px;display:flex;flex-direction:column;animation:ctx-pop .2s var(--spring)}.ctx-font-option{display:flex;align-items:center;height:32px;padding:0 10px;border:none;background:transparent;border-radius:4px;cursor:pointer;font-size:13px;color:var(--text-primary);text-align:left;white-space:nowrap}.ctx-font-option:hover{background:var(--bg-hover)}.ctx-font-option.active{background:var(--accent-bg);color:var(--accent)}.ctx-stroke-width-btn{position:relative}.ctx-strokewidth-popover{position:absolute;top:40px;left:50%;transform:translate(-50%);background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:12px;box-shadow:var(--shadow-lg);padding:4px;z-index:200;min-width:100px;display:flex;flex-direction:column;animation:ctx-pop .2s var(--spring)}.ctx-strokewidth-option{display:flex;align-items:center;gap:8px;height:30px;padding:0 10px;border:none;background:transparent;border-radius:4px;cursor:pointer;font-size:12px;color:var(--text-secondary)}.ctx-strokewidth-option:hover{background:var(--bg-hover)}.ctx-strokewidth-option.active{background:var(--accent-bg);color:var(--accent)}.ctx-strokewidth-line{width:32px;background:currentColor;border-radius:1px;flex-shrink:0}.ctx-strokewidth-label{font-size:11px;font-weight:500}.ctx-align-btn{position:relative}.ctx-align-popover{position:absolute;top:40px;left:50%;transform:translate(-50%);background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:12px;box-shadow:var(--shadow-lg);padding:8px;z-index:200;min-width:160px;animation:ctx-pop .2s var(--spring)}.ctx-align-section-label{font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;padding:4px 4px 2px}.ctx-align-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}.ctx-align-option{display:flex;align-items:center;justify-content:center;width:40px;height:36px;border:none;background:transparent;border-radius:6px;cursor:pointer;color:var(--text-primary);padding:0}.ctx-align-option:hover{background:var(--bg-hover)}.ctx-align-option svg{width:20px;height:20px}@media(max-width:768px){.context-toolbar{left:8px!important;right:8px;max-width:calc(100vw - 16px);transform:none;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.context-toolbar::-webkit-scrollbar{display:none}.ctx-btn,.ctx-color-btn,.ctx-text-color{min-width:40px;min-height:40px;flex-shrink:0}.ctx-fontsize-value{min-width:36px;min-height:36px}.ctx-font-btn{min-height:40px;flex-shrink:0}.ctx-color-popover,.ctx-font-popover,.ctx-fontsize-popover,.ctx-strokewidth-popover,.ctx-align-popover{position:fixed;top:auto;bottom:60px;left:50%;transform:translate(-50%)}}.conn-stroke-style-group{display:flex;align-items:center;gap:1px;background:var(--bg-hover);border-radius:8px;padding:2px}.conn-stroke-style-btn{width:28px;height:28px;border:none;background:transparent;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:background .12s,color .12s;padding:0}.conn-stroke-style-btn.active{background:var(--accent-bg);color:var(--accent)}.conn-stroke-style-btn:hover:not(.active){background:var(--bg-panel);color:var(--text-primary)}@media(max-width:768px){.conn-stroke-style-group{flex-shrink:0}.conn-stroke-style-btn{min-width:36px;min-height:36px}}.context-menu{position:fixed;z-index:10000;min-width:200px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:14px;box-shadow:var(--shadow-lg);padding:6px;font-family:var(--font-ui);font-size:13px;color:var(--text-primary);-webkit-user-select:none;user-select:none;animation:ctxmenu-spring .2s var(--spring)}@keyframes ctxmenu-spring{0%{opacity:0;transform:translateY(-4px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.context-menu-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;cursor:pointer;border:none;background:none;width:100%;text-align:left;font:inherit;color:inherit;outline:none;gap:24px;border-radius:8px;transition:background .12s}.context-menu-item:hover{background:var(--bg-hover)}.context-menu-item:active{background:var(--bg-active)}.context-menu-item-label{flex:1;white-space:nowrap}.context-menu-item-shortcut{color:var(--text-hint);font-size:11px;font-weight:500;white-space:nowrap;margin-left:24px;padding:1px 5px;background:var(--bg-hover);border-radius:4px}.context-menu-item--danger .context-menu-item-label{color:#dc2626}.context-menu-divider{height:1px;background:var(--border-divider);margin:4px 8px}.context-menu-emoji-bar{display:flex;gap:2px;padding:4px 6px;justify-content:center}.context-menu-emoji-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:none;border-radius:8px;font-size:18px;cursor:pointer;transition:background .12s,transform .1s}.context-menu-emoji-btn:hover{background:var(--bg-hover);transform:scale(1.2)}.zoom-controls{position:fixed;bottom:16px;right:16px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:10px;box-shadow:var(--shadow-sm);z-index:100;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:0;padding:2px;animation:ui-enter .4s var(--ease-out);transition:padding .15s}.zoom-expanded{padding:2px 4px}.zoom-btn{width:28px;height:28px;border:none;background:transparent;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);padding:0;transition:background .12s,color .12s,transform .1s}.zoom-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.zoom-btn:active{transform:scale(.9)}.zoom-percent{min-width:38px;height:28px;border:none;background:transparent;border-radius:6px;cursor:pointer;font-size:11px;font-weight:600;color:var(--text-secondary);padding:0 4px;text-align:center;font-family:var(--font-ui);transition:background .12s,color .12s}.zoom-percent:hover{background:var(--bg-hover);color:var(--text-primary)}.zoom-divider{width:1px;height:16px;background:var(--border-divider);margin:0 1px;opacity:.5}@media(max-width:768px){.zoom-controls{bottom:68px;right:8px}.zoom-btn{width:32px;height:32px}.zoom-percent{min-width:36px;height:32px;font-size:10px}}.main-menu-wrapper{position:fixed;top:12px;left:12px;z-index:200;animation:ui-enter .4s var(--ease-out)}.main-menu-btn{width:40px;height:40px;border:none;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:12px;box-shadow:var(--shadow-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:background .15s,color .15s,transform .1s}.main-menu-btn:hover,.main-menu-btn.active{background:var(--bg-hover);color:var(--text-primary)}.main-menu-btn:active{transform:scale(.92)}.main-menu-dropdown{position:absolute;top:48px;left:0;min-width:220px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:14px;box-shadow:var(--shadow-lg);padding:6px;font-family:var(--font-ui);animation:menu-spring .25s var(--spring)}@keyframes menu-spring{0%{opacity:0;transform:translateY(-4px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.mm-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;border:none;background:transparent;border-radius:8px;cursor:pointer;font-size:14px;color:var(--text-primary);text-align:left;position:relative;transition:background .12s;font-family:inherit}.mm-item:hover:not(:disabled){background:var(--bg-hover)}.mm-item:active:not(:disabled){background:var(--bg-active)}.mm-item:disabled{color:var(--text-hint);cursor:default}.mm-icon{width:18px;height:18px;flex-shrink:0}.mm-chevron{margin-left:auto;opacity:.4;flex-shrink:0}.mm-hint{margin-left:auto;font-size:11px;color:var(--text-hint);font-weight:400}.mm-shortcut{margin-left:auto;font-size:11px;color:var(--text-hint);font-weight:500;padding:1px 5px;background:var(--bg-hover);border-radius:4px}.mm-divider{height:1px;background:var(--border-divider);margin:4px 8px}.mm-has-sub{position:relative}.mm-submenu{position:absolute;left:100%;top:-6px;margin-left:4px;min-width:180px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:14px;box-shadow:var(--shadow-lg);padding:6px;z-index:10;animation:menu-spring .2s var(--spring)}.mm-sub-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;background:transparent;border-radius:6px;cursor:pointer;font-size:13px;color:var(--text-primary);text-align:left;transition:background .12s;font-family:inherit}.mm-sub-item:hover:not(:disabled){background:var(--bg-hover)}.mm-sub-item:disabled{color:var(--text-hint);cursor:default}.mm-sub-divider{height:1px;background:var(--border-divider);margin:3px 8px}@media(max-width:768px){.main-menu-wrapper{top:8px;left:8px}.main-menu-btn{width:44px;height:44px}.main-menu-dropdown{min-width:200px}.mm-submenu{position:fixed;left:56px;top:auto;margin-left:0}}.share-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg-overlay);display:flex;align-items:center;justify-content:center;z-index:2000;font-family:var(--font-ui)}.share-dialog{background:var(--bg-panel);border-radius:20px;box-shadow:var(--shadow-lg);width:420px;max-width:90vw;overflow:hidden;animation:share-enter .3s var(--ease-out)}@keyframes share-enter{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.share-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-divider)}.share-title{font-size:16px;font-weight:600;color:var(--text-primary)}.share-close{background:none;border:none;font-size:22px;color:var(--text-muted);cursor:pointer;padding:0 4px;line-height:1;border-radius:6px;transition:color .12s,background .12s}.share-close:hover{color:var(--text-primary);background:var(--bg-hover)}.share-body{padding:16px 20px 20px}.share-loading{padding:32px 20px;text-align:center;color:var(--text-muted);font-size:14px}.share-error{background:var(--error-bg);color:var(--error-text);padding:8px 12px;border-radius:8px;font-size:13px;margin-bottom:12px}.share-modes{display:flex;flex-direction:column;gap:8px}.share-mode-option{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1.5px solid var(--border-medium);border-radius:10px;cursor:pointer;transition:all .15s}.share-mode-option:hover,.share-mode-option.active{border-color:var(--accent);background:var(--accent-bg)}.share-mode-option input[type=radio]{margin-top:3px;accent-color:var(--accent)}.share-mode-info{display:flex;flex-direction:column;gap:2px}.share-mode-label{font-size:14px;font-weight:500;color:var(--text-primary)}.share-mode-desc{font-size:12px;color:var(--text-muted)}.share-url-section{margin-top:16px;padding-top:16px;border-top:1px solid var(--border-divider)}.share-url-row{display:flex;gap:8px}.share-url-input{flex:1;padding:8px 12px;border:1px solid var(--border-medium);border-radius:8px;font-size:13px;color:var(--text-secondary);background:var(--bg-secondary);outline:none;font-family:var(--font-ui)}.share-url-input:focus{border-color:var(--accent)}.share-copy-btn{padding:8px 16px;background:var(--accent);color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;transition:opacity .15s,transform .1s;font-family:var(--font-ui)}.share-copy-btn:hover{opacity:.9}.share-copy-btn:active{transform:scale(.96)}.comment-thread{position:fixed;width:280px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:14px;box-shadow:var(--shadow-lg);z-index:200;font-family:var(--font-ui);overflow:hidden;animation:comment-enter .25s var(--spring)}@keyframes comment-enter{0%{opacity:0;transform:translateY(4px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.comment-thread.resolved{opacity:.75}.ct-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--border-divider)}.ct-header-label{font-size:11px;font-weight:600;color:var(--text-hint);text-transform:uppercase;letter-spacing:.5px}.ct-header-actions{display:flex;gap:4px}.ct-resolve-btn,.ct-delete-btn{width:24px;height:24px;border:none;background:transparent;border-radius:6px;cursor:pointer;font-size:14px;color:var(--text-hint);display:flex;align-items:center;justify-content:center;transition:background .12s,color .12s}.ct-resolve-btn:hover{background:var(--success-bg);color:var(--success-text)}.ct-delete-btn:hover{background:var(--error-bg);color:var(--error-text)}.ct-message{display:flex;gap:8px;padding:10px 12px}.ct-message+.ct-message{border-top:1px solid var(--border-divider)}.ct-avatar{width:28px;height:28px;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;flex-shrink:0}.ct-body{flex:1;min-width:0}.ct-meta{display:flex;align-items:center;gap:6px;margin-bottom:2px}.ct-author{font-size:12px;font-weight:600;color:var(--text-primary)}.ct-time{font-size:10px;color:var(--text-hint)}.ct-text{font-size:13px;color:var(--text-secondary);line-height:1.4;word-break:break-word}.ct-reply-box{display:flex;gap:6px;padding:8px 10px;border-top:1px solid var(--border-divider);background:var(--bg-secondary)}.ct-reply-input{flex:1;border:1px solid var(--border-medium);border-radius:8px;padding:6px 8px;font-size:13px;font-family:inherit;resize:none;outline:none;line-height:1.4;background:var(--bg-panel);color:var(--text-primary);transition:border-color .15s}.ct-reply-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-bg)}.ct-send-btn{width:32px;height:32px;border:none;background:var(--accent);color:#fff;border-radius:8px;cursor:pointer;font-size:16px;font-weight:700;display:flex;align-items:center;justify-content:center;align-self:flex-end;transition:opacity .15s,transform .1s}.ct-send-btn:hover:not(:disabled){opacity:.9}.ct-send-btn:active:not(:disabled){transform:scale(.92)}.ct-send-btn:disabled{opacity:.4;cursor:default}.new-comment{width:260px}.new-comment .ct-reply-box{border-top:none;background:transparent}@media(max-width:768px){.comment-thread{position:fixed;left:8px!important;right:8px;bottom:72px!important;top:auto!important;width:auto;max-height:50vh;overflow-y:auto}.new-comment{left:8px!important;right:8px;bottom:72px!important;top:auto!important;width:auto}.ct-send-btn{width:40px;height:40px}.ct-reply-input{font-size:16px}}.presentation-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;pointer-events:none}.pres-topbar{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:10px 20px;background:linear-gradient(to bottom,rgba(0,0,0,.5),transparent);pointer-events:auto;opacity:0;transition:opacity .3s}.presentation-overlay:hover .pres-topbar{opacity:1}.pres-title{color:#fff;font-size:14px;font-weight:600;font-family:var(--font-ui);text-shadow:0 1px 3px rgba(0,0,0,.3)}.pres-exit{display:flex;align-items:center;gap:6px;padding:6px 14px;background:#ffffff26;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.2);border-radius:10px;color:#fff;font-size:13px;cursor:pointer;transition:background .15s,transform .1s;font-family:var(--font-ui)}.pres-exit:hover{background:#ffffff40}.pres-exit:active{transform:scale(.95)}.pres-controls{position:absolute;bottom:20px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:12px;padding:8px 16px;background:#1e1e1ed9;-webkit-backdrop-filter:blur(16px) saturate(160%);backdrop-filter:blur(16px) saturate(160%);border-radius:14px;box-shadow:0 4px 20px #0000004d;pointer-events:auto;opacity:0;transition:opacity .3s;font-family:var(--font-ui)}.presentation-overlay:hover .pres-controls{opacity:1}.pres-nav-btn{width:36px;height:36px;border:none;background:#ffffff1a;color:#fff;border-radius:8px;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,transform .1s}.pres-nav-btn:hover:not(:disabled){background:#fff3}.pres-nav-btn:active:not(:disabled){transform:scale(.9)}.pres-nav-btn:disabled{opacity:.3;cursor:default}.pres-counter{color:#ffffffb3;font-size:13px;font-weight:500;min-width:40px;text-align:center;white-space:nowrap}.pres-dots{display:flex;align-items:center;gap:6px}.pres-dot{width:8px;height:8px;border-radius:50%;border:none;background:#ffffff4d;cursor:pointer;padding:0;transition:all .2s}.pres-dot:hover{background:#fff9;transform:scale(1.3)}.pres-dot.active{background:#fff;width:10px;height:10px}@media(max-width:768px){.pres-topbar{padding:8px 12px;opacity:1}.pres-title{font-size:12px}.pres-controls{bottom:12px;padding:6px 12px;gap:8px;opacity:1}.pres-nav-btn{width:44px;height:44px;font-size:20px}.pres-dots{display:none}}.search-panel{position:fixed;top:12px;left:50%;transform:translate(-50%);z-index:300;display:flex;flex-direction:column;gap:4px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:14px;box-shadow:var(--shadow-md);padding:6px 10px;font-family:var(--font-ui);animation:search-enter .3s var(--ease-out)}@keyframes search-enter{0%{opacity:0;transform:translate(-50%) translateY(-8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.search-panel-row{display:flex;align-items:center;gap:4px}.search-replace-row{padding-left:32px}.search-panel-input{width:220px;height:30px;border:1px solid var(--border-medium);border-radius:8px;padding:0 8px;font-size:13px;color:var(--text-primary);background:var(--bg-primary);outline:none;transition:border-color .15s,box-shadow .15s;font-family:var(--font-ui)}.search-panel-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.search-panel-input::placeholder{color:var(--text-hint)}.search-panel-count{font-size:12px;color:var(--text-muted);white-space:nowrap;min-width:52px;text-align:center;-webkit-user-select:none;user-select:none}.search-panel-btn{width:28px;height:28px;border:none;background:transparent;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:background .12s,color .12s;flex-shrink:0}.search-panel-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.search-panel-btn:disabled{color:var(--text-hint);cursor:default}.search-toggle-replace{width:24px;height:24px}.search-replace-btn{width:30px}.search-panel-divider{width:1px;height:20px;background:var(--border-divider);margin:0 2px;flex-shrink:0}.timer-panel{position:fixed;top:16px;right:16px;width:260px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:16px;box-shadow:var(--shadow-lg);z-index:300;font-family:var(--font-ui);color:var(--text-primary);-webkit-user-select:none;user-select:none;overflow:hidden;animation:ui-enter .4s var(--ease-out)}.timer-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;cursor:grab;border-bottom:1px solid var(--border-divider)}.timer-header:active{cursor:grabbing}.timer-header-title{font-size:13px;font-weight:600}.timer-close-btn{background:none;border:none;color:var(--text-primary);cursor:pointer;padding:2px;border-radius:6px;display:flex;align-items:center;justify-content:center;opacity:.6;transition:opacity .12s,background .12s}.timer-close-btn:hover{opacity:1;background:var(--bg-hover)}.timer-body{padding:16px;display:flex;flex-direction:column;align-items:center;gap:12px}.timer-mode-toggle{display:flex;border:1px solid var(--border-medium);border-radius:8px;overflow:hidden;width:100%}.timer-mode-btn{flex:1;padding:6px 0;border:none;background:none;color:var(--text-primary);font-size:12px;font-weight:500;cursor:pointer;transition:background .15s,color .15s;font-family:var(--font-ui)}.timer-mode-btn.active{background:var(--accent);color:#fff}.timer-mode-btn:not(.active):hover{background:var(--bg-hover)}.timer-display-wrap{position:relative;width:140px;height:140px;display:flex;align-items:center;justify-content:center}.timer-progress-ring{position:absolute;top:0;left:0;width:100%;height:100%;transform:rotate(-90deg)}.timer-progress-bg{fill:none;stroke:var(--border-divider);stroke-width:4}.timer-progress-fg{fill:none;stroke:var(--accent);stroke-width:4;stroke-linecap:round;transition:stroke-dashoffset .3s linear}.timer-time{font-size:32px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:1px;z-index:1}.timer-time.flash{animation:timer-flash .4s ease-in-out 3}@keyframes timer-flash{0%,to{opacity:1}50%{opacity:.2}}.timer-presets{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;width:100%}.timer-preset-btn{padding:4px 10px;border:1px solid var(--border-medium);border-radius:8px;background:none;color:var(--text-primary);font-size:12px;cursor:pointer;transition:background .15s;font-family:var(--font-ui)}.timer-preset-btn:hover{background:var(--bg-hover)}.timer-preset-btn.active{border-color:var(--accent);background:var(--accent);color:#fff}.timer-custom-input{width:52px;padding:4px 6px;border:1px solid var(--border-medium);border-radius:8px;background:var(--bg-panel);color:var(--text-primary);font-size:12px;text-align:center;outline:none;font-family:var(--font-ui);transition:border-color .15s}.timer-custom-input:focus{border-color:var(--accent)}.timer-controls{display:flex;gap:8px;width:100%;justify-content:center}.timer-ctrl-btn{flex:1;max-width:80px;padding:8px 0;border:none;border-radius:10px;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s,transform .1s;display:flex;align-items:center;justify-content:center;gap:4px;font-family:var(--font-ui)}.timer-ctrl-btn:active{transform:scale(.94)}.timer-ctrl-btn.play{background:var(--accent);color:#fff}.timer-ctrl-btn.play:hover{opacity:.9}.timer-ctrl-btn.reset{background:var(--bg-hover);color:var(--text-primary)}.timer-ctrl-btn.reset:hover{background:var(--bg-active)}@media(max-width:480px){.timer-panel{width:200px;right:8px;top:8px}.timer-display-wrap{width:110px;height:110px}.timer-time{font-size:24px}.timer-preset-btn{padding:3px 7px;font-size:11px}}.voting-panel{position:fixed;top:80px;right:16px;width:300px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:16px;box-shadow:var(--shadow-lg);z-index:1000;display:flex;flex-direction:column;overflow:hidden;font-family:var(--font-ui);color:var(--text-primary);animation:ui-enter .4s var(--ease-out)}.voting-panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border-divider)}.voting-panel-header h3{margin:0;font-size:14px;font-weight:600}.voting-panel-close{background:none;border:none;cursor:pointer;font-size:18px;color:var(--text-muted);padding:2px 6px;border-radius:6px;line-height:1;transition:background .12s,color .12s}.voting-panel-close:hover{background:var(--bg-hover);color:var(--text-primary)}.voting-panel-body{padding:16px;display:flex;flex-direction:column;gap:12px;max-height:400px;overflow-y:auto}.voting-setup-row{display:flex;align-items:center;gap:8px;font-size:13px}.voting-setup-row label{flex:1}.voting-setup-row input[type=number]{width:60px;padding:4px 8px;border:1px solid var(--border-medium);border-radius:8px;font-size:13px;text-align:center;background:var(--bg-secondary);color:var(--text-primary);font-family:var(--font-ui)}.voting-btn{padding:8px 16px;border:none;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s;font-family:var(--font-ui)}.voting-btn:active{transform:scale(.96)}.voting-btn-primary{background:var(--accent);color:#fff}.voting-btn-primary:hover{opacity:.9}.voting-btn-danger{background:var(--danger-btn);color:#fff}.voting-btn-danger:hover{opacity:.9}.voting-btn-secondary{background:var(--bg-hover);color:var(--text-primary)}.voting-btn-secondary:hover{background:var(--bg-active)}.voting-status{font-size:13px;display:flex;flex-direction:column;gap:4px}.voting-status-remaining{font-weight:600;color:var(--accent)}.voting-actions{display:flex;gap:8px}.voting-results{display:flex;flex-direction:column;gap:8px}.voting-result-item{display:flex;flex-direction:column;gap:4px}.voting-result-header{display:flex;align-items:center;justify-content:space-between;font-size:13px}.voting-result-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.voting-result-count{font-weight:700;font-size:14px;min-width:24px;text-align:right}.voting-result-bar-bg{height:8px;background:var(--bg-hover);border-radius:4px;overflow:hidden}.voting-result-bar-fill{height:100%;border-radius:4px;background:var(--accent);transition:width .3s ease}.voting-result-voters{display:flex;gap:4px;flex-wrap:wrap}.voting-result-voter-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.voting-no-results{font-size:13px;color:var(--text-hint);text-align:center;padding:12px 0}.videochat-container{position:fixed;bottom:80px;right:16px;z-index:1000;display:flex;flex-direction:column;align-items:flex-end;gap:8px;pointer-events:none}.videochat-container>*{pointer-events:auto}.videochat-remotes{position:fixed;top:16px;right:16px;display:flex;flex-direction:row;gap:8px;z-index:1000;flex-wrap:wrap;max-width:80vw}.videochat-remote-wrap{position:relative;width:200px;height:150px;border-radius:14px;overflow:hidden;background:var(--bg-primary);box-shadow:var(--shadow-lg)}.videochat-remote-wrap video{width:100%;height:100%;object-fit:cover;border-radius:14px}.videochat-remote-name{position:absolute;bottom:6px;left:8px;color:#fff;font-size:12px;font-weight:500;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:2px 8px;border-radius:6px;max-width:80%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-ui)}.videochat-local-wrap{position:relative;width:160px;height:120px;border-radius:14px;overflow:hidden;background:var(--bg-primary);box-shadow:var(--shadow-lg)}.videochat-local-wrap video{width:100%;height:100%;object-fit:cover;border-radius:14px;transform:scaleX(-1)}.videochat-local-label{position:absolute;bottom:6px;left:8px;color:#fff;font-size:11px;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:2px 6px;border-radius:6px;font-family:var(--font-ui)}.videochat-controls{display:flex;gap:8px;padding:8px 12px;background:#1c1917d9;-webkit-backdrop-filter:blur(16px) saturate(160%);backdrop-filter:blur(16px) saturate(160%);border-radius:24px;box-shadow:var(--shadow-lg)}.videochat-ctrl-btn{width:40px;height:40px;border-radius:50%;border:none;background:#ffffff1a;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,transform .1s}.videochat-ctrl-btn:hover{background:#fff3}.videochat-ctrl-btn:active{transform:scale(.9)}.videochat-ctrl-btn.active{background:#ffffff40}.videochat-ctrl-btn.muted{background:#ff50504d}.videochat-ctrl-btn.hangup{background:var(--danger-btn)}.videochat-ctrl-btn.hangup:hover{background:var(--danger-btn-hover)}.videochat-join-wrap{position:fixed;bottom:80px;right:16px;z-index:1000}.videochat-join-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;border-radius:24px;border:none;background:#1c1917d9;-webkit-backdrop-filter:blur(16px) saturate(160%);backdrop-filter:blur(16px) saturate(160%);color:#fff;font-size:14px;font-weight:500;cursor:pointer;box-shadow:var(--shadow-lg);transition:background .15s,transform .1s;font-family:var(--font-ui)}.videochat-join-btn:hover{background:#1c1917f2}.videochat-join-btn:active{transform:scale(.96)}.videochat-participants{display:flex;gap:4px;padding:4px 8px;background:#0006;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:12px;font-size:11px;color:#fff}.videochat-participant-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.videochat-screenshare-badge{position:absolute;top:6px;right:8px;background:#3b82f6cc;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;font-size:10px;padding:2px 6px;border-radius:6px;font-family:var(--font-ui)}.videochat-error{position:fixed;bottom:140px;right:16px;background:#e53e3ee6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;padding:8px 36px 8px 16px;border-radius:10px;font-size:13px;z-index:1001;max-width:300px;animation:videochat-error-in .25s var(--ease-out);font-family:var(--font-ui)}.videochat-error-close{position:absolute;top:4px;right:6px;background:none;border:none;color:#fff;font-size:18px;cursor:pointer;opacity:.7;line-height:1;padding:0 4px}.videochat-error-close:hover{opacity:1}@keyframes videochat-error-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.videochat-remotes{top:8px;right:8px;flex-direction:column;max-width:50vw}.videochat-remote-wrap{width:140px;height:105px}.videochat-local-wrap{width:120px;height:90px}.videochat-controls{padding:6px 8px;gap:6px}.videochat-ctrl-btn{width:36px;height:36px}}.template-panel{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:640px;max-width:90vw;max-height:80vh;background:var(--bg-panel);border:1px solid var(--border-divider);border-radius:20px;box-shadow:var(--shadow-lg);z-index:2000;display:flex;flex-direction:column;overflow:hidden;font-family:var(--font-ui);color:var(--text-primary);animation:template-enter .3s var(--ease-out)}@keyframes template-enter{0%{opacity:0;transform:translate(-50%,-48%) scale(.97)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.template-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-divider)}.template-panel-header h3{margin:0;font-size:16px;font-weight:600}.template-panel-close{background:none;border:none;cursor:pointer;font-size:20px;color:var(--text-muted);padding:4px 8px;border-radius:8px;line-height:1;transition:background .12s,color .12s}.template-panel-close:hover{background:var(--bg-hover);color:var(--text-primary)}.template-categories{display:flex;gap:6px;padding:12px 20px;flex-wrap:wrap;border-bottom:1px solid var(--border-divider)}.template-cat-btn{padding:4px 12px;border:1px solid var(--border-medium);border-radius:16px;background:none;color:var(--text-primary);font-size:12px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s;font-family:var(--font-ui)}.template-cat-btn:hover{background:var(--bg-hover)}.template-cat-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;padding:16px 20px;overflow-y:auto}.template-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 12px;border:1px solid var(--border-divider);border-radius:14px;background:none;color:var(--text-primary);cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .1s;text-align:center;font-family:var(--font-ui)}.template-card:hover{border-color:var(--accent);box-shadow:0 2px 12px var(--accent-bg);transform:translateY(-2px)}.template-card-icon{font-size:32px;line-height:1}.template-card-name{font-size:13px;font-weight:600}.template-card-desc{font-size:11px;color:var(--text-muted);line-height:1.3}@media(max-width:480px){.template-panel{width:95vw}.template-grid{grid-template-columns:repeat(2,1fr);gap:8px;padding:12px}}.integration-panel{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:480px;max-width:90vw;background:var(--bg-panel);border:1px solid var(--border-divider);border-radius:20px;box-shadow:var(--shadow-lg);z-index:2000;display:flex;flex-direction:column;overflow:hidden;font-family:var(--font-ui);color:var(--text-primary);animation:integration-enter .3s var(--ease-out)}@keyframes integration-enter{0%{opacity:0;transform:translate(-50%,-48%) scale(.97)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.integration-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-divider)}.integration-panel-header h3{margin:0;font-size:16px;font-weight:600}.integration-panel-close{background:none;border:none;cursor:pointer;font-size:20px;color:var(--text-muted);padding:4px 8px;border-radius:8px;line-height:1;transition:background .12s,color .12s}.integration-panel-close:hover{background:var(--bg-hover);color:var(--text-primary)}.integration-panel-body{padding:20px;display:flex;flex-direction:column;gap:16px}.integration-field{display:flex;flex-direction:column;gap:4px}.integration-field label{font-size:13px;font-weight:500;color:var(--text-secondary)}.integration-field input{padding:8px 12px;border:1px solid var(--border-medium);border-radius:10px;background:var(--bg-secondary);color:var(--text-primary);font-size:14px;font-family:inherit;outline:none;transition:border-color .15s,box-shadow .15s}.integration-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.integration-field input::placeholder{color:var(--text-hint)}.integration-remember{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer;-webkit-user-select:none;user-select:none}.integration-remember input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--accent)}.integration-actions{display:flex;gap:10px;margin-top:4px}.integration-btn{flex:1;padding:10px 16px;border:none;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;transition:opacity .15s,transform .1s;font-family:inherit}.integration-btn:active{transform:scale(.96)}.integration-btn:disabled{opacity:.5;cursor:not-allowed}.integration-btn-primary{background:var(--accent);color:#fff}.integration-btn-primary:hover:not(:disabled){opacity:.9}.integration-btn-secondary{background:var(--bg-hover);color:var(--text-primary)}.integration-btn-secondary:hover:not(:disabled){background:var(--bg-active)}.integration-status{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:10px;font-size:13px;line-height:1.4}.integration-status-loading{background:var(--accent-bg);color:var(--accent)}.integration-status-success{background:var(--success-bg);color:var(--success-text)}.integration-status-error{background:var(--error-bg);color:var(--error-text)}.integration-spinner{width:16px;height:16px;border:2px solid var(--border-medium);border-top-color:var(--accent);border-radius:50%;animation:integration-spin .6s linear infinite}@keyframes integration-spin{to{transform:rotate(360deg)}}@media(max-width:480px){.integration-panel{width:95vw}.integration-actions{flex-direction:column}}.hotkey-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000;display:flex;align-items:center;justify-content:center;animation:hotkey-fade .2s ease-out}@keyframes hotkey-fade{0%{opacity:0}to{opacity:1}}.hotkey-panel{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:16px;box-shadow:var(--shadow-lg);padding:24px;max-width:680px;width:90vw;max-height:80vh;overflow-y:auto;animation:hotkey-pop .3s var(--spring);font-family:var(--font-ui)}@keyframes hotkey-pop{0%{opacity:0;transform:scale(.95) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.hotkey-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.hotkey-title{font-size:18px;font-weight:700;color:var(--text-primary);margin:0}.hotkey-close{width:32px;height:32px;border:none;background:transparent;border-radius:8px;cursor:pointer;color:var(--text-muted);display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.hotkey-close:hover{background:var(--bg-hover);color:var(--text-primary)}.hotkey-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.hotkey-section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin:0 0 8px}.hotkey-row{display:flex;align-items:center;justify-content:space-between;padding:5px 0}.hotkey-kbd{display:inline-block;padding:3px 8px;background:var(--bg-hover);border:1px solid var(--border-divider);border-radius:6px;font-size:11px;font-weight:600;color:var(--text-secondary);font-family:var(--font-ui);white-space:nowrap}.hotkey-desc{font-size:13px;color:var(--text-primary);text-align:right}@media(max-width:768px){.hotkey-grid{grid-template-columns:1fr;gap:16px}.hotkey-panel{padding:16px;max-height:85vh}}.board-canvas{width:100vw;height:100vh;display:block;touch-action:none}.text-editor{position:fixed;outline:none;resize:none;z-index:200;text-align:center;box-sizing:border-box;font-family:Inter,system-ui,sans-serif;overflow:hidden;word-wrap:break-word;white-space:pre-wrap}.text-editor-flex{display:flex;align-items:center;justify-content:center}.text-editor-content{outline:none;width:100%;max-height:100%;overflow:hidden;word-wrap:break-word;white-space:pre-wrap}.share-banner{position:fixed;top:12px;left:50%;transform:translate(-50%);padding:6px 18px;border-radius:8px;font-size:13px;font-weight:500;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;z-index:1000;pointer-events:none;box-shadow:0 2px 8px #0000001f}.share-banner-view{background:var(--warning-bg);color:#92400e;border:1px solid #fcd34d}.share-banner-edit{background:var(--success-bg);color:#065f46;border:1px solid #6ee7b7}.canvas-drop-active{outline:3px dashed var(--accent);outline-offset:-3px;position:relative}.canvas-drop-active:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--accent-bg);opacity:.3;pointer-events:none;z-index:10}.canvas-empty-state{position:fixed;top:50%;left:50%;transform:translate(-50%,-60%);display:flex;flex-direction:column;align-items:center;text-align:center;z-index:1;animation:empty-fade .6s var(--ease-out);font-family:var(--font-ui)}@keyframes empty-fade{0%{opacity:0;transform:translate(-50%,-55%)}to{opacity:1;transform:translate(-50%,-60%)}}.canvas-empty-title{margin:16px 0 4px;font-size:18px;font-weight:600;color:var(--text-muted)}.canvas-empty-hint{margin:0 0 20px;font-size:13px;color:var(--text-hint)}.canvas-empty-shortcuts{display:flex;gap:8px;font-size:12px;color:var(--text-hint)}.canvas-empty-shortcuts button{display:flex;align-items:center;gap:6px;padding:6px 14px;border:1px solid var(--border-medium);border-radius:8px;background:var(--bg-panel);color:var(--text-muted);font-size:12px;font-family:var(--font-ui);cursor:pointer;transition:background .15s,border-color .15s,color .15s,transform .1s}.canvas-empty-shortcuts button:hover{background:var(--bg-hover);border-color:var(--accent);color:var(--text-primary)}.canvas-empty-shortcuts button:active{transform:scale(.96)}.canvas-empty-shortcuts kbd{display:inline-block;padding:2px 7px;margin-right:4px;background:var(--bg-hover);border:1px solid var(--border-divider);border-radius:5px;font-size:11px;font-weight:600;color:var(--text-muted);font-family:var(--font-ui)}.save-indicator{position:fixed;bottom:12px;right:12px;display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;font-size:12px;font-weight:500;font-family:var(--font-ui);z-index:1000;pointer-events:none;animation:save-fade .3s var(--ease-out)}@keyframes save-fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.save-indicator-saving{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);color:var(--text-muted)}.save-indicator-saved{background:var(--success-bg);color:#065f46;border:1px solid #6ee7b7}[data-theme=dark] .save-indicator-saved{background:#065f464d;color:#6ee7b7;border-color:#6ee7b74d}.save-indicator-error{background:var(--error-bg);color:var(--error-text);border:1px solid #fca5a5}[data-theme=dark] .save-indicator-error{background:#dc262633;color:#fca5a5;border-color:#fca5a54d}.save-spinner{animation:save-spin .8s linear infinite}@keyframes save-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.cursor-status-toggle{position:fixed;bottom:68px;right:16px;width:36px;height:36px;border-radius:10px;border:1px solid var(--glass-border);background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--shadow-sm);font-size:18px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:100;transition:background .12s,transform .1s,box-shadow .12s;color:var(--text-hint)}.cursor-status-toggle:hover{background:var(--bg-hover);transform:scale(1.08)}.cursor-status-toggle:active{transform:scale(.95)}.cursor-status-toggle--active{color:unset;box-shadow:var(--shadow-md, 0 4px 12px rgba(0,0,0,.15))}.cursor-status-picker{position:fixed;bottom:112px;right:10px;display:flex;flex-direction:column;gap:4px;padding:6px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:12px;box-shadow:var(--shadow-md, 0 4px 16px rgba(0,0,0,.15));z-index:200;animation:ui-enter .2s var(--ease-out)}.cursor-status-btn{width:36px;height:36px;border:1px solid transparent;border-radius:8px;background:transparent;font-size:18px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s,transform .1s;color:var(--text-secondary)}.cursor-status-btn:hover{background:var(--bg-hover);transform:scale(1.1)}.cursor-status-btn:active{transform:scale(.95)}.cursor-status-btn.active{background:var(--accent-bg);border-color:var(--accent)}@media(max-width:768px){.text-editor{font-size:16px!important}.share-banner{top:8px;font-size:12px;padding:5px 12px}.save-indicator{bottom:8px;right:8px;font-size:11px}}.auth-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);font-family:var(--font-ui);z-index:10000}.auth-card{background:var(--bg-panel);border-radius:20px;box-shadow:var(--shadow-lg);padding:40px;width:100%;max-width:400px;margin:16px;animation:auth-enter .5s var(--ease-out)}@keyframes auth-enter{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.auth-title{margin:0 0 4px;font-size:28px;font-weight:700;color:var(--text-primary);text-align:center}.auth-subtitle{margin:0 0 28px;font-size:14px;color:var(--text-muted);text-align:center}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-field{display:flex;flex-direction:column;gap:6px}.auth-field label{font-size:13px;font-weight:600;color:var(--text-secondary)}.auth-field input{padding:10px 12px;border:1px solid var(--border-medium);border-radius:10px;font-size:14px;outline:none;transition:border-color .15s,box-shadow .15s;background:var(--bg-secondary);color:var(--text-primary);font-family:var(--font-ui)}.auth-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.auth-error{padding:10px 12px;background:var(--error-bg);border:1px solid var(--error-border);border-radius:10px;color:var(--error-text);font-size:13px}.auth-submit{padding:12px;background:var(--accent);color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s;margin-top:4px;font-family:var(--font-ui)}.auth-submit:hover:not(:disabled){opacity:.9}.auth-submit:active:not(:disabled){transform:scale(.97)}.auth-submit:disabled{opacity:.5;cursor:not-allowed}.auth-toggle{margin-top:20px;text-align:center;font-size:13px;color:var(--text-muted)}.auth-toggle button{background:none;border:none;color:var(--accent);font-size:13px;font-weight:600;cursor:pointer;padding:0;font-family:var(--font-ui)}.auth-toggle button:hover{text-decoration:underline}.auth-divider{display:flex;align-items:center;gap:12px;margin:8px 0;color:var(--text-hint);font-size:13px}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border-divider)}.auth-oauth-buttons{display:flex;gap:10px}.auth-oauth-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;border:1px solid var(--border-medium);border-radius:10px;background:var(--bg-panel);color:var(--text-primary);font-size:14px;font-weight:500;text-decoration:none;cursor:pointer;transition:background .15s,border-color .15s;font-family:var(--font-ui)}.auth-oauth-btn:hover{background:var(--bg-hover);border-color:var(--border-heavy)}@media(max-width:480px){.auth-card{padding:24px 20px;margin:12px;border-radius:16px}.auth-title{font-size:22px}.auth-field input{font-size:16px}}.dashboard{width:100vw;height:100vh;display:flex;flex-direction:column;background:var(--bg-secondary);font-family:var(--font-ui);overflow:hidden}.dash-header{display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:56px;background:var(--bg-panel);border-bottom:1px solid var(--border-divider);flex-shrink:0}.dash-logo{font-size:18px;font-weight:700;color:var(--text-primary);letter-spacing:-.3px}.dash-user{display:flex;align-items:center;gap:10px}.dash-avatar{width:32px;height:32px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.dash-username{font-size:13px;font-weight:500;color:var(--text-secondary)}.dash-user-menu-wrapper{position:relative}.dash-avatar-btn{display:flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;border:none;background:transparent;border-radius:20px;cursor:pointer;transition:background .15s;font-family:var(--font-ui);color:var(--text-secondary)}.dash-avatar-btn:hover{background:var(--bg-hover)}.dash-avatar-btn svg{opacity:.5;flex-shrink:0}.dash-user-dropdown{position:absolute;top:calc(100% + 6px);right:0;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:12px;box-shadow:var(--shadow-lg);padding:4px;min-width:180px;z-index:100;animation:dash-menu-enter .15s ease-out}@keyframes dash-menu-enter{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.dash-user-dropdown-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;background:transparent;border-radius:8px;font-size:13px;font-weight:500;color:var(--text-primary);cursor:pointer;font-family:var(--font-ui);transition:background .12s;text-align:left}.dash-user-dropdown-item:hover{background:var(--bg-hover)}.dash-user-dropdown-item svg{flex-shrink:0;color:var(--text-muted)}.dash-user-dropdown-logout{color:var(--text-muted)}.dash-user-dropdown-logout:hover{color:var(--error-text)}.dash-user-dropdown-logout:hover svg{color:var(--error-text)}.dash-main{flex:1;overflow-y:auto;padding:32px 48px;max-width:1200px;width:100%;margin:0 auto}.dash-topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.dash-title{font-size:24px;font-weight:700;color:var(--text-primary);margin:0}.dash-create-btn{display:flex;align-items:center;gap:6px;padding:10px 20px;background:var(--accent);color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s;font-family:var(--font-ui)}.dash-create-btn:hover{opacity:.9}.dash-create-btn:active{transform:scale(.96)}.dash-create-btn span{font-size:18px;line-height:1}.dash-controls{display:flex;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:wrap}.dash-controls-right{display:flex;align-items:center;gap:8px;margin-left:auto}.dash-search{flex:0 1 320px;min-width:200px;max-width:320px;padding:8px 14px;border:1px solid var(--border-medium);border-radius:10px;font-size:13px;outline:none;transition:border-color .15s,box-shadow .15s;background:var(--bg-panel);color:var(--text-primary);font-family:var(--font-ui)}.dash-search:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.dash-sort{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-muted)}.dash-sort select{padding:7px 10px;border:1px solid var(--border-medium);border-radius:8px;font-size:13px;background:var(--bg-panel);color:var(--text-primary);cursor:pointer;outline:none;font-family:var(--font-ui)}.dash-view-toggle{display:flex;border:1px solid var(--border-medium);border-radius:8px;overflow:hidden}.dash-view-toggle button{padding:6px 10px;background:var(--bg-panel);border:none;cursor:pointer;color:var(--text-muted);transition:all .15s;display:flex;align-items:center;justify-content:center}.dash-view-toggle button:first-child{border-right:1px solid var(--border-medium)}.dash-view-toggle button.active{background:var(--accent-bg);color:var(--accent)}.dash-view-toggle button:hover:not(.active){background:var(--bg-hover);color:var(--text-primary)}.dash-empty{text-align:center;padding:60px 20px;color:var(--text-muted);font-size:15px}@keyframes dash-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.dash-shimmer{background:linear-gradient(90deg,var(--bg-hover) 25%,var(--bg-active) 50%,var(--bg-hover) 75%);background-size:200% 100%;animation:dash-shimmer 1.5s ease-in-out infinite}.dash-skeleton-card{pointer-events:none}.dash-skeleton-preview{height:140px;border-radius:14px 14px 0 0}.dash-skeleton-line{border-radius:6px}.dash-skeleton-row{pointer-events:none}.dash-error{padding:10px 16px;background:var(--error-bg);color:var(--error-text);border-radius:10px;font-size:13px;margin-bottom:16px}.dash-rename-input{width:100%;padding:4px 8px;border:2px solid var(--accent);border-radius:8px;font-size:14px;font-weight:600;outline:none;font-family:inherit;background:var(--bg-panel);color:var(--text-primary);box-shadow:0 0 0 3px var(--accent-bg)}.dash-ctx-menu{position:absolute;top:100%;right:0;margin-top:4px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:12px;box-shadow:var(--shadow-lg);padding:4px;z-index:100;min-width:180px;animation:dash-menu-in .2s var(--spring)}@keyframes dash-menu-in{0%{opacity:0;transform:translateY(-4px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.dash-ctx-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;background:transparent;border-radius:8px;font-size:13px;color:var(--text-primary);cursor:pointer;transition:background .12s;font-family:inherit}.dash-ctx-item:hover{background:var(--bg-hover)}.dash-ctx-danger:hover{background:var(--error-bg);color:var(--error-text)}.dash-ctx-divider{height:1px;background:var(--border-divider);margin:4px 8px}.dash-list{background:var(--bg-panel);border-radius:14px;box-shadow:var(--shadow-sm);overflow:hidden}.dash-list-header{display:grid;grid-template-columns:1fr 140px 140px 48px;padding:10px 16px 10px 60px;border-bottom:1px solid var(--border-divider);font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px}.dash-list-row{display:grid;grid-template-columns:48px 1fr 140px 140px 48px;align-items:center;padding:12px 16px;cursor:pointer;transition:background .12s;border-bottom:1px solid var(--border-divider);position:relative}.dash-list-row:last-child{border-bottom:none}.dash-list-row:hover{background:var(--bg-hover)}.dash-lr-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:var(--bg-secondary);flex-shrink:0}.dash-lr-info{min-width:0;padding-right:16px}.dash-lr-name{font-size:14px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.dash-lr-meta{font-size:12px;color:var(--text-muted);margin-top:2px}.dash-lr-date{font-size:13px;color:var(--text-muted)}.dash-lr-owner{font-size:13px;color:var(--text-secondary)}.dash-lr-actions{display:flex;align-items:center;justify-content:center;position:relative}.dash-row-menu-btn{width:32px;height:32px;border:none;background:transparent;border-radius:8px;cursor:pointer;color:var(--text-muted);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s,background .15s}.dash-list-row:hover .dash-row-menu-btn{opacity:1}.dash-row-menu-btn:hover{background:var(--bg-active);color:var(--text-primary)}.dash-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px}.dash-card{background:var(--bg-panel);border-radius:14px;overflow:hidden;cursor:pointer;transition:box-shadow .2s,transform .15s;box-shadow:var(--shadow-sm);position:relative}.dash-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.dash-card-preview{height:140px;background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--border-divider)}.dash-card-thumb{width:80%;height:80%;opacity:.6}.dash-card-info{padding:12px 14px}.dash-card-name-row{display:flex;align-items:center;gap:4px;margin-bottom:4px}.dash-card-name{font-size:13px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.dash-card-date{font-size:11px;color:var(--text-muted)}.dash-card-actions{position:absolute;top:8px;right:8px}.dash-card-menu-btn{width:28px;height:28px;border-radius:8px;border:none;background:var(--glass-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s,color .15s}.dash-card:hover .dash-card-menu-btn{opacity:1}.dash-card-menu-btn:hover{color:var(--text-primary)}.back-to-boards{position:fixed;top:12px;left:60px;display:flex;align-items:center;gap:6px;padding:7px 14px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:10px;box-shadow:var(--shadow-sm);font-size:13px;font-weight:500;color:var(--text-primary);cursor:pointer;z-index:1000;transition:background .15s,transform .1s;font-family:var(--font-ui);animation:ui-enter .4s var(--ease-out)}.back-to-boards:hover{background:var(--bg-hover)}.back-to-boards:active{transform:scale(.96)}.dash-dragging{opacity:.4}.dash-drag-over{outline:2px dashed var(--accent);outline-offset:-2px;border-radius:14px}.dash-list-row.dash-drag-over{border-radius:0;background:var(--accent-bg)}.dash-onboarding-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg-overlay);display:flex;align-items:center;justify-content:center;z-index:10000;animation:fade-in .3s ease-out}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.dash-onboarding{background:var(--bg-panel);border-radius:20px;padding:36px;max-width:480px;width:90%;box-shadow:var(--shadow-lg);animation:auth-enter .5s var(--ease-out)}.dash-onboarding h2{font-size:24px;font-weight:700;color:var(--text-primary);margin:0 0 24px;text-align:center}.dash-onboarding-steps{display:flex;flex-direction:column;gap:20px;margin-bottom:28px}.dash-onboarding-step{display:flex;gap:16px;align-items:flex-start}.dash-onboarding-icon{width:48px;height:48px;border-radius:12px;background:var(--accent-bg);display:flex;align-items:center;justify-content:center;flex-shrink:0}.dash-onboarding-step strong{display:block;font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:4px}.dash-onboarding-step p{font-size:13px;color:var(--text-secondary);line-height:1.4;margin:0}.dash-onboarding-btn{width:100%;padding:12px;background:var(--accent);color:#fff;border:none;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;transition:opacity .15s;font-family:var(--font-ui)}.dash-onboarding-btn:hover{opacity:.9}@media(max-width:768px){.dash-header{padding:10px 12px}.dash-logo{font-size:16px}.dash-user{gap:6px}.dash-username{display:none}.dash-avatar{width:30px;height:30px;font-size:12px}.dash-main{padding:12px}.dash-topbar{flex-wrap:wrap;gap:8px}.dash-search{min-width:0;flex:1 1 100%;order:-1}.dash-controls{gap:6px}.dash-list-header{display:none}.dash-list-row{grid-template-columns:40px 1fr 48px;padding:10px 12px}.dash-lr-date,.dash-lr-owner{display:none}.dash-row-menu-btn{opacity:1}.dash-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.dash-card-menu-btn{opacity:1}.back-to-boards{top:8px;left:56px;padding:6px 10px;font-size:12px}}.miro-import-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg-overlay);display:flex;align-items:center;justify-content:center;z-index:1000;font-family:var(--font-ui)}.miro-import-dialog{background:var(--bg-panel);border-radius:20px;padding:24px;width:520px;max-width:90vw;max-height:80vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);animation:miro-dialog-enter .3s var(--ease-out)}@keyframes miro-dialog-enter{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.miro-import-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.miro-import-header h2{margin:0;font-size:18px;color:var(--text-primary)}.miro-import-close{background:none;border:none;font-size:20px;cursor:pointer;color:var(--text-muted);padding:4px 8px;border-radius:8px;transition:background .12s,color .12s}.miro-import-close:hover{background:var(--bg-hover);color:var(--text-primary)}.miro-import-step{margin-bottom:16px}.miro-import-step p{color:var(--text-secondary);font-size:13px;margin:0 0 12px;line-height:1.5}.miro-import-input{width:100%;padding:10px 12px;border:1px solid var(--border-medium);border-radius:10px;font-size:14px;background:var(--bg-secondary);color:var(--text-primary);box-sizing:border-box;font-family:var(--font-ui);transition:border-color .15s,box-shadow .15s}.miro-import-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.miro-import-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}.miro-import-btn{padding:8px 16px;border:none;border-radius:10px;font-size:14px;cursor:pointer;font-weight:500;transition:opacity .15s,transform .1s;font-family:var(--font-ui)}.miro-import-btn.primary{background:var(--accent);color:#fff}.miro-import-btn.primary:hover{opacity:.9}.miro-import-btn.primary:active{transform:scale(.96)}.miro-import-btn.primary:disabled{opacity:.5;cursor:default}.miro-import-btn.secondary{background:var(--bg-hover);color:var(--text-primary)}.miro-import-btn.secondary:hover{background:var(--bg-active)}.miro-board-list{overflow-y:auto;max-height:300px;border:1px solid var(--border-medium);border-radius:12px}.miro-board-item{display:flex;align-items:center;padding:10px 12px;cursor:pointer;border-bottom:1px solid var(--border-divider);gap:12px;transition:background .12s}.miro-board-item:last-child{border-bottom:none}.miro-board-item:hover{background:var(--bg-hover)}.miro-board-item.selected{background:var(--accent-bg)}.miro-board-item-name{flex:1;font-size:14px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.miro-board-item-date{font-size:12px;color:var(--text-muted);white-space:nowrap}.miro-board-item-check{width:18px;height:18px;border:2px solid var(--border-medium);border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .12s}.miro-board-item.selected .miro-board-item-check{background:var(--accent);border-color:var(--accent);color:#fff}.miro-import-error{color:#dc2626;font-size:13px;margin-top:8px}.miro-import-success{color:#16a34a;font-size:13px;margin-top:8px}.miro-import-loading{display:flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:14px;padding:20px 0}.miro-spinner{width:18px;height:18px;border:2px solid var(--border-medium);border-top-color:var(--accent);border-radius:50%;animation:miro-spin .8s linear infinite}@keyframes miro-spin{to{transform:rotate(360deg)}}.profile-page{width:100vw;height:100vh;background:var(--bg-secondary);font-family:var(--font-ui);overflow-y:auto}.profile-loading{display:flex;align-items:center;justify-content:center;height:100vh;font-size:16px;color:var(--text-muted)}.profile-header{display:flex;align-items:center;gap:16px;padding:16px 32px;background:var(--bg-panel);border-bottom:1px solid var(--border-divider)}.profile-header h1{font-size:18px;font-weight:600;margin:0;color:var(--text-primary)}.profile-back{padding:6px 14px;border:1px solid var(--border-medium);border-radius:10px;background:var(--bg-panel);color:var(--text-primary);font-size:13px;cursor:pointer;transition:background .15s,transform .1s;font-family:var(--font-ui)}.profile-back:hover{background:var(--bg-hover)}.profile-back:active{transform:scale(.96)}.profile-content{display:flex;max-width:900px;margin:32px auto;gap:32px;padding:0 24px}.profile-nav{display:flex;flex-direction:column;gap:2px;min-width:180px}.profile-nav-item{text-align:left;padding:10px 16px;border:none;border-radius:10px;background:transparent;color:var(--text-secondary);font-size:14px;cursor:pointer;transition:background .15s;font-family:var(--font-ui)}.profile-nav-item:hover:not(:disabled){background:var(--bg-hover)}.profile-nav-item.active{background:var(--accent-bg);color:var(--accent);font-weight:600}.profile-nav-item:disabled{opacity:.4;cursor:default}.profile-main{flex:1;background:var(--bg-panel);border-radius:16px;padding:32px;box-shadow:var(--shadow-sm)}.profile-avatar-section{display:flex;align-items:center;gap:16px;margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid var(--border-divider)}.profile-avatar{width:64px;height:64px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;flex-shrink:0}.profile-avatar-name{font-size:18px;font-weight:600;color:var(--text-primary)}.profile-avatar-email{font-size:13px;color:var(--text-muted);margin-top:2px}.profile-section{margin-bottom:32px}.profile-section h2{font-size:15px;font-weight:600;color:var(--text-primary);margin:0 0 16px}.profile-label{display:block;font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:6px}.profile-input{display:block;width:100%;padding:10px 14px;border:1px solid var(--border-medium);border-radius:10px;font-size:14px;color:var(--text-primary);background:var(--bg-panel);margin-bottom:16px;box-sizing:border-box;transition:border-color .15s,box-shadow .15s;font-family:var(--font-ui)}.profile-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.profile-input:disabled{background:var(--bg-secondary);color:var(--text-hint);cursor:not-allowed}.profile-actions{display:flex;align-items:center;gap:12px;margin-top:4px}.profile-save-btn{padding:10px 24px;background:var(--accent);color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s;font-family:var(--font-ui)}.profile-save-btn:hover:not(:disabled){opacity:.9}.profile-save-btn:active:not(:disabled){transform:scale(.96)}.profile-save-btn:disabled{opacity:.5;cursor:default}.profile-msg{font-size:13px;color:var(--success-text);font-weight:500}.profile-msg.error{color:var(--error-text)}.profile-lang-switcher{display:flex;gap:8px}.profile-lang-btn{padding:8px 20px;border:1px solid var(--border-medium);border-radius:8px;background:var(--bg-primary);color:var(--text-primary);font-size:14px;font-weight:500;font-family:var(--font-ui);cursor:pointer;transition:border-color .15s,background .15s}.profile-lang-btn:hover{border-color:var(--accent);background:var(--bg-hover)}.profile-lang-btn.active{border-color:var(--accent);background:var(--accent-bg);color:var(--accent);font-weight:600}.profile-hint{font-size:13px;color:var(--text-muted);margin:0 0 12px}.profile-miro-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border:1px solid var(--border-medium);border-radius:10px;background:var(--bg-panel);color:var(--text-primary);font-size:14px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,transform .1s;font-family:var(--font-ui)}.profile-miro-btn:hover{background:var(--bg-hover);border-color:var(--accent)}.profile-miro-btn:active{transform:scale(.96)}@media(max-width:700px){.profile-content{flex-direction:column;gap:16px}.profile-nav{flex-direction:row;min-width:unset;overflow-x:auto}}:root{--bg-primary: #ffffff;--bg-secondary: #fafaf9;--bg-hover: #f5f5f4;--bg-active: #e7e5e4;--bg-panel: #ffffff;--bg-overlay: rgba(0, 0, 0, .2);--text-primary: #1c1917;--text-secondary: #57534e;--text-muted: #78716c;--text-hint: #a8a29e;--border-light: rgba(0, 0, 0, .06);--border-medium: #d6d3d1;--border-divider: #e7e5e4;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08), 0 0 0 1px rgba(0, 0, 0, .04);--shadow-md: 0 4px 16px rgba(0, 0, 0, .08), 0 0 0 1px rgba(0, 0, 0, .04);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .12), 0 0 0 1px rgba(0, 0, 0, .04);--canvas-bg: #fafaf9;--canvas-dot: #d6d3d1;--accent: #3b82f6;--accent-bg: rgba(59, 130, 246, .1);--accent-hover: rgba(59, 130, 246, .15);--error-bg: #fef2f2;--error-border: #fecaca;--error-text: #dc2626;--success-bg: #ecfdf5;--success-border: #a7f3d0;--success-text: #16a34a;--warning-bg: #fef3c7;--warning-border: #fde68a;--warning-text: #d97706;--info-bg: #eff6ff;--info-border: #bfdbfe;--info-text: #2563eb;--danger-btn: #ef4444;--danger-btn-hover: #dc2626;--online-dot: #22c55e;--glass-bg: rgba(255, 255, 255, .72);--glass-border: rgba(255, 255, 255, .5);--glass-blur: blur(20px) saturate(180%);--spring: cubic-bezier(.34, 1.56, .64, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--font-ui: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif}[data-theme=dark]{--bg-primary: #1c1917;--bg-secondary: #171412;--bg-hover: #292524;--bg-active: #44403c;--bg-panel: #1c1917;--bg-overlay: rgba(0, 0, 0, .5);--text-primary: #e7e5e4;--text-secondary: #a8a29e;--text-muted: #78716c;--text-hint: #57534e;--border-light: rgba(255, 255, 255, .06);--border-medium: #44403c;--border-divider: #292524;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .2), 0 0 0 1px rgba(255, 255, 255, .04);--shadow-md: 0 4px 16px rgba(0, 0, 0, .25), 0 0 0 1px rgba(255, 255, 255, .04);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .35), 0 0 0 1px rgba(255, 255, 255, .04);--canvas-bg: #171412;--canvas-dot: #44403c;--accent: #60a5fa;--accent-bg: rgba(96, 165, 250, .12);--accent-hover: rgba(96, 165, 250, .18);--glass-bg: rgba(28, 25, 23, .78);--glass-border: rgba(255, 255, 255, .08);--glass-blur: blur(20px) saturate(160%);--error-bg: #3b1111;--error-border: #7f1d1d;--error-text: #fca5a5;--success-bg: #052e16;--success-border: #166534;--success-text: #86efac;--warning-bg: #451a03;--warning-border: #92400e;--warning-text: #fcd34d;--info-bg: #1e1b4b;--info-border: #3730a3;--info-text: #93c5fd;--danger-btn: #ef4444;--danger-btn-hover: #f87171;--online-dot: #22c55e}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow:hidden;font-family:var(--font-ui)}.glass-surface{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border)}.shared-loading{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px;width:100vw;height:100vh;font-family:var(--font-ui);font-size:15px;color:var(--text-muted);background:var(--bg-secondary)}.shared-loading:before{content:"";width:28px;height:28px;border:2.5px solid var(--border-medium);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.shared-error-screen{display:flex;align-items:center;justify-content:center;width:100vw;height:100vh;background:var(--bg-secondary);font-family:var(--font-ui)}.shared-error-card{background:var(--bg-primary);border-radius:16px;box-shadow:var(--shadow-lg);padding:32px 40px;text-align:center;max-width:400px}.shared-error-card h2{margin:0 0 8px;font-size:20px;font-weight:600;color:var(--text-primary)}.shared-error-card p{margin:0 0 20px;font-size:14px;color:var(--text-muted);line-height:1.5}.shared-error-card button{padding:10px 24px;background:var(--accent);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:opacity .15s;font-family:var(--font-ui)}.shared-error-card button:hover{opacity:.9}.shared-error-card button:active{transform:scale(.97)}.user-menu{position:fixed;top:12px;right:12px;display:flex;align-items:center;gap:8px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:12px;box-shadow:var(--shadow-sm);padding:6px 12px;z-index:1000;font-family:var(--font-ui);animation:ui-enter .4s var(--ease-out)}@keyframes ui-enter{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.user-name{font-size:13px;font-weight:500;color:var(--text-primary)}.logout-btn{padding:4px 10px;background:none;border:1px solid var(--border-medium);border-radius:6px;font-size:12px;font-weight:500;color:var(--text-muted);cursor:pointer;transition:all .15s;font-family:var(--font-ui)}.logout-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-medium)}.logout-btn:active{transform:scale(.96)}@media(max-width:768px){.user-menu{top:8px;right:8px;padding:5px 8px;gap:6px}.user-name{display:none}.logout-btn{font-size:11px;padding:4px 8px}}
