/* Catalog (public site) and academy administration. Tokens and controls live in ui.css. */
.page-admin .site-only,.page-public .admin-only{display:none!important}
.page-public{--pad:max(5vw,20px);font-size:15px}
.page-public .app-main{margin-left:0}

/* Public header */
.topbar{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:24px;height:64px;padding:0 var(--pad);background:#ffffffeb;backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}
.topbar .brand{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:700;text-decoration:none;color:var(--brand);letter-spacing:-.01em}
.topbar .brand small{display:block;font-size:9px;font-weight:600;letter-spacing:.24em;color:var(--muted);margin-top:2px}
.topbar .mark{font-size:28px;line-height:1;color:var(--accent)}
.topbar nav{display:flex;gap:4px;flex-wrap:wrap}
.topbar nav a{display:inline-flex;align-items:center;height:34px;padding:0 12px;border-radius:6px;font-size:14px;font-weight:500;color:var(--muted);text-decoration:none}
.topbar nav a:hover{background:#eef2f0;color:var(--text)}
.topbar nav a[href="/courses"]{color:var(--text)}
.demo-banner{background:var(--warn-bg);color:var(--warn);text-align:center;padding:8px 20px;font-size:12px;line-height:1.5}
main{width:100%}
.page-public main{max-width:1240px;margin:0 auto;padding:0 var(--pad)}
.page-public footer{width:100%;max-width:1240px;margin:0 auto;padding:28px var(--pad) 40px;font-size:12px;color:var(--subtle);line-height:1.7;border-top:1px solid var(--border)}

.eyebrow{margin:0 0 10px;font-size:12px;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--primary)}
.hero{display:grid;grid-template-columns:1.4fr 1fr;gap:48px;align-items:center;padding:56px 0 44px}
.hero h1{font-size:clamp(32px,4.2vw,48px);line-height:1.08;letter-spacing:-.03em;font-weight:700;margin:0 0 16px}
.hero p{max-width:560px;font-size:16px}
.hero .button{margin-top:16px;height:40px;padding:0 18px}
.hero-aside{position:relative;overflow:hidden;background:var(--brand);border-radius:16px;padding:28px;display:flex;align-items:flex-end;color:#fff;min-height:280px;box-shadow:var(--shadow)}
.hero-aside div{position:relative;z-index:1}
.hero-aside p{font-size:11px;letter-spacing:.12em;color:#95cfbc;margin-bottom:8px}
.hero-aside strong{display:block;font-size:28px;line-height:1.2;letter-spacing:-.02em}
.hero-aside small{display:block;line-height:1.7;color:#c4d9d5;margin-top:14px;font-size:13px}
.outline-mark{position:absolute;font-size:260px;line-height:1;top:-50px;right:-20px;color:#2a6370;transform:rotate(15deg)}
.trust-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:20px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.trust-strip div{display:flex;gap:14px;align-items:center}
.trust-strip b{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:8px;background:var(--primary-soft);font-size:13px;color:var(--primary);font-weight:650;flex-shrink:0}
.trust-strip span{font-size:14px;font-weight:600}
.trust-strip small{display:block;font-size:12px;color:var(--muted);font-weight:400;margin-top:2px}
#catalog{padding:40px 0}
.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin:0 0 18px}
.section-heading h2{font-size:26px;letter-spacing:-.02em}
.section-heading>span{font-size:13px;color:var(--subtle)}
.filters{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;margin-bottom:20px;padding:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}
.course-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}
.course-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:box-shadow .15s,border-color .15s}
.course-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow)}
.card-top{display:flex;justify-content:space-between;gap:10px;padding:18px 20px 0}
.card-body{display:flex;flex-direction:column;flex:1;padding:14px 20px 20px}
.card-body h3{font-size:18px;margin:0 0 8px}
.card-body p{font-size:14px}
.card-meta{display:grid;gap:6px;padding:12px 0;margin:8px 0 16px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);font-size:13px;color:var(--muted)}
.card-bottom{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:auto}
.price{font-size:20px;font-weight:700;color:var(--text)}
.price small{display:block;font-weight:400;font-size:11px;color:var(--subtle);margin-top:2px}
.team-callout{display:flex;justify-content:space-between;align-items:center;gap:24px;margin:8px 0 40px;padding:28px;background:var(--surface);border:1px solid var(--border);border-radius:16px}
.team-callout h2{font-size:24px;letter-spacing:-.02em;margin-bottom:8px}
.team-callout p{max-width:560px;font-size:14px}
.empty{padding:32px;color:var(--subtle);background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);grid-column:1/-1;text-align:center}

/* Course detail dialog (public) */
#detail-dialog{width:min(780px,calc(100vw - 32px));max-height:90vh;overflow:auto;padding:24px 28px}
#detail-dialog .dialog-top{position:sticky;top:-24px;margin:-24px -28px 8px;padding:16px 28px;background:var(--surface);border-bottom:1px solid var(--border);align-items:center;z-index:1}
#detail-dialog .eyebrow{margin:0}
#detail-content>h2{font-size:24px;margin:12px 0 8px}
#detail-content>div:first-of-type{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 4px}
.detail-section{border-top:1px solid var(--border);padding:18px 0}
.detail-section h3{font-size:15px;margin:0 0 10px}
.detail-section p{white-space:pre-line;font-size:14px}
.detail-section small{display:block;font-size:12px;line-height:1.6;color:var(--subtle)}
.detail-section>button{margin-top:10px}
.schedule{display:grid;gap:4px;padding:14px 16px;background:var(--surface-2);border:1px solid var(--border);margin:10px 0;border-radius:var(--radius);font-size:14px;line-height:1.6}
.schedule>button{justify-self:start;margin-top:8px}
.profile-head{display:flex;gap:16px;align-items:center;margin-bottom:10px}
.profile-head h3{font-size:16px;margin-bottom:4px}

/* Avatars and photos */
.avatar{width:40px;height:40px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary);font-size:13px;font-weight:650}
.profile-photo{width:96px;height:96px;object-fit:cover;border-radius:14px;display:block;margin:8px 0}
.record .profile-photo,.profile-head .profile-photo{width:40px;height:40px;border-radius:50%;margin:0;flex-shrink:0}
.profile-head .profile-photo,.profile-head .avatar{width:56px;height:56px}

/* Administration */
.page-admin main{padding:0}
.admin-grid{display:grid;grid-template-columns:1fr;gap:20px}
.collection-only>.panel{padding:0;border:0;background:transparent;box-shadow:none}
.collection-only>.panel>h2,.collection-only>.panel>p{display:none}
.panel{padding:20px;border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-lg)}
.panel form{display:grid;gap:14px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.record small{display:block;color:var(--subtle);font-size:12px}

/* Course setup building blocks (used inside the guided dialogs) */
.session-row{border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin:0 0 12px;display:grid;grid-template-columns:1fr 1fr 140px;gap:12px;align-items:end;background:var(--surface-2)}
.session-row legend{font-size:12px;font-weight:600;color:var(--muted);padding:0 6px}
.session-row>button{grid-column:1/-1;justify-self:start}
.entry-paths{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:4px 0 20px}
.import-box{border:1px solid var(--border);background:var(--surface-2);border-radius:var(--radius-lg);padding:16px;display:grid;gap:12px}
.import-box h3{font-size:15px}
.import-box p{margin:0;font-size:13px}
.import-box>button,.import-box #outline-preview>button{justify-self:start}
.suggestion{padding:12px 0;border-bottom:1px solid var(--border)}
.suggestion p{white-space:pre-line;font-size:13px;margin:6px 0}
.suggestion small{display:block;line-height:1.6;font-size:12px;color:var(--subtle);overflow-wrap:anywhere}
.engine-status{display:flex;align-items:center;gap:8px;font-size:12px!important;color:var(--info)!important;background:var(--info-bg);padding:8px 12px;border-radius:var(--radius);margin:0}
.small-note,.upload-status{font-size:12px;line-height:1.6;overflow-wrap:anywhere;color:var(--muted)}
.upload-status:empty{display:none}
.review-warnings{margin:8px 0;background:var(--warn-bg);color:var(--warn);padding:10px 12px 10px 28px;font-size:12px;line-height:1.6;border-radius:var(--radius)}

@media(max-width:960px){.hero{grid-template-columns:1fr;gap:24px;padding:36px 0 28px}.hero-aside{min-height:200px}}
@media(max-width:650px){.topbar{height:56px;gap:12px}.topbar .brand small{display:none}.topbar nav a{padding:0 8px;font-size:13px}.hero h1 br{display:none}.trust-strip{grid-template-columns:1fr;gap:14px}.filters{grid-template-columns:1fr 1fr}.filters label:first-child{grid-column:1/-1}.course-grid{grid-template-columns:1fr}.section-heading{align-items:flex-start;flex-direction:column;gap:6px}.team-callout{flex-direction:column;align-items:flex-start;padding:22px}.card-bottom{flex-wrap:wrap}.two{grid-template-columns:1fr}.entry-paths{grid-template-columns:1fr}.session-row{grid-template-columns:1fr}#detail-dialog{padding:20px}#detail-dialog .dialog-top{top:-20px;margin:-20px -20px 8px;padding:12px 20px}}
.page-admin main>#feedback:not(:empty){margin:20px 32px -8px;max-width:1216px}
@media(max-width:860px){.page-admin main>#feedback:not(:empty){margin:16px 16px -4px}}

/* BenchM (Comercial) */
.market-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}
.market-toolbar>.doc-confirm{flex-basis:100%}
.market-status{flex:1 1 320px;min-width:0}
.market-status p{margin:0}
.market-progress{color:var(--info);font-weight:600}
.market-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px;overflow-x:auto}
button.market-tab{background:none;border:0;border-bottom:2px solid transparent;border-radius:0;color:var(--muted);font-weight:600;height:var(--h-md);padding:0 12px;white-space:nowrap;box-shadow:none}
button.market-tab:hover{background:var(--surface-2);color:var(--text)}
button.market-tab[aria-selected=true]{border-bottom-color:var(--primary);color:var(--primary)}
.market-view{display:grid;gap:16px;min-width:0}
.market-view>.panel{margin:0;min-width:0}
.market-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}
.market-stat{display:grid;gap:2px;padding:10px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);min-width:0}
.market-stat strong{font-size:15px;overflow-wrap:anywhere}
.market-stat small{font-size:12px}
.market-card-head,.market-currency-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px 12px}
.market-card-head h3,.market-currency-head h4{margin:0}
.market-card-head p{margin:2px 0 0}
.market-section{margin:18px 0 0;font-size:13px;letter-spacing:.02em;color:var(--muted);text-transform:uppercase}
.market-currency{display:grid;gap:10px;padding:14px 0;border-bottom:1px solid var(--border);min-width:0}
.market-currency:last-of-type{border-bottom:0}
.market-reasons{margin:0;padding-left:18px;display:grid;gap:4px}
.market-other{width:120px;height:var(--h-sm)}
.market-picker{display:grid;gap:4px;max-width:320px;font-weight:600}
.market-decisions,.market-events{list-style:none;margin:0;padding:0;display:grid}
.market-decisions li,.market-event{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px 16px;padding:10px 0;border-bottom:1px solid var(--border)}
.market-decisions li:last-child,.market-event:last-child{border-bottom:0}
.market-decisions li>div,.market-event>div:first-child{flex:1 1 320px;min-width:0}
.market-decisions p{margin:2px 0 0}
.market-event a,.market-event small{display:block;margin-top:2px;overflow-wrap:anywhere}
.market-obs{margin:8px 0 0;padding-left:18px;display:grid;gap:4px;overflow-wrap:anywhere}
.market-table-wrap{overflow-x:auto;max-width:100%}
.market-table{border-collapse:collapse;width:100%;font-size:13px}
.market-table th,.market-table td{padding:7px 10px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}
.market-table thead th{color:var(--muted);font-weight:600;white-space:nowrap;background:var(--surface-2)}
.market-table td.warn-cell{color:var(--warn);font-weight:600}
.market-matrix tbody th{font-weight:600;white-space:nowrap}
.market-matrix td{text-align:center;min-width:48px}
.market-matrix td.heat-1{background:var(--info-bg);color:var(--info);font-weight:600}
.market-matrix td.heat-2{background:var(--warn-bg);color:var(--warn);font-weight:600}
.market-matrix td.heat-3{background:var(--danger-bg);color:var(--danger);font-weight:600}
.market-eval{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;align-items:end}
.market-eval label{display:grid;gap:4px}
.market-eval label,.market-filters label{min-width:0}
.market-eval input,.market-eval select{width:100%}
.market-verdict{display:grid;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}
.market-filters{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:end}
.market-filters>label:first-child{display:grid;gap:4px;min-width:220px}
.market-filters .check-row{display:flex;gap:8px;align-items:center;height:var(--h-md);white-space:nowrap}
.market-filters .check-row input{width:16px;height:16px;flex:none;margin:0}
.costing-competition{margin-top:10px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius)}
.costing-competition p{margin:0}
.costing-competition p+p{margin-top:4px}
@media (max-width:640px){.market-toolbar>.record-actions{width:100%}.market-filters>label:first-child{min-width:100%}}
