:root{--transition:all .3s cubic-bezier(.25, .8, .25, 1);--transition-fast:all .2s ease;--transition-slow:all .5s ease}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background-image:linear-gradient(0deg,#eee 1px,transparent 0),linear-gradient(90deg,#eee 1px,transparent 0);background-size:30px 30px;color:#333;min-height:100dvh;overflow:hidden}body.is-mobile{overflow-y:auto}#board{position:relative;width:100vw;height:100dvh;overflow:hidden}body.is-mobile #board{height:auto;min-height:100dvh}.card{position:absolute;width:220px;border-radius:12px;box-shadow:0 16px 35px #0003;background:#fff;border:1px solid rgba(0,0,0,.08);overflow:hidden;transform-origin:center;transition:transform .35s ease,opacity .35s ease,left .35s ease,top .35s ease,width .35s ease,height .35s ease,border-radius .35s ease}.card.dragging{transition:none;box-shadow:0 22px 45px #00000059}.card.maximized{box-shadow:0 28px 60px #0006}.card-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:#ffffffb3;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none}.card-header.dragging{cursor:grabbing}.window-controls{display:flex;align-items:center;gap:6px}.window-controls .control{position:relative;width:12px;height:12px;border-radius:50%;border:1px solid rgba(0,0,0,.08);background:#ccc;cursor:pointer;outline:0;padding:0;display:inline-flex;align-items:center;justify-content:center}.window-controls .control.close{background:#ff5f57;border-color:#e0443e}.window-controls .control.minimize{background:#febb2e;border-color:#dea123}.window-controls .control.maximize{background:#28c840;border-color:#1aab2c}.window-controls .control:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:0;transition:opacity .2s ease}.card-header:hover .window-controls .control:after{opacity:.8}.window-controls .control.close:after{content:"×";width:auto;height:auto;background:0 0;font-size:10px;line-height:1;font-weight:700;color:#000000b3}.window-controls .control.minimize:after{width:6px;height:2px;background:#0009}.window-controls .control.maximize:after{width:6px;height:6px;background:linear-gradient(45deg,rgba(0,0,0,.6)0,rgba(0,0,0,.6) 45%,transparent 45%,transparent 55%,rgba(0,0,0,.6) 55%,rgba(0,0,0,.6) 100%)}.window-controls .control.delete{background:#ab47bc;border-color:#8e24aa}body:not(.admin-mode) .window-controls .control.delete{display:none}.window-controls .control.delete:after{content:"🗑";width:auto;height:auto;background:0 0;font-size:8px;line-height:1}.card-title{font-size:13px;font-weight:600;color:#0000008c;padding-left:10px;flex:1}.card-body{padding:16px;font-size:16px;line-height:1.4;font-weight:600;color:#000000b8}@media (max-width:768px){.card{width:180px;border-radius:10px}.card-body{padding:14px;font-size:14px}.card-title{font-size:12px}}.github-corner{position:fixed;top:0;left:0;border:0;transform:scaleX(-1);z-index:1000}.github-corner:hover svg{fill:var(--primary-dark)}.github-corner svg{fill:var(--primary-color);color:#fff;transition:var(--transition)}.github-corner:hover .octo-arm{animation:octocat-wave .56s ease-in-out}@keyframes octocat-wave{0%,to{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}#note-input-container{position:fixed;left:50%;bottom:40px;transform:translate(-50%);display:flex;gap:10px;align-items:center;background:#ffffff4d;backdrop-filter:blur(10px);padding:10px 16px;border-radius:16px;box-shadow:0 4px 15px #0000001a;z-index:1000001;transition:all .3s ease}#note-input{flex:1;font-size:16px;padding:10px 14px;border:1px solid rgba(255,255,255,.5);border-radius:12px;outline:0;background:#ffffff40;color:#333;min-width:280px;box-shadow:inset 0 2px 4px #ffffff4d;transition:all .2s ease}#note-input::-moz-placeholder{color:#0006}#note-input::placeholder{color:#0006}#note-input:focus{background:#ffffff80;border-color:#0003}#note-submit{font-size:16px;padding:10px 18px;border:0;border-radius:12px;cursor:pointer;white-space:nowrap;background:#4caf50b3;color:#fff;backdrop-filter:blur(6px);transition:all .25s ease;box-shadow:0 2px 6px #4caf504d}#note-submit:hover{background:#4caf50e6;transform:translateY(-1px);box-shadow:0 4px 10px #4caf5066}#note-submit:active{transform:translateY(0);box-shadow:0 2px 6px #4caf504d}#top-link-container{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:1000002}#top-link-container .top-link-button{display:inline-flex;align-items:center;justify-content:center;padding:10px 20px;border-radius:16px;border:1px solid rgba(255,255,255,.5);background:#ffffff59;color:#000000b8;font-size:16px;font-weight:600;text-decoration:none;box-shadow:0 4px 12px #0000001f;backdrop-filter:blur(10px);transition:all .25s ease}#top-link-container .top-link-button .top-link-icon{width:18px;height:18px;margin-right:8px;display:inline-flex;align-items:center;justify-content:center;fill:#4caf50cc;transition:transform .25s ease,fill .25s ease}#top-link-container .top-link-button:hover{background:#ffffff8c;transform:translateY(-2px);box-shadow:0 6px 18px #0000002e}#top-link-container .top-link-button:hover .top-link-icon{transform:scale(1.1);fill:#4caf50}#top-link-container .top-link-button:active{transform:translateY(0);box-shadow:0 3px 10px #00000026}#stats-panel{position:fixed;top:20px;right:20px;z-index:1000002;display:flex;align-items:center;gap:12px;padding:10px 16px;border-radius:16px;border:1px solid rgba(255,255,255,.5);background:#ffffff59;backdrop-filter:blur(10px);box-shadow:0 4px 12px #0000001f;font-size:14px;font-weight:600;color:#000000b8;-webkit-user-select:none;-moz-user-select:none;user-select:none}#stats-panel .stat-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#4caf50;margin-right:6px;animation:statPulse 2s infinite}@keyframes statPulse{0%,to{box-shadow:0 0 0 3px #4caf5040}50%{box-shadow:0 0 0 6px #4caf5014}}#stats-panel .stat-divider{width:1px;height:14px;background:#00000026}@media (max-width:768px){#stats-panel{top:12px;right:12px;padding:8px 12px;font-size:12px;gap:8px}}#login-btn{font-size:15px;padding:10px 14px;border:1px solid rgba(33,150,243,.4);border-radius:12px;cursor:pointer;background:#2196f38c;color:#fff;backdrop-filter:blur(6px);transition:all .25s ease;box-shadow:0 2px 6px #2196f34d;max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#login-btn:hover{background:#2196f3cc;transform:translateY(-1px)}#login-btn.logged-in{background:#ffffff59;color:#000000b8;border-color:#ffffff80}#login-overlay{position:fixed;inset:0;background:#0000004d;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000000;opacity:0;pointer-events:none;transition:opacity .25s ease}#login-overlay.open{opacity:1;pointer-events:auto}#login-dialog{width:350px;max-width:calc(100vw - 32px);background:#fffc;backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.6);border-radius:20px;box-shadow:0 24px 60px #00000040;padding:24px;transform:translateY(14px) scale(.97);transition:transform .25s ease}#login-overlay.open #login-dialog{transform:translateY(0) scale(1)}#login-dialog h3{font-size:18px;color:#000000c7;margin-bottom:14px;text-align:center}#top-link-container button.top-link-button{font-family:inherit;cursor:pointer}#wordcloud-overlay{position:fixed;inset:0;background:#00000059;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2100000;opacity:0;pointer-events:none;transition:opacity .25s ease}#wordcloud-overlay.open{opacity:1;pointer-events:auto}#wordcloud-dialog{width:min(900px,calc(100vw - 32px));background:#ffffffeb;backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.6);border-radius:20px;box-shadow:0 24px 60px #00000040;padding:20px;transform:translateY(14px) scale(.97);transition:transform .25s ease}#wordcloud-overlay.open #wordcloud-dialog{transform:translateY(0) scale(1)}.wordcloud-header{display:flex;align-items:center;margin-bottom:12px}.wordcloud-header h3{font-size:18px;color:#000000c7;flex:1}#wordcloud-close{width:32px;height:32px;border:0;border-radius:50%;background:#0000000f;color:#0009;font-size:18px;line-height:1;cursor:pointer;transition:all .2s ease}#wordcloud-close:hover{background:#0000001f}#wordcloud-canvas{display:block;width:100%;border-radius:12px;background:#fff6}#wordcloud-empty{display:none;text-align:center;padding:60px 0;font-size:15px;color:#00000073}#toast{position:fixed;left:50%;top:24px;transform:translate(-50%,-12px);background:#000000bf;color:#fff;font-size:14px;padding:10px 18px;border-radius:12px;box-shadow:0 8px 24px #0003;opacity:0;pointer-events:none;transition:all .3s ease;z-index:3000000;max-width:calc(100vw - 48px)}#toast.show{opacity:1;transform:translate(-50%)}#login-profile{display:none;text-align:center}#login-profile .profile-avatar{width:64px;height:64px;border-radius:50%;-o-object-fit:cover;object-fit:cover;border:3px solid rgba(255,255,255,.9);box-shadow:0 4px 12px #00000026;margin-bottom:10px}#login-profile .profile-avatar-fallback{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,#42a5f5,#7e57c2);color:#fff;font-size:26px;font-weight:600;line-height:64px;margin:0 auto 10px}#login-profile .profile-nick{font-size:17px;font-weight:700;color:#000c}#login-profile .profile-email{font-size:13px;color:#00000073;margin-top:4px}#login-profile .profile-badge{display:inline-block;margin-top:8px;font-size:12px;padding:3px 10px;border-radius:999px;background:#2196f31f;color:#1e88e5;font-weight:600}#login-profile .profile-badge.admin{background:#ab47bc1f;color:#8e24aa}#login-logout{width:100%;margin-top:16px;font-size:15px;padding:11px 0;border:0;border-radius:12px;cursor:pointer;background:#e5393514;color:#e53935;font-weight:600;transition:all .2s ease}#login-logout:hover{background:#e5393526}