/* Shared spacing and compact tables. Loaded after the existing theme. */
.app-content {line-height:1.55;min-width:0}
.app-content :is(h1,h2,h3){line-height:1.3;overflow-wrap:anywhere}
.app-content h1{font-size:clamp(1.5rem,2.5vw,2rem);margin:0 0 .6rem}
.app-content h2{font-size:1.3rem;margin:0 0 .75rem}
.app-content h3{margin:.75rem 0 .5rem}
.app-content p{margin:.6rem 0 1rem}
.app-content .eyebrow{margin:0 0 .4rem}
.app-content .panel{padding:20px;margin-top:18px;min-width:0}
.app-content .panel>:first-child{margin-top:0}
.app-content .panel>:last-child{margin-bottom:0}
.app-content .section-head{gap:16px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.app-content .section-head>div:first-child{flex:1 1 230px;min-width:0}
.app-content .section-head :is(h1,h2,p):last-child{margin-bottom:0}
.app-content :is(.compact-actions,.row-actions,.row-actions form,.result-actions,.certificate-actions,.pdf-toolbar,.lesson-completion,.quiz-callout,.action-links,.button-row){display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}
.app-content .section-head>.compact-actions{flex:0 1 auto}
.app-content :is(.compact-actions,.action-links,.button-row)>:is(a,button,form){flex-shrink:0}
.app-content .action-links{justify-content:flex-start}
.app-content .action-links form{margin:0}
.app-content .button-row{margin:12px 0}
.app-content :is(button,.button){width:auto;max-width:100%;align-items:center;gap:8px;line-height:1.4;padding:10px 16px;min-height:40px;text-align:center}
.app-content :is(button,.button).small{font-size:.84rem;padding:8px 12px;min-height:36px}
.app-content :is(button.danger,.link-danger){background:var(--danger);color:#fff;box-shadow:none}
.app-content button.secondary{background:#e9f0f5;color:var(--navy);box-shadow:none}
.app-content button.text-danger{display:inline-flex;background:none;box-shadow:none;color:var(--danger);padding:4px 0;min-height:28px;border-radius:4px;transform:none}
.app-content :is(input,select,textarea){font:inherit;min-width:0;max-width:100%;line-height:1.45;padding:10px 12px}
.app-content label{margin:0 0 14px;line-height:1.5}
.app-content label :is(input,select,textarea){margin-top:6px}
.app-content label small{display:block;margin-top:5px;font-weight:400;color:var(--muted)}
.app-content :is(input[type=checkbox],input[type=radio]){display:inline-block;width:18px;height:18px;min-height:0;flex:0 0 18px;padding:0;margin:0;vertical-align:middle;box-shadow:none}
.app-content .checkbox-label,.app-content label:has(>input[type=checkbox]):not(.picker-item):not(.quiz-options label){display:flex;align-items:flex-start;gap:10px;font-weight:500}
.app-content .checkbox-label input{margin-top:3px}
.app-content .two{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
.app-content :is(.search,.inline-form){flex-wrap:wrap;gap:12px;margin:14px 0 18px}
.app-content :is(.search,.inline-form)>:is(input:not([type=hidden]),select){flex:1 1 180px;width:auto;margin:0}
.app-content .filter-bar{display:flex;flex-wrap:wrap;gap:12px;margin:14px 0 18px}
.app-content .filter-bar>select{flex:1 1 180px;width:auto;margin:0}
.app-content :is(.search,.inline-form,.filter-bar)>button{flex:0 0 auto}
.app-content .builder-layout{grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:18px}
.app-content .builder-layout>*,.app-content .builder-layout aside{min-width:0}
.app-content .sticky-card{top:98px}
.app-content .table-wrap{max-width:100%;margin:0;overflow-x:auto;overscroll-behavior-x:contain;border:1px solid var(--enu-line);border-radius:10px}
.app-content .table-wrap table{width:100%;min-width:0;font-size:.86rem;line-height:1.4}
.app-content :is(th,td){padding:9px 12px;vertical-align:top;white-space:normal;overflow-wrap:anywhere}
.app-content th{font-size:.73rem;line-height:1.4;letter-spacing:.025em}
.app-content td{max-width:360px}
.app-content td :is(p,ul,ol){margin:4px 0;line-height:1.45}
.app-content td p:first-child{margin-top:0}
.app-content td p:last-child{margin-bottom:0}
.app-content td form{margin:0}
.app-content td :is(input:not([type=hidden]),select){min-height:34px;padding:5px 8px;margin:0}
.app-content td :is(input[type=checkbox],input[type=radio]){min-height:0;padding:0;width:18px;height:18px}
.app-content td :is(button,.button){font-size:.82rem;min-height:30px;padding:5px 9px;box-shadow:none}
.app-content td .text-danger{padding:4px 0;min-height:28px}
.app-content td .action-links{gap:4px 14px;min-width:110px}
.app-content td>a{display:inline-block;padding-block:3px}
.app-content td>a+a,.app-content td>a+form.inline-delete{margin-inline-start:12px}
.app-content .question-cell{min-width:220px;max-width:480px}
.app-content .import-question-cell{min-width:240px;max-width:560px}
.app-content .badge{display:inline-block;padding:3px 8px;line-height:1.35;font-size:.76rem;max-width:100%;overflow-wrap:anywhere}
.app-content .empty-cell{padding:20px 12px}
.app-content .table-wrap tbody tr:last-child td{border-bottom:0}
.app-content .table-wrap+form{margin-top:16px}
.app-content .pager{flex-wrap:wrap;align-items:center;gap:10px 18px}
.app-content .lesson-list li{gap:12px 20px;padding:12px 0}
.app-content .lesson-list li>span:first-child{min-width:0;overflow-wrap:anywhere}
.app-content .lesson-list li>span:last-child{flex-shrink:0}
.app-content :is(.quiz-callout,.lesson-completion)>form{margin:0}
.app-content .quiz-callout>div{flex:1 1 200px;min-width:0}
.app-content .quiz-callout>form{flex:0 1 auto}
.app-content .picker-item{margin:0;padding:12px;gap:10px}
.app-content .picker-item>input{margin-top:3px}
.app-content .quiz-options label{margin:0;padding:14px;line-height:1.55}
.app-content .option-editor input{margin:0}
.app-content .quiz-take-header{top:82px;flex-wrap:wrap}
.app-content .quiz-question{scroll-margin-top:220px}
.app-content .save-status{top:190px}
/* Public pages already have their own visual design; only normalize flow. */
:is(.hero-actions,.cd-hero-actions,.cd-final-inner,.footer-bottom,.footer-socials){flex-wrap:wrap;row-gap:12px}
.cd-main,.cd-aside{min-width:0}
.cd-main p{overflow-wrap:anywhere}
.cd-chapter-name{min-width:0;overflow-wrap:anywhere}
.cd-chapter-content li{flex-wrap:wrap;row-gap:6px}
.cd-info-card dd{margin:0;text-align:right;overflow-wrap:anywhere}
@media(max-width:1000px){
 .app-content .builder-layout{grid-template-columns:minmax(0,1fr)}
 .app-content .sticky-card{position:static}
}
@media(max-width:820px){
 .app-content .quiz-take-header{top:70px}
 .app-content .save-status{top:180px}
}
@media(max-width:620px){
 .app-content .panel{padding:16px}
 .app-content .section-head{align-items:flex-start;flex-direction:column;gap:12px}
 .app-content .section-head>div:first-child{flex:auto;width:100%}
 .app-content .section-head>.compact-actions{width:100%;flex:auto}
 .app-content .two{grid-template-columns:minmax(0,1fr)}
 .app-content :is(.filter-bar,.inline-form,.search){flex-direction:column;align-items:stretch}
 .app-content :is(.filter-bar,.inline-form,.search)>:is(select,input:not([type=hidden]),button){flex:auto;width:100%}
 .app-content .table-wrap table{min-width:540px}
 .app-content :is(th,td){padding:8px 10px}
 .app-content .question-cell{min-width:200px}
 .app-content .result-actions{align-items:stretch;flex-direction:column}
 .app-content .result-actions .button{width:100%}
 .app-content .quiz-callout{align-items:flex-start}
 .app-content .quiz-take-header h1{font-size:1.25rem}
 .app-content .quiz-timer{font-size:1.3rem;min-width:90px}
}
@media print{.app-content .table-wrap{overflow:visible;border:0}.app-content .table-wrap table{min-width:0}.app-content .sticky-card{position:static}}
.guest-page .auth-card{line-height:1.55}
.guest-page .auth-card label{margin-bottom:14px}
.guest-page .auth-card form>button{margin-top:12px}
.guest-page .auth-card :is(.form-link,.back){line-height:1.5}
