.admin-login-page{background:linear-gradient(135deg, var(--brand-700) 0%, var(--brand-600) 100%);justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.admin-login-container{width:100%;max-width:420px}.admin-login-box{background:var(--surface);border-radius:1rem;padding:3rem 2.5rem;animation:.4s ease-out slideIn;box-shadow:0 20px 60px #0003}@keyframes slideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.admin-login-header{text-align:center;flex-direction:column;align-items:center;gap:1rem;margin-bottom:2.5rem;display:flex}.admin-login-header svg{color:var(--brand)}.admin-login-header h1{color:var(--ink);margin:0;font-size:1.75rem;font-weight:700}.admin-login-header p{color:var(--ink-3);margin:0;font-size:.95rem}.admin-form{flex-direction:column;gap:1.5rem;display:flex}.form-group{flex-direction:column;gap:.5rem;display:flex}.form-group label{color:var(--ink);font-size:.95rem;font-weight:600}.form-group input{border:1.5px solid var(--line);border-radius:.6rem;padding:.75rem 1rem;font-size:1rem}.passcode-input{letter-spacing:.5rem;text-align:center;font-family:Courier New,monospace;font-size:1.5rem;font-weight:600}.email-hint{color:var(--ink-3);text-align:center;margin-top:.5rem;font-size:.8rem}.error-message{color:#991b1b;background:#fee2e2;border:1px solid #fecaca;border-radius:.6rem;padding:.75rem 1rem;font-size:.9rem}.admin-btn{background:linear-gradient(135deg, var(--brand) 0%, var(--brand-600) 100%);color:#fff;cursor:pointer;border:none;border-radius:.6rem;padding:.85rem 1.5rem;font-size:1rem;font-weight:600;transition:all .2s}.admin-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #4f46e566}.admin-btn-back{color:var(--brand);border:1.5px solid var(--line);cursor:pointer;background:0 0;border-radius:.6rem;padding:.75rem 1rem;font-weight:600}.admin-btn-back:hover:not(:disabled){background:var(--brand-050);border-color:var(--brand)}.form-note{color:var(--ink-3);text-align:center;margin:0;font-size:.85rem}@media (width<=480px){.admin-login-box{padding:2rem 1.5rem}.admin-login-header h1{font-size:1.5rem}}@media (width<=380px){.admin-login-page{padding:1rem}.admin-login-box{padding:1.5rem 1rem}.passcode-input{letter-spacing:.25rem;font-size:1.25rem}}.user-detail-page{width:100%;max-width:1400px;margin:0 auto;padding:2rem}.detail-header{margin-bottom:2rem}.back-btn{background:var(--paper);color:var(--ink-2);border:1px solid var(--line);border-radius:.5rem;align-items:center;gap:.5rem;margin-bottom:1rem;padding:.6rem 1rem;font-weight:600;display:flex}.back-btn:hover{background:var(--surface);border-color:var(--brand);color:var(--brand)}.user-detail-info h1{color:var(--ink);word-break:break-all;margin:0;font-size:1.75rem;font-weight:700}.user-detail-info p{color:var(--ink-3);margin:.5rem 0 0;font-size:.95rem}.detail-controls{margin-bottom:2rem}.app-filters{flex-wrap:wrap;gap:.75rem;display:flex}.filter-btn{background:var(--surface);color:var(--ink-2);border:1px solid var(--line);cursor:pointer;white-space:nowrap;border-radius:.5rem;align-items:center;gap:.5rem;padding:.6rem 1rem;font-weight:600;transition:all .2s;display:flex}.filter-btn:hover{border-color:var(--brand);color:var(--brand)}.filter-btn.active{background:var(--brand);color:#fff;border-color:var(--brand)}.detail-error{color:#991b1b;background:#fee2e2;border:1px solid #fecaca;border-radius:.6rem;margin-bottom:1.5rem;padding:1rem 1.5rem}.captures-section{min-height:400px}.detail-loading,.detail-empty{min-height:400px;color:var(--ink-3);flex-direction:column;justify-content:center;align-items:center;display:flex}.detail-empty svg{opacity:.5;margin-bottom:1rem}.captures-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1.5rem;display:grid}.capture-card{background:var(--surface);border:1px solid var(--line);cursor:pointer;border-radius:.8rem;transition:all .3s;overflow:hidden}.capture-card:hover{border-color:var(--brand);transform:translateY(-4px);box-shadow:0 8px 24px #0000001a}.capture-image-container{aspect-ratio:3/4;background:var(--paper);width:100%;position:relative;overflow:hidden}.capture-image-container img{object-fit:cover;width:100%;height:100%;transition:all .3s}.capture-card:hover .capture-image-container img{transform:scale(1.05)}.capture-overlay{opacity:0;background:#00000080;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:absolute;inset:0}.capture-card:hover .capture-overlay{opacity:1}.overlay-btn{background:var(--brand);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;transition:all .2s;display:flex}.overlay-btn:hover{background:var(--brand-600);transform:scale(1.1)}.capture-meta{padding:1rem}.app-name{color:var(--brand);text-transform:capitalize;margin:0 0 .25rem;font-size:.9rem;font-weight:600}.capture-time{color:var(--ink-3);margin:0;font-size:.8rem}.capture-viewer{z-index:100;background:#000000f2;flex-direction:column;display:flex;position:fixed;inset:0}.viewer-header{border-bottom:1px solid #ffffff1a;align-items:center;gap:2rem;padding:1.5rem 2rem;display:flex}.viewer-header button{color:#fff;cursor:pointer;white-space:nowrap;background:#ffffff1a;border:none;border-radius:.5rem;align-items:center;gap:.5rem;padding:.6rem 1rem;font-weight:600;display:flex}.viewer-header button:hover{background:#fff3}.viewer-title{color:#fff;text-transform:capitalize;margin:0;font-size:1.1rem;font-weight:600}.viewer-date{color:#ffffffb3;margin:0 0 0 auto;font-size:.9rem}.viewer-content{flex:1;justify-content:center;align-items:center;padding:2rem;display:flex;overflow:auto}.viewer-content img{object-fit:contain;max-width:100%;max-height:100%}@media (width<=768px){.user-detail-page{padding:1rem}.user-detail-info h1{font-size:1.25rem}.captures-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}.viewer-header{flex-wrap:wrap;padding:1rem}.viewer-date{width:100%;margin-top:.5rem;margin-left:0}}@media (width<=700px){.user-detail-page{padding:1rem}.app-filters{flex-wrap:nowrap;padding-bottom:.25rem;overflow-x:auto}.filter-btn{flex:none}.captures-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem}.viewer-header{flex-direction:column;align-items:stretch;gap:.75rem;padding:1rem}.viewer-date{margin-left:0}.viewer-content{padding:1rem}}@media (width<=380px){.captures-grid{grid-template-columns:1fr}}.admin-portal{flex:1;width:100%;max-width:1400px;margin:0 auto;padding:2rem}.portal-header{justify-content:space-between;align-items:flex-start;gap:2rem;margin-bottom:2rem;display:flex}.portal-header-content h2{color:var(--ink);margin:0 0 .5rem;font-size:1.75rem;font-weight:700}.portal-header-content p{color:var(--ink-3);margin:0}.portal-refresh-btn{background:var(--brand);color:#fff;white-space:nowrap;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-weight:600;display:flex}.portal-refresh-btn:hover{background:var(--brand-600);transform:translateY(-2px)}.portal-error{color:#991b1b;background:#fee2e2;border:1px solid #fecaca;border-radius:.6rem;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:1rem 1.5rem;display:flex}.portal-controls{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:2rem;display:flex}.search-box{background:var(--surface);border:1px solid var(--line);border-radius:.6rem;flex:1;align-items:center;gap:.75rem;min-width:250px;padding:.75rem 1rem;display:flex}.search-box input{background:0 0;border:none;flex:1;padding:0}.user-count{color:var(--ink-3);font-size:.9rem;font-weight:600}.users-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;min-height:300px;display:grid}.portal-loading,.portal-empty{min-height:300px;color:var(--ink-3);flex-direction:column;grid-column:1/-1;justify-content:center;align-items:center;display:flex}.portal-empty svg{opacity:.5;margin-bottom:1rem}.user-card{background:var(--surface);border:1px solid var(--line);cursor:pointer;border-radius:.8rem;flex-direction:column;gap:1.5rem;padding:1.5rem;transition:all .3s;display:flex}.user-card:hover{border-color:var(--brand);transform:translateY(-4px);box-shadow:0 8px 24px #0000001a}.user-card-header{align-items:flex-start;gap:1rem;display:flex}.user-avatar{background:var(--brand-050);width:48px;height:48px;color:var(--brand);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.25rem;font-weight:700;display:flex}.user-info h3{color:var(--ink);word-break:break-all;margin:0;font-size:1rem;font-weight:700}.user-info p{color:var(--ink-3);margin:.25rem 0 0;font-size:.85rem}.user-stats{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.stat{flex-direction:column;gap:.25rem;display:flex}.stat-label{color:var(--ink-3);text-transform:uppercase;letter-spacing:.5px;font-size:.8rem;font-weight:600}.stat-value{color:var(--brand);font-size:1.25rem;font-weight:700}.user-card-action{background:var(--brand-050);color:var(--brand);cursor:pointer;border:none;border-radius:.5rem;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1rem;font-weight:600;transition:all .2s;display:flex}.user-card-action:hover{background:var(--brand);color:#fff}@media (width<=768px){.admin-portal{padding:1rem}.portal-header{flex-direction:column}.portal-refresh-btn{justify-content:center;width:100%}.users-grid{grid-template-columns:1fr}.user-stats{grid-template-columns:repeat(3,1fr)}}@media (width<=560px){.portal-header{gap:1rem;margin-bottom:1.25rem}.portal-header-content h2{font-size:1.45rem}.portal-controls{flex-direction:column;align-items:stretch}.search-box{width:100%;min-width:0}.user-card{gap:1rem;padding:1rem}.user-card-header{align-items:center}.user-stats{grid-template-columns:1fr;gap:.75rem}.stat{border-top:1px solid var(--line);flex-direction:row;justify-content:space-between;align-items:center;padding-top:.75rem}}.admin-app{background:var(--paper);flex-direction:column;min-height:100vh;display:flex}.admin-loading-screen{min-height:100vh;color:var(--ink-3);flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex}.admin-app-header{background:var(--surface);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:2rem;padding:1.5rem 2rem;display:flex}.admin-header-left{align-items:center;gap:1rem;display:flex}.admin-logo{color:var(--brand);align-items:center;gap:.75rem;font-size:1.25rem;font-weight:700;display:flex}.admin-header-subtitle{color:var(--ink-3);margin:0;font-size:.85rem}.admin-header-right{align-items:center;gap:2rem;margin-left:auto;display:flex}.admin-logged-in{color:var(--ink-2);font-size:.9rem}.admin-logout-btn{color:#991b1b;cursor:pointer;background:#fee2e2;border:none;border-radius:.5rem;align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-size:.9rem;font-weight:600;display:flex}.admin-logout-btn:hover{background:#fecaca}@media (width<=768px){.admin-app-header{flex-direction:column;align-items:flex-start;padding:1rem}.admin-header-right{gap:1rem;width:100%;margin-left:0}.admin-logout-btn{justify-content:center;width:100%}}@media (width<=560px){.admin-header-left,.admin-header-right{flex-direction:column;align-items:stretch;gap:.75rem}.admin-logo{font-size:1.05rem}.admin-logged-in{word-break:break-all}}:root{--brand:#6366f1;--brand-600:#4f46e5;--brand-700:#4338ca;--brand-050:#eef0fe;--surface:#fff;--paper:#f9fafb;--line:#e5e7eb;--ink:#111827;--ink-2:#374151;--ink-3:#6b7280}@media (prefers-color-scheme:dark){:root{--surface:#1f2937;--paper:#111827;--line:#374151;--ink:#f9fafb;--ink-2:#e5e7eb;--ink-3:#9ca3af}}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%}body{background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.6}.spinner{border:3px solid var(--line);border-top-color:var(--brand);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}button{cursor:pointer;border:none;border-radius:.5rem;font-family:inherit;transition:all .2s}button:disabled{opacity:.5;cursor:not-allowed}input,select{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:.5rem;padding:.75rem;font-family:inherit;font-size:1rem}input:focus,select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-050);outline:none}::placeholder{color:var(--ink-3)}
