
.osdl-home-section{margin:36px 0}
.osdl-section-head{margin:0 0 18px}
.osdl-section-head h2{margin:8px 0 0;font-size:clamp(28px,3vw,40px);line-height:1.15;color:#153a6c}
.osdl-eyebrow,.osdl-pill{display:inline-block;background:#e7f0fb;color:#174272;font-weight:800;border-radius:999px;padding:8px 14px;font-size:13px;letter-spacing:.02em}
.osdl-hero-v4{display:grid;grid-template-columns:1.2fr .8fr;gap:28px;background:linear-gradient(135deg,#123f79 0%,#215ea9 100%);color:#fff;border-radius:34px;padding:42px;box-shadow:0 20px 60px rgba(15,49,92,.16);position:relative;overflow:hidden}
.osdl-hero-v4:before{content:"";position:absolute;inset:auto -120px -120px auto;width:320px;height:320px;background:rgba(255,255,255,.08);filter:blur(4px);border-radius:50%}
.osdl-hero-v4 h1{font-size:clamp(34px,4vw,56px);line-height:1.06;margin:16px 0}
.osdl-lead{font-size:19px;max-width:760px;color:#eff6ff}
.osdl-hero-list{margin:24px 0 0;padding-left:20px}
.osdl-hero-list li{margin:10px 0;font-size:17px}
.osdl-hero-panel{display:flex;align-items:center}
.osdl-quick-card,.osdl-card,.osdl-book-card{background:#fff;border:1px solid #dbe7f4;border-radius:28px;box-shadow:0 16px 48px rgba(13,44,85,.08)}
.osdl-quick-card{padding:28px;color:#163253}
.osdl-quick-card h3{font-size:34px;line-height:1.05;margin:10px 0 18px}
.osdl-chip-grid{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:18px}
.osdl-chip-grid a{display:inline-block;padding:12px 18px;border-radius:999px;background:#123f79;color:#fff;font-weight:700}
.osdl-mini-box{background:#f2f7fd;border-radius:22px;padding:18px}
.osdl-mini-box p{margin:8px 0 0}
.osdl-btn{display:inline-flex;align-items:center;justify-content:center;padding:13px 20px;border-radius:999px;background:#123f79;color:#fff;font-weight:800;border:0}
.osdl-btn:hover{opacity:.95;color:#fff}
.osdl-btn-light{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.45)}
.osdl-cta-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:18px}
.osdl-two-col,.osdl-three-col,.osdl-four-col,.osdl-book-grid{display:grid;gap:20px}
.osdl-two-col{grid-template-columns:1fr 1fr}
.osdl-three-col{grid-template-columns:repeat(3,1fr)}
.osdl-four-col{grid-template-columns:repeat(4,1fr)}
.osdl-card{padding:24px}
.osdl-card h3{margin:0 0 10px;color:#153a6c;font-size:28px;line-height:1.1}
.osdl-card p,.osdl-card li{color:#304d6b;font-size:17px}
.osdl-vm-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.osdl-text-link{font-weight:800}
.osdl-search-bar{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.osdl-search-bar input{flex:1;min-width:220px;border:1px solid #c8d9ec;border-radius:16px;padding:14px 16px;font-size:16px}
.osdl-book-grid{grid-template-columns:repeat(3,1fr)}
.osdl-book-card{overflow:hidden}
.osdl-book-cover{background:#eef5fe;padding:18px;min-height:220px;display:flex;align-items:center;justify-content:center}
.osdl-book-cover img{width:150px;height:auto}
.osdl-book-body{padding:20px}
.osdl-book-body h3{margin:8px 0 12px;font-size:24px;line-height:1.15;color:#163253}
.osdl-book-body p{margin:6px 0;color:#31506e}
.osdl-status,.osdl-status-chip{display:inline-block;background:#e7f4ea;color:#175d2d;border-radius:999px;padding:6px 12px;font-weight:800;font-size:13px}
.osdl-front-form{background:#fff;border:1px solid #dbe7f4;border-radius:28px;padding:24px;box-shadow:0 16px 48px rgba(13,44,85,.08)}
.osdl-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.osdl-form-grid p{margin:0}
.osdl-form-grid p.full{grid-column:1/-1}
.osdl-front-form input,.osdl-front-form select,.osdl-front-form textarea{width:100%;box-sizing:border-box;border:1px solid #c8d9ec;border-radius:16px;padding:13px 14px;font-size:16px;margin-top:8px}
.osdl-front-form label{display:block;font-weight:700;color:#163253}
.osdl-hp{position:absolute;left:-9999px}
.osdl-alert{background:#edf4fd;border:1px solid #dbe7f4;padding:14px 16px;border-radius:18px;margin-bottom:14px}
.osdl-alert.success{background:#eef8ef;border-color:#cfe6d1}
.osdl-chatbot{position:fixed;right:22px;bottom:20px;z-index:9999}
.osdl-chat-toggle{display:flex;align-items:center;gap:12px;background:#123f79;color:#fff;border:0;border-radius:999px;padding:12px 16px;box-shadow:0 14px 40px rgba(14,47,87,.24);cursor:pointer}
.osdl-chat-toggle img{width:42px;height:42px;border-radius:50%;background:#fff}
.osdl-chat-toggle strong,.osdl-chat-head strong{display:block;font-size:18px}
.osdl-chat-toggle small,.osdl-chat-head span{display:block;color:#dce9fb}
.osdl-chat-window{position:absolute;right:0;bottom:76px;width:min(390px,92vw);background:#fff;border:1px solid #d8e4f2;border-radius:28px;box-shadow:0 28px 60px rgba(13,44,85,.22);overflow:hidden}
.osdl-chat-head{display:flex;justify-content:space-between;align-items:center;background:#123f79;color:#fff;padding:14px 16px}
.osdl-chat-head-left{display:flex;align-items:center;gap:12px}
.osdl-chat-head img{width:42px;height:42px;border-radius:50%;background:#fff}
.osdl-chat-close{font-size:28px;line-height:1;background:transparent;border:0;color:#fff;cursor:pointer}
.osdl-chat-body{padding:16px;height:320px;overflow:auto;background:#f8fbff}
.osdl-chat-msg{max-width:84%;padding:12px 14px;border-radius:18px;margin-bottom:10px;font-size:15px;line-height:1.5}
.osdl-chat-msg.bot{background:#e8f0fa;color:#17395f}
.osdl-chat-msg.user{background:#123f79;color:#fff;margin-left:auto}
.osdl-chat-prompts{display:flex;flex-wrap:wrap;gap:8px;padding:12px 16px;border-top:1px solid #e1ebf5}
.osdl-chat-prompts button{border:1px solid #ccdced;background:#fff;border-radius:999px;padding:9px 12px;cursor:pointer}
.osdl-chat-form{display:flex;gap:10px;padding:16px;border-top:1px solid #e1ebf5}
.osdl-chat-form input{flex:1;border:1px solid #ccdced;border-radius:999px;padding:12px 14px}
.osdl-chat-form button{border:0;background:#123f79;color:#fff;border-radius:999px;padding:12px 18px;font-weight:800}
.osdl-admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.osdl-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:22px 0}
.osdl-stat{background:#fff;border:1px solid #dbe7f4;border-radius:20px;padding:18px;box-shadow:0 14px 40px rgba(13,44,85,.06)}
.osdl-stat span{display:block;font-size:34px;font-weight:800;color:#123f79}
.osdl-admin-panels{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.osdl-panel{background:#fff;border:1px solid #dbe7f4;border-radius:20px;padding:18px}
@media (max-width:1100px){
  .osdl-hero-v4,.osdl-two-col,.osdl-three-col,.osdl-four-col,.osdl-book-grid,.osdl-stats,.osdl-admin-panels{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  .osdl-hero-v4,.osdl-two-col,.osdl-three-col,.osdl-four-col,.osdl-book-grid,.osdl-stats,.osdl-admin-panels,.osdl-form-grid,.osdl-vm-grid{grid-template-columns:1fr}
  .osdl-hero-v4{padding:28px}
  .osdl-chat-window{bottom:84px}
}

.osdl-chat-head-actions{display:flex;align-items:center;gap:8px}
.osdl-chat-reset{border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.08);color:#fff;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:700;cursor:pointer}
.osdl-chat-msg[data-source='knowledge-base']::after,.osdl-chat-msg[data-source='openrouter']::after{display:block;margin-top:8px;font-size:11px;opacity:.72}
.osdl-chat-msg[data-source='knowledge-base']::after{content:'Source: library knowledge base'}
.osdl-chat-msg[data-source='openrouter']::after{content:'Source: Library AI'}
.osdl-chat-toggle{min-width:210px}
@media (max-width:760px){.osdl-chat-toggle{min-width:0;width:auto}}

.osdl-search-bar select{min-width:180px;border:1px solid #c8d9ec;border-radius:16px;padding:14px 16px;font-size:16px;background:#fff}
.osdl-search-bar-advanced{align-items:center}
.osdl-book-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}
.osdl-book-meta p{margin:0}
.osdl-book-meta strong{display:block;font-size:12px;letter-spacing:.03em;text-transform:uppercase;color:#6a7f99}
.osdl-book-meta span{display:block;font-size:15px;color:#244566}
.osdl-status-issued{background:#fff0db;color:#9c5d00}.osdl-status-reference-only{background:#efe7ff;color:#5a33a0}
.osdl-service-showcase{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.osdl-service-card{display:grid;grid-template-columns:84px 1fr;gap:18px;align-items:flex-start;background:#fff;border:1px solid #dbe7f4;border-radius:28px;padding:24px;box-shadow:0 16px 48px rgba(13,44,85,.08)}
.osdl-service-icon{width:84px;height:84px;border-radius:24px;display:grid;place-items:center;font-size:34px;background:linear-gradient(180deg,#eef5ff,#dfeafb)}
.osdl-list-stack{display:grid;gap:14px}
.osdl-list-item{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:16px 0;border-bottom:1px solid #e6eef8}
.osdl-list-item:last-child{border-bottom:0}
.osdl-list-item p{margin:6px 0 0}
.osdl-report-table{width:100%;border-collapse:collapse}
.osdl-report-table th,.osdl-report-table td{padding:12px 10px;border-bottom:1px solid #e2ebf6;text-align:left;vertical-align:top}
.osdl-report-table th{width:240px;color:#173b6a}
.osdl-inline-actions{display:flex;gap:10px;flex-wrap:wrap}
.osdl-report-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 18px}
.osdl-service-page .osdl-home-section{margin-top:0}
@media (max-width:900px){
  .osdl-service-showcase{grid-template-columns:1fr}
  .osdl-list-item{flex-direction:column;align-items:flex-start}
  .osdl-book-meta,.osdl-report-grid{grid-template-columns:1fr}
}

.osdl-section-sub{margin:10px 0 0;color:#4a6480;font-size:17px;max-width:780px}
.osdl-card-accent{background:linear-gradient(180deg,#ffffff,#f8fbff)}
.osdl-card-split{background:linear-gradient(180deg,#ffffff,#f7faff)}
.osdl-card-badge{display:inline-block;margin-bottom:14px;padding:8px 12px;border-radius:999px;background:#123f79;color:#fff;font-size:12px;font-weight:800;letter-spacing:.03em;text-transform:uppercase}
.osdl-info-list{display:grid;gap:8px;margin-top:18px}
.osdl-info-list p{margin:0}
.osdl-vm-grid > div{padding:18px;border-radius:22px;background:#ffffff;border:1px solid #e5eef9;box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}
.osdl-vm-grid > div:first-child{background:linear-gradient(180deg,#eff6ff,#ffffff)}
.osdl-vm-grid > div:last-child{background:linear-gradient(180deg,#fff8eb,#ffffff)}
.osdl-faq-accordion{display:grid;gap:14px}
.osdl-faq-item{background:#fff;border:1px solid #dbe7f4;border-radius:22px;box-shadow:0 12px 36px rgba(13,44,85,.05);overflow:hidden}
.osdl-faq-item summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;cursor:pointer;font-weight:800;color:#173b6a;font-size:18px}
.osdl-faq-item summary::-webkit-details-marker{display:none}
.osdl-faq-plus{font-size:24px;line-height:1;color:#53779e}
.osdl-faq-item[open] .osdl-faq-plus{transform:rotate(45deg)}
.osdl-faq-answer{padding:0 22px 20px;color:#385775}
.osdl-faq-answer p{margin:0}
.osdl-btn-small{padding:10px 14px;font-size:14px}
.osdl-service-card{position:relative;overflow:hidden}
.osdl-service-card:before{content:'';position:absolute;inset:0 auto 0 0;width:6px;background:linear-gradient(180deg,#1c5eb1,#7da9e8)}
.osdl-service-card h3{margin:2px 0 8px;font-size:24px;color:#123b72}
.osdl-service-card p{margin:0 0 10px;color:#49627d}
.osdl-page-card details{margin:14px 0}
.osdl-card:hover,.osdl-service-card:hover,.osdl-book-card:hover{transform:translateY(-2px);transition:.24s ease;box-shadow:0 22px 56px rgba(13,44,85,.12)}


/* v24 chatbot polish */
.osdl-chatbot{right:18px;bottom:18px}
.osdl-chat-toggle{gap:10px;padding:10px 14px;border-radius:18px;min-width:0;background:linear-gradient(135deg,#123f79,#1f5ea8)}
.osdl-chat-toggle img{width:36px;height:36px}
.osdl-chat-toggle strong{font-size:15px;line-height:1.1}
.osdl-chat-toggle small{font-size:12px;line-height:1.2}
.osdl-chat-window{bottom:68px;border-radius:24px}
.osdl-chat-body{background:linear-gradient(180deg,#f7fbff,#eff5fb)}
@media (max-width:760px){.osdl-chat-toggle strong{display:none}.osdl-chat-toggle small{display:none}.osdl-chat-toggle{padding:10px;border-radius:999px}}

.osdl-chatbot{position:fixed;right:22px;bottom:20px;z-index:99999}
.osdl-chatbot.open .osdl-chat-toggle{opacity:0;pointer-events:none;transform:translateY(8px) scale(.96)}
.osdl-chat-window{position:fixed !important;right:22px;bottom:88px;top:auto !important;width:min(400px,calc(100vw - 24px));max-height:min(720px,calc(100vh - 120px));display:flex;flex-direction:column;overflow:hidden}
.osdl-chat-head{padding:12px 14px}
.osdl-chat-head-left div strong{font-size:18px;line-height:1.1}
.osdl-chat-head-left div span{font-size:13px;line-height:1.25;color:#dbe8fb}
.osdl-chat-body{height:auto;flex:1;min-height:220px;max-height:none}
.osdl-chat-prompts{background:#fff}
.osdl-chat-form{background:#fff}
.osdl-chat-toggle{border-radius:18px;padding:10px 14px;min-width:0;max-width:240px}
.osdl-chat-toggle span{display:flex;flex-direction:column;align-items:flex-start}
.osdl-chat-toggle strong{font-size:15px;line-height:1.1}
.osdl-chat-toggle small{font-size:12px;line-height:1.2;color:#dce9fb}
@media (max-width:760px){.osdl-chatbot{right:14px;bottom:14px}.osdl-chat-window{right:14px;bottom:78px;width:calc(100vw - 28px);max-height:calc(100vh - 96px)}.osdl-chat-toggle{padding:10px 12px;border-radius:999px}.osdl-chat-toggle span{display:none}}

.osdl-chatbot.open .osdl-chat-toggle{display:none}
.osdl-chat-window{max-height:min(78vh,760px);display:flex;flex-direction:column}
.osdl-chat-head{position:sticky;top:0;z-index:2}
.osdl-chat-body{flex:1;min-height:220px}
.osdl-chat-prompts{background:#fff}
.osdl-chat-head-actions button{height:38px}
.osdl-chat-close{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:999px}
.osdl-chat-close:hover,.osdl-chat-reset:hover{background:rgba(255,255,255,.12)}
.osdl-chat-source{font-size:12px;color:#5d7898}
.osdl-chat-msg.typing{min-width:68px}
.osdl-typing{display:inline-flex;gap:5px;align-items:center}
.osdl-typing i{display:inline-block;width:8px;height:8px;border-radius:50%;background:#6b88a8;animation:osdlBlink 1.2s infinite ease-in-out}
.osdl-typing i:nth-child(2){animation-delay:.15s}.osdl-typing i:nth-child(3){animation-delay:.3s}
@keyframes osdlBlink{0%,80%,100%{transform:scale(.75);opacity:.35}40%{transform:scale(1);opacity:1}}
@media (max-width:760px){
  .osdl-chatbot{right:12px;left:12px;bottom:12px}
  .osdl-chat-window{position:fixed;left:12px;right:12px;bottom:78px;width:auto;max-height:72vh}
  .osdl-chat-toggle{margin-left:auto}
}

.osdl-chat-window[hidden]{display:none !important}
.osdl-chat-msg .osdl-chat-source{font-size:12px;color:#60758f}
.osdl-chat-window .osdl-chat-source{display:inline-block;margin-top:10px;color:#60758f}
.osdl-quick-visual{height:160px;border-radius:22px;margin-bottom:18px;background-size:cover;background-position:center;position:relative;overflow:hidden}
.osdl-quick-visual:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,33,61,.08),rgba(11,33,61,.34))}
.osdl-support-layout{display:grid;grid-template-columns:1.25fr .75fr;gap:22px;align-items:stretch}
.osdl-support-visual{min-height:100%;border-radius:28px;overflow:hidden;background-size:cover;background-position:center;position:relative;box-shadow:0 16px 48px rgba(13,44,85,.08)}
.osdl-support-visual:before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(9,30,61,.10),rgba(9,30,61,.62))}
.osdl-support-visual>div{position:absolute;left:24px;right:24px;bottom:24px;color:#fff;z-index:1}
.osdl-support-visual p{margin:12px 0 0;color:#eef6ff;font-size:17px;line-height:1.5}
.osdl-card-badge.alt{background:#eaf3ff;color:#184d8c}
.osdl-card-badge.alt.gold{background:#fff4dd;color:#8f6500}
.osdl-vm-grid>div h3{margin:10px 0 12px}
.osdl-vm-grid>div p{font-size:17px;line-height:1.7}
.osdl-card-split{padding:16px}
.osdl-quick-card h3{max-width:420px}
@media (max-width:980px){.osdl-support-layout{grid-template-columns:1fr}.osdl-support-visual{min-height:240px}}

.osdl-stats-analytics{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));}
.osdl-admin-list{margin:0;padding-left:18px;}
.osdl-admin-list li{margin:0 0 8px;}
.osdl-activity-list{margin:0;padding-left:18px}
.osdl-activity-list li{margin:0 0 10px;padding:10px 0;border-bottom:1px solid #e8eef6}
.osdl-activity-list span{display:block;color:#6b7a90;font-size:12px;margin-top:3px}
.osdl-table-wrap{overflow:auto}
.osdl-report-table{width:100%;border-collapse:collapse}
.osdl-report-table th,.osdl-report-table td{padding:10px 12px;border-bottom:1px solid #e6edf6;text-align:left}
.osdl-report-table thead th{background:#f4f8fd;color:#163a70;font-weight:700}
.osdl-overdue td{background:#fff6f2}
.osdl-member-hero .osdl-stats{margin-bottom:24px}
.osdl-member-stats .osdl-stat{background:linear-gradient(180deg,#ffffff,#f5f9ff)}


/* v32 membership/login fixes */
.osdl-membership-access .osdl-cta-row{align-items:center}
.osdl-membership-access .osdl-btn-light{
  background:#173f76 !important;
  color:#fff !important;
  border:1px solid #173f76 !important;
  box-shadow:0 10px 24px rgba(23,63,118,.16);
}
.osdl-membership-access .osdl-btn-light:hover{
  background:#0f2e57 !important;
  color:#fff !important;
}
.osdl-membership-access .osdl-btn-light:visited{color:#fff !important}
.osdl-front-form .login-remember{display:flex;align-items:center;gap:8px}
