:root{--dcg-accent:#78be20}.dcg-page{padding:0 0 3rem}.dcg-page-title{max-width:1400px;margin:1.5rem auto 0;padding:0 1rem;font-weight:600}.dcg-app{max-width:1400px;margin:0 auto;padding:1rem}.dcg-login{max-width:360px;margin:4rem auto;display:flex;flex-direction:column;gap:.75rem;text-align:center}.dcg-login-title{margin:0 0 .5rem;font-weight:600}.dcg-login input{padding:.7rem .9rem;border:1px solid #d0d0d0;border-radius:8px;font-size:1rem}.dcg-login input:focus{outline:2px solid #111;outline-offset:1px;border-color:#111}.dcg-login-btn{padding:.7rem 1rem;border:0;border-radius:8px;background:#111;color:#fff;font-size:1rem;cursor:pointer}.dcg-login-btn:disabled{opacity:.6;cursor:default}.dcg-error{color:#c0202a;font-size:.9rem;margin:0}.dcg-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:.9rem}.dcg-tbtn{padding:.5rem .9rem;border:1px solid #cfcfcf;border-radius:8px;background:#fff;color:#222;font-size:.9rem;cursor:pointer}.dcg-tbtn:hover{border-color:#999}.dcg-tbtn.dcg-primary{background:#111;color:#fff;border-color:#111;margin-left:auto}.dcg-tbtn:disabled{opacity:.5;cursor:default}.dcg-grid{display:flex;flex-wrap:wrap;gap:6px;align-content:flex-start}.dcg-item{flex:0 0 auto;position:relative;display:block;overflow:hidden;border-radius:3px;background:#f2f2f2;line-height:0}.dcg-item img{width:100%;height:100%;object-fit:cover;display:block}.dcg-check{position:absolute;top:8px;left:8px;width:24px;height:24px;border-radius:50%;background:rgba(255,255,255,.85);border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.4);cursor:pointer;opacity:0;transition:opacity 0.15s ease}.dcg-item:hover .dcg-check{opacity:1}.dcg-item.selected .dcg-check{opacity:1;background:var(--dcg-accent);border-color:var(--dcg-accent)}.dcg-item.selected .dcg-check::after{content:'';position:absolute;left:7px;top:3px;width:6px;height:11px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.dcg-item.selected{outline:3px solid var(--dcg-accent);outline-offset:-3px}@media (prefers-reduced-motion:reduce){.dcg-check{transition:none}}