:root{--bg:#f4f5f7;--surface:#fff;--surface-muted:#eceef2;--text:#15171c;--text-muted:#6b7280;--border:#e2e4e9;--accent:#4f46e5;--accent-text:#fff;--danger:#dc2626;--danger-text:#fff;--success:#16a34a;--shadow:0 1px 2px #10141e0f, 0 8px 24px #10141e14;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0b0f19;--surface:#141926;--surface-muted:#1b2233;--text:#f1f3f8;--text-muted:#9aa3b5;--border:#262f45;--accent:#818cf8;--accent-text:#0b0f19;--danger:#f87171;--danger-text:#1a0a0a;--success:#4ade80;--shadow:0 1px 2px #0000004d, 0 8px 24px #0006}}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);font:15px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}button{font:inherit;cursor:pointer}img,video{max-width:100%;display:block}.app{flex-direction:column;min-height:100vh;display:flex}.app__header{z-index:10;background:var(--bg);border-bottom:1px solid var(--border);padding:16px 16px 8px;position:sticky;top:0}.app__title{margin:0 0 12px;font-size:20px;font-weight:700}.tabs{background:var(--surface-muted);border-radius:12px;gap:6px;padding:4px;display:flex}.tabs__button{color:var(--text-muted);background:0 0;border:none;border-radius:9px;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px 8px;font-size:13px;font-weight:600;transition:background-color .15s,color .15s;display:flex}.tabs__button[aria-selected=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.tabs__count{color:var(--text-muted);background:var(--surface-muted);border-radius:999px;padding:1px 7px;font-size:11px}.tabs__button[aria-selected=true] .tabs__count{background:var(--bg)}.tabs__dot{background:var(--danger);border-radius:50%;width:6px;height:6px;display:inline-block}.main{flex:1;padding:16px 16px 96px}.grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;display:grid}.card{background:var(--surface);box-shadow:var(--shadow);aspect-ratio:9/12;text-align:left;border:none;border-radius:14px;flex-direction:column;padding:0;display:flex;position:relative;overflow:hidden}.card__media-wrap{background:var(--surface-muted);flex:1;position:relative;overflow:hidden}.card__media{object-fit:cover;width:100%;height:100%}.card__badge{color:#fff;background:#0000008c;border-radius:999px;align-items:center;gap:3px;padding:3px 6px;font-size:11px;display:flex;position:absolute;top:6px;right:6px}.card__name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;padding:8px 10px;font-size:12px;font-weight:600;overflow:hidden}.card--add{color:var(--accent);background:var(--surface);border:2px dashed var(--border);box-shadow:none;justify-content:center;align-items:center;gap:6px}.card--add svg{width:28px;height:28px}.state-banner{background:var(--surface);box-shadow:var(--shadow);color:var(--text-muted);border-radius:12px;margin-bottom:14px;padding:14px 16px;font-size:13px}.state-banner--error{color:var(--danger);background:var(--surface);border:1px solid var(--danger)}.state-banner__retry{color:inherit;background:0 0;border:1px solid;border-radius:8px;margin-top:8px;padding:6px 12px;font-size:12px;font-weight:600}.skeleton-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;display:grid}.skeleton{aspect-ratio:9/12;background:linear-gradient(100deg, var(--surface-muted) 30%, var(--surface) 50%, var(--surface-muted) 70%);background-size:200% 100%;border-radius:14px;animation:1.3s ease-in-out infinite shimmer}@keyframes shimmer{0%{background-position:150% 0}to{background-position:-50% 0}}.overlay{z-index:50;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);background:#05070cb8;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.overlay--center{align-items:center;padding:16px}.sheet{background:var(--surface);color:var(--text);width:100%;max-width:480px;padding:18px 18px calc(18px + env(safe-area-inset-bottom));box-shadow:var(--shadow);border-radius:20px 20px 0 0;max-height:88vh;overflow-y:auto}.sheet__handle{background:var(--border);border-radius:999px;width:36px;height:4px;margin:0 auto 14px}.sheet__title{margin:0 0 14px;font-size:16px;font-weight:700}.viewer{background:var(--surface);color:var(--text);width:100%;max-width:420px;box-shadow:var(--shadow);border-radius:18px;overflow:hidden}.viewer__media-wrap{background:#000;justify-content:center;align-items:center;max-height:60vh;display:flex}.viewer__media-wrap img,.viewer__media-wrap video{object-fit:contain;width:100%;max-height:60vh}.viewer__body{padding:14px 16px calc(16px + env(safe-area-inset-bottom));flex-direction:column;gap:10px;display:flex}.viewer__name{word-break:break-word;font-size:15px;font-weight:700}.viewer__meta{color:var(--text-muted);font-size:12px}.viewer__actions{gap:8px;margin-top:4px;display:flex}.btn{border:none;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:6px;padding:11px 14px;font-size:14px;font-weight:600;display:inline-flex}.btn--neutral{background:var(--surface-muted);color:var(--text)}.btn--danger{background:var(--danger);color:var(--danger-text)}.btn--accent{background:var(--accent);color:var(--accent-text)}.btn:disabled{opacity:.6;cursor:default}.confirm-danger{background:color-mix(in srgb, var(--danger) 12%, var(--surface));border:1px solid var(--danger);color:var(--text);border-radius:10px;padding:10px 12px;font-size:13px}.confirm-danger__actions{gap:8px;margin-top:8px;display:flex}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field label{color:var(--text-muted);font-size:12px;font-weight:600}.field input[type=text]{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:10px;padding:10px 12px;font-size:14px}.file-drop{border:2px dashed var(--border);text-align:center;color:var(--text-muted);border-radius:12px;margin-bottom:14px;padding:24px 12px;font-size:13px}.file-drop strong{color:var(--accent)}.progress{background:var(--surface-muted);border-radius:999px;height:6px;margin-bottom:10px;overflow:hidden}.progress__fill{background:var(--accent);height:100%;transition:width .15s}.upload-error{color:var(--danger);margin-bottom:10px;font-size:13px}.sheet__close,.viewer__close{color:var(--text-muted);float:right;background:0 0;border:none;font-size:13px;font-weight:600}
