/* Shared compact frame, matching Evolve Training. Only the named entry/service
   surfaces opt in; other workspaces retain their own layouts. */
html:has(body.evolve-app-frame),html:has(.login-page){height:100%;width:100%;overflow:hidden;overscroll-behavior:none}
body.evolve-app-frame,body:has(.login-page){position:fixed;inset:0;width:100%;height:100%;margin:0;overflow:hidden;overscroll-behavior:none}
.evolve-frame,.login-page{height:100vh;height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden;font:14px/1.45 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.app-scroll{flex:1;min-height:0;min-width:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:none;scrollbar-width:thin;scroll-padding:12px}
.app-icon{display:block;width:21px;height:21px;flex:none}
.app-disclosure{border:1px solid var(--app-line);border-radius:11px;background:var(--app-surface);padding:0 12px;margin:0 0 10px;min-width:0}
.app-disclosure summary{min-height:44px;padding:11px 0;font-size:13px;font-weight:650;cursor:pointer}
.app-disclosure summary small{display:block;margin:3px 0 0 15px;font-size:11px;font-weight:400;color:var(--app-muted)}
.app-disclosure>section{border:0!important;padding:0 0 10px!important;margin:0!important;background:transparent!important}
.app-disclosure p{font-size:13px}

/* Login and service selector: pinned entry bar, contained content. */
.login-page{padding:0;background:var(--app-page)}
.login-top{flex:none;width:100%;max-width:1040px;padding:6px 16px;margin:0 auto;border-bottom:1px solid var(--app-line);min-height:52px}
.login-top .demo-corner{min-height:40px;font-size:12px;padding:8px 12px}
.login-scroll{padding:10px 20px max(10px,env(safe-area-inset-bottom));width:100%}
.login-panel{max-width:410px;margin:0 auto}
.login-page h1,.login-page h2,.login-brand>div{font-family:inherit}
.login-brand{display:flex;align-items:center;justify-content:center;gap:12px;margin:0 0 14px;text-align:left}
.login-brand img{width:54px;max-width:54px;height:auto;margin:0}
.login-brand>div{font-size:11px;letter-spacing:2px}
.login-heading h1{font-size:26px;line-height:1.2;margin:0 0 4px}
.login-heading p{font-size:14px;margin:0 0 12px;line-height:1.45}
.login-form .field{font-size:12px;margin-bottom:10px;gap:5px}
.login-form input{height:46px;min-height:46px;font-size:16px;padding:10px 12px}
.login-form .password-wrap input{padding-right:51px}
.login-form .password-toggle{top:1px;right:2px}
.forgot-row{margin:-4px 0 8px;min-height:36px;align-items:center;font-size:12px}
.login-submit{height:44px;min-height:44px;font-size:14px;padding:8px 12px}
.signup-prompt{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-top:10px}
.signup-prompt p{font-size:12px;margin:0;flex:none}
.signup-prompt .login-outline{width:auto;flex:1;min-height:44px;height:44px;font-size:13px;padding:8px 10px}
.login-demo-label{font-size:11px;color:var(--app-muted);margin:12px 0 4px;line-height:1.4}
.login-test-note{padding:0 12px;margin:0;font-size:12px;border-radius:9px}
.login-test-note summary{min-height:44px;padding:12px 0;font-size:12px}
.login-test-note button{min-height:44px;margin:0}
.login-test-note code{font-size:12px}
.login-footer{padding:8px 0 0;font-size:12px}
.login-footer a{display:inline-flex;align-items:center;min-height:44px}
.login-error{padding:8px 10px;margin:6px 0;font-size:12px}
.login-page .heading{margin:0 0 12px}.login-page .heading h1{font-size:26px}
.login-page .notice,.login-page .card{margin:10px 0;padding:12px 14px;border-radius:11px;font-size:13px}
.login-page .notice p,.login-page .card p{margin:5px 0 9px;line-height:1.45}
.login-page .card h2{font-size:18px;margin-bottom:8px}
.login-page .btn{font-size:13px;padding:8px 12px;min-height:44px}
.login-page .formactions{margin-top:10px}

/* Custom Programme frame and content density. */
#cp-app.evolve-frame{min-height:0;padding:0;font-size:14px;line-height:1.45}
#cp-app .cp-ribbon{flex:none;padding:5px 12px;font-size:10px;line-height:1.4}
#cp-app .cp-header{flex:none;flex-wrap:nowrap;gap:10px;padding:7px max(12px,calc((100% - 1040px)/2));min-height:58px}
#cp-app .cp-brand{font-size:20px;letter-spacing:2px;gap:9px}
#cp-app .cp-brand img{width:30px;height:26px}
#cp-app .cp-header-links{gap:10px;font-size:11px;flex-wrap:nowrap}
#cp-app .cp-header-links a{min-height:44px;text-decoration:none}
#cp-app .cp-header-links .cp-account-icon{width:44px;justify-content:center;border:1px solid var(--cp-line);border-radius:50%}
#cp-app .cp-wrap{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0;width:100%;max-width:1040px;padding:0;margin:0 auto}
#cp-app #cp-main{padding:12px 14px}
#cp-app .cp-nav{position:static;flex:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;width:100%;margin:0;padding:4px max(4px,env(safe-area-inset-right)) max(4px,env(safe-area-inset-bottom)) max(4px,env(safe-area-inset-left));background:var(--app-surface);border-top:1px solid var(--cp-line)}
#cp-app .cp-nav a{min-width:0;width:100%;min-height:56px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px;padding:5px 2px;font-size:10.5px;font-weight:500;line-height:1.1;border-radius:7px;overflow-wrap:anywhere}
#cp-app .cp-nav a span{display:flex;align-items:center;justify-content:center;min-height:22px}
#cp-app .cp-nav a[aria-current=page]{font-weight:700}
#cp-app h1{font-size:26px;margin:4px 0 6px;letter-spacing:-.6px}
#cp-app h2,#cp-app .cp-hero h2{font-size:18px;margin:0 0 8px;letter-spacing:0}
#cp-app h3{font-size:15px;margin:6px 0}
#cp-app p{margin:6px 0 10px}
#cp-app .cp-lead{margin-bottom:12px;font-size:13px}
#cp-app .cp-kicker{font-size:10px;margin-bottom:3px}
#cp-app .cp-card{padding:14px;margin:0 0 12px;border-radius:11px}
#cp-app .cp-grid{gap:12px}
#cp-app .cp-tag{font-size:10px;padding:3px 7px;margin-bottom:8px}
#cp-app .cp-actions{gap:8px;margin-top:12px}
#cp-app .cp-btn{min-height:44px;padding:8px 12px;font-size:13px}
#cp-app .cp-list li{padding:8px 0}
#cp-app .cp-note,#cp-app .cp-error{padding:10px 12px;margin:10px 0;font-size:13px}
#cp-app .cp-field{margin:12px 0;font-size:13px}
#cp-app input:not([type=checkbox]),#cp-app select,#cp-app textarea{min-height:44px;padding:9px 10px;margin-top:5px;font-size:16px}
#cp-app textarea{min-height:80px;overscroll-behavior:none}
#cp-app .cp-check{margin:12px 0}
#cp-app .cp-progress{margin:10px 0}
#cp-app details{padding:0 12px;margin:10px 0;border-radius:11px}
#cp-app summary{min-height:44px;padding:11px 0;font-size:13px}
#cp-app details[open]{padding-bottom:12px}
#cp-app details.app-disclosure{margin:0;padding:0 12px}
#cp-app details.app-disclosure[open]{padding-bottom:10px}
#cp-app .cp-dashboard-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:8px;margin-bottom:10px}
#cp-app .cp-dashboard-details summary small{display:block;margin:3px 0 0 15px;font-weight:400;font-size:11px}
#cp-app .cp-footer{font-size:10px;margin-top:10px}
#cp-app .cp-demo-tools{margin:10px 0 0}
#cp-app .cp-message{flex:none;max-height:15vh;overflow:auto;overscroll-behavior:none;margin:0;padding:7px 14px;font-size:12px;max-width:none}
#cp-app .cp-message:empty{display:none}
#cp-app .cp-narrow{max-width:680px}
#cp-app .cp-back{margin:0}

/* 1-to-1 uses the same header, cards and pinned icon menu. */
body.evolve-frame .demo-banner{flex:none;background:var(--app-ribbon);color:#e2eeeb;padding:5px 12px;font-size:10px;line-height:1.4}
body.evolve-frame .top{flex:none;width:100%;max-width:none;margin:0;padding:7px max(12px,calc((100% - 1040px)/2));min-height:58px;border-bottom:1px solid var(--line);background:var(--app-surface)}
body.evolve-frame .brand{gap:9px;font-size:18px;line-height:1.15;letter-spacing:2px}
body.evolve-frame .brand img{width:30px;height:26px;object-fit:contain}
body.evolve-frame .brand small{font-size:8px;letter-spacing:1px}
body.evolve-frame .top>a:last-child{display:flex;align-items:center;min-height:44px;font-size:11px;text-decoration:none}
#coaching-app{width:100%;max-width:1040px;margin:0 auto;padding:12px 14px}
#coaching-app h1{font-size:26px;margin:4px 0 6px;letter-spacing:-.6px}
#coaching-app h2{font-size:18px;margin:0 0 8px}
#coaching-app h3{font-size:15px;margin:6px 0}
#coaching-app p{margin:6px 0 10px}
#coaching-app>.muted{font-size:13px}
#coaching-app .eyebrow{font-size:10px}
#coaching-app .card{padding:14px;margin:0 0 12px;border-radius:11px}
#coaching-app .grid{gap:8px;margin-bottom:12px;grid-template-columns:repeat(2,minmax(0,1fr))}
#coaching-app .grid .card{margin:0}
#coaching-app .grid h2{font-size:16px}
#coaching-app .grid p{font-size:12px}
#coaching-app button,#coaching-app .button{min-height:44px;padding:8px 12px;font-size:13px;border-radius:8px}
#coaching-app .pill{padding:3px 7px;font-size:10px;border-radius:6px;margin-bottom:8px}
#coaching-app .actions{margin-top:12px;gap:8px}
#coaching-app .actions>*{min-width:0}
#coaching-app .steps{margin:0}
#coaching-app .steps li,#coaching-app .list-link{padding:10px 0}
#coaching-app .notice{padding:10px 12px;margin:10px 0}
#coaching-app label{margin:10px 0 5px;font-size:13px}
#coaching-app input,#coaching-app select,#coaching-app textarea{font-size:16px;min-height:44px;padding:9px 10px}
#coaching-app textarea{min-height:80px;overscroll-behavior:none}
#coaching-app input[type=checkbox]{width:22px;height:22px;min-height:22px}
#coaching-app .avatar{width:38px;height:38px}
#coaching-app .video-placeholder{padding:20px 14px}
#coaching-app .demo-tools{margin-top:10px;padding-top:0}
#coaching-app details summary{min-height:44px;padding:11px 0;font-size:13px}
#coaching-nav{position:static;flex:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));width:100%;max-width:1040px;margin:0 auto;gap:2px;padding:4px max(4px,env(safe-area-inset-right)) max(4px,env(safe-area-inset-bottom)) max(4px,env(safe-area-inset-left));background:var(--app-surface)}
#coaching-nav a{width:100%;min-width:0;min-height:56px;padding:5px 2px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px;line-height:1.1;font-size:10.5px;font-weight:500;overflow-wrap:anywhere;border-radius:7px}
#coaching-nav a span{display:flex;align-items:center;justify-content:center;min-height:22px}
#coaching-nav a[aria-current=page]{background:var(--teal);color:#fff;font-weight:700}
#coaching-status:not(:empty){bottom:calc(70px + env(safe-area-inset-bottom));max-height:20vh;overflow:auto;overscroll-behavior:none;font-size:12px;padding:10px 12px}
@media(max-width:650px){#cp-app .cp-grid,#cp-app .cp-split{grid-template-columns:1fr}#cp-app .cp-narrow{max-width:none}}
@media(max-width:350px){#cp-app .cp-brand{font-size:17px}#cp-app .cp-header-links{gap:5px}#coaching-app .grid{grid-template-columns:1fr}}
@media(max-height:600px){.login-brand{margin-bottom:8px}.login-brand img{width:36px}.login-scroll{padding-top:8px}.login-heading h1{font-size:23px}}
