.pub-section { max-width:1100px; margin:40px auto; padding:20px; color:#0a1f44; }
.pub-section h1 { text-align:center; font-size:32px; }
.pub-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:20px; margin:30px 0; }
.pub-card { display:flex; align-items:center; gap:15px; padding:25px 20px; background:#f3f5f7; border:2px solid #dce3e8; border-radius:10px; cursor:pointer; font-weight:600; }
.pub-card:has(input:checked) { border-color:#247548; background:#eff8f1; }
.pub-card input { width:20px; height:20px; accent-color:#247548; }
.pub-pdf { background:#b82e2e; color:white; border-radius:5px; padding:15px 8px; font-size:14px; }
.pub-button { border:0; border-radius:5px; background:#0a1f44; color:white; padding:13px 22px; cursor:pointer; font:inherit; }
.pub-button:disabled { opacity:.55; cursor:default; }
.pub-button:focus-visible, .pub-card:focus-within { outline:3px solid #2f80ed; outline-offset:3px; }
#pub-dialog { position:fixed; inset:0; margin:auto; box-sizing:border-box; width:calc(100% - 32px); max-width:500px; max-height:90vh; overflow:auto; padding:30px; border:0; border-radius:10px; color:#0a1f44; }
#pub-dialog::backdrop { background:rgba(0,0,0,.6); }
#pub-dialog h2 { padding-right:20px; }
#pub-close { position:absolute; right:12px; top:8px; border:0; background:transparent; font-size:30px; cursor:pointer; }
#pub-form label { display:block; margin:14px 0 5px; font-weight:600; }
#pub-form input:not([type=hidden]) { box-sizing:border-box; width:100%; padding:10px; border:1px solid #8999a6; border-radius:5px; font:inherit; }
#pub-form .pub-button { width:100%; }
#pub-error { color:#b42318; }
