:root{--bg: #f6f6f4;--panel: #ffffff;--border: #e3e3df;--border-strong: #d0d0ca;--text: #1a1a1a;--text-dim: #6b6b66;--text-faint: #9a9a93;--accent: #111111;--accent-soft: #efefe9;--meta-tag-bg: #ecedf0;--meta-tag-text: #3a3f4a;--ai-tag-bg: #e9f3ec;--ai-tag-text: #226b41;--danger: #b23b3b;--radius: 6px;--sidebar-w: 180px;--detail-w: 240px;--toolbar-h: 48px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:13px;color:var(--text)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg)}button{font-family:inherit;cursor:pointer}input{font-family:inherit}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-body{display:flex;flex:1;min-height:0}.topbar{height:var(--toolbar-h);display:flex;align-items:center;gap:12px;padding:0 14px;background:var(--panel);border-bottom:1px solid var(--border);flex-shrink:0}.brand{font-weight:700;letter-spacing:.04em;font-size:14px}.brand span{color:var(--text-faint);font-weight:400}.topbar .spacer{flex:1}.search-input{width:320px;max-width:36vw;padding:7px 10px;border:1px solid var(--border-strong);border-radius:var(--radius);background:#fff;font-size:13px}.search-input:focus{outline:2px solid var(--accent);outline-offset:-1px}.select{padding:6px 8px;border:1px solid var(--border-strong);border-radius:var(--radius);background:#fff;font-size:12px;color:var(--text)}.btn{padding:6px 11px;border:1px solid var(--border-strong);border-radius:var(--radius);background:#fff;font-size:12px;color:var(--text)}.btn:hover{background:var(--accent-soft)}.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.primary:hover{opacity:.9}.btn:disabled{opacity:.5;cursor:default}.user-chip{font-size:12px;color:var(--text-dim);display:flex;align-items:center;gap:8px}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--panel);border-right:1px solid var(--border);overflow-y:auto;padding:8px 0}.filter-section{border-bottom:1px solid var(--border)}.filter-head{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;cursor:pointer;-webkit-user-select:none;user-select:none}.filter-head h3{margin:0;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim)}.filter-head .chev{color:var(--text-faint);font-size:10px}.filter-body{padding:0 12px 10px}.filter-clear{background:none;border:none;color:var(--text-faint);font-size:10px;padding:0 0 6px}.filter-clear:hover{color:var(--danger)}.facet{display:flex;align-items:center;gap:6px;padding:2px 0;font-size:12px;cursor:pointer}.facet input{margin:0}.facet .label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.facet .count{color:var(--text-faint);font-size:11px}.facet:hover .label{color:#000}.main{flex:1;min-width:0;display:flex;flex-direction:column}.subbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 14px;border-bottom:1px solid var(--border);background:var(--panel)}.results-count{font-size:12px;color:var(--text-dim)}.results-count b{color:var(--text)}.active-filters{display:flex;gap:6px;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:5px;background:var(--accent-soft);border:1px solid var(--border);border-radius:12px;padding:2px 8px;font-size:11px;color:var(--text-dim)}.chip button{background:none;border:none;color:var(--text-faint);font-size:12px;line-height:1;padding:0}.chip button:hover{color:var(--danger)}.subbar .spacer{flex:1}.grid-wrap{flex:1;min-height:0}.cell{padding:6px}.card{height:100%;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;cursor:pointer}.card:hover{border-color:var(--border-strong);box-shadow:0 1px 4px #0000000f}.card.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.thumb{flex:1;min-height:130px;display:flex;align-items:center;justify-content:center;background:#fafafa;overflow:hidden}.thumb img{max-width:100%;max-height:100%;object-fit:contain;display:block}.thumb .ph{color:var(--text-faint);font-size:11px}.card-meta{padding:6px 7px 7px;border-top:1px solid var(--border)}.card-name{font-size:10.5px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}.tags{display:flex;flex-wrap:wrap;gap:3px}.tag{font-size:9.5px;padding:1px 5px;border-radius:3px;background:var(--meta-tag-bg);color:var(--meta-tag-text);white-space:nowrap}.tag.ai{background:var(--ai-tag-bg);color:var(--ai-tag-text)}.list-row{display:flex;align-items:center;gap:10px;padding:4px 12px;border-bottom:1px solid var(--border);cursor:pointer;background:var(--panel)}.list-row:hover{background:var(--accent-soft)}.list-row.selected{background:var(--accent-soft);box-shadow:inset 2px 0 0 var(--accent)}.list-thumb{width:46px;height:46px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:#fafafa;border:1px solid var(--border);border-radius:4px;overflow:hidden}.list-thumb img{max-width:100%;max-height:100%;object-fit:contain}.list-name{flex:1;min-width:0;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-col{font-size:11px;color:var(--text-dim);width:90px;flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.detail{width:var(--detail-w);flex-shrink:0;background:var(--panel);border-left:1px solid var(--border);overflow-y:auto;padding:12px}.detail .preview{width:100%;background:#fafafa;border:1px solid var(--border);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;margin-bottom:10px;min-height:180px}.detail .preview img{max-width:100%;max-height:360px;object-fit:contain}.detail .filename{font-size:11px;word-break:break-all;color:var(--text-dim);margin-bottom:12px}.field{margin-bottom:7px}.field .k{font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint)}.field .v{font-size:12.5px;color:var(--text)}.detail h4{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);margin:14px 0 6px}.detail-actions{display:flex;flex-direction:column;gap:6px;margin-top:14px}.detail-actions .btn{width:100%;text-align:center}.detail-close{float:right;background:none;border:none;color:var(--text-faint);font-size:16px;line-height:1}.banner{display:flex;align-items:center;gap:12px;padding:8px 14px;background:#fff7e6;border-bottom:1px solid #f0e0b0;font-size:12px;color:#6b5a1f}.banner.progress{background:#eef4ff;border-color:#cdddf6;color:#2c4a7a}.progress-bar{flex:1;height:6px;background:#d8e3f5;border-radius:4px;overflow:hidden;max-width:280px}.progress-bar>div{height:100%;background:#3a6fc4;transition:width .3s ease}.empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-faint);gap:8px;text-align:center;padding:40px}.empty h2{color:var(--text-dim);font-weight:600;margin:0;font-size:15px}.login{height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background-color:#fff;background-image:url(/assets/login-background-yhIqvwSr.jpg);background-size:cover;background-position:center;background-repeat:no-repeat}.login-card{background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 40px #0000001f;padding:40px 44px 34px;display:flex;flex-direction:column;align-items:center;gap:16px;max-width:380px}.login-logo{width:200px;height:auto;display:block}.login .logo{font-size:28px;font-weight:700;letter-spacing:.06em}.login .logo span{color:var(--text-faint);font-weight:400}.login .sub{color:var(--text-dim)}.login .err{color:var(--danger);font-size:12px;max-width:360px;text-align:center}.google-btn{display:inline-flex;align-items:center;gap:10px;padding:10px 18px;border:1px solid var(--border-strong);border-radius:var(--radius);background:#fff;font-size:14px}.google-btn:hover{background:var(--accent-soft)}.muted{color:var(--text-faint);font-size:11px}
