*{box-sizing:border-box}body{margin:0;font-family:Arial,sans-serif;background:#f5f6f8;color:#202532}.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}aside{background:#171b24;color:#fff;padding:22px;display:flex;flex-direction:column;gap:6px}aside h2{margin:0 0 22px}aside a{color:#cfd5df;padding:10px;border-radius:8px}aside a:hover{background:#272e3d;color:#fff}aside form{margin-top:auto}button,.btn{border:0;border-radius:8px;padding:9px 12px;background:#e7eaf0;color:#202532;cursor:pointer;text-decoration:none;display:inline-block}.primary{background:#2f6fed;color:#fff}.danger{background:#dc3545;color:#fff}.inline{display:inline}main{min-width:0}header{background:#fff;border-bottom:1px solid #e5e8ee;padding:20px 28px}header h1{margin:0}section{padding:26px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}.card,.panel{background:#fff;border:1px solid #e5e8ee;border-radius:14px;padding:20px}.card span{color:#777}.card b{display:block;font-size:28px;margin-top:8px}.head,.actions{display:flex;justify-content:space-between;gap:10px;align-items:center}table{width:100%;border-collapse:collapse}th,td{padding:12px;border-bottom:1px solid #e5e8ee;text-align:left}td small{display:block;color:#777}label{display:grid;gap:6px;font-weight:600}input,textarea,select{width:100%;padding:10px;border:1px solid #dfe3ea;border-radius:8px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.thumbs{display:flex;gap:8px;flex-wrap:wrap}.thumbs img{width:90px;height:90px;object-fit:cover;border-radius:8px}.twocol{display:grid;grid-template-columns:1fr 1fr;gap:16px}.filters{display:flex;gap:8px;margin-bottom:15px}.filters select{width:auto}.ok,.err{padding:12px;border-radius:8px;margin-bottom:15px}.ok{background:#e9f7ee}.err{background:#fdecee;color:#9e1b2a}.login{min-height:100vh;display:grid;place-items:center;background:#eef1f5}.loginbox{width:min(420px,92vw);background:#fff;padding:30px;border-radius:16px;box-shadow:0 15px 40px #0001;display:grid;gap:15px}.check{display:flex;align-items:center;gap:8px}.check input{width:auto}@media(max-width:900px){.shell{grid-template-columns:1fr}aside{position:static}.cards,.grid,.twocol{grid-template-columns:1fr}}
