:root{--black:#0a0a0a;--yellow:#fbd850;--white:#fff;--gray-50:#f6f6f4;--gray-100:#ecece8;--gray-300:#c8c8c2;--gray-600:#5c5c56;--danger:#b42318;--ok:#067647;--font:"Segoe UI", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{font-family:var(--font);background:var(--gray-50);color:var(--black)}a{color:inherit}button,input,select,textarea{font:inherit}.app-shell{grid-template-columns:220px 1fr;min-height:100vh;display:grid}.app-nav{background:var(--black);color:var(--white);padding:1.25rem 1rem}.app-nav__brand{letter-spacing:.04em;text-transform:uppercase;margin-bottom:1.5rem;font-weight:800}.app-nav__brand span{color:var(--yellow)}.app-nav a{border-radius:4px;margin-bottom:.35rem;padding:.65rem .75rem;text-decoration:none;display:block}.app-nav a.active,.app-nav a:hover{color:var(--yellow);background:#1c1c1c}.app-main{padding:1.25rem 1.5rem 2rem}.topbar{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.topbar h1{margin:0;font-size:1.35rem}.btn{border:2px solid var(--black);background:var(--white);min-height:2.4rem;color:var(--black);cursor:pointer;justify-content:center;align-items:center;gap:.4rem;padding:.45rem .9rem;font-weight:700;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--yellow);border-color:var(--yellow)}.btn-danger{border-color:var(--danger);color:var(--danger)}.btn-dark{background:var(--black);color:var(--white);border-color:var(--black)}.panel{background:var(--white);border:1px solid var(--gray-300);margin-bottom:1rem;padding:1rem}.filters{grid-template-columns:2fr 1fr 1fr auto;gap:.75rem;margin-bottom:1rem;display:grid}input,select,textarea{border:1px solid var(--gray-300);background:var(--white);width:100%;padding:.55rem .65rem}textarea{resize:vertical;min-height:6rem}label{color:var(--gray-600);gap:.35rem;font-size:.85rem;font-weight:600;display:grid}.grid-2{grid-template-columns:1fr 1fr;gap:.85rem;display:grid}.grid-3{grid-template-columns:1fr 1fr 1fr;gap:.85rem;display:grid}table{border-collapse:collapse;background:var(--white);width:100%}th,td{text-align:left;border-bottom:1px solid var(--gray-100);vertical-align:middle;padding:.65rem .5rem;font-size:.92rem}th{text-transform:uppercase;letter-spacing:.04em;color:var(--gray-600);font-size:.75rem}.thumb{object-fit:contain;background:var(--gray-50);border:1px solid var(--gray-100);flex-shrink:0;width:48px;min-width:48px;height:48px;min-height:48px;display:block}.thumb--empty{background:var(--gray-100)}.badge{border:1px solid var(--gray-300);text-transform:uppercase;padding:.15rem .45rem;font-size:.72rem;font-weight:700;display:inline-block}.badge-published{border-color:var(--ok);color:var(--ok)}.badge-draft{color:#b54708;border-color:#b54708}.badge-hidden{border-color:var(--gray-600);color:var(--gray-600)}.login-page{background:var(--black);min-height:100vh;color:var(--white);place-items:center;padding:1rem;display:grid}.login-card{background:#111;border:1px solid #333;width:min(420px,100%);padding:1.5rem}.login-card h1{color:var(--yellow);margin:0 0 .35rem}.login-card p{color:#bbb;margin:0 0 1.25rem;font-size:.92rem}.login-card label{color:#ddd;margin-bottom:.85rem}.error{color:#ffb4a8;margin:.5rem 0;font-size:.9rem}.app-main .error{color:var(--danger);background:#fef3f2;border:1px solid #fecdca;border-radius:4px;padding:.65rem .75rem}.app-main .ok{color:var(--ok);background:#ecfdf3;border:1px solid #abefc6;border-radius:4px;padding:.65rem .75rem}.ok{color:var(--ok);font-size:.9rem}.section-title{border-bottom:2px solid var(--yellow);margin:0 0 .75rem;padding-bottom:.35rem;font-size:1rem}.image-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;display:grid}.image-card{border:1px solid var(--gray-300);background:var(--gray-50);padding:.5rem}.image-card img{aspect-ratio:1;object-fit:contain;background:var(--white);width:100%}.image-card__missing{aspect-ratio:1;background:var(--white);border:1px dashed var(--gray-300);place-items:center;width:100%;font-size:.8rem;display:grid}.muted{color:var(--gray-600);font-size:.85rem}@media (width<=960px){.app-shell,.filters,.grid-2,.grid-3{grid-template-columns:1fr}}
