:root{--bg:#f7f7f0;--surface:#fff;--ink:#142d27;--muted:#53655c;--green:#25594a;--deep:#153a33;--line:#d9e2d9;--soft:#e9efe6;--mint:#e2edb9;--radius:20px}
html{scroll-behavior:smooth}
body.portal{background:var(--bg);color:var(--ink);font:400 15px/1.6 Inter,Arial,sans-serif;margin:0}
.portal *{box-sizing:border-box}
.portal a{color:var(--green)}
.portal a:hover{color:#143e33}
.portal :focus-visible{outline:3px solid #7b5b1c;outline-offset:4px}
.portal img{max-width:100%}
.portal-shell{width:min(100% - 80px,1240px);margin-inline:auto}
.portal-skip{position:absolute;z-index:2000;left:16px;top:8px;padding:12px 16px;background:#fff;transform:translateY(-150%)}
.portal-skip:focus{transform:none}
.portal-alert{background:#fff0cf;padding:10px;text-align:center}
.portal-header{background:#fff;border-bottom:1px solid var(--line);position:relative;z-index:15}
.portal-header-inner{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:82px}
.portal-brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none!important;color:inherit!important;min-width:0}
.portal-brand img{object-fit:contain;width:42px;height:42px;flex:none}
.portal-brand strong,.portal-brand small{display:block}
.portal-brand strong{font-size:15px;font-weight:750;line-height:1.25;letter-spacing:-.015em}
.portal-brand small{font-size:12px;margin-top:3px;opacity:.8}
.portal-nav{display:flex;align-items:center;gap:clamp(14px,2.4vw,36px)}
.portal-nav>a:not(.portal-button){display:inline-flex;align-items:center;min-height:44px;font-size:14px;font-weight:550;color:var(--ink)}
.portal-nav>a[aria-current=page]{text-decoration:underline;text-underline-offset:7px}
.portal-nav .portal-profile-link{font-size:13px!important}
.portal-button,.portal .btnsmall,.portal .nbtn,.portal .btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:10px 18px;border:1px solid transparent;border-radius:10px;font:650 14px/1.25 Inter,Arial,sans-serif;text-decoration:none;cursor:pointer;float:none}
.portal-button--strong,.portal .btnsmall,.portal .nbtn.green,.portal .btn-primary{color:#fff!important;background:var(--deep);border-color:var(--deep)}
.portal-button--strong:hover,.portal .btnsmall:hover,.portal .nbtn.green:hover,.portal .btn-primary:hover{background:#27574b}
.portal .btnsmall.invert,.portal .nbtn.black{background:#fff;color:var(--deep)!important;border-color:var(--line)}
.portal-menu{font:650 13px Inter,Arial,sans-serif;min-height:44px;padding:10px 13px;border-radius:9px;background:var(--surface);border:1px solid var(--line);color:var(--deep);display:none;white-space:nowrap}
.portal-hero{display:grid;grid-template-columns:1fr 1fr;margin-top:32px;background:var(--deep);color:#fff;border-radius:28px;overflow:hidden;min-height:400px}
.portal-hero-copy{align-self:center;padding:clamp(28px,4.6vw,68px)}
.portal-hero-label{font-size:13px;font-weight:650;letter-spacing:.015em;color:#e2edb9}
.portal-hero h1{font:750 clamp(2.35rem,4.1vw,4.15rem)/1.06 Inter,Arial,sans-serif;letter-spacing:-.055em;color:#fff;max-width:10em;margin:16px 0 18px}
.portal-hero p{max-width:34ch;margin:0;color:#e0eae1;font-size:clamp(15px,1.4vw,17px)}
.portal-hero-actions{display:flex;flex-wrap:wrap;gap:12px 22px;align-items:center;margin-top:25px}
.portal-button--light{background:var(--mint);color:var(--ink)!important}
.portal-button--light:hover{background:#edf5ce}
.portal-hero-link{color:#fff!important;font-weight:600;text-underline-offset:4px;text-decoration:underline;padding-block:10px}
.portal-hero-visual{position:relative;min-height:100%;overflow:hidden;background:#29463b}
.portal-hero-visual img{display:block;width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:center center}
.portal-main{padding-block:35px 72px;min-height:46vh;overflow-wrap:break-word}
.portal-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:30px}
.portal-layout--sidebar{grid-template-columns:minmax(0,3fr) minmax(245px,1fr)}
.portal-layout>.mainblock,.portal-layout>.sidebar{min-width:0;padding:0;width:auto;float:none}
.portal-main #pathway{font-size:13px;color:var(--muted);margin:0 0 18px;line-height:1.6}
.portal-main #pathway:empty{display:none}
.portal-directions{margin-bottom:34px}
.portal-directions h2{font-size:24px;font-weight:720;letter-spacing:-.04em;margin:0 0 13px}
.portal-direction-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.portal-direction-grid a{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;gap:12px;min-height:104px;padding:13px 12px;background:var(--surface);border:1px solid var(--line);border-radius:13px;color:var(--ink);font-size:12px;font-weight:650;text-decoration:none}
.portal-direction-grid a:hover,.portal-direction-grid a[aria-current]{background:#eaf1df;border-color:#a8ba9e}
.portal-direction-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;background:#edf2e8;color:var(--green);font-size:15px}
.portal-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:15px;flex-wrap:wrap;margin:0 0 18px}
.portal .con_heading,.portal .portal-heading-title{color:var(--ink);font:750 clamp(27px,3.25vw,43px)/1.13 Inter,Arial,sans-serif;letter-spacing:-.045em;text-transform:none;border:0;background:none;padding:0;margin:0 0 18px;overflow-wrap:anywhere}
.portal-heading .con_heading,.portal-heading .portal-heading-title{margin:0}
.portal-catalog-meta{color:var(--muted);font-size:14px;margin:5px 0 0}
.portal-catalog-search{display:flex;align-items:end;gap:7px;flex-wrap:wrap;margin:0}
.portal-catalog-search label{font-size:13px;font-weight:620;display:grid;gap:4px;margin:0}
.portal-catalog-search input,.portal input.portal-field{color:var(--ink);background:#fff;border:1px solid #adbfac;border-radius:9px;padding:10px 12px;height:44px;min-width:0;font:inherit}
.portal-catalog-search input{width:min(260px,62vw)}
.portal-catalog-search button{min-height:44px;padding:9px 12px}
.portal-course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}
.portal-course-card{display:flex;flex-direction:column;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:var(--radius);min-width:0}
.portal-course-card:hover{border-color:#9cb39e}
.portal-card-media{display:block;aspect-ratio:16/8;background:#dee9db;overflow:hidden}
.portal-card-media img{display:block;width:100%;height:100%;object-fit:cover}
.portal-card-topic{display:block;color:var(--green);font-size:12px;font-weight:700;line-height:1.4;margin-bottom:8px}
.portal-card-info{display:flex;flex-direction:column;align-items:flex-start;flex:1;gap:0;padding:18px 18px 16px}
.portal-card-info h3{font:720 20px/1.24 Inter,Arial,sans-serif;letter-spacing:-.025em;margin:0 0 9px;color:var(--ink)}
.portal-card-info h3 a{color:inherit}
.portal-card-desc{font-size:14px;color:var(--muted);margin:0 0 14px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.portal-card-teacher{font-size:13px;color:var(--muted)!important;text-decoration:underline;text-underline-offset:3px;margin-top:auto}
.portal-card-link{display:inline-flex;align-items:center;min-height:41px;color:var(--green)!important;font-weight:700;margin-top:6px;text-underline-offset:3px}
.portal-empty,.portal-info{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:clamp(18px,4vw,42px)}
.portal-info{line-height:1.75}
.portal-info h2{font-weight:730;letter-spacing:-.03em;margin:25px 0 8px;font-size:22px}
.portal-info p:last-child,.portal-empty p:last-child{margin-bottom:0}
.portal .pagebar{margin-top:22px}
.portal .pagebar .pull-right{float:none!important;display:flex;flex-wrap:wrap;gap:6px}
.portal .pagebar a{display:inline-flex;align-items:center;justify-content:center;min-width:42px;min-height:42px;background:#fff;color:var(--deep);border:1px solid var(--line);border-radius:9px;font-weight:650;padding:6px 10px;margin:0}
.portal .pagebar a.active,.portal .pagebar a:hover{background:var(--deep);color:#fff}
.portal .component{background:transparent;box-shadow:none;min-width:0}
.portal .module{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;margin-bottom:16px}
.portal .moduletitle{background:var(--soft);color:var(--ink);font-weight:700;padding:10px 12px}
.portal .modulebody{color:var(--muted);padding:12px}
.portal .authors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.portal .autorsblock{width:auto;margin:0;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px}
.portal .autorsblock .lessprep{margin-right:7px}
.portal #course-tabs{border:0;background:transparent;padding:0}
.portal #course-tabs ul#tabs{display:flex;flex-wrap:wrap;gap:5px;padding:5px;margin-bottom:13px;border:1px solid var(--line);background:#fff;border-radius:12px}
.portal #course-tabs ul#tabs li{float:none;margin:0;border:0;background:none}
.portal #course-tabs ul#tabs li a{float:none;color:var(--deep);font:650 14px/1.2 Inter,Arial,sans-serif;padding:12px 13px;display:block;border-radius:8px}
.portal #course-tabs ul#tabs li.ui-state-active a{background:var(--deep);color:#fff}
.portal .course>h2{font:700 clamp(20px,2.5vw,28px)/1.2 Inter,Arial,sans-serif;color:var(--ink);letter-spacing:-.025em;margin:26px 0 10px}
.portal .course .content-block,.portal #progress,.portal .lessons .info-panel{background:#fff;border:1px solid var(--line);border-radius:15px;padding:clamp(13px,3vw,24px);overflow-wrap:anywhere}
.portal .course .content-block .desc .magnific-popup{border-radius:9px;aspect-ratio:16/11;width:min(250px,100%);height:auto;max-height:none;margin:0}
.portal .course .content-block .desc .info{margin:0;min-width:0}
.portal .course .content-block .desc{gap:18px}
.portal .course .content-block .description{margin-top:18px}
.portal .portal-detail-note{margin:0 0 13px;color:var(--muted)}
.portal .panel-heading,.portal .panel-default>.panel-heading{background:var(--soft);color:var(--deep)}
.portal .panel-group .panel{overflow:hidden;border:1px solid var(--line);border-radius:10px}
.portal .table-responsive{overflow:auto;width:100%}
.portal iframe,.portal video{max-width:100%}
.portal-auth .portal-layout{max-width:560px;margin:15px auto 0}
.portal-auth .portal-main #pathway{max-width:560px;margin-inline:auto}
.portal .portal-auth-card{width:100%;margin:0;padding:clamp(20px,4.8vw,42px);border:1px solid var(--line);border-radius:var(--radius);background:#fff}
.portal-auth-card p{color:var(--muted)}
.portal-auth-card form{margin-top:19px}
.portal-auth-card label{display:block;font-weight:650;margin:0 0 5px}
.portal-auth-card .portal-field{display:block;width:100%;margin-bottom:14px}
.portal-auth-card .portal-remember{display:flex;align-items:center;gap:7px;font-weight:500}
.portal-auth-actions{display:flex;align-items:center;flex-wrap:wrap;gap:11px 15px;margin-top:18px}
.portal-footer{background:var(--deep);color:#eef4ea;padding:39px 0 20px}
.portal-footer a{color:inherit!important;text-underline-offset:4px}
.portal-footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:24px}
.portal-footer h2{font:700 15px/1.3 Inter,Arial,sans-serif;margin:0 0 10px;color:#fff}
.portal-footer nav a,.portal-footer address a,.portal-footer address span{display:block;width:fit-content;margin:0 0 4px}
.portal-footer address{font-style:normal;margin:0}
.portal-footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;border-top:1px solid #ffffff2e;margin-top:27px;padding-top:15px;color:#c9d8cc;font-size:12px}
@media(max-width:1060px){.portal-shell{width:min(100% - 48px,1240px)}.portal-direction-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.portal-direction-grid a{min-height:78px;flex-direction:row;justify-content:flex-start;align-items:center}.portal-layout--sidebar{grid-template-columns:minmax(0,1fr) minmax(200px,.4fr)}}
@media(max-width:920px){.portal-header-inner{min-height:68px;flex-wrap:wrap}.portal-has-menu .portal-menu:not([hidden]){display:block}.portal-nav{width:100%;flex-wrap:wrap;gap:8px 18px;padding-bottom:14px}.portal-has-menu .portal-nav:not(.is-open){display:none}.portal-hero{min-height:345px;margin-top:24px}.portal-course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:660px){.portal-shell{width:min(100% - 32px,1240px)}.portal-brand strong{font-size:13px}.portal-brand small{font-size:11px}.portal-brand{gap:8px}.portal-brand img{width:36px;height:36px}.portal-hero{grid-template-columns:1fr;margin-top:16px;border-radius:20px}.portal-hero-copy{padding:24px}.portal-hero-visual{min-height:0;aspect-ratio:16/9}.portal-hero h1{margin:10px 0 12px}.portal-hero-actions{margin-top:18px}.portal-main{padding-block:24px 46px}.portal-directions{margin-bottom:24px}.portal-direction-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.portal-direction-grid a{min-height:62px;gap:7px;padding:7px 8px;font-size:11px;overflow-wrap:anywhere}.portal-direction-icon{width:27px;height:27px;flex:none}.portal-layout--sidebar{grid-template-columns:minmax(0,1fr);gap:20px}.portal .authors,.portal-course-grid{grid-template-columns:1fr}.portal-footer-grid{grid-template-columns:1fr 1fr;gap:18px}.portal-footer-grid>div:first-child{grid-column:1/-1}}
@media(max-width:355px){.portal-shell{width:calc(100% - 24px)}.portal-footer-grid{grid-template-columns:1fr}.portal-hero-copy{padding:19px}.portal .portal-direction-grid a{font-size:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.portal-inline-form{display:inline-flex;margin:3px 2px}

.portal-register #regform{max-width:none;margin:0;padding:clamp(16px,4vw,32px);border:1px solid var(--line);box-shadow:none;border-radius:var(--radius);background:#fff}
.portal-register #regform .form-control{min-height:42px;border-color:#adbfac;border-radius:8px}
