:root{--dsn-navy:#061b45;--dsn-blue:#0056b8;--dsn-cyan:#00a3d7;--dsn-teal:#00a88f;--dsn-green:#00b67a;--dsn-light:#f7fbff;--dsn-border:#d7e4f3;--dsn-text:#13213a;--dsn-muted:#5a6b82;--dsn-shadow:0 18px 45px rgba(6,27,69,.12)}

/* DSN wrapper styles: deliberately scoped to plugin-owned containers only. */
.dsn-fullwidth,.dsn-dashboard,.dsn-single-learning-item,.dsn-certificate-verify,.dsn-crm-dashboard,.dsn-customer-profile{width:100%;max-width:100%!important;margin:0 auto;padding:32px clamp(16px,4vw,56px);box-sizing:border-box;color:var(--dsn-text);font-family:inherit}
.dsn-catalogue{width:100%;max-width:100%!important;margin:0 auto;padding:32px clamp(16px,4vw,56px);box-sizing:border-box;color:var(--dsn-text);font-family:inherit;background:linear-gradient(180deg,#fff,var(--dsn-light))}
.dsn-dashboard,.dsn-single-learning-item{background:linear-gradient(180deg,#fff,var(--dsn-light))}

/* Brand strips used only inside DSN CRM/LMS/plugin screens. */
.dsn-brand-strip,.dsn-dashboard-hero,.dsn-profile-hero{display:flex;align-items:center;gap:18px;border-radius:24px;padding:22px 24px;margin:0 0 24px;background:#fff;border:1px solid var(--dsn-border);box-shadow:var(--dsn-shadow);position:relative;overflow:hidden}
.dsn-brand-strip:after,.dsn-dashboard-hero:after,.dsn-profile-hero:after{content:"";position:absolute;right:-80px;top:-80px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(0,163,215,.15),transparent 65%)}
.dsn-brand-strip>img,.dsn-dashboard-hero>img,.dsn-profile-hero>img{width:86px!important;height:86px!important;max-width:86px!important;max-height:86px!important;object-fit:contain!important;background:transparent!important;position:relative;z-index:1}
.dsn-brand-strip h1,.dsn-brand-strip h2,.dsn-dashboard-hero h1,.dsn-profile-hero h1{margin:0;color:var(--dsn-navy);letter-spacing:.02em}.dsn-brand-strip p,.dsn-dashboard-hero p,.dsn-profile-hero p{margin:4px 0 0;color:var(--dsn-teal);font-weight:700;letter-spacing:.12em}

/* Catalogue cards: strict scope prevents affecting theme/site images and logos. */
.dsn-catalogue .dsn-card-grid,.dsn-catalogue-combined .dsn-catalogue .dsn-card-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:28px!important;align-items:start!important;margin:22px 0!important}
.dsn-catalogue .dsn-card.dsn-learning-card{background:#fff;border:1px solid var(--dsn-border);border-radius:22px;padding:18px!important;box-shadow:var(--dsn-shadow);display:flex!important;flex-direction:column!important;overflow:hidden!important;min-width:0!important;box-sizing:border-box!important;position:relative!important;isolation:isolate!important}
.dsn-catalogue .dsn-card-image-link{display:block!important;width:100%!important;max-width:100%!important;aspect-ratio:4/3!important;overflow:hidden!important;border-radius:16px!important;background:#061b45!important;line-height:0!important;margin:0 0 18px 0!important;padding:0!important;text-decoration:none!important;box-sizing:border-box!important;position:relative!important}
.dsn-catalogue .dsn-learning-image-card{display:block!important;width:100%!important;height:100%!important;margin:0!important;padding:0!important;line-height:0!important;background:#061b45!important;overflow:hidden!important;border-radius:16px!important;box-sizing:border-box!important}
.dsn-catalogue .dsn-card-image-link .dsn-learning-image-card img{display:block!important;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;min-width:0!important;min-height:0!important;object-fit:contain!important;object-position:center center!important;margin:0!important;padding:0!important;border:0!important;background:#061b45!important;position:static!important;transform:none!important;float:none!important;clear:none!important;box-sizing:border-box!important}
.dsn-catalogue .dsn-card-body{padding:0!important;position:relative!important;z-index:2!important;background:#fff!important;flex:1 1 auto!important}
.dsn-catalogue .dsn-card-badge{display:inline-block;background:linear-gradient(135deg,var(--dsn-navy),var(--dsn-blue));color:#fff;padding:6px 12px;border-radius:999px;font-size:12px;margin-bottom:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.dsn-catalogue .dsn-card h3{margin:6px 0 10px}.dsn-catalogue .dsn-card h3 a{color:var(--dsn-navy);text-decoration:none}.dsn-catalogue .dsn-card p{color:var(--dsn-text)}.dsn-catalogue .dsn-meta{display:flex;gap:10px;flex-wrap:wrap;color:var(--dsn-muted);font-size:13px;margin:12px 0}.dsn-catalogue .dsn-price{font-weight:800;margin:10px 0;color:var(--dsn-navy)}.dsn-catalogue .dsn-card-actions{display:flex!important;gap:10px!important;flex-wrap:wrap!important;margin-top:12px!important}

/* Single learning pages: scoped image rendering only inside the plugin detail component. */
.dsn-single-learning-item .dsn-learning-hero{display:grid;grid-template-columns:minmax(220px,420px) 1fr;gap:28px;align-items:center;background:#fff;border:1px solid var(--dsn-border);border-radius:24px;padding:24px;box-shadow:var(--dsn-shadow);margin-bottom:24px}
.dsn-single-learning-item .dsn-learning-image-hero{display:block!important;width:100%!important;aspect-ratio:4/3!important;border-radius:18px!important;background:#061b45!important;overflow:hidden!important;margin:0!important;line-height:0!important}
.dsn-single-learning-item .dsn-learning-image-hero img{display:block!important;width:100%!important;height:100%!important;object-fit:contain!important;object-position:center center!important;background:#061b45!important;margin:0!important;padding:0!important;border:0!important;position:static!important;transform:none!important;float:none!important;box-sizing:border-box!important}
.dsn-single-learning-item h1{color:var(--dsn-navy);margin:0 0 10px}.dsn-learning-ready{color:var(--dsn-teal);font-weight:800}.dsn-duration,.dsn-content,.dsn-learning-accessibility{max-width:1100px}.dsn-panel{background:#fff;border:1px solid var(--dsn-border);border-radius:22px;padding:24px;box-shadow:var(--dsn-shadow)}

/* Hide duplicate WordPress featured image only on DSN programme single posts, not on archives or normal pages. */
body.single-dsn_programme .entry-header .post-thumbnail,body.single-dsn_programme .entry-header .wp-post-image,body.single-dsn_programme .post-thumbnail:not(.dsn-learning-image),body.single-dsn_programme .entry-thumbnail,body.single-dsn_programme .wp-block-post-featured-image:not(.dsn-learning-image),body.single-dsn_programme figure.post-thumbnail,body.single-dsn_programme .page-hero img.wp-post-image,body.single-dsn_programme .hero img.wp-post-image,body.single-dsn_programme .page-header img.wp-post-image{display:none!important}

/* Buttons and forms. */
.dsn-button,.dsn-form button,.dsn-chatbot-form button,.dsn-login-card input[type=submit]{display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--dsn-navy),var(--dsn-blue),var(--dsn-teal));color:#fff!important;border:0;border-radius:12px;padding:12px 18px;text-decoration:none;font-weight:800;cursor:pointer;box-shadow:0 10px 22px rgba(0,86,184,.22);margin:6px 6px 6px 0}.dsn-button-secondary,.dsn-chatbot-form .dsn-chat-end{background:var(--dsn-navy)!important}.dsn-form{background:#fff;border:1px solid var(--dsn-border);border-radius:24px;padding:26px;max-width:1100px;margin:24px auto;box-shadow:var(--dsn-shadow)}.dsn-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}.dsn-form label{display:block;font-weight:800;margin:10px 0;color:var(--dsn-navy)}.dsn-form input,.dsn-form textarea,.dsn-form select,.dsn-chat-register input,.dsn-chat-register select,.dsn-chat-register textarea{width:100%;padding:13px 14px;border:1px solid var(--dsn-border);border-radius:12px;margin-top:7px;background:#fff;color:var(--dsn-text);box-sizing:border-box}.dsn-consent{font-weight:500!important;color:var(--dsn-muted)!important}.dsn-form-response{margin-top:12px;font-weight:800;color:var(--dsn-teal)}

/* Chatbot. */
.dsn-chatbot{background:#fff;border:1px solid var(--dsn-border);border-radius:24px;overflow:hidden;box-shadow:0 20px 50px rgba(6,27,69,.2);max-width:460px}.dsn-chatbot-header{background:linear-gradient(135deg,var(--dsn-navy),var(--dsn-blue));color:#fff;padding:12px 14px;display:flex;align-items:center;gap:12px}.dsn-chatbot-header img{width:42px!important;height:42px!important;max-width:42px!important;max-height:42px!important;border-radius:50%;background:#fff;object-fit:contain}.dsn-chatbot-header span{display:block;font-size:12px;opacity:.9;letter-spacing:.12em;color:#9ff4ea}.dsn-chat-register{padding:16px;background:linear-gradient(180deg,#fff,var(--dsn-light));max-height:calc(100vh - 170px);overflow-y:auto;box-sizing:border-box}.dsn-chat-register h3{margin:0 0 6px;color:var(--dsn-navy);font-size:17px}.dsn-chat-register p{margin:0 0 12px;color:var(--dsn-muted);font-size:14px}.dsn-chat-register label{font-size:13px;margin:8px 0 4px}.dsn-chat-register input,.dsn-chat-register select{min-height:38px;padding:9px 12px}.dsn-chat-register .dsn-consent,.dsn-chat-consent,.dsn-chat-consent label,.dsn-chat-consent-text{font-size:12px!important;line-height:1.35!important;color:#42526e!important;font-weight:500!important}.dsn-chat-register .dsn-consent{display:flex!important;align-items:flex-start;gap:8px;margin-top:12px}.dsn-chat-register .dsn-consent input[type=checkbox],.dsn-consent input[type=checkbox]{width:auto!important;min-width:16px;margin:1px 0 0!important}.dsn-chatbot-messages{height:340px;overflow:auto;padding:16px;background:var(--dsn-light)}.dsn-bot-message,.dsn-user-message{padding:11px 13px;border-radius:16px;margin-bottom:10px;line-height:1.45;white-space:pre-wrap}.dsn-bot-message{background:#fff;border:1px solid var(--dsn-border)}.dsn-user-message{background:linear-gradient(135deg,var(--dsn-blue),var(--dsn-teal));color:#fff;margin-left:46px}.dsn-chatbot-form{display:flex;gap:8px;padding:12px;background:#fff}.dsn-chatbot-form input{flex:1;padding:13px;border:1px solid var(--dsn-border);border-radius:12px;min-width:0}.dsn-floating-chat{position:fixed;right:24px;bottom:24px;z-index:99999}.dsn-floating-toggle{width:64px;height:64px;border-radius:50%;border:3px solid #fff;background:#fff url('../images/dsn-icon.png') center/cover no-repeat;text-indent:-9999px;box-shadow:0 16px 35px rgba(0,0,0,.22);cursor:pointer}.dsn-floating-panel{display:none;position:absolute;right:0;bottom:78px;width:min(440px,calc(100vw - 32px))}.dsn-floating-chat.is-open .dsn-floating-panel{display:block}

/* CRM / dashboard tables. */
.dsn-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;margin:22px 0}.dsn-stat{background:#fff;border:1px solid var(--dsn-border);border-left:6px solid var(--dsn-teal);border-radius:18px;padding:20px;box-shadow:var(--dsn-shadow)}.dsn-stat strong{display:block;font-size:30px;color:var(--dsn-navy)}.dsn-stat span{color:var(--dsn-muted);font-weight:800}.dsn-table-wrap{overflow:auto}.dsn-table{width:100%;border-collapse:collapse}.dsn-table th{background:var(--dsn-navy);color:#fff;text-align:left}.dsn-table th,.dsn-table td{padding:12px;border-bottom:1px solid var(--dsn-border)}.dsn-profile-grid{display:grid;grid-template-columns:minmax(260px,330px) 1fr minmax(240px,300px);gap:22px}.dsn-timeline{display:grid;gap:14px}.dsn-timeline-item{border-left:5px solid var(--dsn-teal);background:var(--dsn-light);border-radius:14px;padding:14px}.dsn-timeline-item span{font-size:12px;color:var(--dsn-muted);font-weight:800}.dsn-timeline-item h3{margin:5px 0;color:var(--dsn-navy)}.dsn-timeline-item em{color:var(--dsn-teal);font-style:normal;font-weight:800;font-size:12px;text-transform:uppercase}.dsn-crm-login{min-height:72vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#fff,var(--dsn-light))}.dsn-login-card{max-width:440px;background:#fff;border:1px solid var(--dsn-border);border-radius:28px;padding:34px;box-shadow:var(--dsn-shadow);text-align:center}.dsn-login-card img{width:120px!important;height:120px!important;max-width:120px!important;object-fit:contain;background:transparent}.dsn-login-card input[type=text],.dsn-login-card input[type=password]{width:100%;padding:12px;border:1px solid var(--dsn-border);border-radius:12px}.dsn-small{font-size:12px;color:var(--dsn-muted)}

.dsn-learning-row{display:flex;justify-content:space-between;gap:16px;align-items:center;border:1px solid var(--dsn-border);border-radius:16px;padding:16px;margin:12px 0;background:#fff}.dsn-enrolment-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px}.dsn-payment-status{display:inline-block;border-radius:999px;padding:4px 10px;background:#edf5ff;color:var(--dsn-navy);font-weight:800;font-size:12px}.dsn-access-warning{background:#fff7e6;border:1px solid #ffd591;border-radius:12px;padding:12px;color:#7a4a00}.woocommerce-MyAccount-content .dsn-dashboard{padding:0;background:transparent}.dsn-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:22px 0}.dsn-feature-list{margin-left:20px;line-height:1.7}.dsn-kanban{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;align-items:start;overflow:auto;padding:6px 0}.dsn-kanban-col{background:#f7fbff;border:1px solid var(--dsn-border);border-radius:16px;padding:12px;min-height:180px}.dsn-kanban-col h3{margin:0 0 10px;color:var(--dsn-navy);display:flex;justify-content:space-between;align-items:center}.dsn-kanban-col h3 span{background:var(--dsn-teal);color:#fff;border-radius:999px;padding:3px 8px;font-size:12px}.dsn-deal-card{background:#fff;border:1px solid var(--dsn-border);border-left:5px solid var(--dsn-blue);border-radius:14px;padding:12px;margin:10px 0;box-shadow:0 8px 20px rgba(6,27,69,.06)}.dsn-deal-card strong{display:block;color:var(--dsn-navy)}.dsn-deal-card p{margin:6px 0;color:#42526e}.dsn-deal-card small{color:var(--dsn-teal);font-weight:700}.dsn-tag-cloud{display:flex;gap:8px;flex-wrap:wrap}.dsn-tag-cloud span{background:#edf5ff;border:1px solid var(--dsn-border);border-radius:999px;color:var(--dsn-navy);font-weight:700;padding:7px 10px}

@media(max-width:900px){.dsn-catalogue .dsn-card-grid,.dsn-catalogue-combined .dsn-catalogue .dsn-card-grid{grid-template-columns:1fr!important}.dsn-single-learning-item .dsn-learning-hero{grid-template-columns:1fr}.dsn-profile-grid{grid-template-columns:1fr}.dsn-floating-chat{right:12px;bottom:12px}.dsn-chatbot-messages{height:280px}.dsn-chatbot-form{flex-wrap:wrap}.dsn-chatbot-form input{flex-basis:100%}.dsn-grid-2{grid-template-columns:1fr}}
@media(max-height:760px){.dsn-chat-register{max-height:calc(100vh - 145px)!important}.dsn-chatbot-header img{width:36px!important;height:36px!important}.dsn-chat-register h3{font-size:16px!important}.dsn-chat-register p{display:none!important}.dsn-chat-register input,.dsn-chat-register select{min-height:34px!important;padding:7px 10px!important}.dsn-chat-register label{font-size:12px!important;margin:6px 0 3px!important}}
