@import url(https://fonts.googleapis.com/css2?family=Fira+Sans:wght@400;500;600;700&family=Inter:wght@400;500;600;700&display=swap);:root{--color-primary:#0f172a;--color-primary-dark:#020617;--color-blue:#2563eb;--color-accent:#059669;--color-danger:#dc2626;--color-background:#f8fafc;--color-surface:#fff;--color-muted:#f1f5f9;--color-border:#e2e8f0;--color-text:#0f172a;--color-subtle:#64748b;--shadow-panel:0 18px 45px rgba(15,23,42,.08);--shadow-soft:0 12px 32px rgba(15,23,42,.06)}*{box-sizing:border-box}#app,body,html{min-height:100%}body{margin:0;background:var(--color-background);color:var(--color-text);font-family:Inter,Fira Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a,button,input{font:inherit}a,button{transition:background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid rgba(37,99,235,.35);outline-offset:2px}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}.brand-mark{align-items:center;background:var(--color-primary);border-radius:8px;color:#fff;display:inline-flex;font-weight:700;height:36px;justify-content:center;width:36px}.eyebrow{color:var(--color-blue);font-size:12px;font-weight:700;letter-spacing:0;margin:0 0 8px;text-transform:uppercase}.download-button,.primary-button,.secondary-button{align-items:center;border-radius:8px;display:inline-flex;min-height:44px;padding:0 18px;text-decoration:none}.download-button,.primary-button{background:var(--color-primary);border:1px solid var(--color-primary);color:#fff;font-weight:700}.download-button{background:var(--color-accent);border-color:var(--color-accent);justify-content:center;margin-top:22px;width:100%}.download-button:hover,.primary-button:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.secondary-button{background:#fff;border:1px solid var(--color-border);color:var(--color-text)}.secondary-button:hover{border-color:var(--color-primary);color:var(--color-primary)}.auth-shell,.download-page{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:24px}.download-panel,.notice-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;box-shadow:var(--shadow-panel);max-width:560px;padding:32px;width:100%}.brand-row{align-items:center;color:var(--color-subtle);display:flex;font-weight:600;gap:12px;margin-bottom:32px}.download-panel h1,.notice-panel h1{font-size:30px;line-height:1.2;margin:0;overflow-wrap:anywhere}.file-meta{display:grid;gap:12px;grid-template-columns:repeat(3,1fr);margin:24px 0 0}.file-meta div{background:var(--color-muted);border-radius:8px;padding:12px}.file-meta dt{color:var(--color-subtle);font-size:12px;margin-bottom:4px}.file-meta dd{font-weight:700;margin:0}.helper-text,.loading-block{color:var(--color-subtle);line-height:1.6}.admin-page{background:radial-gradient(circle at 15% 10%,rgba(37,99,235,.1),transparent 26%),radial-gradient(circle at 85% 18%,rgba(14,165,233,.1),transparent 24%),var(--color-background);display:grid;grid-template-columns:var(--sidebar-width,280px) minmax(0,1fr);height:100vh;overflow:hidden}.admin-sidebar{background:hsla(0,0%,100%,.78);backdrop-filter:blur(20px);border-right:1px solid rgba(226,232,240,.88);box-shadow:8px 0 32px rgba(15,23,42,.06);color:var(--color-text);flex-direction:column;gap:28px;height:100vh;padding:24px;position:relative;z-index:5}.admin-sidebar,.sidebar-brand{align-items:center;display:flex}.sidebar-brand{gap:12px;min-width:0;width:min(100%,280px)}.brand-logo{aspect-ratio:1;flex:0 0 42px;height:42px;-o-object-fit:contain;object-fit:contain;width:42px}.sidebar-brand strong{display:block;font-size:17px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-user small,.sidebar-brand small{color:var(--color-subtle);display:block;margin-top:4px}.nav-item{background:rgba(37,99,235,.08);border-radius:8px;color:var(--color-blue);display:block;font-weight:700;min-height:44px;padding:12px 14px;text-decoration:none}.admin-sidebar nav{width:min(100%,280px)}.nav-item.active{background:#fff;border:1px solid rgba(37,99,235,.18);box-shadow:var(--shadow-soft)}.admin-user{border-top:1px solid var(--color-border);margin-top:auto;position:relative;padding-top:18px;width:min(100%,280px)}.account-trigger{align-items:center;background:#fff;border:1px solid var(--color-border);border-radius:12px;box-shadow:var(--shadow-soft);color:var(--color-text);display:flex;gap:12px;min-height:56px;padding:10px;text-align:left;width:100%}.account-trigger:hover{border-color:rgba(37,99,235,.45)}.account-avatar,.dropdown-avatar-large{align-items:center;background:linear-gradient(135deg,#2563eb,#4f46e5);border-radius:50%;color:#fff;display:inline-flex;flex-shrink:0;font-weight:700;justify-content:center}.account-avatar{height:38px;width:38px}.account-summary{min-width:0}.account-summary strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-dropdown{background:#fff;border:1px solid rgba(226,232,240,.92);border-radius:14px;bottom:calc(100% + 12px);box-shadow:0 22px 60px rgba(15,23,42,.16);left:0;overflow:hidden;position:absolute;width:min(330px,calc(100vw - 40px));z-index:20}.dropdown-header{align-items:center;background:linear-gradient(180deg,#f8fafc,#fff);display:flex;flex-direction:column;padding:24px 20px 18px;text-align:center}.dropdown-avatar-large{font-size:28px;height:64px;margin-bottom:12px;width:64px}.dropdown-desc,.dropdown-name,.dropdown-text{margin:0}.dropdown-text{color:var(--color-subtle);font-size:13px}.dropdown-name{color:var(--color-text);font-weight:700;margin-top:4px;max-width:100%;overflow-wrap:anywhere}.dropdown-desc{color:var(--color-subtle);font-size:13px;margin-top:2px;overflow-wrap:anywhere}.manage-account-btn{background:#fff;border:1px solid #cbd5e1;border-radius:999px;color:var(--color-text);display:inline-flex;font-size:14px;font-weight:700;margin-top:16px;min-height:38px;padding:8px 16px;text-decoration:none}.dropdown-item:hover,.manage-account-btn:hover{background:#f1f5f9}.dropdown-divider{background:var(--color-border);height:1px}.dropdown-actions,.dropdown-footer{padding:8px 0}.dropdown-item{align-items:center;background:transparent;border:0;color:var(--color-text);display:flex;gap:12px;min-height:44px;padding:10px 18px;text-align:left;text-decoration:none;width:100%}.dropdown-icon{color:var(--color-subtle);height:18px;width:18px}.logout-dropdown-btn{color:var(--color-danger)}.sidebar-resizer{cursor:col-resize;height:100%;position:absolute;right:-3px;top:0;transition:background-color .2s ease;width:6px}.sidebar-resizer:active,.sidebar-resizer:hover{background:rgba(37,99,235,.45)}.admin-content{height:100vh;overflow-y:auto;padding:30px;min-width:0}.admin-header,.panel-title,.toolbar{align-items:center;display:flex;gap:16px;justify-content:space-between}.admin-header h1,.panel-title h2{margin:0}.admin-header h1{font-size:32px;letter-spacing:0}.header-actions{display:flex;flex-wrap:wrap;gap:10px}.upload-button{position:relative}.upload-button input{inset:0;opacity:0;position:absolute;width:100%}.upload-button.disabled{cursor:not-allowed;opacity:.68}.toolbar{background:hsla(0,0%,100%,.82);backdrop-filter:blur(14px);border:1px solid rgba(226,232,240,.9);border-radius:14px;box-shadow:var(--shadow-soft);margin:24px 0;padding:14px}.toolbar input{border:1px solid var(--color-border);border-radius:8px;flex:1;min-height:44px;min-width:220px;padding:0 14px}.status-text{color:var(--color-subtle);min-width:140px}.upload-progress{background:#fff;border:1px solid var(--color-border);border-radius:8px;margin:-10px 0 20px;padding:12px 14px}.upload-progress-meta{align-items:center;display:flex;gap:16px;justify-content:space-between;margin-bottom:10px}.upload-progress-meta strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-progress-meta span{color:var(--color-primary);font-variant-numeric:tabular-nums}.upload-progress-track{background:#e2e8f0;border-radius:999px;height:8px;overflow:hidden}.upload-progress-bar{background:var(--color-primary);height:100%;transition:width .2s ease}.log-panel,.table-panel{background:hsla(0,0%,100%,.92);border:1px solid rgba(226,232,240,.92);border-radius:14px;box-shadow:var(--shadow-panel);overflow:hidden}table{border-collapse:collapse;width:100%}td,th{border-bottom:1px solid var(--color-border);padding:14px;text-align:left;vertical-align:top}th{background:#f8fafc;font-size:13px;font-weight:700}td small,th{color:var(--color-subtle)}td small{display:block;margin-top:4px;overflow-wrap:anywhere}.muted{opacity:.55}.qr-thumb{border:1px solid var(--color-border);border-radius:8px;height:76px;width:76px}.row-actions{display:flex;flex-wrap:wrap;gap:8px}.row-actions a,.row-actions button{background:#fff;border:1px solid var(--color-border);border-radius:8px;color:var(--color-text);min-height:36px;padding:8px 10px;text-decoration:none}.row-actions .danger{border-color:#fecaca;color:var(--color-danger)}.empty-cell{color:var(--color-subtle);padding:28px;text-align:center}.log-panel{margin-top:24px;padding:18px}.log-list{display:grid;gap:10px;margin-top:16px}.log-list article{background:var(--color-muted);border-radius:8px;display:grid;gap:4px;padding:12px}.log-list small,.log-list span{color:var(--color-subtle)}@media (max-width:900px){.admin-page{grid-template-columns:1fr;height:auto;min-height:100vh;overflow:visible}.admin-sidebar{height:auto;position:static}.sidebar-resizer{display:none}.admin-header,.panel-title,.toolbar{align-items:stretch;flex-direction:column}.table-panel{overflow-x:auto}}@media (max-width:560px){.download-panel,.notice-panel{padding:22px}.file-meta{grid-template-columns:1fr}.admin-content{height:auto;overflow-y:visible;padding:18px}}