:root{--bg:#0f172a;--panel:#fff;--text:#172033;--muted:#6b7280;--line:#e5e7eb;--accent:#3157d5;--danger:#b42318;--ok:#067647}
*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif;background:#f5f7fb;color:var(--text)}
a{color:var(--accent);text-decoration:none}button,.btn{border:0;border-radius:10px;padding:10px 14px;background:var(--accent);color:#fff;font-weight:700;cursor:pointer;display:inline-block}.btn.secondary{background:#eef2ff;color:#263fa9}.btn.danger{background:var(--danger)}
.header{background:var(--bg);color:#fff;padding:18px 0}.wrap{width:min(1120px,92vw);margin:auto}.brand{font-size:24px;font-weight:800}.subtle{color:#9ca3af}.card{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 6px 22px rgba(15,23,42,.05);padding:22px}.center-card{max-width:480px;margin:8vh auto}.grid{display:grid;gap:18px}.grid.cols{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.field{margin:12px 0}.field label{display:block;font-size:14px;font-weight:700;margin-bottom:6px}.field input,.field textarea,.field select{width:100%;padding:11px 12px;border:1px solid #ccd2dc;border-radius:10px;font:inherit}.notice{padding:11px 13px;border-radius:10px;background:#eef2ff;margin:12px 0}.error{background:#fef3f2;color:#912018}.ok{background:#ecfdf3;color:#05603a}.toolbar{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:22px 0}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.badge{display:inline-block;padding:5px 8px;border-radius:999px;font-size:12px;font-weight:700;background:#eef2ff;color:#3448a6}.badge.ok{background:#ecfdf3;color:#067647}.badge.expired{background:#fef3f2;color:#b42318}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}.thumb{aspect-ratio:4/3;background:#e5e7eb;border-radius:12px;overflow:hidden;position:relative}.thumb img{width:100%;height:100%;object-fit:cover}.thumb .dl{position:absolute;right:8px;bottom:8px;background:rgba(15,23,42,.78);padding:6px 8px;border-radius:7px;color:#fff;font-size:12px}.dropzone{border:2px dashed #9aa6bd;border-radius:16px;padding:38px;text-align:center;background:#fafbff;transition:.2s}.dropzone.drag{border-color:var(--accent);background:#eef2ff}.progress{height:9px;background:#e5e7eb;border-radius:999px;overflow:hidden;margin-top:10px}.progress>div{height:100%;width:0;background:var(--accent)}.stat{font-size:28px;font-weight:800}.muted{color:var(--muted)}.toplinks{display:flex;gap:16px;align-items:center}.toplinks a{color:#fff}.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.93);display:none;align-items:center;justify-content:center;z-index:30}.lightbox.open{display:flex}.lightbox img{max-width:92vw;max-height:88vh;object-fit:contain}.lightbox button{position:absolute;top:20px;right:20px;background:#fff;color:#111}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:end}.row>.field{flex:1;min-width:210px}@media(max-width:700px){.table-wrap{overflow:auto}.gallery{grid-template-columns:repeat(2,1fr)}}

/* PicMyVault branding */
.brand-logo{height:72px;width:auto;display:block;object-fit:contain}
.brand-logo-small{height:52px;width:auto;display:block;object-fit:contain}
.brand-lockup{display:flex;align-items:center;gap:12px}
.brand-lockup .brand-label{font-weight:800;font-size:18px}
.danger-zone{border:1px solid #fecaca;background:#fff7f7}
.danger-zone h2{color:var(--danger)}
.code-row{display:flex;gap:10px;align-items:end;flex-wrap:wrap}
.code-row .field{flex:1;min-width:220px}
.code-row .btn{margin-bottom:12px}
