.board-container,.collab-admin-page{min-height:100vh;position:relative;overflow-x:hidden;background:var(--background);color:var(--foreground)}.board-header,.admin-header{position:sticky;top:0;z-index:50;background:oklch(from var(--background) l c h / .8);backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid var(--border);box-shadow:0 4px 24px oklch(from var(--foreground) l c h / .05)}.admin-header{z-index:40}.board-header-inner,.header-content{display:flex;align-items:center;justify-content:space-between;max-width:1400px;margin:0 auto;padding:1.25rem 2rem}.board-header-left,.header-title{display:flex;align-items:center;gap:1rem}.header-logo{display:flex;align-items:center}.board-modal-overlay,.modal-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:oklch(from var(--background) l c h / .8);backdrop-filter:blur(12px);animation:fadeIn .3s ease-out}.modal-overlay{z-index:50}.board-modal,.modal-card{width:100%;max-width:500px;background:var(--card);border:1px solid var(--border);border-radius:20px;box-shadow:0 24px 64px oklch(from var(--foreground) l c h / .2),0 0 0 1px oklch(from var(--primary) l c h / .1) inset;animation:scaleIn .4s cubic-bezier(.34,1.56,.64,1)}.board-modal-header,.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 2rem;border-bottom:1px solid var(--border)}.modal-header{padding:2rem}.board-modal-close,.modal-close{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:1px solid var(--border);color:var(--muted-foreground);cursor:pointer;border-radius:8px;transition:all .2s cubic-bezier(.4,0,.2,1)}.board-modal-close:hover,.modal-close:hover{background:var(--muted);color:var(--foreground);transform:rotate(90deg)}.modal-close svg{width:20px;height:20px}.board-edit-input,.premium-input{width:100%;padding:.875rem 1.25rem;font-size:.9375rem;color:var(--foreground);background:oklch(from var(--input) l c h / .5);border:1px solid var(--border);border-radius:12px;outline:none;backdrop-filter:blur(8px);transition:all .3s cubic-bezier(.4,0,.2,1)}.board-edit-input:focus,.premium-input:focus{background:oklch(from var(--input) l c h / .7);border-color:var(--primary);box-shadow:0 0 0 3px oklch(from var(--primary) l c h / .1),0 4px 12px oklch(from var(--primary) l c h / .15)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes meshFloat{0%{opacity:1;transform:translate(0) scale(1)}25%{opacity:.8;transform:translate(30px,-40px) scale(1.05)}50%{opacity:.6;transform:translate(-20px,-60px) scale(1.1)}75%{opacity:.8;transform:translate(-40px,-20px) scale(1.03)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}@keyframes toastSlideUp{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes rowEntrance{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes accordionSlide{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes glowPulse{0%,to{transform:scale(1);opacity:.08}50%{transform:scale(1.1);opacity:.12}}@keyframes pulseDot{0%,to{opacity:1}50%{opacity:.5}}@keyframes passcodeShake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-4px)}20%,40%,60%,80%{transform:translate(4px)}}@keyframes passcodeBounce{0%{opacity:0;transform:scale(.3) rotate(-10deg)}to{opacity:1;transform:scale(1) rotate(0)}}.board-image-stack{position:relative;cursor:pointer;transition:transform .3s cubic-bezier(.4,0,.2,1);animation:slideUp .6s cubic-bezier(.34,1.56,.64,1) backwards}.board-image-stack:hover{transform:translateY(-6px)}.board-stack{position:relative;aspect-ratio:4 / 3}.board-stack-card{position:absolute;inset:0;border-radius:20px;overflow:hidden;border:1px solid var(--border);background:oklch(from var(--card) l c h / .5);backdrop-filter:blur(20px) saturate(180%);box-shadow:0 8px 32px oklch(from var(--foreground) l c h / .08);transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s}.board-stack-card img{width:100%;height:100%;object-fit:cover}.board-stack-card-2{transform:rotate(4deg) translate(6px,-4px) scale(.95);z-index:1}.board-stack-card-1{transform:rotate(-2deg) translate(-4px,-2px) scale(.97);z-index:2}.board-stack-card-0{transform:rotate(0);z-index:3;box-shadow:0 8px 32px oklch(from var(--foreground) l c h / .12),0 0 0 1px oklch(from var(--primary) l c h / .05) inset}.board-image-stack:hover .board-stack-card-2{transform:rotate(6deg) translate(10px,-8px) scale(.93)}.board-image-stack:hover .board-stack-card-1{transform:rotate(-4deg) translate(-8px,-5px) scale(.95)}.board-image-stack:hover .board-stack-card-0{box-shadow:0 16px 48px oklch(from var(--foreground) l c h / .18),0 0 0 1px oklch(from var(--primary) l c h / .1) inset}.board-stack-empty{display:flex;align-items:center;justify-content:center;background:oklch(from var(--muted) l c h / .3)}.board-stack-badge{position:absolute;bottom:.5rem;right:.5rem;z-index:5;display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .625rem;font-size:.75rem;font-weight:600;color:#fff;background:#0009;backdrop-filter:blur(8px);border-radius:9999px;pointer-events:none}.board-stack-label{display:flex;align-items:center;justify-content:center;gap:.375rem;padding:.75rem .25rem 0;font-size:.8125rem;font-weight:500;color:var(--muted-foreground);text-align:center}.board-stack-label span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.board-container.is-dragging .board-image-stack{transition:transform .2s ease,box-shadow .2s ease}.board-container.is-dragging .board-image-stack .board-stack-card-0{border-color:oklch(from var(--primary) l c h / .3);border-style:dashed}.board-image-stack.drop-target{transform:scale(1.05)}.board-image-stack.drop-target .board-stack-card-0{border-color:var(--primary);border-style:dashed;box-shadow:0 0 0 4px oklch(from var(--primary) l c h / .2),0 8px 24px oklch(from var(--primary) l c h / .25)}.board-sticky-note{position:relative;width:100%;aspect-ratio:1;padding:1rem;cursor:pointer;border-radius:4px;box-shadow:0 8px 24px oklch(from var(--foreground) l c h / .1),0 2px 8px oklch(from var(--foreground) l c h / .06);transition:all .3s cubic-bezier(.4,0,.2,1);animation:slideUp .6s cubic-bezier(.34,1.56,.64,1) backwards}.board-sticky-note:hover{transform:rotate(0) translateY(-6px)!important;box-shadow:0 20px 40px oklch(from var(--foreground) l c h / .15),0 8px 16px oklch(from var(--foreground) l c h / .08)}.board-sticky-note-yellow{background:#fbeec9;color:oklch(.35 .1 70)}.board-sticky-note-blue{background:oklch(.92 .05 230);color:oklch(.35 .1 230)}.board-sticky-note-pink{background:oklch(.92 .08 350);color:oklch(.35 .15 350)}.board-sticky-note-green{background:#d0efc9;color:#18460c}.board-sticky-note-purple{background:oklch(.92 .08 290);color:#3e2181}.board-sticky-note-number{font-size:1.25rem;font-weight:700;line-height:1;margin-bottom:.5rem}.board-sticky-note-preview{font-size:.875rem;line-height:1.4;opacity:.8;overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical}.board-edit-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--muted-foreground);opacity:0;transition:opacity .2s ease,color .2s ease;background:none;border:none;padding:0;cursor:pointer}.board-name-row:hover .board-edit-icon,.board-stack-label:hover .board-edit-icon{opacity:.6}.board-edit-icon:hover{opacity:1!important;color:var(--primary)}.board-edit-icon.visible{opacity:.5}.board-edit-icon.visible:hover{opacity:1!important;color:var(--primary)}.board-lightbox-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#000000f2;backdrop-filter:blur(8px);animation:fadeIn .2s ease}.board-lightbox-header{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;z-index:10}.board-lightbox-title{color:#fff;font-size:1.125rem;font-weight:500;opacity:.8}.stack-editor-label-editable{display:inline-flex;align-items:center;gap:.375rem;margin-top:.125rem;padding:.125rem .5rem;border-radius:6px;background:transparent;border:1px solid transparent;color:#ffffff80;font-size:.875rem;cursor:pointer;transition:all .2s ease}.stack-editor-label-editable:hover{background:#ffffff1a;border-color:#ffffff26;color:#fffc}.stack-editor-label-editable svg{opacity:.4;transition:opacity .2s ease}.stack-editor-label-editable:hover svg{opacity:.8}.board-lightbox-close{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:#ffffff1a;backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:50%;color:#fff;cursor:pointer;transition:all .2s ease}.board-lightbox-close:hover{background:#fff3}.board-lightbox-nav{position:absolute;display:flex;align-items:center;justify-content:center;width:56px;height:56px;background:#ffffff1a;backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:50%;color:#fff;cursor:pointer;transition:all .2s ease;z-index:10}.board-lightbox-nav:hover{background:#fff3;transform:scale(1.1)}.board-lightbox-prev{left:1.5rem;top:50%;transform:translateY(-50%)}.board-lightbox-next{right:1.5rem;top:50%;transform:translateY(-50%)}.board-lightbox-prev:hover,.board-lightbox-next:hover{transform:translateY(-50%) scale(1.1)}.board-lightbox-content{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.board-lightbox-image{max-width:calc(100vw - 8rem);max-height:calc(100vh - 10rem);object-fit:contain;border-radius:.5rem;box-shadow:0 25px 50px -12px #00000080;transition:max-width .3s ease,max-height .3s ease}.board-lightbox-content.zoomed .board-lightbox-image{max-width:none;max-height:none;border-radius:0;box-shadow:none}.board-lightbox-gradient-top,.board-lightbox-gradient-bottom{position:absolute;left:0;right:0;height:120px;pointer-events:none;z-index:5;opacity:1;transition:opacity .3s ease}.board-lightbox-gradient-top{top:0;background:linear-gradient(to bottom,rgba(0,0,0,.7) 0%,rgba(0,0,0,.3) 50%,transparent 100%)}.board-lightbox-gradient-bottom{bottom:0;background:linear-gradient(to top,rgba(0,0,0,.7) 0%,rgba(0,0,0,.3) 50%,transparent 100%)}.board-lightbox-footer{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:1.5rem;padding:1rem 1.5rem;z-index:10}.board-lightbox-counter{color:#fff;font-size:.875rem;opacity:.8}.board-lightbox-actions{display:flex;gap:.5rem}.board-lightbox-action{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#ffffff1a;backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:.5rem;color:#fff;cursor:pointer;transition:all .2s ease}.board-lightbox-action:hover{background:#fff3}.board-lightbox-action.active{background:#ffffff40;border-color:#ffffff80;color:#ffd000}.board-lightbox-action{position:relative}.board-lightbox-sharpen-badge{position:absolute;top:-4px;right:-4px;width:16px;height:16px;border-radius:50%;background:#ffd000;color:#000;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1}.board-lightbox-zoom-badge{position:absolute;top:4.5rem;left:50%;transform:translate(-50%);background:#ffffff26;backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);color:#fff;padding:.25rem .75rem;border-radius:999px;font-size:.8rem;font-weight:700;letter-spacing:.05em;z-index:10;pointer-events:none;animation:fadeIn .2s ease}.stack-editor-overlay{position:fixed;inset:0;z-index:200;display:flex;flex-direction:column;background:#000000eb;backdrop-filter:blur(20px);animation:fadeIn .3s ease-out}.stack-editor-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 3rem;z-index:10}.stack-editor-content{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2rem;padding:0 3rem 2rem;overflow:hidden}.stack-editor-section{width:100%;max-width:1200px;flex-shrink:0}.stack-editor-section-label{color:#fff6;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;margin-bottom:1rem}.stack-editor-row{display:flex;gap:1rem;overflow-x:auto;padding:.75rem;margin:-.75rem;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;animation:slideUp .4s cubic-bezier(.34,1.56,.64,1) backwards}.stack-editor-row::-webkit-scrollbar{height:4px}.stack-editor-row::-webkit-scrollbar-track{background:transparent}.stack-editor-row::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:2px}.stack-editor-thumb{position:relative;flex-shrink:0;width:9rem;height:9rem;border-radius:1rem;overflow:hidden;border:2px solid rgba(255,255,255,.1);cursor:grab;transition:all .2s cubic-bezier(.4,0,.2,1)}.stack-editor-thumb:hover{border-color:#ffffff4d;transform:scale(1.05);box-shadow:0 8px 24px #0006}.stack-editor-thumb:active{cursor:grabbing}.stack-editor-thumb.is-dragging{opacity:.3;transform:scale(.9)}.stack-editor-thumb.unstacked{border-color:#f59e0b4d}.stack-editor-thumb img{width:100%;height:100%;object-fit:cover;pointer-events:none}.stack-editor-thumb-label{position:absolute;bottom:0;left:0;right:0;padding:.25rem .5rem;background:linear-gradient(to top,rgba(0,0,0,.7) 0%,transparent 100%)}.stack-editor-thumb-label span{display:block;color:#fff;font-size:.6875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stack-editor-drop-target{position:relative;flex-shrink:0;width:10rem;height:9rem;border-radius:1rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;border:2px dashed rgba(255,255,255,.2);background:#ffffff08;transition:all .2s cubic-bezier(.4,0,.2,1);overflow:hidden}.stack-editor-drop-target:hover{border-color:#fff6;background:#ffffff0f}.stack-editor-drop-target.active{border-color:var(--primary);border-style:solid;background:oklch(from var(--primary) l c h / .15);box-shadow:0 0 0 4px oklch(from var(--primary) l c h / .2),0 8px 24px oklch(from var(--primary) l c h / .25);transform:scale(1.05)}.stack-editor-drop-target.active-unstack{border-color:oklch(.75 .18 85);border-style:solid;background:oklch(.75 .18 85 / .15);box-shadow:0 0 0 4px oklch(.75 .18 85 / .2),0 8px 24px oklch(.75 .18 85 / .25);transform:scale(1.05)}.stack-editor-drop-target-preview{position:absolute;inset:0;opacity:.35}.stack-editor-drop-target-preview img{width:100%;height:100%;object-fit:cover}.stack-editor-drop-label{position:relative;z-index:1;color:#fffc;font-size:.75rem;font-weight:600;text-align:center;padding:.25rem .625rem;background:#00000080;border-radius:.375rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - .75rem)}.stack-editor-drop-count{position:relative;z-index:1;color:#ffffff73;font-size:.6875rem}.stack-editor-status{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);z-index:300;padding:.75rem 1.25rem;background:oklch(from var(--card) l c h / .8);backdrop-filter:blur(20px) saturate(180%);border:1px solid var(--border);border-radius:12px;color:var(--foreground);font-size:.875rem;font-weight:500;box-shadow:0 12px 40px oklch(from var(--foreground) l c h / .15);animation:toastSlideUp .3s cubic-bezier(.34,1.56,.64,1);white-space:nowrap}@media (min-width: 1024px){.stack-editor-thumb{width:11rem;height:11rem;border-radius:1.25rem}.stack-editor-drop-target{width:12rem;height:11rem;border-radius:1.25rem}.stack-editor-row{gap:1.25rem}.stack-editor-content{gap:2.5rem;padding:0 4rem 3rem}.stack-editor-section-label{font-size:.8125rem;margin-bottom:1.25rem}}.board-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.25rem;font-size:.875rem;font-weight:600;border-radius:10px;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);border:none}.board-btn-primary{background:var(--primary);color:var(--primary-foreground)}.board-btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px oklch(from var(--primary) l c h / .3)}.board-btn-ghost{background:transparent;color:var(--muted-foreground);border:1px solid var(--border)}.board-btn-ghost:hover{background:var(--accent);color:var(--accent-foreground);transform:translateY(-1px)}.board-logo{display:flex;align-items:center}.board-title{font-size:1.25rem;font-weight:700;color:var(--foreground);line-height:1.2;margin:0;letter-spacing:-.01em}.board-subtitle{font-size:.75rem;color:var(--muted-foreground);margin:0;letter-spacing:.02em}.board-header-divider{width:1px;height:28px;background:var(--border)}.board-name-row{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;padding:.375rem .75rem;border-radius:8px;transition:all .2s cubic-bezier(.4,0,.2,1)}.board-name-row:hover{background:oklch(from var(--muted) l c h / .5)}.board-name-text{font-size:.9375rem;font-weight:500;color:var(--muted-foreground)}.board-header-right{display:flex;align-items:center;gap:.75rem}.board-header-auth{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:oklch(from var(--muted) l c h / .5);backdrop-filter:blur(8px);border:1px solid var(--border);color:var(--muted-foreground);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1)}.board-header-auth:hover{background:oklch(from var(--muted) l c h / .8);color:var(--foreground)}.board-header-auth.authenticated{background:oklch(from var(--primary) l c h / .1);border-color:oklch(from var(--primary) l c h / .3);color:var(--primary);cursor:default}.board-home-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-size:.875rem;font-weight:500;color:var(--muted-foreground);background:transparent;border:1px solid var(--border);border-radius:10px;text-decoration:none;transition:all .2s cubic-bezier(.4,0,.2,1)}.board-home-btn:hover{background:var(--accent);color:var(--accent-foreground);border-color:var(--accent);transform:translateY(-1px);box-shadow:0 4px 12px oklch(from var(--foreground) l c h / .08)}.board-main{padding:0;max-width:100%;margin:0;position:relative;z-index:1}.board-content{animation:slideIn .4s ease}.board-grid{padding:2.5rem 2rem;max-width:1400px;margin:0 auto;position:relative;z-index:1;animation:slideIn .6s cubic-bezier(.34,1.56,.64,1)}.board-grid-section{margin-bottom:2.5rem}.board-grid-section-header{font-size:.8125rem;font-weight:600;color:var(--muted-foreground);margin:0 0 1.25rem;padding-bottom:.75rem;border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.05em}.board-grid-item{animation:slideUp .6s cubic-bezier(.34,1.56,.64,1) backwards}.board-stacks-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.5rem}.board-notes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1.5rem}.board-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100vh - 88px);text-align:center;padding:3rem}.board-empty-icon{display:flex;align-items:center;justify-content:center;width:120px;height:120px;background:oklch(from var(--muted) l c h / .5);backdrop-filter:blur(20px) saturate(180%);color:var(--muted-foreground);border-radius:24px;margin-bottom:2rem;border:1px solid var(--border);box-shadow:0 8px 32px oklch(from var(--foreground) l c h / .08)}.board-empty-title{font-size:1.5rem;font-weight:700;color:var(--foreground);margin:0 0 .5rem;letter-spacing:-.01em}.board-empty-text{font-size:1rem;color:var(--muted-foreground);margin:0;max-width:360px}.board-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:1.5rem}.board-loading-spinner{width:48px;height:48px;color:var(--primary);animation:spin 1s linear infinite}.board-loading-text{font-size:1rem;color:var(--muted-foreground);margin:0}.board-modal-note{max-width:600px}.board-note-header-content{display:flex;align-items:center;gap:1rem}.board-note-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:oklch(from var(--primary) l c h / .1);color:var(--primary);border-radius:12px}.board-modal-title{font-size:1.25rem;font-weight:700;color:var(--foreground);margin:0;letter-spacing:-.01em}.board-modal-body{padding:2rem}.board-note-content{padding:1.25rem;background:oklch(from var(--muted) l c h / .5);border-radius:12px;font-size:.875rem;line-height:1.6;color:var(--foreground);max-height:400px;overflow-y:auto}.board-note-content-code{font-family:monospace}.board-note-content pre{margin:0;white-space:pre-wrap;word-wrap:break-word}.board-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:1rem;padding:1.25rem 2rem;border-top:1px solid var(--border)}.board-upload-status{position:fixed;bottom:2rem;left:50%;transform:translate(-50%);z-index:300;animation:toastSlideUp .3s cubic-bezier(.34,1.56,.64,1)}.board-upload-status-content{display:flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;background:oklch(from var(--card) l c h / .8);backdrop-filter:blur(20px) saturate(180%);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 40px oklch(from var(--foreground) l c h / .15),0 0 0 1px oklch(from var(--primary) l c h / .05) inset}.board-upload-spinner{display:flex;align-items:center;justify-content:center;width:20px;height:20px;color:var(--primary);animation:spin 1s linear infinite}.board-upload-status-text{font-size:.875rem;font-weight:500;color:var(--foreground);white-space:nowrap}.passcode-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:oklch(from var(--background) l c h / .85);backdrop-filter:blur(12px);animation:fadeIn .3s ease;cursor:pointer}.passcode-modal{position:relative;width:100%;max-width:520px;background:var(--card);border:1px solid oklch(from var(--border) l c h / .6);border-radius:24px;padding:3rem;box-shadow:0 24px 64px oklch(from var(--foreground) l c h / .2),0 0 0 1px oklch(from var(--primary) l c h / .1) inset;animation:scaleIn .4s cubic-bezier(.34,1.56,.64,1);cursor:default}.passcode-close{position:absolute;top:1rem;right:1rem;display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:1px solid transparent;border-radius:50%;color:var(--muted-foreground);cursor:pointer;transition:all .2s ease;z-index:1}.passcode-close:hover{background:oklch(from var(--destructive) l c h / .1);border-color:oklch(from var(--destructive) l c h / .2);color:var(--destructive)}.passcode-header{text-align:center;margin-bottom:2rem}.passcode-icon-large{display:inline-flex;align-items:center;justify-content:center;width:80px;height:80px;background:linear-gradient(135deg,oklch(.65 .22 250),oklch(.55 .25 260));border-radius:20px;color:#fff;margin:0 auto 1.5rem;box-shadow:0 4px 20px oklch(from var(--primary) l c h / .3),inset 0 1px #ffffff1a;animation:passcodeBounce .6s cubic-bezier(.34,1.56,.64,1) .1s backwards}.passcode-title{font-size:1.75rem;font-weight:700;color:var(--foreground);margin:0 0 .5rem;letter-spacing:-.02em;line-height:1.2}.passcode-subtitle{font-size:.9375rem;color:var(--muted-foreground);margin:0;line-height:1.5}.passcode-board-id{display:inline-block;padding:.125rem .5rem;background:oklch(from var(--primary) l c h / .1);color:var(--primary);border-radius:6px;font-family:var(--font-mono, monospace);font-size:.875rem;font-weight:600;letter-spacing:.025em}.passcode-form{display:flex;flex-direction:column;gap:1.25rem}.passcode-input-group{display:flex;flex-direction:column;gap:.625rem}.passcode-label{font-size:.875rem;font-weight:600;color:var(--foreground);letter-spacing:-.01em}.passcode-input{width:100%;padding:1rem 1.25rem;font-size:1rem;font-family:var(--font-mono, monospace);color:var(--foreground);background:oklch(from var(--input) l c h / .5);border:2px solid var(--border);border-radius:12px;outline:none;transition:all .3s cubic-bezier(.4,0,.2,1);letter-spacing:.05em;backdrop-filter:blur(8px)}.passcode-input::placeholder{color:var(--muted-foreground);opacity:.5;letter-spacing:0}.passcode-input:hover:not(:disabled){border-color:oklch(from var(--border) calc(l + .1) c h);background:oklch(from var(--input) l c h / .6)}.passcode-input:focus{border-color:var(--primary);background:oklch(from var(--input) l c h / .7);box-shadow:0 0 0 3px oklch(from var(--primary) l c h / .1),0 4px 12px oklch(from var(--primary) l c h / .15)}.passcode-input:disabled{opacity:.5;cursor:not-allowed}.passcode-checkbox{display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.9375rem;color:var(--foreground);cursor:pointer;user-select:none;padding:.5rem 0;margin:0}.passcode-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--primary);border-radius:4px;margin:0;flex-shrink:0}.passcode-checkbox input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}.passcode-error{display:flex;align-items:flex-start;gap:.625rem;padding:1rem 1.25rem;background:oklch(from var(--destructive) l c h / .08);border:1.5px solid oklch(from var(--destructive) l c h / .3);border-radius:12px;color:var(--destructive);font-size:.875rem;line-height:1.5;animation:passcodeShake .4s cubic-bezier(.36,.07,.19,.97)}.passcode-error svg{flex-shrink:0;margin-top:2px}.passcode-submit{width:100%;display:flex;align-items:center;justify-content:center;gap:.625rem;padding:1.125rem 2rem;font-size:1rem;font-weight:600;color:#fff;background:linear-gradient(135deg,oklch(.65 .22 250),oklch(.55 .25 260));border:none;border-radius:16px;cursor:pointer;outline:none;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px oklch(from var(--primary) l c h / .25),inset 0 1px #ffffff1a;letter-spacing:-.01em;margin-top:.5rem}.passcode-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px oklch(from var(--primary) l c h / .35),inset 0 1px #ffffff26}.passcode-submit:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 8px oklch(from var(--primary) l c h / .2),inset 0 1px #ffffff1a}.passcode-submit:disabled{opacity:.5;cursor:not-allowed;transform:none}.passcode-spinner{display:inline-flex;animation:spin 1s linear infinite}.admin-login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem;position:relative;z-index:1}.login-card{width:100%;max-width:420px;padding:3rem;border-radius:24px;background:oklch(from var(--card) l c h / .7);backdrop-filter:blur(40px) saturate(180%);border:1px solid oklch(from var(--border) l c h / .2);box-shadow:0 8px 32px oklch(from var(--foreground) l c h / .1),0 0 0 1px oklch(from var(--primary) l c h / .05) inset;animation:slideUp .6s cubic-bezier(.34,1.56,.64,1)}.login-header{text-align:center;margin-bottom:2.5rem}.login-logo{display:flex;justify-content:center;margin-bottom:1.5rem}.logo-orb{width:64px;height:64px;border-radius:50%;background:radial-gradient(circle at 30% 30%,oklch(from var(--primary) calc(l*1.2) c h),var(--primary));box-shadow:0 8px 24px oklch(from var(--primary) l c h / .3),0 0 0 8px oklch(from var(--primary) l c h / .1);animation:pulse 3s ease-in-out infinite;position:relative}.logo-orb:before{content:"";position:absolute;inset:-2px;border-radius:50%;background:linear-gradient(135deg,oklch(from var(--primary) l c h / .3),transparent);animation:spin 6s linear infinite}.logo-orb.small{width:40px;height:40px}.login-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.error-message{display:flex;align-items:center;gap:.75rem;padding:1rem;border-radius:12px;background:oklch(from var(--destructive) l c h / .1);border:1px solid oklch(from var(--destructive) l c h / .3);color:var(--destructive-foreground);font-size:.875rem;animation:shake .4s cubic-bezier(.36,.07,.19,.97)}.error-icon{width:20px;height:20px;flex-shrink:0}.login-button{margin-top:.5rem;height:48px;font-weight:600;background:var(--primary);color:var(--primary-foreground);position:relative;overflow:hidden}.login-button:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,oklch(from var(--primary) calc(l*1.2) c h / .3),transparent);transform:translate(-100%);transition:transform .6s}.login-button:hover:before{transform:translate(100%)}.button-spinner{display:inline-block;width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .6s linear infinite;margin-right:.5rem}.logout-button{display:flex;align-items:center;transition:all .2s}.logout-button:hover{transform:translateY(-1px)}.admin-main{max-width:1400px;margin:0 auto;padding:2.5rem 2rem;position:relative;z-index:1}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-bottom:2.5rem}.stat-card{position:relative;padding:2rem;border-radius:20px;overflow:hidden;background:oklch(from var(--card) l c h / .5);backdrop-filter:blur(20px) saturate(180%);border:1px solid var(--border);transition:all .4s cubic-bezier(.4,0,.2,1);animation:slideUp .6s cubic-bezier(.34,1.56,.64,1) backwards}.stat-card:nth-child(1){animation-delay:.1s}.stat-card:nth-child(2){animation-delay:.2s}.stat-card:nth-child(3){animation-delay:.3s}.stat-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px oklch(from var(--foreground) l c h / .15),0 0 0 1px oklch(from var(--primary) l c h / .1) inset}.stat-glow{position:absolute;inset:-50%;background:radial-gradient(circle,currentColor,transparent 70%);opacity:0;transition:opacity .4s;pointer-events:none}.stat-card:hover .stat-glow{opacity:.08;animation:glowPulse 2s ease-in-out infinite}.stat-card-primary{color:var(--primary)}.stat-card-secondary{color:#7c7bff}.stat-card-accent{color:oklch(.6 .2 160)}.stat-content{display:flex;align-items:center;justify-content:space-between;position:relative;z-index:1}.stat-info{flex:1}.stat-label{font-size:.875rem;font-weight:500;color:var(--muted-foreground);margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.05em}.stat-value{font-size:3rem;font-weight:700;line-height:1;color:var(--foreground);margin-bottom:.5rem;font-variant-numeric:tabular-nums}.stat-sublabel{font-size:.8125rem;color:var(--muted-foreground)}.stat-icon{width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:oklch(from currentColor l c h / .1);border-radius:16px;color:currentColor;transition:all .3s}.stat-card:hover .stat-icon{transform:scale(1.1) rotate(5deg);background:oklch(from currentColor l c h / .15)}.stat-icon svg{width:32px;height:32px}.boards-table-card{border-radius:20px;overflow:hidden;background:oklch(from var(--card) l c h / .5);backdrop-filter:blur(20px) saturate(180%);border:1px solid var(--border);box-shadow:0 8px 32px oklch(from var(--foreground) l c h / .08);animation:slideUp .8s cubic-bezier(.34,1.56,.64,1) .4s backwards}.table-header{display:flex;align-items:center;justify-content:space-between;padding:2rem;border-bottom:1px solid var(--border);background:oklch(from var(--muted) l c h / .3)}.create-button{display:flex;align-items:center;font-weight:600;background:var(--primary);color:var(--primary-foreground);transition:all .2s}.create-button:hover{transform:translateY(-2px);box-shadow:0 8px 20px oklch(from var(--primary) l c h / .3)}.table-container{overflow-x:auto}.boards-table{width:100%;border-collapse:collapse}.boards-table thead tr{border-bottom:1px solid var(--border);background:oklch(from var(--muted) l c h / .2)}.boards-table th{padding:1rem 1.5rem;text-align:left;font-size:.8125rem;font-weight:600;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.05em}.boards-table tbody tr{border-bottom:1px solid oklch(from var(--border) l c h / .5);transition:all .2s;animation:rowEntrance .4s cubic-bezier(.34,1.56,.64,1) backwards}.boards-table tbody tr:hover{background:oklch(from var(--muted) l c h / .3)}.boards-table td{padding:1.25rem 1.5rem;color:var(--foreground)}.board-id{font-family:var(--font-mono);font-size:.875rem;padding:.25rem .625rem;border-radius:6px;background:oklch(from var(--primary) l c h / .1);color:var(--primary);border:1px solid oklch(from var(--primary) l c h / .2)}.email-cell{display:flex;align-items:center;gap:.75rem}.email-avatar{width:32px;height:32px;border-radius:50%;background:var(--primary);color:var(--primary-foreground);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.875rem}.date-cell{color:var(--muted-foreground);font-size:.875rem}.status-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem .75rem;border-radius:9999px;font-size:.8125rem;font-weight:500}.status-active{background:oklch(from oklch(.6 .2 160) l c h / .15);color:oklch(.6 .2 160);border:1px solid oklch(from oklch(.6 .2 160) l c h / .3)}.status-dot{width:6px;height:6px;border-radius:50%;background:currentColor;animation:pulseDot 2s ease-in-out infinite}.actions-cell{text-align:right}.action-buttons{display:inline-flex;gap:.5rem}.action-button{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem .875rem;font-size:.875rem;transition:all .2s}.action-view:hover{background:oklch(from var(--primary) l c h / .1);border-color:var(--primary);color:var(--primary)}.action-delete:hover{background:oklch(from var(--destructive) l c h / .1);border-color:var(--destructive);color:var(--destructive)}.empty-row{border:none}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;color:var(--muted-foreground)}.empty-icon{width:64px;height:64px;margin-bottom:1.5rem;opacity:.5}.empty-state>p:first-of-type{font-size:1.125rem;font-weight:600;color:var(--foreground);margin-bottom:.5rem}.empty-subtitle{font-size:.875rem}.table-footer{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 2rem;border-top:1px solid var(--border);background:oklch(from var(--muted) l c h / .2)}.pagination-info{font-size:.875rem;color:var(--muted-foreground)}.pagination-buttons{display:flex;gap:.5rem}.pagination-button{display:inline-flex;align-items:center;gap:.5rem}.pagination-button:disabled{opacity:.4;cursor:not-allowed}.modal-form{padding:2rem;display:flex;flex-direction:column;gap:1.5rem}.modal-actions{display:flex;gap:1rem;padding-top:.5rem}.modal-button-cancel{flex:1}.modal-button-submit{flex:1;background:var(--primary);color:var(--primary-foreground);font-weight:600}.admin-accordion-row{border-bottom:1px solid oklch(from var(--border) l c h / .5);transition:background-color .2s}.admin-accordion-row:last-child{border-bottom:0}.admin-accordion-row.expanded{background:oklch(from var(--muted) l c h / .3)}.admin-accordion-trigger{width:100%;display:flex;align-items:center;gap:1.5rem;padding:1.25rem 1.5rem;text-align:left;background:none;border:none;color:inherit;cursor:pointer;transition:background-color .2s;font-family:inherit;font-size:inherit}.admin-accordion-trigger:hover{background:oklch(from var(--muted) l c h / .3)}.admin-accordion-chevron{display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .2s;color:var(--muted-foreground)}.admin-accordion-chevron.rotated{transform:rotate(90deg)}.admin-accordion-content{padding:0 1.5rem 1.5rem;animation:accordionSlide .2s ease-out}.admin-accordion-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.admin-accordion-column-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.admin-accordion-column-header h3{font-size:1.25rem;font-weight:700;margin:0}.admin-count-badge{display:inline-flex;align-items:center;justify-content:center;padding:.125rem .625rem;font-size:.8125rem;font-weight:600;border-radius:9999px;background:oklch(from var(--primary) l c h / .1);color:var(--primary);border:1px solid oklch(from var(--primary) l c h / .2)}.admin-accordion-toolbar{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.admin-gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.admin-gallery-wrapper,.admin-note-wrapper{position:relative}.admin-gallery-delete,.admin-note-delete{position:absolute;top:-.25rem;right:-.25rem;z-index:10;opacity:0;transition:opacity .2s}.admin-gallery-wrapper:hover .admin-gallery-delete,.admin-note-wrapper:hover .admin-note-delete{opacity:1}.admin-gallery-wrapper.drag-over .board-image-stack{transform:scale(1.03)}.admin-gallery-wrapper.drag-over .board-stack-card-0{border-color:var(--primary);border-style:dashed;box-shadow:0 0 0 4px oklch(from var(--primary) l c h / .15),0 8px 24px oklch(from var(--primary) l c h / .2)}.admin-empty-section{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center;color:var(--muted-foreground)}.admin-empty-section svg{margin-bottom:.75rem;opacity:.5}.admin-empty-section p{font-size:.875rem;margin:0}.admin-spinner{display:flex;align-items:center;justify-content:center;padding:3rem}.admin-spinner-circle{width:2rem;height:2rem;border-radius:50%;border:3px solid var(--primary);border-top-color:transparent;animation:spin .8s linear infinite}.admin-table-columns{display:flex;align-items:center;gap:1.5rem;padding:.75rem 1.5rem;background:oklch(from var(--muted) l c h / .2);border-bottom:1px solid oklch(from var(--border) l c h / .3);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-foreground)}.admin-drop-overlay{position:absolute;inset:0;pointer-events:none;z-index:50;display:flex;align-items:center;justify-content:center}.admin-drop-overlay-inner{background:oklch(from var(--background) l c h / .95);backdrop-filter:blur(8px);border:2px dashed var(--primary);border-radius:1rem;padding:1.5rem 2rem;box-shadow:0 20px 40px oklch(from var(--foreground) l c h / .15)}@media (max-width: 768px){.board-header-inner,.header-content{padding:1rem 1.5rem}.board-main{padding:1rem}.board-grid{padding:1.5rem 1rem}.board-stacks-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.board-notes-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1rem}.board-lightbox-nav{width:44px;height:44px;bottom:5rem;top:auto}.board-lightbox-prev{left:1rem;transform:none}.board-lightbox-next{right:1rem;transform:none}.board-lightbox-prev:hover,.board-lightbox-next:hover{transform:scale(1.1)}.board-lightbox-image{max-width:calc(100vw - 2rem);max-height:calc(100vh - 8rem)}.board-upload-status{bottom:1rem;left:1rem;right:1rem}.admin-main{padding:1.5rem 1rem}.stats-grid{grid-template-columns:1fr;gap:1rem}.stat-value{font-size:2.5rem}.table-header{flex-direction:column;align-items:flex-start;gap:1rem;padding:1.5rem}.create-button{width:100%;justify-content:center}.boards-table th,.boards-table td{padding:.875rem;font-size:.8125rem}.action-buttons{flex-direction:column;width:100%}.table-footer{flex-direction:column;gap:1rem;text-align:center}.pagination-buttons{width:100%}.pagination-button{flex:1}.header-title{flex-direction:column;align-items:flex-start;gap:.5rem}.login-card{padding:2rem}.admin-accordion-grid{grid-template-columns:1fr;gap:1.5rem}.admin-accordion-trigger{padding:1rem;gap:.75rem;font-size:.875rem}.admin-accordion-content{padding:0 1rem 1rem}.admin-gallery-grid{grid-template-columns:1fr}}@media (max-width: 640px){.board-modal,.modal-card{margin:1rem}.board-modal-header,.board-modal-body,.modal-header,.modal-form{padding:1.5rem}.board-modal-footer{padding:1rem 1.5rem}.stat-card{padding:1.5rem}.stat-icon{width:48px;height:48px}.stat-icon svg{width:24px;height:24px}.boards-table{font-size:.8125rem}.email-cell{flex-direction:column;align-items:flex-start}.passcode-modal{padding:2.5rem 2rem;border-radius:20px}.passcode-icon-large{width:72px;height:72px;border-radius:18px}.passcode-title{font-size:1.5rem}.passcode-subtitle{font-size:.875rem}.passcode-input{padding:.875rem 1rem;font-size:.9375rem}.passcode-checkbox{font-size:.875rem}.passcode-submit{padding:1rem 1.75rem;font-size:.9375rem}}@media (prefers-color-scheme: dark){.passcode-modal{box-shadow:0 0 0 1px oklch(from var(--foreground) l c h / .1),0 24px 64px #0009,0 0 0 1px oklch(from var(--primary) l c h / .1) inset}}
