@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--egps-ink:#172b4d;--egps-navy:#142d4e;--egps-blue:#2867d8;--egps-blue-soft:#eaf1ff;--egps-text:#23334d;--egps-muted:#75839a;--egps-line:#e7ebf2;--egps-bg:#f5f7fb;--egps-green:#16865d;--egps-radius:16px}
.egps-shell,.egps-auth-wrap{font-family:'DM Sans',sans-serif;color:var(--egps-text);font-size:14px;line-height:1.5}
.egps-shell *,.egps-auth-wrap *{box-sizing:border-box}
.egps-shell{background:var(--egps-bg);min-height:80vh;border-radius:18px;overflow:hidden;margin:16px auto;max-width:1600px}
.egps-topbar{height:78px;background:#fff;border-bottom:1px solid var(--egps-line);display:flex;align-items:center;justify-content:space-between;padding:0 32px;gap:18px}
.egps-brand{display:flex;align-items:center;gap:12px;text-decoration:none!important;color:var(--egps-ink)!important;min-width:0}
.egps-brand img{width:42px;height:42px;object-fit:contain;border-radius:10px}
.egps-logo-mark{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#2867d8,#183d78);display:grid;place-items:center;color:#fff;font:800 22px Manrope}
.egps-brand strong,.egps-brand small{display:block}.egps-brand strong{font:800 15px Manrope;max-width:360px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.egps-brand small{font-size:11px;color:var(--egps-muted);margin-top:2px}
.egps-user{display:flex;align-items:center;gap:10px}.egps-avatar{width:38px;height:38px;background:#eaf1ff;color:#2867d8;display:grid;place-items:center;border-radius:50%;font-weight:700}.egps-user b,.egps-user small{display:block}.egps-user b{font-size:12px}.egps-user small{font-size:11px;color:var(--egps-muted)}.egps-logout{margin-left:12px;text-decoration:none!important;color:#65738a!important;font-size:12px}
.egps-layout{display:grid;grid-template-columns:245px minmax(0,1fr);min-height:700px}.egps-sidebar{background:#fff;border-right:1px solid var(--egps-line);padding:25px 14px;display:flex;flex-direction:column;gap:6px}.egps-nav-label{font-size:10px;font-weight:700;letter-spacing:1.1px;color:#9aa5b7;padding:14px 12px 8px}.egps-nav{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:10px;text-decoration:none!important;color:#65738a!important;font-weight:600;font-size:13px;transition:.15s}.egps-nav span{font-size:18px;width:22px;text-align:center}.egps-nav:hover,.egps-nav.active{background:#edf3ff;color:#225bc2!important}.egps-sidebar-foot{margin-top:auto;padding:20px 12px 0;font-size:11px;color:#7e8ca1}.egps-status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#1ba878;margin-right:7px}
.egps-main{padding:34px clamp(20px,3vw,48px) 48px;min-width:0}.egps-page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:28px}.egps-eyebrow{font-size:10px;letter-spacing:1.5px;font-weight:800;color:#4677ca}.egps-page-heading h1{font:800 clamp(24px,2.2vw,32px) Manrope;color:var(--egps-ink);margin:7px 0 5px;line-height:1.2}.egps-page-heading p,.egps-section-heading p{margin:0;color:var(--egps-muted);font-size:13px}.egps-date{color:#6e7d93;font-size:12px;background:#fff;border:1px solid var(--egps-line);border-radius:9px;padding:9px 12px;white-space:nowrap}
.egps-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:32px}.egps-stat{background:#fff;border:1px solid var(--egps-line);border-radius:var(--egps-radius);padding:21px;min-width:0}.egps-stat-icon,.egps-quick-icon{display:grid;place-items:center;border-radius:12px;width:42px;height:42px;font-size:20px;margin-bottom:17px}.blue{background:#eaf1ff;color:#2867d8}.green{background:#e6f7ef;color:#16865d}.purple{background:#f2eaff;color:#8750c8}.gold{background:#fff5dc;color:#bd8718}.egps-stat small,.egps-stat strong,.egps-stat>span:last-child{display:block}.egps-stat small{font-size:12px;color:#6d7b91}.egps-stat strong{font:800 25px Manrope;color:var(--egps-ink);margin:5px 0}.egps-stat>span:last-child{font-size:11px;color:#9aa5b7}
.egps-section-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:24px 0 16px}.egps-section-heading h2,.egps-panel h2{font:800 17px Manrope;color:var(--egps-ink);margin:0 0 4px}.egps-text-link{font-size:12px;font-weight:700;color:#2867d8!important;text-decoration:none!important}.egps-quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:28px}.egps-quick-card{background:#fff;border:1px solid var(--egps-line);border-radius:14px;padding:18px;text-decoration:none!important;color:var(--egps-text)!important;transition:transform .15s,border-color .15s}.egps-quick-card:hover{transform:translateY(-2px);border-color:#b6cdf8}.egps-quick-card .egps-quick-icon{margin-bottom:12px;width:38px;height:38px}.egps-quick-card b,.egps-quick-card small{display:block}.egps-quick-card b{font-size:13px}.egps-quick-card small{color:var(--egps-muted);font-size:11px;margin-top:4px}
.egps-panel{background:#fff;border:1px solid var(--egps-line);border-radius:var(--egps-radius);padding:23px;margin:20px 0}.egps-panel>p{color:var(--egps-muted);font-size:12px;margin:4px 0 20px}.egps-course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.egps-course-card{background:#fff;border:1px solid var(--egps-line);border-radius:14px;overflow:hidden;min-width:0}.egps-course-cover{height:108px;background:linear-gradient(125deg,#1b3b65,#2c6ed5);padding:16px;display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.egps-course-icon{color:#fff;font-size:28px;opacity:.9}.egps-pill{background:#ffffff25;color:#fff;border:1px solid #ffffff40;border-radius:20px;padding:5px 8px;font-size:9px}.egps-course-body{padding:17px}.egps-course-body h3{font:700 15px Manrope;color:var(--egps-ink);margin:0 0 8px}.egps-course-body p{font-size:12px;color:var(--egps-muted);margin:0 0 15px;min-height:36px}.egps-course-meta{display:flex;flex-wrap:wrap;gap:12px;font-size:11px;color:#74839a;margin-bottom:15px}.egps-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:#2867d8;border:1px solid #2867d8;border-radius:10px;color:#fff!important;padding:12px 17px;font:700 12px 'DM Sans',sans-serif;text-decoration:none!important;cursor:pointer;transition:.15s}.egps-btn:hover{background:#1e54b5}.egps-btn.secondary{background:#fff;color:#2867d8!important;border-color:#d8e3f7}.egps-btn.full{width:100%}.egps-btn:disabled{opacity:.55;cursor:not-allowed}.egps-enrolled{font-size:11px;color:#16865d;background:#e6f7ef;padding:8px 10px;border-radius:8px;display:block;text-align:center}
.egps-empty{background:#fff;border:1px dashed #d9e1ed;border-radius:14px;padding:35px 20px;text-align:center;color:var(--egps-muted);font-size:12px}.egps-empty>span{font-size:28px;display:block;color:#8da9d8;margin-bottom:10px}.egps-empty b{color:var(--egps-ink);font:700 14px Manrope}.egps-empty p{margin:6px 0 0}
.egps-data-form{display:grid;gap:9px}.egps-data-form label,.egps-auth-form label,.egps-inline-form label{font-size:12px;font-weight:700;color:#40516b;margin-top:6px}.egps-data-form input,.egps-data-form textarea,.egps-auth-form input,.egps-auth-form select,.egps-inline-form select{width:100%;min-height:43px;border:1px solid #dce3ed;border-radius:9px;padding:10px 12px;font:400 13px 'DM Sans',sans-serif;color:#263750;background:#fff;max-width:100%;box-shadow:none}.egps-data-form textarea{min-height:90px;resize:vertical}.egps-data-form input:focus,.egps-data-form textarea:focus,.egps-auth-form input:focus{outline:2px solid #d8e6ff;border-color:#7fa7ee}.egps-table-wrap{width:100%;overflow-x:auto}.egps-table{border-collapse:collapse;width:100%;font-size:12px;min-width:500px}.egps-table th{text-align:left;text-transform:uppercase;letter-spacing:.5px;font-size:10px;color:#8794a8;background:#f8faff;padding:13px}.egps-table td{border-top:1px solid #edf0f5;padding:14px 13px;vertical-align:middle}.egps-table td b,.egps-table td small{display:block}.egps-table td small{font-size:10px;color:#8794a8;margin-top:4px}.egps-status{font-size:10px;border-radius:20px;padding:5px 9px;background:#fff4db;color:#a66f09;white-space:nowrap}.egps-status.approved{background:#e4f7ed;color:#16865d}.egps-status.rejected{background:#ffe9e9;color:#b83a3a}.egps-inline-form{display:flex;align-items:center;gap:10px;margin-bottom:18px;flex-wrap:wrap}.egps-inline-form select{width:auto;min-width:240px}.egps-check{display:flex;align-items:center;gap:7px;font-size:11px}.egps-check input{width:17px;height:17px}.egps-help{font-size:11px;color:#8794a8;margin-top:16px}
.egps-notice{padding:12px 14px;border-radius:10px;margin-bottom:18px;font-size:12px}.egps-notice.success{background:#e7f7ee;color:#176d4b}.egps-notice.error{background:#fff0f0;color:#a33232}.egps-notice.warning{background:#fff6df;color:#8c6411}
.egps-auth-wrap{max-width:1050px;margin:24px auto;min-height:620px;border-radius:22px;overflow:hidden;box-shadow:0 20px 70px #18395e17;display:grid;grid-template-columns:1fr 1fr;background:#fff;border:1px solid #e6ebf3}.egps-auth-brand{background:linear-gradient(150deg,#132d4e,#1f4b83 68%,#2867d8);padding:clamp(28px,5vw,62px);color:#fff;display:flex;flex-direction:column;justify-content:center}.egps-auth-logo{width:60px;height:60px;border-radius:17px;background:#ffffff20;border:1px solid #ffffff35;display:grid;place-items:center;margin-bottom:34px;font:800 30px Manrope}.egps-auth-logo img{width:100%;height:100%;object-fit:contain;padding:7px}.egps-auth-brand .egps-eyebrow{color:#c7dcff}.egps-auth-brand h1{font:800 clamp(28px,3vw,38px) Manrope;line-height:1.15;margin:12px 0}.egps-auth-brand p{color:#d3e0f2;font-size:14px;max-width:340px}.egps-auth-benefits{display:grid;gap:12px;margin-top:30px;font-size:12px;color:#e1ebf8}.egps-auth-card{padding:clamp(24px,4vw,48px);align-self:center;min-width:0}.egps-auth-tabs{display:flex;border-bottom:1px solid var(--egps-line);gap:24px;margin-bottom:28px}.egps-auth-tabs button{border:0;background:transparent;color:#8794a8;padding:0 0 13px;font:700 13px 'DM Sans';cursor:pointer;border-bottom:2px solid transparent}.egps-auth-tabs button.active{color:#2867d8;border-color:#2867d8}.egps-auth-form{display:none}.egps-auth-form.is-active{display:grid;gap:9px}.egps-auth-form h2{font:800 23px Manrope;color:var(--egps-ink);margin:0}.egps-auth-form>p{font-size:12px;color:var(--egps-muted);margin:0 0 8px}.egps-auth-form label{margin-top:5px}.egps-forgot{font-size:11px;color:#2867d8!important;text-align:center;text-decoration:none!important;margin-top:8px}.egps-privacy{font-size:10px;color:#8794a8;text-align:center;margin-top:5px}
.egps-mobile-nav{display:none}
@media(max-width:1050px){.egps-layout{grid-template-columns:205px minmax(0,1fr)}.egps-main{padding:28px 22px}.egps-course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.egps-stats{gap:10px}.egps-stat{padding:16px}.egps-quick-grid{gap:10px}}
@media(max-width:720px){.egps-shell{margin:0 -12px;border-radius:0;min-height:85vh}.egps-topbar{height:66px;padding:0 15px}.egps-brand img,.egps-logo-mark{width:36px;height:36px}.egps-brand strong{font-size:12px;max-width:180px}.egps-brand small{font-size:10px}.egps-user{gap:7px}.egps-user>span:nth-child(2){display:none}.egps-avatar{width:34px;height:34px}.egps-logout{margin-left:4px;font-size:11px}.egps-layout{display:block;min-height:0}.egps-sidebar{display:none}.egps-main{padding:24px 15px 94px}.egps-page-heading{align-items:flex-start;margin-bottom:20px}.egps-page-heading h1{font-size:25px}.egps-page-heading p{font-size:12px}.egps-date{font-size:10px;padding:7px}.egps-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:24px}.egps-stat{padding:14px}.egps-stat:last-child{grid-column:1/-1}.egps-stat-icon{width:34px;height:34px;margin-bottom:10px}.egps-stat strong{font-size:21px}.egps-quick-grid{grid-template-columns:1fr;gap:9px}.egps-quick-card{display:grid;grid-template-columns:42px 1fr;column-gap:12px;align-items:center;padding:13px}.egps-quick-card .egps-quick-icon{grid-row:span 2;margin:0}.egps-quick-card b{align-self:end}.egps-quick-card small{align-self:start}.egps-course-grid{grid-template-columns:1fr}.egps-course-cover{height:82px}.egps-panel{padding:16px;margin:16px 0}.egps-section-heading h2,.egps-panel h2{font-size:15px}.egps-mobile-nav{display:flex;position:fixed;z-index:9999;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--egps-line);padding:8px 6px calc(8px + env(safe-area-inset-bottom));justify-content:space-around;box-shadow:0 -5px 20px #18395e0a}.egps-mobile-nav a{display:flex;flex-direction:column;align-items:center;gap:3px;text-decoration:none!important;color:#8591a5!important;font-size:9px;font-weight:600;min-width:58px}.egps-mobile-nav a span{font-size:20px;line-height:1.2}.egps-mobile-nav a.active{color:#2867d8!important}.egps-auth-wrap{display:block;margin:0 -12px;border-radius:0;min-height:0;box-shadow:none}.egps-auth-brand{padding:28px 24px 25px}.egps-auth-logo{width:48px;height:48px;margin-bottom:18px}.egps-auth-brand h1{font-size:27px}.egps-auth-brand p{font-size:12px;margin-bottom:0}.egps-auth-benefits{display:none}.egps-auth-card{padding:25px 20px 40px}.egps-auth-tabs{margin-bottom:23px}.egps-auth-form h2{font-size:21px}.egps-auth-form input,.egps-auth-form select{min-height:46px;font-size:16px}.egps-btn{min-height:44px}.egps-inline-form{align-items:stretch;flex-direction:column}.egps-inline-form select{width:100%}.egps-date{display:none}}
@media print{body *{visibility:hidden!important}.egps-main,.egps-main *{visibility:visible!important}.egps-sidebar,.egps-topbar,.egps-mobile-nav,.egps-btn,.egps-page-heading{display:none!important}.egps-shell,.egps-main,.egps-panel{background:#fff!important;border:0!important;box-shadow:none!important;margin:0!important;padding:0!important}.egps-table{min-width:0}.egps-table th,.egps-table td{border:1px solid #aaa!important;color:#000!important}}

/* EGPS 1.0.2: interface isolada do tema e espaçamento responsivo */
body.egps-app-page{margin:0!important;padding:0!important;background:#f4f7fb!important;overflow-x:hidden!important}
body.egps-app-page #wpadminbar{display:none!important}
body.egps-app-page html{margin-top:0!important}
body.egps-app-page #page,body.egps-app-page .site,body.egps-app-page .site-content,body.egps-app-page main,body.egps-app-page article,body.egps-app-page .entry-content,body.egps-app-page .wp-site-blocks{margin-top:0!important;padding-top:0!important}
body.egps-app-page header.site-header,body.egps-app-page footer.site-footer,body.egps-app-page .wp-block-template-part,body.egps-app-page .entry-header,body.egps-app-page .entry-footer{display:none!important}
body.egps-app-page .egps-shell{width:100%;max-width:none;margin:0 auto;border-radius:0;min-height:100vh;overflow:clip;box-shadow:none}
body.egps-app-page .egps-layout{grid-template-columns:240px minmax(0,1fr);gap:0}
body.egps-app-page .egps-main{padding:clamp(24px,3vw,44px);min-width:0}
body.egps-app-page .egps-page-heading{margin-bottom:30px}
body.egps-app-page .egps-stats{gap:20px;margin-bottom:36px}
body.egps-app-page .egps-stat{padding:24px;min-height:176px}
body.egps-app-page .egps-quick-grid{gap:18px;margin-bottom:34px}
body.egps-app-page .egps-quick-card{padding:22px;min-height:128px}
body.egps-app-page .egps-panel{padding:26px;margin:24px 0}
body.egps-app-page .egps-section-heading{margin:28px 0 18px}
body.admin-bar.egps-app-page{margin-top:0!important}
@media(max-width:1050px){body.egps-app-page .egps-layout{grid-template-columns:200px minmax(0,1fr)}body.egps-app-page .egps-main{padding:24px}body.egps-app-page .egps-stats,body.egps-app-page .egps-quick-grid{gap:12px}body.egps-app-page .egps-stat,body.egps-app-page .egps-quick-card{padding:17px}}
@media(max-width:720px){body.egps-app-page .egps-layout{display:block}body.egps-app-page .egps-shell{width:100%;margin:0;min-height:100dvh}body.egps-app-page .egps-main{padding:24px 16px calc(100px + env(safe-area-inset-bottom))}body.egps-app-page .egps-topbar{padding:0 16px;gap:8px}body.egps-app-page .egps-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:28px}body.egps-app-page .egps-stat{min-height:145px;padding:15px}body.egps-app-page .egps-stat:last-child{grid-column:1/-1}body.egps-app-page .egps-quick-grid{grid-template-columns:1fr;gap:12px}body.egps-app-page .egps-quick-card{min-height:82px;padding:15px}body.egps-app-page .egps-panel{padding:17px;margin:18px 0}body.egps-app-page .egps-section-heading{margin:24px 0 14px;align-items:flex-start}body.egps-app-page .egps-page-heading{gap:10px;margin-bottom:24px}body.egps-app-page .egps-mobile-nav{padding-bottom:calc(10px + env(safe-area-inset-bottom))}}
@media(max-width:380px){body.egps-app-page .egps-brand strong{max-width:125px}body.egps-app-page .egps-logout{font-size:10px}body.egps-app-page .egps-stat{padding:12px}body.egps-app-page .egps-stat strong{font-size:19px}}


/* EGPS public institutional homepage */
body.egps-app-page:has(.egps-public) { background:#fff; }
body.egps-app-page:has(.egps-public) #page,
body.egps-app-page:has(.egps-public) .site,
body.egps-app-page:has(.egps-public) .site-content,
body.egps-app-page:has(.egps-public) main#primary,
body.egps-app-page:has(.egps-public) .content-area { width:100%; max-width:none; margin:0; padding:0; }
body.egps-app-page:has(.egps-public) .entry-header,
body.egps-app-page:has(.egps-public) .entry-footer,
body.egps-app-page:has(.egps-public) .wp-block-post-title,
body.egps-app-page:has(.egps-public) .site-header,
body.egps-app-page:has(.egps-public) .site-footer { display:none !important; }
.egps-public { --pub-ink:#102747; --pub-muted:#687a91; --pub-blue:#175bd7; --pub-pale:#f3f7fc; color:var(--pub-ink); background:#fff; font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; width:100%; overflow:hidden; line-height:1.5; }
.egps-public * { box-sizing:border-box; }
.egps-public a { text-decoration:none; }
.egps-public-header { max-width:1240px; margin:0 auto; min-height:88px; padding:18px 28px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.egps-public-brand { display:flex; align-items:center; gap:12px; color:var(--pub-ink); min-width:0; }
.egps-public-brand img { width:48px; height:48px; object-fit:contain; }
.egps-public-brand strong,.egps-public-brand small { display:block; }
.egps-public-brand strong { font-size:15px; line-height:1.25; letter-spacing:-.2px; }
.egps-public-brand small { color:var(--pub-muted); font-size:12px; margin-top:3px; }
.egps-public-mark { width:46px; height:46px; border-radius:14px; display:grid; place-items:center; color:#fff; font-size:24px; font-weight:800; background:linear-gradient(145deg,#1d66dc,#123b86); box-shadow:0 8px 20px #175bd72b; }
.egps-public-nav { display:flex; align-items:center; gap:clamp(14px,2.2vw,30px); }
.egps-public-nav>a:not(.egps-public-login) { color:#52647c; font-size:13px; font-weight:600; }
.egps-public-nav>a:hover { color:var(--pub-blue); }
.egps-public-login { background:#175bd7; color:#fff!important; padding:12px 17px; border-radius:10px; font-size:13px; font-weight:700; box-shadow:0 7px 16px #175bd72a; }
.egps-public-login span,.egps-public-primary span { margin-left:10px; }
.egps-public-menu-toggle { display:none; border:1px solid #dbe4f0; background:#fff; border-radius:10px; padding:9px 12px; color:var(--pub-ink); font-size:20px; }
.egps-public-hero { max-width:1240px; margin:0 auto; padding:68px 42px 72px; display:grid; grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr); align-items:center; gap:50px; min-height:490px; background:radial-gradient(ellipse at 90% 50%,#e5efff 0,transparent 48%); }
.egps-public-kicker { display:inline-flex; align-items:center; gap:9px; color:#175bd7; font-size:10px; font-weight:800; letter-spacing:1.4px; }
.egps-public-kicker i { width:7px; height:7px; border-radius:50%; background:#22b88a; box-shadow:0 0 0 4px #22b88a1c; }
.egps-public-hero h1 { max-width:650px; margin:20px 0 18px; font-size:clamp(38px,4.7vw,64px); letter-spacing:-2.7px; line-height:1.08; color:#102747; font-weight:800; }
.egps-public-hero h1 em { color:#175bd7; font-style:normal; }
.egps-public-hero-content>p { max-width:560px; color:#64758b; font-size:16px; line-height:1.8; margin:0; }
.egps-public-actions { display:flex; flex-wrap:wrap; gap:13px; margin-top:30px; }
.egps-public-primary,.egps-public-secondary { min-height:48px; padding:14px 19px; display:inline-flex; align-items:center; justify-content:center; border-radius:10px; font-size:13px; font-weight:750; }
.egps-public-primary { background:#175bd7; color:#fff!important; box-shadow:0 9px 22px #175bd72b; }
.egps-public-primary:hover,.egps-public-login:hover { background:#1049b2; }
.egps-public-secondary { border:1px solid #d9e2ef; color:#24405f!important; background:#fff; }
.egps-public-trust { display:flex; align-items:center; gap:10px; margin-top:28px; color:#78879b; font-size:12px; }
.egps-public-check { display:grid; place-items:center; width:22px; height:22px; border-radius:50%; color:#10845e; background:#dff7ec; font-weight:800; }
.egps-public-hero-art { min-height:340px; position:relative; display:grid; place-items:center; }
.egps-public-art-orbit { position:absolute; border:1px solid #b8cff5; border-radius:50%; transform:rotate(-24deg); }
.orbit-one { width:360px; height:260px; }
.orbit-two { width:300px; height:360px; transform:rotate(38deg); border-color:#d0def5; }
.egps-public-art-card { position:relative; z-index:1; width:min(300px,80%); min-height:280px; border:1px solid #ffffff; border-radius:23px; padding:30px; color:#fff; background:linear-gradient(145deg,#1c5cc5 0%,#12345f 90%); box-shadow:0 28px 65px #173b6d38; transform:rotate(2deg); }
.egps-public-art-icon { display:grid; place-items:center; width:38px; height:38px; border-radius:12px; background:#ffffff20; color:#b9d4ff; font-size:23px; margin-bottom:22px; }
.egps-public-art-card>small { color:#c4d9ff; font-size:8px; letter-spacing:1.3px; font-weight:800; }
.egps-public-art-card>strong { display:block; margin-top:12px; font-size:29px; line-height:1.18; letter-spacing:-.8px; }
.egps-public-art-card>strong em { color:#a9caff; font-style:normal; }
.egps-public-art-line { width:100%; height:1px; background:#ffffff35; margin-top:22px; }
.egps-public-art-caption { display:block; margin-top:12px; font-size:10px; color:#d3e1f8; letter-spacing:.4px; }
.egps-public-float { position:absolute; z-index:2; padding:10px 14px; border:1px solid #e0e9f7; border-radius:11px; background:#fff; box-shadow:0 10px 30px #173b6d12; color:#3d5778; font-size:10px; font-weight:800; letter-spacing:.8px; }
.float-a { top:35px; right:2px; }.float-b { bottom:27px; left:0; }
.egps-public-pillars { max-width:1160px; margin:0 auto; padding:25px 32px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; border:1px solid #e6edf6; border-radius:17px; background:#fff; box-shadow:0 14px 40px #1b3c6b08; }
.egps-public-pillar { display:flex; align-items:center; gap:14px; min-width:0; }
.pillar-icon { flex:0 0 43px; width:43px; height:43px; border-radius:13px; display:grid; place-items:center; color:#175bd7; background:#edf4ff; font-size:23px; }
.egps-public-pillar strong { font-size:13px; display:block; }
.egps-public-pillar p { margin:4px 0 0; font-size:11px; color:#75849a; }
.egps-public-section { max-width:1240px; margin:0 auto; padding:94px 42px 86px; }
.egps-public-section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:30px; }
.egps-public-section-heading h2,.egps-public-cta h2 { font-size:clamp(28px,3vw,39px); line-height:1.16; letter-spacing:-1.1px; margin:13px 0 9px; color:#102747; }
.egps-public-section-heading p,.egps-public-cta p { margin:0; color:#718198; font-size:14px; line-height:1.7; }
.egps-public-section-heading>a { white-space:nowrap; color:#175bd7; font-size:12px; font-weight:800; }
.egps-public-course-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.egps-public-course { padding:25px; min-height:230px; display:flex; flex-direction:column; border:1px solid #e2eaf4; border-radius:16px; background:#fff; box-shadow:0 8px 28px #163b6908; }
.egps-public-course-top { display:flex; align-items:center; justify-content:space-between; color:#175bd7; font-size:9px; font-weight:800; letter-spacing:1px; }
.course-arrow { width:29px; height:29px; display:grid; place-items:center; border-radius:9px; background:#edf4ff; font-size:15px; }
.egps-public-course h3 { margin:23px 0 9px; font-size:18px; line-height:1.3; letter-spacing:-.3px; }
.egps-public-course p { color:#718198; font-size:12px; line-height:1.75; margin:0 0 18px; }
.egps-public-course-meta { display:flex; flex-wrap:wrap; gap:12px; margin-top:auto; padding-top:6px; color:#72829a; font-size:10px; }
.egps-public-course>a { display:inline-flex; align-items:center; gap:8px; margin-top:18px; color:#175bd7; font-size:12px; font-weight:800; }
.egps-public-course-empty { background:linear-gradient(145deg,#f8fbff,#eef5ff); }
.egps-public-course-note { background:#f8fafc; }
.egps-public-note-icon { display:grid; place-items:center; width:35px; height:35px; background:#e9f1ff; border-radius:10px; color:#175bd7; font-size:20px; }
.egps-public-cta { max-width:1156px; margin:0 auto 82px; padding:40px 44px; border-radius:20px; display:flex; align-items:center; justify-content:space-between; gap:30px; background:linear-gradient(115deg,#102c53,#174d98); color:#fff; }
.egps-public-cta .egps-public-kicker { color:#b8d3ff; }
.egps-public-cta h2 { color:#fff; max-width:620px; margin-top:12px; }
.egps-public-cta p { color:#d0def1; max-width:650px; }
.egps-public-cta .egps-public-primary { flex:0 0 auto; background:#fff; color:#174b91!important; box-shadow:none; }
.egps-public-footer { max-width:1240px; margin:0 auto; padding:28px 42px 22px; border-top:1px solid #e9eef5; display:flex; align-items:center; gap:25px; flex-wrap:wrap; }
.egps-public-footer>p { margin:0; color:#7b899b; font-size:11px; flex:1 1 230px; }
.egps-public-footer>a:not(.egps-public-brand) { color:#175bd7; font-size:11px; font-weight:800; }
.egps-public-copyright { width:100%; padding-top:16px; border-top:1px solid #edf1f6; color:#8793a4; font-size:10px; }
@media (max-width:900px) {
 .egps-public-header { min-height:76px; padding:14px 22px; }
 .egps-public-menu-toggle { display:block; }
 .egps-public-nav { display:none; position:absolute; z-index:30; top:72px; left:14px; right:14px; padding:18px; border:1px solid #e2eaf4; border-radius:14px; background:#fff; box-shadow:0 18px 45px #1027471a; align-items:stretch; flex-direction:column; gap:0; }
 .egps-public-nav.is-open { display:flex; }
 .egps-public-nav>a:not(.egps-public-login) { padding:12px 4px; }
 .egps-public-nav .egps-public-login { margin-top:10px; text-align:center; }
 .egps-public-hero { padding:55px 26px; grid-template-columns:1fr .8fr; gap:20px; }
 .egps-public-hero h1 { font-size:clamp(36px,5.5vw,52px); letter-spacing:-1.8px; }
 .egps-public-hero-art { min-height:300px; }
 .egps-public-art-card { width:245px; padding:24px; min-height:250px; }
 .egps-public-art-card>strong { font-size:25px; }
 .orbit-one { width:280px; height:220px; }.orbit-two { width:245px; height:300px; }
 .egps-public-pillars { margin:0 20px; padding:22px; gap:18px; }
 .egps-public-section { padding:70px 26px; }
 .egps-public-course-grid { gap:14px; }.egps-public-course { padding:20px; }
 .egps-public-cta { margin:0 22px 60px; padding:32px; }
}
@media (max-width:640px) {
 .egps-public-header { padding:13px 17px; }
 .egps-public-brand img,.egps-public-mark { width:42px; height:42px; }
 .egps-public-brand strong { font-size:13px; }.egps-public-brand small { font-size:11px; }
 .egps-public-hero { display:flex; flex-direction:column; align-items:stretch; padding:46px 22px 40px; gap:15px; min-height:0; }
 .egps-public-hero h1 { font-size:clamp(37px,10vw,49px); line-height:1.08; margin:17px 0 14px; letter-spacing:-1.8px; }
 .egps-public-hero-content>p { font-size:14px; line-height:1.75; }
 .egps-public-actions { margin-top:23px; flex-direction:column; align-items:stretch; }
 .egps-public-primary,.egps-public-secondary { width:100%; }
 .egps-public-trust { align-items:flex-start; line-height:1.5; margin-top:20px; }
 .egps-public-hero-art { min-height:280px; margin-top:10px; }
 .egps-public-art-card { width:245px; min-height:245px; }
 .float-a { right:4%; top:10px; }.float-b { left:2%; bottom:9px; }
 .egps-public-pillars { grid-template-columns:1fr; margin:0 17px; padding:20px; gap:19px; }
 .egps-public-section { padding:64px 20px 58px; }
 .egps-public-section-heading { align-items:flex-start; flex-direction:column; gap:14px; margin-bottom:22px; }
 .egps-public-section-heading h2,.egps-public-cta h2 { font-size:30px; }
 .egps-public-course-grid { grid-template-columns:1fr; gap:13px; }
 .egps-public-course { min-height:0; padding:22px; }
 .egps-public-cta { margin:0 17px 48px; padding:27px 22px; align-items:stretch; flex-direction:column; gap:23px; }
 .egps-public-footer { padding:24px 20px 18px; gap:17px; }
 .egps-public-footer>p { flex-basis:100%; }
}


/* v1.0.4 — reset do tema somente nas páginas que hospedam a EGPS */
body.egps-app-page { margin:0 !important; padding:0 !important; background:#f3f6fb !important; overflow-x:hidden !important; }
body.egps-app-page #wpadminbar { display:none !important; }
html { margin-top:0 !important; }
body.egps-app-page.admin-bar { margin-top:0 !important; }
body.egps-app-page #page,
body.egps-app-page .site,
body.egps-app-page #content,
body.egps-app-page .site-content,
body.egps-app-page .content-area,
body.egps-app-page #primary,
body.egps-app-page main,
body.egps-app-page article,
body.egps-app-page .entry-content,
body.egps-app-page .wp-site-blocks,
body.egps-app-page .wp-block-post-content {
  width:100% !important; max-width:none !important; min-width:0 !important;
  margin:0 !important; padding:0 !important; border:0 !important;
}
body.egps-app-page .entry-header,
body.egps-app-page .entry-title,
body.egps-app-page h1.entry-title,
body.egps-app-page .wp-block-post-title,
body.egps-app-page .entry-footer,
body.egps-app-page .site-header,
body.egps-app-page header.site-header,
body.egps-app-page .site-footer,
body.egps-app-page footer.site-footer,
body.egps-app-page .wp-block-template-part,
body.egps-app-page .breadcrumb,
body.egps-app-page .breadcrumbs {
  display:none !important;
}
body.egps-app-page .egps-shell {
  width:100% !important; max-width:none !important; min-height:100vh !important;
  margin:0 !important; border-radius:0 !important; box-shadow:none !important;
}
body.egps-app-page .egps-topbar { padding-left:clamp(16px,3vw,40px); padding-right:clamp(16px,3vw,40px); }
body.egps-app-page .egps-layout { min-height:calc(100vh - 78px); }
body.egps-app-page .egps-main { min-width:0; }
body.egps-app-page .egps-content { padding:clamp(18px,3vw,40px) !important; min-width:0; }
body.egps-app-page .egps-sidebar { min-width:0; }
@media (max-width:700px) {
 body.egps-app-page .egps-topbar { height:auto; min-height:68px; padding:12px 16px; }
 body.egps-app-page .egps-layout { min-height:calc(100vh - 68px); }
 body.egps-app-page .egps-content { padding:18px 14px 28px !important; }
 body.egps-app-page .egps-shell { min-height:100dvh !important; }
}


/* v1.0.6 — isolamento do layout e exibição correta de uma aba por vez */
.egps-tab-panel { display:none !important; width:100%; min-width:0; }
.egps-tab-panel.is-active { display:block !important; }
.egps-shell { width:100% !important; max-width:none !important; margin:0 !important; border-radius:0 !important; min-height:100vh; overflow:clip; }
body.egps-app-page { margin:0 !important; padding:0 !important; overflow-x:hidden !important; }
body.egps-app-page #wpadminbar { display:none !important; }
html:has(body.egps-app-page) { margin-top:0 !important; }
body.egps-app-page #page,
body.egps-app-page .site,
body.egps-app-page #content,
body.egps-app-page .site-content,
body.egps-app-page #primary,
body.egps-app-page main,
body.egps-app-page article,
body.egps-app-page .entry-content,
body.egps-app-page .wp-site-blocks,
body.egps-app-page .wp-block-post-content,
body.egps-app-page .content-area {
  width:100% !important; max-width:none !important; min-width:0 !important;
  margin:0 !important; padding:0 !important; border:0 !important;
}
body.egps-app-page .entry-header,
body.egps-app-page .entry-title,
body.egps-app-page .wp-block-post-title,
body.egps-app-page .entry-footer,
body.egps-app-page .site-header,
body.egps-app-page .site-footer,
body.egps-app-page .wp-block-template-part { display:none !important; }
body.egps-app-page .egps-shell { margin:0 !important; max-width:none !important; width:100% !important; border-radius:0 !important; }
body.egps-app-page .egps-layout { grid-template-columns:245px minmax(0,1fr); width:100%; min-height:calc(100vh - 78px); }
body.egps-app-page .egps-main { min-width:0; overflow-wrap:anywhere; padding:clamp(22px,3vw,42px); }
body.egps-app-page .egps-stats,
body.egps-app-page .egps-quick-grid,
body.egps-app-page .egps-course-grid { width:100%; }
body.egps-app-page .egps-sidebar { min-width:0; }
@media(max-width:1050px) {
 body.egps-app-page .egps-layout { grid-template-columns:205px minmax(0,1fr); }
 body.egps-app-page .egps-main { padding:24px 20px; }
 body.egps-app-page .egps-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
 body.egps-app-page .egps-stats .egps-stat:last-child { grid-column:1/-1; }
}
@media(max-width:720px) {
 body.egps-app-page .egps-layout { display:block; min-height:calc(100vh - 66px); padding-bottom:70px; }
 body.egps-app-page .egps-sidebar { display:none; }
 body.egps-app-page .egps-main { padding:22px 15px 30px !important; }
 body.egps-app-page .egps-topbar { height:66px; padding:0 15px; }
 body.egps-app-page .egps-page-heading { align-items:flex-start; flex-direction:column; gap:10px; }
 body.egps-app-page .egps-stats { grid-template-columns:1fr; gap:12px; }
 body.egps-app-page .egps-stats .egps-stat:last-child { grid-column:auto; }
 body.egps-app-page .egps-quick-grid,
 body.egps-app-page .egps-course-grid { grid-template-columns:1fr; }
 body.egps-app-page .egps-panel { padding:16px; margin:16px 0; }
 body.egps-app-page .egps-mobile-nav { position:fixed; z-index:9998; left:0; right:0; bottom:0; display:flex; justify-content:space-around; gap:4px; padding:9px 8px calc(9px + env(safe-area-inset-bottom)); background:#fff; border-top:1px solid #e4eaf2; box-shadow:0 -8px 24px #152d4c0b; }
 body.egps-app-page .egps-mobile-nav a { flex:1; min-width:0; display:flex; flex-direction:column; align-items:center; gap:3px; color:#6b7890!important; text-decoration:none!important; font-size:10px; }
 body.egps-app-page .egps-mobile-nav a span { font-size:18px; }
 body.egps-app-page .egps-mobile-nav a.active { color:#225bc2!important; font-weight:700; }
}


/* v1.0.7 — full-bleed pages: escape theme's constrained content containers */
html:has(body.egps-app-page) { margin-top:0 !important; scroll-padding-top:0 !important; }
body.egps-app-page,
body.egps-app-page.admin-bar { margin:0 !important; padding:0 !important; width:100% !important; max-width:none !important; overflow-x:clip !important; }
body.egps-app-page #wpadminbar { display:none !important; }
body.egps-app-page #page,
body.egps-app-page .site,
body.egps-app-page #content,
body.egps-app-page .site-content,
body.egps-app-page .content-area,
body.egps-app-page #primary,
body.egps-app-page main#main,
body.egps-app-page main.site-main,
body.egps-app-page article,
body.egps-app-page .entry-content,
body.egps-app-page .wp-site-blocks,
body.egps-app-page .wp-block-post-content,
body.egps-app-page .container,
body.egps-app-page .content-container,
body.egps-app-page .site-main-inner {
  width:100% !important; max-width:none !important; min-width:0 !important;
  margin:0 !important; padding:0 !important; border:0 !important;
}
body.egps-app-page .entry-header,
body.egps-app-page .entry-title,
body.egps-app-page h1.entry-title,
body.egps-app-page .wp-block-post-title,
body.egps-app-page .entry-footer,
body.egps-app-page header.site-header,
body.egps-app-page footer.site-footer,
body.egps-app-page .wp-block-template-part,
body.egps-app-page .breadcrumbs,
body.egps-app-page .breadcrumb { display:none !important; }

/* Force both the public landing page and private dashboard to viewport width
   even when the active WordPress theme uses a narrow centered content column. */
body.egps-app-page .egps-public,
body.egps-app-page .egps-shell {
  position:relative !important;
  width:100vw !important;
  max-width:100vw !important;
  min-width:0 !important;
  margin-left:calc(50% - 50vw) !important;
  margin-right:calc(50% - 50vw) !important;
  left:auto !important;
  right:auto !important;
  border-radius:0 !important;
  box-shadow:none !important;
}
body.egps-app-page .egps-public { overflow-x:clip !important; background:#fff !important; }
body.egps-app-page .egps-public-header,
body.egps-app-page .egps-public-hero,
body.egps-app-page .egps-public-pillars,
body.egps-app-page .egps-public-section,
body.egps-app-page .egps-public-cta,
body.egps-app-page .egps-public-footer { box-sizing:border-box; }
body.egps-app-page .egps-public-header,
body.egps-app-page .egps-public-hero,
body.egps-app-page .egps-public-section,
body.egps-app-page .egps-public-footer { max-width:1240px; }
body.egps-app-page .egps-public-pillars,
body.egps-app-page .egps-public-cta { max-width:1156px; }
body.egps-app-page .egps-layout {
  display:grid !important;
  grid-template-columns:245px minmax(0,1fr) !important;
  width:100% !important; max-width:none !important;
  margin:0 !important; gap:0 !important;
}
body.egps-app-page .egps-sidebar { width:auto !important; min-width:0 !important; }
body.egps-app-page .egps-main { width:100% !important; max-width:none !important; min-width:0 !important; box-sizing:border-box !important; }
body.egps-app-page .egps-stats,
body.egps-app-page .egps-quick-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); width:100%; }
body.egps-app-page .egps-stat,
body.egps-app-page .egps-quick-card,
body.egps-app-page .egps-panel { min-width:0; box-sizing:border-box; }
@media (max-width:1050px) {
 body.egps-app-page .egps-layout { grid-template-columns:210px minmax(0,1fr) !important; }
 body.egps-app-page .egps-main { padding:24px !important; }
 body.egps-app-page .egps-stats,
 body.egps-app-page .egps-quick-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:720px) {
 body.egps-app-page .egps-layout { display:block !important; min-height:calc(100dvh - 66px); padding-bottom:80px; }
 body.egps-app-page .egps-sidebar { display:none !important; }
 body.egps-app-page .egps-main { padding:22px 15px calc(90px + env(safe-area-inset-bottom)) !important; }
 body.egps-app-page .egps-topbar { width:100%; min-height:66px; height:auto; padding:12px 15px !important; box-sizing:border-box; }
 body.egps-app-page .egps-stats,
 body.egps-app-page .egps-quick-grid { grid-template-columns:minmax(0,1fr) !important; }
 body.egps-app-page .egps-stat:last-child { grid-column:auto !important; }
 body.egps-app-page .egps-page-heading { display:flex; flex-direction:column; align-items:flex-start; gap:10px; }
 body.egps-app-page .egps-panel { padding:16px !important; margin:16px 0 !important; }
 body.egps-app-page .egps-public-header { padding:13px 17px; }
 body.egps-app-page .egps-public-hero { padding:42px 20px; }
 body.egps-app-page .egps-public-pillars { margin:0 16px; }
 body.egps-app-page .egps-public-section { padding:55px 20px; }
 body.egps-app-page .egps-public-cta { margin:0 16px 42px; }
 body.egps-app-page .egps-public-footer { padding:22px 20px; }
}


/* v1.0.8 — robust theme-independent full viewport layout and app-like mobile UI */
html:has(body.egps-app-page), html:has(body.egps-app-page) body {
  margin:0 !important; padding:0 !important; width:100% !important; max-width:100% !important;
  min-height:100% !important; overflow-x:hidden !important;
}
body.egps-app-page { position:relative !important; inset:auto !important; top:0 !important; background:#f4f7fb !important; }
body.egps-app-page #wpadminbar { display:none !important; }
body.egps-app-page #page,
body.egps-app-page .site,
body.egps-app-page #content,
body.egps-app-page .site-content,
body.egps-app-page .content-area,
body.egps-app-page #primary,
body.egps-app-page #main,
body.egps-app-page main,
body.egps-app-page article,
body.egps-app-page .entry-content,
body.egps-app-page .wp-site-blocks,
body.egps-app-page .wp-block-post-content,
body.egps-app-page .container,
body.egps-app-page .content-container,
body.egps-app-page .site-main-inner,
body.egps-app-page .inside-article,
body.egps-app-page .ast-container,
body.egps-app-page .ct-container,
body.egps-app-page .wp-block-group,
body.egps-app-page .wp-block-group__inner-container {
  width:100% !important; max-width:none !important; min-width:0 !important;
  margin:0 !important; padding:0 !important; border:0 !important; box-sizing:border-box !important;
}
body.egps-app-page .entry-header,
body.egps-app-page .entry-title,
body.egps-app-page h1.entry-title,
body.egps-app-page .wp-block-post-title,
body.egps-app-page .entry-footer,
body.egps-app-page header.site-header,
body.egps-app-page footer.site-footer,
body.egps-app-page .wp-block-template-part,
body.egps-app-page .site-info,
body.egps-app-page .breadcrumbs,
body.egps-app-page .breadcrumb { display:none !important; }

/* No artificial margins: system and homepage run edge-to-edge. */
body.egps-app-page .egps-shell,
body.egps-app-page .egps-public {
  display:block !important; position:relative !important;
  width:100% !important; max-width:none !important; min-width:0 !important;
  min-height:100vh !important; margin:0 !important; padding:0 !important;
  left:auto !important; right:auto !important; top:auto !important;
  border-radius:0 !important; box-shadow:none !important; transform:none !important;
}
body.egps-app-page .egps-shell { overflow:visible !important; background:#f4f7fb !important; }
body.egps-app-page .egps-topbar {
  position:relative !important; top:auto !important; width:100% !important; max-width:none !important;
  min-height:76px !important; height:auto !important; margin:0 !important; padding:14px clamp(16px,2.5vw,36px) !important;
  box-sizing:border-box !important; flex-wrap:wrap;
}
body.egps-app-page .egps-layout {
  display:grid !important; grid-template-columns:245px minmax(0,1fr) !important;
  width:100% !important; max-width:none !important; min-height:calc(100vh - 76px) !important;
  margin:0 !important; padding:0 !important; gap:0 !important; align-items:stretch !important;
}
body.egps-app-page .egps-sidebar {
  display:flex !important; flex-direction:column !important; width:auto !important; max-width:none !important;
  min-width:0 !important; margin:0 !important; padding:22px 12px !important; gap:6px !important;
  box-sizing:border-box !important; align-self:stretch !important;
}
body.egps-app-page .egps-nav { width:100% !important; min-width:0 !important; margin:0 !important; white-space:normal !important; }
body.egps-app-page .egps-main {
  width:100% !important; max-width:none !important; min-width:0 !important;
  margin:0 !important; padding:clamp(22px,3vw,42px) clamp(18px,2.6vw,40px) 48px !important;
  box-sizing:border-box !important; overflow-wrap:anywhere !important;
}
body.egps-app-page .egps-page-heading { display:flex; flex-wrap:wrap; min-width:0; align-items:flex-end; }
body.egps-app-page .egps-page-heading > *,
body.egps-app-page .egps-section-heading > *,
body.egps-app-page .egps-stat,
body.egps-app-page .egps-quick-card,
body.egps-app-page .egps-panel { min-width:0 !important; max-width:100%; }
body.egps-app-page .egps-stats,
body.egps-app-page .egps-quick-grid,
body.egps-app-page .egps-course-grid { display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:18px !important; width:100% !important; }
body.egps-app-page .egps-stat,
body.egps-app-page .egps-quick-card,
body.egps-app-page .egps-panel { margin:0 0 18px !important; padding:22px !important; overflow-wrap:anywhere; }
body.egps-app-page .egps-tab-panel { display:none !important; }
body.egps-app-page .egps-tab-panel.is-active { display:block !important; }
body.egps-app-page .egps-public { overflow-x:clip !important; color:#102747; }
body.egps-app-page .egps-public-header,
body.egps-app-page .egps-public-hero,
body.egps-app-page .egps-public-section,
body.egps-app-page .egps-public-footer { width:100% !important; max-width:1240px !important; margin-left:auto !important; margin-right:auto !important; }
body.egps-app-page .egps-public-header { min-height:78px; }
body.egps-app-page .egps-public-hero { grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr) !important; gap:clamp(20px,4vw,56px) !important; }
body.egps-app-page .egps-public-hero-content,
body.egps-app-page .egps-public-hero-art { min-width:0 !important; }
body.egps-app-page .egps-public-hero h1 { overflow-wrap:anywhere; }
body.egps-app-page .egps-public-pillars { width:calc(100% - 40px) !important; }
body.egps-app-page .egps-public-course-grid { grid-template-columns:repeat(3,minmax(0,1fr)) !important; }
body.egps-app-page .egps-public-course { min-width:0; overflow-wrap:anywhere; }
body.egps-app-page .egps-public-cta { width:calc(100% - 48px) !important; }
@media (max-width:1000px) {
  body.egps-app-page .egps-layout { grid-template-columns:215px minmax(0,1fr) !important; }
  body.egps-app-page .egps-stats,
  body.egps-app-page .egps-quick-grid,
  body.egps-app-page .egps-course-grid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
  body.egps-app-page .egps-public-hero { grid-template-columns:minmax(0,1fr) minmax(250px,.8fr) !important; padding-left:28px !important; padding-right:28px !important; }
  body.egps-app-page .egps-public-hero h1 { font-size:clamp(34px,5vw,52px) !important; letter-spacing:-1.5px !important; }
}
@media (max-width:720px) {
  body.egps-app-page .egps-shell,
  body.egps-app-page .egps-public { min-height:100dvh !important; }
  body.egps-app-page .egps-topbar { min-height:66px !important; padding:11px 14px !important; gap:10px !important; }
  body.egps-app-page .egps-brand { max-width:calc(100% - 125px); }
  body.egps-app-page .egps-brand strong { white-space:normal !important; overflow-wrap:anywhere; font-size:13px !important; }
  body.egps-app-page .egps-user { gap:7px !important; }
  body.egps-app-page .egps-avatar { width:32px; height:32px; flex:0 0 32px; }
  body.egps-app-page .egps-layout { display:block !important; min-height:calc(100dvh - 66px) !important; padding:0 0 calc(76px + env(safe-area-inset-bottom)) !important; }
  body.egps-app-page .egps-sidebar { display:none !important; }
  body.egps-app-page .egps-main { padding:22px 14px 28px !important; }
  body.egps-app-page .egps-page-heading { display:flex !important; flex-direction:column !important; align-items:flex-start !important; gap:10px !important; margin-bottom:20px !important; }
  body.egps-app-page .egps-page-heading h1 { font-size:26px !important; line-height:1.2 !important; }
  body.egps-app-page .egps-stats,
  body.egps-app-page .egps-quick-grid,
  body.egps-app-page .egps-course-grid { grid-template-columns:minmax(0,1fr) !important; gap:12px !important; }
  body.egps-app-page .egps-stat,
  body.egps-app-page .egps-quick-card,
  body.egps-app-page .egps-panel { padding:17px !important; margin:0 0 12px !important; border-radius:14px !important; }
  body.egps-app-page .egps-mobile-nav { display:flex !important; position:fixed !important; z-index:999999 !important; left:0 !important; right:0 !important; bottom:0 !important; width:100% !important; margin:0 !important; padding:8px 6px calc(8px + env(safe-area-inset-bottom)) !important; justify-content:space-around; background:#fff !important; border-top:1px solid #e2e9f2 !important; box-shadow:0 -6px 24px #152d4c12 !important; }
  body.egps-app-page .egps-mobile-nav a { flex:1 1 0; min-width:0; padding:5px 1px; font-size:10px; text-align:center; overflow-wrap:anywhere; }
  body.egps-app-page .egps-public-header { padding:12px 16px !important; }
  body.egps-app-page .egps-public-nav { left:12px !important; right:12px !important; max-width:none !important; }
  body.egps-app-page .egps-public-hero { display:flex !important; flex-direction:column !important; align-items:stretch !important; padding:38px 20px 32px !important; gap:16px !important; }
  body.egps-app-page .egps-public-hero-content { width:100% !important; }
  body.egps-app-page .egps-public-hero h1 { font-size:clamp(35px,9vw,48px) !important; line-height:1.08 !important; letter-spacing:-1.4px !important; }
  body.egps-app-page .egps-public-hero-content>p { font-size:14px !important; }
  body.egps-app-page .egps-public-hero-art { width:100% !important; max-width:100% !important; min-height:270px !important; overflow:hidden; }
  body.egps-app-page .egps-public-pillars { grid-template-columns:minmax(0,1fr) !important; width:calc(100% - 32px) !important; margin:0 16px !important; padding:19px !important; gap:18px !important; }
  body.egps-app-page .egps-public-section { padding:54px 18px !important; }
  body.egps-app-page .egps-public-section-heading { align-items:flex-start !important; flex-direction:column !important; gap:12px !important; }
  body.egps-app-page .egps-public-course-grid { grid-template-columns:minmax(0,1fr) !important; }
  body.egps-app-page .egps-public-cta { display:flex !important; flex-direction:column !important; align-items:stretch !important; width:calc(100% - 32px) !important; margin:0 16px 36px !important; padding:25px 20px !important; }
  body.egps-app-page .egps-public-footer { display:flex !important; flex-direction:column !important; align-items:flex-start !important; padding:22px 18px !important; gap:15px !important; }
}


/* v1.0.9 — homepage cards with predictable text flow and in-app settings */
.egps-public-course-grid { align-items:stretch !important; gap:20px !important; }
.egps-public-course {
  box-sizing:border-box !important; min-width:0 !important; height:100% !important;
  min-height:230px !important; padding:24px !important; display:flex !important;
  flex-direction:column !important; align-items:stretch !important; gap:0 !important;
  overflow-wrap:anywhere !important; word-break:normal !important;
}
.egps-public-course-top { flex:0 0 auto; min-height:30px; gap:12px; }
.egps-public-course h3 {
  min-width:0 !important; max-width:100% !important; margin:18px 0 10px !important;
  font-size:clamp(17px,1.5vw,20px) !important; line-height:1.35 !important;
  letter-spacing:-.25px !important; overflow-wrap:anywhere !important; hyphens:auto;
}
.egps-public-course p {
  min-width:0 !important; max-width:100% !important; margin:0 0 18px !important;
  font-size:13px !important; line-height:1.7 !important; overflow-wrap:anywhere !important;
}
.egps-public-course > a { margin-top:auto !important; padding-top:10px; display:inline-flex; align-items:center; gap:8px; align-self:flex-start; line-height:1.5; max-width:100%; overflow-wrap:anywhere; }
.egps-public-course-note .egps-public-note-icon { flex:0 0 35px; width:35px; height:35px; margin-bottom:10px; }
.egps-settings-form { max-width:100% !important; margin:0 !important; padding:clamp(18px,2.5vw,30px) !important; }
.egps-settings-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.egps-settings-grid label { display:flex; flex-direction:column; gap:8px; min-width:0; color:#243b5c; font-size:13px; font-weight:700; }
.egps-settings-grid input,
.egps-settings-grid textarea { width:100%; max-width:100%; min-width:0; box-sizing:border-box; border:1px solid #dce5f0; border-radius:10px; padding:12px 13px; background:#fff; color:#172f50; font:inherit; font-weight:400; }
.egps-settings-grid input:focus,
.egps-settings-grid textarea:focus { outline:2px solid #cfe0ff; border-color:#3976e8; }
.egps-settings-grid small { color:#7b8ba2; font-weight:400; line-height:1.5; }
.egps-settings-wide { grid-column:1/-1; }
.egps-settings-actions { display:flex; justify-content:flex-end; margin-top:22px; }
.egps-notice-success { padding:13px 16px; margin:0 0 18px; border:1px solid #b8e5ce; border-radius:10px; background:#f0fbf5; color:#17683c; }
@media(max-width:850px) {
 .egps-public-course-grid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:16px !important; }
 .egps-public-course { padding:21px !important; }
 .egps-settings-grid { gap:15px; }
}
@media(max-width:560px) {
 .egps-public-course-grid { grid-template-columns:minmax(0,1fr) !important; gap:14px !important; }
 .egps-public-course { min-height:0 !important; height:auto !important; padding:21px !important; border-radius:15px !important; }
 .egps-public-course h3 { font-size:19px !important; line-height:1.35 !important; margin-top:15px !important; }
 .egps-public-course p { font-size:13px !important; line-height:1.7 !important; }
 .egps-settings-grid { grid-template-columns:minmax(0,1fr) !important; gap:15px; }
 .egps-settings-wide { grid-column:auto; }
 .egps-settings-actions { justify-content:stretch; }
 .egps-settings-actions .egps-btn { width:100%; justify-content:center; }
}


/* v1.1.0 — safe card padding and logo attachment picker */
.egps-public-course {
  box-sizing:border-box !important;
  padding:clamp(24px,2.5vw,34px) !important;
}
.egps-public-course h3 { margin-top:20px !important; margin-bottom:12px !important; }
.egps-public-course p { margin-bottom:24px !important; line-height:1.75 !important; }
.egps-public-course > a { margin-top:auto !important; padding-top:12px !important; }
.egps-settings-grid .egps-logo-setting { grid-column:1/-1; }
.egps-logo-preview { display:flex; align-items:center; justify-content:center; min-height:100px; max-width:320px; padding:16px; border:1px dashed #ccd8e7; border-radius:12px; background:#f8faff; color:#7c8ba2; }
.egps-logo-preview img { display:block; max-width:100%; max-height:100px; width:auto; height:auto; object-fit:contain; }
.egps-logo-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:12px; }
.egps-settings-grid .egps-btn-secondary { border:1px solid #d6e0ed; background:#fff; color:#25456d; border-radius:9px; padding:10px 14px; cursor:pointer; font:inherit; font-weight:600; }
@media(max-width:560px) {
 .egps-public-course { padding:24px 22px !important; }
 .egps-public-course h3 { margin-top:18px !important; }
 .egps-public-course p { margin-bottom:20px !important; }
 .egps-logo-actions { flex-direction:column; align-items:stretch; }
 .egps-logo-actions button { width:100%; }
}


/* v1.1.1 — enforce visible media-picker labels and 0.5 cm card inner margins */
.egps-logo-actions { display:flex !important; align-items:center !important; flex-wrap:wrap !important; gap:10px !important; }
.egps-logo-actions button,
.egps-settings-grid .egps-logo-actions button,
.egps-settings-form .egps-logo-actions button {
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  width:auto !important; min-width:118px !important; min-height:42px !important;
  padding:10px 16px !important; margin:0 !important;
  color:#24456f !important; background:#ffffff !important; border:1px solid #cbd8e8 !important;
  border-radius:10px !important; font-family:inherit !important; font-size:14px !important;
  font-weight:600 !important; line-height:1.35 !important; letter-spacing:normal !important;
  text-indent:0 !important; text-transform:none !important; white-space:normal !important;
  opacity:1 !important; visibility:visible !important; box-shadow:none !important; cursor:pointer !important;
}
.egps-logo-actions button:hover { color:#174fc6 !important; border-color:#8eafea !important; background:#f5f8ff !important; }
.egps-public-course-grid { display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:20px !important; align-items:stretch !important; }
.egps-public-course,
.egps-public-course-grid > article.egps-public-course {
  box-sizing:border-box !important;
  padding:19px !important; /* 0.5 cm on each side */
  min-width:0 !important; width:100% !important;
  overflow:hidden !important; overflow-wrap:anywhere !important;
  display:flex !important; flex-direction:column !important; align-items:stretch !important;
}
.egps-public-course-top { display:flex !important; align-items:center !important; justify-content:space-between !important; gap:12px !important; width:100% !important; min-width:0 !important; }
.egps-public-course h3 { margin:18px 0 12px !important; padding:0 !important; max-width:100% !important; font-size:clamp(17px,1.45vw,20px) !important; line-height:1.4 !important; overflow-wrap:anywhere !important; }
.egps-public-course p { margin:0 0 18px !important; padding:0 !important; max-width:100% !important; font-size:13px !important; line-height:1.75 !important; overflow-wrap:anywhere !important; }
.egps-public-course > a { margin-top:auto !important; padding:8px 0 0 !important; display:inline-flex !important; align-items:center !important; gap:8px !important; align-self:flex-start !important; max-width:100% !important; line-height:1.5 !important; }
.egps-public-course-note .egps-public-note-icon { flex:0 0 35px !important; margin:0 0 2px !important; }
@media(max-width:900px) {
 .egps-public-course-grid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:16px !important; }
}
@media(max-width:600px) {
 .egps-public-course-grid { grid-template-columns:minmax(0,1fr) !important; gap:14px !important; }
 .egps-public-course, .egps-public-course-grid > article.egps-public-course { padding:19px !important; min-height:0 !important; height:auto !important; }
 .egps-public-course h3 { font-size:19px !important; line-height:1.4 !important; margin-top:16px !important; }
 .egps-logo-actions { flex-direction:column !important; align-items:stretch !important; }
 .egps-logo-actions button, .egps-settings-grid .egps-logo-actions button { width:100% !important; }
}


/* v1.1.2 — display horizontal school logos at a readable size in headers */
.egps-brand img {
  display:block !important;
  width:auto !important;
  height:auto !important;
  max-width:180px !important;
  max-height:48px !important;
  min-width:0 !important;
  object-fit:contain !important;
  object-position:left center !important;
  border-radius:0 !important;
  flex:0 1 auto !important;
}
.egps-public-brand img {
  display:block !important;
  width:auto !important;
  height:auto !important;
  max-width:190px !important;
  max-height:48px !important;
  min-width:0 !important;
  object-fit:contain !important;
  object-position:left center !important;
  flex:0 1 auto !important;
}
.egps-auth-logo img {
  width:100% !important;
  height:100% !important;
  max-width:100% !important;
  max-height:100% !important;
  object-fit:contain !important;
  padding:4px !important;
  border-radius:0 !important;
}
@media(max-width:600px) {
  .egps-brand img { max-width:130px !important; max-height:38px !important; }
  .egps-public-brand img { max-width:138px !important; max-height:38px !important; }
  .egps-brand { gap:8px !important; }
  .egps-public-brand { gap:8px !important; }
  .egps-brand strong { max-width:150px !important; font-size:13px !important; }
}


/* v1.1.3 — horizontal school logo on login screen */
.egps-auth-brand .egps-auth-logo {
  width:auto !important;
  height:auto !important;
  min-width:0 !important;
  max-width:min(240px,100%) !important;
  min-height:0 !important;
  padding:0 !important;
  margin:0 0 28px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  line-height:1 !important;
}
.egps-auth-brand .egps-auth-logo img {
  display:block !important;
  width:auto !important;
  height:auto !important;
  max-width:min(220px,100%) !important;
  max-height:100px !important;
  object-fit:contain !important;
  object-position:left center !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
}
.egps-auth-brand .egps-auth-logo > span {
  display:grid; place-items:center; width:56px; height:56px;
  border-radius:15px; background:#ffffff20; border:1px solid #ffffff35;
  color:#fff; font:800 28px Manrope,sans-serif;
}
@media(max-width:640px) {
  .egps-auth-wrap { grid-template-columns:minmax(0,1fr) !important; }
  .egps-auth-brand { padding:28px 24px !important; }
  .egps-auth-brand .egps-auth-logo { max-width:100% !important; margin-bottom:20px !important; }
  .egps-auth-brand .egps-auth-logo img { max-width:min(180px,100%) !important; max-height:76px !important; }
}


/* v1.1.4 — in-app user approval and consistent mobile door icon */
.egps-door-icon { display:inline-flex !important; width:22px !important; height:22px !important; align-items:center; justify-content:center; }
.egps-door-icon svg { display:block; width:20px; height:20px; stroke:currentColor; }
body.egps-app-page .egps-mobile-nav a.egps-mobile-logout { color:#6b7890 !important; }
body.egps-app-page .egps-mobile-nav a.egps-mobile-logout:hover,
body.egps-app-page .egps-mobile-nav a.egps-mobile-logout:focus { color:#225bc2 !important; }
.egps-users-panel { max-width:100%; min-width:0; }
.egps-user-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.egps-user-actions form { margin:0; }
.egps-user-actions .egps-btn { min-height:36px; padding:8px 12px; font-size:12px; white-space:nowrap; }
.egps-btn-danger { border:1px solid #f0c7c7 !important; background:#fff5f5 !important; color:#b4232d !important; }
.egps-btn-danger:hover { background:#ffe9e9 !important; }
@media(max-width:720px) {
 body.egps-app-page .egps-users-panel { padding:12px !important; }
 body.egps-app-page .egps-user-actions { min-width:145px; }
 body.egps-app-page .egps-user-actions .egps-btn { flex:1; }
 body.egps-app-page .egps-mobile-nav a.egps-mobile-logout { color:#6b7890 !important; }
}


/* v1.1.5 — in-app user directory, CPF search, edit and delete */
.egps-user-search { display:grid; gap:9px; padding:18px; margin:0 0 16px; border:1px solid #e4eaf3; border-radius:13px; background:#fbfcff; }
.egps-user-search label { font-size:13px; font-weight:700; color:#2d4566; }
.egps-user-search-row { display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
.egps-user-search-row input { flex:1 1 240px; min-width:0; height:42px; box-sizing:border-box; padding:10px 12px; border:1px solid #dbe4f0; border-radius:9px; background:#fff; color:#203957; font:inherit; }
.egps-user-search-row .egps-btn { text-decoration:none; display:inline-flex; align-items:center; justify-content:center; min-height:42px; }
.egps-user-search small { color:#7b8ba2; font-size:11px; line-height:1.5; }
.egps-user-counts { display:flex; gap:10px 18px; flex-wrap:wrap; margin:0 0 14px; color:#667993; font-size:12px; }
.egps-user-counts b { color:#19375e; }
.egps-user-edit { position:relative; }
.egps-user-edit summary { list-style:none; cursor:pointer; }
.egps-user-edit summary::-webkit-details-marker { display:none; }
.egps-user-edit[open] { z-index:5; }
.egps-user-edit-form { display:grid; gap:10px; min-width:250px; max-width:340px; padding:16px; margin-top:8px; border:1px solid #dce5f0; border-radius:12px; background:#fff; box-shadow:0 12px 32px rgba(24,49,82,.12); }
.egps-user-edit-form label { display:grid; gap:5px; color:#4c607b; font-size:11px; font-weight:700; }
.egps-user-edit-form input,.egps-user-edit-form select { width:100%; min-width:0; box-sizing:border-box; height:39px; padding:8px 10px; border:1px solid #dbe4f0; border-radius:8px; background:#fff; color:#213958; font:inherit; }
.egps-user-edit-form .egps-btn { justify-content:center; }
.egps-manage-users-table td { vertical-align:top; }
.egps-manage-users-table .egps-user-actions { min-width:180px; }
.egps-manage-users-table .egps-btn { text-decoration:none; }
@media(max-width:600px) {
 .egps-user-search { padding:14px; }
 .egps-user-search-row { display:grid; grid-template-columns:minmax(0,1fr); }
 .egps-user-search-row input,.egps-user-search-row .egps-btn { width:100%; }
 .egps-user-counts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
 .egps-user-edit-form { position:static; min-width:0; width:min(80vw,320px); }
 .egps-manage-users-table .egps-user-actions { min-width:150px; }
}


/* v1.1.6 — user editor opens as a responsive dialog, not inside the table flow */
.egps-user-edit { position:static !important; }
.egps-user-edit > summary { position:relative; z-index:1; display:inline-flex; align-items:center; justify-content:center; }
.egps-user-edit[open] { position:static !important; z-index:auto !important; }
.egps-user-edit[open]::before {
  content:"";
  position:fixed;
  inset:0;
  z-index:99980;
  background:rgba(17,34,58,.48);
  backdrop-filter:blur(2px);
}
.egps-user-edit-form {
  position:fixed !important;
  z-index:99981 !important;
  top:50% !important;
  left:50% !important;
  transform:translate(-50%,-50%) !important;
  width:min(420px, calc(100vw - 32px)) !important;
  min-width:0 !important;
  max-width:420px !important;
  max-height:calc(100vh - 32px) !important;
  max-height:calc(100dvh - 32px) !important;
  overflow-y:auto !important;
  overscroll-behavior:contain;
  box-sizing:border-box !important;
  margin:0 !important;
  padding:22px !important;
  gap:13px !important;
  border:1px solid #d9e3f0 !important;
  border-radius:16px !important;
  background:#fff !important;
  box-shadow:0 24px 70px rgba(10,31,61,.25) !important;
}
.egps-user-edit-form label { font-size:12px !important; line-height:1.4 !important; gap:7px !important; }
.egps-user-edit-form input,
.egps-user-edit-form select { height:44px !important; padding:10px 12px !important; font-size:14px !important; }
.egps-user-edit-form button[type="submit"] { width:100% !important; min-height:44px !important; margin-top:2px; }
@media(max-width:600px) {
  .egps-user-edit-form {
    width:calc(100vw - 28px) !important;
    max-width:420px !important;
    max-height:calc(100dvh - 28px) !important;
    padding:18px !important;
    border-radius:14px !important;
  }
}


/* v1.1.7 — explicit cancel action in user editor */
.egps-user-edit-form .egps-btn-cancel-edit {
  display:flex !important; align-items:center; justify-content:center; width:100%;
  min-height:42px; margin-top:0; padding:10px 14px; box-sizing:border-box;
  border:1px solid #d7e0ec !important; border-radius:9px;
  background:#f5f7fb !important; color:#405570 !important;
  font:inherit; font-weight:700; cursor:pointer;
}
.egps-user-edit-form .egps-btn-cancel-edit:hover {
  background:#eaf0f8 !important; border-color:#b9c9dc !important;
}
@media(max-width:560px) {
  .egps-user-edit-form .egps-btn-cancel-edit { min-height:44px; }
}
