.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-3{margin-top:.75rem}.mt-5{margin-top:1.25rem}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.max-h-60{max-height:15rem}.min-h-\[38px\]{min-height:38px}.w-3{width:.75rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-full{min-width:100%}.max-w-6xl{max-width:72rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-gray-100>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(243 244 246 / var(--tw-divide-opacity, 1))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(229 231 235 / var(--tw-divide-opacity, 1))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-purple-100{--tw-bg-opacity: 1;background-color:rgb(243 232 255 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-2xl{font-size:1.5rem;line-height:2rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.tracking-wide{letter-spacing:.025em}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-purple-700{--tw-text-opacity: 1;color:rgb(126 34 206 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:root{--primary: #2f6fed;--primary-dark: #1f52c0;--primary-soft: #eaf0fe;--danger: #e03131;--danger-soft: #fdeaea;--success: #1a9e5c;--success-soft: #e6f6ee;--gray-50: #fafafa;--gray-100: #f4f4f5;--gray-200: #e4e4e7;--gray-400: #a1a1aa;--gray-500: #71717a;--gray-700: #3f3f46;--gray-900: #18181b;--radius-sm: 8px;--radius: 10px;--radius-lg: 14px;--shadow: 0 1px 2px rgba(24, 24, 27, .05), 0 1px 3px rgba(24, 24, 27, .04);--shadow-lg: 0 10px 30px rgba(24, 24, 27, .12);--sidebar-w: 248px}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,-apple-system,BlinkMacSystemFont,Arial,sans-serif;background:var(--gray-50);color:var(--gray-900)}.app-loading{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--gray-500)}.login-page{display:flex;align-items:center;justify-content:center;height:100vh;background:linear-gradient(160deg,#14161f,#1c2333)}.login-card{background:#fff;padding:2.5rem 3rem;border-radius:16px;text-align:center;box-shadow:0 20px 60px #00000059;min-width:320px}.login-card h1{margin:0 0 .25rem;font-size:1.5rem}.login-card p{margin:0 0 1.75rem;color:var(--gray-500);font-size:.9rem}.google-btn{background:var(--primary);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;width:100%;transition:background .15s ease}.google-btn:hover:not(:disabled){background:var(--primary-dark)}.google-btn:disabled{opacity:.6;cursor:default}.error-text{color:var(--danger);margin-top:1rem;font-size:.88rem}.sidebar{position:fixed;top:0;left:0;z-index:60;display:flex;flex-direction:column;width:var(--sidebar-w);height:100dvh;padding:1rem .75rem;background:#fff;border-right:1px solid var(--gray-200);transform:translate(-100%);transition:transform .22s ease}.sidebar.is-open{transform:translate(0)}.sidebar-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;background:#18181b73}.sidebar-brand{display:flex;align-items:center;gap:.6rem;padding:.35rem .6rem 1rem}.brand-dot{width:10px;height:10px;border-radius:50%;background:var(--primary);flex-shrink:0}.sidebar-brand-text{display:flex;flex-direction:column;line-height:1.25;min-width:0}.sidebar-brand-text strong{font-size:.95rem}.sidebar-brand-text small{color:var(--gray-500);font-size:.75rem}.sidebar-close{margin-left:auto}.sidebar-nav{display:flex;flex-direction:column;gap:.15rem}.sidebar-link{display:flex;align-items:center;gap:.6rem;width:100%;padding:.55rem .6rem;border:none;border-radius:var(--radius-sm);background:none;color:var(--gray-700);font-size:.88rem;font-weight:500;text-align:left;cursor:pointer;transition:background .15s ease,color .15s ease}.sidebar-link:hover:not(:disabled){background:var(--gray-100);color:var(--gray-900)}.sidebar-link.is-active{background:var(--primary-soft);color:var(--primary-dark);font-weight:600}.sidebar-footer{margin-top:auto;padding-top:.75rem;border-top:1px solid var(--gray-100)}.user-chip{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem .6rem;color:var(--gray-700);font-size:.82rem;min-width:0}.user-email{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-avatar{width:28px;height:28px;border-radius:50%;background:var(--primary-soft);color:var(--primary-dark);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.8rem;flex-shrink:0}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:.6rem;padding:.6rem 1rem;background:#ffffffd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--gray-200)}.topbar h1{margin:0;font-size:1rem;font-weight:650}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:none;border-radius:var(--radius-sm);background:none;color:var(--gray-700);cursor:pointer}.icon-btn:hover:not(:disabled){background:var(--gray-100);color:var(--gray-900)}.tab-content{padding:1rem;max-width:80rem;margin:0 auto}@media (min-width: 1024px){.sidebar{transform:none;transition:none}.sidebar-close,.topbar,.sidebar-scrim{display:none}.app-main{margin-left:var(--sidebar-w)}.tab-content{padding:2rem}}.panel{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow)}@media (max-width: 640px){.panel{padding:1rem;border-radius:var(--radius)}}.panel h2{margin:0 0 .25rem;font-size:1.1rem}.panel-stack{display:flex;flex-direction:column;gap:1rem}.card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:1.25rem;box-shadow:var(--shadow)}@media (max-width: 640px){.card{padding:1rem;border-radius:var(--radius)}}.card h2{margin:0 0 .25rem;font-size:1.05rem;font-weight:650}.card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.card-header .hint{margin:0;max-width:62ch}.card-header>button{flex-shrink:0}@media (max-width: 640px){.card-header{flex-direction:column;align-items:stretch;gap:.75rem}}.filter-field{display:flex;flex-direction:column;gap:.3rem;min-width:220px}.filter-field .form-section-title{margin:0}.hint{color:var(--gray-500);font-size:.85rem;margin:0 0 1.25rem}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem}.stat-tile{padding:.9rem 1rem;border:1px solid var(--gray-200);border-radius:10px;background:var(--gray-50, #fafafa)}.stat-tile .stat-label{display:block;font-size:.75rem;color:var(--gray-500);margin-bottom:.3rem}.stat-tile .stat-value{display:block;font-size:1.15rem;font-weight:700}.location-hint{background:var(--primary-soft);color:var(--primary-dark);padding:.6rem .8rem;border-radius:7px;margin:0}.location-hint a{color:var(--primary-dark);font-weight:600}.location-hint code{background:#fff9;padding:1px 5px;border-radius:4px}.toolbar{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius);padding:1rem;margin-bottom:1.5rem}.inline-form{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}@media (max-width: 640px){.inline-form{flex-direction:column;align-items:stretch}.inline-form>*{width:100%}}.stacked-form{display:flex;flex-direction:column;gap:.7rem;max-width:640px}.form-row{display:flex;gap:.6rem;flex-wrap:wrap}.form-row>*{flex:1;min-width:140px}@media (max-width: 640px){.form-row{flex-direction:column}.form-row>*{min-width:0}}.form-section{padding-top:1.1rem;margin-top:1.1rem;border-top:1px solid var(--gray-100)}.form-section:first-child{padding-top:0;margin-top:0;border-top:none}.form-section-title{margin:0 0 .65rem;font-size:.72rem;font-weight:700;color:var(--gray-500);text-transform:uppercase;letter-spacing:.04em}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}@media (max-width: 640px){.form-grid-2{grid-template-columns:1fr}}.checkbox-row{display:flex;align-items:center;gap:.45rem;font-size:.88rem;color:var(--gray-700)}.checkbox-row input{width:auto}.dropzone{position:relative;display:flex;align-items:center;justify-content:center;min-height:190px;border:2px dashed var(--gray-200);border-radius:var(--radius-lg);background:var(--gray-50);padding:1.75rem 1rem;text-align:center;cursor:pointer;transition:border-color .15s ease,background .15s ease}.dropzone:hover{border-color:var(--gray-400);background:var(--gray-100)}.dropzone-dragover{border-color:var(--primary);background:var(--primary-soft)}.dropzone-dragover .dropzone-icon{background:#fff;color:var(--primary);transform:translateY(-2px)}.dropzone-filled{display:block;cursor:default;text-align:left;min-height:0;padding:.75rem}.dropzone-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;margin-bottom:.5rem;border-radius:50%;background:var(--gray-100);color:var(--gray-500);transition:background .15s ease,color .15s ease,transform .15s ease}.dropzone-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.dropzone-empty{display:flex;flex-direction:column;align-items:center;gap:.3rem;color:var(--gray-500);pointer-events:none}.dropzone-title{margin:.4rem 0 0;font-size:.88rem;font-weight:600;color:var(--gray-700)}.dropzone-hint{margin:0;font-size:.78rem;color:var(--gray-500)}.dropzone-preview-row{display:flex;align-items:center;gap:.75rem;pointer-events:none}.dropzone-preview-row .dropzone-remove{pointer-events:auto}.dropzone-preview-img{width:56px;height:56px;-o-object-fit:cover;object-fit:cover;border-radius:8px;flex-shrink:0}.dropzone-file-icon{width:56px;height:56px;flex-shrink:0;border-radius:8px;background:var(--primary-soft);color:var(--primary-dark);display:flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:800;letter-spacing:.03em}.dropzone-file-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.dropzone-file-name{font-size:.85rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropzone-file-size{font-size:.75rem}.dropzone-remove{flex-shrink:0}input[type=text],input[type=email],input[type=number],input:not([type]),select,textarea{display:block;width:100%;padding:.55rem .7rem;border:1px solid var(--gray-200);border-radius:7px;font-size:.88rem;background:#fff;color:var(--gray-900);font-family:inherit}input[type=file]{padding:.4rem;font-size:.85rem}.color-field{display:flex;align-items:center;gap:.5rem}.color-swatch{flex-shrink:0;width:2.4rem;height:2.4rem;padding:.2rem;border:1px solid var(--gray-200);border-radius:7px;cursor:pointer}.color-hex-input{flex:1;font-variant-numeric:tabular-nums;text-transform:uppercase}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}button{padding:.55rem 1rem;border:1px solid var(--gray-200);border-radius:7px;background:#fff;color:var(--gray-900);cursor:pointer;font-size:.85rem;font-weight:600;transition:background .15s ease,border-color .15s ease,opacity .15s ease}button:hover:not(:disabled){background:var(--gray-100)}button:disabled{opacity:.5;cursor:default}button.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}button.btn-primary:hover:not(:disabled){background:var(--primary-dark);border-color:var(--primary-dark)}button.btn-danger{background:#fff;border-color:var(--danger-soft);color:var(--danger)}button.btn-danger:hover:not(:disabled){background:var(--danger-soft)}button.btn-ghost{background:transparent;border-color:transparent;color:var(--gray-700)}button.btn-ghost:hover:not(:disabled){background:var(--gray-100)}button.btn-icon{padding:.35rem .55rem;font-size:.8rem}.pill{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .7rem;border-radius:999px;font-size:.78rem;font-weight:700;border:1px solid transparent;cursor:pointer;transition:opacity .15s ease}.pill:hover{opacity:.85}.pill-on{background:var(--success-soft);color:var(--success)}.pill-off{background:var(--gray-100);color:var(--gray-500)}.pill-static{cursor:default}.pill-static:hover{opacity:1}.pill-protected{background:var(--primary-soft);color:var(--primary-dark)}.pill+.pill{margin-left:.4rem}.site-dropdown{position:relative;display:inline-block;min-width:160px}.site-dropdown-trigger{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;padding:.4rem .65rem;border:1px solid var(--gray-200);border-radius:var(--radius);background:#fff;color:var(--gray-900);font-size:.85rem;text-align:left;cursor:pointer}.site-dropdown-trigger:hover:not(:disabled){border-color:var(--gray-400)}.site-dropdown-trigger:disabled{cursor:default;opacity:.6}.site-dropdown-caret{flex-shrink:0;color:var(--gray-500);transition:transform .15s ease}.site-dropdown-caret.open{transform:rotate(180deg)}.site-dropdown-menu{position:absolute;z-index:20;top:calc(100% + .3rem);left:0;min-width:100%;padding:.35rem;background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);box-shadow:var(--shadow);white-space:nowrap}.site-dropdown-item{display:flex;align-items:center;gap:.5rem;padding:.35rem .4rem;border-radius:8px;font-size:.85rem;cursor:pointer}.site-dropdown-item:hover{background:var(--gray-50)}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse}th{text-align:left;padding:.5rem .6rem;font-size:.75rem;font-weight:700;color:var(--gray-500);text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--gray-200)}td{text-align:left;padding:.6rem;border-bottom:1px solid var(--gray-100);font-size:.88rem;vertical-align:middle}tbody tr:hover{background:var(--gray-50)}.row-actions{display:flex;gap:.4rem}.muted{color:var(--gray-500)}.empty-state{padding:2rem 0;text-align:center;color:var(--gray-500);font-size:.9rem}@media (max-width: 640px){.table-scroll{overflow-x:visible}.table-scroll table,.table-scroll tbody,.table-scroll tr,.table-scroll td{display:block;width:100%}.table-scroll thead{display:none}.table-scroll tr{margin-bottom:.75rem;padding:.85rem;border:1px solid var(--gray-200);border-radius:var(--radius)}.table-scroll tr:hover{background:#fff}.table-scroll td{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.4rem 0;border-bottom:1px dashed var(--gray-100);text-align:right}.table-scroll td:last-child{border-bottom:none}.table-scroll td[data-label]:before{content:attr(data-label);flex-shrink:0;text-align:left;font-size:.72rem;font-weight:700;color:var(--gray-500);text-transform:uppercase;letter-spacing:.03em}.table-scroll td.td-plain{justify-content:center;padding-bottom:.6rem}.table-scroll td.td-plain:before{content:none}.table-scroll td.row-actions{justify-content:flex-end}}.edit-form{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--gray-200);max-width:640px}.edit-form h3{margin:0 0 .75rem;font-size:.95rem}.thumb{width:56px;height:56px;-o-object-fit:cover;object-fit:cover;border-radius:6px;display:block}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f11178c;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:50}.modal-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow);width:100%;max-width:420px;max-height:90vh;overflow-y:auto;padding:1.25rem}.modal-card-lg{max-width:640px}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.modal-header h3{margin:0;font-size:1.05rem}.album-grid{display:grid;grid-template-columns:1fr;gap:1rem}@media (min-width: 640px){.album-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.album-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width: 1280px){.album-grid{grid-template-columns:repeat(4,1fr)}}.album-card{border:1px solid var(--gray-200);border-radius:var(--radius);overflow:hidden;background:#fff;transition:box-shadow .18s ease,border-color .18s ease}.album-card:hover{border-color:var(--gray-400);box-shadow:var(--shadow-lg)}.album-cover-wrap{position:relative}.album-card-menu{position:absolute;top:.5rem;right:.5rem}.album-card-menu .dropdown-trigger{background:#18181b8c;color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.album-card-menu .dropdown-trigger:hover:not(:disabled){background:#18181bbf;color:#fff}.album-card-meta{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.35rem}.album-card-hidden{opacity:.6}.album-cover{width:100%;aspect-ratio:4 / 3;-o-object-fit:cover;object-fit:cover;display:block;background:var(--gray-100)}.album-cover-empty{width:100%;aspect-ratio:4 / 3;display:flex;align-items:center;justify-content:center;background:var(--gray-100);color:var(--gray-400);font-size:.8rem}.album-card-body{padding:.75rem .85rem .85rem}.album-card-name{margin:0;font-weight:600;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.album-card-count{color:var(--gray-500);font-size:.8rem}.cover-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:.5rem;max-height:320px;overflow-y:auto;margin-top:.75rem}.cover-picker-item{position:relative;padding:0;border:2px solid transparent;border-radius:8px;overflow:hidden;cursor:pointer;background:none;line-height:0}.cover-picker-item img{width:100%;aspect-ratio:1 / 1;-o-object-fit:cover;object-fit:cover;display:block}.cover-picker-item:hover:not(:disabled){border-color:var(--gray-400);background:none}.cover-picker-item.is-current{border-color:var(--primary)}.cover-picker-draft{position:absolute;left:4px;bottom:4px;padding:1px 5px;border-radius:999px;background:#14161ebf;color:#fff;font-size:.62rem;font-weight:700;line-height:1.4}.reorder-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:.6rem;max-height:55vh;overflow-y:auto;margin-top:.75rem;padding:2px}.reorder-item{position:relative;border-radius:10px;overflow:hidden;background:var(--gray-100);line-height:0;cursor:grab;touch-action:manipulation;-moz-user-select:none;user-select:none;-webkit-user-select:none;box-shadow:0 0 0 1px var(--gray-200)}.reorder-item:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.reorder-item img{width:100%;aspect-ratio:1 / 1;-o-object-fit:cover;object-fit:cover;display:block;pointer-events:none}.reorder-item.is-dragging{cursor:grabbing;z-index:2;box-shadow:0 0 0 2px var(--primary),0 12px 24px #14161e40}.reorder-index{position:absolute;top:5px;left:5px;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#14161ebf;color:#fff;font-size:.72rem;font-weight:700;line-height:22px;text-align:center}.reorder-bar{position:sticky;bottom:0;display:flex;align-items:center;justify-content:flex-end;gap:.5rem;margin-top:1rem;padding:.75rem;border-radius:var(--radius);background:var(--primary-soft)}.reorder-bar-label{margin-right:auto;font-size:.85rem;font-weight:600;color:var(--primary-dark)}.toast{position:fixed;right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom,0px));z-index:1100;display:flex;align-items:center;gap:.75rem;max-width:min(420px,calc(100vw - 2rem));padding:.7rem .9rem;border-radius:var(--radius);box-shadow:var(--shadow),0 8px 24px #14161e1f;font-size:.88rem;font-weight:500;animation:toast-in .2s ease}.toast-success{background:var(--success-soft);color:var(--success);border:1px solid var(--success)}.toast-error{background:var(--danger-soft);color:var(--danger);border:1px solid var(--danger)}.toast-close{flex-shrink:0;padding:0 .25rem;border:none;background:none;color:inherit;font-size:.85rem;cursor:pointer}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}@media (max-width: 640px){.toast{left:1rem;right:1rem;max-width:none}}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .55rem;border:1px solid transparent;border-radius:999px;font-size:.72rem;font-weight:600;line-height:1.5;white-space:nowrap;cursor:pointer}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge-on{background:var(--success-soft);border-color:#1a9e5c40;color:var(--success)}.badge-off{background:var(--gray-100);border-color:var(--gray-200);color:var(--gray-500)}.badge-danger{background:var(--danger-soft);border-color:#e0313140;color:var(--danger)}.badge:hover:not(:disabled){filter:brightness(.97)}.dropdown{position:relative}.dropdown-trigger{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:var(--radius-sm);background:none;color:var(--gray-700);cursor:pointer}.dropdown-trigger:hover:not(:disabled){background:var(--gray-100);color:var(--gray-900)}.dropdown-menu{position:absolute;top:calc(100% + .35rem);z-index:30;min-width:190px;padding:.25rem;border:1px solid var(--gray-200);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow-lg)}.dropdown-menu-end{right:0}.dropdown-menu-start{left:0}.dropdown-item{display:flex;align-items:center;gap:.55rem;width:100%;padding:.5rem .6rem;border:none;border-radius:var(--radius-sm);background:none;color:var(--gray-700);font-size:.85rem;text-align:left;white-space:nowrap;cursor:pointer}.dropdown-item:hover:not(:disabled){background:var(--gray-100);color:var(--gray-900)}.dropdown-item.is-danger{color:var(--danger)}.dropdown-item.is-danger:hover:not(:disabled){background:var(--danger-soft);color:var(--danger)}.btn-with-icon{display:inline-flex;align-items:center;gap:.4rem}.select-lg{padding-top:.65rem;padding-bottom:.65rem;font-size:.95rem;font-weight:500}.upload-form{max-width:none}.form-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.pagination{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--gray-100)}.pagination-info{margin:0;color:var(--gray-500);font-size:.82rem}.pagination-controls{display:flex;gap:.3rem}@media (max-width: 640px){.pagination{justify-content:center}.pagination-controls{width:100%;justify-content:center}}.hover\:border-gray-400:hover{--tw-border-opacity: 1;border-color:rgb(156 163 175 / var(--tw-border-opacity, 1))}.hover\:bg-blue-200:hover{--tw-bg-opacity: 1;background-color:rgb(191 219 254 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-700:hover{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.hover\:bg-red-50:hover{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.hover\:text-red-600:hover{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.focus\:border-blue-500:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-blue-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1))}.focus\:ring-offset-0:focus{--tw-ring-offset-width: 0px}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:hover\:bg-transparent:hover:disabled{background-color:transparent}.disabled\:hover\:text-gray-400:hover:disabled{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}@media (min-width: 640px){.sm\:w-auto{width:auto}.sm\:flex-row{flex-direction:row}.sm\:items-end{align-items:flex-end}}@media (min-width: 1024px){.lg\:block{display:block}.lg\:hidden{display:none}}
