/* Book Access Portal — front-end (login + reader). Scoped under .bap-portal. */
.bap-portal{
	--bap-ink:#0f1b2d;--bap-muted:#5a6b82;--bap-border:#e4e9f0;
	--bap-accent:#1e6fd9;--bap-accent-dark:#1557ab;--bap-bg:#f6f8fc;--bap-card:#fff;
	font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;
	color:var(--bap-ink);box-sizing:border-box;
}
.bap-portal *{box-sizing:border-box}
.bap-hidden{display:none!important}

/* ---- Login card ---- */
.bap-login{display:flex;justify-content:center;padding:32px 16px}
.bap-card{
	width:100%;max-width:420px;background:var(--bap-card);
	border:1px solid var(--bap-border);border-radius:16px;
	padding:clamp(22px,4vw,32px);box-shadow:0 10px 30px rgba(15,27,45,.06)
}
.bap-title{font-size:clamp(20px,3vw,24px);font-weight:700;margin:0 0 6px;line-height:1.25}
.bap-sub{font-size:14px;color:var(--bap-muted);margin:0 0 20px;line-height:1.55}
.bap-label{display:block;font-size:13px;font-weight:600;margin:0 0 6px}
.bap-input{
	width:100%;padding:12px 14px;font-size:15px;font-family:inherit;
	border:1px solid var(--bap-border);border-radius:10px;background:#fff;color:var(--bap-ink);
	transition:border-color .15s,box-shadow .15s
}
.bap-input:focus{outline:none;border-color:var(--bap-accent);box-shadow:0 0 0 3px rgba(30,111,217,.15)}
.bap-code-input{letter-spacing:8px;text-align:center;font-size:20px;font-weight:700}
.bap-ts{margin:14px 0 2px}
.bap-btn{
	width:100%;margin-top:16px;padding:13px 16px;font-size:15px;font-weight:600;font-family:inherit;
	color:#fff;background:var(--bap-accent);border:0;border-radius:10px;cursor:pointer;
	transition:background .15s,transform .05s
}
.bap-btn:hover{background:var(--bap-accent-dark)}
.bap-btn:active{transform:translateY(1px)}
.bap-btn:disabled{opacity:.6;cursor:not-allowed}
.bap-link{display:block;width:100%;margin-top:10px;padding:8px;font-size:13px;font-family:inherit;
	color:var(--bap-muted);background:none;border:0;cursor:pointer;text-decoration:underline}
.bap-msg{margin:16px 0 0;font-size:14px;line-height:1.5;color:#1b7a3d;background:#eafaf0;
	border:1px solid #bfe9cd;border-radius:10px;padding:10px 12px}
.bap-msg.bap-is-error{color:#9a2222;background:#fdecec;border-color:#f3c3c3}
:where(.bap-btn,.bap-link,.bap-nav-btn,.bap-logout):focus-visible{outline:2px solid var(--bap-accent);outline-offset:2px}

/* ---- Notes ---- */
.bap-spam-note{margin:12px 0 0;font-size:12.5px;line-height:1.5;color:var(--bap-muted);
	background:#f6f8fc;border:1px solid var(--bap-border);border-radius:9px;padding:9px 11px}
.bap-admin-note{margin:0 0 14px;font-size:12px;line-height:1.5;color:#8a5a00;
	background:#fff7e6;border:1px solid #ffe2a8;border-radius:9px;padding:8px 11px}

/* ---- Countdown ---- */
.bap-countdown-wrap{display:flex;justify-content:center;padding:32px 16px}
.bap-countdown-card{text-align:center;max-width:460px}
.bap-countdown{display:flex;justify-content:center;gap:clamp(8px,3vw,16px);margin:22px 0 8px}
.bap-cd-unit{display:flex;flex-direction:column;align-items:center;gap:6px;
	background:var(--bap-ink);color:#fff;border-radius:12px;padding:14px clamp(8px,2.2vw,16px);min-width:64px}
.bap-cd-num{font-size:clamp(22px,6vw,34px);font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
.bap-cd-lbl{font-size:11px;font-weight:600;letter-spacing:.04em;color:#aebfd6}
.bap-cd-date{margin:14px 0 0;font-size:13px;color:var(--bap-muted)}
.bap-cd-note{margin:10px 0 0;font-size:12.5px;line-height:1.5;color:var(--bap-muted)}
.bap-countdown-card .bap-logout{margin-top:18px}

/* ---- Reader ---- */
.bap-reader-wrap{display:flex;flex-direction:column;min-height:70vh}
.bap-reader-bar{
	position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:12px;flex-wrap:wrap;
	justify-content:space-between;padding:10px 14px;background:#fff;
	border:1px solid var(--bap-border);border-radius:12px;margin-bottom:12px;
	box-shadow:0 2px 10px rgba(15,27,45,.05)
}
.bap-reader-nav,.bap-reader-zoom,.bap-reader-user{display:flex;align-items:center;gap:8px}
.bap-nav-btn{
	min-width:38px;height:38px;padding:0 10px;font-size:18px;line-height:1;font-family:inherit;
	color:var(--bap-ink);background:#f1f5fb;border:1px solid var(--bap-border);border-radius:9px;cursor:pointer
}
.bap-nav-btn:hover{background:#e6eefb;border-color:#cdddf6}
.bap-pageinfo{font-size:13px;color:var(--bap-muted);min-width:120px;text-align:center}
.bap-user-email{font-size:12px;color:var(--bap-muted);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bap-logout{font-size:13px;font-family:inherit;color:var(--bap-accent);background:none;
	border:1px solid var(--bap-border);border-radius:8px;padding:7px 12px;cursor:pointer}
.bap-logout:hover{background:#f1f5fb}
.bap-reader-stage{
	position:relative;flex:1;overflow:auto;max-height:82vh;
	background:#eef1f6;border:1px solid var(--bap-border);border-radius:12px;padding:16px
}
.bap-reader-loading{text-align:center;color:var(--bap-muted);font-size:14px;padding:40px 0}
.bap-pages{display:flex;flex-direction:column;align-items:center;gap:16px}
.bap-page{background:#fff;box-shadow:0 2px 14px rgba(15,27,45,.12);border-radius:4px;overflow:hidden}
.bap-canvas{display:block;max-width:100%;height:auto;user-select:none;-webkit-user-select:none;-webkit-user-drag:none}

@media (max-width:620px){
	.bap-reader-bar{gap:8px}
	.bap-pageinfo{min-width:90px}
	.bap-user-email{display:none}
	.bap-reader-stage{padding:10px;max-height:78vh}
}
