@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";:root{--bg-color:#f8fafc;--text-primary:#0f172a;--text-secondary:#475569;--bento-bg:#fff;--bento-border:#0000000a;--bento-shadow:0 10px 40px #0000000a, 0 2px 10px #00000005;--bento-radius:24px;--accent-color:#0ea5e9;--accent-hover:#0284c7;--border-color:#e2e8f0;--mesh-bg:var(--bg-color);--nav-bg:#ffffffb3;--sidebar-bg:#fff}body.dark-theme{--bg-color:#09090b;--text-primary:#f8fafc;--text-secondary:#a1a1aa;--bento-bg:#18181b;--bento-border:#ffffff0d;--bento-shadow:0 20px 40px #00000080, 0 4px 12px #0000004d;--border-color:#27272a;--accent-color:#8b5cf6;--accent-hover:#7c3aed;--mesh-bg:radial-gradient(circle at 15% 50%, #8b5cf60d, transparent 25%), radial-gradient(circle at 85% 30%, #10b98108, transparent 25%), var(--bg-color);--nav-bg:#18181bb3;--sidebar-bg:#18181b}body.dark-theme input,body.dark-theme select,body.dark-theme textarea{color:var(--text-primary);border-color:var(--border-color);background-color:#0000004d}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--mesh-bg);color:var(--text-primary);background-attachment:fixed;flex-direction:column;min-height:100vh;font-family:Inter,system-ui,-apple-system,sans-serif;transition:background .5s,color .5s;display:flex}#root{width:100%}.top-navbar{z-index:100;background:var(--nav-bg);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--bento-border);justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex;position:sticky;top:0;box-shadow:0 4px 30px #0000000d}.navbar-logo{align-items:center;display:flex}.navbar-nav{align-items:center;gap:.5rem;display:flex;overflow-x:auto}.navbar-nav::-webkit-scrollbar{display:none}.nav-btn{color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:12px;align-items:center;gap:.5rem;padding:.6rem 1rem;font-size:.9rem;font-weight:500;transition:all .3s cubic-bezier(.16,1,.3,1);display:flex}.nav-btn:hover{color:var(--text-primary);background:#ffffff0d}.nav-btn.active{color:var(--accent-color);background:#8b5cf61a;box-shadow:inset 0 0 0 1px #8b5cf633}:root:not(.dark-theme) .nav-btn.active{background:#0ea5e91a;box-shadow:inset 0 0 0 1px #0ea5e933}.navbar-user{align-items:center;gap:1rem;display:flex}.admin-actions{border-right:1px solid var(--border-color);gap:.5rem;padding-right:1rem;display:flex}.user-info{flex-direction:column;align-items:flex-end;display:flex}.username{font-size:.9rem;font-weight:600}.icon-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:.5rem;transition:all .2s;display:flex}.icon-btn:hover{background:var(--border-color);color:var(--text-primary);transform:translateY(-2px)}.logout-btn:hover{color:#ef4444;background:#ef44441a}.dashboard-layout{flex-direction:column;width:100%;min-height:100vh;display:flex}.dashboard-content-wrapper{flex:1;display:flex;position:relative;overflow:hidden}.sidebar-container{background:var(--sidebar-bg);border-right:1px solid var(--border-color);flex-direction:column;flex-shrink:0;transition:width .3s cubic-bezier(.16,1,.3,1),opacity .3s;display:flex;position:relative;overflow:hidden auto}.sidebar-container.open{opacity:1;width:280px}.sidebar-container.closed{opacity:0;pointer-events:none;width:0}.sidebar-header{color:var(--text-primary);align-items:center;gap:.75rem;padding:1.5rem 1.5rem 1rem;font-size:1.1rem;font-weight:700;display:flex}.sidebar-icon{color:var(--accent-color)}.sidebar-nav{flex-direction:column;gap:.25rem;padding:0 1rem 2rem;display:flex}.sidebar-btn{width:100%;color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:12px;align-items:center;gap:.75rem;padding:.75rem 1rem;font-weight:500;transition:all .2s;display:flex}.sidebar-btn.nested{padding-left:2rem;font-size:.9rem}.sidebar-btn:hover{color:var(--text-primary);background:#ffffff0d}.sidebar-btn:active{transition:transform .1s;transform:scale(.95)}.sidebar-btn.active{color:var(--accent-color);background:#8b5cf61a;font-weight:600;animation:.4s ease-out pulse-glow}@keyframes pulse-glow{0%{box-shadow:0 0 #8b5cf666}70%{box-shadow:0 0 0 10px #8b5cf600}to{box-shadow:0 0 #8b5cf600}}:root:not(.dark-theme) .sidebar-btn.active{background:#0ea5e91a}.sidebar-board-icon{object-fit:contain;border-radius:8px;width:48px;height:48px}.sidebar-board-icon.small{width:40px;height:40px}.sidebar-board-icon-fallback{color:var(--text-secondary)}.sidebar-btn.active .sidebar-board-icon-fallback{color:var(--accent-color)}.sidebar-board-name{white-space:nowrap;text-overflow:ellipsis;flex-grow:1;overflow:hidden}.sidebar-group-btn{width:100%;color:var(--text-primary);cursor:pointer;background:0 0;border:none;border-radius:12px;justify-content:space-between;align-items:center;padding:.75rem 1rem;font-weight:700;transition:all .2s;display:flex}.sidebar-group-btn:hover{background:#ffffff08}.sidebar-group-items{flex-direction:column;gap:.25rem;margin-top:.25rem;display:flex}.sidebar-divider{background:var(--border-color);height:1px;margin:1rem 0}.upload-icon-label{cursor:pointer;color:var(--text-secondary);align-items:center;display:flex}.upload-icon-label:hover{color:var(--accent-color)}.dashboard-main-content{flex:1;width:100%;max-width:1600px;margin:0 auto;padding:2rem;transition:padding-left .3s}.bento-item{background-color:var(--bento-bg);border:1px solid var(--bento-border);border-radius:var(--bento-radius);box-shadow:var(--bento-shadow);touch-action:none;flex-direction:column;padding:1.5rem;transition:all .4s cubic-bezier(.16,1,.3,1);animation:.6s cubic-bezier(.16,1,.3,1) backwards scaleIn;display:flex;position:relative;overflow:hidden}.bento-item:first-child{animation-delay:50ms}.bento-item:nth-child(2){animation-delay:.1s}.bento-item:nth-child(3){animation-delay:.15s}.bento-item:nth-child(4){animation-delay:.2s}.bento-item:nth-child(5){animation-delay:.25s}.bento-item:hover{transform:translateY(-4px)scale(1.01);box-shadow:0 25px 50px #00000014,0 10px 20px #0000000a}body.dark-theme .bento-item:hover{border-color:#0000;box-shadow:0 30px 60px #0009,0 15px 30px #0006,0 0 0 1px #8b5cf633}.bento-item.dragging{opacity:.7;z-index:50;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);transform:scale(1.05);box-shadow:0 40px 80px -20px #00000080}.widget-title{color:var(--text-primary);letter-spacing:-.01em;align-items:center;gap:.6rem;margin-bottom:1.2rem;font-size:1.15rem;font-weight:700;display:flex}input,textarea,select{border:1px solid var(--border-color);background-color:#ffffff80;border-radius:12px;outline:none;width:100%;padding:.75rem 1rem;font-family:inherit;font-size:.95rem;transition:all .3s cubic-bezier(.4,0,.2,1)}input:focus,textarea:focus,select:focus{border-color:var(--accent-color);background-color:var(--bento-bg);box-shadow:0 0 0 4px #8b5cf626}button{font-family:inherit;transition:all .2s cubic-bezier(.4,0,.2,1)}button:active{transform:scale(.96)}.primary-btn{background:var(--accent-color);color:#000;cursor:pointer;border:none;border-radius:8px;padding:.7rem 1.2rem;font-weight:600;box-shadow:0 4px 14px #8b5cf64d}.primary-btn:hover{background:var(--accent-hover);box-shadow:0 6px 20px #8b5cf666}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background:#0009;justify-content:center;align-items:center;animation:.3s fadeIn;display:flex;position:fixed;inset:0}.modal-content{background:var(--bento-bg);border:1px solid var(--bento-border);border-radius:20px;width:90%;max-width:400px;padding:2rem;animation:.3s cubic-bezier(.16,1,.3,1) scaleIn;box-shadow:0 25px 50px -12px #00000080}.modal-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.close-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none}.modal-form{flex-direction:column;gap:1.2rem;display:flex}.error-msg{color:#ef4444;font-size:.85rem}.success-msg{color:#22c55e;font-size:.85rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.w-full{width:100%}.h-full{height:100%}@media (width<=768px){.top-navbar{flex-wrap:wrap;gap:1rem;padding:1rem}.navbar-nav{order:3;width:100%;padding-bottom:.5rem}.admin-actions{border-right:none}.dashboard-main-content{padding:1rem}.sidebar-container.open{z-index:90;height:calc(100vh - 120px);position:fixed;box-shadow:10px 0 30px #00000080}}.react-grid-layout{transition:height .2s;position:relative}.react-grid-item{transition:left .2s,top .2s,width .2s,height .2s}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{z-index:1;will-change:width, height;transition:none}.react-grid-item.react-draggable-dragging{z-index:3;will-change:transform;transition:none}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{opacity:.2;z-index:2;-webkit-user-select:none;user-select:none;background:red;transition-duration:.1s}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{opacity:0;width:20px;height:20px;position:absolute}.react-grid-item:hover>.react-resizable-handle{opacity:1}.react-grid-item>.react-resizable-handle:after{content:"";border-bottom:2px solid #0006;border-right:2px solid #0006;width:5px;height:5px;position:absolute;bottom:3px;right:3px}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{cursor:sw-resize;bottom:0;left:0;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{cursor:se-resize;bottom:0;right:0}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{cursor:nw-resize;top:0;left:0;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{cursor:ne-resize;top:0;right:0;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{cursor:ew-resize;margin-top:-10px;top:50%}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{cursor:ns-resize;margin-left:-10px;left:50%}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.react-resizable{position:relative}.react-resizable-handle{box-sizing:border-box;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+);background-position:100% 100%;background-repeat:no-repeat;background-origin:content-box;width:20px;height:20px;padding:0 3px 3px 0;position:absolute}.react-resizable-handle-sw{cursor:sw-resize;bottom:0;left:0;transform:rotate(90deg)}.react-resizable-handle-se{cursor:se-resize;bottom:0;right:0}.react-resizable-handle-nw{cursor:nw-resize;top:0;left:0;transform:rotate(180deg)}.react-resizable-handle-ne{cursor:ne-resize;top:0;right:0;transform:rotate(270deg)}.react-resizable-handle-w,.react-resizable-handle-e{cursor:ew-resize;margin-top:-10px;top:50%}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{cursor:ns-resize;margin-left:-10px;left:50%}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}
