:root{--brand:#ffdd00;--bg:#f5f7f6;--panel:#fff;--ink:#303536;--muted:#6a7476;--border:#dce0df}body{margin:0;font-family:'Segoe UI',Arial,sans-serif;background:var(--bg);color:var(--ink)}a{color:inherit}.build-notice{padding:6px 20px;text-align:center;background:#fff4b3;font-size:11px;color:#514600}.public-header{padding:20px 6%;display:flex;align-items:center;justify-content:space-between;background:#fff;gap:24px}.public-header img{width:210px}.public-header nav{display:flex;align-items:center;gap:25px}.public-header nav a{text-decoration:none;font-size:14px}.btn{border-radius:6px;padding:11px 20px;font-weight:600}.brand{background:var(--brand);border:1px solid var(--brand);color:#202020}.brand:hover{background:#e8c900;color:#111}.eyebrow{font-size:11px;letter-spacing:1.6px;font-weight:700;color:#897600}h1,h2,h3{font-weight:650;letter-spacing:-.5px}h2{font-size:26px}.hero{padding:75px 7%;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:70px;background:linear-gradient(130deg,#323232,#151515);color:#fff}.hero h1{font-size:clamp(34px,4vw,60px);line-height:1.15;margin:22px 0}.hero em{font-style:normal;color:var(--brand)}.hero p{color:#c9ceca;line-height:1.8;margin:20px 0 28px}.hero .eyebrow{color:var(--brand)}.hero-card{border-radius:13px;background:#fff;padding:25px;box-shadow:0 25px 55px #0005;color:#303536;transform:rotate(-1deg)}.hero-card .eyebrow{color:#897600}.hero-card img{width:100%;max-height:300px;object-fit:contain;background:#f4f5f0}.hero-card h2{margin:15px 0}.hero-card p{color:#555;margin-bottom:0}.facts{display:flex;gap:40px;margin-top:35px}.facts span{display:flex;flex-direction:column;font-size:12px;color:#bbb}.facts b{font-size:28px;color:var(--brand)}.trust{text-align:center;padding:23px;background:#eceeea;color:#68716a;font-size:12px}.content{padding:60px 7%}.panel{background:var(--panel);border:1px solid var(--border);border-radius:11px;box-shadow:0 2px 5px #00000007;padding:25px}.course-card{height:100%;display:flex;flex-direction:column}.course-card h3{font-size:23px;margin:20px 0}.course-card p{font-size:15px;line-height:1.75;color:var(--muted)}footer{background:#e9ece8;padding:35px 7%;line-height:2;color:#555}.auth{max-width:490px;margin:55px auto}.auth h1{font-size:32px;margin-top:15px}.auth label{display:block;font-size:14px;margin:20px 0 8px}.sidebar{position:fixed;left:0;top:0;bottom:0;width:260px;background:#292929;color:#e9e9e9;z-index:30;overflow-y:auto}.sidebar .logo{display:block;background:#fff;padding:26px 22px;margin-bottom:20px}.sidebar img{width:100%}.sidebar small{display:block;color:#9e9e9e;font-size:10px;font-weight:600;padding:23px 22px 10px;letter-spacing:1px}.sidebar>a:not(.logo){display:block;text-decoration:none;padding:14px 24px;font-size:14px}.sidebar>a:hover{color:#ffdd00;background:#ffffff10;border-left:3px solid #ffdd00;padding-left:21px}.account-name{padding:8px 24px;color:#ddd;font-size:13px}.logout{border:0;background:none;color:#eee;padding:14px 24px}.app-main{margin-left:260px}.application>.build-notice{margin-left:260px}.app-header{background:var(--panel);height:70px;padding:0 32px;display:flex;align-items:center;gap:22px;border-bottom:1px solid var(--border)}.app-header h1{font-size:23px;margin:0}.app-header button{border:1px solid var(--border);border-radius:5px;background:var(--panel);color:var(--ink);width:36px;height:36px}.avatar{width:36px;height:36px;display:grid;place-items:center;background:#ffdd00;border-radius:50%;font-size:12px;color:#222}.workspace{padding:32px;max-width:1800px}.metric{height:220px;display:flex;flex-direction:column}.metric h2,.panel-heading{font-size:16px;background:#f7f8f9;border-bottom:1px solid var(--border);padding-bottom:12px;margin-bottom:20px}.metric strong{font-size:32px;margin-bottom:8px}.metric small{color:var(--muted)}.panel-heading{display:flex;justify-content:space-between;gap:16px;align-items:center}.panel-heading h2{font-size:17px;margin:0}.panel-heading span{font-size:12px;color:var(--muted)}.empty{padding:40px 15px;color:var(--muted)}.empty h3{color:var(--ink);font-size:22px}.progress{height:6px;margin-top:9px;background:#e6e7e3}.progress-bar{background:#bba300}.table{--bs-table-bg:transparent;--bs-table-color:var(--ink);--bs-table-border-color:var(--border)}.table td,.table th{padding:17px 10px}.lesson img{max-width:100%;height:auto}.lesson p{line-height:1.85;color:var(--muted)}.lesson h1{font-size:34px}.lesson h2{margin-top:30px}.lesson figcaption{font-size:12px;color:var(--muted)}.lesson .objective,.lesson .scenario{padding:22px;background:#f6f6ef;border-left:4px solid #ffdd00;margin:25px 0}.lesson footer{padding:20px 0;background:none;font-size:12px}.lesson-nav{max-height:80vh;overflow:auto}.lesson-nav h2{font-size:18px}.lesson-nav a{display:block;text-decoration:none;font-size:12px;padding:10px;margin:4px 0}.lesson-nav .selected{background:#fff2a3;color:#333;border-radius:4px}.answer{display:flex;align-items:start;gap:12px;padding:14px;background:var(--bg);margin:8px 0}.answer input{margin-top:5px}legend{font-size:19px}.explanation{padding:20px;background:#fff6c4;color:#333;margin-top:20px}.sidebar-closed .sidebar{display:none}.sidebar-closed .app-main,.sidebar-closed.application>.build-notice{margin-left:0}.dark{--bg:#202525;--panel:#2d3333;--ink:#f3f5f3;--muted:#b9c1bd;--border:#444e49}.dark .metric h2,.dark .panel-heading{background:#303939}.dark .lesson .objective,.dark .lesson .scenario{background:#363a30}.dark .text-secondary{color:#bac2bc!important}:focus-visible{outline:3px solid #aa8f00;outline-offset:3px}@media(max-width:900px){.sidebar{width:220px}.app-main,.application>.build-notice{margin-left:220px}.hero{grid-template-columns:1fr;gap:35px}.public-header{flex-wrap:wrap}.workspace{padding:24px}.facts{gap:24px}.lesson-nav{max-height:220px}}@media(max-width:650px){.sidebar{position:static;width:100%;max-height:310px}.sidebar .logo{max-width:220px;margin:0}.sidebar small{padding-top:14px}.sidebar>a:not(.logo){padding:8px 24px}.app-main,.application>.build-notice{margin-left:0}.public-header nav{gap:14px;flex-wrap:wrap}.app-header{padding:0 18px}.app-header h1{font-size:19px}.content{padding:35px 6%}.workspace{padding:20px}.auth{margin:30px 5%}.hero{padding:45px 6%}.hero-card{transform:none}.facts{flex-wrap:wrap}.panel{padding:20px}}

.social-buttons{display:grid;gap:12px;margin-top:24px}.social-button{width:100%;background:var(--panel);color:var(--ink);border:1px solid var(--border);border-radius:5px;padding:12px 18px;display:flex;align-items:center;justify-content:center;gap:13px;font-size:14px;font-weight:600}.social-button:hover:not(:disabled){background:var(--bg);border-color:#999}.social-button:disabled{cursor:not-allowed;color:#6b7270;background:#f8f8f6}.auth-divider{display:flex;align-items:center;gap:16px;color:var(--muted);font-size:12px;margin:25px 0}.auth-divider:before,.auth-divider:after{content:"";height:1px;background:var(--border);flex:1}
/* Interface refresh: consistent vector icons and GeoSafe-inspired controls. */
.ui-icon{flex-shrink:0;vertical-align:-3px}.btn .ui-icon{margin-right:5px}.sidebar{background:#252728}.sidebar .logo{padding:23px 28px}.sidebar>a:not(.logo),.logout{display:flex;align-items:center;gap:12px}.sidebar>a[aria-current=page]{color:#ffdd00;background:#ffffff12;border-left:3px solid #ffdd00;padding-left:21px}.sidebar small{font-size:10px;padding-top:25px}.app-header h1{font-size:21px;font-weight:600}.app-header button{display:grid;place-items:center}.avatar{font-weight:700}.panel-tabs{display:inline-flex;align-items:center;gap:4px;padding:4px;background:var(--panel);border:1px solid var(--border);box-shadow:0 2px 5px #00000008;border-radius:9px;flex-wrap:wrap}.panel-tabs a{display:flex;align-items:center;gap:8px;text-decoration:none;padding:11px 17px;font-size:13px;font-weight:600;color:var(--muted);border-radius:6px}.panel-tabs a.active{background:#292c2d;color:#ffdd00;box-shadow:0 2px 4px #0002}.panel-tabs a:hover:not(.active){background:var(--bg);color:var(--ink)}.admin-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:20px}.admin-totals{display:flex;gap:8px}.admin-totals span{border:1px solid var(--border);background:var(--panel);padding:10px 12px;border-radius:6px;font-size:10px;color:var(--muted)}.admin-totals b{font-size:15px;color:var(--ink);margin-right:5px}.admin-panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;overflow:hidden;box-shadow:0 2px 6px #00000008}.admin-panel-title{padding:17px 21px;background:#292c2d;color:#fff;display:flex;justify-content:space-between;align-items:center;gap:16px;font-weight:600;font-size:14px}.admin-panel-title>span{display:flex;align-items:center;gap:10px}.admin-panel-title .ui-icon{color:#ffdd00}.admin-panel-title small{font-size:11px;font-weight:400;color:#c9c9c9}.admin-search{display:flex;gap:10px;align-items:center;padding:23px 18px;border-bottom:1px solid var(--border)}.search-field{flex:1;position:relative}.search-field>.ui-icon{position:absolute;top:12px;left:12px;color:#71807c}.search-field input{padding-left:39px;font-size:13px}.role-filter{max-width:150px;font-size:13px}.admin-search .btn{font-size:12px;padding:9px 15px;white-space:nowrap}.admin-table{font-size:12px;margin:0}.admin-table td{vertical-align:middle;padding:15px 20px}.admin-table th{font-size:11px;padding:13px 20px;background:var(--bg)}.admin-table small{font-size:10px}.user-cell{display:flex;gap:12px;align-items:center}.user-cell small{display:block;color:var(--muted);margin-top:5px}.table-avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;background:#f2edc8;color:#6a5c0b;font-weight:700}.role-badge{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:600;border-radius:20px;padding:6px 9px;white-space:nowrap}.role-admin{background:#fff0a1;color:#605000}.role-reviewer{background:#e4eaf8;color:#3b5589}.role-student{background:#e8eeeb;color:#416353}.inline-control{display:flex;align-items:center;gap:8px}.inline-control select{font-size:11px;min-width:105px;max-width:190px}.icon-action{display:grid;place-items:center;width:34px;height:33px;border:1px solid #292c2d;background:#292c2d;color:#ffdd00;border-radius:5px;flex-shrink:0}.icon-action.outline{background:transparent;border-color:#b79d00;color:#827000}.icon-action:hover{filter:brightness(1.3)}.table-foot{border-top:1px solid var(--border);padding:16px 20px;color:var(--muted);font-size:11px}.assignment-form{display:flex;gap:15px;flex-wrap:wrap;padding:24px;align-items:end}.assignment-form>div{flex:1;min-width:170px}.assignment-form label{font-size:12px;margin-bottom:7px}.assignment-form select{font-size:13px}.assignment-form .btn{font-size:12px}.settings-title{font-size:16px;border-bottom:1px solid var(--border);padding-bottom:20px;margin-bottom:25px;display:flex;gap:10px;align-items:center}.security-row{display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--bg);padding:20px;border-radius:7px;margin-bottom:14px;font-size:13px}.security-row small{display:block;color:var(--muted);font-size:11px;margin-top:5px}.connection-badge{font-size:11px;color:var(--muted);white-space:nowrap}.authentication{background:#fff}.authentication .build-notice{position:relative;z-index:2}.login-layout{display:grid;grid-template-columns:48% 52%;min-height:calc(100vh - 29px)}.login-story{position:relative;background:#24292b;overflow:hidden;display:flex;align-items:flex-end;min-height:750px;color:#fff;padding:50px}.login-chart{position:absolute;inset:0;background:linear-gradient(180deg,#161c2040 0%,#1b2022d9 65%,#15191aff 100%),url('/static/assets/geomount-drone-field.png') center/cover;opacity:.75}.login-home{position:absolute;top:30px;left:40px;color:#fff;text-decoration:none;font-size:12px;z-index:1}.login-story-copy{position:relative;z-index:1}.story-icon{display:grid;place-items:center;width:62px;height:62px;border:1px solid #ffffff40;border-radius:12px;margin-bottom:30px;color:#ffdd00}.login-story .eyebrow{color:#ffdd00;font-size:10px}.login-story h2{font-size:clamp(38px,4vw,62px);line-height:1.12;letter-spacing:-1px;margin:22px 0}.login-story p{font-size:16px;line-height:1.9;color:#d1d5d2}.story-credit{display:block;border-left:2px solid #ffdd00;padding-left:15px;margin-top:35px;color:#aab3b0;font-size:11px}.login-form-side{display:flex;justify-content:center;align-items:center;padding:36px 8%}.login-form-side .auth{width:100%;max-width:390px;margin:0;border:0;padding:0;background:none;box-shadow:none}.login-logo{display:block;width:205px;margin:0 auto 30px}.login-form-side h1{font-size:26px;text-align:center;font-weight:650;margin:0 0 8px}.login-subtitle{text-align:center;font-size:13px;color:#87928e;margin-bottom:28px}.login-form-side .auth label{display:flex;align-items:center;gap:7px;font-size:11px;color:#55605b;margin:17px 0 7px}.login-form-side input{font-size:14px;height:45px;border-radius:7px;background:#f8faf8}.login-form-side .brand{height:46px;font-size:13px}.login-form-side .auth-divider{margin:25px 0 18px}.login-form-side .social-buttons{margin-top:0;gap:10px}.login-form-side .social-button{height:43px;font-size:12px}.login-form-side #social-setup-note{font-size:10px!important;line-height:1.6}.login-create{display:flex;flex-direction:column;align-items:center;gap:8px;border-top:1px solid #e3e8e3;padding-top:22px;margin-top:22px;font-size:12px}.login-create span{color:#8a9690}.login-create a{font-weight:600;text-decoration:none}.login-development{font-size:10px;color:#909a95;text-align:center;margin-top:23px;line-height:1.6}.dark .role-student{background:#294238;color:#b5dac7}.dark .table-avatar{background:#474226;color:#f3dd71}.dark .form-control,.dark .form-select{background:#272e2b;color:#e4eee7;border-color:#46534c}@media(max-width:1000px){.login-story{padding:35px}.admin-search{flex-wrap:wrap}.search-field{min-width:180px}.admin-totals{margin-left:auto}}@media(max-width:760px){.login-layout{grid-template-columns:1fr}.login-story{min-height:240px;padding:35px}.login-story h2{font-size:30px;margin:15px 0}.login-story p,.story-icon,.story-credit{display:none}.login-home{left:auto;right:25px;top:23px}.login-form-side{padding:40px 7%}.login-logo{width:190px}.sidebar{position:fixed;top:29px;bottom:0;width:245px;max-height:none;transform:translateX(-100%);transition:transform .2s}.sidebar-closed .sidebar{display:block;transform:translateX(0)}.app-main,.application>.build-notice{margin-left:0}.sidebar small{padding-top:20px}.sidebar>a:not(.logo){padding:12px 24px}.sidebar .logo{max-width:none}.admin-panel-title small{display:none}.admin-search .role-filter{max-width:none;flex:1}.admin-table td,.admin-table th{padding:13px}.admin-toolbar .panel-tabs{width:100%}.panel-tabs a{padding:10px 12px;font-size:11px}.admin-totals{margin-left:0}.security-row{padding:15px}.connection-badge{font-size:10px}}
.login-chart{background-size:cover,cover;background-position:center,50% 58%;opacity:1;background-image:linear-gradient(180deg,#11171918 0%,#11171940 42%,#111719e8 100%),url('/static/assets/geomount-drone-field.png')}

/* Catalogue cards keep actions together; long curricula scroll within each card. */
.course-card{height:auto}.course-card details ol{max-height:320px;overflow-y:auto;padding-right:10px}.login-layout{min-height:100vh}.sidebar{top:0}

/* Visual flight briefs, using owner-supplied reference images. */
.lesson-workspace{max-width:1600px;margin:0 auto}.lesson-course-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;font-size:13px}.lesson-course-bar small{color:var(--muted);margin-top:6px}.lesson-outline{position:sticky;top:20px;padding:18px}.lesson-outline>summary{font-weight:700;font-size:14px}.lesson-outline .lesson-nav{max-height:calc(100vh - 220px);overflow:auto;margin-top:14px}.lesson-nav h2{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:25px 0 10px}.flight-brief>h1{font-size:clamp(27px,3vw,42px);line-height:1.2;margin:15px 0 25px}.lesson-jump{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0}.lesson-jump a{padding:8px 16px;border:1px solid var(--border);border-radius:30px;font-size:12px;text-decoration:none}.source-visual{margin:0 0 24px;border:1px solid var(--border);background:var(--bg);border-radius:12px;overflow:hidden}.lesson .source-visual img{display:block;width:100%;height:auto;max-height:600px;object-fit:contain;background:#e9eeec}.source-visual figcaption{font-size:12px;line-height:1.7;padding:17px 20px;color:var(--muted)}.source-visual figcaption span{display:block;margin-top:7px;font-weight:600}.lesson .visual-task{border-left:4px solid var(--brand);padding:20px 24px;background:var(--bg);border-radius:0 10px 10px 0;margin:25px 0 35px}.lesson .teaching-block{margin:35px 0;max-width:78ch}.lesson .teaching-block h2,.lesson .visual-task h2,.lesson .knowledge-check h2,.lesson .field-task h2{font-size:22px}.lesson p{font-size:16px;line-height:1.85}.lesson details summary{cursor:pointer;font-weight:600;font-size:14px}.lesson details[open]>summary{margin-bottom:18px}.schematic-detail{border:1px solid var(--border);border-radius:9px;padding:18px;margin:22px 0}.schematic-detail img{max-height:520px;object-fit:contain}.lesson .knowledge-check{padding:28px;background:var(--bg);border:1px solid var(--border);border-radius:12px;margin:35px 0}.knowledge-check li{padding:7px 0;font-size:15px}.knowledge-check small{display:block;color:var(--muted);line-height:1.6;margin-top:20px}.lesson .field-task{padding:25px;border:1px dashed #b9a225;border-radius:10px;margin:30px 0}.worksheet-link{font-weight:650}.lesson-controls{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}.lesson .reading{padding-top:20px;border-top:1px solid var(--border)}.lesson footer{font-size:11px;line-height:1.7;color:var(--muted);padding:20px 0}.lesson [id]{scroll-margin-top:30px}@media(max-width:991px){.lesson-outline{position:static}.lesson-outline .lesson-nav{max-height:260px}.lesson-course-bar{align-items:flex-start;flex-direction:column}.lesson-workspace{padding:20px 15px}.lesson .panel{padding:20px}.lesson .source-visual img{max-height:430px}.lesson .knowledge-check,.lesson .visual-task,.lesson .field-task{padding:18px}.lesson p{font-size:15px}}

.auth-options{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;font-size:13px}.login-form-side .auth-options label{margin:0;font-size:13px}.auth-options input[type=checkbox]{height:16px;width:16px;accent-color:#1e3c51}.auth-options a{color:#165576;text-decoration:none}.auth-notifications:empty{display:none}.auth-alert{display:flex;gap:12px;align-items:flex-start;margin:0 0 20px;padding:13px 15px;font-size:13px;border-radius:8px;line-height:1.5}.auth-alert span{flex:1}.auth-alert button{border:0;background:none;color:inherit;font-size:22px;line-height:1;padding:0;cursor:pointer}
