:root{--bg: #fafafa;--surface: #ffffff;--border: #e5e5e5;--text: #111111;--text-muted: #666666;--text-faint: #999999;--accent: #111111;--accent-hover: #333333;--accent-text: #ffffff;--success: #16a34a;--warning: #d97706;--error: #dc2626;--radius: 8px;--radius-sm: 6px;--shadow: 0 1px 3px rgba(0, 0, 0, .08);--shadow-lg: 0 4px 12px rgba(0, 0, 0, .1)}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}.hub-header{display:flex;align-items:center;gap:1rem;padding:.875rem 1.5rem;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;box-shadow:var(--shadow)}.hub-logo{font-size:1.25rem;font-weight:700;margin:0;letter-spacing:-.02em}.hub-nav{display:flex;gap:.25rem;flex:1}.hub-nav button{padding:.5rem 1rem;font-size:.875rem;font-weight:500;background:transparent;color:var(--text-muted);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s}.hub-nav button:hover{background:#f0f0f0;color:var(--text)}.hub-nav button.active{background:var(--accent);color:var(--accent-text)}.hub-user{display:flex;align-items:center;gap:.75rem;font-size:.875rem;color:var(--text-muted)}.hub-user .role-badge{display:inline-block;padding:.125rem .5rem;font-size:.75rem;font-weight:600;background:#f0f0f0;border-radius:999px;text-transform:uppercase;letter-spacing:.05em}.btn-signout{padding:.375rem .875rem;font-size:.875rem;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;color:var(--text-muted);transition:all .15s}.btn-signout:hover{border-color:var(--text);color:var(--text)}.page{max-width:1280px;margin:0 auto;padding:2rem 1.5rem}.page-title{font-size:1.75rem;font-weight:700;margin:0 0 .5rem;letter-spacing:-.02em}.page-subtitle{color:var(--text-muted);margin:0 0 1.5rem;font-size:.9375rem}.search-bar{display:flex;gap:.5rem;margin-bottom:1.5rem;flex-wrap:wrap}.search-input{flex:1;min-width:200px;padding:.625rem 1rem;font-size:.9375rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);transition:border-color .15s,box-shadow .15s}.search-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #0000000d}.search-select{padding:.625rem 1rem;font-size:.9375rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer}.btn-primary{padding:.625rem 1.5rem;font-size:.9375rem;font-weight:600;background:var(--accent);color:var(--accent-text);border:none;border-radius:var(--radius);cursor:pointer;transition:background .15s}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.results-meta{color:var(--text-muted);font-size:.875rem;margin-bottom:1rem}.empty-state{text-align:center;padding:4rem 2rem;color:var(--text-muted)}.empty-state h3{font-size:1.125rem;color:var(--text);margin:0 0 .5rem}.empty-state p{margin:0;font-size:.9375rem}.image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.25rem}.image-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:box-shadow .15s,transform .15s}.image-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.image-card .thumb{width:100%;height:160px;object-fit:cover;display:block;background:#f5f5f5}.image-card .thumb-placeholder{width:100%;height:160px;background:#f5f5f5;display:flex;align-items:center;justify-content:center;color:var(--text-faint);font-size:.875rem}.image-card .info{padding:.875rem}.image-card .title{font-size:.875rem;font-weight:600;margin:0 0 .375rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.image-card .meta{font-size:.75rem;color:var(--text-muted);margin:0 0 .5rem;line-height:1.4}.image-card .actions{display:flex;gap:.5rem}.btn-sm{padding:.375rem .75rem;font-size:.8125rem;font-weight:500;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;color:var(--text);text-decoration:none;transition:all .15s;display:inline-block}.btn-sm:hover{border-color:var(--text);background:#f8f8f8}.status-badge{display:inline-block;padding:.125rem .5rem;font-size:.6875rem;font-weight:600;border-radius:999px;text-transform:uppercase;letter-spacing:.05em}.status-approved{background:#dcfce7;color:#166534}.status-pending_review,.status-pending_ai{background:#fef3c7;color:#92400e}.status-rejected,.status-unavailable{background:#fee2e2;color:#991b1b}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem;background:var(--bg)}.login-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:2.5rem;box-shadow:var(--shadow-lg)}.login-card h1{font-size:1.5rem;font-weight:700;margin:0 0 .5rem;letter-spacing:-.02em}.login-card .subtitle{color:var(--text-muted);font-size:.9375rem;margin:0 0 1.5rem}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.875rem;font-weight:500;margin-bottom:.375rem}.form-group input{width:100%;padding:.625rem .875rem;font-size:.9375rem;border:1px solid var(--border);border-radius:var(--radius);transition:border-color .15s,box-shadow .15s}.form-group input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #0000000d}.btn-block{width:100%;padding:.75rem;font-size:.9375rem;font-weight:600;background:var(--accent);color:var(--accent-text);border:none;border-radius:var(--radius);cursor:pointer;transition:background .15s;margin-top:.5rem}.btn-block:hover:not(:disabled){background:var(--accent-hover)}.btn-block:disabled{opacity:.5;cursor:not-allowed}.login-links{margin-top:1rem;text-align:center}.link-btn{background:none;border:none;color:#06c;cursor:pointer;font-size:.875rem;padding:0}.link-btn:hover{text-decoration:underline}.divider{display:flex;align-items:center;gap:.75rem;margin:1.25rem 0;color:var(--text-faint);font-size:.8125rem}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border)}.btn-google{width:100%;padding:.75rem;font-size:.9375rem;font-weight:500;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;gap:.5rem}.btn-google:hover:not(:disabled){background:#f8f8f8;border-color:#ccc}.error-msg{color:var(--error);font-size:.875rem;margin:.75rem 0;padding:.625rem .875rem;background:#fef2f2;border:1px solid #fecaca;border-radius:var(--radius-sm)}.success-msg{color:var(--success);font-size:.875rem;margin:.75rem 0;padding:.625rem .875rem;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:var(--radius-sm)}.tabs{display:flex;gap:.25rem;padding:0 1.5rem;background:var(--surface);border-bottom:1px solid var(--border)}.tabs button{padding:.75rem 1.25rem;font-size:.875rem;font-weight:500;background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;color:var(--text-muted);text-transform:capitalize;transition:all .15s}.tabs button:hover{color:var(--text)}.tabs button.active{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.placeholder-wrap{max-width:640px;margin:4rem auto;text-align:center;padding:2rem}.placeholder-wrap h2{font-size:1.5rem;margin:0 0 .75rem}.placeholder-wrap p{color:var(--text-muted);margin:0}@media(max-width:640px){.hub-header{flex-wrap:wrap;padding:.75rem 1rem}.hub-nav{order:3;width:100%;overflow-x:auto}.page{padding:1.25rem 1rem}.image-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.875rem}.login-card{padding:1.75rem}}
