*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:Arial,Helvetica,sans-serif;color:#111;background:#fff}
body{min-height:100vh}
.topbar{height:116px;border:4px solid #111;display:flex;align-items:center;background:#fff}
.brand{width:145px;height:108px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.brand img{width:138px;height:138px;object-fit:contain}
.main-nav{display:flex;align-items:center;gap:18px;flex:1;justify-content:center}
.nav-btn{border:4px solid #111;border-radius:18px;padding:14px 28px;text-decoration:none;color:#111;font-size:26px;background:#fff}
.add-line{text-align:center;font-size:20px;margin:0 0 4px}
.add-line a{color:#111;text-decoration:none}
.search{width:590px;height:49px;border:4px solid #111;margin:0 0 28px auto;display:flex}
.search input{border:0;outline:0;font-size:20px;padding:7px 14px;flex:1}
.search button{width:52px;border:0;border-left:4px solid #111;background:#fff;font-size:37px;line-height:1;cursor:pointer}
.catalog{margin:0 30px 40px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:424px;gap:26px 88px;max-height:878px;overflow-y:auto;padding:4px 10px 22px}
.ebook-card{border:4px solid #111;padding:12px;display:flex;flex-direction:column;align-items:center;min-width:0;background:#fff}
.cover{width:100%;height:337px;border:4px solid #111;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#fafafa}
.cover img{width:100%;height:100%;object-fit:contain}
.ebook-meta{width:100%;padding:6px 4px 0;display:flex;flex-direction:column;align-items:center;min-height:47px}
.ebook-meta strong{font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.ebook-meta span{font-size:14px}
.show-btn,.primary-link{border:4px solid #111;border-radius:17px;padding:7px 48px;background:#fff;color:#111;text-decoration:none;font-size:25px;cursor:pointer}
.show-btn{margin-top:auto}
.empty{grid-column:1/-1;text-align:center;font-size:24px;padding:50px}
.form-page{min-height:100vh;padding:30px 16px;display:flex;flex-direction:column;align-items:center;background:#f8f8f8}
.back{align-self:center;color:#111;text-decoration:none;font-size:18px;margin-bottom:18px}
.form-box,.terms-box{width:min(620px,100%);background:#fff;border:4px solid #111;border-radius:16px;padding:28px;box-shadow:0 4px 16px rgba(0,0,0,.08)}
.form-box.wide{width:min(760px,100%)}
.form-box h1,.terms-box h1{margin-top:0;text-align:center}
.form-box form{display:flex;flex-direction:column;gap:16px}
.form-box label{display:flex;flex-direction:column;gap:7px;font-size:18px}
.form-box input:not([type="checkbox"]):not([type="file"]){font-size:18px;padding:12px;border:2px solid #111;border-radius:8px}
.form-box input[type="file"]{font-size:16px}
.primary,.primary-link{font-size:20px;padding:12px 20px}
.primary{border:3px solid #111;border-radius:12px;background:#fff;cursor:pointer}
.error,.success{padding:12px 15px;border:2px solid #111;border-radius:8px;margin-bottom:15px}
.error{background:#fff0f0}
.success{background:#f0fff3}
.terms-text{max-height:420px;overflow:auto;border:2px solid #111;padding:18px;margin-bottom:20px;line-height:1.5}
.check-line{display:flex;gap:10px;align-items:flex-start;font-size:17px;margin-bottom:20px}
.check-line input{width:20px;height:20px}
.hint{line-height:1.5}
.dashboard{max-width:1100px;margin:30px auto;padding:0 18px}
.dashboard h1{font-size:30px}
.dashboard-actions{margin:20px 0}
.my-list{display:flex;flex-direction:column;gap:12px}
.my-row{border:3px solid #111;border-radius:12px;padding:10px;display:grid;grid-template-columns:90px 1fr auto;gap:15px;align-items:center}
.my-row img{width:90px;height:90px;object-fit:contain;border:2px solid #111}
.my-row div{display:flex;flex-direction:column;gap:4px}
.my-row small{word-break:break-all}
.show-btn.small{font-size:18px;padding:8px 18px;margin:0}
@media(max-width:900px){
 .topbar{height:auto;min-height:100px;flex-wrap:wrap}
 .brand{width:110px;height:100px}.brand img{width:105px;height:105px}
 .main-nav{gap:8px;flex-wrap:wrap;padding:8px}
 .nav-btn{font-size:18px;padding:10px 15px}
 .search{width:calc(100% - 20px);margin:10px auto 20px}
 .catalog{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;max-height:900px}
}
@media(max-width:600px){
 .catalog{grid-template-columns:1fr;grid-auto-rows:auto;max-height:none}
 .cover{height:360px}
 .my-row{grid-template-columns:70px 1fr}
 .my-row .show-btn{grid-column:1/-1}
}
